aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <marussy@mit.bme.hu>2023-06-18 18:04:43 +0200
committerLibravatar GitHub <noreply@github.com>2023-06-18 18:04:43 +0200
commita0619c0fbf1fab2304ca683343803d1f37c2ef7c (patch)
tree6d6e342b019a1f3ad0baae710cf520a5dffe4b9e
parentMerge pull request #24 from kris7t/partial-interpretation (diff)
parentchore(deps): bump dependencies (diff)
downloadrefinery-a0619c0fbf1fab2304ca683343803d1f37c2ef7c.tar.gz
refinery-a0619c0fbf1fab2304ca683343803d1f37c2ef7c.tar.zst
refinery-a0619c0fbf1fab2304ca683343803d1f37c2ef7c.zip
Merge pull request #26 from kris7t/query-refactor
Query refactor
-rw-r--r--.editorconfig9
-rw-r--r--.gitattributes4
-rw-r--r--.github/workflows/build.yml19
-rw-r--r--.gitignore4
-rw-r--r--.reuse/dep533
-rw-r--r--.vscode/extensions.json5
-rw-r--r--.vscode/settings.json5
-rwxr-xr-x.yarn/releases/yarn-4.0.0-rc.45.cjs (renamed from .yarn/releases/yarn-4.0.0-rc.42.cjs)609
-rw-r--r--.yarn/sdks/eslint/package.json2
-rw-r--r--.yarn/sdks/integrations.yml.license3
-rw-r--r--.yarn/sdks/typescript/package.json2
-rw-r--r--.yarnrc.yml10
-rw-r--r--CONTRIBUTORS.md28
-rw-r--r--LICENSE286
-rw-r--r--LICENSES/Apache-2.0.txt73
-rw-r--r--LICENSES/BSD-2-Clause.txt9
-rw-r--r--LICENSES/CC0-1.0.txt121
-rw-r--r--LICENSES/EPL-2.0.txt80
-rw-r--r--LICENSES/MIT.txt9
-rw-r--r--README.md22
-rw-r--r--build.gradle6
-rw-r--r--build.gradle.kts12
-rw-r--r--buildSrc/build.gradle14
-rw-r--r--buildSrc/build.gradle.kts23
-rw-r--r--buildSrc/settings.gradle7
-rw-r--r--buildSrc/settings.gradle.kts13
-rw-r--r--buildSrc/src/main/groovy/refinery-eclipse.gradle28
-rw-r--r--buildSrc/src/main/groovy/refinery-frontend-conventions.gradle14
-rw-r--r--buildSrc/src/main/groovy/refinery-frontend-workspace.gradle29
-rw-r--r--buildSrc/src/main/groovy/refinery-frontend-worktree.gradle95
-rw-r--r--buildSrc/src/main/groovy/refinery-java-application.gradle11
-rw-r--r--buildSrc/src/main/groovy/refinery-java-conventions.gradle93
-rw-r--r--buildSrc/src/main/groovy/refinery-java-library.gradle4
-rw-r--r--buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle35
-rw-r--r--buildSrc/src/main/groovy/refinery-jmh.gradle64
-rw-r--r--buildSrc/src/main/groovy/refinery-mwe2.gradle16
-rw-r--r--buildSrc/src/main/groovy/refinery-sonarqube.gradle8
-rw-r--r--buildSrc/src/main/groovy/refinery-xtext-conventions.gradle21
-rw-r--r--buildSrc/src/main/java/tools/refinery/gradle/utils/EclipseUtils.java77
-rw-r--r--buildSrc/src/main/java/tools/refinery/gradle/utils/SonarPropertiesUtils.java49
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts43
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts39
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-worktree.gradle.kts92
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/internal/frontend-conventions.gradle.kts22
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/internal/java-conventions.gradle.kts102
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/java-application.gradle.kts32
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/java-library.gradle.kts11
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/java-test-fixtures.gradle.kts36
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/jmh.gradle.kts66
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/mwe2.gradle.kts26
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/sonarqube.gradle.kts10
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/xtext-generated.gradle.kts49
-rw-r--r--gradle.properties11
-rw-r--r--gradle/libs.versions.toml30
-rw-r--r--gradle/wrapper/gradle-wrapper.jarbin61608 -> 62076 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.jar.license3
-rw-r--r--gradle/wrapper/gradle-wrapper.properties2
-rw-r--r--gradle/wrapper/gradle-wrapper.properties.license3
-rwxr-xr-xgradlew7
-rw-r--r--gradlew.bat.license3
-rw-r--r--gradlew.license3
-rw-r--r--package.json21
-rw-r--r--settings.gradle18
-rw-r--r--settings.gradle.kts26
-rw-r--r--subprojects/frontend/.eslintrc.cjs18
-rw-r--r--subprojects/frontend/assets-src/favicon.svg.license3
-rw-r--r--subprojects/frontend/assets-src/icon.svg.license3
-rw-r--r--subprojects/frontend/assets-src/mask-icon.svg.license3
-rw-r--r--subprojects/frontend/build.gradle131
-rw-r--r--subprojects/frontend/build.gradle.kts144
-rw-r--r--subprojects/frontend/config/backendConfigVitePlugin.ts6
-rw-r--r--subprojects/frontend/config/detectDevModeOptions.ts6
-rw-r--r--subprojects/frontend/config/eslintReport.cjs58
-rw-r--r--subprojects/frontend/config/fetchPackageMetadata.ts6
-rw-r--r--subprojects/frontend/config/manifest.ts8
-rw-r--r--subprojects/frontend/config/minifyHTMLVitePlugin.ts6
-rw-r--r--subprojects/frontend/config/preloadFontsVitePlugin.ts6
-rw-r--r--subprojects/frontend/index.html11
-rw-r--r--subprojects/frontend/package.json85
-rw-r--r--subprojects/frontend/prettier.config.cjs6
-rw-r--r--subprojects/frontend/public/apple-touch-icon.png.license3
-rw-r--r--subprojects/frontend/public/favicon-96x96.png.license3
-rw-r--r--subprojects/frontend/public/favicon.png.license3
-rw-r--r--subprojects/frontend/public/favicon.svg.license3
-rw-r--r--subprojects/frontend/public/icon-192x192.png.license3
-rw-r--r--subprojects/frontend/public/icon-512x512.png.license3
-rw-r--r--subprojects/frontend/public/icon-any.svg.license3
-rw-r--r--subprojects/frontend/public/mask-icon.svg.license3
-rw-r--r--subprojects/frontend/public/robots.txt4
-rw-r--r--subprojects/frontend/src/App.tsx6
-rw-r--r--subprojects/frontend/src/Loading.tsx6
-rw-r--r--subprojects/frontend/src/PWAStore.ts6
-rw-r--r--subprojects/frontend/src/Refinery.tsx6
-rw-r--r--subprojects/frontend/src/RootStore.ts6
-rw-r--r--subprojects/frontend/src/RootStoreProvider.tsx6
-rw-r--r--subprojects/frontend/src/ToggleDarkModeButton.tsx6
-rw-r--r--subprojects/frontend/src/TopBar.tsx6
-rw-r--r--subprojects/frontend/src/UpdateNotification.tsx6
-rw-r--r--subprojects/frontend/src/WindowControlsOverlayColor.tsx6
-rw-r--r--subprojects/frontend/src/editor/AnimatedButton.tsx6
-rw-r--r--subprojects/frontend/src/editor/ConnectButton.tsx6
-rw-r--r--subprojects/frontend/src/editor/ConnectionStatusNotification.tsx6
-rw-r--r--subprojects/frontend/src/editor/DiagnosticValue.ts6
-rw-r--r--subprojects/frontend/src/editor/EditorArea.tsx6
-rw-r--r--subprojects/frontend/src/editor/EditorButtons.tsx6
-rw-r--r--subprojects/frontend/src/editor/EditorPane.tsx6
-rw-r--r--subprojects/frontend/src/editor/EditorStore.ts6
-rw-r--r--subprojects/frontend/src/editor/EditorTheme.ts132
-rw-r--r--subprojects/frontend/src/editor/GenerateButton.tsx6
-rw-r--r--subprojects/frontend/src/editor/LintPanelStore.ts6
-rw-r--r--subprojects/frontend/src/editor/PanelStore.ts6
-rw-r--r--subprojects/frontend/src/editor/SearchPanel.ts6
-rw-r--r--subprojects/frontend/src/editor/SearchPanelPortal.tsx6
-rw-r--r--subprojects/frontend/src/editor/SearchPanelStore.ts6
-rw-r--r--subprojects/frontend/src/editor/SearchToolbar.tsx6
-rw-r--r--subprojects/frontend/src/editor/createEditorState.ts10
-rw-r--r--subprojects/frontend/src/editor/defineDecorationSetExtension.ts6
-rw-r--r--subprojects/frontend/src/editor/exposeDiagnostics.ts6
-rw-r--r--subprojects/frontend/src/editor/findOccurrences.ts6
-rw-r--r--subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts341
-rw-r--r--subprojects/frontend/src/editor/scrollbarViewPlugin.ts357
-rw-r--r--subprojects/frontend/src/editor/semanticHighlighting.ts6
-rw-r--r--subprojects/frontend/src/index.tsx6
-rw-r--r--subprojects/frontend/src/language/folding.ts6
-rw-r--r--subprojects/frontend/src/language/indentation.ts7
-rw-r--r--subprojects/frontend/src/language/problem.grammar6
-rw-r--r--subprojects/frontend/src/language/problemLanguageSupport.ts6
-rw-r--r--subprojects/frontend/src/language/props.ts6
-rw-r--r--subprojects/frontend/src/theme/ThemeProvider.tsx10
-rw-r--r--subprojects/frontend/src/theme/ThemeStore.ts6
-rw-r--r--subprojects/frontend/src/utils/CancelledError.ts6
-rw-r--r--subprojects/frontend/src/utils/PendingTask.ts6
-rw-r--r--subprojects/frontend/src/utils/PriorityMutex.ts6
-rw-r--r--subprojects/frontend/src/utils/TimeoutError.ts6
-rw-r--r--subprojects/frontend/src/utils/getLogger.ts6
-rw-r--r--subprojects/frontend/src/utils/useDelayedSnackbar.ts6
-rw-r--r--subprojects/frontend/src/xtext/BackendConfig.ts6
-rw-r--r--subprojects/frontend/src/xtext/ContentAssistService.ts6
-rw-r--r--subprojects/frontend/src/xtext/HighlightingService.ts6
-rw-r--r--subprojects/frontend/src/xtext/OccurrencesService.ts6
-rw-r--r--subprojects/frontend/src/xtext/UpdateService.ts6
-rw-r--r--subprojects/frontend/src/xtext/UpdateStateTracker.ts6
-rw-r--r--subprojects/frontend/src/xtext/ValidationService.ts6
-rw-r--r--subprojects/frontend/src/xtext/XtextClient.ts6
-rw-r--r--subprojects/frontend/src/xtext/XtextWebSocketClient.ts6
-rw-r--r--subprojects/frontend/src/xtext/fetchBackendConfig.ts6
-rw-r--r--subprojects/frontend/src/xtext/webSocketMachine.ts6
-rw-r--r--subprojects/frontend/src/xtext/xtextMessages.ts6
-rw-r--r--subprojects/frontend/src/xtext/xtextServiceResults.ts6
-rw-r--r--subprojects/frontend/tsconfig.base.json39
-rw-r--r--subprojects/frontend/tsconfig.json6
-rw-r--r--subprojects/frontend/tsconfig.node.json6
-rw-r--r--subprojects/frontend/tsconfig.shared.json9
-rw-r--r--subprojects/frontend/types/ImportMeta.d.ts7
-rw-r--r--subprojects/frontend/types/grammar.d.ts7
-rw-r--r--subprojects/frontend/types/node/@lezer-generator-rollup.d.ts7
-rw-r--r--subprojects/frontend/types/windowControlsOverlay.d.ts6
-rw-r--r--subprojects/frontend/vite.config.ts6
-rw-r--r--subprojects/language-ide/build.gradle18
-rw-r--r--subprojects/language-ide/build.gradle.kts18
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeModule.java6
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeSetup.java6
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/FuzzyMatcher.java5
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/ProblemCrossrefProposalProvider.java5
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingPartialProblemContentAssistParser.java5
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingProblemParser.java5
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/antlr/ProblemTokenSource.java6
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java5
-rw-r--r--subprojects/language-model/META-INF/MANIFEST.MF.license3
-rw-r--r--subprojects/language-model/build.gradle55
-rw-r--r--subprojects/language-model/build.gradle.kts65
-rw-r--r--subprojects/language-model/build.properties2
-rw-r--r--subprojects/language-model/plugin.properties2
-rw-r--r--subprojects/language-model/plugin.xml3
-rw-r--r--subprojects/language-model/problem.aird.license3
-rw-r--r--subprojects/language-model/src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe25
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.ecore.license3
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.genmodel.license3
-rw-r--r--subprojects/language-semantics/build.gradle11
-rw-r--r--subprojects/language-semantics/build.gradle.kts17
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java9
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTree.java5
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeCursor.java5
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeNode.java5
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeValue.java5
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/IntermediateNode.java5
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/TerminalNode.java5
-rw-r--r--subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/model/tests/DecisionTreeTests.java5
-rw-r--r--subprojects/language-web/build.gradle87
-rw-r--r--subprojects/language-web/build.gradle.kts68
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/CacheControlFilter.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java12
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSetup.java6
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSocketServlet.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/ServerLauncher.java12
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/VirtualThreadUtils.java52
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfig.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfigServlet.java7
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/VirtualThreadExecutorServiceProvider.java16
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/PongResult.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandler.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandlerException.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/SubscribingServiceContext.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/TransactionExecutor.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorKind.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorResponse.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebOkResponse.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebPushMessage.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebRequest.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebResponse.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PrecomputationListener.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushServiceDispatcher.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocument.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentAccess.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentProvider.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleServiceContext.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleSession.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextStatusCode.java5
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocket.java44
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocketServlet.java5
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java60
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java9
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/tests/ProblemWebInjectorProvider.java5
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java5
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java24
-rw-r--r--subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java5
-rw-r--r--subprojects/language/build.gradle73
-rw-r--r--subprojects/language/build.gradle.kts101
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/GenerateProblem.mwe221
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/Problem.xtext5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java6
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/ProblemStandaloneSetup.java6
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/conversion/ProblemValueConverterService.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/conversion/UpperBoundValueConverter.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java6
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/naming/NamingUtil.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/naming/ProblemQualifiedNameConverter.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/parser/antlr/ProblemTokenSource.java6
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/parser/antlr/TokenSourceInjectingProblemParser.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/DerivedVariableComputer.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/ImplicitVariableScope.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/ReferenceCounter.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemGlobalScopeProvider.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemLocalScopeProvider.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java6
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/CollectedSymbols.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/ContainmentRole.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/ProblemUtil.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/RelationInfo.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java5
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java6
-rw-r--r--subprojects/language/src/main/resources/tools/refinery/language/builtin.problem3
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java5
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java5
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/IdentifierTokenProviderTest.java5
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/ProblemTokenSourceTest.java5
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java5
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java5
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java5
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java5
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemNavigationUtil.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemParseHelper.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAction.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertion.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAtom.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConjunction.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConsequent.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedEnumDeclaration.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedLiteral.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedParametricDefinition.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedPredicateDefinition.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedRuleDefinition.java5
-rw-r--r--subprojects/store-query-viatra/NOTICE.md87
-rw-r--r--subprojects/store-query-viatra/build.gradle16
-rw-r--r--subprojects/store-query-viatra/build.gradle.kts15
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQuery.java21
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryAdapter.java10
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryBuilder.java7
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryStoreAdapter.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/RelationalScope.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryAdapterImpl.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryBuilderImpl.java37
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryStoreAdapterImpl.java15
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperator.java97
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/DummyBaseIndexer.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalEngineContext.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalQueryMetaContext.java50
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalRuntimeContext.java27
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendOperationExecutor.java1
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendPositivePatternCall.java1
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/FlatCostFunction.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/GenericTypeExtend.java1
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchBackendFactory.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchResultProvider.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalOperationCompiler.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalCursor.java18
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalViatraMatcher.java11
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/IndexerUtils.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtils.java89
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/OmitOutputViatraTupleLike.java23
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RawPatternMatcher.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalCursor.java15
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalViatraMatcher.java12
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/UnsafeFunctionalCursor.java15
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/ViatraTupleLike.java23
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/AssumptionEvaluator.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/Dnf2PQuery.java72
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/QueryWrapperFactory.java62
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/RawPQuery.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatefulMultisetAggregator.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatelessMultisetAggregator.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/SymbolViewWrapper.java (renamed from subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/RelationViewWrapper.java)11
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/TermEvaluator.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/ValueProviderBasedValuation.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/ModelUpdateListener.java43
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/RelationViewFilter.java5
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/SymbolViewUpdateListener.java (renamed from subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/RelationViewUpdateListener.java)25
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TupleChangingRelationViewUpdateListener.java39
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TupleChangingViewUpdateListener.java44
-rw-r--r--subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TuplePreservingViewUpdateListener.java (renamed from subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TuplePreservingRelationViewUpdateListener.java)15
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/DiagonalQueryTest.java347
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/FunctionalQueryTest.java382
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java510
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTransactionTest.java152
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperatorTest.java87
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtilsTest.java239
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryAssertions.java7
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryBackendHint.java5
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEngineTest.java5
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEvaluationHintSource.java5
-rw-r--r--subprojects/store-query/build.gradle9
-rw-r--r--subprojects/store-query/build.gradle.kts15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/AnyResultSet.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/Constraint.java27
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/EmptyResultSet.java12
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQuery.java11
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java7
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java9
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/Reduction.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/LiteralReduction.java)11
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/ResultSet.java11
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AbstractQueryBuilder.java175
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AnyQuery.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/ClausePostProcessor.java324
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Dnf.java87
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java238
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfClause.java7
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfUtils.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalDependency.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQuery.java60
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQueryBuilder.java45
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Query.java175
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/QueryBuilder.java64
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/RelationalQuery.java65
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/SymbolicParameter.java52
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback0.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data0.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data1.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data0.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data1.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data2.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data0.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data1.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data2.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data3.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data0.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data1.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data2.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data3.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data4.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback0.java14
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback1.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback2.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback3.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback4.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback0.java13
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback1.java14
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback2.java14
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback3.java14
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback4.java14
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DeepDnfEqualityChecker.java47
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DnfEqualityChecker.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralEqualityHelper.java12
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCallLiteral.java79
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AggregationLiteral.java41
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssignLiteral.java39
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssumeLiteral.java48
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/BooleanLiteral.java24
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallLiteral.java54
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallPolarity.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CanNegate.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java33
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CountLiteral.java20
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/EquivalenceLiteral.java45
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literal.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literals.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/CompositeSubstitution.java10
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/MapBasedSubstitution.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/RenewingSubstitution.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/StatelessSubstitution.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitution.java14
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/SubstitutionBuilder.java79
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitutions.java33
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/AbstractTerm.java41
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/Aggregator.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyDataVariable.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyTerm.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticBinaryOperator.java26
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticBinaryTerm.java56
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticUnaryOperator.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticUnaryTerm.java51
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/AssignedValue.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/BinaryTerm.java50
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ComparisonOperator.java20
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ComparisonTerm.java63
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ConstantTerm.java47
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataSort.java29
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataVariable.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ExtremeValueAggregator.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeSort.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeVariable.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/OpaqueTerm.java80
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/Parameter.java60
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/ParameterDirection.java22
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/Sort.java11
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregate.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregator.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatelessAggregator.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/Term.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/UnaryTerm.java29
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/Variable.java10
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolAndTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolBinaryTerm.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolConstantTerm.java16
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolLogicBinaryTerm.java78
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolNotTerm.java19
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolOrTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolTerms.java23
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolXorTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/LogicBinaryOperator.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/ComparisonTerm.java19
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/EqTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterEqTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessEqTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/NotEqTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntAddTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntArithmeticBinaryTerm.java48
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntArithmeticUnaryTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntBinaryTerm.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntComparisonTerm.java34
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntDivTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntExtremeValueAggregator.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMaxTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinusTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMulTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPlusTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPowTerm.java43
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSubTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSumAggregator.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntTerms.java83
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntUnaryTerm.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/RealToIntTerm.java21
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/IntToRealTerm.java19
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealAddTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealArithmeticBinaryTerm.java36
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealArithmeticUnaryTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealBinaryTerm.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealComparisonTerm.java35
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealDivTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealExtremeValueAggregator.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMaxTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinusTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMulTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPlusTerm.java30
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPowTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSubTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSumAggregator.java9
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealTerms.java83
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealUnaryTerm.java15
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityAddTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityBinaryTerm.java17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMaxTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMinTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMulTerm.java31
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregator.java86
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTerms.java73
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/MapBasedValuation.java22
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/RestrictedValuation.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/SubstitutedValuation.java5
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java14
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/ValuationBuilder.java40
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java112
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnySymbolView.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnyRelationView.java)9
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredView.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredRelationView.java)17
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenView.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenRelationView.java)9
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java36
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionalRelationView.java105
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/KeyOnlyView.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/view/KeyOnlyRelationView.java)11
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayView.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayRelationView.java)9
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustView.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustRelationView.java)9
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java20
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/RelationViewImplication.java19
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/SymbolView.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/view/RelationView.java)13
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingRelationView.java57
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java82
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/ViewImplication.java23
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/DnfBuilderTest.java)146
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java325
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/DnfToDefinitionStringTest.java)65
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java112
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java428
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/literal/AggregationLiteralTest.java88
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/literal/CallLiteralTest.java94
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/term/TermSubstitutionTest.java97
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/term/bool/BoolTermsEvaluateTest.java75
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/term/int_/IntTermsEvaluateTest.java259
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/term/real/RealTermEvaluateTest.java238
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java (renamed from subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperatorStreamTest.java)15
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorTest.java80
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java104
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java159
-rw-r--r--subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java102
-rw-r--r--subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/MismatchDescribingDnfEqualityChecker.java41
-rw-r--r--subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/QueryMatchers.java32
-rw-r--r--subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualTo.java7
-rw-r--r--subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualToRaw.java51
-rw-r--r--subprojects/store-reasoning/build.gradle7
-rw-r--r--subprojects/store-reasoning/build.gradle.kts13
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/MergeResult.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/PartialInterpretation.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/Reasoning.java24
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java14
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java7
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningStoreAdapter.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java7
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java18
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java38
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ModalDnf.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java15
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialFunction.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java16
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RelationRefinementAction.java9
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/Rule.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleAction.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java9
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java12
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/UniformSeed.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java14
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/AdviceSlot.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslatedRelation.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java10
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionTranslationUnit.java12
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/TranslatedBaseDecision.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/ExtendedTypeInfo.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeView.java (renamed from subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeRelationView.java)11
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeView.java (renamed from subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeRelationView.java)11
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredType.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/PreservedType.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzer.java5
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslationUnit.java9
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeInfo.java5
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeTest.java5
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java5
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTest.java5
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTester.java5
-rw-r--r--subprojects/store/build.gradle4
-rw-r--r--subprojects/store/build.gradle.kts10
-rw-r--r--subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutBenchmark.java5
-rw-r--r--subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutExecutionPlan.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/AbstractModelAdapterBuilder.java45
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/AdapterList.java97
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/AdapterUtils.java33
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/AnyModelAdapterType.java19
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapter.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilder.java16
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilderFactory.java14
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterType.java79
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/adapter/ModelStoreAdapter.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/AnyVersionedMap.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/ContentHashCode.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/ContinousHashProvider.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/Cursor.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/CursorAsIterator.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/Cursors.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/DiffCursor.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/MapAsIterable.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/Versioned.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/VersionedMap.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreConfiguration.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreImpl.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/internal/HashClash.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/internal/ImmutableNode.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/internal/MapCursor.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/internal/MapDiffCursor.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/internal/MutableNode.java9
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/internal/Node.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/internal/OldValueBox.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/map/internal/VersionedMapImpl.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/AnyInterpretation.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/Interpretation.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/InterpretationListener.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/Model.java10
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/ModelDiffCursor.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/ModelListener.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/ModelStore.java10
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/ModelStoreBuilder.java13
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProvider.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProviderBitMagic.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelAction.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelImpl.java25
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreBuilderImpl.java64
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreImpl.java31
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/internal/SymbolEquivalenceClass.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/model/internal/VersionedInterpretation.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/AbstractDomain.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/AnyAbstractDomain.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/Symbol.java24
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/TruthValueDomain.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityInterval.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityIntervals.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/EmptyCardinalityInterval.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinality.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/NonEmptyCardinalityInterval.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UnboundedUpperCardinality.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinalities.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinality.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple.java30
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple0.java22
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple1.java36
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple2.java25
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple3.java46
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple4.java49
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/TupleConstants.java17
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/TupleLike.java35
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/tuple/TupleN.java40
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/util/CollectionsUtil.java5
-rw-r--r--subprojects/store/src/main/java/tools/refinery/store/util/CycleDetectingMapper.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadTestRunnable.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableImmutableCompareFuzzTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SharedStoreFuzzTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtils.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtilsTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/map/tests/utils/MapTestEnvironment.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/model/hashtests/HashEfficiencyTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/model/tests/ModelTest.java29
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java5
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/util/CollectionsUtilTests.java5
-rw-r--r--yarn.lock2445
-rw-r--r--yarn.lock.license3
696 files changed, 13414 insertions, 7253 deletions
diff --git a/.editorconfig b/.editorconfig
index 81e5fda1..7e5e9f16 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,3 +1,7 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
2#
3# SPDX-License-Identifier: EPL-2.0
4
1root = true 5root = true
2 6
3[*] 7[*]
@@ -8,7 +12,7 @@ insert_final_newline = true
8max_line_length = 80 12max_line_length = 80
9ij_wrap_on_typing = true 13ij_wrap_on_typing = true
10 14
11[*.{gradle,java,mwe2,xtend,xtext}] 15[*.{gradle,java,kts,mwe2,xtend,xtext}]
12indent_style = tab 16indent_style = tab
13indent_size = 4 17indent_size = 4
14# Mimic Eclipse continuation indent style in IntelliJ 18# Mimic Eclipse continuation indent style in IntelliJ
@@ -19,3 +23,6 @@ ij_any_indent_case_from_switch = false
19[*.{grammar,html,js,json,jsx,scss,ts,tsx,yml}] 23[*.{grammar,html,js,json,jsx,scss,ts,tsx,yml}]
20indent_style = space 24indent_style = space
21indent_size = 2 25indent_size = 2
26
27[libs.versions.toml]
28max_line_length = 999 \ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
index edd224df..847ceced 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,7 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
2#
3# SPDX-License-Identifier: CC0-1.0
4
1.yarn/releases/** binary 5.yarn/releases/** binary
2.yarn/plugins/** binary 6.yarn/plugins/** binary
3*.cjs eol=lf 7*.cjs eol=lf
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 64aa23e4..6138fad1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,3 +1,7 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
2#
3# SPDX-License-Identifier: EPL-2.0
4
1name: Build 5name: Build
2on: 6on:
3 push: 7 push:
@@ -23,10 +27,10 @@ jobs:
23 uses: actions/checkout@v3 27 uses: actions/checkout@v3
24 with: 28 with:
25 fetch-depth: ${{ !steps.check-secret.outputs.is_SONAR_TOKEN_set && 1 || 0 }} # Shallow clones should be disabled for a better relevancy of SonarCloud analysis 29 fetch-depth: ${{ !steps.check-secret.outputs.is_SONAR_TOKEN_set && 1 || 0 }} # Shallow clones should be disabled for a better relevancy of SonarCloud analysis
26 - name: Set up JDK 19 30 - name: Set up JDK 17
27 uses: actions/setup-java@v3 31 uses: actions/setup-java@v3
28 with: 32 with:
29 java-version: 19 33 java-version: 17
30 distribution: temurin 34 distribution: temurin
31 - name: Cache Gradle packages 35 - name: Cache Gradle packages
32 uses: actions/cache@v3 36 uses: actions/cache@v3
@@ -67,4 +71,13 @@ jobs:
67 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed by Sonar to get PR information, if any 71 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed by Sonar to get PR information, if any
68 SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 72 SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
69 run: | 73 run: |
70 ./gradlew build sonarqube -Pci --info 74 ./gradlew build sonar -Pci --info
75 reuse-check:
76 name: REUSE Compliance Check
77 runs-on: ubuntu-latest
78 steps:
79 - uses: actions/checkout@v3
80 - name: REUSE Compliance Check
81 uses: fsfe/reuse-action@v1
82 with:
83 args: --include-meson-subprojects lint
diff --git a/.gitignore b/.gitignore
index 559618ab..3117507a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
2#
3# SPDX-License-Identifier: CC0-1.0
4
1*._trace 5*._trace
2.classpath 6.classpath
3.idea/ 7.idea/
diff --git a/.reuse/dep5 b/.reuse/dep5
new file mode 100644
index 00000000..eb587ee2
--- /dev/null
+++ b/.reuse/dep5
@@ -0,0 +1,33 @@
1Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2Upstream-Name: Refinery
3Upstream-Contact: Dániel Varró <daniel.varro@liu.se>
4Source: https://github.com/graphs4value/refinery
5
6# Sample paragraph, commented out:
7#
8# Files: src/*
9# Copyright: $YEAR $NAME <$CONTACT>
10# License: ...
11
12Files: .yarnrc.yml
13Copyright: 2021-2023 The Refinery Authors <https://refinery.tools/>
14License: EPL-2.0
15
16Files: .yarn/releases/*.cjs
17Copyright: (c) 2016-present, Yarn Contributors. All rights reserved.
18 (c) 2014-present, Jon Schlinkert.
19 (c) 2014-2016, Jon Schlinkert.
20 (c) 2014-2017, Jon Schlinkert.
21 © 2015-2018, Jon Schlinkert.
22 (c) 2015-present, Jon Schlinkert.
23 (c) 2015, Rebecca Turner
24 Joyent, Inc. and other Node contributors.
25 Node.js contributors. All rights reserved.
26 (c) 2014 Blake Embrey (hello@blakeembrey.com)
27 (c) Facebook, Inc. and its affiliates.
28License: BSD-2-Clause AND MIT
29
30Files: .yarn/sdks/eslint/*
31 .yarn/sdks/typescript/*
32Copyright: (c) 2016-present, Yarn Contributors. All rights reserved.
33License: BSD-2-Clause
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index fa381855..8ff62a2a 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
3 *
4 * SPDX-License-Identifier: CC0-1.0
5 */
1{ 6{
2 "recommendations": [ 7 "recommendations": [
3 "EditorConfig.EditorConfig", 8 "EditorConfig.EditorConfig",
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 66e5806b..52d43dba 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
3 *
4 * SPDX-License-Identifier: CC0-1.0
5 */
1{ 6{
2 "search.exclude": { 7 "search.exclude": {
3 "**/.yarn": true, 8 "**/.yarn": true,
diff --git a/.yarn/releases/yarn-4.0.0-rc.42.cjs b/.yarn/releases/yarn-4.0.0-rc.45.cjs
index 90459ca0..e02fd942 100755
--- a/.yarn/releases/yarn-4.0.0-rc.42.cjs
+++ b/.yarn/releases/yarn-4.0.0-rc.45.cjs
@@ -1,146 +1,146 @@
1#!/usr/bin/env node 1#!/usr/bin/env node
2/* eslint-disable */ 2/* eslint-disable */
3//prettier-ignore 3//prettier-ignore
4(()=>{var C_e=Object.create;var xR=Object.defineProperty;var E_e=Object.getOwnPropertyDescriptor;var I_e=Object.getOwnPropertyNames;var w_e=Object.getPrototypeOf,B_e=Object.prototype.hasOwnProperty;var Ie=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var dt=(t,e)=>()=>(t&&(e=t(t=0)),e);var U=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Yt=(t,e)=>{for(var r in e)xR(t,r,{get:e[r],enumerable:!0})},v_e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of I_e(e))!B_e.call(t,a)&&a!==r&&xR(t,a,{get:()=>e[a],enumerable:!(o=E_e(e,a))||o.enumerable});return t};var tt=(t,e,r)=>(r=t!=null?C_e(w_e(t)):{},v_e(e||!t||!t.__esModule?xR(r,"default",{value:t,enumerable:!0}):r,t));var Ii={};Yt(Ii,{SAFE_TIME:()=>D7,S_IFDIR:()=>aD,S_IFLNK:()=>lD,S_IFMT:()=>Hu,S_IFREG:()=>RI});var Hu,aD,RI,lD,D7,S7=dt(()=>{Hu=61440,aD=16384,RI=32768,lD=40960,D7=456789e3});var sr={};Yt(sr,{EBADF:()=>Eo,EBUSY:()=>D_e,EEXIST:()=>k_e,EINVAL:()=>P_e,EISDIR:()=>Q_e,ENOENT:()=>x_e,ENOSYS:()=>S_e,ENOTDIR:()=>b_e,ENOTEMPTY:()=>R_e,EOPNOTSUPP:()=>T_e,EROFS:()=>F_e,ERR_DIR_CLOSED:()=>bR});function Ol(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function D_e(t){return Ol("EBUSY",t)}function S_e(t,e){return Ol("ENOSYS",`${t}, ${e}`)}function P_e(t){return Ol("EINVAL",`invalid argument, ${t}`)}function Eo(t){return Ol("EBADF",`bad file descriptor, ${t}`)}function x_e(t){return Ol("ENOENT",`no such file or directory, ${t}`)}function b_e(t){return Ol("ENOTDIR",`not a directory, ${t}`)}function Q_e(t){return Ol("EISDIR",`illegal operation on a directory, ${t}`)}function k_e(t){return Ol("EEXIST",`file already exists, ${t}`)}function F_e(t){return Ol("EROFS",`read-only filesystem, ${t}`)}function R_e(t){return Ol("ENOTEMPTY",`directory not empty, ${t}`)}function T_e(t){return Ol("EOPNOTSUPP",`operation not supported, ${t}`)}function bR(){return Ol("ERR_DIR_CLOSED","Directory handle was closed")}var cD=dt(()=>{});var Ml={};Yt(Ml,{BigIntStatsEntry:()=>ny,DEFAULT_MODE:()=>FR,DirEntry:()=>QR,StatEntry:()=>ry,areStatsEqual:()=>RR,clearStats:()=>uD,convertToBigIntStats:()=>L_e,makeDefaultStats:()=>P7,makeEmptyStats:()=>N_e});function P7(){return new ry}function N_e(){return uD(P7())}function uD(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):kR.types.isDate(r)&&(t[e]=new Date(0))}return t}function L_e(t){let e=new ny;for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):kR.types.isDate(o)&&(e[r]=new Date(o))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function RR(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var kR,FR,QR,ry,ny,TR=dt(()=>{kR=tt(Ie("util")),FR=33188,QR=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ry=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=FR;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ny=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(FR);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function b7(t){if(process.platform!=="win32")return t;let e,r;if(e=t.match(U_e))t=e[1];else if(r=t.match(__e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function NR(t){if(process.platform!=="win32")return t;t=t.replace(/\\/g,"/");let e,r;return(e=t.match(O_e))?t=`/${e[1]}`:(r=t.match(M_e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function AD(t,e){return t===ue?b7(e):NR(e)}function Li(t){if(ue.parse(t).dir!==""||z.parse(t).dir!=="")throw new Error(`Invalid filename: "${t}"`);return t}var TI,wt,Lr,ue,z,x7,O_e,M_e,U_e,__e,Ca=dt(()=>{TI=tt(Ie("path")),wt={root:"/",dot:".",parent:".."},Lr={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml"},ue=Object.create(TI.default),z=Object.create(TI.default.posix);ue.cwd=()=>process.cwd();z.cwd=()=>NR(process.cwd());z.resolve=(...t)=>t.length>0&&z.isAbsolute(t[0])?TI.default.posix.resolve(...t):TI.default.posix.resolve(z.cwd(),...t);x7=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};ue.fromPortablePath=b7;ue.toPortablePath=NR;ue.contains=(t,e)=>x7(ue,t,e);z.contains=(t,e)=>x7(z,t,e);O_e=/^([a-zA-Z]:.*)$/,M_e=/^\/\/(\.\/)?(.*)$/,U_e=/^\/([a-zA-Z]:.*)$/,__e=/^\/unc\/(\.dot\/)?(.*)$/});async function fD(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let o=[];for(let a of r)for(let n of r)o.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(o),e.indexPath}async function Q7(t,e,r,o,a){let n=t.pathUtils.normalize(e),u=r.pathUtils.normalize(o),A=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:Rg,mtime:Rg}:await r.lstatPromise(u);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await LR(A,p,t,n,r,u,{...a,didParentExist:!0});for(let w of A)await w();await Promise.all(p.map(w=>w()))}async function LR(t,e,r,o,a,n,u){var v,b,C;let A=u.didParentExist?await k7(r,o):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=u.stableTime?{atime:Rg,mtime:Rg}:p,w;switch(!0){case p.isDirectory():w=await q_e(t,e,r,o,A,a,n,p,u);break;case p.isFile():w=await W_e(t,e,r,o,A,a,n,p,u);break;case p.isSymbolicLink():w=await Y_e(t,e,r,o,A,a,n,p,u);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(((v=u.linkStrategy)==null?void 0:v.type)!=="HardlinkFromIndex"||!p.isFile())&&((w||((b=A==null?void 0:A.mtime)==null?void 0:b.getTime())!==E.getTime()||((C=A==null?void 0:A.atime)==null?void 0:C.getTime())!==h.getTime())&&(e.push(()=>r.lutimesPromise(o,h,E)),w=!0),(A===null||(A.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(o,p.mode&511)),w=!0)),w}async function k7(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function q_e(t,e,r,o,a,n,u,A,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(o,{mode:A.mode})}catch(v){if(v.code!=="EEXIST")throw v}}),h=!0);let E=await n.readdirPromise(u),w=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let v of E.sort())await LR(t,e,r,r.pathUtils.join(o,v),n,n.pathUtils.join(u,v),w)&&(h=!0);else(await Promise.all(E.map(async b=>{await LR(t,e,r,r.pathUtils.join(o,b),n,n.pathUtils.join(u,b),w)}))).some(b=>b)&&(h=!0);return h}async function j_e(t,e,r,o,a,n,u,A,p,h){let E=await n.checksumFilePromise(u,{algorithm:"sha1"}),w=r.pathUtils.join(h.indexPath,E.slice(0,2),`${E}.dat`),v;(re=>(re[re.Lock=0]="Lock",re[re.Rename=1]="Rename"))(v||(v={}));let b=1,C=await k7(r,w);if(a){let _=C&&a.dev===C.dev&&a.ino===C.ino,V=(C==null?void 0:C.mtimeMs)!==H_e;if(_&&V&&h.autoRepair&&(b=0,C=null),!_)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1}let R=!C&&b===1?`${w}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,L=!1;return t.push(async()=>{if(!C&&(b===0&&await r.lockPromise(w,async()=>{let _=await n.readFilePromise(u);await r.writeFilePromise(w,_)}),b===1&&R)){let _=await n.readFilePromise(u);await r.writeFilePromise(R,_);try{await r.linkPromise(R,w)}catch(V){if(V.code==="EEXIST")L=!0,await r.unlinkPromise(R);else throw V}}a||await r.linkPromise(w,o)}),e.push(async()=>{C||await r.lutimesPromise(w,Rg,Rg),R&&!L&&await r.unlinkPromise(R)}),!1}async function G_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(u);await r.writeFilePromise(o,h)}),!0}async function W_e(t,e,r,o,a,n,u,A,p){var h;return((h=p.linkStrategy)==null?void 0:h.type)==="HardlinkFromIndex"?j_e(t,e,r,o,a,n,u,A,p,p.linkStrategy):G_e(t,e,r,o,a,n,u,A,p)}async function Y_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(AD(r.pathUtils,await n.readlinkPromise(u)),o)}),!0}var Rg,H_e,OR=dt(()=>{Ca();Rg=new Date(456789e3*1e3),H_e=Rg.getTime()});function pD(t,e,r,o){let a=()=>{let n=r.shift();return typeof n>"u"?null:Object.assign(t.statSync(t.pathUtils.join(e,n)),{name:n})};return new MR(e,a,o)}var MR,F7=dt(()=>{cD();MR=class{constructor(e,r,o={}){this.path=e;this.nextDirent=r;this.opts=o;this.closed=!1}throwIfClosed(){if(this.closed)throw bR()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,r;this.throwIfClosed(),(r=(e=this.opts).onClose)==null||r.call(e),this.closed=!0}}});function R7(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var T7,iy,N7=dt(()=>{T7=Ie("events");TR();iy=class extends T7.EventEmitter{constructor(r,o,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=o,this.bigint=a,this.lastStats=this.stat()}static create(r,o,a){let n=new iy(r,o,a);return n.start(),n}start(){R7(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){R7(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let o=this.bigint?new ny:new ry;return uD(o)}}makeInterval(r){let o=setInterval(()=>{let a=this.stat(),n=this.lastStats;RR(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?o:o.unref()}registerChangeListener(r,o){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(o))}unregisterChangeListener(r){this.removeListener("change",r);let o=this.changeListeners.get(r);typeof o<"u"&&clearInterval(o),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function sy(t,e,r,o){let a,n,u,A;switch(typeof r){case"function":a=!1,n=!0,u=5007,A=r;break;default:({bigint:a=!1,persistent:n=!0,interval:u=5007}=r),A=o;break}let p=hD.get(t);typeof p>"u"&&hD.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=iy.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(A,{persistent:n,interval:u}),h}function Tg(t,e,r){let o=hD.get(t);if(typeof o>"u")return;let a=o.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),o.delete(e)))}function Ng(t){let e=hD.get(t);if(!(typeof e>"u"))for(let r of e.keys())Tg(t,r)}var hD,UR=dt(()=>{N7();hD=new WeakMap});function K_e(t){let e=t.match(/\r?\n/g);if(e===null)return O7.EOL;let r=e.filter(a=>a===`\r 4(()=>{var B_e=Object.create;var kR=Object.defineProperty;var v_e=Object.getOwnPropertyDescriptor;var D_e=Object.getOwnPropertyNames;var S_e=Object.getPrototypeOf,P_e=Object.prototype.hasOwnProperty;var Ie=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var dt=(t,e)=>()=>(t&&(e=t(t=0)),e);var U=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Yt=(t,e)=>{for(var r in e)kR(t,r,{get:e[r],enumerable:!0})},x_e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of D_e(e))!P_e.call(t,a)&&a!==r&&kR(t,a,{get:()=>e[a],enumerable:!(o=v_e(e,a))||o.enumerable});return t};var tt=(t,e,r)=>(r=t!=null?B_e(S_e(t)):{},x_e(e||!t||!t.__esModule?kR(r,"default",{value:t,enumerable:!0}):r,t));var Ii={};Yt(Ii,{SAFE_TIME:()=>P7,S_IFDIR:()=>cD,S_IFLNK:()=>uD,S_IFMT:()=>Hu,S_IFREG:()=>RI});var Hu,cD,RI,uD,P7,x7=dt(()=>{Hu=61440,cD=16384,RI=32768,uD=40960,P7=456789e3});var sr={};Yt(sr,{EBADF:()=>Co,EBUSY:()=>b_e,EEXIST:()=>N_e,EINVAL:()=>k_e,EISDIR:()=>T_e,ENOENT:()=>F_e,ENOSYS:()=>Q_e,ENOTDIR:()=>R_e,ENOTEMPTY:()=>O_e,EOPNOTSUPP:()=>M_e,EROFS:()=>L_e,ERR_DIR_CLOSED:()=>FR});function Ml(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function b_e(t){return Ml("EBUSY",t)}function Q_e(t,e){return Ml("ENOSYS",`${t}, ${e}`)}function k_e(t){return Ml("EINVAL",`invalid argument, ${t}`)}function Co(t){return Ml("EBADF",`bad file descriptor, ${t}`)}function F_e(t){return Ml("ENOENT",`no such file or directory, ${t}`)}function R_e(t){return Ml("ENOTDIR",`not a directory, ${t}`)}function T_e(t){return Ml("EISDIR",`illegal operation on a directory, ${t}`)}function N_e(t){return Ml("EEXIST",`file already exists, ${t}`)}function L_e(t){return Ml("EROFS",`read-only filesystem, ${t}`)}function O_e(t){return Ml("ENOTEMPTY",`directory not empty, ${t}`)}function M_e(t){return Ml("EOPNOTSUPP",`operation not supported, ${t}`)}function FR(){return Ml("ERR_DIR_CLOSED","Directory handle was closed")}var AD=dt(()=>{});var Ul={};Yt(Ul,{BigIntStatsEntry:()=>ny,DEFAULT_MODE:()=>NR,DirEntry:()=>RR,StatEntry:()=>ry,areStatsEqual:()=>LR,clearStats:()=>fD,convertToBigIntStats:()=>__e,makeDefaultStats:()=>b7,makeEmptyStats:()=>U_e});function b7(){return new ry}function U_e(){return fD(b7())}function fD(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):TR.types.isDate(r)&&(t[e]=new Date(0))}return t}function __e(t){let e=new ny;for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):TR.types.isDate(o)&&(e[r]=new Date(o))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function LR(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var TR,NR,RR,ry,ny,OR=dt(()=>{TR=tt(Ie("util")),NR=33188,RR=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ry=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=NR;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ny=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(NR);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function k7(t){if(process.platform!=="win32")return t;let e,r;if(e=t.match(j_e))t=e[1];else if(r=t.match(G_e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function MR(t){if(process.platform!=="win32")return t;t=t.replace(/\\/g,"/");let e,r;return(e=t.match(H_e))?t=`/${e[1]}`:(r=t.match(q_e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function pD(t,e){return t===ue?k7(e):MR(e)}function Li(t){if(ue.parse(t).dir!==""||J.parse(t).dir!=="")throw new Error(`Invalid filename: "${t}"`);return t}var TI,wt,Lr,ue,J,Q7,H_e,q_e,j_e,G_e,Ca=dt(()=>{TI=tt(Ie("path")),wt={root:"/",dot:".",parent:".."},Lr={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml"},ue=Object.create(TI.default),J=Object.create(TI.default.posix);ue.cwd=()=>process.cwd();J.cwd=()=>MR(process.cwd());J.resolve=(...t)=>t.length>0&&J.isAbsolute(t[0])?TI.default.posix.resolve(...t):TI.default.posix.resolve(J.cwd(),...t);Q7=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};ue.fromPortablePath=k7;ue.toPortablePath=MR;ue.contains=(t,e)=>Q7(ue,t,e);J.contains=(t,e)=>Q7(J,t,e);H_e=/^([a-zA-Z]:.*)$/,q_e=/^\/\/(\.\/)?(.*)$/,j_e=/^\/([a-zA-Z]:.*)$/,G_e=/^\/unc\/(\.dot\/)?(.*)$/});async function hD(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let o=[];for(let a of r)for(let n of r)o.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(o),e.indexPath}async function F7(t,e,r,o,a){let n=t.pathUtils.normalize(e),u=r.pathUtils.normalize(o),A=[],p=[],{atime:h,mtime:C}=a.stableTime?{atime:Tg,mtime:Tg}:await r.lstatPromise(u);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,C]}),await UR(A,p,t,n,r,u,{...a,didParentExist:!0});for(let w of A)await w();await Promise.all(p.map(w=>w()))}async function UR(t,e,r,o,a,n,u){var v,b,E;let A=u.didParentExist?await R7(r,o):null,p=await a.lstatPromise(n),{atime:h,mtime:C}=u.stableTime?{atime:Tg,mtime:Tg}:p,w;switch(!0){case p.isDirectory():w=await Y_e(t,e,r,o,A,a,n,p,u);break;case p.isFile():w=await J_e(t,e,r,o,A,a,n,p,u);break;case p.isSymbolicLink():w=await z_e(t,e,r,o,A,a,n,p,u);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(((v=u.linkStrategy)==null?void 0:v.type)!=="HardlinkFromIndex"||!p.isFile())&&((w||((b=A==null?void 0:A.mtime)==null?void 0:b.getTime())!==C.getTime()||((E=A==null?void 0:A.atime)==null?void 0:E.getTime())!==h.getTime())&&(e.push(()=>r.lutimesPromise(o,h,C)),w=!0),(A===null||(A.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(o,p.mode&511)),w=!0)),w}async function R7(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function Y_e(t,e,r,o,a,n,u,A,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(o,{mode:A.mode})}catch(v){if(v.code!=="EEXIST")throw v}}),h=!0);let C=await n.readdirPromise(u),w=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let v of C.sort())await UR(t,e,r,r.pathUtils.join(o,v),n,n.pathUtils.join(u,v),w)&&(h=!0);else(await Promise.all(C.map(async b=>{await UR(t,e,r,r.pathUtils.join(o,b),n,n.pathUtils.join(u,b),w)}))).some(b=>b)&&(h=!0);return h}async function K_e(t,e,r,o,a,n,u,A,p,h){let C=await n.checksumFilePromise(u,{algorithm:"sha1"}),w=r.pathUtils.join(h.indexPath,C.slice(0,2),`${C}.dat`),v;(re=>(re[re.Lock=0]="Lock",re[re.Rename=1]="Rename"))(v||(v={}));let b=1,E=await R7(r,w);if(a){let _=E&&a.dev===E.dev&&a.ino===E.ino,V=(E==null?void 0:E.mtimeMs)!==W_e;if(_&&V&&h.autoRepair&&(b=0,E=null),!_)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1}let R=!E&&b===1?`${w}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,L=!1;return t.push(async()=>{if(!E&&(b===0&&await r.lockPromise(w,async()=>{let _=await n.readFilePromise(u);await r.writeFilePromise(w,_)}),b===1&&R)){let _=await n.readFilePromise(u);await r.writeFilePromise(R,_);try{await r.linkPromise(R,w)}catch(V){if(V.code==="EEXIST")L=!0,await r.unlinkPromise(R);else throw V}}a||await r.linkPromise(w,o)}),e.push(async()=>{E||await r.lutimesPromise(w,Tg,Tg),R&&!L&&await r.unlinkPromise(R)}),!1}async function V_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(u);await r.writeFilePromise(o,h)}),!0}async function J_e(t,e,r,o,a,n,u,A,p){var h;return((h=p.linkStrategy)==null?void 0:h.type)==="HardlinkFromIndex"?K_e(t,e,r,o,a,n,u,A,p,p.linkStrategy):V_e(t,e,r,o,a,n,u,A,p)}async function z_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(pD(r.pathUtils,await n.readlinkPromise(u)),o)}),!0}var Tg,W_e,_R=dt(()=>{Ca();Tg=new Date(456789e3*1e3),W_e=Tg.getTime()});function gD(t,e,r,o){let a=()=>{let n=r.shift();return typeof n>"u"?null:Object.assign(t.statSync(t.pathUtils.join(e,n)),{name:n})};return new NI(e,a,o)}var NI,T7=dt(()=>{AD();NI=class{constructor(e,r,o={}){this.path=e;this.nextDirent=r;this.opts=o;this.closed=!1}throwIfClosed(){if(this.closed)throw FR()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,r;this.throwIfClosed(),(r=(e=this.opts).onClose)==null||r.call(e),this.closed=!0}}});function N7(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var L7,iy,O7=dt(()=>{L7=Ie("events");OR();iy=class extends L7.EventEmitter{constructor(r,o,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=o,this.bigint=a,this.lastStats=this.stat()}static create(r,o,a){let n=new iy(r,o,a);return n.start(),n}start(){N7(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){N7(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let o=this.bigint?new ny:new ry;return fD(o)}}makeInterval(r){let o=setInterval(()=>{let a=this.stat(),n=this.lastStats;LR(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?o:o.unref()}registerChangeListener(r,o){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(o))}unregisterChangeListener(r){this.removeListener("change",r);let o=this.changeListeners.get(r);typeof o<"u"&&clearInterval(o),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function sy(t,e,r,o){let a,n,u,A;switch(typeof r){case"function":a=!1,n=!0,u=5007,A=r;break;default:({bigint:a=!1,persistent:n=!0,interval:u=5007}=r),A=o;break}let p=dD.get(t);typeof p>"u"&&dD.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=iy.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(A,{persistent:n,interval:u}),h}function Ng(t,e,r){let o=dD.get(t);if(typeof o>"u")return;let a=o.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),o.delete(e)))}function Lg(t){let e=dD.get(t);if(!(typeof e>"u"))for(let r of e.keys())Ng(t,r)}var dD,HR=dt(()=>{O7();dD=new WeakMap});function X_e(t){let e=t.match(/\r?\n/g);if(e===null)return U7.EOL;let r=e.filter(a=>a===`\r
5`).length,o=e.length-r;return r>o?`\r 5`).length,o=e.length-r;return r>o?`\r
6`:` 6`:`
7`}function Lg(t,e){return e.replace(/\r?\n/g,K_e(t))}var L7,O7,gf,qu,Og=dt(()=>{L7=Ie("crypto"),O7=Ie("os");OR();Ca();gf=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,L7.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;n<o&&await new Promise(A=>setTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??(n=A),r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??(n=A),r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await Q7(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(AD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?Lg(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?Lg(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw p}await this.writePromise(u,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(u),await this.unlinkPromise(o)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}async writeJsonPromise(e,r){return await this.writeFilePromise(e,`${JSON.stringify(r,null,2)} 7`}function Og(t,e){return e.replace(/\r?\n/g,X_e(t))}var M7,U7,df,qu,Mg=dt(()=>{M7=Ie("crypto"),U7=Ie("os");_R();Ca();df=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,M7.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;n<o&&await new Promise(A=>setTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??(n=A),r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??(n=A),r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await F7(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(pD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?Og(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?Og(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw p}await this.writePromise(u,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(u),await this.unlinkPromise(o)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}async writeJsonPromise(e,r){return await this.writeFilePromise(e,`${JSON.stringify(r,null,2)}
8`)}writeJsonSync(e,r){return this.writeFileSync(e,`${JSON.stringify(r,null,2)} 8`)}writeJsonSync(e,r){return this.writeFileSync(e,`${JSON.stringify(r,null,2)}
9`)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},qu=class extends gf{constructor(){super(z)}}});var vs,df=dt(()=>{Og();vs=class extends gf{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(u,a,o)}symlinkSync(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(u,a,o)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}async readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,o){return this.baseFs.watch(this.mapToBase(e),r,o)}watchFile(e,r,o){return this.baseFs.watchFile(this.mapToBase(e),r,o)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var ju,M7=dt(()=>{df();ju=class extends vs{constructor(r,{baseFs:o,pathUtils:a}){super(a);this.target=r,this.baseFs=o}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(r){return r}mapToBase(r){return r}}});var U7,xn,Mg=dt(()=>{U7=tt(Ie("fs"));Og();Ca();xn=class extends qu{constructor(r=U7.default){super();this.realFs=r}getExtractHint(){return!1}getRealPath(){return wt.root}resolve(r){return z.resolve(r)}async openPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.open(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}openSync(r,o,a){return this.realFs.openSync(ue.fromPortablePath(r),o,a)}async opendirPromise(r,o){return await new Promise((a,n)=>{typeof o<"u"?this.realFs.opendir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.opendir(ue.fromPortablePath(r),this.makeCallback(a,n))}).then(a=>Object.defineProperty(a,"path",{value:r,configurable:!0,writable:!0}))}opendirSync(r,o){let a=typeof o<"u"?this.realFs.opendirSync(ue.fromPortablePath(r),o):this.realFs.opendirSync(ue.fromPortablePath(r));return Object.defineProperty(a,"path",{value:r,configurable:!0,writable:!0})}async readPromise(r,o,a=0,n=0,u=-1){return await new Promise((A,p)=>{this.realFs.read(r,o,a,n,u,(h,E)=>{h?p(h):A(E)})})}readSync(r,o,a,n,u){return this.realFs.readSync(r,o,a,n,u)}async writePromise(r,o,a,n,u){return await new Promise((A,p)=>typeof o=="string"?this.realFs.write(r,o,a,this.makeCallback(A,p)):this.realFs.write(r,o,a,n,u,this.makeCallback(A,p)))}writeSync(r,o,a,n,u){return typeof o=="string"?this.realFs.writeSync(r,o,a):this.realFs.writeSync(r,o,a,n,u)}async closePromise(r){await new Promise((o,a)=>{this.realFs.close(r,this.makeCallback(o,a))})}closeSync(r){this.realFs.closeSync(r)}createReadStream(r,o){let a=r!==null?ue.fromPortablePath(r):r;return this.realFs.createReadStream(a,o)}createWriteStream(r,o){let a=r!==null?ue.fromPortablePath(r):r;return this.realFs.createWriteStream(a,o)}async realpathPromise(r){return await new Promise((o,a)=>{this.realFs.realpath(ue.fromPortablePath(r),{},this.makeCallback(o,a))}).then(o=>ue.toPortablePath(o))}realpathSync(r){return ue.toPortablePath(this.realFs.realpathSync(ue.fromPortablePath(r),{}))}async existsPromise(r){return await new Promise(o=>{this.realFs.exists(ue.fromPortablePath(r),o)})}accessSync(r,o){return this.realFs.accessSync(ue.fromPortablePath(r),o)}async accessPromise(r,o){return await new Promise((a,n)=>{this.realFs.access(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}existsSync(r){return this.realFs.existsSync(ue.fromPortablePath(r))}async statPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.stat(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.stat(ue.fromPortablePath(r),this.makeCallback(a,n))})}statSync(r,o){return o?this.realFs.statSync(ue.fromPortablePath(r),o):this.realFs.statSync(ue.fromPortablePath(r))}async fstatPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.fstat(r,o,this.makeCallback(a,n)):this.realFs.fstat(r,this.makeCallback(a,n))})}fstatSync(r,o){return o?this.realFs.fstatSync(r,o):this.realFs.fstatSync(r)}async lstatPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.lstat(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.lstat(ue.fromPortablePath(r),this.makeCallback(a,n))})}lstatSync(r,o){return o?this.realFs.lstatSync(ue.fromPortablePath(r),o):this.realFs.lstatSync(ue.fromPortablePath(r))}async fchmodPromise(r,o){return await new Promise((a,n)=>{this.realFs.fchmod(r,o,this.makeCallback(a,n))})}fchmodSync(r,o){return this.realFs.fchmodSync(r,o)}async chmodPromise(r,o){return await new Promise((a,n)=>{this.realFs.chmod(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}chmodSync(r,o){return this.realFs.chmodSync(ue.fromPortablePath(r),o)}async fchownPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.fchown(r,o,a,this.makeCallback(n,u))})}fchownSync(r,o,a){return this.realFs.fchownSync(r,o,a)}async chownPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.chown(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}chownSync(r,o,a){return this.realFs.chownSync(ue.fromPortablePath(r),o,a)}async renamePromise(r,o){return await new Promise((a,n)=>{this.realFs.rename(ue.fromPortablePath(r),ue.fromPortablePath(o),this.makeCallback(a,n))})}renameSync(r,o){return this.realFs.renameSync(ue.fromPortablePath(r),ue.fromPortablePath(o))}async copyFilePromise(r,o,a=0){return await new Promise((n,u)=>{this.realFs.copyFile(ue.fromPortablePath(r),ue.fromPortablePath(o),a,this.makeCallback(n,u))})}copyFileSync(r,o,a=0){return this.realFs.copyFileSync(ue.fromPortablePath(r),ue.fromPortablePath(o),a)}async appendFilePromise(r,o,a){return await new Promise((n,u)=>{let A=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.appendFile(A,o,a,this.makeCallback(n,u)):this.realFs.appendFile(A,o,this.makeCallback(n,u))})}appendFileSync(r,o,a){let n=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.appendFileSync(n,o,a):this.realFs.appendFileSync(n,o)}async writeFilePromise(r,o,a){return await new Promise((n,u)=>{let A=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.writeFile(A,o,a,this.makeCallback(n,u)):this.realFs.writeFile(A,o,this.makeCallback(n,u))})}writeFileSync(r,o,a){let n=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.writeFileSync(n,o,a):this.realFs.writeFileSync(n,o)}async unlinkPromise(r){return await new Promise((o,a)=>{this.realFs.unlink(ue.fromPortablePath(r),this.makeCallback(o,a))})}unlinkSync(r){return this.realFs.unlinkSync(ue.fromPortablePath(r))}async utimesPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.utimes(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}utimesSync(r,o,a){this.realFs.utimesSync(ue.fromPortablePath(r),o,a)}async lutimesPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.lutimes(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}lutimesSync(r,o,a){this.realFs.lutimesSync(ue.fromPortablePath(r),o,a)}async mkdirPromise(r,o){return await new Promise((a,n)=>{this.realFs.mkdir(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}mkdirSync(r,o){return this.realFs.mkdirSync(ue.fromPortablePath(r),o)}async rmdirPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.rmdir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.rmdir(ue.fromPortablePath(r),this.makeCallback(a,n))})}rmdirSync(r,o){return this.realFs.rmdirSync(ue.fromPortablePath(r),o)}async linkPromise(r,o){return await new Promise((a,n)=>{this.realFs.link(ue.fromPortablePath(r),ue.fromPortablePath(o),this.makeCallback(a,n))})}linkSync(r,o){return this.realFs.linkSync(ue.fromPortablePath(r),ue.fromPortablePath(o))}async symlinkPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.symlink(ue.fromPortablePath(r.replace(/\/+$/,"")),ue.fromPortablePath(o),a,this.makeCallback(n,u))})}symlinkSync(r,o,a){return this.realFs.symlinkSync(ue.fromPortablePath(r.replace(/\/+$/,"")),ue.fromPortablePath(o),a)}async readFilePromise(r,o){return await new Promise((a,n)=>{let u=typeof r=="string"?ue.fromPortablePath(r):r;this.realFs.readFile(u,o,this.makeCallback(a,n))})}readFileSync(r,o){let a=typeof r=="string"?ue.fromPortablePath(r):r;return this.realFs.readFileSync(a,o)}async readdirPromise(r,o){return await new Promise((a,n)=>{o!=null&&o.withFileTypes?this.realFs.readdir(ue.fromPortablePath(r),{withFileTypes:!0},this.makeCallback(a,n)):this.realFs.readdir(ue.fromPortablePath(r),this.makeCallback(u=>a(u),n))})}readdirSync(r,o){return o!=null&&o.withFileTypes?this.realFs.readdirSync(ue.fromPortablePath(r),{withFileTypes:!0}):this.realFs.readdirSync(ue.fromPortablePath(r))}async readlinkPromise(r){return await new Promise((o,a)=>{this.realFs.readlink(ue.fromPortablePath(r),this.makeCallback(o,a))}).then(o=>ue.toPortablePath(o))}readlinkSync(r){return ue.toPortablePath(this.realFs.readlinkSync(ue.fromPortablePath(r)))}async truncatePromise(r,o){return await new Promise((a,n)=>{this.realFs.truncate(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}truncateSync(r,o){return this.realFs.truncateSync(ue.fromPortablePath(r),o)}async ftruncatePromise(r,o){return await new Promise((a,n)=>{this.realFs.ftruncate(r,o,this.makeCallback(a,n))})}ftruncateSync(r,o){return this.realFs.ftruncateSync(r,o)}watch(r,o,a){return this.realFs.watch(ue.fromPortablePath(r),o,a)}watchFile(r,o,a){return this.realFs.watchFile(ue.fromPortablePath(r),o,a)}unwatchFile(r,o){return this.realFs.unwatchFile(ue.fromPortablePath(r),o)}makeCallback(r,o){return(a,n)=>{a?o(a):r(n)}}}});var An,_7=dt(()=>{Mg();df();Ca();An=class extends vs{constructor(r,{baseFs:o=new xn}={}){super(z);this.target=this.pathUtils.normalize(r),this.baseFs=o}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(r){return this.pathUtils.isAbsolute(r)?z.normalize(r):this.baseFs.resolve(z.join(this.target,r))}mapFromBase(r){return r}mapToBase(r){return this.pathUtils.isAbsolute(r)?r:this.pathUtils.join(this.target,r)}}});var H7,Gu,q7=dt(()=>{Mg();df();Ca();H7=wt.root,Gu=class extends vs{constructor(r,{baseFs:o=new xn}={}){super(z);this.target=this.pathUtils.resolve(wt.root,r),this.baseFs=o}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(wt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(r){let o=this.pathUtils.normalize(r);if(this.pathUtils.isAbsolute(r))return this.pathUtils.resolve(this.target,this.pathUtils.relative(H7,r));if(o.match(/^\.\.\/?/))throw new Error(`Resolving this path (${r}) would escape the jail`);return this.pathUtils.resolve(this.target,r)}mapFromBase(r){return this.pathUtils.resolve(H7,this.pathUtils.relative(this.target,r))}}});var oy,j7=dt(()=>{df();oy=class extends vs{constructor(r,o){super(o);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var Ug,Ea,Up,G7=dt(()=>{Ug=Ie("fs");Og();Mg();UR();cD();Ca();Ea=4278190080,Up=class extends qu{constructor({baseFs:r=new xn,filter:o=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:u=!0,maxAge:A=5e3,typeCheck:p=Ug.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:w}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=u?new Map:null,this.factoryPromise=E,this.factorySync=w,this.filter=o,this.getMountPoint=h,this.magic=a<<24,this.maxAge=A,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){var r;if(Ng(this),this.mountInstances)for(let[o,{childFs:a}]of this.mountInstances.entries())(r=a.saveAndClose)==null||r.call(a),this.mountInstances.delete(o)}discardAndClose(){var r;if(Ng(this),this.mountInstances)for(let[o,{childFs:a}]of this.mountInstances.entries())(r=a.discardAndClose)==null||r.call(a),this.mountInstances.delete(o)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,o){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,o]),a}async openPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,o,a),async(n,{subPath:u})=>this.remapFd(n,await n.openPromise(u,o,a)))}openSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,o,a),(n,{subPath:u})=>this.remapFd(n,n.openSync(u,o,a)))}async opendirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,o),async(a,{subPath:n})=>await a.opendirPromise(n,o),{requireSubpath:!1})}opendirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,o),(a,{subPath:n})=>a.opendirSync(n,o),{requireSubpath:!1})}async readPromise(r,o,a,n,u){if((r&Ea)!==this.magic)return await this.baseFs.readPromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Eo("read");let[p,h]=A;return await p.readPromise(h,o,a,n,u)}readSync(r,o,a,n,u){if((r&Ea)!==this.magic)return this.baseFs.readSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Eo("readSync");let[p,h]=A;return p.readSync(h,o,a,n,u)}async writePromise(r,o,a,n,u){if((r&Ea)!==this.magic)return typeof o=="string"?await this.baseFs.writePromise(r,o,a):await this.baseFs.writePromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Eo("write");let[p,h]=A;return typeof o=="string"?await p.writePromise(h,o,a):await p.writePromise(h,o,a,n,u)}writeSync(r,o,a,n,u){if((r&Ea)!==this.magic)return typeof o=="string"?this.baseFs.writeSync(r,o,a):this.baseFs.writeSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Eo("writeSync");let[p,h]=A;return typeof o=="string"?p.writeSync(h,o,a):p.writeSync(h,o,a,n,u)}async closePromise(r){if((r&Ea)!==this.magic)return await this.baseFs.closePromise(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Eo("close");this.fdMap.delete(r);let[a,n]=o;return await a.closePromise(n)}closeSync(r){if((r&Ea)!==this.magic)return this.baseFs.closeSync(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Eo("closeSync");this.fdMap.delete(r);let[a,n]=o;return a.closeSync(n)}createReadStream(r,o){return r===null?this.baseFs.createReadStream(r,o):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,o),(a,{archivePath:n,subPath:u})=>{let A=a.createReadStream(u,o);return A.path=ue.fromPortablePath(this.pathUtils.join(n,u)),A})}createWriteStream(r,o){return r===null?this.baseFs.createWriteStream(r,o):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,o),(a,{subPath:n})=>a.createWriteStream(n,o))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=await this.baseFs.realpathPromise(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(wt.root,await o.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=this.baseFs.realpathSync(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(wt.root,o.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(o,{subPath:a})=>await o.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(o,{subPath:a})=>o.existsSync(a))}async accessPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,o),async(a,{subPath:n})=>await a.accessPromise(n,o))}accessSync(r,o){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,o),(a,{subPath:n})=>a.accessSync(n,o))}async statPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,o),async(a,{subPath:n})=>await a.statPromise(n,o))}statSync(r,o){return this.makeCallSync(r,()=>this.baseFs.statSync(r,o),(a,{subPath:n})=>a.statSync(n,o))}async fstatPromise(r,o){if((r&Ea)!==this.magic)return this.baseFs.fstatPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Eo("fstat");let[n,u]=a;return n.fstatPromise(u,o)}fstatSync(r,o){if((r&Ea)!==this.magic)return this.baseFs.fstatSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Eo("fstatSync");let[n,u]=a;return n.fstatSync(u,o)}async lstatPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,o),async(a,{subPath:n})=>await a.lstatPromise(n,o))}lstatSync(r,o){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,o),(a,{subPath:n})=>a.lstatSync(n,o))}async fchmodPromise(r,o){if((r&Ea)!==this.magic)return this.baseFs.fchmodPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Eo("fchmod");let[n,u]=a;return n.fchmodPromise(u,o)}fchmodSync(r,o){if((r&Ea)!==this.magic)return this.baseFs.fchmodSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Eo("fchmodSync");let[n,u]=a;return n.fchmodSync(u,o)}async chmodPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,o),async(a,{subPath:n})=>await a.chmodPromise(n,o))}chmodSync(r,o){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,o),(a,{subPath:n})=>a.chmodSync(n,o))}async fchownPromise(r,o,a){if((r&Ea)!==this.magic)return this.baseFs.fchownPromise(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Eo("fchown");let[u,A]=n;return u.fchownPromise(A,o,a)}fchownSync(r,o,a){if((r&Ea)!==this.magic)return this.baseFs.fchownSync(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Eo("fchownSync");let[u,A]=n;return u.fchownSync(A,o,a)}async chownPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,o,a),async(n,{subPath:u})=>await n.chownPromise(u,o,a))}chownSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,o,a),(n,{subPath:u})=>n.chownSync(u,o,a))}async renamePromise(r,o){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.renamePromise(r,o),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(o,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,A)}))}renameSync(r,o){return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.renameSync(r,o),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(o,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,A)}))}async copyFilePromise(r,o,a=0){let n=async(u,A,p,h)=>{if((a&Ug.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&Ug.constants.COPYFILE_EXCL&&await this.existsPromise(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await u.readFilePromise(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.copyFilePromise(r,o,a),async(u,{subPath:A})=>await n(this.baseFs,r,u,A)),async(u,{subPath:A})=>await this.makeCallPromise(o,async()=>await n(u,A,this.baseFs,o),async(p,{subPath:h})=>u!==p?await n(u,A,p,h):await u.copyFilePromise(A,h,a)))}copyFileSync(r,o,a=0){let n=(u,A,p,h)=>{if((a&Ug.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&Ug.constants.COPYFILE_EXCL&&this.existsSync(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=u.readFileSync(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.copyFileSync(r,o,a),(u,{subPath:A})=>n(this.baseFs,r,u,A)),(u,{subPath:A})=>this.makeCallSync(o,()=>n(u,A,this.baseFs,o),(p,{subPath:h})=>u!==p?n(u,A,p,h):u.copyFileSync(A,h,a)))}async appendFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,o,a),async(n,{subPath:u})=>await n.appendFilePromise(u,o,a))}appendFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,o,a),(n,{subPath:u})=>n.appendFileSync(u,o,a))}async writeFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,o,a),async(n,{subPath:u})=>await n.writeFilePromise(u,o,a))}writeFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,o,a),(n,{subPath:u})=>n.writeFileSync(u,o,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(o,{subPath:a})=>await o.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(o,{subPath:a})=>o.unlinkSync(a))}async utimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,o,a),async(n,{subPath:u})=>await n.utimesPromise(u,o,a))}utimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,o,a),(n,{subPath:u})=>n.utimesSync(u,o,a))}async lutimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,o,a),async(n,{subPath:u})=>await n.lutimesPromise(u,o,a))}lutimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,o,a),(n,{subPath:u})=>n.lutimesSync(u,o,a))}async mkdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,o),async(a,{subPath:n})=>await a.mkdirPromise(n,o))}mkdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,o),(a,{subPath:n})=>a.mkdirSync(n,o))}async rmdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,o),async(a,{subPath:n})=>await a.rmdirPromise(n,o))}rmdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,o),(a,{subPath:n})=>a.rmdirSync(n,o))}async linkPromise(r,o){return await this.makeCallPromise(o,async()=>await this.baseFs.linkPromise(r,o),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,o){return this.makeCallSync(o,()=>this.baseFs.linkSync(r,o),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,o,a){return await this.makeCallPromise(o,async()=>await this.baseFs.symlinkPromise(r,o,a),async(n,{subPath:u})=>await n.symlinkPromise(r,u))}symlinkSync(r,o,a){return this.makeCallSync(o,()=>this.baseFs.symlinkSync(r,o,a),(n,{subPath:u})=>n.symlinkSync(r,u))}async readFilePromise(r,o){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,o),async(a,{subPath:n})=>await a.readFilePromise(n,o))}readFileSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,o),(a,{subPath:n})=>a.readFileSync(n,o))}async readdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,o),async(a,{subPath:n})=>await a.readdirPromise(n,o),{requireSubpath:!1})}readdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,o),(a,{subPath:n})=>a.readdirSync(n,o),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(o,{subPath:a})=>await o.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(o,{subPath:a})=>o.readlinkSync(a))}async truncatePromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,o),async(a,{subPath:n})=>await a.truncatePromise(n,o))}truncateSync(r,o){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,o),(a,{subPath:n})=>a.truncateSync(n,o))}async ftruncatePromise(r,o){if((r&Ea)!==this.magic)return this.baseFs.ftruncatePromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Eo("ftruncate");let[n,u]=a;return n.ftruncatePromise(u,o)}ftruncateSync(r,o){if((r&Ea)!==this.magic)return this.baseFs.ftruncateSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Eo("ftruncateSync");let[n,u]=a;return n.ftruncateSync(u,o)}watch(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,o,a),(n,{subPath:u})=>n.watch(u,o,a))}watchFile(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,o,a),()=>sy(this,r,o,a))}unwatchFile(r,o){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,o),()=>Tg(this,r,o))}async makeCallPromise(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await o();let u=this.resolve(r),A=this.findMount(u);return A?n&&A.subPath==="/"?await o():await this.getMountPromise(A.archivePath,async p=>await a(p,A)):await o()}makeCallSync(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return o();let u=this.resolve(r),A=this.findMount(u);return!A||n&&A.subPath==="/"?o():this.getMountSync(A.archivePath,p=>a(p,A))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let o="";for(;;){let a=r.substring(o.length),n=this.getMountPoint(a,o);if(!n)return null;if(o=this.pathUtils.join(o,n),!this.isMount.has(o)){if(this.notMount.has(o))continue;try{if(this.typeCheck!==null&&(this.baseFs.lstatSync(o).mode&Ug.constants.S_IFMT)!==this.typeCheck){this.notMount.add(o);continue}}catch{return null}this.isMount.add(o)}return{archivePath:o,subPath:this.pathUtils.join(wt.root,r.substring(o.length))}}}limitOpenFiles(r){var u,A,p;if(this.mountInstances===null)return;let o=Date.now(),a=o+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[h,{childFs:E,expiresAt:w,refCount:v}]of this.mountInstances.entries())if(!(v!==0||((u=E.hasOpenFileHandles)==null?void 0:u.call(E)))){if(o>=w){(A=E.saveAndClose)==null||A.call(E),this.mountInstances.delete(h),n-=1;continue}else if(r===null||n<=0){a=w;break}(p=E.saveAndClose)==null||p.call(E),this.mountInstances.delete(h),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-o).unref())}async getMountPromise(r,o){var a;if(this.mountInstances){let n=this.mountInstances.get(r);if(!n){let u=await this.factoryPromise(this.baseFs,r);n=this.mountInstances.get(r),n||(n={childFs:u(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await o(n.childFs)}finally{n.refCount-=1}}else{let n=(await this.factoryPromise(this.baseFs,r))();try{return await o(n)}finally{(a=n.saveAndClose)==null||a.call(n)}}}getMountSync(r,o){var a;if(this.mountInstances){let n=this.mountInstances.get(r);return n||(n={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,n),n.expiresAt=Date.now()+this.maxAge,o(n.childFs)}else{let n=this.factorySync(this.baseFs,r);try{return o(n)}finally{(a=n.saveAndClose)==null||a.call(n)}}}}});var zt,_R,NI,W7=dt(()=>{Og();Ca();zt=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),_R=class extends gf{constructor(){super(z)}getExtractHint(){throw zt()}getRealPath(){throw zt()}resolve(){throw zt()}async openPromise(){throw zt()}openSync(){throw zt()}async opendirPromise(){throw zt()}opendirSync(){throw zt()}async readPromise(){throw zt()}readSync(){throw zt()}async writePromise(){throw zt()}writeSync(){throw zt()}async closePromise(){throw zt()}closeSync(){throw zt()}createWriteStream(){throw zt()}createReadStream(){throw zt()}async realpathPromise(){throw zt()}realpathSync(){throw zt()}async readdirPromise(){throw zt()}readdirSync(){throw zt()}async existsPromise(e){throw zt()}existsSync(e){throw zt()}async accessPromise(){throw zt()}accessSync(){throw zt()}async statPromise(){throw zt()}statSync(){throw zt()}async fstatPromise(e){throw zt()}fstatSync(e){throw zt()}async lstatPromise(e){throw zt()}lstatSync(e){throw zt()}async fchmodPromise(){throw zt()}fchmodSync(){throw zt()}async chmodPromise(){throw zt()}chmodSync(){throw zt()}async fchownPromise(){throw zt()}fchownSync(){throw zt()}async chownPromise(){throw zt()}chownSync(){throw zt()}async mkdirPromise(){throw zt()}mkdirSync(){throw zt()}async rmdirPromise(){throw zt()}rmdirSync(){throw zt()}async linkPromise(){throw zt()}linkSync(){throw zt()}async symlinkPromise(){throw zt()}symlinkSync(){throw zt()}async renamePromise(){throw zt()}renameSync(){throw zt()}async copyFilePromise(){throw zt()}copyFileSync(){throw zt()}async appendFilePromise(){throw zt()}appendFileSync(){throw zt()}async writeFilePromise(){throw zt()}writeFileSync(){throw zt()}async unlinkPromise(){throw zt()}unlinkSync(){throw zt()}async utimesPromise(){throw zt()}utimesSync(){throw zt()}async lutimesPromise(){throw zt()}lutimesSync(){throw zt()}async readFilePromise(){throw zt()}readFileSync(){throw zt()}async readlinkPromise(){throw zt()}readlinkSync(){throw zt()}async truncatePromise(){throw zt()}truncateSync(){throw zt()}async ftruncatePromise(e,r){throw zt()}ftruncateSync(e,r){throw zt()}watch(){throw zt()}watchFile(){throw zt()}unwatchFile(){throw zt()}},NI=_R;NI.instance=new _R});var _p,Y7=dt(()=>{df();Ca();_p=class extends vs{constructor(r){super(ue);this.baseFs=r}mapFromBase(r){return ue.fromPortablePath(r)}mapToBase(r){return ue.toPortablePath(r)}}});var V_e,HR,J_e,pi,K7=dt(()=>{Mg();df();Ca();V_e=/^[0-9]+$/,HR=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,J_e=/^([^/]+-)?[a-f0-9]+$/,pi=class extends vs{constructor({baseFs:r=new xn}={}){super(z);this.baseFs=r}static makeVirtualPath(r,o,a){if(z.basename(r)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!z.basename(o).match(J_e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let u=z.relative(z.dirname(r),a).split("/"),A=0;for(;A<u.length&&u[A]==="..";)A+=1;let p=u.slice(A);return z.join(r,o,String(A),...p)}static resolveVirtual(r){let o=r.match(HR);if(!o||!o[3]&&o[5])return r;let a=z.dirname(o[1]);if(!o[3]||!o[4])return a;if(!V_e.test(o[4]))return r;let u=Number(o[4]),A="../".repeat(u),p=o[5]||".";return pi.resolveVirtual(z.join(a,A,p))}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(r){let o=r.match(HR);if(!o)return this.baseFs.realpathSync(r);if(!o[5])return r;let a=this.baseFs.realpathSync(this.mapToBase(r));return pi.makeVirtualPath(o[1],o[3],a)}async realpathPromise(r){let o=r.match(HR);if(!o)return await this.baseFs.realpathPromise(r);if(!o[5])return r;let a=await this.baseFs.realpathPromise(this.mapToBase(r));return pi.makeVirtualPath(o[1],o[3],a)}mapToBase(r){if(r==="")return r;if(this.pathUtils.isAbsolute(r))return pi.resolveVirtual(r);let o=pi.resolveVirtual(this.baseFs.resolve(wt.dot)),a=pi.resolveVirtual(this.baseFs.resolve(r));return z.relative(o,a)||wt.dot}mapFromBase(r){return r}}});var dD,V7,gD,J7=dt(()=>{dD=Ie("url"),V7=Ie("util");df();Ca();gD=class extends vs{constructor(r){super(ue);this.baseFs=r}mapFromBase(r){return r}mapToBase(r){if(typeof r=="string")return r;if(r instanceof dD.URL)return(0,dD.fileURLToPath)(r);if(Buffer.isBuffer(r)){let o=r.toString();if(Buffer.byteLength(o)!==r.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return o}throw new Error(`Unsupported path type: ${(0,V7.inspect)(r)}`)}}});var z7,Io,mf,Hp,mD,yD,ay,Oc,Mc,z_e,X_e,Z_e,$_e,LI,X7=dt(()=>{z7=Ie("readline"),Io=Symbol("kBaseFs"),mf=Symbol("kFd"),Hp=Symbol("kClosePromise"),mD=Symbol("kCloseResolve"),yD=Symbol("kCloseReject"),ay=Symbol("kRefs"),Oc=Symbol("kRef"),Mc=Symbol("kUnref"),LI=class{constructor(e,r){this[z_e]=1;this[X_e]=void 0;this[Z_e]=void 0;this[$_e]=void 0;this[Io]=r,this[mf]=e}get fd(){return this[mf]}async appendFile(e,r){try{this[Oc](this.appendFile);let o=(typeof r=="string"?r:r==null?void 0:r.encoding)??void 0;return await this[Io].appendFilePromise(this.fd,e,o?{encoding:o}:void 0)}finally{this[Mc]()}}async chown(e,r){try{return this[Oc](this.chown),await this[Io].fchownPromise(this.fd,e,r)}finally{this[Mc]()}}async chmod(e){try{return this[Oc](this.chmod),await this[Io].fchmodPromise(this.fd,e)}finally{this[Mc]()}}createReadStream(e){return this[Io].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Io].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,o,a){try{this[Oc](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??(e={}),n=e.buffer??Buffer.alloc(16384),r=e.offset||0,o=e.length??n.byteLength,a=e.position??null),r??(r=0),o??(o=0),o===0?{bytesRead:o,buffer:n}:{bytesRead:await this[Io].readPromise(this.fd,n,r,o,a),buffer:n}}finally{this[Mc]()}}async readFile(e){try{this[Oc](this.readFile);let r=(typeof e=="string"?e:e==null?void 0:e.encoding)??void 0;return await this[Io].readFilePromise(this.fd,r)}finally{this[Mc]()}}readLines(e){return(0,z7.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Oc](this.stat),await this[Io].fstatPromise(this.fd,e)}finally{this[Mc]()}}async truncate(e){try{return this[Oc](this.truncate),await this[Io].ftruncatePromise(this.fd,e)}finally{this[Mc]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Oc](this.writeFile);let o=(typeof r=="string"?r:r==null?void 0:r.encoding)??void 0;await this[Io].writeFilePromise(this.fd,e,o)}finally{this[Mc]()}}async write(...e){try{if(this[Oc](this.write),ArrayBuffer.isView(e[0])){let[r,o,a,n]=e;return{bytesWritten:await this[Io].writePromise(this.fd,r,o??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,o,a]=e;return{bytesWritten:await this[Io].writePromise(this.fd,r,o,a),buffer:r}}}finally{this[Mc]()}}async writev(e,r){try{this[Oc](this.writev);let o=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);o+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);o+=n.bytesWritten}return{buffers:e,bytesWritten:o}}finally{this[Mc]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[mf]===-1)return Promise.resolve();if(this[Hp])return this[Hp];if(this[ay]--,this[ay]===0){let e=this[mf];this[mf]=-1,this[Hp]=this[Io].closePromise(e).finally(()=>{this[Hp]=void 0})}else this[Hp]=new Promise((e,r)=>{this[mD]=e,this[yD]=r}).finally(()=>{this[Hp]=void 0,this[yD]=void 0,this[mD]=void 0});return this[Hp]}[(Io,mf,z_e=ay,X_e=Hp,Z_e=mD,$_e=yD,Oc)](e){if(this[mf]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[ay]++}[Mc](){if(this[ay]--,this[ay]===0){let e=this[mf];this[mf]=-1,this[Io].closePromise(e).then(this[mD],this[yD])}}}});function OI(t,e){e=new gD(e);let r=(o,a,n)=>{let u=o[a];o[a]=n,typeof(u==null?void 0:u[ly.promisify.custom])<"u"&&(n[ly.promisify.custom]=u[ly.promisify.custom])};{r(t,"exists",(o,...a)=>{let u=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(o).then(A=>{u(A)},()=>{u(!1)})})}),r(t,"read",(...o)=>{let[a,n,u,A,p,h]=o;if(o.length<=3){let E={};o.length<3?h=o[1]:(E=o[1],h=o[2]),{buffer:n=Buffer.alloc(16384),offset:u=0,length:A=n.byteLength,position:p}=E}if(u==null&&(u=0),A|=0,A===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,u,A,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let o of Z7){let a=o.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[o];if(typeof n>"u")continue;r(t,a,(...A)=>{let h=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{n.apply(e,A).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",o=>{try{return e.existsSync(o)}catch{return!1}}),r(t,"readSync",(...o)=>{let[a,n,u,A,p]=o;return o.length<=3&&({offset:u=0,length:A=n.byteLength,position:p}=o[2]||{}),u==null&&(u=0),A|=0,A===0?0:(p==null&&(p=-1),e.readSync(a,n,u,A,p))});for(let o of e8e){let a=o;if(typeof t[a]>"u")continue;let n=e[o];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let o=t.promises;for(let a of Z7){let n=a.replace(/Promise$/,"");if(typeof o[n]>"u")continue;let u=e[a];typeof u>"u"||a!=="open"&&r(o,n,(A,...p)=>A instanceof LI?A[n].apply(A,p):u.call(e,A,...p))}r(o,"open",async(...a)=>{let n=await e.openPromise(...a);return new LI(n,e)})}t.read[ly.promisify.custom]=async(o,a,...n)=>({bytesRead:await e.readPromise(o,a,...n),buffer:a}),t.write[ly.promisify.custom]=async(o,a,...n)=>({bytesWritten:await e.writePromise(o,a,...n),buffer:a})}function CD(t,e){let r=Object.create(t);return OI(r,e),r}var ly,e8e,Z7,$7=dt(()=>{ly=Ie("util");J7();X7();e8e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),Z7=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function eW(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function tW(){if(qR)return qR;let t=ue.toPortablePath(rW.default.tmpdir()),e=ae.realpathSync(t);return process.once("exit",()=>{ae.rmtempSync()}),qR={tmpdir:t,realTmpdir:e}}var rW,Uc,qR,ae,nW=dt(()=>{rW=tt(Ie("os"));Mg();Ca();Uc=new Set,qR=null;ae=Object.assign(new xn,{detachTemp(t){Uc.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=tW();for(;;){let o=eW("xfs-");try{this.mkdirSync(z.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=z.join(r,o);if(Uc.add(a),typeof t>"u")return a;try{return t(a)}finally{if(Uc.has(a)){Uc.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=tW();for(;;){let o=eW("xfs-");try{await this.mkdirPromise(z.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=z.join(r,o);if(Uc.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(Uc.has(a)){Uc.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Uc.values()).map(async t=>{try{await ae.removePromise(t,{maxRetries:0}),Uc.delete(t)}catch{}}))},rmtempSync(){for(let t of Uc)try{ae.removeSync(t),Uc.delete(t)}catch{}}})});var MI={};Yt(MI,{AliasFS:()=>ju,BasePortableFakeFS:()=>qu,CwdFS:()=>An,FakeFS:()=>gf,Filename:()=>Lr,JailFS:()=>Gu,LazyFS:()=>oy,MountFS:()=>Up,NoFS:()=>NI,NodeFS:()=>xn,PortablePath:()=>wt,PosixFS:()=>_p,ProxiedFS:()=>vs,VirtualFS:()=>pi,constants:()=>Ii,errors:()=>sr,extendFs:()=>CD,normalizeLineEndings:()=>Lg,npath:()=>ue,opendir:()=>pD,patchFs:()=>OI,ppath:()=>z,setupCopyIndex:()=>fD,statUtils:()=>Ml,toFilename:()=>Li,unwatchAllFiles:()=>Ng,unwatchFile:()=>Tg,watchFile:()=>sy,xfs:()=>ae});var bt=dt(()=>{S7();cD();TR();OR();F7();UR();Og();Ca();Ca();M7();Og();_7();q7();j7();G7();W7();Mg();Y7();df();K7();$7();nW()});var lW=U((cPt,aW)=>{aW.exports=oW;oW.sync=r8e;var iW=Ie("fs");function t8e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var o=0;o<r.length;o++){var a=r[o].toLowerCase();if(a&&t.substr(-a.length).toLowerCase()===a)return!0}return!1}function sW(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:t8e(e,r)}function oW(t,e,r){iW.stat(t,function(o,a){r(o,o?!1:sW(a,t,e))})}function r8e(t,e){return sW(iW.statSync(t),t,e)}});var pW=U((uPt,fW)=>{fW.exports=uW;uW.sync=n8e;var cW=Ie("fs");function uW(t,e,r){cW.stat(t,function(o,a){r(o,o?!1:AW(a,e))})}function n8e(t,e){return AW(cW.statSync(t),e)}function AW(t,e){return t.isFile()&&i8e(t,e)}function i8e(t,e){var r=t.mode,o=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),u=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),A=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=A|p,w=r&h||r&p&&a===u||r&A&&o===n||r&E&&n===0;return w}});var gW=U((fPt,hW)=>{var APt=Ie("fs"),ED;process.platform==="win32"||global.TESTING_WINDOWS?ED=lW():ED=pW();hW.exports=jR;jR.sync=s8e;function jR(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){jR(t,e||{},function(n,u){n?a(n):o(u)})})}ED(t,e||{},function(o,a){o&&(o.code==="EACCES"||e&&e.ignoreErrors)&&(o=null,a=!1),r(o,a)})}function s8e(t,e){try{return ED.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var wW=U((pPt,IW)=>{var cy=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",dW=Ie("path"),o8e=cy?";":":",mW=gW(),yW=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),CW=(t,e)=>{let r=e.colon||o8e,o=t.match(/\//)||cy&&t.match(/\\/)?[""]:[...cy?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=cy?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=cy?a.split(r):[""];return cy&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:o,pathExt:n,pathExtExe:a}},EW=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:o,pathExt:a,pathExtExe:n}=CW(t,e),u=[],A=h=>new Promise((E,w)=>{if(h===o.length)return e.all&&u.length?E(u):w(yW(t));let v=o[h],b=/^".*"$/.test(v)?v.slice(1,-1):v,C=dW.join(b,t),R=!b&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;E(p(R,h,0))}),p=(h,E,w)=>new Promise((v,b)=>{if(w===a.length)return v(A(E+1));let C=a[w];mW(h+C,{pathExt:n},(R,L)=>{if(!R&&L)if(e.all)u.push(h+C);else return v(h+C);return v(p(h,E,w+1))})});return r?A(0).then(h=>r(null,h),r):A(0)},a8e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:o,pathExtExe:a}=CW(t,e),n=[];for(let u=0;u<r.length;u++){let A=r[u],p=/^".*"$/.test(A)?A.slice(1,-1):A,h=dW.join(p,t),E=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;for(let w=0;w<o.length;w++){let v=E+o[w];try{if(mW.sync(v,{pathExt:a}))if(e.all)n.push(v);else return v}catch{}}}if(e.all&&n.length)return n;if(e.nothrow)return null;throw yW(t)};IW.exports=EW;EW.sync=a8e});var vW=U((hPt,GR)=>{"use strict";var BW=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"};GR.exports=BW;GR.exports.default=BW});var xW=U((gPt,PW)=>{"use strict";var DW=Ie("path"),l8e=wW(),c8e=vW();function SW(t,e){let r=t.options.env||process.env,o=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let u;try{u=l8e.sync(t.command,{path:r[c8e({env:r})],pathExt:e?DW.delimiter:void 0})}catch{}finally{n&&process.chdir(o)}return u&&(u=DW.resolve(a?t.options.cwd:"",u)),u}function u8e(t){return SW(t)||SW(t,!0)}PW.exports=u8e});var bW=U((dPt,YR)=>{"use strict";var WR=/([()\][%!^"`<>&|;, *?])/g;function A8e(t){return t=t.replace(WR,"^$1"),t}function f8e(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(WR,"^$1"),e&&(t=t.replace(WR,"^$1")),t}YR.exports.command=A8e;YR.exports.argument=f8e});var kW=U((mPt,QW)=>{"use strict";QW.exports=/^#!(.*)/});var RW=U((yPt,FW)=>{"use strict";var p8e=kW();FW.exports=(t="")=>{let e=t.match(p8e);if(!e)return null;let[r,o]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?o:o?`${a} ${o}`:a}});var NW=U((CPt,TW)=>{"use strict";var KR=Ie("fs"),h8e=RW();function g8e(t){let r=Buffer.alloc(150),o;try{o=KR.openSync(t,"r"),KR.readSync(o,r,0,150,0),KR.closeSync(o)}catch{}return h8e(r.toString())}TW.exports=g8e});var UW=U((EPt,MW)=>{"use strict";var d8e=Ie("path"),LW=xW(),OW=bW(),m8e=NW(),y8e=process.platform==="win32",C8e=/\.(?:com|exe)$/i,E8e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function I8e(t){t.file=LW(t);let e=t.file&&m8e(t.file);return e?(t.args.unshift(t.file),t.command=e,LW(t)):t.file}function w8e(t){if(!y8e)return t;let e=I8e(t),r=!C8e.test(e);if(t.options.forceShell||r){let o=E8e.test(e);t.command=d8e.normalize(t.command),t.command=OW.command(t.command),t.args=t.args.map(n=>OW.argument(n,o));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function B8e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let o={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?o:w8e(o)}MW.exports=B8e});var qW=U((IPt,HW)=>{"use strict";var VR=process.platform==="win32";function JR(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function v8e(t,e){if(!VR)return;let r=t.emit;t.emit=function(o,a){if(o==="exit"){let n=_W(a,e,"spawn");if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function _W(t,e){return VR&&t===1&&!e.file?JR(e.original,"spawn"):null}function D8e(t,e){return VR&&t===1&&!e.file?JR(e.original,"spawnSync"):null}HW.exports={hookChildProcess:v8e,verifyENOENT:_W,verifyENOENTSync:D8e,notFoundError:JR}});var ZR=U((wPt,uy)=>{"use strict";var jW=Ie("child_process"),zR=UW(),XR=qW();function GW(t,e,r){let o=zR(t,e,r),a=jW.spawn(o.command,o.args,o.options);return XR.hookChildProcess(a,o),a}function S8e(t,e,r){let o=zR(t,e,r),a=jW.spawnSync(o.command,o.args,o.options);return a.error=a.error||XR.verifyENOENTSync(a.status,o),a}uy.exports=GW;uy.exports.spawn=GW;uy.exports.sync=S8e;uy.exports._parse=zR;uy.exports._enoent=XR});function YW(t){WW=t}function UI(){return typeof $R>"u"&&($R=WW()),$R}var $R,WW,eT=dt(()=>{WW=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var KW=U((ID,rT)=>{var P8e=Object.assign({},Ie("fs")),tT=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},o,a;r.ready=new Promise(function(Be,xe){o=Be,a=xe});var n={},u;for(u in r)r.hasOwnProperty(u)&&(n[u]=r[u]);var A=[],p="./this.program",h=function(Be,xe){throw xe},E=!1,w=!0,v="";function b(Be){return r.locateFile?r.locateFile(Be,v):v+Be}var C,R,L,_;w&&(E?v=Ie("path").dirname(v)+"/":v=__dirname+"/",C=function(xe,Ve){var vt=$n(xe);return vt?Ve?vt:vt.toString():(L||(L=P8e),_||(_=Ie("path")),xe=_.normalize(xe),L.readFileSync(xe,Ve?null:"utf8"))},R=function(xe){var Ve=C(xe,!0);return Ve.buffer||(Ve=new Uint8Array(Ve)),De(Ve.buffer),Ve},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),A=process.argv.slice(2),h=function(Be){process.exit(Be)},r.inspect=function(){return"[Emscripten Module object]"});var V=r.print||console.log.bind(console),re=r.printErr||console.warn.bind(console);for(u in n)n.hasOwnProperty(u)&&(r[u]=n[u]);n=null,r.arguments&&(A=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var oe=0,pe=function(Be){oe=Be},he;r.wasmBinary&&(he=r.wasmBinary);var ve=r.noExitRuntime||!0;typeof WebAssembly!="object"&&ki("no native wasm support detected");function ge(Be,xe,Ve){switch(xe=xe||"i8",xe.charAt(xe.length-1)==="*"&&(xe="i32"),xe){case"i1":return _e[Be>>0];case"i8":return _e[Be>>0];case"i16":return lp((Be>>1)*2);case"i32":return ks((Be>>2)*4);case"i64":return ks((Be>>2)*4);case"float":return gu((Be>>2)*4);case"double":return ap((Be>>3)*8);default:ki("invalid type for getValue: "+xe)}return null}var le,Pe=!1,g;function De(Be,xe){Be||ki("Assertion failed: "+xe)}function Ce(Be){var xe=r["_"+Be];return De(xe,"Cannot call unknown function "+Be+", make sure it is exported"),xe}function de(Be,xe,Ve,vt,tr){var Zr={string:function(yi){var la=0;if(yi!=null&&yi!==0){var ja=(yi.length<<2)+1;la=ee(ja),ut(yi,la,ja)}return la},array:function(yi){var la=ee(yi.length);return Me(yi,la),la}};function Tn(yi){return xe==="string"?me(yi):xe==="boolean"?Boolean(yi):yi}var _r=Ce(Be),ei=[],Ti=0;if(vt)for(var Kn=0;Kn<vt.length;Kn++){var qa=Zr[Ve[Kn]];qa?(Ti===0&&(Ti=Ha()),ei[Kn]=qa(vt[Kn])):ei[Kn]=vt[Kn]}var aa=_r.apply(null,ei);return aa=Tn(aa),Ti!==0&&oa(Ti),aa}function ne(Be,xe,Ve,vt){Ve=Ve||[];var tr=Ve.every(function(Tn){return Tn==="number"}),Zr=xe!=="string";return Zr&&tr&&!vt?Ce(Be):function(){return de(Be,xe,Ve,arguments,vt)}}var Z=new TextDecoder("utf8");function me(Be,xe){if(!Be)return"";for(var Ve=Be+xe,vt=Be;!(vt>=Ve)&&qe[vt];)++vt;return Z.decode(qe.subarray(Be,vt))}function be(Be,xe,Ve,vt){if(!(vt>0))return 0;for(var tr=Ve,Zr=Ve+vt-1,Tn=0;Tn<Be.length;++Tn){var _r=Be.charCodeAt(Tn);if(_r>=55296&&_r<=57343){var ei=Be.charCodeAt(++Tn);_r=65536+((_r&1023)<<10)|ei&1023}if(_r<=127){if(Ve>=Zr)break;xe[Ve++]=_r}else if(_r<=2047){if(Ve+1>=Zr)break;xe[Ve++]=192|_r>>6,xe[Ve++]=128|_r&63}else if(_r<=65535){if(Ve+2>=Zr)break;xe[Ve++]=224|_r>>12,xe[Ve++]=128|_r>>6&63,xe[Ve++]=128|_r&63}else{if(Ve+3>=Zr)break;xe[Ve++]=240|_r>>18,xe[Ve++]=128|_r>>12&63,xe[Ve++]=128|_r>>6&63,xe[Ve++]=128|_r&63}}return xe[Ve]=0,Ve-tr}function ut(Be,xe,Ve){return be(Be,qe,xe,Ve)}function H(Be){for(var xe=0,Ve=0;Ve<Be.length;++Ve){var vt=Be.charCodeAt(Ve);vt>=55296&&vt<=57343&&(vt=65536+((vt&1023)<<10)|Be.charCodeAt(++Ve)&1023),vt<=127?++xe:vt<=2047?xe+=2:vt<=65535?xe+=3:xe+=4}return xe}function yt(Be){var xe=H(Be)+1,Ve=Bl(xe);return Ve&&be(Be,_e,Ve,xe),Ve}function Me(Be,xe){_e.set(Be,xe)}function Te(Be,xe){return Be%xe>0&&(Be+=xe-Be%xe),Be}var Qe,_e,qe,At,Oe,x,I,P,y,F;function J(Be){Qe=Be,r.HEAP_DATA_VIEW=F=new DataView(Be),r.HEAP8=_e=new Int8Array(Be),r.HEAP16=At=new Int16Array(Be),r.HEAP32=x=new Int32Array(Be),r.HEAPU8=qe=new Uint8Array(Be),r.HEAPU16=Oe=new Uint16Array(Be),r.HEAPU32=I=new Uint32Array(Be),r.HEAPF32=P=new Float32Array(Be),r.HEAPF64=y=new Float64Array(Be)}var X=r.INITIAL_MEMORY||16777216,$,ie=[],ke=[],Ne=[],st=!1;function ht(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)Pt(r.preRun.shift());no(ie)}function Ut(){st=!0,no(ke)}function Xt(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Dr(r.postRun.shift());no(Ne)}function Pt(Be){ie.unshift(Be)}function tn(Be){ke.unshift(Be)}function Dr(Be){Ne.unshift(Be)}var fr=0,Br=null,jr=null;function Hn(Be){fr++,r.monitorRunDependencies&&r.monitorRunDependencies(fr)}function bs(Be){if(fr--,r.monitorRunDependencies&&r.monitorRunDependencies(fr),fr==0&&(Br!==null&&(clearInterval(Br),Br=null),jr)){var xe=jr;jr=null,xe()}}r.preloadedImages={},r.preloadedAudios={};function ki(Be){r.onAbort&&r.onAbort(Be),Be+="",re(Be),Pe=!0,g=1,Be="abort("+Be+"). Build with -s ASSERTIONS=1 for more info.";var xe=new WebAssembly.RuntimeError(Be);throw a(xe),xe}var gs="data:application/octet-stream;base64,";function to(Be){return Be.startsWith(gs)}var Di="data:application/octet-stream;base64,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AQsgAEEAOgAAQQAPCyAAKAIEIgNFBEBBAA8LIAAgAjcDECADIAGnaigAAAtVAgF+AX8gAARAAkAgACkDCFANAEIBIQEDQCAAKAIAIAJBBHRqEDogASAAKQMIWg0BIAGnIQIgAUIBfCEBDAALAAsgACgCABAGIAAoAigQECAAEAYLC2QBAn8CQAJAAkAgAEUEQCABpxAIIgNFDQJBGBAIIgJFDQEMAwsgACEDQRgQCCICDQJBAA8LIAMQBgtBAA8LIAJCADcDECACIAE3AwggAiADNgIEIAJBAToAACACIABFOgABIAILnQECAn4BfwJAAkAgAC0AAEUNACAAKQMQIgJCd1YNACACQgh8IgMgACkDCFgNAQsgAEEAOgAADwsgACgCBCIERQRADwsgACADNwMQIAQgAqdqIgAgAUI4iDwAByAAIAFCMIg8AAYgACABQiiIPAAFIAAgAUIgiDwABCAAIAFCGIg8AAMgACABQhCIPAACIAAgAUIIiDwAASAAIAE8AAAL8AICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgA2AgAgAyACIARrQXxxIgJqIgFBBGsgADYCACACQQlJDQAgAyAANgIIIAMgADYCBCABQQhrIAA2AgAgAUEMayAANgIAIAJBGUkNACADIAA2AhggAyAANgIUIAMgADYCECADIAA2AgwgAUEQayAANgIAIAFBFGsgADYCACABQRhrIAA2AgAgAUEcayAANgIAIAIgA0EEcUEYciIBayICQSBJDQAgAK1CgYCAgBB+IQUgASADaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLC28BA38gAEEMaiECAkACfyAAKAIgIgFFBEBBfyEBQRIMAQsgACABQQFrIgM2AiBBACEBIAMNASAAQQBCAEECEA4aIAAoAgAiAEUNASAAEBtBf0oNAUEUCyEAIAIEQCACQQA2AgQgAiAANgIACwsgAQufAQIBfwF+An8CQAJ+IAAoAgAiAygCJEEBRkEA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RQ0AIAQtAAxFDQFBFyEFIAcNAQtBACECIAMgAEEIaiADGyIABEAgAEEANgIEIAAgBTYCAAsLIAILbgEBfyMAQYACayIFJAACQCAEQYDABHENACACIANMDQAgBSABQf8BcSACIANrIgJBgAIgAkGAAkkiARsQGiABRQRAA0AgACAFQYACEC4gAkGAAmsiAkH/AUsNAAsLIAAgBSACEC4LIAVBgAJqJAALUgECf0H0mAEoAgAiASAAQQNqQXxxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABADRQ0BC0H0mAEgADYCACABDwtB+JsBQTA2AgBBfwuGBQEGfyAAKAIwIgNBhgJrIQYgACgCPCECIAMhAQNAIAAoAkQgAiAAKAJkIgRqayECIAEgBmogBE0EQCAAKAJIIgEgASADaiADEAkaAkAgAyAAKAJoIgFNBEAgACABIANrNgJoDAELIABCADcDaAsgACAAKAJkIANrIgE2AmQgACAAKAJUIANrNgJUIAEgACgCqC1JBEAgACABNgKoLQsgAEHQmAEoAgARBAAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJkaiAFaiEFIAEgBCACazYCBAJAIAEoAhwoAhRBAkYEQCABIAUgAhBADAELIAUgASgCACACEAkhBCABKAIcKAIUQQFHDQAgASABKAIwIAQgAkHImAEoAgARAAA2AjALIAEgASgCACACajYCACABIAEoAgggAmo2AgggACgCPAUgBQsgAmoiAjYCPAJAIAAoAqgtIgEgAmpBA0kNACAAKAJkIAFrIgEEQCAAIAFBAWtBxJgBKAIAEQEAGiAAKAI8IQILIAAoAqgtIAJBAUZrIgRFDQAgACABIARBwJgBKAIAEQcAIAAgACgCqC0gBGs2AqgtIAAoAjwhAgsgAkGFAksNACAAKAIAKAIERQ0AIAAoAjAhAQwBCwsCQCAAKAJEIgIgACgCQCIDTQ0AIAACfyAAKAI8IAAoAmRqIgEgA0sEQCAAKAJIIAFqQQAgAiABayIDQYICIANBggJJGyIDEBogASADagwBCyABQYICaiIBIANNDQEgACgCSCADakEAIAIgA2siAiABIANrIgMgAiADSRsiAxAaIAAoAkAgA2oLNgJACws3ACAAQn83AxAgAEEANgIIIABCADcDACAAQQA2AjAgAEL/////DzcDKCAAQgA3AxggAEIANwMgC6UBAQF/QdgAEAgiAUUEQEEADwsCQCAABEAgASAAQdgAEAkaDAELIAFCADcDICABQQA2AhggAUL/////DzcDECABQQA7AQwgAUG/hig2AgggAUEBOgAGIAFBADoABCABQgA3A0ggAUGAgNiNeDYCRCABQgA3AyggAUIANwMwIAFCADcDOCABQUBrQQA7AQAgAUIANwNQCyABQQE6AAUgAUEANgIAIAELWAICfgF/AkACQCAALQAARQ0AIAApAxAiAyACrXwiBCADVA0AIAQgACkDCFgNAQsgAEEAOgAADwsgACgCBCIFRQRADwsgACAENwMQIAUgA6dqIAEgAhAJGguWAQECfwJAAkAgAkUEQCABpxAIIgVFDQFBGBAIIgQNAiAFEAYMAQsgAiEFQRgQCCIEDQELIAMEQCADQQA2AgQgA0EONgIAC0EADwsgBEIANwMQIAQgATcDCCAEIAU2AgQgBEEBOgAAIAQgAkU6AAEgACAFIAEgAxBpQQBIBH8gBC0AAQRAIAQoAgQQBgsgBBAGQQAFIAQLC5sCAQN/IAAtAABBIHFFBEACQCABIQMCQCACIAAiASgCECIABH8gAAUCfyABIAEtAEoiAEEBayAAcjoASiABKAIAIgBBCHEEQCABIABBIHI2AgBBfwwBCyABQgA3AgQgASABKAIsIgA2AhwgASAANgIUIAEgACABKAIwajYCEEEACw0BIAEoAhALIAEoAhQiBWtLBEAgASADIAIgASgCJBEAABoMAgsCfyABLABLQX9KBEAgAiEAA0AgAiAAIgRFDQIaIAMgBEEBayIAai0AAEEKRw0ACyABIAMgBCABKAIkEQAAIARJDQIgAyAEaiEDIAEoAhQhBSACIARrDAELIAILIQAgBSADIAAQCRogASABKAIUIABqNgIUCwsLCxAAIAAoAggQBiAAQQA2AggLWQIBfwF+AkACf0EAIABFDQAaIACtIAGtfiIDpyICIAAgAXJBgIAESQ0AGkF/IAIgA0IgiKcbCyICEAgiAEUNACAAQQRrLQAAQQNxRQ0AIABBACACEBoLIAAL8AEBAn9BfyEBAkAgAC0AKA0AIAAoAiRBA0YEQCAAQQxqBEAgAEEANgIQIABB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DwsCQAJAIAAgASACIAMQhwEiBEUNAEEYEAgiAkUEQCADBEAgA0EANgIEIANBDjYCAAsCQCAEKAIoIgBFBEAgBCkDGCEBDAELIABBADYCKCAEKAIoQgA3AyAgBCAEKQMYIgUgBCkDICIBIAEgBVQbIgE3AxgLIAQpAwggAVYEQANAIAQoAgAgAadBBHRqKAIAEAYgAUIBfCIBIAQpAwhUDQALCyAEKAIAEAYgBCgCBBAGIAQQBgwBCyACQQA2AhQgAiAENgIQIAJBABABNgIMIAJBADYCCCACQgA3AgACf0E4EAgiAEUEQCADBEAgA0EANgIEIANBDjYCAAtBAAwBCyAAQQA2AgggAEIANwMAIABCADcDICAAQoCAgIAQNwIsIABBADoAKCAAQQA2AhQgAEIANwIMIABBADsBNCAAIAI2AgggAEEjNgIEIABCPyACQQBCAEEOQSMRDAAiASABQgBTGzcDGCAACyIADQEgAigCECIDBEACQCADKAIoIgBFBEAgAykDGCEBDAELIABBADYCKCADKAIoQgA3AyAgAyADKQMYIgUgAykDICIBIAEgBVQbIgE3AxgLIAMpAwggAVYEQANAIAMoAgAgAadBBHRqKAIAEAYgAUIBfCIBIAMpAwhUDQALCyADKAIAEAYgAygCBBAGIAMQBgsgAhAGC0EAIQALIAALFAAgABBBIAAoAgAQICAAKAIEECALiwwBBn8gACABaiEFAkACQCAAKAIEIgJBAXENACACQQNxRQ0BIAAoAgAiAiABaiEBAkAgACACayIAQbycASgCAEcEQCACQf8BTQRAIAAoAggiBCACQQN2IgJBA3RB0JwBakYaIAAoAgwiAyAERw0CQaicAUGonAEoAgBBfiACd3E2AgAMAwsgACgCGCEGAkAgACAAKAIMIgNHBEAgACgCCCICQbicASgCAEkaIAIgAzYCDCADIAI2AggMAQsCQCAAQRRqIgIoAgAiBA0AIABBEGoiAigCACIEDQBBACEDDAELA0AgAiEHIAQiA0EUaiICKAIAIgQNACADQRBqIQIgAygCECIEDQALIAdBADYCAAsgBkUNAgJAIAAgACgCHCIEQQJ0QdieAWoiAigCAEYEQCACIAM2AgAgAw0BQaycAUGsnAEoAgBBfiAEd3E2AgAMBAsgBkEQQRQgBigCECAARhtqIAM2AgAg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ACIIQiCIpyEEIAinIQEMAwsgAUEHTQRAIAAgAmpBAWshByABIAJJBEAgA0EEaiEGA0AgByAAa0EBaiIEIAEgASAESxsiBUEITwRAA0AgACADKQAANwAAIANBCGohAyAAQQhqIQAMAAsACyAFQQRJBH8gAwUgACADKAAANgAAIAVBBGshBSAAQQRqIQAgBgshBCAFQQJPBEAgACAELwAAOwAAIAVBAmshBSAEQQJqIQQgAEECaiEACyAFQQFGBEAgACAELQAAOgAAIABBAWohAAsgAiABayICIAFLDQALIAJFDQULAkAgByAAa0EBaiIBIAIgASACSRsiAkEISQ0AIAJBCGsiBEEDdkEBakEHcSIBBEADQCAAIAMpAAA3AAAgAkEIayECIANBCGohAyAAQQhqIQAgAUEBayIBDQALCyAEQThJDQADQCAAIAMpAAA3AAAgACADKQAINwAIIAAgAykAEDcAECAAIAMpABg3ABggACADKQAgNwAgIAAgAykAKDcAKCAAIAMpADA3ADAgACADKQA4NwA4IANBQGshAyAAQUBrIQAgAkFAaiICQQdLDQALCyACQQRPBEAgACADKAAANgAAIAJBBGshAiADQQRqIQMgAEEEaiEACyACQQJPBEAgACADLwAAOwAAIAJBAmshAiADQQJqIQMgAEECaiEACyACQQFHDQQgACADLQAAOgAAIABBAWoPCyAAIAMpAAA3AAAgACACQQFrIgFBB3FBAWoiAmohACABQQhJDQMgAiADaiEDIAFBA3YiAkEBayEEIAJBB3EiAQRAA0AgACADKQAANwAAIAJBAWshAiADQQhqIQMgAEEIaiEAIAFBAWsiAQ0ACwsgBEEHSQ0DA0AgACADKQAANwAAIAAgAykACDcACCAAIAMpABA3ABAgACADKQAYNwAYIAAgAykAIDcAICAAIAMpACg3ACggACADKQAwNwAwIAAgAykAODcAOCADQUBrIQMgAEFAayEAIAJBCGsiAg0ACwwDCyADLQAAQYGChAhsCyIBIQQLIAJBB3EhBgJAIAJBeHEiAkUNACABrSAErUIghoQhCCACQQhrIgRBA3ZBAWpBB3EiAQRAA0AgACAINwAAIAJBCGshAiAAQQhqIQAgAUEBayIBDQALCyAEQThJDQADQCAAIAg3ADggACAINwAwIAAgCDcAKCAAIAg3ACAgACAINwAYIAAgCDcAECAAIAg3AAggACAINwAAIABBQGshACACQUBqIgINAAsLIAZFDQAgACADIAYQCSAGaiEACyAADwsgACADLQABOgABIAJBAkYEQCAAQQJqDwsgACADLQACOgACIAJBA0YEQCAAQQNqDwsgACADLQADOgADIAJBBEYEQCAAQQRqDwsgACADLQAEOgAEIAJBBUYEQCAAQQVqDwsgACADLQAFOgAFIAJBBkYEQCAAQQZqDwsgACADLQAGOgAGIABBB2oLAwABC2wBA38CQCABKAIAIgNBB0sNACADIAIoAgBPDQAgACADayEEA0AgACAEKQAANwAAIAIgAigCACABKAIAIgVrNgIAIAEgASgCAEEBdCIDNgIAIAAgBWohACADQQdLDQEgAyACKAIASQ0ACwsgAAu8AgEBfwJAIAMgAGtBAWoiAyACIAIgA0sbIgJBCEkNACACQQhrIgRBA3ZBAWpBB3EiAwRAA0AgACABKQAANwAAIAJBCGshAiABQQhqIQEgAEEIaiEAIANBAWsiAw0ACwsgBEE4SQ0AA0AgACABKQAANwAAIAAgASkACDcACCAAIAEpABA3ABAgACABKQAYNwAYIAAgASkAIDcAICAAIAEpACg3ACggACABKQAwNwAwIAAgASkAODcAOCABQUBrIQEgAEFAayEAIAJBQGoiAkEHSw0ACwsgAkEETwRAIAAgASgAADYAACACQQRrIQIgAUEEaiEBIABBBGohAAsgAkECTwRAIAAgAS8AADsAACACQQJrIQIgAUECaiEBIABBAmohAAsgAkEBRgR/IAAgAS0AADoAACAAQQFqBSAACwvnAQECfyAAIAEpAAA3AAAgACACQQFrIgJBB3FBAWoiA2ohAAJAIAJBCEkNACABIANqIQEgAkEDdiICQQFrIQQgAkEHcSIDBEADQCAAIAEpAAA3AAAgAkEBayECIAFBCGohASAAQQhqIQAgA0EBayIDDQALCyAEQQdJDQADQCAAIAEpAAA3AAAgACABKQAINwAIIAAgASkAEDcAECAAIAEpABg3ABggACABKQAgNwAgIAAgASkAKDcAKCAAIAEpADA3ADAgACABKQA4NwA4IAFBQGshASAAQUBrIQAgAkEIayICDQALCyAAC/wFAQR/IABB//8DcSEDIABBEHYhBEEBIQAgAkEB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ADYCBCACQQ42AgALDAELIANBARB0IAMgARBmEBIgAyAFIAQoAgwQLAJ/IAMtAABFBEAgAgRAIAJBADYCBCACQRQ2AgALQQAMAQsgACADLQAABH4gAykDEAVCAAunQf//A3EgAygCBBBICyEGIAMQBwsgBEEQaiQAIAYL4AECAn8BfkEwEAgiAkUEQCABBEAgAUEANgIEIAFBDjYCAAtBAA8LIAJCADcDCCACQQA2AgAgAkIANwMQIAJCADcDGCACQgA3AyAgAkIANwAlIABQBEAgAg8LAkAgAEL/////AFYNACAAp0EEdBAIIgNFDQAgAiADNgIAQQAhAUIBIQQDQCADIAFBBHRqIgFCADcCACABQgA3AAUgACAEUgRAIASnIQEgBEIBfCEEDAELCyACIAA3AwggAiAANwMQIAIPCyABBEAgAUEANgIEIAFBDjYCAAtBABAQIAIQBkEAC+4BAgN/AX4jAEEQayIEJAACQCAEQQxqQgQQGCIDRQRAQX8hAgwBCwJAIAEEQCACQYAGcSEFA0ACQCAFIAEoAgRxRQ0AAkAgAykDCEIAVARAIANBADoAAAwBCyADQgA3AxAgA0EBOgAACyADIAEvAQgQDSADIAEvAQoQDSADLQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALQX8hAgwEC0F/IQIgACAEQQxqQgQQHEEASA0DIAEzAQoiBlANACAAIAEoAgwgBhAcQQBIDQMLIAEoAgAiAQ0ACwtBACECCyADEAcLIARBEGokACACCzwBAX8gAARAIAFBgAZxIQEDQCABIAAoAgRxBEAgAiAALwEKakEEaiECCyAAKAIAIgANAAsLIAJB//8DcQucAQEDfyAARQRAQQAPCyAAIQMDQAJ/AkACQCAALwEIIgFB9OABTQRAIAFBAUYNASABQfXGAUYNAQwCCyABQYGyAkYNACABQfXgAUcNAQsgACgCACEBIABBADYCACAAKAIMEAYgABAGIAEgAyAAIANGGyEDAkAgAkUEQEEAIQIMAQsgAiABNgIACyABDAELIAAiAigCAAsiAA0ACyADC7IEAgV/AX4CQAJAAkAgACABrRAYIgEEQCABLQAADQFBACEADAILIAQEQCAEQQA2AgQgBEEONgIAC0EADwtBACEAA0AgAS0AAAR+IAEpAwggASkDEH0FQgALQgRUDQEgARALIQcgASABEAsiBq0QEyIIRQRAQQAhAiAEBEAgBEEANgIEIARBFTYCAAsgARAHIABFDQMDQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsMAwsCQAJAQRAQCCIFBEAgBSAGOwEKIAUgBzsBCCAFIAI2AgQgBUEANgIAIAZFDQEgBSAIIAYQZyIGNgIMIAYNAiAFEAYLQQAhAiAEBEAgBEEANgIEIARBDjYCAAsgARAHIABFDQQDQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsMBAsgBUEANgIMCwJAIABFBEAgBSEADAELIAkgBTYCAAsgBSEJIAEtAAANAAsLAkAgAS0AAAR/IAEpAxAgASkDCFEFQQALDQAgASABLQAABH4gASkDCCABKQMQfQVCAAsiCkL/////D4MQEyECAkAgCqciBUEDSw0AIAJFDQAgAkHBFCAFEDxFDQELQQAhAiAEBEAgBEEANgIEIARBFTYCAAsgARAHIABFDQEDQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsMAQsgARAHIAMEQCADIAA2AgBBAQ8LQQEhAiAARQ0AA0AgACgCACEBIAAoAgwQBiAAEAYgASIADQALCyACC74BAQV/IAAEfyAAIQIDQCACIgQoAgAiAg0ACyABBEADQCABIgMvAQghBiADKAIAIQEgACECAkACQANAAkAgAi8BCCAGRw0AIAIvAQoiBSADLwEKRw0AIAVFDQIgAigCDCADKAIMIAUQPEUNAgsgAigCACICDQALIANBADYCACAEIAM2AgAgAyEEDAELIAIgAigCBCADKAIEQYAGcXI2AgQgA0EANgIAIAMoAgwQBiADEAYLIAENAAsLIAAFIAELC1UCAn4BfwJAAkAgAC0AAEUNACAAKQMQIgJCAXwiAyACVA0AIAMgACkDCFgNAQsgAEEAOgAADwsgACgCBCIERQRADwsgACADNwMQIAQgAqdqIAE6AAALWgICfgF/An8CQAJAIAAtAABFDQAgACkDECIBQgF8IgIgAVQNACACIAApAwhYDQELIABBADoAAEEADAELQQAgACgCBCIDRQ0AGiAAIAI3AxAgAyABp2otAAALC94BAQN/IAEgACkDMFoEQCAAQQhqBEAgAEEANgIMIABBEjYCCAtBfw8LIABBCGohAiAALQAYQQJxBEAg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DAELIAFBGU4EQCAAIAAoAhAiAUEBajYCECABIAAoAgRqIAApA7gtIgI8AAAgACAAKAIQIgFBAWo2AhAgASAAKAIEaiACQgiIPAAAIAAgACgCECIBQQFqNgIQIAEgACgCBGogAkIQiDwAACAAIAAoAhAiAUEBajYCECABIAAoAgRqIAJCGIg8AAAgACAAQbwtajUCADcDuC0gACAAKALALUEgayIBNgLALQsgAUEJTgRAIAAgACgCECIBQQFqNgIQIAEgACgCBGogACkDuC0iAjwAACAAIAAoAhAiAUEBajYCECABIAAoAgRqIAJCCIg8AAAgACAAKQO4LUIQiDcDuC0gACAAKALALUEQayIBNgLALQsgAUEBSA0AIAAgACgCECIBQQFqNgIQIAEgACgCBGogACkDuC08AAALIABBADYCwC0gAEIANwO4LQvwBAEDfyAAQYgBaiECA0AgAiABQQJ0IgNqQQA7AQAgAiADQQRyakEAOwEAIAFBAmoiAUGeAkcNAAsgAEEAOwHwFCAAQQA7AfwSIABBuBVqQQA7AQAgAEG0FWpBADsBACAAQbAVakEAOwEAIABBrBVqQQA7AQAgAEGoFWpBADsBACAAQaQVakEAOwEAIABBoBVqQQA7AQAgAEGcFWpBADsBACAAQZgVakEAOwEAIABBlBVqQQA7AQAgAEGQFWpBADsBACAAQYwVakEAOwEAIABBiBVqQQA7AQAgAEGEFWpBADsBACAAQYAVakEAOwEAIABB/BRqQQA7AQAgAEH4FGpBADsBACAAQfQUakEAOwEAIABB8BNqQQA7AQAgAEHsE2pBADsBACAAQegTakEAOwEAIABB5BNqQQA7AQAgAEHgE2pBADsBACAAQdwTakEAOwEAIABB2BNqQQA7AQAgAEHUE2pBADsBACAAQdATakEAOwEAIABBzBNqQQA7AQAgAEHIE2pBADsBACAAQcQTakEAOwEAIABBwBNqQQA7AQAgAEG8E2pBADsBACAAQbgTakEAOwEAIABBtBNqQQA7AQAgAEGwE2pBADsBACAAQawTakEAOwEAIABBqBNqQQA7AQAgAEGkE2pBADsBACAAQaATakEAOwEAIABBnBNqQQA7AQAgAEGYE2pBADsBACAAQZQTakEAOwEAIABBkBNqQQA7AQAgAEGME2pBADsBACAAQYgTakEAOwEA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AAwFCyABLQAPDQQgASgCrEAgASgCqEAoAggRAgCsIQUMBAsgA0IIWgR+IAIgASgCADYCACACIAEoAgQ2AgRCCAVCfwshBQwDCyABRQ0CIAEoAqxAIAEoAqhAKAIEEQQAIAEQLyABEAYMAgsgB0F/NgIAQRAgBxAkQj+EIQUMAQsgAQRAIAFBADYCBCABQRQ2AgALQn8hBQsgB0EQaiQAIAULYwBByAAQCCIARQRAQfibASgCACEBIAIEQCACIAE2AgQgAkEBNgIACyAADwsgAEEAOgAMIABBADoABCAAIAI2AgAgAEEANgI4IABCADcDMCAAIAFBCSABQQFrQQlJGzYCCCAAC0gBAX8gAEIANwIEIAAgATYCAAJAIAFBAEgNAEGwEygCACABTA0AIAFBAnRBwBNqKAIAQQFHDQBB+JsBKAIAIQILIAAgAjYCBAvuhwECJH8BfiACKQMAIScgACABNgIcIAAgJ0L/////DyAnQv////8PVBs+AiAgAEEQaiEKAn8gAC0ABARAAn8gAC0ADEECdCENQX4hAQJAAkACQCAKRQ0AIAooAiBFDQAgCigCJEUNACAKKAIcIgNFDQAgAygCACAKRw0AAkACQCADKAIgIgVBOWsOOQECAgICAgICAgICAgECAgIBAgICAgICAgICAgICAgICAgIBAgICAgICAgICAgIBAgICAgICAgICAQALIAVBmgVGDQAgBUEqRw0BCyANQQVLDQACQAJAIAooAgxFDQAgCigCBCIEBEAgCigCAEUNAQsgBUGaBUcNASANQQRGDQELIApBkPEAKAIANgIYQX4MBAsgCigCEEUNASADKAIkIQEgAyANNgIkAkAgAygCEARAIAMQFAJAIAooAhAiBSADKAIQIgkgBSAJSRsiAUUNACAKKAIMIAMoAgggARAJGiAKIAooAgwgAWo2AgwgAyADKAIIIAFqNgIIIAogCigCFCABajYCFCAKIAooAhAgAWsiBTYCECADIAMoAhAgAWsiCTYCECAJDQAgAyADKAIENgIIQQAhCQsgBQRAIAMoAiAhBQwCCwwECyAEDQAgDUEBdEF3QQAgDUEESxtqIAFBAXRBd0EAIAFBBEobakoNACANQQRGDQAMAgsCQAJAAkACQAJAIAVBKkcEQCAFQZoFRw0BIAooAgRFDQMMBwsgAygCFEUEQCADQfEANgIgDAILIAMoAjRBDHRBgPABayEBAkAgAygCfEECTg0AIAMoAngiBEEBTA0AIARBBUwEQCABQcAAciEBDAELQYABQcABIARBBkYbIAFyIQELIAMgCUEBajYCECADKAIEIAlqIAFBIHIgASADKAJkGyIBQQh2OgAAIAMgAygCECIEQQFqNgIQIAQgAygCBGogAUEfcCABckEfczoAACADKAJkBEAgAyAKKAIwEF0LIApBATYCMCADQfEANgIgIAoQDCADKAIQDQcgAygCICEFCwJAAkACQAJAIAVBOUYEfyADKAIAQQA2AjAgAyADKAIQIgFBAWo2AhAgASADKAIEakEfOgAAIAMgAygCECIBQQFqNgIQIAEgAygCBGpBiwE6AAAgAyADKAIQIgFBAWo2AhAgASADKAIEakEIOgAAAkAgAygCHCIBRQRAIANBABA0IAMgAygCECIBQQFqNgIQIAEgAygCBGpBADoAAEECIQEgAygCeCIEQQlHBEBBBCAEQQJIQQJ0IAMoAnxBAUobIQELIAMgAygCECIEQQFqNgIQIAQgAygCBGogAToAACADIAMoAhAiAUEBajYCECABIAMoAgRqQQM6AAAgA0HxADYCICAKEAwgAygCEEUNAQwNCyABKAIkIQQgASgCHCEFIAEoAhAhByABKAIsIQkgASgCACELIAMgAygCECIIQQFqNgIQQQIhASAIIAMoAgRqIAlBAEdBAXQgC0EAR3IgB0EAR0ECdHIgBUEAR0EDdHIgBEEAR0EEdHI6AAAgAyADKAIcKAIEEDQgAygCeCIEQQlHBEBBBCAEQQJIQQJ0IAMoAnxBAUobIQELIAMgAygCECIEQQFqNgIQIAQgAygCBGogAToAACADKAIcKAIMIQEgAyADKAIQIgRBAWo2AhAgBCADKAIEaiABOgAAIAMoAhwiASgCEAR/IAEoAhQhASADIAMoAhAiBEEBajYCECAEIAMoAgRqIAE6AAAgAyADKAIQIgRBAWo2AhAgBCADKAIEaiABQQh2OgAAIAMoAhwFIAELKAIsBEAgCgJ/IAooAjAhASADKAIQIQRBACADKAIEIgVFDQAaIAEgBSAErUHMmAEoAgARAwALNgIwCyADQcUANgIgIANBADYCGAwCCyADKAIgBSAFC0HFAGsOIwAEBAQBBAQEBAQEBAQEBAQEBAQEBAQCBAQEBAQEBAQEBAQDBAsgAygCHCIEKAIQIgUEQCADKAIMIgkgAygCECIBIAQvARQgAygCGCIHayIEakkEQANAIAMoAgQgAWogBSAHaiAJIAFrIgkQCRogAyADKAIMIgU2AhACQCADKAIcKAIsRQ0AIAEgBU8NACAKAn8gCigCMCEHQQAgAygCBCABaiILRQ0AGiAHIAsgBSABa61BzJgBKAIAEQMACzYCMAsgAyADKAIYIAlqNgIYIAooAhwiARAUAkAgCigCECIFIAEoAhAiByAFIAdJGyIFRQ0AIAooAgwgASgCCCAFEAkaIAogCigCDCAFajYCDCABIAEoAgggBWo2AgggCiAKKAIUIAVqNgIUIAogCigCECAFazYCECABIAEoAhAgBWsiBTYCECAFDQAgASABKAIENgIICyADKAIQDQwgAygCGCEHIAMoAhwoAhAhBUEAIQEgBCAJayIEIAMoAgwiCUsNAAsLIAMoAgQgAWogBSAHaiAEEAkaIAMgAygCECAEaiIENgIQAkAgAygCHCgCLEUNACABIARPDQAgCgJ/IAooAjAhBUEAIAMoAgQgAWoiB0UNABogBSAHIAQgAWutQcyYASgCABEDAAs2AjALIANBADYCGAsgA0HJADYCIAsgAygCHCgCHARAIAMoAhAiASEEA0ACQCABIAMoAgxHDQACQCADKAIcKAIsRQ0AIAEgBE0NACAKAn8gCigCMCEFQQAgAygCBCAEaiIHRQ0AGiAFIAcgASAEa61BzJgBKAIAEQMACzYCMAsgCigCHCIBEBQCQCAKKAIQIgQgASgCECIFIAQgBUkbIgRFDQAgCigCDCABKAIIIAQQCRogCiAKKAIMIARqNgIMIAEgASgCCCAEajYCCCAKIAooAhQgBGo2AhQgCiAKKAIQIARrNgIQIAEgASgCECAEayIENgIQIAQNACABIAEoAgQ2AggLQQAhAUEAIQQgAygCEEUNAAwLCyADKAIcKAIcIQUgAyADKAIYIgdBAWo2AhggBSAHai0AACEFIAMgAUEBajYCECADKAIEIAFqIAU6AAAgBQRAIAMoAhAhAQwBCwsCQCADKAIcKAIsRQ0AIAMoAhAiASAETQ0AIAoCfyAKKAIwIQVBACADKAIEIARqIgdFDQAaIAUgByABIARrrUHMmAEoAgARAwALNgIwCyADQQA2AhgLIANB2wA2AiALAkAgAygCHCgCJEUNACADKAIQIgEhBANAAkAgASADKAIMRw0AAkAgAygCHCgCLEUNACABIARNDQAgCgJ/IAooAjAhBUEAIAMoAgQgBGoiB0UNABogBSAHIAEgBGutQcyYASgCABEDAAs2AjALIAooAhwiARAUAkAgCigCECIEIAEoAhAiBSAEIAVJGyIERQ0AIAooAgwgASgCCCAEEAkaIAogCigCDCAEajYCDCABIAEoAgggBGo2AgggCiAKKAIUIARqNgIUIAogCigCECAEazYCECABIAEoAhAgBGsiBDYCECAEDQAgASABKAIENgIIC0EAIQFBACEEIAMoAhBFDQAMCgsgAygCHCgCJCEFIAMgAygCGCIHQQFqNgIYIAUgB2otAAAhBSADIAFBAWo2AhAgAygCBCABaiAFOgAAIAUEQCADKAIQIQEMAQsLIAMoAhwoAixFDQAgAygCECIBIARNDQAgCgJ/IAooAjAhBUEAIAMoAgQgBGoiB0UNABogBSAHIAEgBGutQcyYASgCABEDAAs2AjALIANB5wA2AiALAkAgAygCHCgCLARAIAMoAgwgAygCECIBQQJqSQRAIAoQDCADKAIQDQJBACEBCyAKKAIwIQQgAyABQQFqNgIQIAMoAgQgAWogBDoAACADIAMoAhAiAUEBajYCECABIAMoAgRqIARBCHY6AAAgAygCAEEANgIwCyADQfEANgIgIAoQDCADKAIQRQ0BDAcLDAYLIAooAgQNAQsgAygCPA0AIA1FDQEgAygCIEGaBUYNAQsCfyADKAJ4IgFFBEAgAyANEFwMAQsCQAJAAkAgAygCfEECaw4CAAECCwJ/AkADQAJAIAMoAjwNACADECkgAygCPA0AIA0NAkEADAMLIAMoAkggAygCZGotAAAhASADIAMoApQtIgRBAWo2ApQtIAQgAygCkC1qQQA6AAAgAyADKAKULSIEQQFqNgKULSAEIAMoApAtakEAOgAAIAMgAygClC0iBEEBajYClC0gBCADKAKQLWogAToAACADIAFBAnRqIgEgAS8BiAFBAWo7AYgBIAMgAygCPEEBazYCPCADIAMoAmRBAWoiBDYCZCADKAKULSADKAKYLUcNACADIAMoAlQiAUEATgR/IAMoAkggAWoFQQALIAQgAWtBABAPIAMgAygCZDYCVCADKAIAIgEoAhwiBBAUAkAgASgCECIFIAQoAhAiByAFIAdJGyIFRQ0AIAEoAgwgBCgCCCAFEAkaIAEgASgCDCAFajYCDCAEIAQoAgggBWo2AgggASABKAIUIAVqNgIUIAEgASgCECAFazYCECAEIAQoAhAgBWsiATYCECABDQAgBCAEKAIENgIICyADKAIAKAIQDQALQQAMAQsgA0EANgKoLSANQQRGBEAgAyADKAJUIgFBAE4EfyADKAJIIAFqBUEACyADKAJkIAFrQQEQDyADIAMoAmQ2AlQgAygCACIBKAIcIgQQFAJAIAEoAhAiBSAEKAIQIgcgBSAHSRsiBUUNACABKAIMIAQoAgggBRAJGiABIAEoAgwgBWo2AgwgBCAEKAIIIAVqNgIIIAEgASgCFCAFajYCFCABIAEoAhAgBWs2AhAgBCAEKAIQIAVrIgE2AhAgAQ0AIAQgBCgCBDYCCAtBA0ECIAMoAgAoAhAbDAELAkAgAygClC1FDQAgAyADKAJUIgFBAE4EfyADKAJIIAFqBUEACyADKAJkIAFrQQAQDyADIAMoAmQ2AlQgAygCACIBKAIcIgQQFAJAIAEoAhAiBSAEKAIQIgcgBSAHSRsiBUUNACABKAIMIAQoAgggBRAJGiABIAEoAgwgBWo2AgwgBCAEKAIIIAVqNgIIIAEgASgCFCAFajYCFCABIAEoAhAgBWs2AhAgBCAEKAIQIAVrIgE2AhAgAQ0AIAQgBCgCBDYCCAsgAygCACgCEA0AQQAMAQtBAQsMAgsCfwJAA0ACQAJAAkACQCADKAI8IghBggJLDQAgAxApAkAgAygCPCIIQYICSw0AIA0NAEEADAcLIAhFDQUgCEECSw0AIAMoAmQhCwwBCyADKAJkIgtFBEBBACELDAELIAMoAkggC2oiDEEBayIBLQAAIgkgDC0AAEcNACAJIAEtAAJHDQAgCSABLQADRw0AIAxBggJqIQ5BfyEBAkACQAJAAkACQAJAA0AgASAMaiIFLQAEIAlGBEAgCSAFLQAFRw0CIAkgBS0ABkcNAyAJIAUtAAdHDQQgCSAMIAFBCGoiBGoiBy0AAEcNByAJIAUtAAlHDQUgCSAFLQAKRw0GIAkgBUELaiIHLQAARw0HIAFB9wFIIQUgBCEBIAUNAQwHCwsgBUEEaiEHDAULIAVBBWohBwwECyAFQQZqIQcMAwsgBUEHaiEHDAILIAVBCWohBwwBCyAFQQpqIQcLIAggByAOa0GCAmoiASABIAhLGyIBQQJLDQELIAMoAkggC2otAAAhASADIAMoApQtIgRBAWo2ApQtIAQgAygCkC1qQQA6AAAgAyADKAKULSIEQQFqNgKULSAEIAMoApAtakEAOgAAIAMgAygClC0iBEEBajYClC0gBCADKAKQLWogAToAACADIAFBAnRqIgEgAS8BiAFBAWo7AYgBIAMgAygCPEEBazYCPCADIAMoAmRBAWoiCzYCZAwBCyADIAMoApQtIgRBAWo2ApQtIAQgAygCkC1qQQE6AAAgAyADKAKULSIEQQFqNgKULSAEIAMoApAtakEAOgAAIAMgAygClC0iBEEBajYClC0gBCADKAKQLWogAUEDazoAACADIAMoAqQtQQFqNgKkLSABQc3pAGotAABBAnQgA2pBjAlqIgQgBC8BAEEBajsBACADQdDlAC0AAEECdGpB/BJqIgQgBC8BAEEBajsBACADIAMoAjwgAWs2AjwgAyADKAJkIAFqIgs2AmQLIAMoApQtIAMoApgtRw0AIAMgAygCVCIBQQBOBH8gAygCSCABagVBAAsgCyABa0EAEA8gAyADKAJkNgJUIAMoAgAiASgCHCIEEBQCQCABKAIQIgUgBCgCECIHIAUgB0kbIgVFDQAgASgCDCAEKAIIIAUQCRogASABKAIMIAVqNgIMIAQgBCgCCCAFajYCCCABIAEoAhQgBWo2AhQgASABKAIQIAVrNgIQIAQgBCgCECAFayIBNgIQIAENACAEIAQoAgQ2AggLIAMoAgAoAhANAAtBAAwBCyADQQA2AqgtIA1BBEYEQCADIAMoAlQiAUEATgR/IAMoAkggAWoFQQALIAMoAmQgAWtBARAPIAMgAygCZDYCVCADKAIAIgEoAhwiBBAUAkAgASgCECIFIAQoAhAiByAFIAdJGyIFRQ0AIAEoAgwgBCgCCCAFEAkaIAEgASgCDCAFajYCDCAEIAQoAgggBWo2AgggASABKAIUIAVqNgIUIAEgASgCECAFazYCECAEIAQoAhAgBWsiATYCECABDQAgBCAEKAIENgIIC0EDQQIgAygCACgCEBsMAQsCQCADKAKULUUNACADIAMoAlQiAUEATgR/IAMoAkggAWoFQQALIAMoAmQgAWtB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ASABKAIodCIFIAEoAtA3akEBIAMoAiARAAAiAzYCOCADRQ0CIAMgBWpBACABKALQNxAaCyABKAIsIgVFBEAgAUIANwIwIAFBASABKAIodCIFNgIsCyAWIA5rIgMgBU8EQCABKAI4IBEgBWsgBRAJGiABQQA2AjQgASABKAIsNgIwDAELIAEoAjQiDSABKAI4aiARIANrIAMgBSANayIFIAMgBUkbIgUQCRogAyAFayIDBEAgASgCOCARIANrIAMQCRogASADNgI0IAEgASgCLDYCMAwBCyABQQAgASgCNCAFaiIDIAMgASgCLCINRhs2AjQgASgCMCIDIA1PDQAgASADIAVqNgIwCyAKIB8gCigCBGsiBSAKKAIIajYCCCAKIBYgCigCEGsiASAKKAIUajYCFCAGIAYoAiAgAWo2AiACQCAGLQAMQQRxRQ0AIAFFDQAgBgJ/IAYoAhQEQAJ/IAYoAhwhA0EAIAooAgwgAWsiDUUNABogAyANIAGtQcyYASgCABEDAAsMAQsgBigCHCAKKAIMIAFrIAFByJgBKAIAEQAACyIDNgIcIAogAzYCMAsgCiAGKAJAIAYoAghBAEdBBnRqIAYoAgQiA0G//gBGQQd0akGAAiADQcL+AEZBCHQgA0HH/gBGG2o2AiwgBCAEQXsgBBsgASAFchshFwwCCyAGQdL+ADYCBAtBfCEXCyAUQRBqJAAgFwshASACIAIpAwAgADUCIH03AwACQAJAAkACQCABQQVqDgcBAgICAgMAAgtBAQ8LIAAoAhQNAEEDDwsgACgCACIABEAgACABNgIEIABBDTYCAAtBAiEBCyABCwkAIABBAToADAtEAAJAIAJC/////w9YBEAgACgCFEUNAQsgACgCACIABEAgAEEANgIEIABBEjYCAAtBAA8LIAAgATYCECAAIAI+AhRBAQu6AQEEfyAAQRBqIQECfyAALQAEBEAgARBeDAELQX4hAwJAIAFFDQAgASgCIEUNACABKAIkIgRFDQAgASgCHCICRQ0AIAIoAgAgAUcNACACKAIEQbT+AGtBH0sNACACKAI4IgMEQCABKAIoIAMgBBEGACABKAIkIQQgASgCHCECCyABKAIoIAIgBBEGAEEAIQMgAUEANgIcCyADCyIBBEAgACgCACIABEAgACABNgIEIABBDTYCAAsLIAFFC5gMAQZ/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IAEQBiAABEAgAEEANgIEIABBDjYCAAsLIABBADYCFAwUCyADQgA3AwAgACABNgIUIAFBQGtCADcDACABQgA3AzgMFAsCQAJAIAJQBEBByAAQCCIDRQ0UIANCADcDACADQgA3AzAgA0EANgIoIANCADcDICADQgA3AxggA0IANwMQIANCADcDCCADQgA3AzggA0EIEAgiATYCBCABDQEgAxAGIAAEQCAAQQA2AgQgAEEONgIACwwUCyACIAAoAhAiASkDMFYEQCAABEAgAEEANgIEIABBEjYCAAsMFAsgASgCKARAIAAEQCAAQQA2AgQgAEEdNgIACwwUCyABKAIEIQMCQCABKQMIIgZCAX0iB1ANAANAAkAgAiADIAcgBH1CAYggBHwiBadBA3RqKQMAVARAIAVCAX0hBwwBCyAFIAZRBEAgBiEFDAMLIAMgBUIBfCIEp0EDdGopAwAgAlYNAgsgBCEFIAQgB1QNAAsLAkAgAiADIAWnIgpBA3RqKQMAfSIEUEUEQCABKAIAIgMgCkEEdGopAwghBwwBCyABKAIAIgMgBUIBfSIFp0EEdGopAwgiByEECyACIAcgBH1UBEAgAARAIABBADYCBCAAQRw2AgALDBQLIAMgBUIBfCIFQQAgABCHASIDRQ0TIAMoAgAgAygCCCIKQQR0akEIayAENwMAIAMoAgQgCkEDdGogAjcDACADIAI3AzAgAyABKQMYIgYgAykDCCIEQgF9IgcgBiAHVBs3AxggASADNgIoIAMgATYCKCABIAQ3AyAgAyAFNwMgDAELIAFCADcDAAsgACADNgIUIAMgBDcDQCADIAI3AzhCACEEDBMLIAAoAhAiAQRAAkAgASgCKCIDRQRAIAEpAxghAgwBCyADQQA2AiggASgCKEIANwMgIAEgASkDGCICIAEpAyAiBSACIAVWGyICNwMYCyABKQMIIAJWBEADQCABKAIAIAKnQQR0aigCABAGIAJCAXwiAiABKQMIVA0ACwsgASgCABAGIAEoAgQQBiABEAYLIAAoAhQhASAAQQA2AhQgACABNgIQDBILIAJCCFoEfiABIAAoAgA2AgAgASAAKAIENgIEQggFQn8LIQQMEQsgACgCECIBBEACQCABKAIoIgNFBEAgASkDGCECDAELIANBADYCKCABKAIoQgA3AyAgASABKQMYIgIgASkDICIFIAIgBVYbIgI3AxgLIAEpAwggAlYEQANAIAEoAgAgAqdBBHRqKAIAEAYgAkIBfCICIAEpAwhUDQALCyABKAIAEAYgASgCBBAGIAEQBgsgACgCFCIBBEACQCABKAIoIgNFBEAgASkDGCECDAELIANBADYCKCABKAIoQgA3AyAgASABKQMYIgIgASkDICIFIAIgBVYbIgI3AxgLIAEpAwggAlYEQANAIAEoAgAgAqdBBHRqKAIAEAYgAkIBfCICIAEpAwhUDQALCyABKAIAEAYgASgCBBAGIAEQBgsgABAGDBALIAAoAhAiAEIANwM4IABBQGtCADcDAAwPCyACQn9XBEAgAARAIABBADYCBCAAQRI2AgALDA4LIAIgACgCECIDKQMwIAMpAzgiBn0iBSACIAVUGyIFUA0OIAEgAykDQCIHpyIAQQR0IgEgAygCAGoiCigCACAGIAMoAgQgAEEDdGopAwB9IgKnaiAFIAopAwggAn0iBiAFIAZUGyIEpxAJIQogByAEIAMoAgAiACABaikDCCACfVGtfCECIAUgBlYEQANAIAogBKdqIAAgAqdBBHQiAWoiACgCACAFIAR9IgYgACkDCCIHIAYgB1QbIganEAkaIAIgBiADKAIAIgAgAWopAwhRrXwhAiAFIAQgBnwiBFYNAAsLIAMgAjcDQCADIAMpAzggBHw3AzgMDgtCfyEEQcgAEAgiA0UNDSADQgA3AwAgA0IANwMwIANBADYCKCADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IANwM4IANBCBAIIgE2AgQgAUUEQCADEAYgAARAIABBADYCBCAAQQ42AgALDA4LIAFCADcDACAAKAIQIgEEQAJAIAEoAigiCkUEQCABKQMYIQQMAQsgCkEANgIoIAEoAihCADcDICABIAEpAxgiAiABKQMgIgUgAiAFVhsiBDcDGAsgASkDCCAEVgRAA0AgASgCACAEp0EEdGooAgAQBiAEQgF8IgQgASkDCFQNAAsLIAEoAgAQBiABKAIEEAYgARAGCyAAIAM2AhBCACEEDA0LIAAoAhQiAQRAAkAgASgCKCIDRQRAIAEpAxghAgwBCyADQQA2AiggASgCKEIANwMgIAEgASkDGCICIAEpAyAiBSACIAVWGyICNwMYCyABKQMIIAJWBEADQCABKAIAIAKn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cm9yAFRlbGwgZXJyb3IASW50ZXJuYWwgZXJyb3IAU2VlayBlcnJvcgBXcml0ZSBlcnJvcgBmaWxlIGVycm9yAFJlYWQgZXJyb3IAWmxpYiBlcnJvcgBkYXRhIGVycm9yAENSQyBlcnJvcgBpbmNvbXBhdGlibGUgdmVyc2lvbgBpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2sAaW5jb3JyZWN0IGhlYWRlciBjaGVjawBpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrAGluY29ycmVjdCBkYXRhIGNoZWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAGhlYWRlciBjcmMgbWlzbWF0Y2gAMS4yLjExLnpsaWItbmcAaW52YWxpZCB3aW5kb3cgc2l6ZQBSZWFkLW9ubHkgYXJjaGl2ZQBOb3QgYSB6aXAgYXJjaGl2ZQBSZXNvdXJjZSBzdGlsbCBpbiB1c2UATWFsbG9jIGZhaWx1cmUAaW52YWxpZCBibG9jayB0eXBlAEZhaWx1cmUgdG8gY3JlYXRlIHRlbXBvcmFyeSBmaWxlAENhbid0IG9wZW4gZmlsZQBObyBzdWNoIGZpbGUAUHJlbWF0dXJlIGVuZCBvZiBmaWxlAENhbid0IHJlbW92ZSBmaWxlAGludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZQBpbnZhbGlkIGRpc3RhbmNlIGNvZGUAdW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QAc3RyZWFtIGVuZABDb21wcmVzc2VkIGRhdGEgaW52YWxpZABNdWx0aS1kaXNrIHppcCBhcmNoaXZlcyBub3Qgc3VwcG9ydGVkAE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkAEVuY3J5cHRpb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQAQ29tcHJlc3Npb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQARW50cnkgaGFzIGJlZW4gZGVsZXRlZABDb250YWluaW5nIHppcCBhcmNoaXZlIHdhcyBjbG9zZWQAQ2xvc2luZyB6aXAgYXJjaGl2ZSBmYWlsZWQAUmVuYW1pbmcgdGVtcG9yYXJ5IGZpbGUgZmFpbGVkAEVudHJ5IGhhcyBiZWVuIGNoYW5nZWQATm8gcGFzc3dvcmQg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AQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQeDZAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdjaAAttBAAAAAQABAAIAAQABQAAAAQABAAIAAQABgAAAAQABgAgACAABgAAAAQABAAQABAABwAAAAgAEAAgACAABwAAAAgAEACAAIAABwAAAAgAIACAAAABCAAAACAAgAACAQAECAAAACAAAgECAQAQCABB0NsAC/cJDAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJ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IGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAEHAmAELdRYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAABwUFAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAJwAAACgAAAApAAAAKgAAACsAAAAsAAAALQBB5JoBCwJQUABBoJsBCxD/////////////////////";to(Di)||(Di=b(Di));function Qs(Be){try{if(Be==Di&&he)return new Uint8Array(he);var xe=$n(Be);if(xe)return xe;if(R)return R(Be);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(Ve){ki(Ve)}}function ro(Be,xe){var Ve,vt,tr;try{tr=Qs(Be),vt=new WebAssembly.Module(tr),Ve=new WebAssembly.Instance(vt,xe)}catch(Tn){var Zr=Tn.toString();throw re("failed to compile wasm module: "+Zr),(Zr.includes("imported Memory")||Zr.includes("memory import"))&&re("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Tn}return[Ve,vt]}function pc(){var Be={a:Ma};function xe(tr,Zr){var Tn=tr.exports;r.asm=Tn,le=r.asm.g,J(le.buffer),$=r.asm.$,tn(r.asm.h),bs("wasm-instantiate")}if(Hn("wasm-instantiate"),r.instantiateWasm)try{var Ve=r.instantiateWasm(Be,xe);return Ve}catch(tr){return re("Module.instantiateWasm callback failed with error: "+tr),!1}var vt=ro(Di,Be);return xe(vt[0]),r.asm}function gu(Be){return F.getFloat32(Be,!0)}function ap(Be){return F.getFloat64(Be,!0)}function lp(Be){return F.getInt16(Be,!0)}function ks(Be){return F.getInt32(Be,!0)}function En(Be,xe){F.setInt32(Be,xe,!0)}function no(Be){for(;Be.length>0;){var xe=Be.shift();if(typeof xe=="function"){xe(r);continue}var Ve=xe.func;typeof Ve=="number"?xe.arg===void 0?$.get(Ve)():$.get(Ve)(xe.arg):Ve(xe.arg===void 0?null:xe.arg)}}function Fs(Be,xe){var Ve=new Date(ks((Be>>2)*4)*1e3);En((xe>>2)*4,Ve.getUTCSeconds()),En((xe+4>>2)*4,Ve.getUTCMinutes()),En((xe+8>>2)*4,Ve.getUTCHours()),En((xe+12>>2)*4,Ve.getUTCDate()),En((xe+16>>2)*4,Ve.getUTCMonth()),En((xe+20>>2)*4,Ve.getUTCFullYear()-1900),En((xe+24>>2)*4,Ve.getUTCDay()),En((xe+36>>2)*4,0),En((xe+32>>2)*4,0);var vt=Date.UTC(Ve.getUTCFullYear(),0,1,0,0,0,0),tr=(Ve.getTime()-vt)/(1e3*60*60*24)|0;return En((xe+28>>2)*4,tr),Fs.GMTString||(Fs.GMTString=yt("GMT")),En((xe+40>>2)*4,Fs.GMTString),xe}function Cl(Be,xe){return Fs(Be,xe)}function El(Be,xe,Ve){qe.copyWithin(Be,xe,xe+Ve)}function io(Be){try{return le.grow(Be-Qe.byteLength+65535>>>16),J(le.buffer),1}catch{}}function Ue(Be){var xe=qe.length;Be=Be>>>0;var Ve=2147483648;if(Be>Ve)return!1;for(var vt=1;vt<=4;vt*=2){var tr=xe*(1+.2/vt);tr=Math.min(tr,Be+100663296);var Zr=Math.min(Ve,Te(Math.max(Be,tr),65536)),Tn=io(Zr);if(Tn)return!0}return!1}function Fn(Be){pe(Be)}function Fi(Be){var xe=Date.now()/1e3|0;return Be&&En((Be>>2)*4,xe),xe}function Rn(){if(Rn.called)return;Rn.called=!0;var Be=new Date().getFullYear(),xe=new Date(Be,0,1),Ve=new Date(Be,6,1),vt=xe.getTimezoneOffset(),tr=Ve.getTimezoneOffset(),Zr=Math.max(vt,tr);En((mi()>>2)*4,Zr*60),En((es()>>2)*4,Number(vt!=tr));function Tn(qa){var aa=qa.toTimeString().match(/\(([A-Za-z ]+)\)$/);return aa?aa[1]:"GMT"}var _r=Tn(xe),ei=Tn(Ve),Ti=yt(_r),Kn=yt(ei);tr<vt?(En(($i()>>2)*4,Ti),En(($i()+4>>2)*4,Kn)):(En(($i()>>2)*4,Kn),En(($i()+4>>2)*4,Ti))}function Ui(Be){Rn();var xe=Date.UTC(ks((Be+20>>2)*4)+1900,ks((Be+16>>2)*4),ks((Be+12>>2)*4),ks((Be+8>>2)*4),ks((Be+4>>2)*4),ks((Be>>2)*4),0),Ve=new Date(xe);En((Be+24>>2)*4,Ve.getUTCDay());var vt=Date.UTC(Ve.getUTCFullYear(),0,1,0,0,0,0),tr=(Ve.getTime()-vt)/(1e3*60*60*24)|0;return En((Be+28>>2)*4,tr),Ve.getTime()/1e3|0}var Zt=typeof atob=="function"?atob:function(Be){var xe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Ve="",vt,tr,Zr,Tn,_r,ei,Ti,Kn=0;Be=Be.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Tn=xe.indexOf(Be.charAt(Kn++)),_r=xe.indexOf(Be.charAt(Kn++)),ei=xe.indexOf(Be.charAt(Kn++)),Ti=xe.indexOf(Be.charAt(Kn++)),vt=Tn<<2|_r>>4,tr=(_r&15)<<4|ei>>2,Zr=(ei&3)<<6|Ti,Ve=Ve+String.fromCharCode(vt),ei!==64&&(Ve=Ve+String.fromCharCode(tr)),Ti!==64&&(Ve=Ve+String.fromCharCode(Zr));while(Kn<Be.length);return Ve};function Ri(Be){if(typeof w=="boolean"&&w){var xe;try{xe=Buffer.from(Be,"base64")}catch{xe=new Buffer(Be,"base64")}return new Uint8Array(xe.buffer,xe.byteOffset,xe.byteLength)}try{for(var Ve=Zt(Be),vt=new Uint8Array(Ve.length),tr=0;tr<Ve.length;++tr)vt[tr]=Ve.charCodeAt(tr);return vt}catch{throw new Error("Converting base64 string to bytes failed.")}}function $n(Be){if(!!to(Be))return Ri(Be.slice(gs.length))}var Ma={e:Cl,c:El,d:Ue,a:Fn,b:Fi,f:Ui},$t=pc(),hc=r.___wasm_call_ctors=$t.h,du=r._zip_ext_count_symlinks=$t.i,gc=r._zip_file_get_external_attributes=$t.j,Il=r._zipstruct_stat=$t.k,PA=r._zipstruct_statS=$t.l,mu=r._zipstruct_stat_name=$t.m,Ee=r._zipstruct_stat_index=$t.n,Rt=r._zipstruct_stat_size=$t.o,dc=r._zipstruct_stat_mtime=$t.p,_i=r._zipstruct_stat_crc=$t.q,yu=r._zipstruct_error=$t.r,qt=r._zipstruct_errorS=$t.s,wl=r._zipstruct_error_code_zip=$t.t,xA=r._zipstruct_stat_comp_size=$t.u,cp=r._zipstruct_stat_comp_method=$t.v,mc=r._zip_close=$t.w,bA=r._zip_delete=$t.x,Dn=r._zip_dir_add=$t.y,ui=r._zip_discard=$t.z,yc=r._zip_error_init_with_code=$t.A,QA=r._zip_get_error=$t.B,ra=r._zip_file_get_error=$t.C,Hi=r._zip_error_strerror=$t.D,Oo=r._zip_fclose=$t.E,$e=r._zip_file_add=$t.F,so=r._free=$t.G,Bl=r._malloc=$t.H,Cu=r._zip_source_error=$t.I,qi=r._zip_source_seek=$t.J,Eu=r._zip_file_set_external_attributes=$t.K,kA=r._zip_file_set_mtime=$t.L,Ua=r._zip_fopen=$t.M,Cc=r._zip_fopen_index=$t.N,ds=r._zip_fread=$t.O,Ot=r._zip_get_name=$t.P,Sn=r._zip_get_num_entries=$t.Q,di=r._zip_source_read=$t.R,na=r._zip_name_locate=$t.S,oo=r._zip_open_from_source=$t.T,Rs=r._zip_set_file_compression=$t.U,ia=r._zip_source_buffer=$t.V,sa=r._zip_source_buffer_create=$t.W,Mo=r._zip_source_close=$t.X,Zi=r._zip_source_free=$t.Y,Ts=r._zip_source_keep=$t.Z,Ns=r._zip_source_open=$t._,Ls=r._zip_source_set_mtime=$t.aa,ao=r._zip_source_tell=$t.ba,Yn=r._zip_stat=$t.ca,qn=r._zip_stat_index=$t.da,$i=r.__get_tzname=$t.ea,es=r.__get_daylight=$t.fa,mi=r.__get_timezone=$t.ga,Ha=r.stackSave=$t.ha,oa=r.stackRestore=$t.ia,ee=r.stackAlloc=$t.ja;r.cwrap=ne,r.getValue=ge;var we;jr=function Be(){we||je(),we||(jr=Be)};function je(Be){if(Be=Be||A,fr>0||(ht(),fr>0))return;function xe(){we||(we=!0,r.calledRun=!0,!Pe&&(Ut(),o(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),Xt()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),xe()},1)):xe()}if(r.run=je,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return je(),e}}();typeof ID=="object"&&typeof rT=="object"?rT.exports=tT:typeof define=="function"&&define.amd?define([],function(){return tT}):typeof ID=="object"&&(ID.createModule=tT)});var yf,VW,JW,zW=dt(()=>{yf=["number","number"],VW=(Z=>(Z[Z.ZIP_ER_OK=0]="ZIP_ER_OK",Z[Z.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",Z[Z.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",Z[Z.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",Z[Z.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",Z[Z.ZIP_ER_READ=5]="ZIP_ER_READ",Z[Z.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",Z[Z.ZIP_ER_CRC=7]="ZIP_ER_CRC",Z[Z.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",Z[Z.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",Z[Z.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",Z[Z.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",Z[Z.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",Z[Z.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",Z[Z.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",Z[Z.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",Z[Z.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",Z[Z.ZIP_ER_EOF=17]="ZIP_ER_EOF",Z[Z.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",Z[Z.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",Z[Z.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",Z[Z.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",Z[Z.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",Z[Z.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",Z[Z.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",Z[Z.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",Z[Z.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",Z[Z.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",Z[Z.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",Z[Z.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",Z[Z.ZIP_ER_TELL=30]="ZIP_ER_TELL",Z[Z.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",Z))(VW||{}),JW=t=>({get HEAP8(){return t.HEAP8},get HEAPU8(){return t.HEAPU8},errors:VW,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint16S:t._malloc(2),uint32S:t._malloc(4),uint64S:t._malloc(8),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),stat:t.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...yf,"number","number"]),fopen:t.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...yf,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...yf,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...yf,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...yf,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...yf,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...yf,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...yf,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...yf,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"]),setMtime:t.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:t.cwrap("zipstruct_stat","number",[]),statS:t.cwrap("zipstruct_statS","number",[]),statName:t.cwrap("zipstruct_stat_name","string",["number"]),statIndex:t.cwrap("zipstruct_stat_index","number",["number"]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),error:t.cwrap("zipstruct_error","number",[]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function nT(t,e){let r=t.indexOf(e);if(r<=0)return null;let o=r;for(;r>=0&&(o=r+e.length,t[o]!==z.sep);){if(t[r-1]===z.sep)return null;r=t.indexOf(e,o)}return t.length>o&&t[o]!==z.sep?null:t.slice(0,o)}var Ul,XW=dt(()=>{bt();bt();_c();Ul=class extends Up{static async openPromise(e,r){let o=new Ul(r);try{return await e(o)}finally{o.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,o=e.readOnlyArchives,a=typeof r>"u"?A=>nT(A,".zip"):A=>{for(let p of r){let h=nT(A,p);if(h)return h}return null},n=(A,p)=>new os(p,{baseFs:A,readOnly:o,stats:A.statSync(p)}),u=async(A,p)=>{let h={baseFs:A,readOnly:o,stats:await A.statPromise(p)};return()=>new os(p,h)};super({...e,factorySync:n,factoryPromise:u,getMountPoint:a})}}});function x8e(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(ZW.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function wD(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var jo,iT,ZW,sT,Ay,BD,os,oT=dt(()=>{bt();bt();bt();bt();bt();bt();jo=Ie("fs"),iT=Ie("stream"),ZW=Ie("util"),sT=tt(Ie("zlib"));eT();Ay="mixed";BD=class extends Error{constructor(r,o){super(r);this.name="Libzip Error",this.code=o}},os=class extends qu{constructor(r,o={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;let a=o;if(this.level=typeof a.level<"u"?a.level:Ay,r??(r=wD()),typeof r=="string"){let{baseFs:A=new xn}=a;this.baseFs=A,this.path=r}else this.path=null,this.baseFs=null;if(o.stats)this.stats=o.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(A){if(A.code==="ENOENT"&&a.create)this.stats=Ml.makeDefaultStats();else throw A}else this.stats=Ml.makeDefaultStats();this.libzip=UI();let n=this.libzip.malloc(4);try{let A=0;o.readOnly&&(A|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof r=="string"&&(r=a.create?wD():this.baseFs.readFileSync(r));let p=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(p,A,n),this.lzSource=p}catch(h){throw this.libzip.source.free(p),h}if(this.zip===0){let h=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(h,this.libzip.getValue(n,"i32")),this.makeLibzipError(h)}}finally{this.libzip.free(n)}this.listings.set(wt.root,new Set);let u=this.libzip.getNumEntries(this.zip,0);for(let A=0;A<u;++A){let p=this.libzip.getName(this.zip,A,0);if(z.isAbsolute(p))continue;let h=z.resolve(wt.root,p);this.registerEntry(h,A),p.endsWith("/")&&this.registerListing(h)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(r){let o=this.libzip.struct.errorCodeZip(r),a=this.libzip.error.strerror(r),n=new BD(a,this.libzip.errors[o]);if(o===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${n.message}`);return n}getExtractHint(r){for(let o of this.entries.keys()){let a=this.pathUtils.extname(o);if(r.relevantExtensions.has(a))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}prepareClose(){if(!this.ready)throw sr.EBUSY("archive closed, close");Ng(this)}getBufferAndClose(){if(this.prepareClose(),this.entries.size===0)return this.discardAndClose(),wD();try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let r=this.libzip.source.tell(this.lzSource);if(r===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let o=this.libzip.malloc(r);if(!o)throw new Error("Couldn't allocate enough memory");try{let a=this.libzip.source.read(this.lzSource,o,r);if(a===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(a<r)throw new Error("Incomplete read");if(a>r)throw new Error("Overread");let n=this.libzip.HEAPU8.subarray(o,o+r);return Buffer.from(n)}finally{this.libzip.free(o)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===Ml.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return z.resolve(wt.root,r)}async openPromise(r,o,a){return this.openSync(r,o,a)}openSync(r,o,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,o){return this.opendirSync(r,o)}opendirSync(r,o={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`opendir '${r}'`);let u=[...n],A=this.openSync(a,"r");return pD(this,a,u,{onClose:()=>{this.closeSync(A)}})}async readPromise(r,o,a,n,u){return this.readSync(r,o,a,n,u)}readSync(r,o,a=0,n=o.byteLength,u=-1){let A=this.fds.get(r);if(typeof A>"u")throw sr.EBADF("read");let p=u===-1||u===null?A.cursor:u,h=this.readFileSync(A.p);h.copy(o,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(u===-1||u===null)&&(A.cursor+=E),E}async writePromise(r,o,a,n,u){return typeof o=="string"?this.writeSync(r,o,u):this.writeSync(r,o,a,n,u)}writeSync(r,o,a,n,u){throw typeof this.fds.get(r)>"u"?sr.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw sr.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:o}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new iT.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(A,p)=>{clearImmediate(u),this.closeSync(a),p(A)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),u=setImmediate(async()=>{try{let A=await this.readFilePromise(r,o);n.bytesRead=A.length,n.end(A)}catch(A){n.destroy(A)}});return n}createWriteStream(r,{encoding:o}={}){if(this.readOnly)throw sr.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),u=Object.assign(new iT.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(A,p)=>{try{A?p(A):(this.writeFileSync(r,Buffer.concat(a),o),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){u.destroy()},bytesWritten:0,path:r,pending:!1});return u.on("data",A=>{let p=Buffer.from(A);u.bytesWritten+=p.length,a.push(p)}),u}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let o=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(o)&&!this.listings.has(o))throw sr.ENOENT(`lstat '${r}'`);return o}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw sr.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=z.resolve(wt.root,r);return this.entries.has(a)||this.listings.has(a)}let o;try{o=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return o===void 0?!1:this.entries.has(o)||this.listings.has(o)}async accessPromise(r,o){return this.accessSync(r,o)}accessSync(r,o=jo.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`access '${r}'`);if(this.readOnly&&o&jo.constants.W_OK)throw sr.EROFS(`access '${r}'`)}async statPromise(r,o={bigint:!1}){return o.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw sr.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,o)}}async fstatPromise(r,o){return this.fstatSync(r,o)}fstatSync(r,o){let a=this.fds.get(r);if(typeof a>"u")throw sr.EBADF("fstatSync");let{p:n}=a,u=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(u)&&!this.listings.has(u))throw sr.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(u))throw sr.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,u,o)}async lstatPromise(r,o={bigint:!1}){return o.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw sr.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,o)}}statImpl(r,o,a={}){let n=this.entries.get(o);if(typeof n<"u"){let u=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,u)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let p=this.stats.uid,h=this.stats.gid,E=this.libzip.struct.statSize(u)>>>0,w=512,v=Math.ceil(E/w),b=(this.libzip.struct.statMtime(u)>>>0)*1e3,C=b,R=b,L=b,_=new Date(C),V=new Date(R),re=new Date(L),oe=new Date(b),pe=this.listings.has(o)?jo.constants.S_IFDIR:this.isSymbolicLink(n)?jo.constants.S_IFLNK:jo.constants.S_IFREG,he=pe===jo.constants.S_IFDIR?493:420,ve=pe|this.getUnixMode(n,he)&511,ge=this.libzip.struct.statCrc(u),le=Object.assign(new Ml.StatEntry,{uid:p,gid:h,size:E,blksize:w,blocks:v,atime:_,birthtime:V,ctime:re,mtime:oe,atimeMs:C,birthtimeMs:R,ctimeMs:L,mtimeMs:b,mode:ve,crc:ge});return a.bigint===!0?Ml.convertToBigIntStats(le):le}if(this.listings.has(o)){let u=this.stats.uid,A=this.stats.gid,p=0,h=512,E=0,w=this.stats.mtimeMs,v=this.stats.mtimeMs,b=this.stats.mtimeMs,C=this.stats.mtimeMs,R=new Date(w),L=new Date(v),_=new Date(b),V=new Date(C),re=jo.constants.S_IFDIR|493,oe=0,pe=Object.assign(new Ml.StatEntry,{uid:u,gid:A,size:p,blksize:h,blocks:E,atime:R,birthtime:L,ctime:_,mtime:V,atimeMs:w,birthtimeMs:v,ctimeMs:b,mtimeMs:C,mode:re,crc:oe});return a.bigint===!0?Ml.convertToBigIntStats(pe):pe}throw new Error("Unreachable")}getUnixMode(r,o){if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?o:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(r){let o=this.listings.get(r);if(o)return o;this.registerListing(z.dirname(r)).add(z.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,o){this.registerListing(z.dirname(r)).add(z.basename(r)),this.entries.set(r,o)}unregisterListing(r){this.listings.delete(r);let o=this.listings.get(z.dirname(r));o==null||o.delete(z.basename(r))}unregisterEntry(r){this.unregisterListing(r);let o=this.entries.get(r);this.entries.delete(r),!(typeof o>"u")&&(this.fileSources.delete(o),this.isSymbolicLink(o)&&this.symlinkCount--)}deleteEntry(r,o){if(this.unregisterEntry(r),this.libzip.delete(this.zip,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(r,o,a=!0,n=!0){if(!this.ready)throw sr.EBUSY(`archive closed, ${r}`);let u=z.resolve(wt.root,o);if(u==="/")return wt.root;let A=this.entries.get(u);if(a&&A!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(A)){let p=this.getFileSource(A).toString();return this.resolveFilename(r,z.resolve(z.dirname(u),p),!0,n)}else return u;for(;;){let p=this.resolveFilename(r,z.dirname(u),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw sr.ENOENT(r)}if(!h)throw sr.ENOTDIR(r);if(u=z.resolve(p,z.basename(u)),!a||this.symlinkCount===0)break;let w=this.libzip.name.locate(this.zip,u.slice(1),0);if(w===-1)break;if(this.isSymbolicLink(w)){let v=this.getFileSource(w).toString();u=z.resolve(z.dirname(u),v)}else break}return u}allocateBuffer(r){Buffer.isBuffer(r)||(r=Buffer.from(r));let o=this.libzip.malloc(r.byteLength);if(!o)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,o,r.byteLength).set(r),{buffer:o,byteLength:r.byteLength}}allocateUnattachedSource(r){let o=this.libzip.struct.errorS(),{buffer:a,byteLength:n}=this.allocateBuffer(r),u=this.libzip.source.fromUnattachedBuffer(a,n,0,1,o);if(u===0)throw this.libzip.free(o),this.makeLibzipError(o);return u}allocateSource(r){let{buffer:o,byteLength:a}=this.allocateBuffer(r),n=this.libzip.source.fromBuffer(this.zip,o,a,0,1);if(n===0)throw this.libzip.free(o),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(r,o){let a=Buffer.isBuffer(o)?o:Buffer.from(o),n=z.relative(wt.root,r),u=this.allocateSource(o);try{let A=this.libzip.file.add(this.zip,n,u,this.libzip.ZIP_FL_OVERWRITE);if(A===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let p=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,A,0,p,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(A,a),A}catch(A){throw this.libzip.source.free(u),A}}isSymbolicLink(r){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&jo.constants.S_IFMT)===jo.constants.S_IFLNK}getFileSource(r,o={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,r,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let A=this.libzip.struct.statCompSize(n),p=this.libzip.struct.statCompMethod(n),h=this.libzip.malloc(A);try{let E=this.libzip.fopenIndex(this.zip,r,0,this.libzip.ZIP_FL_COMPRESSED);if(E===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let w=this.libzip.fread(E,h,A,0);if(w===-1)throw this.makeLibzipError(this.libzip.file.getError(E));if(w<A)throw new Error("Incomplete read");if(w>A)throw new Error("Overread");let v=this.libzip.HEAPU8.subarray(h,h+A),b=Buffer.from(v);if(p===0)return this.fileSources.set(r,b),b;if(o.asyncDecompress)return new Promise((C,R)=>{sT.default.inflateRaw(b,(L,_)=>{L?R(L):(this.fileSources.set(r,_),C(_))})});{let C=sT.default.inflateRawSync(b);return this.fileSources.set(r,C),C}}finally{this.libzip.fclose(E)}}finally{this.libzip.free(h)}}async fchmodPromise(r,o){return this.chmodPromise(this.fdToPath(r,"fchmod"),o)}fchmodSync(r,o){return this.chmodSync(this.fdToPath(r,"fchmodSync"),o)}async chmodPromise(r,o){return this.chmodSync(r,o)}chmodSync(r,o){if(this.readOnly)throw sr.EROFS(`chmod '${r}'`);o&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let A=this.getUnixMode(n,jo.constants.S_IFREG|0)&-512|o;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,A<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(r,o,a){return this.chownPromise(this.fdToPath(r,"fchown"),o,a)}fchownSync(r,o,a){return this.chownSync(this.fdToPath(r,"fchownSync"),o,a)}async chownPromise(r,o,a){return this.chownSync(r,o,a)}chownSync(r,o,a){throw new Error("Unimplemented")}async renamePromise(r,o){return this.renameSync(r,o)}renameSync(r,o){throw new Error("Unimplemented")}async copyFilePromise(r,o,a){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}copyFileSync(r,o,a=0){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=this.getFileSource(n),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}prepareCopyFile(r,o,a=0){if(this.readOnly)throw sr.EROFS(`copyfile '${r} -> '${o}'`);if((a&jo.constants.COPYFILE_FICLONE_FORCE)!==0)throw sr.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${o}'`);let n=this.resolveFilename(`copyfile '${r} -> ${o}'`,r),u=this.entries.get(n);if(typeof u>"u")throw sr.EINVAL(`copyfile '${r}' -> '${o}'`);let A=this.resolveFilename(`copyfile '${r}' -> ${o}'`,o),p=this.entries.get(A);if((a&(jo.constants.COPYFILE_EXCL|jo.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof p<"u")throw sr.EEXIST(`copyfile '${r}' -> '${o}'`);return{indexSource:u,resolvedDestP:A,indexDest:p}}async appendFilePromise(r,o,a){if(this.readOnly)throw sr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,o,a)}appendFileSync(r,o,a={}){if(this.readOnly)throw sr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,o,a)}fdToPath(r,o){var n;let a=(n=this.fds.get(r))==null?void 0:n.p;if(typeof a>"u")throw sr.EBADF(o);return a}async writeFilePromise(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([await this.getFileSource(A,{asyncDecompress:!0}),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&await this.chmodPromise(p,u)}writeFileSync(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([this.getFileSource(A),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&this.chmodSync(p,u)}prepareWriteFile(r,o){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw sr.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw sr.EISDIR(`open '${r}'`);let n=null,u=null;typeof o=="string"?n=o:typeof o=="object"&&({encoding:n=null,mode:u=null}=o);let A=this.entries.get(a);return{encoding:n,mode:u,resolvedP:a,index:A}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw sr.EROFS(`unlink '${r}'`);let o=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(o))throw sr.EISDIR(`unlink '${r}'`);let a=this.entries.get(o);if(typeof a>"u")throw sr.EINVAL(`unlink '${r}'`);this.deleteEntry(o,a)}async utimesPromise(r,o,a){return this.utimesSync(r,o,a)}utimesSync(r,o,a){if(this.readOnly)throw sr.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,o,a){return this.lutimesSync(r,o,a)}lutimesSync(r,o,a){if(this.readOnly)throw sr.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,o){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,a,0,x8e(o),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(r,o){return this.mkdirSync(r,o)}mkdirSync(r,{mode:o=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:o});if(this.readOnly)throw sr.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw sr.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,o)}async rmdirPromise(r,o){return this.rmdirSync(r,o)}rmdirSync(r,{recursive:o=!1}={}){if(this.readOnly)throw sr.EROFS(`rmdir '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw sr.ENOTEMPTY(`rmdir '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw sr.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,u)}hydrateDirectory(r){let o=this.libzip.dir.add(this.zip,z.relative(wt.root,r));if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(r),this.registerEntry(r,o),o}async linkPromise(r,o){return this.linkSync(r,o)}linkSync(r,o){throw sr.EOPNOTSUPP(`link '${r}' -> '${o}'`)}async symlinkPromise(r,o){return this.symlinkSync(r,o)}symlinkSync(r,o){if(this.readOnly)throw sr.EROFS(`symlink '${r}' -> '${o}'`);let a=this.resolveFilename(`symlink '${r}' -> '${o}'`,o);if(this.listings.has(a))throw sr.EISDIR(`symlink '${r}' -> '${o}'`);if(this.entries.has(a))throw sr.EEXIST(`symlink '${r}' -> '${o}'`);let n=this.setFileSource(a,r);if(this.registerEntry(a,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(jo.constants.S_IFLNK|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return o?a.toString(o):a}readFileSync(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=this.readFileBuffer(r);return o?a.toString(o):a}readFileBuffer(r,o={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw sr.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,o)}async readdirPromise(r,o){return this.readdirSync(r,o)}readdirSync(r,o){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`scandir '${r}'`);let u=[...n];return o!=null&&o.withFileTypes?u.map(A=>Object.assign(this.statImpl("lstat",z.join(r,A)),{name:A})):u}async readlinkPromise(r){let o=this.prepareReadlink(r);return(await this.getFileSource(o,{asyncDecompress:!0})).toString()}readlinkSync(r){let o=this.prepareReadlink(r);return this.getFileSource(o).toString()}prepareReadlink(r){let o=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(o)&&!this.listings.has(o))throw sr.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(o))throw sr.ENOTDIR(`open '${r}'`);if(this.listings.has(o))throw sr.EINVAL(`readlink '${r}'`);let a=this.entries.get(o);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw sr.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw sr.EINVAL(`open '${r}'`);let u=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(o,0);return u.copy(A),await this.writeFilePromise(r,A)}truncateSync(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw sr.EINVAL(`open '${r}'`);let u=this.getFileSource(n),A=Buffer.alloc(o,0);return u.copy(A),this.writeFileSync(r,A)}async ftruncatePromise(r,o){return this.truncatePromise(this.fdToPath(r,"ftruncate"),o)}ftruncateSync(r,o){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),o)}watch(r,o,a){let n;switch(typeof o){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=o);break}if(!n)return{on:()=>{},close:()=>{}};let u=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(u)}}}watchFile(r,o,a){let n=z.resolve(wt.root,r);return sy(this,n,o,a)}unwatchFile(r,o){let a=z.resolve(wt.root,r);return Tg(this,a,o)}}});function eY(t,e,r=Buffer.alloc(0),o){let a=new os(r),n=w=>w===e||w.startsWith(`${e}/`)?w.slice(0,e.length):null,u=async(w,v)=>()=>a,A=(w,v)=>a,p={...t},h=new xn(p),E=new Up({baseFs:h,getMountPoint:n,factoryPromise:u,factorySync:A,magicByte:21,maxAge:1/0,typeCheck:o==null?void 0:o.typeCheck});return OI($W.default,new _p(E)),a}var $W,tY=dt(()=>{bt();$W=tt(Ie("fs"));oT()});var rY=dt(()=>{XW();oT();tY()});var _I={};Yt(_I,{DEFAULT_COMPRESSION_LEVEL:()=>Ay,LibzipError:()=>BD,ZipFS:()=>os,ZipOpenFS:()=>Ul,getArchivePart:()=>nT,getLibzipPromise:()=>Q8e,getLibzipSync:()=>b8e,makeEmptyArchive:()=>wD,mountMemoryDrive:()=>eY});function b8e(){return UI()}async function Q8e(){return UI()}var nY,_c=dt(()=>{eT();nY=tt(KW());zW();rY();YW(()=>{let t=(0,nY.default)();return JW(t)})});var sY=U((cxt,iY)=>{"use strict";function k8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function _g(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,_g)}k8e(_g,Error);_g.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w<h.parts.length;w++)E+=h.parts[w]instanceof Array?n(h.parts[w][0])+"-"+n(h.parts[w][1]):n(h.parts[w]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),w,v;for(w=0;w<h.length;w++)E[w]=u(h[w]);if(E.sort(),E.length>0){for(w=1,v=1;w<E.length;w++)E[w-1]!==E[w]&&(E[v]=E[w],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function F8e(t,e){e=e!==void 0?e:{};var r={},o={Start:ug},a=ug,n=function(N){return N||[]},u=function(N,K,te){return[{command:N,type:K}].concat(te||[])},A=function(N,K){return[{command:N,type:K||";"}]},p=function(N){return N},h=";",E=yr(";",!1),w="&",v=yr("&",!1),b=function(N,K){return K?{chain:N,then:K}:{chain:N}},C=function(N,K){return{type:N,line:K}},R="&&",L=yr("&&",!1),_="||",V=yr("||",!1),re=function(N,K){return K?{...N,then:K}:N},oe=function(N,K){return{type:N,chain:K}},pe="|&",he=yr("|&",!1),ve="|",ge=yr("|",!1),le="=",Pe=yr("=",!1),g=function(N,K){return{name:N,args:[K]}},De=function(N){return{name:N,args:[]}},Ce="(",de=yr("(",!1),ne=")",Z=yr(")",!1),me=function(N,K){return{type:"subshell",subshell:N,args:K}},be="{",ut=yr("{",!1),H="}",yt=yr("}",!1),Me=function(N,K){return{type:"group",group:N,args:K}},Te=function(N,K){return{type:"command",args:K,envs:N}},Qe=function(N){return{type:"envs",envs:N}},_e=function(N){return N},qe=function(N){return N},At=/^[0-9]/,Oe=ys([["0","9"]],!1,!1),x=function(N,K,te){return{type:"redirection",subtype:K,fd:N!==null?parseInt(N):null,args:[te]}},I=">>",P=yr(">>",!1),y=">&",F=yr(">&",!1),J=">",X=yr(">",!1),$="<<<",ie=yr("<<<",!1),ke="<&",Ne=yr("<&",!1),st="<",ht=yr("<",!1),Ut=function(N){return{type:"argument",segments:[].concat(...N)}},Xt=function(N){return N},Pt="$'",tn=yr("$'",!1),Dr="'",fr=yr("'",!1),Br=function(N){return[{type:"text",text:N}]},jr='""',Hn=yr('""',!1),bs=function(){return{type:"text",text:""}},ki='"',gs=yr('"',!1),to=function(N){return N},Di=function(N){return{type:"arithmetic",arithmetic:N,quoted:!0}},Qs=function(N){return{type:"shell",shell:N,quoted:!0}},ro=function(N){return{type:"variable",...N,quoted:!0}},pc=function(N){return{type:"text",text:N}},gu=function(N){return{type:"arithmetic",arithmetic:N,quoted:!1}},ap=function(N){return{type:"shell",shell:N,quoted:!1}},lp=function(N){return{type:"variable",...N,quoted:!1}},ks=function(N){return{type:"glob",pattern:N}},En=/^[^']/,no=ys(["'"],!0,!1),Fs=function(N){return N.join("")},Cl=/^[^$"]/,El=ys(["$",'"'],!0,!1),io=`\\ 9`)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},qu=class extends df{constructor(){super(J)}}});var vs,mf=dt(()=>{Mg();vs=class extends df{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(u,a,o)}symlinkSync(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(u,a,o)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}async readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,o){return this.baseFs.watch(this.mapToBase(e),r,o)}watchFile(e,r,o){return this.baseFs.watchFile(this.mapToBase(e),r,o)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var ju,_7=dt(()=>{mf();ju=class extends vs{constructor(r,{baseFs:o,pathUtils:a}){super(a);this.target=r,this.baseFs=o}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(r){return r}mapToBase(r){return r}}});var H7,xn,Ug=dt(()=>{H7=tt(Ie("fs"));Mg();Ca();xn=class extends qu{constructor(r=H7.default){super();this.realFs=r}getExtractHint(){return!1}getRealPath(){return wt.root}resolve(r){return J.resolve(r)}async openPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.open(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}openSync(r,o,a){return this.realFs.openSync(ue.fromPortablePath(r),o,a)}async opendirPromise(r,o){return await new Promise((a,n)=>{typeof o<"u"?this.realFs.opendir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.opendir(ue.fromPortablePath(r),this.makeCallback(a,n))}).then(a=>Object.defineProperty(a,"path",{value:r,configurable:!0,writable:!0}))}opendirSync(r,o){let a=typeof o<"u"?this.realFs.opendirSync(ue.fromPortablePath(r),o):this.realFs.opendirSync(ue.fromPortablePath(r));return Object.defineProperty(a,"path",{value:r,configurable:!0,writable:!0})}async readPromise(r,o,a=0,n=0,u=-1){return await new Promise((A,p)=>{this.realFs.read(r,o,a,n,u,(h,C)=>{h?p(h):A(C)})})}readSync(r,o,a,n,u){return this.realFs.readSync(r,o,a,n,u)}async writePromise(r,o,a,n,u){return await new Promise((A,p)=>typeof o=="string"?this.realFs.write(r,o,a,this.makeCallback(A,p)):this.realFs.write(r,o,a,n,u,this.makeCallback(A,p)))}writeSync(r,o,a,n,u){return typeof o=="string"?this.realFs.writeSync(r,o,a):this.realFs.writeSync(r,o,a,n,u)}async closePromise(r){await new Promise((o,a)=>{this.realFs.close(r,this.makeCallback(o,a))})}closeSync(r){this.realFs.closeSync(r)}createReadStream(r,o){let a=r!==null?ue.fromPortablePath(r):r;return this.realFs.createReadStream(a,o)}createWriteStream(r,o){let a=r!==null?ue.fromPortablePath(r):r;return this.realFs.createWriteStream(a,o)}async realpathPromise(r){return await new Promise((o,a)=>{this.realFs.realpath(ue.fromPortablePath(r),{},this.makeCallback(o,a))}).then(o=>ue.toPortablePath(o))}realpathSync(r){return ue.toPortablePath(this.realFs.realpathSync(ue.fromPortablePath(r),{}))}async existsPromise(r){return await new Promise(o=>{this.realFs.exists(ue.fromPortablePath(r),o)})}accessSync(r,o){return this.realFs.accessSync(ue.fromPortablePath(r),o)}async accessPromise(r,o){return await new Promise((a,n)=>{this.realFs.access(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}existsSync(r){return this.realFs.existsSync(ue.fromPortablePath(r))}async statPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.stat(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.stat(ue.fromPortablePath(r),this.makeCallback(a,n))})}statSync(r,o){return o?this.realFs.statSync(ue.fromPortablePath(r),o):this.realFs.statSync(ue.fromPortablePath(r))}async fstatPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.fstat(r,o,this.makeCallback(a,n)):this.realFs.fstat(r,this.makeCallback(a,n))})}fstatSync(r,o){return o?this.realFs.fstatSync(r,o):this.realFs.fstatSync(r)}async lstatPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.lstat(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.lstat(ue.fromPortablePath(r),this.makeCallback(a,n))})}lstatSync(r,o){return o?this.realFs.lstatSync(ue.fromPortablePath(r),o):this.realFs.lstatSync(ue.fromPortablePath(r))}async fchmodPromise(r,o){return await new Promise((a,n)=>{this.realFs.fchmod(r,o,this.makeCallback(a,n))})}fchmodSync(r,o){return this.realFs.fchmodSync(r,o)}async chmodPromise(r,o){return await new Promise((a,n)=>{this.realFs.chmod(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}chmodSync(r,o){return this.realFs.chmodSync(ue.fromPortablePath(r),o)}async fchownPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.fchown(r,o,a,this.makeCallback(n,u))})}fchownSync(r,o,a){return this.realFs.fchownSync(r,o,a)}async chownPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.chown(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}chownSync(r,o,a){return this.realFs.chownSync(ue.fromPortablePath(r),o,a)}async renamePromise(r,o){return await new Promise((a,n)=>{this.realFs.rename(ue.fromPortablePath(r),ue.fromPortablePath(o),this.makeCallback(a,n))})}renameSync(r,o){return this.realFs.renameSync(ue.fromPortablePath(r),ue.fromPortablePath(o))}async copyFilePromise(r,o,a=0){return await new Promise((n,u)=>{this.realFs.copyFile(ue.fromPortablePath(r),ue.fromPortablePath(o),a,this.makeCallback(n,u))})}copyFileSync(r,o,a=0){return this.realFs.copyFileSync(ue.fromPortablePath(r),ue.fromPortablePath(o),a)}async appendFilePromise(r,o,a){return await new Promise((n,u)=>{let A=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.appendFile(A,o,a,this.makeCallback(n,u)):this.realFs.appendFile(A,o,this.makeCallback(n,u))})}appendFileSync(r,o,a){let n=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.appendFileSync(n,o,a):this.realFs.appendFileSync(n,o)}async writeFilePromise(r,o,a){return await new Promise((n,u)=>{let A=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.writeFile(A,o,a,this.makeCallback(n,u)):this.realFs.writeFile(A,o,this.makeCallback(n,u))})}writeFileSync(r,o,a){let n=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.writeFileSync(n,o,a):this.realFs.writeFileSync(n,o)}async unlinkPromise(r){return await new Promise((o,a)=>{this.realFs.unlink(ue.fromPortablePath(r),this.makeCallback(o,a))})}unlinkSync(r){return this.realFs.unlinkSync(ue.fromPortablePath(r))}async utimesPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.utimes(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}utimesSync(r,o,a){this.realFs.utimesSync(ue.fromPortablePath(r),o,a)}async lutimesPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.lutimes(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}lutimesSync(r,o,a){this.realFs.lutimesSync(ue.fromPortablePath(r),o,a)}async mkdirPromise(r,o){return await new Promise((a,n)=>{this.realFs.mkdir(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}mkdirSync(r,o){return this.realFs.mkdirSync(ue.fromPortablePath(r),o)}async rmdirPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.rmdir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.rmdir(ue.fromPortablePath(r),this.makeCallback(a,n))})}rmdirSync(r,o){return this.realFs.rmdirSync(ue.fromPortablePath(r),o)}async linkPromise(r,o){return await new Promise((a,n)=>{this.realFs.link(ue.fromPortablePath(r),ue.fromPortablePath(o),this.makeCallback(a,n))})}linkSync(r,o){return this.realFs.linkSync(ue.fromPortablePath(r),ue.fromPortablePath(o))}async symlinkPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.symlink(ue.fromPortablePath(r.replace(/\/+$/,"")),ue.fromPortablePath(o),a,this.makeCallback(n,u))})}symlinkSync(r,o,a){return this.realFs.symlinkSync(ue.fromPortablePath(r.replace(/\/+$/,"")),ue.fromPortablePath(o),a)}async readFilePromise(r,o){return await new Promise((a,n)=>{let u=typeof r=="string"?ue.fromPortablePath(r):r;this.realFs.readFile(u,o,this.makeCallback(a,n))})}readFileSync(r,o){let a=typeof r=="string"?ue.fromPortablePath(r):r;return this.realFs.readFileSync(a,o)}async readdirPromise(r,o){return await new Promise((a,n)=>{o!=null&&o.withFileTypes?this.realFs.readdir(ue.fromPortablePath(r),{withFileTypes:!0},this.makeCallback(a,n)):this.realFs.readdir(ue.fromPortablePath(r),this.makeCallback(u=>a(u),n))})}readdirSync(r,o){return o!=null&&o.withFileTypes?this.realFs.readdirSync(ue.fromPortablePath(r),{withFileTypes:!0}):this.realFs.readdirSync(ue.fromPortablePath(r))}async readlinkPromise(r){return await new Promise((o,a)=>{this.realFs.readlink(ue.fromPortablePath(r),this.makeCallback(o,a))}).then(o=>ue.toPortablePath(o))}readlinkSync(r){return ue.toPortablePath(this.realFs.readlinkSync(ue.fromPortablePath(r)))}async truncatePromise(r,o){return await new Promise((a,n)=>{this.realFs.truncate(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}truncateSync(r,o){return this.realFs.truncateSync(ue.fromPortablePath(r),o)}async ftruncatePromise(r,o){return await new Promise((a,n)=>{this.realFs.ftruncate(r,o,this.makeCallback(a,n))})}ftruncateSync(r,o){return this.realFs.ftruncateSync(r,o)}watch(r,o,a){return this.realFs.watch(ue.fromPortablePath(r),o,a)}watchFile(r,o,a){return this.realFs.watchFile(ue.fromPortablePath(r),o,a)}unwatchFile(r,o){return this.realFs.unwatchFile(ue.fromPortablePath(r),o)}makeCallback(r,o){return(a,n)=>{a?o(a):r(n)}}}});var An,q7=dt(()=>{Ug();mf();Ca();An=class extends vs{constructor(r,{baseFs:o=new xn}={}){super(J);this.target=this.pathUtils.normalize(r),this.baseFs=o}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(r){return this.pathUtils.isAbsolute(r)?J.normalize(r):this.baseFs.resolve(J.join(this.target,r))}mapFromBase(r){return r}mapToBase(r){return this.pathUtils.isAbsolute(r)?r:this.pathUtils.join(this.target,r)}}});var j7,Gu,G7=dt(()=>{Ug();mf();Ca();j7=wt.root,Gu=class extends vs{constructor(r,{baseFs:o=new xn}={}){super(J);this.target=this.pathUtils.resolve(wt.root,r),this.baseFs=o}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(wt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(r){let o=this.pathUtils.normalize(r);if(this.pathUtils.isAbsolute(r))return this.pathUtils.resolve(this.target,this.pathUtils.relative(j7,r));if(o.match(/^\.\.\/?/))throw new Error(`Resolving this path (${r}) would escape the jail`);return this.pathUtils.resolve(this.target,r)}mapFromBase(r){return this.pathUtils.resolve(j7,this.pathUtils.relative(this.target,r))}}});var oy,W7=dt(()=>{mf();oy=class extends vs{constructor(r,o){super(o);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var _g,Ia,Hp,Y7=dt(()=>{_g=Ie("fs");Mg();Ug();HR();AD();Ca();Ia=4278190080,Hp=class extends qu{constructor({baseFs:r=new xn,filter:o=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:u=!0,maxAge:A=5e3,typeCheck:p=_g.constants.S_IFREG,getMountPoint:h,factoryPromise:C,factorySync:w}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=u?new Map:null,this.factoryPromise=C,this.factorySync=w,this.filter=o,this.getMountPoint=h,this.magic=a<<24,this.maxAge=A,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){var r;if(Lg(this),this.mountInstances)for(let[o,{childFs:a}]of this.mountInstances.entries())(r=a.saveAndClose)==null||r.call(a),this.mountInstances.delete(o)}discardAndClose(){var r;if(Lg(this),this.mountInstances)for(let[o,{childFs:a}]of this.mountInstances.entries())(r=a.discardAndClose)==null||r.call(a),this.mountInstances.delete(o)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,o){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,o]),a}async openPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,o,a),async(n,{subPath:u})=>this.remapFd(n,await n.openPromise(u,o,a)))}openSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,o,a),(n,{subPath:u})=>this.remapFd(n,n.openSync(u,o,a)))}async opendirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,o),async(a,{subPath:n})=>await a.opendirPromise(n,o),{requireSubpath:!1})}opendirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,o),(a,{subPath:n})=>a.opendirSync(n,o),{requireSubpath:!1})}async readPromise(r,o,a,n,u){if((r&Ia)!==this.magic)return await this.baseFs.readPromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Co("read");let[p,h]=A;return await p.readPromise(h,o,a,n,u)}readSync(r,o,a,n,u){if((r&Ia)!==this.magic)return this.baseFs.readSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Co("readSync");let[p,h]=A;return p.readSync(h,o,a,n,u)}async writePromise(r,o,a,n,u){if((r&Ia)!==this.magic)return typeof o=="string"?await this.baseFs.writePromise(r,o,a):await this.baseFs.writePromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Co("write");let[p,h]=A;return typeof o=="string"?await p.writePromise(h,o,a):await p.writePromise(h,o,a,n,u)}writeSync(r,o,a,n,u){if((r&Ia)!==this.magic)return typeof o=="string"?this.baseFs.writeSync(r,o,a):this.baseFs.writeSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Co("writeSync");let[p,h]=A;return typeof o=="string"?p.writeSync(h,o,a):p.writeSync(h,o,a,n,u)}async closePromise(r){if((r&Ia)!==this.magic)return await this.baseFs.closePromise(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Co("close");this.fdMap.delete(r);let[a,n]=o;return await a.closePromise(n)}closeSync(r){if((r&Ia)!==this.magic)return this.baseFs.closeSync(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Co("closeSync");this.fdMap.delete(r);let[a,n]=o;return a.closeSync(n)}createReadStream(r,o){return r===null?this.baseFs.createReadStream(r,o):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,o),(a,{archivePath:n,subPath:u})=>{let A=a.createReadStream(u,o);return A.path=ue.fromPortablePath(this.pathUtils.join(n,u)),A})}createWriteStream(r,o){return r===null?this.baseFs.createWriteStream(r,o):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,o),(a,{subPath:n})=>a.createWriteStream(n,o))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=await this.baseFs.realpathPromise(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(wt.root,await o.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=this.baseFs.realpathSync(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(wt.root,o.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(o,{subPath:a})=>await o.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(o,{subPath:a})=>o.existsSync(a))}async accessPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,o),async(a,{subPath:n})=>await a.accessPromise(n,o))}accessSync(r,o){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,o),(a,{subPath:n})=>a.accessSync(n,o))}async statPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,o),async(a,{subPath:n})=>await a.statPromise(n,o))}statSync(r,o){return this.makeCallSync(r,()=>this.baseFs.statSync(r,o),(a,{subPath:n})=>a.statSync(n,o))}async fstatPromise(r,o){if((r&Ia)!==this.magic)return this.baseFs.fstatPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Co("fstat");let[n,u]=a;return n.fstatPromise(u,o)}fstatSync(r,o){if((r&Ia)!==this.magic)return this.baseFs.fstatSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Co("fstatSync");let[n,u]=a;return n.fstatSync(u,o)}async lstatPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,o),async(a,{subPath:n})=>await a.lstatPromise(n,o))}lstatSync(r,o){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,o),(a,{subPath:n})=>a.lstatSync(n,o))}async fchmodPromise(r,o){if((r&Ia)!==this.magic)return this.baseFs.fchmodPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Co("fchmod");let[n,u]=a;return n.fchmodPromise(u,o)}fchmodSync(r,o){if((r&Ia)!==this.magic)return this.baseFs.fchmodSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Co("fchmodSync");let[n,u]=a;return n.fchmodSync(u,o)}async chmodPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,o),async(a,{subPath:n})=>await a.chmodPromise(n,o))}chmodSync(r,o){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,o),(a,{subPath:n})=>a.chmodSync(n,o))}async fchownPromise(r,o,a){if((r&Ia)!==this.magic)return this.baseFs.fchownPromise(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Co("fchown");let[u,A]=n;return u.fchownPromise(A,o,a)}fchownSync(r,o,a){if((r&Ia)!==this.magic)return this.baseFs.fchownSync(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Co("fchownSync");let[u,A]=n;return u.fchownSync(A,o,a)}async chownPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,o,a),async(n,{subPath:u})=>await n.chownPromise(u,o,a))}chownSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,o,a),(n,{subPath:u})=>n.chownSync(u,o,a))}async renamePromise(r,o){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.renamePromise(r,o),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(o,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,A)}))}renameSync(r,o){return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.renameSync(r,o),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(o,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,A)}))}async copyFilePromise(r,o,a=0){let n=async(u,A,p,h)=>{if((a&_g.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&_g.constants.COPYFILE_EXCL&&await this.existsPromise(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let C;try{C=await u.readFilePromise(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,C)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.copyFilePromise(r,o,a),async(u,{subPath:A})=>await n(this.baseFs,r,u,A)),async(u,{subPath:A})=>await this.makeCallPromise(o,async()=>await n(u,A,this.baseFs,o),async(p,{subPath:h})=>u!==p?await n(u,A,p,h):await u.copyFilePromise(A,h,a)))}copyFileSync(r,o,a=0){let n=(u,A,p,h)=>{if((a&_g.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&_g.constants.COPYFILE_EXCL&&this.existsSync(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let C;try{C=u.readFileSync(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,C)};return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.copyFileSync(r,o,a),(u,{subPath:A})=>n(this.baseFs,r,u,A)),(u,{subPath:A})=>this.makeCallSync(o,()=>n(u,A,this.baseFs,o),(p,{subPath:h})=>u!==p?n(u,A,p,h):u.copyFileSync(A,h,a)))}async appendFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,o,a),async(n,{subPath:u})=>await n.appendFilePromise(u,o,a))}appendFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,o,a),(n,{subPath:u})=>n.appendFileSync(u,o,a))}async writeFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,o,a),async(n,{subPath:u})=>await n.writeFilePromise(u,o,a))}writeFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,o,a),(n,{subPath:u})=>n.writeFileSync(u,o,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(o,{subPath:a})=>await o.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(o,{subPath:a})=>o.unlinkSync(a))}async utimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,o,a),async(n,{subPath:u})=>await n.utimesPromise(u,o,a))}utimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,o,a),(n,{subPath:u})=>n.utimesSync(u,o,a))}async lutimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,o,a),async(n,{subPath:u})=>await n.lutimesPromise(u,o,a))}lutimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,o,a),(n,{subPath:u})=>n.lutimesSync(u,o,a))}async mkdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,o),async(a,{subPath:n})=>await a.mkdirPromise(n,o))}mkdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,o),(a,{subPath:n})=>a.mkdirSync(n,o))}async rmdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,o),async(a,{subPath:n})=>await a.rmdirPromise(n,o))}rmdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,o),(a,{subPath:n})=>a.rmdirSync(n,o))}async linkPromise(r,o){return await this.makeCallPromise(o,async()=>await this.baseFs.linkPromise(r,o),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,o){return this.makeCallSync(o,()=>this.baseFs.linkSync(r,o),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,o,a){return await this.makeCallPromise(o,async()=>await this.baseFs.symlinkPromise(r,o,a),async(n,{subPath:u})=>await n.symlinkPromise(r,u))}symlinkSync(r,o,a){return this.makeCallSync(o,()=>this.baseFs.symlinkSync(r,o,a),(n,{subPath:u})=>n.symlinkSync(r,u))}async readFilePromise(r,o){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,o),async(a,{subPath:n})=>await a.readFilePromise(n,o))}readFileSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,o),(a,{subPath:n})=>a.readFileSync(n,o))}async readdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,o),async(a,{subPath:n})=>await a.readdirPromise(n,o),{requireSubpath:!1})}readdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,o),(a,{subPath:n})=>a.readdirSync(n,o),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(o,{subPath:a})=>await o.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(o,{subPath:a})=>o.readlinkSync(a))}async truncatePromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,o),async(a,{subPath:n})=>await a.truncatePromise(n,o))}truncateSync(r,o){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,o),(a,{subPath:n})=>a.truncateSync(n,o))}async ftruncatePromise(r,o){if((r&Ia)!==this.magic)return this.baseFs.ftruncatePromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Co("ftruncate");let[n,u]=a;return n.ftruncatePromise(u,o)}ftruncateSync(r,o){if((r&Ia)!==this.magic)return this.baseFs.ftruncateSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Co("ftruncateSync");let[n,u]=a;return n.ftruncateSync(u,o)}watch(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,o,a),(n,{subPath:u})=>n.watch(u,o,a))}watchFile(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,o,a),()=>sy(this,r,o,a))}unwatchFile(r,o){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,o),()=>Ng(this,r,o))}async makeCallPromise(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await o();let u=this.resolve(r),A=this.findMount(u);return A?n&&A.subPath==="/"?await o():await this.getMountPromise(A.archivePath,async p=>await a(p,A)):await o()}makeCallSync(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return o();let u=this.resolve(r),A=this.findMount(u);return!A||n&&A.subPath==="/"?o():this.getMountSync(A.archivePath,p=>a(p,A))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let o="";for(;;){let a=r.substring(o.length),n=this.getMountPoint(a,o);if(!n)return null;if(o=this.pathUtils.join(o,n),!this.isMount.has(o)){if(this.notMount.has(o))continue;try{if(this.typeCheck!==null&&(this.baseFs.lstatSync(o).mode&_g.constants.S_IFMT)!==this.typeCheck){this.notMount.add(o);continue}}catch{return null}this.isMount.add(o)}return{archivePath:o,subPath:this.pathUtils.join(wt.root,r.substring(o.length))}}}limitOpenFiles(r){var u,A,p;if(this.mountInstances===null)return;let o=Date.now(),a=o+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[h,{childFs:C,expiresAt:w,refCount:v}]of this.mountInstances.entries())if(!(v!==0||((u=C.hasOpenFileHandles)==null?void 0:u.call(C)))){if(o>=w){(A=C.saveAndClose)==null||A.call(C),this.mountInstances.delete(h),n-=1;continue}else if(r===null||n<=0){a=w;break}(p=C.saveAndClose)==null||p.call(C),this.mountInstances.delete(h),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-o).unref())}async getMountPromise(r,o){var a;if(this.mountInstances){let n=this.mountInstances.get(r);if(!n){let u=await this.factoryPromise(this.baseFs,r);n=this.mountInstances.get(r),n||(n={childFs:u(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await o(n.childFs)}finally{n.refCount-=1}}else{let n=(await this.factoryPromise(this.baseFs,r))();try{return await o(n)}finally{(a=n.saveAndClose)==null||a.call(n)}}}getMountSync(r,o){var a;if(this.mountInstances){let n=this.mountInstances.get(r);return n||(n={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,n),n.expiresAt=Date.now()+this.maxAge,o(n.childFs)}else{let n=this.factorySync(this.baseFs,r);try{return o(n)}finally{(a=n.saveAndClose)==null||a.call(n)}}}}});var zt,qR,LI,K7=dt(()=>{Mg();Ca();zt=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),qR=class extends df{constructor(){super(J)}getExtractHint(){throw zt()}getRealPath(){throw zt()}resolve(){throw zt()}async openPromise(){throw zt()}openSync(){throw zt()}async opendirPromise(){throw zt()}opendirSync(){throw zt()}async readPromise(){throw zt()}readSync(){throw zt()}async writePromise(){throw zt()}writeSync(){throw zt()}async closePromise(){throw zt()}closeSync(){throw zt()}createWriteStream(){throw zt()}createReadStream(){throw zt()}async realpathPromise(){throw zt()}realpathSync(){throw zt()}async readdirPromise(){throw zt()}readdirSync(){throw zt()}async existsPromise(e){throw zt()}existsSync(e){throw zt()}async accessPromise(){throw zt()}accessSync(){throw zt()}async statPromise(){throw zt()}statSync(){throw zt()}async fstatPromise(e){throw zt()}fstatSync(e){throw zt()}async lstatPromise(e){throw zt()}lstatSync(e){throw zt()}async fchmodPromise(){throw zt()}fchmodSync(){throw zt()}async chmodPromise(){throw zt()}chmodSync(){throw zt()}async fchownPromise(){throw zt()}fchownSync(){throw zt()}async chownPromise(){throw zt()}chownSync(){throw zt()}async mkdirPromise(){throw zt()}mkdirSync(){throw zt()}async rmdirPromise(){throw zt()}rmdirSync(){throw zt()}async linkPromise(){throw zt()}linkSync(){throw zt()}async symlinkPromise(){throw zt()}symlinkSync(){throw zt()}async renamePromise(){throw zt()}renameSync(){throw zt()}async copyFilePromise(){throw zt()}copyFileSync(){throw zt()}async appendFilePromise(){throw zt()}appendFileSync(){throw zt()}async writeFilePromise(){throw zt()}writeFileSync(){throw zt()}async unlinkPromise(){throw zt()}unlinkSync(){throw zt()}async utimesPromise(){throw zt()}utimesSync(){throw zt()}async lutimesPromise(){throw zt()}lutimesSync(){throw zt()}async readFilePromise(){throw zt()}readFileSync(){throw zt()}async readlinkPromise(){throw zt()}readlinkSync(){throw zt()}async truncatePromise(){throw zt()}truncateSync(){throw zt()}async ftruncatePromise(e,r){throw zt()}ftruncateSync(e,r){throw zt()}watch(){throw zt()}watchFile(){throw zt()}unwatchFile(){throw zt()}},LI=qR;LI.instance=new qR});var qp,V7=dt(()=>{mf();Ca();qp=class extends vs{constructor(r){super(ue);this.baseFs=r}mapFromBase(r){return ue.fromPortablePath(r)}mapToBase(r){return ue.toPortablePath(r)}}});var Z_e,jR,$_e,pi,J7=dt(()=>{Ug();mf();Ca();Z_e=/^[0-9]+$/,jR=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,$_e=/^([^/]+-)?[a-f0-9]+$/,pi=class extends vs{constructor({baseFs:r=new xn}={}){super(J);this.baseFs=r}static makeVirtualPath(r,o,a){if(J.basename(r)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!J.basename(o).match($_e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let u=J.relative(J.dirname(r),a).split("/"),A=0;for(;A<u.length&&u[A]==="..";)A+=1;let p=u.slice(A);return J.join(r,o,String(A),...p)}static resolveVirtual(r){let o=r.match(jR);if(!o||!o[3]&&o[5])return r;let a=J.dirname(o[1]);if(!o[3]||!o[4])return a;if(!Z_e.test(o[4]))return r;let u=Number(o[4]),A="../".repeat(u),p=o[5]||".";return pi.resolveVirtual(J.join(a,A,p))}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(r){let o=r.match(jR);if(!o)return this.baseFs.realpathSync(r);if(!o[5])return r;let a=this.baseFs.realpathSync(this.mapToBase(r));return pi.makeVirtualPath(o[1],o[3],a)}async realpathPromise(r){let o=r.match(jR);if(!o)return await this.baseFs.realpathPromise(r);if(!o[5])return r;let a=await this.baseFs.realpathPromise(this.mapToBase(r));return pi.makeVirtualPath(o[1],o[3],a)}mapToBase(r){if(r==="")return r;if(this.pathUtils.isAbsolute(r))return pi.resolveVirtual(r);let o=pi.resolveVirtual(this.baseFs.resolve(wt.dot)),a=pi.resolveVirtual(this.baseFs.resolve(r));return J.relative(o,a)||wt.dot}mapFromBase(r){return r}}});var yD,z7,mD,X7=dt(()=>{yD=Ie("url"),z7=Ie("util");mf();Ca();mD=class extends vs{constructor(r){super(ue);this.baseFs=r}mapFromBase(r){return r}mapToBase(r){if(typeof r=="string")return r;if(r instanceof yD.URL)return(0,yD.fileURLToPath)(r);if(Buffer.isBuffer(r)){let o=r.toString();if(Buffer.byteLength(o)!==r.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return o}throw new Error(`Unsupported path type: ${(0,z7.inspect)(r)}`)}}});var Z7,Io,yf,jp,ED,CD,ay,Mc,Uc,e8e,t8e,r8e,n8e,OI,$7=dt(()=>{Z7=Ie("readline"),Io=Symbol("kBaseFs"),yf=Symbol("kFd"),jp=Symbol("kClosePromise"),ED=Symbol("kCloseResolve"),CD=Symbol("kCloseReject"),ay=Symbol("kRefs"),Mc=Symbol("kRef"),Uc=Symbol("kUnref"),OI=class{constructor(e,r){this[e8e]=1;this[t8e]=void 0;this[r8e]=void 0;this[n8e]=void 0;this[Io]=r,this[yf]=e}get fd(){return this[yf]}async appendFile(e,r){try{this[Mc](this.appendFile);let o=(typeof r=="string"?r:r==null?void 0:r.encoding)??void 0;return await this[Io].appendFilePromise(this.fd,e,o?{encoding:o}:void 0)}finally{this[Uc]()}}async chown(e,r){try{return this[Mc](this.chown),await this[Io].fchownPromise(this.fd,e,r)}finally{this[Uc]()}}async chmod(e){try{return this[Mc](this.chmod),await this[Io].fchmodPromise(this.fd,e)}finally{this[Uc]()}}createReadStream(e){return this[Io].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Io].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,o,a){try{this[Mc](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??(e={}),n=e.buffer??Buffer.alloc(16384),r=e.offset||0,o=e.length??n.byteLength,a=e.position??null),r??(r=0),o??(o=0),o===0?{bytesRead:o,buffer:n}:{bytesRead:await this[Io].readPromise(this.fd,n,r,o,a),buffer:n}}finally{this[Uc]()}}async readFile(e){try{this[Mc](this.readFile);let r=(typeof e=="string"?e:e==null?void 0:e.encoding)??void 0;return await this[Io].readFilePromise(this.fd,r)}finally{this[Uc]()}}readLines(e){return(0,Z7.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Mc](this.stat),await this[Io].fstatPromise(this.fd,e)}finally{this[Uc]()}}async truncate(e){try{return this[Mc](this.truncate),await this[Io].ftruncatePromise(this.fd,e)}finally{this[Uc]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Mc](this.writeFile);let o=(typeof r=="string"?r:r==null?void 0:r.encoding)??void 0;await this[Io].writeFilePromise(this.fd,e,o)}finally{this[Uc]()}}async write(...e){try{if(this[Mc](this.write),ArrayBuffer.isView(e[0])){let[r,o,a,n]=e;return{bytesWritten:await this[Io].writePromise(this.fd,r,o??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,o,a]=e;return{bytesWritten:await this[Io].writePromise(this.fd,r,o,a),buffer:r}}}finally{this[Uc]()}}async writev(e,r){try{this[Mc](this.writev);let o=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);o+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);o+=n.bytesWritten}return{buffers:e,bytesWritten:o}}finally{this[Uc]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[yf]===-1)return Promise.resolve();if(this[jp])return this[jp];if(this[ay]--,this[ay]===0){let e=this[yf];this[yf]=-1,this[jp]=this[Io].closePromise(e).finally(()=>{this[jp]=void 0})}else this[jp]=new Promise((e,r)=>{this[ED]=e,this[CD]=r}).finally(()=>{this[jp]=void 0,this[CD]=void 0,this[ED]=void 0});return this[jp]}[(Io,yf,e8e=ay,t8e=jp,r8e=ED,n8e=CD,Mc)](e){if(this[yf]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[ay]++}[Uc](){if(this[ay]--,this[ay]===0){let e=this[yf];this[yf]=-1,this[Io].closePromise(e).then(this[ED],this[CD])}}}});function MI(t,e){e=new mD(e);let r=(o,a,n)=>{let u=o[a];o[a]=n,typeof(u==null?void 0:u[ly.promisify.custom])<"u"&&(n[ly.promisify.custom]=u[ly.promisify.custom])};{r(t,"exists",(o,...a)=>{let u=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(o).then(A=>{u(A)},()=>{u(!1)})})}),r(t,"read",(...o)=>{let[a,n,u,A,p,h]=o;if(o.length<=3){let C={};o.length<3?h=o[1]:(C=o[1],h=o[2]),{buffer:n=Buffer.alloc(16384),offset:u=0,length:A=n.byteLength,position:p}=C}if(u==null&&(u=0),A|=0,A===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,u,A,p).then(C=>{h(null,C,n)},C=>{h(C,0,n)})})});for(let o of eW){let a=o.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[o];if(typeof n>"u")continue;r(t,a,(...A)=>{let h=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{n.apply(e,A).then(C=>{h(null,C)},C=>{h(C)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",o=>{try{return e.existsSync(o)}catch{return!1}}),r(t,"readSync",(...o)=>{let[a,n,u,A,p]=o;return o.length<=3&&({offset:u=0,length:A=n.byteLength,position:p}=o[2]||{}),u==null&&(u=0),A|=0,A===0?0:(p==null&&(p=-1),e.readSync(a,n,u,A,p))});for(let o of i8e){let a=o;if(typeof t[a]>"u")continue;let n=e[o];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let o=t.promises;for(let a of eW){let n=a.replace(/Promise$/,"");if(typeof o[n]>"u")continue;let u=e[a];typeof u>"u"||a!=="open"&&r(o,n,(A,...p)=>A instanceof OI?A[n].apply(A,p):u.call(e,A,...p))}r(o,"open",async(...a)=>{let n=await e.openPromise(...a);return new OI(n,e)})}t.read[ly.promisify.custom]=async(o,a,...n)=>({bytesRead:await e.readPromise(o,a,...n),buffer:a}),t.write[ly.promisify.custom]=async(o,a,...n)=>({bytesWritten:await e.writePromise(o,a,...n),buffer:a})}function ID(t,e){let r=Object.create(t);return MI(r,e),r}var ly,i8e,eW,tW=dt(()=>{ly=Ie("util");X7();$7();i8e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),eW=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function rW(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function nW(){if(GR)return GR;let t=ue.toPortablePath(iW.default.tmpdir()),e=oe.realpathSync(t);return process.once("exit",()=>{oe.rmtempSync()}),GR={tmpdir:t,realTmpdir:e}}var iW,_c,GR,oe,sW=dt(()=>{iW=tt(Ie("os"));Ug();Ca();_c=new Set,GR=null;oe=Object.assign(new xn,{detachTemp(t){_c.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=nW();for(;;){let o=rW("xfs-");try{this.mkdirSync(J.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=J.join(r,o);if(_c.add(a),typeof t>"u")return a;try{return t(a)}finally{if(_c.has(a)){_c.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=nW();for(;;){let o=rW("xfs-");try{await this.mkdirPromise(J.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=J.join(r,o);if(_c.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(_c.has(a)){_c.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(_c.values()).map(async t=>{try{await oe.removePromise(t,{maxRetries:0}),_c.delete(t)}catch{}}))},rmtempSync(){for(let t of _c)try{oe.removeSync(t),_c.delete(t)}catch{}}})});var UI={};Yt(UI,{AliasFS:()=>ju,BasePortableFakeFS:()=>qu,CustomDir:()=>NI,CwdFS:()=>An,FakeFS:()=>df,Filename:()=>Lr,JailFS:()=>Gu,LazyFS:()=>oy,MountFS:()=>Hp,NoFS:()=>LI,NodeFS:()=>xn,PortablePath:()=>wt,PosixFS:()=>qp,ProxiedFS:()=>vs,VirtualFS:()=>pi,constants:()=>Ii,errors:()=>sr,extendFs:()=>ID,normalizeLineEndings:()=>Og,npath:()=>ue,opendir:()=>gD,patchFs:()=>MI,ppath:()=>J,setupCopyIndex:()=>hD,statUtils:()=>Ul,toFilename:()=>Li,unwatchAllFiles:()=>Lg,unwatchFile:()=>Ng,watchFile:()=>sy,xfs:()=>oe});var St=dt(()=>{x7();AD();OR();_R();T7();HR();Mg();Ca();Ca();_7();Mg();q7();G7();W7();Y7();K7();Ug();V7();mf();J7();tW();sW()});var uW=U((hPt,cW)=>{cW.exports=lW;lW.sync=o8e;var oW=Ie("fs");function s8e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var o=0;o<r.length;o++){var a=r[o].toLowerCase();if(a&&t.substr(-a.length).toLowerCase()===a)return!0}return!1}function aW(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:s8e(e,r)}function lW(t,e,r){oW.stat(t,function(o,a){r(o,o?!1:aW(a,t,e))})}function o8e(t,e){return aW(oW.statSync(t),t,e)}});var gW=U((gPt,hW)=>{hW.exports=fW;fW.sync=a8e;var AW=Ie("fs");function fW(t,e,r){AW.stat(t,function(o,a){r(o,o?!1:pW(a,e))})}function a8e(t,e){return pW(AW.statSync(t),e)}function pW(t,e){return t.isFile()&&l8e(t,e)}function l8e(t,e){var r=t.mode,o=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),u=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),A=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),C=A|p,w=r&h||r&p&&a===u||r&A&&o===n||r&C&&n===0;return w}});var mW=U((mPt,dW)=>{var dPt=Ie("fs"),wD;process.platform==="win32"||global.TESTING_WINDOWS?wD=uW():wD=gW();dW.exports=WR;WR.sync=c8e;function WR(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){WR(t,e||{},function(n,u){n?a(n):o(u)})})}wD(t,e||{},function(o,a){o&&(o.code==="EACCES"||e&&e.ignoreErrors)&&(o=null,a=!1),r(o,a)})}function c8e(t,e){try{return wD.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var vW=U((yPt,BW)=>{var cy=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",yW=Ie("path"),u8e=cy?";":":",EW=mW(),CW=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),IW=(t,e)=>{let r=e.colon||u8e,o=t.match(/\//)||cy&&t.match(/\\/)?[""]:[...cy?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=cy?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=cy?a.split(r):[""];return cy&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:o,pathExt:n,pathExtExe:a}},wW=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:o,pathExt:a,pathExtExe:n}=IW(t,e),u=[],A=h=>new Promise((C,w)=>{if(h===o.length)return e.all&&u.length?C(u):w(CW(t));let v=o[h],b=/^".*"$/.test(v)?v.slice(1,-1):v,E=yW.join(b,t),R=!b&&/^\.[\\\/]/.test(t)?t.slice(0,2)+E:E;C(p(R,h,0))}),p=(h,C,w)=>new Promise((v,b)=>{if(w===a.length)return v(A(C+1));let E=a[w];EW(h+E,{pathExt:n},(R,L)=>{if(!R&&L)if(e.all)u.push(h+E);else return v(h+E);return v(p(h,C,w+1))})});return r?A(0).then(h=>r(null,h),r):A(0)},A8e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:o,pathExtExe:a}=IW(t,e),n=[];for(let u=0;u<r.length;u++){let A=r[u],p=/^".*"$/.test(A)?A.slice(1,-1):A,h=yW.join(p,t),C=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;for(let w=0;w<o.length;w++){let v=C+o[w];try{if(EW.sync(v,{pathExt:a}))if(e.all)n.push(v);else return v}catch{}}}if(e.all&&n.length)return n;if(e.nothrow)return null;throw CW(t)};BW.exports=wW;wW.sync=A8e});var SW=U((EPt,YR)=>{"use strict";var DW=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"};YR.exports=DW;YR.exports.default=DW});var QW=U((CPt,bW)=>{"use strict";var PW=Ie("path"),f8e=vW(),p8e=SW();function xW(t,e){let r=t.options.env||process.env,o=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let u;try{u=f8e.sync(t.command,{path:r[p8e({env:r})],pathExt:e?PW.delimiter:void 0})}catch{}finally{n&&process.chdir(o)}return u&&(u=PW.resolve(a?t.options.cwd:"",u)),u}function h8e(t){return xW(t)||xW(t,!0)}bW.exports=h8e});var kW=U((IPt,VR)=>{"use strict";var KR=/([()\][%!^"`<>&|;, *?])/g;function g8e(t){return t=t.replace(KR,"^$1"),t}function d8e(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(KR,"^$1"),e&&(t=t.replace(KR,"^$1")),t}VR.exports.command=g8e;VR.exports.argument=d8e});var RW=U((wPt,FW)=>{"use strict";FW.exports=/^#!(.*)/});var NW=U((BPt,TW)=>{"use strict";var m8e=RW();TW.exports=(t="")=>{let e=t.match(m8e);if(!e)return null;let[r,o]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?o:o?`${a} ${o}`:a}});var OW=U((vPt,LW)=>{"use strict";var JR=Ie("fs"),y8e=NW();function E8e(t){let r=Buffer.alloc(150),o;try{o=JR.openSync(t,"r"),JR.readSync(o,r,0,150,0),JR.closeSync(o)}catch{}return y8e(r.toString())}LW.exports=E8e});var HW=U((DPt,_W)=>{"use strict";var C8e=Ie("path"),MW=QW(),UW=kW(),I8e=OW(),w8e=process.platform==="win32",B8e=/\.(?:com|exe)$/i,v8e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function D8e(t){t.file=MW(t);let e=t.file&&I8e(t.file);return e?(t.args.unshift(t.file),t.command=e,MW(t)):t.file}function S8e(t){if(!w8e)return t;let e=D8e(t),r=!B8e.test(e);if(t.options.forceShell||r){let o=v8e.test(e);t.command=C8e.normalize(t.command),t.command=UW.command(t.command),t.args=t.args.map(n=>UW.argument(n,o));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function P8e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let o={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?o:S8e(o)}_W.exports=P8e});var GW=U((SPt,jW)=>{"use strict";var zR=process.platform==="win32";function XR(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function x8e(t,e){if(!zR)return;let r=t.emit;t.emit=function(o,a){if(o==="exit"){let n=qW(a,e,"spawn");if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function qW(t,e){return zR&&t===1&&!e.file?XR(e.original,"spawn"):null}function b8e(t,e){return zR&&t===1&&!e.file?XR(e.original,"spawnSync"):null}jW.exports={hookChildProcess:x8e,verifyENOENT:qW,verifyENOENTSync:b8e,notFoundError:XR}});var eT=U((PPt,uy)=>{"use strict";var WW=Ie("child_process"),ZR=HW(),$R=GW();function YW(t,e,r){let o=ZR(t,e,r),a=WW.spawn(o.command,o.args,o.options);return $R.hookChildProcess(a,o),a}function Q8e(t,e,r){let o=ZR(t,e,r),a=WW.spawnSync(o.command,o.args,o.options);return a.error=a.error||$R.verifyENOENTSync(a.status,o),a}uy.exports=YW;uy.exports.spawn=YW;uy.exports.sync=Q8e;uy.exports._parse=ZR;uy.exports._enoent=$R});function VW(t){KW=t}function _I(){return typeof tT>"u"&&(tT=KW()),tT}var tT,KW,rT=dt(()=>{KW=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var JW=U((BD,iT)=>{var k8e=Object.assign({},Ie("fs")),nT=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},o,a;r.ready=new Promise(function(Be,xe){o=Be,a=xe});var n={},u;for(u in r)r.hasOwnProperty(u)&&(n[u]=r[u]);var A=[],p="./this.program",h=function(Be,xe){throw xe},C=!1,w=!0,v="";function b(Be){return r.locateFile?r.locateFile(Be,v):v+Be}var E,R,L,_;w&&(C?v=Ie("path").dirname(v)+"/":v=__dirname+"/",E=function(xe,Ve){var vt=$n(xe);return vt?Ve?vt:vt.toString():(L||(L=k8e),_||(_=Ie("path")),xe=_.normalize(xe),L.readFileSync(xe,Ve?null:"utf8"))},R=function(xe){var Ve=E(xe,!0);return Ve.buffer||(Ve=new Uint8Array(Ve)),ve(Ve.buffer),Ve},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),A=process.argv.slice(2),h=function(Be){process.exit(Be)},r.inspect=function(){return"[Emscripten Module object]"});var V=r.print||console.log.bind(console),re=r.printErr||console.warn.bind(console);for(u in n)n.hasOwnProperty(u)&&(r[u]=n[u]);n=null,r.arguments&&(A=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var ae=0,he=function(Be){ae=Be},pe;r.wasmBinary&&(pe=r.wasmBinary);var De=r.noExitRuntime||!0;typeof WebAssembly!="object"&&ki("no native wasm support detected");function ge(Be,xe,Ve){switch(xe=xe||"i8",xe.charAt(xe.length-1)==="*"&&(xe="i32"),xe){case"i1":return _e[Be>>0];case"i8":return _e[Be>>0];case"i16":return up((Be>>1)*2);case"i32":return ks((Be>>2)*4);case"i64":return ks((Be>>2)*4);case"float":return gu((Be>>2)*4);case"double":return cp((Be>>3)*8);default:ki("invalid type for getValue: "+xe)}return null}var le,Pe=!1,g;function ve(Be,xe){Be||ki("Assertion failed: "+xe)}function Ee(Be){var xe=r["_"+Be];return ve(xe,"Cannot call unknown function "+Be+", make sure it is exported"),xe}function de(Be,xe,Ve,vt,tr){var Zr={string:function(yi){var ca=0;if(yi!=null&&yi!==0){var Ga=(yi.length<<2)+1;ca=ee(Ga),ut(yi,ca,Ga)}return ca},array:function(yi){var ca=ee(yi.length);return Me(yi,ca),ca}};function Tn(yi){return xe==="string"?me(yi):xe==="boolean"?Boolean(yi):yi}var _r=Ee(Be),ei=[],Ti=0;if(vt)for(var Kn=0;Kn<vt.length;Kn++){var ja=Zr[Ve[Kn]];ja?(Ti===0&&(Ti=qa()),ei[Kn]=ja(vt[Kn])):ei[Kn]=vt[Kn]}var la=_r.apply(null,ei);return la=Tn(la),Ti!==0&&aa(Ti),la}function ne(Be,xe,Ve,vt){Ve=Ve||[];var tr=Ve.every(function(Tn){return Tn==="number"}),Zr=xe!=="string";return Zr&&tr&&!vt?Ee(Be):function(){return de(Be,xe,Ve,arguments,vt)}}var Z=new TextDecoder("utf8");function me(Be,xe){if(!Be)return"";for(var Ve=Be+xe,vt=Be;!(vt>=Ve)&&qe[vt];)++vt;return Z.decode(qe.subarray(Be,vt))}function be(Be,xe,Ve,vt){if(!(vt>0))return 0;for(var tr=Ve,Zr=Ve+vt-1,Tn=0;Tn<Be.length;++Tn){var _r=Be.charCodeAt(Tn);if(_r>=55296&&_r<=57343){var ei=Be.charCodeAt(++Tn);_r=65536+((_r&1023)<<10)|ei&1023}if(_r<=127){if(Ve>=Zr)break;xe[Ve++]=_r}else if(_r<=2047){if(Ve+1>=Zr)break;xe[Ve++]=192|_r>>6,xe[Ve++]=128|_r&63}else if(_r<=65535){if(Ve+2>=Zr)break;xe[Ve++]=224|_r>>12,xe[Ve++]=128|_r>>6&63,xe[Ve++]=128|_r&63}else{if(Ve+3>=Zr)break;xe[Ve++]=240|_r>>18,xe[Ve++]=128|_r>>12&63,xe[Ve++]=128|_r>>6&63,xe[Ve++]=128|_r&63}}return xe[Ve]=0,Ve-tr}function ut(Be,xe,Ve){return be(Be,qe,xe,Ve)}function H(Be){for(var xe=0,Ve=0;Ve<Be.length;++Ve){var vt=Be.charCodeAt(Ve);vt>=55296&&vt<=57343&&(vt=65536+((vt&1023)<<10)|Be.charCodeAt(++Ve)&1023),vt<=127?++xe:vt<=2047?xe+=2:vt<=65535?xe+=3:xe+=4}return xe}function yt(Be){var xe=H(Be)+1,Ve=vl(xe);return Ve&&be(Be,_e,Ve,xe),Ve}function Me(Be,xe){_e.set(Be,xe)}function Te(Be,xe){return Be%xe>0&&(Be+=xe-Be%xe),Be}var Qe,_e,qe,At,Oe,x,I,P,y,F;function z(Be){Qe=Be,r.HEAP_DATA_VIEW=F=new DataView(Be),r.HEAP8=_e=new Int8Array(Be),r.HEAP16=At=new Int16Array(Be),r.HEAP32=x=new Int32Array(Be),r.HEAPU8=qe=new Uint8Array(Be),r.HEAPU16=Oe=new Uint16Array(Be),r.HEAPU32=I=new Uint32Array(Be),r.HEAPF32=P=new Float32Array(Be),r.HEAPF64=y=new Float64Array(Be)}var X=r.INITIAL_MEMORY||16777216,$,ie=[],ke=[],Ne=[],st=!1;function ht(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)xt(r.preRun.shift());no(ie)}function Ut(){st=!0,no(ke)}function Xt(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Dr(r.postRun.shift());no(Ne)}function xt(Be){ie.unshift(Be)}function tn(Be){ke.unshift(Be)}function Dr(Be){Ne.unshift(Be)}var fr=0,Br=null,jr=null;function Hn(Be){fr++,r.monitorRunDependencies&&r.monitorRunDependencies(fr)}function bs(Be){if(fr--,r.monitorRunDependencies&&r.monitorRunDependencies(fr),fr==0&&(Br!==null&&(clearInterval(Br),Br=null),jr)){var xe=jr;jr=null,xe()}}r.preloadedImages={},r.preloadedAudios={};function ki(Be){r.onAbort&&r.onAbort(Be),Be+="",re(Be),Pe=!0,g=1,Be="abort("+Be+"). Build with -s ASSERTIONS=1 for more info.";var xe=new WebAssembly.RuntimeError(Be);throw a(xe),xe}var gs="data:application/octet-stream;base64,";function to(Be){return Be.startsWith(gs)}var Di="data:application/octet-stream;base64,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AQsgAEEAOgAAQQAPCyAAKAIEIgNFBEBBAA8LIAAgAjcDECADIAGnaigAAAtVAgF+AX8gAARAAkAgACkDCFANAEIBIQEDQCAAKAIAIAJBBHRqEDogASAAKQMIWg0BIAGnIQIgAUIBfCEBDAALAAsgACgCABAGIAAoAigQECAAEAYLC2QBAn8CQAJAAkAgAEUEQCABpxAIIgNFDQJBGBAIIgJFDQEMAwsgACEDQRgQCCICDQJBAA8LIAMQBgtBAA8LIAJCADcDECACIAE3AwggAiADNgIEIAJBAToAACACIABFOgABIAILnQECAn4BfwJAAkAgAC0AAEUNACAAKQMQIgJCd1YNACACQgh8IgMgACkDCFgNAQsgAEEAOgAADwsgACgCBCIERQRADwsgACADNwMQIAQgAqdqIgAgAUI4iDwAByAAIAFCMIg8AAYgACABQiiIPAAFIAAgAUIgiDwABCAAIAFCGIg8AAMgACABQhCIPAACIAAgAUIIiDwAASAAIAE8AAAL8AICAn8BfgJAIAJFDQAgACACaiIDQQFrIAE6AAAgACABOgAAIAJBA0kNACADQQJrIAE6AAAgACABOgABIANBA2sgAToAACAAIAE6AAIgAkEHSQ0AIANBBGsgAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgA2AgAgAyACIARrQXxxIgJqIgFBBGsgADYCACACQQlJDQAgAyAANgIIIAMgADYCBCABQQhrIAA2AgAgAUEMayAANgIAIAJBGUkNACADIAA2AhggAyAANgIUIAMgADYCECADIAA2AgwgAUEQayAANgIAIAFBFGsgADYCACABQRhrIAA2AgAgAUEcayAANgIAIAIgA0EEcUEYciIBayICQSBJDQAgAK1CgYCAgBB+IQUgASADaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLC28BA38gAEEMaiECAkACfyAAKAIgIgFFBEBBfyEBQRIMAQsgACABQQFrIgM2AiBBACEBIAMNASAAQQBCAEECEA4aIAAoAgAiAEUNASAAEBtBf0oNAUEUCyEAIAIEQCACQQA2AgQgAiAANgIACwsgAQufAQIBfwF+An8CQAJ+IAAoAgAiAygCJEEBRkEA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RQ0AIAQtAAxFDQFBFyEFIAcNAQtBACECIAMgAEEIaiADGyIABEAgAEEANgIEIAAgBTYCAAsLIAILbgEBfyMAQYACayIFJAACQCAEQYDABHENACACIANMDQAgBSABQf8BcSACIANrIgJBgAIgAkGAAkkiARsQGiABRQRAA0AgACAFQYACEC4gAkGAAmsiAkH/AUsNAAsLIAAgBSACEC4LIAVBgAJqJAALUgECf0H0mAEoAgAiASAAQQNqQXxxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABADRQ0BC0H0mAEgADYCACABDwtB+JsBQTA2AgBBfwuGBQEGfyAAKAIwIgNBhgJrIQYgACgCPCECIAMhAQNAIAAoAkQgAiAAKAJkIgRqayECIAEgBmogBE0EQCAAKAJIIgEgASADaiADEAkaAkAgAyAAKAJoIgFNBEAgACABIANrNgJoDAELIABCADcDaAsgACAAKAJkIANrIgE2AmQgACAAKAJUIANrNgJUIAEgACgCqC1JBEAgACABNgKoLQsgAEHQmAEoAgARBAAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJkaiAFaiEFIAEgBCACazYCBAJAIAEoAhwoAhRBAkYEQCABIAUgAhBADAELIAUgASgCACACEAkhBCABKAIcKAIUQQFHDQAgASABKAIwIAQgAkHImAEoAgARAAA2AjALIAEgASgCACACajYCACABIAEoAgggAmo2AgggACgCPAUgBQsgAmoiAjYCPAJAIAAoAqgtIgEgAmpBA0kNACAAKAJkIAFrIgEEQCAAIAFBAWtBxJgBKAIAEQEAGiAAKAI8IQILIAAoAqgtIAJBAUZrIgRFDQAgACABIARBwJgBKAIAEQcAIAAgACgCqC0gBGs2AqgtIAAoAjwhAgsgAkGFAksNACAAKAIAKAIERQ0AIAAoAjAhAQwBCwsCQCAAKAJEIgIgACgCQCIDTQ0AIAACfyAAKAI8IAAoAmRqIgEgA0sEQCAAKAJIIAFqQQAgAiABayIDQYICIANBggJJGyIDEBogASADagwBCyABQYICaiIBIANNDQEgACgCSCADakEAIAIgA2siAiABIANrIgMgAiADSRsiAxAaIAAoAkAgA2oLNgJACws3ACAAQn83AxAgAEEANgIIIABCADcDACAAQQA2AjAgAEL/////DzcDKCAAQgA3AxggAEIANwMgC6UBAQF/QdgAEAgiAUUEQEEADwsCQCAABEAgASAAQdgAEAkaDAELIAFCADcDICABQQA2AhggAUL/////DzcDECABQQA7AQwgAUG/hig2AgggAUEBOgAGIAFBADoABCABQgA3A0ggAUGAgNiNeDYCRCABQgA3AyggAUIANwMwIAFCADcDOCABQUBrQQA7AQAgAUIANwNQCyABQQE6AAUgAUEANgIAIAELWAICfgF/AkACQCAALQAARQ0AIAApAxAiAyACrXwiBCADVA0AIAQgACkDCFgNAQsgAEEAOgAADwsgACgCBCIFRQRADwsgACAENwMQIAUgA6dqIAEgAhAJGguWAQECfwJAAkAgAkUEQCABpxAIIgVFDQFBGBAIIgQNAiAFEAYMAQsgAiEFQRgQCCIEDQELIAMEQCADQQA2AgQgA0EONgIAC0EADwsgBEIANwMQIAQgATcDCCAEIAU2AgQgBEEBOgAAIAQgAkU6AAEgACAFIAEgAxBpQQBIBH8gBC0AAQRAIAQoAgQQBgsgBBAGQQAFIAQLC5sCAQN/IAAtAABBIHFFBEACQCABIQMCQCACIAAiASgCECIABH8gAAUCfyABIAEtAEoiAEEBayAAcjoASiABKAIAIgBBCHEEQCABIABBIHI2AgBBfwwBCyABQgA3AgQgASABKAIsIgA2AhwgASAANgIUIAEgACABKAIwajYCEEEACw0BIAEoAhALIAEoAhQiBWtLBEAgASADIAIgASgCJBEAABoMAgsCfyABLABLQX9KBEAgAiEAA0AgAiAAIgRFDQIaIAMgBEEBayIAai0AAEEKRw0ACyABIAMgBCABKAIkEQAAIARJDQIgAyAEaiEDIAEoAhQhBSACIARrDAELIAILIQAgBSADIAAQCRogASABKAIUIABqNgIUCwsLCxAAIAAoAggQBiAAQQA2AggLWQIBfwF+AkACf0EAIABFDQAaIACtIAGtfiIDpyICIAAgAXJBgIAESQ0AGkF/IAIgA0IgiKcbCyICEAgiAEUNACAAQQRrLQAAQQNxRQ0AIABBACACEBoLIAAL8AEBAn9BfyEBAkAgAC0AKA0AIAAoAiRBA0YEQCAAQQxqBEAgAEEANgIQIABB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DwsCQAJAIAAgASACIAMQhwEiBEUNAEEYEAgiAkUEQCADBEAgA0EANgIEIANBDjYCAAsCQCAEKAIoIgBFBEAgBCkDGCEBDAELIABBADYCKCAEKAIoQgA3AyAgBCAEKQMYIgUgBCkDICIBIAEgBVQbIgE3AxgLIAQpAwggAVYEQANAIAQoAgAgAadBBHRqKAIAEAYgAUIBfCIBIAQpAwhUDQALCyAEKAIAEAYgBCgCBBAGIAQQBgwBCyACQQA2AhQgAiAENgIQIAJBABABNgIMIAJBADYCCCACQgA3AgACf0E4EAgiAEUEQCADBEAgA0EANgIEIANBDjYCAAtBAAwBCyAAQQA2AgggAEIANwMAIABCADcDICAAQoCAgIAQNwIsIABBADoAKCAAQQA2AhQgAEIANwIMIABBADsBNCAAIAI2AgggAEEjNgIEIABCPyACQQBCAEEOQSMRDAAiASABQgBTGzcDGCAACyIADQEgAigCECIDBEACQCADKAIoIgBFBEAgAykDGCEBDAELIABBADYCKCADKAIoQgA3AyAgAyADKQMYIgUgAykDICIBIAEgBVQbIgE3AxgLIAMpAwggAVYEQANAIAMoAgAgAadBBHRqKAIAEAYgAUIBfCIBIAMpAwhUDQALCyADKAIAEAYgAygCBBAGIAMQBgsgAhAGC0EAIQALIAALFAAgABBBIAAoAgAQICAAKAIEECALiwwBBn8gACABaiEFAkACQCAAKAIEIgJBAXENACACQQNxRQ0BIAAoAgAiAiABaiEBAkAgACACayIAQbycASgCAEcEQCACQf8BTQRAIAAoAggiBCACQQN2IgJBA3RB0JwBakYaIAAoAgwiAyAERw0CQaicAUGonAEoAgBBfiACd3E2AgAMAwsgACgCGCEGAkAgACAAKAIMIgNHBEAgACgCCCICQbicASgCAEkaIAIgAzYCDCADIAI2AggMAQsCQCAAQRRqIgIoAgAiBA0AIABBEGoiAigCACIEDQBBACEDDAELA0AgAiEHIAQiA0EUaiICKAIAIgQNACADQRBqIQIgAygCECIEDQALIAdBADYCAAsgBkUNAgJAIAAgACgCHCIEQQJ0QdieAWoiAigCAEYEQCACIAM2AgAgAw0BQaycAUGsnAEoAgBBfiAEd3E2AgAMBAsgBkEQQRQgBigCECAARhtqIAM2AgAg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ACIIQiCIpyEEIAinIQEMAwsgAUEHTQRAIAAgAmpBAWshByABIAJJBEAgA0EEaiEGA0AgByAAa0EBaiIEIAEgASAESxsiBUEITwRAA0AgACADKQAANwAAIANBCGohAyAAQQhqIQAMAAsACyAFQQRJBH8gAwUgACADKAAANgAAIAVBBGshBSAAQQRqIQAgBgshBCAFQQJPBEAgACAELwAAOwAAIAVBAmshBSAEQQJqIQQgAEECaiEACyAFQQFGBEAgACAELQAAOgAAIABBAWohAAsgAiABayICIAFLDQALIAJFDQULAkAgByAAa0EBaiIBIAIgASACSRsiAkEISQ0AIAJBCGsiBEEDdkEBakEHcSIBBEADQCAAIAMpAAA3AAAgAkEIayECIANBCGohAyAAQQhqIQAgAUEBayIBDQALCyAEQThJDQADQCAAIAMpAAA3AAAgACADKQAINwAIIAAgAykAEDcAECAAIAMpABg3ABggACADKQAgNwAgIAAgAykAKDcAKCAAIAMpADA3ADAgACADKQA4NwA4IANBQGshAyAAQUBrIQAgAkFAaiICQQdLDQALCyACQQRPBEAgACADKAAANgAAIAJBBGshAiADQQRqIQMgAEEEaiEACyACQQJPBEAgACADLwAAOwAAIAJBAmshAiADQQJqIQMgAEECaiEACyACQQFHDQQgACADLQAAOgAAIABBAWoPCyAAIAMpAAA3AAAgACACQQFrIgFBB3FBAWoiAmohACABQQhJDQMgAiADaiEDIAFBA3YiAkEBayEEIAJBB3EiAQRAA0AgACADKQAANwAAIAJBAWshAiADQQhqIQMgAEEIaiEAIAFBAWsiAQ0ACwsgBEEHSQ0DA0AgACADKQAANwAAIAAgAykACDcACCAAIAMpABA3ABAgACADKQAYNwAYIAAgAykAIDcAICAAIAMpACg3ACggACADKQAwNwAwIAAgAykAODcAOCADQUBrIQMgAEFAayEAIAJBCGsiAg0ACwwDCyADLQAAQYGChAhsCyIBIQQLIAJBB3EhBgJAIAJBeHEiAkUNACABrSAErUIghoQhCCACQQhrIgRBA3ZBAWpBB3EiAQRAA0AgACAINwAAIAJBCGshAiAAQQhqIQAgAUEBayIBDQALCyAEQThJDQADQCAAIAg3ADggACAINwAwIAAgCDcAKCAAIAg3ACAgACAINwAYIAAgCDcAECAAIAg3AAggACAINwAAIABBQGshACACQUBqIgINAAsLIAZFDQAgACADIAYQCSAGaiEACyAADwsgACADLQABOgABIAJBAkYEQCAAQQJqDwsgACADLQACOgACIAJBA0YEQCAAQQNqDwsgACADLQADOgADIAJBBEYEQCAAQQRqDwsgACADLQAEOgAEIAJBBUYEQCAAQQVqDwsgACADLQAFOgAFIAJBBkYEQCAAQQZqDwsgACADLQAGOgAGIABBB2oLAwABC2wBA38CQCABKAIAIgNBB0sNACADIAIoAgBPDQAgACADayEEA0AgACAEKQAANwAAIAIgAigCACABKAIAIgVrNgIAIAEgASgCAEEBdCIDNgIAIAAgBWohACADQQdLDQEgAyACKAIASQ0ACwsgAAu8AgEBfwJAIAMgAGtBAWoiAyACIAIgA0sbIgJBCEkNACACQQhrIgRBA3ZBAWpBB3EiAwRAA0AgACABKQAANwAAIAJBCGshAiABQQhqIQEgAEEIaiEAIANBAWsiAw0ACwsgBEE4SQ0AA0AgACABKQAANwAAIAAgASkACDcACCAAIAEpABA3ABAgACABKQAYNwAYIAAgASkAIDcAICAAIAEpACg3ACggACABKQAwNwAwIAAgASkAODcAOCABQUBrIQEgAEFAayEAIAJBQGoiAkEHSw0ACwsgAkEETwRAIAAgASgAADYAACACQQRrIQIgAUEEaiEBIABBBGohAAsgAkECTwRAIAAgAS8AADsAACACQQJrIQIgAUECaiEBIABBAmohAAsgAkEBRgR/IAAgAS0AADoAACAAQQFqBSAACwvnAQECfyAAIAEpAAA3AAAgACACQQFrIgJBB3FBAWoiA2ohAAJAIAJBCEkNACABIANqIQEgAkEDdiICQQFrIQQgAkEHcSIDBEADQCAAIAEpAAA3AAAgAkEBayECIAFBCGohASAAQQhqIQAgA0EBayIDDQALCyAEQQdJDQADQCAAIAEpAAA3AAAgACABKQAINwAIIAAgASkAEDcAECAAIAEpABg3ABggACABKQAgNwAgIAAgASkAKDcAKCAAIAEpADA3ADAgACABKQA4NwA4IAFBQGshASAAQUBrIQAgAkEIayICDQALCyAAC/wFAQR/IABB//8DcSEDIABBEHYhBEEBIQAgAkEBRgRAIAMgAS0AAGoiAEHx/wNrIAAgAEHw/wNLGyIAIARqIgFBEHQiAkGAgDxqIAIgAUHw/wNLGyAAcg8LAkAgAQR/IAJBEEkNAQJAAkACQCACQa8rSwRAA0AgAkGwK2shAkG1BSEFIAEhAANAIAMgAC0AAGoiAyAEaiADIAAtAAFqIgNqIAMgAC0AAmoiA2ogAyAALQADaiIDaiADIAAtAARqIgNqIAMgAC0ABWoiA2ogAyAALQAGaiIDaiADIAAtAAdqIgNqIQQgBQRAIABBCGohACAFQQFrIQUMAQsLIARB8f8DcCEEIANB8f8DcCEDIAFBsCtqIQEgAkGvK0sNAAsgAkUNAyACQQhJDQELA0AgAyABLQAAaiIAIARqIAAgAS0AAWoiAGogACABLQACaiIAaiAAIAEtAANqIgBqIAAgAS0ABGoiAGogACABLQAFaiIAaiAAIAEtAAZqIgBqIAAgAS0AB2oiA2ohBCABQQhqIQEgAkEIayICQQdLDQALIAJFDQELIAJBAWshBiACQQNxIgUEQCABIQADQCACQQFrIQIgAyAALQAAaiIDIARqIQQgAEEBaiIBIQAgBUEBayIFDQALCyAGQQNJDQADQCADIAEtAABqIgAgAS0AAWoiBSABLQACaiIGIAEtAANqIgMgBiAFIAAgBGpqamohBCABQQRqIQEgAkEEayICDQALCyAEQfH/A3AhBCADQfH/A3AhAwsgBEEQdCADcgVBAQsPCwJAIAJFDQAgAkEBayEGIAJBA3EiBQRAIAEhAANAIAJBAWshAiADIAAtAABqIgMgBGohBCAAQQFqIgEhACAFQQFrIgUNAAsLIAZBA0kNAANAIAMgAS0AAGoiACABLQABaiIFIAEtAAJqIgYgAS0AA2oiAyAGIAUgACAEampqaiEEIAFBBGohASACQQRrIgINAAsLIARB8f8DcEEQdCADQfH/A2sgAyADQfD/A0sbcgv+DQEKfyAAKAIwIgIgACgCDEEFayIDIAIgA0kbIQggACgCACICKAIEIQkgAUEERiEHAkADQCACKAIQIgMgACgCwC1BKmpBA3UiBEkEQEEBIQQMAgsgCCADIARrIgMgACgCZCAAKAJUayIGIAIoAgRqIgVB//8DIAVB//8DSRsiBCADIARJGyIDSwRAQQEhBCADQQBHIAdyRQ0CIAFFDQIgAyAFRw0CCyAAQQBBACAHIAMgBUZxIgoQPSAAIAAoAhAiAkEDazYCECACIAAoAgRqQQRrIAM6AAAgACAAKAIQIgJBAWo2AhAgAiAAKAIEaiADQQh2OgAAIAAgACgCECICQQFqNgIQIAIgACgCBGogA0F/cyICOgAAIAAgACgCECIEQQFqNgIQIAQgACgCBGogAkEIdjoAACAAKAIAIgIoAhwiBBAUAkAgAigCECIFIAQoAhAiCyAFIAtJGyIFRQ0AIAIoAgwgBCgCCCAFEAkaIAIgAigCDCAFajYCDCAEIAQoAgggBWo2AgggAiACKAIUIAVqNgIUIAIgAigCECAFazYCECAEIAQoAhAgBWsiAjYCECACDQAgBCAEKAIENgIICwJ/IAYEQCAAKAIAKAIMIAAoAkggACgCVGogAyAGIAMgBkkbIgIQCRogACgCACIEIAQoAgwgAmo2AgwgBCAEKAIQIAJrNgIQIAQgBCgCFCACajYCFCAAIAAoAlQgAmo2AlQgAyACayEDCyADCwRAIAAoAgAiAigCDCEEIAMgAigCBCIGIAMgBkkbIgUEQCACIAYgBWs2AgQCQCACKAIcKAIUQQJGBEAgAiAEIAUQQAwBCyAEIAIoAgAgBRAJIQQgAigCHCgCFEEBRw0AIAIgAigCMCAEIAVByJgBKAIAEQAANgIwCyACIAIoAgAgBWo2AgAgAiACKAIIIAVqNgIIIAAoAgAiAigCDCEECyACIAMgBGo2AgwgAiACKAIQIANrNgIQIAIgAigCFCADajYCFAsgACgCACECIApFDQALQQAhBAsCQCAJIAIoAgRrIgVFBEAgACgCZCEDDAELAkAgACgCMCIDIAVNBEAgAEECNgKkLSAAKAJIIAIoAgAgA2sgAxAJGiAAIAAoAjAiAzYCqC0gACADNgJkDAELAkAgACgCRCAAKAJkIgJrIAVLDQAgACACIANrIgI2AmQgACgCSCIGIAMgBmogAhAJGiAAKAKkLSICQQFNBEAgACACQQFqNgKkLQsgACgCZCICIAAoAqgtTw0AIAAgAjYCqC0LIAAoAkggAmogACgCACgCACAFayAFEAkaIAAgACgCZCAFaiIDNgJkIAAgACgCMCAAKAKoLSICayIGIAUgBSAGSxsgAmo2AqgtCyAAIAM2AlQLIAMgACgCQEsEQCAAIAM2AkALQQMhAgJAIARFDQAgACgCACgCBCEEAkACQCABQXtxRQ0AIAQNAEEBIQIgAyAAKAJURg0CIAAoAkQgA2shAgwBCyAEIAAoAkQgA2siAk0NACAAKAJUIgUgACgCMCIESA0AIAAgAyAEayIDNgJkIAAgBSAEazYCVCAAKAJIIgUgBCAFaiADEAkaIAAoAqQtIgNBAU0EQCAAIANBAWo2AqQtCyAAKAIwIAJqIQIgACgCZCIDIAAoAqgtTw0AIAAgAzYCqC0LIAAoAgAiBCgCBCIFIAIgAiAFSxsiAgRAIAAoAkghBiAEIAUgAms2AgQgAyAGaiEDAkAgBCgCHCgCFEECRgRAIAQgAyACEEAMAQsgAyAEKAIAIAIQCSEDIAQoAhwoAhRBAUcNACAEIAQoAjAgAyACQciYASgCABEAADYCMAsgBCAEKAIAIAJqNgIAIAQgBCgCCCACajYCCCAAIAAoAmQgAmoiAzYCZCAAIAAoAjAgACgCqC0iBGsiBSACIAIgBUsbIARqNgKoLQsgAyAAKAJASwRAIAAgAzYCQAsgAyAAKAJUIgZrIgMgACgCMCICIAAoAgwgACgCwC1BKmpBA3VrIgRB//8DIARB//8DSRsiBSACIAVJG0kEQEEAIQIgAUEERiADQQBHckUNASABRQ0BIAAoAgAoAgQNASADIAVLDQELQQAhBCABQQRGBEAgACgCACgCBEUgAyAFTXEhBAsgACAAKAJIIAZqIAUgAyADIAVLGyIBIAQQPSAAIAAoAlQgAWo2AlQgACgCACIAKAIcIgEQFAJAIAAoAhAiAiABKAIQIgMgAiADSRsiAkUNACAAKAIMIAEoAgggAhAJGiAAIAAoAgwgAmo2AgwgASABKAIIIAJqNgIIIAAgACgCFCACajYCFCAAIAAoAhAgAms2AhAgASABKAIQIAJrIgA2AhAgAA0AIAEgASgCBDYCCAtBAkEAIAQbIQILIAILfQEBfyAAIAAoAhAiAkEBajYCECACIAAoAgRqIAFBGHY6AAAgACAAKAIQIgJBAWo2AhAgAiAAKAIEaiABQRB2OgAAIAAgACgCECICQQFqNgIQIAIgACgCBGogAUEIdjoAACAAIAAoAhAiAkEBajYCECACIAAoAgRqIAE6AAALvAIBBH9BfiECAkAgAEUNACAAKAIgRQ0AIAAoAiQiBEUNACAAKAIcIgFFDQAgASgCACAARw0AAkACQCABKAIgIgNBOWsOOQECAgICAgICAgICAgECAgIBAgICAgICAgICAgICAgICAgIBAgICAgICAgICAgIBAgICAgICAgICAQALIANBmgVGDQAgA0EqRw0BCwJ/An8CfyABKAIEIgIEQCAAKAIoIAIgBBEGACAAKAIcIQELIAEoAlAiAgsEQCAAKAIoIAIgACgCJBEGACAAKAIcIQELIAEoAkwiAgsEQCAAKAIoIAIgACgCJBEGACAAKAIcIQELIAEoAkgiAgsEQCAAKAIoIAIgACgCJBEGACAAKAIcIQELIAAoAiggASAAKAIkEQYAIABBADYCHEF9QQAgA0HxAEYbIQILIAIL7wIBBn8gACgCMCIDQf//A3EhBCAAKAJQIQFBBCEFA0AgAUEAIAEvAQAiAiAEayIGIAIgBkkbOwEAIAFBACABLwECIgIgBGsiBiACIAZJGzsBAiABQQAgAS8BBCICIARrIgYgAiAGSRs7AQQgAUEAIAEvAQYiAiAEayIGIAIgBkkbOwEGIAVBgIAERkUEQCABQQhqIQEgBUEEaiEFDAELCwJAIANFDQAgA0EDcSEFIAAoAkwhASADQQFrQQNPBEAgA0F8cSEAA0AgAUEAIAEvAQAiAyAEayICIAIgA0sbOwEAIAFBACABLwECIgMgBGsiAiACIANLGzsBAiABQQAgAS8BBCIDIARrIgIgAiADSxs7AQQgAUEAIAEvAQYiAyAEayICIAIgA0sbOwEGIAFBCGohASAAQQRrIgANAAsLIAVFDQADQCABQQAgAS8BACIAIARrIgMgACADSRs7AQAgAUECaiEBIAVBAWsiBQ0ACwsLmAQCAX4BfyAAQX9zIQACQCACUA0AIAFBA3FFDQAgAS0AACAAQf8BcXNBAnRB0BhqKAIAIABBCHZzIQAgAkIBfSIDUEEBIAFBAWoiBEEDcRsEQCAEIQEgAyECDAELIAEtAAEgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBAmohBAJAIAJCAn0iA1ANACAEQQNxRQ0AIAEtAAIgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBA2ohBAJAIAJCA30iA1ANACAEQQNxRQ0AIAEtAAMgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAJCBH0hAiABQQRqIQEMAgsgBCEBIAMhAgwBCyAEIQEgAyECCyACQgRaBEADQCABKAIAIABzIgBBBnZB/AdxQdAoaigCACAAQf8BcUECdEHQMGooAgBzIABBDnZB/AdxQdAgaigCAHMgAEEWdkH8B3FB0BhqKAIAcyEAIAFBBGohASACQgR9IgJCA1YNAAsLAkAgAlANACACQgGDUAR+IAIFIAEtAAAgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBAWohASACQgF9CyEDIAJCAVENAANAIAEtAAEgAS0AACAAQf8BcXNBAnRB0BhqKAIAIABBCHZzIgBB/wFxc0ECdEHQGGooAgAgAEEIdnMhACABQQJqIQEgA0ICfSIDQgBSDQALCyAAQX9zC8ICAQN/IwBBEGsiCCQAAn8CQCAABEAgBA0BIAVQDQELIAYEQCAGQQA2AgQgBkESNgIAC0EADAELQYABEAgiB0UEQCAGBEAgBkEANgIEIAZBDjYCAAtBAAwBCyAHIAE3AwggB0IANwMAIAdBKGoiCRAqIAcgBTcDGCAHIAQ2AhAgByADOgBgIAdBADYCbCAHQgA3AmQgACkDGCEBIAhBfzYCCCAIQo6AgIDwADcDACAHQRAgCBAkIAFC/4EBg4QiATcDcCAHIAGnQQZ2QQFxOgB4AkAgAkUNACAJIAIQY0F/Sg0AIAcQBkEADAELIAYQYiICBEAgACAAKAIwQQFqNgIwIAIgBzYCCCACQQE2AgQgAiAANgIAIAJCPyAAIAdBAEIAQQ5BAREKACIBIAFCAFMbNwMYCyACCyEAIAhBEGokACAAC2IBAX9BOBAIIgFFBEAgAARAIABBADYCBCAAQQ42AgALQQAPCyABQQA2AgggAUIANwMAIAFCADcDICABQoCAgIAQNwIsIAFBADoAKCABQQA2AhQgAUIANwIMIAFBADsBNCABC7sBAQF+IAEpAwAiAkICg1BFBEAgACABKQMQNwMQCyACQgSDUEUEQCAAIAEpAxg3AxgLIAJCCINQRQRAIAAgASkDIDcDIAsgAkIQg1BFBEAgACABKAIoNgIoCyACQiCDUEUEQCAAIAEoAiw2AiwLIAJCwACDUEUEQCAAIAEvATA7ATALIAJCgAGDUEUEQCAAIAEvATI7ATILIAJCgAKDUEUEQCAAIAEoAjQ2AjQLIAAgACkDACAChDcDAEEACxkAIAFFBEBBAA8LIAAgASgCACABMwEEEBwLNwECfyAAQQAgARtFBEAgACABRg8LIAAvAQQiAyABLwEERgR/IAAoAgAgASgCACADEDwFQQELRQs0AQF/IAAEfwJ/IAAvAQQhAUEAIAAoAgAiAEUNABpBACAAIAGtQcyYASgCABEDAAsFQQALCyIBAX8gAUUEQEEADwsgARAIIgJFBEBBAA8LIAIgACABEAkLKQAgACABIAIgAyAEEEYiAEUEQEEADwsgACACQQAgBBA1IQEgABAGIAELcQEBfgJ/AkAgAkJ/VwRAIAMEQCADQQA2AgQgA0EUNgIACwwBCyAAIAEgAhARIgRCf1cEQCADBEAgAyAAKAIMNgIAIAMgACgCEDYCBAsMAQtBACACIARXDQEaIAMEQCADQQA2AgQgA0ERNgIACwtBfwsLNQAgACABIAJBABAmIgBFBEBBfw8LIAMEQCADIAAtAAk6AAALIAQEQCAEIAAoAkQ2AgALQQAL0QECAX8BfiMAQRBrIgMkAAJAIAAgA0EOaiABQYAGQQAQRyIARQRAIAIhAAwBCyADLwEOIgFBBUkEQCACIQAMAQsgAC0AAEEBRwRAIAIhAAwBCyAAIAGtQv//A4MQGCIBRQRAIAIhAAwBCyABEHUaAkAgARAWIAIQZkcEQCACIQAMAQsgASABLQAABH4gASkDCCABKQMQfQVCAAsiBEL//wODEBMgBKdB//8DcUGAEEEAEDUiAEUEQCACIQAMAQsgAhAQCyABEAcLIANBEGokACAAC+YPAgh/An4jAEHgAGsiByQAQR5BLiADGyELAkACQCACBEAgAiIFIgYtAAAEfiAGKQMIIAYpAxB9BUIACyALrVoNASAEBEAgBEEANgIEIARBEzYCAAtCfyENDAILIAEgC60gByAEEC0iBQ0AQn8hDQwBCyAFQgQQEygAAEGjEkGoEiADGygAAEcEQCAEBEAgBEEANgIEIARBEzYCAAtCfyENIAINASAFEAcMAQsgAEIANwMgIABBADYCGCAAQv////8PNwMQIABBADsBDCAAQb+GKDYCCCAAQQE6AAYgAEEAOwEEIABBADYCACAAQgA3A0ggAEGAgNiNeDYCRCAAQgA3AyggAEIANwMwIABCADcDOCAAQUBrQQA7AQAgAEIANwNQIAAgAwR/QQAFIAUQCws7AQggACAFEAs7AQogACAFEAs7AQwgACAFEAs2AhAgBRALIQYgBRALIQkgB0EANgJYIAdCADcDUCAHQgA3A0ggByAJQR9xNgI8IAcgBkELdjYCOCAHIAZBBXZBP3E2AjQgByAGQQF0QT5xNgIwIAcgCUEJdkHQAGo2AkQgByAJQQV2QQ9xQQFrNgJAIAAgB0EwahAFNgIUIAAgBRAWNgIYIAAgBRAWrTcDICAAIAUQFq03AyggBRALIQggBRALIQYgAAJ+IAMEQEEAIQkgAEEANgJEIABBADsBQCAAQQA2AjxCAAwBCyAFEAshCSAAIAUQCzYCPCAAIAUQCzsBQCAAIAUQFjYCRCAFEBatCzcDSCAFLQAARQRAIAQEQCAEQQA2AgQgBEEUNgIAC0J/IQ0gAg0BIAUQBwwBCwJAIAAvAQwiCkEBcQRAIApBwABxBEAgAEH//wM7AVIMAgsgAEEBOwFSDAELIABBADsBUgsgAEEANgI4IABCADcDMCAGIAhqIAlqIQoCQCACBEAgBS0AAAR+IAUpAwggBSkDEH0FQgALIAqtWg0BIAQEQCAEQQA2AgQgBEEVNgIAC0J/IQ0MAgsgBRAHIAEgCq1BACAEEC0iBQ0AQn8hDQwBCwJAIAhFDQAgACAFIAEgCEEBIAQQaCIINgIwIAhFBEAgBCgCAEERRgRAIAQEQCAEQQA2AgQgBEEVNgIACwtCfyENIAINAiAFEAcMAgsgAC0ADUEIcUUNACAIQQIQI0EFRw0AIAQEQCAEQQA2AgQgBEEVNgIAC0J/IQ0gAg0BIAUQBwwBCyAAQTRqIQgCQCAGRQ0AIAUgASAGQQAgBBBGIgxFBEBCfyENIAINAiAFEAcMAgsgDCAGQYACQYAEIAMbIAggBBByIQYgDBAGIAZFBEBCfyENIAINAiAFEAcMAgsgA0UNACAAQQE6AAQLAkAgCUUNACAAIAUgASAJQQAgBBBoIgE2AjggAUUEQEJ/IQ0gAg0CIAUQBwwCCyAALQANQQhxRQ0AIAFBAhAjQQVHDQAgBARAIARBADYCBCAEQRU2AgALQn8hDSACDQEgBRAHDAELIAAgACgCNEH14AEgACgCMBBrNgIwIAAgACgCNEH1xgEgACgCOBBrNgI4AkACQCAAKQMoQv////8PUQ0AIAApAyBC/////w9RDQAgACkDSEL/////D1INAQsCQAJAAkAgCCgCACAHQTBqQQFBgAJBgAQgAxsgBBBHIgFFBEAgAkUNAQwCCyABIAczATAQGCIBRQRAIAQEQCAEQQA2AgQgBEEONgIACyACRQ0BDAILAkAgACkDKEL/////D1EEQCAAIAEQHjcDKAwBCyADRQ0AQQAhBgJAIAEpAxAiDkIIfCINIA5UDQAgASkDCCANVA0AIAEgDTcDEEEBIQYLIAEgBjoAAAsgACkDIEL/////D1EEQCAAIAEQHjcDIAsCQCADDQAgACkDSEL/////D1EEQCAAIAEQHjcDSAsgACgCPEH//wNHDQAgACABEBY2AjwLIAEtAAAEfyABKQMQIAEpAwhRBUEACw0CIAQEQCAEQQA2AgQgBEEVNgIACyABEAcgAg0BCyAFEAcLQn8hDQwCCyABEAcLIAUtAABFBEAgBARAIARBADYCBCAEQRQ2AgALQn8hDSACDQEgBRAHDAELIAJFBEAgBRAHC0J/IQ0gACkDSEJ/VwRAIAQEQCAEQRY2AgQgBEEENgIACwwBCyMAQRBrIgMkAEEBIQECQCAAKAIQQeMARw0AQQAhAQJAIAAoAjQgA0EOakGBsgJBgAZBABBHIgIEQCADLwEOIgVBBksNAQsgBARAIARBADYCBCAEQRU2AgALDAELIAIgBa1C//8DgxAYIgJFBEAgBARAIARBADYCBCAEQRQ2AgALDAELQQEhAQJAAkACQCACEAtBAWsOAgIBAAtBACEBIAQEQCAEQQA2AgQgBEEYNgIACyACEAcMAgsgACkDKEITViEBCyACQgIQEy8AAEHBigFHBEBBACEBIAQEQCAEQQA2AgQgBEEYNgIACyACEAcMAQsgAhB1QQFrIgVB/wFxQQNPBEBBACEBIAQEQCAEQQA2AgQgBEEYNgIACyACEAcMAQsgAy8BDkEHRwRAQQAhASAEBEAgBEEANgIEIARBFTYCAAsgAhAHDAELIAAgAToABiAAIAVB/wFxQYECajsBUiAAIAIQCzYCECACEAdBASEBCyADQRBqJAAgAUUNACAIIAgoAgAQcTYCACAKIAtqrSENCyAHQeAAaiQAIA0L1gEBBH8jAEEQayIEJAACQCABIARBDGpBwABBABAlIgVFDQAgBCgCDEEFaiIDQYCABE8EQCACBEAgAkEANgIEIAJBEjYCAAsMAQtBACADrRAYIgNFBEAgAgRAIAJBADYCBCACQQ42AgALDAELIANBARB0IAMgARBmEBIgAyAFIAQoAgwQLAJ/IAMtAABFBEAgAgRAIAJBADYCBCACQRQ2AgALQQAMAQsgACADLQAABH4gAykDEAVCAAunQf//A3EgAygCBBBICyEGIAMQBwsgBEEQaiQAIAYL4AECAn8BfkEwEAgiAkUEQCABBEAgAUEANgIEIAFBDjYCAAtBAA8LIAJCADcDCCACQQA2AgAgAkIANwMQIAJCADcDGCACQgA3AyAgAkIANwAlIABQBEAgAg8LAkAgAEL/////AFYNACAAp0EEdBAIIgNFDQAgAiADNgIAQQAhAUIBIQQDQCADIAFBBHRqIgFCADcCACABQgA3AAUgACAEUgRAIASnIQEgBEIBfCEEDAELCyACIAA3AwggAiAANwMQIAIPCyABBEAgAUEANgIEIAFBDjYCAAtBABAQIAIQBkEAC+4BAgN/AX4jAEEQayIEJAACQCAEQQxqQgQQGCIDRQRAQX8hAgwBCwJAIAEEQCACQYAGcSEFA0ACQCAFIAEoAgRxRQ0AAkAgAykDCEIAVARAIANBADoAAAwBCyADQgA3AxAgA0EBOgAACyADIAEvAQgQDSADIAEvAQoQDSADLQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALQX8hAgwEC0F/IQIgACAEQQxqQgQQHEEASA0DIAEzAQoiBlANACAAIAEoAgwgBhAcQQBIDQMLIAEoAgAiAQ0ACwtBACECCyADEAcLIARBEGokACACCzwBAX8gAARAIAFBgAZxIQEDQCABIAAoAgRxBEAgAiAALwEKakEEaiECCyAAKAIAIgANAAsLIAJB//8DcQucAQEDfyAARQRAQQAPCyAAIQMDQAJ/AkACQCAALwEIIgFB9OABTQRAIAFBAUYNASABQfXGAUYNAQwCCyABQYGyAkYNACABQfXgAUcNAQsgACgCACEBIABBADYCACAAKAIMEAYgABAGIAEgAyAAIANGGyEDAkAgAkUEQEEAIQIMAQsgAiABNgIACyABDAELIAAiAigCAAsiAA0ACyADC7IEAgV/AX4CQAJAAkAgACABrRAYIgEEQCABLQAADQFBACEADAILIAQEQCAEQQA2AgQgBEEONgIAC0EADwtBACEAA0AgAS0AAAR+IAEpAwggASkDEH0FQgALQgRUDQEgARALIQcgASABEAsiBq0QEyIIRQRAQQAhAiAEBEAgBEEANgIEIARBFTYCAAsgARAHIABFDQMDQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsMAwsCQAJAQRAQCCIFBEAgBSAGOwEKIAUgBzsBCCAFIAI2AgQgBUEANgIAIAZFDQEgBSAIIAYQZyIGNgIMIAYNAiAFEAYLQQAhAiAEBEAgBEEANgIEIARBDjYCAAsgARAHIABFDQQDQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsMBAsgBUEANgIMCwJAIABFBEAgBSEADAELIAkgBTYCAAsgBSEJIAEtAAANAAsLAkAgAS0AAAR/IAEpAxAgASkDCFEFQQALDQAgASABLQAABH4gASkDCCABKQMQfQVCAAsiCkL/////D4MQEyECAkAgCqciBUEDSw0AIAJFDQAgAkHBFCAFEDxFDQELQQAhAiAEBEAgBEEANgIEIARBFTYCAAsgARAHIABFDQEDQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsMAQsgARAHIAMEQCADIAA2AgBBAQ8LQQEhAiAARQ0AA0AgACgCACEBIAAoAgwQBiAAEAYgASIADQALCyACC74BAQV/IAAEfyAAIQIDQCACIgQoAgAiAg0ACyABBEADQCABIgMvAQghBiADKAIAIQEgACECAkACQANAAkAgAi8BCCAGRw0AIAIvAQoiBSADLwEKRw0AIAVFDQIgAigCDCADKAIMIAUQPEUNAgsgAigCACICDQALIANBADYCACAEIAM2AgAgAyEEDAELIAIgAigCBCADKAIEQYAGcXI2AgQgA0EANgIAIAMoAgwQBiADEAYLIAENAAsLIAAFIAELC1UCAn4BfwJAAkAgAC0AAEUNACAAKQMQIgJCAXwiAyACVA0AIAMgACkDCFgNAQsgAEEAOgAADwsgACgCBCIERQRADwsgACADNwMQIAQgAqdqIAE6AAALWgICfgF/An8CQAJAIAAtAABFDQAgACkDECIBQgF8IgIgAVQNACACIAApAwhYDQELIABBADoAAEEADAELQQAgACgCBCIDRQ0AGiAAIAI3AxAgAyABp2otAAALC94BAQN/IAEgACkDMFoEQCAAQQhqBEAgAEEANgIMIABBEjYCCAtBfw8LIABBCGohAiAALQAYQQJxBEAg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DAELIAFBGU4EQCAAIAAoAhAiAUEBajYCECABIAAoAgRqIAApA7gtIgI8AAAgACAAKAIQIgFBAWo2AhAgASAAKAIEaiACQgiIPAAAIAAgACgCECIBQQFqNgIQIAEgACgCBGogAkIQiDwAACAAIAAoAhAiAUEBajYCECABIAAoAgRqIAJCGIg8AAAgACAAQbwtajUCADcDuC0gACAAKALALUEgayIBNgLALQsgAUEJTgRAIAAgACgCECIBQQFqNgIQIAEgACgCBGogACkDuC0iAjwAACAAIAAoAhAiAUEBajYCECABIAAoAgRqIAJCCIg8AAAgACAAKQO4LUIQiDcDuC0gACAAKALALUEQayIBNgLALQsgAUEBSA0AIAAgACgCECIBQQFqNgIQIAEgACgCBGogACkDuC08AAALIABBADYCwC0gAEIANwO4LQvwBAEDfyAAQYgBaiECA0AgAiABQQJ0IgNqQQA7AQAgAiADQQRyakEAOwEAIAFBAmoiAUGeAkcNAAsgAEEAOwHwFCAAQQA7AfwSIABBuBVqQQA7AQAgAEG0FWpBADsBACAAQbAVakEAOwEAIABBrBVqQQA7AQAgAEGoFWpBADsBACAAQaQVakEAOwEAIABBoBVqQQA7AQAgAEGcFWpBADsBACAAQZgVakEAOwEAIABBlBVqQQA7AQAgAEGQFWpBADsBACAAQYwVakEAOwEAIABBiBVqQQA7AQAgAEGEFWpBADsBACAAQYAVakEAOwEAIABB/BRqQQA7AQAgAEH4FGpBADsBACAAQfQUakEAOwEAIABB8BNqQQA7AQAgAEHsE2pBADsBACAAQegTakEAOwEAIABB5BNqQQA7AQAgAEHgE2pBADsBACAAQdwTakEAOwEAIABB2BNqQQA7AQAgAEHUE2pBADsBACAAQdATakEAOwEAIABBzBNqQQA7AQAgAEHIE2pBADsBACAAQcQTakEAOwEAIABBwBNqQQA7AQAgAEG8E2pBADsBACAAQbgTakEAOwEAIABBtBNqQQA7AQAgAEGwE2pBADsBACAAQawTakEAOwEAIABBqBNqQQA7AQAgAEGkE2pBADsBACAAQaATakEAOwEAIABBnBNqQQA7AQAgAEGYE2pBADsBACAAQZQTakEAOwEAIABBkBNqQQA7AQAgAEGME2pBADsBACAAQYgTakEAOwEA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AAwFCyABLQAPDQQgASgCrEAgASgCqEAoAggRAgCsIQUMBAsgA0IIWgR+IAIgASgCADYCACACIAEoAgQ2AgRCCAVCfwshBQwDCyABRQ0CIAEoAqxAIAEoAqhAKAIEEQQAIAEQLyABEAYMAgsgB0F/NgIAQRAgBxAkQj+EIQUMAQsgAQRAIAFBADYCBCABQRQ2AgALQn8hBQsgB0EQaiQAIAULYwBByAAQCCIARQRAQfibASgCACEBIAIEQCACIAE2AgQgAkEBNgIACyAADwsgAEEAOgAMIABBADoABCAAIAI2AgAgAEEANgI4IABCADcDMCAAIAFBCSABQQFrQQlJGzYCCCAAC0gBAX8gAEIANwIEIAAgATYCAAJAIAFBAEgNAEGwEygCACABTA0AIAFBAnRBwBNqKAIAQQFHDQBB+JsBKAIAIQILIAAgAjYCBAvuhwECJH8BfiACKQMAIScgACABNgIcIAAgJ0L/////DyAnQv////8PVBs+AiAgAEEQaiEKAn8gAC0ABARAAn8gAC0ADEECdCENQX4hAQJAAkACQCAKRQ0AIAooAiBFDQAgCigCJEUNACAKKAIcIgNFDQAgAygCACAKRw0AAkACQCADKAIgIgVBOWsOOQECAgICAgICAgICAgECAgIBAgICAgICAgICAgICAgICAgIBAgICAgICAgICAgIBAgICAgICAgICAQALIAVBmgVGDQAgBUEqRw0BCyANQQVLDQACQAJAIAooAgxFDQAgCigCBCIEBEAgCigCAEUNAQsgBUGaBUcNASANQQRGDQELIApBkPEAKAIANgIYQX4MBAsgCigCEEUNASADKAIkIQEgAyANNgIkAkAgAygCEARAIAMQFAJAIAooAhAiBSADKAIQIgkgBSAJSRsiAUUNACAKKAIMIAMoAgggARAJGiAKIAooAgwgAWo2AgwgAyADKAIIIAFqNgIIIAogCigCFCABajYCFCAKIAooAhAgAWsiBTYCECADIAMoAhAgAWsiCTYCECAJDQAgAyADKAIENgIIQQAhCQsgBQRAIAMoAiAhBQwCCwwECyAEDQAgDUEBdEF3QQAgDUEESxtqIAFBAXRBd0EAIAFBBEobakoNACANQQRGDQAMAgsCQAJAAkACQAJAIAVBKkcEQCAFQZoFRw0BIAooAgRFDQMMBwsgAygCFEUEQCADQfEANgIgDAILIAMoAjRBDHRBgPABayEBAkAgAygCfEECTg0AIAMoAngiBEEBTA0AIARBBUwEQCABQcAAciEBDAELQYABQcABIARBBkYbIAFyIQELIAMgCUEBajYCECADKAIEIAlqIAFBIHIgASADKAJkGyIBQQh2OgAAIAMgAygCECIEQQFqNgIQIAQgAygCBGogAUEfcCABckEfczoAACADKAJkBEAgAyAKKAIwEF0LIApBATYCMCADQfEANgIgIAoQDCADKAIQDQcgAygCICEFCwJAAkACQAJAIAVBOUYEfyADKAIAQQA2AjAgAyADKAIQIgFBAWo2AhAgASADKAIEakEfOgAAIAMgAygCECIBQQFqNgIQIAEgAygCBGpBiwE6AAAgAyADKAIQIgFBAWo2AhAgASADKAIEakEIOgAAAkAgAygCHCIBRQRAIANBABA0IAMgAygCECIBQQFqNgIQIAEgAygCBGpBADoAAEECIQEgAygCeCIEQQlHBEBBBCAEQQJIQQJ0IAMoAnxBAUobIQELIAMgAygCECIEQQFqNgIQIAQgAygCBGogAToAACADIAMoAhAiAUEBajYCECABIAMoAgRqQQM6AAAgA0HxADYCICAKEAwgAygCEEUNAQwNCyABKAIkIQQgASgCHCEFIAEoAhAhByABKAIsIQkgASgCACELIAMgAygCECIIQQFqNgIQQQIhASAIIAMoAgRqIAlBAEdBAXQgC0EAR3IgB0EAR0ECdHIgBUEAR0EDdHIgBEEAR0EEdHI6AAAgAyADKAIcKAIEEDQgAygCeCIEQQlHBEBBBCAEQQJIQQJ0IAMoAnxBAUobIQELIAMgAygCECIEQQFqNgIQIAQgAygCBGogAToAACADKAIcKAIMIQEgAyADKAIQIgRBAWo2AhAgBCADKAIEaiABOgAAIAMoAhwiASgCEAR/IAEoAhQhASADIAMoAhAiBEEBajYCECAEIAMoAgRqIAE6AAAgAyADKAIQIgRBAWo2AhAgBCADKAIEaiABQQh2OgAAIAMoAhwFIAELKAIsBEAgCgJ/IAooAjAhASADKAIQIQRBACADKAIEIgVFDQAaIAEgBSAErUHMmAEoAgARAwALNgIwCyADQcUANgIgIANBADYCGAwCCyADKAIgBSAFC0HFAGsOIwAEBAQBBAQEBAQEBAQEBAQEBAQEBAQCBAQEBAQEBAQEBAQDBAsgAygCHCIEKAIQIgUEQCADKAIMIgkgAygCECIBIAQvARQgAygCGCIHayIEakkEQANAIAMoAgQgAWogBSAHaiAJIAFrIgkQCRogAyADKAIMIgU2AhACQCADKAIcKAIsRQ0AIAEgBU8NACAKAn8gCigCMCEHQQAgAygCBCABaiILRQ0AGiAHIAsgBSABa61BzJgBKAIAEQMACzYCMAsgAyADKAIYIAlqNgIYIAooAhwiARAUAkAgCigCECIFIAEoAhAiByAFIAdJGyIFRQ0AIAooAgwgASgCCCAFEAkaIAogCigCDCAFajYCDCABIAEoAgggBWo2AgggCiAKKAIUIAVqNgIUIAogCigCECAFazYCECABIAEoAhAgBWsiBTYCECAFDQAgASABKAIENgIICyADKAIQDQwgAygCGCEHIAMoAhwoAhAhBUEAIQEgBCAJayIEIAMoAgwiCUsNAAsLIAMoAgQgAWogBSAHaiAEEAkaIAMgAygCECAEaiIENgIQAkAgAygCHCgCLEUNACABIARPDQAgCgJ/IAooAjAhBUEAIAMoAgQgAWoiB0UNABogBSAHIAQgAWutQcyYASgCABEDAAs2AjALIANBADYCGAsgA0HJADYCIAsgAygCHCgCHARAIAMoAhAiASEEA0ACQCABIAMoAgxHDQACQCADKAIcKAIsRQ0AIAEgBE0NACAKAn8gCigCMCEFQQAgAygCBCAEaiIHRQ0AGiAFIAcgASAEa61BzJgBKAIAEQMACzYCMAsgCigCHCIBEBQCQCAKKAIQIgQgASgCECIFIAQgBUkbIgRFDQAgCigCDCABKAIIIAQQCRogCiAKKAIMIARqNgIMIAEgASgCCCAEajYCCCAKIAooAhQgBGo2AhQgCiAKKAIQIARrNgIQIAEgASgCECAEayIENgIQIAQNACABIAEoAgQ2AggLQQAhAUEAIQQgAygCEEUNAAwLCyADKAIcKAIcIQUgAyADKAIYIgdBAWo2AhggBSAHai0AACEFIAMgAUEBajYCECADKAIEIAFqIAU6AAAgBQRAIAMoAhAhAQwBCwsCQCADKAIcKAIsRQ0AIAMoAhAiASAETQ0AIAoCfyAKKAIwIQVBACADKAIEIARqIgdFDQAaIAUgByABIARrrUHMmAEoAgARAwALNgIwCyADQQA2AhgLIANB2wA2AiALAkAgAygCHCgCJEUNACADKAIQIgEhBANAAkAgASADKAIMRw0AAkAgAygCHCgCLEUNACABIARNDQAgCgJ/IAooAjAhBUEAIAMoAgQgBGoiB0UNABogBSAHIAEgBGutQcyYASgCABEDAAs2AjALIAooAhwiARAUAkAgCigCECIEIAEoAhAiBSAEIAVJGyIERQ0AIAooAgwgASgCCCAEEAkaIAogCigCDCAEajYCDCABIAEoAgggBGo2AgggCiAKKAIUIARqNgIUIAogCigCECAEazYCECABIAEoAhAgBGsiBDYCECAEDQAgASABKAIENgIIC0EAIQFBACEEIAMoAhBFDQAMCgsgAygCHCgCJCEFIAMgAygCGCIHQQFqNgIYIAUgB2otAAAhBSADIAFBAWo2AhAgAygCBCABaiAFOgAAIAUEQCADKAIQIQEMAQsLIAMoAhwoAixFDQAgAygCECIBIARNDQAgCgJ/IAooAjAhBUEAIAMoAgQgBGoiB0UNABogBSAHIAEgBGutQcyYASgCABEDAAs2AjALIANB5wA2AiALAkAgAygCHCgCLARAIAMoAgwgAygCECIBQQJqSQRAIAoQDCADKAIQDQJBACEBCyAKKAIwIQQgAyABQQFqNgIQIAMoAgQgAWogBDoAACADIAMoAhAiAUEBajYCECABIAMoAgRqIARBCHY6AAAgAygCAEEANgIwCyADQfEANgIgIAoQDCADKAIQRQ0BDAcLDAYLIAooAgQNAQsgAygCPA0AIA1FDQEgAygCIEGaBUYNAQsCfyADKAJ4IgFFBEAgAyANEFwMAQsCQAJAAkAgAygCfEECaw4CAAECCwJ/AkADQAJAIAMoAjwNACADECkgAygCPA0AIA0NAkEADAMLIAMoAkggAygCZGotAAAhASADIAMoApQtIgRBAWo2ApQtIAQgAygCkC1qQQA6AAAgAyADKAKULSIEQQFqNgKULSAEIAMoApAtakEAOgAAIAMgAygClC0iBEEBajYClC0gBCADKAKQLWogAToAACADIAFBAnRqIgEgAS8BiAFBAWo7AYgBIAMgAygCPEEBazYCPCADIAMoAmRBAWoiBDYCZCADKAKULSADKAKYLUcNACADIAMoAlQiAUEATgR/IAMoAkggAWoFQQALIAQgAWtBABAPIAMgAygCZDYCVCADKAIAIgEoAhwiBBAUAkAgASgCECIFIAQoAhAiByAFIAdJGyIFRQ0AIAEoAgwgBCgCCCAFEAkaIAEgASgCDCAFajYCDCAEIAQoAgggBWo2AgggASABKAIUIAVqNgIUIAEgASgCECAFazYCECAEIAQoAhAgBWsiATYCECABDQAgBCAEKAIENgIICyADKAIAKAIQDQALQQAMAQsgA0EANgKoLSANQQRGBEAgAyADKAJUIgFBAE4EfyADKAJIIAFqBUEACyADKAJkIAFrQQEQDyADIAMoAmQ2AlQgAygCACIBKAIcIgQQFAJAIAEoAhAiBSAEKAIQIgcgBSAHSRsiBUUNACABKAIMIAQoAgggBRAJGiABIAEoAgwgBWo2AgwgBCAEKAIIIAVqNgIIIAEgASgCFCAFajYCFCABIAEoAhAgBWs2AhAgBCAEKAIQIAVrIgE2AhAgAQ0AIAQgBCgCBDYCCAtBA0ECIAMoAgAoAhAbDAELAkAgAygClC1FDQAgAyADKAJUIgFBAE4EfyADKAJIIAFqBUEACyADKAJkIAFrQQAQDyADIAMoAmQ2AlQgAygCACIBKAIcIgQQFAJAIAEoAhAiBSAEKAIQIgcgBSAHSRsiBUUNACABKAIMIAQoAgggBRAJGiABIAEoAgwgBWo2AgwgBCAEKAIIIAVqNgIIIAEgASgCFCAFajYCFCABIAEoAhAgBWs2AhAgBCAEKAIQIAVrIgE2AhAgAQ0AIAQgBCgCBDYCCAsgAygCACgCEA0AQQAMAQtBAQsMAgsCfwJAA0ACQAJAAkACQCADKAI8IghBggJLDQAgAxApAkAgAygCPCIIQYICSw0AIA0NAEEADAcLIAhFDQUgCEECSw0AIAMoAmQhCwwBCyADKAJkIgtFBEBBACELDAELIAMoAkggC2oiDEEBayIBLQAAIgkgDC0AAEcNACAJIAEtAAJHDQAgCSABLQADRw0AIAxBggJqIQ5BfyEBAkACQAJAAkACQAJAA0AgASAMaiIFLQAEIAlGBEAgCSAFLQAFRw0CIAkgBS0ABkcNAyAJIAUtAAdHDQQgCSAMIAFBCGoiBGoiBy0AAEcNByAJIAUtAAlHDQUgCSAFLQAKRw0GIAkgBUELaiIHLQAARw0HIAFB9wFIIQUgBCEBIAUNAQwHCwsgBUEEaiEHDAULIAVBBWohBwwECyAFQQZqIQcMAwsgBUEHaiEHDAILIAVBCWohBwwBCyAFQQpqIQcLIAggByAOa0GCAmoiASABIAhLGyIBQQJLDQELIAMoAkggC2otAAAhASADIAMoApQtIgRBAWo2ApQtIAQgAygCkC1qQQA6AAAgAyADKAKULSIEQQFqNgKULSAEIAMoApAtakEAOgAAIAMgAygClC0iBEEBajYClC0gBCADKAKQLWogAToAACADIAFBAnRqIgEgAS8BiAFBAWo7AYgBIAMgAygCPEEBazYCPCADIAMoAmRBAWoiCzYCZAwBCyADIAMoApQtIgRBAWo2ApQtIAQgAygCkC1qQQE6AAAgAyADKAKULSIEQQFqNgKULSAEIAMoApAtakEAOgAAIAMgAygClC0iBEEBajYClC0gBCADKAKQLWogAUEDazoAACADIAMoAqQtQQFqNgKkLSABQc3pAGotAABBAnQgA2pBjAlqIgQgBC8BAEEBajsBACADQdDlAC0AAEECdGpB/BJqIgQgBC8BAEEBajsBACADIAMoAjwgAWs2AjwgAyADKAJkIAFqIgs2AmQLIAMoApQtIAMoApgtRw0AIAMgAygCVCIBQQBOBH8gAygCSCABagVBAAsgCyABa0EAEA8gAyADKAJkNgJUIAMoAgAiASgCHCIEEBQCQCABKAIQIgUgBCgCECIHIAUgB0kbIgVFDQAgASgCDCAEKAIIIAUQCRogASABKAIMIAVqNgIMIAQgBCgCCCAFajYCCCABIAEoAhQgBWo2AhQgASABKAIQIAVrNgIQIAQgBCgCECAFayIBNgIQIAENACAEIAQoAgQ2AggLIAMoAgAoAhANAAtBAAwBCyADQQA2AqgtIA1BBEYEQCADIAMoAlQiAUEATgR/IAMoAkggAWoFQQALIAMoAmQgAWtBARAPIAMgAygCZDYCVCADKAIAIgEoAhwiBBAUAkAgASgCECIFIAQoAhAiByAFIAdJGyIFRQ0AIAEoAgwgBCgCCCAFEAkaIAEgASgCDCAFajYCDCAEIAQoAgggBWo2AgggASABKAIUIAVqNgIUIAEgASgCECAFazYCECAEIAQoAhAgBWsiATYCECABDQAgBCAEKAIENgIIC0EDQQIgAygCACgCEBsMAQsCQCADKAKULUUNACADIAMoAlQiAUEATgR/IAMoAkggAWoFQQALIAMoAmQgAWtB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ASABKAIodCIFIAEoAtA3akEBIAMoAiARAAAiAzYCOCADRQ0CIAMgBWpBACABKALQNxAaCyABKAIsIgVFBEAgAUIANwIwIAFBASABKAIodCIFNgIsCyAWIA5rIgMgBU8EQCABKAI4IBEgBWsgBRAJGiABQQA2AjQgASABKAIsNgIwDAELIAEoAjQiDSABKAI4aiARIANrIAMgBSANayIFIAMgBUkbIgUQCRogAyAFayIDBEAgASgCOCARIANrIAMQCRogASADNgI0IAEgASgCLDYCMAwBCyABQQAgASgCNCAFaiIDIAMgASgCLCINRhs2AjQgASgCMCIDIA1PDQAgASADIAVqNgIwCyAKIB8gCigCBGsiBSAKKAIIajYCCCAKIBYgCigCEGsiASAKKAIUajYCFCAGIAYoAiAgAWo2AiACQCAGLQAMQQRxRQ0AIAFFDQAgBgJ/IAYoAhQEQAJ/IAYoAhwhA0EAIAooAgwgAWsiDUUNABogAyANIAGtQcyYASgCABEDAAsMAQsgBigCHCAKKAIMIAFrIAFByJgBKAIAEQAACyIDNgIcIAogAzYCMAsgCiAGKAJAIAYoAghBAEdBBnRqIAYoAgQiA0G//gBGQQd0akGAAiADQcL+AEZBCHQgA0HH/gBGG2o2AiwgBCAEQXsgBBsgASAFchshFwwCCyAGQdL+ADYCBAtBfCEXCyAUQRBqJAAgFwshASACIAIpAwAgADUCIH03AwACQAJAAkACQCABQQVqDgcBAgICAgMAAgtBAQ8LIAAoAhQNAEEDDwsgACgCACIABEAgACABNgIEIABBDTYCAAtBAiEBCyABCwkAIABBAToADAtEAAJAIAJC/////w9YBEAgACgCFEUNAQsgACgCACIABEAgAEEANgIEIABBEjYCAAtBAA8LIAAgATYCECAAIAI+AhRBAQu6AQEEfyAAQRBqIQECfyAALQAEBEAgARBeDAELQX4hAwJAIAFFDQAgASgCIEUNACABKAIkIgRFDQAgASgCHCICRQ0AIAIoAgAgAUcNACACKAIEQbT+AGtBH0sNACACKAI4IgMEQCABKAIoIAMgBBEGACABKAIkIQQgASgCHCECCyABKAIoIAIgBBEGAEEAIQMgAUEANgIcCyADCyIBBEAgACgCACIABEAgACABNgIEIABBDTYCAAsLIAFFC5gMAQZ/IABCADcCECAAQgA3AhwgAEEQaiEBAn8gAC0ABARAAn8gACgCCCECQXohBQJAQesMLQAAQTFHDQBBfiEFIAFFDQAgAUEANgIYIAEoAiAiA0UEQCABQQA2AiggAUECNgIgQQIhAwsgASgCJEUEQCABQQM2AiQLQQYgAiACQX9GGyIGQQBIDQAgBkEJSg0AQXwhBSABKAIoQQFB8C0gAxEAACIERQ0AIAEgBDYCHCAEIAE2AgAgBEENQQ8gBkEBRhsiAzYCNCAEQoCAgICgBTcCHCAEQQA2AhQgBEEBIAN0IgM2AjAgBCADQQFrNgI4IAQgASgCKCADQQIgASgCIBEAADYCSCAEIAEoAiggBCgCMEECIAEoAiARAAAiAzYCTCADQQAgBCgCMEEBdBAaIAEoAihBgIAEQQIgASgCIBEAACEDIARBgIACNgKMLSAEQQA2AkAgBCADNgJQIAQgASgCKEGAgAJBBCABKAIgEQAAIgI2AgQgBCAEKAKMLSIDQQJ0NgIMAkACQCAEKAJIRQ0AIAQoAkxFDQAgBCgCUEUNACACDQELIARBmgU2AiAgAUGY8QAoAgA2AhggARBeGkF8DAILIARBADYCfCAEIAY2AnggBEIANwMoIAQgAiADajYCkC0gBCADQQNsQQNrNgKYLQJ/QX4hBQJAIAFFDQAgASgCIEUNACABKAIkRQ0AIAEoAhwiAkUNACACKAIAIAFHDQACQAJAIAIoAiAiA0E5aw45AQICAgICAgICAgICAQICAgECAgICAgICAgICAgICAgICAgECAgICAgICAgICAgECAgICAgICAgIBAAsgA0GaBUYNACADQSpHDQELIAFBAjYCLCABQQA2AgggAUIANwIUIAJBADYCECACIAIoAgQ2AgggAigCFCIFQX9MBEAgAkEAIAVrIgU2AhQLIAJBOUEqIAVBAkYbNgIgAkAgBUECRgRAIAIoAgBBADYCMAwBCyABQQE2AjALIAJBfjYCJCACQQA2AsAtIAJCADcDuC0gAkGsFmpB8O0ANgIAIAIgAkHwFGo2AqQWIAJBoBZqQdztADYCACACIAJB/BJqNgKYFiACQZQWakHI7QA2AgAgAiACQYgBajYCjBYgAhCNAUEAIQULIAVFCwRAIAEoAhwiAyADKAIwQQF0NgJEIAMoAlBBAEGAgAgQGiADQQA2AlQgA0EANgKoLSADQQA2AjwgA0KAgICAIDcDaCADQgA3A2AgAyADKAJ4QQxsIgFB1NoAai8BADYChAEgAyABQdDaAGovAQA2AoABIAMgAUHS2gBqLwEANgJ0IAMgAUHW2gBqLwEANgJwCwsgBQsMAQsCf0F6QesMLQAAQTFHDQAaQX4gAUUNABogAUEANgIYIAEoAiAiBUUEQCABQQA2AiggAUECNgIgQQIhBQsgASgCJEUEQCABQQM2AiQLQXwgASgCKEEBQdQ3IAURAAAiBkUNABogASAGNgIcIAZBADYCOCAGIAE2AgAgBkG0/gA2AgQgBkHcmAEoAgARCQA2AtA3QX4hBQJAIAFFDQAgASgCIEUNACABKAIkIgJFDQAgASgCHCIERQ0AIAQoAgAgAUcNACAEKAIEQbT+AGtBH0sNAAJAAkAgBCgCOCIDBEAgBCgCKEEPRw0BCyAEQQ82AiggBEEANgIMDAELIAEoAiggAyACEQYAIARBADYCOCABKAIgIQMgBEEPNgIoIARBADYCDCADRQ0BCyABKAIkRQ0AIAEoAhwiAkUNACACKAIAIAFHDQAgAigCBEG0/gBrQR9LDQBBACEFIAJBADYCNCACQgA3AiwgAkEANgIgIAFBADYCCCABQgA3AhQgAigCDCIDBEAgASADQQFxNgIwCyACQrT+ADcCBCACQgA3AjwgAkEANgIkIAJCgICCgBA3AhggAkKAgICAcDcCECACQoGAgIBwNwLENyACIAJBtApqIgM2AnAgAiADNgJUIAIgAzYCUAtBACAFRQ0AGiABKAIoIAYgASgCJBEGACABQQA2AhwgBQsLIgEEQCAAKAIAIgAEQCAAIAE2AgQgAEENNgIACwsgAUULKQEBfyAALQAERQRAQQAPC0ECIQEgACgCCCIAQQNOBH8gAEEHSgVBAgsLBgAgABAGC2MAQcgAEAgiAEUEQEH4mwEoAgAhASACBEAgAiABNgIEIAJBATYCAAsgAA8LIABBADoADCAAQQE6AAQgACACNgIAIABBADYCOCAAQgA3AzAgACABQQkgAUEBa0EJSRs2AgggAAuMCgIBfgJ/IwBB8ABrIgYkAAJAAkACQAJAAkACQAJAAkAgBA4PAAEHAgQFBgYGBgYGBgYDBgtCfyEFAkAgACAGQeQAakIMEBEiA0J/VwRAIAEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwBCwJAIANCDFIEQCABBEAgAUEANgIEIAFBETYCAAsMAQsgASgCFCEEQQAhAkIBIQUDQCAGQeQAaiACaiICIAItAAAgBEH9/wNxIgJBAnIgAkEDc2xBCHZzIgI6AAAgBiACOgAoIAECfyABKAIMQX9zIQJBACAGQShqIgRFDQAaIAIgBEIBQcyYASgCABEDAAtBf3MiAjYCDCABIAEoAhAgAkH/AXFqQYWIosAAbEEBaiICNgIQIAYgAkEYdjoAKCABAn8gASgCFEF/cyECQQAgBkEoaiIERQ0AGiACIARCAUHMmAEoAgARAwALQX9zIgQ2AhQgBUIMUgRAIAWnIQIgBUIBfCEFDAELC0IAIQUgACAGQShqECFBAEgNASAGKAJQIQAjAEEQayICJAAgAiAANgIMIAYCfyACQQxqEIkBIgBFBEAgBkEhOwEkQQAMAQsCfyAAKAIUIgRB0ABOBEAgBEEJdAwBCyAAQdAANgIUQYDAAgshBCAGIAAoAgwgBCAAKAIQQQV0ampBoMABajsBJCAAKAIEQQV0IAAoAghBC3RqIAAoAgBBAXZqCzsBJiACQRBqJAAgBi0AbyIAIAYtAFdGDQEgBi0AJyAARg0BIAEEQCABQQA2AgQgAUEbNgIACwtCfyEFCyAGQfAAaiQAIAUPC0J/IQUgACACIAMQESIDQn9XBEAgAQRAIAEgACgCDDYCACABIAAoAhA2AgQLDAYLIwBBEGsiACQAAkAgA1ANACABKAIUIQQgAkUEQEIBIQUDQCAAIAIgB2otAAAgBEH9/wNxIgRBAnIgBEEDc2xBCHZzOgAPIAECfyABKAIMQX9zIQRBACAAQQ9qIgdFDQAaIAQgB0IBQcyYASgCABEDAAtBf3MiBDYCDCABIAEoAhAgBEH/AXFqQYWIosAAbEEBaiIENgIQIAAgBEEYdjoADyABAn8gASgCFEF/cyEEQQAgAEEPaiIHRQ0AGiAEIAdCAUHMmAEoAgARAwALQX9zIgQ2AhQgAyAFUQ0CIAWnIQcgBUIBfCEFDAALAAtCASEFA0AgACACIAdqLQAAIARB/f8DcSIEQQJyIARBA3NsQQh2cyIEOgAPIAIgB2ogBDoAACABAn8gASgCDEF/cyEEQQAgAEEPaiIHRQ0AGiAEIAdCAUHMmAEoAgARAwALQX9zIgQ2AgwgASABKAIQIARB/wFxakGFiKLAAGxBAWoiBDYCECAAIARBGHY6AA8gAQJ/IAEoAhRBf3MhBEEAIABBD2oiB0UNABogBCAHQgFBzJgBKAIAEQMAC0F/cyIENgIUIAMgBVENASAFpyEHIAVCAXwhBQwACwALIABBEGokACADIQUMBQsgAkEAOwEyIAIgAikDACIDQoABhDcDACADQgiDUA0EIAIgAikDIEIMfTcDIAwECyAGQoWAgIBwNwMQIAZCg4CAgMAANwMIIAZCgYCAgCA3AwBBACAGECQhBQwDCyADQghaBH4gAiABKAIANgIAIAIgASgCBDYCBEIIBUJ/CyEFDAILIAEQBgwBCyABBEAgAUEANgIEIAFBEjYCAAtCfyEFCyAGQfAAaiQAIAULrQMCAn8CfiMAQRBrIgYkAAJAAkACQCAERQ0AIAFFDQAgAkEBRg0BC0EAIQMgAEEIaiIABEAgAEEANgIEIABBEjYCAAsMAQsgA0EBcQRAQQAhAyAAQQhqIgAEQCAAQQA2AgQgAEEYNgIACwwBC0EYEAgiBUUEQEEAIQMgAEEIaiIABEAgAEEANgIEIABBDjYCAAsMAQsgBUEANgIIIAVCADcCACAFQZDx2aIDNgIUIAVC+KzRkZHx2aIjNwIMAkAgBBAiIgJFDQAgAq0hCEEAIQNBh9Ou7n4hAkIBIQcDQCAGIAMgBGotAAA6AA8gBSAGQQ9qIgMEfyACIANCAUHMmAEoAgARAwAFQQALQX9zIgI2AgwgBSAFKAIQIAJB/wFxakGFiKLAAGxBAWoiAjYCECAGIAJBGHY6AA8gBQJ/IAUoAhRBf3MhAkEAIAZBD2oiA0UNABogAiADQgFBzJgBKAIAEQMAC0F/czYCFCAHIAhRDQEgBSgCDEF/cyECIAenIQMgB0IBfCEHDAALAAsgACABQSQgBRBDIgMNACAFEAZBACEDCyAGQRBqJAAgAwudGgIGfgV/IwBB0ABrIgskAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMOFAUGFQsDBAkOAAIIEAoPDQcRAREMEQsCQEHIABAIIgEEQCABQgA3AwAgAUIANwMwIAFBADYCKCABQgA3AyAgAUIANwMYIAFCADcDECABQgA3AwggAUIANwM4IAFBCBAIIgM2AgQgAw0BIAEQBiAABEAgAEEANgIEIABBDjYCAAsLIABBADYCFAwUCyADQgA3AwAgACABNgIUIAFBQGtCADcDACABQgA3AzgMFAsCQAJAIAJQBEBByAAQCCIDRQ0UIANCADcDACADQgA3AzAgA0EANgIoIANCADcDICADQgA3AxggA0IANwMQIANCADcDCCADQgA3AzggA0EIEAgiATYCBCABDQEgAxAGIAAEQCAAQQA2AgQgAEEONgIACwwUCyACIAAoAhAiASkDMFYEQCAABEAgAEEANgIEIABBEjYCAAsMFAsgASgCKARAIAAEQCAAQQA2AgQgAEEdNgIACwwUCyABKAIEIQMCQCABKQMIIgZCAX0iB1ANAANAAkAgAiADIAcgBH1CAYggBHwiBadBA3RqKQMAVARAIAVCAX0hBwwBCyAFIAZRBEAgBiEFDAMLIAMgBUIBfCIEp0EDdGopAwAgAlYNAgsgBCEFIAQgB1QNAAsLAkAgAiADIAWnIgpBA3RqKQMAfSIEUEUEQCABKAIAIgMgCkEEdGopAwghBwwBCyABKAIAIgMgBUIBfSIFp0EEdGopAwgiByEECyACIAcgBH1UBEAgAARAIABBADYCBCAAQRw2AgALDBQLIAMgBUIBfCIFQQAgABCHASIDRQ0TIAMoAgAgAygCCCIKQQR0akEIayAENwMAIAMoAgQgCkEDdGogAjcDACADIAI3AzAgAyABKQMYIgYgAykDCCIEQgF9IgcgBiAHVBs3AxggASADNgIoIAMgATYCKCABIAQ3AyAgAyAFNwMgDAELIAFCADcDAAsgACADNgIUIAMgBDcDQCADIAI3AzhCACEEDBMLIAAoAhAiAQRAAkAgASgCKCIDRQRAIAEpAxghAgwBCyADQQA2AiggASgCKEIANwMgIAEgASkDGCICIAEpAyAiBSACIAVWGyICNwMYCyABKQMIIAJWBEADQCABKAIAIAKnQQR0aigCABAGIAJCAXwiAiABKQMIVA0ACwsgASgCABAGIAEoAgQQBiABEAYLIAAoAhQhASAAQQA2AhQgACABNgIQDBILIAJCCFoEfiABIAAoAgA2AgAgASAAKAIENgIEQggFQn8LIQQMEQsgACgCECIBBEACQCABKAIoIgNFBEAgASkDGCECDAELIANBADYCKCABKAIoQgA3AyAgASABKQMYIgIgASkDICIFIAIgBVYbIgI3AxgLIAEpAwggAlYEQANAIAEoAgAgAqdBBHRqKAIAEAYgAkIBfCICIAEpAwhUDQALCyABKAIAEAYgASgCBBAGIAEQBgsgACgCFCIBBEACQCABKAIoIgNFBEAgASkDGCECDAELIANBADYCKCABKAIoQgA3AyAgASABKQMYIgIgASkDICIFIAIgBVYbIgI3AxgLIAEpAwggAlYEQANAIAEoAgAgAqdBBHRqKAIAEAYgAkIBfCICIAEpAwhUDQALCyABKAIAEAYgASgCBBAGIAEQBgsgABAGDBALIAAoAhAiAEIANwM4IABBQGtCADcDAAwPCyACQn9XBEAgAARAIABBADYCBCAAQRI2AgALDA4LIAIgACgCECIDKQMwIAMpAzgiBn0iBSACIAVUGyIFUA0OIAEgAykDQCIHpyIAQQR0IgEgAygCAGoiCigCACAGIAMoAgQgAEEDdGopAwB9IgKnaiAFIAopAwggAn0iBiAFIAZUGyIEpxAJIQogByAEIAMoAgAiACABaikDCCACfVGtfCECIAUgBlYEQANAIAogBKdqIAAgAqdBBHQiAWoiACgCACAFIAR9IgYgACkDCCIHIAYgB1QbIganEAkaIAIgBiADKAIAIgAgAWopAwhRrXwhAiAFIAQgBnwiBFYNAAsLIAMgAjcDQCADIAMpAzggBHw3AzgMDgtCfyEEQcgAEAgiA0UNDSADQgA3AwAgA0IANwMwIANBADYCKCADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IANwM4IANBCBAIIgE2AgQgAUUEQCADEAYgAARAIABBADYCBCAAQQ42AgALDA4LIAFCADcDACAAKAIQIgEEQAJAIAEoAigiCkUEQCABKQMYIQQMAQsgCkEANgIoIAEoAihCADcDICABIAEpAxgiAiABKQMgIgUgAiAFVhsiBDcDGAsgASkDCCAEVgRAA0AgASgCACAEp0EEdGooAgAQBiAEQgF8IgQgASkDCFQNAAsLIAEoAgAQBiABKAIEEAYgARAGCyAAIAM2AhBCACEEDA0LIAAoAhQiAQRAAkAgASgCKCIDRQRAIAEpAxghAgwBCyADQQA2AiggASgCKEIANwMgIAEgASkDGCICIAEpAyAiBSACIAVWGyICNwMYCyABKQMIIAJWBEADQCABKAIAIAKn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cm9yAFRlbGwgZXJyb3IASW50ZXJuYWwgZXJyb3IAU2VlayBlcnJvcgBXcml0ZSBlcnJvcgBmaWxlIGVycm9yAFJlYWQgZXJyb3IAWmxpYiBlcnJvcgBkYXRhIGVycm9yAENSQyBlcnJvcgBpbmNvbXBhdGlibGUgdmVyc2lvbgBpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2sAaW5jb3JyZWN0IGhlYWRlciBjaGVjawBpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrAGluY29ycmVjdCBkYXRhIGNoZWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAGhlYWRlciBjcmMgbWlzbWF0Y2gAMS4yLjExLnpsaWItbmcAaW52YWxpZCB3aW5kb3cgc2l6ZQBSZWFkLW9ubHkgYXJjaGl2ZQBOb3QgYSB6aXAgYXJjaGl2ZQBSZXNvdXJjZSBzdGlsbCBpbiB1c2UATWFsbG9jIGZhaWx1cmUAaW52YWxpZCBibG9jayB0eXBlAEZhaWx1cmUgdG8gY3JlYXRlIHRlbXBvcmFyeSBmaWxlAENhbid0IG9wZW4gZmlsZQBObyBzdWNoIGZpbGUAUHJlbWF0dXJlIGVuZCBvZiBmaWxlAENhbid0IHJlbW92ZSBmaWxlAGludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZQBpbnZhbGlkIGRpc3RhbmNlIGNvZGUAdW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QAc3RyZWFtIGVuZABDb21wcmVzc2VkIGRhdGEgaW52YWxpZABNdWx0aS1kaXNrIHppcCBhcmNoaXZlcyBub3Qgc3VwcG9ydGVkAE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkAEVuY3J5cHRpb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQAQ29tcHJlc3Npb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQARW50cnkgaGFzIGJlZW4gZGVsZXRlZABDb250YWluaW5nIHppcCBhcmNoaXZlIHdhcyBjbG9zZWQAQ2xvc2luZyB6aXAgYXJjaGl2ZSBmYWlsZWQAUmVuYW1pbmcgdGVtcG9yYXJ5IGZpbGUgZmFpbGVkAEVudHJ5IGhhcyBiZWVuIGNoYW5nZWQATm8gcGFzc3dvcmQg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AQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQeDZAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdjaAAttBAAAAAQABAAIAAQABQAAAAQABAAIAAQABgAAAAQABgAgACAABgAAAAQABAAQABAABwAAAAgAEAAgACAABwAAAAgAEACAAIAABwAAAAgAIACAAAABCAAAACAAgAACAQAECAAAACAAAgECAQAQCABB0NsAC/cJDAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJ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IGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAEHAmAELdRYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAABwUFAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAJwAAACgAAAApAAAAKgAAACsAAAAsAAAALQBB5JoBCwJQUABBoJsBCxD/////////////////////";to(Di)||(Di=b(Di));function Qs(Be){try{if(Be==Di&&pe)return new Uint8Array(pe);var xe=$n(Be);if(xe)return xe;if(R)return R(Be);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(Ve){ki(Ve)}}function ro(Be,xe){var Ve,vt,tr;try{tr=Qs(Be),vt=new WebAssembly.Module(tr),Ve=new WebAssembly.Instance(vt,xe)}catch(Tn){var Zr=Tn.toString();throw re("failed to compile wasm module: "+Zr),(Zr.includes("imported Memory")||Zr.includes("memory import"))&&re("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Tn}return[Ve,vt]}function hc(){var Be={a:Ua};function xe(tr,Zr){var Tn=tr.exports;r.asm=Tn,le=r.asm.g,z(le.buffer),$=r.asm.$,tn(r.asm.h),bs("wasm-instantiate")}if(Hn("wasm-instantiate"),r.instantiateWasm)try{var Ve=r.instantiateWasm(Be,xe);return Ve}catch(tr){return re("Module.instantiateWasm callback failed with error: "+tr),!1}var vt=ro(Di,Be);return xe(vt[0]),r.asm}function gu(Be){return F.getFloat32(Be,!0)}function cp(Be){return F.getFloat64(Be,!0)}function up(Be){return F.getInt16(Be,!0)}function ks(Be){return F.getInt32(Be,!0)}function Cn(Be,xe){F.setInt32(Be,xe,!0)}function no(Be){for(;Be.length>0;){var xe=Be.shift();if(typeof xe=="function"){xe(r);continue}var Ve=xe.func;typeof Ve=="number"?xe.arg===void 0?$.get(Ve)():$.get(Ve)(xe.arg):Ve(xe.arg===void 0?null:xe.arg)}}function Fs(Be,xe){var Ve=new Date(ks((Be>>2)*4)*1e3);Cn((xe>>2)*4,Ve.getUTCSeconds()),Cn((xe+4>>2)*4,Ve.getUTCMinutes()),Cn((xe+8>>2)*4,Ve.getUTCHours()),Cn((xe+12>>2)*4,Ve.getUTCDate()),Cn((xe+16>>2)*4,Ve.getUTCMonth()),Cn((xe+20>>2)*4,Ve.getUTCFullYear()-1900),Cn((xe+24>>2)*4,Ve.getUTCDay()),Cn((xe+36>>2)*4,0),Cn((xe+32>>2)*4,0);var vt=Date.UTC(Ve.getUTCFullYear(),0,1,0,0,0,0),tr=(Ve.getTime()-vt)/(1e3*60*60*24)|0;return Cn((xe+28>>2)*4,tr),Fs.GMTString||(Fs.GMTString=yt("GMT")),Cn((xe+40>>2)*4,Fs.GMTString),xe}function Cl(Be,xe){return Fs(Be,xe)}function Il(Be,xe,Ve){qe.copyWithin(Be,xe,xe+Ve)}function io(Be){try{return le.grow(Be-Qe.byteLength+65535>>>16),z(le.buffer),1}catch{}}function Ue(Be){var xe=qe.length;Be=Be>>>0;var Ve=2147483648;if(Be>Ve)return!1;for(var vt=1;vt<=4;vt*=2){var tr=xe*(1+.2/vt);tr=Math.min(tr,Be+100663296);var Zr=Math.min(Ve,Te(Math.max(Be,tr),65536)),Tn=io(Zr);if(Tn)return!0}return!1}function Fn(Be){he(Be)}function Fi(Be){var xe=Date.now()/1e3|0;return Be&&Cn((Be>>2)*4,xe),xe}function Rn(){if(Rn.called)return;Rn.called=!0;var Be=new Date().getFullYear(),xe=new Date(Be,0,1),Ve=new Date(Be,6,1),vt=xe.getTimezoneOffset(),tr=Ve.getTimezoneOffset(),Zr=Math.max(vt,tr);Cn((mi()>>2)*4,Zr*60),Cn((es()>>2)*4,Number(vt!=tr));function Tn(ja){var la=ja.toTimeString().match(/\(([A-Za-z ]+)\)$/);return la?la[1]:"GMT"}var _r=Tn(xe),ei=Tn(Ve),Ti=yt(_r),Kn=yt(ei);tr<vt?(Cn(($i()>>2)*4,Ti),Cn(($i()+4>>2)*4,Kn)):(Cn(($i()>>2)*4,Kn),Cn(($i()+4>>2)*4,Ti))}function Ui(Be){Rn();var xe=Date.UTC(ks((Be+20>>2)*4)+1900,ks((Be+16>>2)*4),ks((Be+12>>2)*4),ks((Be+8>>2)*4),ks((Be+4>>2)*4),ks((Be>>2)*4),0),Ve=new Date(xe);Cn((Be+24>>2)*4,Ve.getUTCDay());var vt=Date.UTC(Ve.getUTCFullYear(),0,1,0,0,0,0),tr=(Ve.getTime()-vt)/(1e3*60*60*24)|0;return Cn((Be+28>>2)*4,tr),Ve.getTime()/1e3|0}var Zt=typeof atob=="function"?atob:function(Be){var xe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Ve="",vt,tr,Zr,Tn,_r,ei,Ti,Kn=0;Be=Be.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Tn=xe.indexOf(Be.charAt(Kn++)),_r=xe.indexOf(Be.charAt(Kn++)),ei=xe.indexOf(Be.charAt(Kn++)),Ti=xe.indexOf(Be.charAt(Kn++)),vt=Tn<<2|_r>>4,tr=(_r&15)<<4|ei>>2,Zr=(ei&3)<<6|Ti,Ve=Ve+String.fromCharCode(vt),ei!==64&&(Ve=Ve+String.fromCharCode(tr)),Ti!==64&&(Ve=Ve+String.fromCharCode(Zr));while(Kn<Be.length);return Ve};function Ri(Be){if(typeof w=="boolean"&&w){var xe;try{xe=Buffer.from(Be,"base64")}catch{xe=new Buffer(Be,"base64")}return new Uint8Array(xe.buffer,xe.byteOffset,xe.byteLength)}try{for(var Ve=Zt(Be),vt=new Uint8Array(Ve.length),tr=0;tr<Ve.length;++tr)vt[tr]=Ve.charCodeAt(tr);return vt}catch{throw new Error("Converting base64 string to bytes failed.")}}function $n(Be){if(!!to(Be))return Ri(Be.slice(gs.length))}var Ua={e:Cl,c:Il,d:Ue,a:Fn,b:Fi,f:Ui},$t=hc(),gc=r.___wasm_call_ctors=$t.h,du=r._zip_ext_count_symlinks=$t.i,dc=r._zip_file_get_external_attributes=$t.j,wl=r._zipstruct_stat=$t.k,xA=r._zipstruct_statS=$t.l,mu=r._zipstruct_stat_name=$t.m,Ce=r._zipstruct_stat_index=$t.n,Rt=r._zipstruct_stat_size=$t.o,mc=r._zipstruct_stat_mtime=$t.p,_i=r._zipstruct_stat_crc=$t.q,yu=r._zipstruct_error=$t.r,qt=r._zipstruct_errorS=$t.s,Bl=r._zipstruct_error_code_zip=$t.t,bA=r._zipstruct_stat_comp_size=$t.u,Ap=r._zipstruct_stat_comp_method=$t.v,yc=r._zip_close=$t.w,QA=r._zip_delete=$t.x,Dn=r._zip_dir_add=$t.y,ui=r._zip_discard=$t.z,Ec=r._zip_error_init_with_code=$t.A,kA=r._zip_get_error=$t.B,na=r._zip_file_get_error=$t.C,Hi=r._zip_error_strerror=$t.D,Mo=r._zip_fclose=$t.E,$e=r._zip_file_add=$t.F,so=r._free=$t.G,vl=r._malloc=$t.H,Eu=r._zip_source_error=$t.I,qi=r._zip_source_seek=$t.J,Cu=r._zip_file_set_external_attributes=$t.K,FA=r._zip_file_set_mtime=$t.L,Ha=r._zip_fopen=$t.M,Cc=r._zip_fopen_index=$t.N,ds=r._zip_fread=$t.O,Ot=r._zip_get_name=$t.P,Sn=r._zip_get_num_entries=$t.Q,di=r._zip_source_read=$t.R,ia=r._zip_name_locate=$t.S,oo=r._zip_open_from_source=$t.T,Rs=r._zip_set_file_compression=$t.U,sa=r._zip_source_buffer=$t.V,oa=r._zip_source_buffer_create=$t.W,Uo=r._zip_source_close=$t.X,Zi=r._zip_source_free=$t.Y,Ts=r._zip_source_keep=$t.Z,Ns=r._zip_source_open=$t._,Ls=r._zip_source_set_mtime=$t.aa,ao=r._zip_source_tell=$t.ba,Yn=r._zip_stat=$t.ca,qn=r._zip_stat_index=$t.da,$i=r.__get_tzname=$t.ea,es=r.__get_daylight=$t.fa,mi=r.__get_timezone=$t.ga,qa=r.stackSave=$t.ha,aa=r.stackRestore=$t.ia,ee=r.stackAlloc=$t.ja;r.cwrap=ne,r.getValue=ge;var we;jr=function Be(){we||je(),we||(jr=Be)};function je(Be){if(Be=Be||A,fr>0||(ht(),fr>0))return;function xe(){we||(we=!0,r.calledRun=!0,!Pe&&(Ut(),o(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),Xt()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),xe()},1)):xe()}if(r.run=je,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return je(),e}}();typeof BD=="object"&&typeof iT=="object"?iT.exports=nT:typeof define=="function"&&define.amd?define([],function(){return nT}):typeof BD=="object"&&(BD.createModule=nT)});var Ef,zW,XW,ZW=dt(()=>{Ef=["number","number"],zW=(Z=>(Z[Z.ZIP_ER_OK=0]="ZIP_ER_OK",Z[Z.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",Z[Z.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",Z[Z.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",Z[Z.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",Z[Z.ZIP_ER_READ=5]="ZIP_ER_READ",Z[Z.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",Z[Z.ZIP_ER_CRC=7]="ZIP_ER_CRC",Z[Z.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",Z[Z.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",Z[Z.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",Z[Z.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",Z[Z.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",Z[Z.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",Z[Z.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",Z[Z.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",Z[Z.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",Z[Z.ZIP_ER_EOF=17]="ZIP_ER_EOF",Z[Z.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",Z[Z.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",Z[Z.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",Z[Z.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",Z[Z.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",Z[Z.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",Z[Z.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",Z[Z.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",Z[Z.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",Z[Z.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",Z[Z.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",Z[Z.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",Z[Z.ZIP_ER_TELL=30]="ZIP_ER_TELL",Z[Z.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",Z))(zW||{}),XW=t=>({get HEAP8(){return t.HEAP8},get HEAPU8(){return t.HEAPU8},errors:zW,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint16S:t._malloc(2),uint32S:t._malloc(4),uint64S:t._malloc(8),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),stat:t.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Ef,"number","number"]),fopen:t.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Ef,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Ef,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Ef,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Ef,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Ef,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Ef,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Ef,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Ef,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"]),setMtime:t.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:t.cwrap("zipstruct_stat","number",[]),statS:t.cwrap("zipstruct_statS","number",[]),statName:t.cwrap("zipstruct_stat_name","string",["number"]),statIndex:t.cwrap("zipstruct_stat_index","number",["number"]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),error:t.cwrap("zipstruct_error","number",[]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function sT(t,e){let r=t.indexOf(e);if(r<=0)return null;let o=r;for(;r>=0&&(o=r+e.length,t[o]!==J.sep);){if(t[r-1]===J.sep)return null;r=t.indexOf(e,o)}return t.length>o&&t[o]!==J.sep?null:t.slice(0,o)}var _l,$W=dt(()=>{St();St();Hc();_l=class extends Hp{static async openPromise(e,r){let o=new _l(r);try{return await e(o)}finally{o.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,o=e.readOnlyArchives,a=typeof r>"u"?A=>sT(A,".zip"):A=>{for(let p of r){let h=sT(A,p);if(h)return h}return null},n=(A,p)=>new os(p,{baseFs:A,readOnly:o,stats:A.statSync(p)}),u=async(A,p)=>{let h={baseFs:A,readOnly:o,stats:await A.statPromise(p)};return()=>new os(p,h)};super({...e,factorySync:n,factoryPromise:u,getMountPoint:a})}}});function F8e(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(eY.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function vD(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var Go,oT,eY,aT,Ay,DD,os,lT=dt(()=>{St();St();St();St();St();St();Go=Ie("fs"),oT=Ie("stream"),eY=Ie("util"),aT=tt(Ie("zlib"));rT();Ay="mixed";DD=class extends Error{constructor(r,o){super(r);this.name="Libzip Error",this.code=o}},os=class extends qu{constructor(r,o={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;let a=o;if(this.level=typeof a.level<"u"?a.level:Ay,r??(r=vD()),typeof r=="string"){let{baseFs:A=new xn}=a;this.baseFs=A,this.path=r}else this.path=null,this.baseFs=null;if(o.stats)this.stats=o.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(A){if(A.code==="ENOENT"&&a.create)this.stats=Ul.makeDefaultStats();else throw A}else this.stats=Ul.makeDefaultStats();this.libzip=_I();let n=this.libzip.malloc(4);try{let A=0;o.readOnly&&(A|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof r=="string"&&(r=a.create?vD():this.baseFs.readFileSync(r));let p=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(p,A,n),this.lzSource=p}catch(h){throw this.libzip.source.free(p),h}if(this.zip===0){let h=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(h,this.libzip.getValue(n,"i32")),this.makeLibzipError(h)}}finally{this.libzip.free(n)}this.listings.set(wt.root,new Set);let u=this.libzip.getNumEntries(this.zip,0);for(let A=0;A<u;++A){let p=this.libzip.getName(this.zip,A,0);if(J.isAbsolute(p))continue;let h=J.resolve(wt.root,p);this.registerEntry(h,A),p.endsWith("/")&&this.registerListing(h)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(r){let o=this.libzip.struct.errorCodeZip(r),a=this.libzip.error.strerror(r),n=new DD(a,this.libzip.errors[o]);if(o===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${n.message}`);return n}getExtractHint(r){for(let o of this.entries.keys()){let a=this.pathUtils.extname(o);if(r.relevantExtensions.has(a))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}prepareClose(){if(!this.ready)throw sr.EBUSY("archive closed, close");Lg(this)}getBufferAndClose(){if(this.prepareClose(),this.entries.size===0)return this.discardAndClose(),vD();try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let r=this.libzip.source.tell(this.lzSource);if(r===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let o=this.libzip.malloc(r);if(!o)throw new Error("Couldn't allocate enough memory");try{let a=this.libzip.source.read(this.lzSource,o,r);if(a===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(a<r)throw new Error("Incomplete read");if(a>r)throw new Error("Overread");let n=this.libzip.HEAPU8.subarray(o,o+r);return Buffer.from(n)}finally{this.libzip.free(o)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===Ul.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return J.resolve(wt.root,r)}async openPromise(r,o,a){return this.openSync(r,o,a)}openSync(r,o,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,o){return this.opendirSync(r,o)}opendirSync(r,o={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`opendir '${r}'`);let u=[...n],A=this.openSync(a,"r");return gD(this,a,u,{onClose:()=>{this.closeSync(A)}})}async readPromise(r,o,a,n,u){return this.readSync(r,o,a,n,u)}readSync(r,o,a=0,n=o.byteLength,u=-1){let A=this.fds.get(r);if(typeof A>"u")throw sr.EBADF("read");let p=u===-1||u===null?A.cursor:u,h=this.readFileSync(A.p);h.copy(o,a,p,p+n);let C=Math.max(0,Math.min(h.length-p,n));return(u===-1||u===null)&&(A.cursor+=C),C}async writePromise(r,o,a,n,u){return typeof o=="string"?this.writeSync(r,o,u):this.writeSync(r,o,a,n,u)}writeSync(r,o,a,n,u){throw typeof this.fds.get(r)>"u"?sr.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw sr.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:o}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new oT.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(A,p)=>{clearImmediate(u),this.closeSync(a),p(A)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),u=setImmediate(async()=>{try{let A=await this.readFilePromise(r,o);n.bytesRead=A.length,n.end(A)}catch(A){n.destroy(A)}});return n}createWriteStream(r,{encoding:o}={}){if(this.readOnly)throw sr.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),u=Object.assign(new oT.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(A,p)=>{try{A?p(A):(this.writeFileSync(r,Buffer.concat(a),o),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){u.destroy()},bytesWritten:0,path:r,pending:!1});return u.on("data",A=>{let p=Buffer.from(A);u.bytesWritten+=p.length,a.push(p)}),u}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let o=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(o)&&!this.listings.has(o))throw sr.ENOENT(`lstat '${r}'`);return o}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw sr.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=J.resolve(wt.root,r);return this.entries.has(a)||this.listings.has(a)}let o;try{o=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return o===void 0?!1:this.entries.has(o)||this.listings.has(o)}async accessPromise(r,o){return this.accessSync(r,o)}accessSync(r,o=Go.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`access '${r}'`);if(this.readOnly&&o&Go.constants.W_OK)throw sr.EROFS(`access '${r}'`)}async statPromise(r,o={bigint:!1}){return o.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw sr.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,o)}}async fstatPromise(r,o){return this.fstatSync(r,o)}fstatSync(r,o){let a=this.fds.get(r);if(typeof a>"u")throw sr.EBADF("fstatSync");let{p:n}=a,u=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(u)&&!this.listings.has(u))throw sr.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(u))throw sr.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,u,o)}async lstatPromise(r,o={bigint:!1}){return o.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw sr.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,o)}}statImpl(r,o,a={}){let n=this.entries.get(o);if(typeof n<"u"){let u=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,u)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let p=this.stats.uid,h=this.stats.gid,C=this.libzip.struct.statSize(u)>>>0,w=512,v=Math.ceil(C/w),b=(this.libzip.struct.statMtime(u)>>>0)*1e3,E=b,R=b,L=b,_=new Date(E),V=new Date(R),re=new Date(L),ae=new Date(b),he=this.listings.has(o)?Go.constants.S_IFDIR:this.isSymbolicLink(n)?Go.constants.S_IFLNK:Go.constants.S_IFREG,pe=he===Go.constants.S_IFDIR?493:420,De=he|this.getUnixMode(n,pe)&511,ge=this.libzip.struct.statCrc(u),le=Object.assign(new Ul.StatEntry,{uid:p,gid:h,size:C,blksize:w,blocks:v,atime:_,birthtime:V,ctime:re,mtime:ae,atimeMs:E,birthtimeMs:R,ctimeMs:L,mtimeMs:b,mode:De,crc:ge});return a.bigint===!0?Ul.convertToBigIntStats(le):le}if(this.listings.has(o)){let u=this.stats.uid,A=this.stats.gid,p=0,h=512,C=0,w=this.stats.mtimeMs,v=this.stats.mtimeMs,b=this.stats.mtimeMs,E=this.stats.mtimeMs,R=new Date(w),L=new Date(v),_=new Date(b),V=new Date(E),re=Go.constants.S_IFDIR|493,ae=0,he=Object.assign(new Ul.StatEntry,{uid:u,gid:A,size:p,blksize:h,blocks:C,atime:R,birthtime:L,ctime:_,mtime:V,atimeMs:w,birthtimeMs:v,ctimeMs:b,mtimeMs:E,mode:re,crc:ae});return a.bigint===!0?Ul.convertToBigIntStats(he):he}throw new Error("Unreachable")}getUnixMode(r,o){if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?o:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(r){let o=this.listings.get(r);if(o)return o;this.registerListing(J.dirname(r)).add(J.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,o){this.registerListing(J.dirname(r)).add(J.basename(r)),this.entries.set(r,o)}unregisterListing(r){this.listings.delete(r);let o=this.listings.get(J.dirname(r));o==null||o.delete(J.basename(r))}unregisterEntry(r){this.unregisterListing(r);let o=this.entries.get(r);this.entries.delete(r),!(typeof o>"u")&&(this.fileSources.delete(o),this.isSymbolicLink(o)&&this.symlinkCount--)}deleteEntry(r,o){if(this.unregisterEntry(r),this.libzip.delete(this.zip,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(r,o,a=!0,n=!0){if(!this.ready)throw sr.EBUSY(`archive closed, ${r}`);let u=J.resolve(wt.root,o);if(u==="/")return wt.root;let A=this.entries.get(u);if(a&&A!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(A)){let p=this.getFileSource(A).toString();return this.resolveFilename(r,J.resolve(J.dirname(u),p),!0,n)}else return u;for(;;){let p=this.resolveFilename(r,J.dirname(u),!0,n);if(p===void 0)return p;let h=this.listings.has(p),C=this.entries.has(p);if(!h&&!C){if(n===!1)return;throw sr.ENOENT(r)}if(!h)throw sr.ENOTDIR(r);if(u=J.resolve(p,J.basename(u)),!a||this.symlinkCount===0)break;let w=this.libzip.name.locate(this.zip,u.slice(1),0);if(w===-1)break;if(this.isSymbolicLink(w)){let v=this.getFileSource(w).toString();u=J.resolve(J.dirname(u),v)}else break}return u}allocateBuffer(r){Buffer.isBuffer(r)||(r=Buffer.from(r));let o=this.libzip.malloc(r.byteLength);if(!o)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,o,r.byteLength).set(r),{buffer:o,byteLength:r.byteLength}}allocateUnattachedSource(r){let o=this.libzip.struct.errorS(),{buffer:a,byteLength:n}=this.allocateBuffer(r),u=this.libzip.source.fromUnattachedBuffer(a,n,0,1,o);if(u===0)throw this.libzip.free(o),this.makeLibzipError(o);return u}allocateSource(r){let{buffer:o,byteLength:a}=this.allocateBuffer(r),n=this.libzip.source.fromBuffer(this.zip,o,a,0,1);if(n===0)throw this.libzip.free(o),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(r,o){let a=Buffer.isBuffer(o)?o:Buffer.from(o),n=J.relative(wt.root,r),u=this.allocateSource(o);try{let A=this.libzip.file.add(this.zip,n,u,this.libzip.ZIP_FL_OVERWRITE);if(A===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let p=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,A,0,p,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(A,a),A}catch(A){throw this.libzip.source.free(u),A}}isSymbolicLink(r){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&Go.constants.S_IFMT)===Go.constants.S_IFLNK}getFileSource(r,o={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,r,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let A=this.libzip.struct.statCompSize(n),p=this.libzip.struct.statCompMethod(n),h=this.libzip.malloc(A);try{let C=this.libzip.fopenIndex(this.zip,r,0,this.libzip.ZIP_FL_COMPRESSED);if(C===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let w=this.libzip.fread(C,h,A,0);if(w===-1)throw this.makeLibzipError(this.libzip.file.getError(C));if(w<A)throw new Error("Incomplete read");if(w>A)throw new Error("Overread");let v=this.libzip.HEAPU8.subarray(h,h+A),b=Buffer.from(v);if(p===0)return this.fileSources.set(r,b),b;if(o.asyncDecompress)return new Promise((E,R)=>{aT.default.inflateRaw(b,(L,_)=>{L?R(L):(this.fileSources.set(r,_),E(_))})});{let E=aT.default.inflateRawSync(b);return this.fileSources.set(r,E),E}}finally{this.libzip.fclose(C)}}finally{this.libzip.free(h)}}async fchmodPromise(r,o){return this.chmodPromise(this.fdToPath(r,"fchmod"),o)}fchmodSync(r,o){return this.chmodSync(this.fdToPath(r,"fchmodSync"),o)}async chmodPromise(r,o){return this.chmodSync(r,o)}chmodSync(r,o){if(this.readOnly)throw sr.EROFS(`chmod '${r}'`);o&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let A=this.getUnixMode(n,Go.constants.S_IFREG|0)&-512|o;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,A<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(r,o,a){return this.chownPromise(this.fdToPath(r,"fchown"),o,a)}fchownSync(r,o,a){return this.chownSync(this.fdToPath(r,"fchownSync"),o,a)}async chownPromise(r,o,a){return this.chownSync(r,o,a)}chownSync(r,o,a){throw new Error("Unimplemented")}async renamePromise(r,o){return this.renameSync(r,o)}renameSync(r,o){throw new Error("Unimplemented")}async copyFilePromise(r,o,a){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}copyFileSync(r,o,a=0){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=this.getFileSource(n),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}prepareCopyFile(r,o,a=0){if(this.readOnly)throw sr.EROFS(`copyfile '${r} -> '${o}'`);if((a&Go.constants.COPYFILE_FICLONE_FORCE)!==0)throw sr.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${o}'`);let n=this.resolveFilename(`copyfile '${r} -> ${o}'`,r),u=this.entries.get(n);if(typeof u>"u")throw sr.EINVAL(`copyfile '${r}' -> '${o}'`);let A=this.resolveFilename(`copyfile '${r}' -> ${o}'`,o),p=this.entries.get(A);if((a&(Go.constants.COPYFILE_EXCL|Go.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof p<"u")throw sr.EEXIST(`copyfile '${r}' -> '${o}'`);return{indexSource:u,resolvedDestP:A,indexDest:p}}async appendFilePromise(r,o,a){if(this.readOnly)throw sr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,o,a)}appendFileSync(r,o,a={}){if(this.readOnly)throw sr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,o,a)}fdToPath(r,o){var n;let a=(n=this.fds.get(r))==null?void 0:n.p;if(typeof a>"u")throw sr.EBADF(o);return a}async writeFilePromise(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([await this.getFileSource(A,{asyncDecompress:!0}),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&await this.chmodPromise(p,u)}writeFileSync(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([this.getFileSource(A),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&this.chmodSync(p,u)}prepareWriteFile(r,o){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw sr.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw sr.EISDIR(`open '${r}'`);let n=null,u=null;typeof o=="string"?n=o:typeof o=="object"&&({encoding:n=null,mode:u=null}=o);let A=this.entries.get(a);return{encoding:n,mode:u,resolvedP:a,index:A}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw sr.EROFS(`unlink '${r}'`);let o=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(o))throw sr.EISDIR(`unlink '${r}'`);let a=this.entries.get(o);if(typeof a>"u")throw sr.EINVAL(`unlink '${r}'`);this.deleteEntry(o,a)}async utimesPromise(r,o,a){return this.utimesSync(r,o,a)}utimesSync(r,o,a){if(this.readOnly)throw sr.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,o,a){return this.lutimesSync(r,o,a)}lutimesSync(r,o,a){if(this.readOnly)throw sr.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,o){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,a,0,F8e(o),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(r,o){return this.mkdirSync(r,o)}mkdirSync(r,{mode:o=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:o});if(this.readOnly)throw sr.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw sr.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,o)}async rmdirPromise(r,o){return this.rmdirSync(r,o)}rmdirSync(r,{recursive:o=!1}={}){if(this.readOnly)throw sr.EROFS(`rmdir '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw sr.ENOTEMPTY(`rmdir '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw sr.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,u)}hydrateDirectory(r){let o=this.libzip.dir.add(this.zip,J.relative(wt.root,r));if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(r),this.registerEntry(r,o),o}async linkPromise(r,o){return this.linkSync(r,o)}linkSync(r,o){throw sr.EOPNOTSUPP(`link '${r}' -> '${o}'`)}async symlinkPromise(r,o){return this.symlinkSync(r,o)}symlinkSync(r,o){if(this.readOnly)throw sr.EROFS(`symlink '${r}' -> '${o}'`);let a=this.resolveFilename(`symlink '${r}' -> '${o}'`,o);if(this.listings.has(a))throw sr.EISDIR(`symlink '${r}' -> '${o}'`);if(this.entries.has(a))throw sr.EEXIST(`symlink '${r}' -> '${o}'`);let n=this.setFileSource(a,r);if(this.registerEntry(a,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(Go.constants.S_IFLNK|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return o?a.toString(o):a}readFileSync(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=this.readFileBuffer(r);return o?a.toString(o):a}readFileBuffer(r,o={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw sr.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,o)}async readdirPromise(r,o){return this.readdirSync(r,o)}readdirSync(r,o){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`scandir '${r}'`);let u=[...n];return o!=null&&o.withFileTypes?u.map(A=>Object.assign(this.statImpl("lstat",J.join(r,A)),{name:A})):u}async readlinkPromise(r){let o=this.prepareReadlink(r);return(await this.getFileSource(o,{asyncDecompress:!0})).toString()}readlinkSync(r){let o=this.prepareReadlink(r);return this.getFileSource(o).toString()}prepareReadlink(r){let o=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(o)&&!this.listings.has(o))throw sr.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(o))throw sr.ENOTDIR(`open '${r}'`);if(this.listings.has(o))throw sr.EINVAL(`readlink '${r}'`);let a=this.entries.get(o);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw sr.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw sr.EINVAL(`open '${r}'`);let u=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(o,0);return u.copy(A),await this.writeFilePromise(r,A)}truncateSync(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw sr.EINVAL(`open '${r}'`);let u=this.getFileSource(n),A=Buffer.alloc(o,0);return u.copy(A),this.writeFileSync(r,A)}async ftruncatePromise(r,o){return this.truncatePromise(this.fdToPath(r,"ftruncate"),o)}ftruncateSync(r,o){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),o)}watch(r,o,a){let n;switch(typeof o){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=o);break}if(!n)return{on:()=>{},close:()=>{}};let u=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(u)}}}watchFile(r,o,a){let n=J.resolve(wt.root,r);return sy(this,n,o,a)}unwatchFile(r,o){let a=J.resolve(wt.root,r);return Ng(this,a,o)}}});function rY(t,e,r=Buffer.alloc(0),o){let a=new os(r),n=w=>w===e||w.startsWith(`${e}/`)?w.slice(0,e.length):null,u=async(w,v)=>()=>a,A=(w,v)=>a,p={...t},h=new xn(p),C=new Hp({baseFs:h,getMountPoint:n,factoryPromise:u,factorySync:A,magicByte:21,maxAge:1/0,typeCheck:o==null?void 0:o.typeCheck});return MI(tY.default,new qp(C)),a}var tY,nY=dt(()=>{St();tY=tt(Ie("fs"));lT()});var iY=dt(()=>{$W();lT();nY()});var HI={};Yt(HI,{DEFAULT_COMPRESSION_LEVEL:()=>Ay,LibzipError:()=>DD,ZipFS:()=>os,ZipOpenFS:()=>_l,getArchivePart:()=>sT,getLibzipPromise:()=>T8e,getLibzipSync:()=>R8e,makeEmptyArchive:()=>vD,mountMemoryDrive:()=>rY});function R8e(){return _I()}async function T8e(){return _I()}var sY,Hc=dt(()=>{rT();sY=tt(JW());ZW();iY();VW(()=>{let t=(0,sY.default)();return XW(t)})});var aY=U((hxt,oY)=>{"use strict";function N8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Hg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Hg)}N8e(Hg,Error);Hg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var C="",w;for(w=0;w<h.parts.length;w++)C+=h.parts[w]instanceof Array?n(h.parts[w][0])+"-"+n(h.parts[w][1]):n(h.parts[w]);return"["+(h.inverted?"^":"")+C+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(C){return"\\x0"+o(C)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(C){return"\\x"+o(C)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(C){return"\\x0"+o(C)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(C){return"\\x"+o(C)})}function u(h){return r[h.type](h)}function A(h){var C=new Array(h.length),w,v;for(w=0;w<h.length;w++)C[w]=u(h[w]);if(C.sort(),C.length>0){for(w=1,v=1;w<C.length;w++)C[w-1]!==C[w]&&(C[v]=C[w],v++);C.length=v}switch(C.length){case 1:return C[0];case 2:return C[0]+" or "+C[1];default:return C.slice(0,-1).join(", ")+", or "+C[C.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function L8e(t,e){e=e!==void 0?e:{};var r={},o={Start:Ag},a=Ag,n=function(N){return N||[]},u=function(N,K,te){return[{command:N,type:K}].concat(te||[])},A=function(N,K){return[{command:N,type:K||";"}]},p=function(N){return N},h=";",C=yr(";",!1),w="&",v=yr("&",!1),b=function(N,K){return K?{chain:N,then:K}:{chain:N}},E=function(N,K){return{type:N,line:K}},R="&&",L=yr("&&",!1),_="||",V=yr("||",!1),re=function(N,K){return K?{...N,then:K}:N},ae=function(N,K){return{type:N,chain:K}},he="|&",pe=yr("|&",!1),De="|",ge=yr("|",!1),le="=",Pe=yr("=",!1),g=function(N,K){return{name:N,args:[K]}},ve=function(N){return{name:N,args:[]}},Ee="(",de=yr("(",!1),ne=")",Z=yr(")",!1),me=function(N,K){return{type:"subshell",subshell:N,args:K}},be="{",ut=yr("{",!1),H="}",yt=yr("}",!1),Me=function(N,K){return{type:"group",group:N,args:K}},Te=function(N,K){return{type:"command",args:K,envs:N}},Qe=function(N){return{type:"envs",envs:N}},_e=function(N){return N},qe=function(N){return N},At=/^[0-9]/,Oe=ys([["0","9"]],!1,!1),x=function(N,K,te){return{type:"redirection",subtype:K,fd:N!==null?parseInt(N):null,args:[te]}},I=">>",P=yr(">>",!1),y=">&",F=yr(">&",!1),z=">",X=yr(">",!1),$="<<<",ie=yr("<<<",!1),ke="<&",Ne=yr("<&",!1),st="<",ht=yr("<",!1),Ut=function(N){return{type:"argument",segments:[].concat(...N)}},Xt=function(N){return N},xt="$'",tn=yr("$'",!1),Dr="'",fr=yr("'",!1),Br=function(N){return[{type:"text",text:N}]},jr='""',Hn=yr('""',!1),bs=function(){return{type:"text",text:""}},ki='"',gs=yr('"',!1),to=function(N){return N},Di=function(N){return{type:"arithmetic",arithmetic:N,quoted:!0}},Qs=function(N){return{type:"shell",shell:N,quoted:!0}},ro=function(N){return{type:"variable",...N,quoted:!0}},hc=function(N){return{type:"text",text:N}},gu=function(N){return{type:"arithmetic",arithmetic:N,quoted:!1}},cp=function(N){return{type:"shell",shell:N,quoted:!1}},up=function(N){return{type:"variable",...N,quoted:!1}},ks=function(N){return{type:"glob",pattern:N}},Cn=/^[^']/,no=ys(["'"],!0,!1),Fs=function(N){return N.join("")},Cl=/^[^$"]/,Il=ys(["$",'"'],!0,!1),io=`\\
10`,Ue=yr(`\\ 10`,Ue=yr(`\\
11`,!1),Fn=function(){return""},Fi="\\",Rn=yr("\\",!1),Ui=/^[\\$"`]/,Zt=ys(["\\","$",'"',"`"],!1,!1),Ri=function(N){return N},$n="\\a",Ma=yr("\\a",!1),$t=function(){return"a"},hc="\\b",du=yr("\\b",!1),gc=function(){return"\b"},Il=/^[Ee]/,PA=ys(["E","e"],!1,!1),mu=function(){return"\x1B"},Ee="\\f",Rt=yr("\\f",!1),dc=function(){return"\f"},_i="\\n",yu=yr("\\n",!1),qt=function(){return` 11`,!1),Fn=function(){return""},Fi="\\",Rn=yr("\\",!1),Ui=/^[\\$"`]/,Zt=ys(["\\","$",'"',"`"],!1,!1),Ri=function(N){return N},$n="\\a",Ua=yr("\\a",!1),$t=function(){return"a"},gc="\\b",du=yr("\\b",!1),dc=function(){return"\b"},wl=/^[Ee]/,xA=ys(["E","e"],!1,!1),mu=function(){return"\x1B"},Ce="\\f",Rt=yr("\\f",!1),mc=function(){return"\f"},_i="\\n",yu=yr("\\n",!1),qt=function(){return`
12`},wl="\\r",xA=yr("\\r",!1),cp=function(){return"\r"},mc="\\t",bA=yr("\\t",!1),Dn=function(){return" "},ui="\\v",yc=yr("\\v",!1),QA=function(){return"\v"},ra=/^[\\'"?]/,Hi=ys(["\\","'",'"',"?"],!1,!1),Oo=function(N){return String.fromCharCode(parseInt(N,16))},$e="\\x",so=yr("\\x",!1),Bl="\\u",Cu=yr("\\u",!1),qi="\\U",Eu=yr("\\U",!1),kA=function(N){return String.fromCodePoint(parseInt(N,16))},Ua=/^[0-7]/,Cc=ys([["0","7"]],!1,!1),ds=/^[0-9a-fA-f]/,Ot=ys([["0","9"],["a","f"],["A","f"]],!1,!1),Sn=og(),di="{}",na=yr("{}",!1),oo=function(){return"{}"},Rs="-",ia=yr("-",!1),sa="+",Mo=yr("+",!1),Zi=".",Ts=yr(".",!1),Ns=function(N,K,te){return{type:"number",value:(N==="-"?-1:1)*parseFloat(K.join("")+"."+te.join(""))}},Ls=function(N,K){return{type:"number",value:(N==="-"?-1:1)*parseInt(K.join(""))}},ao=function(N){return{type:"variable",...N}},Yn=function(N){return{type:"variable",name:N}},qn=function(N){return N},$i="*",es=yr("*",!1),mi="/",Ha=yr("/",!1),oa=function(N,K,te){return{type:K==="*"?"multiplication":"division",right:te}},ee=function(N,K){return K.reduce((te,Ae)=>({left:te,...Ae}),N)},we=function(N,K,te){return{type:K==="+"?"addition":"subtraction",right:te}},je="$((",Be=yr("$((",!1),xe="))",Ve=yr("))",!1),vt=function(N){return N},tr="$(",Zr=yr("$(",!1),Tn=function(N){return N},_r="${",ei=yr("${",!1),Ti=":-",Kn=yr(":-",!1),qa=function(N,K){return{name:N,defaultValue:K}},aa=":-}",yi=yr(":-}",!1),la=function(N){return{name:N,defaultValue:[]}},ja=":+",lo=yr(":+",!1),FA=function(N,K){return{name:N,alternativeValue:K}},Ec=":+}",ca=yr(":+}",!1),rg=function(N){return{name:N,alternativeValue:[]}},Ic=function(N){return{name:N}},bm="$",ng=yr("$",!1),Vn=function(N){return e.isGlobPattern(N)},up=function(N){return N},ig=/^[a-zA-Z0-9_]/,RA=ys([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Os=function(){return sg()},Iu=/^[$@*?#a-zA-Z0-9_\-]/,Ga=ys(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),ji=/^[()}<>$|&; \t"']/,ua=ys(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),wu=/^[<>&; \t"']/,ms=ys(["<",">","&",";"," "," ",'"',"'"],!1,!1),wc=/^[ \t]/,Bc=ys([" "," "],!1,!1),G=0,Dt=0,vl=[{line:1,column:1}],Si=0,vc=[],lt=0,Bu;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function sg(){return t.substring(Dt,G)}function cI(){return Dc(Dt,G)}function TA(N,K){throw K=K!==void 0?K:Dc(Dt,G),cg([lg(N)],t.substring(Dt,G),K)}function Ap(N,K){throw K=K!==void 0?K:Dc(Dt,G),Qm(N,K)}function yr(N,K){return{type:"literal",text:N,ignoreCase:K}}function ys(N,K,te){return{type:"class",parts:N,inverted:K,ignoreCase:te}}function og(){return{type:"any"}}function ag(){return{type:"end"}}function lg(N){return{type:"other",description:N}}function fp(N){var K=vl[N],te;if(K)return K;for(te=N-1;!vl[te];)te--;for(K=vl[te],K={line:K.line,column:K.column};te<N;)t.charCodeAt(te)===10?(K.line++,K.column=1):K.column++,te++;return vl[N]=K,K}function Dc(N,K){var te=fp(N),Ae=fp(K);return{start:{offset:N,line:te.line,column:te.column},end:{offset:K,line:Ae.line,column:Ae.column}}}function mt(N){G<Si||(G>Si&&(Si=G,vc=[]),vc.push(N))}function Qm(N,K){return new _g(N,null,null,K)}function cg(N,K,te){return new _g(_g.buildMessage(N,K),N,K,te)}function ug(){var N,K,te;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();return K!==r?(te=vu(),te===r&&(te=null),te!==r?(Dt=N,K=n(te),N=K):(G=N,N=r)):(G=N,N=r),N}function vu(){var N,K,te,Ae,ze;if(N=G,K=Du(),K!==r){for(te=[],Ae=kt();Ae!==r;)te.push(Ae),Ae=kt();te!==r?(Ae=Ag(),Ae!==r?(ze=km(),ze===r&&(ze=null),ze!==r?(Dt=N,K=u(K,Ae,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;if(N===r)if(N=G,K=Du(),K!==r){for(te=[],Ae=kt();Ae!==r;)te.push(Ae),Ae=kt();te!==r?(Ae=Ag(),Ae===r&&(Ae=null),Ae!==r?(Dt=N,K=A(K,Ae),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;return N}function km(){var N,K,te,Ae,ze;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(te=vu(),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();Ae!==r?(Dt=N,K=p(te),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;return N}function Ag(){var N;return t.charCodeAt(G)===59?(N=h,G++):(N=r,lt===0&&mt(E)),N===r&&(t.charCodeAt(G)===38?(N=w,G++):(N=r,lt===0&&mt(v))),N}function Du(){var N,K,te;return N=G,K=Aa(),K!==r?(te=uI(),te===r&&(te=null),te!==r?(Dt=N,K=b(K,te),N=K):(G=N,N=r)):(G=N,N=r),N}function uI(){var N,K,te,Ae,ze,gt,ur;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(te=Fm(),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r)if(ze=Du(),ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();gt!==r?(Dt=N,K=C(te,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;return N}function Fm(){var N;return t.substr(G,2)===R?(N=R,G+=2):(N=r,lt===0&&mt(L)),N===r&&(t.substr(G,2)===_?(N=_,G+=2):(N=r,lt===0&&mt(V))),N}function Aa(){var N,K,te;return N=G,K=fg(),K!==r?(te=Sc(),te===r&&(te=null),te!==r?(Dt=N,K=re(K,te),N=K):(G=N,N=r)):(G=N,N=r),N}function Sc(){var N,K,te,Ae,ze,gt,ur;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(te=Dl(),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r)if(ze=Aa(),ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();gt!==r?(Dt=N,K=oe(te,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;return N}function Dl(){var N;return t.substr(G,2)===pe?(N=pe,G+=2):(N=r,lt===0&&mt(he)),N===r&&(t.charCodeAt(G)===124?(N=ve,G++):(N=r,lt===0&&mt(ge))),N}function Su(){var N,K,te,Ae,ze,gt;if(N=G,K=dg(),K!==r)if(t.charCodeAt(G)===61?(te=le,G++):(te=r,lt===0&&mt(Pe)),te!==r)if(Ae=Uo(),Ae!==r){for(ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();ze!==r?(Dt=N,K=g(K,Ae),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;else G=N,N=r;if(N===r)if(N=G,K=dg(),K!==r)if(t.charCodeAt(G)===61?(te=le,G++):(te=r,lt===0&&mt(Pe)),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();Ae!==r?(Dt=N,K=De(K),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;return N}function fg(){var N,K,te,Ae,ze,gt,ur,gr,hn,ri,Ni;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(t.charCodeAt(G)===40?(te=Ce,G++):(te=r,lt===0&&mt(de)),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r)if(ze=vu(),ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();if(gt!==r)if(t.charCodeAt(G)===41?(ur=ne,G++):(ur=r,lt===0&&mt(Z)),ur!==r){for(gr=[],hn=kt();hn!==r;)gr.push(hn),hn=kt();if(gr!==r){for(hn=[],ri=Wa();ri!==r;)hn.push(ri),ri=Wa();if(hn!==r){for(ri=[],Ni=kt();Ni!==r;)ri.push(Ni),Ni=kt();ri!==r?(Dt=N,K=me(ze,hn),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;if(N===r){for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(t.charCodeAt(G)===123?(te=be,G++):(te=r,lt===0&&mt(ut)),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r)if(ze=vu(),ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();if(gt!==r)if(t.charCodeAt(G)===125?(ur=H,G++):(ur=r,lt===0&&mt(yt)),ur!==r){for(gr=[],hn=kt();hn!==r;)gr.push(hn),hn=kt();if(gr!==r){for(hn=[],ri=Wa();ri!==r;)hn.push(ri),ri=Wa();if(hn!==r){for(ri=[],Ni=kt();Ni!==r;)ri.push(Ni),Ni=kt();ri!==r?(Dt=N,K=Me(ze,hn),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;if(N===r){for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r){for(te=[],Ae=Su();Ae!==r;)te.push(Ae),Ae=Su();if(te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r){if(ze=[],gt=pp(),gt!==r)for(;gt!==r;)ze.push(gt),gt=pp();else ze=r;if(ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();gt!==r?(Dt=N,K=Te(te,ze),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r}else G=N,N=r;if(N===r){for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r){if(te=[],Ae=Su(),Ae!==r)for(;Ae!==r;)te.push(Ae),Ae=Su();else te=r;if(te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();Ae!==r?(Dt=N,K=Qe(te),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}}}return N}function NA(){var N,K,te,Ae,ze;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r){if(te=[],Ae=hp(),Ae!==r)for(;Ae!==r;)te.push(Ae),Ae=hp();else te=r;if(te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();Ae!==r?(Dt=N,K=_e(te),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r;return N}function pp(){var N,K,te;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r?(te=Wa(),te!==r?(Dt=N,K=qe(te),N=K):(G=N,N=r)):(G=N,N=r),N===r){for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();K!==r?(te=hp(),te!==r?(Dt=N,K=qe(te),N=K):(G=N,N=r)):(G=N,N=r)}return N}function Wa(){var N,K,te,Ae,ze;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();return K!==r?(At.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Oe)),te===r&&(te=null),te!==r?(Ae=pg(),Ae!==r?(ze=hp(),ze!==r?(Dt=N,K=x(te,Ae,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function pg(){var N;return t.substr(G,2)===I?(N=I,G+=2):(N=r,lt===0&&mt(P)),N===r&&(t.substr(G,2)===y?(N=y,G+=2):(N=r,lt===0&&mt(F)),N===r&&(t.charCodeAt(G)===62?(N=J,G++):(N=r,lt===0&&mt(X)),N===r&&(t.substr(G,3)===$?(N=$,G+=3):(N=r,lt===0&&mt(ie)),N===r&&(t.substr(G,2)===ke?(N=ke,G+=2):(N=r,lt===0&&mt(Ne)),N===r&&(t.charCodeAt(G)===60?(N=st,G++):(N=r,lt===0&&mt(ht))))))),N}function hp(){var N,K,te;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();return K!==r?(te=Uo(),te!==r?(Dt=N,K=qe(te),N=K):(G=N,N=r)):(G=N,N=r),N}function Uo(){var N,K,te;if(N=G,K=[],te=Cs(),te!==r)for(;te!==r;)K.push(te),te=Cs();else K=r;return K!==r&&(Dt=N,K=Ut(K)),N=K,N}function Cs(){var N,K;return N=G,K=Ci(),K!==r&&(Dt=N,K=Xt(K)),N=K,N===r&&(N=G,K=Rm(),K!==r&&(Dt=N,K=Xt(K)),N=K,N===r&&(N=G,K=Tm(),K!==r&&(Dt=N,K=Xt(K)),N=K,N===r&&(N=G,K=_o(),K!==r&&(Dt=N,K=Xt(K)),N=K))),N}function Ci(){var N,K,te,Ae;return N=G,t.substr(G,2)===Pt?(K=Pt,G+=2):(K=r,lt===0&&mt(tn)),K!==r?(te=rn(),te!==r?(t.charCodeAt(G)===39?(Ae=Dr,G++):(Ae=r,lt===0&&mt(fr)),Ae!==r?(Dt=N,K=Br(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Rm(){var N,K,te,Ae;return N=G,t.charCodeAt(G)===39?(K=Dr,G++):(K=r,lt===0&&mt(fr)),K!==r?(te=dp(),te!==r?(t.charCodeAt(G)===39?(Ae=Dr,G++):(Ae=r,lt===0&&mt(fr)),Ae!==r?(Dt=N,K=Br(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Tm(){var N,K,te,Ae;if(N=G,t.substr(G,2)===jr?(K=jr,G+=2):(K=r,lt===0&&mt(Hn)),K!==r&&(Dt=N,K=bs()),N=K,N===r)if(N=G,t.charCodeAt(G)===34?(K=ki,G++):(K=r,lt===0&&mt(gs)),K!==r){for(te=[],Ae=LA();Ae!==r;)te.push(Ae),Ae=LA();te!==r?(t.charCodeAt(G)===34?(Ae=ki,G++):(Ae=r,lt===0&&mt(gs)),Ae!==r?(Dt=N,K=to(te),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;return N}function _o(){var N,K,te;if(N=G,K=[],te=gp(),te!==r)for(;te!==r;)K.push(te),te=gp();else K=r;return K!==r&&(Dt=N,K=to(K)),N=K,N}function LA(){var N,K;return N=G,K=Hr(),K!==r&&(Dt=N,K=Di(K)),N=K,N===r&&(N=G,K=mp(),K!==r&&(Dt=N,K=Qs(K)),N=K,N===r&&(N=G,K=xc(),K!==r&&(Dt=N,K=ro(K)),N=K,N===r&&(N=G,K=hg(),K!==r&&(Dt=N,K=pc(K)),N=K))),N}function gp(){var N,K;return N=G,K=Hr(),K!==r&&(Dt=N,K=gu(K)),N=K,N===r&&(N=G,K=mp(),K!==r&&(Dt=N,K=ap(K)),N=K,N===r&&(N=G,K=xc(),K!==r&&(Dt=N,K=lp(K)),N=K,N===r&&(N=G,K=AI(),K!==r&&(Dt=N,K=ks(K)),N=K,N===r&&(N=G,K=pa(),K!==r&&(Dt=N,K=pc(K)),N=K)))),N}function dp(){var N,K,te;for(N=G,K=[],En.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(no));te!==r;)K.push(te),En.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(no));return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function hg(){var N,K,te;if(N=G,K=[],te=fa(),te===r&&(Cl.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(El))),te!==r)for(;te!==r;)K.push(te),te=fa(),te===r&&(Cl.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(El)));else K=r;return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function fa(){var N,K,te;return N=G,t.substr(G,2)===io?(K=io,G+=2):(K=r,lt===0&&mt(Ue)),K!==r&&(Dt=N,K=Fn()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Fi,G++):(K=r,lt===0&&mt(Rn)),K!==r?(Ui.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Zt)),te!==r?(Dt=N,K=Ri(te),N=K):(G=N,N=r)):(G=N,N=r)),N}function rn(){var N,K,te;for(N=G,K=[],te=co(),te===r&&(En.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(no)));te!==r;)K.push(te),te=co(),te===r&&(En.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(no)));return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function co(){var N,K,te;return N=G,t.substr(G,2)===$n?(K=$n,G+=2):(K=r,lt===0&&mt(Ma)),K!==r&&(Dt=N,K=$t()),N=K,N===r&&(N=G,t.substr(G,2)===hc?(K=hc,G+=2):(K=r,lt===0&&mt(du)),K!==r&&(Dt=N,K=gc()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Fi,G++):(K=r,lt===0&&mt(Rn)),K!==r?(Il.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(PA)),te!==r?(Dt=N,K=mu(),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===Ee?(K=Ee,G+=2):(K=r,lt===0&&mt(Rt)),K!==r&&(Dt=N,K=dc()),N=K,N===r&&(N=G,t.substr(G,2)===_i?(K=_i,G+=2):(K=r,lt===0&&mt(yu)),K!==r&&(Dt=N,K=qt()),N=K,N===r&&(N=G,t.substr(G,2)===wl?(K=wl,G+=2):(K=r,lt===0&&mt(xA)),K!==r&&(Dt=N,K=cp()),N=K,N===r&&(N=G,t.substr(G,2)===mc?(K=mc,G+=2):(K=r,lt===0&&mt(bA)),K!==r&&(Dt=N,K=Dn()),N=K,N===r&&(N=G,t.substr(G,2)===ui?(K=ui,G+=2):(K=r,lt===0&&mt(yc)),K!==r&&(Dt=N,K=QA()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Fi,G++):(K=r,lt===0&&mt(Rn)),K!==r?(ra.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Hi)),te!==r?(Dt=N,K=Ri(te),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=OA()))))))))),N}function OA(){var N,K,te,Ae,ze,gt,ur,gr,hn,ri,Ni,yg;return N=G,t.charCodeAt(G)===92?(K=Fi,G++):(K=r,lt===0&&mt(Rn)),K!==r?(te=Ya(),te!==r?(Dt=N,K=Oo(te),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===$e?(K=$e,G+=2):(K=r,lt===0&&mt(so)),K!==r?(te=G,Ae=G,ze=Ya(),ze!==r?(gt=ti(),gt!==r?(ze=[ze,gt],Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r),Ae===r&&(Ae=Ya()),Ae!==r?te=t.substring(te,G):te=Ae,te!==r?(Dt=N,K=Oo(te),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===Bl?(K=Bl,G+=2):(K=r,lt===0&&mt(Cu)),K!==r?(te=G,Ae=G,ze=ti(),ze!==r?(gt=ti(),gt!==r?(ur=ti(),ur!==r?(gr=ti(),gr!==r?(ze=[ze,gt,ur,gr],Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r),Ae!==r?te=t.substring(te,G):te=Ae,te!==r?(Dt=N,K=Oo(te),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===qi?(K=qi,G+=2):(K=r,lt===0&&mt(Eu)),K!==r?(te=G,Ae=G,ze=ti(),ze!==r?(gt=ti(),gt!==r?(ur=ti(),ur!==r?(gr=ti(),gr!==r?(hn=ti(),hn!==r?(ri=ti(),ri!==r?(Ni=ti(),Ni!==r?(yg=ti(),yg!==r?(ze=[ze,gt,ur,gr,hn,ri,Ni,yg],Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r),Ae!==r?te=t.substring(te,G):te=Ae,te!==r?(Dt=N,K=kA(te),N=K):(G=N,N=r)):(G=N,N=r)))),N}function Ya(){var N;return Ua.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,lt===0&&mt(Cc)),N}function ti(){var N;return ds.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,lt===0&&mt(Ot)),N}function pa(){var N,K,te,Ae,ze;if(N=G,K=[],te=G,t.charCodeAt(G)===92?(Ae=Fi,G++):(Ae=r,lt===0&&mt(Rn)),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r),te===r&&(te=G,t.substr(G,2)===di?(Ae=di,G+=2):(Ae=r,lt===0&&mt(na)),Ae!==r&&(Dt=te,Ae=oo()),te=Ae,te===r&&(te=G,Ae=G,lt++,ze=Nm(),lt--,ze===r?Ae=void 0:(G=Ae,Ae=r),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r))),te!==r)for(;te!==r;)K.push(te),te=G,t.charCodeAt(G)===92?(Ae=Fi,G++):(Ae=r,lt===0&&mt(Rn)),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r),te===r&&(te=G,t.substr(G,2)===di?(Ae=di,G+=2):(Ae=r,lt===0&&mt(na)),Ae!==r&&(Dt=te,Ae=oo()),te=Ae,te===r&&(te=G,Ae=G,lt++,ze=Nm(),lt--,ze===r?Ae=void 0:(G=Ae,Ae=r),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r)));else K=r;return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function Pc(){var N,K,te,Ae,ze,gt;if(N=G,t.charCodeAt(G)===45?(K=Rs,G++):(K=r,lt===0&&mt(ia)),K===r&&(t.charCodeAt(G)===43?(K=sa,G++):(K=r,lt===0&&mt(Mo))),K===r&&(K=null),K!==r){if(te=[],At.test(t.charAt(G))?(Ae=t.charAt(G),G++):(Ae=r,lt===0&&mt(Oe)),Ae!==r)for(;Ae!==r;)te.push(Ae),At.test(t.charAt(G))?(Ae=t.charAt(G),G++):(Ae=r,lt===0&&mt(Oe));else te=r;if(te!==r)if(t.charCodeAt(G)===46?(Ae=Zi,G++):(Ae=r,lt===0&&mt(Ts)),Ae!==r){if(ze=[],At.test(t.charAt(G))?(gt=t.charAt(G),G++):(gt=r,lt===0&&mt(Oe)),gt!==r)for(;gt!==r;)ze.push(gt),At.test(t.charAt(G))?(gt=t.charAt(G),G++):(gt=r,lt===0&&mt(Oe));else ze=r;ze!==r?(Dt=N,K=Ns(K,te,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;if(N===r){if(N=G,t.charCodeAt(G)===45?(K=Rs,G++):(K=r,lt===0&&mt(ia)),K===r&&(t.charCodeAt(G)===43?(K=sa,G++):(K=r,lt===0&&mt(Mo))),K===r&&(K=null),K!==r){if(te=[],At.test(t.charAt(G))?(Ae=t.charAt(G),G++):(Ae=r,lt===0&&mt(Oe)),Ae!==r)for(;Ae!==r;)te.push(Ae),At.test(t.charAt(G))?(Ae=t.charAt(G),G++):(Ae=r,lt===0&&mt(Oe));else te=r;te!==r?(Dt=N,K=Ls(K,te),N=K):(G=N,N=r)}else G=N,N=r;if(N===r&&(N=G,K=xc(),K!==r&&(Dt=N,K=ao(K)),N=K,N===r&&(N=G,K=Ka(),K!==r&&(Dt=N,K=Yn(K)),N=K,N===r)))if(N=G,t.charCodeAt(G)===40?(K=Ce,G++):(K=r,lt===0&&mt(de)),K!==r){for(te=[],Ae=kt();Ae!==r;)te.push(Ae),Ae=kt();if(te!==r)if(Ae=ts(),Ae!==r){for(ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();ze!==r?(t.charCodeAt(G)===41?(gt=ne,G++):(gt=r,lt===0&&mt(Z)),gt!==r?(Dt=N,K=qn(Ae),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r}return N}function Sl(){var N,K,te,Ae,ze,gt,ur,gr;if(N=G,K=Pc(),K!==r){for(te=[],Ae=G,ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();if(ze!==r)if(t.charCodeAt(G)===42?(gt=$i,G++):(gt=r,lt===0&&mt(es)),gt===r&&(t.charCodeAt(G)===47?(gt=mi,G++):(gt=r,lt===0&&mt(Ha))),gt!==r){for(ur=[],gr=kt();gr!==r;)ur.push(gr),gr=kt();ur!==r?(gr=Pc(),gr!==r?(Dt=Ae,ze=oa(K,gt,gr),Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)}else G=Ae,Ae=r;else G=Ae,Ae=r;for(;Ae!==r;){for(te.push(Ae),Ae=G,ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();if(ze!==r)if(t.charCodeAt(G)===42?(gt=$i,G++):(gt=r,lt===0&&mt(es)),gt===r&&(t.charCodeAt(G)===47?(gt=mi,G++):(gt=r,lt===0&&mt(Ha))),gt!==r){for(ur=[],gr=kt();gr!==r;)ur.push(gr),gr=kt();ur!==r?(gr=Pc(),gr!==r?(Dt=Ae,ze=oa(K,gt,gr),Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)}else G=Ae,Ae=r;else G=Ae,Ae=r}te!==r?(Dt=N,K=ee(K,te),N=K):(G=N,N=r)}else G=N,N=r;return N}function ts(){var N,K,te,Ae,ze,gt,ur,gr;if(N=G,K=Sl(),K!==r){for(te=[],Ae=G,ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();if(ze!==r)if(t.charCodeAt(G)===43?(gt=sa,G++):(gt=r,lt===0&&mt(Mo)),gt===r&&(t.charCodeAt(G)===45?(gt=Rs,G++):(gt=r,lt===0&&mt(ia))),gt!==r){for(ur=[],gr=kt();gr!==r;)ur.push(gr),gr=kt();ur!==r?(gr=Sl(),gr!==r?(Dt=Ae,ze=we(K,gt,gr),Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)}else G=Ae,Ae=r;else G=Ae,Ae=r;for(;Ae!==r;){for(te.push(Ae),Ae=G,ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();if(ze!==r)if(t.charCodeAt(G)===43?(gt=sa,G++):(gt=r,lt===0&&mt(Mo)),gt===r&&(t.charCodeAt(G)===45?(gt=Rs,G++):(gt=r,lt===0&&mt(ia))),gt!==r){for(ur=[],gr=kt();gr!==r;)ur.push(gr),gr=kt();ur!==r?(gr=Sl(),gr!==r?(Dt=Ae,ze=we(K,gt,gr),Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)}else G=Ae,Ae=r;else G=Ae,Ae=r}te!==r?(Dt=N,K=ee(K,te),N=K):(G=N,N=r)}else G=N,N=r;return N}function Hr(){var N,K,te,Ae,ze,gt;if(N=G,t.substr(G,3)===je?(K=je,G+=3):(K=r,lt===0&&mt(Be)),K!==r){for(te=[],Ae=kt();Ae!==r;)te.push(Ae),Ae=kt();if(te!==r)if(Ae=ts(),Ae!==r){for(ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();ze!==r?(t.substr(G,2)===xe?(gt=xe,G+=2):(gt=r,lt===0&&mt(Ve)),gt!==r?(Dt=N,K=vt(Ae),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;return N}function mp(){var N,K,te,Ae;return N=G,t.substr(G,2)===tr?(K=tr,G+=2):(K=r,lt===0&&mt(Zr)),K!==r?(te=vu(),te!==r?(t.charCodeAt(G)===41?(Ae=ne,G++):(Ae=r,lt===0&&mt(Z)),Ae!==r?(Dt=N,K=Tn(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function xc(){var N,K,te,Ae,ze,gt;return N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Ka(),te!==r?(t.substr(G,2)===Ti?(Ae=Ti,G+=2):(Ae=r,lt===0&&mt(Kn)),Ae!==r?(ze=NA(),ze!==r?(t.charCodeAt(G)===125?(gt=H,G++):(gt=r,lt===0&&mt(yt)),gt!==r?(Dt=N,K=qa(te,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Ka(),te!==r?(t.substr(G,3)===aa?(Ae=aa,G+=3):(Ae=r,lt===0&&mt(yi)),Ae!==r?(Dt=N,K=la(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Ka(),te!==r?(t.substr(G,2)===ja?(Ae=ja,G+=2):(Ae=r,lt===0&&mt(lo)),Ae!==r?(ze=NA(),ze!==r?(t.charCodeAt(G)===125?(gt=H,G++):(gt=r,lt===0&&mt(yt)),gt!==r?(Dt=N,K=FA(te,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Ka(),te!==r?(t.substr(G,3)===Ec?(Ae=Ec,G+=3):(Ae=r,lt===0&&mt(ca)),Ae!==r?(Dt=N,K=rg(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Ka(),te!==r?(t.charCodeAt(G)===125?(Ae=H,G++):(Ae=r,lt===0&&mt(yt)),Ae!==r?(Dt=N,K=Ic(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.charCodeAt(G)===36?(K=bm,G++):(K=r,lt===0&&mt(ng)),K!==r?(te=Ka(),te!==r?(Dt=N,K=Ic(te),N=K):(G=N,N=r)):(G=N,N=r)))))),N}function AI(){var N,K,te;return N=G,K=gg(),K!==r?(Dt=G,te=Vn(K),te?te=void 0:te=r,te!==r?(Dt=N,K=up(K),N=K):(G=N,N=r)):(G=N,N=r),N}function gg(){var N,K,te,Ae,ze;if(N=G,K=[],te=G,Ae=G,lt++,ze=mg(),lt--,ze===r?Ae=void 0:(G=Ae,Ae=r),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r),te!==r)for(;te!==r;)K.push(te),te=G,Ae=G,lt++,ze=mg(),lt--,ze===r?Ae=void 0:(G=Ae,Ae=r),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r);else K=r;return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function dg(){var N,K,te;if(N=G,K=[],ig.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(RA)),te!==r)for(;te!==r;)K.push(te),ig.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(RA));else K=r;return K!==r&&(Dt=N,K=Os()),N=K,N}function Ka(){var N,K,te;if(N=G,K=[],Iu.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Ga)),te!==r)for(;te!==r;)K.push(te),Iu.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Ga));else K=r;return K!==r&&(Dt=N,K=Os()),N=K,N}function Nm(){var N;return ji.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,lt===0&&mt(ua)),N}function mg(){var N;return wu.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,lt===0&&mt(ms)),N}function kt(){var N,K;if(N=[],wc.test(t.charAt(G))?(K=t.charAt(G),G++):(K=r,lt===0&&mt(Bc)),K!==r)for(;K!==r;)N.push(K),wc.test(t.charAt(G))?(K=t.charAt(G),G++):(K=r,lt===0&&mt(Bc));else N=r;return N}if(Bu=a(),Bu!==r&&G===t.length)return Bu;throw Bu!==r&&G<t.length&&mt(ag()),cg(vc,Si<t.length?t.charAt(Si):null,Si<t.length?Dc(Si,Si+1):Dc(Si,Si))}iY.exports={SyntaxError:_g,parse:F8e}});function DD(t,e={isGlobPattern:()=>!1}){try{return(0,oY.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function fy(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:o},a)=>`${SD(r)}${o===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function SD(t){return`${py(t.chain)}${t.then?` ${aT(t.then)}`:""}`}function aT(t){return`${t.type} ${SD(t.line)}`}function py(t){return`${cT(t)}${t.then?` ${lT(t.then)}`:""}`}function lT(t){return`${t.type} ${py(t.chain)}`}function cT(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>vD(e)).join(" ")} `:""}${t.args.map(e=>uT(e)).join(" ")}`;case"subshell":return`(${fy(t.subshell)})${t.args.length>0?` ${t.args.map(e=>HI(e)).join(" ")}`:""}`;case"group":return`{ ${fy(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>HI(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>vD(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function vD(t){return`${t.name}=${t.args[0]?Hg(t.args[0]):""}`}function uT(t){switch(t.type){case"redirection":return HI(t);case"argument":return Hg(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function HI(t){return`${t.subtype} ${t.args.map(e=>Hg(e)).join(" ")}`}function Hg(t){return t.segments.map(e=>AT(e)).join("")}function AT(t){let e=(o,a)=>a?`"${o}"`:o,r=o=>o===""?'""':o.match(/[(){}<>$|&; \t"']/)?`$'${o.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:o;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`\${${fy(t.shell)}}`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(o=>Hg(o)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(o=>Hg(o)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${PD(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function PD(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,o=a=>r(PD(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${o(t.left)} ${e(t.type)} ${o(t.right)}`}}var oY,aY=dt(()=>{oY=tt(sY())});var cY=U((Bxt,lY)=>{"use strict";function R8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function qg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,qg)}R8e(qg,Error);qg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w<h.parts.length;w++)E+=h.parts[w]instanceof Array?n(h.parts[w][0])+"-"+n(h.parts[w][1]):n(h.parts[w]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),w,v;for(w=0;w<h.length;w++)E[w]=u(h[w]);if(E.sort(),E.length>0){for(w=1,v=1;w<E.length;w++)E[w-1]!==E[w]&&(E[v]=E[w],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function T8e(t,e){e=e!==void 0?e:{};var r={},o={resolution:Te},a=Te,n="/",u=Ce("/",!1),A=function(Oe,x){return{from:Oe,descriptor:x}},p=function(Oe){return{descriptor:Oe}},h="@",E=Ce("@",!1),w=function(Oe,x){return{fullName:Oe,description:x}},v=function(Oe){return{fullName:Oe}},b=function(){return le()},C=/^[^\/@]/,R=de(["/","@"],!0,!1),L=/^[^\/]/,_=de(["/"],!0,!1),V=0,re=0,oe=[{line:1,column:1}],pe=0,he=[],ve=0,ge;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function le(){return t.substring(re,V)}function Pe(){return ut(re,V)}function g(Oe,x){throw x=x!==void 0?x:ut(re,V),Me([me(Oe)],t.substring(re,V),x)}function De(Oe,x){throw x=x!==void 0?x:ut(re,V),yt(Oe,x)}function Ce(Oe,x){return{type:"literal",text:Oe,ignoreCase:x}}function de(Oe,x,I){return{type:"class",parts:Oe,inverted:x,ignoreCase:I}}function ne(){return{type:"any"}}function Z(){return{type:"end"}}function me(Oe){return{type:"other",description:Oe}}function be(Oe){var x=oe[Oe],I;if(x)return x;for(I=Oe-1;!oe[I];)I--;for(x=oe[I],x={line:x.line,column:x.column};I<Oe;)t.charCodeAt(I)===10?(x.line++,x.column=1):x.column++,I++;return oe[Oe]=x,x}function ut(Oe,x){var I=be(Oe),P=be(x);return{start:{offset:Oe,line:I.line,column:I.column},end:{offset:x,line:P.line,column:P.column}}}function H(Oe){V<pe||(V>pe&&(pe=V,he=[]),he.push(Oe))}function yt(Oe,x){return new qg(Oe,null,null,x)}function Me(Oe,x,I){return new qg(qg.buildMessage(Oe,x),Oe,x,I)}function Te(){var Oe,x,I,P;return Oe=V,x=Qe(),x!==r?(t.charCodeAt(V)===47?(I=n,V++):(I=r,ve===0&&H(u)),I!==r?(P=Qe(),P!==r?(re=Oe,x=A(x,P),Oe=x):(V=Oe,Oe=r)):(V=Oe,Oe=r)):(V=Oe,Oe=r),Oe===r&&(Oe=V,x=Qe(),x!==r&&(re=Oe,x=p(x)),Oe=x),Oe}function Qe(){var Oe,x,I,P;return Oe=V,x=_e(),x!==r?(t.charCodeAt(V)===64?(I=h,V++):(I=r,ve===0&&H(E)),I!==r?(P=At(),P!==r?(re=Oe,x=w(x,P),Oe=x):(V=Oe,Oe=r)):(V=Oe,Oe=r)):(V=Oe,Oe=r),Oe===r&&(Oe=V,x=_e(),x!==r&&(re=Oe,x=v(x)),Oe=x),Oe}function _e(){var Oe,x,I,P,y;return Oe=V,t.charCodeAt(V)===64?(x=h,V++):(x=r,ve===0&&H(E)),x!==r?(I=qe(),I!==r?(t.charCodeAt(V)===47?(P=n,V++):(P=r,ve===0&&H(u)),P!==r?(y=qe(),y!==r?(re=Oe,x=b(),Oe=x):(V=Oe,Oe=r)):(V=Oe,Oe=r)):(V=Oe,Oe=r)):(V=Oe,Oe=r),Oe===r&&(Oe=V,x=qe(),x!==r&&(re=Oe,x=b()),Oe=x),Oe}function qe(){var Oe,x,I;if(Oe=V,x=[],C.test(t.charAt(V))?(I=t.charAt(V),V++):(I=r,ve===0&&H(R)),I!==r)for(;I!==r;)x.push(I),C.test(t.charAt(V))?(I=t.charAt(V),V++):(I=r,ve===0&&H(R));else x=r;return x!==r&&(re=Oe,x=b()),Oe=x,Oe}function At(){var Oe,x,I;if(Oe=V,x=[],L.test(t.charAt(V))?(I=t.charAt(V),V++):(I=r,ve===0&&H(_)),I!==r)for(;I!==r;)x.push(I),L.test(t.charAt(V))?(I=t.charAt(V),V++):(I=r,ve===0&&H(_));else x=r;return x!==r&&(re=Oe,x=b()),Oe=x,Oe}if(ge=a(),ge!==r&&V===t.length)return ge;throw ge!==r&&V<t.length&&H(Z()),Me(he,pe<t.length?t.charAt(pe):null,pe<t.length?ut(pe,pe+1):ut(pe,pe))}lY.exports={SyntaxError:qg,parse:T8e}});function xD(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,uY.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function bD(t){let e="";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+="/"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var uY,AY=dt(()=>{uY=tt(cY())});var Gg=U((Dxt,jg)=>{"use strict";function fY(t){return typeof t>"u"||t===null}function N8e(t){return typeof t=="object"&&t!==null}function L8e(t){return Array.isArray(t)?t:fY(t)?[]:[t]}function O8e(t,e){var r,o,a,n;if(e)for(n=Object.keys(e),r=0,o=n.length;r<o;r+=1)a=n[r],t[a]=e[a];return t}function M8e(t,e){var r="",o;for(o=0;o<e;o+=1)r+=t;return r}function U8e(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}jg.exports.isNothing=fY;jg.exports.isObject=N8e;jg.exports.toArray=L8e;jg.exports.repeat=M8e;jg.exports.isNegativeZero=U8e;jg.exports.extend=O8e});var hy=U((Sxt,pY)=>{"use strict";function qI(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}qI.prototype=Object.create(Error.prototype);qI.prototype.constructor=qI;qI.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};pY.exports=qI});var dY=U((Pxt,gY)=>{"use strict";var hY=Gg();function fT(t,e,r,o,a){this.name=t,this.buffer=e,this.position=r,this.line=o,this.column=a}fT.prototype.getSnippet=function(e,r){var o,a,n,u,A;if(!this.buffer)return null;for(e=e||4,r=r||75,o="",a=this.position;a>0&&`\0\r 12`},Bl="\\r",bA=yr("\\r",!1),Ap=function(){return"\r"},yc="\\t",QA=yr("\\t",!1),Dn=function(){return" "},ui="\\v",Ec=yr("\\v",!1),kA=function(){return"\v"},na=/^[\\'"?]/,Hi=ys(["\\","'",'"',"?"],!1,!1),Mo=function(N){return String.fromCharCode(parseInt(N,16))},$e="\\x",so=yr("\\x",!1),vl="\\u",Eu=yr("\\u",!1),qi="\\U",Cu=yr("\\U",!1),FA=function(N){return String.fromCodePoint(parseInt(N,16))},Ha=/^[0-7]/,Cc=ys([["0","7"]],!1,!1),ds=/^[0-9a-fA-f]/,Ot=ys([["0","9"],["a","f"],["A","f"]],!1,!1),Sn=ag(),di="{}",ia=yr("{}",!1),oo=function(){return"{}"},Rs="-",sa=yr("-",!1),oa="+",Uo=yr("+",!1),Zi=".",Ts=yr(".",!1),Ns=function(N,K,te){return{type:"number",value:(N==="-"?-1:1)*parseFloat(K.join("")+"."+te.join(""))}},Ls=function(N,K){return{type:"number",value:(N==="-"?-1:1)*parseInt(K.join(""))}},ao=function(N){return{type:"variable",...N}},Yn=function(N){return{type:"variable",name:N}},qn=function(N){return N},$i="*",es=yr("*",!1),mi="/",qa=yr("/",!1),aa=function(N,K,te){return{type:K==="*"?"multiplication":"division",right:te}},ee=function(N,K){return K.reduce((te,Ae)=>({left:te,...Ae}),N)},we=function(N,K,te){return{type:K==="+"?"addition":"subtraction",right:te}},je="$((",Be=yr("$((",!1),xe="))",Ve=yr("))",!1),vt=function(N){return N},tr="$(",Zr=yr("$(",!1),Tn=function(N){return N},_r="${",ei=yr("${",!1),Ti=":-",Kn=yr(":-",!1),ja=function(N,K){return{name:N,defaultValue:K}},la=":-}",yi=yr(":-}",!1),ca=function(N){return{name:N,defaultValue:[]}},Ga=":+",lo=yr(":+",!1),RA=function(N,K){return{name:N,alternativeValue:K}},Ic=":+}",ua=yr(":+}",!1),ng=function(N){return{name:N,alternativeValue:[]}},wc=function(N){return{name:N}},bm="$",ig=yr("$",!1),Vn=function(N){return e.isGlobPattern(N)},fp=function(N){return N},sg=/^[a-zA-Z0-9_]/,TA=ys([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Os=function(){return og()},Iu=/^[$@*?#a-zA-Z0-9_\-]/,Wa=ys(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),ji=/^[()}<>$|&; \t"']/,Aa=ys(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),wu=/^[<>&; \t"']/,ms=ys(["<",">","&",";"," "," ",'"',"'"],!1,!1),Bc=/^[ \t]/,vc=ys([" "," "],!1,!1),G=0,Dt=0,Dl=[{line:1,column:1}],Si=0,Dc=[],lt=0,Bu;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function og(){return t.substring(Dt,G)}function cI(){return Sc(Dt,G)}function NA(N,K){throw K=K!==void 0?K:Sc(Dt,G),ug([cg(N)],t.substring(Dt,G),K)}function pp(N,K){throw K=K!==void 0?K:Sc(Dt,G),Qm(N,K)}function yr(N,K){return{type:"literal",text:N,ignoreCase:K}}function ys(N,K,te){return{type:"class",parts:N,inverted:K,ignoreCase:te}}function ag(){return{type:"any"}}function lg(){return{type:"end"}}function cg(N){return{type:"other",description:N}}function hp(N){var K=Dl[N],te;if(K)return K;for(te=N-1;!Dl[te];)te--;for(K=Dl[te],K={line:K.line,column:K.column};te<N;)t.charCodeAt(te)===10?(K.line++,K.column=1):K.column++,te++;return Dl[N]=K,K}function Sc(N,K){var te=hp(N),Ae=hp(K);return{start:{offset:N,line:te.line,column:te.column},end:{offset:K,line:Ae.line,column:Ae.column}}}function mt(N){G<Si||(G>Si&&(Si=G,Dc=[]),Dc.push(N))}function Qm(N,K){return new Hg(N,null,null,K)}function ug(N,K,te){return new Hg(Hg.buildMessage(N,K),N,K,te)}function Ag(){var N,K,te;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();return K!==r?(te=vu(),te===r&&(te=null),te!==r?(Dt=N,K=n(te),N=K):(G=N,N=r)):(G=N,N=r),N}function vu(){var N,K,te,Ae,ze;if(N=G,K=Du(),K!==r){for(te=[],Ae=kt();Ae!==r;)te.push(Ae),Ae=kt();te!==r?(Ae=fg(),Ae!==r?(ze=km(),ze===r&&(ze=null),ze!==r?(Dt=N,K=u(K,Ae,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;if(N===r)if(N=G,K=Du(),K!==r){for(te=[],Ae=kt();Ae!==r;)te.push(Ae),Ae=kt();te!==r?(Ae=fg(),Ae===r&&(Ae=null),Ae!==r?(Dt=N,K=A(K,Ae),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;return N}function km(){var N,K,te,Ae,ze;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(te=vu(),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();Ae!==r?(Dt=N,K=p(te),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;return N}function fg(){var N;return t.charCodeAt(G)===59?(N=h,G++):(N=r,lt===0&&mt(C)),N===r&&(t.charCodeAt(G)===38?(N=w,G++):(N=r,lt===0&&mt(v))),N}function Du(){var N,K,te;return N=G,K=fa(),K!==r?(te=uI(),te===r&&(te=null),te!==r?(Dt=N,K=b(K,te),N=K):(G=N,N=r)):(G=N,N=r),N}function uI(){var N,K,te,Ae,ze,gt,ur;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(te=Fm(),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r)if(ze=Du(),ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();gt!==r?(Dt=N,K=E(te,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;return N}function Fm(){var N;return t.substr(G,2)===R?(N=R,G+=2):(N=r,lt===0&&mt(L)),N===r&&(t.substr(G,2)===_?(N=_,G+=2):(N=r,lt===0&&mt(V))),N}function fa(){var N,K,te;return N=G,K=pg(),K!==r?(te=Pc(),te===r&&(te=null),te!==r?(Dt=N,K=re(K,te),N=K):(G=N,N=r)):(G=N,N=r),N}function Pc(){var N,K,te,Ae,ze,gt,ur;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(te=Sl(),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r)if(ze=fa(),ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();gt!==r?(Dt=N,K=ae(te,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;return N}function Sl(){var N;return t.substr(G,2)===he?(N=he,G+=2):(N=r,lt===0&&mt(pe)),N===r&&(t.charCodeAt(G)===124?(N=De,G++):(N=r,lt===0&&mt(ge))),N}function Su(){var N,K,te,Ae,ze,gt;if(N=G,K=mg(),K!==r)if(t.charCodeAt(G)===61?(te=le,G++):(te=r,lt===0&&mt(Pe)),te!==r)if(Ae=_o(),Ae!==r){for(ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();ze!==r?(Dt=N,K=g(K,Ae),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;else G=N,N=r;if(N===r)if(N=G,K=mg(),K!==r)if(t.charCodeAt(G)===61?(te=le,G++):(te=r,lt===0&&mt(Pe)),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();Ae!==r?(Dt=N,K=ve(K),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;return N}function pg(){var N,K,te,Ae,ze,gt,ur,gr,hn,ri,Ni;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(t.charCodeAt(G)===40?(te=Ee,G++):(te=r,lt===0&&mt(de)),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r)if(ze=vu(),ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();if(gt!==r)if(t.charCodeAt(G)===41?(ur=ne,G++):(ur=r,lt===0&&mt(Z)),ur!==r){for(gr=[],hn=kt();hn!==r;)gr.push(hn),hn=kt();if(gr!==r){for(hn=[],ri=Ya();ri!==r;)hn.push(ri),ri=Ya();if(hn!==r){for(ri=[],Ni=kt();Ni!==r;)ri.push(Ni),Ni=kt();ri!==r?(Dt=N,K=me(ze,hn),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;if(N===r){for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r)if(t.charCodeAt(G)===123?(te=be,G++):(te=r,lt===0&&mt(ut)),te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r)if(ze=vu(),ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();if(gt!==r)if(t.charCodeAt(G)===125?(ur=H,G++):(ur=r,lt===0&&mt(yt)),ur!==r){for(gr=[],hn=kt();hn!==r;)gr.push(hn),hn=kt();if(gr!==r){for(hn=[],ri=Ya();ri!==r;)hn.push(ri),ri=Ya();if(hn!==r){for(ri=[],Ni=kt();Ni!==r;)ri.push(Ni),Ni=kt();ri!==r?(Dt=N,K=Me(ze,hn),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;if(N===r){for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r){for(te=[],Ae=Su();Ae!==r;)te.push(Ae),Ae=Su();if(te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();if(Ae!==r){if(ze=[],gt=gp(),gt!==r)for(;gt!==r;)ze.push(gt),gt=gp();else ze=r;if(ze!==r){for(gt=[],ur=kt();ur!==r;)gt.push(ur),ur=kt();gt!==r?(Dt=N,K=Te(te,ze),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r}else G=N,N=r;if(N===r){for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r){if(te=[],Ae=Su(),Ae!==r)for(;Ae!==r;)te.push(Ae),Ae=Su();else te=r;if(te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();Ae!==r?(Dt=N,K=Qe(te),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}}}return N}function LA(){var N,K,te,Ae,ze;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r){if(te=[],Ae=dp(),Ae!==r)for(;Ae!==r;)te.push(Ae),Ae=dp();else te=r;if(te!==r){for(Ae=[],ze=kt();ze!==r;)Ae.push(ze),ze=kt();Ae!==r?(Dt=N,K=_e(te),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r;return N}function gp(){var N,K,te;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();if(K!==r?(te=Ya(),te!==r?(Dt=N,K=qe(te),N=K):(G=N,N=r)):(G=N,N=r),N===r){for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();K!==r?(te=dp(),te!==r?(Dt=N,K=qe(te),N=K):(G=N,N=r)):(G=N,N=r)}return N}function Ya(){var N,K,te,Ae,ze;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();return K!==r?(At.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Oe)),te===r&&(te=null),te!==r?(Ae=hg(),Ae!==r?(ze=dp(),ze!==r?(Dt=N,K=x(te,Ae,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function hg(){var N;return t.substr(G,2)===I?(N=I,G+=2):(N=r,lt===0&&mt(P)),N===r&&(t.substr(G,2)===y?(N=y,G+=2):(N=r,lt===0&&mt(F)),N===r&&(t.charCodeAt(G)===62?(N=z,G++):(N=r,lt===0&&mt(X)),N===r&&(t.substr(G,3)===$?(N=$,G+=3):(N=r,lt===0&&mt(ie)),N===r&&(t.substr(G,2)===ke?(N=ke,G+=2):(N=r,lt===0&&mt(Ne)),N===r&&(t.charCodeAt(G)===60?(N=st,G++):(N=r,lt===0&&mt(ht))))))),N}function dp(){var N,K,te;for(N=G,K=[],te=kt();te!==r;)K.push(te),te=kt();return K!==r?(te=_o(),te!==r?(Dt=N,K=qe(te),N=K):(G=N,N=r)):(G=N,N=r),N}function _o(){var N,K,te;if(N=G,K=[],te=Es(),te!==r)for(;te!==r;)K.push(te),te=Es();else K=r;return K!==r&&(Dt=N,K=Ut(K)),N=K,N}function Es(){var N,K;return N=G,K=Ei(),K!==r&&(Dt=N,K=Xt(K)),N=K,N===r&&(N=G,K=Rm(),K!==r&&(Dt=N,K=Xt(K)),N=K,N===r&&(N=G,K=Tm(),K!==r&&(Dt=N,K=Xt(K)),N=K,N===r&&(N=G,K=Ho(),K!==r&&(Dt=N,K=Xt(K)),N=K))),N}function Ei(){var N,K,te,Ae;return N=G,t.substr(G,2)===xt?(K=xt,G+=2):(K=r,lt===0&&mt(tn)),K!==r?(te=rn(),te!==r?(t.charCodeAt(G)===39?(Ae=Dr,G++):(Ae=r,lt===0&&mt(fr)),Ae!==r?(Dt=N,K=Br(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Rm(){var N,K,te,Ae;return N=G,t.charCodeAt(G)===39?(K=Dr,G++):(K=r,lt===0&&mt(fr)),K!==r?(te=yp(),te!==r?(t.charCodeAt(G)===39?(Ae=Dr,G++):(Ae=r,lt===0&&mt(fr)),Ae!==r?(Dt=N,K=Br(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Tm(){var N,K,te,Ae;if(N=G,t.substr(G,2)===jr?(K=jr,G+=2):(K=r,lt===0&&mt(Hn)),K!==r&&(Dt=N,K=bs()),N=K,N===r)if(N=G,t.charCodeAt(G)===34?(K=ki,G++):(K=r,lt===0&&mt(gs)),K!==r){for(te=[],Ae=OA();Ae!==r;)te.push(Ae),Ae=OA();te!==r?(t.charCodeAt(G)===34?(Ae=ki,G++):(Ae=r,lt===0&&mt(gs)),Ae!==r?(Dt=N,K=to(te),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;return N}function Ho(){var N,K,te;if(N=G,K=[],te=mp(),te!==r)for(;te!==r;)K.push(te),te=mp();else K=r;return K!==r&&(Dt=N,K=to(K)),N=K,N}function OA(){var N,K;return N=G,K=Hr(),K!==r&&(Dt=N,K=Di(K)),N=K,N===r&&(N=G,K=Ep(),K!==r&&(Dt=N,K=Qs(K)),N=K,N===r&&(N=G,K=bc(),K!==r&&(Dt=N,K=ro(K)),N=K,N===r&&(N=G,K=gg(),K!==r&&(Dt=N,K=hc(K)),N=K))),N}function mp(){var N,K;return N=G,K=Hr(),K!==r&&(Dt=N,K=gu(K)),N=K,N===r&&(N=G,K=Ep(),K!==r&&(Dt=N,K=cp(K)),N=K,N===r&&(N=G,K=bc(),K!==r&&(Dt=N,K=up(K)),N=K,N===r&&(N=G,K=AI(),K!==r&&(Dt=N,K=ks(K)),N=K,N===r&&(N=G,K=ha(),K!==r&&(Dt=N,K=hc(K)),N=K)))),N}function yp(){var N,K,te;for(N=G,K=[],Cn.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(no));te!==r;)K.push(te),Cn.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(no));return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function gg(){var N,K,te;if(N=G,K=[],te=pa(),te===r&&(Cl.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Il))),te!==r)for(;te!==r;)K.push(te),te=pa(),te===r&&(Cl.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Il)));else K=r;return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function pa(){var N,K,te;return N=G,t.substr(G,2)===io?(K=io,G+=2):(K=r,lt===0&&mt(Ue)),K!==r&&(Dt=N,K=Fn()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Fi,G++):(K=r,lt===0&&mt(Rn)),K!==r?(Ui.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Zt)),te!==r?(Dt=N,K=Ri(te),N=K):(G=N,N=r)):(G=N,N=r)),N}function rn(){var N,K,te;for(N=G,K=[],te=co(),te===r&&(Cn.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(no)));te!==r;)K.push(te),te=co(),te===r&&(Cn.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(no)));return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function co(){var N,K,te;return N=G,t.substr(G,2)===$n?(K=$n,G+=2):(K=r,lt===0&&mt(Ua)),K!==r&&(Dt=N,K=$t()),N=K,N===r&&(N=G,t.substr(G,2)===gc?(K=gc,G+=2):(K=r,lt===0&&mt(du)),K!==r&&(Dt=N,K=dc()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Fi,G++):(K=r,lt===0&&mt(Rn)),K!==r?(wl.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(xA)),te!==r?(Dt=N,K=mu(),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===Ce?(K=Ce,G+=2):(K=r,lt===0&&mt(Rt)),K!==r&&(Dt=N,K=mc()),N=K,N===r&&(N=G,t.substr(G,2)===_i?(K=_i,G+=2):(K=r,lt===0&&mt(yu)),K!==r&&(Dt=N,K=qt()),N=K,N===r&&(N=G,t.substr(G,2)===Bl?(K=Bl,G+=2):(K=r,lt===0&&mt(bA)),K!==r&&(Dt=N,K=Ap()),N=K,N===r&&(N=G,t.substr(G,2)===yc?(K=yc,G+=2):(K=r,lt===0&&mt(QA)),K!==r&&(Dt=N,K=Dn()),N=K,N===r&&(N=G,t.substr(G,2)===ui?(K=ui,G+=2):(K=r,lt===0&&mt(Ec)),K!==r&&(Dt=N,K=kA()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Fi,G++):(K=r,lt===0&&mt(Rn)),K!==r?(na.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Hi)),te!==r?(Dt=N,K=Ri(te),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=MA()))))))))),N}function MA(){var N,K,te,Ae,ze,gt,ur,gr,hn,ri,Ni,Eg;return N=G,t.charCodeAt(G)===92?(K=Fi,G++):(K=r,lt===0&&mt(Rn)),K!==r?(te=Ka(),te!==r?(Dt=N,K=Mo(te),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===$e?(K=$e,G+=2):(K=r,lt===0&&mt(so)),K!==r?(te=G,Ae=G,ze=Ka(),ze!==r?(gt=ti(),gt!==r?(ze=[ze,gt],Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r),Ae===r&&(Ae=Ka()),Ae!==r?te=t.substring(te,G):te=Ae,te!==r?(Dt=N,K=Mo(te),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===vl?(K=vl,G+=2):(K=r,lt===0&&mt(Eu)),K!==r?(te=G,Ae=G,ze=ti(),ze!==r?(gt=ti(),gt!==r?(ur=ti(),ur!==r?(gr=ti(),gr!==r?(ze=[ze,gt,ur,gr],Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r),Ae!==r?te=t.substring(te,G):te=Ae,te!==r?(Dt=N,K=Mo(te),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===qi?(K=qi,G+=2):(K=r,lt===0&&mt(Cu)),K!==r?(te=G,Ae=G,ze=ti(),ze!==r?(gt=ti(),gt!==r?(ur=ti(),ur!==r?(gr=ti(),gr!==r?(hn=ti(),hn!==r?(ri=ti(),ri!==r?(Ni=ti(),Ni!==r?(Eg=ti(),Eg!==r?(ze=[ze,gt,ur,gr,hn,ri,Ni,Eg],Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r)):(G=Ae,Ae=r),Ae!==r?te=t.substring(te,G):te=Ae,te!==r?(Dt=N,K=FA(te),N=K):(G=N,N=r)):(G=N,N=r)))),N}function Ka(){var N;return Ha.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,lt===0&&mt(Cc)),N}function ti(){var N;return ds.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,lt===0&&mt(Ot)),N}function ha(){var N,K,te,Ae,ze;if(N=G,K=[],te=G,t.charCodeAt(G)===92?(Ae=Fi,G++):(Ae=r,lt===0&&mt(Rn)),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r),te===r&&(te=G,t.substr(G,2)===di?(Ae=di,G+=2):(Ae=r,lt===0&&mt(ia)),Ae!==r&&(Dt=te,Ae=oo()),te=Ae,te===r&&(te=G,Ae=G,lt++,ze=Nm(),lt--,ze===r?Ae=void 0:(G=Ae,Ae=r),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r))),te!==r)for(;te!==r;)K.push(te),te=G,t.charCodeAt(G)===92?(Ae=Fi,G++):(Ae=r,lt===0&&mt(Rn)),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r),te===r&&(te=G,t.substr(G,2)===di?(Ae=di,G+=2):(Ae=r,lt===0&&mt(ia)),Ae!==r&&(Dt=te,Ae=oo()),te=Ae,te===r&&(te=G,Ae=G,lt++,ze=Nm(),lt--,ze===r?Ae=void 0:(G=Ae,Ae=r),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r)));else K=r;return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function xc(){var N,K,te,Ae,ze,gt;if(N=G,t.charCodeAt(G)===45?(K=Rs,G++):(K=r,lt===0&&mt(sa)),K===r&&(t.charCodeAt(G)===43?(K=oa,G++):(K=r,lt===0&&mt(Uo))),K===r&&(K=null),K!==r){if(te=[],At.test(t.charAt(G))?(Ae=t.charAt(G),G++):(Ae=r,lt===0&&mt(Oe)),Ae!==r)for(;Ae!==r;)te.push(Ae),At.test(t.charAt(G))?(Ae=t.charAt(G),G++):(Ae=r,lt===0&&mt(Oe));else te=r;if(te!==r)if(t.charCodeAt(G)===46?(Ae=Zi,G++):(Ae=r,lt===0&&mt(Ts)),Ae!==r){if(ze=[],At.test(t.charAt(G))?(gt=t.charAt(G),G++):(gt=r,lt===0&&mt(Oe)),gt!==r)for(;gt!==r;)ze.push(gt),At.test(t.charAt(G))?(gt=t.charAt(G),G++):(gt=r,lt===0&&mt(Oe));else ze=r;ze!==r?(Dt=N,K=Ns(K,te,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;if(N===r){if(N=G,t.charCodeAt(G)===45?(K=Rs,G++):(K=r,lt===0&&mt(sa)),K===r&&(t.charCodeAt(G)===43?(K=oa,G++):(K=r,lt===0&&mt(Uo))),K===r&&(K=null),K!==r){if(te=[],At.test(t.charAt(G))?(Ae=t.charAt(G),G++):(Ae=r,lt===0&&mt(Oe)),Ae!==r)for(;Ae!==r;)te.push(Ae),At.test(t.charAt(G))?(Ae=t.charAt(G),G++):(Ae=r,lt===0&&mt(Oe));else te=r;te!==r?(Dt=N,K=Ls(K,te),N=K):(G=N,N=r)}else G=N,N=r;if(N===r&&(N=G,K=bc(),K!==r&&(Dt=N,K=ao(K)),N=K,N===r&&(N=G,K=Va(),K!==r&&(Dt=N,K=Yn(K)),N=K,N===r)))if(N=G,t.charCodeAt(G)===40?(K=Ee,G++):(K=r,lt===0&&mt(de)),K!==r){for(te=[],Ae=kt();Ae!==r;)te.push(Ae),Ae=kt();if(te!==r)if(Ae=ts(),Ae!==r){for(ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();ze!==r?(t.charCodeAt(G)===41?(gt=ne,G++):(gt=r,lt===0&&mt(Z)),gt!==r?(Dt=N,K=qn(Ae),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r}return N}function Pl(){var N,K,te,Ae,ze,gt,ur,gr;if(N=G,K=xc(),K!==r){for(te=[],Ae=G,ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();if(ze!==r)if(t.charCodeAt(G)===42?(gt=$i,G++):(gt=r,lt===0&&mt(es)),gt===r&&(t.charCodeAt(G)===47?(gt=mi,G++):(gt=r,lt===0&&mt(qa))),gt!==r){for(ur=[],gr=kt();gr!==r;)ur.push(gr),gr=kt();ur!==r?(gr=xc(),gr!==r?(Dt=Ae,ze=aa(K,gt,gr),Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)}else G=Ae,Ae=r;else G=Ae,Ae=r;for(;Ae!==r;){for(te.push(Ae),Ae=G,ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();if(ze!==r)if(t.charCodeAt(G)===42?(gt=$i,G++):(gt=r,lt===0&&mt(es)),gt===r&&(t.charCodeAt(G)===47?(gt=mi,G++):(gt=r,lt===0&&mt(qa))),gt!==r){for(ur=[],gr=kt();gr!==r;)ur.push(gr),gr=kt();ur!==r?(gr=xc(),gr!==r?(Dt=Ae,ze=aa(K,gt,gr),Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)}else G=Ae,Ae=r;else G=Ae,Ae=r}te!==r?(Dt=N,K=ee(K,te),N=K):(G=N,N=r)}else G=N,N=r;return N}function ts(){var N,K,te,Ae,ze,gt,ur,gr;if(N=G,K=Pl(),K!==r){for(te=[],Ae=G,ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();if(ze!==r)if(t.charCodeAt(G)===43?(gt=oa,G++):(gt=r,lt===0&&mt(Uo)),gt===r&&(t.charCodeAt(G)===45?(gt=Rs,G++):(gt=r,lt===0&&mt(sa))),gt!==r){for(ur=[],gr=kt();gr!==r;)ur.push(gr),gr=kt();ur!==r?(gr=Pl(),gr!==r?(Dt=Ae,ze=we(K,gt,gr),Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)}else G=Ae,Ae=r;else G=Ae,Ae=r;for(;Ae!==r;){for(te.push(Ae),Ae=G,ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();if(ze!==r)if(t.charCodeAt(G)===43?(gt=oa,G++):(gt=r,lt===0&&mt(Uo)),gt===r&&(t.charCodeAt(G)===45?(gt=Rs,G++):(gt=r,lt===0&&mt(sa))),gt!==r){for(ur=[],gr=kt();gr!==r;)ur.push(gr),gr=kt();ur!==r?(gr=Pl(),gr!==r?(Dt=Ae,ze=we(K,gt,gr),Ae=ze):(G=Ae,Ae=r)):(G=Ae,Ae=r)}else G=Ae,Ae=r;else G=Ae,Ae=r}te!==r?(Dt=N,K=ee(K,te),N=K):(G=N,N=r)}else G=N,N=r;return N}function Hr(){var N,K,te,Ae,ze,gt;if(N=G,t.substr(G,3)===je?(K=je,G+=3):(K=r,lt===0&&mt(Be)),K!==r){for(te=[],Ae=kt();Ae!==r;)te.push(Ae),Ae=kt();if(te!==r)if(Ae=ts(),Ae!==r){for(ze=[],gt=kt();gt!==r;)ze.push(gt),gt=kt();ze!==r?(t.substr(G,2)===xe?(gt=xe,G+=2):(gt=r,lt===0&&mt(Ve)),gt!==r?(Dt=N,K=vt(Ae),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;return N}function Ep(){var N,K,te,Ae;return N=G,t.substr(G,2)===tr?(K=tr,G+=2):(K=r,lt===0&&mt(Zr)),K!==r?(te=vu(),te!==r?(t.charCodeAt(G)===41?(Ae=ne,G++):(Ae=r,lt===0&&mt(Z)),Ae!==r?(Dt=N,K=Tn(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function bc(){var N,K,te,Ae,ze,gt;return N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Va(),te!==r?(t.substr(G,2)===Ti?(Ae=Ti,G+=2):(Ae=r,lt===0&&mt(Kn)),Ae!==r?(ze=LA(),ze!==r?(t.charCodeAt(G)===125?(gt=H,G++):(gt=r,lt===0&&mt(yt)),gt!==r?(Dt=N,K=ja(te,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Va(),te!==r?(t.substr(G,3)===la?(Ae=la,G+=3):(Ae=r,lt===0&&mt(yi)),Ae!==r?(Dt=N,K=ca(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Va(),te!==r?(t.substr(G,2)===Ga?(Ae=Ga,G+=2):(Ae=r,lt===0&&mt(lo)),Ae!==r?(ze=LA(),ze!==r?(t.charCodeAt(G)===125?(gt=H,G++):(gt=r,lt===0&&mt(yt)),gt!==r?(Dt=N,K=RA(te,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Va(),te!==r?(t.substr(G,3)===Ic?(Ae=Ic,G+=3):(Ae=r,lt===0&&mt(ua)),Ae!==r?(Dt=N,K=ng(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===_r?(K=_r,G+=2):(K=r,lt===0&&mt(ei)),K!==r?(te=Va(),te!==r?(t.charCodeAt(G)===125?(Ae=H,G++):(Ae=r,lt===0&&mt(yt)),Ae!==r?(Dt=N,K=wc(te),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.charCodeAt(G)===36?(K=bm,G++):(K=r,lt===0&&mt(ig)),K!==r?(te=Va(),te!==r?(Dt=N,K=wc(te),N=K):(G=N,N=r)):(G=N,N=r)))))),N}function AI(){var N,K,te;return N=G,K=dg(),K!==r?(Dt=G,te=Vn(K),te?te=void 0:te=r,te!==r?(Dt=N,K=fp(K),N=K):(G=N,N=r)):(G=N,N=r),N}function dg(){var N,K,te,Ae,ze;if(N=G,K=[],te=G,Ae=G,lt++,ze=yg(),lt--,ze===r?Ae=void 0:(G=Ae,Ae=r),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r),te!==r)for(;te!==r;)K.push(te),te=G,Ae=G,lt++,ze=yg(),lt--,ze===r?Ae=void 0:(G=Ae,Ae=r),Ae!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,lt===0&&mt(Sn)),ze!==r?(Dt=te,Ae=Ri(ze),te=Ae):(G=te,te=r)):(G=te,te=r);else K=r;return K!==r&&(Dt=N,K=Fs(K)),N=K,N}function mg(){var N,K,te;if(N=G,K=[],sg.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(TA)),te!==r)for(;te!==r;)K.push(te),sg.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(TA));else K=r;return K!==r&&(Dt=N,K=Os()),N=K,N}function Va(){var N,K,te;if(N=G,K=[],Iu.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Wa)),te!==r)for(;te!==r;)K.push(te),Iu.test(t.charAt(G))?(te=t.charAt(G),G++):(te=r,lt===0&&mt(Wa));else K=r;return K!==r&&(Dt=N,K=Os()),N=K,N}function Nm(){var N;return ji.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,lt===0&&mt(Aa)),N}function yg(){var N;return wu.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,lt===0&&mt(ms)),N}function kt(){var N,K;if(N=[],Bc.test(t.charAt(G))?(K=t.charAt(G),G++):(K=r,lt===0&&mt(vc)),K!==r)for(;K!==r;)N.push(K),Bc.test(t.charAt(G))?(K=t.charAt(G),G++):(K=r,lt===0&&mt(vc));else N=r;return N}if(Bu=a(),Bu!==r&&G===t.length)return Bu;throw Bu!==r&&G<t.length&&mt(lg()),ug(Dc,Si<t.length?t.charAt(Si):null,Si<t.length?Sc(Si,Si+1):Sc(Si,Si))}oY.exports={SyntaxError:Hg,parse:L8e}});function PD(t,e={isGlobPattern:()=>!1}){try{return(0,lY.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function fy(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:o},a)=>`${xD(r)}${o===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function xD(t){return`${py(t.chain)}${t.then?` ${cT(t.then)}`:""}`}function cT(t){return`${t.type} ${xD(t.line)}`}function py(t){return`${AT(t)}${t.then?` ${uT(t.then)}`:""}`}function uT(t){return`${t.type} ${py(t.chain)}`}function AT(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>SD(e)).join(" ")} `:""}${t.args.map(e=>fT(e)).join(" ")}`;case"subshell":return`(${fy(t.subshell)})${t.args.length>0?` ${t.args.map(e=>qI(e)).join(" ")}`:""}`;case"group":return`{ ${fy(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>qI(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>SD(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function SD(t){return`${t.name}=${t.args[0]?qg(t.args[0]):""}`}function fT(t){switch(t.type){case"redirection":return qI(t);case"argument":return qg(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function qI(t){return`${t.subtype} ${t.args.map(e=>qg(e)).join(" ")}`}function qg(t){return t.segments.map(e=>pT(e)).join("")}function pT(t){let e=(o,a)=>a?`"${o}"`:o,r=o=>o===""?'""':o.match(/[(){}<>$|&; \t"']/)?`$'${o.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:o;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`\${${fy(t.shell)}}`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(o=>qg(o)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(o=>qg(o)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${bD(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function bD(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,o=a=>r(bD(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${o(t.left)} ${e(t.type)} ${o(t.right)}`}}var lY,cY=dt(()=>{lY=tt(aY())});var AY=U((xxt,uY)=>{"use strict";function O8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function jg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,jg)}O8e(jg,Error);jg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var C="",w;for(w=0;w<h.parts.length;w++)C+=h.parts[w]instanceof Array?n(h.parts[w][0])+"-"+n(h.parts[w][1]):n(h.parts[w]);return"["+(h.inverted?"^":"")+C+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(C){return"\\x0"+o(C)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(C){return"\\x"+o(C)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(C){return"\\x0"+o(C)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(C){return"\\x"+o(C)})}function u(h){return r[h.type](h)}function A(h){var C=new Array(h.length),w,v;for(w=0;w<h.length;w++)C[w]=u(h[w]);if(C.sort(),C.length>0){for(w=1,v=1;w<C.length;w++)C[w-1]!==C[w]&&(C[v]=C[w],v++);C.length=v}switch(C.length){case 1:return C[0];case 2:return C[0]+" or "+C[1];default:return C.slice(0,-1).join(", ")+", or "+C[C.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function M8e(t,e){e=e!==void 0?e:{};var r={},o={resolution:Te},a=Te,n="/",u=Ee("/",!1),A=function(Oe,x){return{from:Oe,descriptor:x}},p=function(Oe){return{descriptor:Oe}},h="@",C=Ee("@",!1),w=function(Oe,x){return{fullName:Oe,description:x}},v=function(Oe){return{fullName:Oe}},b=function(){return le()},E=/^[^\/@]/,R=de(["/","@"],!0,!1),L=/^[^\/]/,_=de(["/"],!0,!1),V=0,re=0,ae=[{line:1,column:1}],he=0,pe=[],De=0,ge;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function le(){return t.substring(re,V)}function Pe(){return ut(re,V)}function g(Oe,x){throw x=x!==void 0?x:ut(re,V),Me([me(Oe)],t.substring(re,V),x)}function ve(Oe,x){throw x=x!==void 0?x:ut(re,V),yt(Oe,x)}function Ee(Oe,x){return{type:"literal",text:Oe,ignoreCase:x}}function de(Oe,x,I){return{type:"class",parts:Oe,inverted:x,ignoreCase:I}}function ne(){return{type:"any"}}function Z(){return{type:"end"}}function me(Oe){return{type:"other",description:Oe}}function be(Oe){var x=ae[Oe],I;if(x)return x;for(I=Oe-1;!ae[I];)I--;for(x=ae[I],x={line:x.line,column:x.column};I<Oe;)t.charCodeAt(I)===10?(x.line++,x.column=1):x.column++,I++;return ae[Oe]=x,x}function ut(Oe,x){var I=be(Oe),P=be(x);return{start:{offset:Oe,line:I.line,column:I.column},end:{offset:x,line:P.line,column:P.column}}}function H(Oe){V<he||(V>he&&(he=V,pe=[]),pe.push(Oe))}function yt(Oe,x){return new jg(Oe,null,null,x)}function Me(Oe,x,I){return new jg(jg.buildMessage(Oe,x),Oe,x,I)}function Te(){var Oe,x,I,P;return Oe=V,x=Qe(),x!==r?(t.charCodeAt(V)===47?(I=n,V++):(I=r,De===0&&H(u)),I!==r?(P=Qe(),P!==r?(re=Oe,x=A(x,P),Oe=x):(V=Oe,Oe=r)):(V=Oe,Oe=r)):(V=Oe,Oe=r),Oe===r&&(Oe=V,x=Qe(),x!==r&&(re=Oe,x=p(x)),Oe=x),Oe}function Qe(){var Oe,x,I,P;return Oe=V,x=_e(),x!==r?(t.charCodeAt(V)===64?(I=h,V++):(I=r,De===0&&H(C)),I!==r?(P=At(),P!==r?(re=Oe,x=w(x,P),Oe=x):(V=Oe,Oe=r)):(V=Oe,Oe=r)):(V=Oe,Oe=r),Oe===r&&(Oe=V,x=_e(),x!==r&&(re=Oe,x=v(x)),Oe=x),Oe}function _e(){var Oe,x,I,P,y;return Oe=V,t.charCodeAt(V)===64?(x=h,V++):(x=r,De===0&&H(C)),x!==r?(I=qe(),I!==r?(t.charCodeAt(V)===47?(P=n,V++):(P=r,De===0&&H(u)),P!==r?(y=qe(),y!==r?(re=Oe,x=b(),Oe=x):(V=Oe,Oe=r)):(V=Oe,Oe=r)):(V=Oe,Oe=r)):(V=Oe,Oe=r),Oe===r&&(Oe=V,x=qe(),x!==r&&(re=Oe,x=b()),Oe=x),Oe}function qe(){var Oe,x,I;if(Oe=V,x=[],E.test(t.charAt(V))?(I=t.charAt(V),V++):(I=r,De===0&&H(R)),I!==r)for(;I!==r;)x.push(I),E.test(t.charAt(V))?(I=t.charAt(V),V++):(I=r,De===0&&H(R));else x=r;return x!==r&&(re=Oe,x=b()),Oe=x,Oe}function At(){var Oe,x,I;if(Oe=V,x=[],L.test(t.charAt(V))?(I=t.charAt(V),V++):(I=r,De===0&&H(_)),I!==r)for(;I!==r;)x.push(I),L.test(t.charAt(V))?(I=t.charAt(V),V++):(I=r,De===0&&H(_));else x=r;return x!==r&&(re=Oe,x=b()),Oe=x,Oe}if(ge=a(),ge!==r&&V===t.length)return ge;throw ge!==r&&V<t.length&&H(Z()),Me(pe,he<t.length?t.charAt(he):null,he<t.length?ut(he,he+1):ut(he,he))}uY.exports={SyntaxError:jg,parse:M8e}});function QD(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,fY.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function kD(t){let e="";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+="/"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var fY,pY=dt(()=>{fY=tt(AY())});var Wg=U((Qxt,Gg)=>{"use strict";function hY(t){return typeof t>"u"||t===null}function U8e(t){return typeof t=="object"&&t!==null}function _8e(t){return Array.isArray(t)?t:hY(t)?[]:[t]}function H8e(t,e){var r,o,a,n;if(e)for(n=Object.keys(e),r=0,o=n.length;r<o;r+=1)a=n[r],t[a]=e[a];return t}function q8e(t,e){var r="",o;for(o=0;o<e;o+=1)r+=t;return r}function j8e(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}Gg.exports.isNothing=hY;Gg.exports.isObject=U8e;Gg.exports.toArray=_8e;Gg.exports.repeat=q8e;Gg.exports.isNegativeZero=j8e;Gg.exports.extend=H8e});var hy=U((kxt,gY)=>{"use strict";function jI(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}jI.prototype=Object.create(Error.prototype);jI.prototype.constructor=jI;jI.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};gY.exports=jI});var yY=U((Fxt,mY)=>{"use strict";var dY=Wg();function hT(t,e,r,o,a){this.name=t,this.buffer=e,this.position=r,this.line=o,this.column=a}hT.prototype.getSnippet=function(e,r){var o,a,n,u,A;if(!this.buffer)return null;for(e=e||4,r=r||75,o="",a=this.position;a>0&&`\0\r
13\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;u<this.buffer.length&&`\0\r 13\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;u<this.buffer.length&&`\0\r
14\x85\u2028\u2029`.indexOf(this.buffer.charAt(u))===-1;)if(u+=1,u-this.position>r/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),hY.repeat(" ",e)+o+A+n+` 14\x85\u2028\u2029`.indexOf(this.buffer.charAt(u))===-1;)if(u+=1,u-this.position>r/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),dY.repeat(" ",e)+o+A+n+`
15`+hY.repeat(" ",e+this.position-a+o.length)+"^"};fT.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`: 15`+dY.repeat(" ",e+this.position-a+o.length)+"^"};hT.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`:
16`+r)),o};gY.exports=fT});var as=U((xxt,yY)=>{"use strict";var mY=hy(),_8e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],H8e=["scalar","sequence","mapping"];function q8e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function j8e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(_8e.indexOf(r)===-1)throw new mY('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=q8e(e.styleAliases||null),H8e.indexOf(this.kind)===-1)throw new mY('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}yY.exports=j8e});var Wg=U((bxt,EY)=>{"use strict";var CY=Gg(),QD=hy(),G8e=as();function pT(t,e,r){var o=[];return t.include.forEach(function(a){r=pT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function W8e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(o);return t}function gy(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new QD("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=pT(this,"implicit",[]),this.compiledExplicit=pT(this,"explicit",[]),this.compiledTypeMap=W8e(this.compiledImplicit,this.compiledExplicit)}gy.DEFAULT=null;gy.create=function(){var e,r;switch(arguments.length){case 1:e=gy.DEFAULT,r=arguments[0];break;case 2:e=arguments[0],r=arguments[1];break;default:throw new QD("Wrong number of arguments for Schema.create function")}if(e=CY.toArray(e),r=CY.toArray(r),!e.every(function(o){return o instanceof gy}))throw new QD("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!r.every(function(o){return o instanceof G8e}))throw new QD("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new gy({include:e,explicit:r})};EY.exports=gy});var wY=U((Qxt,IY)=>{"use strict";var Y8e=as();IY.exports=new Y8e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var vY=U((kxt,BY)=>{"use strict";var K8e=as();BY.exports=new K8e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var SY=U((Fxt,DY)=>{"use strict";var V8e=as();DY.exports=new V8e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var kD=U((Rxt,PY)=>{"use strict";var J8e=Wg();PY.exports=new J8e({explicit:[wY(),vY(),SY()]})});var bY=U((Txt,xY)=>{"use strict";var z8e=as();function X8e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Z8e(){return null}function $8e(t){return t===null}xY.exports=new z8e("tag:yaml.org,2002:null",{kind:"scalar",resolve:X8e,construct:Z8e,predicate:$8e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var kY=U((Nxt,QY)=>{"use strict";var eHe=as();function tHe(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function rHe(t){return t==="true"||t==="True"||t==="TRUE"}function nHe(t){return Object.prototype.toString.call(t)==="[object Boolean]"}QY.exports=new eHe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:tHe,construct:rHe,predicate:nHe,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var RY=U((Lxt,FY)=>{"use strict";var iHe=Gg(),sHe=as();function oHe(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function aHe(t){return 48<=t&&t<=55}function lHe(t){return 48<=t&&t<=57}function cHe(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(a!=="0"&&a!=="1")return!1;o=!0}return o&&a!=="_"}if(a==="x"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(!oHe(t.charCodeAt(r)))return!1;o=!0}return o&&a!=="_"}for(;r<e;r++)if(a=t[r],a!=="_"){if(!aHe(t.charCodeAt(r)))return!1;o=!0}return o&&a!=="_"}if(a==="_")return!1;for(;r<e;r++)if(a=t[r],a!=="_"){if(a===":")break;if(!lHe(t.charCodeAt(r)))return!1;o=!0}return!o||a==="_"?!1:a!==":"?!0:/^(:[0-5]?[0-9])+$/.test(t.slice(r))}function uHe(t){var e=t,r=1,o,a,n=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),o=e[0],(o==="-"||o==="+")&&(o==="-"&&(r=-1),e=e.slice(1),o=e[0]),e==="0"?0:o==="0"?e[1]==="b"?r*parseInt(e.slice(2),2):e[1]==="x"?r*parseInt(e,16):r*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(u){n.unshift(parseInt(u,10))}),e=0,a=1,n.forEach(function(u){e+=u*a,a*=60}),r*e):r*parseInt(e,10)}function AHe(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!iHe.isNegativeZero(t)}FY.exports=new sHe("tag:yaml.org,2002:int",{kind:"scalar",resolve:cHe,construct:uHe,predicate:AHe,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var LY=U((Oxt,NY)=>{"use strict";var TY=Gg(),fHe=as(),pHe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function hHe(t){return!(t===null||!pHe.test(t)||t[t.length-1]==="_")}function gHe(t){var e,r,o,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,o=1,a.forEach(function(n){e+=n*o,o*=60}),r*e):r*parseFloat(e,10)}var dHe=/^[-+]?[0-9]+e/;function mHe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(TY.isNegativeZero(t))return"-0.0";return r=t.toString(10),dHe.test(r)?r.replace("e",".e"):r}function yHe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||TY.isNegativeZero(t))}NY.exports=new fHe("tag:yaml.org,2002:float",{kind:"scalar",resolve:hHe,construct:gHe,predicate:yHe,represent:mHe,defaultStyle:"lowercase"})});var hT=U((Mxt,OY)=>{"use strict";var CHe=Wg();OY.exports=new CHe({include:[kD()],implicit:[bY(),kY(),RY(),LY()]})});var gT=U((Uxt,MY)=>{"use strict";var EHe=Wg();MY.exports=new EHe({include:[hT()]})});var qY=U((_xt,HY)=>{"use strict";var IHe=as(),UY=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),_Y=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function wHe(t){return t===null?!1:UY.exec(t)!==null||_Y.exec(t)!==null}function BHe(t){var e,r,o,a,n,u,A,p=0,h=null,E,w,v;if(e=UY.exec(t),e===null&&(e=_Y.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],o=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,o,a));if(n=+e[4],u=+e[5],A=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],w=+(e[11]||0),h=(E*60+w)*6e4,e[9]==="-"&&(h=-h)),v=new Date(Date.UTC(r,o,a,n,u,A,p)),h&&v.setTime(v.getTime()-h),v}function vHe(t){return t.toISOString()}HY.exports=new IHe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:wHe,construct:BHe,instanceOf:Date,represent:vHe})});var GY=U((Hxt,jY)=>{"use strict";var DHe=as();function SHe(t){return t==="<<"||t===null}jY.exports=new DHe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:SHe})});var KY=U((qxt,YY)=>{"use strict";var Yg;try{WY=Ie,Yg=WY("buffer").Buffer}catch{}var WY,PHe=as(),dT=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= 16`+r)),o};mY.exports=hT});var as=U((Rxt,CY)=>{"use strict";var EY=hy(),G8e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],W8e=["scalar","sequence","mapping"];function Y8e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function K8e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(G8e.indexOf(r)===-1)throw new EY('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Y8e(e.styleAliases||null),W8e.indexOf(this.kind)===-1)throw new EY('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}CY.exports=K8e});var Yg=U((Txt,wY)=>{"use strict";var IY=Wg(),FD=hy(),V8e=as();function gT(t,e,r){var o=[];return t.include.forEach(function(a){r=gT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function J8e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(o);return t}function gy(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new FD("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=gT(this,"implicit",[]),this.compiledExplicit=gT(this,"explicit",[]),this.compiledTypeMap=J8e(this.compiledImplicit,this.compiledExplicit)}gy.DEFAULT=null;gy.create=function(){var e,r;switch(arguments.length){case 1:e=gy.DEFAULT,r=arguments[0];break;case 2:e=arguments[0],r=arguments[1];break;default:throw new FD("Wrong number of arguments for Schema.create function")}if(e=IY.toArray(e),r=IY.toArray(r),!e.every(function(o){return o instanceof gy}))throw new FD("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!r.every(function(o){return o instanceof V8e}))throw new FD("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new gy({include:e,explicit:r})};wY.exports=gy});var vY=U((Nxt,BY)=>{"use strict";var z8e=as();BY.exports=new z8e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var SY=U((Lxt,DY)=>{"use strict";var X8e=as();DY.exports=new X8e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var xY=U((Oxt,PY)=>{"use strict";var Z8e=as();PY.exports=new Z8e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var RD=U((Mxt,bY)=>{"use strict";var $8e=Yg();bY.exports=new $8e({explicit:[vY(),SY(),xY()]})});var kY=U((Uxt,QY)=>{"use strict";var eHe=as();function tHe(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function rHe(){return null}function nHe(t){return t===null}QY.exports=new eHe("tag:yaml.org,2002:null",{kind:"scalar",resolve:tHe,construct:rHe,predicate:nHe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var RY=U((_xt,FY)=>{"use strict";var iHe=as();function sHe(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function oHe(t){return t==="true"||t==="True"||t==="TRUE"}function aHe(t){return Object.prototype.toString.call(t)==="[object Boolean]"}FY.exports=new iHe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:sHe,construct:oHe,predicate:aHe,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var NY=U((Hxt,TY)=>{"use strict";var lHe=Wg(),cHe=as();function uHe(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function AHe(t){return 48<=t&&t<=55}function fHe(t){return 48<=t&&t<=57}function pHe(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(a!=="0"&&a!=="1")return!1;o=!0}return o&&a!=="_"}if(a==="x"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(!uHe(t.charCodeAt(r)))return!1;o=!0}return o&&a!=="_"}for(;r<e;r++)if(a=t[r],a!=="_"){if(!AHe(t.charCodeAt(r)))return!1;o=!0}return o&&a!=="_"}if(a==="_")return!1;for(;r<e;r++)if(a=t[r],a!=="_"){if(a===":")break;if(!fHe(t.charCodeAt(r)))return!1;o=!0}return!o||a==="_"?!1:a!==":"?!0:/^(:[0-5]?[0-9])+$/.test(t.slice(r))}function hHe(t){var e=t,r=1,o,a,n=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),o=e[0],(o==="-"||o==="+")&&(o==="-"&&(r=-1),e=e.slice(1),o=e[0]),e==="0"?0:o==="0"?e[1]==="b"?r*parseInt(e.slice(2),2):e[1]==="x"?r*parseInt(e,16):r*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(u){n.unshift(parseInt(u,10))}),e=0,a=1,n.forEach(function(u){e+=u*a,a*=60}),r*e):r*parseInt(e,10)}function gHe(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!lHe.isNegativeZero(t)}TY.exports=new cHe("tag:yaml.org,2002:int",{kind:"scalar",resolve:pHe,construct:hHe,predicate:gHe,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var MY=U((qxt,OY)=>{"use strict";var LY=Wg(),dHe=as(),mHe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function yHe(t){return!(t===null||!mHe.test(t)||t[t.length-1]==="_")}function EHe(t){var e,r,o,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,o=1,a.forEach(function(n){e+=n*o,o*=60}),r*e):r*parseFloat(e,10)}var CHe=/^[-+]?[0-9]+e/;function IHe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(LY.isNegativeZero(t))return"-0.0";return r=t.toString(10),CHe.test(r)?r.replace("e",".e"):r}function wHe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||LY.isNegativeZero(t))}OY.exports=new dHe("tag:yaml.org,2002:float",{kind:"scalar",resolve:yHe,construct:EHe,predicate:wHe,represent:IHe,defaultStyle:"lowercase"})});var dT=U((jxt,UY)=>{"use strict";var BHe=Yg();UY.exports=new BHe({include:[RD()],implicit:[kY(),RY(),NY(),MY()]})});var mT=U((Gxt,_Y)=>{"use strict";var vHe=Yg();_Y.exports=new vHe({include:[dT()]})});var GY=U((Wxt,jY)=>{"use strict";var DHe=as(),HY=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),qY=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function SHe(t){return t===null?!1:HY.exec(t)!==null||qY.exec(t)!==null}function PHe(t){var e,r,o,a,n,u,A,p=0,h=null,C,w,v;if(e=HY.exec(t),e===null&&(e=qY.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],o=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,o,a));if(n=+e[4],u=+e[5],A=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(C=+e[10],w=+(e[11]||0),h=(C*60+w)*6e4,e[9]==="-"&&(h=-h)),v=new Date(Date.UTC(r,o,a,n,u,A,p)),h&&v.setTime(v.getTime()-h),v}function xHe(t){return t.toISOString()}jY.exports=new DHe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:SHe,construct:PHe,instanceOf:Date,represent:xHe})});var YY=U((Yxt,WY)=>{"use strict";var bHe=as();function QHe(t){return t==="<<"||t===null}WY.exports=new bHe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:QHe})});var JY=U((Kxt,VY)=>{"use strict";var Kg;try{KY=Ie,Kg=KY("buffer").Buffer}catch{}var KY,kHe=as(),yT=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
17\r`;function xHe(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=dT;for(r=0;r<a;r++)if(e=n.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;o+=6}return o%8===0}function bHe(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=dT,u=0,A=[];for(e=0;e<a;e++)e%4===0&&e&&(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),Yg?Yg.from?Yg.from(A):new Yg(A):A}function QHe(t){var e="",r=0,o,a,n=t.length,u=dT;for(o=0;o<n;o++)o%3===0&&o&&(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function kHe(t){return Yg&&Yg.isBuffer(t)}YY.exports=new PHe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:xHe,construct:bHe,predicate:kHe,represent:QHe})});var JY=U((Gxt,VY)=>{"use strict";var FHe=as(),RHe=Object.prototype.hasOwnProperty,THe=Object.prototype.toString;function NHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r<o;r+=1){if(a=A[r],u=!1,THe.call(a)!=="[object Object]")return!1;for(n in a)if(RHe.call(a,n))if(!u)u=!0;else return!1;if(!u)return!1;if(e.indexOf(n)===-1)e.push(n);else return!1}return!0}function LHe(t){return t!==null?t:[]}VY.exports=new FHe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:NHe,construct:LHe})});var XY=U((Wxt,zY)=>{"use strict";var OHe=as(),MHe=Object.prototype.toString;function UHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e<r;e+=1){if(o=u[e],MHe.call(o)!=="[object Object]"||(a=Object.keys(o),a.length!==1))return!1;n[e]=[a[0],o[a[0]]]}return!0}function _He(t){if(t===null)return[];var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e<r;e+=1)o=u[e],a=Object.keys(o),n[e]=[a[0],o[a[0]]];return n}zY.exports=new OHe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:UHe,construct:_He})});var $Y=U((Yxt,ZY)=>{"use strict";var HHe=as(),qHe=Object.prototype.hasOwnProperty;function jHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(qHe.call(r,e)&&r[e]!==null)return!1;return!0}function GHe(t){return t!==null?t:{}}ZY.exports=new HHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:jHe,construct:GHe})});var dy=U((Kxt,eK)=>{"use strict";var WHe=Wg();eK.exports=new WHe({include:[gT()],implicit:[qY(),GY()],explicit:[KY(),JY(),XY(),$Y()]})});var rK=U((Vxt,tK)=>{"use strict";var YHe=as();function KHe(){return!0}function VHe(){}function JHe(){return""}function zHe(t){return typeof t>"u"}tK.exports=new YHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:KHe,construct:VHe,predicate:zHe,represent:JHe})});var iK=U((Jxt,nK)=>{"use strict";var XHe=as();function ZHe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function $He(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function e6e(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function t6e(t){return Object.prototype.toString.call(t)==="[object RegExp]"}nK.exports=new XHe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ZHe,construct:$He,predicate:t6e,represent:e6e})});var aK=U((zxt,oK)=>{"use strict";var FD;try{sK=Ie,FD=sK("esprima")}catch{typeof window<"u"&&(FD=window.esprima)}var sK,r6e=as();function n6e(t){if(t===null)return!1;try{var e="("+t+")",r=FD.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function i6e(t){var e="("+t+")",r=FD.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function s6e(t){return t.toString()}function o6e(t){return Object.prototype.toString.call(t)==="[object Function]"}oK.exports=new r6e("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:n6e,construct:i6e,predicate:o6e,represent:s6e})});var jI=U((Zxt,cK)=>{"use strict";var lK=Wg();cK.exports=lK.DEFAULT=new lK({include:[dy()],explicit:[rK(),iK(),aK()]})});var xK=U(($xt,GI)=>{"use strict";var Cf=Gg(),dK=hy(),a6e=dY(),mK=dy(),l6e=jI(),jp=Object.prototype.hasOwnProperty,RD=1,yK=2,CK=3,TD=4,mT=1,c6e=2,uK=3,u6e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,A6e=/[\x85\u2028\u2029]/,f6e=/[,\[\]\{\}]/,EK=/^(?:!|!!|![a-z\-]+!)$/i,IK=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function AK(t){return Object.prototype.toString.call(t)}function Wu(t){return t===10||t===13}function Vg(t){return t===9||t===32}function Ia(t){return t===9||t===32||t===10||t===13}function my(t){return t===44||t===91||t===93||t===123||t===125}function p6e(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function h6e(t){return t===120?2:t===117?4:t===85?8:0}function g6e(t){return 48<=t&&t<=57?t-48:-1}function fK(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` 17\r`;function FHe(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=yT;for(r=0;r<a;r++)if(e=n.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;o+=6}return o%8===0}function RHe(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=yT,u=0,A=[];for(e=0;e<a;e++)e%4===0&&e&&(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),Kg?Kg.from?Kg.from(A):new Kg(A):A}function THe(t){var e="",r=0,o,a,n=t.length,u=yT;for(o=0;o<n;o++)o%3===0&&o&&(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function NHe(t){return Kg&&Kg.isBuffer(t)}VY.exports=new kHe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:FHe,construct:RHe,predicate:NHe,represent:THe})});var XY=U((Jxt,zY)=>{"use strict";var LHe=as(),OHe=Object.prototype.hasOwnProperty,MHe=Object.prototype.toString;function UHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r<o;r+=1){if(a=A[r],u=!1,MHe.call(a)!=="[object Object]")return!1;for(n in a)if(OHe.call(a,n))if(!u)u=!0;else return!1;if(!u)return!1;if(e.indexOf(n)===-1)e.push(n);else return!1}return!0}function _He(t){return t!==null?t:[]}zY.exports=new LHe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:UHe,construct:_He})});var $Y=U((zxt,ZY)=>{"use strict";var HHe=as(),qHe=Object.prototype.toString;function jHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e<r;e+=1){if(o=u[e],qHe.call(o)!=="[object Object]"||(a=Object.keys(o),a.length!==1))return!1;n[e]=[a[0],o[a[0]]]}return!0}function GHe(t){if(t===null)return[];var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e<r;e+=1)o=u[e],a=Object.keys(o),n[e]=[a[0],o[a[0]]];return n}ZY.exports=new HHe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:jHe,construct:GHe})});var tK=U((Xxt,eK)=>{"use strict";var WHe=as(),YHe=Object.prototype.hasOwnProperty;function KHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(YHe.call(r,e)&&r[e]!==null)return!1;return!0}function VHe(t){return t!==null?t:{}}eK.exports=new WHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:KHe,construct:VHe})});var dy=U((Zxt,rK)=>{"use strict";var JHe=Yg();rK.exports=new JHe({include:[mT()],implicit:[GY(),YY()],explicit:[JY(),XY(),$Y(),tK()]})});var iK=U(($xt,nK)=>{"use strict";var zHe=as();function XHe(){return!0}function ZHe(){}function $He(){return""}function e6e(t){return typeof t>"u"}nK.exports=new zHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:XHe,construct:ZHe,predicate:e6e,represent:$He})});var oK=U((ebt,sK)=>{"use strict";var t6e=as();function r6e(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function n6e(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function i6e(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function s6e(t){return Object.prototype.toString.call(t)==="[object RegExp]"}sK.exports=new t6e("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:r6e,construct:n6e,predicate:s6e,represent:i6e})});var cK=U((tbt,lK)=>{"use strict";var TD;try{aK=Ie,TD=aK("esprima")}catch{typeof window<"u"&&(TD=window.esprima)}var aK,o6e=as();function a6e(t){if(t===null)return!1;try{var e="("+t+")",r=TD.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function l6e(t){var e="("+t+")",r=TD.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function c6e(t){return t.toString()}function u6e(t){return Object.prototype.toString.call(t)==="[object Function]"}lK.exports=new o6e("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:a6e,construct:l6e,predicate:u6e,represent:c6e})});var GI=U((nbt,AK)=>{"use strict";var uK=Yg();AK.exports=uK.DEFAULT=new uK({include:[dy()],explicit:[iK(),oK(),cK()]})});var QK=U((ibt,WI)=>{"use strict";var Cf=Wg(),yK=hy(),A6e=yY(),EK=dy(),f6e=GI(),Wp=Object.prototype.hasOwnProperty,ND=1,CK=2,IK=3,LD=4,ET=1,p6e=2,fK=3,h6e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g6e=/[\x85\u2028\u2029]/,d6e=/[,\[\]\{\}]/,wK=/^(?:!|!!|![a-z\-]+!)$/i,BK=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function pK(t){return Object.prototype.toString.call(t)}function Wu(t){return t===10||t===13}function Jg(t){return t===9||t===32}function wa(t){return t===9||t===32||t===10||t===13}function my(t){return t===44||t===91||t===93||t===123||t===125}function m6e(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function y6e(t){return t===120?2:t===117?4:t===85?8:0}function E6e(t){return 48<=t&&t<=57?t-48:-1}function hK(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
18`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function d6e(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var wK=new Array(256),BK=new Array(256);for(Kg=0;Kg<256;Kg++)wK[Kg]=fK(Kg)?1:0,BK[Kg]=fK(Kg);var Kg;function m6e(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||l6e,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function vK(t,e){return new dK(e,new a6e(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function wr(t,e){throw vK(t,e)}function ND(t,e){t.onWarning&&t.onWarning.call(null,vK(t,e))}var pK={YAML:function(e,r,o){var a,n,u;e.version!==null&&wr(e,"duplication of %YAML directive"),o.length!==1&&wr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&wr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&wr(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&ND(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&wr(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],EK.test(a)||wr(e,"ill-formed tag handle (first argument) of the TAG directive"),jp.call(e.tagMap,a)&&wr(e,'there is a previously declared suffix for "'+a+'" tag handle'),IK.test(n)||wr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function qp(t,e,r,o){var a,n,u,A;if(e<r){if(A=t.input.slice(e,r),o)for(a=0,n=A.length;a<n;a+=1)u=A.charCodeAt(a),u===9||32<=u&&u<=1114111||wr(t,"expected valid JSON character");else u6e.test(A)&&wr(t,"the stream contains non-printable characters");t.result+=A}}function hK(t,e,r,o){var a,n,u,A;for(Cf.isObject(r)||wr(t,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),u=0,A=a.length;u<A;u+=1)n=a[u],jp.call(e,n)||(e[n]=r[n],o[n]=!0)}function yy(t,e,r,o,a,n,u,A){var p,h;if(Array.isArray(a))for(a=Array.prototype.slice.call(a),p=0,h=a.length;p<h;p+=1)Array.isArray(a[p])&&wr(t,"nested arrays are not supported inside keys"),typeof a=="object"&&AK(a[p])==="[object Object]"&&(a[p]="[object Object]");if(typeof a=="object"&&AK(a)==="[object Object]"&&(a="[object Object]"),a=String(a),e===null&&(e={}),o==="tag:yaml.org,2002:merge")if(Array.isArray(n))for(p=0,h=n.length;p<h;p+=1)hK(t,e,n[p],r);else hK(t,e,n,r);else!t.json&&!jp.call(r,a)&&jp.call(e,a)&&(t.line=u||t.line,t.position=A||t.position,wr(t,"duplicated mapping key")),e[a]=n,delete r[a];return e}function yT(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):wr(t,"a line break is expected"),t.line+=1,t.lineStart=t.position}function Wi(t,e,r){for(var o=0,a=t.input.charCodeAt(t.position);a!==0;){for(;Vg(a);)a=t.input.charCodeAt(++t.position);if(e&&a===35)do a=t.input.charCodeAt(++t.position);while(a!==10&&a!==13&&a!==0);if(Wu(a))for(yT(t),a=t.input.charCodeAt(t.position),o++,t.lineIndent=0;a===32;)t.lineIndent++,a=t.input.charCodeAt(++t.position);else break}return r!==-1&&o!==0&&t.lineIndent<r&&ND(t,"deficient indentation"),o}function LD(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||Ia(r)))}function CT(t,e){e===1?t.result+=" ":e>1&&(t.result+=Cf.repeat(` 18`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function C6e(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var vK=new Array(256),DK=new Array(256);for(Vg=0;Vg<256;Vg++)vK[Vg]=hK(Vg)?1:0,DK[Vg]=hK(Vg);var Vg;function I6e(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||f6e,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function SK(t,e){return new yK(e,new A6e(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function wr(t,e){throw SK(t,e)}function OD(t,e){t.onWarning&&t.onWarning.call(null,SK(t,e))}var gK={YAML:function(e,r,o){var a,n,u;e.version!==null&&wr(e,"duplication of %YAML directive"),o.length!==1&&wr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&wr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&wr(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&OD(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&wr(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],wK.test(a)||wr(e,"ill-formed tag handle (first argument) of the TAG directive"),Wp.call(e.tagMap,a)&&wr(e,'there is a previously declared suffix for "'+a+'" tag handle'),BK.test(n)||wr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function Gp(t,e,r,o){var a,n,u,A;if(e<r){if(A=t.input.slice(e,r),o)for(a=0,n=A.length;a<n;a+=1)u=A.charCodeAt(a),u===9||32<=u&&u<=1114111||wr(t,"expected valid JSON character");else h6e.test(A)&&wr(t,"the stream contains non-printable characters");t.result+=A}}function dK(t,e,r,o){var a,n,u,A;for(Cf.isObject(r)||wr(t,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),u=0,A=a.length;u<A;u+=1)n=a[u],Wp.call(e,n)||(e[n]=r[n],o[n]=!0)}function yy(t,e,r,o,a,n,u,A){var p,h;if(Array.isArray(a))for(a=Array.prototype.slice.call(a),p=0,h=a.length;p<h;p+=1)Array.isArray(a[p])&&wr(t,"nested arrays are not supported inside keys"),typeof a=="object"&&pK(a[p])==="[object Object]"&&(a[p]="[object Object]");if(typeof a=="object"&&pK(a)==="[object Object]"&&(a="[object Object]"),a=String(a),e===null&&(e={}),o==="tag:yaml.org,2002:merge")if(Array.isArray(n))for(p=0,h=n.length;p<h;p+=1)dK(t,e,n[p],r);else dK(t,e,n,r);else!t.json&&!Wp.call(r,a)&&Wp.call(e,a)&&(t.line=u||t.line,t.position=A||t.position,wr(t,"duplicated mapping key")),e[a]=n,delete r[a];return e}function CT(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):wr(t,"a line break is expected"),t.line+=1,t.lineStart=t.position}function Wi(t,e,r){for(var o=0,a=t.input.charCodeAt(t.position);a!==0;){for(;Jg(a);)a=t.input.charCodeAt(++t.position);if(e&&a===35)do a=t.input.charCodeAt(++t.position);while(a!==10&&a!==13&&a!==0);if(Wu(a))for(CT(t),a=t.input.charCodeAt(t.position),o++,t.lineIndent=0;a===32;)t.lineIndent++,a=t.input.charCodeAt(++t.position);else break}return r!==-1&&o!==0&&t.lineIndent<r&&OD(t,"deficient indentation"),o}function MD(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||wa(r)))}function IT(t,e){e===1?t.result+=" ":e>1&&(t.result+=Cf.repeat(`
19`,e-1))}function y6e(t,e,r){var o,a,n,u,A,p,h,E,w=t.kind,v=t.result,b;if(b=t.input.charCodeAt(t.position),Ia(b)||my(b)||b===35||b===38||b===42||b===33||b===124||b===62||b===39||b===34||b===37||b===64||b===96||(b===63||b===45)&&(a=t.input.charCodeAt(t.position+1),Ia(a)||r&&my(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;b!==0;){if(b===58){if(a=t.input.charCodeAt(t.position+1),Ia(a)||r&&my(a))break}else if(b===35){if(o=t.input.charCodeAt(t.position-1),Ia(o))break}else{if(t.position===t.lineStart&&LD(t)||r&&my(b))break;if(Wu(b))if(p=t.line,h=t.lineStart,E=t.lineIndent,Wi(t,!1,-1),t.lineIndent>=e){A=!0,b=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=E;break}}A&&(qp(t,n,u,!1),CT(t,t.line-p),n=u=t.position,A=!1),Vg(b)||(u=t.position+1),b=t.input.charCodeAt(++t.position)}return qp(t,n,u,!1),t.result?!0:(t.kind=w,t.result=v,!1)}function C6e(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(qp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else Wu(r)?(qp(t,o,a,!0),CT(t,Wi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&LD(t)?wr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);wr(t,"unexpected end of the stream within a single quoted scalar")}function E6e(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return qp(t,r,t.position,!0),t.position++,!0;if(A===92){if(qp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),Wu(A))Wi(t,!1,e);else if(A<256&&wK[A])t.result+=BK[A],t.position++;else if((u=h6e(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=p6e(A))>=0?n=(n<<4)+u:wr(t,"expected hexadecimal character");t.result+=d6e(n),t.position++}else wr(t,"unknown escape sequence");r=o=t.position}else Wu(A)?(qp(t,r,o,!0),CT(t,Wi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&LD(t)?wr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}wr(t,"unexpected end of the stream within a double quoted scalar")}function I6e(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,E,w,v={},b,C,R,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,w=!1,n=[];else if(L===123)p=125,w=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=w?"mapping":"sequence",t.result=n,!0;r||wr(t,"missed comma between flow collection entries"),C=b=R=null,h=E=!1,L===63&&(A=t.input.charCodeAt(t.position+1),Ia(A)&&(h=E=!0,t.position++,Wi(t,!0,e))),o=t.line,Cy(t,e,RD,!1,!0),C=t.tag,b=t.result,Wi(t,!0,e),L=t.input.charCodeAt(t.position),(E||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Wi(t,!0,e),Cy(t,e,RD,!1,!0),R=t.result),w?yy(t,n,v,C,b,R):h?n.push(yy(t,null,v,C,b,R)):n.push(b),Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}wr(t,"unexpected end of the stream within a flow collection")}function w6e(t,e){var r,o,a=mT,n=!1,u=!1,A=e,p=0,h=!1,E,w;if(w=t.input.charCodeAt(t.position),w===124)o=!1;else if(w===62)o=!0;else return!1;for(t.kind="scalar",t.result="";w!==0;)if(w=t.input.charCodeAt(++t.position),w===43||w===45)mT===a?a=w===43?uK:c6e:wr(t,"repeat of a chomping mode identifier");else if((E=g6e(w))>=0)E===0?wr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?wr(t,"repeat of an indentation width identifier"):(A=e+E-1,u=!0);else break;if(Vg(w)){do w=t.input.charCodeAt(++t.position);while(Vg(w));if(w===35)do w=t.input.charCodeAt(++t.position);while(!Wu(w)&&w!==0)}for(;w!==0;){for(yT(t),t.lineIndent=0,w=t.input.charCodeAt(t.position);(!u||t.lineIndent<A)&&w===32;)t.lineIndent++,w=t.input.charCodeAt(++t.position);if(!u&&t.lineIndent>A&&(A=t.lineIndent),Wu(w)){p++;continue}if(t.lineIndent<A){a===uK?t.result+=Cf.repeat(` 19`,e-1))}function w6e(t,e,r){var o,a,n,u,A,p,h,C,w=t.kind,v=t.result,b;if(b=t.input.charCodeAt(t.position),wa(b)||my(b)||b===35||b===38||b===42||b===33||b===124||b===62||b===39||b===34||b===37||b===64||b===96||(b===63||b===45)&&(a=t.input.charCodeAt(t.position+1),wa(a)||r&&my(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;b!==0;){if(b===58){if(a=t.input.charCodeAt(t.position+1),wa(a)||r&&my(a))break}else if(b===35){if(o=t.input.charCodeAt(t.position-1),wa(o))break}else{if(t.position===t.lineStart&&MD(t)||r&&my(b))break;if(Wu(b))if(p=t.line,h=t.lineStart,C=t.lineIndent,Wi(t,!1,-1),t.lineIndent>=e){A=!0,b=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=C;break}}A&&(Gp(t,n,u,!1),IT(t,t.line-p),n=u=t.position,A=!1),Jg(b)||(u=t.position+1),b=t.input.charCodeAt(++t.position)}return Gp(t,n,u,!1),t.result?!0:(t.kind=w,t.result=v,!1)}function B6e(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Gp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else Wu(r)?(Gp(t,o,a,!0),IT(t,Wi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&MD(t)?wr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);wr(t,"unexpected end of the stream within a single quoted scalar")}function v6e(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return Gp(t,r,t.position,!0),t.position++,!0;if(A===92){if(Gp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),Wu(A))Wi(t,!1,e);else if(A<256&&vK[A])t.result+=DK[A],t.position++;else if((u=y6e(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=m6e(A))>=0?n=(n<<4)+u:wr(t,"expected hexadecimal character");t.result+=C6e(n),t.position++}else wr(t,"unknown escape sequence");r=o=t.position}else Wu(A)?(Gp(t,r,o,!0),IT(t,Wi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&MD(t)?wr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}wr(t,"unexpected end of the stream within a double quoted scalar")}function D6e(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,C,w,v={},b,E,R,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,w=!1,n=[];else if(L===123)p=125,w=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=w?"mapping":"sequence",t.result=n,!0;r||wr(t,"missed comma between flow collection entries"),E=b=R=null,h=C=!1,L===63&&(A=t.input.charCodeAt(t.position+1),wa(A)&&(h=C=!0,t.position++,Wi(t,!0,e))),o=t.line,Ey(t,e,ND,!1,!0),E=t.tag,b=t.result,Wi(t,!0,e),L=t.input.charCodeAt(t.position),(C||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Wi(t,!0,e),Ey(t,e,ND,!1,!0),R=t.result),w?yy(t,n,v,E,b,R):h?n.push(yy(t,null,v,E,b,R)):n.push(b),Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}wr(t,"unexpected end of the stream within a flow collection")}function S6e(t,e){var r,o,a=ET,n=!1,u=!1,A=e,p=0,h=!1,C,w;if(w=t.input.charCodeAt(t.position),w===124)o=!1;else if(w===62)o=!0;else return!1;for(t.kind="scalar",t.result="";w!==0;)if(w=t.input.charCodeAt(++t.position),w===43||w===45)ET===a?a=w===43?fK:p6e:wr(t,"repeat of a chomping mode identifier");else if((C=E6e(w))>=0)C===0?wr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?wr(t,"repeat of an indentation width identifier"):(A=e+C-1,u=!0);else break;if(Jg(w)){do w=t.input.charCodeAt(++t.position);while(Jg(w));if(w===35)do w=t.input.charCodeAt(++t.position);while(!Wu(w)&&w!==0)}for(;w!==0;){for(CT(t),t.lineIndent=0,w=t.input.charCodeAt(t.position);(!u||t.lineIndent<A)&&w===32;)t.lineIndent++,w=t.input.charCodeAt(++t.position);if(!u&&t.lineIndent>A&&(A=t.lineIndent),Wu(w)){p++;continue}if(t.lineIndent<A){a===fK?t.result+=Cf.repeat(`
20`,n?1+p:p):a===mT&&n&&(t.result+=` 20`,n?1+p:p):a===ET&&n&&(t.result+=`
21`);break}for(o?Vg(w)?(h=!0,t.result+=Cf.repeat(` 21`);break}for(o?Jg(w)?(h=!0,t.result+=Cf.repeat(`
22`,n?1+p:p)):h?(h=!1,t.result+=Cf.repeat(` 22`,n?1+p:p)):h?(h=!1,t.result+=Cf.repeat(`
23`,p+1)):p===0?n&&(t.result+=" "):t.result+=Cf.repeat(` 23`,p+1)):p===0?n&&(t.result+=" "):t.result+=Cf.repeat(`
24`,p):t.result+=Cf.repeat(` 24`,p):t.result+=Cf.repeat(`
25`,n?1+p:p),n=!0,u=!0,p=0,r=t.position;!Wu(w)&&w!==0;)w=t.input.charCodeAt(++t.position);qp(t,r,t.position,!1)}return!0}function gK(t,e){var r,o=t.tag,a=t.anchor,n=[],u,A=!1,p;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),p=t.input.charCodeAt(t.position);p!==0&&!(p!==45||(u=t.input.charCodeAt(t.position+1),!Ia(u)));){if(A=!0,t.position++,Wi(t,!0,-1)&&t.lineIndent<=e){n.push(null),p=t.input.charCodeAt(t.position);continue}if(r=t.line,Cy(t,e,CK,!1,!0),n.push(t.result),Wi(t,!0,-1),p=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&p!==0)wr(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return A?(t.tag=o,t.anchor=a,t.kind="sequence",t.result=n,!0):!1}function B6e(t,e,r){var o,a,n,u,A=t.tag,p=t.anchor,h={},E={},w=null,v=null,b=null,C=!1,R=!1,L;for(t.anchor!==null&&(t.anchorMap[t.anchor]=h),L=t.input.charCodeAt(t.position);L!==0;){if(o=t.input.charCodeAt(t.position+1),n=t.line,u=t.position,(L===63||L===58)&&Ia(o))L===63?(C&&(yy(t,h,E,w,v,null),w=v=b=null),R=!0,C=!0,a=!0):C?(C=!1,a=!0):wr(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,L=o;else if(Cy(t,r,yK,!1,!0))if(t.line===n){for(L=t.input.charCodeAt(t.position);Vg(L);)L=t.input.charCodeAt(++t.position);if(L===58)L=t.input.charCodeAt(++t.position),Ia(L)||wr(t,"a whitespace character is expected after the key-value separator within a block mapping"),C&&(yy(t,h,E,w,v,null),w=v=b=null),R=!0,C=!1,a=!1,w=t.tag,v=t.result;else if(R)wr(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=A,t.anchor=p,!0}else if(R)wr(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=A,t.anchor=p,!0;else break;if((t.line===n||t.lineIndent>e)&&(Cy(t,e,TD,!0,a)&&(C?v=t.result:b=t.result),C||(yy(t,h,E,w,v,b,n,u),w=v=b=null),Wi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)wr(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return C&&yy(t,h,E,w,v,null),R&&(t.tag=A,t.anchor=p,t.kind="mapping",t.result=h),R}function v6e(t){var e,r=!1,o=!1,a,n,u;if(u=t.input.charCodeAt(t.position),u!==33)return!1;if(t.tag!==null&&wr(t,"duplication of a tag property"),u=t.input.charCodeAt(++t.position),u===60?(r=!0,u=t.input.charCodeAt(++t.position)):u===33?(o=!0,a="!!",u=t.input.charCodeAt(++t.position)):a="!",e=t.position,r){do u=t.input.charCodeAt(++t.position);while(u!==0&&u!==62);t.position<t.length?(n=t.input.slice(e,t.position),u=t.input.charCodeAt(++t.position)):wr(t,"unexpected end of the stream within a verbatim tag")}else{for(;u!==0&&!Ia(u);)u===33&&(o?wr(t,"tag suffix cannot contain exclamation marks"):(a=t.input.slice(e-1,t.position+1),EK.test(a)||wr(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),u=t.input.charCodeAt(++t.position);n=t.input.slice(e,t.position),f6e.test(n)&&wr(t,"tag suffix cannot contain flow indicator characters")}return n&&!IK.test(n)&&wr(t,"tag name cannot contain such characters: "+n),r?t.tag=n:jp.call(t.tagMap,a)?t.tag=t.tagMap[a]+n:a==="!"?t.tag="!"+n:a==="!!"?t.tag="tag:yaml.org,2002:"+n:wr(t,'undeclared tag handle "'+a+'"'),!0}function D6e(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&wr(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!Ia(r)&&!my(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&wr(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function S6e(t){var e,r,o;if(o=t.input.charCodeAt(t.position),o!==42)return!1;for(o=t.input.charCodeAt(++t.position),e=t.position;o!==0&&!Ia(o)&&!my(o);)o=t.input.charCodeAt(++t.position);return t.position===e&&wr(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),jp.call(t.anchorMap,r)||wr(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],Wi(t,!0,-1),!0}function Cy(t,e,r,o,a){var n,u,A,p=1,h=!1,E=!1,w,v,b,C,R;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,n=u=A=TD===r||CK===r,o&&Wi(t,!0,-1)&&(h=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),p===1)for(;v6e(t)||D6e(t);)Wi(t,!0,-1)?(h=!0,A=n,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):A=!1;if(A&&(A=h||a),(p===1||TD===r)&&(RD===r||yK===r?C=e:C=e+1,R=t.position-t.lineStart,p===1?A&&(gK(t,R)||B6e(t,R,C))||I6e(t,C)?E=!0:(u&&w6e(t,C)||C6e(t,C)||E6e(t,C)?E=!0:S6e(t)?(E=!0,(t.tag!==null||t.anchor!==null)&&wr(t,"alias node should not have any properties")):y6e(t,C,RD===r)&&(E=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):p===0&&(E=A&&gK(t,R))),t.tag!==null&&t.tag!=="!")if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&wr(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),w=0,v=t.implicitTypes.length;w<v;w+=1)if(b=t.implicitTypes[w],b.resolve(t.result)){t.result=b.construct(t.result),t.tag=b.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else jp.call(t.typeMap[t.kind||"fallback"],t.tag)?(b=t.typeMap[t.kind||"fallback"][t.tag],t.result!==null&&b.kind!==t.kind&&wr(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+b.kind+'", not "'+t.kind+'"'),b.resolve(t.result)?(t.result=b.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):wr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):wr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function P6e(t){var e=t.position,r,o,a,n=!1,u;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(u=t.input.charCodeAt(t.position))!==0&&(Wi(t,!0,-1),u=t.input.charCodeAt(t.position),!(t.lineIndent>0||u!==37));){for(n=!0,u=t.input.charCodeAt(++t.position),r=t.position;u!==0&&!Ia(u);)u=t.input.charCodeAt(++t.position);for(o=t.input.slice(r,t.position),a=[],o.length<1&&wr(t,"directive name must not be less than one character in length");u!==0;){for(;Vg(u);)u=t.input.charCodeAt(++t.position);if(u===35){do u=t.input.charCodeAt(++t.position);while(u!==0&&!Wu(u));break}if(Wu(u))break;for(r=t.position;u!==0&&!Ia(u);)u=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}u!==0&&yT(t),jp.call(pK,o)?pK[o](t,o,a):ND(t,'unknown document directive "'+o+'"')}if(Wi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Wi(t,!0,-1)):n&&wr(t,"directives end mark is expected"),Cy(t,t.lineIndent-1,TD,!1,!0),Wi(t,!0,-1),t.checkLineBreaks&&A6e.test(t.input.slice(e,t.position))&&ND(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&LD(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Wi(t,!0,-1));return}if(t.position<t.length-1)wr(t,"end of the stream or a document separator is expected");else return}function DK(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=` 25`,n?1+p:p),n=!0,u=!0,p=0,r=t.position;!Wu(w)&&w!==0;)w=t.input.charCodeAt(++t.position);Gp(t,r,t.position,!1)}return!0}function mK(t,e){var r,o=t.tag,a=t.anchor,n=[],u,A=!1,p;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),p=t.input.charCodeAt(t.position);p!==0&&!(p!==45||(u=t.input.charCodeAt(t.position+1),!wa(u)));){if(A=!0,t.position++,Wi(t,!0,-1)&&t.lineIndent<=e){n.push(null),p=t.input.charCodeAt(t.position);continue}if(r=t.line,Ey(t,e,IK,!1,!0),n.push(t.result),Wi(t,!0,-1),p=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&p!==0)wr(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return A?(t.tag=o,t.anchor=a,t.kind="sequence",t.result=n,!0):!1}function P6e(t,e,r){var o,a,n,u,A=t.tag,p=t.anchor,h={},C={},w=null,v=null,b=null,E=!1,R=!1,L;for(t.anchor!==null&&(t.anchorMap[t.anchor]=h),L=t.input.charCodeAt(t.position);L!==0;){if(o=t.input.charCodeAt(t.position+1),n=t.line,u=t.position,(L===63||L===58)&&wa(o))L===63?(E&&(yy(t,h,C,w,v,null),w=v=b=null),R=!0,E=!0,a=!0):E?(E=!1,a=!0):wr(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,L=o;else if(Ey(t,r,CK,!1,!0))if(t.line===n){for(L=t.input.charCodeAt(t.position);Jg(L);)L=t.input.charCodeAt(++t.position);if(L===58)L=t.input.charCodeAt(++t.position),wa(L)||wr(t,"a whitespace character is expected after the key-value separator within a block mapping"),E&&(yy(t,h,C,w,v,null),w=v=b=null),R=!0,E=!1,a=!1,w=t.tag,v=t.result;else if(R)wr(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=A,t.anchor=p,!0}else if(R)wr(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=A,t.anchor=p,!0;else break;if((t.line===n||t.lineIndent>e)&&(Ey(t,e,LD,!0,a)&&(E?v=t.result:b=t.result),E||(yy(t,h,C,w,v,b,n,u),w=v=b=null),Wi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)wr(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return E&&yy(t,h,C,w,v,null),R&&(t.tag=A,t.anchor=p,t.kind="mapping",t.result=h),R}function x6e(t){var e,r=!1,o=!1,a,n,u;if(u=t.input.charCodeAt(t.position),u!==33)return!1;if(t.tag!==null&&wr(t,"duplication of a tag property"),u=t.input.charCodeAt(++t.position),u===60?(r=!0,u=t.input.charCodeAt(++t.position)):u===33?(o=!0,a="!!",u=t.input.charCodeAt(++t.position)):a="!",e=t.position,r){do u=t.input.charCodeAt(++t.position);while(u!==0&&u!==62);t.position<t.length?(n=t.input.slice(e,t.position),u=t.input.charCodeAt(++t.position)):wr(t,"unexpected end of the stream within a verbatim tag")}else{for(;u!==0&&!wa(u);)u===33&&(o?wr(t,"tag suffix cannot contain exclamation marks"):(a=t.input.slice(e-1,t.position+1),wK.test(a)||wr(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),u=t.input.charCodeAt(++t.position);n=t.input.slice(e,t.position),d6e.test(n)&&wr(t,"tag suffix cannot contain flow indicator characters")}return n&&!BK.test(n)&&wr(t,"tag name cannot contain such characters: "+n),r?t.tag=n:Wp.call(t.tagMap,a)?t.tag=t.tagMap[a]+n:a==="!"?t.tag="!"+n:a==="!!"?t.tag="tag:yaml.org,2002:"+n:wr(t,'undeclared tag handle "'+a+'"'),!0}function b6e(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&wr(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!wa(r)&&!my(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&wr(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function Q6e(t){var e,r,o;if(o=t.input.charCodeAt(t.position),o!==42)return!1;for(o=t.input.charCodeAt(++t.position),e=t.position;o!==0&&!wa(o)&&!my(o);)o=t.input.charCodeAt(++t.position);return t.position===e&&wr(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),Wp.call(t.anchorMap,r)||wr(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],Wi(t,!0,-1),!0}function Ey(t,e,r,o,a){var n,u,A,p=1,h=!1,C=!1,w,v,b,E,R;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,n=u=A=LD===r||IK===r,o&&Wi(t,!0,-1)&&(h=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),p===1)for(;x6e(t)||b6e(t);)Wi(t,!0,-1)?(h=!0,A=n,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):A=!1;if(A&&(A=h||a),(p===1||LD===r)&&(ND===r||CK===r?E=e:E=e+1,R=t.position-t.lineStart,p===1?A&&(mK(t,R)||P6e(t,R,E))||D6e(t,E)?C=!0:(u&&S6e(t,E)||B6e(t,E)||v6e(t,E)?C=!0:Q6e(t)?(C=!0,(t.tag!==null||t.anchor!==null)&&wr(t,"alias node should not have any properties")):w6e(t,E,ND===r)&&(C=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):p===0&&(C=A&&mK(t,R))),t.tag!==null&&t.tag!=="!")if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&wr(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),w=0,v=t.implicitTypes.length;w<v;w+=1)if(b=t.implicitTypes[w],b.resolve(t.result)){t.result=b.construct(t.result),t.tag=b.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else Wp.call(t.typeMap[t.kind||"fallback"],t.tag)?(b=t.typeMap[t.kind||"fallback"][t.tag],t.result!==null&&b.kind!==t.kind&&wr(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+b.kind+'", not "'+t.kind+'"'),b.resolve(t.result)?(t.result=b.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):wr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):wr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||C}function k6e(t){var e=t.position,r,o,a,n=!1,u;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(u=t.input.charCodeAt(t.position))!==0&&(Wi(t,!0,-1),u=t.input.charCodeAt(t.position),!(t.lineIndent>0||u!==37));){for(n=!0,u=t.input.charCodeAt(++t.position),r=t.position;u!==0&&!wa(u);)u=t.input.charCodeAt(++t.position);for(o=t.input.slice(r,t.position),a=[],o.length<1&&wr(t,"directive name must not be less than one character in length");u!==0;){for(;Jg(u);)u=t.input.charCodeAt(++t.position);if(u===35){do u=t.input.charCodeAt(++t.position);while(u!==0&&!Wu(u));break}if(Wu(u))break;for(r=t.position;u!==0&&!wa(u);)u=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}u!==0&&CT(t),Wp.call(gK,o)?gK[o](t,o,a):OD(t,'unknown document directive "'+o+'"')}if(Wi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Wi(t,!0,-1)):n&&wr(t,"directives end mark is expected"),Ey(t,t.lineIndent-1,LD,!1,!0),Wi(t,!0,-1),t.checkLineBreaks&&g6e.test(t.input.slice(e,t.position))&&OD(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&MD(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Wi(t,!0,-1));return}if(t.position<t.length-1)wr(t,"end of the stream or a document separator is expected");else return}function PK(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
26`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new m6e(t,e),o=t.indexOf("\0");for(o!==-1&&(r.position=o,wr(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)P6e(r);return r.documents}function SK(t,e,r){e!==null&&typeof e=="object"&&typeof r>"u"&&(r=e,e=null);var o=DK(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a<n;a+=1)e(o[a])}function PK(t,e){var r=DK(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new dK("expected a single document in the stream, but found more")}}function x6e(t,e,r){return typeof e=="object"&&e!==null&&typeof r>"u"&&(r=e,e=null),SK(t,e,Cf.extend({schema:mK},r))}function b6e(t,e){return PK(t,Cf.extend({schema:mK},e))}GI.exports.loadAll=SK;GI.exports.load=PK;GI.exports.safeLoadAll=x6e;GI.exports.safeLoad=b6e});var XK=U((ebt,BT)=>{"use strict";var YI=Gg(),KI=hy(),Q6e=jI(),k6e=dy(),LK=Object.prototype.toString,OK=Object.prototype.hasOwnProperty,F6e=9,WI=10,R6e=13,T6e=32,N6e=33,L6e=34,MK=35,O6e=37,M6e=38,U6e=39,_6e=42,UK=44,H6e=45,_K=58,q6e=61,j6e=62,G6e=63,W6e=64,HK=91,qK=93,Y6e=96,jK=123,K6e=124,GK=125,wo={};wo[0]="\\0";wo[7]="\\a";wo[8]="\\b";wo[9]="\\t";wo[10]="\\n";wo[11]="\\v";wo[12]="\\f";wo[13]="\\r";wo[27]="\\e";wo[34]='\\"';wo[92]="\\\\";wo[133]="\\N";wo[160]="\\_";wo[8232]="\\L";wo[8233]="\\P";var V6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function J6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a<n;a+=1)u=o[a],A=String(e[u]),u.slice(0,2)==="!!"&&(u="tag:yaml.org,2002:"+u.slice(2)),p=t.compiledTypeMap.fallback[u],p&&OK.call(p.styleAliases,A)&&(A=p.styleAliases[A]),r[u]=A;return r}function bK(t){var e,r,o;if(e=t.toString(16).toUpperCase(),t<=255)r="x",o=2;else if(t<=65535)r="u",o=4;else if(t<=4294967295)r="U",o=8;else throw new KI("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+YI.repeat("0",o-e.length)+e}function z6e(t){this.schema=t.schema||Q6e,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=YI.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=J6e(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function QK(t,e){for(var r=YI.repeat(" ",e),o=0,a=-1,n="",u,A=t.length;o<A;)a=t.indexOf(` 26`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new I6e(t,e),o=t.indexOf("\0");for(o!==-1&&(r.position=o,wr(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)k6e(r);return r.documents}function xK(t,e,r){e!==null&&typeof e=="object"&&typeof r>"u"&&(r=e,e=null);var o=PK(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a<n;a+=1)e(o[a])}function bK(t,e){var r=PK(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new yK("expected a single document in the stream, but found more")}}function F6e(t,e,r){return typeof e=="object"&&e!==null&&typeof r>"u"&&(r=e,e=null),xK(t,e,Cf.extend({schema:EK},r))}function R6e(t,e){return bK(t,Cf.extend({schema:EK},e))}WI.exports.loadAll=xK;WI.exports.load=bK;WI.exports.safeLoadAll=F6e;WI.exports.safeLoad=R6e});var $K=U((sbt,DT)=>{"use strict";var KI=Wg(),VI=hy(),T6e=GI(),N6e=dy(),MK=Object.prototype.toString,UK=Object.prototype.hasOwnProperty,L6e=9,YI=10,O6e=13,M6e=32,U6e=33,_6e=34,_K=35,H6e=37,q6e=38,j6e=39,G6e=42,HK=44,W6e=45,qK=58,Y6e=61,K6e=62,V6e=63,J6e=64,jK=91,GK=93,z6e=96,WK=123,X6e=124,YK=125,wo={};wo[0]="\\0";wo[7]="\\a";wo[8]="\\b";wo[9]="\\t";wo[10]="\\n";wo[11]="\\v";wo[12]="\\f";wo[13]="\\r";wo[27]="\\e";wo[34]='\\"';wo[92]="\\\\";wo[133]="\\N";wo[160]="\\_";wo[8232]="\\L";wo[8233]="\\P";var Z6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function $6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a<n;a+=1)u=o[a],A=String(e[u]),u.slice(0,2)==="!!"&&(u="tag:yaml.org,2002:"+u.slice(2)),p=t.compiledTypeMap.fallback[u],p&&UK.call(p.styleAliases,A)&&(A=p.styleAliases[A]),r[u]=A;return r}function kK(t){var e,r,o;if(e=t.toString(16).toUpperCase(),t<=255)r="x",o=2;else if(t<=65535)r="u",o=4;else if(t<=4294967295)r="U",o=8;else throw new VI("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+KI.repeat("0",o-e.length)+e}function eqe(t){this.schema=t.schema||T6e,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=KI.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=$6e(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function FK(t,e){for(var r=KI.repeat(" ",e),o=0,a=-1,n="",u,A=t.length;o<A;)a=t.indexOf(`
27`,o),a===-1?(u=t.slice(o),o=A):(u=t.slice(o,a+1),o=a+1),u.length&&u!==` 27`,o),a===-1?(u=t.slice(o),o=A):(u=t.slice(o,a+1),o=a+1),u.length&&u!==`
28`&&(n+=r),n+=u;return n}function ET(t,e){return` 28`&&(n+=r),n+=u;return n}function wT(t,e){return`
29`+YI.repeat(" ",t.indent*e)}function X6e(t,e){var r,o,a;for(r=0,o=t.implicitTypes.length;r<o;r+=1)if(a=t.implicitTypes[r],a.resolve(e))return!0;return!1}function wT(t){return t===T6e||t===F6e}function Ey(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==65279||65536<=t&&t<=1114111}function Z6e(t){return Ey(t)&&!wT(t)&&t!==65279&&t!==R6e&&t!==WI}function kK(t,e){return Ey(t)&&t!==65279&&t!==UK&&t!==HK&&t!==qK&&t!==jK&&t!==GK&&t!==_K&&(t!==MK||e&&Z6e(e))}function $6e(t){return Ey(t)&&t!==65279&&!wT(t)&&t!==H6e&&t!==G6e&&t!==_K&&t!==UK&&t!==HK&&t!==qK&&t!==jK&&t!==GK&&t!==MK&&t!==M6e&&t!==_6e&&t!==N6e&&t!==K6e&&t!==q6e&&t!==j6e&&t!==U6e&&t!==L6e&&t!==O6e&&t!==W6e&&t!==Y6e}function WK(t){var e=/^\n* /;return e.test(t)}var YK=1,KK=2,VK=3,JK=4,OD=5;function eqe(t,e,r,o,a){var n,u,A,p=!1,h=!1,E=o!==-1,w=-1,v=$6e(t.charCodeAt(0))&&!wT(t.charCodeAt(t.length-1));if(e)for(n=0;n<t.length;n++){if(u=t.charCodeAt(n),!Ey(u))return OD;A=n>0?t.charCodeAt(n-1):null,v=v&&kK(u,A)}else{for(n=0;n<t.length;n++){if(u=t.charCodeAt(n),u===WI)p=!0,E&&(h=h||n-w-1>o&&t[w+1]!==" ",w=n);else if(!Ey(u))return OD;A=n>0?t.charCodeAt(n-1):null,v=v&&kK(u,A)}h=h||E&&n-w-1>o&&t[w+1]!==" "}return!p&&!h?v&&!a(t)?YK:KK:r>9&&WK(t)?OD:h?JK:VK}function tqe(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&V6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return X6e(t,p)}switch(eqe(e,u,t.indent,n,A)){case YK:return e;case KK:return"'"+e.replace(/'/g,"''")+"'";case VK:return"|"+FK(e,t.indent)+RK(QK(e,a));case JK:return">"+FK(e,t.indent)+RK(QK(rqe(e,n),a));case OD:return'"'+nqe(e,n)+'"';default:throw new KI("impossible error: invalid scalar style")}}()}function FK(t,e){var r=WK(t)?String(e):"",o=t[t.length-1]===` 29`+KI.repeat(" ",t.indent*e)}function tqe(t,e){var r,o,a;for(r=0,o=t.implicitTypes.length;r<o;r+=1)if(a=t.implicitTypes[r],a.resolve(e))return!0;return!1}function vT(t){return t===M6e||t===L6e}function Cy(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==65279||65536<=t&&t<=1114111}function rqe(t){return Cy(t)&&!vT(t)&&t!==65279&&t!==O6e&&t!==YI}function RK(t,e){return Cy(t)&&t!==65279&&t!==HK&&t!==jK&&t!==GK&&t!==WK&&t!==YK&&t!==qK&&(t!==_K||e&&rqe(e))}function nqe(t){return Cy(t)&&t!==65279&&!vT(t)&&t!==W6e&&t!==V6e&&t!==qK&&t!==HK&&t!==jK&&t!==GK&&t!==WK&&t!==YK&&t!==_K&&t!==q6e&&t!==G6e&&t!==U6e&&t!==X6e&&t!==Y6e&&t!==K6e&&t!==j6e&&t!==_6e&&t!==H6e&&t!==J6e&&t!==z6e}function KK(t){var e=/^\n* /;return e.test(t)}var VK=1,JK=2,zK=3,XK=4,UD=5;function iqe(t,e,r,o,a){var n,u,A,p=!1,h=!1,C=o!==-1,w=-1,v=nqe(t.charCodeAt(0))&&!vT(t.charCodeAt(t.length-1));if(e)for(n=0;n<t.length;n++){if(u=t.charCodeAt(n),!Cy(u))return UD;A=n>0?t.charCodeAt(n-1):null,v=v&&RK(u,A)}else{for(n=0;n<t.length;n++){if(u=t.charCodeAt(n),u===YI)p=!0,C&&(h=h||n-w-1>o&&t[w+1]!==" ",w=n);else if(!Cy(u))return UD;A=n>0?t.charCodeAt(n-1):null,v=v&&RK(u,A)}h=h||C&&n-w-1>o&&t[w+1]!==" "}return!p&&!h?v&&!a(t)?VK:JK:r>9&&KK(t)?UD:h?XK:zK}function sqe(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&Z6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return tqe(t,p)}switch(iqe(e,u,t.indent,n,A)){case VK:return e;case JK:return"'"+e.replace(/'/g,"''")+"'";case zK:return"|"+TK(e,t.indent)+NK(FK(e,a));case XK:return">"+TK(e,t.indent)+NK(FK(oqe(e,n),a));case UD:return'"'+aqe(e,n)+'"';default:throw new VI("impossible error: invalid scalar style")}}()}function TK(t,e){var r=KK(t)?String(e):"",o=t[t.length-1]===`
30`,a=o&&(t[t.length-2]===` 30`,a=o&&(t[t.length-2]===`
31`||t===` 31`||t===`
32`),n=a?"+":o?"":"-";return r+n+` 32`),n=a?"+":o?"":"-";return r+n+`
33`}function RK(t){return t[t.length-1]===` 33`}function NK(t){return t[t.length-1]===`
34`?t.slice(0,-1):t}function rqe(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(` 34`?t.slice(0,-1):t}function oqe(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(`
35`);return h=h!==-1?h:t.length,r.lastIndex=h,TK(t.slice(0,h),e)}(),a=t[0]===` 35`);return h=h!==-1?h:t.length,r.lastIndex=h,LK(t.slice(0,h),e)}(),a=t[0]===`
36`||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?` 36`||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?`
37`:"")+TK(p,e),a=n}return o}function TK(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=` 37`:"")+LK(p,e),a=n}return o}function LK(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=`
38`+t.slice(a,n),a=n+1),u=A;return p+=` 38`+t.slice(a,n),a=n+1),u=A;return p+=`
39`,t.length-a>e&&u>a?p+=t.slice(a,u)+` 39`,t.length-a>e&&u>a?p+=t.slice(a,u)+`
40`+t.slice(u+1):p+=t.slice(a),p.slice(1)}function nqe(t){for(var e="",r,o,a,n=0;n<t.length;n++){if(r=t.charCodeAt(n),r>=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=bK((r-55296)*1024+o-56320+65536),n++;continue}a=wo[r],e+=!a&&Ey(r)?t[n]:a||bK(r)}return e}function iqe(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n<u;n+=1)Jg(t,e,r[n],!1,!1)&&(n!==0&&(o+=","+(t.condenseFlow?"":" ")),o+=t.dump);t.tag=a,t.dump="["+o+"]"}function sqe(t,e,r,o){var a="",n=t.tag,u,A;for(u=0,A=r.length;u<A;u+=1)Jg(t,e+1,r[u],!0,!0)&&((!o||u!==0)&&(a+=ET(t,e)),t.dump&&WI===t.dump.charCodeAt(0)?a+="-":a+="- ",a+=t.dump);t.tag=n,t.dump=a||"[]"}function oqe(t,e,r){var o="",a=t.tag,n=Object.keys(r),u,A,p,h,E;for(u=0,A=n.length;u<A;u+=1)E="",u!==0&&(E+=", "),t.condenseFlow&&(E+='"'),p=n[u],h=r[p],Jg(t,e,p,!1,!1)&&(t.dump.length>1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Jg(t,e,h,!1,!1)&&(E+=t.dump,o+=E));t.tag=a,t.dump="{"+o+"}"}function aqe(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,E,w,v;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new KI("sortKeys must be a boolean or a function");for(A=0,p=u.length;A<p;A+=1)v="",(!o||A!==0)&&(v+=ET(t,e)),h=u[A],E=r[h],Jg(t,e+1,h,!0,!0,!0)&&(w=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,w&&(t.dump&&WI===t.dump.charCodeAt(0)?v+="?":v+="? "),v+=t.dump,w&&(v+=ET(t,e)),Jg(t,e+1,E,!0,w)&&(t.dump&&WI===t.dump.charCodeAt(0)?v+=":":v+=": ",v+=t.dump,a+=v));t.tag=n,t.dump=a||"{}"}function NK(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n<u;n+=1)if(A=a[n],(A.instanceOf||A.predicate)&&(!A.instanceOf||typeof e=="object"&&e instanceof A.instanceOf)&&(!A.predicate||A.predicate(e))){if(t.tag=r?A.tag:"?",A.represent){if(p=t.styleMap[A.tag]||A.defaultStyle,LK.call(A.represent)==="[object Function]")o=A.represent(e,p);else if(OK.call(A.represent,p))o=A.represent[p](e,p);else throw new KI("!<"+A.tag+'> tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function Jg(t,e,r,o,a,n){t.tag=null,t.dump=r,NK(t,r,!1)||NK(t,r,!0);var u=LK.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(aqe(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(oqe(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(sqe(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(iqe(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&tqe(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new KI("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function lqe(t,e){var r=[],o=[],a,n;for(IT(t,r,o),a=0,n=o.length;a<n;a+=1)e.duplicates.push(r[o[a]]);e.usedDuplicates=new Array(n)}function IT(t,e,r){var o,a,n;if(t!==null&&typeof t=="object")if(a=e.indexOf(t),a!==-1)r.indexOf(a)===-1&&r.push(a);else if(e.push(t),Array.isArray(t))for(a=0,n=t.length;a<n;a+=1)IT(t[a],e,r);else for(o=Object.keys(t),a=0,n=o.length;a<n;a+=1)IT(t[o[a]],e,r)}function zK(t,e){e=e||{};var r=new z6e(e);return r.noRefs||lqe(t,r),Jg(r,0,t,!0,!0)?r.dump+` 40`+t.slice(u+1):p+=t.slice(a),p.slice(1)}function aqe(t){for(var e="",r,o,a,n=0;n<t.length;n++){if(r=t.charCodeAt(n),r>=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=kK((r-55296)*1024+o-56320+65536),n++;continue}a=wo[r],e+=!a&&Cy(r)?t[n]:a||kK(r)}return e}function lqe(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n<u;n+=1)zg(t,e,r[n],!1,!1)&&(n!==0&&(o+=","+(t.condenseFlow?"":" ")),o+=t.dump);t.tag=a,t.dump="["+o+"]"}function cqe(t,e,r,o){var a="",n=t.tag,u,A;for(u=0,A=r.length;u<A;u+=1)zg(t,e+1,r[u],!0,!0)&&((!o||u!==0)&&(a+=wT(t,e)),t.dump&&YI===t.dump.charCodeAt(0)?a+="-":a+="- ",a+=t.dump);t.tag=n,t.dump=a||"[]"}function uqe(t,e,r){var o="",a=t.tag,n=Object.keys(r),u,A,p,h,C;for(u=0,A=n.length;u<A;u+=1)C="",u!==0&&(C+=", "),t.condenseFlow&&(C+='"'),p=n[u],h=r[p],zg(t,e,p,!1,!1)&&(t.dump.length>1024&&(C+="? "),C+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),zg(t,e,h,!1,!1)&&(C+=t.dump,o+=C));t.tag=a,t.dump="{"+o+"}"}function Aqe(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,C,w,v;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new VI("sortKeys must be a boolean or a function");for(A=0,p=u.length;A<p;A+=1)v="",(!o||A!==0)&&(v+=wT(t,e)),h=u[A],C=r[h],zg(t,e+1,h,!0,!0,!0)&&(w=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,w&&(t.dump&&YI===t.dump.charCodeAt(0)?v+="?":v+="? "),v+=t.dump,w&&(v+=wT(t,e)),zg(t,e+1,C,!0,w)&&(t.dump&&YI===t.dump.charCodeAt(0)?v+=":":v+=": ",v+=t.dump,a+=v));t.tag=n,t.dump=a||"{}"}function OK(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n<u;n+=1)if(A=a[n],(A.instanceOf||A.predicate)&&(!A.instanceOf||typeof e=="object"&&e instanceof A.instanceOf)&&(!A.predicate||A.predicate(e))){if(t.tag=r?A.tag:"?",A.represent){if(p=t.styleMap[A.tag]||A.defaultStyle,MK.call(A.represent)==="[object Function]")o=A.represent(e,p);else if(UK.call(A.represent,p))o=A.represent[p](e,p);else throw new VI("!<"+A.tag+'> tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function zg(t,e,r,o,a,n){t.tag=null,t.dump=r,OK(t,r,!1)||OK(t,r,!0);var u=MK.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(Aqe(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(uqe(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var C=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(cqe(t,C,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(lqe(t,C,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&sqe(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new VI("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function fqe(t,e){var r=[],o=[],a,n;for(BT(t,r,o),a=0,n=o.length;a<n;a+=1)e.duplicates.push(r[o[a]]);e.usedDuplicates=new Array(n)}function BT(t,e,r){var o,a,n;if(t!==null&&typeof t=="object")if(a=e.indexOf(t),a!==-1)r.indexOf(a)===-1&&r.push(a);else if(e.push(t),Array.isArray(t))for(a=0,n=t.length;a<n;a+=1)BT(t[a],e,r);else for(o=Object.keys(t),a=0,n=o.length;a<n;a+=1)BT(t[o[a]],e,r)}function ZK(t,e){e=e||{};var r=new eqe(e);return r.noRefs||fqe(t,r),zg(r,0,t,!0,!0)?r.dump+`
41`:""}function cqe(t,e){return zK(t,YI.extend({schema:k6e},e))}BT.exports.dump=zK;BT.exports.safeDump=cqe});var $K=U((tbt,Pi)=>{"use strict";var MD=xK(),ZK=XK();function UD(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Pi.exports.Type=as();Pi.exports.Schema=Wg();Pi.exports.FAILSAFE_SCHEMA=kD();Pi.exports.JSON_SCHEMA=hT();Pi.exports.CORE_SCHEMA=gT();Pi.exports.DEFAULT_SAFE_SCHEMA=dy();Pi.exports.DEFAULT_FULL_SCHEMA=jI();Pi.exports.load=MD.load;Pi.exports.loadAll=MD.loadAll;Pi.exports.safeLoad=MD.safeLoad;Pi.exports.safeLoadAll=MD.safeLoadAll;Pi.exports.dump=ZK.dump;Pi.exports.safeDump=ZK.safeDump;Pi.exports.YAMLException=hy();Pi.exports.MINIMAL_SCHEMA=kD();Pi.exports.SAFE_SCHEMA=dy();Pi.exports.DEFAULT_SCHEMA=jI();Pi.exports.scan=UD("scan");Pi.exports.parse=UD("parse");Pi.exports.compose=UD("compose");Pi.exports.addConstructor=UD("addConstructor")});var tV=U((rbt,eV)=>{"use strict";var uqe=$K();eV.exports=uqe});var nV=U((nbt,rV)=>{"use strict";function Aqe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function zg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,zg)}Aqe(zg,Error);zg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w<h.parts.length;w++)E+=h.parts[w]instanceof Array?n(h.parts[w][0])+"-"+n(h.parts[w][1]):n(h.parts[w]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),w,v;for(w=0;w<h.length;w++)E[w]=u(h[w]);if(E.sort(),E.length>0){for(w=1,v=1;w<E.length;w++)E[w-1]!==E[w]&&(E[v]=E[w],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function fqe(t,e){e=e!==void 0?e:{};var r={},o={Start:Cu},a=Cu,n=function(ee){return[].concat(...ee)},u="-",A=Dn("-",!1),p=function(ee){return ee},h=function(ee){return Object.assign({},...ee)},E="#",w=Dn("#",!1),v=yc(),b=function(){return{}},C=":",R=Dn(":",!1),L=function(ee,we){return{[ee]:we}},_=",",V=Dn(",",!1),re=function(ee,we){return we},oe=function(ee,we,je){return Object.assign({},...[ee].concat(we).map(Be=>({[Be]:je})))},pe=function(ee){return ee},he=function(ee){return ee},ve=ra("correct indentation"),ge=" ",le=Dn(" ",!1),Pe=function(ee){return ee.length===oa*Ha},g=function(ee){return ee.length===(oa+1)*Ha},De=function(){return oa++,!0},Ce=function(){return oa--,!0},de=function(){return xA()},ne=ra("pseudostring"),Z=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,me=ui(["\r",` 41`:""}function pqe(t,e){return ZK(t,KI.extend({schema:N6e},e))}DT.exports.dump=ZK;DT.exports.safeDump=pqe});var tV=U((obt,Pi)=>{"use strict";var _D=QK(),eV=$K();function HD(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Pi.exports.Type=as();Pi.exports.Schema=Yg();Pi.exports.FAILSAFE_SCHEMA=RD();Pi.exports.JSON_SCHEMA=dT();Pi.exports.CORE_SCHEMA=mT();Pi.exports.DEFAULT_SAFE_SCHEMA=dy();Pi.exports.DEFAULT_FULL_SCHEMA=GI();Pi.exports.load=_D.load;Pi.exports.loadAll=_D.loadAll;Pi.exports.safeLoad=_D.safeLoad;Pi.exports.safeLoadAll=_D.safeLoadAll;Pi.exports.dump=eV.dump;Pi.exports.safeDump=eV.safeDump;Pi.exports.YAMLException=hy();Pi.exports.MINIMAL_SCHEMA=RD();Pi.exports.SAFE_SCHEMA=dy();Pi.exports.DEFAULT_SCHEMA=GI();Pi.exports.scan=HD("scan");Pi.exports.parse=HD("parse");Pi.exports.compose=HD("compose");Pi.exports.addConstructor=HD("addConstructor")});var nV=U((abt,rV)=>{"use strict";var hqe=tV();rV.exports=hqe});var sV=U((lbt,iV)=>{"use strict";function gqe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Xg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Xg)}gqe(Xg,Error);Xg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var C="",w;for(w=0;w<h.parts.length;w++)C+=h.parts[w]instanceof Array?n(h.parts[w][0])+"-"+n(h.parts[w][1]):n(h.parts[w]);return"["+(h.inverted?"^":"")+C+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(C){return"\\x0"+o(C)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(C){return"\\x"+o(C)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(C){return"\\x0"+o(C)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(C){return"\\x"+o(C)})}function u(h){return r[h.type](h)}function A(h){var C=new Array(h.length),w,v;for(w=0;w<h.length;w++)C[w]=u(h[w]);if(C.sort(),C.length>0){for(w=1,v=1;w<C.length;w++)C[w-1]!==C[w]&&(C[v]=C[w],v++);C.length=v}switch(C.length){case 1:return C[0];case 2:return C[0]+" or "+C[1];default:return C.slice(0,-1).join(", ")+", or "+C[C.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function dqe(t,e){e=e!==void 0?e:{};var r={},o={Start:Eu},a=Eu,n=function(ee){return[].concat(...ee)},u="-",A=Dn("-",!1),p=function(ee){return ee},h=function(ee){return Object.assign({},...ee)},C="#",w=Dn("#",!1),v=Ec(),b=function(){return{}},E=":",R=Dn(":",!1),L=function(ee,we){return{[ee]:we}},_=",",V=Dn(",",!1),re=function(ee,we){return we},ae=function(ee,we,je){return Object.assign({},...[ee].concat(we).map(Be=>({[Be]:je})))},he=function(ee){return ee},pe=function(ee){return ee},De=na("correct indentation"),ge=" ",le=Dn(" ",!1),Pe=function(ee){return ee.length===aa*qa},g=function(ee){return ee.length===(aa+1)*qa},ve=function(){return aa++,!0},Ee=function(){return aa--,!0},de=function(){return bA()},ne=na("pseudostring"),Z=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,me=ui(["\r",`
42`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),be=/^[^\r\n\t ,\][{}:#"']/,ut=ui(["\r",` 42`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),be=/^[^\r\n\t ,\][{}:#"']/,ut=ui(["\r",`
43`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),H=function(){return xA().replace(/^ *| *$/g,"")},yt="--",Me=Dn("--",!1),Te=/^[a-zA-Z\/0-9]/,Qe=ui([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),_e=/^[^\r\n\t :,]/,qe=ui(["\r",` 43`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),H=function(){return bA().replace(/^ *| *$/g,"")},yt="--",Me=Dn("--",!1),Te=/^[a-zA-Z\/0-9]/,Qe=ui([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),_e=/^[^\r\n\t :,]/,qe=ui(["\r",`
44`," "," ",":",","],!0,!1),At="null",Oe=Dn("null",!1),x=function(){return null},I="true",P=Dn("true",!1),y=function(){return!0},F="false",J=Dn("false",!1),X=function(){return!1},$=ra("string"),ie='"',ke=Dn('"',!1),Ne=function(){return""},st=function(ee){return ee},ht=function(ee){return ee.join("")},Ut=/^[^"\\\0-\x1F\x7F]/,Xt=ui(['"',"\\",["\0",""],"\x7F"],!0,!1),Pt='\\"',tn=Dn('\\"',!1),Dr=function(){return'"'},fr="\\\\",Br=Dn("\\\\",!1),jr=function(){return"\\"},Hn="\\/",bs=Dn("\\/",!1),ki=function(){return"/"},gs="\\b",to=Dn("\\b",!1),Di=function(){return"\b"},Qs="\\f",ro=Dn("\\f",!1),pc=function(){return"\f"},gu="\\n",ap=Dn("\\n",!1),lp=function(){return` 44`," "," ",":",","],!0,!1),At="null",Oe=Dn("null",!1),x=function(){return null},I="true",P=Dn("true",!1),y=function(){return!0},F="false",z=Dn("false",!1),X=function(){return!1},$=na("string"),ie='"',ke=Dn('"',!1),Ne=function(){return""},st=function(ee){return ee},ht=function(ee){return ee.join("")},Ut=/^[^"\\\0-\x1F\x7F]/,Xt=ui(['"',"\\",["\0",""],"\x7F"],!0,!1),xt='\\"',tn=Dn('\\"',!1),Dr=function(){return'"'},fr="\\\\",Br=Dn("\\\\",!1),jr=function(){return"\\"},Hn="\\/",bs=Dn("\\/",!1),ki=function(){return"/"},gs="\\b",to=Dn("\\b",!1),Di=function(){return"\b"},Qs="\\f",ro=Dn("\\f",!1),hc=function(){return"\f"},gu="\\n",cp=Dn("\\n",!1),up=function(){return`
45`},ks="\\r",En=Dn("\\r",!1),no=function(){return"\r"},Fs="\\t",Cl=Dn("\\t",!1),El=function(){return" "},io="\\u",Ue=Dn("\\u",!1),Fn=function(ee,we,je,Be){return String.fromCharCode(parseInt(`0x${ee}${we}${je}${Be}`))},Fi=/^[0-9a-fA-F]/,Rn=ui([["0","9"],["a","f"],["A","F"]],!1,!1),Ui=ra("blank space"),Zt=/^[ \t]/,Ri=ui([" "," "],!1,!1),$n=ra("white space"),Ma=/^[ \t\n\r]/,$t=ui([" "," ",` 45`},ks="\\r",Cn=Dn("\\r",!1),no=function(){return"\r"},Fs="\\t",Cl=Dn("\\t",!1),Il=function(){return" "},io="\\u",Ue=Dn("\\u",!1),Fn=function(ee,we,je,Be){return String.fromCharCode(parseInt(`0x${ee}${we}${je}${Be}`))},Fi=/^[0-9a-fA-F]/,Rn=ui([["0","9"],["a","f"],["A","F"]],!1,!1),Ui=na("blank space"),Zt=/^[ \t]/,Ri=ui([" "," "],!1,!1),$n=na("white space"),Ua=/^[ \t\n\r]/,$t=ui([" "," ",`
46`,"\r"],!1,!1),hc=`\r 46`,"\r"],!1,!1),gc=`\r
47`,du=Dn(`\r 47`,du=Dn(`\r
48`,!1),gc=` 48`,!1),dc=`
49`,Il=Dn(` 49`,wl=Dn(`
50`,!1),PA="\r",mu=Dn("\r",!1),Ee=0,Rt=0,dc=[{line:1,column:1}],_i=0,yu=[],qt=0,wl;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function xA(){return t.substring(Rt,Ee)}function cp(){return Oo(Rt,Ee)}function mc(ee,we){throw we=we!==void 0?we:Oo(Rt,Ee),Bl([ra(ee)],t.substring(Rt,Ee),we)}function bA(ee,we){throw we=we!==void 0?we:Oo(Rt,Ee),so(ee,we)}function Dn(ee,we){return{type:"literal",text:ee,ignoreCase:we}}function ui(ee,we,je){return{type:"class",parts:ee,inverted:we,ignoreCase:je}}function yc(){return{type:"any"}}function QA(){return{type:"end"}}function ra(ee){return{type:"other",description:ee}}function Hi(ee){var we=dc[ee],je;if(we)return we;for(je=ee-1;!dc[je];)je--;for(we=dc[je],we={line:we.line,column:we.column};je<ee;)t.charCodeAt(je)===10?(we.line++,we.column=1):we.column++,je++;return dc[ee]=we,we}function Oo(ee,we){var je=Hi(ee),Be=Hi(we);return{start:{offset:ee,line:je.line,column:je.column},end:{offset:we,line:Be.line,column:Be.column}}}function $e(ee){Ee<_i||(Ee>_i&&(_i=Ee,yu=[]),yu.push(ee))}function so(ee,we){return new zg(ee,null,null,we)}function Bl(ee,we,je){return new zg(zg.buildMessage(ee,we),ee,we,je)}function Cu(){var ee;return ee=kA(),ee}function qi(){var ee,we,je;for(ee=Ee,we=[],je=Eu();je!==r;)we.push(je),je=Eu();return we!==r&&(Rt=ee,we=n(we)),ee=we,ee}function Eu(){var ee,we,je,Be,xe;return ee=Ee,we=ds(),we!==r?(t.charCodeAt(Ee)===45?(je=u,Ee++):(je=r,qt===0&&$e(A)),je!==r?(Be=qn(),Be!==r?(xe=Cc(),xe!==r?(Rt=ee,we=p(xe),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r),ee}function kA(){var ee,we,je;for(ee=Ee,we=[],je=Ua();je!==r;)we.push(je),je=Ua();return we!==r&&(Rt=ee,we=h(we)),ee=we,ee}function Ua(){var ee,we,je,Be,xe,Ve,vt,tr,Zr;if(ee=Ee,we=qn(),we===r&&(we=null),we!==r){if(je=Ee,t.charCodeAt(Ee)===35?(Be=E,Ee++):(Be=r,qt===0&&$e(w)),Be!==r){if(xe=[],Ve=Ee,vt=Ee,qt++,tr=mi(),qt--,tr===r?vt=void 0:(Ee=vt,vt=r),vt!==r?(t.length>Ee?(tr=t.charAt(Ee),Ee++):(tr=r,qt===0&&$e(v)),tr!==r?(vt=[vt,tr],Ve=vt):(Ee=Ve,Ve=r)):(Ee=Ve,Ve=r),Ve!==r)for(;Ve!==r;)xe.push(Ve),Ve=Ee,vt=Ee,qt++,tr=mi(),qt--,tr===r?vt=void 0:(Ee=vt,vt=r),vt!==r?(t.length>Ee?(tr=t.charAt(Ee),Ee++):(tr=r,qt===0&&$e(v)),tr!==r?(vt=[vt,tr],Ve=vt):(Ee=Ve,Ve=r)):(Ee=Ve,Ve=r);else xe=r;xe!==r?(Be=[Be,xe],je=Be):(Ee=je,je=r)}else Ee=je,je=r;if(je===r&&(je=null),je!==r){if(Be=[],xe=es(),xe!==r)for(;xe!==r;)Be.push(xe),xe=es();else Be=r;Be!==r?(Rt=ee,we=b(),ee=we):(Ee=ee,ee=r)}else Ee=ee,ee=r}else Ee=ee,ee=r;if(ee===r&&(ee=Ee,we=ds(),we!==r?(je=na(),je!==r?(Be=qn(),Be===r&&(Be=null),Be!==r?(t.charCodeAt(Ee)===58?(xe=C,Ee++):(xe=r,qt===0&&$e(R)),xe!==r?(Ve=qn(),Ve===r&&(Ve=null),Ve!==r?(vt=Cc(),vt!==r?(Rt=ee,we=L(je,vt),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r),ee===r&&(ee=Ee,we=ds(),we!==r?(je=oo(),je!==r?(Be=qn(),Be===r&&(Be=null),Be!==r?(t.charCodeAt(Ee)===58?(xe=C,Ee++):(xe=r,qt===0&&$e(R)),xe!==r?(Ve=qn(),Ve===r&&(Ve=null),Ve!==r?(vt=Cc(),vt!==r?(Rt=ee,we=L(je,vt),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r),ee===r))){if(ee=Ee,we=ds(),we!==r)if(je=oo(),je!==r)if(Be=qn(),Be!==r)if(xe=ia(),xe!==r){if(Ve=[],vt=es(),vt!==r)for(;vt!==r;)Ve.push(vt),vt=es();else Ve=r;Ve!==r?(Rt=ee,we=L(je,xe),ee=we):(Ee=ee,ee=r)}else Ee=ee,ee=r;else Ee=ee,ee=r;else Ee=ee,ee=r;else Ee=ee,ee=r;if(ee===r)if(ee=Ee,we=ds(),we!==r)if(je=oo(),je!==r){if(Be=[],xe=Ee,Ve=qn(),Ve===r&&(Ve=null),Ve!==r?(t.charCodeAt(Ee)===44?(vt=_,Ee++):(vt=r,qt===0&&$e(V)),vt!==r?(tr=qn(),tr===r&&(tr=null),tr!==r?(Zr=oo(),Zr!==r?(Rt=xe,Ve=re(je,Zr),xe=Ve):(Ee=xe,xe=r)):(Ee=xe,xe=r)):(Ee=xe,xe=r)):(Ee=xe,xe=r),xe!==r)for(;xe!==r;)Be.push(xe),xe=Ee,Ve=qn(),Ve===r&&(Ve=null),Ve!==r?(t.charCodeAt(Ee)===44?(vt=_,Ee++):(vt=r,qt===0&&$e(V)),vt!==r?(tr=qn(),tr===r&&(tr=null),tr!==r?(Zr=oo(),Zr!==r?(Rt=xe,Ve=re(je,Zr),xe=Ve):(Ee=xe,xe=r)):(Ee=xe,xe=r)):(Ee=xe,xe=r)):(Ee=xe,xe=r);else Be=r;Be!==r?(xe=qn(),xe===r&&(xe=null),xe!==r?(t.charCodeAt(Ee)===58?(Ve=C,Ee++):(Ve=r,qt===0&&$e(R)),Ve!==r?(vt=qn(),vt===r&&(vt=null),vt!==r?(tr=Cc(),tr!==r?(Rt=ee,we=oe(je,Be,tr),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)}else Ee=ee,ee=r;else Ee=ee,ee=r}return ee}function Cc(){var ee,we,je,Be,xe,Ve,vt;if(ee=Ee,we=Ee,qt++,je=Ee,Be=mi(),Be!==r?(xe=Ot(),xe!==r?(t.charCodeAt(Ee)===45?(Ve=u,Ee++):(Ve=r,qt===0&&$e(A)),Ve!==r?(vt=qn(),vt!==r?(Be=[Be,xe,Ve,vt],je=Be):(Ee=je,je=r)):(Ee=je,je=r)):(Ee=je,je=r)):(Ee=je,je=r),qt--,je!==r?(Ee=we,we=void 0):we=r,we!==r?(je=es(),je!==r?(Be=Sn(),Be!==r?(xe=qi(),xe!==r?(Ve=di(),Ve!==r?(Rt=ee,we=pe(xe),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r),ee===r&&(ee=Ee,we=mi(),we!==r?(je=Sn(),je!==r?(Be=kA(),Be!==r?(xe=di(),xe!==r?(Rt=ee,we=pe(Be),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r),ee===r))if(ee=Ee,we=Rs(),we!==r){if(je=[],Be=es(),Be!==r)for(;Be!==r;)je.push(Be),Be=es();else je=r;je!==r?(Rt=ee,we=he(we),ee=we):(Ee=ee,ee=r)}else Ee=ee,ee=r;return ee}function ds(){var ee,we,je;for(qt++,ee=Ee,we=[],t.charCodeAt(Ee)===32?(je=ge,Ee++):(je=r,qt===0&&$e(le));je!==r;)we.push(je),t.charCodeAt(Ee)===32?(je=ge,Ee++):(je=r,qt===0&&$e(le));return we!==r?(Rt=Ee,je=Pe(we),je?je=void 0:je=r,je!==r?(we=[we,je],ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r),qt--,ee===r&&(we=r,qt===0&&$e(ve)),ee}function Ot(){var ee,we,je;for(ee=Ee,we=[],t.charCodeAt(Ee)===32?(je=ge,Ee++):(je=r,qt===0&&$e(le));je!==r;)we.push(je),t.charCodeAt(Ee)===32?(je=ge,Ee++):(je=r,qt===0&&$e(le));return we!==r?(Rt=Ee,je=g(we),je?je=void 0:je=r,je!==r?(we=[we,je],ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r),ee}function Sn(){var ee;return Rt=Ee,ee=De(),ee?ee=void 0:ee=r,ee}function di(){var ee;return Rt=Ee,ee=Ce(),ee?ee=void 0:ee=r,ee}function na(){var ee;return ee=Ns(),ee===r&&(ee=sa()),ee}function oo(){var ee,we,je;if(ee=Ns(),ee===r){if(ee=Ee,we=[],je=Mo(),je!==r)for(;je!==r;)we.push(je),je=Mo();else we=r;we!==r&&(Rt=ee,we=de()),ee=we}return ee}function Rs(){var ee;return ee=Zi(),ee===r&&(ee=Ts(),ee===r&&(ee=Ns(),ee===r&&(ee=sa()))),ee}function ia(){var ee;return ee=Zi(),ee===r&&(ee=Ns(),ee===r&&(ee=Mo())),ee}function sa(){var ee,we,je,Be,xe,Ve;if(qt++,ee=Ee,Z.test(t.charAt(Ee))?(we=t.charAt(Ee),Ee++):(we=r,qt===0&&$e(me)),we!==r){for(je=[],Be=Ee,xe=qn(),xe===r&&(xe=null),xe!==r?(be.test(t.charAt(Ee))?(Ve=t.charAt(Ee),Ee++):(Ve=r,qt===0&&$e(ut)),Ve!==r?(xe=[xe,Ve],Be=xe):(Ee=Be,Be=r)):(Ee=Be,Be=r);Be!==r;)je.push(Be),Be=Ee,xe=qn(),xe===r&&(xe=null),xe!==r?(be.test(t.charAt(Ee))?(Ve=t.charAt(Ee),Ee++):(Ve=r,qt===0&&$e(ut)),Ve!==r?(xe=[xe,Ve],Be=xe):(Ee=Be,Be=r)):(Ee=Be,Be=r);je!==r?(Rt=ee,we=H(),ee=we):(Ee=ee,ee=r)}else Ee=ee,ee=r;return qt--,ee===r&&(we=r,qt===0&&$e(ne)),ee}function Mo(){var ee,we,je,Be,xe;if(ee=Ee,t.substr(Ee,2)===yt?(we=yt,Ee+=2):(we=r,qt===0&&$e(Me)),we===r&&(we=null),we!==r)if(Te.test(t.charAt(Ee))?(je=t.charAt(Ee),Ee++):(je=r,qt===0&&$e(Qe)),je!==r){for(Be=[],_e.test(t.charAt(Ee))?(xe=t.charAt(Ee),Ee++):(xe=r,qt===0&&$e(qe));xe!==r;)Be.push(xe),_e.test(t.charAt(Ee))?(xe=t.charAt(Ee),Ee++):(xe=r,qt===0&&$e(qe));Be!==r?(Rt=ee,we=H(),ee=we):(Ee=ee,ee=r)}else Ee=ee,ee=r;else Ee=ee,ee=r;return ee}function Zi(){var ee,we;return ee=Ee,t.substr(Ee,4)===At?(we=At,Ee+=4):(we=r,qt===0&&$e(Oe)),we!==r&&(Rt=ee,we=x()),ee=we,ee}function Ts(){var ee,we;return ee=Ee,t.substr(Ee,4)===I?(we=I,Ee+=4):(we=r,qt===0&&$e(P)),we!==r&&(Rt=ee,we=y()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,5)===F?(we=F,Ee+=5):(we=r,qt===0&&$e(J)),we!==r&&(Rt=ee,we=X()),ee=we),ee}function Ns(){var ee,we,je,Be;return qt++,ee=Ee,t.charCodeAt(Ee)===34?(we=ie,Ee++):(we=r,qt===0&&$e(ke)),we!==r?(t.charCodeAt(Ee)===34?(je=ie,Ee++):(je=r,qt===0&&$e(ke)),je!==r?(Rt=ee,we=Ne(),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r),ee===r&&(ee=Ee,t.charCodeAt(Ee)===34?(we=ie,Ee++):(we=r,qt===0&&$e(ke)),we!==r?(je=Ls(),je!==r?(t.charCodeAt(Ee)===34?(Be=ie,Ee++):(Be=r,qt===0&&$e(ke)),Be!==r?(Rt=ee,we=st(je),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)),qt--,ee===r&&(we=r,qt===0&&$e($)),ee}function Ls(){var ee,we,je;if(ee=Ee,we=[],je=ao(),je!==r)for(;je!==r;)we.push(je),je=ao();else we=r;return we!==r&&(Rt=ee,we=ht(we)),ee=we,ee}function ao(){var ee,we,je,Be,xe,Ve;return Ut.test(t.charAt(Ee))?(ee=t.charAt(Ee),Ee++):(ee=r,qt===0&&$e(Xt)),ee===r&&(ee=Ee,t.substr(Ee,2)===Pt?(we=Pt,Ee+=2):(we=r,qt===0&&$e(tn)),we!==r&&(Rt=ee,we=Dr()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,2)===fr?(we=fr,Ee+=2):(we=r,qt===0&&$e(Br)),we!==r&&(Rt=ee,we=jr()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,2)===Hn?(we=Hn,Ee+=2):(we=r,qt===0&&$e(bs)),we!==r&&(Rt=ee,we=ki()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,2)===gs?(we=gs,Ee+=2):(we=r,qt===0&&$e(to)),we!==r&&(Rt=ee,we=Di()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,2)===Qs?(we=Qs,Ee+=2):(we=r,qt===0&&$e(ro)),we!==r&&(Rt=ee,we=pc()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,2)===gu?(we=gu,Ee+=2):(we=r,qt===0&&$e(ap)),we!==r&&(Rt=ee,we=lp()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,2)===ks?(we=ks,Ee+=2):(we=r,qt===0&&$e(En)),we!==r&&(Rt=ee,we=no()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,2)===Fs?(we=Fs,Ee+=2):(we=r,qt===0&&$e(Cl)),we!==r&&(Rt=ee,we=El()),ee=we,ee===r&&(ee=Ee,t.substr(Ee,2)===io?(we=io,Ee+=2):(we=r,qt===0&&$e(Ue)),we!==r?(je=Yn(),je!==r?(Be=Yn(),Be!==r?(xe=Yn(),xe!==r?(Ve=Yn(),Ve!==r?(Rt=ee,we=Fn(je,Be,xe,Ve),ee=we):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)):(Ee=ee,ee=r)))))))))),ee}function Yn(){var ee;return Fi.test(t.charAt(Ee))?(ee=t.charAt(Ee),Ee++):(ee=r,qt===0&&$e(Rn)),ee}function qn(){var ee,we;if(qt++,ee=[],Zt.test(t.charAt(Ee))?(we=t.charAt(Ee),Ee++):(we=r,qt===0&&$e(Ri)),we!==r)for(;we!==r;)ee.push(we),Zt.test(t.charAt(Ee))?(we=t.charAt(Ee),Ee++):(we=r,qt===0&&$e(Ri));else ee=r;return qt--,ee===r&&(we=r,qt===0&&$e(Ui)),ee}function $i(){var ee,we;if(qt++,ee=[],Ma.test(t.charAt(Ee))?(we=t.charAt(Ee),Ee++):(we=r,qt===0&&$e($t)),we!==r)for(;we!==r;)ee.push(we),Ma.test(t.charAt(Ee))?(we=t.charAt(Ee),Ee++):(we=r,qt===0&&$e($t));else ee=r;return qt--,ee===r&&(we=r,qt===0&&$e($n)),ee}function es(){var ee,we,je,Be,xe,Ve;if(ee=Ee,we=mi(),we!==r){for(je=[],Be=Ee,xe=qn(),xe===r&&(xe=null),xe!==r?(Ve=mi(),Ve!==r?(xe=[xe,Ve],Be=xe):(Ee=Be,Be=r)):(Ee=Be,Be=r);Be!==r;)je.push(Be),Be=Ee,xe=qn(),xe===r&&(xe=null),xe!==r?(Ve=mi(),Ve!==r?(xe=[xe,Ve],Be=xe):(Ee=Be,Be=r)):(Ee=Be,Be=r);je!==r?(we=[we,je],ee=we):(Ee=ee,ee=r)}else Ee=ee,ee=r;return ee}function mi(){var ee;return t.substr(Ee,2)===hc?(ee=hc,Ee+=2):(ee=r,qt===0&&$e(du)),ee===r&&(t.charCodeAt(Ee)===10?(ee=gc,Ee++):(ee=r,qt===0&&$e(Il)),ee===r&&(t.charCodeAt(Ee)===13?(ee=PA,Ee++):(ee=r,qt===0&&$e(mu)))),ee}let Ha=2,oa=0;if(wl=a(),wl!==r&&Ee===t.length)return wl;throw wl!==r&&Ee<t.length&&$e(QA()),Bl(yu,_i<t.length?t.charAt(_i):null,_i<t.length?Oo(_i,_i+1):Oo(_i,_i))}rV.exports={SyntaxError:zg,parse:fqe}});function sV(t){return t.match(pqe)?t:JSON.stringify(t)}function aV(t){return typeof t>"u"?!0:typeof t=="object"&&t!==null?Object.keys(t).every(e=>aV(t[e])):!1}function vT(t,e,r){if(t===null)return`null 50`,!1),xA="\r",mu=Dn("\r",!1),Ce=0,Rt=0,mc=[{line:1,column:1}],_i=0,yu=[],qt=0,Bl;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function bA(){return t.substring(Rt,Ce)}function Ap(){return Mo(Rt,Ce)}function yc(ee,we){throw we=we!==void 0?we:Mo(Rt,Ce),vl([na(ee)],t.substring(Rt,Ce),we)}function QA(ee,we){throw we=we!==void 0?we:Mo(Rt,Ce),so(ee,we)}function Dn(ee,we){return{type:"literal",text:ee,ignoreCase:we}}function ui(ee,we,je){return{type:"class",parts:ee,inverted:we,ignoreCase:je}}function Ec(){return{type:"any"}}function kA(){return{type:"end"}}function na(ee){return{type:"other",description:ee}}function Hi(ee){var we=mc[ee],je;if(we)return we;for(je=ee-1;!mc[je];)je--;for(we=mc[je],we={line:we.line,column:we.column};je<ee;)t.charCodeAt(je)===10?(we.line++,we.column=1):we.column++,je++;return mc[ee]=we,we}function Mo(ee,we){var je=Hi(ee),Be=Hi(we);return{start:{offset:ee,line:je.line,column:je.column},end:{offset:we,line:Be.line,column:Be.column}}}function $e(ee){Ce<_i||(Ce>_i&&(_i=Ce,yu=[]),yu.push(ee))}function so(ee,we){return new Xg(ee,null,null,we)}function vl(ee,we,je){return new Xg(Xg.buildMessage(ee,we),ee,we,je)}function Eu(){var ee;return ee=FA(),ee}function qi(){var ee,we,je;for(ee=Ce,we=[],je=Cu();je!==r;)we.push(je),je=Cu();return we!==r&&(Rt=ee,we=n(we)),ee=we,ee}function Cu(){var ee,we,je,Be,xe;return ee=Ce,we=ds(),we!==r?(t.charCodeAt(Ce)===45?(je=u,Ce++):(je=r,qt===0&&$e(A)),je!==r?(Be=qn(),Be!==r?(xe=Cc(),xe!==r?(Rt=ee,we=p(xe),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r),ee}function FA(){var ee,we,je;for(ee=Ce,we=[],je=Ha();je!==r;)we.push(je),je=Ha();return we!==r&&(Rt=ee,we=h(we)),ee=we,ee}function Ha(){var ee,we,je,Be,xe,Ve,vt,tr,Zr;if(ee=Ce,we=qn(),we===r&&(we=null),we!==r){if(je=Ce,t.charCodeAt(Ce)===35?(Be=C,Ce++):(Be=r,qt===0&&$e(w)),Be!==r){if(xe=[],Ve=Ce,vt=Ce,qt++,tr=mi(),qt--,tr===r?vt=void 0:(Ce=vt,vt=r),vt!==r?(t.length>Ce?(tr=t.charAt(Ce),Ce++):(tr=r,qt===0&&$e(v)),tr!==r?(vt=[vt,tr],Ve=vt):(Ce=Ve,Ve=r)):(Ce=Ve,Ve=r),Ve!==r)for(;Ve!==r;)xe.push(Ve),Ve=Ce,vt=Ce,qt++,tr=mi(),qt--,tr===r?vt=void 0:(Ce=vt,vt=r),vt!==r?(t.length>Ce?(tr=t.charAt(Ce),Ce++):(tr=r,qt===0&&$e(v)),tr!==r?(vt=[vt,tr],Ve=vt):(Ce=Ve,Ve=r)):(Ce=Ve,Ve=r);else xe=r;xe!==r?(Be=[Be,xe],je=Be):(Ce=je,je=r)}else Ce=je,je=r;if(je===r&&(je=null),je!==r){if(Be=[],xe=es(),xe!==r)for(;xe!==r;)Be.push(xe),xe=es();else Be=r;Be!==r?(Rt=ee,we=b(),ee=we):(Ce=ee,ee=r)}else Ce=ee,ee=r}else Ce=ee,ee=r;if(ee===r&&(ee=Ce,we=ds(),we!==r?(je=ia(),je!==r?(Be=qn(),Be===r&&(Be=null),Be!==r?(t.charCodeAt(Ce)===58?(xe=E,Ce++):(xe=r,qt===0&&$e(R)),xe!==r?(Ve=qn(),Ve===r&&(Ve=null),Ve!==r?(vt=Cc(),vt!==r?(Rt=ee,we=L(je,vt),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r),ee===r&&(ee=Ce,we=ds(),we!==r?(je=oo(),je!==r?(Be=qn(),Be===r&&(Be=null),Be!==r?(t.charCodeAt(Ce)===58?(xe=E,Ce++):(xe=r,qt===0&&$e(R)),xe!==r?(Ve=qn(),Ve===r&&(Ve=null),Ve!==r?(vt=Cc(),vt!==r?(Rt=ee,we=L(je,vt),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r),ee===r))){if(ee=Ce,we=ds(),we!==r)if(je=oo(),je!==r)if(Be=qn(),Be!==r)if(xe=sa(),xe!==r){if(Ve=[],vt=es(),vt!==r)for(;vt!==r;)Ve.push(vt),vt=es();else Ve=r;Ve!==r?(Rt=ee,we=L(je,xe),ee=we):(Ce=ee,ee=r)}else Ce=ee,ee=r;else Ce=ee,ee=r;else Ce=ee,ee=r;else Ce=ee,ee=r;if(ee===r)if(ee=Ce,we=ds(),we!==r)if(je=oo(),je!==r){if(Be=[],xe=Ce,Ve=qn(),Ve===r&&(Ve=null),Ve!==r?(t.charCodeAt(Ce)===44?(vt=_,Ce++):(vt=r,qt===0&&$e(V)),vt!==r?(tr=qn(),tr===r&&(tr=null),tr!==r?(Zr=oo(),Zr!==r?(Rt=xe,Ve=re(je,Zr),xe=Ve):(Ce=xe,xe=r)):(Ce=xe,xe=r)):(Ce=xe,xe=r)):(Ce=xe,xe=r),xe!==r)for(;xe!==r;)Be.push(xe),xe=Ce,Ve=qn(),Ve===r&&(Ve=null),Ve!==r?(t.charCodeAt(Ce)===44?(vt=_,Ce++):(vt=r,qt===0&&$e(V)),vt!==r?(tr=qn(),tr===r&&(tr=null),tr!==r?(Zr=oo(),Zr!==r?(Rt=xe,Ve=re(je,Zr),xe=Ve):(Ce=xe,xe=r)):(Ce=xe,xe=r)):(Ce=xe,xe=r)):(Ce=xe,xe=r);else Be=r;Be!==r?(xe=qn(),xe===r&&(xe=null),xe!==r?(t.charCodeAt(Ce)===58?(Ve=E,Ce++):(Ve=r,qt===0&&$e(R)),Ve!==r?(vt=qn(),vt===r&&(vt=null),vt!==r?(tr=Cc(),tr!==r?(Rt=ee,we=ae(je,Be,tr),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)}else Ce=ee,ee=r;else Ce=ee,ee=r}return ee}function Cc(){var ee,we,je,Be,xe,Ve,vt;if(ee=Ce,we=Ce,qt++,je=Ce,Be=mi(),Be!==r?(xe=Ot(),xe!==r?(t.charCodeAt(Ce)===45?(Ve=u,Ce++):(Ve=r,qt===0&&$e(A)),Ve!==r?(vt=qn(),vt!==r?(Be=[Be,xe,Ve,vt],je=Be):(Ce=je,je=r)):(Ce=je,je=r)):(Ce=je,je=r)):(Ce=je,je=r),qt--,je!==r?(Ce=we,we=void 0):we=r,we!==r?(je=es(),je!==r?(Be=Sn(),Be!==r?(xe=qi(),xe!==r?(Ve=di(),Ve!==r?(Rt=ee,we=he(xe),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r),ee===r&&(ee=Ce,we=mi(),we!==r?(je=Sn(),je!==r?(Be=FA(),Be!==r?(xe=di(),xe!==r?(Rt=ee,we=he(Be),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r),ee===r))if(ee=Ce,we=Rs(),we!==r){if(je=[],Be=es(),Be!==r)for(;Be!==r;)je.push(Be),Be=es();else je=r;je!==r?(Rt=ee,we=pe(we),ee=we):(Ce=ee,ee=r)}else Ce=ee,ee=r;return ee}function ds(){var ee,we,je;for(qt++,ee=Ce,we=[],t.charCodeAt(Ce)===32?(je=ge,Ce++):(je=r,qt===0&&$e(le));je!==r;)we.push(je),t.charCodeAt(Ce)===32?(je=ge,Ce++):(je=r,qt===0&&$e(le));return we!==r?(Rt=Ce,je=Pe(we),je?je=void 0:je=r,je!==r?(we=[we,je],ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r),qt--,ee===r&&(we=r,qt===0&&$e(De)),ee}function Ot(){var ee,we,je;for(ee=Ce,we=[],t.charCodeAt(Ce)===32?(je=ge,Ce++):(je=r,qt===0&&$e(le));je!==r;)we.push(je),t.charCodeAt(Ce)===32?(je=ge,Ce++):(je=r,qt===0&&$e(le));return we!==r?(Rt=Ce,je=g(we),je?je=void 0:je=r,je!==r?(we=[we,je],ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r),ee}function Sn(){var ee;return Rt=Ce,ee=ve(),ee?ee=void 0:ee=r,ee}function di(){var ee;return Rt=Ce,ee=Ee(),ee?ee=void 0:ee=r,ee}function ia(){var ee;return ee=Ns(),ee===r&&(ee=oa()),ee}function oo(){var ee,we,je;if(ee=Ns(),ee===r){if(ee=Ce,we=[],je=Uo(),je!==r)for(;je!==r;)we.push(je),je=Uo();else we=r;we!==r&&(Rt=ee,we=de()),ee=we}return ee}function Rs(){var ee;return ee=Zi(),ee===r&&(ee=Ts(),ee===r&&(ee=Ns(),ee===r&&(ee=oa()))),ee}function sa(){var ee;return ee=Zi(),ee===r&&(ee=Ns(),ee===r&&(ee=Uo())),ee}function oa(){var ee,we,je,Be,xe,Ve;if(qt++,ee=Ce,Z.test(t.charAt(Ce))?(we=t.charAt(Ce),Ce++):(we=r,qt===0&&$e(me)),we!==r){for(je=[],Be=Ce,xe=qn(),xe===r&&(xe=null),xe!==r?(be.test(t.charAt(Ce))?(Ve=t.charAt(Ce),Ce++):(Ve=r,qt===0&&$e(ut)),Ve!==r?(xe=[xe,Ve],Be=xe):(Ce=Be,Be=r)):(Ce=Be,Be=r);Be!==r;)je.push(Be),Be=Ce,xe=qn(),xe===r&&(xe=null),xe!==r?(be.test(t.charAt(Ce))?(Ve=t.charAt(Ce),Ce++):(Ve=r,qt===0&&$e(ut)),Ve!==r?(xe=[xe,Ve],Be=xe):(Ce=Be,Be=r)):(Ce=Be,Be=r);je!==r?(Rt=ee,we=H(),ee=we):(Ce=ee,ee=r)}else Ce=ee,ee=r;return qt--,ee===r&&(we=r,qt===0&&$e(ne)),ee}function Uo(){var ee,we,je,Be,xe;if(ee=Ce,t.substr(Ce,2)===yt?(we=yt,Ce+=2):(we=r,qt===0&&$e(Me)),we===r&&(we=null),we!==r)if(Te.test(t.charAt(Ce))?(je=t.charAt(Ce),Ce++):(je=r,qt===0&&$e(Qe)),je!==r){for(Be=[],_e.test(t.charAt(Ce))?(xe=t.charAt(Ce),Ce++):(xe=r,qt===0&&$e(qe));xe!==r;)Be.push(xe),_e.test(t.charAt(Ce))?(xe=t.charAt(Ce),Ce++):(xe=r,qt===0&&$e(qe));Be!==r?(Rt=ee,we=H(),ee=we):(Ce=ee,ee=r)}else Ce=ee,ee=r;else Ce=ee,ee=r;return ee}function Zi(){var ee,we;return ee=Ce,t.substr(Ce,4)===At?(we=At,Ce+=4):(we=r,qt===0&&$e(Oe)),we!==r&&(Rt=ee,we=x()),ee=we,ee}function Ts(){var ee,we;return ee=Ce,t.substr(Ce,4)===I?(we=I,Ce+=4):(we=r,qt===0&&$e(P)),we!==r&&(Rt=ee,we=y()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,5)===F?(we=F,Ce+=5):(we=r,qt===0&&$e(z)),we!==r&&(Rt=ee,we=X()),ee=we),ee}function Ns(){var ee,we,je,Be;return qt++,ee=Ce,t.charCodeAt(Ce)===34?(we=ie,Ce++):(we=r,qt===0&&$e(ke)),we!==r?(t.charCodeAt(Ce)===34?(je=ie,Ce++):(je=r,qt===0&&$e(ke)),je!==r?(Rt=ee,we=Ne(),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r),ee===r&&(ee=Ce,t.charCodeAt(Ce)===34?(we=ie,Ce++):(we=r,qt===0&&$e(ke)),we!==r?(je=Ls(),je!==r?(t.charCodeAt(Ce)===34?(Be=ie,Ce++):(Be=r,qt===0&&$e(ke)),Be!==r?(Rt=ee,we=st(je),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)),qt--,ee===r&&(we=r,qt===0&&$e($)),ee}function Ls(){var ee,we,je;if(ee=Ce,we=[],je=ao(),je!==r)for(;je!==r;)we.push(je),je=ao();else we=r;return we!==r&&(Rt=ee,we=ht(we)),ee=we,ee}function ao(){var ee,we,je,Be,xe,Ve;return Ut.test(t.charAt(Ce))?(ee=t.charAt(Ce),Ce++):(ee=r,qt===0&&$e(Xt)),ee===r&&(ee=Ce,t.substr(Ce,2)===xt?(we=xt,Ce+=2):(we=r,qt===0&&$e(tn)),we!==r&&(Rt=ee,we=Dr()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,2)===fr?(we=fr,Ce+=2):(we=r,qt===0&&$e(Br)),we!==r&&(Rt=ee,we=jr()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,2)===Hn?(we=Hn,Ce+=2):(we=r,qt===0&&$e(bs)),we!==r&&(Rt=ee,we=ki()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,2)===gs?(we=gs,Ce+=2):(we=r,qt===0&&$e(to)),we!==r&&(Rt=ee,we=Di()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,2)===Qs?(we=Qs,Ce+=2):(we=r,qt===0&&$e(ro)),we!==r&&(Rt=ee,we=hc()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,2)===gu?(we=gu,Ce+=2):(we=r,qt===0&&$e(cp)),we!==r&&(Rt=ee,we=up()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,2)===ks?(we=ks,Ce+=2):(we=r,qt===0&&$e(Cn)),we!==r&&(Rt=ee,we=no()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,2)===Fs?(we=Fs,Ce+=2):(we=r,qt===0&&$e(Cl)),we!==r&&(Rt=ee,we=Il()),ee=we,ee===r&&(ee=Ce,t.substr(Ce,2)===io?(we=io,Ce+=2):(we=r,qt===0&&$e(Ue)),we!==r?(je=Yn(),je!==r?(Be=Yn(),Be!==r?(xe=Yn(),xe!==r?(Ve=Yn(),Ve!==r?(Rt=ee,we=Fn(je,Be,xe,Ve),ee=we):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)):(Ce=ee,ee=r)))))))))),ee}function Yn(){var ee;return Fi.test(t.charAt(Ce))?(ee=t.charAt(Ce),Ce++):(ee=r,qt===0&&$e(Rn)),ee}function qn(){var ee,we;if(qt++,ee=[],Zt.test(t.charAt(Ce))?(we=t.charAt(Ce),Ce++):(we=r,qt===0&&$e(Ri)),we!==r)for(;we!==r;)ee.push(we),Zt.test(t.charAt(Ce))?(we=t.charAt(Ce),Ce++):(we=r,qt===0&&$e(Ri));else ee=r;return qt--,ee===r&&(we=r,qt===0&&$e(Ui)),ee}function $i(){var ee,we;if(qt++,ee=[],Ua.test(t.charAt(Ce))?(we=t.charAt(Ce),Ce++):(we=r,qt===0&&$e($t)),we!==r)for(;we!==r;)ee.push(we),Ua.test(t.charAt(Ce))?(we=t.charAt(Ce),Ce++):(we=r,qt===0&&$e($t));else ee=r;return qt--,ee===r&&(we=r,qt===0&&$e($n)),ee}function es(){var ee,we,je,Be,xe,Ve;if(ee=Ce,we=mi(),we!==r){for(je=[],Be=Ce,xe=qn(),xe===r&&(xe=null),xe!==r?(Ve=mi(),Ve!==r?(xe=[xe,Ve],Be=xe):(Ce=Be,Be=r)):(Ce=Be,Be=r);Be!==r;)je.push(Be),Be=Ce,xe=qn(),xe===r&&(xe=null),xe!==r?(Ve=mi(),Ve!==r?(xe=[xe,Ve],Be=xe):(Ce=Be,Be=r)):(Ce=Be,Be=r);je!==r?(we=[we,je],ee=we):(Ce=ee,ee=r)}else Ce=ee,ee=r;return ee}function mi(){var ee;return t.substr(Ce,2)===gc?(ee=gc,Ce+=2):(ee=r,qt===0&&$e(du)),ee===r&&(t.charCodeAt(Ce)===10?(ee=dc,Ce++):(ee=r,qt===0&&$e(wl)),ee===r&&(t.charCodeAt(Ce)===13?(ee=xA,Ce++):(ee=r,qt===0&&$e(mu)))),ee}let qa=2,aa=0;if(Bl=a(),Bl!==r&&Ce===t.length)return Bl;throw Bl!==r&&Ce<t.length&&$e(kA()),vl(yu,_i<t.length?t.charAt(_i):null,_i<t.length?Mo(_i,_i+1):Mo(_i,_i))}iV.exports={SyntaxError:Xg,parse:dqe}});function aV(t){return t.match(mqe)?t:JSON.stringify(t)}function cV(t){return typeof t>"u"?!0:typeof t=="object"&&t!==null?Object.keys(t).every(e=>cV(t[e])):!1}function ST(t,e,r){if(t===null)return`null
51`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} 51`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()}
52`;if(typeof t=="string")return`${sV(t)} 52`;if(typeof t=="string")return`${aV(t)}
53`;if(Array.isArray(t)){if(t.length===0)return`[] 53`;if(Array.isArray(t)){if(t.length===0)return`[]
54`;let o=" ".repeat(e);return` 54`;let o=" ".repeat(e);return`
55${t.map(n=>`${o}- ${vT(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof _D?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let E=iV.indexOf(p),w=iV.indexOf(h);return E===-1&&w===-1?p<h?-1:p>h?1:0:E!==-1&&w===-1?-1:E===-1&&w!==-1?1:E-w});let A=u.filter(p=>!aV(o[p])).map((p,h)=>{let E=o[p],w=sV(p),v=vT(E,e+1,!0),b=h>0||r?n:"",C=w.length>1024?`? ${w} 55${t.map(n=>`${o}- ${ST(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof qD?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let C=oV.indexOf(p),w=oV.indexOf(h);return C===-1&&w===-1?p<h?-1:p>h?1:0:C!==-1&&w===-1?-1:C===-1&&w!==-1?1:C-w});let A=u.filter(p=>!cV(o[p])).map((p,h)=>{let C=o[p],w=aV(p),v=ST(C,e+1,!0),b=h>0||r?n:"",E=w.length>1024?`? ${w}
56${b}:`:`${w}:`,R=v.startsWith(` 56${b}:`:`${w}:`,R=v.startsWith(`
57`)?v:` ${v}`;return`${b}${C}${R}`}).join(e===0?` 57`)?v:` ${v}`;return`${b}${E}${R}`}).join(e===0?`
58`:"")||` 58`:"")||`
59`;return r?` 59`;return r?`
60${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function wa(t){try{let e=vT(t,0,!1);return e!==` 60${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function Ba(t){try{let e=ST(t,0,!1);return e!==`
61`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function hqe(t){return t.endsWith(` 61`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function yqe(t){return t.endsWith(`
62`)||(t+=` 62`)||(t+=`
63`),(0,oV.parse)(t)}function dqe(t){if(gqe.test(t))return hqe(t);let e=(0,HD.safeLoad)(t,{schema:HD.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Yi(t){return dqe(t)}var HD,oV,pqe,iV,_D,gqe,lV=dt(()=>{HD=tt(tV()),oV=tt(nV()),pqe=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,iV=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],_D=class{constructor(e){this.data=e}};wa.PreserveOrdering=_D;gqe=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var VI={};Yt(VI,{parseResolution:()=>xD,parseShell:()=>DD,parseSyml:()=>Yi,stringifyArgument:()=>uT,stringifyArgumentSegment:()=>AT,stringifyArithmeticExpression:()=>PD,stringifyCommand:()=>cT,stringifyCommandChain:()=>py,stringifyCommandChainThen:()=>lT,stringifyCommandLine:()=>SD,stringifyCommandLineThen:()=>aT,stringifyEnvSegment:()=>vD,stringifyRedirectArgument:()=>HI,stringifyResolution:()=>bD,stringifyShell:()=>fy,stringifyShellLine:()=>fy,stringifySyml:()=>wa,stringifyValueArgument:()=>Hg});var _l=dt(()=>{aY();AY();lV()});var uV=U((lbt,DT)=>{"use strict";var mqe=t=>{let e=!1,r=!1,o=!1;for(let a=0;a<t.length;a++){let n=t[a];e&&/[a-zA-Z]/.test(n)&&n.toUpperCase()===n?(t=t.slice(0,a)+"-"+t.slice(a),e=!1,o=r,r=!0,a++):r&&o&&/[a-zA-Z]/.test(n)&&n.toLowerCase()===n?(t=t.slice(0,a-1)+"-"+t.slice(a-1),o=r,r=!1,e=!0):(e=n.toLowerCase()===n&&n.toUpperCase()!==n,o=r,r=n.toUpperCase()===n&&n.toLowerCase()!==n)}return t},cV=(t,e)=>{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=mqe(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};DT.exports=cV;DT.exports.default=cV});var AV=U((cbt,yqe)=>{yqe.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Xg=U(el=>{"use strict";var pV=AV(),Yu=process.env;Object.defineProperty(el,"_vendors",{value:pV.map(function(t){return t.constant})});el.name=null;el.isPR=null;pV.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(o){return fV(o)});if(el[t.constant]=r,r)switch(el.name=t.name,typeof t.pr){case"string":el.isPR=!!Yu[t.pr];break;case"object":"env"in t.pr?el.isPR=t.pr.env in Yu&&Yu[t.pr.env]!==t.pr.ne:"any"in t.pr?el.isPR=t.pr.any.some(function(o){return!!Yu[o]}):el.isPR=fV(t.pr);break;default:el.isPR=null}});el.isCI=!!(Yu.CI||Yu.CONTINUOUS_INTEGRATION||Yu.BUILD_NUMBER||Yu.RUN_ID||el.name);function fV(t){return typeof t=="string"?!!Yu[t]:Object.keys(t).every(function(e){return Yu[e]===t[e]})}});var ST,js,PT,qD,hV,xT,bT,QT=dt(()=>{ST="",js="\0",PT=/^(-h|--help)(?:=([0-9]+))?$/,qD=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,hV=/^-[a-zA-Z]{2,}$/,xT=/^([^=]+)=([\s\S]*)$/,bT=process.env.DEBUG_CLI==="1"});var ot,Iy,jD,kT,GD=dt(()=>{QT();ot=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Iy=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===r[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o} 63`),(0,lV.parse)(t)}function Cqe(t){if(Eqe.test(t))return yqe(t);let e=(0,jD.safeLoad)(t,{schema:jD.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Yi(t){return Cqe(t)}var jD,lV,mqe,oV,qD,Eqe,uV=dt(()=>{jD=tt(nV()),lV=tt(sV()),mqe=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,oV=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],qD=class{constructor(e){this.data=e}};Ba.PreserveOrdering=qD;Eqe=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var JI={};Yt(JI,{parseResolution:()=>QD,parseShell:()=>PD,parseSyml:()=>Yi,stringifyArgument:()=>fT,stringifyArgumentSegment:()=>pT,stringifyArithmeticExpression:()=>bD,stringifyCommand:()=>AT,stringifyCommandChain:()=>py,stringifyCommandChainThen:()=>uT,stringifyCommandLine:()=>xD,stringifyCommandLineThen:()=>cT,stringifyEnvSegment:()=>SD,stringifyRedirectArgument:()=>qI,stringifyResolution:()=>kD,stringifyShell:()=>fy,stringifyShellLine:()=>fy,stringifySyml:()=>Ba,stringifyValueArgument:()=>qg});var Hl=dt(()=>{cY();pY();uV()});var fV=U((pbt,PT)=>{"use strict";var Iqe=t=>{let e=!1,r=!1,o=!1;for(let a=0;a<t.length;a++){let n=t[a];e&&/[a-zA-Z]/.test(n)&&n.toUpperCase()===n?(t=t.slice(0,a)+"-"+t.slice(a),e=!1,o=r,r=!0,a++):r&&o&&/[a-zA-Z]/.test(n)&&n.toLowerCase()===n?(t=t.slice(0,a-1)+"-"+t.slice(a-1),o=r,r=!1,e=!0):(e=n.toLowerCase()===n&&n.toUpperCase()!==n,o=r,r=n.toUpperCase()===n&&n.toLowerCase()!==n)}return t},AV=(t,e)=>{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=Iqe(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};PT.exports=AV;PT.exports.default=AV});var pV=U((hbt,wqe)=>{wqe.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Zg=U(tl=>{"use strict";var gV=pV(),Yu=process.env;Object.defineProperty(tl,"_vendors",{value:gV.map(function(t){return t.constant})});tl.name=null;tl.isPR=null;gV.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(o){return hV(o)});if(tl[t.constant]=r,r)switch(tl.name=t.name,typeof t.pr){case"string":tl.isPR=!!Yu[t.pr];break;case"object":"env"in t.pr?tl.isPR=t.pr.env in Yu&&Yu[t.pr.env]!==t.pr.ne:"any"in t.pr?tl.isPR=t.pr.any.some(function(o){return!!Yu[o]}):tl.isPR=hV(t.pr);break;default:tl.isPR=null}});tl.isCI=!!(Yu.CI||Yu.CONTINUOUS_INTEGRATION||Yu.BUILD_NUMBER||Yu.RUN_ID||tl.name);function hV(t){return typeof t=="string"?!!Yu[t]:Object.keys(t).every(function(e){return Yu[e]===t[e]})}});var xT,js,bT,GD,dV,QT,kT,FT=dt(()=>{xT="",js="\0",bT=/^(-h|--help)(?:=([0-9]+))?$/,GD=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,dV=/^-[a-zA-Z]{2,}$/,QT=/^([^=]+)=([\s\S]*)$/,kT=process.env.DEBUG_CLI==="1"});var ot,Iy,WD,RT,YD=dt(()=>{FT();ot=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Iy=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===r[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o}
64 64
65${this.candidates.map(({usage:a})=>`$ ${a}`).join(` 65${this.candidates.map(({usage:a})=>`$ ${a}`).join(`
66`)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean: 66`)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean:
67 67
68$ ${o} 68$ ${o}
69${kT(e)}`}else this.message=`Command not found; did you mean one of: 69${RT(e)}`}else this.message=`Command not found; did you mean one of:
70 70
71${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(` 71${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(`
72`)} 72`)}
73 73
74${kT(e)}`}},jD=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: 74${RT(e)}`}},WD=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives:
75 75
76${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(` 76${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(`
77`)} 77`)}
78 78
79${kT(e)}`}},kT=t=>`While running ${t.filter(e=>e!==js).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function Cqe(t){let e=t.split(` 79${RT(e)}`}},RT=t=>`While running ${t.filter(e=>e!==js).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function Bqe(t){let e=t.split(`
80`),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(` 80`),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(`
81`)}function Bo(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` 81`)}function Bo(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,`
82`),t=Cqe(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 82`),t=Bqe(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
83 83
84`),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(` 84`),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(`
85`);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(` 85`);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(`
86`)}).join(` 86`)}).join(`
87 87
88`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t} 88`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t}
89`:""}var FT,gV,dV,RT=dt(()=>{FT=Array(80).fill("\u2501");for(let t=0;t<=24;++t)FT[FT.length-t]=`\x1B[38;5;${232+t}m\u2501`;gV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<80-5?` ${FT.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},dV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Go(t){return{...t,[JI]:!0}}function Ku(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function WD(t,e=!1){let r=t.replace(/^\.: /,"");return e&&(r=r[0].toLowerCase()+r.slice(1)),r}function zI(t,e){return e.length===1?new ot(`${t}: ${WD(e[0],!0)}`):new ot(`${t}: 89`:""}var TT,mV,yV,NT=dt(()=>{TT=Array(80).fill("\u2501");for(let t=0;t<=24;++t)TT[TT.length-t]=`\x1B[38;5;${232+t}m\u2501`;mV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<80-5?` ${TT.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},yV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Wo(t){return{...t,[zI]:!0}}function Ku(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function KD(t,e=!1){let r=t.replace(/^\.: /,"");return e&&(r=r[0].toLowerCase()+r.slice(1)),r}function XI(t,e){return e.length===1?new ot(`${t}: ${KD(e[0],!0)}`):new ot(`${t}:
90${e.map(r=>` 90${e.map(r=>`
91- ${WD(r)}`).join("")}`)}function XI(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw zI(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var JI,Ef=dt(()=>{GD();JI=Symbol("clipanion/isOption")});var Wo={};Yt(Wo,{KeyRelationship:()=>Zg,applyCascade:()=>ed,base64RegExp:()=>EV,colorStringAlphaRegExp:()=>CV,colorStringRegExp:()=>yV,computeKey:()=>Gp,getPrintable:()=>Ki,hasExactLength:()=>DV,hasForbiddenKeys:()=>Kqe,hasKeyRelationship:()=>UT,hasMaxLength:()=>Fqe,hasMinLength:()=>kqe,hasMutuallyExclusiveKeys:()=>Vqe,hasRequiredKeys:()=>Yqe,hasUniqueItems:()=>Rqe,isArray:()=>vqe,isAtLeast:()=>OT,isAtMost:()=>Lqe,isBase64:()=>Gqe,isBoolean:()=>wqe,isDate:()=>Bqe,isDict:()=>Sqe,isEnum:()=>Gs,isHexColor:()=>jqe,isISO8601:()=>qqe,isInExclusiveRange:()=>Mqe,isInInclusiveRange:()=>Oqe,isInstanceOf:()=>xqe,isInteger:()=>MT,isJSON:()=>Wqe,isLiteral:()=>Eqe,isLowerCase:()=>Uqe,isNegative:()=>Tqe,isNullable:()=>Qqe,isNumber:()=>NT,isObject:()=>Pqe,isOneOf:()=>LT,isOptional:()=>bqe,isPositive:()=>Nqe,isString:()=>ZI,isTuple:()=>Dqe,isUUID4:()=>Hqe,isUnknown:()=>vV,isUpperCase:()=>_qe,iso8601RegExp:()=>TT,makeCoercionFn:()=>$g,makeSetter:()=>BV,makeTrait:()=>wV,makeValidator:()=>Yr,matchesRegExp:()=>$I,plural:()=>YD,pushError:()=>xr,simpleKeyRegExp:()=>mV,uuid4RegExp:()=>IV});function Yr({test:t}){return wV(t)()}function Ki(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":JSON.stringify(t)}function Gp(t,e){var r,o,a;return typeof e=="number"?`${(r=t==null?void 0:t.p)!==null&&r!==void 0?r:"."}[${e}]`:mV.test(e)?`${(o=t==null?void 0:t.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t==null?void 0:t.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function $g(t,e){return r=>{let o=t[e];return t[e]=r,$g(t,e).bind(null,o)}}function BV(t,e){return r=>{t[e]=r}}function YD(t,e,r){return t===1?e:r}function xr({errors:t,p:e}={},r){return t==null||t.push(`${e??"."}: ${r}`),!1}function Eqe(t){return Yr({test:(e,r)=>e!==t?xr(r,`Expected a literal (got ${Ki(t)})`):!0})}function Gs(t){let e=Array.isArray(t)?t:Object.values(t),r=new Set(e);return Yr({test:(o,a)=>r.has(o)?!0:xr(a,`Expected a valid enumeration value (got ${Ki(o)})`)})}var mV,yV,CV,EV,IV,TT,wV,vV,ZI,Iqe,wqe,NT,Bqe,vqe,Dqe,Sqe,Pqe,xqe,LT,ed,bqe,Qqe,kqe,Fqe,DV,Rqe,Tqe,Nqe,OT,Lqe,Oqe,Mqe,MT,$I,Uqe,_qe,Hqe,qqe,jqe,Gqe,Wqe,Yqe,Kqe,Vqe,Zg,Jqe,UT,tl=dt(()=>{mV=/^[a-zA-Z_][a-zA-Z0-9_]*$/,yV=/^#[0-9a-f]{6}$/i,CV=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,EV=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,IV=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,TT=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,wV=t=>()=>t;vV=()=>Yr({test:(t,e)=>!0});ZI=()=>Yr({test:(t,e)=>typeof t!="string"?xr(e,`Expected a string (got ${Ki(t)})`):!0});Iqe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),wqe=()=>Yr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return xr(e,"Unbound coercion result");let o=Iqe.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return xr(e,`Expected a boolean (got ${Ki(t)})`)}return!0}}),NT=()=>Yr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return xr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return xr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return xr(e,`Expected a number (got ${Ki(t)})`)}return!0}}),Bqe=()=>Yr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return xr(e,"Unbound coercion result");let o;if(typeof t=="string"&&TT.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return xr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return xr(e,`Expected a date (got ${Ki(t)})`)}return!0}}),vqe=(t,{delimiter:e}={})=>Yr({test:(r,o)=>{var a;if(typeof r=="string"&&typeof e<"u"&&typeof(o==null?void 0:o.coercions)<"u"){if(typeof(o==null?void 0:o.coercion)>"u")return xr(o,"Unbound coercion result");r=r.split(e),o.coercions.push([(a=o.p)!==null&&a!==void 0?a:".",o.coercion.bind(null,r)])}if(!Array.isArray(r))return xr(o,`Expected an array (got ${Ki(r)})`);let n=!0;for(let u=0,A=r.length;u<A&&(n=t(r[u],Object.assign(Object.assign({},o),{p:Gp(o,u),coercion:$g(r,u)}))&&n,!(!n&&(o==null?void 0:o.errors)==null));++u);return n}}),Dqe=(t,{delimiter:e}={})=>{let r=DV(t.length);return Yr({test:(o,a)=>{var n;if(typeof o=="string"&&typeof e<"u"&&typeof(a==null?void 0:a.coercions)<"u"){if(typeof(a==null?void 0:a.coercion)>"u")return xr(a,"Unbound coercion result");o=o.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)])}if(!Array.isArray(o))return xr(a,`Expected a tuple (got ${Ki(o)})`);let u=r(o,Object.assign({},a));for(let A=0,p=o.length;A<p&&A<t.length&&(u=t[A](o[A],Object.assign(Object.assign({},a),{p:Gp(a,A),coercion:$g(o,A)}))&&u,!(!u&&(a==null?void 0:a.errors)==null));++A);return u}})},Sqe=(t,{keys:e=null}={})=>Yr({test:(r,o)=>{if(typeof r!="object"||r===null)return xr(o,`Expected an object (got ${Ki(r)})`);let a=Object.keys(r),n=!0;for(let u=0,A=a.length;u<A&&(n||(o==null?void 0:o.errors)!=null);++u){let p=a[u],h=r[p];if(p==="__proto__"||p==="constructor"){n=xr(Object.assign(Object.assign({},o),{p:Gp(o,p)}),"Unsafe property name");continue}if(e!==null&&!e(p,o)){n=!1;continue}if(!t(h,Object.assign(Object.assign({},o),{p:Gp(o,p),coercion:$g(r,p)}))){n=!1;continue}}return n}}),Pqe=(t,{extra:e=null}={})=>{let r=Object.keys(t);return Yr({test:(o,a)=>{if(typeof o!="object"||o===null)return xr(a,`Expected an object (got ${Ki(o)})`);let n=new Set([...r,...Object.keys(o)]),u={},A=!0;for(let p of n){if(p==="constructor"||p==="__proto__")A=xr(Object.assign(Object.assign({},a),{p:Gp(a,p)}),"Unsafe property name");else{let h=Object.prototype.hasOwnProperty.call(t,p)?t[p]:void 0,E=Object.prototype.hasOwnProperty.call(o,p)?o[p]:void 0;typeof h<"u"?A=h(E,Object.assign(Object.assign({},a),{p:Gp(a,p),coercion:$g(o,p)}))&&A:e===null?A=xr(Object.assign(Object.assign({},a),{p:Gp(a,p)}),`Extraneous property (got ${Ki(E)})`):Object.defineProperty(u,p,{enumerable:!0,get:()=>E,set:BV(o,p)})}if(!A&&(a==null?void 0:a.errors)==null)break}return e!==null&&(A||(a==null?void 0:a.errors)!=null)&&(A=e(u,a)&&A),A}})},xqe=t=>Yr({test:(e,r)=>e instanceof t?!0:xr(r,`Expected an instance of ${t.name} (got ${Ki(e)})`)}),LT=(t,{exclusive:e=!1}={})=>Yr({test:(r,o)=>{var a,n,u;let A=[],p=typeof(o==null?void 0:o.errors)<"u"?[]:void 0;for(let h=0,E=t.length;h<E;++h){let w=typeof(o==null?void 0:o.errors)<"u"?[]:void 0,v=typeof(o==null?void 0:o.coercions)<"u"?[]:void 0;if(t[h](r,Object.assign(Object.assign({},o),{errors:w,coercions:v,p:`${(a=o==null?void 0:o.p)!==null&&a!==void 0?a:"."}#${h+1}`}))){if(A.push([`#${h+1}`,v]),!e)break}else p==null||p.push(w[0])}if(A.length===1){let[,h]=A[0];return typeof h<"u"&&((n=o==null?void 0:o.coercions)===null||n===void 0||n.push(...h)),!0}return A.length>1?xr(o,`Expected to match exactly a single predicate (matched ${A.join(", ")})`):(u=o==null?void 0:o.errors)===null||u===void 0||u.push(...p),!1}}),ed=(t,e)=>Yr({test:(r,o)=>{var a,n;let u={value:r},A=typeof(o==null?void 0:o.coercions)<"u"?$g(u,"value"):void 0,p=typeof(o==null?void 0:o.coercions)<"u"?[]:void 0;if(!t(r,Object.assign(Object.assign({},o),{coercion:A,coercions:p})))return!1;let h=[];if(typeof p<"u")for(let[,E]of p)h.push(E());try{if(typeof(o==null?void 0:o.coercions)<"u"){if(u.value!==r){if(typeof(o==null?void 0:o.coercion)>"u")return xr(o,"Unbound coercion result");o.coercions.push([(a=o.p)!==null&&a!==void 0?a:".",o.coercion.bind(null,u.value)])}(n=o==null?void 0:o.coercions)===null||n===void 0||n.push(...p)}return e.every(E=>E(u.value,o))}finally{for(let E of h)E()}}}),bqe=t=>Yr({test:(e,r)=>typeof e>"u"?!0:t(e,r)}),Qqe=t=>Yr({test:(e,r)=>e===null?!0:t(e,r)}),kqe=t=>Yr({test:(e,r)=>e.length>=t?!0:xr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)}),Fqe=t=>Yr({test:(e,r)=>e.length<=t?!0:xr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)}),DV=t=>Yr({test:(e,r)=>e.length!==t?xr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0}),Rqe=({map:t}={})=>Yr({test:(e,r)=>{let o=new Set,a=new Set;for(let n=0,u=e.length;n<u;++n){let A=e[n],p=typeof t<"u"?t(A):A;if(o.has(p)){if(a.has(p))continue;xr(r,`Expected to contain unique elements; got a duplicate with ${Ki(e)}`),a.add(p)}else o.add(p)}return a.size===0}}),Tqe=()=>Yr({test:(t,e)=>t<=0?!0:xr(e,`Expected to be negative (got ${t})`)}),Nqe=()=>Yr({test:(t,e)=>t>=0?!0:xr(e,`Expected to be positive (got ${t})`)}),OT=t=>Yr({test:(e,r)=>e>=t?!0:xr(r,`Expected to be at least ${t} (got ${e})`)}),Lqe=t=>Yr({test:(e,r)=>e<=t?!0:xr(r,`Expected to be at most ${t} (got ${e})`)}),Oqe=(t,e)=>Yr({test:(r,o)=>r>=t&&r<=e?!0:xr(o,`Expected to be in the [${t}; ${e}] range (got ${r})`)}),Mqe=(t,e)=>Yr({test:(r,o)=>r>=t&&r<e?!0:xr(o,`Expected to be in the [${t}; ${e}[ range (got ${r})`)}),MT=({unsafe:t=!1}={})=>Yr({test:(e,r)=>e!==Math.round(e)?xr(r,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:xr(r,`Expected to be a safe integer (got ${e})`)}),$I=t=>Yr({test:(e,r)=>t.test(e)?!0:xr(r,`Expected to match the pattern ${t.toString()} (got ${Ki(e)})`)}),Uqe=()=>Yr({test:(t,e)=>t!==t.toLowerCase()?xr(e,`Expected to be all-lowercase (got ${t})`):!0}),_qe=()=>Yr({test:(t,e)=>t!==t.toUpperCase()?xr(e,`Expected to be all-uppercase (got ${t})`):!0}),Hqe=()=>Yr({test:(t,e)=>IV.test(t)?!0:xr(e,`Expected to be a valid UUID v4 (got ${Ki(t)})`)}),qqe=()=>Yr({test:(t,e)=>TT.test(t)?!1:xr(e,`Expected to be a valid ISO 8601 date string (got ${Ki(t)})`)}),jqe=({alpha:t=!1})=>Yr({test:(e,r)=>(t?yV.test(e):CV.test(e))?!0:xr(r,`Expected to be a valid hexadecimal color string (got ${Ki(e)})`)}),Gqe=()=>Yr({test:(t,e)=>EV.test(t)?!0:xr(e,`Expected to be a valid base 64 string (got ${Ki(t)})`)}),Wqe=(t=vV())=>Yr({test:(e,r)=>{let o;try{o=JSON.parse(e)}catch{return xr(r,`Expected to be a valid JSON string (got ${Ki(e)})`)}return t(o,r)}}),Yqe=t=>{let e=new Set(t);return Yr({test:(r,o)=>{let a=new Set(Object.keys(r)),n=[];for(let u of e)a.has(u)||n.push(u);return n.length>0?xr(o,`Missing required ${YD(n.length,"property","properties")} ${n.map(u=>`"${u}"`).join(", ")}`):!0}})},Kqe=t=>{let e=new Set(t);return Yr({test:(r,o)=>{let a=new Set(Object.keys(r)),n=[];for(let u of e)a.has(u)&&n.push(u);return n.length>0?xr(o,`Forbidden ${YD(n.length,"property","properties")} ${n.map(u=>`"${u}"`).join(", ")}`):!0}})},Vqe=t=>{let e=new Set(t);return Yr({test:(r,o)=>{let a=new Set(Object.keys(r)),n=[];for(let u of e)a.has(u)&&n.push(u);return n.length>1?xr(o,`Mutually exclusive properties ${n.map(u=>`"${u}"`).join(", ")}`):!0}})};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Zg||(Zg={}));Jqe={[Zg.Forbids]:{expect:!1,message:"forbids using"},[Zg.Requires]:{expect:!0,message:"requires using"}},UT=(t,e,r,{ignore:o=[]}={})=>{let a=new Set(o),n=new Set(r),u=Jqe[e];return Yr({test:(A,p)=>{let h=new Set(Object.keys(A));if(!h.has(t)||a.has(A[t]))return!0;let E=[];for(let w of n)(h.has(w)&&!a.has(A[w]))!==u.expect&&E.push(w);return E.length>=1?xr(p,`Property "${t}" ${u.message} ${YD(E.length,"property","properties")} ${E.map(w=>`"${w}"`).join(", ")}`):!0}})}});var it,td=dt(()=>{Ef();it=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(tl(),Wo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw zI("Invalid option schema",p);for(let[,w]of h)w()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};it.isOption=JI;it.Default=[]});function Ba(t){bT&&console.log(t)}function PV(){return{nodes:[Yo(),Yo(),Yo()]}}function zqe(t){let e=PV(),r=[],o=e.nodes.length;for(let a of t){r.push(o);for(let n=0;n<a.nodes.length;++n)QV(n)||e.nodes.push(sje(a.nodes[n],o));o+=a.nodes.length-2}for(let a of r)wy(e,0,a);return e}function Hc(t,e){return t.nodes.push(e),t.nodes.length-1}function Xqe(t){let e=new Set,r=o=>{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let w of h)E.some(({to:v})=>w.to===v)||E.push(w)}for(let[p,h]of A.dynamics)a.dynamics.some(([E,{to:w}])=>p===E&&h.to===w)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(0)}function Zqe(t,{prefix:e=""}={}){if(bT){Ba(`${e}Nodes are:`);for(let r=0;r<t.nodes.length;++r)Ba(`${e} ${r}: ${JSON.stringify(t.nodes[r])}`)}}function xV(t,e,r=!1){Ba(`Running a vm on ${JSON.stringify(e)}`);let o=[{node:0,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];Zqe(t,{prefix:" "});let a=[ST,...e];for(let n=0;n<a.length;++n){let u=a[n];Ba(` Processing ${JSON.stringify(u)}`);let A=[];for(let{node:p,state:h}of o){Ba(` Current node is ${p}`);let E=t.nodes[p];if(p===2){A.push({node:p,state:h});continue}console.assert(E.shortcuts.length===0,"Shortcuts should have been eliminated by now");let w=Object.prototype.hasOwnProperty.call(E.statics,u);if(!r||n<a.length-1||w)if(w){let v=E.statics[u];for(let{to:b,reducer:C}of v)A.push({node:b,state:typeof C<"u"?KD(HT,C,h,u):h}),Ba(` Static transition to ${b} found`)}else Ba(" No static transition found");else{let v=!1;for(let b of Object.keys(E.statics))if(!!b.startsWith(u)){if(u===b)for(let{to:C,reducer:R}of E.statics[b])A.push({node:C,state:typeof R<"u"?KD(HT,R,h,u):h}),Ba(` Static transition to ${C} found`);else for(let{to:C}of E.statics[b])A.push({node:C,state:{...h,remainder:b.slice(u.length)}}),Ba(` Static transition to ${C} found (partial match)`);v=!0}v||Ba(" No partial static transition found")}if(u!==js)for(let[v,{to:b,reducer:C}]of E.dynamics)KD(JD,v,h,u)&&(A.push({node:b,state:typeof C<"u"?KD(HT,C,h,u):h}),Ba(` Dynamic transition to ${b} found (via ${v})`))}if(A.length===0&&u===js&&e.length===1)return[{node:0,state:SV}];if(A.length===0)throw new Iy(e,o.filter(({node:p})=>p!==2).map(({state:p})=>({usage:p.candidateUsage,reason:null})));if(A.every(({node:p})=>p===2))throw new Iy(e,A.map(({state:p})=>({usage:p.candidateUsage,reason:p.errorMessage})));o=rje(A)}if(o.length>0){Ba(" Results:");for(let n of o)Ba(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else Ba(" No results");return o}function $qe(t,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(t.statics,js)){for(let{to:r}of t.statics[js])if(r===1)return!0}return!1}function eje(t,e,r){let o=r&&e.length>0?[""]:[],a=xV(t,e,r),n=[],u=new Set,A=(p,h,E=!0)=>{let w=[h];for(;w.length>0;){let b=w;w=[];for(let C of b){let R=t.nodes[C],L=Object.keys(R.statics);for(let _ of Object.keys(R.statics)){let V=L[0];for(let{to:re,reducer:oe}of R.statics[V])oe==="pushPath"&&(E||p.push(V),w.push(re))}}E=!1}let v=JSON.stringify(p);u.has(v)||(n.push(p),u.add(v))};for(let{node:p,state:h}of a){if(h.remainder!==null){A([h.remainder],p);continue}let E=t.nodes[p],w=$qe(E,h);for(let[v,b]of Object.entries(E.statics))(w&&v!==js||!v.startsWith("-")&&b.some(({reducer:C})=>C==="pushPath"))&&A([...o,v],p);if(!!w)for(let[v,{to:b}]of E.dynamics){if(b===2)continue;let C=oje(v,h);if(C!==null)for(let R of C)A([...o,R],p)}}return[...n].sort()}function tje(t,e){let r=xV(t,[...e,js]);return nje(e,r.map(({state:o})=>o))}function rje(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function nje(t,e){let r=e.filter(w=>w.selectedIndex!==null);if(r.length===0)throw new Error;let o=r.filter(w=>w.requiredOptions.every(v=>v.some(b=>w.options.find(C=>C.name===b))));if(o.length===0)throw new Iy(t,r.map(w=>({usage:w.candidateUsage,reason:null})));let a=0;for(let w of o)w.path.length>a&&(a=w.path.length);let n=o.filter(w=>w.path.length===a),u=w=>w.positionals.filter(({extra:v})=>!v).length+w.options.length,A=n.map(w=>({state:w,positionalCount:u(w)})),p=0;for(let{positionalCount:w}of A)w>p&&(p=w);let h=A.filter(({positionalCount:w})=>w===p).map(({state:w})=>w),E=ije(h);if(E.length>1)throw new jD(t,E.map(w=>w.candidateUsage));return E[0]}function ije(t){let e=[],r=[];for(let o of t)o.selectedIndex===-1?r.push(o):e.push(o);return r.length>0&&e.push({...SV,path:bV(...r.map(o=>o.path)),options:r.reduce((o,a)=>o.concat(a.options),[])}),e}function bV(t,e,...r){return e===void 0?Array.from(t):bV(t.filter((o,a)=>o===e[a]),...r)}function Yo(){return{dynamics:[],shortcuts:[],statics:{}}}function QV(t){return t===1||t===2}function _T(t,e=0){return{to:QV(t.to)?t.to:t.to>2?t.to+e-2:t.to+e,reducer:t.reducer}}function sje(t,e=0){let r=Yo();for(let[o,a]of t.dynamics)r.dynamics.push([o,_T(a,e)]);for(let o of t.shortcuts)r.shortcuts.push(_T(o,e));for(let[o,a]of Object.entries(t.statics))r.statics[o]=a.map(n=>_T(n,e));return r}function Ws(t,e,r,o,a){t.nodes[e].dynamics.push([r,{to:o,reducer:a}])}function wy(t,e,r,o){t.nodes[e].shortcuts.push({to:r,reducer:o})}function If(t,e,r,o,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:o,reducer:a})}function KD(t,e,r,o){if(Array.isArray(e)){let[a,...n]=e;return t[a](r,o,...n)}else return t[e](r,o)}function oje(t,e){let r=Array.isArray(t)?JD[t[0]]:JD[t];if(typeof r.suggest>"u")return null;let o=Array.isArray(t)?t.slice(1):[];return r.suggest(e,...o)}var SV,JD,HT,rl,qT,vy,XD=dt(()=>{QT();GD();SV={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};JD={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,o)=>!t.ignoreOptions&&e===r,isBatchOption:(t,e,r)=>!t.ignoreOptions&&hV.test(e)&&[...e.slice(1)].every(o=>r.includes(`-${o}`)),isBoundOption:(t,e,r,o)=>{let a=e.match(xT);return!t.ignoreOptions&&!!a&&qD.test(a[1])&&r.includes(a[1])&&o.filter(n=>n.names.includes(a[1])).every(n=>n.allowBinding)},isNegatedOption:(t,e,r)=>!t.ignoreOptions&&e===`--no-${r.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&PT.test(e),isUnsupportedOption:(t,e,r)=>!t.ignoreOptions&&e.startsWith("-")&&qD.test(e)&&!r.includes(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!qD.test(e)};JD.isOption.suggest=(t,e,r=!0)=>r?null:[e];HT={setCandidateState:(t,e,r)=>({...t,...r}),setSelectedIndex:(t,e,r)=>({...t,selectedIndex:r}),pushBatch:(t,e)=>({...t,options:t.options.concat([...e.slice(1)].map(r=>({name:`-${r}`,value:!0})))}),pushBound:(t,e)=>{let[,r,o]=e.match(xT);return{...t,options:t.options.concat({name:r,value:o})}},pushPath:(t,e)=>({...t,path:t.path.concat(e)}),pushPositional:(t,e)=>({...t,positionals:t.positionals.concat({value:e,extra:!1})}),pushExtra:(t,e)=>({...t,positionals:t.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(t,e)=>({...t,positionals:t.positionals.concat({value:e,extra:rl})}),pushTrue:(t,e,r=e)=>({...t,options:t.options.concat({name:e,value:!0})}),pushFalse:(t,e,r=e)=>({...t,options:t.options.concat({name:r,value:!1})}),pushUndefined:(t,e)=>({...t,options:t.options.concat({name:e,value:void 0})}),pushStringValue:(t,e)=>{var r;let o={...t,options:[...t.options]},a=t.options[t.options.length-1];return a.value=((r=a.value)!==null&&r!==void 0?r:[]).concat([e]),o},setStringValue:(t,e)=>{let r={...t,options:[...t.options]},o=t.options[t.options.length-1];return o.value=e,r},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r)=>{let[,,o]=e.match(PT);return typeof o<"u"?{...t,options:[{name:"-c",value:String(r)},{name:"-i",value:o}]}:{...t,options:[{name:"-c",value:String(r)}]}},setError:(t,e,r)=>e===js?{...t,errorMessage:`${r}.`}:{...t,errorMessage:`${r} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},rl=Symbol(),qT=class{constructor(e,r){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:o=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:o,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===rl)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==rl?this.arity.extra.push(e):this.arity.extra!==rl&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===rl)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o<r;++o)this.addPositional({name:e});this.arity.extra=rl}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:r,arity:o=0,hidden:a=!1,required:n=!1,allowBinding:u=!0}){if(!u&&o>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);this.allOptionNames.push(...e),this.options.push({names:e,description:r,arity:o,hidden:a,required:n,allowBinding:u})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let o=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&o.push(...this.paths[0]),e){for(let{names:u,arity:A,hidden:p,description:h,required:E}of this.options){if(p)continue;let w=[];for(let b=0;b<A;++b)w.push(` #${b}`);let v=`${u.join(",")}${w.join("")}`;!r&&h?a.push({definition:v,description:h,required:E}):o.push(E?`<${v}>`:`[${v}]`)}o.push(...this.arity.leading.map(u=>`<${u}>`)),this.arity.extra===rl?o.push("..."):o.push(...this.arity.extra.map(u=>`[${u}]`)),o.push(...this.arity.trailing.map(u=>`<${u}>`))}return{usage:o.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=PV(),r=0,o=this.usage().usage,a=this.options.filter(A=>A.required).map(A=>A.names);r=Hc(e,Yo()),If(e,0,ST,r,["setCandidateState",{candidateUsage:o,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",u=this.paths.length>0?this.paths:[[]];for(let A of u){let p=r;if(A.length>0){let v=Hc(e,Yo());wy(e,p,v),this.registerOptions(e,v),p=v}for(let v=0;v<A.length;++v){let b=Hc(e,Yo());If(e,p,A[v],b,"pushPath"),p=b}if(this.arity.leading.length>0||!this.arity.proxy){let v=Hc(e,Yo());Ws(e,p,"isHelp",v,["useHelp",this.cliIndex]),If(e,v,js,1,["setSelectedIndex",-1]),this.registerOptions(e,p)}this.arity.leading.length>0&&If(e,p,js,2,["setError","Not enough positional arguments"]);let h=p;for(let v=0;v<this.arity.leading.length;++v){let b=Hc(e,Yo());(!this.arity.proxy||v+1!==this.arity.leading.length)&&this.registerOptions(e,b),(this.arity.trailing.length>0||v+1!==this.arity.leading.length)&&If(e,b,js,2,["setError","Not enough positional arguments"]),Ws(e,h,"isNotOptionLike",b,"pushPositional"),h=b}let E=h;if(this.arity.extra===rl||this.arity.extra.length>0){let v=Hc(e,Yo());if(wy(e,h,v),this.arity.extra===rl){let b=Hc(e,Yo());this.arity.proxy||this.registerOptions(e,b),Ws(e,h,n,b,"pushExtraNoLimits"),Ws(e,b,n,b,"pushExtraNoLimits"),wy(e,b,v)}else for(let b=0;b<this.arity.extra.length;++b){let C=Hc(e,Yo());(!this.arity.proxy||b>0)&&this.registerOptions(e,C),Ws(e,E,n,C,"pushExtra"),wy(e,C,v),E=C}E=v}this.arity.trailing.length>0&&If(e,E,js,2,["setError","Not enough positional arguments"]);let w=E;for(let v=0;v<this.arity.trailing.length;++v){let b=Hc(e,Yo());this.arity.proxy||this.registerOptions(e,b),v+1<this.arity.trailing.length&&If(e,b,js,2,["setError","Not enough positional arguments"]),Ws(e,w,"isNotOptionLike",b,"pushPositional"),w=b}Ws(e,w,n,2,["setError","Extraneous positional argument"]),If(e,w,js,1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,r){Ws(e,r,["isOption","--"],r,"inhibateOptions"),Ws(e,r,["isBatchOption",this.allOptionNames],r,"pushBatch"),Ws(e,r,["isBoundOption",this.allOptionNames,this.options],r,"pushBound"),Ws(e,r,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),Ws(e,r,["isInvalidOption"],2,["setError","Invalid option name"]);for(let o of this.options){let a=o.names.reduce((n,u)=>u.length>n.length?u:n,"");if(o.arity===0)for(let n of o.names)Ws(e,r,["isOption",n,o.hidden||n!==a],r,"pushTrue"),n.startsWith("--")&&!n.startsWith("--no-")&&Ws(e,r,["isNegatedOption",n],r,["pushFalse",n]);else{let n=Hc(e,Yo());for(let u of o.names)Ws(e,r,["isOption",u,o.hidden||u!==a],n,"pushUndefined");for(let u=0;u<o.arity;++u){let A=Hc(e,Yo());If(e,n,js,2,"setOptionArityError"),Ws(e,n,"isOptionLike",2,"setOptionArityError");let p=o.arity===1?"setStringValue":"pushStringValue";Ws(e,n,"isNotOptionLike",A,p),n=A}wy(e,n,r)}}}},vy=class{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,r={}){return new vy(r).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let r of e)r(this.command());return this}command(){let e=new qT(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],r=[];for(let a of this.builders){let{machine:n,context:u}=a.compile();e.push(n),r.push(u)}let o=zqe(e);return Xqe(o),{machine:o,contexts:r,process:a=>tje(o,a),suggest:(a,n)=>eje(o,a,n)}}}});function FV(){return ZD.default&&"getColorDepth"in ZD.default.WriteStream.prototype?ZD.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function RV(t){let e=kV;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=Ie("async_hooks");e=kV=new r;let o=process.stdout._write;process.stdout._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?o.call(this,n,u,A):p.stdout.write(n,u,A)};let a=process.stderr._write;process.stderr._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?a.call(this,n,u,A):p.stderr.write(n,u,A)}}return r=>e.run(t,r)}var ZD,kV,TV=dt(()=>{ZD=tt(Ie("tty"),1)});var Dy,NV=dt(()=>{td();Dy=class extends it{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let o=new Dy(r);o.path=e.path;for(let a of e.options)switch(a.name){case"-c":o.commands.push(Number(a.value));break;case"-i":o.index=Number(a.value);break}return o}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection: 91- ${KD(r)}`).join("")}`)}function ZI(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw XI(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var zI,If=dt(()=>{YD();zI=Symbol("clipanion/isOption")});var Yo={};Yt(Yo,{KeyRelationship:()=>$g,applyCascade:()=>td,base64RegExp:()=>wV,colorStringAlphaRegExp:()=>IV,colorStringRegExp:()=>CV,computeKey:()=>Yp,getPrintable:()=>Ki,hasExactLength:()=>PV,hasForbiddenKeys:()=>Xqe,hasKeyRelationship:()=>HT,hasMaxLength:()=>Lqe,hasMinLength:()=>Nqe,hasMutuallyExclusiveKeys:()=>Zqe,hasRequiredKeys:()=>zqe,hasUniqueItems:()=>Oqe,isArray:()=>xqe,isAtLeast:()=>UT,isAtMost:()=>_qe,isBase64:()=>Vqe,isBoolean:()=>Sqe,isDate:()=>Pqe,isDict:()=>Qqe,isEnum:()=>Gs,isHexColor:()=>Kqe,isISO8601:()=>Yqe,isInExclusiveRange:()=>qqe,isInInclusiveRange:()=>Hqe,isInstanceOf:()=>Fqe,isInteger:()=>_T,isJSON:()=>Jqe,isLiteral:()=>vqe,isLowerCase:()=>jqe,isNegative:()=>Mqe,isNullable:()=>Tqe,isNumber:()=>OT,isObject:()=>kqe,isOneOf:()=>MT,isOptional:()=>Rqe,isPositive:()=>Uqe,isString:()=>$I,isTuple:()=>bqe,isUUID4:()=>Wqe,isUnknown:()=>SV,isUpperCase:()=>Gqe,iso8601RegExp:()=>LT,makeCoercionFn:()=>ed,makeSetter:()=>DV,makeTrait:()=>vV,makeValidator:()=>Yr,matchesRegExp:()=>ew,plural:()=>VD,pushError:()=>xr,simpleKeyRegExp:()=>EV,uuid4RegExp:()=>BV});function Yr({test:t}){return vV(t)()}function Ki(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":JSON.stringify(t)}function Yp(t,e){var r,o,a;return typeof e=="number"?`${(r=t==null?void 0:t.p)!==null&&r!==void 0?r:"."}[${e}]`:EV.test(e)?`${(o=t==null?void 0:t.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t==null?void 0:t.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function ed(t,e){return r=>{let o=t[e];return t[e]=r,ed(t,e).bind(null,o)}}function DV(t,e){return r=>{t[e]=r}}function VD(t,e,r){return t===1?e:r}function xr({errors:t,p:e}={},r){return t==null||t.push(`${e??"."}: ${r}`),!1}function vqe(t){return Yr({test:(e,r)=>e!==t?xr(r,`Expected a literal (got ${Ki(t)})`):!0})}function Gs(t){let e=Array.isArray(t)?t:Object.values(t),r=new Set(e);return Yr({test:(o,a)=>r.has(o)?!0:xr(a,`Expected a valid enumeration value (got ${Ki(o)})`)})}var EV,CV,IV,wV,BV,LT,vV,SV,$I,Dqe,Sqe,OT,Pqe,xqe,bqe,Qqe,kqe,Fqe,MT,td,Rqe,Tqe,Nqe,Lqe,PV,Oqe,Mqe,Uqe,UT,_qe,Hqe,qqe,_T,ew,jqe,Gqe,Wqe,Yqe,Kqe,Vqe,Jqe,zqe,Xqe,Zqe,$g,$qe,HT,rl=dt(()=>{EV=/^[a-zA-Z_][a-zA-Z0-9_]*$/,CV=/^#[0-9a-f]{6}$/i,IV=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,wV=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,BV=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,LT=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,vV=t=>()=>t;SV=()=>Yr({test:(t,e)=>!0});$I=()=>Yr({test:(t,e)=>typeof t!="string"?xr(e,`Expected a string (got ${Ki(t)})`):!0});Dqe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sqe=()=>Yr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return xr(e,"Unbound coercion result");let o=Dqe.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return xr(e,`Expected a boolean (got ${Ki(t)})`)}return!0}}),OT=()=>Yr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return xr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return xr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return xr(e,`Expected a number (got ${Ki(t)})`)}return!0}}),Pqe=()=>Yr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return xr(e,"Unbound coercion result");let o;if(typeof t=="string"&&LT.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return xr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return xr(e,`Expected a date (got ${Ki(t)})`)}return!0}}),xqe=(t,{delimiter:e}={})=>Yr({test:(r,o)=>{var a;if(typeof r=="string"&&typeof e<"u"&&typeof(o==null?void 0:o.coercions)<"u"){if(typeof(o==null?void 0:o.coercion)>"u")return xr(o,"Unbound coercion result");r=r.split(e),o.coercions.push([(a=o.p)!==null&&a!==void 0?a:".",o.coercion.bind(null,r)])}if(!Array.isArray(r))return xr(o,`Expected an array (got ${Ki(r)})`);let n=!0;for(let u=0,A=r.length;u<A&&(n=t(r[u],Object.assign(Object.assign({},o),{p:Yp(o,u),coercion:ed(r,u)}))&&n,!(!n&&(o==null?void 0:o.errors)==null));++u);return n}}),bqe=(t,{delimiter:e}={})=>{let r=PV(t.length);return Yr({test:(o,a)=>{var n;if(typeof o=="string"&&typeof e<"u"&&typeof(a==null?void 0:a.coercions)<"u"){if(typeof(a==null?void 0:a.coercion)>"u")return xr(a,"Unbound coercion result");o=o.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)])}if(!Array.isArray(o))return xr(a,`Expected a tuple (got ${Ki(o)})`);let u=r(o,Object.assign({},a));for(let A=0,p=o.length;A<p&&A<t.length&&(u=t[A](o[A],Object.assign(Object.assign({},a),{p:Yp(a,A),coercion:ed(o,A)}))&&u,!(!u&&(a==null?void 0:a.errors)==null));++A);return u}})},Qqe=(t,{keys:e=null}={})=>Yr({test:(r,o)=>{if(typeof r!="object"||r===null)return xr(o,`Expected an object (got ${Ki(r)})`);let a=Object.keys(r),n=!0;for(let u=0,A=a.length;u<A&&(n||(o==null?void 0:o.errors)!=null);++u){let p=a[u],h=r[p];if(p==="__proto__"||p==="constructor"){n=xr(Object.assign(Object.assign({},o),{p:Yp(o,p)}),"Unsafe property name");continue}if(e!==null&&!e(p,o)){n=!1;continue}if(!t(h,Object.assign(Object.assign({},o),{p:Yp(o,p),coercion:ed(r,p)}))){n=!1;continue}}return n}}),kqe=(t,{extra:e=null}={})=>{let r=Object.keys(t);return Yr({test:(o,a)=>{if(typeof o!="object"||o===null)return xr(a,`Expected an object (got ${Ki(o)})`);let n=new Set([...r,...Object.keys(o)]),u={},A=!0;for(let p of n){if(p==="constructor"||p==="__proto__")A=xr(Object.assign(Object.assign({},a),{p:Yp(a,p)}),"Unsafe property name");else{let h=Object.prototype.hasOwnProperty.call(t,p)?t[p]:void 0,C=Object.prototype.hasOwnProperty.call(o,p)?o[p]:void 0;typeof h<"u"?A=h(C,Object.assign(Object.assign({},a),{p:Yp(a,p),coercion:ed(o,p)}))&&A:e===null?A=xr(Object.assign(Object.assign({},a),{p:Yp(a,p)}),`Extraneous property (got ${Ki(C)})`):Object.defineProperty(u,p,{enumerable:!0,get:()=>C,set:DV(o,p)})}if(!A&&(a==null?void 0:a.errors)==null)break}return e!==null&&(A||(a==null?void 0:a.errors)!=null)&&(A=e(u,a)&&A),A}})},Fqe=t=>Yr({test:(e,r)=>e instanceof t?!0:xr(r,`Expected an instance of ${t.name} (got ${Ki(e)})`)}),MT=(t,{exclusive:e=!1}={})=>Yr({test:(r,o)=>{var a,n,u;let A=[],p=typeof(o==null?void 0:o.errors)<"u"?[]:void 0;for(let h=0,C=t.length;h<C;++h){let w=typeof(o==null?void 0:o.errors)<"u"?[]:void 0,v=typeof(o==null?void 0:o.coercions)<"u"?[]:void 0;if(t[h](r,Object.assign(Object.assign({},o),{errors:w,coercions:v,p:`${(a=o==null?void 0:o.p)!==null&&a!==void 0?a:"."}#${h+1}`}))){if(A.push([`#${h+1}`,v]),!e)break}else p==null||p.push(w[0])}if(A.length===1){let[,h]=A[0];return typeof h<"u"&&((n=o==null?void 0:o.coercions)===null||n===void 0||n.push(...h)),!0}return A.length>1?xr(o,`Expected to match exactly a single predicate (matched ${A.join(", ")})`):(u=o==null?void 0:o.errors)===null||u===void 0||u.push(...p),!1}}),td=(t,e)=>Yr({test:(r,o)=>{var a,n;let u={value:r},A=typeof(o==null?void 0:o.coercions)<"u"?ed(u,"value"):void 0,p=typeof(o==null?void 0:o.coercions)<"u"?[]:void 0;if(!t(r,Object.assign(Object.assign({},o),{coercion:A,coercions:p})))return!1;let h=[];if(typeof p<"u")for(let[,C]of p)h.push(C());try{if(typeof(o==null?void 0:o.coercions)<"u"){if(u.value!==r){if(typeof(o==null?void 0:o.coercion)>"u")return xr(o,"Unbound coercion result");o.coercions.push([(a=o.p)!==null&&a!==void 0?a:".",o.coercion.bind(null,u.value)])}(n=o==null?void 0:o.coercions)===null||n===void 0||n.push(...p)}return e.every(C=>C(u.value,o))}finally{for(let C of h)C()}}}),Rqe=t=>Yr({test:(e,r)=>typeof e>"u"?!0:t(e,r)}),Tqe=t=>Yr({test:(e,r)=>e===null?!0:t(e,r)}),Nqe=t=>Yr({test:(e,r)=>e.length>=t?!0:xr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)}),Lqe=t=>Yr({test:(e,r)=>e.length<=t?!0:xr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)}),PV=t=>Yr({test:(e,r)=>e.length!==t?xr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0}),Oqe=({map:t}={})=>Yr({test:(e,r)=>{let o=new Set,a=new Set;for(let n=0,u=e.length;n<u;++n){let A=e[n],p=typeof t<"u"?t(A):A;if(o.has(p)){if(a.has(p))continue;xr(r,`Expected to contain unique elements; got a duplicate with ${Ki(e)}`),a.add(p)}else o.add(p)}return a.size===0}}),Mqe=()=>Yr({test:(t,e)=>t<=0?!0:xr(e,`Expected to be negative (got ${t})`)}),Uqe=()=>Yr({test:(t,e)=>t>=0?!0:xr(e,`Expected to be positive (got ${t})`)}),UT=t=>Yr({test:(e,r)=>e>=t?!0:xr(r,`Expected to be at least ${t} (got ${e})`)}),_qe=t=>Yr({test:(e,r)=>e<=t?!0:xr(r,`Expected to be at most ${t} (got ${e})`)}),Hqe=(t,e)=>Yr({test:(r,o)=>r>=t&&r<=e?!0:xr(o,`Expected to be in the [${t}; ${e}] range (got ${r})`)}),qqe=(t,e)=>Yr({test:(r,o)=>r>=t&&r<e?!0:xr(o,`Expected to be in the [${t}; ${e}[ range (got ${r})`)}),_T=({unsafe:t=!1}={})=>Yr({test:(e,r)=>e!==Math.round(e)?xr(r,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:xr(r,`Expected to be a safe integer (got ${e})`)}),ew=t=>Yr({test:(e,r)=>t.test(e)?!0:xr(r,`Expected to match the pattern ${t.toString()} (got ${Ki(e)})`)}),jqe=()=>Yr({test:(t,e)=>t!==t.toLowerCase()?xr(e,`Expected to be all-lowercase (got ${t})`):!0}),Gqe=()=>Yr({test:(t,e)=>t!==t.toUpperCase()?xr(e,`Expected to be all-uppercase (got ${t})`):!0}),Wqe=()=>Yr({test:(t,e)=>BV.test(t)?!0:xr(e,`Expected to be a valid UUID v4 (got ${Ki(t)})`)}),Yqe=()=>Yr({test:(t,e)=>LT.test(t)?!1:xr(e,`Expected to be a valid ISO 8601 date string (got ${Ki(t)})`)}),Kqe=({alpha:t=!1})=>Yr({test:(e,r)=>(t?CV.test(e):IV.test(e))?!0:xr(r,`Expected to be a valid hexadecimal color string (got ${Ki(e)})`)}),Vqe=()=>Yr({test:(t,e)=>wV.test(t)?!0:xr(e,`Expected to be a valid base 64 string (got ${Ki(t)})`)}),Jqe=(t=SV())=>Yr({test:(e,r)=>{let o;try{o=JSON.parse(e)}catch{return xr(r,`Expected to be a valid JSON string (got ${Ki(e)})`)}return t(o,r)}}),zqe=t=>{let e=new Set(t);return Yr({test:(r,o)=>{let a=new Set(Object.keys(r)),n=[];for(let u of e)a.has(u)||n.push(u);return n.length>0?xr(o,`Missing required ${VD(n.length,"property","properties")} ${n.map(u=>`"${u}"`).join(", ")}`):!0}})},Xqe=t=>{let e=new Set(t);return Yr({test:(r,o)=>{let a=new Set(Object.keys(r)),n=[];for(let u of e)a.has(u)&&n.push(u);return n.length>0?xr(o,`Forbidden ${VD(n.length,"property","properties")} ${n.map(u=>`"${u}"`).join(", ")}`):!0}})},Zqe=t=>{let e=new Set(t);return Yr({test:(r,o)=>{let a=new Set(Object.keys(r)),n=[];for(let u of e)a.has(u)&&n.push(u);return n.length>1?xr(o,`Mutually exclusive properties ${n.map(u=>`"${u}"`).join(", ")}`):!0}})};(function(t){t.Forbids="Forbids",t.Requires="Requires"})($g||($g={}));$qe={[$g.Forbids]:{expect:!1,message:"forbids using"},[$g.Requires]:{expect:!0,message:"requires using"}},HT=(t,e,r,{ignore:o=[]}={})=>{let a=new Set(o),n=new Set(r),u=$qe[e];return Yr({test:(A,p)=>{let h=new Set(Object.keys(A));if(!h.has(t)||a.has(A[t]))return!0;let C=[];for(let w of n)(h.has(w)&&!a.has(A[w]))!==u.expect&&C.push(w);return C.length>=1?xr(p,`Property "${t}" ${u.message} ${VD(C.length,"property","properties")} ${C.map(w=>`"${w}"`).join(", ")}`):!0}})}});var it,rd=dt(()=>{If();it=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(rl(),Yo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw XI("Invalid option schema",p);for(let[,w]of h)w()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};it.isOption=zI;it.Default=[]});function va(t){kT&&console.log(t)}function bV(){return{nodes:[Ko(),Ko(),Ko()]}}function eje(t){let e=bV(),r=[],o=e.nodes.length;for(let a of t){r.push(o);for(let n=0;n<a.nodes.length;++n)FV(n)||e.nodes.push(cje(a.nodes[n],o));o+=a.nodes.length-2}for(let a of r)wy(e,0,a);return e}function qc(t,e){return t.nodes.push(e),t.nodes.length-1}function tje(t){let e=new Set,r=o=>{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let C=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let w of h)C.some(({to:v})=>w.to===v)||C.push(w)}for(let[p,h]of A.dynamics)a.dynamics.some(([C,{to:w}])=>p===C&&h.to===w)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(0)}function rje(t,{prefix:e=""}={}){if(kT){va(`${e}Nodes are:`);for(let r=0;r<t.nodes.length;++r)va(`${e} ${r}: ${JSON.stringify(t.nodes[r])}`)}}function QV(t,e,r=!1){va(`Running a vm on ${JSON.stringify(e)}`);let o=[{node:0,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];rje(t,{prefix:" "});let a=[xT,...e];for(let n=0;n<a.length;++n){let u=a[n];va(` Processing ${JSON.stringify(u)}`);let A=[];for(let{node:p,state:h}of o){va(` Current node is ${p}`);let C=t.nodes[p];if(p===2){A.push({node:p,state:h});continue}console.assert(C.shortcuts.length===0,"Shortcuts should have been eliminated by now");let w=Object.prototype.hasOwnProperty.call(C.statics,u);if(!r||n<a.length-1||w)if(w){let v=C.statics[u];for(let{to:b,reducer:E}of v)A.push({node:b,state:typeof E<"u"?JD(jT,E,h,u):h}),va(` Static transition to ${b} found`)}else va(" No static transition found");else{let v=!1;for(let b of Object.keys(C.statics))if(!!b.startsWith(u)){if(u===b)for(let{to:E,reducer:R}of C.statics[b])A.push({node:E,state:typeof R<"u"?JD(jT,R,h,u):h}),va(` Static transition to ${E} found`);else for(let{to:E}of C.statics[b])A.push({node:E,state:{...h,remainder:b.slice(u.length)}}),va(` Static transition to ${E} found (partial match)`);v=!0}v||va(" No partial static transition found")}if(u!==js)for(let[v,{to:b,reducer:E}]of C.dynamics)JD(XD,v,h,u)&&(A.push({node:b,state:typeof E<"u"?JD(jT,E,h,u):h}),va(` Dynamic transition to ${b} found (via ${v})`))}if(A.length===0&&u===js&&e.length===1)return[{node:0,state:xV}];if(A.length===0)throw new Iy(e,o.filter(({node:p})=>p!==2).map(({state:p})=>({usage:p.candidateUsage,reason:null})));if(A.every(({node:p})=>p===2))throw new Iy(e,A.map(({state:p})=>({usage:p.candidateUsage,reason:p.errorMessage})));o=oje(A)}if(o.length>0){va(" Results:");for(let n of o)va(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else va(" No results");return o}function nje(t,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(t.statics,js)){for(let{to:r}of t.statics[js])if(r===1)return!0}return!1}function ije(t,e,r){let o=r&&e.length>0?[""]:[],a=QV(t,e,r),n=[],u=new Set,A=(p,h,C=!0)=>{let w=[h];for(;w.length>0;){let b=w;w=[];for(let E of b){let R=t.nodes[E],L=Object.keys(R.statics);for(let _ of Object.keys(R.statics)){let V=L[0];for(let{to:re,reducer:ae}of R.statics[V])ae==="pushPath"&&(C||p.push(V),w.push(re))}}C=!1}let v=JSON.stringify(p);u.has(v)||(n.push(p),u.add(v))};for(let{node:p,state:h}of a){if(h.remainder!==null){A([h.remainder],p);continue}let C=t.nodes[p],w=nje(C,h);for(let[v,b]of Object.entries(C.statics))(w&&v!==js||!v.startsWith("-")&&b.some(({reducer:E})=>E==="pushPath"))&&A([...o,v],p);if(!!w)for(let[v,{to:b}]of C.dynamics){if(b===2)continue;let E=uje(v,h);if(E!==null)for(let R of E)A([...o,R],p)}}return[...n].sort()}function sje(t,e){let r=QV(t,[...e,js]);return aje(e,r.map(({state:o})=>o))}function oje(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function aje(t,e){let r=e.filter(w=>w.selectedIndex!==null);if(r.length===0)throw new Error;let o=r.filter(w=>w.requiredOptions.every(v=>v.some(b=>w.options.find(E=>E.name===b))));if(o.length===0)throw new Iy(t,r.map(w=>({usage:w.candidateUsage,reason:null})));let a=0;for(let w of o)w.path.length>a&&(a=w.path.length);let n=o.filter(w=>w.path.length===a),u=w=>w.positionals.filter(({extra:v})=>!v).length+w.options.length,A=n.map(w=>({state:w,positionalCount:u(w)})),p=0;for(let{positionalCount:w}of A)w>p&&(p=w);let h=A.filter(({positionalCount:w})=>w===p).map(({state:w})=>w),C=lje(h);if(C.length>1)throw new WD(t,C.map(w=>w.candidateUsage));return C[0]}function lje(t){let e=[],r=[];for(let o of t)o.selectedIndex===-1?r.push(o):e.push(o);return r.length>0&&e.push({...xV,path:kV(...r.map(o=>o.path)),options:r.reduce((o,a)=>o.concat(a.options),[])}),e}function kV(t,e,...r){return e===void 0?Array.from(t):kV(t.filter((o,a)=>o===e[a]),...r)}function Ko(){return{dynamics:[],shortcuts:[],statics:{}}}function FV(t){return t===1||t===2}function qT(t,e=0){return{to:FV(t.to)?t.to:t.to>2?t.to+e-2:t.to+e,reducer:t.reducer}}function cje(t,e=0){let r=Ko();for(let[o,a]of t.dynamics)r.dynamics.push([o,qT(a,e)]);for(let o of t.shortcuts)r.shortcuts.push(qT(o,e));for(let[o,a]of Object.entries(t.statics))r.statics[o]=a.map(n=>qT(n,e));return r}function Ws(t,e,r,o,a){t.nodes[e].dynamics.push([r,{to:o,reducer:a}])}function wy(t,e,r,o){t.nodes[e].shortcuts.push({to:r,reducer:o})}function wf(t,e,r,o,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:o,reducer:a})}function JD(t,e,r,o){if(Array.isArray(e)){let[a,...n]=e;return t[a](r,o,...n)}else return t[e](r,o)}function uje(t,e){let r=Array.isArray(t)?XD[t[0]]:XD[t];if(typeof r.suggest>"u")return null;let o=Array.isArray(t)?t.slice(1):[];return r.suggest(e,...o)}var xV,XD,jT,nl,GT,vy,$D=dt(()=>{FT();YD();xV={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};XD={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,o)=>!t.ignoreOptions&&e===r,isBatchOption:(t,e,r)=>!t.ignoreOptions&&dV.test(e)&&[...e.slice(1)].every(o=>r.includes(`-${o}`)),isBoundOption:(t,e,r,o)=>{let a=e.match(QT);return!t.ignoreOptions&&!!a&&GD.test(a[1])&&r.includes(a[1])&&o.filter(n=>n.names.includes(a[1])).every(n=>n.allowBinding)},isNegatedOption:(t,e,r)=>!t.ignoreOptions&&e===`--no-${r.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&bT.test(e),isUnsupportedOption:(t,e,r)=>!t.ignoreOptions&&e.startsWith("-")&&GD.test(e)&&!r.includes(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!GD.test(e)};XD.isOption.suggest=(t,e,r=!0)=>r?null:[e];jT={setCandidateState:(t,e,r)=>({...t,...r}),setSelectedIndex:(t,e,r)=>({...t,selectedIndex:r}),pushBatch:(t,e)=>({...t,options:t.options.concat([...e.slice(1)].map(r=>({name:`-${r}`,value:!0})))}),pushBound:(t,e)=>{let[,r,o]=e.match(QT);return{...t,options:t.options.concat({name:r,value:o})}},pushPath:(t,e)=>({...t,path:t.path.concat(e)}),pushPositional:(t,e)=>({...t,positionals:t.positionals.concat({value:e,extra:!1})}),pushExtra:(t,e)=>({...t,positionals:t.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(t,e)=>({...t,positionals:t.positionals.concat({value:e,extra:nl})}),pushTrue:(t,e,r=e)=>({...t,options:t.options.concat({name:e,value:!0})}),pushFalse:(t,e,r=e)=>({...t,options:t.options.concat({name:r,value:!1})}),pushUndefined:(t,e)=>({...t,options:t.options.concat({name:e,value:void 0})}),pushStringValue:(t,e)=>{var r;let o={...t,options:[...t.options]},a=t.options[t.options.length-1];return a.value=((r=a.value)!==null&&r!==void 0?r:[]).concat([e]),o},setStringValue:(t,e)=>{let r={...t,options:[...t.options]},o=t.options[t.options.length-1];return o.value=e,r},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r)=>{let[,,o]=e.match(bT);return typeof o<"u"?{...t,options:[{name:"-c",value:String(r)},{name:"-i",value:o}]}:{...t,options:[{name:"-c",value:String(r)}]}},setError:(t,e,r)=>e===js?{...t,errorMessage:`${r}.`}:{...t,errorMessage:`${r} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},nl=Symbol(),GT=class{constructor(e,r){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:o=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:o,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===nl)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==nl?this.arity.extra.push(e):this.arity.extra!==nl&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===nl)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o<r;++o)this.addPositional({name:e});this.arity.extra=nl}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:r,arity:o=0,hidden:a=!1,required:n=!1,allowBinding:u=!0}){if(!u&&o>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);this.allOptionNames.push(...e),this.options.push({names:e,description:r,arity:o,hidden:a,required:n,allowBinding:u})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let o=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&o.push(...this.paths[0]),e){for(let{names:u,arity:A,hidden:p,description:h,required:C}of this.options){if(p)continue;let w=[];for(let b=0;b<A;++b)w.push(` #${b}`);let v=`${u.join(",")}${w.join("")}`;!r&&h?a.push({definition:v,description:h,required:C}):o.push(C?`<${v}>`:`[${v}]`)}o.push(...this.arity.leading.map(u=>`<${u}>`)),this.arity.extra===nl?o.push("..."):o.push(...this.arity.extra.map(u=>`[${u}]`)),o.push(...this.arity.trailing.map(u=>`<${u}>`))}return{usage:o.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=bV(),r=0,o=this.usage().usage,a=this.options.filter(A=>A.required).map(A=>A.names);r=qc(e,Ko()),wf(e,0,xT,r,["setCandidateState",{candidateUsage:o,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",u=this.paths.length>0?this.paths:[[]];for(let A of u){let p=r;if(A.length>0){let v=qc(e,Ko());wy(e,p,v),this.registerOptions(e,v),p=v}for(let v=0;v<A.length;++v){let b=qc(e,Ko());wf(e,p,A[v],b,"pushPath"),p=b}if(this.arity.leading.length>0||!this.arity.proxy){let v=qc(e,Ko());Ws(e,p,"isHelp",v,["useHelp",this.cliIndex]),wf(e,v,js,1,["setSelectedIndex",-1]),this.registerOptions(e,p)}this.arity.leading.length>0&&wf(e,p,js,2,["setError","Not enough positional arguments"]);let h=p;for(let v=0;v<this.arity.leading.length;++v){let b=qc(e,Ko());(!this.arity.proxy||v+1!==this.arity.leading.length)&&this.registerOptions(e,b),(this.arity.trailing.length>0||v+1!==this.arity.leading.length)&&wf(e,b,js,2,["setError","Not enough positional arguments"]),Ws(e,h,"isNotOptionLike",b,"pushPositional"),h=b}let C=h;if(this.arity.extra===nl||this.arity.extra.length>0){let v=qc(e,Ko());if(wy(e,h,v),this.arity.extra===nl){let b=qc(e,Ko());this.arity.proxy||this.registerOptions(e,b),Ws(e,h,n,b,"pushExtraNoLimits"),Ws(e,b,n,b,"pushExtraNoLimits"),wy(e,b,v)}else for(let b=0;b<this.arity.extra.length;++b){let E=qc(e,Ko());(!this.arity.proxy||b>0)&&this.registerOptions(e,E),Ws(e,C,n,E,"pushExtra"),wy(e,E,v),C=E}C=v}this.arity.trailing.length>0&&wf(e,C,js,2,["setError","Not enough positional arguments"]);let w=C;for(let v=0;v<this.arity.trailing.length;++v){let b=qc(e,Ko());this.arity.proxy||this.registerOptions(e,b),v+1<this.arity.trailing.length&&wf(e,b,js,2,["setError","Not enough positional arguments"]),Ws(e,w,"isNotOptionLike",b,"pushPositional"),w=b}Ws(e,w,n,2,["setError","Extraneous positional argument"]),wf(e,w,js,1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,r){Ws(e,r,["isOption","--"],r,"inhibateOptions"),Ws(e,r,["isBatchOption",this.allOptionNames],r,"pushBatch"),Ws(e,r,["isBoundOption",this.allOptionNames,this.options],r,"pushBound"),Ws(e,r,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),Ws(e,r,["isInvalidOption"],2,["setError","Invalid option name"]);for(let o of this.options){let a=o.names.reduce((n,u)=>u.length>n.length?u:n,"");if(o.arity===0)for(let n of o.names)Ws(e,r,["isOption",n,o.hidden||n!==a],r,"pushTrue"),n.startsWith("--")&&!n.startsWith("--no-")&&Ws(e,r,["isNegatedOption",n],r,["pushFalse",n]);else{let n=qc(e,Ko());for(let u of o.names)Ws(e,r,["isOption",u,o.hidden||u!==a],n,"pushUndefined");for(let u=0;u<o.arity;++u){let A=qc(e,Ko());wf(e,n,js,2,"setOptionArityError"),Ws(e,n,"isOptionLike",2,"setOptionArityError");let p=o.arity===1?"setStringValue":"pushStringValue";Ws(e,n,"isNotOptionLike",A,p),n=A}wy(e,n,r)}}}},vy=class{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,r={}){return new vy(r).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let r of e)r(this.command());return this}command(){let e=new GT(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],r=[];for(let a of this.builders){let{machine:n,context:u}=a.compile();e.push(n),r.push(u)}let o=eje(e);return tje(o),{machine:o,contexts:r,process:a=>sje(o,a),suggest:(a,n)=>ije(o,a,n)}}}});function TV(){return eS.default&&"getColorDepth"in eS.default.WriteStream.prototype?eS.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function NV(t){let e=RV;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=Ie("async_hooks");e=RV=new r;let o=process.stdout._write;process.stdout._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?o.call(this,n,u,A):p.stdout.write(n,u,A)};let a=process.stderr._write;process.stderr._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?a.call(this,n,u,A):p.stderr.write(n,u,A)}}return r=>e.run(t,r)}var eS,RV,LV=dt(()=>{eS=tt(Ie("tty"),1)});var Dy,OV=dt(()=>{rd();Dy=class extends it{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let o=new Dy(r);o.path=e.path;for(let a of e.options)switch(a.name){case"-c":o.commands.push(Number(a.value));break;case"-i":o.index=Number(a.value);break}return o}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection:
92`),this.context.stdout.write(` 92`),this.context.stdout.write(`
93`);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` 93`);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(`
94`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands. 94`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands.
95`)}}}});async function MV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=_V(t);return vo.from(r,e).runExit(o,a)}async function UV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=_V(t);return vo.from(r,e).run(o,a)}function _V(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function OV(t){return t()}var LV,vo,HV=dt(()=>{XD();RT();TV();td();NV();LV=Symbol("clipanion/errorCommand");vo=class{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new vy({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new vo(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[it.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{contexts:o,process:a}=this.builder.compile(),n=a(e),u={...vo.defaultContext,...r};switch(n.selectedIndex){case-1:{let A=Dy.from(n,o);return A.context=u,A}default:{let{commandClass:A}=o[n.selectedIndex],p=this.registrations.get(A);if(typeof p>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let h=new A;h.context=u,h.path=n.path;try{for(let[E,{transformer:w}]of p.specs.entries())h[E]=w(p.builder,E,n,u);return h}catch(E){throw E[LV]=h,E}}break}}async run(e,r){var o,a;let n,u={...vo.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(E){return u.stdout.write(this.error(E,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(E,w)=>this.error(E,w),format:E=>this.format(E),process:(E,w)=>this.process(E,{...u,...w}),run:(E,w)=>this.run(E,{...u,...w}),usage:(E,w)=>this.usage(E,w)};let p=this.enableCapture&&(a=RV(u))!==null&&a!==void 0?a:OV,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return u.stdout.write(this.error(E,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}suggest(e,r){let{suggest:o}=this.builder.compile();return o(e,r)}definitions({colored:e=!1}={}){let r=[];for(let[o,{index:a}]of this.registrations){if(typeof o.usage>"u")continue;let{usage:n}=this.getUsageByIndex(a,{detailed:!1}),{usage:u,options:A}=this.getUsageByIndex(a,{detailed:!0,inlineOptions:!1}),p=typeof o.usage.category<"u"?Bo(o.usage.category,{format:this.format(e),paragraphs:!1}):void 0,h=typeof o.usage.description<"u"?Bo(o.usage.description,{format:this.format(e),paragraphs:!1}):void 0,E=typeof o.usage.details<"u"?Bo(o.usage.details,{format:this.format(e),paragraphs:!0}):void 0,w=typeof o.usage.examples<"u"?o.usage.examples.map(([v,b])=>[Bo(v,{format:this.format(e),paragraphs:!1}),b.replace(/\$0/g,this.binaryName)]):void 0;r.push({path:n,usage:u,category:p,description:h,details:E,examples:w,options:A})}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h==null?void 0:h.some(b=>b.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof it?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:E=[]}=u.usage||{};p!==""&&(A+=Bo(p,{format:this.format(r),paragraphs:!1}).replace(/^./,b=>b.toUpperCase()),A+=` 95`)}}}});async function _V(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=qV(t);return vo.from(r,e).runExit(o,a)}async function HV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=qV(t);return vo.from(r,e).run(o,a)}function qV(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function UV(t){return t()}var MV,vo,jV=dt(()=>{$D();NT();LV();rd();OV();MV=Symbol("clipanion/errorCommand");vo=class{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new vy({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new vo(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[it.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{contexts:o,process:a}=this.builder.compile(),n=a(e),u={...vo.defaultContext,...r};switch(n.selectedIndex){case-1:{let A=Dy.from(n,o);return A.context=u,A}default:{let{commandClass:A}=o[n.selectedIndex],p=this.registrations.get(A);if(typeof p>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let h=new A;h.context=u,h.path=n.path;try{for(let[C,{transformer:w}]of p.specs.entries())h[C]=w(p.builder,C,n,u);return h}catch(C){throw C[MV]=h,C}}break}}async run(e,r){var o,a;let n,u={...vo.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(C){return u.stdout.write(this.error(C,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(C,w)=>this.error(C,w),format:C=>this.format(C),process:(C,w)=>this.process(C,{...u,...w}),run:(C,w)=>this.run(C,{...u,...w}),usage:(C,w)=>this.usage(C,w)};let p=this.enableCapture&&(a=NV(u))!==null&&a!==void 0?a:UV,h;try{h=await p(()=>n.validateAndExecute().catch(C=>n.catch(C).then(()=>0)))}catch(C){return u.stdout.write(this.error(C,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}suggest(e,r){let{suggest:o}=this.builder.compile();return o(e,r)}definitions({colored:e=!1}={}){let r=[];for(let[o,{index:a}]of this.registrations){if(typeof o.usage>"u")continue;let{usage:n}=this.getUsageByIndex(a,{detailed:!1}),{usage:u,options:A}=this.getUsageByIndex(a,{detailed:!0,inlineOptions:!1}),p=typeof o.usage.category<"u"?Bo(o.usage.category,{format:this.format(e),paragraphs:!1}):void 0,h=typeof o.usage.description<"u"?Bo(o.usage.description,{format:this.format(e),paragraphs:!1}):void 0,C=typeof o.usage.details<"u"?Bo(o.usage.details,{format:this.format(e),paragraphs:!0}):void 0,w=typeof o.usage.examples<"u"?o.usage.examples.map(([v,b])=>[Bo(v,{format:this.format(e),paragraphs:!1}),b.replace(/\$0/g,this.binaryName)]):void 0;r.push({path:n,usage:u,category:p,description:h,details:C,examples:w,options:A})}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,C=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h==null?void 0:h.some(b=>b.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(C){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof it?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:C=[]}=u.usage||{};p!==""&&(A+=Bo(p,{format:this.format(r),paragraphs:!1}).replace(/^./,b=>b.toUpperCase()),A+=`
96`),(h!==""||E.length>0)&&(A+=`${this.format(r).header("Usage")} 96`),(h!==""||C.length>0)&&(A+=`${this.format(r).header("Usage")}
97`,A+=` 97`,A+=`
98`);let{usage:w,options:v}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${w} 98`);let{usage:w,options:v}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${w}
99`,v.length>0){A+=` 99`,v.length>0){A+=`
100`,A+=`${this.format(r).header("Options")} 100`,A+=`${this.format(r).header("Options")}
101`;let b=v.reduce((C,R)=>Math.max(C,R.definition.length),0);A+=` 101`;let b=v.reduce((E,R)=>Math.max(E,R.definition.length),0);A+=`
102`;for(let{definition:C,description:R}of v)A+=` ${this.format(r).bold(C.padEnd(b))} ${Bo(R,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=` 102`;for(let{definition:E,description:R}of v)A+=` ${this.format(r).bold(E.padEnd(b))} ${Bo(R,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=`
103`,A+=`${this.format(r).header("Details")} 103`,A+=`${this.format(r).header("Details")}
104`,A+=` 104`,A+=`
105`,A+=Bo(h,{format:this.format(r),paragraphs:!0})),E.length>0){A+=` 105`,A+=Bo(h,{format:this.format(r),paragraphs:!0})),C.length>0){A+=`
106`,A+=`${this.format(r).header("Examples")} 106`,A+=`${this.format(r).header("Examples")}
107`;for(let[b,C]of E)A+=` 107`;for(let[b,E]of C)A+=`
108`,A+=Bo(b,{format:this.format(r),paragraphs:!1}),A+=`${C.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} 108`,A+=Bo(b,{format:this.format(r),paragraphs:!1}),A+=`${E.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)}
109`}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p} 109`}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p}
110`}else{let p=new Map;for(let[v,{index:b}]of this.registrations.entries()){if(typeof v.usage>"u")continue;let C=typeof v.usage.category<"u"?Bo(v.usage.category,{format:this.format(r),paragraphs:!1}):null,R=p.get(C);typeof R>"u"&&p.set(C,R=[]);let{usage:L}=this.getUsageByIndex(b);R.push({commandClass:v,usage:L})}let h=Array.from(p.keys()).sort((v,b)=>v===null?-1:b===null?1:v.localeCompare(b,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",w=typeof this.binaryVersion<"u";E||w?(E&&w?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} 110`}else{let p=new Map;for(let[v,{index:b}]of this.registrations.entries()){if(typeof v.usage>"u")continue;let E=typeof v.usage.category<"u"?Bo(v.usage.category,{format:this.format(r),paragraphs:!1}):null,R=p.get(E);typeof R>"u"&&p.set(E,R=[]);let{usage:L}=this.getUsageByIndex(b);R.push({commandClass:v,usage:L})}let h=Array.from(p.keys()).sort((v,b)=>v===null?-1:b===null?1:v.localeCompare(b,"en",{usage:"sort",caseFirst:"upper"})),C=typeof this.binaryLabel<"u",w=typeof this.binaryVersion<"u";C||w?(C&&w?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)}
111 111
112`:E?A+=`${this.format(r).header(`${this.binaryLabel}`)} 112`:C?A+=`${this.format(r).header(`${this.binaryLabel}`)}
113`:A+=`${this.format(r).header(`${this.binaryVersion}`)} 113`:A+=`${this.format(r).header(`${this.binaryVersion}`)}
114`,A+=` ${this.format(r).bold(a)}${this.binaryName} <command> 114`,A+=` ${this.format(r).bold(a)}${this.binaryName} <command>
115`):A+=`${this.format(r).bold(a)}${this.binaryName} <command> 115`):A+=`${this.format(r).bold(a)}${this.binaryName} <command>
116`;for(let v of h){let b=p.get(v).slice().sort((R,L)=>R.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),C=v!==null?v.trim():"General commands";A+=` 116`;for(let v of h){let b=p.get(v).slice().sort((R,L)=>R.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),E=v!==null?v.trim():"General commands";A+=`
117`,A+=`${this.format(r).header(`${C}`)} 117`,A+=`${this.format(r).header(`${E}`)}
118`;for(let{commandClass:R,usage:L}of b){let _=R.usage.description||"undocumented";A+=` 118`;for(let{commandClass:R,usage:L}of b){let _=R.usage.description||"undocumented";A+=`
119`,A+=` ${this.format(r).bold(L)} 119`,A+=` ${this.format(r).bold(L)}
120`,A+=` ${Bo(_,{format:this.format(r),paragraphs:!1})}`}}A+=` 120`,A+=` ${Bo(_,{format:this.format(r),paragraphs:!1})}`}}A+=`
121`,A+=Bo("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[LV])!==null&&o!==void 0?o:null}=r===void 0?{}:r;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message} 121`,A+=Bo("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[MV])!==null&&o!==void 0?o:null}=r===void 0?{}:r;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message}
122`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=` 122`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=`
123`,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")} 123`,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")}
124`),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:vo.defaultContext.colorDepth>1)?gV:dV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};vo.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:FV()}});var ew,qV=dt(()=>{td();ew=class extends it{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} 124`),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:vo.defaultContext.colorDepth>1)?mV:yV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};vo.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:TV()}});var tw,GV=dt(()=>{rd();tw=class extends it{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
125`)}};ew.paths=[["--clipanion=definitions"]]});var tw,jV=dt(()=>{td();tw=class extends it{async execute(){this.context.stdout.write(this.cli.usage())}};tw.paths=[["-h"],["--help"]]});var rw,GV=dt(()=>{td();rw=class extends it{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"} 125`)}};tw.paths=[["--clipanion=definitions"]]});var rw,WV=dt(()=>{rd();rw=class extends it{async execute(){this.context.stdout.write(this.cli.usage())}};rw.paths=[["-h"],["--help"]]});var nw,YV=dt(()=>{rd();nw=class extends it{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"}
126`)}};rw.paths=[["-v"],["--version"]]});var jT={};Yt(jT,{DefinitionsCommand:()=>ew,HelpCommand:()=>tw,VersionCommand:()=>rw});var WV=dt(()=>{qV();jV();GV()});function YV(t,e,r){let[o,a]=Ku(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Go({definition(p){p.addOption({names:u,arity:n,hidden:a==null?void 0:a.hidden,description:a==null?void 0:a.description,required:a.required})},transformer(p,h,E){let w=typeof o<"u"?[...o]:void 0;for(let{name:v,value:b}of E.options)!A.has(v)||(w=w??[],w.push(b));return w}})}var KV=dt(()=>{Ef()});function VV(t,e,r){let[o,a]=Ku(e,r??{}),n=t.split(","),u=new Set(n);return Go({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:w,value:v}of h.options)!u.has(w)||(E=v);return E}})}var JV=dt(()=>{Ef()});function zV(t,e,r){let[o,a]=Ku(e,r??{}),n=t.split(","),u=new Set(n);return Go({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:w,value:v}of h.options)!u.has(w)||(E??(E=0),v?E+=1:E=0);return E}})}var XV=dt(()=>{Ef()});function ZV(t={}){return Go({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var $V=dt(()=>{Ef()});function eJ(t={}){return Go({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===rl||A.extra===!1&&u<e.arity.leading.length},n=0;for(;n<o.positionals.length&&a(n);)n+=1;return o.positionals.splice(0,n).map(({value:u})=>u)}})}var tJ=dt(()=>{XD();Ef()});function aje(t,e,r){let[o,a]=Ku(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Go({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,w){let v,b=o;typeof a.env<"u"&&w.env[a.env]&&(v=a.env,b=w.env[a.env]);for(let{name:C,value:R}of E.options)!A.has(C)||(v=C,b=R);return typeof b=="string"?XI(v??h,b,a.validator):b}})}function lje(t={}){let{required:e=!0}=t;return Go({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u<a.positionals.length;++u){if(a.positionals[u].extra===rl||e&&a.positionals[u].extra===!0||!e&&a.positionals[u].extra===!1)continue;let[A]=a.positionals.splice(u,1);return XI((n=t.name)!==null&&n!==void 0?n:o,A.value,t.validator)}}})}function rJ(t,...e){return typeof t=="string"?aje(t,...e):lje(t)}var nJ=dt(()=>{XD();Ef()});var fe={};Yt(fe,{Array:()=>YV,Boolean:()=>VV,Counter:()=>zV,Proxy:()=>ZV,Rest:()=>eJ,String:()=>rJ,applyValidator:()=>XI,cleanValidationError:()=>WD,formatError:()=>zI,isOptionSymbol:()=>JI,makeCommandOption:()=>Go,rerouteArguments:()=>Ku});var iJ=dt(()=>{Ef();KV();JV();XV();$V();tJ();nJ()});var nw={};Yt(nw,{Builtins:()=>jT,Cli:()=>vo,Command:()=>it,Option:()=>fe,UsageError:()=>ot,formatMarkdownish:()=>Bo,run:()=>UV,runExit:()=>MV});var _t=dt(()=>{GD();RT();td();HV();WV();iJ()});var oJ=U((AQt,sJ)=>{"use strict";sJ.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var rd=U((fQt,GT)=>{"use strict";var cje=oJ(),aJ=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let E=cje(A,...h);p(E),E.then(o,o)},n=(A,p,...h)=>{r<t?a(A,p,...h):e.push(a.bind(null,A,p,...h))},u=(A,...p)=>new Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};GT.exports=aJ;GT.exports.default=aJ});function Vu(t){return`YN${t.toString(10).padStart(4,"0")}`}function $D(t){let e=Number(t.slice(2));if(typeof dr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var dr,eS=dt(()=>{dr=(Ue=>(Ue[Ue.UNNAMED=0]="UNNAMED",Ue[Ue.EXCEPTION=1]="EXCEPTION",Ue[Ue.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Ue[Ue.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Ue[Ue.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Ue[Ue.BUILD_DISABLED=5]="BUILD_DISABLED",Ue[Ue.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Ue[Ue.MUST_BUILD=7]="MUST_BUILD",Ue[Ue.MUST_REBUILD=8]="MUST_REBUILD",Ue[Ue.BUILD_FAILED=9]="BUILD_FAILED",Ue[Ue.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Ue[Ue.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Ue[Ue.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Ue[Ue.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Ue[Ue.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Ue[Ue.REMOTE_INVALID=15]="REMOTE_INVALID",Ue[Ue.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Ue[Ue.RESOLUTION_PACK=17]="RESOLUTION_PACK",Ue[Ue.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Ue[Ue.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Ue[Ue.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Ue[Ue.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Ue[Ue.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Ue[Ue.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Ue[Ue.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Ue[Ue.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Ue[Ue.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Ue[Ue.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Ue[Ue.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Ue[Ue.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Ue[Ue.FETCH_FAILED=30]="FETCH_FAILED",Ue[Ue.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Ue[Ue.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Ue[Ue.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Ue[Ue.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Ue[Ue.NETWORK_ERROR=35]="NETWORK_ERROR",Ue[Ue.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Ue[Ue.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Ue[Ue.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Ue[Ue.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Ue[Ue.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Ue[Ue.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Ue[Ue.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Ue[Ue.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Ue[Ue.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Ue[Ue.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Ue[Ue.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Ue[Ue.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Ue[Ue.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Ue[Ue.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Ue[Ue.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Ue[Ue.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Ue[Ue.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Ue[Ue.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Ue[Ue.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Ue[Ue.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Ue[Ue.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Ue[Ue.INVALID_MANIFEST=57]="INVALID_MANIFEST",Ue[Ue.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Ue[Ue.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Ue[Ue.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Ue[Ue.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Ue[Ue.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Ue[Ue.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Ue[Ue.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Ue[Ue.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Ue[Ue.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Ue[Ue.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Ue[Ue.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Ue[Ue.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Ue[Ue.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Ue[Ue.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Ue[Ue.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Ue[Ue.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Ue[Ue.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Ue[Ue.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Ue[Ue.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Ue[Ue.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Ue[Ue.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Ue[Ue.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Ue[Ue.NETWORK_DISABLED=80]="NETWORK_DISABLED",Ue[Ue.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Ue[Ue.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Ue[Ue.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Ue[Ue.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Ue))(dr||{})});var iw=U((hQt,lJ)=>{var uje="2.0.0",Aje=Number.MAX_SAFE_INTEGER||9007199254740991,fje=16;lJ.exports={SEMVER_SPEC_VERSION:uje,MAX_LENGTH:256,MAX_SAFE_INTEGER:Aje,MAX_SAFE_COMPONENT_LENGTH:fje}});var sw=U((gQt,cJ)=>{var pje=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};cJ.exports=pje});var nd=U((Wp,uJ)=>{var{MAX_SAFE_COMPONENT_LENGTH:WT}=iw(),hje=sw();Wp=uJ.exports={};var gje=Wp.re=[],or=Wp.src=[],ar=Wp.t={},dje=0,Kr=(t,e,r)=>{let o=dje++;hje(t,o,e),ar[t]=o,or[o]=e,gje[o]=new RegExp(e,r?"g":void 0)};Kr("NUMERICIDENTIFIER","0|[1-9]\\d*");Kr("NUMERICIDENTIFIERLOOSE","[0-9]+");Kr("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Kr("MAINVERSION",`(${or[ar.NUMERICIDENTIFIER]})\\.(${or[ar.NUMERICIDENTIFIER]})\\.(${or[ar.NUMERICIDENTIFIER]})`);Kr("MAINVERSIONLOOSE",`(${or[ar.NUMERICIDENTIFIERLOOSE]})\\.(${or[ar.NUMERICIDENTIFIERLOOSE]})\\.(${or[ar.NUMERICIDENTIFIERLOOSE]})`);Kr("PRERELEASEIDENTIFIER",`(?:${or[ar.NUMERICIDENTIFIER]}|${or[ar.NONNUMERICIDENTIFIER]})`);Kr("PRERELEASEIDENTIFIERLOOSE",`(?:${or[ar.NUMERICIDENTIFIERLOOSE]}|${or[ar.NONNUMERICIDENTIFIER]})`);Kr("PRERELEASE",`(?:-(${or[ar.PRERELEASEIDENTIFIER]}(?:\\.${or[ar.PRERELEASEIDENTIFIER]})*))`);Kr("PRERELEASELOOSE",`(?:-?(${or[ar.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${or[ar.PRERELEASEIDENTIFIERLOOSE]})*))`);Kr("BUILDIDENTIFIER","[0-9A-Za-z-]+");Kr("BUILD",`(?:\\+(${or[ar.BUILDIDENTIFIER]}(?:\\.${or[ar.BUILDIDENTIFIER]})*))`);Kr("FULLPLAIN",`v?${or[ar.MAINVERSION]}${or[ar.PRERELEASE]}?${or[ar.BUILD]}?`);Kr("FULL",`^${or[ar.FULLPLAIN]}$`);Kr("LOOSEPLAIN",`[v=\\s]*${or[ar.MAINVERSIONLOOSE]}${or[ar.PRERELEASELOOSE]}?${or[ar.BUILD]}?`);Kr("LOOSE",`^${or[ar.LOOSEPLAIN]}$`);Kr("GTLT","((?:<|>)?=?)");Kr("XRANGEIDENTIFIERLOOSE",`${or[ar.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Kr("XRANGEIDENTIFIER",`${or[ar.NUMERICIDENTIFIER]}|x|X|\\*`);Kr("XRANGEPLAIN",`[v=\\s]*(${or[ar.XRANGEIDENTIFIER]})(?:\\.(${or[ar.XRANGEIDENTIFIER]})(?:\\.(${or[ar.XRANGEIDENTIFIER]})(?:${or[ar.PRERELEASE]})?${or[ar.BUILD]}?)?)?`);Kr("XRANGEPLAINLOOSE",`[v=\\s]*(${or[ar.XRANGEIDENTIFIERLOOSE]})(?:\\.(${or[ar.XRANGEIDENTIFIERLOOSE]})(?:\\.(${or[ar.XRANGEIDENTIFIERLOOSE]})(?:${or[ar.PRERELEASELOOSE]})?${or[ar.BUILD]}?)?)?`);Kr("XRANGE",`^${or[ar.GTLT]}\\s*${or[ar.XRANGEPLAIN]}$`);Kr("XRANGELOOSE",`^${or[ar.GTLT]}\\s*${or[ar.XRANGEPLAINLOOSE]}$`);Kr("COERCE",`(^|[^\\d])(\\d{1,${WT}})(?:\\.(\\d{1,${WT}}))?(?:\\.(\\d{1,${WT}}))?(?:$|[^\\d])`);Kr("COERCERTL",or[ar.COERCE],!0);Kr("LONETILDE","(?:~>?)");Kr("TILDETRIM",`(\\s*)${or[ar.LONETILDE]}\\s+`,!0);Wp.tildeTrimReplace="$1~";Kr("TILDE",`^${or[ar.LONETILDE]}${or[ar.XRANGEPLAIN]}$`);Kr("TILDELOOSE",`^${or[ar.LONETILDE]}${or[ar.XRANGEPLAINLOOSE]}$`);Kr("LONECARET","(?:\\^)");Kr("CARETTRIM",`(\\s*)${or[ar.LONECARET]}\\s+`,!0);Wp.caretTrimReplace="$1^";Kr("CARET",`^${or[ar.LONECARET]}${or[ar.XRANGEPLAIN]}$`);Kr("CARETLOOSE",`^${or[ar.LONECARET]}${or[ar.XRANGEPLAINLOOSE]}$`);Kr("COMPARATORLOOSE",`^${or[ar.GTLT]}\\s*(${or[ar.LOOSEPLAIN]})$|^$`);Kr("COMPARATOR",`^${or[ar.GTLT]}\\s*(${or[ar.FULLPLAIN]})$|^$`);Kr("COMPARATORTRIM",`(\\s*)${or[ar.GTLT]}\\s*(${or[ar.LOOSEPLAIN]}|${or[ar.XRANGEPLAIN]})`,!0);Wp.comparatorTrimReplace="$1$2$3";Kr("HYPHENRANGE",`^\\s*(${or[ar.XRANGEPLAIN]})\\s+-\\s+(${or[ar.XRANGEPLAIN]})\\s*$`);Kr("HYPHENRANGELOOSE",`^\\s*(${or[ar.XRANGEPLAINLOOSE]})\\s+-\\s+(${or[ar.XRANGEPLAINLOOSE]})\\s*$`);Kr("STAR","(<|>)?=?\\s*\\*");Kr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Kr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var ow=U((dQt,AJ)=>{var mje=["includePrerelease","loose","rtl"],yje=t=>t?typeof t!="object"?{loose:!0}:mje.filter(e=>t[e]).reduce((e,r)=>(e[r]=!0,e),{}):{};AJ.exports=yje});var tS=U((mQt,hJ)=>{var fJ=/^[0-9]+$/,pJ=(t,e)=>{let r=fJ.test(t),o=fJ.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1},Cje=(t,e)=>pJ(e,t);hJ.exports={compareIdentifiers:pJ,rcompareIdentifiers:Cje}});var Do=U((yQt,yJ)=>{var rS=sw(),{MAX_LENGTH:gJ,MAX_SAFE_INTEGER:nS}=iw(),{re:dJ,t:mJ}=nd(),Eje=ow(),{compareIdentifiers:Sy}=tS(),nl=class{constructor(e,r){if(r=Eje(r),e instanceof nl){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>gJ)throw new TypeError(`version is longer than ${gJ} characters`);rS("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?dJ[mJ.LOOSE]:dJ[mJ.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>nS||this.major<0)throw new TypeError("Invalid major version");if(this.minor>nS||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>nS||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n<nS)return n}return a}):this.prerelease=[],this.build=o[5]?o[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(rS("SemVer.compare",this.version,this.options,e),!(e instanceof nl)){if(typeof e=="string"&&e===this.version)return 0;e=new nl(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof nl||(e=new nl(e,this.options)),Sy(this.major,e.major)||Sy(this.minor,e.minor)||Sy(this.patch,e.patch)}comparePre(e){if(e instanceof nl||(e=new nl(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let o=this.prerelease[r],a=e.prerelease[r];if(rS("prerelease compare",r,o,a),o===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(o===void 0)return-1;if(o===a)continue;return Sy(o,a)}while(++r)}compareBuild(e){e instanceof nl||(e=new nl(e,this.options));let r=0;do{let o=this.build[r],a=e.build[r];if(rS("prerelease compare",r,o,a),o===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(o===void 0)return-1;if(o===a)continue;return Sy(o,a)}while(++r)}inc(e,r){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r),this.inc("pre",r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r),this.inc("pre",r);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);o===-1&&this.prerelease.push(0)}r&&(Sy(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};yJ.exports=nl});var id=U((CQt,wJ)=>{var{MAX_LENGTH:Ije}=iw(),{re:CJ,t:EJ}=nd(),IJ=Do(),wje=ow(),Bje=(t,e)=>{if(e=wje(e),t instanceof IJ)return t;if(typeof t!="string"||t.length>Ije||!(e.loose?CJ[EJ.LOOSE]:CJ[EJ.FULL]).test(t))return null;try{return new IJ(t,e)}catch{return null}};wJ.exports=Bje});var vJ=U((EQt,BJ)=>{var vje=id(),Dje=(t,e)=>{let r=vje(t,e);return r?r.version:null};BJ.exports=Dje});var SJ=U((IQt,DJ)=>{var Sje=id(),Pje=(t,e)=>{let r=Sje(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};DJ.exports=Pje});var bJ=U((wQt,xJ)=>{var PJ=Do(),xje=(t,e,r,o)=>{typeof r=="string"&&(o=r,r=void 0);try{return new PJ(t instanceof PJ?t.version:t,r).inc(e,o).version}catch{return null}};xJ.exports=xje});var Hl=U((BQt,kJ)=>{var QJ=Do(),bje=(t,e,r)=>new QJ(t,r).compare(new QJ(e,r));kJ.exports=bje});var iS=U((vQt,FJ)=>{var Qje=Hl(),kje=(t,e,r)=>Qje(t,e,r)===0;FJ.exports=kje});var NJ=U((DQt,TJ)=>{var RJ=id(),Fje=iS(),Rje=(t,e)=>{if(Fje(t,e))return null;{let r=RJ(t),o=RJ(e),a=r.prerelease.length||o.prerelease.length,n=a?"pre":"",u=a?"prerelease":"";for(let A in r)if((A==="major"||A==="minor"||A==="patch")&&r[A]!==o[A])return n+A;return u}};TJ.exports=Rje});var OJ=U((SQt,LJ)=>{var Tje=Do(),Nje=(t,e)=>new Tje(t,e).major;LJ.exports=Nje});var UJ=U((PQt,MJ)=>{var Lje=Do(),Oje=(t,e)=>new Lje(t,e).minor;MJ.exports=Oje});var HJ=U((xQt,_J)=>{var Mje=Do(),Uje=(t,e)=>new Mje(t,e).patch;_J.exports=Uje});var jJ=U((bQt,qJ)=>{var _je=id(),Hje=(t,e)=>{let r=_je(t,e);return r&&r.prerelease.length?r.prerelease:null};qJ.exports=Hje});var WJ=U((QQt,GJ)=>{var qje=Hl(),jje=(t,e,r)=>qje(e,t,r);GJ.exports=jje});var KJ=U((kQt,YJ)=>{var Gje=Hl(),Wje=(t,e)=>Gje(t,e,!0);YJ.exports=Wje});var sS=U((FQt,JJ)=>{var VJ=Do(),Yje=(t,e,r)=>{let o=new VJ(t,r),a=new VJ(e,r);return o.compare(a)||o.compareBuild(a)};JJ.exports=Yje});var XJ=U((RQt,zJ)=>{var Kje=sS(),Vje=(t,e)=>t.sort((r,o)=>Kje(r,o,e));zJ.exports=Vje});var $J=U((TQt,ZJ)=>{var Jje=sS(),zje=(t,e)=>t.sort((r,o)=>Jje(o,r,e));ZJ.exports=zje});var aw=U((NQt,ez)=>{var Xje=Hl(),Zje=(t,e,r)=>Xje(t,e,r)>0;ez.exports=Zje});var oS=U((LQt,tz)=>{var $je=Hl(),eGe=(t,e,r)=>$je(t,e,r)<0;tz.exports=eGe});var YT=U((OQt,rz)=>{var tGe=Hl(),rGe=(t,e,r)=>tGe(t,e,r)!==0;rz.exports=rGe});var aS=U((MQt,nz)=>{var nGe=Hl(),iGe=(t,e,r)=>nGe(t,e,r)>=0;nz.exports=iGe});var lS=U((UQt,iz)=>{var sGe=Hl(),oGe=(t,e,r)=>sGe(t,e,r)<=0;iz.exports=oGe});var KT=U((_Qt,sz)=>{var aGe=iS(),lGe=YT(),cGe=aw(),uGe=aS(),AGe=oS(),fGe=lS(),pGe=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return aGe(t,r,o);case"!=":return lGe(t,r,o);case">":return cGe(t,r,o);case">=":return uGe(t,r,o);case"<":return AGe(t,r,o);case"<=":return fGe(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};sz.exports=pGe});var az=U((HQt,oz)=>{var hGe=Do(),gGe=id(),{re:cS,t:uS}=nd(),dGe=(t,e)=>{if(t instanceof hGe)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(cS[uS.COERCE]);else{let o;for(;(o=cS[uS.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||o.index+o[0].length!==r.index+r[0].length)&&(r=o),cS[uS.COERCERTL].lastIndex=o.index+o[1].length+o[2].length;cS[uS.COERCERTL].lastIndex=-1}return r===null?null:gGe(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};oz.exports=dGe});var cz=U((qQt,lz)=>{"use strict";lz.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var AS=U((jQt,uz)=>{"use strict";uz.exports=dn;dn.Node=sd;dn.create=dn;function dn(t){var e=this;if(e instanceof dn||(e=new dn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,o=arguments.length;r<o;r++)e.push(arguments[r]);return e}dn.prototype.removeNode=function(t){if(t.list!==this)throw new Error("removing node which does not belong to this list");var e=t.next,r=t.prev;return e&&(e.prev=r),r&&(r.next=e),t===this.head&&(this.head=e),t===this.tail&&(this.tail=r),t.list.length--,t.next=null,t.prev=null,t.list=null,e};dn.prototype.unshiftNode=function(t){if(t!==this.head){t.list&&t.list.removeNode(t);var e=this.head;t.list=this,t.next=e,e&&(e.prev=t),this.head=t,this.tail||(this.tail=t),this.length++}};dn.prototype.pushNode=function(t){if(t!==this.tail){t.list&&t.list.removeNode(t);var e=this.tail;t.list=this,t.prev=e,e&&(e.next=t),this.tail=t,this.head||(this.head=t),this.length++}};dn.prototype.push=function(){for(var t=0,e=arguments.length;t<e;t++)yGe(this,arguments[t]);return this.length};dn.prototype.unshift=function(){for(var t=0,e=arguments.length;t<e;t++)CGe(this,arguments[t]);return this.length};dn.prototype.pop=function(){if(!!this.tail){var t=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,t}};dn.prototype.shift=function(){if(!!this.head){var t=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,t}};dn.prototype.forEach=function(t,e){e=e||this;for(var r=this.head,o=0;r!==null;o++)t.call(e,r.value,o,this),r=r.next};dn.prototype.forEachReverse=function(t,e){e=e||this;for(var r=this.tail,o=this.length-1;r!==null;o--)t.call(e,r.value,o,this),r=r.prev};dn.prototype.get=function(t){for(var e=0,r=this.head;r!==null&&e<t;e++)r=r.next;if(e===t&&r!==null)return r.value};dn.prototype.getReverse=function(t){for(var e=0,r=this.tail;r!==null&&e<t;e++)r=r.prev;if(e===t&&r!==null)return r.value};dn.prototype.map=function(t,e){e=e||this;for(var r=new dn,o=this.head;o!==null;)r.push(t.call(e,o.value,this)),o=o.next;return r};dn.prototype.mapReverse=function(t,e){e=e||this;for(var r=new dn,o=this.tail;o!==null;)r.push(t.call(e,o.value,this)),o=o.prev;return r};dn.prototype.reduce=function(t,e){var r,o=this.head;if(arguments.length>1)r=e;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o!==null;a++)r=t(r,o.value,a),o=o.next;return r};dn.prototype.reduceReverse=function(t,e){var r,o=this.tail;if(arguments.length>1)r=e;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;o!==null;a--)r=t(r,o.value,a),o=o.prev;return r};dn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};dn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};dn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new dn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var o=0,a=this.head;a!==null&&o<t;o++)a=a.next;for(;a!==null&&o<e;o++,a=a.next)r.push(a.value);return r};dn.prototype.sliceReverse=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new dn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var o=this.length,a=this.tail;a!==null&&o>e;o--)a=a.prev;for(;a!==null&&o>t;o--,a=a.prev)r.push(a.value);return r};dn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var o=0,a=this.head;a!==null&&o<t;o++)a=a.next;for(var n=[],o=0;a&&o<e;o++)n.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var o=0;o<r.length;o++)a=mGe(this,a,r[o]);return n};dn.prototype.reverse=function(){for(var t=this.head,e=this.tail,r=t;r!==null;r=r.prev){var o=r.prev;r.prev=r.next,r.next=o}return this.head=e,this.tail=t,this};function mGe(t,e,r){var o=e===t.head?new sd(r,null,e,t):new sd(r,e,e.next,t);return o.next===null&&(t.tail=o),o.prev===null&&(t.head=o),t.length++,o}function yGe(t,e){t.tail=new sd(e,t.tail,null,t),t.head||(t.head=t.tail),t.length++}function CGe(t,e){t.head=new sd(e,null,t.head,t),t.tail||(t.tail=t.head),t.length++}function sd(t,e,r,o){if(!(this instanceof sd))return new sd(t,e,r,o);this.list=o,this.value=t,e?(e.next=this,this.prev=e):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}try{cz()(dn)}catch{}});var gz=U((GQt,hz)=>{"use strict";var EGe=AS(),od=Symbol("max"),Bf=Symbol("length"),Py=Symbol("lengthCalculator"),cw=Symbol("allowStale"),ad=Symbol("maxAge"),wf=Symbol("dispose"),Az=Symbol("noDisposeOnSet"),Ds=Symbol("lruList"),qc=Symbol("cache"),pz=Symbol("updateAgeOnGet"),VT=()=>1,zT=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[od]=e.max||1/0,o=e.length||VT;if(this[Py]=typeof o!="function"?VT:o,this[cw]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[ad]=e.maxAge||0,this[wf]=e.dispose,this[Az]=e.noDisposeOnSet||!1,this[pz]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[od]=e||1/0,lw(this)}get max(){return this[od]}set allowStale(e){this[cw]=!!e}get allowStale(){return this[cw]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[ad]=e,lw(this)}get maxAge(){return this[ad]}set lengthCalculator(e){typeof e!="function"&&(e=VT),e!==this[Py]&&(this[Py]=e,this[Bf]=0,this[Ds].forEach(r=>{r.length=this[Py](r.value,r.key),this[Bf]+=r.length})),lw(this)}get lengthCalculator(){return this[Py]}get length(){return this[Bf]}get itemCount(){return this[Ds].length}rforEach(e,r){r=r||this;for(let o=this[Ds].tail;o!==null;){let a=o.prev;fz(this,e,o,r),o=a}}forEach(e,r){r=r||this;for(let o=this[Ds].head;o!==null;){let a=o.next;fz(this,e,o,r),o=a}}keys(){return this[Ds].toArray().map(e=>e.key)}values(){return this[Ds].toArray().map(e=>e.value)}reset(){this[wf]&&this[Ds]&&this[Ds].length&&this[Ds].forEach(e=>this[wf](e.key,e.value)),this[qc]=new Map,this[Ds]=new EGe,this[Bf]=0}dump(){return this[Ds].map(e=>fS(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ds]}set(e,r,o){if(o=o||this[ad],o&&typeof o!="number")throw new TypeError("maxAge must be a number");let a=o?Date.now():0,n=this[Py](r,e);if(this[qc].has(e)){if(n>this[od])return xy(this,this[qc].get(e)),!1;let p=this[qc].get(e).value;return this[wf]&&(this[Az]||this[wf](e,p.value)),p.now=a,p.maxAge=o,p.value=r,this[Bf]+=n-p.length,p.length=n,this.get(e),lw(this),!0}let u=new XT(e,r,n,a,o);return u.length>this[od]?(this[wf]&&this[wf](e,r),!1):(this[Bf]+=u.length,this[Ds].unshift(u),this[qc].set(e,this[Ds].head),lw(this),!0)}has(e){if(!this[qc].has(e))return!1;let r=this[qc].get(e).value;return!fS(this,r)}get(e){return JT(this,e,!0)}peek(e){return JT(this,e,!1)}pop(){let e=this[Ds].tail;return e?(xy(this,e),e.value):null}del(e){xy(this,this[qc].get(e))}load(e){this.reset();let r=Date.now();for(let o=e.length-1;o>=0;o--){let a=e[o],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[qc].forEach((e,r)=>JT(this,r,!1))}},JT=(t,e,r)=>{let o=t[qc].get(e);if(o){let a=o.value;if(fS(t,a)){if(xy(t,o),!t[cw])return}else r&&(t[pz]&&(o.value.now=Date.now()),t[Ds].unshiftNode(o));return a.value}},fS=(t,e)=>{if(!e||!e.maxAge&&!t[ad])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[ad]&&r>t[ad]},lw=t=>{if(t[Bf]>t[od])for(let e=t[Ds].tail;t[Bf]>t[od]&&e!==null;){let r=e.prev;xy(t,e),e=r}},xy=(t,e)=>{if(e){let r=e.value;t[wf]&&t[wf](r.key,r.value),t[Bf]-=r.length,t[qc].delete(r.key),t[Ds].removeNode(e)}},XT=class{constructor(e,r,o,a,n){this.key=e,this.value=r,this.length=o,this.now=a,this.maxAge=n||0}},fz=(t,e,r,o)=>{let a=r.value;fS(t,a)&&(xy(t,r),t[cw]||(a=void 0)),a&&e.call(o,a.value,a.key,t)};hz.exports=zT});var ql=U((WQt,Cz)=>{var ld=class{constructor(e,r){if(r=wGe(r),e instanceof ld)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new ld(e.raw,r);if(e instanceof ZT)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e,this.set=e.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(a=>!mz(a[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&PGe(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let o=`parseRange:${Object.keys(this.options).join(",")}:${e}`,a=dz.get(o);if(a)return a;let n=this.options.loose,u=n?Da[Ko.HYPHENRANGELOOSE]:Da[Ko.HYPHENRANGE];e=e.replace(u,OGe(this.options.includePrerelease)),wi("hyphen replace",e),e=e.replace(Da[Ko.COMPARATORTRIM],vGe),wi("comparator trim",e),e=e.replace(Da[Ko.TILDETRIM],DGe),e=e.replace(Da[Ko.CARETTRIM],SGe),e=e.split(/\s+/).join(" ");let A=e.split(" ").map(w=>xGe(w,this.options)).join(" ").split(/\s+/).map(w=>LGe(w,this.options));n&&(A=A.filter(w=>(wi("loose invalid filter",w,this.options),!!w.match(Da[Ko.COMPARATORLOOSE])))),wi("range list",A);let p=new Map,h=A.map(w=>new ZT(w,this.options));for(let w of h){if(mz(w))return[w];p.set(w.value,w)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return dz.set(o,E),E}intersects(e,r){if(!(e instanceof ld))throw new TypeError("a Range is required");return this.set.some(o=>yz(o,r)&&e.set.some(a=>yz(a,r)&&o.every(n=>a.every(u=>n.intersects(u,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new BGe(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(MGe(this.set[r],e,this.options))return!0;return!1}};Cz.exports=ld;var IGe=gz(),dz=new IGe({max:1e3}),wGe=ow(),ZT=uw(),wi=sw(),BGe=Do(),{re:Da,t:Ko,comparatorTrimReplace:vGe,tildeTrimReplace:DGe,caretTrimReplace:SGe}=nd(),mz=t=>t.value==="<0.0.0-0",PGe=t=>t.value==="",yz=(t,e)=>{let r=!0,o=t.slice(),a=o.pop();for(;r&&o.length;)r=o.every(n=>a.intersects(n,e)),a=o.pop();return r},xGe=(t,e)=>(wi("comp",t,e),t=kGe(t,e),wi("caret",t),t=bGe(t,e),wi("tildes",t),t=RGe(t,e),wi("xrange",t),t=NGe(t,e),wi("stars",t),t),Vo=t=>!t||t.toLowerCase()==="x"||t==="*",bGe=(t,e)=>t.trim().split(/\s+/).map(r=>QGe(r,e)).join(" "),QGe=(t,e)=>{let r=e.loose?Da[Ko.TILDELOOSE]:Da[Ko.TILDE];return t.replace(r,(o,a,n,u,A)=>{wi("tilde",t,o,a,n,u,A);let p;return Vo(a)?p="":Vo(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:Vo(u)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:A?(wi("replaceTilde pr",A),p=`>=${a}.${n}.${u}-${A} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${u} <${a}.${+n+1}.0-0`,wi("tilde return",p),p})},kGe=(t,e)=>t.trim().split(/\s+/).map(r=>FGe(r,e)).join(" "),FGe=(t,e)=>{wi("caret",t,e);let r=e.loose?Da[Ko.CARETLOOSE]:Da[Ko.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(a,n,u,A,p)=>{wi("caret",t,a,n,u,A,p);let h;return Vo(n)?h="":Vo(u)?h=`>=${n}.0.0${o} <${+n+1}.0.0-0`:Vo(A)?n==="0"?h=`>=${n}.${u}.0${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.0${o} <${+n+1}.0.0-0`:p?(wi("replaceCaret pr",p),n==="0"?u==="0"?h=`>=${n}.${u}.${A}-${p} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}-${p} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A}-${p} <${+n+1}.0.0-0`):(wi("no pr"),n==="0"?u==="0"?h=`>=${n}.${u}.${A}${o} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A} <${+n+1}.0.0-0`),wi("caret return",h),h})},RGe=(t,e)=>(wi("replaceXRanges",t,e),t.split(/\s+/).map(r=>TGe(r,e)).join(" ")),TGe=(t,e)=>{t=t.trim();let r=e.loose?Da[Ko.XRANGELOOSE]:Da[Ko.XRANGE];return t.replace(r,(o,a,n,u,A,p)=>{wi("xRange",t,o,a,n,u,A,p);let h=Vo(n),E=h||Vo(u),w=E||Vo(A),v=w;return a==="="&&v&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?o="<0.0.0-0":o="*":a&&v?(E&&(u=0),A=0,a===">"?(a=">=",E?(n=+n+1,u=0,A=0):(u=+u+1,A=0)):a==="<="&&(a="<",E?n=+n+1:u=+u+1),a==="<"&&(p="-0"),o=`${a+n}.${u}.${A}${p}`):E?o=`>=${n}.0.0${p} <${+n+1}.0.0-0`:w&&(o=`>=${n}.${u}.0${p} <${n}.${+u+1}.0-0`),wi("xRange return",o),o})},NGe=(t,e)=>(wi("replaceStars",t,e),t.trim().replace(Da[Ko.STAR],"")),LGe=(t,e)=>(wi("replaceGTE0",t,e),t.trim().replace(Da[e.includePrerelease?Ko.GTE0PRE:Ko.GTE0],"")),OGe=t=>(e,r,o,a,n,u,A,p,h,E,w,v,b)=>(Vo(o)?r="":Vo(a)?r=`>=${o}.0.0${t?"-0":""}`:Vo(n)?r=`>=${o}.${a}.0${t?"-0":""}`:u?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Vo(h)?p="":Vo(E)?p=`<${+h+1}.0.0-0`:Vo(w)?p=`<${h}.${+E+1}.0-0`:v?p=`<=${h}.${E}.${w}-${v}`:t?p=`<${h}.${E}.${+w+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),MGe=(t,e,r)=>{for(let o=0;o<t.length;o++)if(!t[o].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let o=0;o<t.length;o++)if(wi(t[o].semver),t[o].semver!==ZT.ANY&&t[o].semver.prerelease.length>0){let a=t[o].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var uw=U((YQt,vz)=>{var Aw=Symbol("SemVer ANY"),by=class{static get ANY(){return Aw}constructor(e,r){if(r=UGe(r),e instanceof by){if(e.loose===!!r.loose)return e;e=e.value}eN("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Aw?this.value="":this.value=this.operator+this.semver.version,eN("comp",this)}parse(e){let r=this.options.loose?Ez[Iz.COMPARATORLOOSE]:Ez[Iz.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new wz(o[2],this.options.loose):this.semver=Aw}toString(){return this.value}test(e){if(eN("Comparator.test",e,this.options.loose),this.semver===Aw||e===Aw)return!0;if(typeof e=="string")try{e=new wz(e,this.options)}catch{return!1}return $T(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof by))throw new TypeError("a Comparator is required");if((!r||typeof r!="object")&&(r={loose:!!r,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new Bz(e.value,r).test(this.value);if(e.operator==="")return e.value===""?!0:new Bz(this.value,r).test(e.semver);let o=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),a=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),n=this.semver.version===e.semver.version,u=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),A=$T(this.semver,"<",e.semver,r)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),p=$T(this.semver,">",e.semver,r)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return o||a||n&&u||A||p}};vz.exports=by;var UGe=ow(),{re:Ez,t:Iz}=nd(),$T=KT(),eN=sw(),wz=Do(),Bz=ql()});var fw=U((KQt,Dz)=>{var _Ge=ql(),HGe=(t,e,r)=>{try{e=new _Ge(e,r)}catch{return!1}return e.test(t)};Dz.exports=HGe});var Pz=U((VQt,Sz)=>{var qGe=ql(),jGe=(t,e)=>new qGe(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));Sz.exports=jGe});var bz=U((JQt,xz)=>{var GGe=Do(),WGe=ql(),YGe=(t,e,r)=>{let o=null,a=null,n=null;try{n=new WGe(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===-1)&&(o=u,a=new GGe(o,r))}),o};xz.exports=YGe});var kz=U((zQt,Qz)=>{var KGe=Do(),VGe=ql(),JGe=(t,e,r)=>{let o=null,a=null,n=null;try{n=new VGe(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===1)&&(o=u,a=new KGe(o,r))}),o};Qz.exports=JGe});var Tz=U((XQt,Rz)=>{var tN=Do(),zGe=ql(),Fz=aw(),XGe=(t,e)=>{t=new zGe(t,e);let r=new tN("0.0.0");if(t.test(r)||(r=new tN("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o<t.set.length;++o){let a=t.set[o],n=null;a.forEach(u=>{let A=new tN(u.semver.version);switch(u.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!n||Fz(A,n))&&(n=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),n&&(!r||Fz(r,n))&&(r=n)}return r&&t.test(r)?r:null};Rz.exports=XGe});var Lz=U((ZQt,Nz)=>{var ZGe=ql(),$Ge=(t,e)=>{try{return new ZGe(t,e).range||"*"}catch{return null}};Nz.exports=$Ge});var pS=U(($Qt,_z)=>{var e9e=Do(),Uz=uw(),{ANY:t9e}=Uz,r9e=ql(),n9e=fw(),Oz=aw(),Mz=oS(),i9e=lS(),s9e=aS(),o9e=(t,e,r,o)=>{t=new e9e(t,o),e=new r9e(e,o);let a,n,u,A,p;switch(r){case">":a=Oz,n=i9e,u=Mz,A=">",p=">=";break;case"<":a=Mz,n=s9e,u=Oz,A="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(n9e(t,e,o))return!1;for(let h=0;h<e.set.length;++h){let E=e.set[h],w=null,v=null;if(E.forEach(b=>{b.semver===t9e&&(b=new Uz(">=0.0.0")),w=w||b,v=v||b,a(b.semver,w.semver,o)?w=b:u(b.semver,v.semver,o)&&(v=b)}),w.operator===A||w.operator===p||(!v.operator||v.operator===A)&&n(t,v.semver))return!1;if(v.operator===p&&u(t,v.semver))return!1}return!0};_z.exports=o9e});var qz=U((ekt,Hz)=>{var a9e=pS(),l9e=(t,e,r)=>a9e(t,e,">",r);Hz.exports=l9e});var Gz=U((tkt,jz)=>{var c9e=pS(),u9e=(t,e,r)=>c9e(t,e,"<",r);jz.exports=u9e});var Kz=U((rkt,Yz)=>{var Wz=ql(),A9e=(t,e,r)=>(t=new Wz(t,r),e=new Wz(e,r),t.intersects(e));Yz.exports=A9e});var Jz=U((nkt,Vz)=>{var f9e=fw(),p9e=Hl();Vz.exports=(t,e,r)=>{let o=[],a=null,n=null,u=t.sort((E,w)=>p9e(E,w,r));for(let E of u)f9e(E,e,r)?(n=E,a||(a=E)):(n&&o.push([a,n]),n=null,a=null);a&&o.push([a,null]);let A=[];for(let[E,w]of o)E===w?A.push(E):!w&&E===u[0]?A.push("*"):w?E===u[0]?A.push(`<=${w}`):A.push(`${E} - ${w}`):A.push(`>=${E}`);let p=A.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length<h.length?p:e}});var eX=U((ikt,$z)=>{var zz=ql(),hS=uw(),{ANY:rN}=hS,pw=fw(),nN=Hl(),h9e=(t,e,r={})=>{if(t===e)return!0;t=new zz(t,r),e=new zz(e,r);let o=!1;e:for(let a of t.set){for(let n of e.set){let u=g9e(a,n,r);if(o=o||u!==null,u)continue e}if(o)return!1}return!0},g9e=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===rN){if(e.length===1&&e[0].semver===rN)return!0;r.includePrerelease?t=[new hS(">=0.0.0-0")]:t=[new hS(">=0.0.0")]}if(e.length===1&&e[0].semver===rN){if(r.includePrerelease)return!0;e=[new hS(">=0.0.0")]}let o=new Set,a,n;for(let b of t)b.operator===">"||b.operator===">="?a=Xz(a,b,r):b.operator==="<"||b.operator==="<="?n=Zz(n,b,r):o.add(b.semver);if(o.size>1)return null;let u;if(a&&n){if(u=nN(a.semver,n.semver,r),u>0)return null;if(u===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let b of o){if(a&&!pw(b,String(a),r)||n&&!pw(b,String(n),r))return null;for(let C of e)if(!pw(b,String(C),r))return!1;return!0}let A,p,h,E,w=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,v=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;w&&w.prerelease.length===1&&n.operator==="<"&&w.prerelease[0]===0&&(w=!1);for(let b of e){if(E=E||b.operator===">"||b.operator===">=",h=h||b.operator==="<"||b.operator==="<=",a){if(v&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===v.major&&b.semver.minor===v.minor&&b.semver.patch===v.patch&&(v=!1),b.operator===">"||b.operator===">="){if(A=Xz(a,b,r),A===b&&A!==a)return!1}else if(a.operator===">="&&!pw(a.semver,String(b),r))return!1}if(n){if(w&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===w.major&&b.semver.minor===w.minor&&b.semver.patch===w.patch&&(w=!1),b.operator==="<"||b.operator==="<="){if(p=Zz(n,b,r),p===b&&p!==n)return!1}else if(n.operator==="<="&&!pw(n.semver,String(b),r))return!1}if(!b.operator&&(n||a)&&u!==0)return!1}return!(a&&h&&!n&&u!==0||n&&E&&!a&&u!==0||v||w)},Xz=(t,e,r)=>{if(!t)return e;let o=nN(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},Zz=(t,e,r)=>{if(!t)return e;let o=nN(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};$z.exports=h9e});var si=U((skt,tX)=>{var iN=nd();tX.exports={re:iN.re,src:iN.src,tokens:iN.t,SEMVER_SPEC_VERSION:iw().SEMVER_SPEC_VERSION,SemVer:Do(),compareIdentifiers:tS().compareIdentifiers,rcompareIdentifiers:tS().rcompareIdentifiers,parse:id(),valid:vJ(),clean:SJ(),inc:bJ(),diff:NJ(),major:OJ(),minor:UJ(),patch:HJ(),prerelease:jJ(),compare:Hl(),rcompare:WJ(),compareLoose:KJ(),compareBuild:sS(),sort:XJ(),rsort:$J(),gt:aw(),lt:oS(),eq:iS(),neq:YT(),gte:aS(),lte:lS(),cmp:KT(),coerce:az(),Comparator:uw(),Range:ql(),satisfies:fw(),toComparators:Pz(),maxSatisfying:bz(),minSatisfying:kz(),minVersion:Tz(),validRange:Lz(),outside:pS(),gtr:qz(),ltr:Gz(),intersects:Kz(),simplifyRange:Jz(),subset:eX()}});var nX=U((okt,rX)=>{"use strict";function d9e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function cd(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,cd)}d9e(cd,Error);cd.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w<h.parts.length;w++)E+=h.parts[w]instanceof Array?n(h.parts[w][0])+"-"+n(h.parts[w][1]):n(h.parts[w]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),w,v;for(w=0;w<h.length;w++)E[w]=u(h[w]);if(E.sort(),E.length>0){for(w=1,v=1;w<E.length;w++)E[w-1]!==E[w]&&(E[v]=E[w],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function m9e(t,e){e=e!==void 0?e:{};var r={},o={Expression:y},a=y,n="|",u=Me("|",!1),A="&",p=Me("&",!1),h="^",E=Me("^",!1),w=function($,ie){return!!ie.reduce((ke,Ne)=>{switch(Ne[1]){case"|":return ke|Ne[3];case"&":return ke&Ne[3];case"^":return ke^Ne[3]}},$)},v="!",b=Me("!",!1),C=function($){return!$},R="(",L=Me("(",!1),_=")",V=Me(")",!1),re=function($){return $},oe=/^[^ \t\n\r()!|&\^]/,pe=Te([" "," ",` 126`)}};nw.paths=[["-v"],["--version"]]});var WT={};Yt(WT,{DefinitionsCommand:()=>tw,HelpCommand:()=>rw,VersionCommand:()=>nw});var KV=dt(()=>{GV();WV();YV()});function VV(t,e,r){let[o,a]=Ku(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Wo({definition(p){p.addOption({names:u,arity:n,hidden:a==null?void 0:a.hidden,description:a==null?void 0:a.description,required:a.required})},transformer(p,h,C){let w=typeof o<"u"?[...o]:void 0;for(let{name:v,value:b}of C.options)!A.has(v)||(w=w??[],w.push(b));return w}})}var JV=dt(()=>{If()});function zV(t,e,r){let[o,a]=Ku(e,r??{}),n=t.split(","),u=new Set(n);return Wo({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let C=o;for(let{name:w,value:v}of h.options)!u.has(w)||(C=v);return C}})}var XV=dt(()=>{If()});function ZV(t,e,r){let[o,a]=Ku(e,r??{}),n=t.split(","),u=new Set(n);return Wo({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let C=o;for(let{name:w,value:v}of h.options)!u.has(w)||(C??(C=0),v?C+=1:C=0);return C}})}var $V=dt(()=>{If()});function eJ(t={}){return Wo({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var tJ=dt(()=>{If()});function rJ(t={}){return Wo({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===nl||A.extra===!1&&u<e.arity.leading.length},n=0;for(;n<o.positionals.length&&a(n);)n+=1;return o.positionals.splice(0,n).map(({value:u})=>u)}})}var nJ=dt(()=>{$D();If()});function Aje(t,e,r){let[o,a]=Ku(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Wo({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,C,w){let v,b=o;typeof a.env<"u"&&w.env[a.env]&&(v=a.env,b=w.env[a.env]);for(let{name:E,value:R}of C.options)!A.has(E)||(v=E,b=R);return typeof b=="string"?ZI(v??h,b,a.validator):b}})}function fje(t={}){let{required:e=!0}=t;return Wo({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u<a.positionals.length;++u){if(a.positionals[u].extra===nl||e&&a.positionals[u].extra===!0||!e&&a.positionals[u].extra===!1)continue;let[A]=a.positionals.splice(u,1);return ZI((n=t.name)!==null&&n!==void 0?n:o,A.value,t.validator)}}})}function iJ(t,...e){return typeof t=="string"?Aje(t,...e):fje(t)}var sJ=dt(()=>{$D();If()});var fe={};Yt(fe,{Array:()=>VV,Boolean:()=>zV,Counter:()=>ZV,Proxy:()=>eJ,Rest:()=>rJ,String:()=>iJ,applyValidator:()=>ZI,cleanValidationError:()=>KD,formatError:()=>XI,isOptionSymbol:()=>zI,makeCommandOption:()=>Wo,rerouteArguments:()=>Ku});var oJ=dt(()=>{If();JV();XV();$V();tJ();nJ();sJ()});var iw={};Yt(iw,{Builtins:()=>WT,Cli:()=>vo,Command:()=>it,Option:()=>fe,UsageError:()=>ot,formatMarkdownish:()=>Bo,run:()=>HV,runExit:()=>_V});var _t=dt(()=>{YD();NT();rd();jV();KV();oJ()});var lJ=U((dQt,aJ)=>{"use strict";aJ.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var nd=U((mQt,YT)=>{"use strict";var pje=lJ(),cJ=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let C=pje(A,...h);p(C),C.then(o,o)},n=(A,p,...h)=>{r<t?a(A,p,...h):e.push(a.bind(null,A,p,...h))},u=(A,...p)=>new Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};YT.exports=cJ;YT.exports.default=cJ});function Vu(t){return`YN${t.toString(10).padStart(4,"0")}`}function tS(t){let e=Number(t.slice(2));if(typeof dr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var dr,rS=dt(()=>{dr=(Ue=>(Ue[Ue.UNNAMED=0]="UNNAMED",Ue[Ue.EXCEPTION=1]="EXCEPTION",Ue[Ue.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Ue[Ue.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Ue[Ue.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Ue[Ue.BUILD_DISABLED=5]="BUILD_DISABLED",Ue[Ue.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Ue[Ue.MUST_BUILD=7]="MUST_BUILD",Ue[Ue.MUST_REBUILD=8]="MUST_REBUILD",Ue[Ue.BUILD_FAILED=9]="BUILD_FAILED",Ue[Ue.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Ue[Ue.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Ue[Ue.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Ue[Ue.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Ue[Ue.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Ue[Ue.REMOTE_INVALID=15]="REMOTE_INVALID",Ue[Ue.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Ue[Ue.RESOLUTION_PACK=17]="RESOLUTION_PACK",Ue[Ue.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Ue[Ue.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Ue[Ue.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Ue[Ue.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Ue[Ue.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Ue[Ue.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Ue[Ue.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Ue[Ue.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Ue[Ue.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Ue[Ue.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Ue[Ue.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Ue[Ue.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Ue[Ue.FETCH_FAILED=30]="FETCH_FAILED",Ue[Ue.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Ue[Ue.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Ue[Ue.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Ue[Ue.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Ue[Ue.NETWORK_ERROR=35]="NETWORK_ERROR",Ue[Ue.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Ue[Ue.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Ue[Ue.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Ue[Ue.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Ue[Ue.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Ue[Ue.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Ue[Ue.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Ue[Ue.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Ue[Ue.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Ue[Ue.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Ue[Ue.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Ue[Ue.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Ue[Ue.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Ue[Ue.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Ue[Ue.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Ue[Ue.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Ue[Ue.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Ue[Ue.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Ue[Ue.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Ue[Ue.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Ue[Ue.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Ue[Ue.INVALID_MANIFEST=57]="INVALID_MANIFEST",Ue[Ue.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Ue[Ue.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Ue[Ue.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Ue[Ue.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Ue[Ue.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Ue[Ue.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Ue[Ue.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Ue[Ue.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Ue[Ue.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Ue[Ue.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Ue[Ue.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Ue[Ue.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Ue[Ue.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Ue[Ue.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Ue[Ue.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Ue[Ue.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Ue[Ue.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Ue[Ue.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Ue[Ue.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Ue[Ue.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Ue[Ue.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Ue[Ue.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Ue[Ue.NETWORK_DISABLED=80]="NETWORK_DISABLED",Ue[Ue.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Ue[Ue.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Ue[Ue.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Ue[Ue.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Ue))(dr||{})});var sw=U((EQt,uJ)=>{var hje="2.0.0",gje=Number.MAX_SAFE_INTEGER||9007199254740991,dje=16;uJ.exports={SEMVER_SPEC_VERSION:hje,MAX_LENGTH:256,MAX_SAFE_INTEGER:gje,MAX_SAFE_COMPONENT_LENGTH:dje}});var ow=U((CQt,AJ)=>{var mje=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};AJ.exports=mje});var id=U((Kp,fJ)=>{var{MAX_SAFE_COMPONENT_LENGTH:KT}=sw(),yje=ow();Kp=fJ.exports={};var Eje=Kp.re=[],or=Kp.src=[],ar=Kp.t={},Cje=0,Kr=(t,e,r)=>{let o=Cje++;yje(t,o,e),ar[t]=o,or[o]=e,Eje[o]=new RegExp(e,r?"g":void 0)};Kr("NUMERICIDENTIFIER","0|[1-9]\\d*");Kr("NUMERICIDENTIFIERLOOSE","[0-9]+");Kr("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Kr("MAINVERSION",`(${or[ar.NUMERICIDENTIFIER]})\\.(${or[ar.NUMERICIDENTIFIER]})\\.(${or[ar.NUMERICIDENTIFIER]})`);Kr("MAINVERSIONLOOSE",`(${or[ar.NUMERICIDENTIFIERLOOSE]})\\.(${or[ar.NUMERICIDENTIFIERLOOSE]})\\.(${or[ar.NUMERICIDENTIFIERLOOSE]})`);Kr("PRERELEASEIDENTIFIER",`(?:${or[ar.NUMERICIDENTIFIER]}|${or[ar.NONNUMERICIDENTIFIER]})`);Kr("PRERELEASEIDENTIFIERLOOSE",`(?:${or[ar.NUMERICIDENTIFIERLOOSE]}|${or[ar.NONNUMERICIDENTIFIER]})`);Kr("PRERELEASE",`(?:-(${or[ar.PRERELEASEIDENTIFIER]}(?:\\.${or[ar.PRERELEASEIDENTIFIER]})*))`);Kr("PRERELEASELOOSE",`(?:-?(${or[ar.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${or[ar.PRERELEASEIDENTIFIERLOOSE]})*))`);Kr("BUILDIDENTIFIER","[0-9A-Za-z-]+");Kr("BUILD",`(?:\\+(${or[ar.BUILDIDENTIFIER]}(?:\\.${or[ar.BUILDIDENTIFIER]})*))`);Kr("FULLPLAIN",`v?${or[ar.MAINVERSION]}${or[ar.PRERELEASE]}?${or[ar.BUILD]}?`);Kr("FULL",`^${or[ar.FULLPLAIN]}$`);Kr("LOOSEPLAIN",`[v=\\s]*${or[ar.MAINVERSIONLOOSE]}${or[ar.PRERELEASELOOSE]}?${or[ar.BUILD]}?`);Kr("LOOSE",`^${or[ar.LOOSEPLAIN]}$`);Kr("GTLT","((?:<|>)?=?)");Kr("XRANGEIDENTIFIERLOOSE",`${or[ar.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Kr("XRANGEIDENTIFIER",`${or[ar.NUMERICIDENTIFIER]}|x|X|\\*`);Kr("XRANGEPLAIN",`[v=\\s]*(${or[ar.XRANGEIDENTIFIER]})(?:\\.(${or[ar.XRANGEIDENTIFIER]})(?:\\.(${or[ar.XRANGEIDENTIFIER]})(?:${or[ar.PRERELEASE]})?${or[ar.BUILD]}?)?)?`);Kr("XRANGEPLAINLOOSE",`[v=\\s]*(${or[ar.XRANGEIDENTIFIERLOOSE]})(?:\\.(${or[ar.XRANGEIDENTIFIERLOOSE]})(?:\\.(${or[ar.XRANGEIDENTIFIERLOOSE]})(?:${or[ar.PRERELEASELOOSE]})?${or[ar.BUILD]}?)?)?`);Kr("XRANGE",`^${or[ar.GTLT]}\\s*${or[ar.XRANGEPLAIN]}$`);Kr("XRANGELOOSE",`^${or[ar.GTLT]}\\s*${or[ar.XRANGEPLAINLOOSE]}$`);Kr("COERCE",`(^|[^\\d])(\\d{1,${KT}})(?:\\.(\\d{1,${KT}}))?(?:\\.(\\d{1,${KT}}))?(?:$|[^\\d])`);Kr("COERCERTL",or[ar.COERCE],!0);Kr("LONETILDE","(?:~>?)");Kr("TILDETRIM",`(\\s*)${or[ar.LONETILDE]}\\s+`,!0);Kp.tildeTrimReplace="$1~";Kr("TILDE",`^${or[ar.LONETILDE]}${or[ar.XRANGEPLAIN]}$`);Kr("TILDELOOSE",`^${or[ar.LONETILDE]}${or[ar.XRANGEPLAINLOOSE]}$`);Kr("LONECARET","(?:\\^)");Kr("CARETTRIM",`(\\s*)${or[ar.LONECARET]}\\s+`,!0);Kp.caretTrimReplace="$1^";Kr("CARET",`^${or[ar.LONECARET]}${or[ar.XRANGEPLAIN]}$`);Kr("CARETLOOSE",`^${or[ar.LONECARET]}${or[ar.XRANGEPLAINLOOSE]}$`);Kr("COMPARATORLOOSE",`^${or[ar.GTLT]}\\s*(${or[ar.LOOSEPLAIN]})$|^$`);Kr("COMPARATOR",`^${or[ar.GTLT]}\\s*(${or[ar.FULLPLAIN]})$|^$`);Kr("COMPARATORTRIM",`(\\s*)${or[ar.GTLT]}\\s*(${or[ar.LOOSEPLAIN]}|${or[ar.XRANGEPLAIN]})`,!0);Kp.comparatorTrimReplace="$1$2$3";Kr("HYPHENRANGE",`^\\s*(${or[ar.XRANGEPLAIN]})\\s+-\\s+(${or[ar.XRANGEPLAIN]})\\s*$`);Kr("HYPHENRANGELOOSE",`^\\s*(${or[ar.XRANGEPLAINLOOSE]})\\s+-\\s+(${or[ar.XRANGEPLAINLOOSE]})\\s*$`);Kr("STAR","(<|>)?=?\\s*\\*");Kr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Kr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var aw=U((IQt,pJ)=>{var Ije=["includePrerelease","loose","rtl"],wje=t=>t?typeof t!="object"?{loose:!0}:Ije.filter(e=>t[e]).reduce((e,r)=>(e[r]=!0,e),{}):{};pJ.exports=wje});var nS=U((wQt,dJ)=>{var hJ=/^[0-9]+$/,gJ=(t,e)=>{let r=hJ.test(t),o=hJ.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1},Bje=(t,e)=>gJ(e,t);dJ.exports={compareIdentifiers:gJ,rcompareIdentifiers:Bje}});var Do=U((BQt,CJ)=>{var iS=ow(),{MAX_LENGTH:mJ,MAX_SAFE_INTEGER:sS}=sw(),{re:yJ,t:EJ}=id(),vje=aw(),{compareIdentifiers:Sy}=nS(),il=class{constructor(e,r){if(r=vje(r),e instanceof il){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>mJ)throw new TypeError(`version is longer than ${mJ} characters`);iS("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?yJ[EJ.LOOSE]:yJ[EJ.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>sS||this.major<0)throw new TypeError("Invalid major version");if(this.minor>sS||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>sS||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n<sS)return n}return a}):this.prerelease=[],this.build=o[5]?o[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(iS("SemVer.compare",this.version,this.options,e),!(e instanceof il)){if(typeof e=="string"&&e===this.version)return 0;e=new il(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof il||(e=new il(e,this.options)),Sy(this.major,e.major)||Sy(this.minor,e.minor)||Sy(this.patch,e.patch)}comparePre(e){if(e instanceof il||(e=new il(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let o=this.prerelease[r],a=e.prerelease[r];if(iS("prerelease compare",r,o,a),o===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(o===void 0)return-1;if(o===a)continue;return Sy(o,a)}while(++r)}compareBuild(e){e instanceof il||(e=new il(e,this.options));let r=0;do{let o=this.build[r],a=e.build[r];if(iS("prerelease compare",r,o,a),o===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(o===void 0)return-1;if(o===a)continue;return Sy(o,a)}while(++r)}inc(e,r){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r),this.inc("pre",r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r),this.inc("pre",r);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);o===-1&&this.prerelease.push(0)}r&&(Sy(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};CJ.exports=il});var sd=U((vQt,vJ)=>{var{MAX_LENGTH:Dje}=sw(),{re:IJ,t:wJ}=id(),BJ=Do(),Sje=aw(),Pje=(t,e)=>{if(e=Sje(e),t instanceof BJ)return t;if(typeof t!="string"||t.length>Dje||!(e.loose?IJ[wJ.LOOSE]:IJ[wJ.FULL]).test(t))return null;try{return new BJ(t,e)}catch{return null}};vJ.exports=Pje});var SJ=U((DQt,DJ)=>{var xje=sd(),bje=(t,e)=>{let r=xje(t,e);return r?r.version:null};DJ.exports=bje});var xJ=U((SQt,PJ)=>{var Qje=sd(),kje=(t,e)=>{let r=Qje(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};PJ.exports=kje});var kJ=U((PQt,QJ)=>{var bJ=Do(),Fje=(t,e,r,o)=>{typeof r=="string"&&(o=r,r=void 0);try{return new bJ(t instanceof bJ?t.version:t,r).inc(e,o).version}catch{return null}};QJ.exports=Fje});var ql=U((xQt,RJ)=>{var FJ=Do(),Rje=(t,e,r)=>new FJ(t,r).compare(new FJ(e,r));RJ.exports=Rje});var oS=U((bQt,TJ)=>{var Tje=ql(),Nje=(t,e,r)=>Tje(t,e,r)===0;TJ.exports=Nje});var OJ=U((QQt,LJ)=>{var NJ=sd(),Lje=oS(),Oje=(t,e)=>{if(Lje(t,e))return null;{let r=NJ(t),o=NJ(e),a=r.prerelease.length||o.prerelease.length,n=a?"pre":"",u=a?"prerelease":"";for(let A in r)if((A==="major"||A==="minor"||A==="patch")&&r[A]!==o[A])return n+A;return u}};LJ.exports=Oje});var UJ=U((kQt,MJ)=>{var Mje=Do(),Uje=(t,e)=>new Mje(t,e).major;MJ.exports=Uje});var HJ=U((FQt,_J)=>{var _je=Do(),Hje=(t,e)=>new _je(t,e).minor;_J.exports=Hje});var jJ=U((RQt,qJ)=>{var qje=Do(),jje=(t,e)=>new qje(t,e).patch;qJ.exports=jje});var WJ=U((TQt,GJ)=>{var Gje=sd(),Wje=(t,e)=>{let r=Gje(t,e);return r&&r.prerelease.length?r.prerelease:null};GJ.exports=Wje});var KJ=U((NQt,YJ)=>{var Yje=ql(),Kje=(t,e,r)=>Yje(e,t,r);YJ.exports=Kje});var JJ=U((LQt,VJ)=>{var Vje=ql(),Jje=(t,e)=>Vje(t,e,!0);VJ.exports=Jje});var aS=U((OQt,XJ)=>{var zJ=Do(),zje=(t,e,r)=>{let o=new zJ(t,r),a=new zJ(e,r);return o.compare(a)||o.compareBuild(a)};XJ.exports=zje});var $J=U((MQt,ZJ)=>{var Xje=aS(),Zje=(t,e)=>t.sort((r,o)=>Xje(r,o,e));ZJ.exports=Zje});var tz=U((UQt,ez)=>{var $je=aS(),eGe=(t,e)=>t.sort((r,o)=>$je(o,r,e));ez.exports=eGe});var lw=U((_Qt,rz)=>{var tGe=ql(),rGe=(t,e,r)=>tGe(t,e,r)>0;rz.exports=rGe});var lS=U((HQt,nz)=>{var nGe=ql(),iGe=(t,e,r)=>nGe(t,e,r)<0;nz.exports=iGe});var VT=U((qQt,iz)=>{var sGe=ql(),oGe=(t,e,r)=>sGe(t,e,r)!==0;iz.exports=oGe});var cS=U((jQt,sz)=>{var aGe=ql(),lGe=(t,e,r)=>aGe(t,e,r)>=0;sz.exports=lGe});var uS=U((GQt,oz)=>{var cGe=ql(),uGe=(t,e,r)=>cGe(t,e,r)<=0;oz.exports=uGe});var JT=U((WQt,az)=>{var AGe=oS(),fGe=VT(),pGe=lw(),hGe=cS(),gGe=lS(),dGe=uS(),mGe=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return AGe(t,r,o);case"!=":return fGe(t,r,o);case">":return pGe(t,r,o);case">=":return hGe(t,r,o);case"<":return gGe(t,r,o);case"<=":return dGe(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};az.exports=mGe});var cz=U((YQt,lz)=>{var yGe=Do(),EGe=sd(),{re:AS,t:fS}=id(),CGe=(t,e)=>{if(t instanceof yGe)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(AS[fS.COERCE]);else{let o;for(;(o=AS[fS.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||o.index+o[0].length!==r.index+r[0].length)&&(r=o),AS[fS.COERCERTL].lastIndex=o.index+o[1].length+o[2].length;AS[fS.COERCERTL].lastIndex=-1}return r===null?null:EGe(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};lz.exports=CGe});var Az=U((KQt,uz)=>{"use strict";uz.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var pS=U((VQt,fz)=>{"use strict";fz.exports=dn;dn.Node=od;dn.create=dn;function dn(t){var e=this;if(e instanceof dn||(e=new dn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,o=arguments.length;r<o;r++)e.push(arguments[r]);return e}dn.prototype.removeNode=function(t){if(t.list!==this)throw new Error("removing node which does not belong to this list");var e=t.next,r=t.prev;return e&&(e.prev=r),r&&(r.next=e),t===this.head&&(this.head=e),t===this.tail&&(this.tail=r),t.list.length--,t.next=null,t.prev=null,t.list=null,e};dn.prototype.unshiftNode=function(t){if(t!==this.head){t.list&&t.list.removeNode(t);var e=this.head;t.list=this,t.next=e,e&&(e.prev=t),this.head=t,this.tail||(this.tail=t),this.length++}};dn.prototype.pushNode=function(t){if(t!==this.tail){t.list&&t.list.removeNode(t);var e=this.tail;t.list=this,t.prev=e,e&&(e.next=t),this.tail=t,this.head||(this.head=t),this.length++}};dn.prototype.push=function(){for(var t=0,e=arguments.length;t<e;t++)wGe(this,arguments[t]);return this.length};dn.prototype.unshift=function(){for(var t=0,e=arguments.length;t<e;t++)BGe(this,arguments[t]);return this.length};dn.prototype.pop=function(){if(!!this.tail){var t=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,t}};dn.prototype.shift=function(){if(!!this.head){var t=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,t}};dn.prototype.forEach=function(t,e){e=e||this;for(var r=this.head,o=0;r!==null;o++)t.call(e,r.value,o,this),r=r.next};dn.prototype.forEachReverse=function(t,e){e=e||this;for(var r=this.tail,o=this.length-1;r!==null;o--)t.call(e,r.value,o,this),r=r.prev};dn.prototype.get=function(t){for(var e=0,r=this.head;r!==null&&e<t;e++)r=r.next;if(e===t&&r!==null)return r.value};dn.prototype.getReverse=function(t){for(var e=0,r=this.tail;r!==null&&e<t;e++)r=r.prev;if(e===t&&r!==null)return r.value};dn.prototype.map=function(t,e){e=e||this;for(var r=new dn,o=this.head;o!==null;)r.push(t.call(e,o.value,this)),o=o.next;return r};dn.prototype.mapReverse=function(t,e){e=e||this;for(var r=new dn,o=this.tail;o!==null;)r.push(t.call(e,o.value,this)),o=o.prev;return r};dn.prototype.reduce=function(t,e){var r,o=this.head;if(arguments.length>1)r=e;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o!==null;a++)r=t(r,o.value,a),o=o.next;return r};dn.prototype.reduceReverse=function(t,e){var r,o=this.tail;if(arguments.length>1)r=e;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;o!==null;a--)r=t(r,o.value,a),o=o.prev;return r};dn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};dn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};dn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new dn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var o=0,a=this.head;a!==null&&o<t;o++)a=a.next;for(;a!==null&&o<e;o++,a=a.next)r.push(a.value);return r};dn.prototype.sliceReverse=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new dn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var o=this.length,a=this.tail;a!==null&&o>e;o--)a=a.prev;for(;a!==null&&o>t;o--,a=a.prev)r.push(a.value);return r};dn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var o=0,a=this.head;a!==null&&o<t;o++)a=a.next;for(var n=[],o=0;a&&o<e;o++)n.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var o=0;o<r.length;o++)a=IGe(this,a,r[o]);return n};dn.prototype.reverse=function(){for(var t=this.head,e=this.tail,r=t;r!==null;r=r.prev){var o=r.prev;r.prev=r.next,r.next=o}return this.head=e,this.tail=t,this};function IGe(t,e,r){var o=e===t.head?new od(r,null,e,t):new od(r,e,e.next,t);return o.next===null&&(t.tail=o),o.prev===null&&(t.head=o),t.length++,o}function wGe(t,e){t.tail=new od(e,t.tail,null,t),t.head||(t.head=t.tail),t.length++}function BGe(t,e){t.head=new od(e,null,t.head,t),t.tail||(t.tail=t.head),t.length++}function od(t,e,r,o){if(!(this instanceof od))return new od(t,e,r,o);this.list=o,this.value=t,e?(e.next=this,this.prev=e):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}try{Az()(dn)}catch{}});var mz=U((JQt,dz)=>{"use strict";var vGe=pS(),ad=Symbol("max"),vf=Symbol("length"),Py=Symbol("lengthCalculator"),uw=Symbol("allowStale"),ld=Symbol("maxAge"),Bf=Symbol("dispose"),pz=Symbol("noDisposeOnSet"),Ds=Symbol("lruList"),jc=Symbol("cache"),gz=Symbol("updateAgeOnGet"),zT=()=>1,ZT=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[ad]=e.max||1/0,o=e.length||zT;if(this[Py]=typeof o!="function"?zT:o,this[uw]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[ld]=e.maxAge||0,this[Bf]=e.dispose,this[pz]=e.noDisposeOnSet||!1,this[gz]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[ad]=e||1/0,cw(this)}get max(){return this[ad]}set allowStale(e){this[uw]=!!e}get allowStale(){return this[uw]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[ld]=e,cw(this)}get maxAge(){return this[ld]}set lengthCalculator(e){typeof e!="function"&&(e=zT),e!==this[Py]&&(this[Py]=e,this[vf]=0,this[Ds].forEach(r=>{r.length=this[Py](r.value,r.key),this[vf]+=r.length})),cw(this)}get lengthCalculator(){return this[Py]}get length(){return this[vf]}get itemCount(){return this[Ds].length}rforEach(e,r){r=r||this;for(let o=this[Ds].tail;o!==null;){let a=o.prev;hz(this,e,o,r),o=a}}forEach(e,r){r=r||this;for(let o=this[Ds].head;o!==null;){let a=o.next;hz(this,e,o,r),o=a}}keys(){return this[Ds].toArray().map(e=>e.key)}values(){return this[Ds].toArray().map(e=>e.value)}reset(){this[Bf]&&this[Ds]&&this[Ds].length&&this[Ds].forEach(e=>this[Bf](e.key,e.value)),this[jc]=new Map,this[Ds]=new vGe,this[vf]=0}dump(){return this[Ds].map(e=>hS(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ds]}set(e,r,o){if(o=o||this[ld],o&&typeof o!="number")throw new TypeError("maxAge must be a number");let a=o?Date.now():0,n=this[Py](r,e);if(this[jc].has(e)){if(n>this[ad])return xy(this,this[jc].get(e)),!1;let p=this[jc].get(e).value;return this[Bf]&&(this[pz]||this[Bf](e,p.value)),p.now=a,p.maxAge=o,p.value=r,this[vf]+=n-p.length,p.length=n,this.get(e),cw(this),!0}let u=new $T(e,r,n,a,o);return u.length>this[ad]?(this[Bf]&&this[Bf](e,r),!1):(this[vf]+=u.length,this[Ds].unshift(u),this[jc].set(e,this[Ds].head),cw(this),!0)}has(e){if(!this[jc].has(e))return!1;let r=this[jc].get(e).value;return!hS(this,r)}get(e){return XT(this,e,!0)}peek(e){return XT(this,e,!1)}pop(){let e=this[Ds].tail;return e?(xy(this,e),e.value):null}del(e){xy(this,this[jc].get(e))}load(e){this.reset();let r=Date.now();for(let o=e.length-1;o>=0;o--){let a=e[o],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[jc].forEach((e,r)=>XT(this,r,!1))}},XT=(t,e,r)=>{let o=t[jc].get(e);if(o){let a=o.value;if(hS(t,a)){if(xy(t,o),!t[uw])return}else r&&(t[gz]&&(o.value.now=Date.now()),t[Ds].unshiftNode(o));return a.value}},hS=(t,e)=>{if(!e||!e.maxAge&&!t[ld])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[ld]&&r>t[ld]},cw=t=>{if(t[vf]>t[ad])for(let e=t[Ds].tail;t[vf]>t[ad]&&e!==null;){let r=e.prev;xy(t,e),e=r}},xy=(t,e)=>{if(e){let r=e.value;t[Bf]&&t[Bf](r.key,r.value),t[vf]-=r.length,t[jc].delete(r.key),t[Ds].removeNode(e)}},$T=class{constructor(e,r,o,a,n){this.key=e,this.value=r,this.length=o,this.now=a,this.maxAge=n||0}},hz=(t,e,r,o)=>{let a=r.value;hS(t,a)&&(xy(t,r),t[uw]||(a=void 0)),a&&e.call(o,a.value,a.key,t)};dz.exports=ZT});var jl=U((zQt,Iz)=>{var cd=class{constructor(e,r){if(r=SGe(r),e instanceof cd)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new cd(e.raw,r);if(e instanceof eN)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e,this.set=e.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(a=>!Ez(a[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&kGe(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let o=`parseRange:${Object.keys(this.options).join(",")}:${e}`,a=yz.get(o);if(a)return a;let n=this.options.loose,u=n?Sa[Vo.HYPHENRANGELOOSE]:Sa[Vo.HYPHENRANGE];e=e.replace(u,HGe(this.options.includePrerelease)),wi("hyphen replace",e),e=e.replace(Sa[Vo.COMPARATORTRIM],xGe),wi("comparator trim",e),e=e.replace(Sa[Vo.TILDETRIM],bGe),e=e.replace(Sa[Vo.CARETTRIM],QGe),e=e.split(/\s+/).join(" ");let A=e.split(" ").map(w=>FGe(w,this.options)).join(" ").split(/\s+/).map(w=>_Ge(w,this.options));n&&(A=A.filter(w=>(wi("loose invalid filter",w,this.options),!!w.match(Sa[Vo.COMPARATORLOOSE])))),wi("range list",A);let p=new Map,h=A.map(w=>new eN(w,this.options));for(let w of h){if(Ez(w))return[w];p.set(w.value,w)}p.size>1&&p.has("")&&p.delete("");let C=[...p.values()];return yz.set(o,C),C}intersects(e,r){if(!(e instanceof cd))throw new TypeError("a Range is required");return this.set.some(o=>Cz(o,r)&&e.set.some(a=>Cz(a,r)&&o.every(n=>a.every(u=>n.intersects(u,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new PGe(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(qGe(this.set[r],e,this.options))return!0;return!1}};Iz.exports=cd;var DGe=mz(),yz=new DGe({max:1e3}),SGe=aw(),eN=Aw(),wi=ow(),PGe=Do(),{re:Sa,t:Vo,comparatorTrimReplace:xGe,tildeTrimReplace:bGe,caretTrimReplace:QGe}=id(),Ez=t=>t.value==="<0.0.0-0",kGe=t=>t.value==="",Cz=(t,e)=>{let r=!0,o=t.slice(),a=o.pop();for(;r&&o.length;)r=o.every(n=>a.intersects(n,e)),a=o.pop();return r},FGe=(t,e)=>(wi("comp",t,e),t=NGe(t,e),wi("caret",t),t=RGe(t,e),wi("tildes",t),t=OGe(t,e),wi("xrange",t),t=UGe(t,e),wi("stars",t),t),Jo=t=>!t||t.toLowerCase()==="x"||t==="*",RGe=(t,e)=>t.trim().split(/\s+/).map(r=>TGe(r,e)).join(" "),TGe=(t,e)=>{let r=e.loose?Sa[Vo.TILDELOOSE]:Sa[Vo.TILDE];return t.replace(r,(o,a,n,u,A)=>{wi("tilde",t,o,a,n,u,A);let p;return Jo(a)?p="":Jo(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:Jo(u)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:A?(wi("replaceTilde pr",A),p=`>=${a}.${n}.${u}-${A} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${u} <${a}.${+n+1}.0-0`,wi("tilde return",p),p})},NGe=(t,e)=>t.trim().split(/\s+/).map(r=>LGe(r,e)).join(" "),LGe=(t,e)=>{wi("caret",t,e);let r=e.loose?Sa[Vo.CARETLOOSE]:Sa[Vo.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(a,n,u,A,p)=>{wi("caret",t,a,n,u,A,p);let h;return Jo(n)?h="":Jo(u)?h=`>=${n}.0.0${o} <${+n+1}.0.0-0`:Jo(A)?n==="0"?h=`>=${n}.${u}.0${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.0${o} <${+n+1}.0.0-0`:p?(wi("replaceCaret pr",p),n==="0"?u==="0"?h=`>=${n}.${u}.${A}-${p} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}-${p} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A}-${p} <${+n+1}.0.0-0`):(wi("no pr"),n==="0"?u==="0"?h=`>=${n}.${u}.${A}${o} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A} <${+n+1}.0.0-0`),wi("caret return",h),h})},OGe=(t,e)=>(wi("replaceXRanges",t,e),t.split(/\s+/).map(r=>MGe(r,e)).join(" ")),MGe=(t,e)=>{t=t.trim();let r=e.loose?Sa[Vo.XRANGELOOSE]:Sa[Vo.XRANGE];return t.replace(r,(o,a,n,u,A,p)=>{wi("xRange",t,o,a,n,u,A,p);let h=Jo(n),C=h||Jo(u),w=C||Jo(A),v=w;return a==="="&&v&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?o="<0.0.0-0":o="*":a&&v?(C&&(u=0),A=0,a===">"?(a=">=",C?(n=+n+1,u=0,A=0):(u=+u+1,A=0)):a==="<="&&(a="<",C?n=+n+1:u=+u+1),a==="<"&&(p="-0"),o=`${a+n}.${u}.${A}${p}`):C?o=`>=${n}.0.0${p} <${+n+1}.0.0-0`:w&&(o=`>=${n}.${u}.0${p} <${n}.${+u+1}.0-0`),wi("xRange return",o),o})},UGe=(t,e)=>(wi("replaceStars",t,e),t.trim().replace(Sa[Vo.STAR],"")),_Ge=(t,e)=>(wi("replaceGTE0",t,e),t.trim().replace(Sa[e.includePrerelease?Vo.GTE0PRE:Vo.GTE0],"")),HGe=t=>(e,r,o,a,n,u,A,p,h,C,w,v,b)=>(Jo(o)?r="":Jo(a)?r=`>=${o}.0.0${t?"-0":""}`:Jo(n)?r=`>=${o}.${a}.0${t?"-0":""}`:u?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Jo(h)?p="":Jo(C)?p=`<${+h+1}.0.0-0`:Jo(w)?p=`<${h}.${+C+1}.0-0`:v?p=`<=${h}.${C}.${w}-${v}`:t?p=`<${h}.${C}.${+w+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),qGe=(t,e,r)=>{for(let o=0;o<t.length;o++)if(!t[o].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let o=0;o<t.length;o++)if(wi(t[o].semver),t[o].semver!==eN.ANY&&t[o].semver.prerelease.length>0){let a=t[o].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var Aw=U((XQt,Sz)=>{var fw=Symbol("SemVer ANY"),by=class{static get ANY(){return fw}constructor(e,r){if(r=jGe(r),e instanceof by){if(e.loose===!!r.loose)return e;e=e.value}rN("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===fw?this.value="":this.value=this.operator+this.semver.version,rN("comp",this)}parse(e){let r=this.options.loose?wz[Bz.COMPARATORLOOSE]:wz[Bz.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new vz(o[2],this.options.loose):this.semver=fw}toString(){return this.value}test(e){if(rN("Comparator.test",e,this.options.loose),this.semver===fw||e===fw)return!0;if(typeof e=="string")try{e=new vz(e,this.options)}catch{return!1}return tN(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof by))throw new TypeError("a Comparator is required");if((!r||typeof r!="object")&&(r={loose:!!r,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new Dz(e.value,r).test(this.value);if(e.operator==="")return e.value===""?!0:new Dz(this.value,r).test(e.semver);let o=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),a=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),n=this.semver.version===e.semver.version,u=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),A=tN(this.semver,"<",e.semver,r)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),p=tN(this.semver,">",e.semver,r)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return o||a||n&&u||A||p}};Sz.exports=by;var jGe=aw(),{re:wz,t:Bz}=id(),tN=JT(),rN=ow(),vz=Do(),Dz=jl()});var pw=U((ZQt,Pz)=>{var GGe=jl(),WGe=(t,e,r)=>{try{e=new GGe(e,r)}catch{return!1}return e.test(t)};Pz.exports=WGe});var bz=U(($Qt,xz)=>{var YGe=jl(),KGe=(t,e)=>new YGe(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));xz.exports=KGe});var kz=U((ekt,Qz)=>{var VGe=Do(),JGe=jl(),zGe=(t,e,r)=>{let o=null,a=null,n=null;try{n=new JGe(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===-1)&&(o=u,a=new VGe(o,r))}),o};Qz.exports=zGe});var Rz=U((tkt,Fz)=>{var XGe=Do(),ZGe=jl(),$Ge=(t,e,r)=>{let o=null,a=null,n=null;try{n=new ZGe(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===1)&&(o=u,a=new XGe(o,r))}),o};Fz.exports=$Ge});var Lz=U((rkt,Nz)=>{var nN=Do(),e9e=jl(),Tz=lw(),t9e=(t,e)=>{t=new e9e(t,e);let r=new nN("0.0.0");if(t.test(r)||(r=new nN("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o<t.set.length;++o){let a=t.set[o],n=null;a.forEach(u=>{let A=new nN(u.semver.version);switch(u.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!n||Tz(A,n))&&(n=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),n&&(!r||Tz(r,n))&&(r=n)}return r&&t.test(r)?r:null};Nz.exports=t9e});var Mz=U((nkt,Oz)=>{var r9e=jl(),n9e=(t,e)=>{try{return new r9e(t,e).range||"*"}catch{return null}};Oz.exports=n9e});var gS=U((ikt,qz)=>{var i9e=Do(),Hz=Aw(),{ANY:s9e}=Hz,o9e=jl(),a9e=pw(),Uz=lw(),_z=lS(),l9e=uS(),c9e=cS(),u9e=(t,e,r,o)=>{t=new i9e(t,o),e=new o9e(e,o);let a,n,u,A,p;switch(r){case">":a=Uz,n=l9e,u=_z,A=">",p=">=";break;case"<":a=_z,n=c9e,u=Uz,A="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(a9e(t,e,o))return!1;for(let h=0;h<e.set.length;++h){let C=e.set[h],w=null,v=null;if(C.forEach(b=>{b.semver===s9e&&(b=new Hz(">=0.0.0")),w=w||b,v=v||b,a(b.semver,w.semver,o)?w=b:u(b.semver,v.semver,o)&&(v=b)}),w.operator===A||w.operator===p||(!v.operator||v.operator===A)&&n(t,v.semver))return!1;if(v.operator===p&&u(t,v.semver))return!1}return!0};qz.exports=u9e});var Gz=U((skt,jz)=>{var A9e=gS(),f9e=(t,e,r)=>A9e(t,e,">",r);jz.exports=f9e});var Yz=U((okt,Wz)=>{var p9e=gS(),h9e=(t,e,r)=>p9e(t,e,"<",r);Wz.exports=h9e});var Jz=U((akt,Vz)=>{var Kz=jl(),g9e=(t,e,r)=>(t=new Kz(t,r),e=new Kz(e,r),t.intersects(e));Vz.exports=g9e});var Xz=U((lkt,zz)=>{var d9e=pw(),m9e=ql();zz.exports=(t,e,r)=>{let o=[],a=null,n=null,u=t.sort((C,w)=>m9e(C,w,r));for(let C of u)d9e(C,e,r)?(n=C,a||(a=C)):(n&&o.push([a,n]),n=null,a=null);a&&o.push([a,null]);let A=[];for(let[C,w]of o)C===w?A.push(C):!w&&C===u[0]?A.push("*"):w?C===u[0]?A.push(`<=${w}`):A.push(`${C} - ${w}`):A.push(`>=${C}`);let p=A.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length<h.length?p:e}});var rX=U((ckt,tX)=>{var Zz=jl(),dS=Aw(),{ANY:iN}=dS,hw=pw(),sN=ql(),y9e=(t,e,r={})=>{if(t===e)return!0;t=new Zz(t,r),e=new Zz(e,r);let o=!1;e:for(let a of t.set){for(let n of e.set){let u=E9e(a,n,r);if(o=o||u!==null,u)continue e}if(o)return!1}return!0},E9e=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===iN){if(e.length===1&&e[0].semver===iN)return!0;r.includePrerelease?t=[new dS(">=0.0.0-0")]:t=[new dS(">=0.0.0")]}if(e.length===1&&e[0].semver===iN){if(r.includePrerelease)return!0;e=[new dS(">=0.0.0")]}let o=new Set,a,n;for(let b of t)b.operator===">"||b.operator===">="?a=$z(a,b,r):b.operator==="<"||b.operator==="<="?n=eX(n,b,r):o.add(b.semver);if(o.size>1)return null;let u;if(a&&n){if(u=sN(a.semver,n.semver,r),u>0)return null;if(u===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let b of o){if(a&&!hw(b,String(a),r)||n&&!hw(b,String(n),r))return null;for(let E of e)if(!hw(b,String(E),r))return!1;return!0}let A,p,h,C,w=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,v=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;w&&w.prerelease.length===1&&n.operator==="<"&&w.prerelease[0]===0&&(w=!1);for(let b of e){if(C=C||b.operator===">"||b.operator===">=",h=h||b.operator==="<"||b.operator==="<=",a){if(v&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===v.major&&b.semver.minor===v.minor&&b.semver.patch===v.patch&&(v=!1),b.operator===">"||b.operator===">="){if(A=$z(a,b,r),A===b&&A!==a)return!1}else if(a.operator===">="&&!hw(a.semver,String(b),r))return!1}if(n){if(w&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===w.major&&b.semver.minor===w.minor&&b.semver.patch===w.patch&&(w=!1),b.operator==="<"||b.operator==="<="){if(p=eX(n,b,r),p===b&&p!==n)return!1}else if(n.operator==="<="&&!hw(n.semver,String(b),r))return!1}if(!b.operator&&(n||a)&&u!==0)return!1}return!(a&&h&&!n&&u!==0||n&&C&&!a&&u!==0||v||w)},$z=(t,e,r)=>{if(!t)return e;let o=sN(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},eX=(t,e,r)=>{if(!t)return e;let o=sN(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};tX.exports=y9e});var si=U((ukt,nX)=>{var oN=id();nX.exports={re:oN.re,src:oN.src,tokens:oN.t,SEMVER_SPEC_VERSION:sw().SEMVER_SPEC_VERSION,SemVer:Do(),compareIdentifiers:nS().compareIdentifiers,rcompareIdentifiers:nS().rcompareIdentifiers,parse:sd(),valid:SJ(),clean:xJ(),inc:kJ(),diff:OJ(),major:UJ(),minor:HJ(),patch:jJ(),prerelease:WJ(),compare:ql(),rcompare:KJ(),compareLoose:JJ(),compareBuild:aS(),sort:$J(),rsort:tz(),gt:lw(),lt:lS(),eq:oS(),neq:VT(),gte:cS(),lte:uS(),cmp:JT(),coerce:cz(),Comparator:Aw(),Range:jl(),satisfies:pw(),toComparators:bz(),maxSatisfying:kz(),minSatisfying:Rz(),minVersion:Lz(),validRange:Mz(),outside:gS(),gtr:Gz(),ltr:Yz(),intersects:Jz(),simplifyRange:Xz(),subset:rX()}});var sX=U((Akt,iX)=>{"use strict";function C9e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ud(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ud)}C9e(ud,Error);ud.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var C="",w;for(w=0;w<h.parts.length;w++)C+=h.parts[w]instanceof Array?n(h.parts[w][0])+"-"+n(h.parts[w][1]):n(h.parts[w]);return"["+(h.inverted?"^":"")+C+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(C){return"\\x0"+o(C)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(C){return"\\x"+o(C)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(C){return"\\x0"+o(C)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(C){return"\\x"+o(C)})}function u(h){return r[h.type](h)}function A(h){var C=new Array(h.length),w,v;for(w=0;w<h.length;w++)C[w]=u(h[w]);if(C.sort(),C.length>0){for(w=1,v=1;w<C.length;w++)C[w-1]!==C[w]&&(C[v]=C[w],v++);C.length=v}switch(C.length){case 1:return C[0];case 2:return C[0]+" or "+C[1];default:return C.slice(0,-1).join(", ")+", or "+C[C.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function I9e(t,e){e=e!==void 0?e:{};var r={},o={Expression:y},a=y,n="|",u=Me("|",!1),A="&",p=Me("&",!1),h="^",C=Me("^",!1),w=function($,ie){return!!ie.reduce((ke,Ne)=>{switch(Ne[1]){case"|":return ke|Ne[3];case"&":return ke&Ne[3];case"^":return ke^Ne[3]}},$)},v="!",b=Me("!",!1),E=function($){return!$},R="(",L=Me("(",!1),_=")",V=Me(")",!1),re=function($){return $},ae=/^[^ \t\n\r()!|&\^]/,he=Te([" "," ",`
127`,"\r","(",")","!","|","&","^"],!0,!1),he=function($){return e.queryPattern.test($)},ve=function($){return e.checkFn($)},ge=qe("whitespace"),le=/^[ \t\n\r]/,Pe=Te([" "," ",` 127`,"\r","(",")","!","|","&","^"],!0,!1),pe=function($){return e.queryPattern.test($)},De=function($){return e.checkFn($)},ge=qe("whitespace"),le=/^[ \t\n\r]/,Pe=Te([" "," ",`
128`,"\r"],!1,!1),g=0,De=0,Ce=[{line:1,column:1}],de=0,ne=[],Z=0,me;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function be(){return t.substring(De,g)}function ut(){return Oe(De,g)}function H($,ie){throw ie=ie!==void 0?ie:Oe(De,g),P([qe($)],t.substring(De,g),ie)}function yt($,ie){throw ie=ie!==void 0?ie:Oe(De,g),I($,ie)}function Me($,ie){return{type:"literal",text:$,ignoreCase:ie}}function Te($,ie,ke){return{type:"class",parts:$,inverted:ie,ignoreCase:ke}}function Qe(){return{type:"any"}}function _e(){return{type:"end"}}function qe($){return{type:"other",description:$}}function At($){var ie=Ce[$],ke;if(ie)return ie;for(ke=$-1;!Ce[ke];)ke--;for(ie=Ce[ke],ie={line:ie.line,column:ie.column};ke<$;)t.charCodeAt(ke)===10?(ie.line++,ie.column=1):ie.column++,ke++;return Ce[$]=ie,ie}function Oe($,ie){var ke=At($),Ne=At(ie);return{start:{offset:$,line:ke.line,column:ke.column},end:{offset:ie,line:Ne.line,column:Ne.column}}}function x($){g<de||(g>de&&(de=g,ne=[]),ne.push($))}function I($,ie){return new cd($,null,null,ie)}function P($,ie,ke){return new cd(cd.buildMessage($,ie),$,ie,ke)}function y(){var $,ie,ke,Ne,st,ht,Ut,Xt;if($=g,ie=F(),ie!==r){for(ke=[],Ne=g,st=X(),st!==r?(t.charCodeAt(g)===124?(ht=n,g++):(ht=r,Z===0&&x(u)),ht===r&&(t.charCodeAt(g)===38?(ht=A,g++):(ht=r,Z===0&&x(p)),ht===r&&(t.charCodeAt(g)===94?(ht=h,g++):(ht=r,Z===0&&x(E)))),ht!==r?(Ut=X(),Ut!==r?(Xt=F(),Xt!==r?(st=[st,ht,Ut,Xt],Ne=st):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r);Ne!==r;)ke.push(Ne),Ne=g,st=X(),st!==r?(t.charCodeAt(g)===124?(ht=n,g++):(ht=r,Z===0&&x(u)),ht===r&&(t.charCodeAt(g)===38?(ht=A,g++):(ht=r,Z===0&&x(p)),ht===r&&(t.charCodeAt(g)===94?(ht=h,g++):(ht=r,Z===0&&x(E)))),ht!==r?(Ut=X(),Ut!==r?(Xt=F(),Xt!==r?(st=[st,ht,Ut,Xt],Ne=st):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r);ke!==r?(De=$,ie=w(ie,ke),$=ie):(g=$,$=r)}else g=$,$=r;return $}function F(){var $,ie,ke,Ne,st,ht;return $=g,t.charCodeAt(g)===33?(ie=v,g++):(ie=r,Z===0&&x(b)),ie!==r?(ke=F(),ke!==r?(De=$,ie=C(ke),$=ie):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(ie=R,g++):(ie=r,Z===0&&x(L)),ie!==r?(ke=X(),ke!==r?(Ne=y(),Ne!==r?(st=X(),st!==r?(t.charCodeAt(g)===41?(ht=_,g++):(ht=r,Z===0&&x(V)),ht!==r?(De=$,ie=re(Ne),$=ie):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=J())),$}function J(){var $,ie,ke,Ne,st;if($=g,ie=X(),ie!==r){if(ke=g,Ne=[],oe.test(t.charAt(g))?(st=t.charAt(g),g++):(st=r,Z===0&&x(pe)),st!==r)for(;st!==r;)Ne.push(st),oe.test(t.charAt(g))?(st=t.charAt(g),g++):(st=r,Z===0&&x(pe));else Ne=r;Ne!==r?ke=t.substring(ke,g):ke=Ne,ke!==r?(De=g,Ne=he(ke),Ne?Ne=void 0:Ne=r,Ne!==r?(De=$,ie=ve(ke),$=ie):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function X(){var $,ie;for(Z++,$=[],le.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&x(Pe));ie!==r;)$.push(ie),le.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&x(Pe));return Z--,$===r&&(ie=r,Z===0&&x(ge)),$}if(me=a(),me!==r&&g===t.length)return me;throw me!==r&&g<t.length&&x(_e()),P(ne,de<t.length?t.charAt(de):null,de<t.length?Oe(de,de+1):Oe(de,de))}rX.exports={SyntaxError:cd,parse:m9e}});var iX=U(gS=>{var{parse:y9e}=nX();gS.makeParser=(t=/[a-z]+/)=>(e,r)=>y9e(e,{queryPattern:t,checkFn:r});gS.parse=gS.makeParser()});var oX=U((lkt,sX)=>{"use strict";sX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var sN=U((ckt,lX)=>{var hw=oX(),aX={};for(let t of Object.keys(hw))aX[hw[t]]=t;var cr={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};lX.exports=cr;for(let t of Object.keys(cr)){if(!("channels"in cr[t]))throw new Error("missing channels property: "+t);if(!("labels"in cr[t]))throw new Error("missing channel labels property: "+t);if(cr[t].labels.length!==cr[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=cr[t];delete cr[t].channels,delete cr[t].labels,Object.defineProperty(cr[t],"channels",{value:e}),Object.defineProperty(cr[t],"labels",{value:r})}cr.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(e,r,o),n=Math.max(e,r,o),u=n-a,A,p;n===a?A=0:e===n?A=(r-o)/u:r===n?A=2+(o-e)/u:o===n&&(A=4+(e-r)/u),A=Math.min(A*60,360),A<0&&(A+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=u/(n+a):p=u/(2-n-a),[A,p*100,h*100]};cr.rgb.hsv=function(t){let e,r,o,a,n,u=t[0]/255,A=t[1]/255,p=t[2]/255,h=Math.max(u,A,p),E=h-Math.min(u,A,p),w=function(v){return(h-v)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=w(u),r=w(A),o=w(p),u===h?a=o-r:A===h?a=1/3+e-o:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};cr.rgb.hwb=function(t){let e=t[0],r=t[1],o=t[2],a=cr.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,o));return o=1-1/255*Math.max(e,Math.max(r,o)),[a,n*100,o*100]};cr.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(1-e,1-r,1-o),n=(1-e-a)/(1-a)||0,u=(1-r-a)/(1-a)||0,A=(1-o-a)/(1-a)||0;return[n*100,u*100,A*100,a*100]};function C9e(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}cr.rgb.keyword=function(t){let e=aX[t];if(e)return e;let r=1/0,o;for(let a of Object.keys(hw)){let n=hw[a],u=C9e(t,n);u<r&&(r=u,o=a)}return o};cr.keyword.rgb=function(t){return hw[t]};cr.rgb.xyz=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let a=e*.4124+r*.3576+o*.1805,n=e*.2126+r*.7152+o*.0722,u=e*.0193+r*.1192+o*.9505;return[a*100,n*100,u*100]};cr.rgb.lab=function(t){let e=cr.rgb.xyz(t),r=e[0],o=e[1],a=e[2];r/=95.047,o/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*o-16,u=500*(r-o),A=200*(o-a);return[n,u,A]};cr.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a,n,u;if(r===0)return u=o*255,[u,u,u];o<.5?a=o*(1+r):a=o+r-o*r;let A=2*o-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?u=A+(a-A)*6*n:2*n<1?u=a:3*n<2?u=A+(a-A)*(2/3-n)*6:u=A,p[h]=u*255;return p};cr.hsl.hsv=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=r,n=Math.max(o,.01);o*=2,r*=o<=1?o:2-o,a*=n<=1?n:2-n;let u=(o+r)/2,A=o===0?2*a/(n+a):2*r/(o+r);return[e,A*100,u*100]};cr.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,o=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),u=255*o*(1-r),A=255*o*(1-r*n),p=255*o*(1-r*(1-n));switch(o*=255,a){case 0:return[o,p,u];case 1:return[A,o,u];case 2:return[u,o,p];case 3:return[u,A,o];case 4:return[p,u,o];case 5:return[o,u,A]}};cr.hsv.hsl=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=Math.max(o,.01),n,u;u=(2-r)*o;let A=(2-r)*a;return n=r*a,n/=A<=1?A:2-A,n=n||0,u/=2,[e,n*100,u*100]};cr.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a=r+o,n;a>1&&(r/=a,o/=a);let u=Math.floor(6*e),A=1-o;n=6*e-u,(u&1)!==0&&(n=1-n);let p=r+n*(A-r),h,E,w;switch(u){default:case 6:case 0:h=A,E=p,w=r;break;case 1:h=p,E=A,w=r;break;case 2:h=r,E=A,w=p;break;case 3:h=r,E=p,w=A;break;case 4:h=p,E=r,w=A;break;case 5:h=A,E=r,w=p;break}return[h*255,E*255,w*255]};cr.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),u=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,o*(1-a)+a);return[n*255,u*255,A*255]};cr.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a,n,u;return a=e*3.2406+r*-1.5372+o*-.4986,n=e*-.9689+r*1.8758+o*.0415,u=e*.0557+r*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),u=Math.min(Math.max(0,u),1),[a*255,n*255,u*255]};cr.xyz.lab=function(t){let e=t[0],r=t[1],o=t[2];e/=95.047,r/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let a=116*r-16,n=500*(e-r),u=200*(r-o);return[a,n,u]};cr.lab.xyz=function(t){let e=t[0],r=t[1],o=t[2],a,n,u;n=(e+16)/116,a=r/500+n,u=n-o/200;let A=n**3,p=a**3,h=u**3;return n=A>.008856?A:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,a*=95.047,n*=100,u*=108.883,[a,n,u]};cr.lab.lch=function(t){let e=t[0],r=t[1],o=t[2],a;a=Math.atan2(o,r)*360/2/Math.PI,a<0&&(a+=360);let u=Math.sqrt(r*r+o*o);return[e,u,a]};cr.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),u=r*Math.sin(a);return[e,n,u]};cr.rgb.ansi16=function(t,e=null){let[r,o,a]=t,n=e===null?cr.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(r/255));return n===2&&(u+=60),u};cr.hsv.ansi16=function(t){return cr.rgb.ansi16(cr.hsv.rgb(t),t[2])};cr.rgb.ansi256=function(t){let e=t[0],r=t[1],o=t[2];return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)};cr.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,o=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[o,a,n]};cr.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,o=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,o,a]};cr.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};cr.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let o=parseInt(r,16),a=o>>16&255,n=o>>8&255,u=o&255;return[a,n,u]};cr.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.max(Math.max(e,r),o),n=Math.min(Math.min(e,r),o),u=a-n,A,p;return u<1?A=n/(1-u):A=0,u<=0?p=0:a===e?p=(r-o)/u%6:a===r?p=2+(o-e)/u:p=4+(e-r)/u,p/=6,p%=1,[p*360,u*100,A*100]};cr.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=r<.5?2*e*r:2*e*(1-r),a=0;return o<1&&(a=(r-.5*o)/(1-o)),[t[0],o*100,a*100]};cr.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=e*r,a=0;return o<1&&(a=(r-o)/(1-o)),[t[0],o*100,a*100]};cr.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100;if(r===0)return[o*255,o*255,o*255];let a=[0,0,0],n=e%1*6,u=n%1,A=1-u,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return p=(1-r)*o,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};cr.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e),a=0;return o>0&&(a=e/o),[t[0],a*100,o*100]};cr.hcg.hsl=function(t){let e=t[1]/100,o=t[2]/100*(1-e)+.5*e,a=0;return o>0&&o<.5?a=e/(2*o):o>=.5&&o<1&&(a=e/(2*(1-o))),[t[0],a*100,o*100]};cr.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e);return[t[0],(o-e)*100,(1-o)*100]};cr.hwb.hcg=function(t){let e=t[1]/100,o=1-t[2]/100,a=o-e,n=0;return a<1&&(n=(o-a)/(1-a)),[t[0],a*100,n*100]};cr.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};cr.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};cr.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};cr.gray.hsl=function(t){return[0,0,t[0]]};cr.gray.hsv=cr.gray.hsl;cr.gray.hwb=function(t){return[0,100,t[0]]};cr.gray.cmyk=function(t){return[0,0,0,t[0]]};cr.gray.lab=function(t){return[t[0],0,0]};cr.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o};cr.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var uX=U((ukt,cX)=>{var dS=sN();function E9e(){let t={},e=Object.keys(dS);for(let r=e.length,o=0;o<r;o++)t[e[o]]={distance:-1,parent:null};return t}function I9e(t){let e=E9e(),r=[t];for(e[t].distance=0;r.length;){let o=r.pop(),a=Object.keys(dS[o]);for(let n=a.length,u=0;u<n;u++){let A=a[u],p=e[A];p.distance===-1&&(p.distance=e[o].distance+1,p.parent=o,r.unshift(A))}}return e}function w9e(t,e){return function(r){return e(t(r))}}function B9e(t,e){let r=[e[t].parent,t],o=dS[e[t].parent][t],a=e[t].parent;for(;e[a].parent;)r.unshift(e[a].parent),o=w9e(dS[e[a].parent][a],o),a=e[a].parent;return o.conversion=r,o}cX.exports=function(t){let e=I9e(t),r={},o=Object.keys(e);for(let a=o.length,n=0;n<a;n++){let u=o[n];e[u].parent!==null&&(r[u]=B9e(u,e))}return r}});var fX=U((Akt,AX)=>{var oN=sN(),v9e=uX(),Qy={},D9e=Object.keys(oN);function S9e(t){let e=function(...r){let o=r[0];return o==null?o:(o.length>1&&(r=o),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function P9e(t){let e=function(...r){let o=r[0];if(o==null)return o;o.length>1&&(r=o);let a=t(r);if(typeof a=="object")for(let n=a.length,u=0;u<n;u++)a[u]=Math.round(a[u]);return a};return"conversion"in t&&(e.conversion=t.conversion),e}D9e.forEach(t=>{Qy[t]={},Object.defineProperty(Qy[t],"channels",{value:oN[t].channels}),Object.defineProperty(Qy[t],"labels",{value:oN[t].labels});let e=v9e(t);Object.keys(e).forEach(o=>{let a=e[o];Qy[t][o]=P9e(a),Qy[t][o].raw=S9e(a)})});AX.exports=Qy});var gw=U((fkt,mX)=>{"use strict";var pX=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,hX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};5;${o}m`},gX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};2;${o[0]};${o[1]};${o[2]}m`},mS=t=>t,dX=(t,e,r)=>[t,e,r],ky=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let o=r();return Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0}),o},enumerable:!0,configurable:!0})},aN,Fy=(t,e,r,o)=>{aN===void 0&&(aN=fX());let a=o?10:0,n={};for(let[u,A]of Object.entries(aN)){let p=u==="ansi16"?"ansi":u;u===e?n[p]=t(r,a):typeof A=="object"&&(n[p]=t(A[e],a))}return n};function x9e(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,o]of Object.entries(e)){for(let[a,n]of Object.entries(o))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},o[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:o,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",ky(e.color,"ansi",()=>Fy(pX,"ansi16",mS,!1)),ky(e.color,"ansi256",()=>Fy(hX,"ansi256",mS,!1)),ky(e.color,"ansi16m",()=>Fy(gX,"rgb",dX,!1)),ky(e.bgColor,"ansi",()=>Fy(pX,"ansi16",mS,!0)),ky(e.bgColor,"ansi256",()=>Fy(hX,"ansi256",mS,!0)),ky(e.bgColor,"ansi16m",()=>Fy(gX,"rgb",dX,!0)),e}Object.defineProperty(mX,"exports",{enumerable:!0,get:x9e})});var CX=U((pkt,yX)=>{"use strict";yX.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),a=e.indexOf("--");return o!==-1&&(a===-1||o<a)}});var uN=U((hkt,IX)=>{"use strict";var b9e=Ie("os"),EX=Ie("tty"),jl=CX(),{env:ls}=process,Yp;jl("no-color")||jl("no-colors")||jl("color=false")||jl("color=never")?Yp=0:(jl("color")||jl("colors")||jl("color=true")||jl("color=always"))&&(Yp=1);"FORCE_COLOR"in ls&&(ls.FORCE_COLOR==="true"?Yp=1:ls.FORCE_COLOR==="false"?Yp=0:Yp=ls.FORCE_COLOR.length===0?1:Math.min(parseInt(ls.FORCE_COLOR,10),3));function lN(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function cN(t,e){if(Yp===0)return 0;if(jl("color=16m")||jl("color=full")||jl("color=truecolor"))return 3;if(jl("color=256"))return 2;if(t&&!e&&Yp===void 0)return 0;let r=Yp||0;if(ls.TERM==="dumb")return r;if(process.platform==="win32"){let o=b9e.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in ls)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(o=>o in ls)||ls.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in ls)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ls.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in ls)return 1;if(ls.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in ls){let o=parseInt((ls.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ls.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ls.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ls.TERM)||"COLORTERM"in ls?1:r}function Q9e(t){let e=cN(t,t&&t.isTTY);return lN(e)}IX.exports={supportsColor:Q9e,stdout:lN(cN(!0,EX.isatty(1))),stderr:lN(cN(!0,EX.isatty(2)))}});var BX=U((gkt,wX)=>{"use strict";var k9e=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},F9e=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r 128`,"\r"],!1,!1),g=0,ve=0,Ee=[{line:1,column:1}],de=0,ne=[],Z=0,me;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function be(){return t.substring(ve,g)}function ut(){return Oe(ve,g)}function H($,ie){throw ie=ie!==void 0?ie:Oe(ve,g),P([qe($)],t.substring(ve,g),ie)}function yt($,ie){throw ie=ie!==void 0?ie:Oe(ve,g),I($,ie)}function Me($,ie){return{type:"literal",text:$,ignoreCase:ie}}function Te($,ie,ke){return{type:"class",parts:$,inverted:ie,ignoreCase:ke}}function Qe(){return{type:"any"}}function _e(){return{type:"end"}}function qe($){return{type:"other",description:$}}function At($){var ie=Ee[$],ke;if(ie)return ie;for(ke=$-1;!Ee[ke];)ke--;for(ie=Ee[ke],ie={line:ie.line,column:ie.column};ke<$;)t.charCodeAt(ke)===10?(ie.line++,ie.column=1):ie.column++,ke++;return Ee[$]=ie,ie}function Oe($,ie){var ke=At($),Ne=At(ie);return{start:{offset:$,line:ke.line,column:ke.column},end:{offset:ie,line:Ne.line,column:Ne.column}}}function x($){g<de||(g>de&&(de=g,ne=[]),ne.push($))}function I($,ie){return new ud($,null,null,ie)}function P($,ie,ke){return new ud(ud.buildMessage($,ie),$,ie,ke)}function y(){var $,ie,ke,Ne,st,ht,Ut,Xt;if($=g,ie=F(),ie!==r){for(ke=[],Ne=g,st=X(),st!==r?(t.charCodeAt(g)===124?(ht=n,g++):(ht=r,Z===0&&x(u)),ht===r&&(t.charCodeAt(g)===38?(ht=A,g++):(ht=r,Z===0&&x(p)),ht===r&&(t.charCodeAt(g)===94?(ht=h,g++):(ht=r,Z===0&&x(C)))),ht!==r?(Ut=X(),Ut!==r?(Xt=F(),Xt!==r?(st=[st,ht,Ut,Xt],Ne=st):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r);Ne!==r;)ke.push(Ne),Ne=g,st=X(),st!==r?(t.charCodeAt(g)===124?(ht=n,g++):(ht=r,Z===0&&x(u)),ht===r&&(t.charCodeAt(g)===38?(ht=A,g++):(ht=r,Z===0&&x(p)),ht===r&&(t.charCodeAt(g)===94?(ht=h,g++):(ht=r,Z===0&&x(C)))),ht!==r?(Ut=X(),Ut!==r?(Xt=F(),Xt!==r?(st=[st,ht,Ut,Xt],Ne=st):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r);ke!==r?(ve=$,ie=w(ie,ke),$=ie):(g=$,$=r)}else g=$,$=r;return $}function F(){var $,ie,ke,Ne,st,ht;return $=g,t.charCodeAt(g)===33?(ie=v,g++):(ie=r,Z===0&&x(b)),ie!==r?(ke=F(),ke!==r?(ve=$,ie=E(ke),$=ie):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(ie=R,g++):(ie=r,Z===0&&x(L)),ie!==r?(ke=X(),ke!==r?(Ne=y(),Ne!==r?(st=X(),st!==r?(t.charCodeAt(g)===41?(ht=_,g++):(ht=r,Z===0&&x(V)),ht!==r?(ve=$,ie=re(Ne),$=ie):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=z())),$}function z(){var $,ie,ke,Ne,st;if($=g,ie=X(),ie!==r){if(ke=g,Ne=[],ae.test(t.charAt(g))?(st=t.charAt(g),g++):(st=r,Z===0&&x(he)),st!==r)for(;st!==r;)Ne.push(st),ae.test(t.charAt(g))?(st=t.charAt(g),g++):(st=r,Z===0&&x(he));else Ne=r;Ne!==r?ke=t.substring(ke,g):ke=Ne,ke!==r?(ve=g,Ne=pe(ke),Ne?Ne=void 0:Ne=r,Ne!==r?(ve=$,ie=De(ke),$=ie):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function X(){var $,ie;for(Z++,$=[],le.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&x(Pe));ie!==r;)$.push(ie),le.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&x(Pe));return Z--,$===r&&(ie=r,Z===0&&x(ge)),$}if(me=a(),me!==r&&g===t.length)return me;throw me!==r&&g<t.length&&x(_e()),P(ne,de<t.length?t.charAt(de):null,de<t.length?Oe(de,de+1):Oe(de,de))}iX.exports={SyntaxError:ud,parse:I9e}});var oX=U(mS=>{var{parse:w9e}=sX();mS.makeParser=(t=/[a-z]+/)=>(e,r)=>w9e(e,{queryPattern:t,checkFn:r});mS.parse=mS.makeParser()});var lX=U((pkt,aX)=>{"use strict";aX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var aN=U((hkt,uX)=>{var gw=lX(),cX={};for(let t of Object.keys(gw))cX[gw[t]]=t;var cr={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};uX.exports=cr;for(let t of Object.keys(cr)){if(!("channels"in cr[t]))throw new Error("missing channels property: "+t);if(!("labels"in cr[t]))throw new Error("missing channel labels property: "+t);if(cr[t].labels.length!==cr[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=cr[t];delete cr[t].channels,delete cr[t].labels,Object.defineProperty(cr[t],"channels",{value:e}),Object.defineProperty(cr[t],"labels",{value:r})}cr.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(e,r,o),n=Math.max(e,r,o),u=n-a,A,p;n===a?A=0:e===n?A=(r-o)/u:r===n?A=2+(o-e)/u:o===n&&(A=4+(e-r)/u),A=Math.min(A*60,360),A<0&&(A+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=u/(n+a):p=u/(2-n-a),[A,p*100,h*100]};cr.rgb.hsv=function(t){let e,r,o,a,n,u=t[0]/255,A=t[1]/255,p=t[2]/255,h=Math.max(u,A,p),C=h-Math.min(u,A,p),w=function(v){return(h-v)/6/C+1/2};return C===0?(a=0,n=0):(n=C/h,e=w(u),r=w(A),o=w(p),u===h?a=o-r:A===h?a=1/3+e-o:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};cr.rgb.hwb=function(t){let e=t[0],r=t[1],o=t[2],a=cr.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,o));return o=1-1/255*Math.max(e,Math.max(r,o)),[a,n*100,o*100]};cr.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(1-e,1-r,1-o),n=(1-e-a)/(1-a)||0,u=(1-r-a)/(1-a)||0,A=(1-o-a)/(1-a)||0;return[n*100,u*100,A*100,a*100]};function B9e(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}cr.rgb.keyword=function(t){let e=cX[t];if(e)return e;let r=1/0,o;for(let a of Object.keys(gw)){let n=gw[a],u=B9e(t,n);u<r&&(r=u,o=a)}return o};cr.keyword.rgb=function(t){return gw[t]};cr.rgb.xyz=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let a=e*.4124+r*.3576+o*.1805,n=e*.2126+r*.7152+o*.0722,u=e*.0193+r*.1192+o*.9505;return[a*100,n*100,u*100]};cr.rgb.lab=function(t){let e=cr.rgb.xyz(t),r=e[0],o=e[1],a=e[2];r/=95.047,o/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*o-16,u=500*(r-o),A=200*(o-a);return[n,u,A]};cr.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a,n,u;if(r===0)return u=o*255,[u,u,u];o<.5?a=o*(1+r):a=o+r-o*r;let A=2*o-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?u=A+(a-A)*6*n:2*n<1?u=a:3*n<2?u=A+(a-A)*(2/3-n)*6:u=A,p[h]=u*255;return p};cr.hsl.hsv=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=r,n=Math.max(o,.01);o*=2,r*=o<=1?o:2-o,a*=n<=1?n:2-n;let u=(o+r)/2,A=o===0?2*a/(n+a):2*r/(o+r);return[e,A*100,u*100]};cr.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,o=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),u=255*o*(1-r),A=255*o*(1-r*n),p=255*o*(1-r*(1-n));switch(o*=255,a){case 0:return[o,p,u];case 1:return[A,o,u];case 2:return[u,o,p];case 3:return[u,A,o];case 4:return[p,u,o];case 5:return[o,u,A]}};cr.hsv.hsl=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=Math.max(o,.01),n,u;u=(2-r)*o;let A=(2-r)*a;return n=r*a,n/=A<=1?A:2-A,n=n||0,u/=2,[e,n*100,u*100]};cr.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a=r+o,n;a>1&&(r/=a,o/=a);let u=Math.floor(6*e),A=1-o;n=6*e-u,(u&1)!==0&&(n=1-n);let p=r+n*(A-r),h,C,w;switch(u){default:case 6:case 0:h=A,C=p,w=r;break;case 1:h=p,C=A,w=r;break;case 2:h=r,C=A,w=p;break;case 3:h=r,C=p,w=A;break;case 4:h=p,C=r,w=A;break;case 5:h=A,C=r,w=p;break}return[h*255,C*255,w*255]};cr.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),u=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,o*(1-a)+a);return[n*255,u*255,A*255]};cr.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a,n,u;return a=e*3.2406+r*-1.5372+o*-.4986,n=e*-.9689+r*1.8758+o*.0415,u=e*.0557+r*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),u=Math.min(Math.max(0,u),1),[a*255,n*255,u*255]};cr.xyz.lab=function(t){let e=t[0],r=t[1],o=t[2];e/=95.047,r/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let a=116*r-16,n=500*(e-r),u=200*(r-o);return[a,n,u]};cr.lab.xyz=function(t){let e=t[0],r=t[1],o=t[2],a,n,u;n=(e+16)/116,a=r/500+n,u=n-o/200;let A=n**3,p=a**3,h=u**3;return n=A>.008856?A:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,a*=95.047,n*=100,u*=108.883,[a,n,u]};cr.lab.lch=function(t){let e=t[0],r=t[1],o=t[2],a;a=Math.atan2(o,r)*360/2/Math.PI,a<0&&(a+=360);let u=Math.sqrt(r*r+o*o);return[e,u,a]};cr.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),u=r*Math.sin(a);return[e,n,u]};cr.rgb.ansi16=function(t,e=null){let[r,o,a]=t,n=e===null?cr.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(r/255));return n===2&&(u+=60),u};cr.hsv.ansi16=function(t){return cr.rgb.ansi16(cr.hsv.rgb(t),t[2])};cr.rgb.ansi256=function(t){let e=t[0],r=t[1],o=t[2];return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)};cr.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,o=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[o,a,n]};cr.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,o=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,o,a]};cr.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};cr.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let o=parseInt(r,16),a=o>>16&255,n=o>>8&255,u=o&255;return[a,n,u]};cr.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.max(Math.max(e,r),o),n=Math.min(Math.min(e,r),o),u=a-n,A,p;return u<1?A=n/(1-u):A=0,u<=0?p=0:a===e?p=(r-o)/u%6:a===r?p=2+(o-e)/u:p=4+(e-r)/u,p/=6,p%=1,[p*360,u*100,A*100]};cr.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=r<.5?2*e*r:2*e*(1-r),a=0;return o<1&&(a=(r-.5*o)/(1-o)),[t[0],o*100,a*100]};cr.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=e*r,a=0;return o<1&&(a=(r-o)/(1-o)),[t[0],o*100,a*100]};cr.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100;if(r===0)return[o*255,o*255,o*255];let a=[0,0,0],n=e%1*6,u=n%1,A=1-u,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return p=(1-r)*o,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};cr.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e),a=0;return o>0&&(a=e/o),[t[0],a*100,o*100]};cr.hcg.hsl=function(t){let e=t[1]/100,o=t[2]/100*(1-e)+.5*e,a=0;return o>0&&o<.5?a=e/(2*o):o>=.5&&o<1&&(a=e/(2*(1-o))),[t[0],a*100,o*100]};cr.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e);return[t[0],(o-e)*100,(1-o)*100]};cr.hwb.hcg=function(t){let e=t[1]/100,o=1-t[2]/100,a=o-e,n=0;return a<1&&(n=(o-a)/(1-a)),[t[0],a*100,n*100]};cr.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};cr.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};cr.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};cr.gray.hsl=function(t){return[0,0,t[0]]};cr.gray.hsv=cr.gray.hsl;cr.gray.hwb=function(t){return[0,100,t[0]]};cr.gray.cmyk=function(t){return[0,0,0,t[0]]};cr.gray.lab=function(t){return[t[0],0,0]};cr.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o};cr.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var fX=U((gkt,AX)=>{var yS=aN();function v9e(){let t={},e=Object.keys(yS);for(let r=e.length,o=0;o<r;o++)t[e[o]]={distance:-1,parent:null};return t}function D9e(t){let e=v9e(),r=[t];for(e[t].distance=0;r.length;){let o=r.pop(),a=Object.keys(yS[o]);for(let n=a.length,u=0;u<n;u++){let A=a[u],p=e[A];p.distance===-1&&(p.distance=e[o].distance+1,p.parent=o,r.unshift(A))}}return e}function S9e(t,e){return function(r){return e(t(r))}}function P9e(t,e){let r=[e[t].parent,t],o=yS[e[t].parent][t],a=e[t].parent;for(;e[a].parent;)r.unshift(e[a].parent),o=S9e(yS[e[a].parent][a],o),a=e[a].parent;return o.conversion=r,o}AX.exports=function(t){let e=D9e(t),r={},o=Object.keys(e);for(let a=o.length,n=0;n<a;n++){let u=o[n];e[u].parent!==null&&(r[u]=P9e(u,e))}return r}});var hX=U((dkt,pX)=>{var lN=aN(),x9e=fX(),Qy={},b9e=Object.keys(lN);function Q9e(t){let e=function(...r){let o=r[0];return o==null?o:(o.length>1&&(r=o),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function k9e(t){let e=function(...r){let o=r[0];if(o==null)return o;o.length>1&&(r=o);let a=t(r);if(typeof a=="object")for(let n=a.length,u=0;u<n;u++)a[u]=Math.round(a[u]);return a};return"conversion"in t&&(e.conversion=t.conversion),e}b9e.forEach(t=>{Qy[t]={},Object.defineProperty(Qy[t],"channels",{value:lN[t].channels}),Object.defineProperty(Qy[t],"labels",{value:lN[t].labels});let e=x9e(t);Object.keys(e).forEach(o=>{let a=e[o];Qy[t][o]=k9e(a),Qy[t][o].raw=Q9e(a)})});pX.exports=Qy});var dw=U((mkt,EX)=>{"use strict";var gX=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,dX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};5;${o}m`},mX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};2;${o[0]};${o[1]};${o[2]}m`},ES=t=>t,yX=(t,e,r)=>[t,e,r],ky=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let o=r();return Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0}),o},enumerable:!0,configurable:!0})},cN,Fy=(t,e,r,o)=>{cN===void 0&&(cN=hX());let a=o?10:0,n={};for(let[u,A]of Object.entries(cN)){let p=u==="ansi16"?"ansi":u;u===e?n[p]=t(r,a):typeof A=="object"&&(n[p]=t(A[e],a))}return n};function F9e(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,o]of Object.entries(e)){for(let[a,n]of Object.entries(o))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},o[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:o,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",ky(e.color,"ansi",()=>Fy(gX,"ansi16",ES,!1)),ky(e.color,"ansi256",()=>Fy(dX,"ansi256",ES,!1)),ky(e.color,"ansi16m",()=>Fy(mX,"rgb",yX,!1)),ky(e.bgColor,"ansi",()=>Fy(gX,"ansi16",ES,!0)),ky(e.bgColor,"ansi256",()=>Fy(dX,"ansi256",ES,!0)),ky(e.bgColor,"ansi16m",()=>Fy(mX,"rgb",yX,!0)),e}Object.defineProperty(EX,"exports",{enumerable:!0,get:F9e})});var IX=U((ykt,CX)=>{"use strict";CX.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),a=e.indexOf("--");return o!==-1&&(a===-1||o<a)}});var fN=U((Ekt,BX)=>{"use strict";var R9e=Ie("os"),wX=Ie("tty"),Gl=IX(),{env:ls}=process,Vp;Gl("no-color")||Gl("no-colors")||Gl("color=false")||Gl("color=never")?Vp=0:(Gl("color")||Gl("colors")||Gl("color=true")||Gl("color=always"))&&(Vp=1);"FORCE_COLOR"in ls&&(ls.FORCE_COLOR==="true"?Vp=1:ls.FORCE_COLOR==="false"?Vp=0:Vp=ls.FORCE_COLOR.length===0?1:Math.min(parseInt(ls.FORCE_COLOR,10),3));function uN(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function AN(t,e){if(Vp===0)return 0;if(Gl("color=16m")||Gl("color=full")||Gl("color=truecolor"))return 3;if(Gl("color=256"))return 2;if(t&&!e&&Vp===void 0)return 0;let r=Vp||0;if(ls.TERM==="dumb")return r;if(process.platform==="win32"){let o=R9e.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in ls)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(o=>o in ls)||ls.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in ls)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ls.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in ls)return 1;if(ls.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in ls){let o=parseInt((ls.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ls.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ls.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ls.TERM)||"COLORTERM"in ls?1:r}function T9e(t){let e=AN(t,t&&t.isTTY);return uN(e)}BX.exports={supportsColor:T9e,stdout:uN(AN(!0,wX.isatty(1))),stderr:uN(AN(!0,wX.isatty(2)))}});var DX=U((Ckt,vX)=>{"use strict";var N9e=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},L9e=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r
129`:` 129`:`
130`)+r,a=o+1,o=t.indexOf(` 130`)+r,a=o+1,o=t.indexOf(`
131`,a)}while(o!==-1);return n+=t.substr(a),n};wX.exports={stringReplaceAll:k9e,stringEncaseCRLFWithFirstIndex:F9e}});var xX=U((dkt,PX)=>{"use strict";var R9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,vX=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,T9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,N9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,L9e=new Map([["n",` 131`,a)}while(o!==-1);return n+=t.substr(a),n};vX.exports={stringReplaceAll:N9e,stringEncaseCRLFWithFirstIndex:L9e}});var QX=U((Ikt,bX)=>{"use strict";var O9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,SX=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,M9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,U9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,_9e=new Map([["n",`
132`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function SX(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):L9e.get(t)||t}function O9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(T9e))r.push(a[2].replace(N9e,(A,p,h)=>p?SX(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function M9e(t){vX.lastIndex=0;let e=[],r;for(;(r=vX.exec(t))!==null;){let o=r[1];if(r[2]){let a=O9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function DX(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(!!Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}PX.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(R9e,(n,u,A,p,h,E)=>{if(u)a.push(SX(u));else if(p){let w=a.join("");a=[],o.push(r.length===0?w:DX(t,r)(w)),r.push({inverse:A,styles:M9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(DX(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var dN=U((mkt,FX)=>{"use strict";var dw=gw(),{stdout:fN,stderr:pN}=uN(),{stringReplaceAll:U9e,stringEncaseCRLFWithFirstIndex:_9e}=BX(),bX=["ansi","ansi","ansi256","ansi16m"],Ry=Object.create(null),H9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=fN?fN.level:0;t.level=e.level===void 0?r:e.level},hN=class{constructor(e){return QX(e)}},QX=t=>{let e={};return H9e(e,t),e.template=(...r)=>G9e(e.template,...r),Object.setPrototypeOf(e,yS.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=hN,e.template};function yS(t){return QX(t)}for(let[t,e]of Object.entries(dw))Ry[t]={get(){let r=CS(this,gN(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};Ry.visible={get(){let t=CS(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var kX=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of kX)Ry[t]={get(){let{level:e}=this;return function(...r){let o=gN(dw.color[bX[e]][t](...r),dw.color.close,this._styler);return CS(this,o,this._isEmpty)}}};for(let t of kX){let e="bg"+t[0].toUpperCase()+t.slice(1);Ry[e]={get(){let{level:r}=this;return function(...o){let a=gN(dw.bgColor[bX[r]][t](...o),dw.bgColor.close,this._styler);return CS(this,a,this._isEmpty)}}}}var q9e=Object.defineProperties(()=>{},{...Ry,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),gN=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},CS=(t,e,r)=>{let o=(...a)=>j9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=q9e,o._generator=t,o._styler=e,o._isEmpty=r,o},j9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=U9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(` 132`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function xX(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):_9e.get(t)||t}function H9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(M9e))r.push(a[2].replace(U9e,(A,p,h)=>p?xX(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function q9e(t){SX.lastIndex=0;let e=[],r;for(;(r=SX.exec(t))!==null;){let o=r[1];if(r[2]){let a=H9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function PX(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(!!Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}bX.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(O9e,(n,u,A,p,h,C)=>{if(u)a.push(xX(u));else if(p){let w=a.join("");a=[],o.push(r.length===0?w:PX(t,r)(w)),r.push({inverse:A,styles:q9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(PX(t,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var yN=U((wkt,TX)=>{"use strict";var mw=dw(),{stdout:hN,stderr:gN}=fN(),{stringReplaceAll:j9e,stringEncaseCRLFWithFirstIndex:G9e}=DX(),kX=["ansi","ansi","ansi256","ansi16m"],Ry=Object.create(null),W9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=hN?hN.level:0;t.level=e.level===void 0?r:e.level},dN=class{constructor(e){return FX(e)}},FX=t=>{let e={};return W9e(e,t),e.template=(...r)=>V9e(e.template,...r),Object.setPrototypeOf(e,CS.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=dN,e.template};function CS(t){return FX(t)}for(let[t,e]of Object.entries(mw))Ry[t]={get(){let r=IS(this,mN(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};Ry.visible={get(){let t=IS(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var RX=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of RX)Ry[t]={get(){let{level:e}=this;return function(...r){let o=mN(mw.color[kX[e]][t](...r),mw.color.close,this._styler);return IS(this,o,this._isEmpty)}}};for(let t of RX){let e="bg"+t[0].toUpperCase()+t.slice(1);Ry[e]={get(){let{level:r}=this;return function(...o){let a=mN(mw.bgColor[kX[r]][t](...o),mw.bgColor.close,this._styler);return IS(this,a,this._isEmpty)}}}}var Y9e=Object.defineProperties(()=>{},{...Ry,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),mN=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},IS=(t,e,r)=>{let o=(...a)=>K9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=Y9e,o._generator=t,o._styler=e,o._isEmpty=r,o},K9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=j9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(`
133`);return n!==-1&&(e=_9e(e,a,o,n)),o+e+a},AN,G9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(o[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return AN===void 0&&(AN=xX()),AN(t,a.join(""))};Object.defineProperties(yS.prototype,Ry);var mw=yS();mw.supportsColor=fN;mw.stderr=yS({level:pN?pN.level:0});mw.stderr.supportsColor=pN;mw.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};FX.exports=mw});var ES=U(Gl=>{"use strict";Gl.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Gl.find=(t,e)=>t.nodes.find(r=>r.type===e);Gl.exceedsLimit=(t,e,r=1,o)=>o===!1||!Gl.isInteger(t)||!Gl.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Gl.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];!o||(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Gl.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1;Gl.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0===0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Gl.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Gl.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Gl.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a<o.length;a++){let n=o[a];Array.isArray(n)?r(n,e):n!==void 0&&e.push(n)}return e};return r(t),e}});var IS=U((Ckt,TX)=>{"use strict";var RX=ES();TX.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&RX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&RX.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var LX=U((Ekt,NX)=>{"use strict";NX.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var WX=U((Ikt,GX)=>{"use strict";var OX=LX(),ud=(t,e,r)=>{if(OX(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(OX(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(ud.cache.hasOwnProperty(p))return ud.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let R=t+"|"+e;return o.capture?`(${R})`:o.wrap===!1?R:`(?:${R})`}let w=jX(t)||jX(e),v={min:t,max:e,a:h,b:E},b=[],C=[];if(w&&(v.isPadded=w,v.maxLen=String(v.max).length),h<0){let R=E<0?Math.abs(E):1;C=MX(R,Math.abs(h),v,o),h=v.a=0}return E>=0&&(b=MX(h,E,v,o)),v.negatives=C,v.positives=b,v.result=W9e(C,b,o),o.capture===!0?v.result=`(${v.result})`:o.wrap!==!1&&b.length+C.length>1&&(v.result=`(?:${v.result})`),ud.cache[p]=v,v.result};function W9e(t,e,r){let o=mN(t,e,"-",!1,r)||[],a=mN(e,t,"",!1,r)||[],n=mN(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function Y9e(t,e){let r=1,o=1,a=_X(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=_X(t,r);for(a=HX(e+1,o)-1;t<a&&a<=e;)n.add(a),o+=1,a=HX(e+1,o)-1;return n=[...n],n.sort(J9e),n}function K9e(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let o=V9e(t,e),a=o.length,n="",u=0;for(let A=0;A<a;A++){let[p,h]=o[A];p===h?n+=p:p!=="0"||h!=="9"?n+=z9e(p,h,r):u++}return u&&(n+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:n,count:[u],digits:a}}function MX(t,e,r,o){let a=Y9e(t,e),n=[],u=t,A;for(let p=0;p<a.length;p++){let h=a[p],E=K9e(String(u),String(h),o),w="";if(!r.isPadded&&A&&A.pattern===E.pattern){A.count.length>1&&A.count.pop(),A.count.push(E.count[0]),A.string=A.pattern+qX(A.count),u=h+1;continue}r.isPadded&&(w=X9e(h,r,o)),E.string=w+E.pattern+qX(E.count),n.push(E),u=h+1,A=E}return n}function mN(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!UX(e,"string",A)&&n.push(r+A),o&&UX(e,"string",A)&&n.push(r+A)}return n}function V9e(t,e){let r=[];for(let o=0;o<t.length;o++)r.push([t[o],e[o]]);return r}function J9e(t,e){return t>e?1:e>t?-1:0}function UX(t,e,r){return t.some(o=>o[e]===r)}function _X(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function HX(t,e){return t-t%Math.pow(10,e)}function qX(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function z9e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function jX(t){return/^-?(0+)\d/.test(t)}function X9e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}ud.cache={};ud.clearCache=()=>ud.cache={};GX.exports=ud});var EN=U((wkt,$X)=>{"use strict";var Z9e=Ie("util"),VX=WX(),YX=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),$9e=t=>e=>t===!0?Number(e):String(e),yN=t=>typeof t=="number"||typeof t=="string"&&t!=="",yw=t=>Number.isInteger(+t),CN=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},e5e=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,t5e=(t,e,r)=>{if(e>0){let o=t[0]==="-"?"-":"";o&&(t=t.slice(1)),t=o+t.padStart(o?e-1:e,"0")}return r===!1?String(t):t},KX=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return r?"-"+t:t},r5e=(t,e)=>{t.negatives.sort((u,A)=>u<A?-1:u>A?1:0),t.positives.sort((u,A)=>u<A?-1:u>A?1:0);let r=e.capture?"":"?:",o="",a="",n;return t.positives.length&&(o=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),o&&a?n=`${o}|${a}`:n=o||a,e.wrap?`(${r}${n})`:n},JX=(t,e,r,o)=>{if(r)return VX(t,e,{wrap:!1,...o});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},zX=(t,e,r)=>{if(Array.isArray(t)){let o=r.wrap===!0,a=r.capture?"":"?:";return o?`(${a}${t.join("|")})`:t.join("|")}return VX(t,e,r)},XX=(...t)=>new RangeError("Invalid range arguments: "+Z9e.inspect(...t)),ZX=(t,e,r)=>{if(r.strictRanges===!0)throw XX([t,e]);return[]},n5e=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},i5e=(t,e,r=1,o={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(o.strictRanges===!0)throw XX([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let u=a>n,A=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=CN(A)||CN(p)||CN(h),w=E?Math.max(A.length,p.length,h.length):0,v=E===!1&&e5e(t,e,o)===!1,b=o.transform||$9e(v);if(o.toRegex&&r===1)return JX(KX(t,w),KX(e,w),!0,o);let C={negatives:[],positives:[]},R=V=>C[V<0?"negatives":"positives"].push(Math.abs(V)),L=[],_=0;for(;u?a>=n:a<=n;)o.toRegex===!0&&r>1?R(a):L.push(t5e(b(a,_),w,v)),a=u?a-r:a+r,_++;return o.toRegex===!0?r>1?r5e(C,o):zX(L,null,{wrap:!1,...o}):L},s5e=(t,e,r=1,o={})=>{if(!yw(t)&&t.length>1||!yw(e)&&e.length>1)return ZX(t,e,o);let a=o.transform||(v=>String.fromCharCode(v)),n=`${t}`.charCodeAt(0),u=`${e}`.charCodeAt(0),A=n>u,p=Math.min(n,u),h=Math.max(n,u);if(o.toRegex&&r===1)return JX(p,h,!1,o);let E=[],w=0;for(;A?n>=u:n<=u;)E.push(a(n,w)),n=A?n-r:n+r,w++;return o.toRegex===!0?zX(E,null,{wrap:!1,options:o}):E},wS=(t,e,r,o={})=>{if(e==null&&yN(t))return[t];if(!yN(t)||!yN(e))return ZX(t,e,o);if(typeof r=="function")return wS(t,e,1,{transform:r});if(YX(r))return wS(t,e,0,r);let a={...o};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,yw(r)?yw(t)&&yw(e)?i5e(t,e,r,a):s5e(t,e,Math.max(Math.abs(r),1),a):r!=null&&!YX(r)?n5e(r,a):wS(t,e,1,r)};$X.exports=wS});var rZ=U((Bkt,tZ)=>{"use strict";var o5e=EN(),eZ=ES(),a5e=(t,e={})=>{let r=(o,a={})=>{let n=eZ.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A=n===!0||u===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return p+o.value;if(o.type==="open")return A?p+o.value:"(";if(o.type==="close")return A?p+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":A?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let E=eZ.reduce(o.nodes),w=o5e(...E,{...e,wrap:!1,toRegex:!0});if(w.length!==0)return E.length>1&&w.length>1?`(${w})`:w}if(o.nodes)for(let E of o.nodes)h+=r(E,o);return h};return r(t)};tZ.exports=a5e});var sZ=U((vkt,iZ)=>{"use strict";var l5e=EN(),nZ=IS(),Ty=ES(),Ad=(t="",e="",r=!1)=>{let o=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?Ty.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)o.push(Ad(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),o.push(Array.isArray(n)?Ad(a,n,r):a+n);return Ty.flatten(o)},c5e=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,o=(a,n={})=>{a.queue=[];let u=n,A=n.queue;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,A=u.queue;if(a.invalid||a.dollar){A.push(Ad(A.pop(),nZ(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(Ad(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let w=Ty.reduce(a.nodes);if(Ty.exceedsLimit(...w,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let v=l5e(...w,e);v.length===0&&(v=nZ(a,e)),A.push(Ad(A.pop(),v)),a.nodes=[];return}let p=Ty.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let w=0;w<a.nodes.length;w++){let v=a.nodes[w];if(v.type==="comma"&&a.type==="brace"){w===1&&h.push(""),h.push("");continue}if(v.type==="close"){A.push(Ad(A.pop(),h,p));continue}if(v.value&&v.type!=="open"){h.push(Ad(h.pop(),v.value));continue}v.nodes&&o(v,a)}return h};return Ty.flatten(o(t))};iZ.exports=c5e});var aZ=U((Dkt,oZ)=>{"use strict";oZ.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` 133`);return n!==-1&&(e=G9e(e,a,o,n)),o+e+a},pN,V9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(o[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return pN===void 0&&(pN=QX()),pN(t,a.join(""))};Object.defineProperties(CS.prototype,Ry);var yw=CS();yw.supportsColor=hN;yw.stderr=CS({level:gN?gN.level:0});yw.stderr.supportsColor=gN;yw.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};TX.exports=yw});var wS=U(Wl=>{"use strict";Wl.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Wl.find=(t,e)=>t.nodes.find(r=>r.type===e);Wl.exceedsLimit=(t,e,r=1,o)=>o===!1||!Wl.isInteger(t)||!Wl.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Wl.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];!o||(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Wl.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1;Wl.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0===0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Wl.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Wl.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Wl.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a<o.length;a++){let n=o[a];Array.isArray(n)?r(n,e):n!==void 0&&e.push(n)}return e};return r(t),e}});var BS=U((vkt,LX)=>{"use strict";var NX=wS();LX.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&NX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&NX.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var MX=U((Dkt,OX)=>{"use strict";OX.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var KX=U((Skt,YX)=>{"use strict";var UX=MX(),Ad=(t,e,r)=>{if(UX(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(UX(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(Ad.cache.hasOwnProperty(p))return Ad.cache[p].result;let h=Math.min(t,e),C=Math.max(t,e);if(Math.abs(h-C)===1){let R=t+"|"+e;return o.capture?`(${R})`:o.wrap===!1?R:`(?:${R})`}let w=WX(t)||WX(e),v={min:t,max:e,a:h,b:C},b=[],E=[];if(w&&(v.isPadded=w,v.maxLen=String(v.max).length),h<0){let R=C<0?Math.abs(C):1;E=_X(R,Math.abs(h),v,o),h=v.a=0}return C>=0&&(b=_X(h,C,v,o)),v.negatives=E,v.positives=b,v.result=J9e(E,b,o),o.capture===!0?v.result=`(${v.result})`:o.wrap!==!1&&b.length+E.length>1&&(v.result=`(?:${v.result})`),Ad.cache[p]=v,v.result};function J9e(t,e,r){let o=EN(t,e,"-",!1,r)||[],a=EN(e,t,"",!1,r)||[],n=EN(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function z9e(t,e){let r=1,o=1,a=qX(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=qX(t,r);for(a=jX(e+1,o)-1;t<a&&a<=e;)n.add(a),o+=1,a=jX(e+1,o)-1;return n=[...n],n.sort($9e),n}function X9e(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let o=Z9e(t,e),a=o.length,n="",u=0;for(let A=0;A<a;A++){let[p,h]=o[A];p===h?n+=p:p!=="0"||h!=="9"?n+=e5e(p,h,r):u++}return u&&(n+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:n,count:[u],digits:a}}function _X(t,e,r,o){let a=z9e(t,e),n=[],u=t,A;for(let p=0;p<a.length;p++){let h=a[p],C=X9e(String(u),String(h),o),w="";if(!r.isPadded&&A&&A.pattern===C.pattern){A.count.length>1&&A.count.pop(),A.count.push(C.count[0]),A.string=A.pattern+GX(A.count),u=h+1;continue}r.isPadded&&(w=t5e(h,r,o)),C.string=w+C.pattern+GX(C.count),n.push(C),u=h+1,A=C}return n}function EN(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!HX(e,"string",A)&&n.push(r+A),o&&HX(e,"string",A)&&n.push(r+A)}return n}function Z9e(t,e){let r=[];for(let o=0;o<t.length;o++)r.push([t[o],e[o]]);return r}function $9e(t,e){return t>e?1:e>t?-1:0}function HX(t,e,r){return t.some(o=>o[e]===r)}function qX(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function jX(t,e){return t-t%Math.pow(10,e)}function GX(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function e5e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function WX(t){return/^-?(0+)\d/.test(t)}function t5e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}Ad.cache={};Ad.clearCache=()=>Ad.cache={};YX.exports=Ad});var wN=U((Pkt,tZ)=>{"use strict";var r5e=Ie("util"),zX=KX(),VX=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),n5e=t=>e=>t===!0?Number(e):String(e),CN=t=>typeof t=="number"||typeof t=="string"&&t!=="",Ew=t=>Number.isInteger(+t),IN=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},i5e=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,s5e=(t,e,r)=>{if(e>0){let o=t[0]==="-"?"-":"";o&&(t=t.slice(1)),t=o+t.padStart(o?e-1:e,"0")}return r===!1?String(t):t},JX=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return r?"-"+t:t},o5e=(t,e)=>{t.negatives.sort((u,A)=>u<A?-1:u>A?1:0),t.positives.sort((u,A)=>u<A?-1:u>A?1:0);let r=e.capture?"":"?:",o="",a="",n;return t.positives.length&&(o=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),o&&a?n=`${o}|${a}`:n=o||a,e.wrap?`(${r}${n})`:n},XX=(t,e,r,o)=>{if(r)return zX(t,e,{wrap:!1,...o});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},ZX=(t,e,r)=>{if(Array.isArray(t)){let o=r.wrap===!0,a=r.capture?"":"?:";return o?`(${a}${t.join("|")})`:t.join("|")}return zX(t,e,r)},$X=(...t)=>new RangeError("Invalid range arguments: "+r5e.inspect(...t)),eZ=(t,e,r)=>{if(r.strictRanges===!0)throw $X([t,e]);return[]},a5e=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},l5e=(t,e,r=1,o={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(o.strictRanges===!0)throw $X([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let u=a>n,A=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let C=IN(A)||IN(p)||IN(h),w=C?Math.max(A.length,p.length,h.length):0,v=C===!1&&i5e(t,e,o)===!1,b=o.transform||n5e(v);if(o.toRegex&&r===1)return XX(JX(t,w),JX(e,w),!0,o);let E={negatives:[],positives:[]},R=V=>E[V<0?"negatives":"positives"].push(Math.abs(V)),L=[],_=0;for(;u?a>=n:a<=n;)o.toRegex===!0&&r>1?R(a):L.push(s5e(b(a,_),w,v)),a=u?a-r:a+r,_++;return o.toRegex===!0?r>1?o5e(E,o):ZX(L,null,{wrap:!1,...o}):L},c5e=(t,e,r=1,o={})=>{if(!Ew(t)&&t.length>1||!Ew(e)&&e.length>1)return eZ(t,e,o);let a=o.transform||(v=>String.fromCharCode(v)),n=`${t}`.charCodeAt(0),u=`${e}`.charCodeAt(0),A=n>u,p=Math.min(n,u),h=Math.max(n,u);if(o.toRegex&&r===1)return XX(p,h,!1,o);let C=[],w=0;for(;A?n>=u:n<=u;)C.push(a(n,w)),n=A?n-r:n+r,w++;return o.toRegex===!0?ZX(C,null,{wrap:!1,options:o}):C},vS=(t,e,r,o={})=>{if(e==null&&CN(t))return[t];if(!CN(t)||!CN(e))return eZ(t,e,o);if(typeof r=="function")return vS(t,e,1,{transform:r});if(VX(r))return vS(t,e,0,r);let a={...o};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,Ew(r)?Ew(t)&&Ew(e)?l5e(t,e,r,a):c5e(t,e,Math.max(Math.abs(r),1),a):r!=null&&!VX(r)?a5e(r,a):vS(t,e,1,r)};tZ.exports=vS});var iZ=U((xkt,nZ)=>{"use strict";var u5e=wN(),rZ=wS(),A5e=(t,e={})=>{let r=(o,a={})=>{let n=rZ.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A=n===!0||u===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return p+o.value;if(o.type==="open")return A?p+o.value:"(";if(o.type==="close")return A?p+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":A?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let C=rZ.reduce(o.nodes),w=u5e(...C,{...e,wrap:!1,toRegex:!0});if(w.length!==0)return C.length>1&&w.length>1?`(${w})`:w}if(o.nodes)for(let C of o.nodes)h+=r(C,o);return h};return r(t)};nZ.exports=A5e});var aZ=U((bkt,oZ)=>{"use strict";var f5e=wN(),sZ=BS(),Ty=wS(),fd=(t="",e="",r=!1)=>{let o=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?Ty.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)o.push(fd(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),o.push(Array.isArray(n)?fd(a,n,r):a+n);return Ty.flatten(o)},p5e=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,o=(a,n={})=>{a.queue=[];let u=n,A=n.queue;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,A=u.queue;if(a.invalid||a.dollar){A.push(fd(A.pop(),sZ(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(fd(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let w=Ty.reduce(a.nodes);if(Ty.exceedsLimit(...w,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let v=f5e(...w,e);v.length===0&&(v=sZ(a,e)),A.push(fd(A.pop(),v)),a.nodes=[];return}let p=Ty.encloseBrace(a),h=a.queue,C=a;for(;C.type!=="brace"&&C.type!=="root"&&C.parent;)C=C.parent,h=C.queue;for(let w=0;w<a.nodes.length;w++){let v=a.nodes[w];if(v.type==="comma"&&a.type==="brace"){w===1&&h.push(""),h.push("");continue}if(v.type==="close"){A.push(fd(A.pop(),h,p));continue}if(v.value&&v.type!=="open"){h.push(fd(h.pop(),v.value));continue}v.nodes&&o(v,a)}return h};return Ty.flatten(o(t))};oZ.exports=p5e});var cZ=U((Qkt,lZ)=>{"use strict";lZ.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
134`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var fZ=U((Skt,AZ)=>{"use strict";var u5e=IS(),{MAX_LENGTH:lZ,CHAR_BACKSLASH:IN,CHAR_BACKTICK:A5e,CHAR_COMMA:f5e,CHAR_DOT:p5e,CHAR_LEFT_PARENTHESES:h5e,CHAR_RIGHT_PARENTHESES:g5e,CHAR_LEFT_CURLY_BRACE:d5e,CHAR_RIGHT_CURLY_BRACE:m5e,CHAR_LEFT_SQUARE_BRACKET:cZ,CHAR_RIGHT_SQUARE_BRACKET:uZ,CHAR_DOUBLE_QUOTE:y5e,CHAR_SINGLE_QUOTE:C5e,CHAR_NO_BREAK_SPACE:E5e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:I5e}=aZ(),w5e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(lZ,r.maxLength):lZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,E=0,w=0,v,b={},C=()=>t[E++],R=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(R({type:"bos"});E<h;)if(u=n[n.length-1],v=C(),!(v===I5e||v===E5e)){if(v===IN){R({type:"text",value:(e.keepEscaping?v:"")+C()});continue}if(v===uZ){R({type:"text",value:"\\"+v});continue}if(v===cZ){p++;let L=!0,_;for(;E<h&&(_=C());){if(v+=_,_===cZ){p++;continue}if(_===IN){v+=C();continue}if(_===uZ&&(p--,p===0))break}R({type:"text",value:v});continue}if(v===h5e){u=R({type:"paren",nodes:[]}),n.push(u),R({type:"text",value:v});continue}if(v===g5e){if(u.type!=="paren"){R({type:"text",value:v});continue}u=n.pop(),R({type:"text",value:v}),u=n[n.length-1];continue}if(v===y5e||v===C5e||v===A5e){let L=v,_;for(e.keepQuotes!==!0&&(v="");E<h&&(_=C());){if(_===IN){v+=_+C();continue}if(_===L){e.keepQuotes===!0&&(v+=_);break}v+=_}R({type:"text",value:v});continue}if(v===d5e){w++;let _={type:"brace",open:!0,close:!1,dollar:A.value&&A.value.slice(-1)==="$"||u.dollar===!0,depth:w,commas:0,ranges:0,nodes:[]};u=R(_),n.push(u),R({type:"open",value:v});continue}if(v===m5e){if(u.type!=="brace"){R({type:"text",value:v});continue}let L="close";u=n.pop(),u.close=!0,R({type:L,value:v}),w--,u=n[n.length-1];continue}if(v===f5e&&w>0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:u5e(u)}]}R({type:"comma",value:v}),u.commas++;continue}if(v===p5e&&w>0&&u.commas===0){let L=u.nodes;if(w===0||L.length===0){R({type:"text",value:v});continue}if(A.type==="dot"){if(u.range=[],A.value+=v,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let _=L[L.length-1];_.value+=A.value+v,A=_,u.ranges--;continue}R({type:"dot",value:v});continue}R({type:"text",value:v})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(V=>{V.nodes||(V.type==="open"&&(V.isOpen=!0),V.type==="close"&&(V.isClose=!0),V.nodes||(V.type="text"),V.invalid=!0)});let L=n[n.length-1],_=L.nodes.indexOf(u);L.nodes.splice(_,1,...u.nodes)}while(n.length>0);return R({type:"eos"}),a};AZ.exports=w5e});var gZ=U((Pkt,hZ)=>{"use strict";var pZ=IS(),B5e=rZ(),v5e=sZ(),D5e=fZ(),il=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=il.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(il.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};il.parse=(t,e={})=>D5e(t,e);il.stringify=(t,e={})=>pZ(typeof t=="string"?il.parse(t,e):t,e);il.compile=(t,e={})=>(typeof t=="string"&&(t=il.parse(t,e)),B5e(t,e));il.expand=(t,e={})=>{typeof t=="string"&&(t=il.parse(t,e));let r=v5e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};il.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?il.compile(t,e):il.expand(t,e);hZ.exports=il});var Cw=U((xkt,EZ)=>{"use strict";var S5e=Ie("path"),Ju="\\\\/",dZ=`[^${Ju}]`,vf="\\.",P5e="\\+",x5e="\\?",BS="\\/",b5e="(?=.)",mZ="[^/]",wN=`(?:${BS}|$)`,yZ=`(?:^|${BS})`,BN=`${vf}{1,2}${wN}`,Q5e=`(?!${vf})`,k5e=`(?!${yZ}${BN})`,F5e=`(?!${vf}{0,1}${wN})`,R5e=`(?!${BN})`,T5e=`[^.${BS}]`,N5e=`${mZ}*?`,CZ={DOT_LITERAL:vf,PLUS_LITERAL:P5e,QMARK_LITERAL:x5e,SLASH_LITERAL:BS,ONE_CHAR:b5e,QMARK:mZ,END_ANCHOR:wN,DOTS_SLASH:BN,NO_DOT:Q5e,NO_DOTS:k5e,NO_DOT_SLASH:F5e,NO_DOTS_SLASH:R5e,QMARK_NO_DOT:T5e,STAR:N5e,START_ANCHOR:yZ},L5e={...CZ,SLASH_LITERAL:`[${Ju}]`,QMARK:dZ,STAR:`${dZ}*?`,DOTS_SLASH:`${vf}{1,2}(?:[${Ju}]|$)`,NO_DOT:`(?!${vf})`,NO_DOTS:`(?!(?:^|[${Ju}])${vf}{1,2}(?:[${Ju}]|$))`,NO_DOT_SLASH:`(?!${vf}{0,1}(?:[${Ju}]|$))`,NO_DOTS_SLASH:`(?!${vf}{1,2}(?:[${Ju}]|$))`,QMARK_NO_DOT:`[^.${Ju}]`,START_ANCHOR:`(?:^|[${Ju}])`,END_ANCHOR:`(?:[${Ju}]|$)`},O5e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};EZ.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:O5e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:S5e.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?L5e:CZ}}});var Ew=U(Sa=>{"use strict";var M5e=Ie("path"),U5e=process.platform==="win32",{REGEX_BACKSLASH:_5e,REGEX_REMOVE_BACKSLASH:H5e,REGEX_SPECIAL_CHARS:q5e,REGEX_SPECIAL_CHARS_GLOBAL:j5e}=Cw();Sa.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Sa.hasRegexChars=t=>q5e.test(t);Sa.isRegexChar=t=>t.length===1&&Sa.hasRegexChars(t);Sa.escapeRegex=t=>t.replace(j5e,"\\$1");Sa.toPosixSlashes=t=>t.replace(_5e,"/");Sa.removeBackslashes=t=>t.replace(H5e,e=>e==="\\"?"":e);Sa.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Sa.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:U5e===!0||M5e.sep==="\\";Sa.escapeLast=(t,e,r)=>{let o=t.lastIndexOf(e,r);return o===-1?t:t[o-1]==="\\"?Sa.escapeLast(t,e,o-1):`${t.slice(0,o)}\\${t.slice(o)}`};Sa.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Sa.wrapOutput=(t,e={},r={})=>{let o=r.contains?"":"^",a=r.contains?"":"$",n=`${o}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var xZ=U((Qkt,PZ)=>{"use strict";var IZ=Ew(),{CHAR_ASTERISK:vN,CHAR_AT:G5e,CHAR_BACKWARD_SLASH:Iw,CHAR_COMMA:W5e,CHAR_DOT:DN,CHAR_EXCLAMATION_MARK:SN,CHAR_FORWARD_SLASH:SZ,CHAR_LEFT_CURLY_BRACE:PN,CHAR_LEFT_PARENTHESES:xN,CHAR_LEFT_SQUARE_BRACKET:Y5e,CHAR_PLUS:K5e,CHAR_QUESTION_MARK:wZ,CHAR_RIGHT_CURLY_BRACE:V5e,CHAR_RIGHT_PARENTHESES:BZ,CHAR_RIGHT_SQUARE_BRACKET:J5e}=Cw(),vZ=t=>t===SZ||t===Iw,DZ=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},z5e=(t,e)=>{let r=e||{},o=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],u=[],A=[],p=t,h=-1,E=0,w=0,v=!1,b=!1,C=!1,R=!1,L=!1,_=!1,V=!1,re=!1,oe=!1,pe=!1,he=0,ve,ge,le={value:"",depth:0,isGlob:!1},Pe=()=>h>=o,g=()=>p.charCodeAt(h+1),De=()=>(ve=ge,p.charCodeAt(++h));for(;h<o;){ge=De();let me;if(ge===Iw){V=le.backslashes=!0,ge=De(),ge===PN&&(_=!0);continue}if(_===!0||ge===PN){for(he++;Pe()!==!0&&(ge=De());){if(ge===Iw){V=le.backslashes=!0,De();continue}if(ge===PN){he++;continue}if(_!==!0&&ge===DN&&(ge=De())===DN){if(v=le.isBrace=!0,C=le.isGlob=!0,pe=!0,a===!0)continue;break}if(_!==!0&&ge===W5e){if(v=le.isBrace=!0,C=le.isGlob=!0,pe=!0,a===!0)continue;break}if(ge===V5e&&(he--,he===0)){_=!1,v=le.isBrace=!0,pe=!0;break}}if(a===!0)continue;break}if(ge===SZ){if(n.push(h),u.push(le),le={value:"",depth:0,isGlob:!1},pe===!0)continue;if(ve===DN&&h===E+1){E+=2;continue}w=h+1;continue}if(r.noext!==!0&&(ge===K5e||ge===G5e||ge===vN||ge===wZ||ge===SN)===!0&&g()===xN){if(C=le.isGlob=!0,R=le.isExtglob=!0,pe=!0,ge===SN&&h===E&&(oe=!0),a===!0){for(;Pe()!==!0&&(ge=De());){if(ge===Iw){V=le.backslashes=!0,ge=De();continue}if(ge===BZ){C=le.isGlob=!0,pe=!0;break}}continue}break}if(ge===vN){if(ve===vN&&(L=le.isGlobstar=!0),C=le.isGlob=!0,pe=!0,a===!0)continue;break}if(ge===wZ){if(C=le.isGlob=!0,pe=!0,a===!0)continue;break}if(ge===Y5e){for(;Pe()!==!0&&(me=De());){if(me===Iw){V=le.backslashes=!0,De();continue}if(me===J5e){b=le.isBracket=!0,C=le.isGlob=!0,pe=!0;break}}if(a===!0)continue;break}if(r.nonegate!==!0&&ge===SN&&h===E){re=le.negated=!0,E++;continue}if(r.noparen!==!0&&ge===xN){if(C=le.isGlob=!0,a===!0){for(;Pe()!==!0&&(ge=De());){if(ge===xN){V=le.backslashes=!0,ge=De();continue}if(ge===BZ){pe=!0;break}}continue}break}if(C===!0){if(pe=!0,a===!0)continue;break}}r.noext===!0&&(R=!1,C=!1);let Ce=p,de="",ne="";E>0&&(de=p.slice(0,E),p=p.slice(E),w-=E),Ce&&C===!0&&w>0?(Ce=p.slice(0,w),ne=p.slice(w)):C===!0?(Ce="",ne=p):Ce=p,Ce&&Ce!==""&&Ce!=="/"&&Ce!==p&&vZ(Ce.charCodeAt(Ce.length-1))&&(Ce=Ce.slice(0,-1)),r.unescape===!0&&(ne&&(ne=IZ.removeBackslashes(ne)),Ce&&V===!0&&(Ce=IZ.removeBackslashes(Ce)));let Z={prefix:de,input:t,start:E,base:Ce,glob:ne,isBrace:v,isBracket:b,isGlob:C,isExtglob:R,isGlobstar:L,negated:re,negatedExtglob:oe};if(r.tokens===!0&&(Z.maxDepth=0,vZ(ge)||u.push(le),Z.tokens=u),r.parts===!0||r.tokens===!0){let me;for(let be=0;be<n.length;be++){let ut=me?me+1:E,H=n[be],yt=t.slice(ut,H);r.tokens&&(be===0&&E!==0?(u[be].isPrefix=!0,u[be].value=de):u[be].value=yt,DZ(u[be]),Z.maxDepth+=u[be].depth),(be!==0||yt!=="")&&A.push(yt),me=H}if(me&&me+1<t.length){let be=t.slice(me+1);A.push(be),r.tokens&&(u[u.length-1].value=be,DZ(u[u.length-1]),Z.maxDepth+=u[u.length-1].depth)}Z.slashes=n,Z.parts=A}return Z};PZ.exports=z5e});var kZ=U((kkt,QZ)=>{"use strict";var vS=Cw(),sl=Ew(),{MAX_LENGTH:DS,POSIX_REGEX_SOURCE:X5e,REGEX_NON_SPECIAL_CHARS:Z5e,REGEX_SPECIAL_CHARS_BACKREF:$5e,REPLACEMENTS:bZ}=vS,e7e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>sl.escapeRegex(a)).join("..")}return r},Ny=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,bN=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=bZ[t]||t;let r={...e},o=typeof r.maxLength=="number"?Math.min(DS,r.maxLength):DS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);let n={type:"bos",value:"",output:r.prepend||""},u=[n],A=r.capture?"":"?:",p=sl.isWindows(e),h=vS.globChars(p),E=vS.extglobChars(h),{DOT_LITERAL:w,PLUS_LITERAL:v,SLASH_LITERAL:b,ONE_CHAR:C,DOTS_SLASH:R,NO_DOT:L,NO_DOT_SLASH:_,NO_DOTS_SLASH:V,QMARK:re,QMARK_NO_DOT:oe,STAR:pe,START_ANCHOR:he}=h,ve=x=>`(${A}(?:(?!${he}${x.dot?R:w}).)*?)`,ge=r.dot?"":L,le=r.dot?re:oe,Pe=r.bash===!0?ve(r):pe;r.capture&&(Pe=`(${Pe})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};t=sl.removePrefix(t,g),a=t.length;let De=[],Ce=[],de=[],ne=n,Z,me=()=>g.index===a-1,be=g.peek=(x=1)=>t[g.index+x],ut=g.advance=()=>t[++g.index]||"",H=()=>t.slice(g.index+1),yt=(x="",I=0)=>{g.consumed+=x,g.index+=I},Me=x=>{g.output+=x.output!=null?x.output:x.value,yt(x.value)},Te=()=>{let x=1;for(;be()==="!"&&(be(2)!=="("||be(3)==="?");)ut(),g.start++,x++;return x%2===0?!1:(g.negated=!0,g.start++,!0)},Qe=x=>{g[x]++,de.push(x)},_e=x=>{g[x]--,de.pop()},qe=x=>{if(ne.type==="globstar"){let I=g.braces>0&&(x.type==="comma"||x.type==="brace"),P=x.extglob===!0||De.length&&(x.type==="pipe"||x.type==="paren");x.type!=="slash"&&x.type!=="paren"&&!I&&!P&&(g.output=g.output.slice(0,-ne.output.length),ne.type="star",ne.value="*",ne.output=Pe,g.output+=ne.output)}if(De.length&&x.type!=="paren"&&(De[De.length-1].inner+=x.value),(x.value||x.output)&&Me(x),ne&&ne.type==="text"&&x.type==="text"){ne.value+=x.value,ne.output=(ne.output||"")+x.value;return}x.prev=ne,u.push(x),ne=x},At=(x,I)=>{let P={...E[I],conditions:1,inner:""};P.prev=ne,P.parens=g.parens,P.output=g.output;let y=(r.capture?"(":"")+P.open;Qe("parens"),qe({type:x,value:I,output:g.output?"":C}),qe({type:"paren",extglob:!0,value:ut(),output:y}),De.push(P)},Oe=x=>{let I=x.close+(r.capture?")":""),P;if(x.type==="negate"){let y=Pe;if(x.inner&&x.inner.length>1&&x.inner.includes("/")&&(y=ve(r)),(y!==Pe||me()||/^\)+$/.test(H()))&&(I=x.close=`)$))${y}`),x.inner.includes("*")&&(P=H())&&/^\.[^\\/.]+$/.test(P)){let F=bN(P,{...e,fastpaths:!1}).output;I=x.close=`)${F})${y})`}x.prev.type==="bos"&&(g.negatedExtglob=!0)}qe({type:"paren",extglob:!0,value:Z,output:I}),_e("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let x=!1,I=t.replace($5e,(P,y,F,J,X,$)=>J==="\\"?(x=!0,P):J==="?"?y?y+J+(X?re.repeat(X.length):""):$===0?le+(X?re.repeat(X.length):""):re.repeat(F.length):J==="."?w.repeat(F.length):J==="*"?y?y+J+(X?Pe:""):Pe:y?P:`\\${P}`);return x===!0&&(r.unescape===!0?I=I.replace(/\\/g,""):I=I.replace(/\\+/g,P=>P.length%2===0?"\\\\":P?"\\":"")),I===t&&r.contains===!0?(g.output=t,g):(g.output=sl.wrapOutput(I,g,e),g)}for(;!me();){if(Z=ut(),Z==="\0")continue;if(Z==="\\"){let P=be();if(P==="/"&&r.bash!==!0||P==="."||P===";")continue;if(!P){Z+="\\",qe({type:"text",value:Z});continue}let y=/^\\+/.exec(H()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(Z+="\\")),r.unescape===!0?Z=ut():Z+=ut(),g.brackets===0){qe({type:"text",value:Z});continue}}if(g.brackets>0&&(Z!=="]"||ne.value==="["||ne.value==="[^")){if(r.posix!==!1&&Z===":"){let P=ne.value.slice(1);if(P.includes("[")&&(ne.posix=!0,P.includes(":"))){let y=ne.value.lastIndexOf("["),F=ne.value.slice(0,y),J=ne.value.slice(y+2),X=X5e[J];if(X){ne.value=F+X,g.backtrack=!0,ut(),!n.output&&u.indexOf(ne)===1&&(n.output=C);continue}}}(Z==="["&&be()!==":"||Z==="-"&&be()==="]")&&(Z=`\\${Z}`),Z==="]"&&(ne.value==="["||ne.value==="[^")&&(Z=`\\${Z}`),r.posix===!0&&Z==="!"&&ne.value==="["&&(Z="^"),ne.value+=Z,Me({value:Z});continue}if(g.quotes===1&&Z!=='"'){Z=sl.escapeRegex(Z),ne.value+=Z,Me({value:Z});continue}if(Z==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&qe({type:"text",value:Z});continue}if(Z==="("){Qe("parens"),qe({type:"paren",value:Z});continue}if(Z===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Ny("opening","("));let P=De[De.length-1];if(P&&g.parens===P.parens+1){Oe(De.pop());continue}qe({type:"paren",value:Z,output:g.parens?")":"\\)"}),_e("parens");continue}if(Z==="["){if(r.nobracket===!0||!H().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Ny("closing","]"));Z=`\\${Z}`}else Qe("brackets");qe({type:"bracket",value:Z});continue}if(Z==="]"){if(r.nobracket===!0||ne&&ne.type==="bracket"&&ne.value.length===1){qe({type:"text",value:Z,output:`\\${Z}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Ny("opening","["));qe({type:"text",value:Z,output:`\\${Z}`});continue}_e("brackets");let P=ne.value.slice(1);if(ne.posix!==!0&&P[0]==="^"&&!P.includes("/")&&(Z=`/${Z}`),ne.value+=Z,Me({value:Z}),r.literalBrackets===!1||sl.hasRegexChars(P))continue;let y=sl.escapeRegex(ne.value);if(g.output=g.output.slice(0,-ne.value.length),r.literalBrackets===!0){g.output+=y,ne.value=y;continue}ne.value=`(${A}${y}|${ne.value})`,g.output+=ne.value;continue}if(Z==="{"&&r.nobrace!==!0){Qe("braces");let P={type:"brace",value:Z,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};Ce.push(P),qe(P);continue}if(Z==="}"){let P=Ce[Ce.length-1];if(r.nobrace===!0||!P){qe({type:"text",value:Z,output:Z});continue}let y=")";if(P.dots===!0){let F=u.slice(),J=[];for(let X=F.length-1;X>=0&&(u.pop(),F[X].type!=="brace");X--)F[X].type!=="dots"&&J.unshift(F[X].value);y=e7e(J,r),g.backtrack=!0}if(P.comma!==!0&&P.dots!==!0){let F=g.output.slice(0,P.outputIndex),J=g.tokens.slice(P.tokensIndex);P.value=P.output="\\{",Z=y="\\}",g.output=F;for(let X of J)g.output+=X.output||X.value}qe({type:"brace",value:Z,output:y}),_e("braces"),Ce.pop();continue}if(Z==="|"){De.length>0&&De[De.length-1].conditions++,qe({type:"text",value:Z});continue}if(Z===","){let P=Z,y=Ce[Ce.length-1];y&&de[de.length-1]==="braces"&&(y.comma=!0,P="|"),qe({type:"comma",value:Z,output:P});continue}if(Z==="/"){if(ne.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",u.pop(),ne=n;continue}qe({type:"slash",value:Z,output:b});continue}if(Z==="."){if(g.braces>0&&ne.type==="dot"){ne.value==="."&&(ne.output=w);let P=Ce[Ce.length-1];ne.type="dots",ne.output+=Z,ne.value+=Z,P.dots=!0;continue}if(g.braces+g.parens===0&&ne.type!=="bos"&&ne.type!=="slash"){qe({type:"text",value:Z,output:w});continue}qe({type:"dot",value:Z,output:w});continue}if(Z==="?"){if(!(ne&&ne.value==="(")&&r.noextglob!==!0&&be()==="("&&be(2)!=="?"){At("qmark",Z);continue}if(ne&&ne.type==="paren"){let y=be(),F=Z;if(y==="<"&&!sl.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(ne.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(H()))&&(F=`\\${Z}`),qe({type:"text",value:Z,output:F});continue}if(r.dot!==!0&&(ne.type==="slash"||ne.type==="bos")){qe({type:"qmark",value:Z,output:oe});continue}qe({type:"qmark",value:Z,output:re});continue}if(Z==="!"){if(r.noextglob!==!0&&be()==="("&&(be(2)!=="?"||!/[!=<:]/.test(be(3)))){At("negate",Z);continue}if(r.nonegate!==!0&&g.index===0){Te();continue}}if(Z==="+"){if(r.noextglob!==!0&&be()==="("&&be(2)!=="?"){At("plus",Z);continue}if(ne&&ne.value==="("||r.regex===!1){qe({type:"plus",value:Z,output:v});continue}if(ne&&(ne.type==="bracket"||ne.type==="paren"||ne.type==="brace")||g.parens>0){qe({type:"plus",value:Z});continue}qe({type:"plus",value:v});continue}if(Z==="@"){if(r.noextglob!==!0&&be()==="("&&be(2)!=="?"){qe({type:"at",extglob:!0,value:Z,output:""});continue}qe({type:"text",value:Z});continue}if(Z!=="*"){(Z==="$"||Z==="^")&&(Z=`\\${Z}`);let P=Z5e.exec(H());P&&(Z+=P[0],g.index+=P[0].length),qe({type:"text",value:Z});continue}if(ne&&(ne.type==="globstar"||ne.star===!0)){ne.type="star",ne.star=!0,ne.value+=Z,ne.output=Pe,g.backtrack=!0,g.globstar=!0,yt(Z);continue}let x=H();if(r.noextglob!==!0&&/^\([^?]/.test(x)){At("star",Z);continue}if(ne.type==="star"){if(r.noglobstar===!0){yt(Z);continue}let P=ne.prev,y=P.prev,F=P.type==="slash"||P.type==="bos",J=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!F||x[0]&&x[0]!=="/")){qe({type:"star",value:Z,output:""});continue}let X=g.braces>0&&(P.type==="comma"||P.type==="brace"),$=De.length&&(P.type==="pipe"||P.type==="paren");if(!F&&P.type!=="paren"&&!X&&!$){qe({type:"star",value:Z,output:""});continue}for(;x.slice(0,3)==="/**";){let ie=t[g.index+4];if(ie&&ie!=="/")break;x=x.slice(3),yt("/**",3)}if(P.type==="bos"&&me()){ne.type="globstar",ne.value+=Z,ne.output=ve(r),g.output=ne.output,g.globstar=!0,yt(Z);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&!J&&me()){g.output=g.output.slice(0,-(P.output+ne.output).length),P.output=`(?:${P.output}`,ne.type="globstar",ne.output=ve(r)+(r.strictSlashes?")":"|$)"),ne.value+=Z,g.globstar=!0,g.output+=P.output+ne.output,yt(Z);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&x[0]==="/"){let ie=x[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(P.output+ne.output).length),P.output=`(?:${P.output}`,ne.type="globstar",ne.output=`${ve(r)}${b}|${b}${ie})`,ne.value+=Z,g.output+=P.output+ne.output,g.globstar=!0,yt(Z+ut()),qe({type:"slash",value:"/",output:""});continue}if(P.type==="bos"&&x[0]==="/"){ne.type="globstar",ne.value+=Z,ne.output=`(?:^|${b}|${ve(r)}${b})`,g.output=ne.output,g.globstar=!0,yt(Z+ut()),qe({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-ne.output.length),ne.type="globstar",ne.output=ve(r),ne.value+=Z,g.output+=ne.output,g.globstar=!0,yt(Z);continue}let I={type:"star",value:Z,output:Pe};if(r.bash===!0){I.output=".*?",(ne.type==="bos"||ne.type==="slash")&&(I.output=ge+I.output),qe(I);continue}if(ne&&(ne.type==="bracket"||ne.type==="paren")&&r.regex===!0){I.output=Z,qe(I);continue}(g.index===g.start||ne.type==="slash"||ne.type==="dot")&&(ne.type==="dot"?(g.output+=_,ne.output+=_):r.dot===!0?(g.output+=V,ne.output+=V):(g.output+=ge,ne.output+=ge),be()!=="*"&&(g.output+=C,ne.output+=C)),qe(I)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ny("closing","]"));g.output=sl.escapeLast(g.output,"["),_e("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ny("closing",")"));g.output=sl.escapeLast(g.output,"("),_e("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ny("closing","}"));g.output=sl.escapeLast(g.output,"{"),_e("braces")}if(r.strictSlashes!==!0&&(ne.type==="star"||ne.type==="bracket")&&qe({type:"maybe_slash",value:"",output:`${b}?`}),g.backtrack===!0){g.output="";for(let x of g.tokens)g.output+=x.output!=null?x.output:x.value,x.suffix&&(g.output+=x.suffix)}return g};bN.fastpaths=(t,e)=>{let r={...e},o=typeof r.maxLength=="number"?Math.min(DS,r.maxLength):DS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);t=bZ[t]||t;let n=sl.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:A,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:w,NO_DOTS_SLASH:v,STAR:b,START_ANCHOR:C}=vS.globChars(n),R=r.dot?w:E,L=r.dot?v:E,_=r.capture?"":"?:",V={negated:!1,prefix:""},re=r.bash===!0?".*?":b;r.capture&&(re=`(${re})`);let oe=ge=>ge.noglobstar===!0?re:`(${_}(?:(?!${C}${ge.dot?h:u}).)*?)`,pe=ge=>{switch(ge){case"*":return`${R}${p}${re}`;case".*":return`${u}${p}${re}`;case"*.*":return`${R}${re}${u}${p}${re}`;case"*/*":return`${R}${re}${A}${p}${L}${re}`;case"**":return R+oe(r);case"**/*":return`(?:${R}${oe(r)}${A})?${L}${p}${re}`;case"**/*.*":return`(?:${R}${oe(r)}${A})?${L}${re}${u}${p}${re}`;case"**/.*":return`(?:${R}${oe(r)}${A})?${u}${p}${re}`;default:{let le=/^(.*?)\.(\w+)$/.exec(ge);if(!le)return;let Pe=pe(le[1]);return Pe?Pe+u+le[2]:void 0}}},he=sl.removePrefix(t,V),ve=pe(he);return ve&&r.strictSlashes!==!0&&(ve+=`${A}?`),ve};QZ.exports=bN});var RZ=U((Fkt,FZ)=>{"use strict";var t7e=Ie("path"),r7e=xZ(),QN=kZ(),kN=Ew(),n7e=Cw(),i7e=t=>t&&typeof t=="object"&&!Array.isArray(t),Oi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(v=>Oi(v,e,r));return v=>{for(let b of E){let C=b(v);if(C)return C}return!1}}let o=i7e(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=kN.isWindows(e),u=o?Oi.compileRe(t,e):Oi.makeRe(t,e,!1,!0),A=u.state;delete u.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Oi(a.ignore,E,r)}let h=(E,w=!1)=>{let{isMatch:v,match:b,output:C}=Oi.test(E,u,e,{glob:t,posix:n}),R={glob:t,state:A,regex:u,posix:n,input:E,output:C,match:b,isMatch:v};return typeof a.onResult=="function"&&a.onResult(R),v===!1?(R.isMatch=!1,w?R:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(R),R.isMatch=!1,w?R:!1):(typeof a.onMatch=="function"&&a.onMatch(R),w?R:!0)};return r&&(h.state=A),h};Oi.test=(t,e,r,{glob:o,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},u=n.format||(a?kN.toPosixSlashes:null),A=t===o,p=A&&u?u(t):t;return A===!1&&(p=u?u(t):t,A=p===o),(A===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?A=Oi.matchBase(t,e,r,a):A=e.exec(p)),{isMatch:Boolean(A),match:A,output:p}};Oi.matchBase=(t,e,r,o=kN.isWindows(r))=>(e instanceof RegExp?e:Oi.makeRe(e,r)).test(t7e.basename(t));Oi.isMatch=(t,e,r)=>Oi(e,r)(t);Oi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Oi.parse(r,e)):QN(t,{...e,fastpaths:!1});Oi.scan=(t,e)=>r7e(t,e);Oi.compileRe=(t,e,r=!1,o=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",u=a.contains?"":"$",A=`${n}(?:${t.output})${u}`;t&&t.negated===!0&&(A=`^(?!${A}).*$`);let p=Oi.toRegex(A,e);return o===!0&&(p.state=t),p};Oi.makeRe=(t,e={},r=!1,o=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=QN.fastpaths(t,e)),a.output||(a=QN(t,e)),Oi.compileRe(a,e,r,o)};Oi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Oi.constants=n7e;FZ.exports=Oi});var NZ=U((Rkt,TZ)=>{"use strict";TZ.exports=RZ()});var Jo=U((Tkt,UZ)=>{"use strict";var OZ=Ie("util"),MZ=gZ(),zu=NZ(),FN=Ew(),LZ=t=>t===""||t==="./",hi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let o=new Set,a=new Set,n=new Set,u=0,A=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E<e.length;E++){let w=zu(String(e[E]),{...r,onResult:A},!0),v=w.state.negated||w.state.negatedExtglob;v&&u++;for(let b of t){let C=w(b,!0);!(v?!C.isMatch:C.isMatch)||(v?o.add(C.output):(o.delete(C.output),a.add(C.output)))}}let h=(u===e.length?[...n]:[...a]).filter(E=>!o.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};hi.match=hi;hi.matcher=(t,e)=>zu(t,e);hi.isMatch=(t,e,r)=>zu(e,r)(t);hi.any=hi.isMatch;hi.not=(t,e,r={})=>{e=[].concat(e).map(String);let o=new Set,a=[],n=A=>{r.onResult&&r.onResult(A),a.push(A.output)},u=new Set(hi(t,e,{...r,onResult:n}));for(let A of a)u.has(A)||o.add(A);return[...o]};hi.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${OZ.inspect(t)}"`);if(Array.isArray(e))return e.some(o=>hi.contains(t,o,r));if(typeof e=="string"){if(LZ(t)||LZ(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return hi.isMatch(t,e,{...r,contains:!0})};hi.matchKeys=(t,e,r)=>{if(!FN.isObject(t))throw new TypeError("Expected the first argument to be an object");let o=hi(Object.keys(t),e,r),a={};for(let n of o)a[n]=t[n];return a};hi.some=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=zu(String(a),r);if(o.some(u=>n(u)))return!0}return!1};hi.every=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=zu(String(a),r);if(!o.every(u=>n(u)))return!1}return!0};hi.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${OZ.inspect(t)}"`);return[].concat(e).every(o=>zu(o,r)(t))};hi.capture=(t,e,r)=>{let o=FN.isWindows(r),n=zu.makeRe(String(t),{...r,capture:!0}).exec(o?FN.toPosixSlashes(e):e);if(n)return n.slice(1).map(u=>u===void 0?"":u)};hi.makeRe=(...t)=>zu.makeRe(...t);hi.scan=(...t)=>zu.scan(...t);hi.parse=(t,e)=>{let r=[];for(let o of[].concat(t||[]))for(let a of MZ(String(o),e))r.push(zu.parse(a,e));return r};hi.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:MZ(t,e)};hi.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return hi.braces(t,{...e,expand:!0})};UZ.exports=hi});var HZ=U((Nkt,_Z)=>{"use strict";_Z.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var SS=U((Lkt,qZ)=>{"use strict";var s7e=HZ();qZ.exports=t=>typeof t=="string"?t.replace(s7e(),""):t});var GZ=U((Okt,jZ)=>{function o7e(){this.__data__=[],this.size=0}jZ.exports=o7e});var Ly=U((Mkt,WZ)=>{function a7e(t,e){return t===e||t!==t&&e!==e}WZ.exports=a7e});var ww=U((Ukt,YZ)=>{var l7e=Ly();function c7e(t,e){for(var r=t.length;r--;)if(l7e(t[r][0],e))return r;return-1}YZ.exports=c7e});var VZ=U((_kt,KZ)=>{var u7e=ww(),A7e=Array.prototype,f7e=A7e.splice;function p7e(t){var e=this.__data__,r=u7e(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():f7e.call(e,r,1),--this.size,!0}KZ.exports=p7e});var zZ=U((Hkt,JZ)=>{var h7e=ww();function g7e(t){var e=this.__data__,r=h7e(e,t);return r<0?void 0:e[r][1]}JZ.exports=g7e});var ZZ=U((qkt,XZ)=>{var d7e=ww();function m7e(t){return d7e(this.__data__,t)>-1}XZ.exports=m7e});var e$=U((jkt,$Z)=>{var y7e=ww();function C7e(t,e){var r=this.__data__,o=y7e(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}$Z.exports=C7e});var Bw=U((Gkt,t$)=>{var E7e=GZ(),I7e=VZ(),w7e=zZ(),B7e=ZZ(),v7e=e$();function Oy(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}Oy.prototype.clear=E7e;Oy.prototype.delete=I7e;Oy.prototype.get=w7e;Oy.prototype.has=B7e;Oy.prototype.set=v7e;t$.exports=Oy});var n$=U((Wkt,r$)=>{var D7e=Bw();function S7e(){this.__data__=new D7e,this.size=0}r$.exports=S7e});var s$=U((Ykt,i$)=>{function P7e(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}i$.exports=P7e});var a$=U((Kkt,o$)=>{function x7e(t){return this.__data__.get(t)}o$.exports=x7e});var c$=U((Vkt,l$)=>{function b7e(t){return this.__data__.has(t)}l$.exports=b7e});var RN=U((Jkt,u$)=>{var Q7e=typeof global=="object"&&global&&global.Object===Object&&global;u$.exports=Q7e});var Wl=U((zkt,A$)=>{var k7e=RN(),F7e=typeof self=="object"&&self&&self.Object===Object&&self,R7e=k7e||F7e||Function("return this")();A$.exports=R7e});var fd=U((Xkt,f$)=>{var T7e=Wl(),N7e=T7e.Symbol;f$.exports=N7e});var d$=U((Zkt,g$)=>{var p$=fd(),h$=Object.prototype,L7e=h$.hasOwnProperty,O7e=h$.toString,vw=p$?p$.toStringTag:void 0;function M7e(t){var e=L7e.call(t,vw),r=t[vw];try{t[vw]=void 0;var o=!0}catch{}var a=O7e.call(t);return o&&(e?t[vw]=r:delete t[vw]),a}g$.exports=M7e});var y$=U(($kt,m$)=>{var U7e=Object.prototype,_7e=U7e.toString;function H7e(t){return _7e.call(t)}m$.exports=H7e});var pd=U((eFt,I$)=>{var C$=fd(),q7e=d$(),j7e=y$(),G7e="[object Null]",W7e="[object Undefined]",E$=C$?C$.toStringTag:void 0;function Y7e(t){return t==null?t===void 0?W7e:G7e:E$&&E$ in Object(t)?q7e(t):j7e(t)}I$.exports=Y7e});var ol=U((tFt,w$)=>{function K7e(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}w$.exports=K7e});var PS=U((rFt,B$)=>{var V7e=pd(),J7e=ol(),z7e="[object AsyncFunction]",X7e="[object Function]",Z7e="[object GeneratorFunction]",$7e="[object Proxy]";function eWe(t){if(!J7e(t))return!1;var e=V7e(t);return e==X7e||e==Z7e||e==z7e||e==$7e}B$.exports=eWe});var D$=U((nFt,v$)=>{var tWe=Wl(),rWe=tWe["__core-js_shared__"];v$.exports=rWe});var x$=U((iFt,P$)=>{var TN=D$(),S$=function(){var t=/[^.]+$/.exec(TN&&TN.keys&&TN.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function nWe(t){return!!S$&&S$ in t}P$.exports=nWe});var NN=U((sFt,b$)=>{var iWe=Function.prototype,sWe=iWe.toString;function oWe(t){if(t!=null){try{return sWe.call(t)}catch{}try{return t+""}catch{}}return""}b$.exports=oWe});var k$=U((oFt,Q$)=>{var aWe=PS(),lWe=x$(),cWe=ol(),uWe=NN(),AWe=/[\\^$.*+?()[\]{}|]/g,fWe=/^\[object .+?Constructor\]$/,pWe=Function.prototype,hWe=Object.prototype,gWe=pWe.toString,dWe=hWe.hasOwnProperty,mWe=RegExp("^"+gWe.call(dWe).replace(AWe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yWe(t){if(!cWe(t)||lWe(t))return!1;var e=aWe(t)?mWe:fWe;return e.test(uWe(t))}Q$.exports=yWe});var R$=U((aFt,F$)=>{function CWe(t,e){return t==null?void 0:t[e]}F$.exports=CWe});var Kp=U((lFt,T$)=>{var EWe=k$(),IWe=R$();function wWe(t,e){var r=IWe(t,e);return EWe(r)?r:void 0}T$.exports=wWe});var xS=U((cFt,N$)=>{var BWe=Kp(),vWe=Wl(),DWe=BWe(vWe,"Map");N$.exports=DWe});var Dw=U((uFt,L$)=>{var SWe=Kp(),PWe=SWe(Object,"create");L$.exports=PWe});var U$=U((AFt,M$)=>{var O$=Dw();function xWe(){this.__data__=O$?O$(null):{},this.size=0}M$.exports=xWe});var H$=U((fFt,_$)=>{function bWe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}_$.exports=bWe});var j$=U((pFt,q$)=>{var QWe=Dw(),kWe="__lodash_hash_undefined__",FWe=Object.prototype,RWe=FWe.hasOwnProperty;function TWe(t){var e=this.__data__;if(QWe){var r=e[t];return r===kWe?void 0:r}return RWe.call(e,t)?e[t]:void 0}q$.exports=TWe});var W$=U((hFt,G$)=>{var NWe=Dw(),LWe=Object.prototype,OWe=LWe.hasOwnProperty;function MWe(t){var e=this.__data__;return NWe?e[t]!==void 0:OWe.call(e,t)}G$.exports=MWe});var K$=U((gFt,Y$)=>{var UWe=Dw(),_We="__lodash_hash_undefined__";function HWe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=UWe&&e===void 0?_We:e,this}Y$.exports=HWe});var J$=U((dFt,V$)=>{var qWe=U$(),jWe=H$(),GWe=j$(),WWe=W$(),YWe=K$();function My(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}My.prototype.clear=qWe;My.prototype.delete=jWe;My.prototype.get=GWe;My.prototype.has=WWe;My.prototype.set=YWe;V$.exports=My});var Z$=U((mFt,X$)=>{var z$=J$(),KWe=Bw(),VWe=xS();function JWe(){this.size=0,this.__data__={hash:new z$,map:new(VWe||KWe),string:new z$}}X$.exports=JWe});var eee=U((yFt,$$)=>{function zWe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}$$.exports=zWe});var Sw=U((CFt,tee)=>{var XWe=eee();function ZWe(t,e){var r=t.__data__;return XWe(e)?r[typeof e=="string"?"string":"hash"]:r.map}tee.exports=ZWe});var nee=U((EFt,ree)=>{var $We=Sw();function eYe(t){var e=$We(this,t).delete(t);return this.size-=e?1:0,e}ree.exports=eYe});var see=U((IFt,iee)=>{var tYe=Sw();function rYe(t){return tYe(this,t).get(t)}iee.exports=rYe});var aee=U((wFt,oee)=>{var nYe=Sw();function iYe(t){return nYe(this,t).has(t)}oee.exports=iYe});var cee=U((BFt,lee)=>{var sYe=Sw();function oYe(t,e){var r=sYe(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}lee.exports=oYe});var bS=U((vFt,uee)=>{var aYe=Z$(),lYe=nee(),cYe=see(),uYe=aee(),AYe=cee();function Uy(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}Uy.prototype.clear=aYe;Uy.prototype.delete=lYe;Uy.prototype.get=cYe;Uy.prototype.has=uYe;Uy.prototype.set=AYe;uee.exports=Uy});var fee=U((DFt,Aee)=>{var fYe=Bw(),pYe=xS(),hYe=bS(),gYe=200;function dYe(t,e){var r=this.__data__;if(r instanceof fYe){var o=r.__data__;if(!pYe||o.length<gYe-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new hYe(o)}return r.set(t,e),this.size=r.size,this}Aee.exports=dYe});var QS=U((SFt,pee)=>{var mYe=Bw(),yYe=n$(),CYe=s$(),EYe=a$(),IYe=c$(),wYe=fee();function _y(t){var e=this.__data__=new mYe(t);this.size=e.size}_y.prototype.clear=yYe;_y.prototype.delete=CYe;_y.prototype.get=EYe;_y.prototype.has=IYe;_y.prototype.set=wYe;pee.exports=_y});var gee=U((PFt,hee)=>{var BYe="__lodash_hash_undefined__";function vYe(t){return this.__data__.set(t,BYe),this}hee.exports=vYe});var mee=U((xFt,dee)=>{function DYe(t){return this.__data__.has(t)}dee.exports=DYe});var Cee=U((bFt,yee)=>{var SYe=bS(),PYe=gee(),xYe=mee();function kS(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new SYe;++e<r;)this.add(t[e])}kS.prototype.add=kS.prototype.push=PYe;kS.prototype.has=xYe;yee.exports=kS});var Iee=U((QFt,Eee)=>{function bYe(t,e){for(var r=-1,o=t==null?0:t.length;++r<o;)if(e(t[r],r,t))return!0;return!1}Eee.exports=bYe});var Bee=U((kFt,wee)=>{function QYe(t,e){return t.has(e)}wee.exports=QYe});var LN=U((FFt,vee)=>{var kYe=Cee(),FYe=Iee(),RYe=Bee(),TYe=1,NYe=2;function LYe(t,e,r,o,a,n){var u=r&TYe,A=t.length,p=e.length;if(A!=p&&!(u&&p>A))return!1;var h=n.get(t),E=n.get(e);if(h&&E)return h==e&&E==t;var w=-1,v=!0,b=r&NYe?new kYe:void 0;for(n.set(t,e),n.set(e,t);++w<A;){var C=t[w],R=e[w];if(o)var L=u?o(R,C,w,e,t,n):o(C,R,w,t,e,n);if(L!==void 0){if(L)continue;v=!1;break}if(b){if(!FYe(e,function(_,V){if(!RYe(b,V)&&(C===_||a(C,_,r,o,n)))return b.push(V)})){v=!1;break}}else if(!(C===R||a(C,R,r,o,n))){v=!1;break}}return n.delete(t),n.delete(e),v}vee.exports=LYe});var ON=U((RFt,Dee)=>{var OYe=Wl(),MYe=OYe.Uint8Array;Dee.exports=MYe});var Pee=U((TFt,See)=>{function UYe(t){var e=-1,r=Array(t.size);return t.forEach(function(o,a){r[++e]=[a,o]}),r}See.exports=UYe});var bee=U((NFt,xee)=>{function _Ye(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}xee.exports=_Ye});var Tee=U((LFt,Ree)=>{var Qee=fd(),kee=ON(),HYe=Ly(),qYe=LN(),jYe=Pee(),GYe=bee(),WYe=1,YYe=2,KYe="[object Boolean]",VYe="[object Date]",JYe="[object Error]",zYe="[object Map]",XYe="[object Number]",ZYe="[object RegExp]",$Ye="[object Set]",eKe="[object String]",tKe="[object Symbol]",rKe="[object ArrayBuffer]",nKe="[object DataView]",Fee=Qee?Qee.prototype:void 0,MN=Fee?Fee.valueOf:void 0;function iKe(t,e,r,o,a,n,u){switch(r){case nKe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case rKe:return!(t.byteLength!=e.byteLength||!n(new kee(t),new kee(e)));case KYe:case VYe:case XYe:return HYe(+t,+e);case JYe:return t.name==e.name&&t.message==e.message;case ZYe:case eKe:return t==e+"";case zYe:var A=jYe;case $Ye:var p=o&WYe;if(A||(A=GYe),t.size!=e.size&&!p)return!1;var h=u.get(t);if(h)return h==e;o|=YYe,u.set(t,e);var E=qYe(A(t),A(e),o,a,n,u);return u.delete(t),E;case tKe:if(MN)return MN.call(t)==MN.call(e)}return!1}Ree.exports=iKe});var RS=U((OFt,Nee)=>{function sKe(t,e){for(var r=-1,o=e.length,a=t.length;++r<o;)t[a+r]=e[r];return t}Nee.exports=sKe});var Yl=U((MFt,Lee)=>{var oKe=Array.isArray;Lee.exports=oKe});var UN=U((UFt,Oee)=>{var aKe=RS(),lKe=Yl();function cKe(t,e,r){var o=e(t);return lKe(t)?o:aKe(o,r(t))}Oee.exports=cKe});var Uee=U((_Ft,Mee)=>{function uKe(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r<o;){var u=t[r];e(u,r,t)&&(n[a++]=u)}return n}Mee.exports=uKe});var _N=U((HFt,_ee)=>{function AKe(){return[]}_ee.exports=AKe});var TS=U((qFt,qee)=>{var fKe=Uee(),pKe=_N(),hKe=Object.prototype,gKe=hKe.propertyIsEnumerable,Hee=Object.getOwnPropertySymbols,dKe=Hee?function(t){return t==null?[]:(t=Object(t),fKe(Hee(t),function(e){return gKe.call(t,e)}))}:pKe;qee.exports=dKe});var Gee=U((jFt,jee)=>{function mKe(t,e){for(var r=-1,o=Array(t);++r<t;)o[r]=e(r);return o}jee.exports=mKe});var Xu=U((GFt,Wee)=>{function yKe(t){return t!=null&&typeof t=="object"}Wee.exports=yKe});var Kee=U((WFt,Yee)=>{var CKe=pd(),EKe=Xu(),IKe="[object Arguments]";function wKe(t){return EKe(t)&&CKe(t)==IKe}Yee.exports=wKe});var Pw=U((YFt,zee)=>{var Vee=Kee(),BKe=Xu(),Jee=Object.prototype,vKe=Jee.hasOwnProperty,DKe=Jee.propertyIsEnumerable,SKe=Vee(function(){return arguments}())?Vee:function(t){return BKe(t)&&vKe.call(t,"callee")&&!DKe.call(t,"callee")};zee.exports=SKe});var Zee=U((KFt,Xee)=>{function PKe(){return!1}Xee.exports=PKe});var bw=U((xw,Hy)=>{var xKe=Wl(),bKe=Zee(),tte=typeof xw=="object"&&xw&&!xw.nodeType&&xw,$ee=tte&&typeof Hy=="object"&&Hy&&!Hy.nodeType&&Hy,QKe=$ee&&$ee.exports===tte,ete=QKe?xKe.Buffer:void 0,kKe=ete?ete.isBuffer:void 0,FKe=kKe||bKe;Hy.exports=FKe});var Qw=U((VFt,rte)=>{var RKe=9007199254740991,TKe=/^(?:0|[1-9]\d*)$/;function NKe(t,e){var r=typeof t;return e=e??RKe,!!e&&(r=="number"||r!="symbol"&&TKe.test(t))&&t>-1&&t%1==0&&t<e}rte.exports=NKe});var NS=U((JFt,nte)=>{var LKe=9007199254740991;function OKe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=LKe}nte.exports=OKe});var ste=U((zFt,ite)=>{var MKe=pd(),UKe=NS(),_Ke=Xu(),HKe="[object Arguments]",qKe="[object Array]",jKe="[object Boolean]",GKe="[object Date]",WKe="[object Error]",YKe="[object Function]",KKe="[object Map]",VKe="[object Number]",JKe="[object Object]",zKe="[object RegExp]",XKe="[object Set]",ZKe="[object String]",$Ke="[object WeakMap]",eVe="[object ArrayBuffer]",tVe="[object DataView]",rVe="[object Float32Array]",nVe="[object Float64Array]",iVe="[object Int8Array]",sVe="[object Int16Array]",oVe="[object Int32Array]",aVe="[object Uint8Array]",lVe="[object Uint8ClampedArray]",cVe="[object Uint16Array]",uVe="[object Uint32Array]",oi={};oi[rVe]=oi[nVe]=oi[iVe]=oi[sVe]=oi[oVe]=oi[aVe]=oi[lVe]=oi[cVe]=oi[uVe]=!0;oi[HKe]=oi[qKe]=oi[eVe]=oi[jKe]=oi[tVe]=oi[GKe]=oi[WKe]=oi[YKe]=oi[KKe]=oi[VKe]=oi[JKe]=oi[zKe]=oi[XKe]=oi[ZKe]=oi[$Ke]=!1;function AVe(t){return _Ke(t)&&UKe(t.length)&&!!oi[MKe(t)]}ite.exports=AVe});var LS=U((XFt,ote)=>{function fVe(t){return function(e){return t(e)}}ote.exports=fVe});var OS=U((kw,qy)=>{var pVe=RN(),ate=typeof kw=="object"&&kw&&!kw.nodeType&&kw,Fw=ate&&typeof qy=="object"&&qy&&!qy.nodeType&&qy,hVe=Fw&&Fw.exports===ate,HN=hVe&&pVe.process,gVe=function(){try{var t=Fw&&Fw.require&&Fw.require("util").types;return t||HN&&HN.binding&&HN.binding("util")}catch{}}();qy.exports=gVe});var MS=U((ZFt,ute)=>{var dVe=ste(),mVe=LS(),lte=OS(),cte=lte&&lte.isTypedArray,yVe=cte?mVe(cte):dVe;ute.exports=yVe});var qN=U(($Ft,Ate)=>{var CVe=Gee(),EVe=Pw(),IVe=Yl(),wVe=bw(),BVe=Qw(),vVe=MS(),DVe=Object.prototype,SVe=DVe.hasOwnProperty;function PVe(t,e){var r=IVe(t),o=!r&&EVe(t),a=!r&&!o&&wVe(t),n=!r&&!o&&!a&&vVe(t),u=r||o||a||n,A=u?CVe(t.length,String):[],p=A.length;for(var h in t)(e||SVe.call(t,h))&&!(u&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||BVe(h,p)))&&A.push(h);return A}Ate.exports=PVe});var US=U((eRt,fte)=>{var xVe=Object.prototype;function bVe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||xVe;return t===r}fte.exports=bVe});var jN=U((tRt,pte)=>{function QVe(t,e){return function(r){return t(e(r))}}pte.exports=QVe});var gte=U((rRt,hte)=>{var kVe=jN(),FVe=kVe(Object.keys,Object);hte.exports=FVe});var mte=U((nRt,dte)=>{var RVe=US(),TVe=gte(),NVe=Object.prototype,LVe=NVe.hasOwnProperty;function OVe(t){if(!RVe(t))return TVe(t);var e=[];for(var r in Object(t))LVe.call(t,r)&&r!="constructor"&&e.push(r);return e}dte.exports=OVe});var Rw=U((iRt,yte)=>{var MVe=PS(),UVe=NS();function _Ve(t){return t!=null&&UVe(t.length)&&!MVe(t)}yte.exports=_Ve});var _S=U((sRt,Cte)=>{var HVe=qN(),qVe=mte(),jVe=Rw();function GVe(t){return jVe(t)?HVe(t):qVe(t)}Cte.exports=GVe});var GN=U((oRt,Ete)=>{var WVe=UN(),YVe=TS(),KVe=_S();function VVe(t){return WVe(t,KVe,YVe)}Ete.exports=VVe});var Bte=U((aRt,wte)=>{var Ite=GN(),JVe=1,zVe=Object.prototype,XVe=zVe.hasOwnProperty;function ZVe(t,e,r,o,a,n){var u=r&JVe,A=Ite(t),p=A.length,h=Ite(e),E=h.length;if(p!=E&&!u)return!1;for(var w=p;w--;){var v=A[w];if(!(u?v in e:XVe.call(e,v)))return!1}var b=n.get(t),C=n.get(e);if(b&&C)return b==e&&C==t;var R=!0;n.set(t,e),n.set(e,t);for(var L=u;++w<p;){v=A[w];var _=t[v],V=e[v];if(o)var re=u?o(V,_,v,e,t,n):o(_,V,v,t,e,n);if(!(re===void 0?_===V||a(_,V,r,o,n):re)){R=!1;break}L||(L=v=="constructor")}if(R&&!L){var oe=t.constructor,pe=e.constructor;oe!=pe&&"constructor"in t&&"constructor"in e&&!(typeof oe=="function"&&oe instanceof oe&&typeof pe=="function"&&pe instanceof pe)&&(R=!1)}return n.delete(t),n.delete(e),R}wte.exports=ZVe});var Dte=U((lRt,vte)=>{var $Ve=Kp(),eJe=Wl(),tJe=$Ve(eJe,"DataView");vte.exports=tJe});var Pte=U((cRt,Ste)=>{var rJe=Kp(),nJe=Wl(),iJe=rJe(nJe,"Promise");Ste.exports=iJe});var bte=U((uRt,xte)=>{var sJe=Kp(),oJe=Wl(),aJe=sJe(oJe,"Set");xte.exports=aJe});var kte=U((ARt,Qte)=>{var lJe=Kp(),cJe=Wl(),uJe=lJe(cJe,"WeakMap");Qte.exports=uJe});var Tw=U((fRt,Mte)=>{var WN=Dte(),YN=xS(),KN=Pte(),VN=bte(),JN=kte(),Ote=pd(),jy=NN(),Fte="[object Map]",AJe="[object Object]",Rte="[object Promise]",Tte="[object Set]",Nte="[object WeakMap]",Lte="[object DataView]",fJe=jy(WN),pJe=jy(YN),hJe=jy(KN),gJe=jy(VN),dJe=jy(JN),hd=Ote;(WN&&hd(new WN(new ArrayBuffer(1)))!=Lte||YN&&hd(new YN)!=Fte||KN&&hd(KN.resolve())!=Rte||VN&&hd(new VN)!=Tte||JN&&hd(new JN)!=Nte)&&(hd=function(t){var e=Ote(t),r=e==AJe?t.constructor:void 0,o=r?jy(r):"";if(o)switch(o){case fJe:return Lte;case pJe:return Fte;case hJe:return Rte;case gJe:return Tte;case dJe:return Nte}return e});Mte.exports=hd});var Yte=U((pRt,Wte)=>{var zN=QS(),mJe=LN(),yJe=Tee(),CJe=Bte(),Ute=Tw(),_te=Yl(),Hte=bw(),EJe=MS(),IJe=1,qte="[object Arguments]",jte="[object Array]",HS="[object Object]",wJe=Object.prototype,Gte=wJe.hasOwnProperty;function BJe(t,e,r,o,a,n){var u=_te(t),A=_te(e),p=u?jte:Ute(t),h=A?jte:Ute(e);p=p==qte?HS:p,h=h==qte?HS:h;var E=p==HS,w=h==HS,v=p==h;if(v&&Hte(t)){if(!Hte(e))return!1;u=!0,E=!1}if(v&&!E)return n||(n=new zN),u||EJe(t)?mJe(t,e,r,o,a,n):yJe(t,e,p,r,o,a,n);if(!(r&IJe)){var b=E&&Gte.call(t,"__wrapped__"),C=w&&Gte.call(e,"__wrapped__");if(b||C){var R=b?t.value():t,L=C?e.value():e;return n||(n=new zN),a(R,L,r,o,n)}}return v?(n||(n=new zN),CJe(t,e,r,o,a,n)):!1}Wte.exports=BJe});var zte=U((hRt,Jte)=>{var vJe=Yte(),Kte=Xu();function Vte(t,e,r,o,a){return t===e?!0:t==null||e==null||!Kte(t)&&!Kte(e)?t!==t&&e!==e:vJe(t,e,r,o,Vte,a)}Jte.exports=Vte});var Zte=U((gRt,Xte)=>{var DJe=zte();function SJe(t,e){return DJe(t,e)}Xte.exports=SJe});var XN=U((dRt,$te)=>{var PJe=Kp(),xJe=function(){try{var t=PJe(Object,"defineProperty");return t({},"",{}),t}catch{}}();$te.exports=xJe});var qS=U((mRt,tre)=>{var ere=XN();function bJe(t,e,r){e=="__proto__"&&ere?ere(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}tre.exports=bJe});var ZN=U((yRt,rre)=>{var QJe=qS(),kJe=Ly();function FJe(t,e,r){(r!==void 0&&!kJe(t[e],r)||r===void 0&&!(e in t))&&QJe(t,e,r)}rre.exports=FJe});var ire=U((CRt,nre)=>{function RJe(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}nre.exports=RJe});var ore=U((ERt,sre)=>{var TJe=ire(),NJe=TJe();sre.exports=NJe});var $N=U((Nw,Gy)=>{var LJe=Wl(),ure=typeof Nw=="object"&&Nw&&!Nw.nodeType&&Nw,are=ure&&typeof Gy=="object"&&Gy&&!Gy.nodeType&&Gy,OJe=are&&are.exports===ure,lre=OJe?LJe.Buffer:void 0,cre=lre?lre.allocUnsafe:void 0;function MJe(t,e){if(e)return t.slice();var r=t.length,o=cre?cre(r):new t.constructor(r);return t.copy(o),o}Gy.exports=MJe});var jS=U((IRt,fre)=>{var Are=ON();function UJe(t){var e=new t.constructor(t.byteLength);return new Are(e).set(new Are(t)),e}fre.exports=UJe});var eL=U((wRt,pre)=>{var _Je=jS();function HJe(t,e){var r=e?_Je(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}pre.exports=HJe});var GS=U((BRt,hre)=>{function qJe(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r<o;)e[r]=t[r];return e}hre.exports=qJe});var mre=U((vRt,dre)=>{var jJe=ol(),gre=Object.create,GJe=function(){function t(){}return function(e){if(!jJe(e))return{};if(gre)return gre(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();dre.exports=GJe});var WS=U((DRt,yre)=>{var WJe=jN(),YJe=WJe(Object.getPrototypeOf,Object);yre.exports=YJe});var tL=U((SRt,Cre)=>{var KJe=mre(),VJe=WS(),JJe=US();function zJe(t){return typeof t.constructor=="function"&&!JJe(t)?KJe(VJe(t)):{}}Cre.exports=zJe});var Ire=U((PRt,Ere)=>{var XJe=Rw(),ZJe=Xu();function $Je(t){return ZJe(t)&&XJe(t)}Ere.exports=$Je});var rL=U((xRt,Bre)=>{var eze=pd(),tze=WS(),rze=Xu(),nze="[object Object]",ize=Function.prototype,sze=Object.prototype,wre=ize.toString,oze=sze.hasOwnProperty,aze=wre.call(Object);function lze(t){if(!rze(t)||eze(t)!=nze)return!1;var e=tze(t);if(e===null)return!0;var r=oze.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&wre.call(r)==aze}Bre.exports=lze});var nL=U((bRt,vre)=>{function cze(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}vre.exports=cze});var YS=U((QRt,Dre)=>{var uze=qS(),Aze=Ly(),fze=Object.prototype,pze=fze.hasOwnProperty;function hze(t,e,r){var o=t[e];(!(pze.call(t,e)&&Aze(o,r))||r===void 0&&!(e in t))&&uze(t,e,r)}Dre.exports=hze});var gd=U((kRt,Sre)=>{var gze=YS(),dze=qS();function mze(t,e,r,o){var a=!r;r||(r={});for(var n=-1,u=e.length;++n<u;){var A=e[n],p=o?o(r[A],t[A],A,r,t):void 0;p===void 0&&(p=t[A]),a?dze(r,A,p):gze(r,A,p)}return r}Sre.exports=mze});var xre=U((FRt,Pre)=>{function yze(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}Pre.exports=yze});var Qre=U((RRt,bre)=>{var Cze=ol(),Eze=US(),Ize=xre(),wze=Object.prototype,Bze=wze.hasOwnProperty;function vze(t){if(!Cze(t))return Ize(t);var e=Eze(t),r=[];for(var o in t)o=="constructor"&&(e||!Bze.call(t,o))||r.push(o);return r}bre.exports=vze});var Wy=U((TRt,kre)=>{var Dze=qN(),Sze=Qre(),Pze=Rw();function xze(t){return Pze(t)?Dze(t,!0):Sze(t)}kre.exports=xze});var Rre=U((NRt,Fre)=>{var bze=gd(),Qze=Wy();function kze(t){return bze(t,Qze(t))}Fre.exports=kze});var Ure=U((LRt,Mre)=>{var Tre=ZN(),Fze=$N(),Rze=eL(),Tze=GS(),Nze=tL(),Nre=Pw(),Lre=Yl(),Lze=Ire(),Oze=bw(),Mze=PS(),Uze=ol(),_ze=rL(),Hze=MS(),Ore=nL(),qze=Rre();function jze(t,e,r,o,a,n,u){var A=Ore(t,r),p=Ore(e,r),h=u.get(p);if(h){Tre(t,r,h);return}var E=n?n(A,p,r+"",t,e,u):void 0,w=E===void 0;if(w){var v=Lre(p),b=!v&&Oze(p),C=!v&&!b&&Hze(p);E=p,v||b||C?Lre(A)?E=A:Lze(A)?E=Tze(A):b?(w=!1,E=Fze(p,!0)):C?(w=!1,E=Rze(p,!0)):E=[]:_ze(p)||Nre(p)?(E=A,Nre(A)?E=qze(A):(!Uze(A)||Mze(A))&&(E=Nze(p))):w=!1}w&&(u.set(p,E),a(E,p,o,n,u),u.delete(p)),Tre(t,r,E)}Mre.exports=jze});var qre=U((ORt,Hre)=>{var Gze=QS(),Wze=ZN(),Yze=ore(),Kze=Ure(),Vze=ol(),Jze=Wy(),zze=nL();function _re(t,e,r,o,a){t!==e&&Yze(e,function(n,u){if(a||(a=new Gze),Vze(n))Kze(t,e,u,r,_re,o,a);else{var A=o?o(zze(t,u),n,u+"",t,e,a):void 0;A===void 0&&(A=n),Wze(t,u,A)}},Jze)}Hre.exports=_re});var iL=U((MRt,jre)=>{function Xze(t){return t}jre.exports=Xze});var Wre=U((URt,Gre)=>{function Zze(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}Gre.exports=Zze});var sL=U((_Rt,Kre)=>{var $ze=Wre(),Yre=Math.max;function eXe(t,e,r){return e=Yre(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=Yre(o.length-e,0),u=Array(n);++a<n;)u[a]=o[e+a];a=-1;for(var A=Array(e+1);++a<e;)A[a]=o[a];return A[e]=r(u),$ze(t,this,A)}}Kre.exports=eXe});var Jre=U((HRt,Vre)=>{function tXe(t){return function(){return t}}Vre.exports=tXe});var Zre=U((qRt,Xre)=>{var rXe=Jre(),zre=XN(),nXe=iL(),iXe=zre?function(t,e){return zre(t,"toString",{configurable:!0,enumerable:!1,value:rXe(e),writable:!0})}:nXe;Xre.exports=iXe});var ene=U((jRt,$re)=>{var sXe=800,oXe=16,aXe=Date.now;function lXe(t){var e=0,r=0;return function(){var o=aXe(),a=oXe-(o-r);if(r=o,a>0){if(++e>=sXe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}$re.exports=lXe});var oL=U((GRt,tne)=>{var cXe=Zre(),uXe=ene(),AXe=uXe(cXe);tne.exports=AXe});var nne=U((WRt,rne)=>{var fXe=iL(),pXe=sL(),hXe=oL();function gXe(t,e){return hXe(pXe(t,e,fXe),t+"")}rne.exports=gXe});var sne=U((YRt,ine)=>{var dXe=Ly(),mXe=Rw(),yXe=Qw(),CXe=ol();function EXe(t,e,r){if(!CXe(r))return!1;var o=typeof e;return(o=="number"?mXe(r)&&yXe(e,r.length):o=="string"&&e in r)?dXe(r[e],t):!1}ine.exports=EXe});var ane=U((KRt,one)=>{var IXe=nne(),wXe=sne();function BXe(t){return IXe(function(e,r){var o=-1,a=r.length,n=a>1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,u&&wXe(r[0],r[1],u)&&(n=a<3?void 0:n,a=1),e=Object(e);++o<a;){var A=r[o];A&&t(e,A,o,n)}return e})}one.exports=BXe});var cne=U((VRt,lne)=>{var vXe=qre(),DXe=ane(),SXe=DXe(function(t,e,r,o){vXe(t,e,r,o)});lne.exports=SXe});var Ye={};Yt(Ye,{AsyncActions:()=>cL,BufferStream:()=>lL,CachingStrategy:()=>Ine,DefaultStream:()=>uL,allSettledSafe:()=>jc,assertNever:()=>fL,bufferStream:()=>Jy,buildIgnorePattern:()=>RXe,convertMapsToIndexableObjects:()=>KS,dynamicRequire:()=>Vp,escapeRegExp:()=>xXe,getArrayWithDefault:()=>Yy,getFactoryWithDefault:()=>Df,getMapWithDefault:()=>Ky,getSetWithDefault:()=>dd,isIndexableObject:()=>aL,isPathLike:()=>TXe,isTaggedYarnVersion:()=>PXe,makeDeferred:()=>yne,mapAndFilter:()=>Zu,mapAndFind:()=>Ow,mergeIntoTarget:()=>Bne,overrideType:()=>bXe,parseBoolean:()=>Mw,parseOptionalBoolean:()=>wne,prettifyAsyncErrors:()=>Vy,prettifySyncErrors:()=>pL,releaseAfterUseAsync:()=>kXe,replaceEnvVariables:()=>hL,sortMap:()=>Pa,toMerged:()=>NXe,tryParseOptionalBoolean:()=>gL,validateEnum:()=>QXe});function PXe(t){return!!(gne.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function xXe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function bXe(t){}function fL(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function QXe(t,e){let r=Object.values(t);if(!r.includes(e))throw new ot(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(o=>JSON.stringify(o)).join(", ")})`);return e}function Zu(t,e){let r=[];for(let o of t){let a=e(o);a!==dne&&r.push(a)}return r}function Ow(t,e){for(let r of t){let o=e(r);if(o!==mne)return o}}function aL(t){return typeof t=="object"&&t!==null}async function jc(t){let e=await Promise.allSettled(t),r=[];for(let o of e){if(o.status==="rejected")throw o.reason;r.push(o.value)}return r}function KS(t){if(t instanceof Map&&(t=Object.fromEntries(t)),aL(t))for(let e of Object.keys(t)){let r=t[e];aL(r)&&(t[e]=KS(r))}return t}function Df(t,e,r){let o=t.get(e);return typeof o>"u"&&t.set(e,o=r()),o}function Yy(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function dd(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function Ky(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function kXe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function Vy(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function pL(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Jy(t){return await new Promise((e,r)=>{let o=[];t.on("error",a=>{r(a)}),t.on("data",a=>{o.push(a)}),t.on("end",()=>{e(Buffer.concat(o))})})}function yne(){let t,e;return{promise:new Promise((o,a)=>{t=o,e=a}),resolve:t,reject:e}}function Cne(t){return Lw(ue.fromPortablePath(t))}function Ene(path){let physicalPath=ue.fromPortablePath(path),currentCacheEntry=Lw.cache[physicalPath];delete Lw.cache[physicalPath];let result;try{result=Cne(physicalPath);let freshCacheEntry=Lw.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Lw.cache[physicalPath]=currentCacheEntry}return result}function FXe(t){let e=une.get(t),r=ae.statSync(t);if((e==null?void 0:e.mtime)===r.mtimeMs)return e.instance;let o=Ene(t);return une.set(t,{mtime:r.mtimeMs,instance:o}),o}function Vp(t,{cachingStrategy:e=2}={}){switch(e){case 0:return Ene(t);case 1:return FXe(t);case 2:return Cne(t);default:throw new Error("Unsupported caching strategy")}}function Pa(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]<A[u]?-1:A[n]>A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function RXe(t){return t.length===0?null:t.map(e=>`(${pne.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function hL(t,{env:e}){let r=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return t.replace(r,(...o)=>{let{variableName:a,colon:n,fallback:u}=o[o.length-1],A=Object.prototype.hasOwnProperty.call(e,a),p=e[a];if(p||A&&!n)return p;if(u!=null)return u;throw new ot(`Environment variable not found (${a})`)})}function Mw(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function wne(t){return typeof t>"u"?t:Mw(t)}function gL(t){try{return wne(t)}catch{return null}}function TXe(t){return!!(ue.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function Bne(t,...e){let r=u=>({value:u}),o=r(t),a=e.map(u=>r(u)),{value:n}=(0,fne.default)(o,...a,(u,A)=>{if(Array.isArray(u)&&Array.isArray(A)){for(let p of A)u.find(h=>(0,Ane.default)(h,p))||u.push(p);return u}});return n}function NXe(...t){return Bne({},...t)}var Ane,fne,pne,hne,gne,AL,dne,mne,lL,cL,uL,Lw,une,Ine,Kl=dt(()=>{bt();_t();Ane=tt(Zte()),fne=tt(cne()),pne=tt(Jo()),hne=tt(rd()),gne=tt(si()),AL=Ie("stream");dne=Symbol();Zu.skip=dne;mne=Symbol();Ow.skip=mne;lL=class extends AL.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};cL=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,hne.default)(e)}set(e,r){let o=this.deferred.get(e);typeof o>"u"&&this.deferred.set(e,o=yne());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&o.resolve()},n=>{this.promises.get(e)===a&&o.reject(n)}),o.promise}reduce(e,r){let o=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(o))}async wait(){await Promise.all(this.promises.values())}},uL=class extends AL.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},Lw=eval("require");une=new Map;Ine=(o=>(o[o.NoCache=0]="NoCache",o[o.FsTime=1]="FsTime",o[o.Node=2]="Node",o))(Ine||{})});var zy,dL,mL,vne=dt(()=>{zy=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))(zy||{}),dL=(o=>(o.Dependency="Dependency",o.PeerDependency="PeerDependency",o.PeerDependencyMeta="PeerDependencyMeta",o))(dL||{}),mL=(o=>(o.Inactive="inactive",o.Redundant="redundant",o.Active="active",o))(mL||{})});var ye={};Yt(ye,{LogLevel:()=>XS,Style:()=>CL,Type:()=>Bt,addLogFilterSupport:()=>Hw,applyColor:()=>xa,applyHyperlink:()=>Xy,applyStyle:()=>zS,json:()=>md,jsonOrPretty:()=>MXe,mark:()=>BL,pretty:()=>Kt,prettyField:()=>$u,prettyList:()=>wL,supportsColor:()=>JS,supportsHyperlinks:()=>IL,tuple:()=>Gc});function Gc(t,e){return[e,t]}function zS(t,e,r){return t.get("enableColors")&&r&2&&(e=_w.default.bold(e)),e}function xa(t,e,r){if(!t.get("enableColors"))return e;let o=LXe.get(r);if(o===null)return e;let a=typeof o>"u"?r:EL.level>=3?o[0]:o[1],n=typeof a=="number"?yL.ansi256(a):a.startsWith("#")?yL.hex(a):yL[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function Xy(t,e,r){return t.get("enableHyperlinks")?OXe?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Kt(t,e,r){if(e===null)return xa(t,"null",Bt.NULL);if(Object.prototype.hasOwnProperty.call(VS,r))return VS[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return xa(t,e,r)}function wL(t,e,r,{separator:o=", "}={}){return[...e].map(a=>Kt(t,a,r)).join(o)}function md(t,e){if(t===null)return null;if(Object.prototype.hasOwnProperty.call(VS,e))return VS[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function MXe(t,e,[r,o]){return t?md(r,o):Kt(e,r,o)}function BL(t){return{Check:xa(t,"\u2713","green"),Cross:xa(t,"\u2718","red"),Question:xa(t,"?","cyan")}}function $u(t,{label:e,value:[r,o]}){return`${Kt(t,e,Bt.CODE)}: ${Kt(t,r,o)}`}function Hw(t,{configuration:e}){let r=e.get("logFilters"),o=new Map,a=new Map,n=[];for(let w of r){let v=w.get("level");if(typeof v>"u")continue;let b=w.get("code");typeof b<"u"&&o.set(b,v);let C=w.get("text");typeof C<"u"&&a.set(C,v);let R=w.get("pattern");typeof R<"u"&&n.push([Dne.default.matcher(R,{contains:!0}),v])}n.reverse();let u=(w,v,b)=>{if(w===null||w===0)return b;let C=a.size>0||n.length>0?(0,Sne.default)(v):v;if(a.size>0){let R=a.get(C);if(typeof R<"u")return R??b}if(n.length>0){for(let[R,L]of n)if(R(C))return L??b}if(o.size>0){let R=o.get(Vu(w));if(typeof R<"u")return R??b}return b},A=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(w,v,b,C){switch(u(v,b,C)){case"info":A.call(w,v,b);break;case"warning":p.call(w,v??0,b);break;case"error":h.call(w,v??0,b);break}};t.reportInfo=function(...w){return E(this,...w,"info")},t.reportWarning=function(...w){return E(this,...w,"warning")},t.reportError=function(...w){return E(this,...w,"error")}}var _w,Uw,Dne,Sne,Pne,Bt,CL,EL,JS,IL,yL,LXe,al,VS,OXe,XS,Jl=dt(()=>{bt();_w=tt(dN()),Uw=tt(Xg());_t();Dne=tt(Jo()),Sne=tt(SS()),Pne=Ie("util");eS();Ks();Bt={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},CL=(e=>(e[e.BOLD=2]="BOLD",e))(CL||{}),EL=Uw.default.GITHUB_ACTIONS?{level:2}:_w.default.supportsColor?{level:_w.default.supportsColor.level}:{level:0},JS=EL.level!==0,IL=JS&&!Uw.default.GITHUB_ACTIONS&&!Uw.default.CIRCLE&&!Uw.default.GITLAB,yL=new _w.default.Instance(EL),LXe=new Map([[Bt.NO_HINT,null],[Bt.NULL,["#a853b5",129]],[Bt.SCOPE,["#d75f00",166]],[Bt.NAME,["#d7875f",173]],[Bt.RANGE,["#00afaf",37]],[Bt.REFERENCE,["#87afff",111]],[Bt.NUMBER,["#ffd700",220]],[Bt.PATH,["#d75fd7",170]],[Bt.URL,["#d75fd7",170]],[Bt.ADDED,["#5faf00",70]],[Bt.REMOVED,["#d70000",160]],[Bt.CODE,["#87afff",111]],[Bt.SIZE,["#ffd700",220]]]),al=t=>t,VS={[Bt.INSPECT]:al({pretty:(t,e)=>(0,Pne.inspect)(e,{depth:1/0,colors:t.get("enableColors"),compact:!0,breakLength:1/0}),json:t=>t}),[Bt.NUMBER]:al({pretty:(t,e)=>xa(t,`${e}`,Bt.NUMBER),json:t=>t}),[Bt.IDENT]:al({pretty:(t,e)=>cs(t,e),json:t=>nn(t)}),[Bt.LOCATOR]:al({pretty:(t,e)=>kr(t,e),json:t=>Vl(t)}),[Bt.DESCRIPTOR]:al({pretty:(t,e)=>Ln(t,e),json:t=>ba(t)}),[Bt.RESOLUTION]:al({pretty:(t,{descriptor:e,locator:r})=>qw(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:ba(t),locator:e!==null?Vl(e):null})}),[Bt.DEPENDENT]:al({pretty:(t,{locator:e,descriptor:r})=>vL(t,e,r),json:({locator:t,descriptor:e})=>({locator:Vl(t),descriptor:ba(e)})}),[Bt.PACKAGE_EXTENSION]:al({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${cs(t,e.parentDescriptor)} \u27A4 ${xa(t,"dependencies",Bt.CODE)} \u27A4 ${cs(t,e.descriptor)}`;case"PeerDependency":return`${cs(t,e.parentDescriptor)} \u27A4 ${xa(t,"peerDependencies",Bt.CODE)} \u27A4 ${cs(t,e.descriptor)}`;case"PeerDependencyMeta":return`${cs(t,e.parentDescriptor)} \u27A4 ${xa(t,"peerDependenciesMeta",Bt.CODE)} \u27A4 ${cs(t,Ys(e.selector))} \u27A4 ${xa(t,e.key,Bt.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${nn(t.parentDescriptor)} > ${nn(t.descriptor)}`;case"PeerDependency":return`${nn(t.parentDescriptor)} >> ${nn(t.descriptor)}`;case"PeerDependencyMeta":return`${nn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[Bt.SETTING]:al({pretty:(t,e)=>(t.get(e),Xy(t,xa(t,e,Bt.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[Bt.DURATION]:al({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),o=Math.ceil((e-r*60*1e3)/1e3);return o===0?`${r}m`:`${r}m ${o}s`}else{let r=Math.floor(e/1e3),o=e-r*1e3;return o===0?`${r}s`:`${r}s ${o}ms`}},json:t=>t}),[Bt.SIZE]:al({pretty:(t,e)=>{let r=["KB","MB","GB","TB"],o=r.length;for(;o>1&&e<1024**o;)o-=1;let a=1024**o,n=Math.floor(e*100/a)/100;return xa(t,`${n} ${r[o-1]}`,Bt.NUMBER)},json:t=>t}),[Bt.PATH]:al({pretty:(t,e)=>xa(t,ue.fromPortablePath(e),Bt.PATH),json:t=>ue.fromPortablePath(t)}),[Bt.MARKDOWN]:al({pretty:(t,{text:e,format:r,paragraphs:o})=>Bo(e,{format:r,paragraphs:o}),json:({text:t})=>t})};OXe=!!process.env.KONSOLE_VERSION;XS=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))(XS||{})});var bne=U((sTt,xne)=>{"use strict";xne.exports=(...t)=>[...new Set([].concat(...t))]});var DL=U((oTt,Fne)=>{"use strict";var UXe=Ie("stream"),Qne=UXe.PassThrough,_Xe=Array.prototype.slice;Fne.exports=HXe;function HXe(){let t=[],e=_Xe.call(arguments),r=!1,o=e[e.length-1];o&&!Array.isArray(o)&&o.pipe==null?e.pop():o={};let a=o.end!==!1,n=o.pipeError===!0;o.objectMode==null&&(o.objectMode=!0),o.highWaterMark==null&&(o.highWaterMark=64*1024);let u=Qne(o);function A(){for(let E=0,w=arguments.length;E<w;E++)t.push(kne(arguments[E],o));return p(),this}function p(){if(r)return;r=!0;let E=t.shift();if(!E){process.nextTick(h);return}Array.isArray(E)||(E=[E]);let w=E.length+1;function v(){--w>0||(r=!1,p())}function b(C){function R(){C.removeListener("merge2UnpipeEnd",R),C.removeListener("end",R),n&&C.removeListener("error",L),v()}function L(_){u.emit("error",_)}if(C._readableState.endEmitted)return v();C.on("merge2UnpipeEnd",R),C.on("end",R),n&&C.on("error",L),C.pipe(u,{end:!1}),C.resume()}for(let C=0;C<E.length;C++)b(E[C]);v()}function h(){r=!1,u.emit("queueDrain"),a&&u.end()}return u.setMaxListeners(0),u.add=A,u.on("unpipe",function(E){E.emit("merge2UnpipeEnd")}),e.length&&A.apply(null,e),u}function kne(t,e){if(Array.isArray(t))for(let r=0,o=t.length;r<o;r++)t[r]=kne(t[r],e);else{if(!t._readableState&&t.pipe&&(t=t.pipe(Qne(e))),!t._readableState||!t.pause||!t.pipe)throw new Error("Only readable stream can be merged.");t.pause()}return t}});var Rne=U(Zy=>{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});Zy.splitWhen=Zy.flatten=void 0;function qXe(t){return t.reduce((e,r)=>[].concat(e,r),[])}Zy.flatten=qXe;function jXe(t,e){let r=[[]],o=0;for(let a of t)e(a)?(o++,r[o]=[]):r[o].push(a);return r}Zy.splitWhen=jXe});var Tne=U(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.isEnoentCodeError=void 0;function GXe(t){return t.code==="ENOENT"}ZS.isEnoentCodeError=GXe});var Nne=U($S=>{"use strict";Object.defineProperty($S,"__esModule",{value:!0});$S.createDirentFromStats=void 0;var SL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function WXe(t,e){return new SL(t,e)}$S.createDirentFromStats=WXe});var Lne=U(eA=>{"use strict";Object.defineProperty(eA,"__esModule",{value:!0});eA.removeLeadingDotSegment=eA.escape=eA.makeAbsolute=eA.unixify=void 0;var YXe=Ie("path"),KXe=2,VXe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function JXe(t){return t.replace(/\\/g,"/")}eA.unixify=JXe;function zXe(t,e){return YXe.resolve(t,e)}eA.makeAbsolute=zXe;function XXe(t){return t.replace(VXe,"\\$2")}eA.escape=XXe;function ZXe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(KXe)}return t}eA.removeLeadingDotSegment=ZXe});var Mne=U((ATt,One)=>{One.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var Hne=U((fTt,_ne)=>{var $Xe=Mne(),Une={"{":"}","(":")","[":"]"},eZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,o=-2,a=-2,n=-2,u=-2;e<t.length;){if(t[e]==="*"||t[e+1]==="?"&&/[\].+)]/.test(t[e])||o!==-1&&t[e]==="["&&t[e+1]!=="]"&&(o<e&&(o=t.indexOf("]",e)),o>e&&(u===-1||u>o||(u=t.indexOf("\\",e),u===-1||u>o)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(u=t.indexOf("\\",e),u===-1||u>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(u=t.indexOf("\\",e),u===-1||u>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(r<e&&(r=t.indexOf("|",e)),r!==-1&&t[r+1]!==")"&&(n=t.indexOf(")",r),n>r&&(u=t.indexOf("\\",r),u===-1||u>n))))return!0;if(t[e]==="\\"){var A=t[e+1];e+=2;var p=Une[A];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},tZe=function(t){if(t[0]==="!")return!0;for(var e=0;e<t.length;){if(/[*?{}()[\]]/.test(t[e]))return!0;if(t[e]==="\\"){var r=t[e+1];e+=2;var o=Une[r];if(o){var a=t.indexOf(o,e);a!==-1&&(e=a+1)}if(t[e]==="!")return!0}else e++}return!1};_ne.exports=function(e,r){if(typeof e!="string"||e==="")return!1;if($Xe(e))return!0;var o=eZe;return r&&r.strict===!1&&(o=tZe),o(e)}});var jne=U((pTt,qne)=>{"use strict";var rZe=Hne(),nZe=Ie("path").posix.dirname,iZe=Ie("os").platform()==="win32",PL="/",sZe=/\\/g,oZe=/[\{\[].*[\}\]]$/,aZe=/(^|[^\\])([\{\[]|\([^\)]+$)/,lZe=/\\([\!\*\?\|\[\]\(\)\{\}])/g;qne.exports=function(e,r){var o=Object.assign({flipBackslashes:!0},r);o.flipBackslashes&&iZe&&e.indexOf(PL)<0&&(e=e.replace(sZe,PL)),oZe.test(e)&&(e+=PL),e+="a";do e=nZe(e);while(rZe(e)||aZe.test(e));return e.replace(lZe,"$1")}});var Xne=U(Or=>{"use strict";Object.defineProperty(Or,"__esModule",{value:!0});Or.matchAny=Or.convertPatternsToRe=Or.makeRe=Or.getPatternParts=Or.expandBraceExpansion=Or.expandPatternsWithBraceExpansion=Or.isAffectDepthOfReadingPattern=Or.endsWithSlashGlobStar=Or.hasGlobStar=Or.getBaseDirectory=Or.isPatternRelatedToParentDirectory=Or.getPatternsOutsideCurrentDirectory=Or.getPatternsInsideCurrentDirectory=Or.getPositivePatterns=Or.getNegativePatterns=Or.isPositivePattern=Or.isNegativePattern=Or.convertToNegativePattern=Or.convertToPositivePattern=Or.isDynamicPattern=Or.isStaticPattern=void 0;var cZe=Ie("path"),uZe=jne(),xL=Jo(),Gne="**",AZe="\\",fZe=/[*?]|^!/,pZe=/\[[^[]*]/,hZe=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,gZe=/[!*+?@]\([^(]*\)/,dZe=/,|\.\./;function Wne(t,e={}){return!Yne(t,e)}Or.isStaticPattern=Wne;function Yne(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(AZe)||fZe.test(t)||pZe.test(t)||hZe.test(t)||e.extglob!==!1&&gZe.test(t)||e.braceExpansion!==!1&&mZe(t))}Or.isDynamicPattern=Yne;function mZe(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let o=t.slice(e,r);return dZe.test(o)}function yZe(t){return eP(t)?t.slice(1):t}Or.convertToPositivePattern=yZe;function CZe(t){return"!"+t}Or.convertToNegativePattern=CZe;function eP(t){return t.startsWith("!")&&t[1]!=="("}Or.isNegativePattern=eP;function Kne(t){return!eP(t)}Or.isPositivePattern=Kne;function EZe(t){return t.filter(eP)}Or.getNegativePatterns=EZe;function IZe(t){return t.filter(Kne)}Or.getPositivePatterns=IZe;function wZe(t){return t.filter(e=>!bL(e))}Or.getPatternsInsideCurrentDirectory=wZe;function BZe(t){return t.filter(bL)}Or.getPatternsOutsideCurrentDirectory=BZe;function bL(t){return t.startsWith("..")||t.startsWith("./..")}Or.isPatternRelatedToParentDirectory=bL;function vZe(t){return uZe(t,{flipBackslashes:!1})}Or.getBaseDirectory=vZe;function DZe(t){return t.includes(Gne)}Or.hasGlobStar=DZe;function Vne(t){return t.endsWith("/"+Gne)}Or.endsWithSlashGlobStar=Vne;function SZe(t){let e=cZe.basename(t);return Vne(t)||Wne(e)}Or.isAffectDepthOfReadingPattern=SZe;function PZe(t){return t.reduce((e,r)=>e.concat(Jne(r)),[])}Or.expandPatternsWithBraceExpansion=PZe;function Jne(t){return xL.braces(t,{expand:!0,nodupes:!0})}Or.expandBraceExpansion=Jne;function xZe(t,e){let{parts:r}=xL.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}Or.getPatternParts=xZe;function zne(t,e){return xL.makeRe(t,e)}Or.makeRe=zne;function bZe(t,e){return t.map(r=>zne(r,e))}Or.convertPatternsToRe=bZe;function QZe(t,e){return e.some(r=>r.test(t))}Or.matchAny=QZe});var $ne=U(tP=>{"use strict";Object.defineProperty(tP,"__esModule",{value:!0});tP.merge=void 0;var kZe=DL();function FZe(t){let e=kZe(t);return t.forEach(r=>{r.once("error",o=>e.emit("error",o))}),e.once("close",()=>Zne(t)),e.once("end",()=>Zne(t)),e}tP.merge=FZe;function Zne(t){t.forEach(e=>e.emit("close"))}});var eie=U($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.isEmpty=$y.isString=void 0;function RZe(t){return typeof t=="string"}$y.isString=RZe;function TZe(t){return t===""}$y.isEmpty=TZe});var Sf=U(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.string=So.stream=So.pattern=So.path=So.fs=So.errno=So.array=void 0;var NZe=Rne();So.array=NZe;var LZe=Tne();So.errno=LZe;var OZe=Nne();So.fs=OZe;var MZe=Lne();So.path=MZe;var UZe=Xne();So.pattern=UZe;var _Ze=$ne();So.stream=_Ze;var HZe=eie();So.string=HZe});var nie=U(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.convertPatternGroupToTask=Po.convertPatternGroupsToTasks=Po.groupPatternsByBaseDirectory=Po.getNegativePatternsAsPositive=Po.getPositivePatterns=Po.convertPatternsToTasks=Po.generate=void 0;var Pf=Sf();function qZe(t,e){let r=tie(t),o=rie(t,e.ignore),a=r.filter(p=>Pf.pattern.isStaticPattern(p,e)),n=r.filter(p=>Pf.pattern.isDynamicPattern(p,e)),u=QL(a,o,!1),A=QL(n,o,!0);return u.concat(A)}Po.generate=qZe;function QL(t,e,r){let o=[],a=Pf.pattern.getPatternsOutsideCurrentDirectory(t),n=Pf.pattern.getPatternsInsideCurrentDirectory(t),u=kL(a),A=kL(n);return o.push(...FL(u,e,r)),"."in A?o.push(RL(".",n,e,r)):o.push(...FL(A,e,r)),o}Po.convertPatternsToTasks=QL;function tie(t){return Pf.pattern.getPositivePatterns(t)}Po.getPositivePatterns=tie;function rie(t,e){return Pf.pattern.getNegativePatterns(t).concat(e).map(Pf.pattern.convertToPositivePattern)}Po.getNegativePatternsAsPositive=rie;function kL(t){let e={};return t.reduce((r,o)=>{let a=Pf.pattern.getBaseDirectory(o);return a in r?r[a].push(o):r[a]=[o],r},e)}Po.groupPatternsByBaseDirectory=kL;function FL(t,e,r){return Object.keys(t).map(o=>RL(o,t[o],e,r))}Po.convertPatternGroupsToTasks=FL;function RL(t,e,r,o){return{dynamic:o,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Pf.pattern.convertToNegativePattern))}}Po.convertPatternGroupToTask=RL});var sie=U(eC=>{"use strict";Object.defineProperty(eC,"__esModule",{value:!0});eC.removeDuplicateSlashes=eC.transform=void 0;var jZe=/(?!^)\/{2,}/g;function GZe(t){return t.map(e=>iie(e))}eC.transform=GZe;function iie(t){return t.replace(jZe,"/")}eC.removeDuplicateSlashes=iie});var aie=U(rP=>{"use strict";Object.defineProperty(rP,"__esModule",{value:!0});rP.read=void 0;function WZe(t,e,r){e.fs.lstat(t,(o,a)=>{if(o!==null){oie(r,o);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){TL(r,a);return}e.fs.stat(t,(n,u)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){oie(r,n);return}TL(r,a);return}e.markSymbolicLink&&(u.isSymbolicLink=()=>!0),TL(r,u)})})}rP.read=WZe;function oie(t,e){t(e)}function TL(t,e){t(null,e)}});var lie=U(nP=>{"use strict";Object.defineProperty(nP,"__esModule",{value:!0});nP.read=void 0;function YZe(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let o=e.fs.statSync(t);return e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),o}catch(o){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw o}}nP.read=YZe});var cie=U(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});Jp.createFileSystemAdapter=Jp.FILE_SYSTEM_ADAPTER=void 0;var iP=Ie("fs");Jp.FILE_SYSTEM_ADAPTER={lstat:iP.lstat,stat:iP.stat,lstatSync:iP.lstatSync,statSync:iP.statSync};function KZe(t){return t===void 0?Jp.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},Jp.FILE_SYSTEM_ADAPTER),t)}Jp.createFileSystemAdapter=KZe});var uie=U(LL=>{"use strict";Object.defineProperty(LL,"__esModule",{value:!0});var VZe=cie(),NL=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=VZe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};LL.default=NL});var yd=U(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.statSync=zp.stat=zp.Settings=void 0;var Aie=aie(),JZe=lie(),OL=uie();zp.Settings=OL.default;function zZe(t,e,r){if(typeof e=="function"){Aie.read(t,ML(),e);return}Aie.read(t,ML(e),r)}zp.stat=zZe;function XZe(t,e){let r=ML(e);return JZe.read(t,r)}zp.statSync=XZe;function ML(t={}){return t instanceof OL.default?t:new OL.default(t)}});var pie=U((DTt,fie)=>{fie.exports=ZZe;function ZZe(t,e){var r,o,a,n=!0;Array.isArray(t)?(r=[],o=t.length):(a=Object.keys(t),r={},o=a.length);function u(p){function h(){e&&e(p,r),e=null}n?process.nextTick(h):h()}function A(p,h,E){r[p]=E,(--o===0||h)&&u(h)}o?a?a.forEach(function(p){t[p](function(h,E){A(p,h,E)})}):t.forEach(function(p,h){p(function(E,w){A(h,E,w)})}):u(null),n=!1}});var UL=U(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});oP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var sP=process.versions.node.split(".");if(sP[0]===void 0||sP[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var hie=Number.parseInt(sP[0],10),$Ze=Number.parseInt(sP[1],10),gie=10,e$e=10,t$e=hie>gie,r$e=hie===gie&&$Ze>=e$e;oP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=t$e||r$e});var die=U(aP=>{"use strict";Object.defineProperty(aP,"__esModule",{value:!0});aP.createDirentFromStats=void 0;var _L=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function n$e(t,e){return new _L(t,e)}aP.createDirentFromStats=n$e});var HL=U(lP=>{"use strict";Object.defineProperty(lP,"__esModule",{value:!0});lP.fs=void 0;var i$e=die();lP.fs=i$e});var qL=U(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});cP.joinPathSegments=void 0;function s$e(t,e,r){return t.endsWith(r)?t+e:t+r+e}cP.joinPathSegments=s$e});var wie=U(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.readdir=Xp.readdirWithFileTypes=Xp.read=void 0;var o$e=yd(),mie=pie(),a$e=UL(),yie=HL(),Cie=qL();function l$e(t,e,r){if(!e.stats&&a$e.IS_SUPPORT_READDIR_WITH_FILE_TYPES){Eie(t,e,r);return}Iie(t,e,r)}Xp.read=l$e;function Eie(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(o,a)=>{if(o!==null){uP(r,o);return}let n=a.map(A=>({dirent:A,name:A.name,path:Cie.joinPathSegments(t,A.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){jL(r,n);return}let u=n.map(A=>c$e(A,e));mie(u,(A,p)=>{if(A!==null){uP(r,A);return}jL(r,p)})})}Xp.readdirWithFileTypes=Eie;function c$e(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(o,a)=>{if(o!==null){if(e.throwErrorOnBrokenSymbolicLink){r(o);return}r(null,t);return}t.dirent=yie.fs.createDirentFromStats(t.name,a),r(null,t)})}}function Iie(t,e,r){e.fs.readdir(t,(o,a)=>{if(o!==null){uP(r,o);return}let n=a.map(u=>{let A=Cie.joinPathSegments(t,u,e.pathSegmentSeparator);return p=>{o$e.stat(A,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let w={name:u,path:A,dirent:yie.fs.createDirentFromStats(u,E)};e.stats&&(w.stats=E),p(null,w)})}});mie(n,(u,A)=>{if(u!==null){uP(r,u);return}jL(r,A)})})}Xp.readdir=Iie;function uP(t,e){t(e)}function jL(t,e){t(null,e)}});var Pie=U(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.readdir=Zp.readdirWithFileTypes=Zp.read=void 0;var u$e=yd(),A$e=UL(),Bie=HL(),vie=qL();function f$e(t,e){return!e.stats&&A$e.IS_SUPPORT_READDIR_WITH_FILE_TYPES?Die(t,e):Sie(t,e)}Zp.read=f$e;function Die(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(o=>{let a={dirent:o,name:o.name,path:vie.joinPathSegments(t,o.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=Bie.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}Zp.readdirWithFileTypes=Die;function Sie(t,e){return e.fs.readdirSync(t).map(o=>{let a=vie.joinPathSegments(t,o,e.pathSegmentSeparator),n=u$e.statSync(a,e.fsStatSettings),u={name:o,path:a,dirent:Bie.fs.createDirentFromStats(o,n)};return e.stats&&(u.stats=n),u})}Zp.readdir=Sie});var xie=U($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.createFileSystemAdapter=$p.FILE_SYSTEM_ADAPTER=void 0;var tC=Ie("fs");$p.FILE_SYSTEM_ADAPTER={lstat:tC.lstat,stat:tC.stat,lstatSync:tC.lstatSync,statSync:tC.statSync,readdir:tC.readdir,readdirSync:tC.readdirSync};function p$e(t){return t===void 0?$p.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},$p.FILE_SYSTEM_ADAPTER),t)}$p.createFileSystemAdapter=p$e});var bie=U(YL=>{"use strict";Object.defineProperty(YL,"__esModule",{value:!0});var h$e=Ie("path"),g$e=yd(),d$e=xie(),WL=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=d$e.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,h$e.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new g$e.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};YL.default=WL});var AP=U(e0=>{"use strict";Object.defineProperty(e0,"__esModule",{value:!0});e0.Settings=e0.scandirSync=e0.scandir=void 0;var Qie=wie(),m$e=Pie(),KL=bie();e0.Settings=KL.default;function y$e(t,e,r){if(typeof e=="function"){Qie.read(t,VL(),e);return}Qie.read(t,VL(e),r)}e0.scandir=y$e;function C$e(t,e){let r=VL(e);return m$e.read(t,r)}e0.scandirSync=C$e;function VL(t={}){return t instanceof KL.default?t:new KL.default(t)}});var Fie=U((NTt,kie)=>{"use strict";function E$e(t){var e=new t,r=e;function o(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:o,release:a}}kie.exports=E$e});var Tie=U((LTt,JL)=>{"use strict";var I$e=Fie();function Rie(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var o=I$e(w$e),a=null,n=null,u=0,A=null,p={push:R,drain:zl,saturated:zl,pause:E,paused:!1,concurrency:r,running:h,resume:b,idle:C,length:w,getQueue:v,unshift:L,empty:zl,kill:V,killAndDrain:re,error:oe};return p;function h(){return u}function E(){p.paused=!0}function w(){for(var pe=a,he=0;pe;)pe=pe.next,he++;return he}function v(){for(var pe=a,he=[];pe;)he.push(pe.value),pe=pe.next;return he}function b(){if(!!p.paused){p.paused=!1;for(var pe=0;pe<p.concurrency;pe++)u++,_()}}function C(){return u===0&&p.length()===0}function R(pe,he){var ve=o.get();ve.context=t,ve.release=_,ve.value=pe,ve.callback=he||zl,ve.errorHandler=A,u===p.concurrency||p.paused?n?(n.next=ve,n=ve):(a=ve,n=ve,p.saturated()):(u++,e.call(t,ve.value,ve.worked))}function L(pe,he){var ve=o.get();ve.context=t,ve.release=_,ve.value=pe,ve.callback=he||zl,u===p.concurrency||p.paused?a?(ve.next=a,a=ve):(a=ve,n=ve,p.saturated()):(u++,e.call(t,ve.value,ve.worked))}function _(pe){pe&&o.release(pe);var he=a;he?p.paused?u--:(n===a&&(n=null),a=he.next,he.next=null,e.call(t,he.value,he.worked),n===null&&p.empty()):--u===0&&p.drain()}function V(){a=null,n=null,p.drain=zl}function re(){a=null,n=null,p.drain(),p.drain=zl}function oe(pe){A=pe}}function zl(){}function w$e(){this.value=null,this.callback=zl,this.next=null,this.release=zl,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,o){var a=t.callback,n=t.errorHandler,u=t.value;t.value=null,t.callback=zl,t.errorHandler&&n(r,u),a.call(t.context,r,o),t.release(t)}}function B$e(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function o(E,w){e.call(this,E).then(function(v){w(null,v)},w)}var a=Rie(t,o,r),n=a.push,u=a.unshift;return a.push=A,a.unshift=p,a.drained=h,a;function A(E){var w=new Promise(function(v,b){n(E,function(C,R){if(C){b(C);return}v(R)})});return w.catch(zl),w}function p(E){var w=new Promise(function(v,b){u(E,function(C,R){if(C){b(C);return}v(R)})});return w.catch(zl),w}function h(){var E=a.drain,w=new Promise(function(v){a.drain=function(){E(),v()}});return w}}JL.exports=Rie;JL.exports.promise=B$e});var fP=U(tA=>{"use strict";Object.defineProperty(tA,"__esModule",{value:!0});tA.joinPathSegments=tA.replacePathSegmentSeparator=tA.isAppliedFilter=tA.isFatalError=void 0;function v$e(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}tA.isFatalError=v$e;function D$e(t,e){return t===null||t(e)}tA.isAppliedFilter=D$e;function S$e(t,e){return t.split(/[/\\]/).join(e)}tA.replacePathSegmentSeparator=S$e;function P$e(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}tA.joinPathSegments=P$e});var ZL=U(XL=>{"use strict";Object.defineProperty(XL,"__esModule",{value:!0});var x$e=fP(),zL=class{constructor(e,r){this._root=e,this._settings=r,this._root=x$e.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};XL.default=zL});var tO=U(eO=>{"use strict";Object.defineProperty(eO,"__esModule",{value:!0});var b$e=Ie("events"),Q$e=AP(),k$e=Tie(),pP=fP(),F$e=ZL(),$L=class extends F$e.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=Q$e.scandir,this._emitter=new b$e.EventEmitter,this._queue=k$e(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let o={directory:e,base:r};this._queue.push(o,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(o,a)=>{if(o!==null){r(o,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!pP.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let o=e.path;r!==void 0&&(e.path=pP.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),pP.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&pP.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};eO.default=$L});var Nie=U(nO=>{"use strict";Object.defineProperty(nO,"__esModule",{value:!0});var R$e=tO(),rO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new R$e.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(r=>{T$e(e,r)}),this._reader.onEntry(r=>{this._storage.add(r)}),this._reader.onEnd(()=>{N$e(e,[...this._storage])}),this._reader.read()}};nO.default=rO;function T$e(t,e){t(e)}function N$e(t,e){t(null,e)}});var Lie=U(sO=>{"use strict";Object.defineProperty(sO,"__esModule",{value:!0});var L$e=Ie("stream"),O$e=tO(),iO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new O$e.default(this._root,this._settings),this._stream=new L$e.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};sO.default=iO});var Oie=U(aO=>{"use strict";Object.defineProperty(aO,"__esModule",{value:!0});var M$e=AP(),hP=fP(),U$e=ZL(),oO=class extends U$e.default{constructor(){super(...arguments),this._scandir=M$e.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let o=this._scandir(e,this._settings.fsScandirSettings);for(let a of o)this._handleEntry(a,r)}catch(o){this._handleError(o)}}_handleError(e){if(!!hP.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let o=e.path;r!==void 0&&(e.path=hP.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),hP.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&hP.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,e.path)}_pushToStorage(e){this._storage.add(e)}};aO.default=oO});var Mie=U(cO=>{"use strict";Object.defineProperty(cO,"__esModule",{value:!0});var _$e=Oie(),lO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new _$e.default(this._root,this._settings)}read(){return this._reader.read()}};cO.default=lO});var Uie=U(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});var H$e=Ie("path"),q$e=AP(),uO=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,H$e.sep),this.fsScandirSettings=new q$e.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};AO.default=uO});var dP=U(rA=>{"use strict";Object.defineProperty(rA,"__esModule",{value:!0});rA.Settings=rA.walkStream=rA.walkSync=rA.walk=void 0;var _ie=Nie(),j$e=Lie(),G$e=Mie(),fO=Uie();rA.Settings=fO.default;function W$e(t,e,r){if(typeof e=="function"){new _ie.default(t,gP()).read(e);return}new _ie.default(t,gP(e)).read(r)}rA.walk=W$e;function Y$e(t,e){let r=gP(e);return new G$e.default(t,r).read()}rA.walkSync=Y$e;function K$e(t,e){let r=gP(e);return new j$e.default(t,r).read()}rA.walkStream=K$e;function gP(t={}){return t instanceof fO.default?t:new fO.default(t)}});var mP=U(hO=>{"use strict";Object.defineProperty(hO,"__esModule",{value:!0});var V$e=Ie("path"),J$e=yd(),Hie=Sf(),pO=class{constructor(e){this._settings=e,this._fsStatSettings=new J$e.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return V$e.resolve(this._settings.cwd,e)}_makeEntry(e,r){let o={name:r,path:r,dirent:Hie.fs.createDirentFromStats(r,e)};return this._settings.stats&&(o.stats=e),o}_isFatalError(e){return!Hie.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};hO.default=pO});var mO=U(dO=>{"use strict";Object.defineProperty(dO,"__esModule",{value:!0});var z$e=Ie("stream"),X$e=yd(),Z$e=dP(),$$e=mP(),gO=class extends $$e.default{constructor(){super(...arguments),this._walkStream=Z$e.walkStream,this._stat=X$e.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let o=e.map(this._getFullEntryPath,this),a=new z$e.PassThrough({objectMode:!0});a._write=(n,u,A)=>this._getEntry(o[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===o.length-1&&a.end(),A()}).catch(A);for(let n=0;n<o.length;n++)a.write(n);return a}_getEntry(e,r,o){return this._getStat(e).then(a=>this._makeEntry(a,r)).catch(a=>{if(o.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,o)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):o(a))})}};dO.default=gO});var qie=U(CO=>{"use strict";Object.defineProperty(CO,"__esModule",{value:!0});var eet=dP(),tet=mP(),ret=mO(),yO=class extends tet.default{constructor(){super(...arguments),this._walkAsync=eet.walk,this._readerStream=new ret.default(this._settings)}dynamic(e,r){return new Promise((o,a)=>{this._walkAsync(e,r,(n,u)=>{n===null?o(u):a(n)})})}async static(e,r){let o=[],a=this._readerStream.static(e,r);return new Promise((n,u)=>{a.once("error",u),a.on("data",A=>o.push(A)),a.once("end",()=>n(o))})}};CO.default=yO});var jie=U(IO=>{"use strict";Object.defineProperty(IO,"__esModule",{value:!0});var rC=Sf(),EO=class{constructor(e,r,o){this._patterns=e,this._settings=r,this._micromatchOptions=o,this._storage=[],this._fillStorage()}_fillStorage(){let e=rC.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of e){let o=this._getPatternSegments(r),a=this._splitSegmentsIntoSections(o);this._storage.push({complete:a.length<=1,pattern:r,segments:o,sections:a})}}_getPatternSegments(e){return rC.pattern.getPatternParts(e,this._micromatchOptions).map(o=>rC.pattern.isDynamicPattern(o,this._settings)?{dynamic:!0,pattern:o,patternRe:rC.pattern.makeRe(o,this._micromatchOptions)}:{dynamic:!1,pattern:o})}_splitSegmentsIntoSections(e){return rC.array.splitWhen(e,r=>r.dynamic&&rC.pattern.hasGlobStar(r.pattern))}};IO.default=EO});var Gie=U(BO=>{"use strict";Object.defineProperty(BO,"__esModule",{value:!0});var net=jie(),wO=class extends net.default{match(e){let r=e.split("/"),o=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>o);for(let n of a){let u=n.sections[0];if(!n.complete&&o>u.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};BO.default=wO});var Wie=U(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});var yP=Sf(),iet=Gie(),vO=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,o){let a=this._getMatcher(r),n=this._getNegativePatternsRe(o);return u=>this._filter(e,u,a,n)}_getMatcher(e){return new iet.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(yP.pattern.isAffectDepthOfReadingPattern);return yP.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,o,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=yP.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,o)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let o=r.split("/").length;if(e==="")return o;let a=e.split("/").length;return o-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!yP.pattern.matchAny(e,r)}};DO.default=vO});var Yie=U(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});var Cd=Sf(),SO=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let o=Cd.pattern.convertPatternsToRe(e,this._micromatchOptions),a=Cd.pattern.convertPatternsToRe(r,this._micromatchOptions);return n=>this._filter(n,o,a)}_filter(e,r,o){if(this._settings.unique&&this._isDuplicateEntry(e)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e.path,o))return!1;let a=this._settings.baseNameMatch?e.name:e.path,n=e.dirent.isDirectory(),u=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(e.path,o,n);return this._settings.unique&&u&&this._createIndexRecord(e),u}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let o=Cd.path.makeAbsolute(this._settings.cwd,e);return Cd.pattern.matchAny(o,r)}_isMatchToPatterns(e,r,o){let a=Cd.path.removeLeadingDotSegment(e),n=Cd.pattern.matchAny(a,r);return!n&&o?Cd.pattern.matchAny(a+"/",r):n}};PO.default=SO});var Kie=U(bO=>{"use strict";Object.defineProperty(bO,"__esModule",{value:!0});var set=Sf(),xO=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return set.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};bO.default=xO});var Jie=U(kO=>{"use strict";Object.defineProperty(kO,"__esModule",{value:!0});var Vie=Sf(),QO=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=Vie.path.makeAbsolute(this._settings.cwd,r),r=Vie.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};kO.default=QO});var CP=U(RO=>{"use strict";Object.defineProperty(RO,"__esModule",{value:!0});var oet=Ie("path"),aet=Wie(),cet=Yie(),uet=Kie(),Aet=Jie(),FO=class{constructor(e){this._settings=e,this.errorFilter=new uet.default(this._settings),this.entryFilter=new cet.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new aet.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new Aet.default(this._settings)}_getRootDirectory(e){return oet.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};RO.default=FO});var zie=U(NO=>{"use strict";Object.defineProperty(NO,"__esModule",{value:!0});var fet=qie(),pet=CP(),TO=class extends pet.default{constructor(){super(...arguments),this._reader=new fet.default(this._settings)}async read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return(await this.api(r,e,o)).map(n=>o.transform(n))}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};NO.default=TO});var Xie=U(OO=>{"use strict";Object.defineProperty(OO,"__esModule",{value:!0});var het=Ie("stream"),get=mO(),det=CP(),LO=class extends det.default{constructor(){super(...arguments),this._reader=new get.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e),a=this.api(r,e,o),n=new het.Readable({objectMode:!0,read:()=>{}});return a.once("error",u=>n.emit("error",u)).on("data",u=>n.emit("data",o.transform(u))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};OO.default=LO});var Zie=U(UO=>{"use strict";Object.defineProperty(UO,"__esModule",{value:!0});var met=yd(),yet=dP(),Cet=mP(),MO=class extends Cet.default{constructor(){super(...arguments),this._walkSync=yet.walkSync,this._statSync=met.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let o=[];for(let a of e){let n=this._getFullEntryPath(a),u=this._getEntry(n,a,r);u===null||!r.entryFilter(u)||o.push(u)}return o}_getEntry(e,r,o){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(o.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};UO.default=MO});var $ie=U(HO=>{"use strict";Object.defineProperty(HO,"__esModule",{value:!0});var Eet=Zie(),Iet=CP(),_O=class extends Iet.default{constructor(){super(...arguments),this._reader=new Eet.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return this.api(r,e,o).map(o.transform)}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};HO.default=_O});var ese=U(iC=>{"use strict";Object.defineProperty(iC,"__esModule",{value:!0});iC.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var nC=Ie("fs"),wet=Ie("os"),Bet=Math.max(wet.cpus().length,1);iC.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:nC.lstat,lstatSync:nC.lstatSync,stat:nC.stat,statSync:nC.statSync,readdir:nC.readdir,readdirSync:nC.readdirSync};var qO=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,Bet),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},iC.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};iC.default=qO});var EP=U((aNt,nse)=>{"use strict";var tse=nie(),rse=sie(),vet=zie(),Det=Xie(),Pet=$ie(),jO=ese(),Ed=Sf();async function GO(t,e){sC(t);let r=WO(t,vet.default,e),o=await Promise.all(r);return Ed.array.flatten(o)}(function(t){function e(u,A){sC(u);let p=WO(u,Pet.default,A);return Ed.array.flatten(p)}t.sync=e;function r(u,A){sC(u);let p=WO(u,Det.default,A);return Ed.stream.merge(p)}t.stream=r;function o(u,A){sC(u);let p=rse.transform([].concat(u)),h=new jO.default(A);return tse.generate(p,h)}t.generateTasks=o;function a(u,A){sC(u);let p=new jO.default(A);return Ed.pattern.isDynamicPattern(u,p)}t.isDynamicPattern=a;function n(u){return sC(u),Ed.path.escape(u)}t.escapePath=n})(GO||(GO={}));function WO(t,e,r){let o=rse.transform([].concat(t)),a=new jO.default(r),n=tse.generate(o,a),u=new e(a);return n.map(u.read,u)}function sC(t){if(![].concat(t).every(o=>Ed.string.isString(o)&&!Ed.string.isEmpty(o)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}nse.exports=GO});var sse=U(Id=>{"use strict";var{promisify:xet}=Ie("util"),ise=Ie("fs");async function YO(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await xet(ise[t])(r))[e]()}catch(o){if(o.code==="ENOENT")return!1;throw o}}function KO(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return ise[t](r)[e]()}catch(o){if(o.code==="ENOENT")return!1;throw o}}Id.isFile=YO.bind(null,"stat","isFile");Id.isDirectory=YO.bind(null,"stat","isDirectory");Id.isSymlink=YO.bind(null,"lstat","isSymbolicLink");Id.isFileSync=KO.bind(null,"statSync","isFile");Id.isDirectorySync=KO.bind(null,"statSync","isDirectory");Id.isSymlinkSync=KO.bind(null,"lstatSync","isSymbolicLink")});var use=U((cNt,VO)=>{"use strict";var wd=Ie("path"),ose=sse(),ase=t=>t.length>1?`{${t.join(",")}}`:t[0],lse=(t,e)=>{let r=t[0]==="!"?t.slice(1):t;return wd.isAbsolute(r)?r:wd.join(e,r)},bet=(t,e)=>wd.extname(t)?`**/${t}`:`**/${t}.${ase(e)}`,cse=(t,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(r=>wd.posix.join(t,bet(r,e.extensions))):e.files?e.files.map(r=>wd.posix.join(t,`**/${r}`)):e.extensions?[wd.posix.join(t,`**/*.${ase(e.extensions)}`)]:[wd.posix.join(t,"**")]};VO.exports=async(t,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=await Promise.all([].concat(t).map(async o=>await ose.isDirectory(lse(o,e.cwd))?cse(o,e):o));return[].concat.apply([],r)};VO.exports.sync=(t,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=[].concat(t).map(o=>ose.isDirectorySync(lse(o,e.cwd))?cse(o,e):o);return[].concat.apply([],r)}});var Cse=U((uNt,yse)=>{function Ase(t){return Array.isArray(t)?t:[t]}var gse="",fse=" ",JO="\\",Qet=/^\s+$/,ket=/^\\!/,Fet=/^\\#/,Ret=/\r?\n/g,Tet=/^\.*\/|^\.+$/,zO="/",pse=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",Net=(t,e,r)=>Object.defineProperty(t,e,{value:r}),Let=/([0-z])-([0-z])/g,dse=()=>!1,Oet=t=>t.replace(Let,(e,r,o)=>r.charCodeAt(0)<=o.charCodeAt(0)?e:gse),Met=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Uet=[[/\\?\s+$/,t=>t.indexOf("\\")===0?fse:gse],[/\\\s/g,()=>fse],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6<r.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(t,e)=>`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>JO],[/\\\\/g,()=>JO],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,r,o,a)=>e===JO?`\\[${r}${Met(o)}${a}`:a==="]"&&o.length%2===0?`[${Oet(r)}${o}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],hse=Object.create(null),_et=(t,e)=>{let r=hse[t];return r||(r=Uet.reduce((o,a)=>o.replace(a[0],a[1].bind(t)),t),hse[t]=r),e?new RegExp(r,"i"):new RegExp(r)},$O=t=>typeof t=="string",Het=t=>t&&$O(t)&&!Qet.test(t)&&t.indexOf("#")!==0,qet=t=>t.split(Ret),XO=class{constructor(e,r,o,a){this.origin=e,this.pattern=r,this.negative=o,this.regex=a}},jet=(t,e)=>{let r=t,o=!1;t.indexOf("!")===0&&(o=!0,t=t.substr(1)),t=t.replace(ket,"!").replace(Fet,"#");let a=_et(t,e);return new XO(r,t,o,a)},Get=(t,e)=>{throw new e(t)},xf=(t,e,r)=>$O(t)?t?xf.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),mse=t=>Tet.test(t);xf.isNotRelative=mse;xf.convert=t=>t;var ZO=class{constructor({ignorecase:e=!0,ignoreCase:r=e,allowRelativePaths:o=!1}={}){Net(this,pse,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=o,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[pse]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Het(e)){let r=jet(e,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,Ase($O(e)?qet(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let o=!1,a=!1;return this._rules.forEach(n=>{let{negative:u}=n;if(a===u&&o!==a||u&&!o&&!a&&!r)return;n.regex.test(e)&&(o=!u,a=u)}),{ignored:o,unignored:a}}_test(e,r,o,a){let n=e&&xf.convert(e);return xf(n,e,this._allowRelativePaths?dse:Get),this._t(n,r,o,a)}_t(e,r,o,a){if(e in r)return r[e];if(a||(a=e.split(zO)),a.pop(),!a.length)return r[e]=this._testOne(e,o);let n=this._t(a.join(zO)+zO,r,o,a);return r[e]=n.ignored?n:this._testOne(e,o)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return Ase(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},IP=t=>new ZO(t),Wet=t=>xf(t&&xf.convert(t),t,dse);IP.isPathValid=Wet;IP.default=IP;yse.exports=IP;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");xf.convert=t;let e=/^[a-z]:\//i;xf.isNotRelative=r=>e.test(r)||mse(r)}});var Ise=U((ANt,Ese)=>{"use strict";Ese.exports=t=>{let e=/^\\\\\?\\/.test(t),r=/[^\u0000-\u0080]+/.test(t);return e||r?t:t.replace(/\\/g,"/")}});var xse=U((fNt,eM)=>{"use strict";var{promisify:Yet}=Ie("util"),wse=Ie("fs"),bf=Ie("path"),Bse=EP(),Ket=Cse(),jw=Ise(),vse=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],Vet=Yet(wse.readFile),Jet=t=>e=>e.startsWith("!")?"!"+bf.posix.join(t,e.slice(1)):bf.posix.join(t,e),zet=(t,e)=>{let r=jw(bf.relative(e.cwd,bf.dirname(e.fileName)));return t.split(/\r?\n/).filter(Boolean).filter(o=>!o.startsWith("#")).map(Jet(r))},Dse=t=>{let e=Ket();for(let r of t)e.add(zet(r.content,{cwd:r.cwd,fileName:r.filePath}));return e},Xet=(t,e)=>{if(t=jw(t),bf.isAbsolute(e)){if(jw(e).startsWith(t))return e;throw new Error(`Path ${e} is not in cwd ${t}`)}return bf.join(t,e)},Sse=(t,e)=>r=>t.ignores(jw(bf.relative(e,Xet(e,r.path||r)))),Zet=async(t,e)=>{let r=bf.join(e,t),o=await Vet(r,"utf8");return{cwd:e,filePath:r,content:o}},$et=(t,e)=>{let r=bf.join(e,t),o=wse.readFileSync(r,"utf8");return{cwd:e,filePath:r,content:o}},Pse=({ignore:t=[],cwd:e=jw(process.cwd())}={})=>({ignore:t,cwd:e});eM.exports=async t=>{t=Pse(t);let e=await Bse("**/.gitignore",{ignore:vse.concat(t.ignore),cwd:t.cwd}),r=await Promise.all(e.map(a=>Zet(a,t.cwd))),o=Dse(r);return Sse(o,t.cwd)};eM.exports.sync=t=>{t=Pse(t);let r=Bse.sync("**/.gitignore",{ignore:vse.concat(t.ignore),cwd:t.cwd}).map(a=>$et(a,t.cwd)),o=Dse(r);return Sse(o,t.cwd)}});var Qse=U((pNt,bse)=>{"use strict";var{Transform:ett}=Ie("stream"),wP=class extends ett{constructor(){super({objectMode:!0})}},tM=class extends wP{constructor(e){super(),this._filter=e}_transform(e,r,o){this._filter(e)&&this.push(e),o()}},rM=class extends wP{constructor(){super(),this._pushed=new Set}_transform(e,r,o){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),o()}};bse.exports={FilterStream:tM,UniqueStream:rM}});var oM=U((hNt,Bd)=>{"use strict";var Fse=Ie("fs"),BP=bne(),ttt=DL(),vP=EP(),DP=use(),nM=xse(),{FilterStream:rtt,UniqueStream:ntt}=Qse(),Rse=()=>!1,kse=t=>t[0]==="!",itt=t=>{if(!t.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},stt=(t={})=>{if(!t.cwd)return;let e;try{e=Fse.statSync(t.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},ott=t=>t.stats instanceof Fse.Stats?t.path:t,SP=(t,e)=>{t=BP([].concat(t)),itt(t),stt(e);let r=[];e={ignore:[],expandDirectories:!0,...e};for(let[o,a]of t.entries()){if(kse(a))continue;let n=t.slice(o).filter(A=>kse(A)).map(A=>A.slice(1)),u={...e,ignore:e.ignore.concat(n)};r.push({pattern:a,options:u})}return r},att=(t,e)=>{let r={};return t.options.cwd&&(r.cwd=t.options.cwd),Array.isArray(t.options.expandDirectories)?r={...r,files:t.options.expandDirectories}:typeof t.options.expandDirectories=="object"&&(r={...r,...t.options.expandDirectories}),e(t.pattern,r)},iM=(t,e)=>t.options.expandDirectories?att(t,e):[t.pattern],Tse=t=>t&&t.gitignore?nM.sync({cwd:t.cwd,ignore:t.ignore}):Rse,sM=t=>e=>{let{options:r}=t;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=DP.sync(r.ignore)),{pattern:e,options:r}};Bd.exports=async(t,e)=>{let r=SP(t,e),o=async()=>e&&e.gitignore?nM({cwd:e.cwd,ignore:e.ignore}):Rse,a=async()=>{let p=await Promise.all(r.map(async h=>{let E=await iM(h,DP);return Promise.all(E.map(sM(h)))}));return BP(...p)},[n,u]=await Promise.all([o(),a()]),A=await Promise.all(u.map(p=>vP(p.pattern,p.options)));return BP(...A).filter(p=>!n(ott(p)))};Bd.exports.sync=(t,e)=>{let r=SP(t,e),o=[];for(let u of r){let A=iM(u,DP.sync).map(sM(u));o.push(...A)}let a=Tse(e),n=[];for(let u of o)n=BP(n,vP.sync(u.pattern,u.options));return n.filter(u=>!a(u))};Bd.exports.stream=(t,e)=>{let r=SP(t,e),o=[];for(let A of r){let p=iM(A,DP.sync).map(sM(A));o.push(...p)}let a=Tse(e),n=new rtt(A=>!a(A)),u=new ntt;return ttt(o.map(A=>vP.stream(A.pattern,A.options))).pipe(n).pipe(u)};Bd.exports.generateGlobTasks=SP;Bd.exports.hasMagic=(t,e)=>[].concat(t).some(r=>vP.isDynamicPattern(r,e));Bd.exports.gitignore=nM});var bn={};Yt(bn,{checksumFile:()=>xP,checksumPattern:()=>bP,makeHash:()=>Vs});function Vs(...t){let e=(0,PP.createHash)("sha512"),r="";for(let o of t)typeof o=="string"?r+=o:o&&(r&&(e.update(r),r=""),e.update(o));return r&&e.update(r),e.digest("hex")}async function xP(t,{baseFs:e,algorithm:r}={baseFs:ae,algorithm:"sha512"}){let o=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,PP.createHash)(r),A=0;for(;(A=await e.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await e.closePromise(o)}}async function bP(t,{cwd:e}){let o=(await(0,aM.default)(t,{cwd:ue.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(A=>`${A}/**/*`),a=await(0,aM.default)([t,...o],{cwd:ue.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});a.sort();let n=await Promise.all(a.map(async A=>{let p=[Buffer.from(A)],h=ue.toPortablePath(A),E=await ae.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await ae.readlinkPromise(h))):E.isFile()&&p.push(await ae.readFilePromise(h)),p.join("\0")})),u=(0,PP.createHash)("sha512");for(let A of n)u.update(A);return u.digest("hex")}var PP,aM,t0=dt(()=>{bt();PP=Ie("crypto"),aM=tt(oM())});var Y={};Yt(Y,{areDescriptorsEqual:()=>Use,areIdentsEqual:()=>Vw,areLocatorsEqual:()=>Jw,areVirtualPackagesEquivalent:()=>dtt,bindDescriptor:()=>htt,bindLocator:()=>gtt,convertDescriptorToLocator:()=>QP,convertLocatorToDescriptor:()=>cM,convertPackageToLocator:()=>Att,convertToIdent:()=>utt,convertToManifestRange:()=>Ett,copyPackage:()=>Ww,devirtualizeDescriptor:()=>Yw,devirtualizeLocator:()=>Kw,ensureDevirtualizedDescriptor:()=>ftt,ensureDevirtualizedLocator:()=>ptt,getIdentVendorPath:()=>hM,isPackageCompatible:()=>NP,isVirtualDescriptor:()=>Qf,isVirtualLocator:()=>Wc,makeDescriptor:()=>mn,makeIdent:()=>nA,makeLocator:()=>us,makeRange:()=>FP,parseDescriptor:()=>r0,parseFileStyleRange:()=>ytt,parseIdent:()=>Ys,parseLocator:()=>kf,parseRange:()=>vd,prettyDependent:()=>vL,prettyDescriptor:()=>Ln,prettyIdent:()=>cs,prettyLocator:()=>kr,prettyLocatorNoColors:()=>pM,prettyRange:()=>TP,prettyReference:()=>Xw,prettyResolution:()=>qw,prettyWorkspace:()=>Zw,renamePackage:()=>uM,slugifyIdent:()=>lM,slugifyLocator:()=>aC,sortDescriptors:()=>lC,stringifyDescriptor:()=>ba,stringifyIdent:()=>nn,stringifyLocator:()=>Vl,tryParseDescriptor:()=>zw,tryParseIdent:()=>_se,tryParseLocator:()=>kP,tryParseRange:()=>mtt,virtualizeDescriptor:()=>AM,virtualizePackage:()=>fM});function nA(t,e){if(t!=null&&t.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:Vs(t,e),scope:t,name:e}}function mn(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:Vs(t.identHash,e),range:e}}function us(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:Vs(t.identHash,e),reference:e}}function utt(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function QP(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function cM(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function Att(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function uM(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function Ww(t){return uM(t,t)}function AM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return mn(t,`virtual:${e}#${t.range}`)}function fM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return uM(t,us(t,`virtual:${e}#${t.reference}`))}function Qf(t){return t.range.startsWith(Gw)}function Wc(t){return t.reference.startsWith(Gw)}function Yw(t){if(!Qf(t))throw new Error("Not a virtual descriptor");return mn(t,t.range.replace(/^[^#]*#/,""))}function Kw(t){if(!Wc(t))throw new Error("Not a virtual descriptor");return us(t,t.reference.replace(/^[^#]*#/,""))}function ftt(t){return Qf(t)?mn(t,t.range.replace(/^[^#]*#/,"")):t}function ptt(t){return Wc(t)?us(t,t.reference.replace(/^[^#]*#/,"")):t}function htt(t,e){return t.range.includes("::")?t:mn(t,`${t.range}::${oC.default.stringify(e)}`)}function gtt(t,e){return t.reference.includes("::")?t:us(t,`${t.reference}::${oC.default.stringify(e)}`)}function Vw(t,e){return t.identHash===e.identHash}function Use(t,e){return t.descriptorHash===e.descriptorHash}function Jw(t,e){return t.locatorHash===e.locatorHash}function dtt(t,e){if(!Wc(t))throw new Error("Invalid package type");if(!Wc(e))throw new Error("Invalid package type");if(!Vw(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let o=e.dependencies.get(r.identHash);if(!o||!Use(r,o))return!1}return!0}function Ys(t){let e=_se(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function _se(t){let e=t.match(/^(?:@([^/]+?)\/)?([^@/]+)$/);if(!e)return null;let[,r,o]=e;return nA(typeof r<"u"?r:null,o)}function r0(t,e=!1){let r=zw(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function zw(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return mn(nA(u,a),A)}function kf(t,e=!1){let r=kP(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function kP(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return us(nA(u,a),A)}function vd(t,e){let r=t.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(r===null)throw new Error(`Invalid range (${t})`);let o=typeof r[1]<"u"?r[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&o!==e.requireProtocol)throw new Error(`Invalid protocol (${o})`);if((e==null?void 0:e.requireProtocol)&&o===null)throw new Error(`Missing protocol (${o})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if((e==null?void 0:e.requireSource)&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),u=e!=null&&e.parseSelector?oC.default.parse(n):n,A=typeof r[4]<"u"?oC.default.parse(r[4]):null;return{protocol:o,source:a,selector:u,params:A}}function mtt(t,e){try{return vd(t,e)}catch{return null}}function ytt(t,{protocol:e}){let{selector:r,params:o}=vd(t,{requireProtocol:e,requireBindings:!0});if(typeof o.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:kf(o.locator,!0),path:r}}function Nse(t){return t=t.replace(/%/g,"%25"),t=t.replace(/:/g,"%3A"),t=t.replace(/#/g,"%23"),t}function Ctt(t){return t===null?!1:Object.entries(t).length>0}function FP({protocol:t,source:e,selector:r,params:o}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${Nse(e)}#`),a+=Nse(r),Ctt(o)&&(a+=`::${oC.default.stringify(o)}`),a}function Ett(t){let{params:e,protocol:r,source:o,selector:a}=vd(t);for(let n in e)n.startsWith("__")&&delete e[n];return FP({protocol:r,source:o,params:e,selector:a})}function nn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function ba(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function Vl(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function lM(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function aC(t){let{protocol:e,selector:r}=vd(t.reference),o=e!==null?e.replace(/:$/,""):"exotic",a=Lse.default.valid(r),n=a!==null?`${o}-${a}`:`${o}`,u=10,A=t.scope?`${lM(t)}-${n}-${t.locatorHash.slice(0,u)}`:`${lM(t)}-${n}-${t.locatorHash.slice(0,u)}`;return Li(A)}function cs(t,e){return e.scope?`${Kt(t,`@${e.scope}/`,Bt.SCOPE)}${Kt(t,e.name,Bt.NAME)}`:`${Kt(t,e.name,Bt.NAME)}`}function RP(t){if(t.startsWith(Gw)){let e=RP(t.substring(t.indexOf("#")+1)),r=t.substring(Gw.length,Gw.length+ltt);return`${e} [${r}]`}else return t.replace(/\?.*/,"?[...]")}function TP(t,e){return`${Kt(t,RP(e),Bt.RANGE)}`}function Ln(t,e){return`${cs(t,e)}${Kt(t,"@",Bt.RANGE)}${TP(t,e.range)}`}function Xw(t,e){return`${Kt(t,RP(e),Bt.REFERENCE)}`}function kr(t,e){return`${cs(t,e)}${Kt(t,"@",Bt.REFERENCE)}${Xw(t,e.reference)}`}function pM(t){return`${nn(t)}@${RP(t.reference)}`}function lC(t){return Pa(t,[e=>nn(e),e=>e.range])}function Zw(t,e){return cs(t,e.locator)}function qw(t,e,r){let o=Qf(e)?Yw(e):e;return r===null?`${Ln(t,o)} \u2192 ${BL(t).Cross}`:o.identHash===r.identHash?`${Ln(t,o)} \u2192 ${Xw(t,r.reference)}`:`${Ln(t,o)} \u2192 ${kr(t,r)}`}function vL(t,e,r){return r===null?`${kr(t,e)}`:`${kr(t,e)} (via ${TP(t,r.range)})`}function hM(t){return`node_modules/${nn(t)}`}function NP(t,e){return t.conditions?ctt(t.conditions,r=>{let[,o,a]=r.match(Mse),n=e[o];return n?n.includes(a):!0}):!0}var oC,Lse,Ose,Gw,ltt,Mse,ctt,Ks=dt(()=>{bt();oC=tt(Ie("querystring")),Lse=tt(si()),Ose=tt(iX());Jl();t0();Kl();Ks();Gw="virtual:",ltt=5,Mse=/(os|cpu|libc)=([a-z0-9_-]+)/,ctt=(0,Ose.makeParser)(Mse)});var Hse,qse=dt(()=>{Ks();Hse={hooks:{reduceDependency:(t,e,r,o,{resolver:a,resolveOptions:n})=>{for(let{pattern:u,reference:A}of e.topLevelWorkspace.manifest.resolutions){if(u.from&&(u.from.fullName!==nn(r)||e.configuration.normalizeLocator(us(Ys(u.from.fullName),u.from.description??r.reference)).locatorHash!==r.locatorHash)||u.descriptor.fullName!==nn(t)||e.configuration.normalizeDependency(mn(kf(u.descriptor.fullName),u.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(mn(t,A)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let o=Zw(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${o}: ${n}`),reportError:(a,n)=>e.reportError(a,`${o}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let o of r.errors)e.reportWarning(57,o.message)}}}});var $w,Gn,Dd=dt(()=>{$w=class{supportsDescriptor(e,r){return!!(e.range.startsWith($w.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith($w.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[o.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.getWorkspaceByCwd(e.reference.slice($w.protocol.length));return{...e,version:o.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...o.manifest.dependencies,...o.manifest.devDependencies])),peerDependencies:new Map([...o.manifest.peerDependencies]),dependenciesMeta:o.manifest.dependenciesMeta,peerDependenciesMeta:o.manifest.peerDependenciesMeta,bin:o.manifest.bin}}},Gn=$w;Gn.protocol="workspace:"});var Tr={};Yt(Tr,{SemVer:()=>Wse.SemVer,clean:()=>wtt,satisfiesWithPrereleases:()=>Sd,validRange:()=>ll});function Sd(t,e,r=!1){if(!t)return!1;let o=`${e}${r}`,a=jse.get(o);if(typeof a>"u")try{a=new LP.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{jse.set(o,a||null)}else if(a===null)return!1;let n;try{n=new LP.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(u=>{for(let A of u)A.semver.prerelease&&(A.semver.prerelease=[]);return u.every(A=>A.test(n))}))}function ll(t){if(t.indexOf(":")!==-1)return null;let e=Gse.get(t);if(typeof e<"u")return e;try{e=new LP.default.Range(t)}catch{e=null}return Gse.set(t,e),e}function wtt(t){let e=Itt.exec(t);return e?e[1]:null}var LP,Wse,jse,Gse,Itt,n0=dt(()=>{LP=tt(si()),Wse=tt(si()),jse=new Map;Gse=new Map;Itt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function Yse(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function Kse(t){return t.charCodeAt(0)===65279?t.slice(1):t}function zo(t){return t.replace(/\\/g,"/")}function OP(t,{yamlCompatibilityMode:e}){return e?gL(t):typeof t>"u"||typeof t=="boolean"?t:null}function Vse(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let o=r%2===0?"":"!",a=e.slice(r);return`${o}${t}=${a}`}function gM(t,e){return e.length===1?Vse(t,e[0]):`(${e.map(r=>Vse(t,r)).join(" | ")})`}var Jse,cC,Nt,uC=dt(()=>{bt();_l();Jse=tt(si());Dd();Kl();n0();Ks();cC=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:r=new xn}={}){let o=z.join(e,"package.json");try{return await cC.fromFile(o,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let o=await cC.tryFind(e,{baseFs:r});if(o===null)throw new Error("Manifest not found");return o}static async fromFile(e,{baseFs:r=new xn}={}){let o=new cC;return await o.loadFile(e,{baseFs:r}),o}static fromText(e){let r=new cC;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(Kse(e)||"{}")}catch(o){throw o.message+=` (when parsing ${e})`,o}this.load(r),this.indent=Yse(e)}async loadFile(e,{baseFs:r=new xn}){let o=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(Kse(o)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=Yse(o)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let o=[];if(this.name=null,typeof e.name=="string")try{this.name=Ys(e.name)}catch{o.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let u of e.os)typeof u!="string"?o.push(new Error("Parsing failed for the 'os' field")):n.push(u)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let u of e.cpu)typeof u!="string"?o.push(new Error("Parsing failed for the 'cpu' field")):n.push(u)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let u of e.libc)typeof u!="string"?o.push(new Error("Parsing failed for the 'libc' field")):n.push(u)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=zo(e.main):this.main=null,typeof e.module=="string"?this.module=zo(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=zo(e.browser);else{this.browser=new Map;for(let[n,u]of Object.entries(e.browser))this.browser.set(zo(n),typeof u=="string"?zo(u):u)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,zo(e.bin)):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,u]of Object.entries(e.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}let A=Ys(n);this.bin.set(A.name,zo(u))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,u]of Object.entries(e.scripts)){if(typeof u!="string"){o.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,u)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,u]of Object.entries(e.dependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Ys(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=mn(A,u);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,u]of Object.entries(e.devDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Ys(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=mn(A,u);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,u]of Object.entries(e.peerDependencies)){let A;try{A=Ys(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof u!="string"||!u.startsWith(Gn.protocol)&&!ll(u))&&(o.push(new Error(`Invalid dependency range for '${n}'`)),u="*");let p=mn(A,u);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&o.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){o.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,u]of Object.entries(e.dependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}`));continue}let A=r0(n),p=this.ensureDependencyMeta(A),h=OP(u.built,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=OP(u.optional,{yamlCompatibilityMode:r});if(E===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}let w=OP(u.unplugged,{yamlCompatibilityMode:r});if(w===null){o.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:w})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,u]of Object.entries(e.peerDependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}'`));continue}let A=r0(n),p=this.ensurePeerDependencyMeta(A),h=OP(u.optional,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,u]of Object.entries(e.resolutions)){if(typeof u!="string"){o.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:xD(n),reference:u})}catch(A){o.push(A);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){o.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=zo(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=zo(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=zo(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,u]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(zo(n),typeof u=="string"?zo(u):u)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,zo(e.publishConfig.bin)]]):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,u]of Object.entries(e.publishConfig.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,zo(u))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){o.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(zo(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:o.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:o.push(new Error("Invalid selfReferences definition, must be a boolean value")):o.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,u]of Object.entries(e.optionalDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Ys(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=mn(A,u);this.dependencies.set(p.identHash,p);let h=mn(A,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=o}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(gM("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(gM("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(gM("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!Jse.default.valid(e.range))throw new Error(`Invalid meta field range for '${ba(e)}'`);let r=nn(e),o=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(o);return n||a.set(o,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${ba(e)}'`);let r=nn(e),o=this.peerDependenciesMeta.get(r);return o||this.peerDependenciesMeta.set(r,o={}),o}setRawField(e,r,{after:o=[]}={}){let a=new Set(o.filter(n=>Object.prototype.hasOwnProperty.call(this.raw,n)));if(a.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=r;else{let n=this.raw,u=this.raw={},A=!1;for(let p of Object.keys(n))u[p]=n[p],A||(a.delete(p),a.size===0&&(u[e]=r,A=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=nn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(u=>({[u]:n.get(u)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let o=[],a=[];for(let n of this.dependencies.values()){let u=this.dependenciesMeta.get(nn(n)),A=!1;if(r&&u){let p=u.get(null);p&&p.optional&&(A=!0)}A?a.push(n):o.push(n)}o.length>0?e.dependencies=Object.assign({},...lC(o).map(n=>({[nn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...lC(a).map(n=>({[nn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...lC(this.devDependencies.values()).map(n=>({[nn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...lC(this.peerDependencies.values()).map(n=>({[nn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,u]of Pa(this.dependenciesMeta.entries(),([A,p])=>A))for(let[A,p]of Pa(u.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=A!==null?ba(mn(Ys(n),A)):n,E={...p};r&&A===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Pa(this.peerDependenciesMeta.entries(),([n,u])=>n).map(([n,u])=>({[n]:u}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:u})=>({[bD(n)]:u}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??(e.scripts={});for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,u]of this.scripts.entries())e.scripts[n]=u}else delete e.scripts;return e}},Nt=cC;Nt.fileName="package.json",Nt.allDependencies=["dependencies","devDependencies","peerDependencies"],Nt.hardDependencies=["dependencies","devDependencies"]});var Xse=U((kNt,zse)=>{var Btt=Wl(),vtt=function(){return Btt.Date.now()};zse.exports=vtt});var $se=U((FNt,Zse)=>{var Dtt=/\s/;function Stt(t){for(var e=t.length;e--&&Dtt.test(t.charAt(e)););return e}Zse.exports=Stt});var toe=U((RNt,eoe)=>{var Ptt=$se(),xtt=/^\s+/;function btt(t){return t&&t.slice(0,Ptt(t)+1).replace(xtt,"")}eoe.exports=btt});var AC=U((TNt,roe)=>{var Qtt=pd(),ktt=Xu(),Ftt="[object Symbol]";function Rtt(t){return typeof t=="symbol"||ktt(t)&&Qtt(t)==Ftt}roe.exports=Rtt});var ooe=U((NNt,soe)=>{var Ttt=toe(),noe=ol(),Ntt=AC(),ioe=0/0,Ltt=/^[-+]0x[0-9a-f]+$/i,Ott=/^0b[01]+$/i,Mtt=/^0o[0-7]+$/i,Utt=parseInt;function _tt(t){if(typeof t=="number")return t;if(Ntt(t))return ioe;if(noe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=noe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Ttt(t);var r=Ott.test(t);return r||Mtt.test(t)?Utt(t.slice(2),r?2:8):Ltt.test(t)?ioe:+t}soe.exports=_tt});var coe=U((LNt,loe)=>{var Htt=ol(),dM=Xse(),aoe=ooe(),qtt="Expected a function",jtt=Math.max,Gtt=Math.min;function Wtt(t,e,r){var o,a,n,u,A,p,h=0,E=!1,w=!1,v=!0;if(typeof t!="function")throw new TypeError(qtt);e=aoe(e)||0,Htt(r)&&(E=!!r.leading,w="maxWait"in r,n=w?jtt(aoe(r.maxWait)||0,e):n,v="trailing"in r?!!r.trailing:v);function b(he){var ve=o,ge=a;return o=a=void 0,h=he,u=t.apply(ge,ve),u}function C(he){return h=he,A=setTimeout(_,e),E?b(he):u}function R(he){var ve=he-p,ge=he-h,le=e-ve;return w?Gtt(le,n-ge):le}function L(he){var ve=he-p,ge=he-h;return p===void 0||ve>=e||ve<0||w&&ge>=n}function _(){var he=dM();if(L(he))return V(he);A=setTimeout(_,R(he))}function V(he){return A=void 0,v&&o?b(he):(o=a=void 0,u)}function re(){A!==void 0&&clearTimeout(A),h=0,o=p=a=A=void 0}function oe(){return A===void 0?u:V(dM())}function pe(){var he=dM(),ve=L(he);if(o=arguments,a=this,p=he,ve){if(A===void 0)return C(p);if(w)return clearTimeout(A),A=setTimeout(_,e),b(p)}return A===void 0&&(A=setTimeout(_,e)),u}return pe.cancel=re,pe.flush=oe,pe}loe.exports=Wtt});var mM=U((ONt,uoe)=>{var Ytt=coe(),Ktt=ol(),Vtt="Expected a function";function Jtt(t,e,r){var o=!0,a=!0;if(typeof t!="function")throw new TypeError(Vtt);return Ktt(r)&&(o="leading"in r?!!r.leading:o,a="trailing"in r?!!r.trailing:a),Ytt(t,e,{leading:o,maxWait:e,trailing:a})}uoe.exports=Jtt});function Xtt(t){return typeof t.reportCode<"u"}var Aoe,foe,poe,ztt,Vt,Js,Xl=dt(()=>{Aoe=tt(mM()),foe=Ie("stream"),poe=Ie("string_decoder"),ztt=15,Vt=class extends Error{constructor(r,o,a){super(o);this.reportExtra=a;this.reportCode=r}};Js=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let r=0,o,a=new Promise(p=>{o=p}),n=p=>{let h=o;a=new Promise(E=>{o=E}),r=p,h()},u=(p=0)=>{n(r+1)},A=async function*(){for(;r<e;)await a,yield{progress:r/e}}();return{[Symbol.asyncIterator](){return A},hasProgress:!0,hasTitle:!1,set:n,tick:u}}static progressViaTitle(){let e,r,o=new Promise(u=>{r=u}),a=(0,Aoe.default)(u=>{let A=r;o=new Promise(p=>{r=p}),e=u,A()},1e3/ztt),n=async function*(){for(;;)await o,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let o=this.reportProgress(e);try{return await r(e)}finally{o.stop()}}startProgressSync(e,r){let o=this.reportProgress(e);try{return r(e)}finally{o.stop()}}reportInfoOnce(e,r,o){var n;let a=o&&o.key?o.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),(n=o==null?void 0:o.reportExtra)==null||n.call(o,this))}reportWarningOnce(e,r,o){var n;let a=o&&o.key?o.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),(n=o==null?void 0:o.reportExtra)==null||n.call(o,this))}reportErrorOnce(e,r,o){var n;let a=o&&o.key?o.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),(n=o==null?void 0:o.reportExtra)==null||n.call(o,this))}reportExceptionOnce(e){Xtt(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new foe.PassThrough,o=new poe.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` 134`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var hZ=U((kkt,pZ)=>{"use strict";var h5e=BS(),{MAX_LENGTH:uZ,CHAR_BACKSLASH:BN,CHAR_BACKTICK:g5e,CHAR_COMMA:d5e,CHAR_DOT:m5e,CHAR_LEFT_PARENTHESES:y5e,CHAR_RIGHT_PARENTHESES:E5e,CHAR_LEFT_CURLY_BRACE:C5e,CHAR_RIGHT_CURLY_BRACE:I5e,CHAR_LEFT_SQUARE_BRACKET:AZ,CHAR_RIGHT_SQUARE_BRACKET:fZ,CHAR_DOUBLE_QUOTE:w5e,CHAR_SINGLE_QUOTE:B5e,CHAR_NO_BREAK_SPACE:v5e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:D5e}=cZ(),S5e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(uZ,r.maxLength):uZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,C=0,w=0,v,b={},E=()=>t[C++],R=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(R({type:"bos"});C<h;)if(u=n[n.length-1],v=E(),!(v===D5e||v===v5e)){if(v===BN){R({type:"text",value:(e.keepEscaping?v:"")+E()});continue}if(v===fZ){R({type:"text",value:"\\"+v});continue}if(v===AZ){p++;let L=!0,_;for(;C<h&&(_=E());){if(v+=_,_===AZ){p++;continue}if(_===BN){v+=E();continue}if(_===fZ&&(p--,p===0))break}R({type:"text",value:v});continue}if(v===y5e){u=R({type:"paren",nodes:[]}),n.push(u),R({type:"text",value:v});continue}if(v===E5e){if(u.type!=="paren"){R({type:"text",value:v});continue}u=n.pop(),R({type:"text",value:v}),u=n[n.length-1];continue}if(v===w5e||v===B5e||v===g5e){let L=v,_;for(e.keepQuotes!==!0&&(v="");C<h&&(_=E());){if(_===BN){v+=_+E();continue}if(_===L){e.keepQuotes===!0&&(v+=_);break}v+=_}R({type:"text",value:v});continue}if(v===C5e){w++;let _={type:"brace",open:!0,close:!1,dollar:A.value&&A.value.slice(-1)==="$"||u.dollar===!0,depth:w,commas:0,ranges:0,nodes:[]};u=R(_),n.push(u),R({type:"open",value:v});continue}if(v===I5e){if(u.type!=="brace"){R({type:"text",value:v});continue}let L="close";u=n.pop(),u.close=!0,R({type:L,value:v}),w--,u=n[n.length-1];continue}if(v===d5e&&w>0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:h5e(u)}]}R({type:"comma",value:v}),u.commas++;continue}if(v===m5e&&w>0&&u.commas===0){let L=u.nodes;if(w===0||L.length===0){R({type:"text",value:v});continue}if(A.type==="dot"){if(u.range=[],A.value+=v,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let _=L[L.length-1];_.value+=A.value+v,A=_,u.ranges--;continue}R({type:"dot",value:v});continue}R({type:"text",value:v})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(V=>{V.nodes||(V.type==="open"&&(V.isOpen=!0),V.type==="close"&&(V.isClose=!0),V.nodes||(V.type="text"),V.invalid=!0)});let L=n[n.length-1],_=L.nodes.indexOf(u);L.nodes.splice(_,1,...u.nodes)}while(n.length>0);return R({type:"eos"}),a};pZ.exports=S5e});var mZ=U((Fkt,dZ)=>{"use strict";var gZ=BS(),P5e=iZ(),x5e=aZ(),b5e=hZ(),sl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=sl.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(sl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};sl.parse=(t,e={})=>b5e(t,e);sl.stringify=(t,e={})=>gZ(typeof t=="string"?sl.parse(t,e):t,e);sl.compile=(t,e={})=>(typeof t=="string"&&(t=sl.parse(t,e)),P5e(t,e));sl.expand=(t,e={})=>{typeof t=="string"&&(t=sl.parse(t,e));let r=x5e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};sl.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?sl.compile(t,e):sl.expand(t,e);dZ.exports=sl});var Cw=U((Rkt,wZ)=>{"use strict";var Q5e=Ie("path"),Ju="\\\\/",yZ=`[^${Ju}]`,Df="\\.",k5e="\\+",F5e="\\?",DS="\\/",R5e="(?=.)",EZ="[^/]",vN=`(?:${DS}|$)`,CZ=`(?:^|${DS})`,DN=`${Df}{1,2}${vN}`,T5e=`(?!${Df})`,N5e=`(?!${CZ}${DN})`,L5e=`(?!${Df}{0,1}${vN})`,O5e=`(?!${DN})`,M5e=`[^.${DS}]`,U5e=`${EZ}*?`,IZ={DOT_LITERAL:Df,PLUS_LITERAL:k5e,QMARK_LITERAL:F5e,SLASH_LITERAL:DS,ONE_CHAR:R5e,QMARK:EZ,END_ANCHOR:vN,DOTS_SLASH:DN,NO_DOT:T5e,NO_DOTS:N5e,NO_DOT_SLASH:L5e,NO_DOTS_SLASH:O5e,QMARK_NO_DOT:M5e,STAR:U5e,START_ANCHOR:CZ},_5e={...IZ,SLASH_LITERAL:`[${Ju}]`,QMARK:yZ,STAR:`${yZ}*?`,DOTS_SLASH:`${Df}{1,2}(?:[${Ju}]|$)`,NO_DOT:`(?!${Df})`,NO_DOTS:`(?!(?:^|[${Ju}])${Df}{1,2}(?:[${Ju}]|$))`,NO_DOT_SLASH:`(?!${Df}{0,1}(?:[${Ju}]|$))`,NO_DOTS_SLASH:`(?!${Df}{1,2}(?:[${Ju}]|$))`,QMARK_NO_DOT:`[^.${Ju}]`,START_ANCHOR:`(?:^|[${Ju}])`,END_ANCHOR:`(?:[${Ju}]|$)`},H5e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};wZ.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:H5e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:Q5e.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?_5e:IZ}}});var Iw=U(Pa=>{"use strict";var q5e=Ie("path"),j5e=process.platform==="win32",{REGEX_BACKSLASH:G5e,REGEX_REMOVE_BACKSLASH:W5e,REGEX_SPECIAL_CHARS:Y5e,REGEX_SPECIAL_CHARS_GLOBAL:K5e}=Cw();Pa.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Pa.hasRegexChars=t=>Y5e.test(t);Pa.isRegexChar=t=>t.length===1&&Pa.hasRegexChars(t);Pa.escapeRegex=t=>t.replace(K5e,"\\$1");Pa.toPosixSlashes=t=>t.replace(G5e,"/");Pa.removeBackslashes=t=>t.replace(W5e,e=>e==="\\"?"":e);Pa.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Pa.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:j5e===!0||q5e.sep==="\\";Pa.escapeLast=(t,e,r)=>{let o=t.lastIndexOf(e,r);return o===-1?t:t[o-1]==="\\"?Pa.escapeLast(t,e,o-1):`${t.slice(0,o)}\\${t.slice(o)}`};Pa.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Pa.wrapOutput=(t,e={},r={})=>{let o=r.contains?"":"^",a=r.contains?"":"$",n=`${o}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var QZ=U((Nkt,bZ)=>{"use strict";var BZ=Iw(),{CHAR_ASTERISK:SN,CHAR_AT:V5e,CHAR_BACKWARD_SLASH:ww,CHAR_COMMA:J5e,CHAR_DOT:PN,CHAR_EXCLAMATION_MARK:xN,CHAR_FORWARD_SLASH:xZ,CHAR_LEFT_CURLY_BRACE:bN,CHAR_LEFT_PARENTHESES:QN,CHAR_LEFT_SQUARE_BRACKET:z5e,CHAR_PLUS:X5e,CHAR_QUESTION_MARK:vZ,CHAR_RIGHT_CURLY_BRACE:Z5e,CHAR_RIGHT_PARENTHESES:DZ,CHAR_RIGHT_SQUARE_BRACKET:$5e}=Cw(),SZ=t=>t===xZ||t===ww,PZ=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},e7e=(t,e)=>{let r=e||{},o=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],u=[],A=[],p=t,h=-1,C=0,w=0,v=!1,b=!1,E=!1,R=!1,L=!1,_=!1,V=!1,re=!1,ae=!1,he=!1,pe=0,De,ge,le={value:"",depth:0,isGlob:!1},Pe=()=>h>=o,g=()=>p.charCodeAt(h+1),ve=()=>(De=ge,p.charCodeAt(++h));for(;h<o;){ge=ve();let me;if(ge===ww){V=le.backslashes=!0,ge=ve(),ge===bN&&(_=!0);continue}if(_===!0||ge===bN){for(pe++;Pe()!==!0&&(ge=ve());){if(ge===ww){V=le.backslashes=!0,ve();continue}if(ge===bN){pe++;continue}if(_!==!0&&ge===PN&&(ge=ve())===PN){if(v=le.isBrace=!0,E=le.isGlob=!0,he=!0,a===!0)continue;break}if(_!==!0&&ge===J5e){if(v=le.isBrace=!0,E=le.isGlob=!0,he=!0,a===!0)continue;break}if(ge===Z5e&&(pe--,pe===0)){_=!1,v=le.isBrace=!0,he=!0;break}}if(a===!0)continue;break}if(ge===xZ){if(n.push(h),u.push(le),le={value:"",depth:0,isGlob:!1},he===!0)continue;if(De===PN&&h===C+1){C+=2;continue}w=h+1;continue}if(r.noext!==!0&&(ge===X5e||ge===V5e||ge===SN||ge===vZ||ge===xN)===!0&&g()===QN){if(E=le.isGlob=!0,R=le.isExtglob=!0,he=!0,ge===xN&&h===C&&(ae=!0),a===!0){for(;Pe()!==!0&&(ge=ve());){if(ge===ww){V=le.backslashes=!0,ge=ve();continue}if(ge===DZ){E=le.isGlob=!0,he=!0;break}}continue}break}if(ge===SN){if(De===SN&&(L=le.isGlobstar=!0),E=le.isGlob=!0,he=!0,a===!0)continue;break}if(ge===vZ){if(E=le.isGlob=!0,he=!0,a===!0)continue;break}if(ge===z5e){for(;Pe()!==!0&&(me=ve());){if(me===ww){V=le.backslashes=!0,ve();continue}if(me===$5e){b=le.isBracket=!0,E=le.isGlob=!0,he=!0;break}}if(a===!0)continue;break}if(r.nonegate!==!0&&ge===xN&&h===C){re=le.negated=!0,C++;continue}if(r.noparen!==!0&&ge===QN){if(E=le.isGlob=!0,a===!0){for(;Pe()!==!0&&(ge=ve());){if(ge===QN){V=le.backslashes=!0,ge=ve();continue}if(ge===DZ){he=!0;break}}continue}break}if(E===!0){if(he=!0,a===!0)continue;break}}r.noext===!0&&(R=!1,E=!1);let Ee=p,de="",ne="";C>0&&(de=p.slice(0,C),p=p.slice(C),w-=C),Ee&&E===!0&&w>0?(Ee=p.slice(0,w),ne=p.slice(w)):E===!0?(Ee="",ne=p):Ee=p,Ee&&Ee!==""&&Ee!=="/"&&Ee!==p&&SZ(Ee.charCodeAt(Ee.length-1))&&(Ee=Ee.slice(0,-1)),r.unescape===!0&&(ne&&(ne=BZ.removeBackslashes(ne)),Ee&&V===!0&&(Ee=BZ.removeBackslashes(Ee)));let Z={prefix:de,input:t,start:C,base:Ee,glob:ne,isBrace:v,isBracket:b,isGlob:E,isExtglob:R,isGlobstar:L,negated:re,negatedExtglob:ae};if(r.tokens===!0&&(Z.maxDepth=0,SZ(ge)||u.push(le),Z.tokens=u),r.parts===!0||r.tokens===!0){let me;for(let be=0;be<n.length;be++){let ut=me?me+1:C,H=n[be],yt=t.slice(ut,H);r.tokens&&(be===0&&C!==0?(u[be].isPrefix=!0,u[be].value=de):u[be].value=yt,PZ(u[be]),Z.maxDepth+=u[be].depth),(be!==0||yt!=="")&&A.push(yt),me=H}if(me&&me+1<t.length){let be=t.slice(me+1);A.push(be),r.tokens&&(u[u.length-1].value=be,PZ(u[u.length-1]),Z.maxDepth+=u[u.length-1].depth)}Z.slashes=n,Z.parts=A}return Z};bZ.exports=e7e});var RZ=U((Lkt,FZ)=>{"use strict";var SS=Cw(),ol=Iw(),{MAX_LENGTH:PS,POSIX_REGEX_SOURCE:t7e,REGEX_NON_SPECIAL_CHARS:r7e,REGEX_SPECIAL_CHARS_BACKREF:n7e,REPLACEMENTS:kZ}=SS,i7e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>ol.escapeRegex(a)).join("..")}return r},Ny=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,kN=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=kZ[t]||t;let r={...e},o=typeof r.maxLength=="number"?Math.min(PS,r.maxLength):PS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);let n={type:"bos",value:"",output:r.prepend||""},u=[n],A=r.capture?"":"?:",p=ol.isWindows(e),h=SS.globChars(p),C=SS.extglobChars(h),{DOT_LITERAL:w,PLUS_LITERAL:v,SLASH_LITERAL:b,ONE_CHAR:E,DOTS_SLASH:R,NO_DOT:L,NO_DOT_SLASH:_,NO_DOTS_SLASH:V,QMARK:re,QMARK_NO_DOT:ae,STAR:he,START_ANCHOR:pe}=h,De=x=>`(${A}(?:(?!${pe}${x.dot?R:w}).)*?)`,ge=r.dot?"":L,le=r.dot?re:ae,Pe=r.bash===!0?De(r):he;r.capture&&(Pe=`(${Pe})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};t=ol.removePrefix(t,g),a=t.length;let ve=[],Ee=[],de=[],ne=n,Z,me=()=>g.index===a-1,be=g.peek=(x=1)=>t[g.index+x],ut=g.advance=()=>t[++g.index]||"",H=()=>t.slice(g.index+1),yt=(x="",I=0)=>{g.consumed+=x,g.index+=I},Me=x=>{g.output+=x.output!=null?x.output:x.value,yt(x.value)},Te=()=>{let x=1;for(;be()==="!"&&(be(2)!=="("||be(3)==="?");)ut(),g.start++,x++;return x%2===0?!1:(g.negated=!0,g.start++,!0)},Qe=x=>{g[x]++,de.push(x)},_e=x=>{g[x]--,de.pop()},qe=x=>{if(ne.type==="globstar"){let I=g.braces>0&&(x.type==="comma"||x.type==="brace"),P=x.extglob===!0||ve.length&&(x.type==="pipe"||x.type==="paren");x.type!=="slash"&&x.type!=="paren"&&!I&&!P&&(g.output=g.output.slice(0,-ne.output.length),ne.type="star",ne.value="*",ne.output=Pe,g.output+=ne.output)}if(ve.length&&x.type!=="paren"&&(ve[ve.length-1].inner+=x.value),(x.value||x.output)&&Me(x),ne&&ne.type==="text"&&x.type==="text"){ne.value+=x.value,ne.output=(ne.output||"")+x.value;return}x.prev=ne,u.push(x),ne=x},At=(x,I)=>{let P={...C[I],conditions:1,inner:""};P.prev=ne,P.parens=g.parens,P.output=g.output;let y=(r.capture?"(":"")+P.open;Qe("parens"),qe({type:x,value:I,output:g.output?"":E}),qe({type:"paren",extglob:!0,value:ut(),output:y}),ve.push(P)},Oe=x=>{let I=x.close+(r.capture?")":""),P;if(x.type==="negate"){let y=Pe;if(x.inner&&x.inner.length>1&&x.inner.includes("/")&&(y=De(r)),(y!==Pe||me()||/^\)+$/.test(H()))&&(I=x.close=`)$))${y}`),x.inner.includes("*")&&(P=H())&&/^\.[^\\/.]+$/.test(P)){let F=kN(P,{...e,fastpaths:!1}).output;I=x.close=`)${F})${y})`}x.prev.type==="bos"&&(g.negatedExtglob=!0)}qe({type:"paren",extglob:!0,value:Z,output:I}),_e("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let x=!1,I=t.replace(n7e,(P,y,F,z,X,$)=>z==="\\"?(x=!0,P):z==="?"?y?y+z+(X?re.repeat(X.length):""):$===0?le+(X?re.repeat(X.length):""):re.repeat(F.length):z==="."?w.repeat(F.length):z==="*"?y?y+z+(X?Pe:""):Pe:y?P:`\\${P}`);return x===!0&&(r.unescape===!0?I=I.replace(/\\/g,""):I=I.replace(/\\+/g,P=>P.length%2===0?"\\\\":P?"\\":"")),I===t&&r.contains===!0?(g.output=t,g):(g.output=ol.wrapOutput(I,g,e),g)}for(;!me();){if(Z=ut(),Z==="\0")continue;if(Z==="\\"){let P=be();if(P==="/"&&r.bash!==!0||P==="."||P===";")continue;if(!P){Z+="\\",qe({type:"text",value:Z});continue}let y=/^\\+/.exec(H()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(Z+="\\")),r.unescape===!0?Z=ut():Z+=ut(),g.brackets===0){qe({type:"text",value:Z});continue}}if(g.brackets>0&&(Z!=="]"||ne.value==="["||ne.value==="[^")){if(r.posix!==!1&&Z===":"){let P=ne.value.slice(1);if(P.includes("[")&&(ne.posix=!0,P.includes(":"))){let y=ne.value.lastIndexOf("["),F=ne.value.slice(0,y),z=ne.value.slice(y+2),X=t7e[z];if(X){ne.value=F+X,g.backtrack=!0,ut(),!n.output&&u.indexOf(ne)===1&&(n.output=E);continue}}}(Z==="["&&be()!==":"||Z==="-"&&be()==="]")&&(Z=`\\${Z}`),Z==="]"&&(ne.value==="["||ne.value==="[^")&&(Z=`\\${Z}`),r.posix===!0&&Z==="!"&&ne.value==="["&&(Z="^"),ne.value+=Z,Me({value:Z});continue}if(g.quotes===1&&Z!=='"'){Z=ol.escapeRegex(Z),ne.value+=Z,Me({value:Z});continue}if(Z==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&qe({type:"text",value:Z});continue}if(Z==="("){Qe("parens"),qe({type:"paren",value:Z});continue}if(Z===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Ny("opening","("));let P=ve[ve.length-1];if(P&&g.parens===P.parens+1){Oe(ve.pop());continue}qe({type:"paren",value:Z,output:g.parens?")":"\\)"}),_e("parens");continue}if(Z==="["){if(r.nobracket===!0||!H().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Ny("closing","]"));Z=`\\${Z}`}else Qe("brackets");qe({type:"bracket",value:Z});continue}if(Z==="]"){if(r.nobracket===!0||ne&&ne.type==="bracket"&&ne.value.length===1){qe({type:"text",value:Z,output:`\\${Z}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Ny("opening","["));qe({type:"text",value:Z,output:`\\${Z}`});continue}_e("brackets");let P=ne.value.slice(1);if(ne.posix!==!0&&P[0]==="^"&&!P.includes("/")&&(Z=`/${Z}`),ne.value+=Z,Me({value:Z}),r.literalBrackets===!1||ol.hasRegexChars(P))continue;let y=ol.escapeRegex(ne.value);if(g.output=g.output.slice(0,-ne.value.length),r.literalBrackets===!0){g.output+=y,ne.value=y;continue}ne.value=`(${A}${y}|${ne.value})`,g.output+=ne.value;continue}if(Z==="{"&&r.nobrace!==!0){Qe("braces");let P={type:"brace",value:Z,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};Ee.push(P),qe(P);continue}if(Z==="}"){let P=Ee[Ee.length-1];if(r.nobrace===!0||!P){qe({type:"text",value:Z,output:Z});continue}let y=")";if(P.dots===!0){let F=u.slice(),z=[];for(let X=F.length-1;X>=0&&(u.pop(),F[X].type!=="brace");X--)F[X].type!=="dots"&&z.unshift(F[X].value);y=i7e(z,r),g.backtrack=!0}if(P.comma!==!0&&P.dots!==!0){let F=g.output.slice(0,P.outputIndex),z=g.tokens.slice(P.tokensIndex);P.value=P.output="\\{",Z=y="\\}",g.output=F;for(let X of z)g.output+=X.output||X.value}qe({type:"brace",value:Z,output:y}),_e("braces"),Ee.pop();continue}if(Z==="|"){ve.length>0&&ve[ve.length-1].conditions++,qe({type:"text",value:Z});continue}if(Z===","){let P=Z,y=Ee[Ee.length-1];y&&de[de.length-1]==="braces"&&(y.comma=!0,P="|"),qe({type:"comma",value:Z,output:P});continue}if(Z==="/"){if(ne.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",u.pop(),ne=n;continue}qe({type:"slash",value:Z,output:b});continue}if(Z==="."){if(g.braces>0&&ne.type==="dot"){ne.value==="."&&(ne.output=w);let P=Ee[Ee.length-1];ne.type="dots",ne.output+=Z,ne.value+=Z,P.dots=!0;continue}if(g.braces+g.parens===0&&ne.type!=="bos"&&ne.type!=="slash"){qe({type:"text",value:Z,output:w});continue}qe({type:"dot",value:Z,output:w});continue}if(Z==="?"){if(!(ne&&ne.value==="(")&&r.noextglob!==!0&&be()==="("&&be(2)!=="?"){At("qmark",Z);continue}if(ne&&ne.type==="paren"){let y=be(),F=Z;if(y==="<"&&!ol.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(ne.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(H()))&&(F=`\\${Z}`),qe({type:"text",value:Z,output:F});continue}if(r.dot!==!0&&(ne.type==="slash"||ne.type==="bos")){qe({type:"qmark",value:Z,output:ae});continue}qe({type:"qmark",value:Z,output:re});continue}if(Z==="!"){if(r.noextglob!==!0&&be()==="("&&(be(2)!=="?"||!/[!=<:]/.test(be(3)))){At("negate",Z);continue}if(r.nonegate!==!0&&g.index===0){Te();continue}}if(Z==="+"){if(r.noextglob!==!0&&be()==="("&&be(2)!=="?"){At("plus",Z);continue}if(ne&&ne.value==="("||r.regex===!1){qe({type:"plus",value:Z,output:v});continue}if(ne&&(ne.type==="bracket"||ne.type==="paren"||ne.type==="brace")||g.parens>0){qe({type:"plus",value:Z});continue}qe({type:"plus",value:v});continue}if(Z==="@"){if(r.noextglob!==!0&&be()==="("&&be(2)!=="?"){qe({type:"at",extglob:!0,value:Z,output:""});continue}qe({type:"text",value:Z});continue}if(Z!=="*"){(Z==="$"||Z==="^")&&(Z=`\\${Z}`);let P=r7e.exec(H());P&&(Z+=P[0],g.index+=P[0].length),qe({type:"text",value:Z});continue}if(ne&&(ne.type==="globstar"||ne.star===!0)){ne.type="star",ne.star=!0,ne.value+=Z,ne.output=Pe,g.backtrack=!0,g.globstar=!0,yt(Z);continue}let x=H();if(r.noextglob!==!0&&/^\([^?]/.test(x)){At("star",Z);continue}if(ne.type==="star"){if(r.noglobstar===!0){yt(Z);continue}let P=ne.prev,y=P.prev,F=P.type==="slash"||P.type==="bos",z=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!F||x[0]&&x[0]!=="/")){qe({type:"star",value:Z,output:""});continue}let X=g.braces>0&&(P.type==="comma"||P.type==="brace"),$=ve.length&&(P.type==="pipe"||P.type==="paren");if(!F&&P.type!=="paren"&&!X&&!$){qe({type:"star",value:Z,output:""});continue}for(;x.slice(0,3)==="/**";){let ie=t[g.index+4];if(ie&&ie!=="/")break;x=x.slice(3),yt("/**",3)}if(P.type==="bos"&&me()){ne.type="globstar",ne.value+=Z,ne.output=De(r),g.output=ne.output,g.globstar=!0,yt(Z);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&!z&&me()){g.output=g.output.slice(0,-(P.output+ne.output).length),P.output=`(?:${P.output}`,ne.type="globstar",ne.output=De(r)+(r.strictSlashes?")":"|$)"),ne.value+=Z,g.globstar=!0,g.output+=P.output+ne.output,yt(Z);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&x[0]==="/"){let ie=x[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(P.output+ne.output).length),P.output=`(?:${P.output}`,ne.type="globstar",ne.output=`${De(r)}${b}|${b}${ie})`,ne.value+=Z,g.output+=P.output+ne.output,g.globstar=!0,yt(Z+ut()),qe({type:"slash",value:"/",output:""});continue}if(P.type==="bos"&&x[0]==="/"){ne.type="globstar",ne.value+=Z,ne.output=`(?:^|${b}|${De(r)}${b})`,g.output=ne.output,g.globstar=!0,yt(Z+ut()),qe({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-ne.output.length),ne.type="globstar",ne.output=De(r),ne.value+=Z,g.output+=ne.output,g.globstar=!0,yt(Z);continue}let I={type:"star",value:Z,output:Pe};if(r.bash===!0){I.output=".*?",(ne.type==="bos"||ne.type==="slash")&&(I.output=ge+I.output),qe(I);continue}if(ne&&(ne.type==="bracket"||ne.type==="paren")&&r.regex===!0){I.output=Z,qe(I);continue}(g.index===g.start||ne.type==="slash"||ne.type==="dot")&&(ne.type==="dot"?(g.output+=_,ne.output+=_):r.dot===!0?(g.output+=V,ne.output+=V):(g.output+=ge,ne.output+=ge),be()!=="*"&&(g.output+=E,ne.output+=E)),qe(I)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ny("closing","]"));g.output=ol.escapeLast(g.output,"["),_e("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ny("closing",")"));g.output=ol.escapeLast(g.output,"("),_e("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ny("closing","}"));g.output=ol.escapeLast(g.output,"{"),_e("braces")}if(r.strictSlashes!==!0&&(ne.type==="star"||ne.type==="bracket")&&qe({type:"maybe_slash",value:"",output:`${b}?`}),g.backtrack===!0){g.output="";for(let x of g.tokens)g.output+=x.output!=null?x.output:x.value,x.suffix&&(g.output+=x.suffix)}return g};kN.fastpaths=(t,e)=>{let r={...e},o=typeof r.maxLength=="number"?Math.min(PS,r.maxLength):PS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);t=kZ[t]||t;let n=ol.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:A,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:C,NO_DOTS:w,NO_DOTS_SLASH:v,STAR:b,START_ANCHOR:E}=SS.globChars(n),R=r.dot?w:C,L=r.dot?v:C,_=r.capture?"":"?:",V={negated:!1,prefix:""},re=r.bash===!0?".*?":b;r.capture&&(re=`(${re})`);let ae=ge=>ge.noglobstar===!0?re:`(${_}(?:(?!${E}${ge.dot?h:u}).)*?)`,he=ge=>{switch(ge){case"*":return`${R}${p}${re}`;case".*":return`${u}${p}${re}`;case"*.*":return`${R}${re}${u}${p}${re}`;case"*/*":return`${R}${re}${A}${p}${L}${re}`;case"**":return R+ae(r);case"**/*":return`(?:${R}${ae(r)}${A})?${L}${p}${re}`;case"**/*.*":return`(?:${R}${ae(r)}${A})?${L}${re}${u}${p}${re}`;case"**/.*":return`(?:${R}${ae(r)}${A})?${u}${p}${re}`;default:{let le=/^(.*?)\.(\w+)$/.exec(ge);if(!le)return;let Pe=he(le[1]);return Pe?Pe+u+le[2]:void 0}}},pe=ol.removePrefix(t,V),De=he(pe);return De&&r.strictSlashes!==!0&&(De+=`${A}?`),De};FZ.exports=kN});var NZ=U((Okt,TZ)=>{"use strict";var s7e=Ie("path"),o7e=QZ(),FN=RZ(),RN=Iw(),a7e=Cw(),l7e=t=>t&&typeof t=="object"&&!Array.isArray(t),Oi=(t,e,r=!1)=>{if(Array.isArray(t)){let C=t.map(v=>Oi(v,e,r));return v=>{for(let b of C){let E=b(v);if(E)return E}return!1}}let o=l7e(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=RN.isWindows(e),u=o?Oi.compileRe(t,e):Oi.makeRe(t,e,!1,!0),A=u.state;delete u.state;let p=()=>!1;if(a.ignore){let C={...e,ignore:null,onMatch:null,onResult:null};p=Oi(a.ignore,C,r)}let h=(C,w=!1)=>{let{isMatch:v,match:b,output:E}=Oi.test(C,u,e,{glob:t,posix:n}),R={glob:t,state:A,regex:u,posix:n,input:C,output:E,match:b,isMatch:v};return typeof a.onResult=="function"&&a.onResult(R),v===!1?(R.isMatch=!1,w?R:!1):p(C)?(typeof a.onIgnore=="function"&&a.onIgnore(R),R.isMatch=!1,w?R:!1):(typeof a.onMatch=="function"&&a.onMatch(R),w?R:!0)};return r&&(h.state=A),h};Oi.test=(t,e,r,{glob:o,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},u=n.format||(a?RN.toPosixSlashes:null),A=t===o,p=A&&u?u(t):t;return A===!1&&(p=u?u(t):t,A=p===o),(A===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?A=Oi.matchBase(t,e,r,a):A=e.exec(p)),{isMatch:Boolean(A),match:A,output:p}};Oi.matchBase=(t,e,r,o=RN.isWindows(r))=>(e instanceof RegExp?e:Oi.makeRe(e,r)).test(s7e.basename(t));Oi.isMatch=(t,e,r)=>Oi(e,r)(t);Oi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Oi.parse(r,e)):FN(t,{...e,fastpaths:!1});Oi.scan=(t,e)=>o7e(t,e);Oi.compileRe=(t,e,r=!1,o=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",u=a.contains?"":"$",A=`${n}(?:${t.output})${u}`;t&&t.negated===!0&&(A=`^(?!${A}).*$`);let p=Oi.toRegex(A,e);return o===!0&&(p.state=t),p};Oi.makeRe=(t,e={},r=!1,o=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=FN.fastpaths(t,e)),a.output||(a=FN(t,e)),Oi.compileRe(a,e,r,o)};Oi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Oi.constants=a7e;TZ.exports=Oi});var OZ=U((Mkt,LZ)=>{"use strict";LZ.exports=NZ()});var zo=U((Ukt,HZ)=>{"use strict";var UZ=Ie("util"),_Z=mZ(),zu=OZ(),TN=Iw(),MZ=t=>t===""||t==="./",hi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let o=new Set,a=new Set,n=new Set,u=0,A=C=>{n.add(C.output),r&&r.onResult&&r.onResult(C)};for(let C=0;C<e.length;C++){let w=zu(String(e[C]),{...r,onResult:A},!0),v=w.state.negated||w.state.negatedExtglob;v&&u++;for(let b of t){let E=w(b,!0);!(v?!E.isMatch:E.isMatch)||(v?o.add(E.output):(o.delete(E.output),a.add(E.output)))}}let h=(u===e.length?[...n]:[...a]).filter(C=>!o.has(C));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(C=>C.replace(/\\/g,"")):e}return h};hi.match=hi;hi.matcher=(t,e)=>zu(t,e);hi.isMatch=(t,e,r)=>zu(e,r)(t);hi.any=hi.isMatch;hi.not=(t,e,r={})=>{e=[].concat(e).map(String);let o=new Set,a=[],n=A=>{r.onResult&&r.onResult(A),a.push(A.output)},u=new Set(hi(t,e,{...r,onResult:n}));for(let A of a)u.has(A)||o.add(A);return[...o]};hi.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${UZ.inspect(t)}"`);if(Array.isArray(e))return e.some(o=>hi.contains(t,o,r));if(typeof e=="string"){if(MZ(t)||MZ(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return hi.isMatch(t,e,{...r,contains:!0})};hi.matchKeys=(t,e,r)=>{if(!TN.isObject(t))throw new TypeError("Expected the first argument to be an object");let o=hi(Object.keys(t),e,r),a={};for(let n of o)a[n]=t[n];return a};hi.some=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=zu(String(a),r);if(o.some(u=>n(u)))return!0}return!1};hi.every=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=zu(String(a),r);if(!o.every(u=>n(u)))return!1}return!0};hi.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${UZ.inspect(t)}"`);return[].concat(e).every(o=>zu(o,r)(t))};hi.capture=(t,e,r)=>{let o=TN.isWindows(r),n=zu.makeRe(String(t),{...r,capture:!0}).exec(o?TN.toPosixSlashes(e):e);if(n)return n.slice(1).map(u=>u===void 0?"":u)};hi.makeRe=(...t)=>zu.makeRe(...t);hi.scan=(...t)=>zu.scan(...t);hi.parse=(t,e)=>{let r=[];for(let o of[].concat(t||[]))for(let a of _Z(String(o),e))r.push(zu.parse(a,e));return r};hi.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:_Z(t,e)};hi.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return hi.braces(t,{...e,expand:!0})};HZ.exports=hi});var jZ=U((_kt,qZ)=>{"use strict";qZ.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var xS=U((Hkt,GZ)=>{"use strict";var c7e=jZ();GZ.exports=t=>typeof t=="string"?t.replace(c7e(),""):t});var YZ=U((qkt,WZ)=>{function u7e(){this.__data__=[],this.size=0}WZ.exports=u7e});var Ly=U((jkt,KZ)=>{function A7e(t,e){return t===e||t!==t&&e!==e}KZ.exports=A7e});var Bw=U((Gkt,VZ)=>{var f7e=Ly();function p7e(t,e){for(var r=t.length;r--;)if(f7e(t[r][0],e))return r;return-1}VZ.exports=p7e});var zZ=U((Wkt,JZ)=>{var h7e=Bw(),g7e=Array.prototype,d7e=g7e.splice;function m7e(t){var e=this.__data__,r=h7e(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():d7e.call(e,r,1),--this.size,!0}JZ.exports=m7e});var ZZ=U((Ykt,XZ)=>{var y7e=Bw();function E7e(t){var e=this.__data__,r=y7e(e,t);return r<0?void 0:e[r][1]}XZ.exports=E7e});var e$=U((Kkt,$Z)=>{var C7e=Bw();function I7e(t){return C7e(this.__data__,t)>-1}$Z.exports=I7e});var r$=U((Vkt,t$)=>{var w7e=Bw();function B7e(t,e){var r=this.__data__,o=w7e(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}t$.exports=B7e});var vw=U((Jkt,n$)=>{var v7e=YZ(),D7e=zZ(),S7e=ZZ(),P7e=e$(),x7e=r$();function Oy(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}Oy.prototype.clear=v7e;Oy.prototype.delete=D7e;Oy.prototype.get=S7e;Oy.prototype.has=P7e;Oy.prototype.set=x7e;n$.exports=Oy});var s$=U((zkt,i$)=>{var b7e=vw();function Q7e(){this.__data__=new b7e,this.size=0}i$.exports=Q7e});var a$=U((Xkt,o$)=>{function k7e(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}o$.exports=k7e});var c$=U((Zkt,l$)=>{function F7e(t){return this.__data__.get(t)}l$.exports=F7e});var A$=U(($kt,u$)=>{function R7e(t){return this.__data__.has(t)}u$.exports=R7e});var NN=U((eFt,f$)=>{var T7e=typeof global=="object"&&global&&global.Object===Object&&global;f$.exports=T7e});var Yl=U((tFt,p$)=>{var N7e=NN(),L7e=typeof self=="object"&&self&&self.Object===Object&&self,O7e=N7e||L7e||Function("return this")();p$.exports=O7e});var pd=U((rFt,h$)=>{var M7e=Yl(),U7e=M7e.Symbol;h$.exports=U7e});var y$=U((nFt,m$)=>{var g$=pd(),d$=Object.prototype,_7e=d$.hasOwnProperty,H7e=d$.toString,Dw=g$?g$.toStringTag:void 0;function q7e(t){var e=_7e.call(t,Dw),r=t[Dw];try{t[Dw]=void 0;var o=!0}catch{}var a=H7e.call(t);return o&&(e?t[Dw]=r:delete t[Dw]),a}m$.exports=q7e});var C$=U((iFt,E$)=>{var j7e=Object.prototype,G7e=j7e.toString;function W7e(t){return G7e.call(t)}E$.exports=W7e});var hd=U((sFt,B$)=>{var I$=pd(),Y7e=y$(),K7e=C$(),V7e="[object Null]",J7e="[object Undefined]",w$=I$?I$.toStringTag:void 0;function z7e(t){return t==null?t===void 0?J7e:V7e:w$&&w$ in Object(t)?Y7e(t):K7e(t)}B$.exports=z7e});var al=U((oFt,v$)=>{function X7e(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}v$.exports=X7e});var bS=U((aFt,D$)=>{var Z7e=hd(),$7e=al(),eWe="[object AsyncFunction]",tWe="[object Function]",rWe="[object GeneratorFunction]",nWe="[object Proxy]";function iWe(t){if(!$7e(t))return!1;var e=Z7e(t);return e==tWe||e==rWe||e==eWe||e==nWe}D$.exports=iWe});var P$=U((lFt,S$)=>{var sWe=Yl(),oWe=sWe["__core-js_shared__"];S$.exports=oWe});var Q$=U((cFt,b$)=>{var LN=P$(),x$=function(){var t=/[^.]+$/.exec(LN&&LN.keys&&LN.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function aWe(t){return!!x$&&x$ in t}b$.exports=aWe});var ON=U((uFt,k$)=>{var lWe=Function.prototype,cWe=lWe.toString;function uWe(t){if(t!=null){try{return cWe.call(t)}catch{}try{return t+""}catch{}}return""}k$.exports=uWe});var R$=U((AFt,F$)=>{var AWe=bS(),fWe=Q$(),pWe=al(),hWe=ON(),gWe=/[\\^$.*+?()[\]{}|]/g,dWe=/^\[object .+?Constructor\]$/,mWe=Function.prototype,yWe=Object.prototype,EWe=mWe.toString,CWe=yWe.hasOwnProperty,IWe=RegExp("^"+EWe.call(CWe).replace(gWe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function wWe(t){if(!pWe(t)||fWe(t))return!1;var e=AWe(t)?IWe:dWe;return e.test(hWe(t))}F$.exports=wWe});var N$=U((fFt,T$)=>{function BWe(t,e){return t==null?void 0:t[e]}T$.exports=BWe});var Jp=U((pFt,L$)=>{var vWe=R$(),DWe=N$();function SWe(t,e){var r=DWe(t,e);return vWe(r)?r:void 0}L$.exports=SWe});var QS=U((hFt,O$)=>{var PWe=Jp(),xWe=Yl(),bWe=PWe(xWe,"Map");O$.exports=bWe});var Sw=U((gFt,M$)=>{var QWe=Jp(),kWe=QWe(Object,"create");M$.exports=kWe});var H$=U((dFt,_$)=>{var U$=Sw();function FWe(){this.__data__=U$?U$(null):{},this.size=0}_$.exports=FWe});var j$=U((mFt,q$)=>{function RWe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}q$.exports=RWe});var W$=U((yFt,G$)=>{var TWe=Sw(),NWe="__lodash_hash_undefined__",LWe=Object.prototype,OWe=LWe.hasOwnProperty;function MWe(t){var e=this.__data__;if(TWe){var r=e[t];return r===NWe?void 0:r}return OWe.call(e,t)?e[t]:void 0}G$.exports=MWe});var K$=U((EFt,Y$)=>{var UWe=Sw(),_We=Object.prototype,HWe=_We.hasOwnProperty;function qWe(t){var e=this.__data__;return UWe?e[t]!==void 0:HWe.call(e,t)}Y$.exports=qWe});var J$=U((CFt,V$)=>{var jWe=Sw(),GWe="__lodash_hash_undefined__";function WWe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=jWe&&e===void 0?GWe:e,this}V$.exports=WWe});var X$=U((IFt,z$)=>{var YWe=H$(),KWe=j$(),VWe=W$(),JWe=K$(),zWe=J$();function My(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}My.prototype.clear=YWe;My.prototype.delete=KWe;My.prototype.get=VWe;My.prototype.has=JWe;My.prototype.set=zWe;z$.exports=My});var eee=U((wFt,$$)=>{var Z$=X$(),XWe=vw(),ZWe=QS();function $We(){this.size=0,this.__data__={hash:new Z$,map:new(ZWe||XWe),string:new Z$}}$$.exports=$We});var ree=U((BFt,tee)=>{function eYe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}tee.exports=eYe});var Pw=U((vFt,nee)=>{var tYe=ree();function rYe(t,e){var r=t.__data__;return tYe(e)?r[typeof e=="string"?"string":"hash"]:r.map}nee.exports=rYe});var see=U((DFt,iee)=>{var nYe=Pw();function iYe(t){var e=nYe(this,t).delete(t);return this.size-=e?1:0,e}iee.exports=iYe});var aee=U((SFt,oee)=>{var sYe=Pw();function oYe(t){return sYe(this,t).get(t)}oee.exports=oYe});var cee=U((PFt,lee)=>{var aYe=Pw();function lYe(t){return aYe(this,t).has(t)}lee.exports=lYe});var Aee=U((xFt,uee)=>{var cYe=Pw();function uYe(t,e){var r=cYe(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}uee.exports=uYe});var kS=U((bFt,fee)=>{var AYe=eee(),fYe=see(),pYe=aee(),hYe=cee(),gYe=Aee();function Uy(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}Uy.prototype.clear=AYe;Uy.prototype.delete=fYe;Uy.prototype.get=pYe;Uy.prototype.has=hYe;Uy.prototype.set=gYe;fee.exports=Uy});var hee=U((QFt,pee)=>{var dYe=vw(),mYe=QS(),yYe=kS(),EYe=200;function CYe(t,e){var r=this.__data__;if(r instanceof dYe){var o=r.__data__;if(!mYe||o.length<EYe-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new yYe(o)}return r.set(t,e),this.size=r.size,this}pee.exports=CYe});var RS=U((kFt,gee)=>{var IYe=vw(),wYe=s$(),BYe=a$(),vYe=c$(),DYe=A$(),SYe=hee();function _y(t){var e=this.__data__=new IYe(t);this.size=e.size}_y.prototype.clear=wYe;_y.prototype.delete=BYe;_y.prototype.get=vYe;_y.prototype.has=DYe;_y.prototype.set=SYe;gee.exports=_y});var mee=U((FFt,dee)=>{var PYe="__lodash_hash_undefined__";function xYe(t){return this.__data__.set(t,PYe),this}dee.exports=xYe});var Eee=U((RFt,yee)=>{function bYe(t){return this.__data__.has(t)}yee.exports=bYe});var Iee=U((TFt,Cee)=>{var QYe=kS(),kYe=mee(),FYe=Eee();function TS(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new QYe;++e<r;)this.add(t[e])}TS.prototype.add=TS.prototype.push=kYe;TS.prototype.has=FYe;Cee.exports=TS});var Bee=U((NFt,wee)=>{function RYe(t,e){for(var r=-1,o=t==null?0:t.length;++r<o;)if(e(t[r],r,t))return!0;return!1}wee.exports=RYe});var Dee=U((LFt,vee)=>{function TYe(t,e){return t.has(e)}vee.exports=TYe});var MN=U((OFt,See)=>{var NYe=Iee(),LYe=Bee(),OYe=Dee(),MYe=1,UYe=2;function _Ye(t,e,r,o,a,n){var u=r&MYe,A=t.length,p=e.length;if(A!=p&&!(u&&p>A))return!1;var h=n.get(t),C=n.get(e);if(h&&C)return h==e&&C==t;var w=-1,v=!0,b=r&UYe?new NYe:void 0;for(n.set(t,e),n.set(e,t);++w<A;){var E=t[w],R=e[w];if(o)var L=u?o(R,E,w,e,t,n):o(E,R,w,t,e,n);if(L!==void 0){if(L)continue;v=!1;break}if(b){if(!LYe(e,function(_,V){if(!OYe(b,V)&&(E===_||a(E,_,r,o,n)))return b.push(V)})){v=!1;break}}else if(!(E===R||a(E,R,r,o,n))){v=!1;break}}return n.delete(t),n.delete(e),v}See.exports=_Ye});var UN=U((MFt,Pee)=>{var HYe=Yl(),qYe=HYe.Uint8Array;Pee.exports=qYe});var bee=U((UFt,xee)=>{function jYe(t){var e=-1,r=Array(t.size);return t.forEach(function(o,a){r[++e]=[a,o]}),r}xee.exports=jYe});var kee=U((_Ft,Qee)=>{function GYe(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}Qee.exports=GYe});var Lee=U((HFt,Nee)=>{var Fee=pd(),Ree=UN(),WYe=Ly(),YYe=MN(),KYe=bee(),VYe=kee(),JYe=1,zYe=2,XYe="[object Boolean]",ZYe="[object Date]",$Ye="[object Error]",eKe="[object Map]",tKe="[object Number]",rKe="[object RegExp]",nKe="[object Set]",iKe="[object String]",sKe="[object Symbol]",oKe="[object ArrayBuffer]",aKe="[object DataView]",Tee=Fee?Fee.prototype:void 0,_N=Tee?Tee.valueOf:void 0;function lKe(t,e,r,o,a,n,u){switch(r){case aKe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case oKe:return!(t.byteLength!=e.byteLength||!n(new Ree(t),new Ree(e)));case XYe:case ZYe:case tKe:return WYe(+t,+e);case $Ye:return t.name==e.name&&t.message==e.message;case rKe:case iKe:return t==e+"";case eKe:var A=KYe;case nKe:var p=o&JYe;if(A||(A=VYe),t.size!=e.size&&!p)return!1;var h=u.get(t);if(h)return h==e;o|=zYe,u.set(t,e);var C=YYe(A(t),A(e),o,a,n,u);return u.delete(t),C;case sKe:if(_N)return _N.call(t)==_N.call(e)}return!1}Nee.exports=lKe});var NS=U((qFt,Oee)=>{function cKe(t,e){for(var r=-1,o=e.length,a=t.length;++r<o;)t[a+r]=e[r];return t}Oee.exports=cKe});var Kl=U((jFt,Mee)=>{var uKe=Array.isArray;Mee.exports=uKe});var HN=U((GFt,Uee)=>{var AKe=NS(),fKe=Kl();function pKe(t,e,r){var o=e(t);return fKe(t)?o:AKe(o,r(t))}Uee.exports=pKe});var Hee=U((WFt,_ee)=>{function hKe(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r<o;){var u=t[r];e(u,r,t)&&(n[a++]=u)}return n}_ee.exports=hKe});var qN=U((YFt,qee)=>{function gKe(){return[]}qee.exports=gKe});var LS=U((KFt,Gee)=>{var dKe=Hee(),mKe=qN(),yKe=Object.prototype,EKe=yKe.propertyIsEnumerable,jee=Object.getOwnPropertySymbols,CKe=jee?function(t){return t==null?[]:(t=Object(t),dKe(jee(t),function(e){return EKe.call(t,e)}))}:mKe;Gee.exports=CKe});var Yee=U((VFt,Wee)=>{function IKe(t,e){for(var r=-1,o=Array(t);++r<t;)o[r]=e(r);return o}Wee.exports=IKe});var Xu=U((JFt,Kee)=>{function wKe(t){return t!=null&&typeof t=="object"}Kee.exports=wKe});var Jee=U((zFt,Vee)=>{var BKe=hd(),vKe=Xu(),DKe="[object Arguments]";function SKe(t){return vKe(t)&&BKe(t)==DKe}Vee.exports=SKe});var xw=U((XFt,Zee)=>{var zee=Jee(),PKe=Xu(),Xee=Object.prototype,xKe=Xee.hasOwnProperty,bKe=Xee.propertyIsEnumerable,QKe=zee(function(){return arguments}())?zee:function(t){return PKe(t)&&xKe.call(t,"callee")&&!bKe.call(t,"callee")};Zee.exports=QKe});var ete=U((ZFt,$ee)=>{function kKe(){return!1}$ee.exports=kKe});var Qw=U((bw,Hy)=>{var FKe=Yl(),RKe=ete(),nte=typeof bw=="object"&&bw&&!bw.nodeType&&bw,tte=nte&&typeof Hy=="object"&&Hy&&!Hy.nodeType&&Hy,TKe=tte&&tte.exports===nte,rte=TKe?FKe.Buffer:void 0,NKe=rte?rte.isBuffer:void 0,LKe=NKe||RKe;Hy.exports=LKe});var kw=U(($Ft,ite)=>{var OKe=9007199254740991,MKe=/^(?:0|[1-9]\d*)$/;function UKe(t,e){var r=typeof t;return e=e??OKe,!!e&&(r=="number"||r!="symbol"&&MKe.test(t))&&t>-1&&t%1==0&&t<e}ite.exports=UKe});var OS=U((eRt,ste)=>{var _Ke=9007199254740991;function HKe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=_Ke}ste.exports=HKe});var ate=U((tRt,ote)=>{var qKe=hd(),jKe=OS(),GKe=Xu(),WKe="[object Arguments]",YKe="[object Array]",KKe="[object Boolean]",VKe="[object Date]",JKe="[object Error]",zKe="[object Function]",XKe="[object Map]",ZKe="[object Number]",$Ke="[object Object]",eVe="[object RegExp]",tVe="[object Set]",rVe="[object String]",nVe="[object WeakMap]",iVe="[object ArrayBuffer]",sVe="[object DataView]",oVe="[object Float32Array]",aVe="[object Float64Array]",lVe="[object Int8Array]",cVe="[object Int16Array]",uVe="[object Int32Array]",AVe="[object Uint8Array]",fVe="[object Uint8ClampedArray]",pVe="[object Uint16Array]",hVe="[object Uint32Array]",oi={};oi[oVe]=oi[aVe]=oi[lVe]=oi[cVe]=oi[uVe]=oi[AVe]=oi[fVe]=oi[pVe]=oi[hVe]=!0;oi[WKe]=oi[YKe]=oi[iVe]=oi[KKe]=oi[sVe]=oi[VKe]=oi[JKe]=oi[zKe]=oi[XKe]=oi[ZKe]=oi[$Ke]=oi[eVe]=oi[tVe]=oi[rVe]=oi[nVe]=!1;function gVe(t){return GKe(t)&&jKe(t.length)&&!!oi[qKe(t)]}ote.exports=gVe});var MS=U((rRt,lte)=>{function dVe(t){return function(e){return t(e)}}lte.exports=dVe});var US=U((Fw,qy)=>{var mVe=NN(),cte=typeof Fw=="object"&&Fw&&!Fw.nodeType&&Fw,Rw=cte&&typeof qy=="object"&&qy&&!qy.nodeType&&qy,yVe=Rw&&Rw.exports===cte,jN=yVe&&mVe.process,EVe=function(){try{var t=Rw&&Rw.require&&Rw.require("util").types;return t||jN&&jN.binding&&jN.binding("util")}catch{}}();qy.exports=EVe});var _S=U((nRt,fte)=>{var CVe=ate(),IVe=MS(),ute=US(),Ate=ute&&ute.isTypedArray,wVe=Ate?IVe(Ate):CVe;fte.exports=wVe});var GN=U((iRt,pte)=>{var BVe=Yee(),vVe=xw(),DVe=Kl(),SVe=Qw(),PVe=kw(),xVe=_S(),bVe=Object.prototype,QVe=bVe.hasOwnProperty;function kVe(t,e){var r=DVe(t),o=!r&&vVe(t),a=!r&&!o&&SVe(t),n=!r&&!o&&!a&&xVe(t),u=r||o||a||n,A=u?BVe(t.length,String):[],p=A.length;for(var h in t)(e||QVe.call(t,h))&&!(u&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||PVe(h,p)))&&A.push(h);return A}pte.exports=kVe});var HS=U((sRt,hte)=>{var FVe=Object.prototype;function RVe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||FVe;return t===r}hte.exports=RVe});var WN=U((oRt,gte)=>{function TVe(t,e){return function(r){return t(e(r))}}gte.exports=TVe});var mte=U((aRt,dte)=>{var NVe=WN(),LVe=NVe(Object.keys,Object);dte.exports=LVe});var Ete=U((lRt,yte)=>{var OVe=HS(),MVe=mte(),UVe=Object.prototype,_Ve=UVe.hasOwnProperty;function HVe(t){if(!OVe(t))return MVe(t);var e=[];for(var r in Object(t))_Ve.call(t,r)&&r!="constructor"&&e.push(r);return e}yte.exports=HVe});var Tw=U((cRt,Cte)=>{var qVe=bS(),jVe=OS();function GVe(t){return t!=null&&jVe(t.length)&&!qVe(t)}Cte.exports=GVe});var qS=U((uRt,Ite)=>{var WVe=GN(),YVe=Ete(),KVe=Tw();function VVe(t){return KVe(t)?WVe(t):YVe(t)}Ite.exports=VVe});var YN=U((ARt,wte)=>{var JVe=HN(),zVe=LS(),XVe=qS();function ZVe(t){return JVe(t,XVe,zVe)}wte.exports=ZVe});var Dte=U((fRt,vte)=>{var Bte=YN(),$Ve=1,eJe=Object.prototype,tJe=eJe.hasOwnProperty;function rJe(t,e,r,o,a,n){var u=r&$Ve,A=Bte(t),p=A.length,h=Bte(e),C=h.length;if(p!=C&&!u)return!1;for(var w=p;w--;){var v=A[w];if(!(u?v in e:tJe.call(e,v)))return!1}var b=n.get(t),E=n.get(e);if(b&&E)return b==e&&E==t;var R=!0;n.set(t,e),n.set(e,t);for(var L=u;++w<p;){v=A[w];var _=t[v],V=e[v];if(o)var re=u?o(V,_,v,e,t,n):o(_,V,v,t,e,n);if(!(re===void 0?_===V||a(_,V,r,o,n):re)){R=!1;break}L||(L=v=="constructor")}if(R&&!L){var ae=t.constructor,he=e.constructor;ae!=he&&"constructor"in t&&"constructor"in e&&!(typeof ae=="function"&&ae instanceof ae&&typeof he=="function"&&he instanceof he)&&(R=!1)}return n.delete(t),n.delete(e),R}vte.exports=rJe});var Pte=U((pRt,Ste)=>{var nJe=Jp(),iJe=Yl(),sJe=nJe(iJe,"DataView");Ste.exports=sJe});var bte=U((hRt,xte)=>{var oJe=Jp(),aJe=Yl(),lJe=oJe(aJe,"Promise");xte.exports=lJe});var kte=U((gRt,Qte)=>{var cJe=Jp(),uJe=Yl(),AJe=cJe(uJe,"Set");Qte.exports=AJe});var Rte=U((dRt,Fte)=>{var fJe=Jp(),pJe=Yl(),hJe=fJe(pJe,"WeakMap");Fte.exports=hJe});var Nw=U((mRt,_te)=>{var KN=Pte(),VN=QS(),JN=bte(),zN=kte(),XN=Rte(),Ute=hd(),jy=ON(),Tte="[object Map]",gJe="[object Object]",Nte="[object Promise]",Lte="[object Set]",Ote="[object WeakMap]",Mte="[object DataView]",dJe=jy(KN),mJe=jy(VN),yJe=jy(JN),EJe=jy(zN),CJe=jy(XN),gd=Ute;(KN&&gd(new KN(new ArrayBuffer(1)))!=Mte||VN&&gd(new VN)!=Tte||JN&&gd(JN.resolve())!=Nte||zN&&gd(new zN)!=Lte||XN&&gd(new XN)!=Ote)&&(gd=function(t){var e=Ute(t),r=e==gJe?t.constructor:void 0,o=r?jy(r):"";if(o)switch(o){case dJe:return Mte;case mJe:return Tte;case yJe:return Nte;case EJe:return Lte;case CJe:return Ote}return e});_te.exports=gd});var Vte=U((yRt,Kte)=>{var ZN=RS(),IJe=MN(),wJe=Lee(),BJe=Dte(),Hte=Nw(),qte=Kl(),jte=Qw(),vJe=_S(),DJe=1,Gte="[object Arguments]",Wte="[object Array]",jS="[object Object]",SJe=Object.prototype,Yte=SJe.hasOwnProperty;function PJe(t,e,r,o,a,n){var u=qte(t),A=qte(e),p=u?Wte:Hte(t),h=A?Wte:Hte(e);p=p==Gte?jS:p,h=h==Gte?jS:h;var C=p==jS,w=h==jS,v=p==h;if(v&&jte(t)){if(!jte(e))return!1;u=!0,C=!1}if(v&&!C)return n||(n=new ZN),u||vJe(t)?IJe(t,e,r,o,a,n):wJe(t,e,p,r,o,a,n);if(!(r&DJe)){var b=C&&Yte.call(t,"__wrapped__"),E=w&&Yte.call(e,"__wrapped__");if(b||E){var R=b?t.value():t,L=E?e.value():e;return n||(n=new ZN),a(R,L,r,o,n)}}return v?(n||(n=new ZN),BJe(t,e,r,o,a,n)):!1}Kte.exports=PJe});var Zte=U((ERt,Xte)=>{var xJe=Vte(),Jte=Xu();function zte(t,e,r,o,a){return t===e?!0:t==null||e==null||!Jte(t)&&!Jte(e)?t!==t&&e!==e:xJe(t,e,r,o,zte,a)}Xte.exports=zte});var ere=U((CRt,$te)=>{var bJe=Zte();function QJe(t,e){return bJe(t,e)}$te.exports=QJe});var $N=U((IRt,tre)=>{var kJe=Jp(),FJe=function(){try{var t=kJe(Object,"defineProperty");return t({},"",{}),t}catch{}}();tre.exports=FJe});var GS=U((wRt,nre)=>{var rre=$N();function RJe(t,e,r){e=="__proto__"&&rre?rre(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}nre.exports=RJe});var eL=U((BRt,ire)=>{var TJe=GS(),NJe=Ly();function LJe(t,e,r){(r!==void 0&&!NJe(t[e],r)||r===void 0&&!(e in t))&&TJe(t,e,r)}ire.exports=LJe});var ore=U((vRt,sre)=>{function OJe(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}sre.exports=OJe});var lre=U((DRt,are)=>{var MJe=ore(),UJe=MJe();are.exports=UJe});var tL=U((Lw,Gy)=>{var _Je=Yl(),fre=typeof Lw=="object"&&Lw&&!Lw.nodeType&&Lw,cre=fre&&typeof Gy=="object"&&Gy&&!Gy.nodeType&&Gy,HJe=cre&&cre.exports===fre,ure=HJe?_Je.Buffer:void 0,Are=ure?ure.allocUnsafe:void 0;function qJe(t,e){if(e)return t.slice();var r=t.length,o=Are?Are(r):new t.constructor(r);return t.copy(o),o}Gy.exports=qJe});var WS=U((SRt,hre)=>{var pre=UN();function jJe(t){var e=new t.constructor(t.byteLength);return new pre(e).set(new pre(t)),e}hre.exports=jJe});var rL=U((PRt,gre)=>{var GJe=WS();function WJe(t,e){var r=e?GJe(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}gre.exports=WJe});var YS=U((xRt,dre)=>{function YJe(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r<o;)e[r]=t[r];return e}dre.exports=YJe});var Ere=U((bRt,yre)=>{var KJe=al(),mre=Object.create,VJe=function(){function t(){}return function(e){if(!KJe(e))return{};if(mre)return mre(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();yre.exports=VJe});var KS=U((QRt,Cre)=>{var JJe=WN(),zJe=JJe(Object.getPrototypeOf,Object);Cre.exports=zJe});var nL=U((kRt,Ire)=>{var XJe=Ere(),ZJe=KS(),$Je=HS();function eze(t){return typeof t.constructor=="function"&&!$Je(t)?XJe(ZJe(t)):{}}Ire.exports=eze});var Bre=U((FRt,wre)=>{var tze=Tw(),rze=Xu();function nze(t){return rze(t)&&tze(t)}wre.exports=nze});var iL=U((RRt,Dre)=>{var ize=hd(),sze=KS(),oze=Xu(),aze="[object Object]",lze=Function.prototype,cze=Object.prototype,vre=lze.toString,uze=cze.hasOwnProperty,Aze=vre.call(Object);function fze(t){if(!oze(t)||ize(t)!=aze)return!1;var e=sze(t);if(e===null)return!0;var r=uze.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&vre.call(r)==Aze}Dre.exports=fze});var sL=U((TRt,Sre)=>{function pze(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}Sre.exports=pze});var VS=U((NRt,Pre)=>{var hze=GS(),gze=Ly(),dze=Object.prototype,mze=dze.hasOwnProperty;function yze(t,e,r){var o=t[e];(!(mze.call(t,e)&&gze(o,r))||r===void 0&&!(e in t))&&hze(t,e,r)}Pre.exports=yze});var dd=U((LRt,xre)=>{var Eze=VS(),Cze=GS();function Ize(t,e,r,o){var a=!r;r||(r={});for(var n=-1,u=e.length;++n<u;){var A=e[n],p=o?o(r[A],t[A],A,r,t):void 0;p===void 0&&(p=t[A]),a?Cze(r,A,p):Eze(r,A,p)}return r}xre.exports=Ize});var Qre=U((ORt,bre)=>{function wze(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}bre.exports=wze});var Fre=U((MRt,kre)=>{var Bze=al(),vze=HS(),Dze=Qre(),Sze=Object.prototype,Pze=Sze.hasOwnProperty;function xze(t){if(!Bze(t))return Dze(t);var e=vze(t),r=[];for(var o in t)o=="constructor"&&(e||!Pze.call(t,o))||r.push(o);return r}kre.exports=xze});var Wy=U((URt,Rre)=>{var bze=GN(),Qze=Fre(),kze=Tw();function Fze(t){return kze(t)?bze(t,!0):Qze(t)}Rre.exports=Fze});var Nre=U((_Rt,Tre)=>{var Rze=dd(),Tze=Wy();function Nze(t){return Rze(t,Tze(t))}Tre.exports=Nze});var Hre=U((HRt,_re)=>{var Lre=eL(),Lze=tL(),Oze=rL(),Mze=YS(),Uze=nL(),Ore=xw(),Mre=Kl(),_ze=Bre(),Hze=Qw(),qze=bS(),jze=al(),Gze=iL(),Wze=_S(),Ure=sL(),Yze=Nre();function Kze(t,e,r,o,a,n,u){var A=Ure(t,r),p=Ure(e,r),h=u.get(p);if(h){Lre(t,r,h);return}var C=n?n(A,p,r+"",t,e,u):void 0,w=C===void 0;if(w){var v=Mre(p),b=!v&&Hze(p),E=!v&&!b&&Wze(p);C=p,v||b||E?Mre(A)?C=A:_ze(A)?C=Mze(A):b?(w=!1,C=Lze(p,!0)):E?(w=!1,C=Oze(p,!0)):C=[]:Gze(p)||Ore(p)?(C=A,Ore(A)?C=Yze(A):(!jze(A)||qze(A))&&(C=Uze(p))):w=!1}w&&(u.set(p,C),a(C,p,o,n,u),u.delete(p)),Lre(t,r,C)}_re.exports=Kze});var Gre=U((qRt,jre)=>{var Vze=RS(),Jze=eL(),zze=lre(),Xze=Hre(),Zze=al(),$ze=Wy(),eXe=sL();function qre(t,e,r,o,a){t!==e&&zze(e,function(n,u){if(a||(a=new Vze),Zze(n))Xze(t,e,u,r,qre,o,a);else{var A=o?o(eXe(t,u),n,u+"",t,e,a):void 0;A===void 0&&(A=n),Jze(t,u,A)}},$ze)}jre.exports=qre});var oL=U((jRt,Wre)=>{function tXe(t){return t}Wre.exports=tXe});var Kre=U((GRt,Yre)=>{function rXe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}Yre.exports=rXe});var aL=U((WRt,Jre)=>{var nXe=Kre(),Vre=Math.max;function iXe(t,e,r){return e=Vre(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=Vre(o.length-e,0),u=Array(n);++a<n;)u[a]=o[e+a];a=-1;for(var A=Array(e+1);++a<e;)A[a]=o[a];return A[e]=r(u),nXe(t,this,A)}}Jre.exports=iXe});var Xre=U((YRt,zre)=>{function sXe(t){return function(){return t}}zre.exports=sXe});var ene=U((KRt,$re)=>{var oXe=Xre(),Zre=$N(),aXe=oL(),lXe=Zre?function(t,e){return Zre(t,"toString",{configurable:!0,enumerable:!1,value:oXe(e),writable:!0})}:aXe;$re.exports=lXe});var rne=U((VRt,tne)=>{var cXe=800,uXe=16,AXe=Date.now;function fXe(t){var e=0,r=0;return function(){var o=AXe(),a=uXe-(o-r);if(r=o,a>0){if(++e>=cXe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}tne.exports=fXe});var lL=U((JRt,nne)=>{var pXe=ene(),hXe=rne(),gXe=hXe(pXe);nne.exports=gXe});var sne=U((zRt,ine)=>{var dXe=oL(),mXe=aL(),yXe=lL();function EXe(t,e){return yXe(mXe(t,e,dXe),t+"")}ine.exports=EXe});var ane=U((XRt,one)=>{var CXe=Ly(),IXe=Tw(),wXe=kw(),BXe=al();function vXe(t,e,r){if(!BXe(r))return!1;var o=typeof e;return(o=="number"?IXe(r)&&wXe(e,r.length):o=="string"&&e in r)?CXe(r[e],t):!1}one.exports=vXe});var cne=U((ZRt,lne)=>{var DXe=sne(),SXe=ane();function PXe(t){return DXe(function(e,r){var o=-1,a=r.length,n=a>1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,u&&SXe(r[0],r[1],u)&&(n=a<3?void 0:n,a=1),e=Object(e);++o<a;){var A=r[o];A&&t(e,A,o,n)}return e})}lne.exports=PXe});var Ane=U(($Rt,une)=>{var xXe=Gre(),bXe=cne(),QXe=bXe(function(t,e,r,o){xXe(t,e,r,o)});une.exports=QXe});var We={};Yt(We,{AsyncActions:()=>AL,BufferStream:()=>uL,CachingStrategy:()=>Bne,DefaultStream:()=>fL,allSettledSafe:()=>Gc,assertNever:()=>hL,bufferStream:()=>Jy,buildIgnorePattern:()=>OXe,convertMapsToIndexableObjects:()=>JS,dynamicRequire:()=>zp,escapeRegExp:()=>FXe,getArrayWithDefault:()=>Yy,getFactoryWithDefault:()=>Sf,getMapWithDefault:()=>Ky,getSetWithDefault:()=>md,isIndexableObject:()=>cL,isPathLike:()=>MXe,isTaggedYarnVersion:()=>kXe,makeDeferred:()=>Cne,mapAndFilter:()=>Zu,mapAndFind:()=>Mw,mergeIntoTarget:()=>Dne,overrideType:()=>RXe,parseBoolean:()=>Uw,parseOptionalBoolean:()=>vne,prettifyAsyncErrors:()=>Vy,prettifySyncErrors:()=>gL,releaseAfterUseAsync:()=>NXe,replaceEnvVariables:()=>dL,sortMap:()=>xa,toMerged:()=>UXe,tryParseOptionalBoolean:()=>mL,validateEnum:()=>TXe});function kXe(t){return!!(mne.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function FXe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function RXe(t){}function hL(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function TXe(t,e){let r=Object.values(t);if(!r.includes(e))throw new ot(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(o=>JSON.stringify(o)).join(", ")})`);return e}function Zu(t,e){let r=[];for(let o of t){let a=e(o);a!==yne&&r.push(a)}return r}function Mw(t,e){for(let r of t){let o=e(r);if(o!==Ene)return o}}function cL(t){return typeof t=="object"&&t!==null}async function Gc(t){let e=await Promise.allSettled(t),r=[];for(let o of e){if(o.status==="rejected")throw o.reason;r.push(o.value)}return r}function JS(t){if(t instanceof Map&&(t=Object.fromEntries(t)),cL(t))for(let e of Object.keys(t)){let r=t[e];cL(r)&&(t[e]=JS(r))}return t}function Sf(t,e,r){let o=t.get(e);return typeof o>"u"&&t.set(e,o=r()),o}function Yy(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function md(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function Ky(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function NXe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function Vy(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function gL(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Jy(t){return await new Promise((e,r)=>{let o=[];t.on("error",a=>{r(a)}),t.on("data",a=>{o.push(a)}),t.on("end",()=>{e(Buffer.concat(o))})})}function Cne(){let t,e;return{promise:new Promise((o,a)=>{t=o,e=a}),resolve:t,reject:e}}function Ine(t){return Ow(ue.fromPortablePath(t))}function wne(path){let physicalPath=ue.fromPortablePath(path),currentCacheEntry=Ow.cache[physicalPath];delete Ow.cache[physicalPath];let result;try{result=Ine(physicalPath);let freshCacheEntry=Ow.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Ow.cache[physicalPath]=currentCacheEntry}return result}function LXe(t){let e=fne.get(t),r=oe.statSync(t);if((e==null?void 0:e.mtime)===r.mtimeMs)return e.instance;let o=wne(t);return fne.set(t,{mtime:r.mtimeMs,instance:o}),o}function zp(t,{cachingStrategy:e=2}={}){switch(e){case 0:return wne(t);case 1:return LXe(t);case 2:return Ine(t);default:throw new Error("Unsupported caching strategy")}}function xa(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]<A[u]?-1:A[n]>A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function OXe(t){return t.length===0?null:t.map(e=>`(${gne.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function dL(t,{env:e}){let r=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return t.replace(r,(...o)=>{let{variableName:a,colon:n,fallback:u}=o[o.length-1],A=Object.prototype.hasOwnProperty.call(e,a),p=e[a];if(p||A&&!n)return p;if(u!=null)return u;throw new ot(`Environment variable not found (${a})`)})}function Uw(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function vne(t){return typeof t>"u"?t:Uw(t)}function mL(t){try{return vne(t)}catch{return null}}function MXe(t){return!!(ue.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function Dne(t,...e){let r=u=>({value:u}),o=r(t),a=e.map(u=>r(u)),{value:n}=(0,hne.default)(o,...a,(u,A)=>{if(Array.isArray(u)&&Array.isArray(A)){for(let p of A)u.find(h=>(0,pne.default)(h,p))||u.push(p);return u}});return n}function UXe(...t){return Dne({},...t)}var pne,hne,gne,dne,mne,pL,yne,Ene,uL,AL,fL,Ow,fne,Bne,Vl=dt(()=>{St();_t();pne=tt(ere()),hne=tt(Ane()),gne=tt(zo()),dne=tt(nd()),mne=tt(si()),pL=Ie("stream");yne=Symbol();Zu.skip=yne;Ene=Symbol();Mw.skip=Ene;uL=class extends pL.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};AL=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,dne.default)(e)}set(e,r){let o=this.deferred.get(e);typeof o>"u"&&this.deferred.set(e,o=Cne());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&o.resolve()},n=>{this.promises.get(e)===a&&o.reject(n)}),o.promise}reduce(e,r){let o=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(o))}async wait(){await Promise.all(this.promises.values())}},fL=class extends pL.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},Ow=eval("require");fne=new Map;Bne=(o=>(o[o.NoCache=0]="NoCache",o[o.FsTime=1]="FsTime",o[o.Node=2]="Node",o))(Bne||{})});var zy,yL,EL,Sne=dt(()=>{zy=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))(zy||{}),yL=(o=>(o.Dependency="Dependency",o.PeerDependency="PeerDependency",o.PeerDependencyMeta="PeerDependencyMeta",o))(yL||{}),EL=(o=>(o.Inactive="inactive",o.Redundant="redundant",o.Active="active",o))(EL||{})});var ye={};Yt(ye,{LogLevel:()=>$S,Style:()=>IL,Type:()=>Bt,addLogFilterSupport:()=>qw,applyColor:()=>ba,applyHyperlink:()=>Xy,applyStyle:()=>ZS,json:()=>yd,jsonOrPretty:()=>qXe,mark:()=>DL,pretty:()=>Kt,prettyField:()=>$u,prettyList:()=>vL,supportsColor:()=>XS,supportsHyperlinks:()=>BL,tuple:()=>Wc});function Wc(t,e){return[e,t]}function ZS(t,e,r){return t.get("enableColors")&&r&2&&(e=Hw.default.bold(e)),e}function ba(t,e,r){if(!t.get("enableColors"))return e;let o=_Xe.get(r);if(o===null)return e;let a=typeof o>"u"?r:wL.level>=3?o[0]:o[1],n=typeof a=="number"?CL.ansi256(a):a.startsWith("#")?CL.hex(a):CL[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function Xy(t,e,r){return t.get("enableHyperlinks")?HXe?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Kt(t,e,r){if(e===null)return ba(t,"null",Bt.NULL);if(Object.prototype.hasOwnProperty.call(zS,r))return zS[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return ba(t,e,r)}function vL(t,e,r,{separator:o=", "}={}){return[...e].map(a=>Kt(t,a,r)).join(o)}function yd(t,e){if(t===null)return null;if(Object.prototype.hasOwnProperty.call(zS,e))return zS[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function qXe(t,e,[r,o]){return t?yd(r,o):Kt(e,r,o)}function DL(t){return{Check:ba(t,"\u2713","green"),Cross:ba(t,"\u2718","red"),Question:ba(t,"?","cyan")}}function $u(t,{label:e,value:[r,o]}){return`${Kt(t,e,Bt.CODE)}: ${Kt(t,r,o)}`}function qw(t,{configuration:e}){let r=e.get("logFilters"),o=new Map,a=new Map,n=[];for(let w of r){let v=w.get("level");if(typeof v>"u")continue;let b=w.get("code");typeof b<"u"&&o.set(b,v);let E=w.get("text");typeof E<"u"&&a.set(E,v);let R=w.get("pattern");typeof R<"u"&&n.push([Pne.default.matcher(R,{contains:!0}),v])}n.reverse();let u=(w,v,b)=>{if(w===null||w===0)return b;let E=a.size>0||n.length>0?(0,xne.default)(v):v;if(a.size>0){let R=a.get(E);if(typeof R<"u")return R??b}if(n.length>0){for(let[R,L]of n)if(R(E))return L??b}if(o.size>0){let R=o.get(Vu(w));if(typeof R<"u")return R??b}return b},A=t.reportInfo,p=t.reportWarning,h=t.reportError,C=function(w,v,b,E){switch(u(v,b,E)){case"info":A.call(w,v,b);break;case"warning":p.call(w,v??0,b);break;case"error":h.call(w,v??0,b);break}};t.reportInfo=function(...w){return C(this,...w,"info")},t.reportWarning=function(...w){return C(this,...w,"warning")},t.reportError=function(...w){return C(this,...w,"error")}}var Hw,_w,Pne,xne,bne,Bt,IL,wL,XS,BL,CL,_Xe,ll,zS,HXe,$S,zl=dt(()=>{St();Hw=tt(yN()),_w=tt(Zg());_t();Pne=tt(zo()),xne=tt(xS()),bne=Ie("util");rS();Ks();Bt={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},IL=(e=>(e[e.BOLD=2]="BOLD",e))(IL||{}),wL=_w.default.GITHUB_ACTIONS?{level:2}:Hw.default.supportsColor?{level:Hw.default.supportsColor.level}:{level:0},XS=wL.level!==0,BL=XS&&!_w.default.GITHUB_ACTIONS&&!_w.default.CIRCLE&&!_w.default.GITLAB,CL=new Hw.default.Instance(wL),_Xe=new Map([[Bt.NO_HINT,null],[Bt.NULL,["#a853b5",129]],[Bt.SCOPE,["#d75f00",166]],[Bt.NAME,["#d7875f",173]],[Bt.RANGE,["#00afaf",37]],[Bt.REFERENCE,["#87afff",111]],[Bt.NUMBER,["#ffd700",220]],[Bt.PATH,["#d75fd7",170]],[Bt.URL,["#d75fd7",170]],[Bt.ADDED,["#5faf00",70]],[Bt.REMOVED,["#d70000",160]],[Bt.CODE,["#87afff",111]],[Bt.SIZE,["#ffd700",220]]]),ll=t=>t,zS={[Bt.INSPECT]:ll({pretty:(t,e)=>(0,bne.inspect)(e,{depth:1/0,colors:t.get("enableColors"),compact:!0,breakLength:1/0}),json:t=>t}),[Bt.NUMBER]:ll({pretty:(t,e)=>ba(t,`${e}`,Bt.NUMBER),json:t=>t}),[Bt.IDENT]:ll({pretty:(t,e)=>cs(t,e),json:t=>nn(t)}),[Bt.LOCATOR]:ll({pretty:(t,e)=>kr(t,e),json:t=>Jl(t)}),[Bt.DESCRIPTOR]:ll({pretty:(t,e)=>Ln(t,e),json:t=>Qa(t)}),[Bt.RESOLUTION]:ll({pretty:(t,{descriptor:e,locator:r})=>jw(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:Qa(t),locator:e!==null?Jl(e):null})}),[Bt.DEPENDENT]:ll({pretty:(t,{locator:e,descriptor:r})=>SL(t,e,r),json:({locator:t,descriptor:e})=>({locator:Jl(t),descriptor:Qa(e)})}),[Bt.PACKAGE_EXTENSION]:ll({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${cs(t,e.parentDescriptor)} \u27A4 ${ba(t,"dependencies",Bt.CODE)} \u27A4 ${cs(t,e.descriptor)}`;case"PeerDependency":return`${cs(t,e.parentDescriptor)} \u27A4 ${ba(t,"peerDependencies",Bt.CODE)} \u27A4 ${cs(t,e.descriptor)}`;case"PeerDependencyMeta":return`${cs(t,e.parentDescriptor)} \u27A4 ${ba(t,"peerDependenciesMeta",Bt.CODE)} \u27A4 ${cs(t,Ys(e.selector))} \u27A4 ${ba(t,e.key,Bt.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${nn(t.parentDescriptor)} > ${nn(t.descriptor)}`;case"PeerDependency":return`${nn(t.parentDescriptor)} >> ${nn(t.descriptor)}`;case"PeerDependencyMeta":return`${nn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[Bt.SETTING]:ll({pretty:(t,e)=>(t.get(e),Xy(t,ba(t,e,Bt.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[Bt.DURATION]:ll({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),o=Math.ceil((e-r*60*1e3)/1e3);return o===0?`${r}m`:`${r}m ${o}s`}else{let r=Math.floor(e/1e3),o=e-r*1e3;return o===0?`${r}s`:`${r}s ${o}ms`}},json:t=>t}),[Bt.SIZE]:ll({pretty:(t,e)=>{let r=["KB","MB","GB","TB"],o=r.length;for(;o>1&&e<1024**o;)o-=1;let a=1024**o,n=Math.floor(e*100/a)/100;return ba(t,`${n} ${r[o-1]}`,Bt.NUMBER)},json:t=>t}),[Bt.PATH]:ll({pretty:(t,e)=>ba(t,ue.fromPortablePath(e),Bt.PATH),json:t=>ue.fromPortablePath(t)}),[Bt.MARKDOWN]:ll({pretty:(t,{text:e,format:r,paragraphs:o})=>Bo(e,{format:r,paragraphs:o}),json:({text:t})=>t})};HXe=!!process.env.KONSOLE_VERSION;$S=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))($S||{})});var kne=U((uTt,Qne)=>{"use strict";Qne.exports=(...t)=>[...new Set([].concat(...t))]});var PL=U((ATt,Tne)=>{"use strict";var jXe=Ie("stream"),Fne=jXe.PassThrough,GXe=Array.prototype.slice;Tne.exports=WXe;function WXe(){let t=[],e=GXe.call(arguments),r=!1,o=e[e.length-1];o&&!Array.isArray(o)&&o.pipe==null?e.pop():o={};let a=o.end!==!1,n=o.pipeError===!0;o.objectMode==null&&(o.objectMode=!0),o.highWaterMark==null&&(o.highWaterMark=64*1024);let u=Fne(o);function A(){for(let C=0,w=arguments.length;C<w;C++)t.push(Rne(arguments[C],o));return p(),this}function p(){if(r)return;r=!0;let C=t.shift();if(!C){process.nextTick(h);return}Array.isArray(C)||(C=[C]);let w=C.length+1;function v(){--w>0||(r=!1,p())}function b(E){function R(){E.removeListener("merge2UnpipeEnd",R),E.removeListener("end",R),n&&E.removeListener("error",L),v()}function L(_){u.emit("error",_)}if(E._readableState.endEmitted)return v();E.on("merge2UnpipeEnd",R),E.on("end",R),n&&E.on("error",L),E.pipe(u,{end:!1}),E.resume()}for(let E=0;E<C.length;E++)b(C[E]);v()}function h(){r=!1,u.emit("queueDrain"),a&&u.end()}return u.setMaxListeners(0),u.add=A,u.on("unpipe",function(C){C.emit("merge2UnpipeEnd")}),e.length&&A.apply(null,e),u}function Rne(t,e){if(Array.isArray(t))for(let r=0,o=t.length;r<o;r++)t[r]=Rne(t[r],e);else{if(!t._readableState&&t.pipe&&(t=t.pipe(Fne(e))),!t._readableState||!t.pause||!t.pipe)throw new Error("Only readable stream can be merged.");t.pause()}return t}});var Nne=U(Zy=>{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});Zy.splitWhen=Zy.flatten=void 0;function YXe(t){return t.reduce((e,r)=>[].concat(e,r),[])}Zy.flatten=YXe;function KXe(t,e){let r=[[]],o=0;for(let a of t)e(a)?(o++,r[o]=[]):r[o].push(a);return r}Zy.splitWhen=KXe});var Lne=U(eP=>{"use strict";Object.defineProperty(eP,"__esModule",{value:!0});eP.isEnoentCodeError=void 0;function VXe(t){return t.code==="ENOENT"}eP.isEnoentCodeError=VXe});var One=U(tP=>{"use strict";Object.defineProperty(tP,"__esModule",{value:!0});tP.createDirentFromStats=void 0;var xL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function JXe(t,e){return new xL(t,e)}tP.createDirentFromStats=JXe});var Mne=U(eA=>{"use strict";Object.defineProperty(eA,"__esModule",{value:!0});eA.removeLeadingDotSegment=eA.escape=eA.makeAbsolute=eA.unixify=void 0;var zXe=Ie("path"),XXe=2,ZXe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function $Xe(t){return t.replace(/\\/g,"/")}eA.unixify=$Xe;function eZe(t,e){return zXe.resolve(t,e)}eA.makeAbsolute=eZe;function tZe(t){return t.replace(ZXe,"\\$2")}eA.escape=tZe;function rZe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(XXe)}return t}eA.removeLeadingDotSegment=rZe});var _ne=U((dTt,Une)=>{Une.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var jne=U((mTt,qne)=>{var nZe=_ne(),Hne={"{":"}","(":")","[":"]"},iZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,o=-2,a=-2,n=-2,u=-2;e<t.length;){if(t[e]==="*"||t[e+1]==="?"&&/[\].+)]/.test(t[e])||o!==-1&&t[e]==="["&&t[e+1]!=="]"&&(o<e&&(o=t.indexOf("]",e)),o>e&&(u===-1||u>o||(u=t.indexOf("\\",e),u===-1||u>o)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(u=t.indexOf("\\",e),u===-1||u>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(u=t.indexOf("\\",e),u===-1||u>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(r<e&&(r=t.indexOf("|",e)),r!==-1&&t[r+1]!==")"&&(n=t.indexOf(")",r),n>r&&(u=t.indexOf("\\",r),u===-1||u>n))))return!0;if(t[e]==="\\"){var A=t[e+1];e+=2;var p=Hne[A];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},sZe=function(t){if(t[0]==="!")return!0;for(var e=0;e<t.length;){if(/[*?{}()[\]]/.test(t[e]))return!0;if(t[e]==="\\"){var r=t[e+1];e+=2;var o=Hne[r];if(o){var a=t.indexOf(o,e);a!==-1&&(e=a+1)}if(t[e]==="!")return!0}else e++}return!1};qne.exports=function(e,r){if(typeof e!="string"||e==="")return!1;if(nZe(e))return!0;var o=iZe;return r&&r.strict===!1&&(o=sZe),o(e)}});var Wne=U((yTt,Gne)=>{"use strict";var oZe=jne(),aZe=Ie("path").posix.dirname,lZe=Ie("os").platform()==="win32",bL="/",cZe=/\\/g,uZe=/[\{\[].*[\}\]]$/,AZe=/(^|[^\\])([\{\[]|\([^\)]+$)/,fZe=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Gne.exports=function(e,r){var o=Object.assign({flipBackslashes:!0},r);o.flipBackslashes&&lZe&&e.indexOf(bL)<0&&(e=e.replace(cZe,bL)),uZe.test(e)&&(e+=bL),e+="a";do e=aZe(e);while(oZe(e)||AZe.test(e));return e.replace(fZe,"$1")}});var $ne=U(Or=>{"use strict";Object.defineProperty(Or,"__esModule",{value:!0});Or.matchAny=Or.convertPatternsToRe=Or.makeRe=Or.getPatternParts=Or.expandBraceExpansion=Or.expandPatternsWithBraceExpansion=Or.isAffectDepthOfReadingPattern=Or.endsWithSlashGlobStar=Or.hasGlobStar=Or.getBaseDirectory=Or.isPatternRelatedToParentDirectory=Or.getPatternsOutsideCurrentDirectory=Or.getPatternsInsideCurrentDirectory=Or.getPositivePatterns=Or.getNegativePatterns=Or.isPositivePattern=Or.isNegativePattern=Or.convertToNegativePattern=Or.convertToPositivePattern=Or.isDynamicPattern=Or.isStaticPattern=void 0;var pZe=Ie("path"),hZe=Wne(),QL=zo(),Yne="**",gZe="\\",dZe=/[*?]|^!/,mZe=/\[[^[]*]/,yZe=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,EZe=/[!*+?@]\([^(]*\)/,CZe=/,|\.\./;function Kne(t,e={}){return!Vne(t,e)}Or.isStaticPattern=Kne;function Vne(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(gZe)||dZe.test(t)||mZe.test(t)||yZe.test(t)||e.extglob!==!1&&EZe.test(t)||e.braceExpansion!==!1&&IZe(t))}Or.isDynamicPattern=Vne;function IZe(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let o=t.slice(e,r);return CZe.test(o)}function wZe(t){return rP(t)?t.slice(1):t}Or.convertToPositivePattern=wZe;function BZe(t){return"!"+t}Or.convertToNegativePattern=BZe;function rP(t){return t.startsWith("!")&&t[1]!=="("}Or.isNegativePattern=rP;function Jne(t){return!rP(t)}Or.isPositivePattern=Jne;function vZe(t){return t.filter(rP)}Or.getNegativePatterns=vZe;function DZe(t){return t.filter(Jne)}Or.getPositivePatterns=DZe;function SZe(t){return t.filter(e=>!kL(e))}Or.getPatternsInsideCurrentDirectory=SZe;function PZe(t){return t.filter(kL)}Or.getPatternsOutsideCurrentDirectory=PZe;function kL(t){return t.startsWith("..")||t.startsWith("./..")}Or.isPatternRelatedToParentDirectory=kL;function xZe(t){return hZe(t,{flipBackslashes:!1})}Or.getBaseDirectory=xZe;function bZe(t){return t.includes(Yne)}Or.hasGlobStar=bZe;function zne(t){return t.endsWith("/"+Yne)}Or.endsWithSlashGlobStar=zne;function QZe(t){let e=pZe.basename(t);return zne(t)||Kne(e)}Or.isAffectDepthOfReadingPattern=QZe;function kZe(t){return t.reduce((e,r)=>e.concat(Xne(r)),[])}Or.expandPatternsWithBraceExpansion=kZe;function Xne(t){return QL.braces(t,{expand:!0,nodupes:!0})}Or.expandBraceExpansion=Xne;function FZe(t,e){let{parts:r}=QL.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}Or.getPatternParts=FZe;function Zne(t,e){return QL.makeRe(t,e)}Or.makeRe=Zne;function RZe(t,e){return t.map(r=>Zne(r,e))}Or.convertPatternsToRe=RZe;function TZe(t,e){return e.some(r=>r.test(t))}Or.matchAny=TZe});var tie=U(nP=>{"use strict";Object.defineProperty(nP,"__esModule",{value:!0});nP.merge=void 0;var NZe=PL();function LZe(t){let e=NZe(t);return t.forEach(r=>{r.once("error",o=>e.emit("error",o))}),e.once("close",()=>eie(t)),e.once("end",()=>eie(t)),e}nP.merge=LZe;function eie(t){t.forEach(e=>e.emit("close"))}});var rie=U($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.isEmpty=$y.isString=void 0;function OZe(t){return typeof t=="string"}$y.isString=OZe;function MZe(t){return t===""}$y.isEmpty=MZe});var Pf=U(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.string=So.stream=So.pattern=So.path=So.fs=So.errno=So.array=void 0;var UZe=Nne();So.array=UZe;var _Ze=Lne();So.errno=_Ze;var HZe=One();So.fs=HZe;var qZe=Mne();So.path=qZe;var jZe=$ne();So.pattern=jZe;var GZe=tie();So.stream=GZe;var WZe=rie();So.string=WZe});var sie=U(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.convertPatternGroupToTask=Po.convertPatternGroupsToTasks=Po.groupPatternsByBaseDirectory=Po.getNegativePatternsAsPositive=Po.getPositivePatterns=Po.convertPatternsToTasks=Po.generate=void 0;var xf=Pf();function YZe(t,e){let r=nie(t),o=iie(t,e.ignore),a=r.filter(p=>xf.pattern.isStaticPattern(p,e)),n=r.filter(p=>xf.pattern.isDynamicPattern(p,e)),u=FL(a,o,!1),A=FL(n,o,!0);return u.concat(A)}Po.generate=YZe;function FL(t,e,r){let o=[],a=xf.pattern.getPatternsOutsideCurrentDirectory(t),n=xf.pattern.getPatternsInsideCurrentDirectory(t),u=RL(a),A=RL(n);return o.push(...TL(u,e,r)),"."in A?o.push(NL(".",n,e,r)):o.push(...TL(A,e,r)),o}Po.convertPatternsToTasks=FL;function nie(t){return xf.pattern.getPositivePatterns(t)}Po.getPositivePatterns=nie;function iie(t,e){return xf.pattern.getNegativePatterns(t).concat(e).map(xf.pattern.convertToPositivePattern)}Po.getNegativePatternsAsPositive=iie;function RL(t){let e={};return t.reduce((r,o)=>{let a=xf.pattern.getBaseDirectory(o);return a in r?r[a].push(o):r[a]=[o],r},e)}Po.groupPatternsByBaseDirectory=RL;function TL(t,e,r){return Object.keys(t).map(o=>NL(o,t[o],e,r))}Po.convertPatternGroupsToTasks=TL;function NL(t,e,r,o){return{dynamic:o,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(xf.pattern.convertToNegativePattern))}}Po.convertPatternGroupToTask=NL});var aie=U(eE=>{"use strict";Object.defineProperty(eE,"__esModule",{value:!0});eE.removeDuplicateSlashes=eE.transform=void 0;var KZe=/(?!^)\/{2,}/g;function VZe(t){return t.map(e=>oie(e))}eE.transform=VZe;function oie(t){return t.replace(KZe,"/")}eE.removeDuplicateSlashes=oie});var cie=U(iP=>{"use strict";Object.defineProperty(iP,"__esModule",{value:!0});iP.read=void 0;function JZe(t,e,r){e.fs.lstat(t,(o,a)=>{if(o!==null){lie(r,o);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){LL(r,a);return}e.fs.stat(t,(n,u)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){lie(r,n);return}LL(r,a);return}e.markSymbolicLink&&(u.isSymbolicLink=()=>!0),LL(r,u)})})}iP.read=JZe;function lie(t,e){t(e)}function LL(t,e){t(null,e)}});var uie=U(sP=>{"use strict";Object.defineProperty(sP,"__esModule",{value:!0});sP.read=void 0;function zZe(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let o=e.fs.statSync(t);return e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),o}catch(o){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw o}}sP.read=zZe});var Aie=U(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.createFileSystemAdapter=Xp.FILE_SYSTEM_ADAPTER=void 0;var oP=Ie("fs");Xp.FILE_SYSTEM_ADAPTER={lstat:oP.lstat,stat:oP.stat,lstatSync:oP.lstatSync,statSync:oP.statSync};function XZe(t){return t===void 0?Xp.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},Xp.FILE_SYSTEM_ADAPTER),t)}Xp.createFileSystemAdapter=XZe});var fie=U(ML=>{"use strict";Object.defineProperty(ML,"__esModule",{value:!0});var ZZe=Aie(),OL=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=ZZe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};ML.default=OL});var Ed=U(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.statSync=Zp.stat=Zp.Settings=void 0;var pie=cie(),$Ze=uie(),UL=fie();Zp.Settings=UL.default;function e$e(t,e,r){if(typeof e=="function"){pie.read(t,_L(),e);return}pie.read(t,_L(e),r)}Zp.stat=e$e;function t$e(t,e){let r=_L(e);return $Ze.read(t,r)}Zp.statSync=t$e;function _L(t={}){return t instanceof UL.default?t:new UL.default(t)}});var gie=U((QTt,hie)=>{hie.exports=r$e;function r$e(t,e){var r,o,a,n=!0;Array.isArray(t)?(r=[],o=t.length):(a=Object.keys(t),r={},o=a.length);function u(p){function h(){e&&e(p,r),e=null}n?process.nextTick(h):h()}function A(p,h,C){r[p]=C,(--o===0||h)&&u(h)}o?a?a.forEach(function(p){t[p](function(h,C){A(p,h,C)})}):t.forEach(function(p,h){p(function(C,w){A(h,C,w)})}):u(null),n=!1}});var HL=U(lP=>{"use strict";Object.defineProperty(lP,"__esModule",{value:!0});lP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var aP=process.versions.node.split(".");if(aP[0]===void 0||aP[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var die=Number.parseInt(aP[0],10),n$e=Number.parseInt(aP[1],10),mie=10,i$e=10,s$e=die>mie,o$e=die===mie&&n$e>=i$e;lP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=s$e||o$e});var yie=U(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});cP.createDirentFromStats=void 0;var qL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function a$e(t,e){return new qL(t,e)}cP.createDirentFromStats=a$e});var jL=U(uP=>{"use strict";Object.defineProperty(uP,"__esModule",{value:!0});uP.fs=void 0;var l$e=yie();uP.fs=l$e});var WL=U(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});AP.joinPathSegments=void 0;function c$e(t,e,r){return t.endsWith(r)?t+e:t+r+e}AP.joinPathSegments=c$e});var vie=U($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.readdir=$p.readdirWithFileTypes=$p.read=void 0;var u$e=Ed(),Eie=gie(),A$e=HL(),Cie=jL(),Iie=WL();function f$e(t,e,r){if(!e.stats&&A$e.IS_SUPPORT_READDIR_WITH_FILE_TYPES){wie(t,e,r);return}Bie(t,e,r)}$p.read=f$e;function wie(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(o,a)=>{if(o!==null){fP(r,o);return}let n=a.map(A=>({dirent:A,name:A.name,path:Iie.joinPathSegments(t,A.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){YL(r,n);return}let u=n.map(A=>p$e(A,e));Eie(u,(A,p)=>{if(A!==null){fP(r,A);return}YL(r,p)})})}$p.readdirWithFileTypes=wie;function p$e(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(o,a)=>{if(o!==null){if(e.throwErrorOnBrokenSymbolicLink){r(o);return}r(null,t);return}t.dirent=Cie.fs.createDirentFromStats(t.name,a),r(null,t)})}}function Bie(t,e,r){e.fs.readdir(t,(o,a)=>{if(o!==null){fP(r,o);return}let n=a.map(u=>{let A=Iie.joinPathSegments(t,u,e.pathSegmentSeparator);return p=>{u$e.stat(A,e.fsStatSettings,(h,C)=>{if(h!==null){p(h);return}let w={name:u,path:A,dirent:Cie.fs.createDirentFromStats(u,C)};e.stats&&(w.stats=C),p(null,w)})}});Eie(n,(u,A)=>{if(u!==null){fP(r,u);return}YL(r,A)})})}$p.readdir=Bie;function fP(t,e){t(e)}function YL(t,e){t(null,e)}});var bie=U(e0=>{"use strict";Object.defineProperty(e0,"__esModule",{value:!0});e0.readdir=e0.readdirWithFileTypes=e0.read=void 0;var h$e=Ed(),g$e=HL(),Die=jL(),Sie=WL();function d$e(t,e){return!e.stats&&g$e.IS_SUPPORT_READDIR_WITH_FILE_TYPES?Pie(t,e):xie(t,e)}e0.read=d$e;function Pie(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(o=>{let a={dirent:o,name:o.name,path:Sie.joinPathSegments(t,o.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=Die.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}e0.readdirWithFileTypes=Pie;function xie(t,e){return e.fs.readdirSync(t).map(o=>{let a=Sie.joinPathSegments(t,o,e.pathSegmentSeparator),n=h$e.statSync(a,e.fsStatSettings),u={name:o,path:a,dirent:Die.fs.createDirentFromStats(o,n)};return e.stats&&(u.stats=n),u})}e0.readdir=xie});var Qie=U(t0=>{"use strict";Object.defineProperty(t0,"__esModule",{value:!0});t0.createFileSystemAdapter=t0.FILE_SYSTEM_ADAPTER=void 0;var tE=Ie("fs");t0.FILE_SYSTEM_ADAPTER={lstat:tE.lstat,stat:tE.stat,lstatSync:tE.lstatSync,statSync:tE.statSync,readdir:tE.readdir,readdirSync:tE.readdirSync};function m$e(t){return t===void 0?t0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t0.FILE_SYSTEM_ADAPTER),t)}t0.createFileSystemAdapter=m$e});var kie=U(VL=>{"use strict";Object.defineProperty(VL,"__esModule",{value:!0});var y$e=Ie("path"),E$e=Ed(),C$e=Qie(),KL=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=C$e.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,y$e.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new E$e.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};VL.default=KL});var pP=U(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});r0.Settings=r0.scandirSync=r0.scandir=void 0;var Fie=vie(),I$e=bie(),JL=kie();r0.Settings=JL.default;function w$e(t,e,r){if(typeof e=="function"){Fie.read(t,zL(),e);return}Fie.read(t,zL(e),r)}r0.scandir=w$e;function B$e(t,e){let r=zL(e);return I$e.read(t,r)}r0.scandirSync=B$e;function zL(t={}){return t instanceof JL.default?t:new JL.default(t)}});var Tie=U((_Tt,Rie)=>{"use strict";function v$e(t){var e=new t,r=e;function o(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:o,release:a}}Rie.exports=v$e});var Lie=U((HTt,XL)=>{"use strict";var D$e=Tie();function Nie(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var o=D$e(S$e),a=null,n=null,u=0,A=null,p={push:R,drain:Xl,saturated:Xl,pause:C,paused:!1,concurrency:r,running:h,resume:b,idle:E,length:w,getQueue:v,unshift:L,empty:Xl,kill:V,killAndDrain:re,error:ae};return p;function h(){return u}function C(){p.paused=!0}function w(){for(var he=a,pe=0;he;)he=he.next,pe++;return pe}function v(){for(var he=a,pe=[];he;)pe.push(he.value),he=he.next;return pe}function b(){if(!!p.paused){p.paused=!1;for(var he=0;he<p.concurrency;he++)u++,_()}}function E(){return u===0&&p.length()===0}function R(he,pe){var De=o.get();De.context=t,De.release=_,De.value=he,De.callback=pe||Xl,De.errorHandler=A,u===p.concurrency||p.paused?n?(n.next=De,n=De):(a=De,n=De,p.saturated()):(u++,e.call(t,De.value,De.worked))}function L(he,pe){var De=o.get();De.context=t,De.release=_,De.value=he,De.callback=pe||Xl,u===p.concurrency||p.paused?a?(De.next=a,a=De):(a=De,n=De,p.saturated()):(u++,e.call(t,De.value,De.worked))}function _(he){he&&o.release(he);var pe=a;pe?p.paused?u--:(n===a&&(n=null),a=pe.next,pe.next=null,e.call(t,pe.value,pe.worked),n===null&&p.empty()):--u===0&&p.drain()}function V(){a=null,n=null,p.drain=Xl}function re(){a=null,n=null,p.drain(),p.drain=Xl}function ae(he){A=he}}function Xl(){}function S$e(){this.value=null,this.callback=Xl,this.next=null,this.release=Xl,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,o){var a=t.callback,n=t.errorHandler,u=t.value;t.value=null,t.callback=Xl,t.errorHandler&&n(r,u),a.call(t.context,r,o),t.release(t)}}function P$e(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function o(C,w){e.call(this,C).then(function(v){w(null,v)},w)}var a=Nie(t,o,r),n=a.push,u=a.unshift;return a.push=A,a.unshift=p,a.drained=h,a;function A(C){var w=new Promise(function(v,b){n(C,function(E,R){if(E){b(E);return}v(R)})});return w.catch(Xl),w}function p(C){var w=new Promise(function(v,b){u(C,function(E,R){if(E){b(E);return}v(R)})});return w.catch(Xl),w}function h(){var C=a.drain,w=new Promise(function(v){a.drain=function(){C(),v()}});return w}}XL.exports=Nie;XL.exports.promise=P$e});var hP=U(tA=>{"use strict";Object.defineProperty(tA,"__esModule",{value:!0});tA.joinPathSegments=tA.replacePathSegmentSeparator=tA.isAppliedFilter=tA.isFatalError=void 0;function x$e(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}tA.isFatalError=x$e;function b$e(t,e){return t===null||t(e)}tA.isAppliedFilter=b$e;function Q$e(t,e){return t.split(/[/\\]/).join(e)}tA.replacePathSegmentSeparator=Q$e;function k$e(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}tA.joinPathSegments=k$e});var eO=U($L=>{"use strict";Object.defineProperty($L,"__esModule",{value:!0});var F$e=hP(),ZL=class{constructor(e,r){this._root=e,this._settings=r,this._root=F$e.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};$L.default=ZL});var nO=U(rO=>{"use strict";Object.defineProperty(rO,"__esModule",{value:!0});var R$e=Ie("events"),T$e=pP(),N$e=Lie(),gP=hP(),L$e=eO(),tO=class extends L$e.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=T$e.scandir,this._emitter=new R$e.EventEmitter,this._queue=N$e(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let o={directory:e,base:r};this._queue.push(o,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(o,a)=>{if(o!==null){r(o,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!gP.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let o=e.path;r!==void 0&&(e.path=gP.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),gP.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&gP.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};rO.default=tO});var Oie=U(sO=>{"use strict";Object.defineProperty(sO,"__esModule",{value:!0});var O$e=nO(),iO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new O$e.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(r=>{M$e(e,r)}),this._reader.onEntry(r=>{this._storage.add(r)}),this._reader.onEnd(()=>{U$e(e,[...this._storage])}),this._reader.read()}};sO.default=iO;function M$e(t,e){t(e)}function U$e(t,e){t(null,e)}});var Mie=U(aO=>{"use strict";Object.defineProperty(aO,"__esModule",{value:!0});var _$e=Ie("stream"),H$e=nO(),oO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new H$e.default(this._root,this._settings),this._stream=new _$e.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};aO.default=oO});var Uie=U(cO=>{"use strict";Object.defineProperty(cO,"__esModule",{value:!0});var q$e=pP(),dP=hP(),j$e=eO(),lO=class extends j$e.default{constructor(){super(...arguments),this._scandir=q$e.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let o=this._scandir(e,this._settings.fsScandirSettings);for(let a of o)this._handleEntry(a,r)}catch(o){this._handleError(o)}}_handleError(e){if(!!dP.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let o=e.path;r!==void 0&&(e.path=dP.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),dP.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&dP.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,e.path)}_pushToStorage(e){this._storage.add(e)}};cO.default=lO});var _ie=U(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});var G$e=Uie(),uO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new G$e.default(this._root,this._settings)}read(){return this._reader.read()}};AO.default=uO});var Hie=U(pO=>{"use strict";Object.defineProperty(pO,"__esModule",{value:!0});var W$e=Ie("path"),Y$e=pP(),fO=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,W$e.sep),this.fsScandirSettings=new Y$e.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};pO.default=fO});var yP=U(rA=>{"use strict";Object.defineProperty(rA,"__esModule",{value:!0});rA.Settings=rA.walkStream=rA.walkSync=rA.walk=void 0;var qie=Oie(),K$e=Mie(),V$e=_ie(),hO=Hie();rA.Settings=hO.default;function J$e(t,e,r){if(typeof e=="function"){new qie.default(t,mP()).read(e);return}new qie.default(t,mP(e)).read(r)}rA.walk=J$e;function z$e(t,e){let r=mP(e);return new V$e.default(t,r).read()}rA.walkSync=z$e;function X$e(t,e){let r=mP(e);return new K$e.default(t,r).read()}rA.walkStream=X$e;function mP(t={}){return t instanceof hO.default?t:new hO.default(t)}});var EP=U(dO=>{"use strict";Object.defineProperty(dO,"__esModule",{value:!0});var Z$e=Ie("path"),$$e=Ed(),jie=Pf(),gO=class{constructor(e){this._settings=e,this._fsStatSettings=new $$e.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return Z$e.resolve(this._settings.cwd,e)}_makeEntry(e,r){let o={name:r,path:r,dirent:jie.fs.createDirentFromStats(r,e)};return this._settings.stats&&(o.stats=e),o}_isFatalError(e){return!jie.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};dO.default=gO});var EO=U(yO=>{"use strict";Object.defineProperty(yO,"__esModule",{value:!0});var eet=Ie("stream"),tet=Ed(),ret=yP(),net=EP(),mO=class extends net.default{constructor(){super(...arguments),this._walkStream=ret.walkStream,this._stat=tet.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let o=e.map(this._getFullEntryPath,this),a=new eet.PassThrough({objectMode:!0});a._write=(n,u,A)=>this._getEntry(o[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===o.length-1&&a.end(),A()}).catch(A);for(let n=0;n<o.length;n++)a.write(n);return a}_getEntry(e,r,o){return this._getStat(e).then(a=>this._makeEntry(a,r)).catch(a=>{if(o.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,o)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):o(a))})}};yO.default=mO});var Gie=U(IO=>{"use strict";Object.defineProperty(IO,"__esModule",{value:!0});var iet=yP(),set=EP(),oet=EO(),CO=class extends set.default{constructor(){super(...arguments),this._walkAsync=iet.walk,this._readerStream=new oet.default(this._settings)}dynamic(e,r){return new Promise((o,a)=>{this._walkAsync(e,r,(n,u)=>{n===null?o(u):a(n)})})}async static(e,r){let o=[],a=this._readerStream.static(e,r);return new Promise((n,u)=>{a.once("error",u),a.on("data",A=>o.push(A)),a.once("end",()=>n(o))})}};IO.default=CO});var Wie=U(BO=>{"use strict";Object.defineProperty(BO,"__esModule",{value:!0});var rE=Pf(),wO=class{constructor(e,r,o){this._patterns=e,this._settings=r,this._micromatchOptions=o,this._storage=[],this._fillStorage()}_fillStorage(){let e=rE.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of e){let o=this._getPatternSegments(r),a=this._splitSegmentsIntoSections(o);this._storage.push({complete:a.length<=1,pattern:r,segments:o,sections:a})}}_getPatternSegments(e){return rE.pattern.getPatternParts(e,this._micromatchOptions).map(o=>rE.pattern.isDynamicPattern(o,this._settings)?{dynamic:!0,pattern:o,patternRe:rE.pattern.makeRe(o,this._micromatchOptions)}:{dynamic:!1,pattern:o})}_splitSegmentsIntoSections(e){return rE.array.splitWhen(e,r=>r.dynamic&&rE.pattern.hasGlobStar(r.pattern))}};BO.default=wO});var Yie=U(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});var aet=Wie(),vO=class extends aet.default{match(e){let r=e.split("/"),o=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>o);for(let n of a){let u=n.sections[0];if(!n.complete&&o>u.length||r.every((p,h)=>{let C=n.segments[h];return!!(C.dynamic&&C.patternRe.test(p)||!C.dynamic&&C.pattern===p)}))return!0}return!1}};DO.default=vO});var Kie=U(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});var CP=Pf(),cet=Yie(),SO=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,o){let a=this._getMatcher(r),n=this._getNegativePatternsRe(o);return u=>this._filter(e,u,a,n)}_getMatcher(e){return new cet.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(CP.pattern.isAffectDepthOfReadingPattern);return CP.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,o,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=CP.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,o)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let o=r.split("/").length;if(e==="")return o;let a=e.split("/").length;return o-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!CP.pattern.matchAny(e,r)}};PO.default=SO});var Vie=U(bO=>{"use strict";Object.defineProperty(bO,"__esModule",{value:!0});var Cd=Pf(),xO=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let o=Cd.pattern.convertPatternsToRe(e,this._micromatchOptions),a=Cd.pattern.convertPatternsToRe(r,this._micromatchOptions);return n=>this._filter(n,o,a)}_filter(e,r,o){if(this._settings.unique&&this._isDuplicateEntry(e)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e.path,o))return!1;let a=this._settings.baseNameMatch?e.name:e.path,n=e.dirent.isDirectory(),u=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(e.path,o,n);return this._settings.unique&&u&&this._createIndexRecord(e),u}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let o=Cd.path.makeAbsolute(this._settings.cwd,e);return Cd.pattern.matchAny(o,r)}_isMatchToPatterns(e,r,o){let a=Cd.path.removeLeadingDotSegment(e),n=Cd.pattern.matchAny(a,r);return!n&&o?Cd.pattern.matchAny(a+"/",r):n}};bO.default=xO});var Jie=U(kO=>{"use strict";Object.defineProperty(kO,"__esModule",{value:!0});var uet=Pf(),QO=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return uet.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};kO.default=QO});var Xie=U(RO=>{"use strict";Object.defineProperty(RO,"__esModule",{value:!0});var zie=Pf(),FO=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=zie.path.makeAbsolute(this._settings.cwd,r),r=zie.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};RO.default=FO});var IP=U(NO=>{"use strict";Object.defineProperty(NO,"__esModule",{value:!0});var Aet=Ie("path"),fet=Kie(),pet=Vie(),het=Jie(),get=Xie(),TO=class{constructor(e){this._settings=e,this.errorFilter=new het.default(this._settings),this.entryFilter=new pet.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new fet.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new get.default(this._settings)}_getRootDirectory(e){return Aet.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};NO.default=TO});var Zie=U(OO=>{"use strict";Object.defineProperty(OO,"__esModule",{value:!0});var det=Gie(),met=IP(),LO=class extends met.default{constructor(){super(...arguments),this._reader=new det.default(this._settings)}async read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return(await this.api(r,e,o)).map(n=>o.transform(n))}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};OO.default=LO});var $ie=U(UO=>{"use strict";Object.defineProperty(UO,"__esModule",{value:!0});var yet=Ie("stream"),Eet=EO(),Cet=IP(),MO=class extends Cet.default{constructor(){super(...arguments),this._reader=new Eet.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e),a=this.api(r,e,o),n=new yet.Readable({objectMode:!0,read:()=>{}});return a.once("error",u=>n.emit("error",u)).on("data",u=>n.emit("data",o.transform(u))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};UO.default=MO});var ese=U(HO=>{"use strict";Object.defineProperty(HO,"__esModule",{value:!0});var Iet=Ed(),wet=yP(),Bet=EP(),_O=class extends Bet.default{constructor(){super(...arguments),this._walkSync=wet.walkSync,this._statSync=Iet.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let o=[];for(let a of e){let n=this._getFullEntryPath(a),u=this._getEntry(n,a,r);u===null||!r.entryFilter(u)||o.push(u)}return o}_getEntry(e,r,o){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(o.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};HO.default=_O});var tse=U(jO=>{"use strict";Object.defineProperty(jO,"__esModule",{value:!0});var vet=ese(),Det=IP(),qO=class extends Det.default{constructor(){super(...arguments),this._reader=new vet.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return this.api(r,e,o).map(o.transform)}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};jO.default=qO});var rse=U(iE=>{"use strict";Object.defineProperty(iE,"__esModule",{value:!0});iE.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var nE=Ie("fs"),Pet=Ie("os"),xet=Math.max(Pet.cpus().length,1);iE.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:nE.lstat,lstatSync:nE.lstatSync,stat:nE.stat,statSync:nE.statSync,readdir:nE.readdir,readdirSync:nE.readdirSync};var GO=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,xet),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},iE.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};iE.default=GO});var wP=U((fNt,sse)=>{"use strict";var nse=sie(),ise=aie(),bet=Zie(),Qet=$ie(),ket=tse(),WO=rse(),Id=Pf();async function YO(t,e){sE(t);let r=KO(t,bet.default,e),o=await Promise.all(r);return Id.array.flatten(o)}(function(t){function e(u,A){sE(u);let p=KO(u,ket.default,A);return Id.array.flatten(p)}t.sync=e;function r(u,A){sE(u);let p=KO(u,Qet.default,A);return Id.stream.merge(p)}t.stream=r;function o(u,A){sE(u);let p=ise.transform([].concat(u)),h=new WO.default(A);return nse.generate(p,h)}t.generateTasks=o;function a(u,A){sE(u);let p=new WO.default(A);return Id.pattern.isDynamicPattern(u,p)}t.isDynamicPattern=a;function n(u){return sE(u),Id.path.escape(u)}t.escapePath=n})(YO||(YO={}));function KO(t,e,r){let o=ise.transform([].concat(t)),a=new WO.default(r),n=nse.generate(o,a),u=new e(a);return n.map(u.read,u)}function sE(t){if(![].concat(t).every(o=>Id.string.isString(o)&&!Id.string.isEmpty(o)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}sse.exports=YO});var ase=U(wd=>{"use strict";var{promisify:Fet}=Ie("util"),ose=Ie("fs");async function VO(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await Fet(ose[t])(r))[e]()}catch(o){if(o.code==="ENOENT")return!1;throw o}}function JO(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return ose[t](r)[e]()}catch(o){if(o.code==="ENOENT")return!1;throw o}}wd.isFile=VO.bind(null,"stat","isFile");wd.isDirectory=VO.bind(null,"stat","isDirectory");wd.isSymlink=VO.bind(null,"lstat","isSymbolicLink");wd.isFileSync=JO.bind(null,"statSync","isFile");wd.isDirectorySync=JO.bind(null,"statSync","isDirectory");wd.isSymlinkSync=JO.bind(null,"lstatSync","isSymbolicLink")});var fse=U((hNt,zO)=>{"use strict";var Bd=Ie("path"),lse=ase(),cse=t=>t.length>1?`{${t.join(",")}}`:t[0],use=(t,e)=>{let r=t[0]==="!"?t.slice(1):t;return Bd.isAbsolute(r)?r:Bd.join(e,r)},Ret=(t,e)=>Bd.extname(t)?`**/${t}`:`**/${t}.${cse(e)}`,Ase=(t,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(r=>Bd.posix.join(t,Ret(r,e.extensions))):e.files?e.files.map(r=>Bd.posix.join(t,`**/${r}`)):e.extensions?[Bd.posix.join(t,`**/*.${cse(e.extensions)}`)]:[Bd.posix.join(t,"**")]};zO.exports=async(t,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=await Promise.all([].concat(t).map(async o=>await lse.isDirectory(use(o,e.cwd))?Ase(o,e):o));return[].concat.apply([],r)};zO.exports.sync=(t,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=[].concat(t).map(o=>lse.isDirectorySync(use(o,e.cwd))?Ase(o,e):o);return[].concat.apply([],r)}});var Ise=U((gNt,Cse)=>{function pse(t){return Array.isArray(t)?t:[t]}var mse="",hse=" ",XO="\\",Tet=/^\s+$/,Net=/^\\!/,Let=/^\\#/,Oet=/\r?\n/g,Met=/^\.*\/|^\.+$/,ZO="/",gse=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",Uet=(t,e,r)=>Object.defineProperty(t,e,{value:r}),_et=/([0-z])-([0-z])/g,yse=()=>!1,Het=t=>t.replace(_et,(e,r,o)=>r.charCodeAt(0)<=o.charCodeAt(0)?e:mse),qet=t=>{let{length:e}=t;return t.slice(0,e-e%2)},jet=[[/\\?\s+$/,t=>t.indexOf("\\")===0?hse:mse],[/\\\s/g,()=>hse],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6<r.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(t,e)=>`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>XO],[/\\\\/g,()=>XO],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,r,o,a)=>e===XO?`\\[${r}${qet(o)}${a}`:a==="]"&&o.length%2===0?`[${Het(r)}${o}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],dse=Object.create(null),Get=(t,e)=>{let r=dse[t];return r||(r=jet.reduce((o,a)=>o.replace(a[0],a[1].bind(t)),t),dse[t]=r),e?new RegExp(r,"i"):new RegExp(r)},tM=t=>typeof t=="string",Wet=t=>t&&tM(t)&&!Tet.test(t)&&t.indexOf("#")!==0,Yet=t=>t.split(Oet),$O=class{constructor(e,r,o,a){this.origin=e,this.pattern=r,this.negative=o,this.regex=a}},Ket=(t,e)=>{let r=t,o=!1;t.indexOf("!")===0&&(o=!0,t=t.substr(1)),t=t.replace(Net,"!").replace(Let,"#");let a=Get(t,e);return new $O(r,t,o,a)},Vet=(t,e)=>{throw new e(t)},bf=(t,e,r)=>tM(t)?t?bf.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),Ese=t=>Met.test(t);bf.isNotRelative=Ese;bf.convert=t=>t;var eM=class{constructor({ignorecase:e=!0,ignoreCase:r=e,allowRelativePaths:o=!1}={}){Uet(this,gse,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=o,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[gse]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Wet(e)){let r=Ket(e,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,pse(tM(e)?Yet(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let o=!1,a=!1;return this._rules.forEach(n=>{let{negative:u}=n;if(a===u&&o!==a||u&&!o&&!a&&!r)return;n.regex.test(e)&&(o=!u,a=u)}),{ignored:o,unignored:a}}_test(e,r,o,a){let n=e&&bf.convert(e);return bf(n,e,this._allowRelativePaths?yse:Vet),this._t(n,r,o,a)}_t(e,r,o,a){if(e in r)return r[e];if(a||(a=e.split(ZO)),a.pop(),!a.length)return r[e]=this._testOne(e,o);let n=this._t(a.join(ZO)+ZO,r,o,a);return r[e]=n.ignored?n:this._testOne(e,o)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return pse(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},BP=t=>new eM(t),Jet=t=>bf(t&&bf.convert(t),t,yse);BP.isPathValid=Jet;BP.default=BP;Cse.exports=BP;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");bf.convert=t;let e=/^[a-z]:\//i;bf.isNotRelative=r=>e.test(r)||Ese(r)}});var Bse=U((dNt,wse)=>{"use strict";wse.exports=t=>{let e=/^\\\\\?\\/.test(t),r=/[^\u0000-\u0080]+/.test(t);return e||r?t:t.replace(/\\/g,"/")}});var Qse=U((mNt,rM)=>{"use strict";var{promisify:zet}=Ie("util"),vse=Ie("fs"),Qf=Ie("path"),Dse=wP(),Xet=Ise(),Gw=Bse(),Sse=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],Zet=zet(vse.readFile),$et=t=>e=>e.startsWith("!")?"!"+Qf.posix.join(t,e.slice(1)):Qf.posix.join(t,e),ett=(t,e)=>{let r=Gw(Qf.relative(e.cwd,Qf.dirname(e.fileName)));return t.split(/\r?\n/).filter(Boolean).filter(o=>!o.startsWith("#")).map($et(r))},Pse=t=>{let e=Xet();for(let r of t)e.add(ett(r.content,{cwd:r.cwd,fileName:r.filePath}));return e},ttt=(t,e)=>{if(t=Gw(t),Qf.isAbsolute(e)){if(Gw(e).startsWith(t))return e;throw new Error(`Path ${e} is not in cwd ${t}`)}return Qf.join(t,e)},xse=(t,e)=>r=>t.ignores(Gw(Qf.relative(e,ttt(e,r.path||r)))),rtt=async(t,e)=>{let r=Qf.join(e,t),o=await Zet(r,"utf8");return{cwd:e,filePath:r,content:o}},ntt=(t,e)=>{let r=Qf.join(e,t),o=vse.readFileSync(r,"utf8");return{cwd:e,filePath:r,content:o}},bse=({ignore:t=[],cwd:e=Gw(process.cwd())}={})=>({ignore:t,cwd:e});rM.exports=async t=>{t=bse(t);let e=await Dse("**/.gitignore",{ignore:Sse.concat(t.ignore),cwd:t.cwd}),r=await Promise.all(e.map(a=>rtt(a,t.cwd))),o=Pse(r);return xse(o,t.cwd)};rM.exports.sync=t=>{t=bse(t);let r=Dse.sync("**/.gitignore",{ignore:Sse.concat(t.ignore),cwd:t.cwd}).map(a=>ntt(a,t.cwd)),o=Pse(r);return xse(o,t.cwd)}});var Fse=U((yNt,kse)=>{"use strict";var{Transform:itt}=Ie("stream"),vP=class extends itt{constructor(){super({objectMode:!0})}},nM=class extends vP{constructor(e){super(),this._filter=e}_transform(e,r,o){this._filter(e)&&this.push(e),o()}},iM=class extends vP{constructor(){super(),this._pushed=new Set}_transform(e,r,o){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),o()}};kse.exports={FilterStream:nM,UniqueStream:iM}});var lM=U((ENt,vd)=>{"use strict";var Tse=Ie("fs"),DP=kne(),stt=PL(),SP=wP(),PP=fse(),sM=Qse(),{FilterStream:ott,UniqueStream:att}=Fse(),Nse=()=>!1,Rse=t=>t[0]==="!",ltt=t=>{if(!t.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},ctt=(t={})=>{if(!t.cwd)return;let e;try{e=Tse.statSync(t.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},utt=t=>t.stats instanceof Tse.Stats?t.path:t,xP=(t,e)=>{t=DP([].concat(t)),ltt(t),ctt(e);let r=[];e={ignore:[],expandDirectories:!0,...e};for(let[o,a]of t.entries()){if(Rse(a))continue;let n=t.slice(o).filter(A=>Rse(A)).map(A=>A.slice(1)),u={...e,ignore:e.ignore.concat(n)};r.push({pattern:a,options:u})}return r},Att=(t,e)=>{let r={};return t.options.cwd&&(r.cwd=t.options.cwd),Array.isArray(t.options.expandDirectories)?r={...r,files:t.options.expandDirectories}:typeof t.options.expandDirectories=="object"&&(r={...r,...t.options.expandDirectories}),e(t.pattern,r)},oM=(t,e)=>t.options.expandDirectories?Att(t,e):[t.pattern],Lse=t=>t&&t.gitignore?sM.sync({cwd:t.cwd,ignore:t.ignore}):Nse,aM=t=>e=>{let{options:r}=t;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=PP.sync(r.ignore)),{pattern:e,options:r}};vd.exports=async(t,e)=>{let r=xP(t,e),o=async()=>e&&e.gitignore?sM({cwd:e.cwd,ignore:e.ignore}):Nse,a=async()=>{let p=await Promise.all(r.map(async h=>{let C=await oM(h,PP);return Promise.all(C.map(aM(h)))}));return DP(...p)},[n,u]=await Promise.all([o(),a()]),A=await Promise.all(u.map(p=>SP(p.pattern,p.options)));return DP(...A).filter(p=>!n(utt(p)))};vd.exports.sync=(t,e)=>{let r=xP(t,e),o=[];for(let u of r){let A=oM(u,PP.sync).map(aM(u));o.push(...A)}let a=Lse(e),n=[];for(let u of o)n=DP(n,SP.sync(u.pattern,u.options));return n.filter(u=>!a(u))};vd.exports.stream=(t,e)=>{let r=xP(t,e),o=[];for(let A of r){let p=oM(A,PP.sync).map(aM(A));o.push(...p)}let a=Lse(e),n=new ott(A=>!a(A)),u=new att;return stt(o.map(A=>SP.stream(A.pattern,A.options))).pipe(n).pipe(u)};vd.exports.generateGlobTasks=xP;vd.exports.hasMagic=(t,e)=>[].concat(t).some(r=>SP.isDynamicPattern(r,e));vd.exports.gitignore=sM});var bn={};Yt(bn,{checksumFile:()=>QP,checksumPattern:()=>kP,makeHash:()=>Vs});function Vs(...t){let e=(0,bP.createHash)("sha512"),r="";for(let o of t)typeof o=="string"?r+=o:o&&(r&&(e.update(r),r=""),e.update(o));return r&&e.update(r),e.digest("hex")}async function QP(t,{baseFs:e,algorithm:r}={baseFs:oe,algorithm:"sha512"}){let o=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,bP.createHash)(r),A=0;for(;(A=await e.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await e.closePromise(o)}}async function kP(t,{cwd:e}){let o=(await(0,cM.default)(t,{cwd:ue.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(A=>`${A}/**/*`),a=await(0,cM.default)([t,...o],{cwd:ue.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});a.sort();let n=await Promise.all(a.map(async A=>{let p=[Buffer.from(A)],h=ue.toPortablePath(A),C=await oe.lstatPromise(h);return C.isSymbolicLink()?p.push(Buffer.from(await oe.readlinkPromise(h))):C.isFile()&&p.push(await oe.readFilePromise(h)),p.join("\0")})),u=(0,bP.createHash)("sha512");for(let A of n)u.update(A);return u.digest("hex")}var bP,cM,n0=dt(()=>{St();bP=Ie("crypto"),cM=tt(lM())});var Y={};Yt(Y,{areDescriptorsEqual:()=>Hse,areIdentsEqual:()=>Jw,areLocatorsEqual:()=>zw,areVirtualPackagesEquivalent:()=>Ctt,bindDescriptor:()=>ytt,bindLocator:()=>Ett,convertDescriptorToLocator:()=>FP,convertLocatorToDescriptor:()=>AM,convertPackageToLocator:()=>gtt,convertToIdent:()=>htt,convertToManifestRange:()=>vtt,copyPackage:()=>Yw,devirtualizeDescriptor:()=>Kw,devirtualizeLocator:()=>Vw,ensureDevirtualizedDescriptor:()=>dtt,ensureDevirtualizedLocator:()=>mtt,getIdentVendorPath:()=>dM,isPackageCompatible:()=>OP,isVirtualDescriptor:()=>kf,isVirtualLocator:()=>Yc,makeDescriptor:()=>mn,makeIdent:()=>nA,makeLocator:()=>us,makeRange:()=>TP,parseDescriptor:()=>i0,parseFileStyleRange:()=>wtt,parseIdent:()=>Ys,parseLocator:()=>Ff,parseRange:()=>Dd,prettyDependent:()=>SL,prettyDescriptor:()=>Ln,prettyIdent:()=>cs,prettyLocator:()=>kr,prettyLocatorNoColors:()=>gM,prettyRange:()=>LP,prettyReference:()=>Zw,prettyResolution:()=>jw,prettyWorkspace:()=>$w,renamePackage:()=>fM,slugifyIdent:()=>uM,slugifyLocator:()=>aE,sortDescriptors:()=>lE,stringifyDescriptor:()=>Qa,stringifyIdent:()=>nn,stringifyLocator:()=>Jl,tryParseDescriptor:()=>Xw,tryParseIdent:()=>qse,tryParseLocator:()=>RP,tryParseRange:()=>Itt,virtualizeDescriptor:()=>pM,virtualizePackage:()=>hM});function nA(t,e){if(t!=null&&t.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:Vs(t,e),scope:t,name:e}}function mn(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:Vs(t.identHash,e),range:e}}function us(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:Vs(t.identHash,e),reference:e}}function htt(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function FP(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function AM(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function gtt(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function fM(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function Yw(t){return fM(t,t)}function pM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return mn(t,`virtual:${e}#${t.range}`)}function hM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return fM(t,us(t,`virtual:${e}#${t.reference}`))}function kf(t){return t.range.startsWith(Ww)}function Yc(t){return t.reference.startsWith(Ww)}function Kw(t){if(!kf(t))throw new Error("Not a virtual descriptor");return mn(t,t.range.replace(/^[^#]*#/,""))}function Vw(t){if(!Yc(t))throw new Error("Not a virtual descriptor");return us(t,t.reference.replace(/^[^#]*#/,""))}function dtt(t){return kf(t)?mn(t,t.range.replace(/^[^#]*#/,"")):t}function mtt(t){return Yc(t)?us(t,t.reference.replace(/^[^#]*#/,"")):t}function ytt(t,e){return t.range.includes("::")?t:mn(t,`${t.range}::${oE.default.stringify(e)}`)}function Ett(t,e){return t.reference.includes("::")?t:us(t,`${t.reference}::${oE.default.stringify(e)}`)}function Jw(t,e){return t.identHash===e.identHash}function Hse(t,e){return t.descriptorHash===e.descriptorHash}function zw(t,e){return t.locatorHash===e.locatorHash}function Ctt(t,e){if(!Yc(t))throw new Error("Invalid package type");if(!Yc(e))throw new Error("Invalid package type");if(!Jw(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let o=e.dependencies.get(r.identHash);if(!o||!Hse(r,o))return!1}return!0}function Ys(t){let e=qse(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function qse(t){let e=t.match(/^(?:@([^/]+?)\/)?([^@/]+)$/);if(!e)return null;let[,r,o]=e;return nA(typeof r<"u"?r:null,o)}function i0(t,e=!1){let r=Xw(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function Xw(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return mn(nA(u,a),A)}function Ff(t,e=!1){let r=RP(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function RP(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return us(nA(u,a),A)}function Dd(t,e){let r=t.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(r===null)throw new Error(`Invalid range (${t})`);let o=typeof r[1]<"u"?r[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&o!==e.requireProtocol)throw new Error(`Invalid protocol (${o})`);if((e==null?void 0:e.requireProtocol)&&o===null)throw new Error(`Missing protocol (${o})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if((e==null?void 0:e.requireSource)&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),u=e!=null&&e.parseSelector?oE.default.parse(n):n,A=typeof r[4]<"u"?oE.default.parse(r[4]):null;return{protocol:o,source:a,selector:u,params:A}}function Itt(t,e){try{return Dd(t,e)}catch{return null}}function wtt(t,{protocol:e}){let{selector:r,params:o}=Dd(t,{requireProtocol:e,requireBindings:!0});if(typeof o.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Ff(o.locator,!0),path:r}}function Ose(t){return t=t.replace(/%/g,"%25"),t=t.replace(/:/g,"%3A"),t=t.replace(/#/g,"%23"),t}function Btt(t){return t===null?!1:Object.entries(t).length>0}function TP({protocol:t,source:e,selector:r,params:o}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${Ose(e)}#`),a+=Ose(r),Btt(o)&&(a+=`::${oE.default.stringify(o)}`),a}function vtt(t){let{params:e,protocol:r,source:o,selector:a}=Dd(t);for(let n in e)n.startsWith("__")&&delete e[n];return TP({protocol:r,source:o,params:e,selector:a})}function nn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function Qa(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function Jl(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function uM(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function aE(t){let{protocol:e,selector:r}=Dd(t.reference),o=e!==null?e.replace(/:$/,""):"exotic",a=Mse.default.valid(r),n=a!==null?`${o}-${a}`:`${o}`,u=10,A=t.scope?`${uM(t)}-${n}-${t.locatorHash.slice(0,u)}`:`${uM(t)}-${n}-${t.locatorHash.slice(0,u)}`;return Li(A)}function cs(t,e){return e.scope?`${Kt(t,`@${e.scope}/`,Bt.SCOPE)}${Kt(t,e.name,Bt.NAME)}`:`${Kt(t,e.name,Bt.NAME)}`}function NP(t){if(t.startsWith(Ww)){let e=NP(t.substring(t.indexOf("#")+1)),r=t.substring(Ww.length,Ww.length+ftt);return`${e} [${r}]`}else return t.replace(/\?.*/,"?[...]")}function LP(t,e){return`${Kt(t,NP(e),Bt.RANGE)}`}function Ln(t,e){return`${cs(t,e)}${Kt(t,"@",Bt.RANGE)}${LP(t,e.range)}`}function Zw(t,e){return`${Kt(t,NP(e),Bt.REFERENCE)}`}function kr(t,e){return`${cs(t,e)}${Kt(t,"@",Bt.REFERENCE)}${Zw(t,e.reference)}`}function gM(t){return`${nn(t)}@${NP(t.reference)}`}function lE(t){return xa(t,[e=>nn(e),e=>e.range])}function $w(t,e){return cs(t,e.locator)}function jw(t,e,r){let o=kf(e)?Kw(e):e;return r===null?`${Ln(t,o)} \u2192 ${DL(t).Cross}`:o.identHash===r.identHash?`${Ln(t,o)} \u2192 ${Zw(t,r.reference)}`:`${Ln(t,o)} \u2192 ${kr(t,r)}`}function SL(t,e,r){return r===null?`${kr(t,e)}`:`${kr(t,e)} (via ${LP(t,r.range)})`}function dM(t){return`node_modules/${nn(t)}`}function OP(t,e){return t.conditions?ptt(t.conditions,r=>{let[,o,a]=r.match(_se),n=e[o];return n?n.includes(a):!0}):!0}var oE,Mse,Use,Ww,ftt,_se,ptt,Ks=dt(()=>{St();oE=tt(Ie("querystring")),Mse=tt(si()),Use=tt(oX());zl();n0();Vl();Ks();Ww="virtual:",ftt=5,_se=/(os|cpu|libc)=([a-z0-9_-]+)/,ptt=(0,Use.makeParser)(_se)});var jse,Gse=dt(()=>{Ks();jse={hooks:{reduceDependency:(t,e,r,o,{resolver:a,resolveOptions:n})=>{for(let{pattern:u,reference:A}of e.topLevelWorkspace.manifest.resolutions){if(u.from&&(u.from.fullName!==nn(r)||e.configuration.normalizeLocator(us(Ys(u.from.fullName),u.from.description??r.reference)).locatorHash!==r.locatorHash)||u.descriptor.fullName!==nn(t)||e.configuration.normalizeDependency(mn(Ff(u.descriptor.fullName),u.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(mn(t,A)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let o=$w(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${o}: ${n}`),reportError:(a,n)=>e.reportError(a,`${o}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let o of r.errors)e.reportWarning(57,o.message)}}}});var e1,Gn,Sd=dt(()=>{e1=class{supportsDescriptor(e,r){return!!(e.range.startsWith(e1.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(e1.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[o.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.getWorkspaceByCwd(e.reference.slice(e1.protocol.length));return{...e,version:o.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...o.manifest.dependencies,...o.manifest.devDependencies])),peerDependencies:new Map([...o.manifest.peerDependencies]),dependenciesMeta:o.manifest.dependenciesMeta,peerDependenciesMeta:o.manifest.peerDependenciesMeta,bin:o.manifest.bin}}},Gn=e1;Gn.protocol="workspace:"});var Tr={};Yt(Tr,{SemVer:()=>Kse.SemVer,clean:()=>Stt,satisfiesWithPrereleases:()=>Pd,validRange:()=>cl});function Pd(t,e,r=!1){if(!t)return!1;let o=`${e}${r}`,a=Wse.get(o);if(typeof a>"u")try{a=new MP.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{Wse.set(o,a||null)}else if(a===null)return!1;let n;try{n=new MP.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(u=>{for(let A of u)A.semver.prerelease&&(A.semver.prerelease=[]);return u.every(A=>A.test(n))}))}function cl(t){if(t.indexOf(":")!==-1)return null;let e=Yse.get(t);if(typeof e<"u")return e;try{e=new MP.default.Range(t)}catch{e=null}return Yse.set(t,e),e}function Stt(t){let e=Dtt.exec(t);return e?e[1]:null}var MP,Kse,Wse,Yse,Dtt,s0=dt(()=>{MP=tt(si()),Kse=tt(si()),Wse=new Map;Yse=new Map;Dtt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function Vse(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function Jse(t){return t.charCodeAt(0)===65279?t.slice(1):t}function Xo(t){return t.replace(/\\/g,"/")}function UP(t,{yamlCompatibilityMode:e}){return e?mL(t):typeof t>"u"||typeof t=="boolean"?t:null}function zse(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let o=r%2===0?"":"!",a=e.slice(r);return`${o}${t}=${a}`}function mM(t,e){return e.length===1?zse(t,e[0]):`(${e.map(r=>zse(t,r)).join(" | ")})`}var Xse,cE,Nt,uE=dt(()=>{St();Hl();Xse=tt(si());Sd();Vl();s0();Ks();cE=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:r=new xn}={}){let o=J.join(e,"package.json");try{return await cE.fromFile(o,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let o=await cE.tryFind(e,{baseFs:r});if(o===null)throw new Error("Manifest not found");return o}static async fromFile(e,{baseFs:r=new xn}={}){let o=new cE;return await o.loadFile(e,{baseFs:r}),o}static fromText(e){let r=new cE;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(Jse(e)||"{}")}catch(o){throw o.message+=` (when parsing ${e})`,o}this.load(r),this.indent=Vse(e)}async loadFile(e,{baseFs:r=new xn}){let o=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(Jse(o)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=Vse(o)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let o=[];if(this.name=null,typeof e.name=="string")try{this.name=Ys(e.name)}catch{o.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let u of e.os)typeof u!="string"?o.push(new Error("Parsing failed for the 'os' field")):n.push(u)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let u of e.cpu)typeof u!="string"?o.push(new Error("Parsing failed for the 'cpu' field")):n.push(u)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let u of e.libc)typeof u!="string"?o.push(new Error("Parsing failed for the 'libc' field")):n.push(u)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=Xo(e.main):this.main=null,typeof e.module=="string"?this.module=Xo(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=Xo(e.browser);else{this.browser=new Map;for(let[n,u]of Object.entries(e.browser))this.browser.set(Xo(n),typeof u=="string"?Xo(u):u)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,Xo(e.bin)):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,u]of Object.entries(e.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}let A=Ys(n);this.bin.set(A.name,Xo(u))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,u]of Object.entries(e.scripts)){if(typeof u!="string"){o.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,u)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,u]of Object.entries(e.dependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Ys(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=mn(A,u);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,u]of Object.entries(e.devDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Ys(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=mn(A,u);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,u]of Object.entries(e.peerDependencies)){let A;try{A=Ys(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof u!="string"||!u.startsWith(Gn.protocol)&&!cl(u))&&(o.push(new Error(`Invalid dependency range for '${n}'`)),u="*");let p=mn(A,u);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&o.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){o.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,u]of Object.entries(e.dependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}`));continue}let A=i0(n),p=this.ensureDependencyMeta(A),h=UP(u.built,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid built meta field for '${n}'`));continue}let C=UP(u.optional,{yamlCompatibilityMode:r});if(C===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}let w=UP(u.unplugged,{yamlCompatibilityMode:r});if(w===null){o.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:C,unplugged:w})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,u]of Object.entries(e.peerDependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}'`));continue}let A=i0(n),p=this.ensurePeerDependencyMeta(A),h=UP(u.optional,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,u]of Object.entries(e.resolutions)){if(typeof u!="string"){o.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:QD(n),reference:u})}catch(A){o.push(A);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){o.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=Xo(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=Xo(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=Xo(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,u]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(Xo(n),typeof u=="string"?Xo(u):u)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,Xo(e.publishConfig.bin)]]):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,u]of Object.entries(e.publishConfig.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,Xo(u))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){o.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(Xo(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:o.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:o.push(new Error("Invalid selfReferences definition, must be a boolean value")):o.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,u]of Object.entries(e.optionalDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Ys(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=mn(A,u);this.dependencies.set(p.identHash,p);let h=mn(A,"unknown"),C=this.ensureDependencyMeta(h);Object.assign(C,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=o}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(mM("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(mM("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(mM("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!Xse.default.valid(e.range))throw new Error(`Invalid meta field range for '${Qa(e)}'`);let r=nn(e),o=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(o);return n||a.set(o,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Qa(e)}'`);let r=nn(e),o=this.peerDependenciesMeta.get(r);return o||this.peerDependenciesMeta.set(r,o={}),o}setRawField(e,r,{after:o=[]}={}){let a=new Set(o.filter(n=>Object.prototype.hasOwnProperty.call(this.raw,n)));if(a.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=r;else{let n=this.raw,u=this.raw={},A=!1;for(let p of Object.keys(n))u[p]=n[p],A||(a.delete(p),a.size===0&&(u[e]=r,A=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=nn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(u=>({[u]:n.get(u)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let o=[],a=[];for(let n of this.dependencies.values()){let u=this.dependenciesMeta.get(nn(n)),A=!1;if(r&&u){let p=u.get(null);p&&p.optional&&(A=!0)}A?a.push(n):o.push(n)}o.length>0?e.dependencies=Object.assign({},...lE(o).map(n=>({[nn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...lE(a).map(n=>({[nn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...lE(this.devDependencies.values()).map(n=>({[nn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...lE(this.peerDependencies.values()).map(n=>({[nn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,u]of xa(this.dependenciesMeta.entries(),([A,p])=>A))for(let[A,p]of xa(u.entries(),([h,C])=>h!==null?`0${h}`:"1")){let h=A!==null?Qa(mn(Ys(n),A)):n,C={...p};r&&A===null&&delete C.optional,Object.keys(C).length!==0&&(e.dependenciesMeta[h]=C)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...xa(this.peerDependenciesMeta.entries(),([n,u])=>n).map(([n,u])=>({[n]:u}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:u})=>({[kD(n)]:u}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??(e.scripts={});for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,u]of this.scripts.entries())e.scripts[n]=u}else delete e.scripts;return e}},Nt=cE;Nt.fileName="package.json",Nt.allDependencies=["dependencies","devDependencies","peerDependencies"],Nt.hardDependencies=["dependencies","devDependencies"]});var $se=U((LNt,Zse)=>{var Ptt=Yl(),xtt=function(){return Ptt.Date.now()};Zse.exports=xtt});var toe=U((ONt,eoe)=>{var btt=/\s/;function Qtt(t){for(var e=t.length;e--&&btt.test(t.charAt(e)););return e}eoe.exports=Qtt});var noe=U((MNt,roe)=>{var ktt=toe(),Ftt=/^\s+/;function Rtt(t){return t&&t.slice(0,ktt(t)+1).replace(Ftt,"")}roe.exports=Rtt});var AE=U((UNt,ioe)=>{var Ttt=hd(),Ntt=Xu(),Ltt="[object Symbol]";function Ott(t){return typeof t=="symbol"||Ntt(t)&&Ttt(t)==Ltt}ioe.exports=Ott});var loe=U((_Nt,aoe)=>{var Mtt=noe(),soe=al(),Utt=AE(),ooe=0/0,_tt=/^[-+]0x[0-9a-f]+$/i,Htt=/^0b[01]+$/i,qtt=/^0o[0-7]+$/i,jtt=parseInt;function Gtt(t){if(typeof t=="number")return t;if(Utt(t))return ooe;if(soe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=soe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Mtt(t);var r=Htt.test(t);return r||qtt.test(t)?jtt(t.slice(2),r?2:8):_tt.test(t)?ooe:+t}aoe.exports=Gtt});var Aoe=U((HNt,uoe)=>{var Wtt=al(),yM=$se(),coe=loe(),Ytt="Expected a function",Ktt=Math.max,Vtt=Math.min;function Jtt(t,e,r){var o,a,n,u,A,p,h=0,C=!1,w=!1,v=!0;if(typeof t!="function")throw new TypeError(Ytt);e=coe(e)||0,Wtt(r)&&(C=!!r.leading,w="maxWait"in r,n=w?Ktt(coe(r.maxWait)||0,e):n,v="trailing"in r?!!r.trailing:v);function b(pe){var De=o,ge=a;return o=a=void 0,h=pe,u=t.apply(ge,De),u}function E(pe){return h=pe,A=setTimeout(_,e),C?b(pe):u}function R(pe){var De=pe-p,ge=pe-h,le=e-De;return w?Vtt(le,n-ge):le}function L(pe){var De=pe-p,ge=pe-h;return p===void 0||De>=e||De<0||w&&ge>=n}function _(){var pe=yM();if(L(pe))return V(pe);A=setTimeout(_,R(pe))}function V(pe){return A=void 0,v&&o?b(pe):(o=a=void 0,u)}function re(){A!==void 0&&clearTimeout(A),h=0,o=p=a=A=void 0}function ae(){return A===void 0?u:V(yM())}function he(){var pe=yM(),De=L(pe);if(o=arguments,a=this,p=pe,De){if(A===void 0)return E(p);if(w)return clearTimeout(A),A=setTimeout(_,e),b(p)}return A===void 0&&(A=setTimeout(_,e)),u}return he.cancel=re,he.flush=ae,he}uoe.exports=Jtt});var EM=U((qNt,foe)=>{var ztt=Aoe(),Xtt=al(),Ztt="Expected a function";function $tt(t,e,r){var o=!0,a=!0;if(typeof t!="function")throw new TypeError(Ztt);return Xtt(r)&&(o="leading"in r?!!r.leading:o,a="trailing"in r?!!r.trailing:a),ztt(t,e,{leading:o,maxWait:e,trailing:a})}foe.exports=$tt});function trt(t){return typeof t.reportCode<"u"}var poe,hoe,goe,ert,Vt,Js,Zl=dt(()=>{poe=tt(EM()),hoe=Ie("stream"),goe=Ie("string_decoder"),ert=15,Vt=class extends Error{constructor(r,o,a){super(o);this.reportExtra=a;this.reportCode=r}};Js=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let r=0,o,a=new Promise(p=>{o=p}),n=p=>{let h=o;a=new Promise(C=>{o=C}),r=p,h()},u=(p=0)=>{n(r+1)},A=async function*(){for(;r<e;)await a,yield{progress:r/e}}();return{[Symbol.asyncIterator](){return A},hasProgress:!0,hasTitle:!1,set:n,tick:u}}static progressViaTitle(){let e,r,o=new Promise(u=>{r=u}),a=(0,poe.default)(u=>{let A=r;o=new Promise(p=>{r=p}),e=u,A()},1e3/ert),n=async function*(){for(;;)await o,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let o=this.reportProgress(e);try{return await r(e)}finally{o.stop()}}startProgressSync(e,r){let o=this.reportProgress(e);try{return r(e)}finally{o.stop()}}reportInfoOnce(e,r,o){var n;let a=o&&o.key?o.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),(n=o==null?void 0:o.reportExtra)==null||n.call(o,this))}reportWarningOnce(e,r,o){var n;let a=o&&o.key?o.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),(n=o==null?void 0:o.reportExtra)==null||n.call(o,this))}reportErrorOnce(e,r,o){var n;let a=o&&o.key?o.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),(n=o==null?void 0:o.reportExtra)==null||n.call(o,this))}reportExceptionOnce(e){trt(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new hoe.PassThrough,o=new goe.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(`
135`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var fC,yM=dt(()=>{Xl();Ks();fC=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new Vt(11,`${kr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var Pd,CM=dt(()=>{Ks();Pd=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${Ln(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${kr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var pC,EM=dt(()=>{bt();Ks();pC=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=us(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=us(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return aC(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=pi.makeVirtualPath(n,u,a),p=new ju(A,{baseFs:r.packageFs,pathUtils:z});return{...r,packageFs:p}}}});var hC,e1,hoe=dt(()=>{hC=class{static isVirtualDescriptor(e){return!!e.range.startsWith(hC.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(hC.protocol)}supportsDescriptor(e,r){return hC.isVirtualDescriptor(e)}supportsLocator(e,r){return hC.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},e1=hC;e1.protocol="virtual:"});var gC,IM=dt(()=>{bt();Dd();gC=class{supports(e){return!!e.reference.startsWith(Gn.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new An(o),prefixPath:wt.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Gn.protocol.length))}}});function t1(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function goe(t){return typeof t>"u"?3:t1(t)?0:Array.isArray(t)?1:2}function vM(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function $tt(t){return t1(t)&&vM(t,"onConflict")&&typeof t.onConflict=="string"}function ert(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!$tt(t))return{onConflict:"default",value:t};if(vM(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function doe(t,e){let r=t1(t)&&vM(t,e)?t[e]:void 0;return ert(r)}function dC(t,e){return[t,e,moe]}function DM(t){return Array.isArray(t)?t[2]===moe:!1}function wM(t,e){if(t1(t)){let r={};for(let o of Object.keys(t))r[o]=wM(t[o],e);return dC(e,r)}return Array.isArray(t)?dC(e,t.map(r=>wM(r,e))):dC(e,t)}function BM(t,e,r,o,a){let n,u=[],A=a,p=0;for(let E=a-1;E>=o;--E){let[w,v]=t[E],{onConflict:b,value:C}=doe(v,r),R=goe(C);if(R!==3){if(n??(n=R),R!==n||b==="hardReset"){p=A;break}if(R===2)return dC(w,C);if(u.unshift([w,C]),b==="reset"){p=E;break}b==="extend"&&E===o&&(o=0),A=E}}if(typeof n>"u")return null;let h=u.map(([E])=>E).join(", ");switch(n){case 1:return dC(h,new Array().concat(...u.map(([E,w])=>w.map(v=>wM(v,E)))));case 0:{let E=Object.assign({},...u.map(([,R])=>R)),w=Object.keys(E),v={},b=t.map(([R,L])=>[R,doe(L,r).value]),C=Ztt(b,([R,L])=>{let _=goe(L);return _!==0&&_!==3});if(C!==-1){let R=b.slice(C+1);for(let L of w)v[L]=BM(R,e,L,0,R.length)}else for(let R of w)v[R]=BM(b,e,R,p,b.length);return dC(h,v)}default:throw new Error("Assertion failed: Non-extendable value type")}}function yoe(t){return BM(t.map(([e,r])=>[e,{["."]:r}]),[],".",0,t.length)}function r1(t){return DM(t)?t[1]:t}function MP(t){let e=DM(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>MP(r));if(t1(e)){let r={};for(let[o,a]of Object.entries(e))r[o]=MP(a);return r}return e}function SM(t){return DM(t)?t[0]:null}var Ztt,moe,Coe=dt(()=>{Ztt=(t,e,r)=>{let o=[...t];return o.reverse(),o.findIndex(e,r)};moe=Symbol()});var UP={};Yt(UP,{getDefaultGlobalFolder:()=>xM,getHomeFolder:()=>mC,isFolderInside:()=>bM});function xM(){if(process.platform==="win32"){let t=ue.toPortablePath(process.env.LOCALAPPDATA||ue.join((0,PM.homedir)(),"AppData","Local"));return z.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=ue.toPortablePath(process.env.XDG_DATA_HOME);return z.resolve(t,"yarn/berry")}return z.resolve(mC(),".yarn/berry")}function mC(){return ue.toPortablePath((0,PM.homedir)()||"/usr/local/share")}function bM(t,e){let r=z.relative(e,t);return r&&!r.startsWith("..")&&!z.isAbsolute(r)}var PM,_P=dt(()=>{bt();PM=Ie("os")});var Boe=U(yC=>{"use strict";var zNt=Ie("net"),rrt=Ie("tls"),QM=Ie("http"),Eoe=Ie("https"),nrt=Ie("events"),XNt=Ie("assert"),irt=Ie("util");yC.httpOverHttp=srt;yC.httpsOverHttp=ort;yC.httpOverHttps=art;yC.httpsOverHttps=lrt;function srt(t){var e=new Ff(t);return e.request=QM.request,e}function ort(t){var e=new Ff(t);return e.request=QM.request,e.createSocket=Ioe,e.defaultPort=443,e}function art(t){var e=new Ff(t);return e.request=Eoe.request,e}function lrt(t){var e=new Ff(t);return e.request=Eoe.request,e.createSocket=Ioe,e.defaultPort=443,e}function Ff(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||QM.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(o,a,n,u){for(var A=woe(a,n,u),p=0,h=e.requests.length;p<h;++p){var E=e.requests[p];if(E.host===A.host&&E.port===A.port){e.requests.splice(p,1),E.request.onSocket(o);return}}o.destroy(),e.removeSocket(o)})}irt.inherits(Ff,nrt.EventEmitter);Ff.prototype.addRequest=function(e,r,o,a){var n=this,u=kM({request:e},n.options,woe(r,o,a));if(n.sockets.length>=this.maxSockets){n.requests.push(u);return}n.createSocket(u,function(A){A.on("free",p),A.on("close",h),A.on("agentRemove",h),e.onSocket(A);function p(){n.emit("free",A,u)}function h(E){n.removeSocket(A),A.removeListener("free",p),A.removeListener("close",h),A.removeListener("agentRemove",h)}})};Ff.prototype.createSocket=function(e,r){var o=this,a={};o.sockets.push(a);var n=kM({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),i0("making CONNECT request");var u=o.request(n);u.useChunkedEncodingByDefault=!1,u.once("response",A),u.once("upgrade",p),u.once("connect",h),u.once("error",E),u.end();function A(w){w.upgrade=!0}function p(w,v,b){process.nextTick(function(){h(w,v,b)})}function h(w,v,b){if(u.removeAllListeners(),v.removeAllListeners(),w.statusCode!==200){i0("tunneling socket could not be established, statusCode=%d",w.statusCode),v.destroy();var C=new Error("tunneling socket could not be established, statusCode="+w.statusCode);C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}if(b.length>0){i0("got illegal response body from proxy"),v.destroy();var C=new Error("got illegal response body from proxy");C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}return i0("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=v,r(v)}function E(w){u.removeAllListeners(),i0(`tunneling socket could not be established, cause=%s 135`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var fE,CM=dt(()=>{Zl();Ks();fE=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new Vt(11,`${kr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var xd,IM=dt(()=>{Ks();xd=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${Ln(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${kr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var pE,wM=dt(()=>{St();Ks();pE=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=us(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=us(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return aE(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=pi.makeVirtualPath(n,u,a),p=new ju(A,{baseFs:r.packageFs,pathUtils:J});return{...r,packageFs:p}}}});var hE,t1,doe=dt(()=>{hE=class{static isVirtualDescriptor(e){return!!e.range.startsWith(hE.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(hE.protocol)}supportsDescriptor(e,r){return hE.isVirtualDescriptor(e)}supportsLocator(e,r){return hE.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},t1=hE;t1.protocol="virtual:"});var gE,BM=dt(()=>{St();Sd();gE=class{supports(e){return!!e.reference.startsWith(Gn.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new An(o),prefixPath:wt.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Gn.protocol.length))}}});function r1(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function moe(t){return typeof t>"u"?3:r1(t)?0:Array.isArray(t)?1:2}function SM(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nrt(t){return r1(t)&&SM(t,"onConflict")&&typeof t.onConflict=="string"}function irt(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!nrt(t))return{onConflict:"default",value:t};if(SM(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function yoe(t,e){let r=r1(t)&&SM(t,e)?t[e]:void 0;return irt(r)}function dE(t,e){return[t,e,Eoe]}function PM(t){return Array.isArray(t)?t[2]===Eoe:!1}function vM(t,e){if(r1(t)){let r={};for(let o of Object.keys(t))r[o]=vM(t[o],e);return dE(e,r)}return Array.isArray(t)?dE(e,t.map(r=>vM(r,e))):dE(e,t)}function DM(t,e,r,o,a){let n,u=[],A=a,p=0;for(let C=a-1;C>=o;--C){let[w,v]=t[C],{onConflict:b,value:E}=yoe(v,r),R=moe(E);if(R!==3){if(n??(n=R),R!==n||b==="hardReset"){p=A;break}if(R===2)return dE(w,E);if(u.unshift([w,E]),b==="reset"){p=C;break}b==="extend"&&C===o&&(o=0),A=C}}if(typeof n>"u")return null;let h=u.map(([C])=>C).join(", ");switch(n){case 1:return dE(h,new Array().concat(...u.map(([C,w])=>w.map(v=>vM(v,C)))));case 0:{let C=Object.assign({},...u.map(([,R])=>R)),w=Object.keys(C),v={},b=t.map(([R,L])=>[R,yoe(L,r).value]),E=rrt(b,([R,L])=>{let _=moe(L);return _!==0&&_!==3});if(E!==-1){let R=b.slice(E+1);for(let L of w)v[L]=DM(R,e,L,0,R.length)}else for(let R of w)v[R]=DM(b,e,R,p,b.length);return dE(h,v)}default:throw new Error("Assertion failed: Non-extendable value type")}}function Coe(t){return DM(t.map(([e,r])=>[e,{["."]:r}]),[],".",0,t.length)}function n1(t){return PM(t)?t[1]:t}function _P(t){let e=PM(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>_P(r));if(r1(e)){let r={};for(let[o,a]of Object.entries(e))r[o]=_P(a);return r}return e}function xM(t){return PM(t)?t[0]:null}var rrt,Eoe,Ioe=dt(()=>{rrt=(t,e,r)=>{let o=[...t];return o.reverse(),o.findIndex(e,r)};Eoe=Symbol()});var HP={};Yt(HP,{getDefaultGlobalFolder:()=>QM,getHomeFolder:()=>mE,isFolderInside:()=>kM});function QM(){if(process.platform==="win32"){let t=ue.toPortablePath(process.env.LOCALAPPDATA||ue.join((0,bM.homedir)(),"AppData","Local"));return J.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=ue.toPortablePath(process.env.XDG_DATA_HOME);return J.resolve(t,"yarn/berry")}return J.resolve(mE(),".yarn/berry")}function mE(){return ue.toPortablePath((0,bM.homedir)()||"/usr/local/share")}function kM(t,e){let r=J.relative(e,t);return r&&!r.startsWith("..")&&!J.isAbsolute(r)}var bM,qP=dt(()=>{St();bM=Ie("os")});var Doe=U(yE=>{"use strict";var tLt=Ie("net"),ort=Ie("tls"),FM=Ie("http"),woe=Ie("https"),art=Ie("events"),rLt=Ie("assert"),lrt=Ie("util");yE.httpOverHttp=crt;yE.httpsOverHttp=urt;yE.httpOverHttps=Art;yE.httpsOverHttps=frt;function crt(t){var e=new Rf(t);return e.request=FM.request,e}function urt(t){var e=new Rf(t);return e.request=FM.request,e.createSocket=Boe,e.defaultPort=443,e}function Art(t){var e=new Rf(t);return e.request=woe.request,e}function frt(t){var e=new Rf(t);return e.request=woe.request,e.createSocket=Boe,e.defaultPort=443,e}function Rf(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||FM.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(o,a,n,u){for(var A=voe(a,n,u),p=0,h=e.requests.length;p<h;++p){var C=e.requests[p];if(C.host===A.host&&C.port===A.port){e.requests.splice(p,1),C.request.onSocket(o);return}}o.destroy(),e.removeSocket(o)})}lrt.inherits(Rf,art.EventEmitter);Rf.prototype.addRequest=function(e,r,o,a){var n=this,u=RM({request:e},n.options,voe(r,o,a));if(n.sockets.length>=this.maxSockets){n.requests.push(u);return}n.createSocket(u,function(A){A.on("free",p),A.on("close",h),A.on("agentRemove",h),e.onSocket(A);function p(){n.emit("free",A,u)}function h(C){n.removeSocket(A),A.removeListener("free",p),A.removeListener("close",h),A.removeListener("agentRemove",h)}})};Rf.prototype.createSocket=function(e,r){var o=this,a={};o.sockets.push(a);var n=RM({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),o0("making CONNECT request");var u=o.request(n);u.useChunkedEncodingByDefault=!1,u.once("response",A),u.once("upgrade",p),u.once("connect",h),u.once("error",C),u.end();function A(w){w.upgrade=!0}function p(w,v,b){process.nextTick(function(){h(w,v,b)})}function h(w,v,b){if(u.removeAllListeners(),v.removeAllListeners(),w.statusCode!==200){o0("tunneling socket could not be established, statusCode=%d",w.statusCode),v.destroy();var E=new Error("tunneling socket could not be established, statusCode="+w.statusCode);E.code="ECONNRESET",e.request.emit("error",E),o.removeSocket(a);return}if(b.length>0){o0("got illegal response body from proxy"),v.destroy();var E=new Error("got illegal response body from proxy");E.code="ECONNRESET",e.request.emit("error",E),o.removeSocket(a);return}return o0("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=v,r(v)}function C(w){u.removeAllListeners(),o0(`tunneling socket could not be established, cause=%s
136`,w.message,w.stack);var v=new Error("tunneling socket could not be established, cause="+w.message);v.code="ECONNRESET",e.request.emit("error",v),o.removeSocket(a)}};Ff.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function Ioe(t,e){var r=this;Ff.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=kM({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=rrt.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function woe(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function kM(t){for(var e=1,r=arguments.length;e<r;++e){var o=arguments[e];if(typeof o=="object")for(var a=Object.keys(o),n=0,u=a.length;n<u;++n){var A=a[n];o[A]!==void 0&&(t[A]=o[A])}}return t}var i0;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?i0=function(){var t=Array.prototype.slice.call(arguments);typeof t[0]=="string"?t[0]="TUNNEL: "+t[0]:t.unshift("TUNNEL:"),console.error.apply(console,t)}:i0=function(){};yC.debug=i0});var Doe=U(($Nt,voe)=>{voe.exports=Boe()});var Tf=U((Rf,HP)=>{"use strict";Object.defineProperty(Rf,"__esModule",{value:!0});var Soe=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function crt(t){return Soe.includes(t)}var urt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Soe];function Art(t){return urt.includes(t)}var frt=["null","undefined","string","number","bigint","boolean","symbol"];function prt(t){return frt.includes(t)}function CC(t){return e=>typeof e===t}var{toString:Poe}=Object.prototype,n1=t=>{let e=Poe.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&Fe.domElement(t))return"HTMLElement";if(Art(e))return e},Jn=t=>e=>n1(e)===t;function Fe(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Fe.observable(t))return"Observable";if(Fe.array(t))return"Array";if(Fe.buffer(t))return"Buffer";let e=n1(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Fe.undefined=CC("undefined");Fe.string=CC("string");var hrt=CC("number");Fe.number=t=>hrt(t)&&!Fe.nan(t);Fe.bigint=CC("bigint");Fe.function_=CC("function");Fe.null_=t=>t===null;Fe.class_=t=>Fe.function_(t)&&t.toString().startsWith("class ");Fe.boolean=t=>t===!0||t===!1;Fe.symbol=CC("symbol");Fe.numericString=t=>Fe.string(t)&&!Fe.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Fe.array=(t,e)=>Array.isArray(t)?Fe.function_(e)?t.every(e):!0:!1;Fe.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};Fe.nullOrUndefined=t=>Fe.null_(t)||Fe.undefined(t);Fe.object=t=>!Fe.null_(t)&&(typeof t=="object"||Fe.function_(t));Fe.iterable=t=>{var e;return Fe.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Fe.asyncIterable=t=>{var e;return Fe.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Fe.generator=t=>Fe.iterable(t)&&Fe.function_(t.next)&&Fe.function_(t.throw);Fe.asyncGenerator=t=>Fe.asyncIterable(t)&&Fe.function_(t.next)&&Fe.function_(t.throw);Fe.nativePromise=t=>Jn("Promise")(t);var grt=t=>{var e,r;return Fe.function_((e=t)===null||e===void 0?void 0:e.then)&&Fe.function_((r=t)===null||r===void 0?void 0:r.catch)};Fe.promise=t=>Fe.nativePromise(t)||grt(t);Fe.generatorFunction=Jn("GeneratorFunction");Fe.asyncGeneratorFunction=t=>n1(t)==="AsyncGeneratorFunction";Fe.asyncFunction=t=>n1(t)==="AsyncFunction";Fe.boundFunction=t=>Fe.function_(t)&&!t.hasOwnProperty("prototype");Fe.regExp=Jn("RegExp");Fe.date=Jn("Date");Fe.error=Jn("Error");Fe.map=t=>Jn("Map")(t);Fe.set=t=>Jn("Set")(t);Fe.weakMap=t=>Jn("WeakMap")(t);Fe.weakSet=t=>Jn("WeakSet")(t);Fe.int8Array=Jn("Int8Array");Fe.uint8Array=Jn("Uint8Array");Fe.uint8ClampedArray=Jn("Uint8ClampedArray");Fe.int16Array=Jn("Int16Array");Fe.uint16Array=Jn("Uint16Array");Fe.int32Array=Jn("Int32Array");Fe.uint32Array=Jn("Uint32Array");Fe.float32Array=Jn("Float32Array");Fe.float64Array=Jn("Float64Array");Fe.bigInt64Array=Jn("BigInt64Array");Fe.bigUint64Array=Jn("BigUint64Array");Fe.arrayBuffer=Jn("ArrayBuffer");Fe.sharedArrayBuffer=Jn("SharedArrayBuffer");Fe.dataView=Jn("DataView");Fe.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;Fe.urlInstance=t=>Jn("URL")(t);Fe.urlString=t=>{if(!Fe.string(t))return!1;try{return new URL(t),!0}catch{return!1}};Fe.truthy=t=>Boolean(t);Fe.falsy=t=>!t;Fe.nan=t=>Number.isNaN(t);Fe.primitive=t=>Fe.null_(t)||prt(typeof t);Fe.integer=t=>Number.isInteger(t);Fe.safeInteger=t=>Number.isSafeInteger(t);Fe.plainObject=t=>{if(Poe.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};Fe.typedArray=t=>crt(n1(t));var drt=t=>Fe.safeInteger(t)&&t>=0;Fe.arrayLike=t=>!Fe.nullOrUndefined(t)&&!Fe.function_(t)&&drt(t.length);Fe.inRange=(t,e)=>{if(Fe.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(Fe.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var mrt=1,yrt=["innerHTML","ownerDocument","style","attributes","nodeValue"];Fe.domElement=t=>Fe.object(t)&&t.nodeType===mrt&&Fe.string(t.nodeName)&&!Fe.plainObject(t)&&yrt.every(e=>e in t);Fe.observable=t=>{var e,r,o,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(o=t)["@@observable"])===null||a===void 0?void 0:a.call(o)):!1};Fe.nodeStream=t=>Fe.object(t)&&Fe.function_(t.pipe)&&!Fe.observable(t);Fe.infinite=t=>t===1/0||t===-1/0;var xoe=t=>e=>Fe.integer(e)&&Math.abs(e%2)===t;Fe.evenInteger=xoe(0);Fe.oddInteger=xoe(1);Fe.emptyArray=t=>Fe.array(t)&&t.length===0;Fe.nonEmptyArray=t=>Fe.array(t)&&t.length>0;Fe.emptyString=t=>Fe.string(t)&&t.length===0;Fe.nonEmptyString=t=>Fe.string(t)&&t.length>0;var Crt=t=>Fe.string(t)&&!/\S/.test(t);Fe.emptyStringOrWhitespace=t=>Fe.emptyString(t)||Crt(t);Fe.emptyObject=t=>Fe.object(t)&&!Fe.map(t)&&!Fe.set(t)&&Object.keys(t).length===0;Fe.nonEmptyObject=t=>Fe.object(t)&&!Fe.map(t)&&!Fe.set(t)&&Object.keys(t).length>0;Fe.emptySet=t=>Fe.set(t)&&t.size===0;Fe.nonEmptySet=t=>Fe.set(t)&&t.size>0;Fe.emptyMap=t=>Fe.map(t)&&t.size===0;Fe.nonEmptyMap=t=>Fe.map(t)&&t.size>0;Fe.propertyKey=t=>Fe.any([Fe.string,Fe.number,Fe.symbol],t);Fe.formData=t=>Jn("FormData")(t);Fe.urlSearchParams=t=>Jn("URLSearchParams")(t);var boe=(t,e,r)=>{if(!Fe.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};Fe.any=(t,...e)=>(Fe.array(t)?t:[t]).some(o=>boe(Array.prototype.some,o,e));Fe.all=(t,...e)=>boe(Array.prototype.every,t,e);var Mt=(t,e,r,o={})=>{if(!t){let{multipleValues:a}=o,n=a?`received values of types ${[...new Set(r.map(u=>`\`${Fe(u)}\``))].join(", ")}`:`received value of type \`${Fe(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Rf.assert={undefined:t=>Mt(Fe.undefined(t),"undefined",t),string:t=>Mt(Fe.string(t),"string",t),number:t=>Mt(Fe.number(t),"number",t),bigint:t=>Mt(Fe.bigint(t),"bigint",t),function_:t=>Mt(Fe.function_(t),"Function",t),null_:t=>Mt(Fe.null_(t),"null",t),class_:t=>Mt(Fe.class_(t),"Class",t),boolean:t=>Mt(Fe.boolean(t),"boolean",t),symbol:t=>Mt(Fe.symbol(t),"symbol",t),numericString:t=>Mt(Fe.numericString(t),"string with a number",t),array:(t,e)=>{Mt(Fe.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Mt(Fe.buffer(t),"Buffer",t),nullOrUndefined:t=>Mt(Fe.nullOrUndefined(t),"null or undefined",t),object:t=>Mt(Fe.object(t),"Object",t),iterable:t=>Mt(Fe.iterable(t),"Iterable",t),asyncIterable:t=>Mt(Fe.asyncIterable(t),"AsyncIterable",t),generator:t=>Mt(Fe.generator(t),"Generator",t),asyncGenerator:t=>Mt(Fe.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Mt(Fe.nativePromise(t),"native Promise",t),promise:t=>Mt(Fe.promise(t),"Promise",t),generatorFunction:t=>Mt(Fe.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Mt(Fe.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Mt(Fe.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Mt(Fe.boundFunction(t),"Function",t),regExp:t=>Mt(Fe.regExp(t),"RegExp",t),date:t=>Mt(Fe.date(t),"Date",t),error:t=>Mt(Fe.error(t),"Error",t),map:t=>Mt(Fe.map(t),"Map",t),set:t=>Mt(Fe.set(t),"Set",t),weakMap:t=>Mt(Fe.weakMap(t),"WeakMap",t),weakSet:t=>Mt(Fe.weakSet(t),"WeakSet",t),int8Array:t=>Mt(Fe.int8Array(t),"Int8Array",t),uint8Array:t=>Mt(Fe.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Mt(Fe.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Mt(Fe.int16Array(t),"Int16Array",t),uint16Array:t=>Mt(Fe.uint16Array(t),"Uint16Array",t),int32Array:t=>Mt(Fe.int32Array(t),"Int32Array",t),uint32Array:t=>Mt(Fe.uint32Array(t),"Uint32Array",t),float32Array:t=>Mt(Fe.float32Array(t),"Float32Array",t),float64Array:t=>Mt(Fe.float64Array(t),"Float64Array",t),bigInt64Array:t=>Mt(Fe.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Mt(Fe.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Mt(Fe.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Mt(Fe.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Mt(Fe.dataView(t),"DataView",t),urlInstance:t=>Mt(Fe.urlInstance(t),"URL",t),urlString:t=>Mt(Fe.urlString(t),"string with a URL",t),truthy:t=>Mt(Fe.truthy(t),"truthy",t),falsy:t=>Mt(Fe.falsy(t),"falsy",t),nan:t=>Mt(Fe.nan(t),"NaN",t),primitive:t=>Mt(Fe.primitive(t),"primitive",t),integer:t=>Mt(Fe.integer(t),"integer",t),safeInteger:t=>Mt(Fe.safeInteger(t),"integer",t),plainObject:t=>Mt(Fe.plainObject(t),"plain object",t),typedArray:t=>Mt(Fe.typedArray(t),"TypedArray",t),arrayLike:t=>Mt(Fe.arrayLike(t),"array-like",t),domElement:t=>Mt(Fe.domElement(t),"HTMLElement",t),observable:t=>Mt(Fe.observable(t),"Observable",t),nodeStream:t=>Mt(Fe.nodeStream(t),"Node.js Stream",t),infinite:t=>Mt(Fe.infinite(t),"infinite number",t),emptyArray:t=>Mt(Fe.emptyArray(t),"empty array",t),nonEmptyArray:t=>Mt(Fe.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Mt(Fe.emptyString(t),"empty string",t),nonEmptyString:t=>Mt(Fe.nonEmptyString(t),"non-empty string",t),emptyStringOrWhitespace:t=>Mt(Fe.emptyStringOrWhitespace(t),"empty string or whitespace",t),emptyObject:t=>Mt(Fe.emptyObject(t),"empty object",t),nonEmptyObject:t=>Mt(Fe.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Mt(Fe.emptySet(t),"empty set",t),nonEmptySet:t=>Mt(Fe.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Mt(Fe.emptyMap(t),"empty map",t),nonEmptyMap:t=>Mt(Fe.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Mt(Fe.propertyKey(t),"PropertyKey",t),formData:t=>Mt(Fe.formData(t),"FormData",t),urlSearchParams:t=>Mt(Fe.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Mt(Fe.evenInteger(t),"even integer",t),oddInteger:t=>Mt(Fe.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Mt(Fe.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Mt(Fe.inRange(t,e),"in range",t),any:(t,...e)=>Mt(Fe.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Mt(Fe.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(Fe,{class:{value:Fe.class_},function:{value:Fe.function_},null:{value:Fe.null_}});Object.defineProperties(Rf.assert,{class:{value:Rf.assert.class_},function:{value:Rf.assert.function_},null:{value:Rf.assert.null_}});Rf.default=Fe;HP.exports=Fe;HP.exports.default=Fe;HP.exports.assert=Rf.assert});var Qoe=U((eLt,FM)=>{"use strict";var qP=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},EC=class{static fn(e){return(...r)=>new EC((o,a,n)=>{r.push(n),e(...r).then(o,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,o)=>{this._reject=o;let a=A=>{this._isPending=!1,r(A)},n=A=>{this._isPending=!1,o(A)},u=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(u,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),e(a,n,u)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new qP(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(EC.prototype,Promise.prototype);FM.exports=EC;FM.exports.CancelError=qP});var koe=U((TM,NM)=>{"use strict";Object.defineProperty(TM,"__esModule",{value:!0});var Ert=Ie("tls"),RM=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let o=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",u=()=>{o&&r.connect(),t instanceof Ert.TLSSocket&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?u():t.connecting?t.once("connect",u):t.destroyed&&n&&r.close(t._hadError)};TM.default=RM;NM.exports=RM;NM.exports.default=RM});var Foe=U((OM,MM)=>{"use strict";Object.defineProperty(OM,"__esModule",{value:!0});var Irt=koe(),wrt=Number(process.versions.node.split(".")[0]),LM=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=u=>{let A=u.emit.bind(u);u.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,u.emit=A),A(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||wrt>=13)&&(e.phases.total=Date.now()-e.start)});let o=u=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let A=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};u.prependOnceListener("lookup",A),Irt.default(u,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(u.removeListener("lookup",A),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?o(t.socket):t.prependOnceListener("socket",o);let a=()=>{var u;e.upload=Date.now(),e.phases.request=e.upload-(u=e.secureConnect,u??e.connect)};return(()=>typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))()?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",u=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,u.timings=e,r(u),u.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};OM.default=LM;MM.exports=LM;MM.exports.default=LM});var Uoe=U((tLt,HM)=>{"use strict";var{V4MAPPED:Brt,ADDRCONFIG:vrt,ALL:Moe,promises:{Resolver:Roe},lookup:Drt}=Ie("dns"),{promisify:UM}=Ie("util"),Srt=Ie("os"),IC=Symbol("cacheableLookupCreateConnection"),_M=Symbol("cacheableLookupInstance"),Toe=Symbol("expires"),Prt=typeof Moe=="number",Noe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},xrt=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Loe=()=>{let t=!1,e=!1;for(let r of Object.values(Srt.networkInterfaces()))for(let o of r)if(!o.internal&&(o.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},brt=t=>Symbol.iterator in t,Ooe={ttl:!0},Qrt={all:!0},jP=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:o=3600,errorTtl:a=.15,resolver:n=new Roe,lookup:u=Drt}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=UM(u),this._resolver instanceof Roe?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=UM(this._resolver.resolve4.bind(this._resolver)),this._resolve6=UM(this._resolver.resolve6.bind(this._resolver))),this._iface=Loe(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,o<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},o*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,o){if(typeof r=="function"?(o=r,r={}):typeof r=="number"&&(r={family:r}),!o)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?o(null,a):o(null,a.address,a.family,a.expires,a.ttl)},o)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let o=await this.query(e);if(r.family===6){let a=o.filter(n=>n.family===6);r.hints&Brt&&(Prt&&r.hints&Moe||a.length===0)?xrt(o):o=a}else r.family===4&&(o=o.filter(a=>a.family===4));if(r.hints&vrt){let{_iface:a}=this;o=o.filter(n=>n.family===6?a.has6:a.has4)}if(o.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?o:o[0]}async query(e){let r=await this._cache.get(e);if(!r){let o=this._pending[e];if(o)r=await o;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(o=>({...o})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[o,a]=await Promise.all([this._resolve4(e,Ooe),this._resolve6(e,Ooe)].map(h=>r(h))),n=0,u=0,A=0,p=Date.now();for(let h of o)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,u=Math.max(u,h.ttl);return o.length>0?a.length>0?A=Math.min(n,u):A=n:A=u,{entries:[...o,...a],cacheTtl:A}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,o){if(this.maxTtl>0&&o>0){o=Math.min(o,this.maxTtl)*1e3,r[Toe]=Date.now()+o;try{await this._cache.set(e,r,o)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}brt(this._cache)&&this._tick(o)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Qrt);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let o=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,o),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e<r)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let o=1/0,a=Date.now();for(let[n,u]of this._cache){let A=u[Toe];a>=A?this._cache.delete(n):A<o&&(o=A)}o!==1/0&&this._tick(o-a)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Noe(e),IC in e)throw new Error("CacheableLookup has been already installed");e[IC]=e.createConnection,e[_M]=this,e.createConnection=(r,o)=>("lookup"in r||(r.lookup=this.lookup),e[IC](r,o))}uninstall(e){if(Noe(e),e[IC]){if(e[_M]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[IC],delete e[IC],delete e[_M]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Loe(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};HM.exports=jP;HM.exports.default=jP});var qoe=U((rLt,qM)=>{"use strict";var krt=typeof URL>"u"?Ie("url").URL:URL,Frt="text/plain",Rrt="us-ascii",_oe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Trt=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let o=r[1].split(";"),a=r[2],n=e?"":r[3],u=!1;o[o.length-1]==="base64"&&(o.pop(),u=!0);let A=(o.shift()||"").toLowerCase(),h=[...o.map(E=>{let[w,v=""]=E.split("=").map(b=>b.trim());return w==="charset"&&(v=v.toLowerCase(),v===Rrt)?"":`${w}${v?`=${v}`:""}`}).filter(Boolean)];return u&&h.push("base64"),(h.length!==0||A&&A!==Frt)&&h.unshift(A),`data:${h.join(";")},${u?a.trim():a}${n?`#${n}`:""}`},Hoe=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return Trt(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new krt(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,u)=>/^(?!\/)/g.test(u)?`${u}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),u=n[n.length-1];_oe(u,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])_oe(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};qM.exports=Hoe;qM.exports.default=Hoe});var Woe=U((nLt,Goe)=>{Goe.exports=joe;function joe(t,e){if(t&&e)return joe(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(o){r[o]=t[o]}),r;function r(){for(var o=new Array(arguments.length),a=0;a<o.length;a++)o[a]=arguments[a];var n=t.apply(this,o),u=o[o.length-1];return typeof n=="function"&&n!==u&&Object.keys(u).forEach(function(A){n[A]=u[A]}),n}}});var GM=U((iLt,jM)=>{var Yoe=Woe();jM.exports=Yoe(GP);jM.exports.strict=Yoe(Koe);GP.proto=GP(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return GP(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Koe(this)},configurable:!0})});function GP(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function Koe(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var WM=U((sLt,Joe)=>{var Nrt=GM(),Lrt=function(){},Ort=function(t){return t.setHeader&&typeof t.abort=="function"},Mrt=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},Voe=function(t,e,r){if(typeof e=="function")return Voe(t,null,e);e||(e={}),r=Nrt(r||Lrt);var o=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,u=e.writable||e.writable!==!1&&t.writable,A=function(){t.writable||p()},p=function(){u=!1,n||r.call(t)},h=function(){n=!1,u||r.call(t)},E=function(C){r.call(t,C?new Error("exited with error code: "+C):null)},w=function(C){r.call(t,C)},v=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(u&&!(o&&o.ended))return r.call(t,new Error("premature close"))},b=function(){t.req.on("finish",p)};return Ort(t)?(t.on("complete",p),t.on("abort",v),t.req?b():t.on("request",b)):u&&!o&&(t.on("end",A),t.on("close",A)),Mrt(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",w),t.on("close",v),function(){t.removeListener("complete",p),t.removeListener("abort",v),t.removeListener("request",b),t.req&&t.req.removeListener("finish",p),t.removeListener("end",A),t.removeListener("close",A),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",w),t.removeListener("close",v)}};Joe.exports=Voe});var Zoe=U((oLt,Xoe)=>{var Urt=GM(),_rt=WM(),YM=Ie("fs"),i1=function(){},Hrt=/^v?\.0/.test(process.version),WP=function(t){return typeof t=="function"},qrt=function(t){return!Hrt||!YM?!1:(t instanceof(YM.ReadStream||i1)||t instanceof(YM.WriteStream||i1))&&WP(t.close)},jrt=function(t){return t.setHeader&&WP(t.abort)},Grt=function(t,e,r,o){o=Urt(o);var a=!1;t.on("close",function(){a=!0}),_rt(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,qrt(t))return t.close(i1);if(jrt(t))return t.abort();if(WP(t.destroy))return t.destroy();o(u||new Error("stream was destroyed"))}}},zoe=function(t){t()},Wrt=function(t,e){return t.pipe(e)},Yrt=function(){var t=Array.prototype.slice.call(arguments),e=WP(t[t.length-1]||i1)&&t.pop()||i1;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,o=t.map(function(a,n){var u=n<t.length-1,A=n>0;return Grt(a,u,A,function(p){r||(r=p),p&&o.forEach(zoe),!u&&(o.forEach(zoe),e(r))})});return t.reduce(Wrt)};Xoe.exports=Yrt});var eae=U((aLt,$oe)=>{"use strict";var{PassThrough:Krt}=Ie("stream");$oe.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,o=r==="buffer",a=!1;e?a=!(r||o):r=r||"utf8",o&&(r=null);let n=new Krt({objectMode:a});r&&n.setEncoding(r);let u=0,A=[];return n.on("data",p=>{A.push(p),a?u=A.length:u+=p.length}),n.getBufferedValue=()=>e?A:o?Buffer.concat(A,u):A.join(""),n.getBufferedLength=()=>u,n}});var tae=U((lLt,wC)=>{"use strict";var Vrt=Zoe(),Jrt=eae(),YP=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function KP(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,o;return await new Promise((a,n)=>{let u=A=>{A&&(A.bufferedData=o.getBufferedValue()),n(A)};o=Vrt(t,Jrt(e),A=>{if(A){u(A);return}a()}),o.on("data",()=>{o.getBufferedLength()>r&&u(new YP)})}),o.getBufferedValue()}wC.exports=KP;wC.exports.default=KP;wC.exports.buffer=(t,e)=>KP(t,{...e,encoding:"buffer"});wC.exports.array=(t,e)=>KP(t,{...e,array:!0});wC.exports.MaxBufferError=YP});var nae=U((uLt,rae)=>{"use strict";var zrt=new Set([200,203,204,206,300,301,404,405,410,414,501]),Xrt=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Zrt=new Set([500,502,503,504]),$rt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},ent={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function xd(t){let e=parseInt(t,10);return isFinite(e)?e:0}function tnt(t){return t?Zrt.has(t.status):!0}function KM(t){let e={};if(!t)return e;let r=t.trim().split(/\s*,\s*/);for(let o of r){let[a,n]=o.split(/\s*=\s*/,2);e[a]=n===void 0?!0:n.replace(/^"|"$/g,"")}return e}function rnt(t){let e=[];for(let r in t){let o=t[r];e.push(o===!0?r:r+"="+o)}if(!!e.length)return e.join(", ")}rae.exports=class{constructor(e,r,{shared:o,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:u,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=o!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=KM(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=KM(e.headers["cache-control"]),u&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":rnt(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Xrt.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||zrt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=KM(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let o of r)if(e.headers[o]!==this._reqHeaders[o])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let o in e)$rt[o]||(r[o]=e[o]);if(e.connection){let o=e.connection.trim().split(/\s*,\s*/);for(let a of o)delete r[a]}if(r.warning){let o=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));o.length?r.warning=o.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return xd(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return xd(this._rescc["s-maxage"])}if(this._rescc["max-age"])return xd(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let o=Date.parse(this._resHeaders.expires);return Number.isNaN(o)||o<r?0:Math.max(e,(o-r)/1e3)}if(this._resHeaders["last-modified"]){let o=Date.parse(this._resHeaders["last-modified"]);if(isFinite(o)&&r>o)return Math.max(e,(r-o)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+xd(this._rescc["stale-if-error"]),o=e+xd(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,o)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+xd(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+xd(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&tnt(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let o=!1;if(r.status!==void 0&&r.status!=304?o=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?o=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?o=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?o=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(o=!0),!o)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let u in this._resHeaders)a[u]=u in r.headers&&!ent[u]?r.headers[u]:this._resHeaders[u];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var VP=U((ALt,iae)=>{"use strict";iae.exports=t=>{let e={};for(let[r,o]of Object.entries(t))e[r.toLowerCase()]=o;return e}});var oae=U((fLt,sae)=>{"use strict";var nnt=Ie("stream").Readable,int=VP(),VM=class extends nnt{constructor(e,r,o,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(o instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=int(r),this.body=o,this.url=a}_read(){this.push(this.body),this.push(null)}};sae.exports=VM});var lae=U((pLt,aae)=>{"use strict";var snt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];aae.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(snt));for(let o of r)o in e||(e[o]=typeof t[o]=="function"?t[o].bind(t):t[o])}});var uae=U((hLt,cae)=>{"use strict";var ont=Ie("stream").PassThrough,ant=lae(),lnt=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new ont;return ant(t,e),t.pipe(e)};cae.exports=lnt});var Aae=U(JM=>{JM.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",o=Array.isArray(e);r=o?"[":"{";var a=!0;for(var n in e){var u=typeof e[n]=="function"||!o&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!u&&(a||(r+=","),a=!1,o?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=o?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};JM.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var hae=U((dLt,pae)=>{"use strict";var cnt=Ie("events"),fae=Aae(),unt=t=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(t.adapter||t.uri){let r=t.adapter||/^[^:]*/.exec(t.uri)[0];return new(Ie(e[r]))(t)}return new Map},zM=class extends cnt{constructor(e,r){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:fae.stringify,deserialize:fae.parse},typeof e=="string"?{uri:e}:e,r),!this.opts.store){let o=Object.assign({},this.opts);this.opts.store=unt(o)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",o=>this.emit("error",o)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,r){e=this._getKeyPrefix(e);let{store:o}=this.opts;return Promise.resolve().then(()=>o.get(e)).then(a=>typeof a=="string"?this.opts.deserialize(a):a).then(a=>{if(a!==void 0){if(typeof a.expires=="number"&&Date.now()>a.expires){this.delete(e);return}return r&&r.raw?a:a.value}})}set(e,r,o){e=this._getKeyPrefix(e),typeof o>"u"&&(o=this.opts.ttl),o===0&&(o=void 0);let{store:a}=this.opts;return Promise.resolve().then(()=>{let n=typeof o=="number"?Date.now()+o:null;return r={value:r,expires:n},this.opts.serialize(r)}).then(n=>a.set(e,n,o)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:r}=this.opts;return Promise.resolve().then(()=>r.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};pae.exports=zM});var mae=U((yLt,dae)=>{"use strict";var Ant=Ie("events"),JP=Ie("url"),fnt=qoe(),pnt=tae(),XM=nae(),gae=oae(),hnt=VP(),gnt=uae(),dnt=hae(),Yc=class{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new dnt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,o)=>{let a;if(typeof r=="string")a=ZM(JP.parse(r)),r={};else if(r instanceof JP.URL)a=ZM(JP.parse(r.toString())),r={};else{let[w,...v]=(r.path||"").split("?"),b=v.length>0?`?${v.join("?")}`:"";a=ZM({...r,pathname:w,search:b})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...mnt(a)},r.headers=hnt(r.headers);let n=new Ant,u=fnt(JP.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${u}`,p=!1,h=!1,E=w=>{h=!0;let v=!1,b,C=new Promise(L=>{b=()=>{v||(v=!0,L())}}),R=L=>{if(p&&!w.forceRefresh){L.status=L.statusCode;let V=XM.fromObject(p.cachePolicy).revalidatedPolicy(w,L);if(!V.modified){let re=V.policy.responseHeaders();L=new gae(p.statusCode,re,p.body,p.url),L.cachePolicy=V.policy,L.fromCache=!0}}L.fromCache||(L.cachePolicy=new XM(w,L,w),L.fromCache=!1);let _;w.cache&&L.cachePolicy.storable()?(_=gnt(L),(async()=>{try{let V=pnt.buffer(L);if(await Promise.race([C,new Promise(he=>L.once("end",he))]),v)return;let re=await V,oe={cachePolicy:L.cachePolicy.toObject(),url:L.url,statusCode:L.fromCache?p.statusCode:L.statusCode,body:re},pe=w.strictTtl?L.cachePolicy.timeToLive():void 0;w.maxTtl&&(pe=pe?Math.min(pe,w.maxTtl):w.maxTtl),await this.cache.set(A,oe,pe)}catch(V){n.emit("error",new Yc.CacheError(V))}})()):w.cache&&p&&(async()=>{try{await this.cache.delete(A)}catch(V){n.emit("error",new Yc.CacheError(V))}})(),n.emit("response",_||L),typeof o=="function"&&o(_||L)};try{let L=e(w,R);L.once("error",b),L.once("abort",b),n.emit("request",L)}catch(L){n.emit("error",new Yc.RequestError(L))}};return(async()=>{let w=async b=>{await Promise.resolve();let C=b.cache?await this.cache.get(A):void 0;if(typeof C>"u")return E(b);let R=XM.fromObject(C.cachePolicy);if(R.satisfiesWithoutRevalidation(b)&&!b.forceRefresh){let L=R.responseHeaders(),_=new gae(C.statusCode,L,C.body,C.url);_.cachePolicy=R,_.fromCache=!0,n.emit("response",_),typeof o=="function"&&o(_)}else p=C,b.headers=R.revalidationHeaders(b),E(b)},v=b=>n.emit("error",new Yc.CacheError(b));this.cache.once("error",v),n.on("response",()=>this.cache.removeListener("error",v));try{await w(r)}catch(b){r.automaticFailover&&!h&&E(r),n.emit("error",new Yc.CacheError(b))}})(),n}}};function mnt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function ZM(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}Yc.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};Yc.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};dae.exports=Yc});var Cae=U((ILt,yae)=>{"use strict";var ynt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];yae.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(ynt)),o={};for(let a of r)a in e||(o[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,o),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var Iae=U((wLt,Eae)=>{"use strict";var{Transform:Cnt,PassThrough:Ent}=Ie("stream"),$M=Ie("zlib"),Int=Cae();Eae.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof $M.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let o=!0,a=new Cnt({transform(A,p,h){o=!1,h(null,A)},flush(A){A()}}),n=new Ent({autoDestroy:!1,destroy(A,p){t.destroy(),p(A)}}),u=r?$M.createBrotliDecompress():$M.createUnzip();return u.once("error",A=>{if(o&&!t.readable){n.end();return}n.destroy(A)}),Int(t,n),t.pipe(a).pipe(u).pipe(n),n}});var t4=U((BLt,wae)=>{"use strict";var e4=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[o,a]of this.oldCache.entries())this.onEviction(o,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};wae.exports=e4});var n4=U((vLt,Sae)=>{"use strict";var wnt=Ie("events"),Bnt=Ie("tls"),vnt=Ie("http2"),Dnt=t4(),Xo=Symbol("currentStreamsCount"),Bae=Symbol("request"),Zl=Symbol("cachedOriginSet"),BC=Symbol("gracefullyClosing"),Snt=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Pnt=(t,e,r)=>{let o=0,a=t.length;for(;o<a;){let n=o+a>>>1;r(t[n],e)?o=n+1:a=n}return o},xnt=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,r4=(t,e)=>{for(let r of t)r[Zl].length<e[Zl].length&&r[Zl].every(o=>e[Zl].includes(o))&&r[Xo]+e[Xo]<=e.remoteSettings.maxConcurrentStreams&&Dae(r)},bnt=(t,e)=>{for(let r of t)e[Zl].length<r[Zl].length&&e[Zl].every(o=>r[Zl].includes(o))&&e[Xo]+r[Xo]<=r.remoteSettings.maxConcurrentStreams&&Dae(e)},vae=({agent:t,isFree:e})=>{let r={};for(let o in t.sessions){let n=t.sessions[o].filter(u=>{let A=u[iA.kCurrentStreamsCount]<u.remoteSettings.maxConcurrentStreams;return e?A:!A});n.length!==0&&(r[o]=n)}return r},Dae=t=>{t[BC]=!0,t[Xo]===0&&t.close()},iA=class extends wnt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:o=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=o,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Dnt({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let o of Snt)e[o]&&(r+=`:${e[o]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let o=this.queue[e][r];this._sessionsCount<this.maxSessions&&!o.completed&&(o.completed=!0,o())}getSession(e,r,o){return new Promise((a,n)=>{Array.isArray(o)?(o=[...o],a()):o=[{resolve:a,reject:n}];let u=this.normalizeOptions(r),A=iA.normalizeOrigin(e,r&&r.servername);if(A===void 0){for(let{reject:E}of o)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(u in this.sessions){let E=this.sessions[u],w=-1,v=-1,b;for(let C of E){let R=C.remoteSettings.maxConcurrentStreams;if(R<w)break;if(C[Zl].includes(A)){let L=C[Xo];if(L>=R||C[BC]||C.destroyed)continue;b||(w=R),L>v&&(b=C,v=L)}}if(b){if(o.length!==1){for(let{reject:C}of o){let R=new Error(`Expected the length of listeners to be 1, got ${o.length}. 136`,w.message,w.stack);var v=new Error("tunneling socket could not be established, cause="+w.message);v.code="ECONNRESET",e.request.emit("error",v),o.removeSocket(a)}};Rf.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function Boe(t,e){var r=this;Rf.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=RM({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=ort.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function voe(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function RM(t){for(var e=1,r=arguments.length;e<r;++e){var o=arguments[e];if(typeof o=="object")for(var a=Object.keys(o),n=0,u=a.length;n<u;++n){var A=a[n];o[A]!==void 0&&(t[A]=o[A])}}return t}var o0;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?o0=function(){var t=Array.prototype.slice.call(arguments);typeof t[0]=="string"?t[0]="TUNNEL: "+t[0]:t.unshift("TUNNEL:"),console.error.apply(console,t)}:o0=function(){};yE.debug=o0});var Poe=U((iLt,Soe)=>{Soe.exports=Doe()});var Nf=U((Tf,jP)=>{"use strict";Object.defineProperty(Tf,"__esModule",{value:!0});var xoe=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function prt(t){return xoe.includes(t)}var hrt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...xoe];function grt(t){return hrt.includes(t)}var drt=["null","undefined","string","number","bigint","boolean","symbol"];function mrt(t){return drt.includes(t)}function EE(t){return e=>typeof e===t}var{toString:boe}=Object.prototype,i1=t=>{let e=boe.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&Fe.domElement(t))return"HTMLElement";if(grt(e))return e},Jn=t=>e=>i1(e)===t;function Fe(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Fe.observable(t))return"Observable";if(Fe.array(t))return"Array";if(Fe.buffer(t))return"Buffer";let e=i1(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Fe.undefined=EE("undefined");Fe.string=EE("string");var yrt=EE("number");Fe.number=t=>yrt(t)&&!Fe.nan(t);Fe.bigint=EE("bigint");Fe.function_=EE("function");Fe.null_=t=>t===null;Fe.class_=t=>Fe.function_(t)&&t.toString().startsWith("class ");Fe.boolean=t=>t===!0||t===!1;Fe.symbol=EE("symbol");Fe.numericString=t=>Fe.string(t)&&!Fe.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Fe.array=(t,e)=>Array.isArray(t)?Fe.function_(e)?t.every(e):!0:!1;Fe.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};Fe.nullOrUndefined=t=>Fe.null_(t)||Fe.undefined(t);Fe.object=t=>!Fe.null_(t)&&(typeof t=="object"||Fe.function_(t));Fe.iterable=t=>{var e;return Fe.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Fe.asyncIterable=t=>{var e;return Fe.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Fe.generator=t=>Fe.iterable(t)&&Fe.function_(t.next)&&Fe.function_(t.throw);Fe.asyncGenerator=t=>Fe.asyncIterable(t)&&Fe.function_(t.next)&&Fe.function_(t.throw);Fe.nativePromise=t=>Jn("Promise")(t);var Ert=t=>{var e,r;return Fe.function_((e=t)===null||e===void 0?void 0:e.then)&&Fe.function_((r=t)===null||r===void 0?void 0:r.catch)};Fe.promise=t=>Fe.nativePromise(t)||Ert(t);Fe.generatorFunction=Jn("GeneratorFunction");Fe.asyncGeneratorFunction=t=>i1(t)==="AsyncGeneratorFunction";Fe.asyncFunction=t=>i1(t)==="AsyncFunction";Fe.boundFunction=t=>Fe.function_(t)&&!t.hasOwnProperty("prototype");Fe.regExp=Jn("RegExp");Fe.date=Jn("Date");Fe.error=Jn("Error");Fe.map=t=>Jn("Map")(t);Fe.set=t=>Jn("Set")(t);Fe.weakMap=t=>Jn("WeakMap")(t);Fe.weakSet=t=>Jn("WeakSet")(t);Fe.int8Array=Jn("Int8Array");Fe.uint8Array=Jn("Uint8Array");Fe.uint8ClampedArray=Jn("Uint8ClampedArray");Fe.int16Array=Jn("Int16Array");Fe.uint16Array=Jn("Uint16Array");Fe.int32Array=Jn("Int32Array");Fe.uint32Array=Jn("Uint32Array");Fe.float32Array=Jn("Float32Array");Fe.float64Array=Jn("Float64Array");Fe.bigInt64Array=Jn("BigInt64Array");Fe.bigUint64Array=Jn("BigUint64Array");Fe.arrayBuffer=Jn("ArrayBuffer");Fe.sharedArrayBuffer=Jn("SharedArrayBuffer");Fe.dataView=Jn("DataView");Fe.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;Fe.urlInstance=t=>Jn("URL")(t);Fe.urlString=t=>{if(!Fe.string(t))return!1;try{return new URL(t),!0}catch{return!1}};Fe.truthy=t=>Boolean(t);Fe.falsy=t=>!t;Fe.nan=t=>Number.isNaN(t);Fe.primitive=t=>Fe.null_(t)||mrt(typeof t);Fe.integer=t=>Number.isInteger(t);Fe.safeInteger=t=>Number.isSafeInteger(t);Fe.plainObject=t=>{if(boe.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};Fe.typedArray=t=>prt(i1(t));var Crt=t=>Fe.safeInteger(t)&&t>=0;Fe.arrayLike=t=>!Fe.nullOrUndefined(t)&&!Fe.function_(t)&&Crt(t.length);Fe.inRange=(t,e)=>{if(Fe.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(Fe.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Irt=1,wrt=["innerHTML","ownerDocument","style","attributes","nodeValue"];Fe.domElement=t=>Fe.object(t)&&t.nodeType===Irt&&Fe.string(t.nodeName)&&!Fe.plainObject(t)&&wrt.every(e=>e in t);Fe.observable=t=>{var e,r,o,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(o=t)["@@observable"])===null||a===void 0?void 0:a.call(o)):!1};Fe.nodeStream=t=>Fe.object(t)&&Fe.function_(t.pipe)&&!Fe.observable(t);Fe.infinite=t=>t===1/0||t===-1/0;var Qoe=t=>e=>Fe.integer(e)&&Math.abs(e%2)===t;Fe.evenInteger=Qoe(0);Fe.oddInteger=Qoe(1);Fe.emptyArray=t=>Fe.array(t)&&t.length===0;Fe.nonEmptyArray=t=>Fe.array(t)&&t.length>0;Fe.emptyString=t=>Fe.string(t)&&t.length===0;Fe.nonEmptyString=t=>Fe.string(t)&&t.length>0;var Brt=t=>Fe.string(t)&&!/\S/.test(t);Fe.emptyStringOrWhitespace=t=>Fe.emptyString(t)||Brt(t);Fe.emptyObject=t=>Fe.object(t)&&!Fe.map(t)&&!Fe.set(t)&&Object.keys(t).length===0;Fe.nonEmptyObject=t=>Fe.object(t)&&!Fe.map(t)&&!Fe.set(t)&&Object.keys(t).length>0;Fe.emptySet=t=>Fe.set(t)&&t.size===0;Fe.nonEmptySet=t=>Fe.set(t)&&t.size>0;Fe.emptyMap=t=>Fe.map(t)&&t.size===0;Fe.nonEmptyMap=t=>Fe.map(t)&&t.size>0;Fe.propertyKey=t=>Fe.any([Fe.string,Fe.number,Fe.symbol],t);Fe.formData=t=>Jn("FormData")(t);Fe.urlSearchParams=t=>Jn("URLSearchParams")(t);var koe=(t,e,r)=>{if(!Fe.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};Fe.any=(t,...e)=>(Fe.array(t)?t:[t]).some(o=>koe(Array.prototype.some,o,e));Fe.all=(t,...e)=>koe(Array.prototype.every,t,e);var Mt=(t,e,r,o={})=>{if(!t){let{multipleValues:a}=o,n=a?`received values of types ${[...new Set(r.map(u=>`\`${Fe(u)}\``))].join(", ")}`:`received value of type \`${Fe(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Tf.assert={undefined:t=>Mt(Fe.undefined(t),"undefined",t),string:t=>Mt(Fe.string(t),"string",t),number:t=>Mt(Fe.number(t),"number",t),bigint:t=>Mt(Fe.bigint(t),"bigint",t),function_:t=>Mt(Fe.function_(t),"Function",t),null_:t=>Mt(Fe.null_(t),"null",t),class_:t=>Mt(Fe.class_(t),"Class",t),boolean:t=>Mt(Fe.boolean(t),"boolean",t),symbol:t=>Mt(Fe.symbol(t),"symbol",t),numericString:t=>Mt(Fe.numericString(t),"string with a number",t),array:(t,e)=>{Mt(Fe.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Mt(Fe.buffer(t),"Buffer",t),nullOrUndefined:t=>Mt(Fe.nullOrUndefined(t),"null or undefined",t),object:t=>Mt(Fe.object(t),"Object",t),iterable:t=>Mt(Fe.iterable(t),"Iterable",t),asyncIterable:t=>Mt(Fe.asyncIterable(t),"AsyncIterable",t),generator:t=>Mt(Fe.generator(t),"Generator",t),asyncGenerator:t=>Mt(Fe.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Mt(Fe.nativePromise(t),"native Promise",t),promise:t=>Mt(Fe.promise(t),"Promise",t),generatorFunction:t=>Mt(Fe.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Mt(Fe.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Mt(Fe.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Mt(Fe.boundFunction(t),"Function",t),regExp:t=>Mt(Fe.regExp(t),"RegExp",t),date:t=>Mt(Fe.date(t),"Date",t),error:t=>Mt(Fe.error(t),"Error",t),map:t=>Mt(Fe.map(t),"Map",t),set:t=>Mt(Fe.set(t),"Set",t),weakMap:t=>Mt(Fe.weakMap(t),"WeakMap",t),weakSet:t=>Mt(Fe.weakSet(t),"WeakSet",t),int8Array:t=>Mt(Fe.int8Array(t),"Int8Array",t),uint8Array:t=>Mt(Fe.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Mt(Fe.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Mt(Fe.int16Array(t),"Int16Array",t),uint16Array:t=>Mt(Fe.uint16Array(t),"Uint16Array",t),int32Array:t=>Mt(Fe.int32Array(t),"Int32Array",t),uint32Array:t=>Mt(Fe.uint32Array(t),"Uint32Array",t),float32Array:t=>Mt(Fe.float32Array(t),"Float32Array",t),float64Array:t=>Mt(Fe.float64Array(t),"Float64Array",t),bigInt64Array:t=>Mt(Fe.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Mt(Fe.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Mt(Fe.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Mt(Fe.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Mt(Fe.dataView(t),"DataView",t),urlInstance:t=>Mt(Fe.urlInstance(t),"URL",t),urlString:t=>Mt(Fe.urlString(t),"string with a URL",t),truthy:t=>Mt(Fe.truthy(t),"truthy",t),falsy:t=>Mt(Fe.falsy(t),"falsy",t),nan:t=>Mt(Fe.nan(t),"NaN",t),primitive:t=>Mt(Fe.primitive(t),"primitive",t),integer:t=>Mt(Fe.integer(t),"integer",t),safeInteger:t=>Mt(Fe.safeInteger(t),"integer",t),plainObject:t=>Mt(Fe.plainObject(t),"plain object",t),typedArray:t=>Mt(Fe.typedArray(t),"TypedArray",t),arrayLike:t=>Mt(Fe.arrayLike(t),"array-like",t),domElement:t=>Mt(Fe.domElement(t),"HTMLElement",t),observable:t=>Mt(Fe.observable(t),"Observable",t),nodeStream:t=>Mt(Fe.nodeStream(t),"Node.js Stream",t),infinite:t=>Mt(Fe.infinite(t),"infinite number",t),emptyArray:t=>Mt(Fe.emptyArray(t),"empty array",t),nonEmptyArray:t=>Mt(Fe.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Mt(Fe.emptyString(t),"empty string",t),nonEmptyString:t=>Mt(Fe.nonEmptyString(t),"non-empty string",t),emptyStringOrWhitespace:t=>Mt(Fe.emptyStringOrWhitespace(t),"empty string or whitespace",t),emptyObject:t=>Mt(Fe.emptyObject(t),"empty object",t),nonEmptyObject:t=>Mt(Fe.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Mt(Fe.emptySet(t),"empty set",t),nonEmptySet:t=>Mt(Fe.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Mt(Fe.emptyMap(t),"empty map",t),nonEmptyMap:t=>Mt(Fe.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Mt(Fe.propertyKey(t),"PropertyKey",t),formData:t=>Mt(Fe.formData(t),"FormData",t),urlSearchParams:t=>Mt(Fe.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Mt(Fe.evenInteger(t),"even integer",t),oddInteger:t=>Mt(Fe.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Mt(Fe.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Mt(Fe.inRange(t,e),"in range",t),any:(t,...e)=>Mt(Fe.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Mt(Fe.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(Fe,{class:{value:Fe.class_},function:{value:Fe.function_},null:{value:Fe.null_}});Object.defineProperties(Tf.assert,{class:{value:Tf.assert.class_},function:{value:Tf.assert.function_},null:{value:Tf.assert.null_}});Tf.default=Fe;jP.exports=Fe;jP.exports.default=Fe;jP.exports.assert=Tf.assert});var Foe=U((sLt,TM)=>{"use strict";var GP=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},CE=class{static fn(e){return(...r)=>new CE((o,a,n)=>{r.push(n),e(...r).then(o,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,o)=>{this._reject=o;let a=A=>{this._isPending=!1,r(A)},n=A=>{this._isPending=!1,o(A)},u=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(u,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),e(a,n,u)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new GP(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(CE.prototype,Promise.prototype);TM.exports=CE;TM.exports.CancelError=GP});var Roe=U((LM,OM)=>{"use strict";Object.defineProperty(LM,"__esModule",{value:!0});var vrt=Ie("tls"),NM=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let o=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",u=()=>{o&&r.connect(),t instanceof vrt.TLSSocket&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?u():t.connecting?t.once("connect",u):t.destroyed&&n&&r.close(t._hadError)};LM.default=NM;OM.exports=NM;OM.exports.default=NM});var Toe=U((UM,_M)=>{"use strict";Object.defineProperty(UM,"__esModule",{value:!0});var Drt=Roe(),Srt=Number(process.versions.node.split(".")[0]),MM=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=u=>{let A=u.emit.bind(u);u.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,u.emit=A),A(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Srt>=13)&&(e.phases.total=Date.now()-e.start)});let o=u=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let A=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};u.prependOnceListener("lookup",A),Drt.default(u,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(u.removeListener("lookup",A),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?o(t.socket):t.prependOnceListener("socket",o);let a=()=>{var u;e.upload=Date.now(),e.phases.request=e.upload-(u=e.secureConnect,u??e.connect)};return(()=>typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))()?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",u=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,u.timings=e,r(u),u.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};UM.default=MM;_M.exports=MM;_M.exports.default=MM});var Hoe=U((oLt,jM)=>{"use strict";var{V4MAPPED:Prt,ADDRCONFIG:xrt,ALL:_oe,promises:{Resolver:Noe},lookup:brt}=Ie("dns"),{promisify:HM}=Ie("util"),Qrt=Ie("os"),IE=Symbol("cacheableLookupCreateConnection"),qM=Symbol("cacheableLookupInstance"),Loe=Symbol("expires"),krt=typeof _oe=="number",Ooe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Frt=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Moe=()=>{let t=!1,e=!1;for(let r of Object.values(Qrt.networkInterfaces()))for(let o of r)if(!o.internal&&(o.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Rrt=t=>Symbol.iterator in t,Uoe={ttl:!0},Trt={all:!0},WP=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:o=3600,errorTtl:a=.15,resolver:n=new Noe,lookup:u=brt}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=HM(u),this._resolver instanceof Noe?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=HM(this._resolver.resolve4.bind(this._resolver)),this._resolve6=HM(this._resolver.resolve6.bind(this._resolver))),this._iface=Moe(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,o<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},o*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,o){if(typeof r=="function"?(o=r,r={}):typeof r=="number"&&(r={family:r}),!o)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?o(null,a):o(null,a.address,a.family,a.expires,a.ttl)},o)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let o=await this.query(e);if(r.family===6){let a=o.filter(n=>n.family===6);r.hints&Prt&&(krt&&r.hints&_oe||a.length===0)?Frt(o):o=a}else r.family===4&&(o=o.filter(a=>a.family===4));if(r.hints&xrt){let{_iface:a}=this;o=o.filter(n=>n.family===6?a.has6:a.has4)}if(o.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?o:o[0]}async query(e){let r=await this._cache.get(e);if(!r){let o=this._pending[e];if(o)r=await o;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(o=>({...o})),r}async _resolve(e){let r=async h=>{try{return await h}catch(C){if(C.code==="ENODATA"||C.code==="ENOTFOUND")return[];throw C}},[o,a]=await Promise.all([this._resolve4(e,Uoe),this._resolve6(e,Uoe)].map(h=>r(h))),n=0,u=0,A=0,p=Date.now();for(let h of o)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,u=Math.max(u,h.ttl);return o.length>0?a.length>0?A=Math.min(n,u):A=n:A=u,{entries:[...o,...a],cacheTtl:A}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,o){if(this.maxTtl>0&&o>0){o=Math.min(o,this.maxTtl)*1e3,r[Loe]=Date.now()+o;try{await this._cache.set(e,r,o)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}Rrt(this._cache)&&this._tick(o)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Trt);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let o=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,o),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e<r)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let o=1/0,a=Date.now();for(let[n,u]of this._cache){let A=u[Loe];a>=A?this._cache.delete(n):A<o&&(o=A)}o!==1/0&&this._tick(o-a)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Ooe(e),IE in e)throw new Error("CacheableLookup has been already installed");e[IE]=e.createConnection,e[qM]=this,e.createConnection=(r,o)=>("lookup"in r||(r.lookup=this.lookup),e[IE](r,o))}uninstall(e){if(Ooe(e),e[IE]){if(e[qM]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[IE],delete e[IE],delete e[qM]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Moe(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};jM.exports=WP;jM.exports.default=WP});var Goe=U((aLt,GM)=>{"use strict";var Nrt=typeof URL>"u"?Ie("url").URL:URL,Lrt="text/plain",Ort="us-ascii",qoe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Mrt=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let o=r[1].split(";"),a=r[2],n=e?"":r[3],u=!1;o[o.length-1]==="base64"&&(o.pop(),u=!0);let A=(o.shift()||"").toLowerCase(),h=[...o.map(C=>{let[w,v=""]=C.split("=").map(b=>b.trim());return w==="charset"&&(v=v.toLowerCase(),v===Ort)?"":`${w}${v?`=${v}`:""}`}).filter(Boolean)];return u&&h.push("base64"),(h.length!==0||A&&A!==Lrt)&&h.unshift(A),`data:${h.join(";")},${u?a.trim():a}${n?`#${n}`:""}`},joe=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return Mrt(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new Nrt(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,u)=>/^(?!\/)/g.test(u)?`${u}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),u=n[n.length-1];qoe(u,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])qoe(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};GM.exports=joe;GM.exports.default=joe});var Koe=U((lLt,Yoe)=>{Yoe.exports=Woe;function Woe(t,e){if(t&&e)return Woe(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(o){r[o]=t[o]}),r;function r(){for(var o=new Array(arguments.length),a=0;a<o.length;a++)o[a]=arguments[a];var n=t.apply(this,o),u=o[o.length-1];return typeof n=="function"&&n!==u&&Object.keys(u).forEach(function(A){n[A]=u[A]}),n}}});var YM=U((cLt,WM)=>{var Voe=Koe();WM.exports=Voe(YP);WM.exports.strict=Voe(Joe);YP.proto=YP(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return YP(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Joe(this)},configurable:!0})});function YP(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function Joe(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var KM=U((uLt,Xoe)=>{var Urt=YM(),_rt=function(){},Hrt=function(t){return t.setHeader&&typeof t.abort=="function"},qrt=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},zoe=function(t,e,r){if(typeof e=="function")return zoe(t,null,e);e||(e={}),r=Urt(r||_rt);var o=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,u=e.writable||e.writable!==!1&&t.writable,A=function(){t.writable||p()},p=function(){u=!1,n||r.call(t)},h=function(){n=!1,u||r.call(t)},C=function(E){r.call(t,E?new Error("exited with error code: "+E):null)},w=function(E){r.call(t,E)},v=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(u&&!(o&&o.ended))return r.call(t,new Error("premature close"))},b=function(){t.req.on("finish",p)};return Hrt(t)?(t.on("complete",p),t.on("abort",v),t.req?b():t.on("request",b)):u&&!o&&(t.on("end",A),t.on("close",A)),qrt(t)&&t.on("exit",C),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",w),t.on("close",v),function(){t.removeListener("complete",p),t.removeListener("abort",v),t.removeListener("request",b),t.req&&t.req.removeListener("finish",p),t.removeListener("end",A),t.removeListener("close",A),t.removeListener("finish",p),t.removeListener("exit",C),t.removeListener("end",h),t.removeListener("error",w),t.removeListener("close",v)}};Xoe.exports=zoe});var eae=U((ALt,$oe)=>{var jrt=YM(),Grt=KM(),VM=Ie("fs"),s1=function(){},Wrt=/^v?\.0/.test(process.version),KP=function(t){return typeof t=="function"},Yrt=function(t){return!Wrt||!VM?!1:(t instanceof(VM.ReadStream||s1)||t instanceof(VM.WriteStream||s1))&&KP(t.close)},Krt=function(t){return t.setHeader&&KP(t.abort)},Vrt=function(t,e,r,o){o=jrt(o);var a=!1;t.on("close",function(){a=!0}),Grt(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,Yrt(t))return t.close(s1);if(Krt(t))return t.abort();if(KP(t.destroy))return t.destroy();o(u||new Error("stream was destroyed"))}}},Zoe=function(t){t()},Jrt=function(t,e){return t.pipe(e)},zrt=function(){var t=Array.prototype.slice.call(arguments),e=KP(t[t.length-1]||s1)&&t.pop()||s1;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,o=t.map(function(a,n){var u=n<t.length-1,A=n>0;return Vrt(a,u,A,function(p){r||(r=p),p&&o.forEach(Zoe),!u&&(o.forEach(Zoe),e(r))})});return t.reduce(Jrt)};$oe.exports=zrt});var rae=U((fLt,tae)=>{"use strict";var{PassThrough:Xrt}=Ie("stream");tae.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,o=r==="buffer",a=!1;e?a=!(r||o):r=r||"utf8",o&&(r=null);let n=new Xrt({objectMode:a});r&&n.setEncoding(r);let u=0,A=[];return n.on("data",p=>{A.push(p),a?u=A.length:u+=p.length}),n.getBufferedValue=()=>e?A:o?Buffer.concat(A,u):A.join(""),n.getBufferedLength=()=>u,n}});var nae=U((pLt,wE)=>{"use strict";var Zrt=eae(),$rt=rae(),VP=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function JP(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,o;return await new Promise((a,n)=>{let u=A=>{A&&(A.bufferedData=o.getBufferedValue()),n(A)};o=Zrt(t,$rt(e),A=>{if(A){u(A);return}a()}),o.on("data",()=>{o.getBufferedLength()>r&&u(new VP)})}),o.getBufferedValue()}wE.exports=JP;wE.exports.default=JP;wE.exports.buffer=(t,e)=>JP(t,{...e,encoding:"buffer"});wE.exports.array=(t,e)=>JP(t,{...e,array:!0});wE.exports.MaxBufferError=VP});var sae=U((gLt,iae)=>{"use strict";var ent=new Set([200,203,204,206,300,301,404,405,410,414,501]),tnt=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),rnt=new Set([500,502,503,504]),nnt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},int={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function bd(t){let e=parseInt(t,10);return isFinite(e)?e:0}function snt(t){return t?rnt.has(t.status):!0}function JM(t){let e={};if(!t)return e;let r=t.trim().split(/\s*,\s*/);for(let o of r){let[a,n]=o.split(/\s*=\s*/,2);e[a]=n===void 0?!0:n.replace(/^"|"$/g,"")}return e}function ont(t){let e=[];for(let r in t){let o=t[r];e.push(o===!0?r:r+"="+o)}if(!!e.length)return e.join(", ")}iae.exports=class{constructor(e,r,{shared:o,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:u,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=o!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=JM(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=JM(e.headers["cache-control"]),u&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":ont(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&tnt.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||ent.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=JM(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let o of r)if(e.headers[o]!==this._reqHeaders[o])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let o in e)nnt[o]||(r[o]=e[o]);if(e.connection){let o=e.connection.trim().split(/\s*,\s*/);for(let a of o)delete r[a]}if(r.warning){let o=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));o.length?r.warning=o.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return bd(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return bd(this._rescc["s-maxage"])}if(this._rescc["max-age"])return bd(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let o=Date.parse(this._resHeaders.expires);return Number.isNaN(o)||o<r?0:Math.max(e,(o-r)/1e3)}if(this._resHeaders["last-modified"]){let o=Date.parse(this._resHeaders["last-modified"]);if(isFinite(o)&&r>o)return Math.max(e,(r-o)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+bd(this._rescc["stale-if-error"]),o=e+bd(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,o)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+bd(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+bd(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&snt(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let o=!1;if(r.status!==void 0&&r.status!=304?o=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?o=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?o=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?o=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(o=!0),!o)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let u in this._resHeaders)a[u]=u in r.headers&&!int[u]?r.headers[u]:this._resHeaders[u];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var zP=U((dLt,oae)=>{"use strict";oae.exports=t=>{let e={};for(let[r,o]of Object.entries(t))e[r.toLowerCase()]=o;return e}});var lae=U((mLt,aae)=>{"use strict";var ant=Ie("stream").Readable,lnt=zP(),zM=class extends ant{constructor(e,r,o,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(o instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=lnt(r),this.body=o,this.url=a}_read(){this.push(this.body),this.push(null)}};aae.exports=zM});var uae=U((yLt,cae)=>{"use strict";var cnt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];cae.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(cnt));for(let o of r)o in e||(e[o]=typeof t[o]=="function"?t[o].bind(t):t[o])}});var fae=U((ELt,Aae)=>{"use strict";var unt=Ie("stream").PassThrough,Ant=uae(),fnt=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new unt;return Ant(t,e),t.pipe(e)};Aae.exports=fnt});var pae=U(XM=>{XM.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",o=Array.isArray(e);r=o?"[":"{";var a=!0;for(var n in e){var u=typeof e[n]=="function"||!o&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!u&&(a||(r+=","),a=!1,o?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=o?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};XM.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var dae=U((ILt,gae)=>{"use strict";var pnt=Ie("events"),hae=pae(),hnt=t=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(t.adapter||t.uri){let r=t.adapter||/^[^:]*/.exec(t.uri)[0];return new(Ie(e[r]))(t)}return new Map},ZM=class extends pnt{constructor(e,r){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:hae.stringify,deserialize:hae.parse},typeof e=="string"?{uri:e}:e,r),!this.opts.store){let o=Object.assign({},this.opts);this.opts.store=hnt(o)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",o=>this.emit("error",o)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,r){e=this._getKeyPrefix(e);let{store:o}=this.opts;return Promise.resolve().then(()=>o.get(e)).then(a=>typeof a=="string"?this.opts.deserialize(a):a).then(a=>{if(a!==void 0){if(typeof a.expires=="number"&&Date.now()>a.expires){this.delete(e);return}return r&&r.raw?a:a.value}})}set(e,r,o){e=this._getKeyPrefix(e),typeof o>"u"&&(o=this.opts.ttl),o===0&&(o=void 0);let{store:a}=this.opts;return Promise.resolve().then(()=>{let n=typeof o=="number"?Date.now()+o:null;return r={value:r,expires:n},this.opts.serialize(r)}).then(n=>a.set(e,n,o)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:r}=this.opts;return Promise.resolve().then(()=>r.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};gae.exports=ZM});var Eae=U((BLt,yae)=>{"use strict";var gnt=Ie("events"),XP=Ie("url"),dnt=Goe(),mnt=nae(),$M=sae(),mae=lae(),ynt=zP(),Ent=fae(),Cnt=dae(),Kc=class{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Cnt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,o)=>{let a;if(typeof r=="string")a=e4(XP.parse(r)),r={};else if(r instanceof XP.URL)a=e4(XP.parse(r.toString())),r={};else{let[w,...v]=(r.path||"").split("?"),b=v.length>0?`?${v.join("?")}`:"";a=e4({...r,pathname:w,search:b})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...Int(a)},r.headers=ynt(r.headers);let n=new gnt,u=dnt(XP.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${u}`,p=!1,h=!1,C=w=>{h=!0;let v=!1,b,E=new Promise(L=>{b=()=>{v||(v=!0,L())}}),R=L=>{if(p&&!w.forceRefresh){L.status=L.statusCode;let V=$M.fromObject(p.cachePolicy).revalidatedPolicy(w,L);if(!V.modified){let re=V.policy.responseHeaders();L=new mae(p.statusCode,re,p.body,p.url),L.cachePolicy=V.policy,L.fromCache=!0}}L.fromCache||(L.cachePolicy=new $M(w,L,w),L.fromCache=!1);let _;w.cache&&L.cachePolicy.storable()?(_=Ent(L),(async()=>{try{let V=mnt.buffer(L);if(await Promise.race([E,new Promise(pe=>L.once("end",pe))]),v)return;let re=await V,ae={cachePolicy:L.cachePolicy.toObject(),url:L.url,statusCode:L.fromCache?p.statusCode:L.statusCode,body:re},he=w.strictTtl?L.cachePolicy.timeToLive():void 0;w.maxTtl&&(he=he?Math.min(he,w.maxTtl):w.maxTtl),await this.cache.set(A,ae,he)}catch(V){n.emit("error",new Kc.CacheError(V))}})()):w.cache&&p&&(async()=>{try{await this.cache.delete(A)}catch(V){n.emit("error",new Kc.CacheError(V))}})(),n.emit("response",_||L),typeof o=="function"&&o(_||L)};try{let L=e(w,R);L.once("error",b),L.once("abort",b),n.emit("request",L)}catch(L){n.emit("error",new Kc.RequestError(L))}};return(async()=>{let w=async b=>{await Promise.resolve();let E=b.cache?await this.cache.get(A):void 0;if(typeof E>"u")return C(b);let R=$M.fromObject(E.cachePolicy);if(R.satisfiesWithoutRevalidation(b)&&!b.forceRefresh){let L=R.responseHeaders(),_=new mae(E.statusCode,L,E.body,E.url);_.cachePolicy=R,_.fromCache=!0,n.emit("response",_),typeof o=="function"&&o(_)}else p=E,b.headers=R.revalidationHeaders(b),C(b)},v=b=>n.emit("error",new Kc.CacheError(b));this.cache.once("error",v),n.on("response",()=>this.cache.removeListener("error",v));try{await w(r)}catch(b){r.automaticFailover&&!h&&C(r),n.emit("error",new Kc.CacheError(b))}})(),n}}};function Int(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function e4(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}Kc.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};Kc.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};yae.exports=Kc});var Iae=U((SLt,Cae)=>{"use strict";var wnt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];Cae.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(wnt)),o={};for(let a of r)a in e||(o[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,o),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var Bae=U((PLt,wae)=>{"use strict";var{Transform:Bnt,PassThrough:vnt}=Ie("stream"),t4=Ie("zlib"),Dnt=Iae();wae.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof t4.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let o=!0,a=new Bnt({transform(A,p,h){o=!1,h(null,A)},flush(A){A()}}),n=new vnt({autoDestroy:!1,destroy(A,p){t.destroy(),p(A)}}),u=r?t4.createBrotliDecompress():t4.createUnzip();return u.once("error",A=>{if(o&&!t.readable){n.end();return}n.destroy(A)}),Dnt(t,n),t.pipe(a).pipe(u).pipe(n),n}});var n4=U((xLt,vae)=>{"use strict";var r4=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[o,a]of this.oldCache.entries())this.onEviction(o,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};vae.exports=r4});var s4=U((bLt,xae)=>{"use strict";var Snt=Ie("events"),Pnt=Ie("tls"),xnt=Ie("http2"),bnt=n4(),Zo=Symbol("currentStreamsCount"),Dae=Symbol("request"),$l=Symbol("cachedOriginSet"),BE=Symbol("gracefullyClosing"),Qnt=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],knt=(t,e,r)=>{let o=0,a=t.length;for(;o<a;){let n=o+a>>>1;r(t[n],e)?o=n+1:a=n}return o},Fnt=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,i4=(t,e)=>{for(let r of t)r[$l].length<e[$l].length&&r[$l].every(o=>e[$l].includes(o))&&r[Zo]+e[Zo]<=e.remoteSettings.maxConcurrentStreams&&Pae(r)},Rnt=(t,e)=>{for(let r of t)e[$l].length<r[$l].length&&e[$l].every(o=>r[$l].includes(o))&&e[Zo]+r[Zo]<=r.remoteSettings.maxConcurrentStreams&&Pae(e)},Sae=({agent:t,isFree:e})=>{let r={};for(let o in t.sessions){let n=t.sessions[o].filter(u=>{let A=u[iA.kCurrentStreamsCount]<u.remoteSettings.maxConcurrentStreams;return e?A:!A});n.length!==0&&(r[o]=n)}return r},Pae=t=>{t[BE]=!0,t[Zo]===0&&t.close()},iA=class extends Snt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:o=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=o,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new bnt({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let o of Qnt)e[o]&&(r+=`:${e[o]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let o=this.queue[e][r];this._sessionsCount<this.maxSessions&&!o.completed&&(o.completed=!0,o())}getSession(e,r,o){return new Promise((a,n)=>{Array.isArray(o)?(o=[...o],a()):o=[{resolve:a,reject:n}];let u=this.normalizeOptions(r),A=iA.normalizeOrigin(e,r&&r.servername);if(A===void 0){for(let{reject:C}of o)C(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(u in this.sessions){let C=this.sessions[u],w=-1,v=-1,b;for(let E of C){let R=E.remoteSettings.maxConcurrentStreams;if(R<w)break;if(E[$l].includes(A)){let L=E[Zo];if(L>=R||E[BE]||E.destroyed)continue;b||(w=R),L>v&&(b=E,v=L)}}if(b){if(o.length!==1){for(let{reject:E}of o){let R=new Error(`Expected the length of listeners to be 1, got ${o.length}.
137Please report this to https://github.com/szmarczak/http2-wrapper/`);C(R)}return}o[0].resolve(b);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let E=`${A}:${u}`,w=!1;try{let v=vnt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});v[Xo]=0,v[BC]=!1;let b=()=>v[Xo]<v.remoteSettings.maxConcurrentStreams,C=!0;v.socket.once("session",L=>{this.tlsSessionCache.set(E,L)}),v.once("error",L=>{for(let{reject:_}of o)_(L);this.tlsSessionCache.delete(E)}),v.setTimeout(this.timeout,()=>{v.destroy()}),v.once("close",()=>{if(w){C&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(v),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:_}of o)_(L);p()}this._tryToCreateNewSession(u,A)});let R=()=>{if(!(!(u in this.queue)||!b())){for(let L of v[Zl])if(L in this.queue[u]){let{listeners:_}=this.queue[u][L];for(;_.length!==0&&b();)_.shift().resolve(v);let V=this.queue[u];if(V[L].listeners.length===0&&(delete V[L],Object.keys(V).length===0)){delete this.queue[u];break}if(!b())break}}};v.on("origin",()=>{v[Zl]=v.originSet,b()&&(R(),r4(this.sessions[u],v))}),v.once("remoteSettings",()=>{if(v.ref(),v.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let _ of o)_.reject(L);v.destroy();return}v[Zl]=v.originSet;{let L=this.sessions;if(u in L){let _=L[u];_.splice(Pnt(_,v,xnt),0,v)}else L[u]=[v]}this._freeSessionsCount+=1,w=!0,this.emit("session",v),R(),p(),v[Xo]===0&&this._freeSessionsCount>this.maxFreeSessions&&v.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),v.on("remoteSettings",()=>{R(),r4(this.sessions[u],v)})}),v[Bae]=v.request,v.request=(L,_)=>{if(v[BC])throw new Error("The session is gracefully closing. No new streams are allowed.");let V=v[Bae](L,_);return v.ref(),++v[Xo],v[Xo]===v.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,V.once("close",()=>{if(C=b(),--v[Xo],!v.destroyed&&!v.closed&&(bnt(this.sessions[u],v),b()&&!v.closed)){C||(this._freeSessionsCount++,C=!0);let re=v[Xo]===0;re&&v.unref(),re&&(this._freeSessionsCount>this.maxFreeSessions||v[BC])?v.close():(r4(this.sessions[u],v),R())}}),V}}catch(v){for(let b of o)b.reject(v);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return iA.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),Bnt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[Xo]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return vae({agent:this,isFree:!0})}get busySessions(){return vae({agent:this,isFree:!1})}};iA.kCurrentStreamsCount=Xo;iA.kGracefullyClosing=BC;Sae.exports={Agent:iA,globalAgent:new iA}});var s4=U((DLt,Pae)=>{"use strict";var{Readable:Qnt}=Ie("stream"),i4=class extends Qnt{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Pae.exports=i4});var o4=U((SLt,xae)=>{"use strict";xae.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Qae=U((PLt,bae)=>{"use strict";bae.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var Fae=U((xLt,kae)=>{"use strict";kae.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var Tae=U((QLt,Rae)=>{"use strict";var vC=(t,e,r)=>{Rae.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};vC(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],o=Array.isArray(r);return o&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${o?"one of":"of"} type ${r}. Received ${typeof t[2]}`});vC(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);vC(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);vC(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);vC(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);vC(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var A4=U((kLt,Hae)=>{"use strict";var knt=Ie("http2"),{Writable:Fnt}=Ie("stream"),{Agent:Nae,globalAgent:Rnt}=n4(),Tnt=s4(),Nnt=o4(),Lnt=Qae(),Ont=Fae(),{ERR_INVALID_ARG_TYPE:a4,ERR_INVALID_PROTOCOL:Mnt,ERR_HTTP_HEADERS_SENT:Lae,ERR_INVALID_HTTP_TOKEN:Unt,ERR_HTTP_INVALID_HEADER_VALUE:_nt,ERR_INVALID_CHAR:Hnt}=Tae(),{HTTP2_HEADER_STATUS:Oae,HTTP2_HEADER_METHOD:Mae,HTTP2_HEADER_PATH:Uae,HTTP2_METHOD_CONNECT:qnt}=knt.constants,xo=Symbol("headers"),l4=Symbol("origin"),c4=Symbol("session"),_ae=Symbol("options"),zP=Symbol("flushedHeaders"),s1=Symbol("jobs"),jnt=/^[\^`\-\w!#$%&*+.|~]+$/,Gnt=/[^\t\u0020-\u007E\u0080-\u00FF]/,u4=class extends Fnt{constructor(e,r,o){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=Nnt(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(o=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[c4]=r.h2session;else if(r.agent===!1)this.agent=new Nae({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new Nae({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Rnt;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new a4("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new Mnt(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,u=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[xo]=Object.create(null),this[s1]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[xo])&&(this[xo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[_ae]=r,n===443?(this[l4]=`https://${u}`,":authority"in this[xo]||(this[xo][":authority"]=u)):(this[l4]=`https://${u}:${n}`,":authority"in this[xo]||(this[xo][":authority"]=`${u}:${n}`)),A&&this.setTimeout(A),o&&this.once("response",o),this[zP]=!1}get method(){return this[xo][Mae]}set method(e){e&&(this[xo][Mae]=e.toUpperCase())}get path(){return this[xo][Uae]}set path(e){e&&(this[xo][Uae]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,o){if(this._mustNotHaveABody){o(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,o);this._request?a():this[s1].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[s1].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[zP]||this.destroyed)return;this[zP]=!0;let e=this.method===qnt,r=o=>{if(this._request=o,this.destroyed){o.destroy();return}e||Lnt(o,this,["timeout","continue","close","error"]);let a=u=>(...A)=>{!this.writable&&!this.destroyed?u(...A):this.once("finish",()=>{u(...A)})};o.once("response",a((u,A,p)=>{let h=new Tnt(this.socket,o.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=u[Oae],h.headers=u,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,o,Buffer.alloc(0))?this.emit("close"):o.destroy()):(o.on("data",E=>{!h._dumped&&!h.push(E)&&o.pause()}),o.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),o.once("headers",a(u=>this.emit("information",{statusCode:u[Oae]}))),o.once("trailers",a((u,A,p)=>{let{res:h}=this;h.trailers=u,h.rawTrailers=p}));let{socket:n}=o.session;this.socket=n,this.connection=n;for(let u of this[s1])u();this.emit("socket",this.socket)};if(this[c4])try{r(this[c4].request(this[xo]))}catch(o){this.emit("error",o)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[l4],this[_ae],this[xo]))}catch(o){this.emit("error",o)}}}getHeader(e){if(typeof e!="string")throw new a4("name","string",e);return this[xo][e.toLowerCase()]}get headersSent(){return this[zP]}removeHeader(e){if(typeof e!="string")throw new a4("name","string",e);if(this.headersSent)throw new Lae("remove");delete this[xo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new Lae("set");if(typeof e!="string"||!jnt.test(e)&&!Ont(e))throw new Unt("Header name",e);if(typeof r>"u")throw new _nt(r,e);if(Gnt.test(r))throw new Hnt("header content",e);this[xo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let o=()=>this._request.setTimeout(e,r);return this._request?o():this[s1].push(o),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};Hae.exports=u4});var jae=U((FLt,qae)=>{"use strict";var Wnt=Ie("tls");qae.exports=(t={})=>new Promise((e,r)=>{let o=Wnt.connect(t,()=>{t.resolveSocket?(o.off("error",r),e({alpnProtocol:o.alpnProtocol,socket:o})):(o.destroy(),e({alpnProtocol:o.alpnProtocol}))});o.on("error",r)})});var Wae=U((RLt,Gae)=>{"use strict";var Ynt=Ie("net");Gae.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),Ynt.isIP(e)?"":e}});var Vae=U((TLt,p4)=>{"use strict";var Yae=Ie("http"),f4=Ie("https"),Knt=jae(),Vnt=t4(),Jnt=A4(),znt=Wae(),Xnt=o4(),XP=new Vnt({maxSize:100}),o1=new Map,Kae=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let o=()=>{t.emit("free",e,r)};e.on("free",o);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",o),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},Znt=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!XP.has(e)){if(o1.has(e))return(await o1.get(e)).alpnProtocol;let{path:r,agent:o}=t;t.path=t.socketPath;let a=Knt(t);o1.set(e,a);try{let{socket:n,alpnProtocol:u}=await a;if(XP.set(e,u),t.path=r,u==="h2")n.destroy();else{let{globalAgent:A}=f4,p=f4.Agent.prototype.createConnection;o?o.createConnection===p?Kae(o,n,t):n.destroy():A.createConnection===p?Kae(A,n,t):n.destroy()}return o1.delete(e),u}catch(n){throw o1.delete(e),n}}return XP.get(e)};p4.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=Xnt(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let o=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||znt(e),e.port=e.port||(o?443:80),e._defaultAgent=o?f4.globalAgent:Yae.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[o?"https":"http"]}return o&&await Znt(e)==="h2"?(a&&(e.agent=a.http2),new Jnt(e,r)):Yae.request(e,r)};p4.exports.protocolCache=XP});var zae=U((NLt,Jae)=>{"use strict";var $nt=Ie("http2"),eit=n4(),h4=A4(),tit=s4(),rit=Vae(),nit=(t,e,r)=>new h4(t,e,r),iit=(t,e,r)=>{let o=new h4(t,e,r);return o.end(),o};Jae.exports={...$nt,ClientRequest:h4,IncomingMessage:tit,...eit,request:nit,get:iit,auto:rit}});var d4=U(g4=>{"use strict";Object.defineProperty(g4,"__esModule",{value:!0});var Xae=Tf();g4.default=t=>Xae.default.nodeStream(t)&&Xae.default.function_(t.getBoundary)});var tle=U(m4=>{"use strict";Object.defineProperty(m4,"__esModule",{value:!0});var $ae=Ie("fs"),ele=Ie("util"),Zae=Tf(),sit=d4(),oit=ele.promisify($ae.stat);m4.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(Zae.default.string(t))return Buffer.byteLength(t);if(Zae.default.buffer(t))return t.length;if(sit.default(t))return ele.promisify(t.getLength.bind(t))();if(t instanceof $ae.ReadStream){let{size:r}=await oit(t.path);return r===0?void 0:r}}});var C4=U(y4=>{"use strict";Object.defineProperty(y4,"__esModule",{value:!0});function ait(t,e,r){let o={};for(let a of r)o[a]=(...n)=>{e.emit(a,...n)},t.on(a,o[a]);return()=>{for(let a of r)t.off(a,o[a])}}y4.default=ait});var rle=U(E4=>{"use strict";Object.defineProperty(E4,"__esModule",{value:!0});E4.default=()=>{let t=[];return{once(e,r,o){e.once(r,o),t.push({origin:e,event:r,fn:o})},unhandleAll(){for(let e of t){let{origin:r,event:o,fn:a}=e;r.removeListener(o,a)}t.length=0}}}});var ile=U(a1=>{"use strict";Object.defineProperty(a1,"__esModule",{value:!0});a1.TimeoutError=void 0;var lit=Ie("net"),cit=rle(),nle=Symbol("reentry"),uit=()=>{},ZP=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};a1.TimeoutError=ZP;a1.default=(t,e,r)=>{if(nle in t)return uit;t[nle]=!0;let o=[],{once:a,unhandleAll:n}=cit.default(),u=(w,v,b)=>{var C;let R=setTimeout(v,w,w,b);(C=R.unref)===null||C===void 0||C.call(R);let L=()=>{clearTimeout(R)};return o.push(L),L},{host:A,hostname:p}=r,h=(w,v)=>{t.destroy(new ZP(w,v))},E=()=>{for(let w of o)w();n()};if(t.once("error",w=>{if(E(),t.listenerCount("error")===0)throw w}),t.once("close",E),a(t,"response",w=>{a(w,"end",E)}),typeof e.request<"u"&&u(e.request,h,"request"),typeof e.socket<"u"){let w=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,w),o.push(()=>{t.removeListener("timeout",w)})}return a(t,"socket",w=>{var v;let{socketPath:b}=t;if(w.connecting){let C=Boolean(b??lit.isIP((v=p??A)!==null&&v!==void 0?v:"")!==0);if(typeof e.lookup<"u"&&!C&&typeof w.address().address>"u"){let R=u(e.lookup,h,"lookup");a(w,"lookup",R)}if(typeof e.connect<"u"){let R=()=>u(e.connect,h,"connect");C?a(w,"connect",R()):a(w,"lookup",L=>{L===null&&a(w,"connect",R())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(w,"connect",()=>{let R=u(e.secureConnect,h,"secureConnect");a(w,"secureConnect",R)})}if(typeof e.send<"u"){let C=()=>u(e.send,h,"send");w.connecting?a(w,"connect",()=>{a(t,"upload-complete",C())}):a(t,"upload-complete",C())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let w=u(e.response,h,"response");a(t,"response",w)}),E}});var ole=U(I4=>{"use strict";Object.defineProperty(I4,"__esModule",{value:!0});var sle=Tf();I4.default=t=>{t=t;let e={protocol:t.protocol,hostname:sle.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return sle.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var ale=U(w4=>{"use strict";Object.defineProperty(w4,"__esModule",{value:!0});var Ait=Ie("url"),fit=["protocol","host","hostname","port","pathname","search"];w4.default=(t,e)=>{var r,o;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(o=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&o!==void 0?o:""}`}let a=new Ait.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of fit)e[n]&&(a[n]=e[n].toString());return a}});var lle=U(v4=>{"use strict";Object.defineProperty(v4,"__esModule",{value:!0});var B4=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};v4.default=B4});var S4=U(D4=>{"use strict";Object.defineProperty(D4,"__esModule",{value:!0});var pit=async t=>{let e=[],r=0;for await(let o of t)e.push(o),r+=Buffer.byteLength(o);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};D4.default=pit});var ule=U(bd=>{"use strict";Object.defineProperty(bd,"__esModule",{value:!0});bd.dnsLookupIpVersionToFamily=bd.isDnsLookupIpVersion=void 0;var cle={auto:0,ipv4:4,ipv6:6};bd.isDnsLookupIpVersion=t=>t in cle;bd.dnsLookupIpVersionToFamily=t=>{if(bd.isDnsLookupIpVersion(t))return cle[t];throw new Error("Invalid DNS lookup IP version")}});var P4=U($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});$P.isResponseOk=void 0;$P.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var fle=U(x4=>{"use strict";Object.defineProperty(x4,"__esModule",{value:!0});var Ale=new Set;x4.default=t=>{Ale.has(t)||(Ale.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var ple=U(b4=>{"use strict";Object.defineProperty(b4,"__esModule",{value:!0});var ai=Tf(),hit=(t,e)=>{if(ai.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");ai.assert.any([ai.default.string,ai.default.undefined],t.encoding),ai.assert.any([ai.default.boolean,ai.default.undefined],t.resolveBodyOnly),ai.assert.any([ai.default.boolean,ai.default.undefined],t.methodRewriting),ai.assert.any([ai.default.boolean,ai.default.undefined],t.isStream),ai.assert.any([ai.default.string,ai.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:o=>o.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},ai.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(o=>o.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):ai.default.number(r)&&(t.retry.limit=r),ai.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(ai.default.number))),ai.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:o}=t;if(!ai.default.function_(o.transform))throw new Error("`options.pagination.transform` must be implemented");if(!ai.default.function_(o.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!ai.default.function_(o.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!ai.default.function_(o.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};b4.default=hit});var hle=U(l1=>{"use strict";Object.defineProperty(l1,"__esModule",{value:!0});l1.retryAfterStatusCodes=void 0;l1.retryAfterStatusCodes=new Set([413,429,503]);var git=({attemptCount:t,retryOptions:e,error:r,retryAfter:o})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),u=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!u)return 0;if(r.response){if(o)return e.maxRetryAfter===void 0||o>e.maxRetryAfter?0:o;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(t-1)*1e3+A};l1.default=git});var A1=U(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.UnsupportedProtocolError=yn.ReadError=yn.TimeoutError=yn.UploadError=yn.CacheError=yn.HTTPError=yn.MaxRedirectsError=yn.RequestError=yn.setNonEnumerableProperties=yn.knownHookEvents=yn.withoutBody=yn.kIsNormalizedAlready=void 0;var gle=Ie("util"),dle=Ie("stream"),dit=Ie("fs"),s0=Ie("url"),mle=Ie("http"),Q4=Ie("http"),mit=Ie("https"),yit=Foe(),Cit=Uoe(),yle=mae(),Eit=Iae(),Iit=zae(),wit=VP(),nt=Tf(),Bit=tle(),Cle=d4(),vit=C4(),Ele=ile(),Dit=ole(),Ile=ale(),Sit=lle(),Pit=S4(),wle=ule(),xit=P4(),o0=fle(),bit=ple(),Qit=hle(),k4,zs=Symbol("request"),rx=Symbol("response"),DC=Symbol("responseSize"),SC=Symbol("downloadedSize"),PC=Symbol("bodySize"),xC=Symbol("uploadedSize"),ex=Symbol("serverResponsesPiped"),Ble=Symbol("unproxyEvents"),vle=Symbol("isFromCache"),F4=Symbol("cancelTimeouts"),Dle=Symbol("startedReading"),bC=Symbol("stopReading"),tx=Symbol("triggerRead"),a0=Symbol("body"),c1=Symbol("jobs"),Sle=Symbol("originalResponse"),Ple=Symbol("retryTimeout");yn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var kit=nt.default.string(process.versions.brotli);yn.withoutBody=new Set(["GET","HEAD"]);yn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Fit(t){for(let e in t){let r=t[e];if(!nt.default.string(r)&&!nt.default.number(r)&&!nt.default.boolean(r)&&!nt.default.null_(r)&&!nt.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function Rit(t){return nt.default.object(t)&&!("statusCode"in t)}var R4=new Sit.default,Tit=async t=>new Promise((e,r)=>{let o=a=>{r(a)};t.pending||e(),t.once("error",o),t.once("ready",()=>{t.off("error",o),e()})}),Nit=new Set([300,301,302,303,304,307,308]),Lit=["context","body","json","form"];yn.setNonEnumerableProperties=(t,e)=>{let r={};for(let o of t)if(!!o)for(let a of Lit)a in o&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:o[a]});Object.defineProperties(e,r)};var Vi=class extends Error{constructor(e,r,o){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,o instanceof cx?(Object.defineProperty(this,"request",{enumerable:!1,value:o}),Object.defineProperty(this,"response",{enumerable:!1,value:o[rx]}),Object.defineProperty(this,"options",{enumerable:!1,value:o.options})):Object.defineProperty(this,"options",{enumerable:!1,value:o}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,nt.default.string(r.stack)&&nt.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,u=this.stack.slice(n).split(` 137Please report this to https://github.com/szmarczak/http2-wrapper/`);E(R)}return}o[0].resolve(b);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let C=`${A}:${u}`,w=!1;try{let v=xnt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(C),...r});v[Zo]=0,v[BE]=!1;let b=()=>v[Zo]<v.remoteSettings.maxConcurrentStreams,E=!0;v.socket.once("session",L=>{this.tlsSessionCache.set(C,L)}),v.once("error",L=>{for(let{reject:_}of o)_(L);this.tlsSessionCache.delete(C)}),v.setTimeout(this.timeout,()=>{v.destroy()}),v.once("close",()=>{if(w){E&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(v),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:_}of o)_(L);p()}this._tryToCreateNewSession(u,A)});let R=()=>{if(!(!(u in this.queue)||!b())){for(let L of v[$l])if(L in this.queue[u]){let{listeners:_}=this.queue[u][L];for(;_.length!==0&&b();)_.shift().resolve(v);let V=this.queue[u];if(V[L].listeners.length===0&&(delete V[L],Object.keys(V).length===0)){delete this.queue[u];break}if(!b())break}}};v.on("origin",()=>{v[$l]=v.originSet,b()&&(R(),i4(this.sessions[u],v))}),v.once("remoteSettings",()=>{if(v.ref(),v.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let _ of o)_.reject(L);v.destroy();return}v[$l]=v.originSet;{let L=this.sessions;if(u in L){let _=L[u];_.splice(knt(_,v,Fnt),0,v)}else L[u]=[v]}this._freeSessionsCount+=1,w=!0,this.emit("session",v),R(),p(),v[Zo]===0&&this._freeSessionsCount>this.maxFreeSessions&&v.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),v.on("remoteSettings",()=>{R(),i4(this.sessions[u],v)})}),v[Dae]=v.request,v.request=(L,_)=>{if(v[BE])throw new Error("The session is gracefully closing. No new streams are allowed.");let V=v[Dae](L,_);return v.ref(),++v[Zo],v[Zo]===v.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,V.once("close",()=>{if(E=b(),--v[Zo],!v.destroyed&&!v.closed&&(Rnt(this.sessions[u],v),b()&&!v.closed)){E||(this._freeSessionsCount++,E=!0);let re=v[Zo]===0;re&&v.unref(),re&&(this._freeSessionsCount>this.maxFreeSessions||v[BE])?v.close():(i4(this.sessions[u],v),R())}}),V}}catch(v){for(let b of o)b.reject(v);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return iA.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),Pnt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[Zo]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return Sae({agent:this,isFree:!0})}get busySessions(){return Sae({agent:this,isFree:!1})}};iA.kCurrentStreamsCount=Zo;iA.kGracefullyClosing=BE;xae.exports={Agent:iA,globalAgent:new iA}});var a4=U((QLt,bae)=>{"use strict";var{Readable:Tnt}=Ie("stream"),o4=class extends Tnt{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};bae.exports=o4});var l4=U((kLt,Qae)=>{"use strict";Qae.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Fae=U((FLt,kae)=>{"use strict";kae.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var Tae=U((RLt,Rae)=>{"use strict";Rae.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var Lae=U((NLt,Nae)=>{"use strict";var vE=(t,e,r)=>{Nae.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};vE(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],o=Array.isArray(r);return o&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${o?"one of":"of"} type ${r}. Received ${typeof t[2]}`});vE(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);vE(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);vE(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);vE(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);vE(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var p4=U((LLt,jae)=>{"use strict";var Nnt=Ie("http2"),{Writable:Lnt}=Ie("stream"),{Agent:Oae,globalAgent:Ont}=s4(),Mnt=a4(),Unt=l4(),_nt=Fae(),Hnt=Tae(),{ERR_INVALID_ARG_TYPE:c4,ERR_INVALID_PROTOCOL:qnt,ERR_HTTP_HEADERS_SENT:Mae,ERR_INVALID_HTTP_TOKEN:jnt,ERR_HTTP_INVALID_HEADER_VALUE:Gnt,ERR_INVALID_CHAR:Wnt}=Lae(),{HTTP2_HEADER_STATUS:Uae,HTTP2_HEADER_METHOD:_ae,HTTP2_HEADER_PATH:Hae,HTTP2_METHOD_CONNECT:Ynt}=Nnt.constants,xo=Symbol("headers"),u4=Symbol("origin"),A4=Symbol("session"),qae=Symbol("options"),ZP=Symbol("flushedHeaders"),o1=Symbol("jobs"),Knt=/^[\^`\-\w!#$%&*+.|~]+$/,Vnt=/[^\t\u0020-\u007E\u0080-\u00FF]/,f4=class extends Lnt{constructor(e,r,o){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=Unt(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(o=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[A4]=r.h2session;else if(r.agent===!1)this.agent=new Oae({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new Oae({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Ont;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new c4("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new qnt(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,u=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[xo]=Object.create(null),this[o1]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[xo])&&(this[xo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[qae]=r,n===443?(this[u4]=`https://${u}`,":authority"in this[xo]||(this[xo][":authority"]=u)):(this[u4]=`https://${u}:${n}`,":authority"in this[xo]||(this[xo][":authority"]=`${u}:${n}`)),A&&this.setTimeout(A),o&&this.once("response",o),this[ZP]=!1}get method(){return this[xo][_ae]}set method(e){e&&(this[xo][_ae]=e.toUpperCase())}get path(){return this[xo][Hae]}set path(e){e&&(this[xo][Hae]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,o){if(this._mustNotHaveABody){o(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,o);this._request?a():this[o1].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[o1].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[ZP]||this.destroyed)return;this[ZP]=!0;let e=this.method===Ynt,r=o=>{if(this._request=o,this.destroyed){o.destroy();return}e||_nt(o,this,["timeout","continue","close","error"]);let a=u=>(...A)=>{!this.writable&&!this.destroyed?u(...A):this.once("finish",()=>{u(...A)})};o.once("response",a((u,A,p)=>{let h=new Mnt(this.socket,o.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=u[Uae],h.headers=u,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,o,Buffer.alloc(0))?this.emit("close"):o.destroy()):(o.on("data",C=>{!h._dumped&&!h.push(C)&&o.pause()}),o.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),o.once("headers",a(u=>this.emit("information",{statusCode:u[Uae]}))),o.once("trailers",a((u,A,p)=>{let{res:h}=this;h.trailers=u,h.rawTrailers=p}));let{socket:n}=o.session;this.socket=n,this.connection=n;for(let u of this[o1])u();this.emit("socket",this.socket)};if(this[A4])try{r(this[A4].request(this[xo]))}catch(o){this.emit("error",o)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[u4],this[qae],this[xo]))}catch(o){this.emit("error",o)}}}getHeader(e){if(typeof e!="string")throw new c4("name","string",e);return this[xo][e.toLowerCase()]}get headersSent(){return this[ZP]}removeHeader(e){if(typeof e!="string")throw new c4("name","string",e);if(this.headersSent)throw new Mae("remove");delete this[xo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new Mae("set");if(typeof e!="string"||!Knt.test(e)&&!Hnt(e))throw new jnt("Header name",e);if(typeof r>"u")throw new Gnt(r,e);if(Vnt.test(r))throw new Wnt("header content",e);this[xo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let o=()=>this._request.setTimeout(e,r);return this._request?o():this[o1].push(o),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};jae.exports=f4});var Wae=U((OLt,Gae)=>{"use strict";var Jnt=Ie("tls");Gae.exports=(t={})=>new Promise((e,r)=>{let o=Jnt.connect(t,()=>{t.resolveSocket?(o.off("error",r),e({alpnProtocol:o.alpnProtocol,socket:o})):(o.destroy(),e({alpnProtocol:o.alpnProtocol}))});o.on("error",r)})});var Kae=U((MLt,Yae)=>{"use strict";var znt=Ie("net");Yae.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),znt.isIP(e)?"":e}});var zae=U((ULt,g4)=>{"use strict";var Vae=Ie("http"),h4=Ie("https"),Xnt=Wae(),Znt=n4(),$nt=p4(),eit=Kae(),tit=l4(),$P=new Znt({maxSize:100}),a1=new Map,Jae=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let o=()=>{t.emit("free",e,r)};e.on("free",o);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",o),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},rit=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!$P.has(e)){if(a1.has(e))return(await a1.get(e)).alpnProtocol;let{path:r,agent:o}=t;t.path=t.socketPath;let a=Xnt(t);a1.set(e,a);try{let{socket:n,alpnProtocol:u}=await a;if($P.set(e,u),t.path=r,u==="h2")n.destroy();else{let{globalAgent:A}=h4,p=h4.Agent.prototype.createConnection;o?o.createConnection===p?Jae(o,n,t):n.destroy():A.createConnection===p?Jae(A,n,t):n.destroy()}return a1.delete(e),u}catch(n){throw a1.delete(e),n}}return $P.get(e)};g4.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=tit(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let o=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||eit(e),e.port=e.port||(o?443:80),e._defaultAgent=o?h4.globalAgent:Vae.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[o?"https":"http"]}return o&&await rit(e)==="h2"?(a&&(e.agent=a.http2),new $nt(e,r)):Vae.request(e,r)};g4.exports.protocolCache=$P});var Zae=U((_Lt,Xae)=>{"use strict";var nit=Ie("http2"),iit=s4(),d4=p4(),sit=a4(),oit=zae(),ait=(t,e,r)=>new d4(t,e,r),lit=(t,e,r)=>{let o=new d4(t,e,r);return o.end(),o};Xae.exports={...nit,ClientRequest:d4,IncomingMessage:sit,...iit,request:ait,get:lit,auto:oit}});var y4=U(m4=>{"use strict";Object.defineProperty(m4,"__esModule",{value:!0});var $ae=Nf();m4.default=t=>$ae.default.nodeStream(t)&&$ae.default.function_(t.getBoundary)});var nle=U(E4=>{"use strict";Object.defineProperty(E4,"__esModule",{value:!0});var tle=Ie("fs"),rle=Ie("util"),ele=Nf(),cit=y4(),uit=rle.promisify(tle.stat);E4.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(ele.default.string(t))return Buffer.byteLength(t);if(ele.default.buffer(t))return t.length;if(cit.default(t))return rle.promisify(t.getLength.bind(t))();if(t instanceof tle.ReadStream){let{size:r}=await uit(t.path);return r===0?void 0:r}}});var I4=U(C4=>{"use strict";Object.defineProperty(C4,"__esModule",{value:!0});function Ait(t,e,r){let o={};for(let a of r)o[a]=(...n)=>{e.emit(a,...n)},t.on(a,o[a]);return()=>{for(let a of r)t.off(a,o[a])}}C4.default=Ait});var ile=U(w4=>{"use strict";Object.defineProperty(w4,"__esModule",{value:!0});w4.default=()=>{let t=[];return{once(e,r,o){e.once(r,o),t.push({origin:e,event:r,fn:o})},unhandleAll(){for(let e of t){let{origin:r,event:o,fn:a}=e;r.removeListener(o,a)}t.length=0}}}});var ole=U(l1=>{"use strict";Object.defineProperty(l1,"__esModule",{value:!0});l1.TimeoutError=void 0;var fit=Ie("net"),pit=ile(),sle=Symbol("reentry"),hit=()=>{},ex=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};l1.TimeoutError=ex;l1.default=(t,e,r)=>{if(sle in t)return hit;t[sle]=!0;let o=[],{once:a,unhandleAll:n}=pit.default(),u=(w,v,b)=>{var E;let R=setTimeout(v,w,w,b);(E=R.unref)===null||E===void 0||E.call(R);let L=()=>{clearTimeout(R)};return o.push(L),L},{host:A,hostname:p}=r,h=(w,v)=>{t.destroy(new ex(w,v))},C=()=>{for(let w of o)w();n()};if(t.once("error",w=>{if(C(),t.listenerCount("error")===0)throw w}),t.once("close",C),a(t,"response",w=>{a(w,"end",C)}),typeof e.request<"u"&&u(e.request,h,"request"),typeof e.socket<"u"){let w=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,w),o.push(()=>{t.removeListener("timeout",w)})}return a(t,"socket",w=>{var v;let{socketPath:b}=t;if(w.connecting){let E=Boolean(b??fit.isIP((v=p??A)!==null&&v!==void 0?v:"")!==0);if(typeof e.lookup<"u"&&!E&&typeof w.address().address>"u"){let R=u(e.lookup,h,"lookup");a(w,"lookup",R)}if(typeof e.connect<"u"){let R=()=>u(e.connect,h,"connect");E?a(w,"connect",R()):a(w,"lookup",L=>{L===null&&a(w,"connect",R())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(w,"connect",()=>{let R=u(e.secureConnect,h,"secureConnect");a(w,"secureConnect",R)})}if(typeof e.send<"u"){let E=()=>u(e.send,h,"send");w.connecting?a(w,"connect",()=>{a(t,"upload-complete",E())}):a(t,"upload-complete",E())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let w=u(e.response,h,"response");a(t,"response",w)}),C}});var lle=U(B4=>{"use strict";Object.defineProperty(B4,"__esModule",{value:!0});var ale=Nf();B4.default=t=>{t=t;let e={protocol:t.protocol,hostname:ale.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return ale.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var cle=U(v4=>{"use strict";Object.defineProperty(v4,"__esModule",{value:!0});var git=Ie("url"),dit=["protocol","host","hostname","port","pathname","search"];v4.default=(t,e)=>{var r,o;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(o=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&o!==void 0?o:""}`}let a=new git.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of dit)e[n]&&(a[n]=e[n].toString());return a}});var ule=U(S4=>{"use strict";Object.defineProperty(S4,"__esModule",{value:!0});var D4=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};S4.default=D4});var x4=U(P4=>{"use strict";Object.defineProperty(P4,"__esModule",{value:!0});var mit=async t=>{let e=[],r=0;for await(let o of t)e.push(o),r+=Buffer.byteLength(o);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};P4.default=mit});var fle=U(Qd=>{"use strict";Object.defineProperty(Qd,"__esModule",{value:!0});Qd.dnsLookupIpVersionToFamily=Qd.isDnsLookupIpVersion=void 0;var Ale={auto:0,ipv4:4,ipv6:6};Qd.isDnsLookupIpVersion=t=>t in Ale;Qd.dnsLookupIpVersionToFamily=t=>{if(Qd.isDnsLookupIpVersion(t))return Ale[t];throw new Error("Invalid DNS lookup IP version")}});var b4=U(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});tx.isResponseOk=void 0;tx.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var hle=U(Q4=>{"use strict";Object.defineProperty(Q4,"__esModule",{value:!0});var ple=new Set;Q4.default=t=>{ple.has(t)||(ple.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var gle=U(k4=>{"use strict";Object.defineProperty(k4,"__esModule",{value:!0});var ai=Nf(),yit=(t,e)=>{if(ai.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");ai.assert.any([ai.default.string,ai.default.undefined],t.encoding),ai.assert.any([ai.default.boolean,ai.default.undefined],t.resolveBodyOnly),ai.assert.any([ai.default.boolean,ai.default.undefined],t.methodRewriting),ai.assert.any([ai.default.boolean,ai.default.undefined],t.isStream),ai.assert.any([ai.default.string,ai.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:o=>o.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},ai.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(o=>o.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):ai.default.number(r)&&(t.retry.limit=r),ai.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(ai.default.number))),ai.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:o}=t;if(!ai.default.function_(o.transform))throw new Error("`options.pagination.transform` must be implemented");if(!ai.default.function_(o.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!ai.default.function_(o.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!ai.default.function_(o.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};k4.default=yit});var dle=U(c1=>{"use strict";Object.defineProperty(c1,"__esModule",{value:!0});c1.retryAfterStatusCodes=void 0;c1.retryAfterStatusCodes=new Set([413,429,503]);var Eit=({attemptCount:t,retryOptions:e,error:r,retryAfter:o})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),u=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!u)return 0;if(r.response){if(o)return e.maxRetryAfter===void 0||o>e.maxRetryAfter?0:o;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(t-1)*1e3+A};c1.default=Eit});var f1=U(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.UnsupportedProtocolError=yn.ReadError=yn.TimeoutError=yn.UploadError=yn.CacheError=yn.HTTPError=yn.MaxRedirectsError=yn.RequestError=yn.setNonEnumerableProperties=yn.knownHookEvents=yn.withoutBody=yn.kIsNormalizedAlready=void 0;var mle=Ie("util"),yle=Ie("stream"),Cit=Ie("fs"),a0=Ie("url"),Ele=Ie("http"),F4=Ie("http"),Iit=Ie("https"),wit=Toe(),Bit=Hoe(),Cle=Eae(),vit=Bae(),Dit=Zae(),Sit=zP(),nt=Nf(),Pit=nle(),Ile=y4(),xit=I4(),wle=ole(),bit=lle(),Ble=cle(),Qit=ule(),kit=x4(),vle=fle(),Fit=b4(),l0=hle(),Rit=gle(),Tit=dle(),R4,zs=Symbol("request"),ix=Symbol("response"),DE=Symbol("responseSize"),SE=Symbol("downloadedSize"),PE=Symbol("bodySize"),xE=Symbol("uploadedSize"),rx=Symbol("serverResponsesPiped"),Dle=Symbol("unproxyEvents"),Sle=Symbol("isFromCache"),T4=Symbol("cancelTimeouts"),Ple=Symbol("startedReading"),bE=Symbol("stopReading"),nx=Symbol("triggerRead"),c0=Symbol("body"),u1=Symbol("jobs"),xle=Symbol("originalResponse"),ble=Symbol("retryTimeout");yn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Nit=nt.default.string(process.versions.brotli);yn.withoutBody=new Set(["GET","HEAD"]);yn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Lit(t){for(let e in t){let r=t[e];if(!nt.default.string(r)&&!nt.default.number(r)&&!nt.default.boolean(r)&&!nt.default.null_(r)&&!nt.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function Oit(t){return nt.default.object(t)&&!("statusCode"in t)}var N4=new Qit.default,Mit=async t=>new Promise((e,r)=>{let o=a=>{r(a)};t.pending||e(),t.once("error",o),t.once("ready",()=>{t.off("error",o),e()})}),Uit=new Set([300,301,302,303,304,307,308]),_it=["context","body","json","form"];yn.setNonEnumerableProperties=(t,e)=>{let r={};for(let o of t)if(!!o)for(let a of _it)a in o&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:o[a]});Object.defineProperties(e,r)};var Vi=class extends Error{constructor(e,r,o){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,o instanceof Ax?(Object.defineProperty(this,"request",{enumerable:!1,value:o}),Object.defineProperty(this,"response",{enumerable:!1,value:o[ix]}),Object.defineProperty(this,"options",{enumerable:!1,value:o.options})):Object.defineProperty(this,"options",{enumerable:!1,value:o}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,nt.default.string(r.stack)&&nt.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,u=this.stack.slice(n).split(`
138`).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` 138`).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(`
139`).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(` 139`).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(`
140`)}${A.reverse().join(` 140`)}${A.reverse().join(`
141`)}`}}};yn.RequestError=Vi;var nx=class extends Vi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};yn.MaxRedirectsError=nx;var ix=class extends Vi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};yn.HTTPError=ix;var sx=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};yn.CacheError=sx;var ox=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};yn.UploadError=ox;var ax=class extends Vi{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};yn.TimeoutError=ax;var u1=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};yn.ReadError=u1;var lx=class extends Vi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};yn.UnsupportedProtocolError=lx;var Oit=["socket","connect","continue","information","upgrade","timeout"],cx=class extends dle.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[SC]=0,this[xC]=0,this.requestInitialized=!1,this[ex]=new Set,this.redirects=[],this[bC]=!1,this[tx]=!1,this[c1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof Q4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),yn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){nt.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof dit.ReadStream&&await Tit(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[zs])===null||h===void 0||h.destroy();return}for(let w of this[c1])w();this[c1].length=0,this.requestInitialized=!0}catch(E){if(E instanceof Vi){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(nt.default.object(e)&&!nt.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),nt.default.urlInstance(r.url)&&(r.url=new s0.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),nt.assert.any([nt.default.string,nt.default.undefined],r.method),nt.assert.any([nt.default.object,nt.default.undefined],r.headers),nt.assert.any([nt.default.string,nt.default.urlInstance,nt.default.undefined],r.prefixUrl),nt.assert.any([nt.default.object,nt.default.undefined],r.cookieJar),nt.assert.any([nt.default.object,nt.default.string,nt.default.undefined],r.searchParams),nt.assert.any([nt.default.object,nt.default.string,nt.default.undefined],r.cache),nt.assert.any([nt.default.object,nt.default.number,nt.default.undefined],r.timeout),nt.assert.any([nt.default.object,nt.default.undefined],r.context),nt.assert.any([nt.default.object,nt.default.undefined],r.hooks),nt.assert.any([nt.default.boolean,nt.default.undefined],r.decompress),nt.assert.any([nt.default.boolean,nt.default.undefined],r.ignoreInvalidCookies),nt.assert.any([nt.default.boolean,nt.default.undefined],r.followRedirect),nt.assert.any([nt.default.number,nt.default.undefined],r.maxRedirects),nt.assert.any([nt.default.boolean,nt.default.undefined],r.throwHttpErrors),nt.assert.any([nt.default.boolean,nt.default.undefined],r.http2),nt.assert.any([nt.default.boolean,nt.default.undefined],r.allowGetBody),nt.assert.any([nt.default.string,nt.default.undefined],r.localAddress),nt.assert.any([wle.isDnsLookupIpVersion,nt.default.undefined],r.dnsLookupIpVersion),nt.assert.any([nt.default.object,nt.default.undefined],r.https),nt.assert.any([nt.default.boolean,nt.default.undefined],r.rejectUnauthorized),r.https&&(nt.assert.any([nt.default.boolean,nt.default.undefined],r.https.rejectUnauthorized),nt.assert.any([nt.default.function_,nt.default.undefined],r.https.checkServerIdentity),nt.assert.any([nt.default.string,nt.default.object,nt.default.array,nt.default.undefined],r.https.certificateAuthority),nt.assert.any([nt.default.string,nt.default.object,nt.default.array,nt.default.undefined],r.https.key),nt.assert.any([nt.default.string,nt.default.object,nt.default.array,nt.default.undefined],r.https.certificate),nt.assert.any([nt.default.string,nt.default.undefined],r.https.passphrase),nt.assert.any([nt.default.string,nt.default.buffer,nt.default.array,nt.default.undefined],r.https.pfx)),nt.assert.any([nt.default.object,nt.default.undefined],r.cacheOptions),nt.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(o==null?void 0:o.headers)?r.headers={...r.headers}:r.headers=wit({...o==null?void 0:o.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(o==null?void 0:o.searchParams)){let b;if(nt.default.string(r.searchParams)||r.searchParams instanceof s0.URLSearchParams)b=new s0.URLSearchParams(r.searchParams);else{Fit(r.searchParams),b=new s0.URLSearchParams;for(let C in r.searchParams){let R=r.searchParams[C];R===null?b.append(C,""):R!==void 0&&b.append(C,R)}}(a=o==null?void 0:o.searchParams)===null||a===void 0||a.forEach((C,R)=>{b.has(R)||b.append(R,C)}),r.searchParams=b}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(u=r.password)!==null&&u!==void 0?u:"",nt.default.undefined(r.prefixUrl)?r.prefixUrl=(A=o==null?void 0:o.prefixUrl)!==null&&A!==void 0?A:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),nt.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=Ile.default(r.prefixUrl+r.url,r)}else(nt.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=Ile.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:b}=r;Object.defineProperty(r,"prefixUrl",{set:R=>{let L=r.url;if(!L.href.startsWith(R))throw new Error(`Cannot change \`prefixUrl\` from ${b} to ${R}: ${L.href}`);r.url=new s0.URL(R+L.href.slice(b.length)),b=R},get:()=>b});let{protocol:C}=r.url;if(C==="unix:"&&(C="http:",r.url=new s0.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),C!=="http:"&&C!=="https:")throw new lx(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:b,getCookieString:C}=E;nt.assert.function_(b),nt.assert.function_(C),b.length===4&&C.length===0&&(b=gle.promisify(b.bind(r.cookieJar)),C=gle.promisify(C.bind(r.cookieJar)),r.cookieJar={setCookie:b,getCookieString:C})}let{cache:w}=r;if(w&&(R4.has(w)||R4.set(w,new yle((b,C)=>{let R=b[zs](b,C);return nt.default.promise(R)&&(R.once=(L,_)=>{if(L==="error")R.catch(_);else if(L==="abort")(async()=>{try{(await R).once("abort",_)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${L}`);return R}),R},w))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)k4||(k4=new Cit.default),r.dnsCache=k4;else if(!nt.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${nt.default(r.dnsCache)}`);nt.default.number(r.timeout)?r.timeout={request:r.timeout}:o&&r.timeout!==o.timeout?r.timeout={...o.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let v=r.hooks===(o==null?void 0:o.hooks);r.hooks={...r.hooks};for(let b of yn.knownHookEvents)if(b in r.hooks)if(nt.default.array(r.hooks[b]))r.hooks[b]=[...r.hooks[b]];else throw new TypeError(`Parameter \`${b}\` must be an Array, got ${nt.default(r.hooks[b])}`);else r.hooks[b]=[];if(o&&!v)for(let b of yn.knownHookEvents)o.hooks[b].length>0&&(r.hooks[b]=[...o.hooks[b],...r.hooks[b]]);if("family"in r&&o0.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),o!=null&&o.https&&(r.https={...o.https,...r.https}),"rejectUnauthorized"in r&&o0.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&o0.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&o0.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&o0.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&o0.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&o0.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&o0.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let b in r.agent)if(b!=="http"&&b!=="https"&&b!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${b}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,yn.setNonEnumerableProperties([o,h],r),bit.default(r,o)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,o=!nt.default.undefined(e.form),a=!nt.default.undefined(e.json),n=!nt.default.undefined(e.body),u=o||a||n,A=yn.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=A,u){if(A)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,o,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof dle.Readable)&&!nt.default.string(e.body)&&!nt.default.buffer(e.body)&&!Cle.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(o&&!nt.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!nt.default.string(r["content-type"]);n?(Cle.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[a0]=e.body):o?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[a0]=new s0.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[a0]=e.stringifyJson(e.json));let h=await Bit.default(this[a0],e.headers);nt.default.undefined(r["content-length"])&&nt.default.undefined(r["transfer-encoding"])&&!A&&!nt.default.undefined(h)&&(r["content-length"]=String(h))}}else A?this._lockWrite():this._unlockWrite();this[PC]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:o}=r;this[Sle]=e,r.decompress&&(e=Eit(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:mle.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[vle]=n.isFromCache,this[DC]=Number(e.headers["content-length"])||void 0,this[rx]=e,e.once("end",()=>{this[DC]=this[SC],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",A=>{e.destroy(),this._beforeError(new u1(A,this))}),e.once("aborted",()=>{this._beforeError(new u1({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let u=e.headers["set-cookie"];if(nt.default.object(r.cookieJar)&&u){let A=u.map(async p=>r.cookieJar.setCookie(p,o.toString()));r.ignoreInvalidCookies&&(A=A.map(async p=>p.catch(()=>{})));try{await Promise.all(A)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&Nit.has(a)){if(e.resume(),this[zs]&&(this[F4](),delete this[zs],this[Ble]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[a0]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new nx(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new s0.URL(p,o),E=h.toString();decodeURI(E),h.hostname!==o.hostname||h.port!==o.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let w of r.hooks.beforeRedirect)await w(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!xit.isResponseOk(n)){this._beforeError(new ix(n));return}e.on("readable",()=>{this[tx]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let A of this[ex])if(!A.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&A.setHeader(p,E)}A.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:o,url:a}=r;yit.default(e),this[F4]=Ele.default(e,o,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof Ele.TimeoutError?new ax(p,this.timings,this):new Vi(p.message,p,this),this._beforeError(p)}),this[Ble]=vit.default(e,this,Oit),this[zs]=e,this.emit("uploadProgress",this.uploadProgress);let u=this[a0],A=this.redirects.length===0?this:e;nt.default.nodeStream(u)?(u.pipe(A),u.once("error",p=>{this._beforeError(new ox(p,this))})):(this._unlockWrite(),nt.default.undefined(u)?(this._cannotHaveBody||this._noPipe)&&(A.end(),this._lockWrite()):(this._writeRequest(u,void 0,()=>{}),A.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((o,a)=>{Object.assign(r,Dit.default(e)),delete r.url;let n,u=R4.get(r.cache)(r,async A=>{A._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",A),o(A)});r.url=e,u.once("error",a),u.once("request",async A=>{n=A,o(n)})})}async _makeRequest(){var e,r,o,a,n;let{options:u}=this,{headers:A}=u;for(let _ in A)if(nt.default.undefined(A[_]))delete A[_];else if(nt.default.null_(A[_]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${_}\` header`);if(u.decompress&&nt.default.undefined(A["accept-encoding"])&&(A["accept-encoding"]=kit?"gzip, deflate, br":"gzip, deflate"),u.cookieJar){let _=await u.cookieJar.getCookieString(u.url.toString());nt.default.nonEmptyString(_)&&(u.headers.cookie=_)}for(let _ of u.hooks.beforeRequest){let V=await _(u);if(!nt.default.undefined(V)){u.request=()=>V;break}}u.body&&this[a0]!==u.body&&(this[a0]=u.body);let{agent:p,request:h,timeout:E,url:w}=u;if(u.dnsCache&&!("lookup"in u)&&(u.lookup=u.dnsCache.lookup),w.hostname==="unix"){let _=/(?<socketPath>.+?):(?<path>.+)/.exec(`${w.pathname}${w.search}`);if(_!=null&&_.groups){let{socketPath:V,path:re}=_.groups;Object.assign(u,{socketPath:V,path:re,host:""})}}let v=w.protocol==="https:",b;u.http2?b=Iit.auto:b=v?mit.request:mle.request;let C=(e=u.request)!==null&&e!==void 0?e:b,R=u.cache?this._createCacheableRequest:C;p&&!u.http2&&(u.agent=p[v?"https":"http"]),u[zs]=C,delete u.request,delete u.timeout;let L=u;if(L.shared=(r=u.cacheOptions)===null||r===void 0?void 0:r.shared,L.cacheHeuristic=(o=u.cacheOptions)===null||o===void 0?void 0:o.cacheHeuristic,L.immutableMinTimeToLive=(a=u.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,L.ignoreCargoCult=(n=u.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,u.dnsLookupIpVersion!==void 0)try{L.family=wle.dnsLookupIpVersionToFamily(u.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}u.https&&("rejectUnauthorized"in u.https&&(L.rejectUnauthorized=u.https.rejectUnauthorized),u.https.checkServerIdentity&&(L.checkServerIdentity=u.https.checkServerIdentity),u.https.certificateAuthority&&(L.ca=u.https.certificateAuthority),u.https.certificate&&(L.cert=u.https.certificate),u.https.key&&(L.key=u.https.key),u.https.passphrase&&(L.passphrase=u.https.passphrase),u.https.pfx&&(L.pfx=u.https.pfx));try{let _=await R(w,L);nt.default.undefined(_)&&(_=b(w,L)),u.request=h,u.timeout=E,u.agent=p,u.https&&("rejectUnauthorized"in u.https&&delete L.rejectUnauthorized,u.https.checkServerIdentity&&delete L.checkServerIdentity,u.https.certificateAuthority&&delete L.ca,u.https.certificate&&delete L.cert,u.https.key&&delete L.key,u.https.passphrase&&delete L.passphrase,u.https.pfx&&delete L.pfx),Rit(_)?this._onRequest(_):this.writable?(this.once("finish",()=>{this._onResponse(_)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(_)}catch(_){throw _ instanceof yle.CacheError?new sx(_,this):new Vi(_.message,_,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new Vi(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[bC])return;let{options:r}=this,o=this.retryCount+1;this[bC]=!0,e instanceof Vi||(e=new Vi(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await Pit.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let u;try{let A;n&&"retry-after"in n.headers&&(A=Number(n.headers["retry-after"]),Number.isNaN(A)?(A=Date.parse(n.headers["retry-after"])-Date.now(),A<=0&&(A=1)):A*=1e3),u=await r.retry.calculateDelay({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:Qit.default({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:0})})}catch(A){this._error(new Vi(A.message,A,this));return}if(u){let A=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,o)}catch(p){this._error(new Vi(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",o,e))};this[Ple]=setTimeout(A,u);return}}this._error(a)})()}_read(){this[tx]=!0;let e=this[rx];if(e&&!this[bC]){e.readableLength&&(this[tx]=!1);let r;for(;(r=e.read())!==null;){this[SC]+=r.length,this[Dle]=!0;let o=this.downloadProgress;o.percent<1&&this.emit("downloadProgress",o),this.push(r)}}}_write(e,r,o){let a=()=>{this._writeRequest(e,r,o)};this.requestInitialized?a():this[c1].push(a)}_writeRequest(e,r,o){this[zs].destroyed||(this._progressCallbacks.push(()=>{this[xC]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[zs].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),o(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(zs in this)){e();return}if(this[zs].destroyed){e();return}this[zs].end(o=>{o||(this[PC]=this[xC],this.emit("uploadProgress",this.uploadProgress),this[zs].emit("upload-complete")),e(o)})};this.requestInitialized?r():this[c1].push(r)}_destroy(e,r){var o;this[bC]=!0,clearTimeout(this[Ple]),zs in this&&(this[F4](),!((o=this[rx])===null||o===void 0)&&o.complete||this[zs].destroy()),e!==null&&!nt.default.undefined(e)&&!(e instanceof Vi)&&(e=new Vi(e.message,e,this)),r(e)}get _isAboutToError(){return this[bC]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,o;return((r=(e=this[zs])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((o=this[Sle])===null||o===void 0)&&o.complete)}get socket(){var e,r;return(r=(e=this[zs])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[DC]?e=this[SC]/this[DC]:this[DC]===this[SC]?e=1:e=0,{percent:e,transferred:this[SC],total:this[DC]}}get uploadProgress(){let e;return this[PC]?e=this[xC]/this[PC]:this[PC]===this[xC]?e=1:e=0,{percent:e,transferred:this[xC],total:this[PC]}}get timings(){var e;return(e=this[zs])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[vle]}pipe(e,r){if(this[Dle])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof Q4.ServerResponse&&this[ex].add(e),super.pipe(e,r)}unpipe(e){return e instanceof Q4.ServerResponse&&this[ex].delete(e),super.unpipe(e),this}};yn.default=cx});var f1=U(Kc=>{"use strict";var Mit=Kc&&Kc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Uit=Kc&&Kc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Mit(e,t,r)};Object.defineProperty(Kc,"__esModule",{value:!0});Kc.CancelError=Kc.ParseError=void 0;var xle=A1(),T4=class extends xle.RequestError{constructor(e,r){let{options:o}=r.request;super(`${e.message} in "${o.url.toString()}"`,e,r.request),this.name="ParseError"}};Kc.ParseError=T4;var N4=class extends xle.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};Kc.CancelError=N4;Uit(A1(),Kc)});var Qle=U(L4=>{"use strict";Object.defineProperty(L4,"__esModule",{value:!0});var ble=f1(),_it=(t,e,r,o)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(o);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new ble.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new ble.ParseError(n,t)}};L4.default=_it});var O4=U(l0=>{"use strict";var Hit=l0&&l0.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),qit=l0&&l0.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Hit(e,t,r)};Object.defineProperty(l0,"__esModule",{value:!0});var jit=Ie("events"),Git=Tf(),Wit=Qoe(),ux=f1(),kle=Qle(),Fle=A1(),Yit=C4(),Kit=S4(),Rle=P4(),Vit=["request","response","redirect","uploadProgress","downloadProgress"];function Tle(t){let e,r,o=new jit.EventEmitter,a=new Wit((u,A,p)=>{let h=E=>{let w=new Fle.default(void 0,t);w.retryCount=E,w._noPipe=!0,p(()=>w.destroy()),p.shouldReject=!1,p(()=>A(new ux.CancelError(w))),e=w,w.once("response",async C=>{var R;if(C.retryCount=E,C.request.aborted)return;let L;try{L=await Kit.default(w),C.rawBody=L}catch{return}if(w._isAboutToError)return;let _=((R=C.headers["content-encoding"])!==null&&R!==void 0?R:"").toLowerCase(),V=["gzip","deflate","br"].includes(_),{options:re}=w;if(V&&!re.decompress)C.body=L;else try{C.body=kle.default(C,re.responseType,re.parseJson,re.encoding)}catch(oe){if(C.body=L.toString(),Rle.isResponseOk(C)){w._beforeError(oe);return}}try{for(let[oe,pe]of re.hooks.afterResponse.entries())C=await pe(C,async he=>{let ve=Fle.default.normalizeArguments(void 0,{...he,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},re);ve.hooks.afterResponse=ve.hooks.afterResponse.slice(0,oe);for(let le of ve.hooks.beforeRetry)await le(ve);let ge=Tle(ve);return p(()=>{ge.catch(()=>{}),ge.cancel()}),ge})}catch(oe){w._beforeError(new ux.RequestError(oe.message,oe,w));return}if(!Rle.isResponseOk(C)){w._beforeError(new ux.HTTPError(C));return}r=C,u(w.options.resolveBodyOnly?C.body:C)});let v=C=>{if(a.isCanceled)return;let{options:R}=w;if(C instanceof ux.HTTPError&&!R.throwHttpErrors){let{response:L}=C;u(w.options.resolveBodyOnly?L.body:L);return}A(C)};w.once("error",v);let b=w.options.body;w.once("retry",(C,R)=>{var L,_;if(b===((L=R.request)===null||L===void 0?void 0:L.options.body)&&Git.default.nodeStream((_=R.request)===null||_===void 0?void 0:_.options.body)){v(R);return}h(C)}),Yit.default(w,o,Vit)};h(0)});a.on=(u,A)=>(o.on(u,A),a);let n=u=>{let A=(async()=>{await a;let{options:p}=r.request;return kle.default(r,u,p.parseJson,p.encoding)})();return Object.defineProperties(A,Object.getOwnPropertyDescriptors(a)),A};return a.json=()=>{let{headers:u}=e.options;return!e.writableFinished&&u.accept===void 0&&(u.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}l0.default=Tle;qit(f1(),l0)});var Nle=U(M4=>{"use strict";Object.defineProperty(M4,"__esModule",{value:!0});var Jit=f1();function zit(t,...e){let r=(async()=>{if(t instanceof Jit.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),o=()=>r;return r.json=o,r.text=o,r.buffer=o,r.on=o,r}M4.default=zit});var Mle=U(U4=>{"use strict";Object.defineProperty(U4,"__esModule",{value:!0});var Lle=Tf();function Ole(t){for(let e of Object.values(t))(Lle.default.plainObject(e)||Lle.default.array(e))&&Ole(e);return Object.freeze(t)}U4.default=Ole});var _le=U(Ule=>{"use strict";Object.defineProperty(Ule,"__esModule",{value:!0})});var _4=U(ec=>{"use strict";var Xit=ec&&ec.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Zit=ec&&ec.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Xit(e,t,r)};Object.defineProperty(ec,"__esModule",{value:!0});ec.defaultHandler=void 0;var Hle=Tf(),$l=O4(),$it=Nle(),fx=A1(),est=Mle(),tst={RequestError:$l.RequestError,CacheError:$l.CacheError,ReadError:$l.ReadError,HTTPError:$l.HTTPError,MaxRedirectsError:$l.MaxRedirectsError,TimeoutError:$l.TimeoutError,ParseError:$l.ParseError,CancelError:$l.CancelError,UnsupportedProtocolError:$l.UnsupportedProtocolError,UploadError:$l.UploadError},rst=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:Ax}=fx.default,qle=(...t)=>{let e;for(let r of t)e=Ax(void 0,r,e);return e},nst=t=>t.isStream?new fx.default(void 0,t):$l.default(t),ist=t=>"defaults"in t&&"options"in t.defaults,sst=["get","post","put","patch","head","delete"];ec.defaultHandler=(t,e)=>e(t);var jle=(t,e)=>{if(t)for(let r of t)r(e)},Gle=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(o=>(a,n)=>{let u,A=o(a,p=>(u=n(p),u));if(A!==u&&!a.isStream&&u){let p=A,{then:h,catch:E,finally:w}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(u)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)),p.then=h,p.catch=E,p.finally=w}return A});let e=(o,a={},n)=>{var u,A;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?nst:h);if(Hle.default.plainObject(o)){let E={...o,...a};fx.setNonEnumerableProperties([o,a],E),a=E,o=void 0}try{let E;try{jle(t.options.hooks.init,a),jle((u=a.hooks)===null||u===void 0?void 0:u.init,a)}catch(v){E=v}let w=Ax(o,a,n??t.options);if(w[fx.kIsNormalizedAlready]=!0,E)throw new $l.RequestError(E.message,E,w);return h(w)}catch(E){if(a.isStream)throw E;return $it.default(E,t.options.hooks.beforeError,(A=a.hooks)===null||A===void 0?void 0:A.beforeError)}};e.extend=(...o)=>{let a=[t.options],n=[...t._rawHandlers],u;for(let A of o)ist(A)?(a.push(A.defaults.options),n.push(...A.defaults._rawHandlers),u=A.defaults.mutableDefaults):(a.push(A),"handlers"in A&&n.push(...A.handlers),u=A.mutableDefaults);return n=n.filter(A=>A!==ec.defaultHandler),n.length===0&&n.push(ec.defaultHandler),Gle({options:qle(...a),handlers:n,mutableDefaults:Boolean(u)})};let r=async function*(o,a){let n=Ax(o,a,t.options);n.resolveBodyOnly=!1;let u=n.pagination;if(!Hle.default.object(u))throw new TypeError("`options.pagination` must be implemented");let A=[],{countLimit:p}=u,h=0;for(;h<u.requestLimit;){h!==0&&await rst(u.backoff);let E=await e(void 0,void 0,n),w=await u.transform(E),v=[];for(let C of w)if(u.filter(C,A,v)&&(!u.shouldContinue(C,A,v)||(yield C,u.stackAllItems&&A.push(C),v.push(C),--p<=0)))return;let b=u.paginate(E,A,v);if(b===!1)return;b===E.request.options?n=E.request.options:b!==void 0&&(n=Ax(void 0,b,n)),h++}};e.paginate=r,e.paginate.all=async(o,a)=>{let n=[];for await(let u of r(o,a))n.push(u);return n},e.paginate.each=r,e.stream=(o,a)=>e(o,{...a,isStream:!0});for(let o of sst)e[o]=(a,n)=>e(a,{...n,method:o}),e.stream[o]=(a,n)=>e(a,{...n,method:o,isStream:!0});return Object.assign(e,tst),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:est.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=qle,e};ec.default=Gle;Zit(_le(),ec)});var Kle=U((Nf,px)=>{"use strict";var ost=Nf&&Nf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Wle=Nf&&Nf.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&ost(e,t,r)};Object.defineProperty(Nf,"__esModule",{value:!0});var ast=Ie("url"),Yle=_4(),lst={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let o of e){let a=o.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new ast.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[Yle.defaultHandler],mutableDefaults:!1},H4=Yle.default(lst);Nf.default=H4;px.exports=H4;px.exports.default=H4;px.exports.__esModule=!0;Wle(_4(),Nf);Wle(O4(),Nf)});var ln={};Yt(ln,{Method:()=>ece,del:()=>pst,get:()=>W4,getNetworkSettings:()=>$le,post:()=>Y4,put:()=>fst,request:()=>p1});function zle(t){let e=new hx.URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),e.username&&e.password&&(r.proxyAuth=`${e.username}:${e.password}`),{proxy:r}}async function q4(t){return Df(Jle,t,()=>ae.readFilePromise(t).then(e=>(Jle.set(t,e),e)))}function Ast({statusCode:t,statusMessage:e},r){let o=Kt(r,t,Bt.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Xy(r,`${o}${e?` (${e})`:""}`,a)}async function gx(t,{configuration:e,customErrorMessage:r}){var o;try{return await t}catch(a){if(a.name!=="HTTPError")throw a;let n=(r==null?void 0:r(a,e))??((o=a.response.body)==null?void 0:o.error);n==null&&(a.message.startsWith("Response code")?n="The remote server failed to provide the requested resource":n=a.message),a.code==="ETIMEDOUT"&&a.event==="socket"&&(n+=`(can be increased via ${Kt(e,"httpTimeout",Bt.SETTING)})`);let u=new Vt(35,n,A=>{a.response&&A.reportError(35,` ${$u(e,{label:"Response Code",value:Gc(Bt.NO_HINT,Ast(a.response,e))})}`),a.request&&(A.reportError(35,` ${$u(e,{label:"Request Method",value:Gc(Bt.NO_HINT,a.request.options.method)})}`),A.reportError(35,` ${$u(e,{label:"Request URL",value:Gc(Bt.URL,a.request.requestUrl)})}`)),a.request.redirects.length>0&&A.reportError(35,` ${$u(e,{label:"Request Redirects",value:Gc(Bt.NO_HINT,wL(e,a.request.redirects,Bt.URL))})}`),a.request.retryCount===a.request.options.retry.limit&&A.reportError(35,` ${$u(e,{label:"Request Retry Count",value:Gc(Bt.NO_HINT,`${Kt(e,a.request.retryCount,Bt.NUMBER)} (can be increased via ${Kt(e,"httpRetry",Bt.SETTING)})`)})}`)});throw u.originalError=a,u}}function $le(t,e){let r=[...e.configuration.get("networkSettings")].sort(([u],[A])=>A.length-u.length),o={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(o),n=typeof t=="string"?new hx.URL(t):t;for(let[u,A]of r)if(G4.default.isMatch(n.hostname,u))for(let p of a){let h=A.get(p);h!==null&&typeof o[p]>"u"&&(o[p]=h)}for(let u of a)typeof o[u]>"u"&&(o[u]=e.configuration.get(u));return o}async function p1(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=async()=>await hst(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u});return await(await r.reduceHook(h=>h.wrapNetworkRequest,A,{target:t,body:e,configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u}))()}async function W4(t,{configuration:e,jsonResponse:r,customErrorMessage:o,...a}){let n=Df(Vle,t,()=>gx(p1(t,null,{configuration:e,...a}),{configuration:e,customErrorMessage:o}).then(u=>(Vle.set(t,u.body),u.body)));return Buffer.isBuffer(n)===!1&&(n=await n),r?JSON.parse(n.toString()):n}async function fst(t,e,{customErrorMessage:r,...o}){return(await gx(p1(t,e,{...o,method:"PUT"}),{customErrorMessage:r,configuration:o.configuration})).body}async function Y4(t,e,{customErrorMessage:r,...o}){return(await gx(p1(t,e,{...o,method:"POST"}),{customErrorMessage:r,configuration:o.configuration})).body}async function pst(t,{customErrorMessage:e,...r}){return(await gx(p1(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function hst(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=typeof t=="string"?new hx.URL(t):t,p=$le(A,{configuration:r});if(p.enableNetwork===!1)throw new Vt(80,`Request to '${A.href}' has been blocked because of your configuration settings`);if(A.protocol==="http:"&&!G4.default.isMatch(A.hostname,r.get("unsafeHttpWhitelist")))throw new Vt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${A.hostname})`);let E={agent:{http:p.httpProxy?j4.default.httpOverHttp(zle(p.httpProxy)):cst,https:p.httpsProxy?j4.default.httpsOverHttp(zle(p.httpsProxy)):ust},headers:o,method:u};E.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?E.body=e:E.json=e);let w=r.get("httpTimeout"),v=r.get("httpRetry"),b=r.get("enableStrictSsl"),C=p.httpsCaFilePath,R=p.httpsCertFilePath,L=p.httpsKeyFilePath,{default:_}=await Promise.resolve().then(()=>tt(Kle())),V=C?await q4(C):void 0,re=R?await q4(R):void 0,oe=L?await q4(L):void 0,pe=_.extend({timeout:{socket:w},retry:v,https:{rejectUnauthorized:b,certificateAuthority:V,certificate:re,key:oe},...E});return r.getLimit("networkConcurrency")(()=>pe(A))}var Xle,Zle,G4,j4,hx,Vle,Jle,cst,ust,ece,dx=dt(()=>{bt();Xle=Ie("https"),Zle=Ie("http"),G4=tt(Jo()),j4=tt(Doe()),hx=Ie("url");Xl();Jl();Kl();Vle=new Map,Jle=new Map,cst=new Zle.Agent({keepAlive:!0}),ust=new Xle.Agent({keepAlive:!0});ece=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(ece||{})});var As={};Yt(As,{availableParallelism:()=>J4,builtinModules:()=>K4,getArchitecture:()=>h1,getArchitectureName:()=>mst,getArchitectureSet:()=>V4,getCaller:()=>Ist,openUrl:()=>gst});function K4(){return new Set(ice.default.builtinModules||Object.keys(process.binding("natives")))}function dst(){var o;if(process.platform==="win32")return null;let e=(((o=process.report)==null?void 0:o.getReport())??{}).sharedObjects??[],r=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return Ow(e,a=>{let n=a.match(r);if(!n)return Ow.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function h1(){return rce=rce??{os:process.platform,cpu:process.arch,libc:dst()}}function mst(t=h1()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function V4(){let t=h1();return nce=nce??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function Est(t){let e=yst.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,o=e[2]&&e[2].indexOf("eval")===0,a=Cst.exec(e[2]);return o&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"<unknown>",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function Ist(){let e=new Error().stack.split(` 141`)}`}}};yn.RequestError=Vi;var sx=class extends Vi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};yn.MaxRedirectsError=sx;var ox=class extends Vi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};yn.HTTPError=ox;var ax=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};yn.CacheError=ax;var lx=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};yn.UploadError=lx;var cx=class extends Vi{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};yn.TimeoutError=cx;var A1=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};yn.ReadError=A1;var ux=class extends Vi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};yn.UnsupportedProtocolError=ux;var Hit=["socket","connect","continue","information","upgrade","timeout"],Ax=class extends yle.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[SE]=0,this[xE]=0,this.requestInitialized=!1,this[rx]=new Set,this.redirects=[],this[bE]=!1,this[nx]=!1,this[u1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof F4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),yn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){nt.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Cit.ReadStream&&await Mit(this.options.body);let{url:C}=this.options;if(!C)throw new TypeError("Missing `url` property");if(this.requestUrl=C.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[zs])===null||h===void 0||h.destroy();return}for(let w of this[u1])w();this[u1].length=0,this.requestInitialized=!0}catch(C){if(C instanceof Vi){this._beforeError(C);return}this.destroyed||this.destroy(C)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(nt.default.object(e)&&!nt.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),nt.default.urlInstance(r.url)&&(r.url=new a0.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),nt.assert.any([nt.default.string,nt.default.undefined],r.method),nt.assert.any([nt.default.object,nt.default.undefined],r.headers),nt.assert.any([nt.default.string,nt.default.urlInstance,nt.default.undefined],r.prefixUrl),nt.assert.any([nt.default.object,nt.default.undefined],r.cookieJar),nt.assert.any([nt.default.object,nt.default.string,nt.default.undefined],r.searchParams),nt.assert.any([nt.default.object,nt.default.string,nt.default.undefined],r.cache),nt.assert.any([nt.default.object,nt.default.number,nt.default.undefined],r.timeout),nt.assert.any([nt.default.object,nt.default.undefined],r.context),nt.assert.any([nt.default.object,nt.default.undefined],r.hooks),nt.assert.any([nt.default.boolean,nt.default.undefined],r.decompress),nt.assert.any([nt.default.boolean,nt.default.undefined],r.ignoreInvalidCookies),nt.assert.any([nt.default.boolean,nt.default.undefined],r.followRedirect),nt.assert.any([nt.default.number,nt.default.undefined],r.maxRedirects),nt.assert.any([nt.default.boolean,nt.default.undefined],r.throwHttpErrors),nt.assert.any([nt.default.boolean,nt.default.undefined],r.http2),nt.assert.any([nt.default.boolean,nt.default.undefined],r.allowGetBody),nt.assert.any([nt.default.string,nt.default.undefined],r.localAddress),nt.assert.any([vle.isDnsLookupIpVersion,nt.default.undefined],r.dnsLookupIpVersion),nt.assert.any([nt.default.object,nt.default.undefined],r.https),nt.assert.any([nt.default.boolean,nt.default.undefined],r.rejectUnauthorized),r.https&&(nt.assert.any([nt.default.boolean,nt.default.undefined],r.https.rejectUnauthorized),nt.assert.any([nt.default.function_,nt.default.undefined],r.https.checkServerIdentity),nt.assert.any([nt.default.string,nt.default.object,nt.default.array,nt.default.undefined],r.https.certificateAuthority),nt.assert.any([nt.default.string,nt.default.object,nt.default.array,nt.default.undefined],r.https.key),nt.assert.any([nt.default.string,nt.default.object,nt.default.array,nt.default.undefined],r.https.certificate),nt.assert.any([nt.default.string,nt.default.undefined],r.https.passphrase),nt.assert.any([nt.default.string,nt.default.buffer,nt.default.array,nt.default.undefined],r.https.pfx)),nt.assert.any([nt.default.object,nt.default.undefined],r.cacheOptions),nt.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(o==null?void 0:o.headers)?r.headers={...r.headers}:r.headers=Sit({...o==null?void 0:o.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(o==null?void 0:o.searchParams)){let b;if(nt.default.string(r.searchParams)||r.searchParams instanceof a0.URLSearchParams)b=new a0.URLSearchParams(r.searchParams);else{Lit(r.searchParams),b=new a0.URLSearchParams;for(let E in r.searchParams){let R=r.searchParams[E];R===null?b.append(E,""):R!==void 0&&b.append(E,R)}}(a=o==null?void 0:o.searchParams)===null||a===void 0||a.forEach((E,R)=>{b.has(R)||b.append(R,E)}),r.searchParams=b}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(u=r.password)!==null&&u!==void 0?u:"",nt.default.undefined(r.prefixUrl)?r.prefixUrl=(A=o==null?void 0:o.prefixUrl)!==null&&A!==void 0?A:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),nt.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=Ble.default(r.prefixUrl+r.url,r)}else(nt.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=Ble.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:b}=r;Object.defineProperty(r,"prefixUrl",{set:R=>{let L=r.url;if(!L.href.startsWith(R))throw new Error(`Cannot change \`prefixUrl\` from ${b} to ${R}: ${L.href}`);r.url=new a0.URL(R+L.href.slice(b.length)),b=R},get:()=>b});let{protocol:E}=r.url;if(E==="unix:"&&(E="http:",r.url=new a0.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),E!=="http:"&&E!=="https:")throw new ux(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:C}=r;if(C){let{setCookie:b,getCookieString:E}=C;nt.assert.function_(b),nt.assert.function_(E),b.length===4&&E.length===0&&(b=mle.promisify(b.bind(r.cookieJar)),E=mle.promisify(E.bind(r.cookieJar)),r.cookieJar={setCookie:b,getCookieString:E})}let{cache:w}=r;if(w&&(N4.has(w)||N4.set(w,new Cle((b,E)=>{let R=b[zs](b,E);return nt.default.promise(R)&&(R.once=(L,_)=>{if(L==="error")R.catch(_);else if(L==="abort")(async()=>{try{(await R).once("abort",_)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${L}`);return R}),R},w))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)R4||(R4=new Bit.default),r.dnsCache=R4;else if(!nt.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${nt.default(r.dnsCache)}`);nt.default.number(r.timeout)?r.timeout={request:r.timeout}:o&&r.timeout!==o.timeout?r.timeout={...o.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let v=r.hooks===(o==null?void 0:o.hooks);r.hooks={...r.hooks};for(let b of yn.knownHookEvents)if(b in r.hooks)if(nt.default.array(r.hooks[b]))r.hooks[b]=[...r.hooks[b]];else throw new TypeError(`Parameter \`${b}\` must be an Array, got ${nt.default(r.hooks[b])}`);else r.hooks[b]=[];if(o&&!v)for(let b of yn.knownHookEvents)o.hooks[b].length>0&&(r.hooks[b]=[...o.hooks[b],...r.hooks[b]]);if("family"in r&&l0.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),o!=null&&o.https&&(r.https={...o.https,...r.https}),"rejectUnauthorized"in r&&l0.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&l0.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&l0.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&l0.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&l0.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&l0.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&l0.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let b in r.agent)if(b!=="http"&&b!=="https"&&b!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${b}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,yn.setNonEnumerableProperties([o,h],r),Rit.default(r,o)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,o=!nt.default.undefined(e.form),a=!nt.default.undefined(e.json),n=!nt.default.undefined(e.body),u=o||a||n,A=yn.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=A,u){if(A)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,o,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof yle.Readable)&&!nt.default.string(e.body)&&!nt.default.buffer(e.body)&&!Ile.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(o&&!nt.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!nt.default.string(r["content-type"]);n?(Ile.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[c0]=e.body):o?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[c0]=new a0.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[c0]=e.stringifyJson(e.json));let h=await Pit.default(this[c0],e.headers);nt.default.undefined(r["content-length"])&&nt.default.undefined(r["transfer-encoding"])&&!A&&!nt.default.undefined(h)&&(r["content-length"]=String(h))}}else A?this._lockWrite():this._unlockWrite();this[PE]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:o}=r;this[xle]=e,r.decompress&&(e=vit(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:Ele.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[Sle]=n.isFromCache,this[DE]=Number(e.headers["content-length"])||void 0,this[ix]=e,e.once("end",()=>{this[DE]=this[SE],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",A=>{e.destroy(),this._beforeError(new A1(A,this))}),e.once("aborted",()=>{this._beforeError(new A1({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let u=e.headers["set-cookie"];if(nt.default.object(r.cookieJar)&&u){let A=u.map(async p=>r.cookieJar.setCookie(p,o.toString()));r.ignoreInvalidCookies&&(A=A.map(async p=>p.catch(()=>{})));try{await Promise.all(A)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&Uit.has(a)){if(e.resume(),this[zs]&&(this[T4](),delete this[zs],this[Dle]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[c0]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new sx(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new a0.URL(p,o),C=h.toString();decodeURI(C),h.hostname!==o.hostname||h.port!==o.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(C),r.url=h;for(let w of r.hooks.beforeRedirect)await w(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!Fit.isResponseOk(n)){this._beforeError(new ox(n));return}e.on("readable",()=>{this[nx]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let A of this[rx])if(!A.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,C=e.headers[p];h&&A.setHeader(p,C)}A.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:o,url:a}=r;wit.default(e),this[T4]=wle.default(e,o,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof wle.TimeoutError?new cx(p,this.timings,this):new Vi(p.message,p,this),this._beforeError(p)}),this[Dle]=xit.default(e,this,Hit),this[zs]=e,this.emit("uploadProgress",this.uploadProgress);let u=this[c0],A=this.redirects.length===0?this:e;nt.default.nodeStream(u)?(u.pipe(A),u.once("error",p=>{this._beforeError(new lx(p,this))})):(this._unlockWrite(),nt.default.undefined(u)?(this._cannotHaveBody||this._noPipe)&&(A.end(),this._lockWrite()):(this._writeRequest(u,void 0,()=>{}),A.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((o,a)=>{Object.assign(r,bit.default(e)),delete r.url;let n,u=N4.get(r.cache)(r,async A=>{A._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",A),o(A)});r.url=e,u.once("error",a),u.once("request",async A=>{n=A,o(n)})})}async _makeRequest(){var e,r,o,a,n;let{options:u}=this,{headers:A}=u;for(let _ in A)if(nt.default.undefined(A[_]))delete A[_];else if(nt.default.null_(A[_]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${_}\` header`);if(u.decompress&&nt.default.undefined(A["accept-encoding"])&&(A["accept-encoding"]=Nit?"gzip, deflate, br":"gzip, deflate"),u.cookieJar){let _=await u.cookieJar.getCookieString(u.url.toString());nt.default.nonEmptyString(_)&&(u.headers.cookie=_)}for(let _ of u.hooks.beforeRequest){let V=await _(u);if(!nt.default.undefined(V)){u.request=()=>V;break}}u.body&&this[c0]!==u.body&&(this[c0]=u.body);let{agent:p,request:h,timeout:C,url:w}=u;if(u.dnsCache&&!("lookup"in u)&&(u.lookup=u.dnsCache.lookup),w.hostname==="unix"){let _=/(?<socketPath>.+?):(?<path>.+)/.exec(`${w.pathname}${w.search}`);if(_!=null&&_.groups){let{socketPath:V,path:re}=_.groups;Object.assign(u,{socketPath:V,path:re,host:""})}}let v=w.protocol==="https:",b;u.http2?b=Dit.auto:b=v?Iit.request:Ele.request;let E=(e=u.request)!==null&&e!==void 0?e:b,R=u.cache?this._createCacheableRequest:E;p&&!u.http2&&(u.agent=p[v?"https":"http"]),u[zs]=E,delete u.request,delete u.timeout;let L=u;if(L.shared=(r=u.cacheOptions)===null||r===void 0?void 0:r.shared,L.cacheHeuristic=(o=u.cacheOptions)===null||o===void 0?void 0:o.cacheHeuristic,L.immutableMinTimeToLive=(a=u.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,L.ignoreCargoCult=(n=u.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,u.dnsLookupIpVersion!==void 0)try{L.family=vle.dnsLookupIpVersionToFamily(u.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}u.https&&("rejectUnauthorized"in u.https&&(L.rejectUnauthorized=u.https.rejectUnauthorized),u.https.checkServerIdentity&&(L.checkServerIdentity=u.https.checkServerIdentity),u.https.certificateAuthority&&(L.ca=u.https.certificateAuthority),u.https.certificate&&(L.cert=u.https.certificate),u.https.key&&(L.key=u.https.key),u.https.passphrase&&(L.passphrase=u.https.passphrase),u.https.pfx&&(L.pfx=u.https.pfx));try{let _=await R(w,L);nt.default.undefined(_)&&(_=b(w,L)),u.request=h,u.timeout=C,u.agent=p,u.https&&("rejectUnauthorized"in u.https&&delete L.rejectUnauthorized,u.https.checkServerIdentity&&delete L.checkServerIdentity,u.https.certificateAuthority&&delete L.ca,u.https.certificate&&delete L.cert,u.https.key&&delete L.key,u.https.passphrase&&delete L.passphrase,u.https.pfx&&delete L.pfx),Oit(_)?this._onRequest(_):this.writable?(this.once("finish",()=>{this._onResponse(_)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(_)}catch(_){throw _ instanceof Cle.CacheError?new ax(_,this):new Vi(_.message,_,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new Vi(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[bE])return;let{options:r}=this,o=this.retryCount+1;this[bE]=!0,e instanceof Vi||(e=new Vi(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await kit.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let u;try{let A;n&&"retry-after"in n.headers&&(A=Number(n.headers["retry-after"]),Number.isNaN(A)?(A=Date.parse(n.headers["retry-after"])-Date.now(),A<=0&&(A=1)):A*=1e3),u=await r.retry.calculateDelay({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:Tit.default({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:0})})}catch(A){this._error(new Vi(A.message,A,this));return}if(u){let A=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,o)}catch(p){this._error(new Vi(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",o,e))};this[ble]=setTimeout(A,u);return}}this._error(a)})()}_read(){this[nx]=!0;let e=this[ix];if(e&&!this[bE]){e.readableLength&&(this[nx]=!1);let r;for(;(r=e.read())!==null;){this[SE]+=r.length,this[Ple]=!0;let o=this.downloadProgress;o.percent<1&&this.emit("downloadProgress",o),this.push(r)}}}_write(e,r,o){let a=()=>{this._writeRequest(e,r,o)};this.requestInitialized?a():this[u1].push(a)}_writeRequest(e,r,o){this[zs].destroyed||(this._progressCallbacks.push(()=>{this[xE]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[zs].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),o(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(zs in this)){e();return}if(this[zs].destroyed){e();return}this[zs].end(o=>{o||(this[PE]=this[xE],this.emit("uploadProgress",this.uploadProgress),this[zs].emit("upload-complete")),e(o)})};this.requestInitialized?r():this[u1].push(r)}_destroy(e,r){var o;this[bE]=!0,clearTimeout(this[ble]),zs in this&&(this[T4](),!((o=this[ix])===null||o===void 0)&&o.complete||this[zs].destroy()),e!==null&&!nt.default.undefined(e)&&!(e instanceof Vi)&&(e=new Vi(e.message,e,this)),r(e)}get _isAboutToError(){return this[bE]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,o;return((r=(e=this[zs])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((o=this[xle])===null||o===void 0)&&o.complete)}get socket(){var e,r;return(r=(e=this[zs])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[DE]?e=this[SE]/this[DE]:this[DE]===this[SE]?e=1:e=0,{percent:e,transferred:this[SE],total:this[DE]}}get uploadProgress(){let e;return this[PE]?e=this[xE]/this[PE]:this[PE]===this[xE]?e=1:e=0,{percent:e,transferred:this[xE],total:this[PE]}}get timings(){var e;return(e=this[zs])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[Sle]}pipe(e,r){if(this[Ple])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof F4.ServerResponse&&this[rx].add(e),super.pipe(e,r)}unpipe(e){return e instanceof F4.ServerResponse&&this[rx].delete(e),super.unpipe(e),this}};yn.default=Ax});var p1=U(Vc=>{"use strict";var qit=Vc&&Vc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),jit=Vc&&Vc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&qit(e,t,r)};Object.defineProperty(Vc,"__esModule",{value:!0});Vc.CancelError=Vc.ParseError=void 0;var Qle=f1(),L4=class extends Qle.RequestError{constructor(e,r){let{options:o}=r.request;super(`${e.message} in "${o.url.toString()}"`,e,r.request),this.name="ParseError"}};Vc.ParseError=L4;var O4=class extends Qle.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};Vc.CancelError=O4;jit(f1(),Vc)});var Fle=U(M4=>{"use strict";Object.defineProperty(M4,"__esModule",{value:!0});var kle=p1(),Git=(t,e,r,o)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(o);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new kle.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new kle.ParseError(n,t)}};M4.default=Git});var U4=U(u0=>{"use strict";var Wit=u0&&u0.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Yit=u0&&u0.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Wit(e,t,r)};Object.defineProperty(u0,"__esModule",{value:!0});var Kit=Ie("events"),Vit=Nf(),Jit=Foe(),fx=p1(),Rle=Fle(),Tle=f1(),zit=I4(),Xit=x4(),Nle=b4(),Zit=["request","response","redirect","uploadProgress","downloadProgress"];function Lle(t){let e,r,o=new Kit.EventEmitter,a=new Jit((u,A,p)=>{let h=C=>{let w=new Tle.default(void 0,t);w.retryCount=C,w._noPipe=!0,p(()=>w.destroy()),p.shouldReject=!1,p(()=>A(new fx.CancelError(w))),e=w,w.once("response",async E=>{var R;if(E.retryCount=C,E.request.aborted)return;let L;try{L=await Xit.default(w),E.rawBody=L}catch{return}if(w._isAboutToError)return;let _=((R=E.headers["content-encoding"])!==null&&R!==void 0?R:"").toLowerCase(),V=["gzip","deflate","br"].includes(_),{options:re}=w;if(V&&!re.decompress)E.body=L;else try{E.body=Rle.default(E,re.responseType,re.parseJson,re.encoding)}catch(ae){if(E.body=L.toString(),Nle.isResponseOk(E)){w._beforeError(ae);return}}try{for(let[ae,he]of re.hooks.afterResponse.entries())E=await he(E,async pe=>{let De=Tle.default.normalizeArguments(void 0,{...pe,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},re);De.hooks.afterResponse=De.hooks.afterResponse.slice(0,ae);for(let le of De.hooks.beforeRetry)await le(De);let ge=Lle(De);return p(()=>{ge.catch(()=>{}),ge.cancel()}),ge})}catch(ae){w._beforeError(new fx.RequestError(ae.message,ae,w));return}if(!Nle.isResponseOk(E)){w._beforeError(new fx.HTTPError(E));return}r=E,u(w.options.resolveBodyOnly?E.body:E)});let v=E=>{if(a.isCanceled)return;let{options:R}=w;if(E instanceof fx.HTTPError&&!R.throwHttpErrors){let{response:L}=E;u(w.options.resolveBodyOnly?L.body:L);return}A(E)};w.once("error",v);let b=w.options.body;w.once("retry",(E,R)=>{var L,_;if(b===((L=R.request)===null||L===void 0?void 0:L.options.body)&&Vit.default.nodeStream((_=R.request)===null||_===void 0?void 0:_.options.body)){v(R);return}h(E)}),zit.default(w,o,Zit)};h(0)});a.on=(u,A)=>(o.on(u,A),a);let n=u=>{let A=(async()=>{await a;let{options:p}=r.request;return Rle.default(r,u,p.parseJson,p.encoding)})();return Object.defineProperties(A,Object.getOwnPropertyDescriptors(a)),A};return a.json=()=>{let{headers:u}=e.options;return!e.writableFinished&&u.accept===void 0&&(u.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}u0.default=Lle;Yit(p1(),u0)});var Ole=U(_4=>{"use strict";Object.defineProperty(_4,"__esModule",{value:!0});var $it=p1();function est(t,...e){let r=(async()=>{if(t instanceof $it.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),o=()=>r;return r.json=o,r.text=o,r.buffer=o,r.on=o,r}_4.default=est});var _le=U(H4=>{"use strict";Object.defineProperty(H4,"__esModule",{value:!0});var Mle=Nf();function Ule(t){for(let e of Object.values(t))(Mle.default.plainObject(e)||Mle.default.array(e))&&Ule(e);return Object.freeze(t)}H4.default=Ule});var qle=U(Hle=>{"use strict";Object.defineProperty(Hle,"__esModule",{value:!0})});var q4=U(tc=>{"use strict";var tst=tc&&tc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),rst=tc&&tc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&tst(e,t,r)};Object.defineProperty(tc,"__esModule",{value:!0});tc.defaultHandler=void 0;var jle=Nf(),ec=U4(),nst=Ole(),hx=f1(),ist=_le(),sst={RequestError:ec.RequestError,CacheError:ec.CacheError,ReadError:ec.ReadError,HTTPError:ec.HTTPError,MaxRedirectsError:ec.MaxRedirectsError,TimeoutError:ec.TimeoutError,ParseError:ec.ParseError,CancelError:ec.CancelError,UnsupportedProtocolError:ec.UnsupportedProtocolError,UploadError:ec.UploadError},ost=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:px}=hx.default,Gle=(...t)=>{let e;for(let r of t)e=px(void 0,r,e);return e},ast=t=>t.isStream?new hx.default(void 0,t):ec.default(t),lst=t=>"defaults"in t&&"options"in t.defaults,cst=["get","post","put","patch","head","delete"];tc.defaultHandler=(t,e)=>e(t);var Wle=(t,e)=>{if(t)for(let r of t)r(e)},Yle=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(o=>(a,n)=>{let u,A=o(a,p=>(u=n(p),u));if(A!==u&&!a.isStream&&u){let p=A,{then:h,catch:C,finally:w}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(u)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)),p.then=h,p.catch=C,p.finally=w}return A});let e=(o,a={},n)=>{var u,A;let p=0,h=C=>t.handlers[p++](C,p===t.handlers.length?ast:h);if(jle.default.plainObject(o)){let C={...o,...a};hx.setNonEnumerableProperties([o,a],C),a=C,o=void 0}try{let C;try{Wle(t.options.hooks.init,a),Wle((u=a.hooks)===null||u===void 0?void 0:u.init,a)}catch(v){C=v}let w=px(o,a,n??t.options);if(w[hx.kIsNormalizedAlready]=!0,C)throw new ec.RequestError(C.message,C,w);return h(w)}catch(C){if(a.isStream)throw C;return nst.default(C,t.options.hooks.beforeError,(A=a.hooks)===null||A===void 0?void 0:A.beforeError)}};e.extend=(...o)=>{let a=[t.options],n=[...t._rawHandlers],u;for(let A of o)lst(A)?(a.push(A.defaults.options),n.push(...A.defaults._rawHandlers),u=A.defaults.mutableDefaults):(a.push(A),"handlers"in A&&n.push(...A.handlers),u=A.mutableDefaults);return n=n.filter(A=>A!==tc.defaultHandler),n.length===0&&n.push(tc.defaultHandler),Yle({options:Gle(...a),handlers:n,mutableDefaults:Boolean(u)})};let r=async function*(o,a){let n=px(o,a,t.options);n.resolveBodyOnly=!1;let u=n.pagination;if(!jle.default.object(u))throw new TypeError("`options.pagination` must be implemented");let A=[],{countLimit:p}=u,h=0;for(;h<u.requestLimit;){h!==0&&await ost(u.backoff);let C=await e(void 0,void 0,n),w=await u.transform(C),v=[];for(let E of w)if(u.filter(E,A,v)&&(!u.shouldContinue(E,A,v)||(yield E,u.stackAllItems&&A.push(E),v.push(E),--p<=0)))return;let b=u.paginate(C,A,v);if(b===!1)return;b===C.request.options?n=C.request.options:b!==void 0&&(n=px(void 0,b,n)),h++}};e.paginate=r,e.paginate.all=async(o,a)=>{let n=[];for await(let u of r(o,a))n.push(u);return n},e.paginate.each=r,e.stream=(o,a)=>e(o,{...a,isStream:!0});for(let o of cst)e[o]=(a,n)=>e(a,{...n,method:o}),e.stream[o]=(a,n)=>e(a,{...n,method:o,isStream:!0});return Object.assign(e,sst),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:ist.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=Gle,e};tc.default=Yle;rst(qle(),tc)});var Jle=U((Lf,gx)=>{"use strict";var ust=Lf&&Lf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Kle=Lf&&Lf.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&ust(e,t,r)};Object.defineProperty(Lf,"__esModule",{value:!0});var Ast=Ie("url"),Vle=q4(),fst={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let o of e){let a=o.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Ast.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[Vle.defaultHandler],mutableDefaults:!1},j4=Vle.default(fst);Lf.default=j4;gx.exports=j4;gx.exports.default=j4;gx.exports.__esModule=!0;Kle(q4(),Lf);Kle(U4(),Lf)});var ln={};Yt(ln,{Method:()=>rce,del:()=>mst,get:()=>K4,getNetworkSettings:()=>tce,post:()=>V4,put:()=>dst,request:()=>h1});function Zle(t){let e=new dx.URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),e.username&&e.password&&(r.proxyAuth=`${e.username}:${e.password}`),{proxy:r}}async function G4(t){return Sf(Xle,t,()=>oe.readFilePromise(t).then(e=>(Xle.set(t,e),e)))}function gst({statusCode:t,statusMessage:e},r){let o=Kt(r,t,Bt.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Xy(r,`${o}${e?` (${e})`:""}`,a)}async function mx(t,{configuration:e,customErrorMessage:r}){var o;try{return await t}catch(a){if(a.name!=="HTTPError")throw a;let n=(r==null?void 0:r(a,e))??((o=a.response.body)==null?void 0:o.error);n==null&&(a.message.startsWith("Response code")?n="The remote server failed to provide the requested resource":n=a.message),a.code==="ETIMEDOUT"&&a.event==="socket"&&(n+=`(can be increased via ${Kt(e,"httpTimeout",Bt.SETTING)})`);let u=new Vt(35,n,A=>{a.response&&A.reportError(35,` ${$u(e,{label:"Response Code",value:Wc(Bt.NO_HINT,gst(a.response,e))})}`),a.request&&(A.reportError(35,` ${$u(e,{label:"Request Method",value:Wc(Bt.NO_HINT,a.request.options.method)})}`),A.reportError(35,` ${$u(e,{label:"Request URL",value:Wc(Bt.URL,a.request.requestUrl)})}`)),a.request.redirects.length>0&&A.reportError(35,` ${$u(e,{label:"Request Redirects",value:Wc(Bt.NO_HINT,vL(e,a.request.redirects,Bt.URL))})}`),a.request.retryCount===a.request.options.retry.limit&&A.reportError(35,` ${$u(e,{label:"Request Retry Count",value:Wc(Bt.NO_HINT,`${Kt(e,a.request.retryCount,Bt.NUMBER)} (can be increased via ${Kt(e,"httpRetry",Bt.SETTING)})`)})}`)});throw u.originalError=a,u}}function tce(t,e){let r=[...e.configuration.get("networkSettings")].sort(([u],[A])=>A.length-u.length),o={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(o),n=typeof t=="string"?new dx.URL(t):t;for(let[u,A]of r)if(Y4.default.isMatch(n.hostname,u))for(let p of a){let h=A.get(p);h!==null&&typeof o[p]>"u"&&(o[p]=h)}for(let u of a)typeof o[u]>"u"&&(o[u]=e.configuration.get(u));return o}async function h1(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=async()=>await yst(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u});return await(await r.reduceHook(h=>h.wrapNetworkRequest,A,{target:t,body:e,configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u}))()}async function K4(t,{configuration:e,jsonResponse:r,customErrorMessage:o,...a}){let n=Sf(zle,t,()=>mx(h1(t,null,{configuration:e,...a}),{configuration:e,customErrorMessage:o}).then(u=>(zle.set(t,u.body),u.body)));return Buffer.isBuffer(n)===!1&&(n=await n),r?JSON.parse(n.toString()):n}async function dst(t,e,{customErrorMessage:r,...o}){return(await mx(h1(t,e,{...o,method:"PUT"}),{customErrorMessage:r,configuration:o.configuration})).body}async function V4(t,e,{customErrorMessage:r,...o}){return(await mx(h1(t,e,{...o,method:"POST"}),{customErrorMessage:r,configuration:o.configuration})).body}async function mst(t,{customErrorMessage:e,...r}){return(await mx(h1(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function yst(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=typeof t=="string"?new dx.URL(t):t,p=tce(A,{configuration:r});if(p.enableNetwork===!1)throw new Vt(80,`Request to '${A.href}' has been blocked because of your configuration settings`);if(A.protocol==="http:"&&!Y4.default.isMatch(A.hostname,r.get("unsafeHttpWhitelist")))throw new Vt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${A.hostname})`);let C={agent:{http:p.httpProxy?W4.default.httpOverHttp(Zle(p.httpProxy)):pst,https:p.httpsProxy?W4.default.httpsOverHttp(Zle(p.httpsProxy)):hst},headers:o,method:u};C.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?C.body=e:C.json=e);let w=r.get("httpTimeout"),v=r.get("httpRetry"),b=r.get("enableStrictSsl"),E=p.httpsCaFilePath,R=p.httpsCertFilePath,L=p.httpsKeyFilePath,{default:_}=await Promise.resolve().then(()=>tt(Jle())),V=E?await G4(E):void 0,re=R?await G4(R):void 0,ae=L?await G4(L):void 0,he=_.extend({timeout:{socket:w},retry:v,https:{rejectUnauthorized:b,certificateAuthority:V,certificate:re,key:ae},...C});return r.getLimit("networkConcurrency")(()=>he(A))}var $le,ece,Y4,W4,dx,zle,Xle,pst,hst,rce,yx=dt(()=>{St();$le=Ie("https"),ece=Ie("http"),Y4=tt(zo()),W4=tt(Poe()),dx=Ie("url");Zl();zl();Vl();zle=new Map,Xle=new Map,pst=new ece.Agent({keepAlive:!0}),hst=new $le.Agent({keepAlive:!0});rce=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(rce||{})});var As={};Yt(As,{availableParallelism:()=>X4,builtinModules:()=>J4,getArchitecture:()=>g1,getArchitectureName:()=>Ist,getArchitectureSet:()=>z4,getCaller:()=>Dst,openUrl:()=>Est});function J4(){return new Set(oce.default.builtinModules||Object.keys(process.binding("natives")))}function Cst(){var o;if(process.platform==="win32")return null;let e=(((o=process.report)==null?void 0:o.getReport())??{}).sharedObjects??[],r=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return Mw(e,a=>{let n=a.match(r);if(!n)return Mw.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function g1(){return ice=ice??{os:process.platform,cpu:process.arch,libc:Cst()}}function Ist(t=g1()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function z4(){let t=g1();return sce=sce??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function vst(t){let e=wst.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,o=e[2]&&e[2].indexOf("eval")===0,a=Bst.exec(e[2]);return o&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"<unknown>",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function Dst(){let e=new Error().stack.split(`
142`)[3];return Est(e)}function J4(){return"availableParallelism"in mx.default?mx.default.availableParallelism():Math.max(1,mx.default.cpus().length)}var ice,mx,tce,gst,rce,nce,yst,Cst,g1=dt(()=>{bt();ice=tt(Ie("module")),mx=tt(Ie("os"));yx();Kl();tce=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),gst=typeof tce<"u"?async t=>{try{return await z4(tce,[t],{cwd:z.cwd()}),!0}catch{return!1}}:void 0;yst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Cst=/\((\S*)(?::(\d+))(?::(\d+))\)/});function tU(t,e,r,o,a){let n=r1(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>X4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>X4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return X4(t,e,r,o,a)}function X4(t,e,r,o,a){var p;let n=r1(r);switch(o.type){case"ANY":return MP(n);case"SHAPE":return Dst(t,e,r,o,a);case"MAP":return Sst(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((p=o.values)!=null&&p.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return Mw(n);if(typeof n!="string")throw new Error(`Expected value (${n}) to be a string`);let h=hL(n,{env:process.env});switch(o.type){case"ABSOLUTE_PATH":{let E=a,w=SM(r);return w&&(E=z.resolve(w,"..")),z.resolve(E,ue.toPortablePath(h))}case"LOCATOR_LOOSE":return kf(h,!1);case"NUMBER":return parseInt(h);case"LOCATOR":return kf(h);case"BOOLEAN":return Mw(h);default:return h}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function Dst(t,e,r,o,a){let n=r1(r);if(typeof n!="object"||Array.isArray(n))throw new ot(`Object configuration settings "${e}" must be an object`);let u=rU(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new ot(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,tU(t,h,p,o.properties[A],a))}return u}function Sst(t,e,r,o,a){let n=r1(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new ot(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,E=`${e}['${h}']`,w=o.valueDefinition;u.set(h,tU(t,E,p,w,a))}return u}function rU(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,rU(t,n));return o}break;case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?z.isAbsolute(e.default)?z.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>z.resolve(t.projectCwd,o)):z.resolve(t.projectCwd,e.default);default:return e.default}}function Ex(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return vst;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return ue.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(Ex(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){let o=new Map;for(let[a,n]of t.entries())o.set(a,Ex(n,e.valueDefinition,r));return o}if(e.type==="SHAPE"&&t instanceof Map){let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a];o.set(a,Ex(n,u,r))}return o}return t}function Pst(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(wx)&&(e=(0,oce.default)(e.slice(wx.length)),t[e]=r);return t}function Ix(){let t=`${wx}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return $4}var oce,c0,ace,Z4,sce,wst,Bst,QC,wx,$4,eU,vst,d1,lce,Bx,Cx,nU,Vc,Xe,m1=dt(()=>{bt();_c();_l();oce=tt(uV()),c0=tt(Xg());_t();ace=tt(rd()),Z4=Ie("stream");qse();uC();yM();CM();EM();hoe();IM();Dd();Coe();_P();Jl();t0();dx();Kl();g1();n0();Ks();wst=c0.GITHUB_ACTIONS&&process.env.GITHUB_EVENT_PATH?!(((sce=ae.readJsonSync(ue.toPortablePath(process.env.GITHUB_EVENT_PATH)).repository)==null?void 0:sce.private)??!0):!1,Bst=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),QC=/^(?!v)[a-z0-9._-]+$/i,wx="yarn_",$4=".yarnrc.yml",eU="yarn.lock",vst="********",d1=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(d1||{}),lce=Bt,Bx=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(Bx||{}),Cx={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:xM()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:Ay},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:eU},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Ix()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:JS,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:IL,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:c0.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!c0.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:c0.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(XS),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:c0.isPR&&wst,defaultText:"<true on public PRs>"},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};nU=(o=>(o[o.LOCKFILE=0]="LOCKFILE",o[o.MANIFEST=1]="MANIFEST",o[o.NONE=2]="NONE",o))(nU||{}),Vc=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,r,o){let a=new Vc(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(Cx);let n=typeof o<"u"?o:r instanceof Map?r:new Map;for(let[u,A]of n)a.activatePlugin(u,A);return a}static async find(e,r,{lookup:o=0,strict:a=!0,usePath:n=!1,useRc:u=!0}={}){let A=Pst();delete A.rcFilename;let p=await Vc.findRcFiles(e),h=await Vc.findHomeRcFile();h&&(p.find(ve=>ve.path===h.path)||p.unshift(h));let E=yoe(p.map(he=>[he.path,he.data])),w=".",v=new Set(Object.keys(Cx)),b=({ignoreCwd:he,yarnPath:ve,ignorePath:ge,lockfileFilename:le})=>({ignoreCwd:he,yarnPath:ve,ignorePath:ge,lockfileFilename:le}),C=({ignoreCwd:he,yarnPath:ve,ignorePath:ge,lockfileFilename:le,...Pe})=>{let g={};for(let[De,Ce]of Object.entries(Pe))v.has(De)&&(g[De]=Ce);return g},R=({ignoreCwd:he,yarnPath:ve,ignorePath:ge,lockfileFilename:le,...Pe})=>{let g={};for(let[De,Ce]of Object.entries(Pe))v.has(De)||(g[De]=Ce);return g},L=new Vc(e);if(L.importSettings(b(Cx)),L.useWithSource("<environment>",b(A),e,{strict:!1}),E){let[he,ve]=E;L.useWithSource(he,b(ve),w,{strict:!1})}if(n){let he=L.get("yarnPath"),ve=L.get("ignorePath");if(he!==null&&!ve)return L}let _=L.get("lockfileFilename"),V;switch(o){case 0:V=await Vc.findProjectCwd(e,_);break;case 1:V=await Vc.findProjectCwd(e,null);break;case 2:ae.existsSync(z.join(e,"package.json"))?V=z.resolve(e):V=null;break}if(L.startingCwd=e,L.projectCwd=V,L.importSettings(C(Cx)),L.useWithSource("<environment>",C(A),e,{strict:a}),E){let[he,ve]=E;L.useWithSource(he,C(ve),w,{strict:a})}let re=he=>"default"in he?he.default:he,oe=new Map([["@@core",Hse]]);if(r!==null)for(let he of r.plugins.keys())oe.set(he,re(r.modules.get(he)));for(let[he,ve]of oe)L.activatePlugin(he,ve);let pe=new Map([]);if(r!==null){let he=new Map;for(let le of K4())he.set(le,()=>Vp(le));for(let[le,Pe]of r.modules)he.set(le,()=>Pe);let ve=new Set,ge=async(le,Pe)=>{let{factory:g,name:De}=Vp(le);if(!g||ve.has(De))return;let Ce=new Map(he),de=Z=>{if(Ce.has(Z))return Ce.get(Z)();throw new ot(`This plugin cannot access the package referenced via ${Z} which is neither a builtin, nor an exposed entry`)},ne=await Vy(async()=>re(await g(de)),Z=>`${Z} (when initializing ${De}, defined in ${Pe})`);he.set(De,()=>ne),ve.add(De),pe.set(De,ne)};if(A.plugins)for(let le of A.plugins.split(";")){let Pe=z.resolve(e,ue.toPortablePath(le));await ge(Pe,"<environment>")}for(let{path:le,cwd:Pe,data:g}of p)if(!!u&&!!Array.isArray(g.plugins))for(let De of g.plugins){let Ce=typeof De!="string"?De.path:De,de=(De==null?void 0:De.spec)??"",ne=(De==null?void 0:De.checksum)??"",Z=z.resolve(Pe,ue.toPortablePath(Ce));if(!await ae.existsPromise(Z)){if(!de){let ut=Kt(L,z.basename(Z,".cjs"),Bt.NAME),H=Kt(L,".gitignore",Bt.NAME),yt=Kt(L,L.values.get("rcFilename"),Bt.NAME),Me=Kt(L,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",Bt.URL);throw new ot(`Missing source for the ${ut} plugin - please try to remove the plugin from ${yt} then reinstall it manually. This error usually occurs because ${H} is incorrect, check ${Me} to make sure your plugin folder isn't gitignored.`)}if(!de.match(/^https?:/)){let ut=Kt(L,z.basename(Z,".cjs"),Bt.NAME),H=Kt(L,L.values.get("rcFilename"),Bt.NAME);throw new ot(`Failed to recognize the source for the ${ut} plugin - please try to delete the plugin from ${H} then reinstall it manually.`)}let me=await W4(de,{configuration:L}),be=Vs(me);if(ne&&ne!==be){let ut=Kt(L,z.basename(Z,".cjs"),Bt.NAME),H=Kt(L,L.values.get("rcFilename"),Bt.NAME),yt=Kt(L,`yarn plugin import ${de}`,Bt.CODE);throw new ot(`Failed to fetch the ${ut} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${H} then run ${yt} to reimport it.`)}await ae.mkdirPromise(z.dirname(Z),{recursive:!0}),await ae.writeFilePromise(Z,me)}await ge(Z,le)}}for(let[he,ve]of pe)L.activatePlugin(he,ve);if(L.useWithSource("<environment>",R(A),e,{strict:a}),E){let[he,ve]=E;L.useWithSource(he,R(ve),w,{strict:a})}return L.get("enableGlobalCache")&&(L.values.set("cacheFolder",`${L.get("globalFolder")}/cache`),L.sources.set("cacheFolder","<internal>")),await L.refreshPackageExtensions(),L}static async findRcFiles(e){let r=Ix(),o=[],a=e,n=null;for(;a!==n;){n=a;let u=z.join(n,r);if(ae.existsSync(u)){let A=await ae.readFilePromise(u,"utf8"),p;try{p=Yi(A)}catch{let E="";throw A.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(E=" (in particular, make sure you list the colons after each key name)"),new ot(`Parse error when loading ${u}; please check it's proper Yaml${E}`)}o.unshift({path:u,cwd:n,data:p})}a=z.dirname(n)}return o}static async findHomeRcFile(){let e=Ix(),r=mC(),o=z.join(r,e);if(ae.existsSync(o)){let a=await ae.readFilePromise(o,"utf8"),n=Yi(a);return{path:o,cwd:r,data:n}}return null}static async findProjectCwd(e,r){let o=null,a=e,n=null;for(;a!==n;){if(n=a,ae.existsSync(z.join(n,"package.json"))&&(o=n),r!==null){if(ae.existsSync(z.join(n,r))){o=n;break}}else if(o!==null)break;a=z.dirname(n)}return o}static async updateConfiguration(e,r){let o=Ix(),a=z.join(e,o),n=ae.existsSync(a)?Yi(await ae.readFilePromise(a,"utf8")):{},u=!1,A;if(typeof r=="function"){try{A=r(n)}catch{A=r({})}if(A===n)return}else{A=n;for(let p of Object.keys(r)){let h=n[p],E=r[p],w;if(typeof E=="function")try{w=E(h)}catch{w=E(void 0)}else w=E;h!==w&&(w===Vc.deleteProperty?delete A[p]:A[p]=w,u=!0)}if(!u)return}await ae.changeFilePromise(a,wa(A),{automaticNewlines:!0})}static async addPlugin(e,r){r.length!==0&&await Vc.updateConfiguration(e,o=>{let a=o.plugins??[];if(a.length===0)return{...o,plugins:r};let n=[],u=[...r];for(let A of a){let p=typeof A!="string"?A.path:A,h=u.find(E=>E.path===p);h?(n.push(h),u=u.filter(E=>E!==h)):n.push(A)}return n.push(...u),{...o,plugins:n}})}static async updateHomeConfiguration(e){let r=mC();return await Vc.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,o]of Object.entries(e))if(o!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,o),this.values.set(r,rU(this,o))}}useWithSource(e,r,o,a){try{this.use(e,r,o,a)}catch(n){throw n.message+=` (in ${Kt(this,e,Bt.PATH)})`,n}}use(e,r,o,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let u of["enableStrictSettings",...Object.keys(r)]){let A=r[u],p=SM(A);if(p&&(e=p),typeof A>"u"||u==="plugins"||e==="<environment>"&&Bst.has(u))continue;if(u==="rcFilename")throw new ot(`The rcFilename settings can only be set via ${`${wx}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(u);if(!h){let w=mC(),v=z.resolve(e,"..");if(a&&!(w===v))throw new ot(`Unrecognized or legacy configuration settings found: ${u} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(u,e);continue}if(this.sources.has(u)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=tU(this,u,A,h,o)}catch(w){throw w.message+=` in ${Kt(this,e,Bt.PATH)}`,w}if(u==="enableStrictSettings"&&e!=="<environment>"){a=E;continue}if(h.type==="MAP"){let w=this.values.get(u);this.values.set(u,new Map(n?[...w,...E]:[...E,...w])),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let w=this.values.get(u);this.values.set(u,n?[...w,...E]:[...E,...w]),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else this.values.set(u,E),this.sources.set(u,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:o=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new ot(`Couldn't find a configuration settings named "${e}"`);return Ex(a,n,{hideSecrets:r,getNativePaths:o})}getSubprocessStreams(e,{header:r,prefix:o,report:a}){let n,u,A=ae.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${o} ${Kt(this,"STDOUT","green")}`),h=a.createStreamReporter(`${o} ${Kt(this,"STDERR","red")}`);n=new Z4.PassThrough,n.pipe(p),n.pipe(A),u=new Z4.PassThrough,u.pipe(h),u.pipe(A)}else n=A,u=A,typeof r<"u"&&n.write(`${r} 142`)[3];return vst(e)}function X4(){return"availableParallelism"in Ex.default?Ex.default.availableParallelism():Math.max(1,Ex.default.cpus().length)}var oce,Ex,nce,Est,ice,sce,wst,Bst,d1=dt(()=>{St();oce=tt(Ie("module")),Ex=tt(Ie("os"));Cx();Vl();nce=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Est=typeof nce<"u"?async t=>{try{return await Z4(nce,[t],{cwd:J.cwd()}),!0}catch{return!1}}:void 0;wst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Bst=/\((\S*)(?::(\d+))(?::(\d+))\)/});function nU(t,e,r,o,a){let n=n1(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>$4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>$4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return $4(t,e,r,o,a)}function $4(t,e,r,o,a){var p;let n=n1(r);switch(o.type){case"ANY":return _P(n);case"SHAPE":return bst(t,e,r,o,a);case"MAP":return Qst(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((p=o.values)!=null&&p.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return Uw(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let h=dL(n,{env:process.env});switch(o.type){case"ABSOLUTE_PATH":{let C=a,w=xM(r);return w&&(C=J.resolve(w,"..")),J.resolve(C,ue.toPortablePath(h))}case"LOCATOR_LOOSE":return Ff(h,!1);case"NUMBER":return parseInt(h);case"LOCATOR":return Ff(h);case"BOOLEAN":return Uw(h);default:return h}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function bst(t,e,r,o,a){let n=n1(r);if(typeof n!="object"||Array.isArray(n))throw new ot(`Object configuration settings "${e}" must be an object`);let u=iU(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new ot(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,nU(t,h,p,o.properties[A],a))}return u}function Qst(t,e,r,o,a){let n=n1(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new ot(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,C=`${e}['${h}']`,w=o.valueDefinition;u.set(h,nU(t,C,p,w,a))}return u}function iU(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,iU(t,n));return o}break;case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?J.isAbsolute(e.default)?J.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>J.resolve(t.projectCwd,o)):J.resolve(t.projectCwd,e.default);default:return e.default}}function wx(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return xst;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return ue.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(wx(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){let o=new Map;for(let[a,n]of t.entries())o.set(a,wx(n,e.valueDefinition,r));return o}if(e.type==="SHAPE"&&t instanceof Map){let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a];o.set(a,wx(n,u,r))}return o}return t}function kst(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(vx)&&(e=(0,lce.default)(e.slice(vx.length)),t[e]=r);return t}function Bx(){let t=`${vx}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return tU}var lce,Of,cce,eU,ace,Sst,m1,Pst,QE,vx,tU,rU,xst,y1,uce,Dx,Ix,sU,Jc,Xe,E1=dt(()=>{St();Hc();Hl();lce=tt(fV()),Of=tt(Zg());_t();cce=tt(nd()),eU=Ie("stream");Gse();uE();CM();IM();wM();doe();BM();Sd();Ioe();qP();zl();n0();yx();Vl();d1();s0();Ks();Sst=Of.GITHUB_ACTIONS&&process.env.GITHUB_EVENT_PATH?!(((ace=oe.readJsonSync(ue.toPortablePath(process.env.GITHUB_EVENT_PATH)).repository)==null?void 0:ace.private)??!0):!1,m1=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),Pst=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),QE=/^(?!v)[a-z0-9._-]+$/i,vx="yarn_",tU=".yarnrc.yml",rU="yarn.lock",xst="********",y1=(C=>(C.ANY="ANY",C.BOOLEAN="BOOLEAN",C.ABSOLUTE_PATH="ABSOLUTE_PATH",C.LOCATOR="LOCATOR",C.LOCATOR_LOOSE="LOCATOR_LOOSE",C.NUMBER="NUMBER",C.STRING="STRING",C.SECRET="SECRET",C.SHAPE="SHAPE",C.MAP="MAP",C))(y1||{}),uce=Bt,Dx=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(Dx||{}),Ix={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:QM()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:Ay},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:rU},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Bx()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:XS,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:BL,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Of.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Of.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Of.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values($S),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:Of.isPR&&Sst,defaultText:"<true on public PRs>"},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};sU=(o=>(o[o.LOCKFILE=0]="LOCKFILE",o[o.MANIFEST=1]="MANIFEST",o[o.NONE=2]="NONE",o))(sU||{}),Jc=class{constructor(e){this.isCI=Of.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,r,o){let a=new Jc(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(Ix);let n=typeof o<"u"?o:r instanceof Map?r:new Map;for(let[u,A]of n)a.activatePlugin(u,A);return a}static async find(e,r,{lookup:o=0,strict:a=!0,usePath:n=!1,useRc:u=!0}={}){let A=kst();delete A.rcFilename;let p=await Jc.findRcFiles(e),h=await Jc.findHomeRcFile();h&&(p.find(De=>De.path===h.path)||p.unshift(h));let C=Coe(p.map(pe=>[pe.path,pe.data])),w=".",v=new Set(Object.keys(Ix)),b=({ignoreCwd:pe,yarnPath:De,ignorePath:ge,lockfileFilename:le})=>({ignoreCwd:pe,yarnPath:De,ignorePath:ge,lockfileFilename:le}),E=({ignoreCwd:pe,yarnPath:De,ignorePath:ge,lockfileFilename:le,...Pe})=>{let g={};for(let[ve,Ee]of Object.entries(Pe))v.has(ve)&&(g[ve]=Ee);return g},R=({ignoreCwd:pe,yarnPath:De,ignorePath:ge,lockfileFilename:le,...Pe})=>{let g={};for(let[ve,Ee]of Object.entries(Pe))v.has(ve)||(g[ve]=Ee);return g},L=new Jc(e);if(L.importSettings(b(Ix)),L.useWithSource("<environment>",b(A),e,{strict:!1}),C){let[pe,De]=C;L.useWithSource(pe,b(De),w,{strict:!1})}if(n){let pe=L.get("yarnPath"),De=L.get("ignorePath");if(pe!==null&&!De)return L}let _=L.get("lockfileFilename"),V;switch(o){case 0:V=await Jc.findProjectCwd(e,_);break;case 1:V=await Jc.findProjectCwd(e,null);break;case 2:oe.existsSync(J.join(e,"package.json"))?V=J.resolve(e):V=null;break}if(L.startingCwd=e,L.projectCwd=V,L.importSettings(E(Ix)),L.useWithSource("<environment>",E(A),e,{strict:a}),C){let[pe,De]=C;L.useWithSource(pe,E(De),w,{strict:a})}let re=pe=>"default"in pe?pe.default:pe,ae=new Map([["@@core",jse]]);if(r!==null)for(let pe of r.plugins.keys())ae.set(pe,re(r.modules.get(pe)));for(let[pe,De]of ae)L.activatePlugin(pe,De);let he=new Map([]);if(r!==null){let pe=new Map;for(let le of J4())pe.set(le,()=>zp(le));for(let[le,Pe]of r.modules)pe.set(le,()=>Pe);let De=new Set,ge=async(le,Pe)=>{let{factory:g,name:ve}=zp(le);if(!g||De.has(ve))return;let Ee=new Map(pe),de=Z=>{if(Ee.has(Z))return Ee.get(Z)();throw new ot(`This plugin cannot access the package referenced via ${Z} which is neither a builtin, nor an exposed entry`)},ne=await Vy(async()=>re(await g(de)),Z=>`${Z} (when initializing ${ve}, defined in ${Pe})`);pe.set(ve,()=>ne),De.add(ve),he.set(ve,ne)};if(A.plugins)for(let le of A.plugins.split(";")){let Pe=J.resolve(e,ue.toPortablePath(le));await ge(Pe,"<environment>")}for(let{path:le,cwd:Pe,data:g}of p)if(!!u&&!!Array.isArray(g.plugins))for(let ve of g.plugins){let Ee=typeof ve!="string"?ve.path:ve,de=(ve==null?void 0:ve.spec)??"",ne=(ve==null?void 0:ve.checksum)??"";if(m1.has(de))continue;let Z=J.resolve(Pe,ue.toPortablePath(Ee));if(!await oe.existsPromise(Z)){if(!de){let ut=Kt(L,J.basename(Z,".cjs"),Bt.NAME),H=Kt(L,".gitignore",Bt.NAME),yt=Kt(L,L.values.get("rcFilename"),Bt.NAME),Me=Kt(L,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",Bt.URL);throw new ot(`Missing source for the ${ut} plugin - please try to remove the plugin from ${yt} then reinstall it manually. This error usually occurs because ${H} is incorrect, check ${Me} to make sure your plugin folder isn't gitignored.`)}if(!de.match(/^https?:/)){let ut=Kt(L,J.basename(Z,".cjs"),Bt.NAME),H=Kt(L,L.values.get("rcFilename"),Bt.NAME);throw new ot(`Failed to recognize the source for the ${ut} plugin - please try to delete the plugin from ${H} then reinstall it manually.`)}let me=await K4(de,{configuration:L}),be=Vs(me);if(ne&&ne!==be){let ut=Kt(L,J.basename(Z,".cjs"),Bt.NAME),H=Kt(L,L.values.get("rcFilename"),Bt.NAME),yt=Kt(L,`yarn plugin import ${de}`,Bt.CODE);throw new ot(`Failed to fetch the ${ut} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${H} then run ${yt} to reimport it.`)}await oe.mkdirPromise(J.dirname(Z),{recursive:!0}),await oe.writeFilePromise(Z,me)}await ge(Z,le)}}for(let[pe,De]of he)L.activatePlugin(pe,De);if(L.useWithSource("<environment>",R(A),e,{strict:a}),C){let[pe,De]=C;L.useWithSource(pe,R(De),w,{strict:a})}return L.get("enableGlobalCache")&&(L.values.set("cacheFolder",`${L.get("globalFolder")}/cache`),L.sources.set("cacheFolder","<internal>")),await L.refreshPackageExtensions(),L}static async findRcFiles(e){let r=Bx(),o=[],a=e,n=null;for(;a!==n;){n=a;let u=J.join(n,r);if(oe.existsSync(u)){let A=await oe.readFilePromise(u,"utf8"),p;try{p=Yi(A)}catch{let C="";throw A.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(C=" (in particular, make sure you list the colons after each key name)"),new ot(`Parse error when loading ${u}; please check it's proper Yaml${C}`)}o.unshift({path:u,cwd:n,data:p})}a=J.dirname(n)}return o}static async findHomeRcFile(){let e=Bx(),r=mE(),o=J.join(r,e);if(oe.existsSync(o)){let a=await oe.readFilePromise(o,"utf8"),n=Yi(a);return{path:o,cwd:r,data:n}}return null}static async findProjectCwd(e,r){let o=null,a=e,n=null;for(;a!==n;){if(n=a,oe.existsSync(J.join(n,"package.json"))&&(o=n),r!==null){if(oe.existsSync(J.join(n,r))){o=n;break}}else if(o!==null)break;a=J.dirname(n)}return o}static async updateConfiguration(e,r,o={}){let a=Bx(),n=J.join(e,a),u=oe.existsSync(n)?Yi(await oe.readFilePromise(n,"utf8")):{},A=!1,p;if(typeof r=="function"){try{p=r(u)}catch{p=r({})}if(p===u)return!1}else{p=u;for(let h of Object.keys(r)){let C=u[h],w=r[h],v;if(typeof w=="function")try{v=w(C)}catch{v=w(void 0)}else v=w;C!==v&&(v===Jc.deleteProperty?delete p[h]:p[h]=v,A=!0)}if(!A)return!1}return await oe.changeFilePromise(n,Ba(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await Jc.updateConfiguration(e,o=>{let a=o.plugins??[];if(a.length===0)return{...o,plugins:r};let n=[],u=[...r];for(let A of a){let p=typeof A!="string"?A.path:A,h=u.find(C=>C.path===p);h?(n.push(h),u=u.filter(C=>C!==h)):n.push(A)}return n.push(...u),{...o,plugins:n}})}static async updateHomeConfiguration(e){let r=mE();return await Jc.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,o]of Object.entries(e))if(o!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,o),this.values.set(r,iU(this,o))}}useWithSource(e,r,o,a){try{this.use(e,r,o,a)}catch(n){throw n.message+=` (in ${Kt(this,e,Bt.PATH)})`,n}}use(e,r,o,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let u of["enableStrictSettings",...Object.keys(r)]){let A=r[u],p=xM(A);if(p&&(e=p),typeof A>"u"||u==="plugins"||e==="<environment>"&&Pst.has(u))continue;if(u==="rcFilename")throw new ot(`The rcFilename settings can only be set via ${`${vx}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(u);if(!h){let w=mE(),v=J.resolve(e,"..");if(a&&!(w===v))throw new ot(`Unrecognized or legacy configuration settings found: ${u} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(u,e);continue}if(this.sources.has(u)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let C;try{C=nU(this,u,A,h,o)}catch(w){throw w.message+=` in ${Kt(this,e,Bt.PATH)}`,w}if(u==="enableStrictSettings"&&e!=="<environment>"){a=C;continue}if(h.type==="MAP"){let w=this.values.get(u);this.values.set(u,new Map(n?[...w,...C]:[...C,...w])),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let w=this.values.get(u);this.values.set(u,n?[...w,...C]:[...C,...w]),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else this.values.set(u,C),this.sources.set(u,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:o=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new ot(`Couldn't find a configuration settings named "${e}"`);return wx(a,n,{hideSecrets:r,getNativePaths:o})}getSubprocessStreams(e,{header:r,prefix:o,report:a}){let n,u,A=oe.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${o} ${Kt(this,"STDOUT","green")}`),h=a.createStreamReporter(`${o} ${Kt(this,"STDERR","red")}`);n=new eU.PassThrough,n.pipe(p),n.pipe(A),u=new eU.PassThrough,u.pipe(h),u.pipe(A)}else n=A,u=A,typeof r<"u"&&n.write(`${r}
143`);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new Pd([new e1,new Gn,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new fC([new pC,new gC,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=h1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=Zu(n,u=>u==="current"?e.libc??Zu.skip:u)),{os:o,cpu:a,libc:n}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!ll(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new Nt;u.load(a,{yamlCompatibilityMode:!0});let A=Yy(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let E of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,w]of u.peerDependenciesMeta)for(let[v,b]of Object.entries(w))p.push({...h,type:"PeerDependencyMeta",selector:E,key:v,value:b})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(r0(o,!0),KS(a),{userProvided:!0})}normalizeLocator(e){return ll(e.reference)?us(e,`${this.get("defaultProtocol")}${e.reference}`):QC.test(e.reference)?us(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return ll(e.range)?mn(e,`${this.get("defaultProtocol")}${e.range}`):QC.test(e.range)?mn(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e){let r=Ww(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let o=this.packageExtensions.get(e.identHash);if(typeof o<"u"){let n=e.version;if(n!==null){for(let[u,A]of o)if(!!Sd(n,u))for(let p of A)switch(p.status==="inactive"&&(p.status="redundant"),p.type){case"Dependency":typeof r.dependencies.get(p.descriptor.identHash)>"u"&&(p.status="active",r.dependencies.set(p.descriptor.identHash,this.normalizeDependency(p.descriptor)));break;case"PeerDependency":typeof r.peerDependencies.get(p.descriptor.identHash)>"u"&&(p.status="active",r.peerDependencies.set(p.descriptor.identHash,p.descriptor));break;case"PeerDependencyMeta":{let h=r.peerDependenciesMeta.get(p.selector);(typeof h>"u"||!Object.prototype.hasOwnProperty.call(h,p.key)||h[p.key]!==p.value)&&(p.status="active",Df(r.peerDependenciesMeta,p.selector,()=>({}))[p.key]=p.value)}break;default:fL(p);break}}}let a=n=>n.scope?`${n.scope}__${n.name}`:`${n.name}`;for(let n of r.peerDependenciesMeta.keys()){let u=Ys(n);r.peerDependencies.has(u.identHash)||r.peerDependencies.set(u.identHash,mn(u,"*"))}for(let n of r.peerDependencies.values()){if(n.scope==="types")continue;let u=a(n),A=nA("types",u),p=nn(A);r.peerDependencies.has(A.identHash)||r.peerDependenciesMeta.has(p)||(r.peerDependencies.set(A.identHash,mn(A,"*")),r.peerDependenciesMeta.set(p,{optional:!0}))}return r.dependencies=new Map(Pa(r.dependencies,([,n])=>ba(n))),r.peerDependencies=new Map(Pa(r.peerDependencies,([,n])=>ba(n))),r}getLimit(e){return Df(this.limits,e,()=>(0,ace.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);!n||await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);!A||(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}},Xe=Vc;Xe.deleteProperty=Symbol(),Xe.telemetry=null});var Mr={};Yt(Mr,{EndStrategy:()=>aU,ExecError:()=>vx,PipeError:()=>y1,execvp:()=>z4,pipevp:()=>sA});function Qd(t){return t!==null&&typeof t.fd=="number"}function iU(){}function sU(){for(let t of kd)t.kill()}async function sA(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":Qd(n)&&(h[0]=n),Qd(u)&&(h[1]=u),Qd(A)&&(h[2]=A);let E=(0,oU.default)(t,e,{cwd:ue.fromPortablePath(r),env:{...o,PWD:ue.fromPortablePath(r)},stdio:h});kd.add(E),kd.size===1&&(process.on("SIGINT",iU),process.on("SIGTERM",sU)),!Qd(n)&&n!==null&&n.pipe(E.stdin),Qd(u)||E.stdout.pipe(u,{end:!1}),Qd(A)||E.stderr.pipe(A,{end:!1});let w=()=>{for(let v of new Set([u,A]))Qd(v)||v.end()};return new Promise((v,b)=>{E.on("error",C=>{kd.delete(E),kd.size===0&&(process.off("SIGINT",iU),process.off("SIGTERM",sU)),(p===2||p===1)&&w(),b(C)}),E.on("close",(C,R)=>{kd.delete(E),kd.size===0&&(process.off("SIGINT",iU),process.off("SIGTERM",sU)),(p===2||p===1&&C!==0)&&w(),C===0||!a?v({code:lU(C,R)}):b(new y1({fileName:t,code:C,signal:R}))})})}async function z4(t,e,{cwd:r,env:o=process.env,encoding:a="utf8",strict:n=!1}){let u=["ignore","pipe","pipe"],A=[],p=[],h=ue.fromPortablePath(r);typeof o.PWD<"u"&&(o={...o,PWD:h});let E=(0,oU.default)(t,e,{cwd:h,env:o,stdio:u});return E.stdout.on("data",w=>{A.push(w)}),E.stderr.on("data",w=>{p.push(w)}),await new Promise((w,v)=>{E.on("error",b=>{let C=Xe.create(r),R=Kt(C,t,Bt.PATH);v(new Vt(1,`Process ${R} failed to spawn`,L=>{L.reportError(1,` ${$u(C,{label:"Thrown Error",value:Gc(Bt.NO_HINT,b.message)})}`)}))}),E.on("close",(b,C)=>{let R=a==="buffer"?Buffer.concat(A):Buffer.concat(A).toString(a),L=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);b===0||!n?w({code:lU(b,C),stdout:R,stderr:L}):v(new vx({fileName:t,code:b,signal:C,stdout:R,stderr:L}))})})}function lU(t,e){let r=xst.get(e);return typeof r<"u"?128+r:t??1}function bst(t,e,{configuration:r,report:o}){o.reportError(1,` ${$u(r,t!==null?{label:"Exit Code",value:Gc(Bt.NUMBER,t)}:{label:"Exit Signal",value:Gc(Bt.CODE,e)})}`)}var oU,aU,y1,vx,kd,xst,yx=dt(()=>{bt();oU=tt(ZR());m1();Xl();Jl();aU=(o=>(o[o.Never=0]="Never",o[o.ErrorCode=1]="ErrorCode",o[o.Always=2]="Always",o))(aU||{}),y1=class extends Vt{constructor({fileName:r,code:o,signal:a}){let n=Xe.create(z.cwd()),u=Kt(n,r,Bt.PATH);super(1,`Child ${u} reported an error`,A=>{bst(o,a,{configuration:n,report:A})});this.code=lU(o,a)}},vx=class extends y1{constructor({fileName:r,code:o,signal:a,stdout:n,stderr:u}){super({fileName:r,code:o,signal:a});this.stdout=n,this.stderr=u}};kd=new Set;xst=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});var kC,cce=dt(()=>{bt();_t();C1();kC=class extends it{constructor(){super(...arguments);this.cwd=fe.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=fe.String();this.args=fe.Proxy()}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await FC(r,[],{cwd:ue.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}};kC.usage={description:"run a command using yarn's portable shell",details:` 143`);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new xd([new t1,new Gn,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new fE([new pE,new gE,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=g1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=Zu(n,u=>u==="current"?e.libc??Zu.skip:u)),{os:o,cpu:a,libc:n}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!cl(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new Nt;u.load(a,{yamlCompatibilityMode:!0});let A=Yy(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let C of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:C});for(let C of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:C});for(let[C,w]of u.peerDependenciesMeta)for(let[v,b]of Object.entries(w))p.push({...h,type:"PeerDependencyMeta",selector:C,key:v,value:b})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(i0(o,!0),JS(a),{userProvided:!0})}normalizeLocator(e){return cl(e.reference)?us(e,`${this.get("defaultProtocol")}${e.reference}`):QE.test(e.reference)?us(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return cl(e.range)?mn(e,`${this.get("defaultProtocol")}${e.range}`):QE.test(e.range)?mn(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e){let r=Yw(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let o=this.packageExtensions.get(e.identHash);if(typeof o<"u"){let n=e.version;if(n!==null){for(let[u,A]of o)if(!!Pd(n,u))for(let p of A)switch(p.status==="inactive"&&(p.status="redundant"),p.type){case"Dependency":typeof r.dependencies.get(p.descriptor.identHash)>"u"&&(p.status="active",r.dependencies.set(p.descriptor.identHash,this.normalizeDependency(p.descriptor)));break;case"PeerDependency":typeof r.peerDependencies.get(p.descriptor.identHash)>"u"&&(p.status="active",r.peerDependencies.set(p.descriptor.identHash,p.descriptor));break;case"PeerDependencyMeta":{let h=r.peerDependenciesMeta.get(p.selector);(typeof h>"u"||!Object.prototype.hasOwnProperty.call(h,p.key)||h[p.key]!==p.value)&&(p.status="active",Sf(r.peerDependenciesMeta,p.selector,()=>({}))[p.key]=p.value)}break;default:hL(p);break}}}let a=n=>n.scope?`${n.scope}__${n.name}`:`${n.name}`;for(let n of r.peerDependenciesMeta.keys()){let u=Ys(n);r.peerDependencies.has(u.identHash)||r.peerDependencies.set(u.identHash,mn(u,"*"))}for(let n of r.peerDependencies.values()){if(n.scope==="types")continue;let u=a(n),A=nA("types",u),p=nn(A);r.peerDependencies.has(A.identHash)||r.peerDependenciesMeta.has(p)||(r.peerDependencies.set(A.identHash,mn(A,"*")),r.peerDependenciesMeta.set(p,{optional:!0}))}return r.dependencies=new Map(xa(r.dependencies,([,n])=>Qa(n))),r.peerDependencies=new Map(xa(r.peerDependencies,([,n])=>Qa(n))),r}getLimit(e){return Sf(this.limits,e,()=>(0,cce.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);!n||await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);!A||(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}},Xe=Jc;Xe.deleteProperty=Symbol(),Xe.telemetry=null});var Mr={};Yt(Mr,{EndStrategy:()=>cU,ExecError:()=>Sx,PipeError:()=>C1,execvp:()=>Z4,pipevp:()=>sA});function kd(t){return t!==null&&typeof t.fd=="number"}function oU(){}function aU(){for(let t of Fd)t.kill()}async function sA(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":kd(n)&&(h[0]=n),kd(u)&&(h[1]=u),kd(A)&&(h[2]=A);let C=(0,lU.default)(t,e,{cwd:ue.fromPortablePath(r),env:{...o,PWD:ue.fromPortablePath(r)},stdio:h});Fd.add(C),Fd.size===1&&(process.on("SIGINT",oU),process.on("SIGTERM",aU)),!kd(n)&&n!==null&&n.pipe(C.stdin),kd(u)||C.stdout.pipe(u,{end:!1}),kd(A)||C.stderr.pipe(A,{end:!1});let w=()=>{for(let v of new Set([u,A]))kd(v)||v.end()};return new Promise((v,b)=>{C.on("error",E=>{Fd.delete(C),Fd.size===0&&(process.off("SIGINT",oU),process.off("SIGTERM",aU)),(p===2||p===1)&&w(),b(E)}),C.on("close",(E,R)=>{Fd.delete(C),Fd.size===0&&(process.off("SIGINT",oU),process.off("SIGTERM",aU)),(p===2||p===1&&E!==0)&&w(),E===0||!a?v({code:uU(E,R)}):b(new C1({fileName:t,code:E,signal:R}))})})}async function Z4(t,e,{cwd:r,env:o=process.env,encoding:a="utf8",strict:n=!1}){let u=["ignore","pipe","pipe"],A=[],p=[],h=ue.fromPortablePath(r);typeof o.PWD<"u"&&(o={...o,PWD:h});let C=(0,lU.default)(t,e,{cwd:h,env:o,stdio:u});return C.stdout.on("data",w=>{A.push(w)}),C.stderr.on("data",w=>{p.push(w)}),await new Promise((w,v)=>{C.on("error",b=>{let E=Xe.create(r),R=Kt(E,t,Bt.PATH);v(new Vt(1,`Process ${R} failed to spawn`,L=>{L.reportError(1,` ${$u(E,{label:"Thrown Error",value:Wc(Bt.NO_HINT,b.message)})}`)}))}),C.on("close",(b,E)=>{let R=a==="buffer"?Buffer.concat(A):Buffer.concat(A).toString(a),L=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);b===0||!n?w({code:uU(b,E),stdout:R,stderr:L}):v(new Sx({fileName:t,code:b,signal:E,stdout:R,stderr:L}))})})}function uU(t,e){let r=Fst.get(e);return typeof r<"u"?128+r:t??1}function Rst(t,e,{configuration:r,report:o}){o.reportError(1,` ${$u(r,t!==null?{label:"Exit Code",value:Wc(Bt.NUMBER,t)}:{label:"Exit Signal",value:Wc(Bt.CODE,e)})}`)}var lU,cU,C1,Sx,Fd,Fst,Cx=dt(()=>{St();lU=tt(eT());E1();Zl();zl();cU=(o=>(o[o.Never=0]="Never",o[o.ErrorCode=1]="ErrorCode",o[o.Always=2]="Always",o))(cU||{}),C1=class extends Vt{constructor({fileName:r,code:o,signal:a}){let n=Xe.create(J.cwd()),u=Kt(n,r,Bt.PATH);super(1,`Child ${u} reported an error`,A=>{Rst(o,a,{configuration:n,report:A})});this.code=uU(o,a)}},Sx=class extends C1{constructor({fileName:r,code:o,signal:a,stdout:n,stderr:u}){super({fileName:r,code:o,signal:a});this.stdout=n,this.stderr=u}};Fd=new Set;Fst=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});var kE,Ace=dt(()=>{St();_t();I1();kE=class extends it{constructor(){super(...arguments);this.cwd=fe.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=fe.String();this.args=fe.Proxy()}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await FE(r,[],{cwd:ue.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}};kE.usage={description:"run a command using yarn's portable shell",details:`
144 This command will run a command using Yarn's portable shell. 144 This command will run a command using Yarn's portable shell.
145 145
146 Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. 146 Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell.
@@ -150,124 +150,124 @@ Please report this to https://github.com/szmarczak/http2-wrapper/`);C(R)}return}
150 Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. 150 Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used.
151 151
152 For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. 152 For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md.
153 `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}});var cl,uce=dt(()=>{cl=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var Px={};Yt(Px,{fastGlobOptions:()=>pce,isBraceExpansion:()=>cU,isGlobPattern:()=>Qst,match:()=>kst,micromatchOptions:()=>Sx});function Qst(t){if(!Dx.default.scan(t,Sx).isGlob)return!1;try{Dx.default.parse(t,Sx)}catch{return!1}return!0}function kst(t,{cwd:e,baseFs:r}){return(0,Ace.default)(t,{...pce,cwd:ue.fromPortablePath(e),fs:CD(fce.default,new _p(r))})}function cU(t){return Dx.default.scan(t,Sx).isBrace}var Ace,fce,Dx,Sx,pce,hce=dt(()=>{bt();Ace=tt(EP()),fce=tt(Ie("fs")),Dx=tt(Jo()),Sx={strictBrackets:!0},pce={onlyDirectories:!1,onlyFiles:!1}});function uU(){}function AU(){for(let t of Fd)t.kill()}function yce(t,e,r,o){return a=>{let n=a[0]instanceof oA.Transform?"pipe":a[0],u=a[1]instanceof oA.Transform?"pipe":a[1],A=a[2]instanceof oA.Transform?"pipe":a[2],p=(0,dce.default)(t,e,{...o,stdio:[n,u,A]});return Fd.add(p),Fd.size===1&&(process.on("SIGINT",uU),process.on("SIGTERM",AU)),a[0]instanceof oA.Transform&&a[0].pipe(p.stdin),a[1]instanceof oA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof oA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(Fd.delete(p),Fd.size===0&&(process.off("SIGINT",uU),process.off("SIGTERM",AU)),E.code){case"ENOENT":a[2].write(`command not found: ${t} 153 `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}});var ul,fce=dt(()=>{ul=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var bx={};Yt(bx,{fastGlobOptions:()=>gce,isBraceExpansion:()=>AU,isGlobPattern:()=>Tst,match:()=>Nst,micromatchOptions:()=>xx});function Tst(t){if(!Px.default.scan(t,xx).isGlob)return!1;try{Px.default.parse(t,xx)}catch{return!1}return!0}function Nst(t,{cwd:e,baseFs:r}){return(0,pce.default)(t,{...gce,cwd:ue.fromPortablePath(e),fs:ID(hce.default,new qp(r))})}function AU(t){return Px.default.scan(t,xx).isBrace}var pce,hce,Px,xx,gce,dce=dt(()=>{St();pce=tt(wP()),hce=tt(Ie("fs")),Px=tt(zo()),xx={strictBrackets:!0},gce={onlyDirectories:!1,onlyFiles:!1}});function fU(){}function pU(){for(let t of Rd)t.kill()}function Cce(t,e,r,o){return a=>{let n=a[0]instanceof oA.Transform?"pipe":a[0],u=a[1]instanceof oA.Transform?"pipe":a[1],A=a[2]instanceof oA.Transform?"pipe":a[2],p=(0,yce.default)(t,e,{...o,stdio:[n,u,A]});return Rd.add(p),Rd.size===1&&(process.on("SIGINT",fU),process.on("SIGTERM",pU)),a[0]instanceof oA.Transform&&a[0].pipe(p.stdin),a[1]instanceof oA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof oA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",C=>{switch(Rd.delete(p),Rd.size===0&&(process.off("SIGINT",fU),process.off("SIGTERM",pU)),C.code){case"ENOENT":a[2].write(`command not found: ${t}
154`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} 154`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t}
155`),h(128);break;default:a[2].write(`uncaught error: ${E.message} 155`),h(128);break;default:a[2].write(`uncaught error: ${C.message}
156`),h(1);break}}),p.on("close",E=>{Fd.delete(p),Fd.size===0&&(process.off("SIGINT",uU),process.off("SIGTERM",AU)),h(E!==null?E:129)})})}}}function Cce(t){return e=>{let r=e[0]==="pipe"?new oA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function xx(t,e){return RC.start(t,e)}function gce(t,e=null){let r=new oA.PassThrough,o=new mce.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` 156`),h(1);break}}),p.on("close",C=>{Rd.delete(p),Rd.size===0&&(process.off("SIGINT",fU),process.off("SIGTERM",pU)),h(C!==null?C:129)})})}}}function Ice(t){return e=>{let r=e[0]==="pipe"?new oA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function Qx(t,e){return RE.start(t,e)}function mce(t,e=null){let r=new oA.PassThrough,o=new Ece.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(`
157`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function Ece(t,{prefix:e}){return{stdout:gce(r=>t.stdout.write(`${r} 157`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function wce(t,{prefix:e}){return{stdout:mce(r=>t.stdout.write(`${r}
158`),t.stdout.isTTY?e:null),stderr:gce(r=>t.stderr.write(`${r} 158`),t.stdout.isTTY?e:null),stderr:mce(r=>t.stderr.write(`${r}
159`),t.stderr.isTTY?e:null)}}var dce,oA,mce,Fd,tc,fU,RC,pU=dt(()=>{dce=tt(ZR()),oA=Ie("stream"),mce=Ie("string_decoder"),Fd=new Set;tc=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},fU=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},RC=class{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new RC(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new RC(this,e),a=new fU;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var B1={};Yt(B1,{EntryCommand:()=>kC,ShellError:()=>cl,execute:()=>FC,globUtils:()=>Px});function Ice(t,e,r){let o=new ul.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof ul.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new cl(`Bad file descriptor: "${t}"`)}return o}function Qx(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function Tst(t,e,r){let o=[],a=new ul.PassThrough;return a.on("data",n=>o.push(n)),await kx(t,e,Qx(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function wce(t,e,r){let o=t.map(async n=>{let u=await Rd(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function bx(t){return t.match(/[^ \r\n\t]+/g)||[]}async function xce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=bx(n);for(let A=0;A<u.length-1;++A)a(u[A]);o(u[u.length-1])}break;case"*":{let n=e.args.join(" ");if(t.quoted)o(n);else for(let u of bx(n))a(u)}break;case"PPID":o(String(process.ppid));break;case"RANDOM":o(String(Math.floor(Math.random()*32768)));break;default:{let n=parseInt(t.name,10),u,A=Number.isFinite(n);if(A?n>=0&&n<e.args.length&&(u=e.args[n]):Object.prototype.hasOwnProperty.call(r.variables,t.name)?u=r.variables[t.name]:Object.prototype.hasOwnProperty.call(r.environment,t.name)&&(u=r.environment[t.name]),typeof u<"u"&&t.alternativeValue?u=(await Rd(t.alternativeValue,e,r)).join(" "):typeof u>"u"&&(t.defaultValue?u=(await Rd(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new cl(`Unbound argument #${n}`):new cl(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=bx(u);for(let E=0;E<p.length-1;++E)a(p[E]);let h=p[p.length-1];typeof h<"u"&&o(h)}}break}}async function E1(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let o=[];await xce({...t,quoted:!0},e,r,n=>o.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?E1({type:"variable",name:o.join(" ")},e,r):E1({type:"number",value:a},e,r)}else return Nst[t.type](await E1(t.left,e,r),await E1(t.right,e,r))}async function Rd(t,e,r){let o=new Map,a=[],n=[],u=E=>{n.push(E)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{u(E),A()},h=(E,w,v)=>{let b=JSON.stringify({type:E,fd:w}),C=o.get(b);typeof C>"u"&&o.set(b,C=[]),C.push(v)};for(let E of t){let w=!1;switch(E.type){case"redirection":{let v=await Rd(E.args,e,r);for(let b of v)h(E.subtype,E.fd,b)}break;case"argument":for(let v of E.segments)switch(v.type){case"text":u(v.text);break;case"glob":u(v.pattern),w=!0;break;case"shell":{let b=await Tst(v.shell,e,r);if(v.quoted)u(b);else{let C=bx(b);for(let R=0;R<C.length-1;++R)p(C[R]);u(C[C.length-1])}}break;case"variable":await xce(v,e,r,u,p);break;case"arithmetic":u(String(await E1(v.arithmetic,e,r)));break}break}if(A(),w){let v=a.pop();if(typeof v>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let b=await e.glob.match(v,{cwd:r.cwd,baseFs:e.baseFs});if(b.length===0){let C=cU(v)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new cl(`No matches found: "${v}"${C}`)}for(let C of b.sort())p(C)}}if(o.size>0){let E=[];for(let[w,v]of o.entries())E.splice(E.length,0,w,String(v.length),...v);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function I1(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let o=ue.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:o});let[n,...u]=t;if(n==="command")return yce(u[0],u.slice(1),e,{cwd:o,env:a});let A=e.builtins.get(n);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return Cce(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:w,stdout:v,stderr:b}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await A(u,e,r)}finally{r.stdin=w,r.stdout=v,r.stderr=b}})}function Lst(t,e,r){return o=>{let a=new ul.PassThrough,n=kx(t,e,Qx(r,{stdin:a}));return{stdin:a,promise:n}}}function Ost(t,e,r){return o=>{let a=new ul.PassThrough,n=kx(t,e,r);return{stdin:a,promise:n}}}function Bce(t,e,r,o){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.prototype.hasOwnProperty.call(o.procedures,a));return o.procedures={...o.procedures},o.procedures[a]=t,I1([...e,"__ysh_run_procedure",a],r,o)}}async function vce(t,e,r){let o=t,a=null,n=null;for(;o;){let u=o.then?{...r}:r,A;switch(o.type){case"command":{let p=await Rd(o.args,e,r),h=await wce(o.envs,e,r);A=o.envs.length?I1(p,e,Qx(u,{environment:h})):I1(p,e,u)}break;case"subshell":{let p=await Rd(o.args,e,r),h=Lst(o.subshell,e,u);A=Bce(h,p,e,u)}break;case"group":{let p=await Rd(o.args,e,r),h=Ost(o.group,e,u);A=Bce(h,p,e,u)}break;case"envs":{let p=await wce(o.envs,e,r);u.environment={...u.environment,...p},A=I1(["true"],e,u)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=xx(A,{stdin:new tc(u.stdin),stdout:new tc(u.stdout),stderr:new tc(u.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(A,1);break;case"|&":n=n.pipeTo(A,3);break}}o.then?(a=o.then.type,o=o.then.chain):o=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function Mst(t,e,r,{background:o=!1}={}){function a(n){let u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[n%u.length];return Dce.default.hex(A)}if(o){let n=r.nextBackgroundJobIndex++,u=a(n),A=`[${n}]`,p=u(A),{stdout:h,stderr:E}=Ece(r,{prefix:p});return r.backgroundJobs.push(vce(t,e,Qx(r,{stdout:h,stderr:E})).catch(w=>E.write(`${w.message} 159`),t.stderr.isTTY?e:null)}}var yce,oA,Ece,Rd,rc,hU,RE,gU=dt(()=>{yce=tt(eT()),oA=Ie("stream"),Ece=Ie("string_decoder"),Rd=new Set;rc=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},hU=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},RE=class{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new RE(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new RE(this,e),a=new hU;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var D1={};Yt(D1,{EntryCommand:()=>kE,ShellError:()=>ul,execute:()=>FE,globUtils:()=>bx});function Bce(t,e,r){let o=new Al.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof Al.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new ul(`Bad file descriptor: "${t}"`)}return o}function Fx(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function Mst(t,e,r){let o=[],a=new Al.PassThrough;return a.on("data",n=>o.push(n)),await Rx(t,e,Fx(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function vce(t,e,r){let o=t.map(async n=>{let u=await Td(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function kx(t){return t.match(/[^ \r\n\t]+/g)||[]}async function Qce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=kx(n);for(let A=0;A<u.length-1;++A)a(u[A]);o(u[u.length-1])}break;case"*":{let n=e.args.join(" ");if(t.quoted)o(n);else for(let u of kx(n))a(u)}break;case"PPID":o(String(process.ppid));break;case"RANDOM":o(String(Math.floor(Math.random()*32768)));break;default:{let n=parseInt(t.name,10),u,A=Number.isFinite(n);if(A?n>=0&&n<e.args.length&&(u=e.args[n]):Object.prototype.hasOwnProperty.call(r.variables,t.name)?u=r.variables[t.name]:Object.prototype.hasOwnProperty.call(r.environment,t.name)&&(u=r.environment[t.name]),typeof u<"u"&&t.alternativeValue?u=(await Td(t.alternativeValue,e,r)).join(" "):typeof u>"u"&&(t.defaultValue?u=(await Td(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new ul(`Unbound argument #${n}`):new ul(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=kx(u);for(let C=0;C<p.length-1;++C)a(p[C]);let h=p[p.length-1];typeof h<"u"&&o(h)}}break}}async function w1(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let o=[];await Qce({...t,quoted:!0},e,r,n=>o.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?w1({type:"variable",name:o.join(" ")},e,r):w1({type:"number",value:a},e,r)}else return Ust[t.type](await w1(t.left,e,r),await w1(t.right,e,r))}async function Td(t,e,r){let o=new Map,a=[],n=[],u=C=>{n.push(C)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=C=>{u(C),A()},h=(C,w,v)=>{let b=JSON.stringify({type:C,fd:w}),E=o.get(b);typeof E>"u"&&o.set(b,E=[]),E.push(v)};for(let C of t){let w=!1;switch(C.type){case"redirection":{let v=await Td(C.args,e,r);for(let b of v)h(C.subtype,C.fd,b)}break;case"argument":for(let v of C.segments)switch(v.type){case"text":u(v.text);break;case"glob":u(v.pattern),w=!0;break;case"shell":{let b=await Mst(v.shell,e,r);if(v.quoted)u(b);else{let E=kx(b);for(let R=0;R<E.length-1;++R)p(E[R]);u(E[E.length-1])}}break;case"variable":await Qce(v,e,r,u,p);break;case"arithmetic":u(String(await w1(v.arithmetic,e,r)));break}break}if(A(),w){let v=a.pop();if(typeof v>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let b=await e.glob.match(v,{cwd:r.cwd,baseFs:e.baseFs});if(b.length===0){let E=AU(v)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new ul(`No matches found: "${v}"${E}`)}for(let E of b.sort())p(E)}}if(o.size>0){let C=[];for(let[w,v]of o.entries())C.splice(C.length,0,w,String(v.length),...v);a.splice(0,0,"__ysh_set_redirects",...C,"--")}return a}function B1(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let o=ue.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:o});let[n,...u]=t;if(n==="command")return Cce(u[0],u.slice(1),e,{cwd:o,env:a});let A=e.builtins.get(n);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return Ice(async({stdin:p,stdout:h,stderr:C})=>{let{stdin:w,stdout:v,stderr:b}=r;r.stdin=p,r.stdout=h,r.stderr=C;try{return await A(u,e,r)}finally{r.stdin=w,r.stdout=v,r.stderr=b}})}function _st(t,e,r){return o=>{let a=new Al.PassThrough,n=Rx(t,e,Fx(r,{stdin:a}));return{stdin:a,promise:n}}}function Hst(t,e,r){return o=>{let a=new Al.PassThrough,n=Rx(t,e,r);return{stdin:a,promise:n}}}function Dce(t,e,r,o){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.prototype.hasOwnProperty.call(o.procedures,a));return o.procedures={...o.procedures},o.procedures[a]=t,B1([...e,"__ysh_run_procedure",a],r,o)}}async function Sce(t,e,r){let o=t,a=null,n=null;for(;o;){let u=o.then?{...r}:r,A;switch(o.type){case"command":{let p=await Td(o.args,e,r),h=await vce(o.envs,e,r);A=o.envs.length?B1(p,e,Fx(u,{environment:h})):B1(p,e,u)}break;case"subshell":{let p=await Td(o.args,e,r),h=_st(o.subshell,e,u);A=Dce(h,p,e,u)}break;case"group":{let p=await Td(o.args,e,r),h=Hst(o.group,e,u);A=Dce(h,p,e,u)}break;case"envs":{let p=await vce(o.envs,e,r);u.environment={...u.environment,...p},A=B1(["true"],e,u)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=Qx(A,{stdin:new rc(u.stdin),stdout:new rc(u.stdout),stderr:new rc(u.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(A,1);break;case"|&":n=n.pipeTo(A,3);break}}o.then?(a=o.then.type,o=o.then.chain):o=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function qst(t,e,r,{background:o=!1}={}){function a(n){let u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[n%u.length];return Pce.default.hex(A)}if(o){let n=r.nextBackgroundJobIndex++,u=a(n),A=`[${n}]`,p=u(A),{stdout:h,stderr:C}=wce(r,{prefix:p});return r.backgroundJobs.push(Sce(t,e,Fx(r,{stdout:h,stderr:C})).catch(w=>C.write(`${w.message}
160`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(py(t))}' has ended 160`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(py(t))}' has ended
161`)})),0}return await vce(t,e,r)}async function Ust(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await Mst(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof cl))throw p;return r.stderr.write(`${p.message} 161`)})),0}return await Sce(t,e,r)}async function jst(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await qst(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof ul))throw p;return r.stderr.write(`${p.message}
162`),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function kx(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await Ust(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function bce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>w1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>w1(e));case"arithmetic":return hU(t.arithmetic);case"shell":return gU(t.shell);default:return!1}}function w1(t){switch(t.type){case"redirection":return t.args.some(e=>w1(e));case"argument":return t.segments.some(e=>bce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function hU(t){switch(t.type){case"variable":return bce(t);case"number":return!1;default:return hU(t.left)||hU(t.right)}}function gU(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=gU(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>w1(n)))||r.args.some(a=>w1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function FC(t,e=[],{baseFs:r=new xn,builtins:o={},cwd:a=ue.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=Px}={}){let w={};for(let[C,R]of Object.entries(n))typeof R<"u"&&(w[C]=R);let v=new Map(Rst);for(let[C,R]of Object.entries(o))v.set(C,R);u===null&&(u=new ul.PassThrough,u.end());let b=DD(t,E);if(!gU(b)&&b.length>0&&e.length>0){let{command:C}=b[b.length-1];for(;C.then;)C=C.then.line;let R=C.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await kx(b,{args:e,baseFs:r,builtins:v,initialStdin:u,initialStdout:A,initialStderr:p,glob:E},{cwd:a,environment:w,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Dce,Sce,ul,Pce,Fst,Rst,Nst,C1=dt(()=>{bt();_l();Dce=tt(dN()),Sce=Ie("os"),ul=Ie("stream"),Pce=Ie("util");cce();uce();hce();pU();pU();Fst=(0,Pce.promisify)(setTimeout);Rst=new Map([["cd",async([t=(0,Sce.homedir)(),...e],r,o)=>{let a=z.resolve(o.cwd,ue.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new cl(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new cl(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${ue.fromPortablePath(r.cwd)} 162`),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function Rx(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await jst(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function kce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>v1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>v1(e));case"arithmetic":return dU(t.arithmetic);case"shell":return mU(t.shell);default:return!1}}function v1(t){switch(t.type){case"redirection":return t.args.some(e=>v1(e));case"argument":return t.segments.some(e=>kce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function dU(t){switch(t.type){case"variable":return kce(t);case"number":return!1;default:return dU(t.left)||dU(t.right)}}function mU(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=mU(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>v1(n)))||r.args.some(a=>v1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function FE(t,e=[],{baseFs:r=new xn,builtins:o={},cwd:a=ue.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:C=bx}={}){let w={};for(let[E,R]of Object.entries(n))typeof R<"u"&&(w[E]=R);let v=new Map(Ost);for(let[E,R]of Object.entries(o))v.set(E,R);u===null&&(u=new Al.PassThrough,u.end());let b=PD(t,C);if(!mU(b)&&b.length>0&&e.length>0){let{command:E}=b[b.length-1];for(;E.then;)E=E.then.line;let R=E.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await Rx(b,{args:e,baseFs:r,builtins:v,initialStdin:u,initialStdout:A,initialStderr:p,glob:C},{cwd:a,environment:w,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Pce,xce,Al,bce,Lst,Ost,Ust,I1=dt(()=>{St();Hl();Pce=tt(yN()),xce=Ie("os"),Al=Ie("stream"),bce=Ie("util");Ace();fce();dce();gU();gU();Lst=(0,bce.promisify)(setTimeout);Ost=new Map([["cd",async([t=(0,xce.homedir)(),...e],r,o)=>{let a=J.resolve(o.cwd,ue.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new ul(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new ul(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${ue.fromPortablePath(r.cwd)}
163`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} 163`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")}
164`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new cl("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new cl(`sleep: invalid time interval '${t}'`);return await Fst(1e3*o,0)}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await xx(o,{stdin:new tc(r.stdin),stdout:new tc(r.stdout),stderr:new tc(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let w=t[h++],{type:v,fd:b}=JSON.parse(w),C=V=>{switch(b){case null:case 0:u.push(V);break;default:throw new Error(`Unsupported file descriptor: "${b}"`)}},R=V=>{switch(b){case null:case 1:A.push(V);break;case 2:p.push(V);break;default:throw new Error(`Unsupported file descriptor: "${b}"`)}},L=Number(t[h++]),_=h+L;for(let V=h;V<_;++h,++V)switch(v){case"<":C(()=>e.baseFs.createReadStream(z.resolve(r.cwd,ue.toPortablePath(t[V]))));break;case"<<<":C(()=>{let re=new ul.PassThrough;return process.nextTick(()=>{re.write(`${t[V]} 164`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new ul("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new ul(`sleep: invalid time interval '${t}'`);return await Lst(1e3*o,0)}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await Qx(o,{stdin:new rc(r.stdin),stdout:new rc(r.stdout),stderr:new rc(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let w=t[h++],{type:v,fd:b}=JSON.parse(w),E=V=>{switch(b){case null:case 0:u.push(V);break;default:throw new Error(`Unsupported file descriptor: "${b}"`)}},R=V=>{switch(b){case null:case 1:A.push(V);break;case 2:p.push(V);break;default:throw new Error(`Unsupported file descriptor: "${b}"`)}},L=Number(t[h++]),_=h+L;for(let V=h;V<_;++h,++V)switch(v){case"<":E(()=>e.baseFs.createReadStream(J.resolve(r.cwd,ue.toPortablePath(t[V]))));break;case"<<<":E(()=>{let re=new Al.PassThrough;return process.nextTick(()=>{re.write(`${t[V]}
165`),re.end()}),re});break;case"<&":C(()=>Ice(Number(t[V]),1,r));break;case">":case">>":{let re=z.resolve(r.cwd,ue.toPortablePath(t[V]));R(re==="/dev/null"?new ul.Writable({autoDestroy:!0,emitClose:!0,write(oe,pe,he){setImmediate(he)}}):e.baseFs.createWriteStream(re,v===">>"?{flags:"a"}:void 0))}break;case">&":R(Ice(Number(t[V]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${v}"`)}}if(u.length>0){let w=new ul.PassThrough;o=w;let v=b=>{if(b===u.length)w.end();else{let C=u[b]();C.pipe(w,{end:!1}),C.on("end",()=>{v(b+1)})}};v(0)}if(A.length>0){let w=new ul.PassThrough;a=w;for(let v of A)w.pipe(v)}if(p.length>0){let w=new ul.PassThrough;n=w;for(let v of p)w.pipe(v)}let E=await xx(I1(t.slice(h+1),e,r),{stdin:new tc(o),stdout:new tc(a),stderr:new tc(n)}).run();return await Promise.all(A.map(w=>new Promise((v,b)=>{w.on("error",C=>{b(C)}),w.on("close",()=>{v()}),w.end()}))),await Promise.all(p.map(w=>new Promise((v,b)=>{w.on("error",C=>{b(C)}),w.on("close",()=>{v()}),w.end()}))),E}]]);Nst={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var Fx=U((cMt,Qce)=>{function _st(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r<o;)a[r]=e(t[r],r,t);return a}Qce.exports=_st});var Lce=U((uMt,Nce)=>{var kce=fd(),Hst=Fx(),qst=Yl(),jst=AC(),Gst=1/0,Fce=kce?kce.prototype:void 0,Rce=Fce?Fce.toString:void 0;function Tce(t){if(typeof t=="string")return t;if(qst(t))return Hst(t,Tce)+"";if(jst(t))return Rce?Rce.call(t):"";var e=t+"";return e=="0"&&1/t==-Gst?"-0":e}Nce.exports=Tce});var v1=U((AMt,Oce)=>{var Wst=Lce();function Yst(t){return t==null?"":Wst(t)}Oce.exports=Yst});var dU=U((fMt,Mce)=>{function Kst(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o<a;)n[o]=t[o+e];return n}Mce.exports=Kst});var _ce=U((pMt,Uce)=>{var Vst=dU();function Jst(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:Vst(t,e,r)}Uce.exports=Jst});var mU=U((hMt,Hce)=>{var zst="\\ud800-\\udfff",Xst="\\u0300-\\u036f",Zst="\\ufe20-\\ufe2f",$st="\\u20d0-\\u20ff",eot=Xst+Zst+$st,tot="\\ufe0e\\ufe0f",rot="\\u200d",not=RegExp("["+rot+zst+eot+tot+"]");function iot(t){return not.test(t)}Hce.exports=iot});var jce=U((gMt,qce)=>{function sot(t){return t.split("")}qce.exports=sot});var Xce=U((dMt,zce)=>{var Gce="\\ud800-\\udfff",oot="\\u0300-\\u036f",aot="\\ufe20-\\ufe2f",lot="\\u20d0-\\u20ff",cot=oot+aot+lot,uot="\\ufe0e\\ufe0f",Aot="["+Gce+"]",yU="["+cot+"]",CU="\\ud83c[\\udffb-\\udfff]",fot="(?:"+yU+"|"+CU+")",Wce="[^"+Gce+"]",Yce="(?:\\ud83c[\\udde6-\\uddff]){2}",Kce="[\\ud800-\\udbff][\\udc00-\\udfff]",pot="\\u200d",Vce=fot+"?",Jce="["+uot+"]?",hot="(?:"+pot+"(?:"+[Wce,Yce,Kce].join("|")+")"+Jce+Vce+")*",got=Jce+Vce+hot,dot="(?:"+[Wce+yU+"?",yU,Yce,Kce,Aot].join("|")+")",mot=RegExp(CU+"(?="+CU+")|"+dot+got,"g");function yot(t){return t.match(mot)||[]}zce.exports=yot});var $ce=U((mMt,Zce)=>{var Cot=jce(),Eot=mU(),Iot=Xce();function wot(t){return Eot(t)?Iot(t):Cot(t)}Zce.exports=wot});var tue=U((yMt,eue)=>{var Bot=_ce(),vot=mU(),Dot=$ce(),Sot=v1();function Pot(t){return function(e){e=Sot(e);var r=vot(e)?Dot(e):void 0,o=r?r[0]:e.charAt(0),a=r?Bot(r,1).join(""):e.slice(1);return o[t]()+a}}eue.exports=Pot});var nue=U((CMt,rue)=>{var xot=tue(),bot=xot("toUpperCase");rue.exports=bot});var EU=U((EMt,iue)=>{var Qot=v1(),kot=nue();function Fot(t){return kot(Qot(t).toLowerCase())}iue.exports=Fot});var sue=U((IMt,Rx)=>{function Rot(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,E=10,w=11,v=12,b=13,C=14,R=15,L=16,_=17,V=0,re=1,oe=2,pe=3,he=4;function ve(g,De){return 55296<=g.charCodeAt(De)&&g.charCodeAt(De)<=56319&&56320<=g.charCodeAt(De+1)&&g.charCodeAt(De+1)<=57343}function ge(g,De){De===void 0&&(De=0);var Ce=g.charCodeAt(De);if(55296<=Ce&&Ce<=56319&&De<g.length-1){var de=Ce,ne=g.charCodeAt(De+1);return 56320<=ne&&ne<=57343?(de-55296)*1024+(ne-56320)+65536:de}if(56320<=Ce&&Ce<=57343&&De>=1){var de=g.charCodeAt(De-1),ne=Ce;return 55296<=de&&de<=56319?(de-55296)*1024+(ne-56320)+65536:ne}return Ce}function le(g,De,Ce){var de=[g].concat(De).concat([Ce]),ne=de[de.length-2],Z=Ce,me=de.lastIndexOf(C);if(me>1&&de.slice(1,me).every(function(H){return H==o})&&[o,b,_].indexOf(g)==-1)return oe;var be=de.lastIndexOf(a);if(be>0&&de.slice(1,be).every(function(H){return H==a})&&[v,a].indexOf(ne)==-1)return de.filter(function(H){return H==a}).length%2==1?pe:he;if(ne==t&&Z==e)return V;if(ne==r||ne==t||ne==e)return Z==C&&De.every(function(H){return H==o})?oe:re;if(Z==r||Z==t||Z==e)return re;if(ne==u&&(Z==u||Z==A||Z==h||Z==E))return V;if((ne==h||ne==A)&&(Z==A||Z==p))return V;if((ne==E||ne==p)&&Z==p)return V;if(Z==o||Z==R)return V;if(Z==n)return V;if(ne==v)return V;var ut=de.indexOf(o)!=-1?de.lastIndexOf(o)-1:de.length-2;return[b,_].indexOf(de[ut])!=-1&&de.slice(ut+1,-1).every(function(H){return H==o})&&Z==C||ne==R&&[L,_].indexOf(Z)!=-1?V:De.indexOf(a)!=-1?oe:ne==a&&Z==a?V:re}this.nextBreak=function(g,De){if(De===void 0&&(De=0),De<0)return 0;if(De>=g.length-1)return g.length;for(var Ce=Pe(ge(g,De)),de=[],ne=De+1;ne<g.length;ne++)if(!ve(g,ne-1)){var Z=Pe(ge(g,ne));if(le(Ce,de,Z))return ne;de.push(Z)}return g.length},this.splitGraphemes=function(g){for(var De=[],Ce=0,de;(de=this.nextBreak(g,Ce))<g.length;)De.push(g.slice(Ce,de)),Ce=de;return Ce<g.length&&De.push(g.slice(Ce)),De},this.iterateGraphemes=function(g){var De=0,Ce={next:function(){var de,ne;return(ne=this.nextBreak(g,De))<g.length?(de=g.slice(De,ne),De=ne,{value:de,done:!1}):De<g.length?(de=g.slice(De),De=g.length,{value:de,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(Ce[Symbol.iterator]=function(){return Ce}),Ce},this.countGraphemes=function(g){for(var De=0,Ce=0,de;(de=this.nextBreak(g,Ce))<g.length;)Ce=de,De++;return Ce<g.length&&De++,De};function Pe(g){return 1536<=g&&g<=1541||g==1757||g==1807||g==2274||g==3406||g==69821||70082<=g&&g<=70083||g==72250||72326<=g&&g<=72329||g==73030?v:g==13?t:g==10?e:0<=g&&g<=9||11<=g&&g<=12||14<=g&&g<=31||127<=g&&g<=159||g==173||g==1564||g==6158||g==8203||8206<=g&&g<=8207||g==8232||g==8233||8234<=g&&g<=8238||8288<=g&&g<=8292||g==8293||8294<=g&&g<=8303||55296<=g&&g<=57343||g==65279||65520<=g&&g<=65528||65529<=g&&g<=65531||113824<=g&&g<=113827||119155<=g&&g<=119162||g==917504||g==917505||917506<=g&&g<=917535||917632<=g&&g<=917759||918e3<=g&&g<=921599?r:768<=g&&g<=879||1155<=g&&g<=1159||1160<=g&&g<=1161||1425<=g&&g<=1469||g==1471||1473<=g&&g<=1474||1476<=g&&g<=1477||g==1479||1552<=g&&g<=1562||1611<=g&&g<=1631||g==1648||1750<=g&&g<=1756||1759<=g&&g<=1764||1767<=g&&g<=1768||1770<=g&&g<=1773||g==1809||1840<=g&&g<=1866||1958<=g&&g<=1968||2027<=g&&g<=2035||2070<=g&&g<=2073||2075<=g&&g<=2083||2085<=g&&g<=2087||2089<=g&&g<=2093||2137<=g&&g<=2139||2260<=g&&g<=2273||2275<=g&&g<=2306||g==2362||g==2364||2369<=g&&g<=2376||g==2381||2385<=g&&g<=2391||2402<=g&&g<=2403||g==2433||g==2492||g==2494||2497<=g&&g<=2500||g==2509||g==2519||2530<=g&&g<=2531||2561<=g&&g<=2562||g==2620||2625<=g&&g<=2626||2631<=g&&g<=2632||2635<=g&&g<=2637||g==2641||2672<=g&&g<=2673||g==2677||2689<=g&&g<=2690||g==2748||2753<=g&&g<=2757||2759<=g&&g<=2760||g==2765||2786<=g&&g<=2787||2810<=g&&g<=2815||g==2817||g==2876||g==2878||g==2879||2881<=g&&g<=2884||g==2893||g==2902||g==2903||2914<=g&&g<=2915||g==2946||g==3006||g==3008||g==3021||g==3031||g==3072||3134<=g&&g<=3136||3142<=g&&g<=3144||3146<=g&&g<=3149||3157<=g&&g<=3158||3170<=g&&g<=3171||g==3201||g==3260||g==3263||g==3266||g==3270||3276<=g&&g<=3277||3285<=g&&g<=3286||3298<=g&&g<=3299||3328<=g&&g<=3329||3387<=g&&g<=3388||g==3390||3393<=g&&g<=3396||g==3405||g==3415||3426<=g&&g<=3427||g==3530||g==3535||3538<=g&&g<=3540||g==3542||g==3551||g==3633||3636<=g&&g<=3642||3655<=g&&g<=3662||g==3761||3764<=g&&g<=3769||3771<=g&&g<=3772||3784<=g&&g<=3789||3864<=g&&g<=3865||g==3893||g==3895||g==3897||3953<=g&&g<=3966||3968<=g&&g<=3972||3974<=g&&g<=3975||3981<=g&&g<=3991||3993<=g&&g<=4028||g==4038||4141<=g&&g<=4144||4146<=g&&g<=4151||4153<=g&&g<=4154||4157<=g&&g<=4158||4184<=g&&g<=4185||4190<=g&&g<=4192||4209<=g&&g<=4212||g==4226||4229<=g&&g<=4230||g==4237||g==4253||4957<=g&&g<=4959||5906<=g&&g<=5908||5938<=g&&g<=5940||5970<=g&&g<=5971||6002<=g&&g<=6003||6068<=g&&g<=6069||6071<=g&&g<=6077||g==6086||6089<=g&&g<=6099||g==6109||6155<=g&&g<=6157||6277<=g&&g<=6278||g==6313||6432<=g&&g<=6434||6439<=g&&g<=6440||g==6450||6457<=g&&g<=6459||6679<=g&&g<=6680||g==6683||g==6742||6744<=g&&g<=6750||g==6752||g==6754||6757<=g&&g<=6764||6771<=g&&g<=6780||g==6783||6832<=g&&g<=6845||g==6846||6912<=g&&g<=6915||g==6964||6966<=g&&g<=6970||g==6972||g==6978||7019<=g&&g<=7027||7040<=g&&g<=7041||7074<=g&&g<=7077||7080<=g&&g<=7081||7083<=g&&g<=7085||g==7142||7144<=g&&g<=7145||g==7149||7151<=g&&g<=7153||7212<=g&&g<=7219||7222<=g&&g<=7223||7376<=g&&g<=7378||7380<=g&&g<=7392||7394<=g&&g<=7400||g==7405||g==7412||7416<=g&&g<=7417||7616<=g&&g<=7673||7675<=g&&g<=7679||g==8204||8400<=g&&g<=8412||8413<=g&&g<=8416||g==8417||8418<=g&&g<=8420||8421<=g&&g<=8432||11503<=g&&g<=11505||g==11647||11744<=g&&g<=11775||12330<=g&&g<=12333||12334<=g&&g<=12335||12441<=g&&g<=12442||g==42607||42608<=g&&g<=42610||42612<=g&&g<=42621||42654<=g&&g<=42655||42736<=g&&g<=42737||g==43010||g==43014||g==43019||43045<=g&&g<=43046||43204<=g&&g<=43205||43232<=g&&g<=43249||43302<=g&&g<=43309||43335<=g&&g<=43345||43392<=g&&g<=43394||g==43443||43446<=g&&g<=43449||g==43452||g==43493||43561<=g&&g<=43566||43569<=g&&g<=43570||43573<=g&&g<=43574||g==43587||g==43596||g==43644||g==43696||43698<=g&&g<=43700||43703<=g&&g<=43704||43710<=g&&g<=43711||g==43713||43756<=g&&g<=43757||g==43766||g==44005||g==44008||g==44013||g==64286||65024<=g&&g<=65039||65056<=g&&g<=65071||65438<=g&&g<=65439||g==66045||g==66272||66422<=g&&g<=66426||68097<=g&&g<=68099||68101<=g&&g<=68102||68108<=g&&g<=68111||68152<=g&&g<=68154||g==68159||68325<=g&&g<=68326||g==69633||69688<=g&&g<=69702||69759<=g&&g<=69761||69811<=g&&g<=69814||69817<=g&&g<=69818||69888<=g&&g<=69890||69927<=g&&g<=69931||69933<=g&&g<=69940||g==70003||70016<=g&&g<=70017||70070<=g&&g<=70078||70090<=g&&g<=70092||70191<=g&&g<=70193||g==70196||70198<=g&&g<=70199||g==70206||g==70367||70371<=g&&g<=70378||70400<=g&&g<=70401||g==70460||g==70462||g==70464||g==70487||70502<=g&&g<=70508||70512<=g&&g<=70516||70712<=g&&g<=70719||70722<=g&&g<=70724||g==70726||g==70832||70835<=g&&g<=70840||g==70842||g==70845||70847<=g&&g<=70848||70850<=g&&g<=70851||g==71087||71090<=g&&g<=71093||71100<=g&&g<=71101||71103<=g&&g<=71104||71132<=g&&g<=71133||71219<=g&&g<=71226||g==71229||71231<=g&&g<=71232||g==71339||g==71341||71344<=g&&g<=71349||g==71351||71453<=g&&g<=71455||71458<=g&&g<=71461||71463<=g&&g<=71467||72193<=g&&g<=72198||72201<=g&&g<=72202||72243<=g&&g<=72248||72251<=g&&g<=72254||g==72263||72273<=g&&g<=72278||72281<=g&&g<=72283||72330<=g&&g<=72342||72344<=g&&g<=72345||72752<=g&&g<=72758||72760<=g&&g<=72765||g==72767||72850<=g&&g<=72871||72874<=g&&g<=72880||72882<=g&&g<=72883||72885<=g&&g<=72886||73009<=g&&g<=73014||g==73018||73020<=g&&g<=73021||73023<=g&&g<=73029||g==73031||92912<=g&&g<=92916||92976<=g&&g<=92982||94095<=g&&g<=94098||113821<=g&&g<=113822||g==119141||119143<=g&&g<=119145||119150<=g&&g<=119154||119163<=g&&g<=119170||119173<=g&&g<=119179||119210<=g&&g<=119213||119362<=g&&g<=119364||121344<=g&&g<=121398||121403<=g&&g<=121452||g==121461||g==121476||121499<=g&&g<=121503||121505<=g&&g<=121519||122880<=g&&g<=122886||122888<=g&&g<=122904||122907<=g&&g<=122913||122915<=g&&g<=122916||122918<=g&&g<=122922||125136<=g&&g<=125142||125252<=g&&g<=125258||917536<=g&&g<=917631||917760<=g&&g<=917999?o:127462<=g&&g<=127487?a:g==2307||g==2363||2366<=g&&g<=2368||2377<=g&&g<=2380||2382<=g&&g<=2383||2434<=g&&g<=2435||2495<=g&&g<=2496||2503<=g&&g<=2504||2507<=g&&g<=2508||g==2563||2622<=g&&g<=2624||g==2691||2750<=g&&g<=2752||g==2761||2763<=g&&g<=2764||2818<=g&&g<=2819||g==2880||2887<=g&&g<=2888||2891<=g&&g<=2892||g==3007||3009<=g&&g<=3010||3014<=g&&g<=3016||3018<=g&&g<=3020||3073<=g&&g<=3075||3137<=g&&g<=3140||3202<=g&&g<=3203||g==3262||3264<=g&&g<=3265||3267<=g&&g<=3268||3271<=g&&g<=3272||3274<=g&&g<=3275||3330<=g&&g<=3331||3391<=g&&g<=3392||3398<=g&&g<=3400||3402<=g&&g<=3404||3458<=g&&g<=3459||3536<=g&&g<=3537||3544<=g&&g<=3550||3570<=g&&g<=3571||g==3635||g==3763||3902<=g&&g<=3903||g==3967||g==4145||4155<=g&&g<=4156||4182<=g&&g<=4183||g==4228||g==6070||6078<=g&&g<=6085||6087<=g&&g<=6088||6435<=g&&g<=6438||6441<=g&&g<=6443||6448<=g&&g<=6449||6451<=g&&g<=6456||6681<=g&&g<=6682||g==6741||g==6743||6765<=g&&g<=6770||g==6916||g==6965||g==6971||6973<=g&&g<=6977||6979<=g&&g<=6980||g==7042||g==7073||7078<=g&&g<=7079||g==7082||g==7143||7146<=g&&g<=7148||g==7150||7154<=g&&g<=7155||7204<=g&&g<=7211||7220<=g&&g<=7221||g==7393||7410<=g&&g<=7411||g==7415||43043<=g&&g<=43044||g==43047||43136<=g&&g<=43137||43188<=g&&g<=43203||43346<=g&&g<=43347||g==43395||43444<=g&&g<=43445||43450<=g&&g<=43451||43453<=g&&g<=43456||43567<=g&&g<=43568||43571<=g&&g<=43572||g==43597||g==43755||43758<=g&&g<=43759||g==43765||44003<=g&&g<=44004||44006<=g&&g<=44007||44009<=g&&g<=44010||g==44012||g==69632||g==69634||g==69762||69808<=g&&g<=69810||69815<=g&&g<=69816||g==69932||g==70018||70067<=g&&g<=70069||70079<=g&&g<=70080||70188<=g&&g<=70190||70194<=g&&g<=70195||g==70197||70368<=g&&g<=70370||70402<=g&&g<=70403||g==70463||70465<=g&&g<=70468||70471<=g&&g<=70472||70475<=g&&g<=70477||70498<=g&&g<=70499||70709<=g&&g<=70711||70720<=g&&g<=70721||g==70725||70833<=g&&g<=70834||g==70841||70843<=g&&g<=70844||g==70846||g==70849||71088<=g&&g<=71089||71096<=g&&g<=71099||g==71102||71216<=g&&g<=71218||71227<=g&&g<=71228||g==71230||g==71340||71342<=g&&g<=71343||g==71350||71456<=g&&g<=71457||g==71462||72199<=g&&g<=72200||g==72249||72279<=g&&g<=72280||g==72343||g==72751||g==72766||g==72873||g==72881||g==72884||94033<=g&&g<=94078||g==119142||g==119149?n:4352<=g&&g<=4447||43360<=g&&g<=43388?u:4448<=g&&g<=4519||55216<=g&&g<=55238?A:4520<=g&&g<=4607||55243<=g&&g<=55291?p:g==44032||g==44060||g==44088||g==44116||g==44144||g==44172||g==44200||g==44228||g==44256||g==44284||g==44312||g==44340||g==44368||g==44396||g==44424||g==44452||g==44480||g==44508||g==44536||g==44564||g==44592||g==44620||g==44648||g==44676||g==44704||g==44732||g==44760||g==44788||g==44816||g==44844||g==44872||g==44900||g==44928||g==44956||g==44984||g==45012||g==45040||g==45068||g==45096||g==45124||g==45152||g==45180||g==45208||g==45236||g==45264||g==45292||g==45320||g==45348||g==45376||g==45404||g==45432||g==45460||g==45488||g==45516||g==45544||g==45572||g==45600||g==45628||g==45656||g==45684||g==45712||g==45740||g==45768||g==45796||g==45824||g==45852||g==45880||g==45908||g==45936||g==45964||g==45992||g==46020||g==46048||g==46076||g==46104||g==46132||g==46160||g==46188||g==46216||g==46244||g==46272||g==46300||g==46328||g==46356||g==46384||g==46412||g==46440||g==46468||g==46496||g==46524||g==46552||g==46580||g==46608||g==46636||g==46664||g==46692||g==46720||g==46748||g==46776||g==46804||g==46832||g==46860||g==46888||g==46916||g==46944||g==46972||g==47e3||g==47028||g==47056||g==47084||g==47112||g==47140||g==47168||g==47196||g==47224||g==47252||g==47280||g==47308||g==47336||g==47364||g==47392||g==47420||g==47448||g==47476||g==47504||g==47532||g==47560||g==47588||g==47616||g==47644||g==47672||g==47700||g==47728||g==47756||g==47784||g==47812||g==47840||g==47868||g==47896||g==47924||g==47952||g==47980||g==48008||g==48036||g==48064||g==48092||g==48120||g==48148||g==48176||g==48204||g==48232||g==48260||g==48288||g==48316||g==48344||g==48372||g==48400||g==48428||g==48456||g==48484||g==48512||g==48540||g==48568||g==48596||g==48624||g==48652||g==48680||g==48708||g==48736||g==48764||g==48792||g==48820||g==48848||g==48876||g==48904||g==48932||g==48960||g==48988||g==49016||g==49044||g==49072||g==49100||g==49128||g==49156||g==49184||g==49212||g==49240||g==49268||g==49296||g==49324||g==49352||g==49380||g==49408||g==49436||g==49464||g==49492||g==49520||g==49548||g==49576||g==49604||g==49632||g==49660||g==49688||g==49716||g==49744||g==49772||g==49800||g==49828||g==49856||g==49884||g==49912||g==49940||g==49968||g==49996||g==50024||g==50052||g==50080||g==50108||g==50136||g==50164||g==50192||g==50220||g==50248||g==50276||g==50304||g==50332||g==50360||g==50388||g==50416||g==50444||g==50472||g==50500||g==50528||g==50556||g==50584||g==50612||g==50640||g==50668||g==50696||g==50724||g==50752||g==50780||g==50808||g==50836||g==50864||g==50892||g==50920||g==50948||g==50976||g==51004||g==51032||g==51060||g==51088||g==51116||g==51144||g==51172||g==51200||g==51228||g==51256||g==51284||g==51312||g==51340||g==51368||g==51396||g==51424||g==51452||g==51480||g==51508||g==51536||g==51564||g==51592||g==51620||g==51648||g==51676||g==51704||g==51732||g==51760||g==51788||g==51816||g==51844||g==51872||g==51900||g==51928||g==51956||g==51984||g==52012||g==52040||g==52068||g==52096||g==52124||g==52152||g==52180||g==52208||g==52236||g==52264||g==52292||g==52320||g==52348||g==52376||g==52404||g==52432||g==52460||g==52488||g==52516||g==52544||g==52572||g==52600||g==52628||g==52656||g==52684||g==52712||g==52740||g==52768||g==52796||g==52824||g==52852||g==52880||g==52908||g==52936||g==52964||g==52992||g==53020||g==53048||g==53076||g==53104||g==53132||g==53160||g==53188||g==53216||g==53244||g==53272||g==53300||g==53328||g==53356||g==53384||g==53412||g==53440||g==53468||g==53496||g==53524||g==53552||g==53580||g==53608||g==53636||g==53664||g==53692||g==53720||g==53748||g==53776||g==53804||g==53832||g==53860||g==53888||g==53916||g==53944||g==53972||g==54e3||g==54028||g==54056||g==54084||g==54112||g==54140||g==54168||g==54196||g==54224||g==54252||g==54280||g==54308||g==54336||g==54364||g==54392||g==54420||g==54448||g==54476||g==54504||g==54532||g==54560||g==54588||g==54616||g==54644||g==54672||g==54700||g==54728||g==54756||g==54784||g==54812||g==54840||g==54868||g==54896||g==54924||g==54952||g==54980||g==55008||g==55036||g==55064||g==55092||g==55120||g==55148||g==55176?h:44033<=g&&g<=44059||44061<=g&&g<=44087||44089<=g&&g<=44115||44117<=g&&g<=44143||44145<=g&&g<=44171||44173<=g&&g<=44199||44201<=g&&g<=44227||44229<=g&&g<=44255||44257<=g&&g<=44283||44285<=g&&g<=44311||44313<=g&&g<=44339||44341<=g&&g<=44367||44369<=g&&g<=44395||44397<=g&&g<=44423||44425<=g&&g<=44451||44453<=g&&g<=44479||44481<=g&&g<=44507||44509<=g&&g<=44535||44537<=g&&g<=44563||44565<=g&&g<=44591||44593<=g&&g<=44619||44621<=g&&g<=44647||44649<=g&&g<=44675||44677<=g&&g<=44703||44705<=g&&g<=44731||44733<=g&&g<=44759||44761<=g&&g<=44787||44789<=g&&g<=44815||44817<=g&&g<=44843||44845<=g&&g<=44871||44873<=g&&g<=44899||44901<=g&&g<=44927||44929<=g&&g<=44955||44957<=g&&g<=44983||44985<=g&&g<=45011||45013<=g&&g<=45039||45041<=g&&g<=45067||45069<=g&&g<=45095||45097<=g&&g<=45123||45125<=g&&g<=45151||45153<=g&&g<=45179||45181<=g&&g<=45207||45209<=g&&g<=45235||45237<=g&&g<=45263||45265<=g&&g<=45291||45293<=g&&g<=45319||45321<=g&&g<=45347||45349<=g&&g<=45375||45377<=g&&g<=45403||45405<=g&&g<=45431||45433<=g&&g<=45459||45461<=g&&g<=45487||45489<=g&&g<=45515||45517<=g&&g<=45543||45545<=g&&g<=45571||45573<=g&&g<=45599||45601<=g&&g<=45627||45629<=g&&g<=45655||45657<=g&&g<=45683||45685<=g&&g<=45711||45713<=g&&g<=45739||45741<=g&&g<=45767||45769<=g&&g<=45795||45797<=g&&g<=45823||45825<=g&&g<=45851||45853<=g&&g<=45879||45881<=g&&g<=45907||45909<=g&&g<=45935||45937<=g&&g<=45963||45965<=g&&g<=45991||45993<=g&&g<=46019||46021<=g&&g<=46047||46049<=g&&g<=46075||46077<=g&&g<=46103||46105<=g&&g<=46131||46133<=g&&g<=46159||46161<=g&&g<=46187||46189<=g&&g<=46215||46217<=g&&g<=46243||46245<=g&&g<=46271||46273<=g&&g<=46299||46301<=g&&g<=46327||46329<=g&&g<=46355||46357<=g&&g<=46383||46385<=g&&g<=46411||46413<=g&&g<=46439||46441<=g&&g<=46467||46469<=g&&g<=46495||46497<=g&&g<=46523||46525<=g&&g<=46551||46553<=g&&g<=46579||46581<=g&&g<=46607||46609<=g&&g<=46635||46637<=g&&g<=46663||46665<=g&&g<=46691||46693<=g&&g<=46719||46721<=g&&g<=46747||46749<=g&&g<=46775||46777<=g&&g<=46803||46805<=g&&g<=46831||46833<=g&&g<=46859||46861<=g&&g<=46887||46889<=g&&g<=46915||46917<=g&&g<=46943||46945<=g&&g<=46971||46973<=g&&g<=46999||47001<=g&&g<=47027||47029<=g&&g<=47055||47057<=g&&g<=47083||47085<=g&&g<=47111||47113<=g&&g<=47139||47141<=g&&g<=47167||47169<=g&&g<=47195||47197<=g&&g<=47223||47225<=g&&g<=47251||47253<=g&&g<=47279||47281<=g&&g<=47307||47309<=g&&g<=47335||47337<=g&&g<=47363||47365<=g&&g<=47391||47393<=g&&g<=47419||47421<=g&&g<=47447||47449<=g&&g<=47475||47477<=g&&g<=47503||47505<=g&&g<=47531||47533<=g&&g<=47559||47561<=g&&g<=47587||47589<=g&&g<=47615||47617<=g&&g<=47643||47645<=g&&g<=47671||47673<=g&&g<=47699||47701<=g&&g<=47727||47729<=g&&g<=47755||47757<=g&&g<=47783||47785<=g&&g<=47811||47813<=g&&g<=47839||47841<=g&&g<=47867||47869<=g&&g<=47895||47897<=g&&g<=47923||47925<=g&&g<=47951||47953<=g&&g<=47979||47981<=g&&g<=48007||48009<=g&&g<=48035||48037<=g&&g<=48063||48065<=g&&g<=48091||48093<=g&&g<=48119||48121<=g&&g<=48147||48149<=g&&g<=48175||48177<=g&&g<=48203||48205<=g&&g<=48231||48233<=g&&g<=48259||48261<=g&&g<=48287||48289<=g&&g<=48315||48317<=g&&g<=48343||48345<=g&&g<=48371||48373<=g&&g<=48399||48401<=g&&g<=48427||48429<=g&&g<=48455||48457<=g&&g<=48483||48485<=g&&g<=48511||48513<=g&&g<=48539||48541<=g&&g<=48567||48569<=g&&g<=48595||48597<=g&&g<=48623||48625<=g&&g<=48651||48653<=g&&g<=48679||48681<=g&&g<=48707||48709<=g&&g<=48735||48737<=g&&g<=48763||48765<=g&&g<=48791||48793<=g&&g<=48819||48821<=g&&g<=48847||48849<=g&&g<=48875||48877<=g&&g<=48903||48905<=g&&g<=48931||48933<=g&&g<=48959||48961<=g&&g<=48987||48989<=g&&g<=49015||49017<=g&&g<=49043||49045<=g&&g<=49071||49073<=g&&g<=49099||49101<=g&&g<=49127||49129<=g&&g<=49155||49157<=g&&g<=49183||49185<=g&&g<=49211||49213<=g&&g<=49239||49241<=g&&g<=49267||49269<=g&&g<=49295||49297<=g&&g<=49323||49325<=g&&g<=49351||49353<=g&&g<=49379||49381<=g&&g<=49407||49409<=g&&g<=49435||49437<=g&&g<=49463||49465<=g&&g<=49491||49493<=g&&g<=49519||49521<=g&&g<=49547||49549<=g&&g<=49575||49577<=g&&g<=49603||49605<=g&&g<=49631||49633<=g&&g<=49659||49661<=g&&g<=49687||49689<=g&&g<=49715||49717<=g&&g<=49743||49745<=g&&g<=49771||49773<=g&&g<=49799||49801<=g&&g<=49827||49829<=g&&g<=49855||49857<=g&&g<=49883||49885<=g&&g<=49911||49913<=g&&g<=49939||49941<=g&&g<=49967||49969<=g&&g<=49995||49997<=g&&g<=50023||50025<=g&&g<=50051||50053<=g&&g<=50079||50081<=g&&g<=50107||50109<=g&&g<=50135||50137<=g&&g<=50163||50165<=g&&g<=50191||50193<=g&&g<=50219||50221<=g&&g<=50247||50249<=g&&g<=50275||50277<=g&&g<=50303||50305<=g&&g<=50331||50333<=g&&g<=50359||50361<=g&&g<=50387||50389<=g&&g<=50415||50417<=g&&g<=50443||50445<=g&&g<=50471||50473<=g&&g<=50499||50501<=g&&g<=50527||50529<=g&&g<=50555||50557<=g&&g<=50583||50585<=g&&g<=50611||50613<=g&&g<=50639||50641<=g&&g<=50667||50669<=g&&g<=50695||50697<=g&&g<=50723||50725<=g&&g<=50751||50753<=g&&g<=50779||50781<=g&&g<=50807||50809<=g&&g<=50835||50837<=g&&g<=50863||50865<=g&&g<=50891||50893<=g&&g<=50919||50921<=g&&g<=50947||50949<=g&&g<=50975||50977<=g&&g<=51003||51005<=g&&g<=51031||51033<=g&&g<=51059||51061<=g&&g<=51087||51089<=g&&g<=51115||51117<=g&&g<=51143||51145<=g&&g<=51171||51173<=g&&g<=51199||51201<=g&&g<=51227||51229<=g&&g<=51255||51257<=g&&g<=51283||51285<=g&&g<=51311||51313<=g&&g<=51339||51341<=g&&g<=51367||51369<=g&&g<=51395||51397<=g&&g<=51423||51425<=g&&g<=51451||51453<=g&&g<=51479||51481<=g&&g<=51507||51509<=g&&g<=51535||51537<=g&&g<=51563||51565<=g&&g<=51591||51593<=g&&g<=51619||51621<=g&&g<=51647||51649<=g&&g<=51675||51677<=g&&g<=51703||51705<=g&&g<=51731||51733<=g&&g<=51759||51761<=g&&g<=51787||51789<=g&&g<=51815||51817<=g&&g<=51843||51845<=g&&g<=51871||51873<=g&&g<=51899||51901<=g&&g<=51927||51929<=g&&g<=51955||51957<=g&&g<=51983||51985<=g&&g<=52011||52013<=g&&g<=52039||52041<=g&&g<=52067||52069<=g&&g<=52095||52097<=g&&g<=52123||52125<=g&&g<=52151||52153<=g&&g<=52179||52181<=g&&g<=52207||52209<=g&&g<=52235||52237<=g&&g<=52263||52265<=g&&g<=52291||52293<=g&&g<=52319||52321<=g&&g<=52347||52349<=g&&g<=52375||52377<=g&&g<=52403||52405<=g&&g<=52431||52433<=g&&g<=52459||52461<=g&&g<=52487||52489<=g&&g<=52515||52517<=g&&g<=52543||52545<=g&&g<=52571||52573<=g&&g<=52599||52601<=g&&g<=52627||52629<=g&&g<=52655||52657<=g&&g<=52683||52685<=g&&g<=52711||52713<=g&&g<=52739||52741<=g&&g<=52767||52769<=g&&g<=52795||52797<=g&&g<=52823||52825<=g&&g<=52851||52853<=g&&g<=52879||52881<=g&&g<=52907||52909<=g&&g<=52935||52937<=g&&g<=52963||52965<=g&&g<=52991||52993<=g&&g<=53019||53021<=g&&g<=53047||53049<=g&&g<=53075||53077<=g&&g<=53103||53105<=g&&g<=53131||53133<=g&&g<=53159||53161<=g&&g<=53187||53189<=g&&g<=53215||53217<=g&&g<=53243||53245<=g&&g<=53271||53273<=g&&g<=53299||53301<=g&&g<=53327||53329<=g&&g<=53355||53357<=g&&g<=53383||53385<=g&&g<=53411||53413<=g&&g<=53439||53441<=g&&g<=53467||53469<=g&&g<=53495||53497<=g&&g<=53523||53525<=g&&g<=53551||53553<=g&&g<=53579||53581<=g&&g<=53607||53609<=g&&g<=53635||53637<=g&&g<=53663||53665<=g&&g<=53691||53693<=g&&g<=53719||53721<=g&&g<=53747||53749<=g&&g<=53775||53777<=g&&g<=53803||53805<=g&&g<=53831||53833<=g&&g<=53859||53861<=g&&g<=53887||53889<=g&&g<=53915||53917<=g&&g<=53943||53945<=g&&g<=53971||53973<=g&&g<=53999||54001<=g&&g<=54027||54029<=g&&g<=54055||54057<=g&&g<=54083||54085<=g&&g<=54111||54113<=g&&g<=54139||54141<=g&&g<=54167||54169<=g&&g<=54195||54197<=g&&g<=54223||54225<=g&&g<=54251||54253<=g&&g<=54279||54281<=g&&g<=54307||54309<=g&&g<=54335||54337<=g&&g<=54363||54365<=g&&g<=54391||54393<=g&&g<=54419||54421<=g&&g<=54447||54449<=g&&g<=54475||54477<=g&&g<=54503||54505<=g&&g<=54531||54533<=g&&g<=54559||54561<=g&&g<=54587||54589<=g&&g<=54615||54617<=g&&g<=54643||54645<=g&&g<=54671||54673<=g&&g<=54699||54701<=g&&g<=54727||54729<=g&&g<=54755||54757<=g&&g<=54783||54785<=g&&g<=54811||54813<=g&&g<=54839||54841<=g&&g<=54867||54869<=g&&g<=54895||54897<=g&&g<=54923||54925<=g&&g<=54951||54953<=g&&g<=54979||54981<=g&&g<=55007||55009<=g&&g<=55035||55037<=g&&g<=55063||55065<=g&&g<=55091||55093<=g&&g<=55119||55121<=g&&g<=55147||55149<=g&&g<=55175||55177<=g&&g<=55203?E:g==9757||g==9977||9994<=g&&g<=9997||g==127877||127938<=g&&g<=127940||g==127943||127946<=g&&g<=127948||128066<=g&&g<=128067||128070<=g&&g<=128080||g==128110||128112<=g&&g<=128120||g==128124||128129<=g&&g<=128131||128133<=g&&g<=128135||g==128170||128372<=g&&g<=128373||g==128378||g==128400||128405<=g&&g<=128406||128581<=g&&g<=128583||128587<=g&&g<=128591||g==128675||128692<=g&&g<=128694||g==128704||g==128716||129304<=g&&g<=129308||129310<=g&&g<=129311||g==129318||129328<=g&&g<=129337||129341<=g&&g<=129342||129489<=g&&g<=129501?b:127995<=g&&g<=127999?C:g==8205?R:g==9792||g==9794||9877<=g&&g<=9878||g==9992||g==10084||g==127752||g==127806||g==127859||g==127891||g==127908||g==127912||g==127979||g==127981||g==128139||128187<=g&&g<=128188||g==128295||g==128300||g==128488||g==128640||g==128658?L:128102<=g&&g<=128105?_:w}return this}typeof Rx<"u"&&Rx.exports&&(Rx.exports=Rot)});var aue=U((wMt,oue)=>{var Tot=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,Tx;function Not(){if(Tx)return Tx;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return Tx=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=sue(),e=new t;return Tx=r=>e.splitGraphemes(r)}}oue.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let o=r-e,a="",n=0,u=0;for(;t.length>0;){let A=t.match(Tot)||[t,t,void 0],p=Not()(A[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(o-u,p.length);a+=p.slice(0,E).join(""),n+=h,u+=E,typeof A[2]<"u"&&(a+=A[2]),t=t.slice(A[0].length)}return a}});function fue(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Vu(t===null?0:t);return!r&&t===null?Kt(e,a,"grey"):a}function IU(t,{configuration:e,json:r}){let o=fue(t,{configuration:e,json:r});if(!o||t===null||t===0)return o;let a=dr[t],n=`https://yarnpkg.com/advanced/error-codes#${o}---${a}`.toLowerCase();return Xy(e,o,n)}var Aue,Lx,lue,cue,Lot,Oot,Nx,uue,Mot,Uot,Ox,_ot,Et,Mx=dt(()=>{Aue=tt(aue()),Lx=tt(Xg());eS();Xl();Jl();Ks();lue=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],cue=80,Lot=new Set([13,19]),Oot=5,Nx=Lx.default.GITHUB_ACTIONS?{start:t=>`::group::${t} 165`),re.end()}),re});break;case"<&":E(()=>Bce(Number(t[V]),1,r));break;case">":case">>":{let re=J.resolve(r.cwd,ue.toPortablePath(t[V]));R(re==="/dev/null"?new Al.Writable({autoDestroy:!0,emitClose:!0,write(ae,he,pe){setImmediate(pe)}}):e.baseFs.createWriteStream(re,v===">>"?{flags:"a"}:void 0))}break;case">&":R(Bce(Number(t[V]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${v}"`)}}if(u.length>0){let w=new Al.PassThrough;o=w;let v=b=>{if(b===u.length)w.end();else{let E=u[b]();E.pipe(w,{end:!1}),E.on("end",()=>{v(b+1)})}};v(0)}if(A.length>0){let w=new Al.PassThrough;a=w;for(let v of A)w.pipe(v)}if(p.length>0){let w=new Al.PassThrough;n=w;for(let v of p)w.pipe(v)}let C=await Qx(B1(t.slice(h+1),e,r),{stdin:new rc(o),stdout:new rc(a),stderr:new rc(n)}).run();return await Promise.all(A.map(w=>new Promise((v,b)=>{w.on("error",E=>{b(E)}),w.on("close",()=>{v()}),w.end()}))),await Promise.all(p.map(w=>new Promise((v,b)=>{w.on("error",E=>{b(E)}),w.on("close",()=>{v()}),w.end()}))),C}]]);Ust={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var Tx=U((hMt,Fce)=>{function Gst(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r<o;)a[r]=e(t[r],r,t);return a}Fce.exports=Gst});var Mce=U((gMt,Oce)=>{var Rce=pd(),Wst=Tx(),Yst=Kl(),Kst=AE(),Vst=1/0,Tce=Rce?Rce.prototype:void 0,Nce=Tce?Tce.toString:void 0;function Lce(t){if(typeof t=="string")return t;if(Yst(t))return Wst(t,Lce)+"";if(Kst(t))return Nce?Nce.call(t):"";var e=t+"";return e=="0"&&1/t==-Vst?"-0":e}Oce.exports=Lce});var S1=U((dMt,Uce)=>{var Jst=Mce();function zst(t){return t==null?"":Jst(t)}Uce.exports=zst});var yU=U((mMt,_ce)=>{function Xst(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o<a;)n[o]=t[o+e];return n}_ce.exports=Xst});var qce=U((yMt,Hce)=>{var Zst=yU();function $st(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:Zst(t,e,r)}Hce.exports=$st});var EU=U((EMt,jce)=>{var eot="\\ud800-\\udfff",tot="\\u0300-\\u036f",rot="\\ufe20-\\ufe2f",not="\\u20d0-\\u20ff",iot=tot+rot+not,sot="\\ufe0e\\ufe0f",oot="\\u200d",aot=RegExp("["+oot+eot+iot+sot+"]");function lot(t){return aot.test(t)}jce.exports=lot});var Wce=U((CMt,Gce)=>{function cot(t){return t.split("")}Gce.exports=cot});var $ce=U((IMt,Zce)=>{var Yce="\\ud800-\\udfff",uot="\\u0300-\\u036f",Aot="\\ufe20-\\ufe2f",fot="\\u20d0-\\u20ff",pot=uot+Aot+fot,hot="\\ufe0e\\ufe0f",got="["+Yce+"]",CU="["+pot+"]",IU="\\ud83c[\\udffb-\\udfff]",dot="(?:"+CU+"|"+IU+")",Kce="[^"+Yce+"]",Vce="(?:\\ud83c[\\udde6-\\uddff]){2}",Jce="[\\ud800-\\udbff][\\udc00-\\udfff]",mot="\\u200d",zce=dot+"?",Xce="["+hot+"]?",yot="(?:"+mot+"(?:"+[Kce,Vce,Jce].join("|")+")"+Xce+zce+")*",Eot=Xce+zce+yot,Cot="(?:"+[Kce+CU+"?",CU,Vce,Jce,got].join("|")+")",Iot=RegExp(IU+"(?="+IU+")|"+Cot+Eot,"g");function wot(t){return t.match(Iot)||[]}Zce.exports=wot});var tue=U((wMt,eue)=>{var Bot=Wce(),vot=EU(),Dot=$ce();function Sot(t){return vot(t)?Dot(t):Bot(t)}eue.exports=Sot});var nue=U((BMt,rue)=>{var Pot=qce(),xot=EU(),bot=tue(),Qot=S1();function kot(t){return function(e){e=Qot(e);var r=xot(e)?bot(e):void 0,o=r?r[0]:e.charAt(0),a=r?Pot(r,1).join(""):e.slice(1);return o[t]()+a}}rue.exports=kot});var sue=U((vMt,iue)=>{var Fot=nue(),Rot=Fot("toUpperCase");iue.exports=Rot});var wU=U((DMt,oue)=>{var Tot=S1(),Not=sue();function Lot(t){return Not(Tot(t).toLowerCase())}oue.exports=Lot});var aue=U((SMt,Nx)=>{function Oot(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,C=10,w=11,v=12,b=13,E=14,R=15,L=16,_=17,V=0,re=1,ae=2,he=3,pe=4;function De(g,ve){return 55296<=g.charCodeAt(ve)&&g.charCodeAt(ve)<=56319&&56320<=g.charCodeAt(ve+1)&&g.charCodeAt(ve+1)<=57343}function ge(g,ve){ve===void 0&&(ve=0);var Ee=g.charCodeAt(ve);if(55296<=Ee&&Ee<=56319&&ve<g.length-1){var de=Ee,ne=g.charCodeAt(ve+1);return 56320<=ne&&ne<=57343?(de-55296)*1024+(ne-56320)+65536:de}if(56320<=Ee&&Ee<=57343&&ve>=1){var de=g.charCodeAt(ve-1),ne=Ee;return 55296<=de&&de<=56319?(de-55296)*1024+(ne-56320)+65536:ne}return Ee}function le(g,ve,Ee){var de=[g].concat(ve).concat([Ee]),ne=de[de.length-2],Z=Ee,me=de.lastIndexOf(E);if(me>1&&de.slice(1,me).every(function(H){return H==o})&&[o,b,_].indexOf(g)==-1)return ae;var be=de.lastIndexOf(a);if(be>0&&de.slice(1,be).every(function(H){return H==a})&&[v,a].indexOf(ne)==-1)return de.filter(function(H){return H==a}).length%2==1?he:pe;if(ne==t&&Z==e)return V;if(ne==r||ne==t||ne==e)return Z==E&&ve.every(function(H){return H==o})?ae:re;if(Z==r||Z==t||Z==e)return re;if(ne==u&&(Z==u||Z==A||Z==h||Z==C))return V;if((ne==h||ne==A)&&(Z==A||Z==p))return V;if((ne==C||ne==p)&&Z==p)return V;if(Z==o||Z==R)return V;if(Z==n)return V;if(ne==v)return V;var ut=de.indexOf(o)!=-1?de.lastIndexOf(o)-1:de.length-2;return[b,_].indexOf(de[ut])!=-1&&de.slice(ut+1,-1).every(function(H){return H==o})&&Z==E||ne==R&&[L,_].indexOf(Z)!=-1?V:ve.indexOf(a)!=-1?ae:ne==a&&Z==a?V:re}this.nextBreak=function(g,ve){if(ve===void 0&&(ve=0),ve<0)return 0;if(ve>=g.length-1)return g.length;for(var Ee=Pe(ge(g,ve)),de=[],ne=ve+1;ne<g.length;ne++)if(!De(g,ne-1)){var Z=Pe(ge(g,ne));if(le(Ee,de,Z))return ne;de.push(Z)}return g.length},this.splitGraphemes=function(g){for(var ve=[],Ee=0,de;(de=this.nextBreak(g,Ee))<g.length;)ve.push(g.slice(Ee,de)),Ee=de;return Ee<g.length&&ve.push(g.slice(Ee)),ve},this.iterateGraphemes=function(g){var ve=0,Ee={next:function(){var de,ne;return(ne=this.nextBreak(g,ve))<g.length?(de=g.slice(ve,ne),ve=ne,{value:de,done:!1}):ve<g.length?(de=g.slice(ve),ve=g.length,{value:de,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(Ee[Symbol.iterator]=function(){return Ee}),Ee},this.countGraphemes=function(g){for(var ve=0,Ee=0,de;(de=this.nextBreak(g,Ee))<g.length;)Ee=de,ve++;return Ee<g.length&&ve++,ve};function Pe(g){return 1536<=g&&g<=1541||g==1757||g==1807||g==2274||g==3406||g==69821||70082<=g&&g<=70083||g==72250||72326<=g&&g<=72329||g==73030?v:g==13?t:g==10?e:0<=g&&g<=9||11<=g&&g<=12||14<=g&&g<=31||127<=g&&g<=159||g==173||g==1564||g==6158||g==8203||8206<=g&&g<=8207||g==8232||g==8233||8234<=g&&g<=8238||8288<=g&&g<=8292||g==8293||8294<=g&&g<=8303||55296<=g&&g<=57343||g==65279||65520<=g&&g<=65528||65529<=g&&g<=65531||113824<=g&&g<=113827||119155<=g&&g<=119162||g==917504||g==917505||917506<=g&&g<=917535||917632<=g&&g<=917759||918e3<=g&&g<=921599?r:768<=g&&g<=879||1155<=g&&g<=1159||1160<=g&&g<=1161||1425<=g&&g<=1469||g==1471||1473<=g&&g<=1474||1476<=g&&g<=1477||g==1479||1552<=g&&g<=1562||1611<=g&&g<=1631||g==1648||1750<=g&&g<=1756||1759<=g&&g<=1764||1767<=g&&g<=1768||1770<=g&&g<=1773||g==1809||1840<=g&&g<=1866||1958<=g&&g<=1968||2027<=g&&g<=2035||2070<=g&&g<=2073||2075<=g&&g<=2083||2085<=g&&g<=2087||2089<=g&&g<=2093||2137<=g&&g<=2139||2260<=g&&g<=2273||2275<=g&&g<=2306||g==2362||g==2364||2369<=g&&g<=2376||g==2381||2385<=g&&g<=2391||2402<=g&&g<=2403||g==2433||g==2492||g==2494||2497<=g&&g<=2500||g==2509||g==2519||2530<=g&&g<=2531||2561<=g&&g<=2562||g==2620||2625<=g&&g<=2626||2631<=g&&g<=2632||2635<=g&&g<=2637||g==2641||2672<=g&&g<=2673||g==2677||2689<=g&&g<=2690||g==2748||2753<=g&&g<=2757||2759<=g&&g<=2760||g==2765||2786<=g&&g<=2787||2810<=g&&g<=2815||g==2817||g==2876||g==2878||g==2879||2881<=g&&g<=2884||g==2893||g==2902||g==2903||2914<=g&&g<=2915||g==2946||g==3006||g==3008||g==3021||g==3031||g==3072||3134<=g&&g<=3136||3142<=g&&g<=3144||3146<=g&&g<=3149||3157<=g&&g<=3158||3170<=g&&g<=3171||g==3201||g==3260||g==3263||g==3266||g==3270||3276<=g&&g<=3277||3285<=g&&g<=3286||3298<=g&&g<=3299||3328<=g&&g<=3329||3387<=g&&g<=3388||g==3390||3393<=g&&g<=3396||g==3405||g==3415||3426<=g&&g<=3427||g==3530||g==3535||3538<=g&&g<=3540||g==3542||g==3551||g==3633||3636<=g&&g<=3642||3655<=g&&g<=3662||g==3761||3764<=g&&g<=3769||3771<=g&&g<=3772||3784<=g&&g<=3789||3864<=g&&g<=3865||g==3893||g==3895||g==3897||3953<=g&&g<=3966||3968<=g&&g<=3972||3974<=g&&g<=3975||3981<=g&&g<=3991||3993<=g&&g<=4028||g==4038||4141<=g&&g<=4144||4146<=g&&g<=4151||4153<=g&&g<=4154||4157<=g&&g<=4158||4184<=g&&g<=4185||4190<=g&&g<=4192||4209<=g&&g<=4212||g==4226||4229<=g&&g<=4230||g==4237||g==4253||4957<=g&&g<=4959||5906<=g&&g<=5908||5938<=g&&g<=5940||5970<=g&&g<=5971||6002<=g&&g<=6003||6068<=g&&g<=6069||6071<=g&&g<=6077||g==6086||6089<=g&&g<=6099||g==6109||6155<=g&&g<=6157||6277<=g&&g<=6278||g==6313||6432<=g&&g<=6434||6439<=g&&g<=6440||g==6450||6457<=g&&g<=6459||6679<=g&&g<=6680||g==6683||g==6742||6744<=g&&g<=6750||g==6752||g==6754||6757<=g&&g<=6764||6771<=g&&g<=6780||g==6783||6832<=g&&g<=6845||g==6846||6912<=g&&g<=6915||g==6964||6966<=g&&g<=6970||g==6972||g==6978||7019<=g&&g<=7027||7040<=g&&g<=7041||7074<=g&&g<=7077||7080<=g&&g<=7081||7083<=g&&g<=7085||g==7142||7144<=g&&g<=7145||g==7149||7151<=g&&g<=7153||7212<=g&&g<=7219||7222<=g&&g<=7223||7376<=g&&g<=7378||7380<=g&&g<=7392||7394<=g&&g<=7400||g==7405||g==7412||7416<=g&&g<=7417||7616<=g&&g<=7673||7675<=g&&g<=7679||g==8204||8400<=g&&g<=8412||8413<=g&&g<=8416||g==8417||8418<=g&&g<=8420||8421<=g&&g<=8432||11503<=g&&g<=11505||g==11647||11744<=g&&g<=11775||12330<=g&&g<=12333||12334<=g&&g<=12335||12441<=g&&g<=12442||g==42607||42608<=g&&g<=42610||42612<=g&&g<=42621||42654<=g&&g<=42655||42736<=g&&g<=42737||g==43010||g==43014||g==43019||43045<=g&&g<=43046||43204<=g&&g<=43205||43232<=g&&g<=43249||43302<=g&&g<=43309||43335<=g&&g<=43345||43392<=g&&g<=43394||g==43443||43446<=g&&g<=43449||g==43452||g==43493||43561<=g&&g<=43566||43569<=g&&g<=43570||43573<=g&&g<=43574||g==43587||g==43596||g==43644||g==43696||43698<=g&&g<=43700||43703<=g&&g<=43704||43710<=g&&g<=43711||g==43713||43756<=g&&g<=43757||g==43766||g==44005||g==44008||g==44013||g==64286||65024<=g&&g<=65039||65056<=g&&g<=65071||65438<=g&&g<=65439||g==66045||g==66272||66422<=g&&g<=66426||68097<=g&&g<=68099||68101<=g&&g<=68102||68108<=g&&g<=68111||68152<=g&&g<=68154||g==68159||68325<=g&&g<=68326||g==69633||69688<=g&&g<=69702||69759<=g&&g<=69761||69811<=g&&g<=69814||69817<=g&&g<=69818||69888<=g&&g<=69890||69927<=g&&g<=69931||69933<=g&&g<=69940||g==70003||70016<=g&&g<=70017||70070<=g&&g<=70078||70090<=g&&g<=70092||70191<=g&&g<=70193||g==70196||70198<=g&&g<=70199||g==70206||g==70367||70371<=g&&g<=70378||70400<=g&&g<=70401||g==70460||g==70462||g==70464||g==70487||70502<=g&&g<=70508||70512<=g&&g<=70516||70712<=g&&g<=70719||70722<=g&&g<=70724||g==70726||g==70832||70835<=g&&g<=70840||g==70842||g==70845||70847<=g&&g<=70848||70850<=g&&g<=70851||g==71087||71090<=g&&g<=71093||71100<=g&&g<=71101||71103<=g&&g<=71104||71132<=g&&g<=71133||71219<=g&&g<=71226||g==71229||71231<=g&&g<=71232||g==71339||g==71341||71344<=g&&g<=71349||g==71351||71453<=g&&g<=71455||71458<=g&&g<=71461||71463<=g&&g<=71467||72193<=g&&g<=72198||72201<=g&&g<=72202||72243<=g&&g<=72248||72251<=g&&g<=72254||g==72263||72273<=g&&g<=72278||72281<=g&&g<=72283||72330<=g&&g<=72342||72344<=g&&g<=72345||72752<=g&&g<=72758||72760<=g&&g<=72765||g==72767||72850<=g&&g<=72871||72874<=g&&g<=72880||72882<=g&&g<=72883||72885<=g&&g<=72886||73009<=g&&g<=73014||g==73018||73020<=g&&g<=73021||73023<=g&&g<=73029||g==73031||92912<=g&&g<=92916||92976<=g&&g<=92982||94095<=g&&g<=94098||113821<=g&&g<=113822||g==119141||119143<=g&&g<=119145||119150<=g&&g<=119154||119163<=g&&g<=119170||119173<=g&&g<=119179||119210<=g&&g<=119213||119362<=g&&g<=119364||121344<=g&&g<=121398||121403<=g&&g<=121452||g==121461||g==121476||121499<=g&&g<=121503||121505<=g&&g<=121519||122880<=g&&g<=122886||122888<=g&&g<=122904||122907<=g&&g<=122913||122915<=g&&g<=122916||122918<=g&&g<=122922||125136<=g&&g<=125142||125252<=g&&g<=125258||917536<=g&&g<=917631||917760<=g&&g<=917999?o:127462<=g&&g<=127487?a:g==2307||g==2363||2366<=g&&g<=2368||2377<=g&&g<=2380||2382<=g&&g<=2383||2434<=g&&g<=2435||2495<=g&&g<=2496||2503<=g&&g<=2504||2507<=g&&g<=2508||g==2563||2622<=g&&g<=2624||g==2691||2750<=g&&g<=2752||g==2761||2763<=g&&g<=2764||2818<=g&&g<=2819||g==2880||2887<=g&&g<=2888||2891<=g&&g<=2892||g==3007||3009<=g&&g<=3010||3014<=g&&g<=3016||3018<=g&&g<=3020||3073<=g&&g<=3075||3137<=g&&g<=3140||3202<=g&&g<=3203||g==3262||3264<=g&&g<=3265||3267<=g&&g<=3268||3271<=g&&g<=3272||3274<=g&&g<=3275||3330<=g&&g<=3331||3391<=g&&g<=3392||3398<=g&&g<=3400||3402<=g&&g<=3404||3458<=g&&g<=3459||3536<=g&&g<=3537||3544<=g&&g<=3550||3570<=g&&g<=3571||g==3635||g==3763||3902<=g&&g<=3903||g==3967||g==4145||4155<=g&&g<=4156||4182<=g&&g<=4183||g==4228||g==6070||6078<=g&&g<=6085||6087<=g&&g<=6088||6435<=g&&g<=6438||6441<=g&&g<=6443||6448<=g&&g<=6449||6451<=g&&g<=6456||6681<=g&&g<=6682||g==6741||g==6743||6765<=g&&g<=6770||g==6916||g==6965||g==6971||6973<=g&&g<=6977||6979<=g&&g<=6980||g==7042||g==7073||7078<=g&&g<=7079||g==7082||g==7143||7146<=g&&g<=7148||g==7150||7154<=g&&g<=7155||7204<=g&&g<=7211||7220<=g&&g<=7221||g==7393||7410<=g&&g<=7411||g==7415||43043<=g&&g<=43044||g==43047||43136<=g&&g<=43137||43188<=g&&g<=43203||43346<=g&&g<=43347||g==43395||43444<=g&&g<=43445||43450<=g&&g<=43451||43453<=g&&g<=43456||43567<=g&&g<=43568||43571<=g&&g<=43572||g==43597||g==43755||43758<=g&&g<=43759||g==43765||44003<=g&&g<=44004||44006<=g&&g<=44007||44009<=g&&g<=44010||g==44012||g==69632||g==69634||g==69762||69808<=g&&g<=69810||69815<=g&&g<=69816||g==69932||g==70018||70067<=g&&g<=70069||70079<=g&&g<=70080||70188<=g&&g<=70190||70194<=g&&g<=70195||g==70197||70368<=g&&g<=70370||70402<=g&&g<=70403||g==70463||70465<=g&&g<=70468||70471<=g&&g<=70472||70475<=g&&g<=70477||70498<=g&&g<=70499||70709<=g&&g<=70711||70720<=g&&g<=70721||g==70725||70833<=g&&g<=70834||g==70841||70843<=g&&g<=70844||g==70846||g==70849||71088<=g&&g<=71089||71096<=g&&g<=71099||g==71102||71216<=g&&g<=71218||71227<=g&&g<=71228||g==71230||g==71340||71342<=g&&g<=71343||g==71350||71456<=g&&g<=71457||g==71462||72199<=g&&g<=72200||g==72249||72279<=g&&g<=72280||g==72343||g==72751||g==72766||g==72873||g==72881||g==72884||94033<=g&&g<=94078||g==119142||g==119149?n:4352<=g&&g<=4447||43360<=g&&g<=43388?u:4448<=g&&g<=4519||55216<=g&&g<=55238?A:4520<=g&&g<=4607||55243<=g&&g<=55291?p:g==44032||g==44060||g==44088||g==44116||g==44144||g==44172||g==44200||g==44228||g==44256||g==44284||g==44312||g==44340||g==44368||g==44396||g==44424||g==44452||g==44480||g==44508||g==44536||g==44564||g==44592||g==44620||g==44648||g==44676||g==44704||g==44732||g==44760||g==44788||g==44816||g==44844||g==44872||g==44900||g==44928||g==44956||g==44984||g==45012||g==45040||g==45068||g==45096||g==45124||g==45152||g==45180||g==45208||g==45236||g==45264||g==45292||g==45320||g==45348||g==45376||g==45404||g==45432||g==45460||g==45488||g==45516||g==45544||g==45572||g==45600||g==45628||g==45656||g==45684||g==45712||g==45740||g==45768||g==45796||g==45824||g==45852||g==45880||g==45908||g==45936||g==45964||g==45992||g==46020||g==46048||g==46076||g==46104||g==46132||g==46160||g==46188||g==46216||g==46244||g==46272||g==46300||g==46328||g==46356||g==46384||g==46412||g==46440||g==46468||g==46496||g==46524||g==46552||g==46580||g==46608||g==46636||g==46664||g==46692||g==46720||g==46748||g==46776||g==46804||g==46832||g==46860||g==46888||g==46916||g==46944||g==46972||g==47e3||g==47028||g==47056||g==47084||g==47112||g==47140||g==47168||g==47196||g==47224||g==47252||g==47280||g==47308||g==47336||g==47364||g==47392||g==47420||g==47448||g==47476||g==47504||g==47532||g==47560||g==47588||g==47616||g==47644||g==47672||g==47700||g==47728||g==47756||g==47784||g==47812||g==47840||g==47868||g==47896||g==47924||g==47952||g==47980||g==48008||g==48036||g==48064||g==48092||g==48120||g==48148||g==48176||g==48204||g==48232||g==48260||g==48288||g==48316||g==48344||g==48372||g==48400||g==48428||g==48456||g==48484||g==48512||g==48540||g==48568||g==48596||g==48624||g==48652||g==48680||g==48708||g==48736||g==48764||g==48792||g==48820||g==48848||g==48876||g==48904||g==48932||g==48960||g==48988||g==49016||g==49044||g==49072||g==49100||g==49128||g==49156||g==49184||g==49212||g==49240||g==49268||g==49296||g==49324||g==49352||g==49380||g==49408||g==49436||g==49464||g==49492||g==49520||g==49548||g==49576||g==49604||g==49632||g==49660||g==49688||g==49716||g==49744||g==49772||g==49800||g==49828||g==49856||g==49884||g==49912||g==49940||g==49968||g==49996||g==50024||g==50052||g==50080||g==50108||g==50136||g==50164||g==50192||g==50220||g==50248||g==50276||g==50304||g==50332||g==50360||g==50388||g==50416||g==50444||g==50472||g==50500||g==50528||g==50556||g==50584||g==50612||g==50640||g==50668||g==50696||g==50724||g==50752||g==50780||g==50808||g==50836||g==50864||g==50892||g==50920||g==50948||g==50976||g==51004||g==51032||g==51060||g==51088||g==51116||g==51144||g==51172||g==51200||g==51228||g==51256||g==51284||g==51312||g==51340||g==51368||g==51396||g==51424||g==51452||g==51480||g==51508||g==51536||g==51564||g==51592||g==51620||g==51648||g==51676||g==51704||g==51732||g==51760||g==51788||g==51816||g==51844||g==51872||g==51900||g==51928||g==51956||g==51984||g==52012||g==52040||g==52068||g==52096||g==52124||g==52152||g==52180||g==52208||g==52236||g==52264||g==52292||g==52320||g==52348||g==52376||g==52404||g==52432||g==52460||g==52488||g==52516||g==52544||g==52572||g==52600||g==52628||g==52656||g==52684||g==52712||g==52740||g==52768||g==52796||g==52824||g==52852||g==52880||g==52908||g==52936||g==52964||g==52992||g==53020||g==53048||g==53076||g==53104||g==53132||g==53160||g==53188||g==53216||g==53244||g==53272||g==53300||g==53328||g==53356||g==53384||g==53412||g==53440||g==53468||g==53496||g==53524||g==53552||g==53580||g==53608||g==53636||g==53664||g==53692||g==53720||g==53748||g==53776||g==53804||g==53832||g==53860||g==53888||g==53916||g==53944||g==53972||g==54e3||g==54028||g==54056||g==54084||g==54112||g==54140||g==54168||g==54196||g==54224||g==54252||g==54280||g==54308||g==54336||g==54364||g==54392||g==54420||g==54448||g==54476||g==54504||g==54532||g==54560||g==54588||g==54616||g==54644||g==54672||g==54700||g==54728||g==54756||g==54784||g==54812||g==54840||g==54868||g==54896||g==54924||g==54952||g==54980||g==55008||g==55036||g==55064||g==55092||g==55120||g==55148||g==55176?h:44033<=g&&g<=44059||44061<=g&&g<=44087||44089<=g&&g<=44115||44117<=g&&g<=44143||44145<=g&&g<=44171||44173<=g&&g<=44199||44201<=g&&g<=44227||44229<=g&&g<=44255||44257<=g&&g<=44283||44285<=g&&g<=44311||44313<=g&&g<=44339||44341<=g&&g<=44367||44369<=g&&g<=44395||44397<=g&&g<=44423||44425<=g&&g<=44451||44453<=g&&g<=44479||44481<=g&&g<=44507||44509<=g&&g<=44535||44537<=g&&g<=44563||44565<=g&&g<=44591||44593<=g&&g<=44619||44621<=g&&g<=44647||44649<=g&&g<=44675||44677<=g&&g<=44703||44705<=g&&g<=44731||44733<=g&&g<=44759||44761<=g&&g<=44787||44789<=g&&g<=44815||44817<=g&&g<=44843||44845<=g&&g<=44871||44873<=g&&g<=44899||44901<=g&&g<=44927||44929<=g&&g<=44955||44957<=g&&g<=44983||44985<=g&&g<=45011||45013<=g&&g<=45039||45041<=g&&g<=45067||45069<=g&&g<=45095||45097<=g&&g<=45123||45125<=g&&g<=45151||45153<=g&&g<=45179||45181<=g&&g<=45207||45209<=g&&g<=45235||45237<=g&&g<=45263||45265<=g&&g<=45291||45293<=g&&g<=45319||45321<=g&&g<=45347||45349<=g&&g<=45375||45377<=g&&g<=45403||45405<=g&&g<=45431||45433<=g&&g<=45459||45461<=g&&g<=45487||45489<=g&&g<=45515||45517<=g&&g<=45543||45545<=g&&g<=45571||45573<=g&&g<=45599||45601<=g&&g<=45627||45629<=g&&g<=45655||45657<=g&&g<=45683||45685<=g&&g<=45711||45713<=g&&g<=45739||45741<=g&&g<=45767||45769<=g&&g<=45795||45797<=g&&g<=45823||45825<=g&&g<=45851||45853<=g&&g<=45879||45881<=g&&g<=45907||45909<=g&&g<=45935||45937<=g&&g<=45963||45965<=g&&g<=45991||45993<=g&&g<=46019||46021<=g&&g<=46047||46049<=g&&g<=46075||46077<=g&&g<=46103||46105<=g&&g<=46131||46133<=g&&g<=46159||46161<=g&&g<=46187||46189<=g&&g<=46215||46217<=g&&g<=46243||46245<=g&&g<=46271||46273<=g&&g<=46299||46301<=g&&g<=46327||46329<=g&&g<=46355||46357<=g&&g<=46383||46385<=g&&g<=46411||46413<=g&&g<=46439||46441<=g&&g<=46467||46469<=g&&g<=46495||46497<=g&&g<=46523||46525<=g&&g<=46551||46553<=g&&g<=46579||46581<=g&&g<=46607||46609<=g&&g<=46635||46637<=g&&g<=46663||46665<=g&&g<=46691||46693<=g&&g<=46719||46721<=g&&g<=46747||46749<=g&&g<=46775||46777<=g&&g<=46803||46805<=g&&g<=46831||46833<=g&&g<=46859||46861<=g&&g<=46887||46889<=g&&g<=46915||46917<=g&&g<=46943||46945<=g&&g<=46971||46973<=g&&g<=46999||47001<=g&&g<=47027||47029<=g&&g<=47055||47057<=g&&g<=47083||47085<=g&&g<=47111||47113<=g&&g<=47139||47141<=g&&g<=47167||47169<=g&&g<=47195||47197<=g&&g<=47223||47225<=g&&g<=47251||47253<=g&&g<=47279||47281<=g&&g<=47307||47309<=g&&g<=47335||47337<=g&&g<=47363||47365<=g&&g<=47391||47393<=g&&g<=47419||47421<=g&&g<=47447||47449<=g&&g<=47475||47477<=g&&g<=47503||47505<=g&&g<=47531||47533<=g&&g<=47559||47561<=g&&g<=47587||47589<=g&&g<=47615||47617<=g&&g<=47643||47645<=g&&g<=47671||47673<=g&&g<=47699||47701<=g&&g<=47727||47729<=g&&g<=47755||47757<=g&&g<=47783||47785<=g&&g<=47811||47813<=g&&g<=47839||47841<=g&&g<=47867||47869<=g&&g<=47895||47897<=g&&g<=47923||47925<=g&&g<=47951||47953<=g&&g<=47979||47981<=g&&g<=48007||48009<=g&&g<=48035||48037<=g&&g<=48063||48065<=g&&g<=48091||48093<=g&&g<=48119||48121<=g&&g<=48147||48149<=g&&g<=48175||48177<=g&&g<=48203||48205<=g&&g<=48231||48233<=g&&g<=48259||48261<=g&&g<=48287||48289<=g&&g<=48315||48317<=g&&g<=48343||48345<=g&&g<=48371||48373<=g&&g<=48399||48401<=g&&g<=48427||48429<=g&&g<=48455||48457<=g&&g<=48483||48485<=g&&g<=48511||48513<=g&&g<=48539||48541<=g&&g<=48567||48569<=g&&g<=48595||48597<=g&&g<=48623||48625<=g&&g<=48651||48653<=g&&g<=48679||48681<=g&&g<=48707||48709<=g&&g<=48735||48737<=g&&g<=48763||48765<=g&&g<=48791||48793<=g&&g<=48819||48821<=g&&g<=48847||48849<=g&&g<=48875||48877<=g&&g<=48903||48905<=g&&g<=48931||48933<=g&&g<=48959||48961<=g&&g<=48987||48989<=g&&g<=49015||49017<=g&&g<=49043||49045<=g&&g<=49071||49073<=g&&g<=49099||49101<=g&&g<=49127||49129<=g&&g<=49155||49157<=g&&g<=49183||49185<=g&&g<=49211||49213<=g&&g<=49239||49241<=g&&g<=49267||49269<=g&&g<=49295||49297<=g&&g<=49323||49325<=g&&g<=49351||49353<=g&&g<=49379||49381<=g&&g<=49407||49409<=g&&g<=49435||49437<=g&&g<=49463||49465<=g&&g<=49491||49493<=g&&g<=49519||49521<=g&&g<=49547||49549<=g&&g<=49575||49577<=g&&g<=49603||49605<=g&&g<=49631||49633<=g&&g<=49659||49661<=g&&g<=49687||49689<=g&&g<=49715||49717<=g&&g<=49743||49745<=g&&g<=49771||49773<=g&&g<=49799||49801<=g&&g<=49827||49829<=g&&g<=49855||49857<=g&&g<=49883||49885<=g&&g<=49911||49913<=g&&g<=49939||49941<=g&&g<=49967||49969<=g&&g<=49995||49997<=g&&g<=50023||50025<=g&&g<=50051||50053<=g&&g<=50079||50081<=g&&g<=50107||50109<=g&&g<=50135||50137<=g&&g<=50163||50165<=g&&g<=50191||50193<=g&&g<=50219||50221<=g&&g<=50247||50249<=g&&g<=50275||50277<=g&&g<=50303||50305<=g&&g<=50331||50333<=g&&g<=50359||50361<=g&&g<=50387||50389<=g&&g<=50415||50417<=g&&g<=50443||50445<=g&&g<=50471||50473<=g&&g<=50499||50501<=g&&g<=50527||50529<=g&&g<=50555||50557<=g&&g<=50583||50585<=g&&g<=50611||50613<=g&&g<=50639||50641<=g&&g<=50667||50669<=g&&g<=50695||50697<=g&&g<=50723||50725<=g&&g<=50751||50753<=g&&g<=50779||50781<=g&&g<=50807||50809<=g&&g<=50835||50837<=g&&g<=50863||50865<=g&&g<=50891||50893<=g&&g<=50919||50921<=g&&g<=50947||50949<=g&&g<=50975||50977<=g&&g<=51003||51005<=g&&g<=51031||51033<=g&&g<=51059||51061<=g&&g<=51087||51089<=g&&g<=51115||51117<=g&&g<=51143||51145<=g&&g<=51171||51173<=g&&g<=51199||51201<=g&&g<=51227||51229<=g&&g<=51255||51257<=g&&g<=51283||51285<=g&&g<=51311||51313<=g&&g<=51339||51341<=g&&g<=51367||51369<=g&&g<=51395||51397<=g&&g<=51423||51425<=g&&g<=51451||51453<=g&&g<=51479||51481<=g&&g<=51507||51509<=g&&g<=51535||51537<=g&&g<=51563||51565<=g&&g<=51591||51593<=g&&g<=51619||51621<=g&&g<=51647||51649<=g&&g<=51675||51677<=g&&g<=51703||51705<=g&&g<=51731||51733<=g&&g<=51759||51761<=g&&g<=51787||51789<=g&&g<=51815||51817<=g&&g<=51843||51845<=g&&g<=51871||51873<=g&&g<=51899||51901<=g&&g<=51927||51929<=g&&g<=51955||51957<=g&&g<=51983||51985<=g&&g<=52011||52013<=g&&g<=52039||52041<=g&&g<=52067||52069<=g&&g<=52095||52097<=g&&g<=52123||52125<=g&&g<=52151||52153<=g&&g<=52179||52181<=g&&g<=52207||52209<=g&&g<=52235||52237<=g&&g<=52263||52265<=g&&g<=52291||52293<=g&&g<=52319||52321<=g&&g<=52347||52349<=g&&g<=52375||52377<=g&&g<=52403||52405<=g&&g<=52431||52433<=g&&g<=52459||52461<=g&&g<=52487||52489<=g&&g<=52515||52517<=g&&g<=52543||52545<=g&&g<=52571||52573<=g&&g<=52599||52601<=g&&g<=52627||52629<=g&&g<=52655||52657<=g&&g<=52683||52685<=g&&g<=52711||52713<=g&&g<=52739||52741<=g&&g<=52767||52769<=g&&g<=52795||52797<=g&&g<=52823||52825<=g&&g<=52851||52853<=g&&g<=52879||52881<=g&&g<=52907||52909<=g&&g<=52935||52937<=g&&g<=52963||52965<=g&&g<=52991||52993<=g&&g<=53019||53021<=g&&g<=53047||53049<=g&&g<=53075||53077<=g&&g<=53103||53105<=g&&g<=53131||53133<=g&&g<=53159||53161<=g&&g<=53187||53189<=g&&g<=53215||53217<=g&&g<=53243||53245<=g&&g<=53271||53273<=g&&g<=53299||53301<=g&&g<=53327||53329<=g&&g<=53355||53357<=g&&g<=53383||53385<=g&&g<=53411||53413<=g&&g<=53439||53441<=g&&g<=53467||53469<=g&&g<=53495||53497<=g&&g<=53523||53525<=g&&g<=53551||53553<=g&&g<=53579||53581<=g&&g<=53607||53609<=g&&g<=53635||53637<=g&&g<=53663||53665<=g&&g<=53691||53693<=g&&g<=53719||53721<=g&&g<=53747||53749<=g&&g<=53775||53777<=g&&g<=53803||53805<=g&&g<=53831||53833<=g&&g<=53859||53861<=g&&g<=53887||53889<=g&&g<=53915||53917<=g&&g<=53943||53945<=g&&g<=53971||53973<=g&&g<=53999||54001<=g&&g<=54027||54029<=g&&g<=54055||54057<=g&&g<=54083||54085<=g&&g<=54111||54113<=g&&g<=54139||54141<=g&&g<=54167||54169<=g&&g<=54195||54197<=g&&g<=54223||54225<=g&&g<=54251||54253<=g&&g<=54279||54281<=g&&g<=54307||54309<=g&&g<=54335||54337<=g&&g<=54363||54365<=g&&g<=54391||54393<=g&&g<=54419||54421<=g&&g<=54447||54449<=g&&g<=54475||54477<=g&&g<=54503||54505<=g&&g<=54531||54533<=g&&g<=54559||54561<=g&&g<=54587||54589<=g&&g<=54615||54617<=g&&g<=54643||54645<=g&&g<=54671||54673<=g&&g<=54699||54701<=g&&g<=54727||54729<=g&&g<=54755||54757<=g&&g<=54783||54785<=g&&g<=54811||54813<=g&&g<=54839||54841<=g&&g<=54867||54869<=g&&g<=54895||54897<=g&&g<=54923||54925<=g&&g<=54951||54953<=g&&g<=54979||54981<=g&&g<=55007||55009<=g&&g<=55035||55037<=g&&g<=55063||55065<=g&&g<=55091||55093<=g&&g<=55119||55121<=g&&g<=55147||55149<=g&&g<=55175||55177<=g&&g<=55203?C:g==9757||g==9977||9994<=g&&g<=9997||g==127877||127938<=g&&g<=127940||g==127943||127946<=g&&g<=127948||128066<=g&&g<=128067||128070<=g&&g<=128080||g==128110||128112<=g&&g<=128120||g==128124||128129<=g&&g<=128131||128133<=g&&g<=128135||g==128170||128372<=g&&g<=128373||g==128378||g==128400||128405<=g&&g<=128406||128581<=g&&g<=128583||128587<=g&&g<=128591||g==128675||128692<=g&&g<=128694||g==128704||g==128716||129304<=g&&g<=129308||129310<=g&&g<=129311||g==129318||129328<=g&&g<=129337||129341<=g&&g<=129342||129489<=g&&g<=129501?b:127995<=g&&g<=127999?E:g==8205?R:g==9792||g==9794||9877<=g&&g<=9878||g==9992||g==10084||g==127752||g==127806||g==127859||g==127891||g==127908||g==127912||g==127979||g==127981||g==128139||128187<=g&&g<=128188||g==128295||g==128300||g==128488||g==128640||g==128658?L:128102<=g&&g<=128105?_:w}return this}typeof Nx<"u"&&Nx.exports&&(Nx.exports=Oot)});var cue=U((PMt,lue)=>{var Mot=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,Lx;function Uot(){if(Lx)return Lx;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return Lx=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=aue(),e=new t;return Lx=r=>e.splitGraphemes(r)}}lue.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let o=r-e,a="",n=0,u=0;for(;t.length>0;){let A=t.match(Mot)||[t,t,void 0],p=Uot()(A[1]),h=Math.min(e-n,p.length);p=p.slice(h);let C=Math.min(o-u,p.length);a+=p.slice(0,C).join(""),n+=h,u+=C,typeof A[2]<"u"&&(a+=A[2]),t=t.slice(A[0].length)}return a}});function hue(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Vu(t===null?0:t);return!r&&t===null?Kt(e,a,"grey"):a}function BU(t,{configuration:e,json:r}){let o=hue(t,{configuration:e,json:r});if(!o||t===null||t===0)return o;let a=dr[t],n=`https://yarnpkg.com/advanced/error-codes#${o}---${a}`.toLowerCase();return Xy(e,o,n)}var pue,Mx,uue,Aue,_ot,Hot,Ox,fue,qot,jot,Ux,Got,Ct,_x=dt(()=>{pue=tt(cue()),Mx=tt(Zg());rS();Zl();zl();Ks();uue=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Aue=80,_ot=new Set([13,19]),Hot=5,Ox=Mx.default.GITHUB_ACTIONS?{start:t=>`::group::${t}
166`,end:t=>`::endgroup:: 166`,end:t=>`::endgroup::
167`}:Lx.default.TRAVIS?{start:t=>`travis_fold:start:${t} 167`}:Mx.default.TRAVIS?{start:t=>`travis_fold:start:${t}
168`,end:t=>`travis_fold:end:${t} 168`,end:t=>`travis_fold:end:${t}
169`}:Lx.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} 169`}:Mx.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t}
170`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,uue=new Date,Mot=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,Uot=t=>t,Ox=Uot({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),_ot=Mot&&Object.keys(Ox).find(t=>{let e=Ox[t];return!(e.date&&(e.date[0]!==uue.getDate()||e.date[1]!==uue.getMonth()+1))})||"default";Et=class extends Js{constructor({configuration:r,stdout:o,json:a=!1,includeNames:n=!0,includePrefix:u=!0,includeFooter:A=!0,includeLogs:p=!a,includeInfos:h=p,includeWarnings:E=p,forgettableBufferSize:w=Oot,forgettableNames:v=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Hw(this,{configuration:r}),this.configuration=r,this.forgettableBufferSize=w,this.forgettableNames=new Set([...v,...Lot]),this.includeNames=n,this.includePrefix=u,this.includeFooter=A,this.includeInfos=h,this.includeWarnings=E,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let b=r.get("progressBarStyle")||_ot;if(!Object.prototype.hasOwnProperty.call(Ox,b))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=Ox[b];let C=12,R=Math.max(0,Math.min(o.columns-C,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*R/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)};try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){this.cacheHitCount+=1}reportCacheMiss(r,o){this.lastCacheMiss=r,this.cacheMissCount+=1,typeof o<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,o)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r==null||r()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&(o==null||o(p-A))}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r==null||r()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&(o==null||o(p-A))}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.reportInfo(null,`\u250C ${r}`),this.indent+=1,Nx!==null&&!this.json&&this.includeInfos&&this.stdout.write(Nx.start(r))},reportFooter:A=>{this.indent-=1,Nx!==null&&!this.json&&this.includeInfos&&this.stdout.write(Nx.end(r)),this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Kt(this.configuration,A,Bt.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}async startCacheReport(r){let o=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await r()}catch(a){throw this.reportExceptionOnce(a),a}finally{o!==null&&this.reportCacheChanges(o)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;if(this.json)this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o});else if(this.forgettableNames.has(r))if(this.forgettableLines.push(u),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(u,{truncate:!0});else this.writeLineWithForgettableReset(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLineWithForgettableReset(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errorCount+=1,this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLineWithForgettableReset(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let o=!1,a=Promise.resolve().then(async()=>{let u={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:u,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:A,title:p}of r)o||u.progress===A&&u.title===p||(u.progress=A,u.title=p,this.refreshProgress());n()}),n=()=>{o||(o=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let o=Kt(this.configuration,Date.now()-this.startTime,Bt.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${o}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:o}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:o})} 170`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,fue=new Date,qot=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,jot=t=>t,Ux=jot({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),Got=qot&&Object.keys(Ux).find(t=>{let e=Ux[t];return!(e.date&&(e.date[0]!==fue.getDate()||e.date[1]!==fue.getMonth()+1))})||"default";Ct=class extends Js{constructor({configuration:r,stdout:o,json:a=!1,includeNames:n=!0,includePrefix:u=!0,includeFooter:A=!0,includeLogs:p=!a,includeInfos:h=p,includeWarnings:C=p,forgettableBufferSize:w=Hot,forgettableNames:v=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(qw(this,{configuration:r}),this.configuration=r,this.forgettableBufferSize=w,this.forgettableNames=new Set([...v,..._ot]),this.includeNames=n,this.includePrefix=u,this.includeFooter=A,this.includeInfos=h,this.includeWarnings=C,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let b=r.get("progressBarStyle")||Got;if(!Object.prototype.hasOwnProperty.call(Ux,b))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=Ux[b];let E=12,R=Math.max(0,Math.min(o.columns-E,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*R/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)};try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){this.cacheHitCount+=1}reportCacheMiss(r,o){this.lastCacheMiss=r,this.cacheMissCount+=1,typeof o<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,o)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r==null||r()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&(o==null||o(p-A))}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r==null||r()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&(o==null||o(p-A))}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.reportInfo(null,`\u250C ${r}`),this.indent+=1,Ox!==null&&!this.json&&this.includeInfos&&this.stdout.write(Ox.start(r))},reportFooter:A=>{if(this.indent-=1,Ox!==null&&!this.json&&this.includeInfos){this.stdout.write(Ox.end(r));for(let[p,h]of this.errors)this.reportErrorImpl(p,h)}this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Kt(this.configuration,A,Bt.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}async startCacheReport(r){let o=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await r()}catch(a){throw this.reportExceptionOnce(a),a}finally{o!==null&&this.reportCacheChanges(o)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;if(this.json)this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o});else if(this.forgettableNames.has(r))if(this.forgettableLines.push(u),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(u,{truncate:!0});else this.writeLineWithForgettableReset(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLineWithForgettableReset(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errors.push([r,o]),this.reportErrorImpl(r,o)}reportErrorImpl(r,o){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLineWithForgettableReset(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let o=!1,a=Promise.resolve().then(async()=>{let u={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:u,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:A,title:p}of r)o||u.progress===A&&u.title===p||(u.progress=A,u.title=p,this.refreshProgress());n()}),n=()=>{o||(o=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errors.length>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let o=Kt(this.configuration,Date.now()-this.startTime,Bt.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${o}`:r;this.errors.length>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:o}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:o})}
171`),this.writeProgress()}writeLineWithForgettableReset(r,{truncate:o}={}){this.forgettableLines=[],this.writeLine(r,{truncate:o})}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})} 171`),this.writeProgress()}writeLineWithForgettableReset(r,{truncate:o}={}){this.forgettableLines=[],this.writeLine(r,{truncate:o})}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})}
172`);this.writeProgress()}reportCacheChanges({cacheHitCount:r,cacheMissCount:o}){let a=this.cacheHitCount-r,n=this.cacheMissCount-o;if(a===0&&n===0)return;let u="";this.cacheHitCount>1?u+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?u+=" - one package was already cached":u+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?u+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(u+=`, one had to be fetched (${kr(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?u+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(u+=` - one package had to be fetched (${kr(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,u)}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>cue&&(this.progressFrame=(this.progressFrame+1)%lue.length,this.progressTime=r);let o=lue[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Kt(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p} 172`);this.writeProgress()}reportCacheChanges({cacheHitCount:r,cacheMissCount:o}){let a=this.cacheHitCount-r,n=this.cacheMissCount-o;if(a===0&&n===0)return;let u="";this.cacheHitCount>1?u+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?u+=" - one package was already cached":u+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?u+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(u+=`, one had to be fetched (${kr(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?u+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(u+=` - one package had to be fetched (${kr(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,u)}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>Aue&&(this.progressFrame=(this.progressFrame+1)%uue.length,this.progressTime=r);let o=uue[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),C=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${C}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Kt(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p}
173`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},cue)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,Aue.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?fue(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Kt(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?IU(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return"\u2502 ".repeat(this.indent)}}});var On,wU=dt(()=>{On="4.0.0-rc.42"});var sn={};Yt(sn,{PackageManager:()=>gue,detectPackageManager:()=>due,executePackageAccessibleBinary:()=>Iue,executePackageScript:()=>Ux,executePackageShellcode:()=>BU,executeWorkspaceAccessibleBinary:()=>Kot,executeWorkspaceLifecycleScript:()=>Cue,executeWorkspaceScript:()=>yue,getPackageAccessibleBinaries:()=>_x,getWorkspaceAccessibleBinaries:()=>Eue,hasPackageScript:()=>Got,hasWorkspaceScript:()=>vU,makeScriptEnv:()=>D1,maybeExecuteWorkspaceLifecycleScript:()=>Yot,prepareExternalProject:()=>jot});async function Lf(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await ae.writeFilePromise(z.format({dir:t,name:e,ext:".cmd"}),a)}await ae.writeFilePromise(z.join(t,e),`#!/bin/sh 173`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},Aue)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,pue.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?hue(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Kt(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?BU(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return"\u2502 ".repeat(this.indent)}}});var On,vU=dt(()=>{On="4.0.0-rc.45"});var sn={};Yt(sn,{PackageManager:()=>mue,detectPackageManager:()=>yue,executePackageAccessibleBinary:()=>Bue,executePackageScript:()=>Hx,executePackageShellcode:()=>DU,executeWorkspaceAccessibleBinary:()=>Xot,executeWorkspaceLifecycleScript:()=>Iue,executeWorkspaceScript:()=>Cue,getPackageAccessibleBinaries:()=>qx,getWorkspaceAccessibleBinaries:()=>wue,hasPackageScript:()=>Vot,hasWorkspaceScript:()=>SU,makeScriptEnv:()=>P1,maybeExecuteWorkspaceLifecycleScript:()=>zot,prepareExternalProject:()=>Kot});async function Mf(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await oe.writeFilePromise(J.format({dir:t,name:e,ext:".cmd"}),a)}await oe.writeFilePromise(J.join(t,e),`#!/bin/sh
174exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" 174exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@"
175`,{mode:493})}async function due(t){let e=await Nt.tryFind(t);if(e!=null&&e.packageManager){let o=kP(e.packageManager);if(o!=null&&o.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await ae.readFilePromise(z.join(t,Lr.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:ae.existsSync(z.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:ae.existsSync(z.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function D1({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a}){let n={};for(let[h,E]of Object.entries(process.env))typeof E<"u"&&(n[h.toLowerCase()!=="path"?h:"PATH"]=E);let u=ue.fromPortablePath(r);n.BERRY_BIN_FOLDER=ue.fromPortablePath(u);let A=process.env.COREPACK_ROOT&&!o?ue.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([Lf(r,"node",process.execPath),...On!==null?[Lf(r,"run",process.execPath,[A,"run"]),Lf(r,"yarn",process.execPath,[A]),Lf(r,"yarnpkg",process.execPath,[A]),Lf(r,"node-gyp",process.execPath,[A,"run","--top-level","node-gyp"])]:[]]),t&&(n.INIT_CWD=ue.cwd(),n.PROJECT_CWD=ue.fromPortablePath(t.cwd)),n.PATH=n.PATH?`${u}${ue.delimiter}${n.PATH}`:`${u}`,n.npm_execpath=`${u}${ue.sep}yarn`,n.npm_node_execpath=`${u}${ue.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let h=t.tryWorkspaceByLocator(e),E=h?h.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";n.npm_package_name=nn(e),n.npm_package_version=E;let w;if(h)w=h.cwd;else{let v=t.storedPackages.get(e.locatorHash);if(!v)throw new Error(`Package for ${kr(t.configuration,e)} not found in the project`);let b=t.configuration.getLinkers(),C={project:t,report:new Et({stdout:new u0.PassThrough,configuration:t.configuration})},R=b.find(L=>L.supportsPackage(v,C));if(!R)throw new Error(`The package ${kr(t.configuration,v)} isn't supported by any of the available linkers`);w=await R.findPackageLocation(v,C)}n.npm_package_json=ue.fromPortablePath(z.join(w,Lr.manifest))}let p=On!==null?`yarn/${On}`:`yarn/${Vp("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${p} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(n.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(h=>h.setupScriptEnvironment,t,n,async(h,E,w)=>await Lf(r,Li(h),E,w)),n}async function jot(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await qot(async()=>{await ae.mktempPromise(async u=>{let A=z.join(u,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(A,{prefix:ue.fromPortablePath(t),report:o}),w=n&&Wc(n)?Kw(n):n,v=w?Vl(w):"an external project";h.write(`Packing ${v} from sources 175`,{mode:493})}async function yue(t){let e=await Nt.tryFind(t);if(e!=null&&e.packageManager){let o=RP(e.packageManager);if(o!=null&&o.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await oe.readFilePromise(J.join(t,Lr.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:oe.existsSync(J.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:oe.existsSync(J.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function P1({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a}){let n={};for(let[h,C]of Object.entries(process.env))typeof C<"u"&&(n[h.toLowerCase()!=="path"?h:"PATH"]=C);let u=ue.fromPortablePath(r);n.BERRY_BIN_FOLDER=ue.fromPortablePath(u);let A=process.env.COREPACK_ROOT&&!o?ue.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([Mf(r,"node",process.execPath),...On!==null?[Mf(r,"run",process.execPath,[A,"run"]),Mf(r,"yarn",process.execPath,[A]),Mf(r,"yarnpkg",process.execPath,[A]),Mf(r,"node-gyp",process.execPath,[A,"run","--top-level","node-gyp"])]:[]]),t&&(n.INIT_CWD=ue.cwd(),n.PROJECT_CWD=ue.fromPortablePath(t.cwd)),n.PATH=n.PATH?`${u}${ue.delimiter}${n.PATH}`:`${u}`,n.npm_execpath=`${u}${ue.sep}yarn`,n.npm_node_execpath=`${u}${ue.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let h=t.tryWorkspaceByLocator(e),C=h?h.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";n.npm_package_name=nn(e),n.npm_package_version=C;let w;if(h)w=h.cwd;else{let v=t.storedPackages.get(e.locatorHash);if(!v)throw new Error(`Package for ${kr(t.configuration,e)} not found in the project`);let b=t.configuration.getLinkers(),E={project:t,report:new Ct({stdout:new A0.PassThrough,configuration:t.configuration})},R=b.find(L=>L.supportsPackage(v,E));if(!R)throw new Error(`The package ${kr(t.configuration,v)} isn't supported by any of the available linkers`);w=await R.findPackageLocation(v,E)}n.npm_package_json=ue.fromPortablePath(J.join(w,Lr.manifest))}let p=On!==null?`yarn/${On}`:`yarn/${zp("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${p} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(n.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(h=>h.setupScriptEnvironment,t,n,async(h,C,w)=>await Mf(r,Li(h),C,w)),n}async function Kot(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await Yot(async()=>{await oe.mktempPromise(async u=>{let A=J.join(u,"pack.log"),p=null,{stdout:h,stderr:C}=r.getSubprocessStreams(A,{prefix:ue.fromPortablePath(t),report:o}),w=n&&Yc(n)?Vw(n):n,v=w?Jl(w):"an external project";h.write(`Packing ${v} from sources
176`);let b=await due(t),C;b!==null?(h.write(`Using ${b.packageManager} for bootstrap. Reason: ${b.reason} 176`);let b=await yue(t),E;b!==null?(h.write(`Using ${b.packageManager} for bootstrap. Reason: ${b.reason}
177 177
178`),C=b.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn 178`),E=b.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn
179 179
180`),C="Yarn");let R=C==="Yarn"&&!(b!=null&&b.packageManagerField);await ae.mktempPromise(async L=>{let _=await D1({binFolder:L,ignoreCorepack:R}),re=new Map([["Yarn Classic",async()=>{let pe=a!==null?["workspace",a]:[],he=z.join(t,Lr.manifest),ve=await ae.readFilePromise(he),ge=await sA(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:_,stdin:p,stdout:h,stderr:E,end:1});if(ge.code!==0)return ge.code;await ae.writeFilePromise(he,ve),await ae.appendFilePromise(z.join(t,".npmignore"),`/.yarn 180`),E="Yarn");let R=E==="Yarn"&&!(b!=null&&b.packageManagerField);await oe.mktempPromise(async L=>{let _=await P1({binFolder:L,ignoreCorepack:R}),re=new Map([["Yarn Classic",async()=>{let he=a!==null?["workspace",a]:[],pe=J.join(t,Lr.manifest),De=await oe.readFilePromise(pe),ge=await sA(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:_,stdin:p,stdout:h,stderr:C,end:1});if(ge.code!==0)return ge.code;await oe.writeFilePromise(pe,De),await oe.appendFilePromise(J.join(t,".npmignore"),`/.yarn
181`),h.write(` 181`),h.write(`
182`),delete _.NODE_ENV;let le=await sA("yarn",["install"],{cwd:t,env:_,stdin:p,stdout:h,stderr:E,end:1});if(le.code!==0)return le.code;h.write(` 182`),delete _.NODE_ENV;let le=await sA("yarn",["install"],{cwd:t,env:_,stdin:p,stdout:h,stderr:C,end:1});if(le.code!==0)return le.code;h.write(`
183`);let Pe=await sA("yarn",[...pe,"pack","--filename",ue.fromPortablePath(e)],{cwd:t,env:_,stdin:p,stdout:h,stderr:E});return Pe.code!==0?Pe.code:0}],["Yarn",async()=>{let pe=a!==null?["workspace",a]:[];_.YARN_ENABLE_INLINE_BUILDS="1";let he=z.join(t,Lr.lockfile);await ae.existsPromise(he)||await ae.writeFilePromise(he,"");let ve=await sA("yarn",[...pe,"pack","--install-if-needed","--filename",ue.fromPortablePath(e)],{cwd:t,env:_,stdin:p,stdout:h,stderr:E});return ve.code!==0?ve.code:0}],["npm",async()=>{if(a!==null){let De=new u0.PassThrough,Ce=Jy(De);De.pipe(h,{end:!1});let de=await sA("npm",["--version"],{cwd:t,env:_,stdin:p,stdout:De,stderr:E,end:0});if(De.end(),de.code!==0)return h.end(),E.end(),de.code;let ne=(await Ce).toString().trim();if(!Sd(ne,">=7.x")){let Z=nA(null,"npm"),me=mn(Z,ne),be=mn(Z,">=7.x");throw new Error(`Workspaces aren't supported by ${Ln(r,me)}; please upgrade to ${Ln(r,be)} (npm has been detected as the primary package manager for ${Kt(r,t,Bt.PATH)})`)}}let pe=a!==null?["--workspace",a]:[];delete _.npm_config_user_agent,delete _.npm_config_production,delete _.NPM_CONFIG_PRODUCTION,delete _.NODE_ENV;let he=await sA("npm",["install"],{cwd:t,env:_,stdin:p,stdout:h,stderr:E,end:1});if(he.code!==0)return he.code;let ve=new u0.PassThrough,ge=Jy(ve);ve.pipe(h);let le=await sA("npm",["pack","--silent",...pe],{cwd:t,env:_,stdin:p,stdout:ve,stderr:E});if(le.code!==0)return le.code;let Pe=(await ge).toString().trim().replace(/^.*\n/s,""),g=z.resolve(t,ue.toPortablePath(Pe));return await ae.renamePromise(g,e),0}]]).get(C);if(typeof re>"u")throw new Error("Assertion failed: Unsupported workflow");let oe=await re();if(!(oe===0||typeof oe>"u"))throw ae.detachTemp(u),new Vt(58,`Packing the package failed (exit code ${oe}, logs can be found here: ${Kt(r,A,Bt.PATH)})`)})})})}async function Got(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return vU(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${kr(r.configuration,t)} not found in the project`);return await Ul.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Et({stdout:new u0.PassThrough,configuration:u})},h=A.find(b=>b.supportsPackage(a,p));if(!h)throw new Error(`The package ${kr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),w=new An(E,{baseFs:n});return(await Nt.find(wt.dot,{baseFs:w})).scripts.has(e)})}async function Ux(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await ae.mktempPromise(async p=>{let{manifest:h,env:E,cwd:w}=await mue(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),v=h.scripts.get(e);if(typeof v>"u")return 1;let b=async()=>await FC(v,r,{cwd:w,env:E,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,b,a,t,e,{script:v,args:r,cwd:w,env:E,stdin:n,stdout:u,stderr:A}))()})}async function BU(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await ae.mktempPromise(async p=>{let{env:h,cwd:E}=await mue(t,{project:a,binFolder:p,cwd:o});return await FC(e,r,{cwd:E,env:h,stdin:n,stdout:u,stderr:A})})}async function Wot(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await D1({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await Promise.all(Array.from(await Eue(t),([n,[,u]])=>Lf(e,Li(n),process.execPath,[u]))),typeof r>"u"&&(r=z.dirname(await ae.realpathPromise(z.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function mue(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return Wot(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${kr(e.configuration,t)} not found in the project`);return await Ul.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Et({stdout:new u0.PassThrough,configuration:p})},w=h.find(L=>L.supportsPackage(u,E));if(!w)throw new Error(`The package ${kr(e.configuration,u)} isn't supported by any of the available linkers`);let v=await D1({project:e,locator:t,binFolder:r,lifecycleScript:a});await Promise.all(Array.from(await _x(t,{project:e}),([L,[,_]])=>Lf(r,Li(L),process.execPath,[_])));let b=await w.findPackageLocation(u,E),C=new An(b,{baseFs:A}),R=await Nt.find(wt.dot,{baseFs:C});return typeof o>"u"&&(o=b),{manifest:R,binFolder:r,env:v,cwd:o}})}async function yue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await Ux(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function vU(t,e){return t.manifest.scripts.has(e)}async function Cue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await ae.mktempPromise(async u=>{let A=z.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${ue.fromPortablePath(t.cwd)}") 183`);let Pe=await sA("yarn",[...he,"pack","--filename",ue.fromPortablePath(e)],{cwd:t,env:_,stdin:p,stdout:h,stderr:C});return Pe.code!==0?Pe.code:0}],["Yarn",async()=>{let he=a!==null?["workspace",a]:[];_.YARN_ENABLE_INLINE_BUILDS="1";let pe=J.join(t,Lr.lockfile);await oe.existsPromise(pe)||await oe.writeFilePromise(pe,"");let De=await sA("yarn",[...he,"pack","--install-if-needed","--filename",ue.fromPortablePath(e)],{cwd:t,env:_,stdin:p,stdout:h,stderr:C});return De.code!==0?De.code:0}],["npm",async()=>{if(a!==null){let ve=new A0.PassThrough,Ee=Jy(ve);ve.pipe(h,{end:!1});let de=await sA("npm",["--version"],{cwd:t,env:_,stdin:p,stdout:ve,stderr:C,end:0});if(ve.end(),de.code!==0)return h.end(),C.end(),de.code;let ne=(await Ee).toString().trim();if(!Pd(ne,">=7.x")){let Z=nA(null,"npm"),me=mn(Z,ne),be=mn(Z,">=7.x");throw new Error(`Workspaces aren't supported by ${Ln(r,me)}; please upgrade to ${Ln(r,be)} (npm has been detected as the primary package manager for ${Kt(r,t,Bt.PATH)})`)}}let he=a!==null?["--workspace",a]:[];delete _.npm_config_user_agent,delete _.npm_config_production,delete _.NPM_CONFIG_PRODUCTION,delete _.NODE_ENV;let pe=await sA("npm",["install"],{cwd:t,env:_,stdin:p,stdout:h,stderr:C,end:1});if(pe.code!==0)return pe.code;let De=new A0.PassThrough,ge=Jy(De);De.pipe(h);let le=await sA("npm",["pack","--silent",...he],{cwd:t,env:_,stdin:p,stdout:De,stderr:C});if(le.code!==0)return le.code;let Pe=(await ge).toString().trim().replace(/^.*\n/s,""),g=J.resolve(t,ue.toPortablePath(Pe));return await oe.renamePromise(g,e),0}]]).get(E);if(typeof re>"u")throw new Error("Assertion failed: Unsupported workflow");let ae=await re();if(!(ae===0||typeof ae>"u"))throw oe.detachTemp(u),new Vt(58,`Packing the package failed (exit code ${ae}, logs can be found here: ${Kt(r,A,Bt.PATH)})`)})})})}async function Vot(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return SU(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${kr(r.configuration,t)} not found in the project`);return await _l.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Ct({stdout:new A0.PassThrough,configuration:u})},h=A.find(b=>b.supportsPackage(a,p));if(!h)throw new Error(`The package ${kr(r.configuration,a)} isn't supported by any of the available linkers`);let C=await h.findPackageLocation(a,p),w=new An(C,{baseFs:n});return(await Nt.find(wt.dot,{baseFs:w})).scripts.has(e)})}async function Hx(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{manifest:h,env:C,cwd:w}=await Eue(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),v=h.scripts.get(e);if(typeof v>"u")return 1;let b=async()=>await FE(v,r,{cwd:w,env:C,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,b,a,t,e,{script:v,args:r,cwd:w,env:C,stdin:n,stdout:u,stderr:A}))()})}async function DU(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{env:h,cwd:C}=await Eue(t,{project:a,binFolder:p,cwd:o});return await FE(e,r,{cwd:C,env:h,stdin:n,stdout:u,stderr:A})})}async function Jot(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await P1({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await Promise.all(Array.from(await wue(t),([n,[,u]])=>Mf(e,Li(n),process.execPath,[u]))),typeof r>"u"&&(r=J.dirname(await oe.realpathPromise(J.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function Eue(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return Jot(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${kr(e.configuration,t)} not found in the project`);return await _l.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),C={project:e,report:new Ct({stdout:new A0.PassThrough,configuration:p})},w=h.find(L=>L.supportsPackage(u,C));if(!w)throw new Error(`The package ${kr(e.configuration,u)} isn't supported by any of the available linkers`);let v=await P1({project:e,locator:t,binFolder:r,lifecycleScript:a});await Promise.all(Array.from(await qx(t,{project:e}),([L,[,_]])=>Mf(r,Li(L),process.execPath,[_])));let b=await w.findPackageLocation(u,C),E=new An(b,{baseFs:A}),R=await Nt.find(wt.dot,{baseFs:E});return typeof o>"u"&&(o=b),{manifest:R,binFolder:r,env:v,cwd:o}})}async function Cue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await Hx(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function SU(t,e){return t.manifest.scripts.has(e)}async function Iue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await oe.mktempPromise(async u=>{let A=J.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${ue.fromPortablePath(t.cwd)}")
184`,{stdout:h,stderr:E}=a.getSubprocessStreams(A,{report:o,prefix:kr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let w=await yue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),w!==0)throw ae.detachTemp(u),new Vt(36,`${(0,pue.default)(e)} script failed (exit code ${Kt(a,w,Bt.NUMBER)}, logs can be found here: ${Kt(a,A,Bt.PATH)}); run ${Kt(a,`yarn ${e}`,Bt.CODE)} to investigate`)})}async function Yot(t,e,r){vU(t,e)&&await Cue(t,e,r)}async function _x(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${kr(r,t)} not found in the project`);let n=new u0.Writable,u=r.getLinkers(),A={project:e,report:new Et({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let w=e.storedResolutions.get(E.descriptorHash);if(!w)throw new Error(`Assertion failed: The resolution (${Ln(r,E)}) should have been registered`);p.add(w)}let h=await Promise.all(Array.from(p,async E=>{let w=e.storedPackages.get(E);if(!w)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(w.bin.size===0)return Zu.skip;let v=u.find(C=>C.supportsPackage(w,A));if(!v)return Zu.skip;let b=null;try{b=await v.findPackageLocation(w,A)}catch(C){if(C.code==="LOCATOR_NOT_INSTALLED")return Zu.skip;throw C}return{dependency:w,packageLocation:b}}));for(let E of h){if(E===Zu.skip)continue;let{dependency:w,packageLocation:v}=E;for(let[b,C]of w.bin)o.set(b,[w,ue.fromPortablePath(z.resolve(v,C))])}return o}async function Eue(t){return await _x(t.anchoredLocator,{project:t.project})}async function Iue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??(h=await _x(t,{project:a}));let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${kr(a.configuration,t)}`);return await ae.mktempPromise(async w=>{let[,v]=E,b=await D1({project:a,locator:t,binFolder:w});await Promise.all(Array.from(h,([R,[,L]])=>Lf(b.BERRY_BIN_FOLDER,Li(R),process.execPath,[L])));let C;try{C=await sA(process.execPath,[...p,v,...r],{cwd:o,env:b,stdin:n,stdout:u,stderr:A})}finally{await ae.removePromise(b.BERRY_BIN_FOLDER)}return C.code})}async function Kot(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await Iue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var pue,hue,u0,gue,Hot,qot,DU=dt(()=>{bt();bt();_c();C1();pue=tt(EU()),hue=tt(rd()),u0=Ie("stream");uC();Xl();Mx();wU();yx();Jl();Kl();n0();Ks();gue=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(gue||{});Hot=2,qot=(0,hue.default)(Hot)});var TC=U((qMt,Bue)=>{"use strict";var wue=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);Bue.exports=t=>t?Object.keys(t).map(e=>[wue.has(e)?wue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var LC=U((jMt,Fue)=>{"use strict";var vue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Vot=Ie("events"),Due=Ie("stream"),Sue=Ie("string_decoder").StringDecoder,Of=Symbol("EOF"),Mf=Symbol("maybeEmitEnd"),A0=Symbol("emittedEnd"),Hx=Symbol("emittingEnd"),S1=Symbol("emittedError"),qx=Symbol("closed"),Pue=Symbol("read"),jx=Symbol("flush"),xue=Symbol("flushChunk"),Qa=Symbol("encoding"),Uf=Symbol("decoder"),Gx=Symbol("flowing"),P1=Symbol("paused"),NC=Symbol("resume"),Ss=Symbol("bufferLength"),SU=Symbol("bufferPush"),PU=Symbol("bufferShift"),bo=Symbol("objectMode"),Qo=Symbol("destroyed"),xU=Symbol("emitData"),bue=Symbol("emitEnd"),bU=Symbol("emitEnd2"),_f=Symbol("async"),x1=t=>Promise.resolve().then(t),Que=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Jot=Que&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),zot=Que&&Symbol.iterator||Symbol("iterator not implemented"),Xot=t=>t==="end"||t==="finish"||t==="prefinish",Zot=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,$ot=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),Wx=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[NC](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},QU=class extends Wx{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,o){super(e,r,o),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};Fue.exports=class kue extends Due{constructor(e){super(),this[Gx]=!1,this[P1]=!1,this.pipes=[],this.buffer=[],this[bo]=e&&e.objectMode||!1,this[bo]?this[Qa]=null:this[Qa]=e&&e.encoding||null,this[Qa]==="buffer"&&(this[Qa]=null),this[_f]=e&&!!e.async||!1,this[Uf]=this[Qa]?new Sue(this[Qa]):null,this[Of]=!1,this[A0]=!1,this[Hx]=!1,this[qx]=!1,this[S1]=null,this.writable=!0,this.readable=!0,this[Ss]=0,this[Qo]=!1}get bufferLength(){return this[Ss]}get encoding(){return this[Qa]}set encoding(e){if(this[bo])throw new Error("cannot set encoding in objectMode");if(this[Qa]&&e!==this[Qa]&&(this[Uf]&&this[Uf].lastNeed||this[Ss]))throw new Error("cannot change encoding");this[Qa]!==e&&(this[Uf]=e?new Sue(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Uf].write(r)))),this[Qa]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[bo]}set objectMode(e){this[bo]=this[bo]||!!e}get async(){return this[_f]}set async(e){this[_f]=this[_f]||!!e}write(e,r,o){if(this[Of])throw new Error("write after end");if(this[Qo])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(o=r,r="utf8"),r||(r="utf8");let a=this[_f]?x1:n=>n();return!this[bo]&&!Buffer.isBuffer(e)&&($ot(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):Zot(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[bo]?(this.flowing&&this[Ss]!==0&&this[jx](!0),this.flowing?this.emit("data",e):this[SU](e),this[Ss]!==0&&this.emit("readable"),o&&a(o),this.flowing):e.length?(typeof e=="string"&&!(r===this[Qa]&&!this[Uf].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Qa]&&(e=this[Uf].write(e)),this.flowing&&this[Ss]!==0&&this[jx](!0),this.flowing?this.emit("data",e):this[SU](e),this[Ss]!==0&&this.emit("readable"),o&&a(o),this.flowing):(this[Ss]!==0&&this.emit("readable"),o&&a(o),this.flowing)}read(e){if(this[Qo])return null;if(this[Ss]===0||e===0||e>this[Ss])return this[Mf](),null;this[bo]&&(e=null),this.buffer.length>1&&!this[bo]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Ss])]);let r=this[Pue](e||null,this.buffer[0]);return this[Mf](),r}[Pue](e,r){return e===r.length||e===null?this[PU]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Ss]-=e),this.emit("data",r),!this.buffer.length&&!this[Of]&&this.emit("drain"),r}end(e,r,o){return typeof e=="function"&&(o=e,e=null),typeof r=="function"&&(o=r,r="utf8"),e&&this.write(e,r),o&&this.once("end",o),this[Of]=!0,this.writable=!1,(this.flowing||!this[P1])&&this[Mf](),this}[NC](){this[Qo]||(this[P1]=!1,this[Gx]=!0,this.emit("resume"),this.buffer.length?this[jx]():this[Of]?this[Mf]():this.emit("drain"))}resume(){return this[NC]()}pause(){this[Gx]=!1,this[P1]=!0}get destroyed(){return this[Qo]}get flowing(){return this[Gx]}get paused(){return this[P1]}[SU](e){this[bo]?this[Ss]+=1:this[Ss]+=e.length,this.buffer.push(e)}[PU](){return this.buffer.length&&(this[bo]?this[Ss]-=1:this[Ss]-=this.buffer[0].length),this.buffer.shift()}[jx](e){do;while(this[xue](this[PU]()));!e&&!this.buffer.length&&!this[Of]&&this.emit("drain")}[xue](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Qo])return;let o=this[A0];return r=r||{},e===vue.stdout||e===vue.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,o?r.end&&e.end():(this.pipes.push(r.proxyErrors?new QU(this,e,r):new Wx(this,e,r)),this[_f]?x1(()=>this[NC]()):this[NC]()),e}unpipe(e){let r=this.pipes.find(o=>o.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let o=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[NC]():e==="readable"&&this[Ss]!==0?super.emit("readable"):Xot(e)&&this[A0]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[S1]&&(this[_f]?x1(()=>r.call(this,this[S1])):r.call(this,this[S1])),o}get emittedEnd(){return this[A0]}[Mf](){!this[Hx]&&!this[A0]&&!this[Qo]&&this.buffer.length===0&&this[Of]&&(this[Hx]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[qx]&&this.emit("close"),this[Hx]=!1)}emit(e,r,...o){if(e!=="error"&&e!=="close"&&e!==Qo&&this[Qo])return;if(e==="data")return r?this[_f]?x1(()=>this[xU](r)):this[xU](r):!1;if(e==="end")return this[bue]();if(e==="close"){if(this[qx]=!0,!this[A0]&&!this[Qo])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[S1]=r;let n=super.emit("error",r);return this[Mf](),n}else if(e==="resume"){let n=super.emit("resume");return this[Mf](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...o);return this[Mf](),a}[xU](e){for(let o of this.pipes)o.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[Mf](),r}[bue](){this[A0]||(this[A0]=!0,this.readable=!1,this[_f]?x1(()=>this[bU]()):this[bU]())}[bU](){if(this[Uf]){let r=this[Uf].end();if(r){for(let o of this.pipes)o.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[bo]||(e.dataLength=0);let r=this.promise();return this.on("data",o=>{e.push(o),this[bo]||(e.dataLength+=o.length)}),r.then(()=>e)}concat(){return this[bo]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[bo]?Promise.reject(new Error("cannot concat in objectMode")):this[Qa]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Qo,()=>r(new Error("stream destroyed"))),this.on("error",o=>r(o)),this.on("end",()=>e())})}[Jot](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Of])return Promise.resolve({done:!0});let o=null,a=null,n=h=>{this.removeListener("data",u),this.removeListener("end",A),a(h)},u=h=>{this.removeListener("error",n),this.removeListener("end",A),this.pause(),o({value:h,done:!!this[Of]})},A=()=>{this.removeListener("error",n),this.removeListener("data",u),o({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,o=h,this.once(Qo,p),this.once("error",n),this.once("end",A),this.once("data",u)})}}}[zot](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Qo]?(e?this.emit("error",e):this.emit(Qo),this):(this[Qo]=!0,this.buffer.length=0,this[Ss]=0,typeof this.close=="function"&&!this[qx]&&this.close(),e?this.emit("error",e):this.emit(Qo),this)}static isStream(e){return!!e&&(e instanceof kue||e instanceof Due||e instanceof Vot&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var Tue=U((GMt,Rue)=>{var eat=Ie("zlib").constants||{ZLIB_VERNUM:4736};Rue.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},eat))});var YU=U(Al=>{"use strict";var NU=Ie("assert"),f0=Ie("buffer").Buffer,Oue=Ie("zlib"),Td=Al.constants=Tue(),tat=LC(),Nue=f0.concat,Nd=Symbol("_superWrite"),MC=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},rat=Symbol("opts"),b1=Symbol("flushFlag"),Lue=Symbol("finishFlushFlag"),WU=Symbol("fullFlushFlag"),zn=Symbol("handle"),Yx=Symbol("onError"),OC=Symbol("sawError"),kU=Symbol("level"),FU=Symbol("strategy"),RU=Symbol("ended"),WMt=Symbol("_defaultFullFlush"),Kx=class extends tat{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[OC]=!1,this[RU]=!1,this[rat]=e,this[b1]=e.flush,this[Lue]=e.finishFlush;try{this[zn]=new Oue[r](e)}catch(o){throw new MC(o)}this[Yx]=o=>{this[OC]||(this[OC]=!0,this.close(),this.emit("error",o))},this[zn].on("error",o=>this[Yx](new MC(o))),this.once("end",()=>this.close)}close(){this[zn]&&(this[zn].close(),this[zn]=null,this.emit("close"))}reset(){if(!this[OC])return NU(this[zn],"zlib binding closed"),this[zn].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[WU]),this.write(Object.assign(f0.alloc(0),{[b1]:e})))}end(e,r,o){return e&&this.write(e,r),this.flush(this[Lue]),this[RU]=!0,super.end(null,null,o)}get ended(){return this[RU]}write(e,r,o){if(typeof r=="function"&&(o=r,r="utf8"),typeof e=="string"&&(e=f0.from(e,r)),this[OC])return;NU(this[zn],"zlib binding closed");let a=this[zn]._handle,n=a.close;a.close=()=>{};let u=this[zn].close;this[zn].close=()=>{},f0.concat=h=>h;let A;try{let h=typeof e[b1]=="number"?e[b1]:this[b1];A=this[zn]._processChunk(e,h),f0.concat=Nue}catch(h){f0.concat=Nue,this[Yx](new MC(h))}finally{this[zn]&&(this[zn]._handle=a,a.close=n,this[zn].close=u,this[zn].removeAllListeners("error"))}this[zn]&&this[zn].on("error",h=>this[Yx](new MC(h)));let p;if(A)if(Array.isArray(A)&&A.length>0){p=this[Nd](f0.from(A[0]));for(let h=1;h<A.length;h++)p=this[Nd](A[h])}else p=this[Nd](f0.from(A));return o&&o(),p}[Nd](e){return super.write(e)}},Hf=class extends Kx{constructor(e,r){e=e||{},e.flush=e.flush||Td.Z_NO_FLUSH,e.finishFlush=e.finishFlush||Td.Z_FINISH,super(e,r),this[WU]=Td.Z_FULL_FLUSH,this[kU]=e.level,this[FU]=e.strategy}params(e,r){if(!this[OC]){if(!this[zn])throw new Error("cannot switch params when binding is closed");if(!this[zn].params)throw new Error("not supported in this implementation");if(this[kU]!==e||this[FU]!==r){this.flush(Td.Z_SYNC_FLUSH),NU(this[zn],"zlib binding closed");let o=this[zn].flush;this[zn].flush=(a,n)=>{this.flush(a),n()};try{this[zn].params(e,r)}finally{this[zn].flush=o}this[zn]&&(this[kU]=e,this[FU]=r)}}}},LU=class extends Hf{constructor(e){super(e,"Deflate")}},OU=class extends Hf{constructor(e){super(e,"Inflate")}},TU=Symbol("_portable"),MU=class extends Hf{constructor(e){super(e,"Gzip"),this[TU]=e&&!!e.portable}[Nd](e){return this[TU]?(this[TU]=!1,e[9]=255,super[Nd](e)):super[Nd](e)}},UU=class extends Hf{constructor(e){super(e,"Gunzip")}},_U=class extends Hf{constructor(e){super(e,"DeflateRaw")}},HU=class extends Hf{constructor(e){super(e,"InflateRaw")}},qU=class extends Hf{constructor(e){super(e,"Unzip")}},Vx=class extends Kx{constructor(e,r){e=e||{},e.flush=e.flush||Td.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Td.BROTLI_OPERATION_FINISH,super(e,r),this[WU]=Td.BROTLI_OPERATION_FLUSH}},jU=class extends Vx{constructor(e){super(e,"BrotliCompress")}},GU=class extends Vx{constructor(e){super(e,"BrotliDecompress")}};Al.Deflate=LU;Al.Inflate=OU;Al.Gzip=MU;Al.Gunzip=UU;Al.DeflateRaw=_U;Al.InflateRaw=HU;Al.Unzip=qU;typeof Oue.BrotliCompress=="function"?(Al.BrotliCompress=jU,Al.BrotliDecompress=GU):Al.BrotliCompress=Al.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var UC=U((VMt,Mue)=>{var nat=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;Mue.exports=nat!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var Jx=U((zMt,Uue)=>{"use strict";var iat=LC(),KU=UC(),VU=Symbol("slurp");Uue.exports=class extends iat{constructor(e,r,o){switch(super(),this.pause(),this.extended=r,this.globalExtended=o,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=KU(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=KU(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[VU](r),o&&this[VU](o,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let o=this.remain,a=this.blockRemain;return this.remain=Math.max(0,o-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:o>=r?super.write(e):super.write(e.slice(0,o))}[VU](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=o==="path"||o==="linkpath"?KU(e[o]):e[o])}}});var JU=U(zx=>{"use strict";zx.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);zx.code=new Map(Array.from(zx.name).map(t=>[t[1],t[0]]))});var jue=U((ZMt,que)=>{"use strict";var sat=(t,e)=>{if(Number.isSafeInteger(t))t<0?aat(t,e):oat(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},oat=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},aat=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var o=e.length;o>1;o--){var a=t&255;t=Math.floor(t/256),r?e[o-1]=_ue(a):a===0?e[o-1]=0:(r=!0,e[o-1]=Hue(a))}},lat=t=>{let e=t[0],r=e===128?uat(t.slice(1,t.length)):e===255?cat(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},cat=t=>{for(var e=t.length,r=0,o=!1,a=e-1;a>-1;a--){var n=t[a],u;o?u=_ue(n):n===0?u=n:(o=!0,u=Hue(n)),u!==0&&(r-=u*Math.pow(256,e-a-1))}return r},uat=t=>{for(var e=t.length,r=0,o=e-1;o>-1;o--){var a=t[o];a!==0&&(r+=a*Math.pow(256,e-o-1))}return r},_ue=t=>(255^t)&255,Hue=t=>(255^t)+1&255;que.exports={encode:sat,parse:lat}});var HC=U(($Mt,Wue)=>{"use strict";var zU=JU(),_C=Ie("path").posix,Gue=jue(),XU=Symbol("slurp"),fl=Symbol("type"),e3=class{constructor(e,r,o,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[fl]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,o,a):e&&this.set(e)}decode(e,r,o,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Ld(e,r,100),this.mode=p0(e,r+100,8),this.uid=p0(e,r+108,8),this.gid=p0(e,r+116,8),this.size=p0(e,r+124,12),this.mtime=ZU(e,r+136,12),this.cksum=p0(e,r+148,12),this[XU](o),this[XU](a,!0),this[fl]=Ld(e,r+156,1),this[fl]===""&&(this[fl]="0"),this[fl]==="0"&&this.path.substr(-1)==="/"&&(this[fl]="5"),this[fl]==="5"&&(this.size=0),this.linkpath=Ld(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Ld(e,r+265,32),this.gname=Ld(e,r+297,32),this.devmaj=p0(e,r+329,8),this.devmin=p0(e,r+337,8),e[r+475]!==0){let u=Ld(e,r+345,155);this.path=u+"/"+this.path}else{let u=Ld(e,r+345,130);u&&(this.path=u+"/"+this.path),this.atime=ZU(e,r+476,12),this.ctime=ZU(e,r+488,12)}let n=8*32;for(let u=r;u<r+148;u++)n+=e[u];for(let u=r+156;u<r+512;u++)n+=e[u];this.cksumValid=n===this.cksum,this.cksum===null&&n===8*32&&(this.nullBlock=!0)}[XU](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=e[o])}encode(e,r){if(e||(e=this.block=Buffer.alloc(512),r=0),r||(r=0),!(e.length>=r+512))throw new Error("need 512 bytes for header");let o=this.ctime||this.atime?130:155,a=Aat(this.path||"",o),n=a[0],u=a[1];this.needPax=a[2],this.needPax=Od(e,r,100,n)||this.needPax,this.needPax=h0(e,r+100,8,this.mode)||this.needPax,this.needPax=h0(e,r+108,8,this.uid)||this.needPax,this.needPax=h0(e,r+116,8,this.gid)||this.needPax,this.needPax=h0(e,r+124,12,this.size)||this.needPax,this.needPax=$U(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[fl].charCodeAt(0),this.needPax=Od(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Od(e,r+265,32,this.uname)||this.needPax,this.needPax=Od(e,r+297,32,this.gname)||this.needPax,this.needPax=h0(e,r+329,8,this.devmaj)||this.needPax,this.needPax=h0(e,r+337,8,this.devmin)||this.needPax,this.needPax=Od(e,r+345,o,u)||this.needPax,e[r+475]!==0?this.needPax=Od(e,r+345,155,u)||this.needPax:(this.needPax=Od(e,r+345,130,u)||this.needPax,this.needPax=$U(e,r+476,12,this.atime)||this.needPax,this.needPax=$U(e,r+488,12,this.ctime)||this.needPax);let A=8*32;for(let p=r;p<r+148;p++)A+=e[p];for(let p=r+156;p<r+512;p++)A+=e[p];return this.cksum=A,h0(e,r+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let r in e)e[r]!==null&&e[r]!==void 0&&(this[r]=e[r])}get type(){return zU.name.get(this[fl])||this[fl]}get typeKey(){return this[fl]}set type(e){zU.code.has(e)?this[fl]=zU.code.get(e):this[fl]=e}},Aat=(t,e)=>{let o=t,a="",n,u=_C.parse(t).root||".";if(Buffer.byteLength(o)<100)n=[o,a,!1];else{a=_C.dirname(o),o=_C.basename(o);do Buffer.byteLength(o)<=100&&Buffer.byteLength(a)<=e?n=[o,a,!1]:Buffer.byteLength(o)>100&&Buffer.byteLength(a)<=e?n=[o.substr(0,100-1),a,!0]:(o=_C.join(_C.basename(a),o),a=_C.dirname(a));while(a!==u&&!n);n||(n=[t.substr(0,100-1),"",!0])}return n},Ld=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),ZU=(t,e,r)=>fat(p0(t,e,r)),fat=t=>t===null?null:new Date(t*1e3),p0=(t,e,r)=>t[e]&128?Gue.parse(t.slice(e,e+r)):hat(t,e,r),pat=t=>isNaN(t)?null:t,hat=(t,e,r)=>pat(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),gat={12:8589934591,8:2097151},h0=(t,e,r,o)=>o===null?!1:o>gat[r]||o<0?(Gue.encode(o,t.slice(e,e+r)),!0):(dat(t,e,r,o),!1),dat=(t,e,r,o)=>t.write(mat(o,r),e,r,"ascii"),mat=(t,e)=>yat(Math.floor(t).toString(8),e),yat=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",$U=(t,e,r,o)=>o===null?!1:h0(t,e,r,o.getTime()/1e3),Cat=new Array(156).join("\0"),Od=(t,e,r,o)=>o===null?!1:(t.write(o+Cat,e,r,"utf8"),o.length!==Buffer.byteLength(o)||o.length>r);Wue.exports=e3});var Xx=U((e4t,Yue)=>{"use strict";var Eat=HC(),Iat=Ie("path"),Q1=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),o=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(o);for(let n=0;n<512;n++)a[n]=0;new Eat({path:("PaxHeader/"+Iat.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n<a.length;n++)a[n]=0;return a}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let r=this[e]instanceof Date?this[e].getTime()/1e3:this[e],o=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+r+` 184`,{stdout:h,stderr:C}=a.getSubprocessStreams(A,{report:o,prefix:kr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let w=await Cue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:C});if(h.end(),C.end(),w!==0)throw oe.detachTemp(u),new Vt(36,`${(0,gue.default)(e)} script failed (exit code ${Kt(a,w,Bt.NUMBER)}, logs can be found here: ${Kt(a,A,Bt.PATH)}); run ${Kt(a,`yarn ${e}`,Bt.CODE)} to investigate`)})}async function zot(t,e,r){SU(t,e)&&await Iue(t,e,r)}async function qx(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${kr(r,t)} not found in the project`);let n=new A0.Writable,u=r.getLinkers(),A={project:e,report:new Ct({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let C of a.dependencies.values()){let w=e.storedResolutions.get(C.descriptorHash);if(!w)throw new Error(`Assertion failed: The resolution (${Ln(r,C)}) should have been registered`);p.add(w)}let h=await Promise.all(Array.from(p,async C=>{let w=e.storedPackages.get(C);if(!w)throw new Error(`Assertion failed: The package (${C}) should have been registered`);if(w.bin.size===0)return Zu.skip;let v=u.find(E=>E.supportsPackage(w,A));if(!v)return Zu.skip;let b=null;try{b=await v.findPackageLocation(w,A)}catch(E){if(E.code==="LOCATOR_NOT_INSTALLED")return Zu.skip;throw E}return{dependency:w,packageLocation:b}}));for(let C of h){if(C===Zu.skip)continue;let{dependency:w,packageLocation:v}=C;for(let[b,E]of w.bin)o.set(b,[w,ue.fromPortablePath(J.resolve(v,E))])}return o}async function wue(t){return await qx(t.anchoredLocator,{project:t.project})}async function Bue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??(h=await qx(t,{project:a}));let C=h.get(e);if(!C)throw new Error(`Binary not found (${e}) for ${kr(a.configuration,t)}`);return await oe.mktempPromise(async w=>{let[,v]=C,b=await P1({project:a,locator:t,binFolder:w});await Promise.all(Array.from(h,([R,[,L]])=>Mf(b.BERRY_BIN_FOLDER,Li(R),process.execPath,[L])));let E;try{E=await sA(process.execPath,[...p,v,...r],{cwd:o,env:b,stdin:n,stdout:u,stderr:A})}finally{await oe.removePromise(b.BERRY_BIN_FOLDER)}return E.code})}async function Xot(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await Bue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var gue,due,A0,mue,Wot,Yot,PU=dt(()=>{St();St();Hc();I1();gue=tt(wU()),due=tt(nd()),A0=Ie("stream");uE();Zl();_x();vU();Cx();zl();Vl();s0();Ks();mue=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(mue||{});Wot=2,Yot=(0,due.default)(Wot)});var TE=U((KMt,Due)=>{"use strict";var vue=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);Due.exports=t=>t?Object.keys(t).map(e=>[vue.has(e)?vue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var LE=U((VMt,Tue)=>{"use strict";var Sue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Zot=Ie("events"),Pue=Ie("stream"),xue=Ie("string_decoder").StringDecoder,Uf=Symbol("EOF"),_f=Symbol("maybeEmitEnd"),f0=Symbol("emittedEnd"),jx=Symbol("emittingEnd"),x1=Symbol("emittedError"),Gx=Symbol("closed"),bue=Symbol("read"),Wx=Symbol("flush"),Que=Symbol("flushChunk"),ka=Symbol("encoding"),Hf=Symbol("decoder"),Yx=Symbol("flowing"),b1=Symbol("paused"),NE=Symbol("resume"),Ss=Symbol("bufferLength"),xU=Symbol("bufferPush"),bU=Symbol("bufferShift"),bo=Symbol("objectMode"),Qo=Symbol("destroyed"),QU=Symbol("emitData"),kue=Symbol("emitEnd"),kU=Symbol("emitEnd2"),qf=Symbol("async"),Q1=t=>Promise.resolve().then(t),Fue=global._MP_NO_ITERATOR_SYMBOLS_!=="1",$ot=Fue&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),eat=Fue&&Symbol.iterator||Symbol("iterator not implemented"),tat=t=>t==="end"||t==="finish"||t==="prefinish",rat=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,nat=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),Kx=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[NE](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},FU=class extends Kx{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,o){super(e,r,o),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};Tue.exports=class Rue extends Pue{constructor(e){super(),this[Yx]=!1,this[b1]=!1,this.pipes=[],this.buffer=[],this[bo]=e&&e.objectMode||!1,this[bo]?this[ka]=null:this[ka]=e&&e.encoding||null,this[ka]==="buffer"&&(this[ka]=null),this[qf]=e&&!!e.async||!1,this[Hf]=this[ka]?new xue(this[ka]):null,this[Uf]=!1,this[f0]=!1,this[jx]=!1,this[Gx]=!1,this[x1]=null,this.writable=!0,this.readable=!0,this[Ss]=0,this[Qo]=!1}get bufferLength(){return this[Ss]}get encoding(){return this[ka]}set encoding(e){if(this[bo])throw new Error("cannot set encoding in objectMode");if(this[ka]&&e!==this[ka]&&(this[Hf]&&this[Hf].lastNeed||this[Ss]))throw new Error("cannot change encoding");this[ka]!==e&&(this[Hf]=e?new xue(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Hf].write(r)))),this[ka]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[bo]}set objectMode(e){this[bo]=this[bo]||!!e}get async(){return this[qf]}set async(e){this[qf]=this[qf]||!!e}write(e,r,o){if(this[Uf])throw new Error("write after end");if(this[Qo])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(o=r,r="utf8"),r||(r="utf8");let a=this[qf]?Q1:n=>n();return!this[bo]&&!Buffer.isBuffer(e)&&(nat(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):rat(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[bo]?(this.flowing&&this[Ss]!==0&&this[Wx](!0),this.flowing?this.emit("data",e):this[xU](e),this[Ss]!==0&&this.emit("readable"),o&&a(o),this.flowing):e.length?(typeof e=="string"&&!(r===this[ka]&&!this[Hf].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[ka]&&(e=this[Hf].write(e)),this.flowing&&this[Ss]!==0&&this[Wx](!0),this.flowing?this.emit("data",e):this[xU](e),this[Ss]!==0&&this.emit("readable"),o&&a(o),this.flowing):(this[Ss]!==0&&this.emit("readable"),o&&a(o),this.flowing)}read(e){if(this[Qo])return null;if(this[Ss]===0||e===0||e>this[Ss])return this[_f](),null;this[bo]&&(e=null),this.buffer.length>1&&!this[bo]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Ss])]);let r=this[bue](e||null,this.buffer[0]);return this[_f](),r}[bue](e,r){return e===r.length||e===null?this[bU]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Ss]-=e),this.emit("data",r),!this.buffer.length&&!this[Uf]&&this.emit("drain"),r}end(e,r,o){return typeof e=="function"&&(o=e,e=null),typeof r=="function"&&(o=r,r="utf8"),e&&this.write(e,r),o&&this.once("end",o),this[Uf]=!0,this.writable=!1,(this.flowing||!this[b1])&&this[_f](),this}[NE](){this[Qo]||(this[b1]=!1,this[Yx]=!0,this.emit("resume"),this.buffer.length?this[Wx]():this[Uf]?this[_f]():this.emit("drain"))}resume(){return this[NE]()}pause(){this[Yx]=!1,this[b1]=!0}get destroyed(){return this[Qo]}get flowing(){return this[Yx]}get paused(){return this[b1]}[xU](e){this[bo]?this[Ss]+=1:this[Ss]+=e.length,this.buffer.push(e)}[bU](){return this.buffer.length&&(this[bo]?this[Ss]-=1:this[Ss]-=this.buffer[0].length),this.buffer.shift()}[Wx](e){do;while(this[Que](this[bU]()));!e&&!this.buffer.length&&!this[Uf]&&this.emit("drain")}[Que](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Qo])return;let o=this[f0];return r=r||{},e===Sue.stdout||e===Sue.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,o?r.end&&e.end():(this.pipes.push(r.proxyErrors?new FU(this,e,r):new Kx(this,e,r)),this[qf]?Q1(()=>this[NE]()):this[NE]()),e}unpipe(e){let r=this.pipes.find(o=>o.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let o=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[NE]():e==="readable"&&this[Ss]!==0?super.emit("readable"):tat(e)&&this[f0]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[x1]&&(this[qf]?Q1(()=>r.call(this,this[x1])):r.call(this,this[x1])),o}get emittedEnd(){return this[f0]}[_f](){!this[jx]&&!this[f0]&&!this[Qo]&&this.buffer.length===0&&this[Uf]&&(this[jx]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Gx]&&this.emit("close"),this[jx]=!1)}emit(e,r,...o){if(e!=="error"&&e!=="close"&&e!==Qo&&this[Qo])return;if(e==="data")return r?this[qf]?Q1(()=>this[QU](r)):this[QU](r):!1;if(e==="end")return this[kue]();if(e==="close"){if(this[Gx]=!0,!this[f0]&&!this[Qo])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[x1]=r;let n=super.emit("error",r);return this[_f](),n}else if(e==="resume"){let n=super.emit("resume");return this[_f](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...o);return this[_f](),a}[QU](e){for(let o of this.pipes)o.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[_f](),r}[kue](){this[f0]||(this[f0]=!0,this.readable=!1,this[qf]?Q1(()=>this[kU]()):this[kU]())}[kU](){if(this[Hf]){let r=this[Hf].end();if(r){for(let o of this.pipes)o.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[bo]||(e.dataLength=0);let r=this.promise();return this.on("data",o=>{e.push(o),this[bo]||(e.dataLength+=o.length)}),r.then(()=>e)}concat(){return this[bo]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[bo]?Promise.reject(new Error("cannot concat in objectMode")):this[ka]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Qo,()=>r(new Error("stream destroyed"))),this.on("error",o=>r(o)),this.on("end",()=>e())})}[$ot](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Uf])return Promise.resolve({done:!0});let o=null,a=null,n=h=>{this.removeListener("data",u),this.removeListener("end",A),a(h)},u=h=>{this.removeListener("error",n),this.removeListener("end",A),this.pause(),o({value:h,done:!!this[Uf]})},A=()=>{this.removeListener("error",n),this.removeListener("data",u),o({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,C)=>{a=C,o=h,this.once(Qo,p),this.once("error",n),this.once("end",A),this.once("data",u)})}}}[eat](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Qo]?(e?this.emit("error",e):this.emit(Qo),this):(this[Qo]=!0,this.buffer.length=0,this[Ss]=0,typeof this.close=="function"&&!this[Gx]&&this.close(),e?this.emit("error",e):this.emit(Qo),this)}static isStream(e){return!!e&&(e instanceof Rue||e instanceof Pue||e instanceof Zot&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var Lue=U((JMt,Nue)=>{var iat=Ie("zlib").constants||{ZLIB_VERNUM:4736};Nue.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},iat))});var VU=U(fl=>{"use strict";var OU=Ie("assert"),p0=Ie("buffer").Buffer,Uue=Ie("zlib"),Nd=fl.constants=Lue(),sat=LE(),Oue=p0.concat,Ld=Symbol("_superWrite"),ME=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},oat=Symbol("opts"),k1=Symbol("flushFlag"),Mue=Symbol("finishFlushFlag"),KU=Symbol("fullFlushFlag"),zn=Symbol("handle"),Vx=Symbol("onError"),OE=Symbol("sawError"),RU=Symbol("level"),TU=Symbol("strategy"),NU=Symbol("ended"),zMt=Symbol("_defaultFullFlush"),Jx=class extends sat{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[OE]=!1,this[NU]=!1,this[oat]=e,this[k1]=e.flush,this[Mue]=e.finishFlush;try{this[zn]=new Uue[r](e)}catch(o){throw new ME(o)}this[Vx]=o=>{this[OE]||(this[OE]=!0,this.close(),this.emit("error",o))},this[zn].on("error",o=>this[Vx](new ME(o))),this.once("end",()=>this.close)}close(){this[zn]&&(this[zn].close(),this[zn]=null,this.emit("close"))}reset(){if(!this[OE])return OU(this[zn],"zlib binding closed"),this[zn].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[KU]),this.write(Object.assign(p0.alloc(0),{[k1]:e})))}end(e,r,o){return e&&this.write(e,r),this.flush(this[Mue]),this[NU]=!0,super.end(null,null,o)}get ended(){return this[NU]}write(e,r,o){if(typeof r=="function"&&(o=r,r="utf8"),typeof e=="string"&&(e=p0.from(e,r)),this[OE])return;OU(this[zn],"zlib binding closed");let a=this[zn]._handle,n=a.close;a.close=()=>{};let u=this[zn].close;this[zn].close=()=>{},p0.concat=h=>h;let A;try{let h=typeof e[k1]=="number"?e[k1]:this[k1];A=this[zn]._processChunk(e,h),p0.concat=Oue}catch(h){p0.concat=Oue,this[Vx](new ME(h))}finally{this[zn]&&(this[zn]._handle=a,a.close=n,this[zn].close=u,this[zn].removeAllListeners("error"))}this[zn]&&this[zn].on("error",h=>this[Vx](new ME(h)));let p;if(A)if(Array.isArray(A)&&A.length>0){p=this[Ld](p0.from(A[0]));for(let h=1;h<A.length;h++)p=this[Ld](A[h])}else p=this[Ld](p0.from(A));return o&&o(),p}[Ld](e){return super.write(e)}},jf=class extends Jx{constructor(e,r){e=e||{},e.flush=e.flush||Nd.Z_NO_FLUSH,e.finishFlush=e.finishFlush||Nd.Z_FINISH,super(e,r),this[KU]=Nd.Z_FULL_FLUSH,this[RU]=e.level,this[TU]=e.strategy}params(e,r){if(!this[OE]){if(!this[zn])throw new Error("cannot switch params when binding is closed");if(!this[zn].params)throw new Error("not supported in this implementation");if(this[RU]!==e||this[TU]!==r){this.flush(Nd.Z_SYNC_FLUSH),OU(this[zn],"zlib binding closed");let o=this[zn].flush;this[zn].flush=(a,n)=>{this.flush(a),n()};try{this[zn].params(e,r)}finally{this[zn].flush=o}this[zn]&&(this[RU]=e,this[TU]=r)}}}},MU=class extends jf{constructor(e){super(e,"Deflate")}},UU=class extends jf{constructor(e){super(e,"Inflate")}},LU=Symbol("_portable"),_U=class extends jf{constructor(e){super(e,"Gzip"),this[LU]=e&&!!e.portable}[Ld](e){return this[LU]?(this[LU]=!1,e[9]=255,super[Ld](e)):super[Ld](e)}},HU=class extends jf{constructor(e){super(e,"Gunzip")}},qU=class extends jf{constructor(e){super(e,"DeflateRaw")}},jU=class extends jf{constructor(e){super(e,"InflateRaw")}},GU=class extends jf{constructor(e){super(e,"Unzip")}},zx=class extends Jx{constructor(e,r){e=e||{},e.flush=e.flush||Nd.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Nd.BROTLI_OPERATION_FINISH,super(e,r),this[KU]=Nd.BROTLI_OPERATION_FLUSH}},WU=class extends zx{constructor(e){super(e,"BrotliCompress")}},YU=class extends zx{constructor(e){super(e,"BrotliDecompress")}};fl.Deflate=MU;fl.Inflate=UU;fl.Gzip=_U;fl.Gunzip=HU;fl.DeflateRaw=qU;fl.InflateRaw=jU;fl.Unzip=GU;typeof Uue.BrotliCompress=="function"?(fl.BrotliCompress=WU,fl.BrotliDecompress=YU):fl.BrotliCompress=fl.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var UE=U(($Mt,_ue)=>{var aat=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;_ue.exports=aat!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var Xx=U((t4t,Hue)=>{"use strict";var lat=LE(),JU=UE(),zU=Symbol("slurp");Hue.exports=class extends lat{constructor(e,r,o){switch(super(),this.pause(),this.extended=r,this.globalExtended=o,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=JU(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=JU(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[zU](r),o&&this[zU](o,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let o=this.remain,a=this.blockRemain;return this.remain=Math.max(0,o-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:o>=r?super.write(e):super.write(e.slice(0,o))}[zU](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=o==="path"||o==="linkpath"?JU(e[o]):e[o])}}});var XU=U(Zx=>{"use strict";Zx.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);Zx.code=new Map(Array.from(Zx.name).map(t=>[t[1],t[0]]))});var Wue=U((n4t,Gue)=>{"use strict";var cat=(t,e)=>{if(Number.isSafeInteger(t))t<0?Aat(t,e):uat(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},uat=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},Aat=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var o=e.length;o>1;o--){var a=t&255;t=Math.floor(t/256),r?e[o-1]=que(a):a===0?e[o-1]=0:(r=!0,e[o-1]=jue(a))}},fat=t=>{let e=t[0],r=e===128?hat(t.slice(1,t.length)):e===255?pat(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},pat=t=>{for(var e=t.length,r=0,o=!1,a=e-1;a>-1;a--){var n=t[a],u;o?u=que(n):n===0?u=n:(o=!0,u=jue(n)),u!==0&&(r-=u*Math.pow(256,e-a-1))}return r},hat=t=>{for(var e=t.length,r=0,o=e-1;o>-1;o--){var a=t[o];a!==0&&(r+=a*Math.pow(256,e-o-1))}return r},que=t=>(255^t)&255,jue=t=>(255^t)+1&255;Gue.exports={encode:cat,parse:fat}});var HE=U((i4t,Kue)=>{"use strict";var ZU=XU(),_E=Ie("path").posix,Yue=Wue(),$U=Symbol("slurp"),pl=Symbol("type"),r3=class{constructor(e,r,o,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[pl]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,o,a):e&&this.set(e)}decode(e,r,o,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Od(e,r,100),this.mode=h0(e,r+100,8),this.uid=h0(e,r+108,8),this.gid=h0(e,r+116,8),this.size=h0(e,r+124,12),this.mtime=e3(e,r+136,12),this.cksum=h0(e,r+148,12),this[$U](o),this[$U](a,!0),this[pl]=Od(e,r+156,1),this[pl]===""&&(this[pl]="0"),this[pl]==="0"&&this.path.substr(-1)==="/"&&(this[pl]="5"),this[pl]==="5"&&(this.size=0),this.linkpath=Od(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Od(e,r+265,32),this.gname=Od(e,r+297,32),this.devmaj=h0(e,r+329,8),this.devmin=h0(e,r+337,8),e[r+475]!==0){let u=Od(e,r+345,155);this.path=u+"/"+this.path}else{let u=Od(e,r+345,130);u&&(this.path=u+"/"+this.path),this.atime=e3(e,r+476,12),this.ctime=e3(e,r+488,12)}let n=8*32;for(let u=r;u<r+148;u++)n+=e[u];for(let u=r+156;u<r+512;u++)n+=e[u];this.cksumValid=n===this.cksum,this.cksum===null&&n===8*32&&(this.nullBlock=!0)}[$U](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=e[o])}encode(e,r){if(e||(e=this.block=Buffer.alloc(512),r=0),r||(r=0),!(e.length>=r+512))throw new Error("need 512 bytes for header");let o=this.ctime||this.atime?130:155,a=gat(this.path||"",o),n=a[0],u=a[1];this.needPax=a[2],this.needPax=Md(e,r,100,n)||this.needPax,this.needPax=g0(e,r+100,8,this.mode)||this.needPax,this.needPax=g0(e,r+108,8,this.uid)||this.needPax,this.needPax=g0(e,r+116,8,this.gid)||this.needPax,this.needPax=g0(e,r+124,12,this.size)||this.needPax,this.needPax=t3(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[pl].charCodeAt(0),this.needPax=Md(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Md(e,r+265,32,this.uname)||this.needPax,this.needPax=Md(e,r+297,32,this.gname)||this.needPax,this.needPax=g0(e,r+329,8,this.devmaj)||this.needPax,this.needPax=g0(e,r+337,8,this.devmin)||this.needPax,this.needPax=Md(e,r+345,o,u)||this.needPax,e[r+475]!==0?this.needPax=Md(e,r+345,155,u)||this.needPax:(this.needPax=Md(e,r+345,130,u)||this.needPax,this.needPax=t3(e,r+476,12,this.atime)||this.needPax,this.needPax=t3(e,r+488,12,this.ctime)||this.needPax);let A=8*32;for(let p=r;p<r+148;p++)A+=e[p];for(let p=r+156;p<r+512;p++)A+=e[p];return this.cksum=A,g0(e,r+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let r in e)e[r]!==null&&e[r]!==void 0&&(this[r]=e[r])}get type(){return ZU.name.get(this[pl])||this[pl]}get typeKey(){return this[pl]}set type(e){ZU.code.has(e)?this[pl]=ZU.code.get(e):this[pl]=e}},gat=(t,e)=>{let o=t,a="",n,u=_E.parse(t).root||".";if(Buffer.byteLength(o)<100)n=[o,a,!1];else{a=_E.dirname(o),o=_E.basename(o);do Buffer.byteLength(o)<=100&&Buffer.byteLength(a)<=e?n=[o,a,!1]:Buffer.byteLength(o)>100&&Buffer.byteLength(a)<=e?n=[o.substr(0,100-1),a,!0]:(o=_E.join(_E.basename(a),o),a=_E.dirname(a));while(a!==u&&!n);n||(n=[t.substr(0,100-1),"",!0])}return n},Od=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),e3=(t,e,r)=>dat(h0(t,e,r)),dat=t=>t===null?null:new Date(t*1e3),h0=(t,e,r)=>t[e]&128?Yue.parse(t.slice(e,e+r)):yat(t,e,r),mat=t=>isNaN(t)?null:t,yat=(t,e,r)=>mat(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),Eat={12:8589934591,8:2097151},g0=(t,e,r,o)=>o===null?!1:o>Eat[r]||o<0?(Yue.encode(o,t.slice(e,e+r)),!0):(Cat(t,e,r,o),!1),Cat=(t,e,r,o)=>t.write(Iat(o,r),e,r,"ascii"),Iat=(t,e)=>wat(Math.floor(t).toString(8),e),wat=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",t3=(t,e,r,o)=>o===null?!1:g0(t,e,r,o.getTime()/1e3),Bat=new Array(156).join("\0"),Md=(t,e,r,o)=>o===null?!1:(t.write(o+Bat,e,r,"utf8"),o.length!==Buffer.byteLength(o)||o.length>r);Kue.exports=r3});var $x=U((s4t,Vue)=>{"use strict";var vat=HE(),Dat=Ie("path"),F1=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),o=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(o);for(let n=0;n<512;n++)a[n]=0;new vat({path:("PaxHeader/"+Dat.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n<a.length;n++)a[n]=0;return a}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let r=this[e]instanceof Date?this[e].getTime()/1e3:this[e],o=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+r+`
185`,a=Buffer.byteLength(o),n=Math.floor(Math.log(a)/Math.log(10))+1;return a+n>=Math.pow(10,n)&&(n+=1),n+a+o}};Q1.parse=(t,e,r)=>new Q1(wat(Bat(t),e),r);var wat=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,Bat=t=>t.replace(/\n$/,"").split(` 185`,a=Buffer.byteLength(o),n=Math.floor(Math.log(a)/Math.log(10))+1;return a+n>=Math.pow(10,n)&&(n+=1),n+a+o}};F1.parse=(t,e,r)=>new F1(Sat(Pat(t),e),r);var Sat=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,Pat=t=>t.replace(/\n$/,"").split(`
186`).reduce(vat,Object.create(null)),vat=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};Yue.exports=Q1});var qC=U((t4t,Kue)=>{Kue.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var Zx=U((r4t,Vue)=>{"use strict";Vue.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var r3=U((i4t,Jue)=>{"use strict";var $x=["|","<",">","?",":"],t3=$x.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),Dat=new Map($x.map((t,e)=>[t,t3[e]])),Sat=new Map(t3.map((t,e)=>[t,$x[e]]));Jue.exports={encode:t=>$x.reduce((e,r)=>e.split(r).join(Dat.get(r)),t),decode:t=>t3.reduce((e,r)=>e.split(r).join(Sat.get(r)),t)}});var n3=U((s4t,Xue)=>{var{isAbsolute:Pat,parse:zue}=Ie("path").win32;Xue.exports=t=>{let e="",r=zue(t);for(;Pat(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=zue(t)}return[e,t]}});var $ue=U((o4t,Zue)=>{"use strict";Zue.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var p3=U((c4t,pAe)=>{"use strict";var oAe=LC(),aAe=Xx(),lAe=HC(),lA=Ie("fs"),eAe=Ie("path"),aA=UC(),xat=qC(),cAe=(t,e)=>e?(t=aA(t).replace(/^\.(\/|$)/,""),xat(e)+"/"+t):aA(t),bat=16*1024*1024,tAe=Symbol("process"),rAe=Symbol("file"),nAe=Symbol("directory"),s3=Symbol("symlink"),iAe=Symbol("hardlink"),k1=Symbol("header"),eb=Symbol("read"),o3=Symbol("lstat"),tb=Symbol("onlstat"),a3=Symbol("onread"),l3=Symbol("onreadlink"),c3=Symbol("openfile"),u3=Symbol("onopenfile"),g0=Symbol("close"),rb=Symbol("mode"),A3=Symbol("awaitDrain"),i3=Symbol("ondrain"),cA=Symbol("prefix"),sAe=Symbol("hadError"),uAe=Zx(),Qat=r3(),AAe=n3(),fAe=$ue(),nb=uAe(class extends oAe{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=aA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||bat,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=aA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?aA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=AAe(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=Qat.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=aA(r.absolute||eAe.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[tb](this.statCache.get(this.absolute)):this[o3]()}emit(e,...r){return e==="error"&&(this[sAe]=!0),super.emit(e,...r)}[o3](){lA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[tb](r)})}[tb](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Fat(e),this.emit("stat",e),this[tAe]()}[tAe](){switch(this.type){case"File":return this[rAe]();case"Directory":return this[nAe]();case"SymbolicLink":return this[s3]();default:return this.end()}}[rb](e){return fAe(e,this.type==="Directory",this.portable)}[cA](e){return cAe(e,this.prefix)}[k1](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new lAe({path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,mode:this[rb](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new aAe({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[nAe](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[k1](),this.end()}[s3](){lA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[l3](r)})}[l3](e){this.linkpath=aA(e),this[k1](),this.end()}[iAe](e){this.type="Link",this.linkpath=aA(eAe.relative(this.cwd,e)),this.stat.size=0,this[k1](),this.end()}[rAe](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[iAe](r)}this.linkCache.set(e,this.absolute)}if(this[k1](),this.stat.size===0)return this.end();this[c3]()}[c3](){lA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[u3](r)})}[u3](e){if(this.fd=e,this[sAe])return this[g0]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[eb]()}[eb](){let{fd:e,buf:r,offset:o,length:a,pos:n}=this;lA.read(e,r,o,a,n,(u,A)=>{if(u)return this[g0](()=>this.emit("error",u));this[a3](A)})}[g0](e){lA.close(this.fd,e)}[a3](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[g0](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[g0](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;a<this.length&&e<this.blockRemain;a++)this.buf[a+this.offset]=0,e++,this.remain++;let r=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(r)?this[i3]():this[A3](()=>this[i3]())}[A3](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let r=new Error("writing more data than expected");return r.path=this.absolute,this.emit("error",r)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[i3](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[g0](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[eb]()}}),f3=class extends nb{[o3](){this[tb](lA.lstatSync(this.absolute))}[s3](){this[l3](lA.readlinkSync(this.absolute))}[c3](){this[u3](lA.openSync(this.absolute,"r"))}[eb](){let e=!0;try{let{fd:r,buf:o,offset:a,length:n,pos:u}=this,A=lA.readSync(r,o,a,n,u);this[a3](A),e=!1}finally{if(e)try{this[g0](()=>{})}catch{}}}[A3](e){e()}[g0](e){lA.closeSync(this.fd),e()}},kat=uAe(class extends oAe{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=aA(e.path),this.mode=this[rb](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=aA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=AAe(this.path);a&&(this.path=n,o=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new lAe({path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new aAe({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[cA](e){return cAe(e,this.prefix)}[rb](e){return fAe(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});nb.Sync=f3;nb.Tar=kat;var Fat=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";pAe.exports=nb});var pb=U((A4t,EAe)=>{"use strict";var Ab=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},Rat=LC(),Tat=YU(),Nat=Jx(),w3=p3(),Lat=w3.Sync,Oat=w3.Tar,Mat=AS(),hAe=Buffer.alloc(1024),ob=Symbol("onStat"),ib=Symbol("ended"),uA=Symbol("queue"),jC=Symbol("current"),Md=Symbol("process"),sb=Symbol("processing"),gAe=Symbol("processJob"),AA=Symbol("jobs"),h3=Symbol("jobDone"),ab=Symbol("addFSEntry"),dAe=Symbol("addTarEntry"),y3=Symbol("stat"),C3=Symbol("readdir"),lb=Symbol("onreaddir"),ub=Symbol("pipe"),mAe=Symbol("entry"),g3=Symbol("entryOpt"),E3=Symbol("writeEntryClass"),CAe=Symbol("write"),d3=Symbol("ondrain"),fb=Ie("fs"),yAe=Ie("path"),Uat=Zx(),m3=UC(),B3=Uat(class extends Rat{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=m3(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[E3]=w3,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new Tat.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[d3]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[d3]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[uA]=new Mat,this[AA]=0,this.jobs=+e.jobs||4,this[sb]=!1,this[ib]=!1}[CAe](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[ib]=!0,this[Md](),this}write(e){if(this[ib])throw new Error("write after end");return e instanceof Nat?this[dAe](e):this[ab](e),this.flowing}[dAe](e){let r=m3(yAe.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let o=new Ab(e.path,r,!1);o.entry=new Oat(e,this[g3](o)),o.entry.on("end",a=>this[h3](o)),this[AA]+=1,this[uA].push(o)}this[Md]()}[ab](e){let r=m3(yAe.resolve(this.cwd,e));this[uA].push(new Ab(e,r)),this[Md]()}[y3](e){e.pending=!0,this[AA]+=1;let r=this.follow?"stat":"lstat";fb[r](e.absolute,(o,a)=>{e.pending=!1,this[AA]-=1,o?this.emit("error",o):this[ob](e,a)})}[ob](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[Md]()}[C3](e){e.pending=!0,this[AA]+=1,fb.readdir(e.absolute,(r,o)=>{if(e.pending=!1,this[AA]-=1,r)return this.emit("error",r);this[lb](e,o)})}[lb](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[Md]()}[Md](){if(!this[sb]){this[sb]=!0;for(let e=this[uA].head;e!==null&&this[AA]<this.jobs;e=e.next)if(this[gAe](e.value),e.value.ignore){let r=e.next;this[uA].removeNode(e),e.next=r}this[sb]=!1,this[ib]&&!this[uA].length&&this[AA]===0&&(this.zip?this.zip.end(hAe):(super.write(hAe),super.end()))}}get[jC](){return this[uA]&&this[uA].head&&this[uA].head.value}[h3](e){this[uA].shift(),this[AA]-=1,this[Md]()}[gAe](e){if(!e.pending){if(e.entry){e===this[jC]&&!e.piped&&this[ub](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[ob](e,this.statCache.get(e.absolute)):this[y3](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[lb](e,this.readdirCache.get(e.absolute)):this[C3](e),!e.readdir))){if(e.entry=this[mAe](e),!e.entry){e.ignore=!0;return}e===this[jC]&&!e.piped&&this[ub](e)}}}[g3](e){return{onwarn:(r,o,a)=>this.warn(r,o,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[mAe](e){this[AA]+=1;try{return new this[E3](e.path,this[g3](e)).on("end",()=>this[h3](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[d3](){this[jC]&&this[jC].entry&&this[jC].entry.resume()}[ub](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[ab](u+a)});let r=e.entry,o=this.zip;o?r.on("data",a=>{o.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),I3=class extends B3{constructor(e){super(e),this[E3]=Lat}pause(){}resume(){}[y3](e){let r=this.follow?"statSync":"lstatSync";this[ob](e,fb[r](e.absolute))}[C3](e,r){this[lb](e,fb.readdirSync(e.absolute))}[ub](e){let r=e.entry,o=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[ab](u+a)}),o?r.on("data",a=>{o.write(a)}):r.on("data",a=>{super[CAe](a)})}};B3.Sync=I3;EAe.exports=B3});var XC=U(R1=>{"use strict";var _at=LC(),Hat=Ie("events").EventEmitter,ka=Ie("fs"),S3=ka.writev;if(!S3){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;S3=(r,o,a,n)=>{let u=(p,h)=>n(p,h,o),A=new e;A.oncomplete=u,t.writeBuffers(r,o,a,A)}}var JC=Symbol("_autoClose"),Jc=Symbol("_close"),F1=Symbol("_ended"),Mn=Symbol("_fd"),IAe=Symbol("_finished"),m0=Symbol("_flags"),v3=Symbol("_flush"),P3=Symbol("_handleChunk"),x3=Symbol("_makeBuf"),yb=Symbol("_mode"),hb=Symbol("_needDrain"),KC=Symbol("_onerror"),zC=Symbol("_onopen"),D3=Symbol("_onread"),WC=Symbol("_onwrite"),y0=Symbol("_open"),qf=Symbol("_path"),Ud=Symbol("_pos"),fA=Symbol("_queue"),YC=Symbol("_read"),wAe=Symbol("_readSize"),d0=Symbol("_reading"),gb=Symbol("_remain"),BAe=Symbol("_size"),db=Symbol("_write"),GC=Symbol("_writing"),mb=Symbol("_defaultFlag"),VC=Symbol("_errored"),Cb=class extends _at{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[VC]=!1,this[Mn]=typeof r.fd=="number"?r.fd:null,this[qf]=e,this[wAe]=r.readSize||16*1024*1024,this[d0]=!1,this[BAe]=typeof r.size=="number"?r.size:1/0,this[gb]=this[BAe],this[JC]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[Mn]=="number"?this[YC]():this[y0]()}get fd(){return this[Mn]}get path(){return this[qf]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[y0](){ka.open(this[qf],"r",(e,r)=>this[zC](e,r))}[zC](e,r){e?this[KC](e):(this[Mn]=r,this.emit("open",r),this[YC]())}[x3](){return Buffer.allocUnsafe(Math.min(this[wAe],this[gb]))}[YC](){if(!this[d0]){this[d0]=!0;let e=this[x3]();if(e.length===0)return process.nextTick(()=>this[D3](null,0,e));ka.read(this[Mn],e,0,e.length,null,(r,o,a)=>this[D3](r,o,a))}}[D3](e,r,o){this[d0]=!1,e?this[KC](e):this[P3](r,o)&&this[YC]()}[Jc](){if(this[JC]&&typeof this[Mn]=="number"){let e=this[Mn];this[Mn]=null,ka.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[KC](e){this[d0]=!0,this[Jc](),this.emit("error",e)}[P3](e,r){let o=!1;return this[gb]-=e,e>0&&(o=super.write(e<r.length?r.slice(0,e):r)),(e===0||this[gb]<=0)&&(o=!1,this[Jc](),super.end()),o}emit(e,r){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[Mn]=="number"&&this[YC]();break;case"error":return this[VC]?void 0:(this[VC]=!0,super.emit(e,r));default:return super.emit(e,r)}}},b3=class extends Cb{[y0](){let e=!0;try{this[zC](null,ka.openSync(this[qf],"r")),e=!1}finally{e&&this[Jc]()}}[YC](){let e=!0;try{if(!this[d0]){this[d0]=!0;do{let r=this[x3](),o=r.length===0?0:ka.readSync(this[Mn],r,0,r.length,null);if(!this[P3](o,r))break}while(!0);this[d0]=!1}e=!1}finally{e&&this[Jc]()}}[Jc](){if(this[JC]&&typeof this[Mn]=="number"){let e=this[Mn];this[Mn]=null,ka.closeSync(e),this.emit("close")}}},Eb=class extends Hat{constructor(e,r){r=r||{},super(r),this.readable=!1,this.writable=!0,this[VC]=!1,this[GC]=!1,this[F1]=!1,this[hb]=!1,this[fA]=[],this[qf]=e,this[Mn]=typeof r.fd=="number"?r.fd:null,this[yb]=r.mode===void 0?438:r.mode,this[Ud]=typeof r.start=="number"?r.start:null,this[JC]=typeof r.autoClose=="boolean"?r.autoClose:!0;let o=this[Ud]!==null?"r+":"w";this[mb]=r.flags===void 0,this[m0]=this[mb]?o:r.flags,this[Mn]===null&&this[y0]()}emit(e,r){if(e==="error"){if(this[VC])return;this[VC]=!0}return super.emit(e,r)}get fd(){return this[Mn]}get path(){return this[qf]}[KC](e){this[Jc](),this[GC]=!0,this.emit("error",e)}[y0](){ka.open(this[qf],this[m0],this[yb],(e,r)=>this[zC](e,r))}[zC](e,r){this[mb]&&this[m0]==="r+"&&e&&e.code==="ENOENT"?(this[m0]="w",this[y0]()):e?this[KC](e):(this[Mn]=r,this.emit("open",r),this[v3]())}end(e,r){return e&&this.write(e,r),this[F1]=!0,!this[GC]&&!this[fA].length&&typeof this[Mn]=="number"&&this[WC](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[F1]?(this.emit("error",new Error("write() after end()")),!1):this[Mn]===null||this[GC]||this[fA].length?(this[fA].push(e),this[hb]=!0,!1):(this[GC]=!0,this[db](e),!0)}[db](e){ka.write(this[Mn],e,0,e.length,this[Ud],(r,o)=>this[WC](r,o))}[WC](e,r){e?this[KC](e):(this[Ud]!==null&&(this[Ud]+=r),this[fA].length?this[v3]():(this[GC]=!1,this[F1]&&!this[IAe]?(this[IAe]=!0,this[Jc](),this.emit("finish")):this[hb]&&(this[hb]=!1,this.emit("drain"))))}[v3](){if(this[fA].length===0)this[F1]&&this[WC](null,0);else if(this[fA].length===1)this[db](this[fA].pop());else{let e=this[fA];this[fA]=[],S3(this[Mn],e,this[Ud],(r,o)=>this[WC](r,o))}}[Jc](){if(this[JC]&&typeof this[Mn]=="number"){let e=this[Mn];this[Mn]=null,ka.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},Q3=class extends Eb{[y0](){let e;if(this[mb]&&this[m0]==="r+")try{e=ka.openSync(this[qf],this[m0],this[yb])}catch(r){if(r.code==="ENOENT")return this[m0]="w",this[y0]();throw r}else e=ka.openSync(this[qf],this[m0],this[yb]);this[zC](null,e)}[Jc](){if(this[JC]&&typeof this[Mn]=="number"){let e=this[Mn];this[Mn]=null,ka.closeSync(e),this.emit("close")}}[db](e){let r=!0;try{this[WC](null,ka.writeSync(this[Mn],e,0,e.length,this[Ud])),r=!1}finally{if(r)try{this[Jc]()}catch{}}}};R1.ReadStream=Cb;R1.ReadStreamSync=b3;R1.WriteStream=Eb;R1.WriteStreamSync=Q3});var Pb=U((h4t,QAe)=>{"use strict";var qat=Zx(),jat=HC(),Gat=Ie("events"),Wat=AS(),Yat=1024*1024,Kat=Jx(),vAe=Xx(),Vat=YU(),k3=Buffer.from([31,139]),rc=Symbol("state"),_d=Symbol("writeEntry"),jf=Symbol("readEntry"),F3=Symbol("nextEntry"),DAe=Symbol("processEntry"),nc=Symbol("extendedHeader"),T1=Symbol("globalExtendedHeader"),C0=Symbol("meta"),SAe=Symbol("emitMeta"),li=Symbol("buffer"),Gf=Symbol("queue"),Hd=Symbol("ended"),PAe=Symbol("emittedEnd"),qd=Symbol("emit"),Fa=Symbol("unzip"),Ib=Symbol("consumeChunk"),wb=Symbol("consumeChunkSub"),R3=Symbol("consumeBody"),xAe=Symbol("consumeMeta"),bAe=Symbol("consumeHeader"),Bb=Symbol("consuming"),T3=Symbol("bufferConcat"),N3=Symbol("maybeEnd"),N1=Symbol("writing"),E0=Symbol("aborted"),vb=Symbol("onDone"),jd=Symbol("sawValidEntry"),Db=Symbol("sawNullBlock"),Sb=Symbol("sawEOF"),Jat=t=>!0;QAe.exports=qat(class extends Gat{constructor(e){e=e||{},super(e),this.file=e.file||"",this[jd]=null,this.on(vb,r=>{(this[rc]==="begin"||this[jd]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(vb,e.ondone):this.on(vb,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||Yat,this.filter=typeof e.filter=="function"?e.filter:Jat,this.writable=!0,this.readable=!1,this[Gf]=new Wat,this[li]=null,this[jf]=null,this[_d]=null,this[rc]="begin",this[C0]="",this[nc]=null,this[T1]=null,this[Hd]=!1,this[Fa]=null,this[E0]=!1,this[Db]=!1,this[Sb]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[bAe](e,r){this[jd]===null&&(this[jd]=!1);let o;try{o=new jat(e,r,this[nc],this[T1])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(o.nullBlock)this[Db]?(this[Sb]=!0,this[rc]==="begin"&&(this[rc]="header"),this[qd]("eof")):(this[Db]=!0,this[qd]("nullBlock"));else if(this[Db]=!1,!o.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:o});else if(!o.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:o});else{let a=o.type;if(/^(Symbolic)?Link$/.test(a)&&!o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:o});else if(!/^(Symbolic)?Link$/.test(a)&&o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:o});else{let n=this[_d]=new Kat(o,this[nc],this[T1]);if(!this[jd])if(n.remain){let u=()=>{n.invalid||(this[jd]=!0)};n.on("end",u)}else this[jd]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[qd]("ignoredEntry",n),this[rc]="ignore",n.resume()):n.size>0&&(this[C0]="",n.on("data",u=>this[C0]+=u),this[rc]="meta"):(this[nc]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[qd]("ignoredEntry",n),this[rc]=n.remain?"ignore":"header",n.resume()):(n.remain?this[rc]="body":(this[rc]="header",n.end()),this[jf]?this[Gf].push(n):(this[Gf].push(n),this[F3]())))}}}[DAe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[jf]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",o=>this[F3]()),r=!1)):(this[jf]=null,r=!1),r}[F3](){do;while(this[DAe](this[Gf].shift()));if(!this[Gf].length){let e=this[jf];!e||e.flowing||e.size===e.remain?this[N1]||this.emit("drain"):e.once("drain",o=>this.emit("drain"))}}[R3](e,r){let o=this[_d],a=o.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return o.write(n),o.blockRemain||(this[rc]="header",this[_d]=null,o.end()),n.length}[xAe](e,r){let o=this[_d],a=this[R3](e,r);return this[_d]||this[SAe](o),a}[qd](e,r,o){!this[Gf].length&&!this[jf]?this.emit(e,r,o):this[Gf].push([e,r,o])}[SAe](e){switch(this[qd]("meta",this[C0]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[nc]=vAe.parse(this[C0],this[nc],!1);break;case"GlobalExtendedHeader":this[T1]=vAe.parse(this[C0],this[T1],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[nc]=this[nc]||Object.create(null),this[nc].path=this[C0].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[nc]=this[nc]||Object.create(null),this[nc].linkpath=this[C0].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[E0]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[E0])return;if(this[Fa]===null&&e){if(this[li]&&(e=Buffer.concat([this[li],e]),this[li]=null),e.length<k3.length)return this[li]=e,!0;for(let o=0;this[Fa]===null&&o<k3.length;o++)e[o]!==k3[o]&&(this[Fa]=!1);if(this[Fa]===null){let o=this[Hd];this[Hd]=!1,this[Fa]=new Vat.Unzip,this[Fa].on("data",n=>this[Ib](n)),this[Fa].on("error",n=>this.abort(n)),this[Fa].on("end",n=>{this[Hd]=!0,this[Ib]()}),this[N1]=!0;let a=this[Fa][o?"end":"write"](e);return this[N1]=!1,a}}this[N1]=!0,this[Fa]?this[Fa].write(e):this[Ib](e),this[N1]=!1;let r=this[Gf].length?!1:this[jf]?this[jf].flowing:!0;return!r&&!this[Gf].length&&this[jf].once("drain",o=>this.emit("drain")),r}[T3](e){e&&!this[E0]&&(this[li]=this[li]?Buffer.concat([this[li],e]):e)}[N3](){if(this[Hd]&&!this[PAe]&&!this[E0]&&!this[Bb]){this[PAe]=!0;let e=this[_d];if(e&&e.blockRemain){let r=this[li]?this[li].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[li]&&e.write(this[li]),e.end()}this[qd](vb)}}[Ib](e){if(this[Bb])this[T3](e);else if(!e&&!this[li])this[N3]();else{if(this[Bb]=!0,this[li]){this[T3](e);let r=this[li];this[li]=null,this[wb](r)}else this[wb](e);for(;this[li]&&this[li].length>=512&&!this[E0]&&!this[Sb];){let r=this[li];this[li]=null,this[wb](r)}this[Bb]=!1}(!this[li]||this[Hd])&&this[N3]()}[wb](e){let r=0,o=e.length;for(;r+512<=o&&!this[E0]&&!this[Sb];)switch(this[rc]){case"begin":case"header":this[bAe](e,r),r+=512;break;case"ignore":case"body":r+=this[R3](e,r);break;case"meta":r+=this[xAe](e,r);break;default:throw new Error("invalid state: "+this[rc])}r<o&&(this[li]?this[li]=Buffer.concat([e.slice(r),this[li]]):this[li]=e.slice(r))}end(e){this[E0]||(this[Fa]?this[Fa].end(e):(this[Hd]=!0,this.write(e)))}})});var xb=U((g4t,TAe)=>{"use strict";var zat=TC(),FAe=Pb(),ZC=Ie("fs"),Xat=XC(),kAe=Ie("path"),L3=qC();TAe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=zat(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&$at(o,e),o.noResume||Zat(o),o.file&&o.sync?elt(o):o.file?tlt(o,r):RAe(o)};var Zat=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},$at=(t,e)=>{let r=new Map(e.map(n=>[L3(n),!0])),o=t.filter,a=(n,u)=>{let A=u||kAe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(kAe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(L3(n)):n=>a(L3(n))},elt=t=>{let e=RAe(t),r=t.file,o=!0,a;try{let n=ZC.statSync(r),u=t.maxReadSize||16*1024*1024;if(n.size<u)e.end(ZC.readFileSync(r));else{let A=0,p=Buffer.allocUnsafe(u);for(a=ZC.openSync(r,"r");A<n.size;){let h=ZC.readSync(a,p,0,u,A);A+=h,e.write(p.slice(0,h))}e.end()}o=!1}finally{if(o&&a)try{ZC.closeSync(a)}catch{}}},tlt=(t,e)=>{let r=new FAe(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("end",u),ZC.stat(a,(p,h)=>{if(p)A(p);else{let E=new Xat.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},RAe=t=>new FAe(t)});var _Ae=U((d4t,UAe)=>{"use strict";var rlt=TC(),bb=pb(),NAe=XC(),LAe=xb(),OAe=Ie("path");UAe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let o=rlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return o.file&&o.sync?nlt(o,e):o.file?ilt(o,e,r):o.sync?slt(o,e):olt(o,e)};var nlt=(t,e)=>{let r=new bb.Sync(t),o=new NAe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(o),MAe(r,e)},ilt=(t,e,r)=>{let o=new bb(t),a=new NAe.WriteStream(t.file,{mode:t.mode||438});o.pipe(a);let n=new Promise((u,A)=>{a.on("error",A),a.on("close",u),o.on("error",A)});return O3(o,e),r?n.then(r,r):n},MAe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?LAe({file:OAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},O3=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return LAe({file:OAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>O3(t,e));t.add(r)}t.end()},slt=(t,e)=>{let r=new bb.Sync(t);return MAe(r,e),r},olt=(t,e)=>{let r=new bb(t);return O3(r,e),r}});var M3=U((m4t,KAe)=>{"use strict";var alt=TC(),HAe=pb(),pl=Ie("fs"),qAe=XC(),jAe=xb(),GAe=Ie("path"),WAe=HC();KAe.exports=(t,e,r)=>{let o=alt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),o.sync?llt(o,e):ult(o,e,r)};var llt=(t,e)=>{let r=new HAe.Sync(t),o=!0,a,n;try{try{a=pl.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=pl.openSync(t.file,"w+");else throw p}let u=pl.fstatSync(a),A=Buffer.alloc(512);e:for(n=0;n<u.size;n+=512){for(let E=0,w=0;E<512;E+=w){if(w=pl.readSync(a,A,E,A.length-E,n+E),n===0&&A[0]===31&&A[1]===139)throw new Error("cannot append to compressed archives");if(!w)break e}let p=new WAe(A);if(!p.cksumValid)break;let h=512*Math.ceil(p.size/512);if(n+h+512>u.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}o=!1,clt(t,r,n,a,e)}finally{if(o)try{pl.closeSync(a)}catch{}}},clt=(t,e,r,o,a)=>{let n=new qAe.WriteStreamSync(t.file,{fd:o,start:r});e.pipe(n),Alt(e,a)},ult=(t,e,r)=>{e=Array.from(e);let o=new HAe(t),a=(u,A,p)=>{let h=(C,R)=>{C?pl.close(u,L=>p(C)):p(null,R)},E=0;if(A===0)return h(null,0);let w=0,v=Buffer.alloc(512),b=(C,R)=>{if(C)return h(C);if(w+=R,w<512&&R)return pl.read(u,v,w,v.length-w,E+w,b);if(E===0&&v[0]===31&&v[1]===139)return h(new Error("cannot append to compressed archives"));if(w<512)return h(null,E);let L=new WAe(v);if(!L.cksumValid)return h(null,E);let _=512*Math.ceil(L.size/512);if(E+_+512>A||(E+=_+512,E>=A))return h(null,E);t.mtimeCache&&t.mtimeCache.set(L.path,L.mtime),w=0,pl.read(u,v,0,512,E,b)};pl.read(u,v,0,512,E,b)},n=new Promise((u,A)=>{o.on("error",A);let p="r+",h=(E,w)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",pl.open(t.file,p,h);if(E)return A(E);pl.fstat(w,(v,b)=>{if(v)return pl.close(w,()=>A(v));a(w,b.size,(C,R)=>{if(C)return A(C);let L=new qAe.WriteStream(t.file,{fd:w,start:R});o.pipe(L),L.on("error",A),L.on("close",u),YAe(o,e)})})};pl.open(t.file,p,h)});return r?n.then(r,r):n},Alt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?jAe({file:GAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},YAe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return jAe({file:GAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>YAe(t,e));t.add(r)}t.end()}});var JAe=U((y4t,VAe)=>{"use strict";var flt=TC(),plt=M3();VAe.exports=(t,e,r)=>{let o=flt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),hlt(o),plt(o,e,r)};var hlt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,o)=>e(r,o)&&!(t.mtimeCache.get(r)>o.mtime):(r,o)=>!(t.mtimeCache.get(r)>o.mtime)}});var ZAe=U((C4t,XAe)=>{var{promisify:zAe}=Ie("util"),I0=Ie("fs"),glt=t=>{if(!t)t={mode:511,fs:I0};else if(typeof t=="object")t={mode:511,fs:I0,...t};else if(typeof t=="number")t={mode:t,fs:I0};else if(typeof t=="string")t={mode:parseInt(t,8),fs:I0};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||I0.mkdir,t.mkdirAsync=zAe(t.mkdir),t.stat=t.stat||t.fs.stat||I0.stat,t.statAsync=zAe(t.stat),t.statSync=t.statSync||t.fs.statSync||I0.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||I0.mkdirSync,t};XAe.exports=glt});var efe=U((E4t,$Ae)=>{var dlt=process.platform,{resolve:mlt,parse:ylt}=Ie("path"),Clt=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=mlt(t),dlt==="win32"){let e=/[*|"<>?:]/,{root:r}=ylt(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};$Ae.exports=Clt});var sfe=U((I4t,ife)=>{var{dirname:tfe}=Ie("path"),rfe=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(o=>o.isDirectory()?r:void 0,o=>o.code==="ENOENT"?rfe(t,tfe(e),e):void 0),nfe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(o){return o.code==="ENOENT"?nfe(t,tfe(e),e):void 0}};ife.exports={findMade:rfe,findMadeSync:nfe}});var H3=U((w4t,afe)=>{var{dirname:ofe}=Ie("path"),U3=(t,e,r)=>{e.recursive=!1;let o=ofe(t);return o===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return U3(o,e).then(n=>U3(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},_3=(t,e,r)=>{let o=ofe(t);if(e.recursive=!1,o===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return _3(t,e,_3(o,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};afe.exports={mkdirpManual:U3,mkdirpManualSync:_3}});var ufe=U((B4t,cfe)=>{var{dirname:lfe}=Ie("path"),{findMade:Elt,findMadeSync:Ilt}=sfe(),{mkdirpManual:wlt,mkdirpManualSync:Blt}=H3(),vlt=(t,e)=>(e.recursive=!0,lfe(t)===t?e.mkdirAsync(t,e):Elt(e,t).then(o=>e.mkdirAsync(t,e).then(()=>o).catch(a=>{if(a.code==="ENOENT")return wlt(t,e);throw a}))),Dlt=(t,e)=>{if(e.recursive=!0,lfe(t)===t)return e.mkdirSync(t,e);let o=Ilt(e,t);try{return e.mkdirSync(t,e),o}catch(a){if(a.code==="ENOENT")return Blt(t,e);throw a}};cfe.exports={mkdirpNative:vlt,mkdirpNativeSync:Dlt}});var hfe=U((v4t,pfe)=>{var Afe=Ie("fs"),Slt=process.version,q3=Slt.replace(/^v/,"").split("."),ffe=+q3[0]>10||+q3[0]==10&&+q3[1]>=12,Plt=ffe?t=>t.mkdir===Afe.mkdir:()=>!1,xlt=ffe?t=>t.mkdirSync===Afe.mkdirSync:()=>!1;pfe.exports={useNative:Plt,useNativeSync:xlt}});var Efe=U((D4t,Cfe)=>{var $C=ZAe(),eE=efe(),{mkdirpNative:gfe,mkdirpNativeSync:dfe}=ufe(),{mkdirpManual:mfe,mkdirpManualSync:yfe}=H3(),{useNative:blt,useNativeSync:Qlt}=hfe(),tE=(t,e)=>(t=eE(t),e=$C(e),blt(e)?gfe(t,e):mfe(t,e)),klt=(t,e)=>(t=eE(t),e=$C(e),Qlt(e)?dfe(t,e):yfe(t,e));tE.sync=klt;tE.native=(t,e)=>gfe(eE(t),$C(e));tE.manual=(t,e)=>mfe(eE(t),$C(e));tE.nativeSync=(t,e)=>dfe(eE(t),$C(e));tE.manualSync=(t,e)=>yfe(eE(t),$C(e));Cfe.exports=tE});var Pfe=U((S4t,Sfe)=>{"use strict";var ic=Ie("fs"),Gd=Ie("path"),Flt=ic.lchown?"lchown":"chown",Rlt=ic.lchownSync?"lchownSync":"chownSync",wfe=ic.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),Ife=(t,e,r)=>{try{return ic[Rlt](t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},Tlt=(t,e,r)=>{try{return ic.chownSync(t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},Nlt=wfe?(t,e,r,o)=>a=>{!a||a.code!=="EISDIR"?o(a):ic.chown(t,e,r,o)}:(t,e,r,o)=>o,j3=wfe?(t,e,r)=>{try{return Ife(t,e,r)}catch(o){if(o.code!=="EISDIR")throw o;Tlt(t,e,r)}}:(t,e,r)=>Ife(t,e,r),Llt=process.version,Bfe=(t,e,r)=>ic.readdir(t,e,r),Olt=(t,e)=>ic.readdirSync(t,e);/^v4\./.test(Llt)&&(Bfe=(t,e,r)=>ic.readdir(t,r));var Qb=(t,e,r,o)=>{ic[Flt](t,e,r,Nlt(t,e,r,a=>{o(a&&a.code!=="ENOENT"?a:null)}))},vfe=(t,e,r,o,a)=>{if(typeof e=="string")return ic.lstat(Gd.resolve(t,e),(n,u)=>{if(n)return a(n.code!=="ENOENT"?n:null);u.name=e,vfe(t,u,r,o,a)});if(e.isDirectory())G3(Gd.resolve(t,e.name),r,o,n=>{if(n)return a(n);let u=Gd.resolve(t,e.name);Qb(u,r,o,a)});else{let n=Gd.resolve(t,e.name);Qb(n,r,o,a)}},G3=(t,e,r,o)=>{Bfe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return o();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return o(a)}if(a||!n.length)return Qb(t,e,r,o);let u=n.length,A=null,p=h=>{if(!A){if(h)return o(A=h);if(--u===0)return Qb(t,e,r,o)}};n.forEach(h=>vfe(t,h,e,r,p))})},Mlt=(t,e,r,o)=>{if(typeof e=="string")try{let a=ic.lstatSync(Gd.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&Dfe(Gd.resolve(t,e.name),r,o),j3(Gd.resolve(t,e.name),r,o)},Dfe=(t,e,r)=>{let o;try{o=Olt(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return j3(t,e,r);throw a}return o&&o.length&&o.forEach(a=>Mlt(t,a,e,r)),j3(t,e,r)};Sfe.exports=G3;G3.sync=Dfe});var kfe=U((P4t,W3)=>{"use strict";var xfe=Efe(),sc=Ie("fs"),kb=Ie("path"),bfe=Pfe(),zc=UC(),Fb=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},Rb=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},Tb=(t,e)=>t.get(zc(e)),L1=(t,e,r)=>t.set(zc(e),r),Ult=(t,e)=>{sc.stat(t,(r,o)=>{(r||!o.isDirectory())&&(r=new Rb(t,r&&r.code||"ENOTDIR")),e(r)})};W3.exports=(t,e,r)=>{t=zc(t);let o=e.umask,a=e.mode|448,n=(a&o)!==0,u=e.uid,A=e.gid,p=typeof u=="number"&&typeof A=="number"&&(u!==e.processUid||A!==e.processGid),h=e.preserve,E=e.unlink,w=e.cache,v=zc(e.cwd),b=(L,_)=>{L?r(L):(L1(w,t,!0),_&&p?bfe(_,u,A,V=>b(V)):n?sc.chmod(t,a,r):r())};if(w&&Tb(w,t)===!0)return b();if(t===v)return Ult(t,b);if(h)return xfe(t,{mode:a}).then(L=>b(null,L),b);let R=zc(kb.relative(v,t)).split("/");Nb(v,R,a,w,E,v,null,b)};var Nb=(t,e,r,o,a,n,u,A)=>{if(!e.length)return A(null,u);let p=e.shift(),h=zc(kb.resolve(t+"/"+p));if(Tb(o,h))return Nb(h,e,r,o,a,n,u,A);sc.mkdir(h,r,Qfe(h,e,r,o,a,n,u,A))},Qfe=(t,e,r,o,a,n,u,A)=>p=>{p?sc.lstat(t,(h,E)=>{if(h)h.path=h.path&&zc(h.path),A(h);else if(E.isDirectory())Nb(t,e,r,o,a,n,u,A);else if(a)sc.unlink(t,w=>{if(w)return A(w);sc.mkdir(t,r,Qfe(t,e,r,o,a,n,u,A))});else{if(E.isSymbolicLink())return A(new Fb(t,t+"/"+e.join("/")));A(p)}}):(u=u||t,Nb(t,e,r,o,a,n,u,A))},_lt=t=>{let e=!1,r="ENOTDIR";try{e=sc.statSync(t).isDirectory()}catch(o){r=o.code}finally{if(!e)throw new Rb(t,r)}};W3.exports.sync=(t,e)=>{t=zc(t);let r=e.umask,o=e.mode|448,a=(o&r)!==0,n=e.uid,u=e.gid,A=typeof n=="number"&&typeof u=="number"&&(n!==e.processUid||u!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,w=zc(e.cwd),v=L=>{L1(E,t,!0),L&&A&&bfe.sync(L,n,u),a&&sc.chmodSync(t,o)};if(E&&Tb(E,t)===!0)return v();if(t===w)return _lt(w),v();if(p)return v(xfe.sync(t,o));let C=zc(kb.relative(w,t)).split("/"),R=null;for(let L=C.shift(),_=w;L&&(_+="/"+L);L=C.shift())if(_=zc(kb.resolve(_)),!Tb(E,_))try{sc.mkdirSync(_,o),R=R||_,L1(E,_,!0)}catch{let re=sc.lstatSync(_);if(re.isDirectory()){L1(E,_,!0);continue}else if(h){sc.unlinkSync(_),sc.mkdirSync(_,o),R=R||_,L1(E,_,!0);continue}else if(re.isSymbolicLink())return new Fb(_,_+"/"+C.join("/"))}return v(R)}});var K3=U((x4t,Ffe)=>{var Y3=Object.create(null),{hasOwnProperty:Hlt}=Object.prototype;Ffe.exports=t=>(Hlt.call(Y3,t)||(Y3[t]=t.normalize("NFKD")),Y3[t])});var Lfe=U((b4t,Nfe)=>{var Rfe=Ie("assert"),qlt=K3(),jlt=qC(),{join:Tfe}=Ie("path"),Glt=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Wlt=Glt==="win32";Nfe.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((w,v)=>(w.length&&(v=Tfe(w[w.length-1],v)),w.push(v||"/"),w),[]),o=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(w=>t.get(w)),dirs:[...E.dirs].map(w=>t.get(w))}},n=h=>{let{paths:E,dirs:w}=a(h);return E.every(v=>v[0]===h)&&w.every(v=>v[0]instanceof Set&&v[0].has(h))},u=h=>o.has(h)||!n(h)?!1:(o.add(h),h(()=>A(h)),!0),A=h=>{if(!o.has(h))return!1;let{paths:E,dirs:w}=e.get(h),v=new Set;return E.forEach(b=>{let C=t.get(b);Rfe.equal(C[0],h),C.length===1?t.delete(b):(C.shift(),typeof C[0]=="function"?v.add(C[0]):C[0].forEach(R=>v.add(R)))}),w.forEach(b=>{let C=t.get(b);Rfe(C[0]instanceof Set),C[0].size===1&&C.length===1?t.delete(b):C[0].size===1?(C.shift(),v.add(C[0])):C[0].delete(h)}),o.delete(h),v.forEach(b=>u(b)),!0};return{check:n,reserve:(h,E)=>{h=Wlt?["win32 parallelization disabled"]:h.map(v=>qlt(jlt(Tfe(v))).toLowerCase());let w=new Set(h.map(v=>r(v)).reduce((v,b)=>v.concat(b)));return e.set(E,{dirs:w,paths:h}),h.forEach(v=>{let b=t.get(v);b?b.push(E):t.set(v,[E])}),w.forEach(v=>{let b=t.get(v);b?b[b.length-1]instanceof Set?b[b.length-1].add(E):b.push(new Set([E])):t.set(v,[new Set([E])])}),u(E)}}}});var Ufe=U((Q4t,Mfe)=>{var Ylt=process.platform,Klt=Ylt==="win32",Vlt=global.__FAKE_TESTING_FS__||Ie("fs"),{O_CREAT:Jlt,O_TRUNC:zlt,O_WRONLY:Xlt,UV_FS_O_FILEMAP:Ofe=0}=Vlt.constants,Zlt=Klt&&!!Ofe,$lt=512*1024,ect=Ofe|zlt|Jlt|Xlt;Mfe.exports=Zlt?t=>t<$lt?ect:"w":()=>"w"});var r_=U((k4t,$fe)=>{"use strict";var tct=Ie("assert"),rct=Pb(),Cn=Ie("fs"),nct=XC(),Wf=Ie("path"),zfe=kfe(),_fe=r3(),ict=Lfe(),sct=n3(),hl=UC(),oct=qC(),act=K3(),Hfe=Symbol("onEntry"),z3=Symbol("checkFs"),qfe=Symbol("checkFs2"),Mb=Symbol("pruneCache"),X3=Symbol("isReusable"),oc=Symbol("makeFs"),Z3=Symbol("file"),$3=Symbol("directory"),Ub=Symbol("link"),jfe=Symbol("symlink"),Gfe=Symbol("hardlink"),Wfe=Symbol("unsupported"),Yfe=Symbol("checkPath"),w0=Symbol("mkdir"),ko=Symbol("onError"),Lb=Symbol("pending"),Kfe=Symbol("pend"),rE=Symbol("unpend"),V3=Symbol("ended"),J3=Symbol("maybeClose"),e_=Symbol("skip"),O1=Symbol("doChown"),M1=Symbol("uid"),U1=Symbol("gid"),_1=Symbol("checkedCwd"),Xfe=Ie("crypto"),Zfe=Ufe(),lct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,H1=lct==="win32",cct=(t,e)=>{if(!H1)return Cn.unlink(t,e);let r=t+".DELETE."+Xfe.randomBytes(16).toString("hex");Cn.rename(t,r,o=>{if(o)return e(o);Cn.unlink(r,e)})},uct=t=>{if(!H1)return Cn.unlinkSync(t);let e=t+".DELETE."+Xfe.randomBytes(16).toString("hex");Cn.renameSync(t,e),Cn.unlinkSync(e)},Vfe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Jfe=t=>act(oct(hl(t))).toLowerCase(),Act=(t,e)=>{e=Jfe(e);for(let r of t.keys()){let o=Jfe(r);(o===e||o.indexOf(e+"/")===0)&&t.delete(r)}},fct=t=>{for(let e of t.keys())t.delete(e)},q1=class extends rct{constructor(e){if(e||(e={}),e.ondone=r=>{this[V3]=!0,this[J3]()},super(e),this[_1]=!1,this.reservations=ict(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[Lb]=0,this[V3]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||H1,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=hl(Wf.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[Hfe](r))}warn(e,r,o={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(o.recoverable=!1),super.warn(e,r,o)}[J3](){this[V3]&&this[Lb]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[Yfe](e){if(this.strip){let r=hl(e.path).split("/");if(r.length<this.strip)return!1;if(e.path=r.slice(this.strip).join("/"),e.type==="Link"){let o=hl(e.linkpath).split("/");if(o.length>=this.strip)e.linkpath=o.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=hl(e.path),o=r.split("/");if(o.includes("..")||H1&&/^[a-z]:\.\.$/i.test(o[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=sct(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Wf.isAbsolute(e.path)?e.absolute=hl(Wf.resolve(e.path)):e.absolute=hl(Wf.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:hl(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=Wf.win32.parse(e.absolute);e.absolute=r+_fe.encode(e.absolute.substr(r.length));let{root:o}=Wf.win32.parse(e.path);e.path=o+_fe.encode(e.path.substr(o.length))}return!0}[Hfe](e){if(!this[Yfe](e))return e.resume();switch(tct.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[z3](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[Wfe](e)}}[ko](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[rE](),r.resume())}[w0](e,r,o){zfe(hl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},o)}[O1](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[M1](e){return Vfe(this.uid,e.uid,this.processUid)}[U1](e){return Vfe(this.gid,e.gid,this.processGid)}[Z3](e,r){let o=e.mode&4095||this.fmode,a=new nct.WriteStream(e.absolute,{flags:Zfe(e.size),mode:o,autoClose:!1});a.on("error",p=>{a.fd&&Cn.close(a.fd,()=>{}),a.write=()=>!0,this[ko](p,e),r()});let n=1,u=p=>{if(p){a.fd&&Cn.close(a.fd,()=>{}),this[ko](p,e),r();return}--n===0&&Cn.close(a.fd,h=>{h?this[ko](h,e):this[rE](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let w=e.atime||new Date,v=e.mtime;Cn.futimes(E,w,v,b=>b?Cn.utimes(h,w,v,C=>u(C&&b)):u())}if(this[O1](e)){n++;let w=this[M1](e),v=this[U1](e);Cn.fchown(E,w,v,b=>b?Cn.chown(h,w,v,C=>u(C&&b)):u())}u()});let A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",p=>{this[ko](p,e),r()}),e.pipe(A)),A.pipe(a)}[$3](e,r){let o=e.mode&4095||this.dmode;this[w0](e.absolute,o,a=>{if(a){this[ko](a,e),r();return}let n=1,u=A=>{--n===0&&(r(),this[rE](),e.resume())};e.mtime&&!this.noMtime&&(n++,Cn.utimes(e.absolute,e.atime||new Date,e.mtime,u)),this[O1](e)&&(n++,Cn.chown(e.absolute,this[M1](e),this[U1](e),u)),u()})}[Wfe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[jfe](e,r){this[Ub](e,e.linkpath,"symlink",r)}[Gfe](e,r){let o=hl(Wf.resolve(this.cwd,e.linkpath));this[Ub](e,o,"link",r)}[Kfe](){this[Lb]++}[rE](){this[Lb]--,this[J3]()}[e_](e){this[rE](),e.resume()}[X3](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!H1}[z3](e){this[Kfe]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,o=>this[qfe](e,o))}[Mb](e){e.type==="SymbolicLink"?fct(this.dirCache):e.type!=="Directory"&&Act(this.dirCache,e.absolute)}[qfe](e,r){this[Mb](e);let o=A=>{this[Mb](e),r(A)},a=()=>{this[w0](this.cwd,this.dmode,A=>{if(A){this[ko](A,e),o();return}this[_1]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let A=hl(Wf.dirname(e.absolute));if(A!==this.cwd)return this[w0](A,this.dmode,p=>{if(p){this[ko](p,e),o();return}u()})}u()},u=()=>{Cn.lstat(e.absolute,(A,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[e_](e),o();return}if(A||this[X3](e,p))return this[oc](null,e,o);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=w=>this[oc](w,e,o);return h?Cn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return Cn.rmdir(e.absolute,h=>this[oc](h,e,o))}if(e.absolute===this.cwd)return this[oc](null,e,o);cct(e.absolute,h=>this[oc](h,e,o))})};this[_1]?n():a()}[oc](e,r,o){if(e){this[ko](e,r),o();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[Z3](r,o);case"Link":return this[Gfe](r,o);case"SymbolicLink":return this[jfe](r,o);case"Directory":case"GNUDumpDir":return this[$3](r,o)}}[Ub](e,r,o,a){Cn[o](r,e.absolute,n=>{n?this[ko](n,e):(this[rE](),e.resume()),a()})}},Ob=t=>{try{return[null,t()]}catch(e){return[e,null]}},t_=class extends q1{[oc](e,r){return super[oc](e,r,()=>{})}[z3](e){if(this[Mb](e),!this[_1]){let n=this[w0](this.cwd,this.dmode);if(n)return this[ko](n,e);this[_1]=!0}if(e.absolute!==this.cwd){let n=hl(Wf.dirname(e.absolute));if(n!==this.cwd){let u=this[w0](n,this.dmode);if(u)return this[ko](u,e)}}let[r,o]=Ob(()=>Cn.lstatSync(e.absolute));if(o&&(this.keep||this.newer&&o.mtime>e.mtime))return this[e_](e);if(r||this[X3](e,o))return this[oc](null,e);if(o.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(o.mode&4095)!==e.mode,[A]=u?Ob(()=>{Cn.chmodSync(e.absolute,e.mode)}):[];return this[oc](A,e)}let[n]=Ob(()=>Cn.rmdirSync(e.absolute));this[oc](n,e)}let[a]=e.absolute===this.cwd?[]:Ob(()=>uct(e.absolute));this[oc](a,e)}[Z3](e,r){let o=e.mode&4095||this.fmode,a=A=>{let p;try{Cn.closeSync(n)}catch(h){p=h}(A||p)&&this[ko](A||p,e),r()},n;try{n=Cn.openSync(e.absolute,Zfe(e.size),o)}catch(A){return a(A)}let u=this.transform&&this.transform(e)||e;u!==e&&(u.on("error",A=>this[ko](A,e)),e.pipe(u)),u.on("data",A=>{try{Cn.writeSync(n,A,0,A.length)}catch(p){a(p)}}),u.on("end",A=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{Cn.futimesSync(n,h,E)}catch(w){try{Cn.utimesSync(e.absolute,h,E)}catch{p=w}}}if(this[O1](e)){let h=this[M1](e),E=this[U1](e);try{Cn.fchownSync(n,h,E)}catch(w){try{Cn.chownSync(e.absolute,h,E)}catch{p=p||w}}}a(p)})}[$3](e,r){let o=e.mode&4095||this.dmode,a=this[w0](e.absolute,o);if(a){this[ko](a,e),r();return}if(e.mtime&&!this.noMtime)try{Cn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[O1](e))try{Cn.chownSync(e.absolute,this[M1](e),this[U1](e))}catch{}r(),e.resume()}[w0](e,r){try{return zfe.sync(hl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(o){return o}}[Ub](e,r,o,a){try{Cn[o+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[ko](n,e)}}};q1.Sync=t_;$fe.exports=q1});var ipe=U((F4t,npe)=>{"use strict";var pct=TC(),_b=r_(),tpe=Ie("fs"),rpe=XC(),epe=Ie("path"),n_=qC();npe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=pct(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&hct(o,e),o.file&&o.sync?gct(o):o.file?dct(o,r):o.sync?mct(o):yct(o)};var hct=(t,e)=>{let r=new Map(e.map(n=>[n_(n),!0])),o=t.filter,a=(n,u)=>{let A=u||epe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(epe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(n_(n)):n=>a(n_(n))},gct=t=>{let e=new _b.Sync(t),r=t.file,o=tpe.statSync(r),a=t.maxReadSize||16*1024*1024;new rpe.ReadStreamSync(r,{readSize:a,size:o.size}).pipe(e)},dct=(t,e)=>{let r=new _b(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("close",u),tpe.stat(a,(p,h)=>{if(p)A(p);else{let E=new rpe.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},mct=t=>new _b.Sync(t),yct=t=>new _b(t)});var spe=U(fs=>{"use strict";fs.c=fs.create=_Ae();fs.r=fs.replace=M3();fs.t=fs.list=xb();fs.u=fs.update=JAe();fs.x=fs.extract=ipe();fs.Pack=pb();fs.Unpack=r_();fs.Parse=Pb();fs.ReadEntry=Jx();fs.WriteEntry=p3();fs.Header=HC();fs.Pax=Xx();fs.types=JU()});var ope,ape,B0,Hb,lpe=dt(()=>{ope=tt(rd()),ape=Ie("worker_threads");g1();B0=Symbol("kTaskInfo"),Hb=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,ope.default)(J4());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let r=this.workers.pop();r?r.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new ape.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[B0])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[B0].resolve(r),e[B0]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{var o;(o=e[B0])==null||o.reject(r),e[B0]=null}),e.on("exit",r=>{var o;r!==0&&((o=e[B0])==null||o.reject(new Error(`Worker exited with code ${r}`))),e[B0]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((o,a)=>{r[B0]={resolve:o,reject:a},r.postMessage(e)})})}}});var upe=U((N4t,cpe)=>{var i_;cpe.exports.getContent=()=>(typeof i_>"u"&&(i_=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),i_)});var Ji={};Yt(Ji,{convertToZip:()=>Ect,extractArchiveTo:()=>wct,makeArchiveFromDirectory:()=>Cct});async function Cct(t,{baseFs:e=new xn,prefixPath:r=wt.root,compressionLevel:o,inMemory:a=!1}={}){let n;if(a)n=new os(null,{level:o});else{let A=await ae.mktempPromise(),p=z.join(A,"archive.zip");n=new os(p,{create:!0,level:o})}let u=z.resolve(wt.root,r);return await n.copyPromise(u,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function Ect(t,e){let r=await ae.mktempPromise(),o=z.join(r,"archive.zip");return Ape||(Ape=new Hb((0,hpe.getContent)())),await Ape.run({tmpFile:o,tgz:t,opts:e}),new os(o,{level:e.compressionLevel})}async function*Ict(t){let e=new ppe.default.Parse,r=new fpe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",o=>{r.write(o)}),e.on("error",o=>{r.destroy(o)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let o of r){let a=o;yield a,a.resume()}}async function wct(t,e,{stripComponents:r=0,prefixPath:o=wt.dot}={}){function a(n){if(n.path[0]==="/")return!0;let u=n.path.split(/\//g);return!!(u.some(A=>A==="..")||u.length<=r)}for await(let n of Ict(t)){if(a(n))continue;let u=z.normalize(ue.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(u.length<=r)continue;let A=u.slice(r).join("/"),p=z.join(o,A),h=420;switch((n.type==="Directory"||((n.mode??0)&73)!==0)&&(h|=73),n.type){case"Directory":e.mkdirpSync(z.dirname(p),{chmod:493,utimes:[Ii.SAFE_TIME,Ii.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,Ii.SAFE_TIME,Ii.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(z.dirname(p),{chmod:493,utimes:[Ii.SAFE_TIME,Ii.SAFE_TIME]}),e.writeFileSync(p,await Jy(n),{mode:h}),e.utimesSync(p,Ii.SAFE_TIME,Ii.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(z.dirname(p),{chmod:493,utimes:[Ii.SAFE_TIME,Ii.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,Ii.SAFE_TIME,Ii.SAFE_TIME);break}}return e}var fpe,ppe,hpe,Ape,gpe=dt(()=>{bt();_c();fpe=Ie("stream"),ppe=tt(spe());lpe();Kl();hpe=tt(upe())});var mpe=U((s_,dpe)=>{(function(t,e){typeof s_=="object"?dpe.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(s_,function(){function t(a,n){var u=n?"\u2514":"\u251C";return a?u+="\u2500 ":u+="\u2500\u2500\u2510",u}function e(a,n){var u=[];for(var A in a)!a.hasOwnProperty(A)||n&&typeof a[A]=="function"||u.push(A);return u}function r(a,n,u,A,p,h,E){var w="",v=0,b,C,R=A.slice(0);if(R.push([n,u])&&A.length>0&&(A.forEach(function(_,V){V>0&&(w+=(_[1]?" ":"\u2502")+" "),!C&&_[0]===n&&(C=!0)}),w+=t(a,u)+a,p&&(typeof n!="object"||n instanceof Date)&&(w+=": "+n),C&&(w+=" (circular ref.)"),E(w)),!C&&typeof n=="object"){var L=e(n,h);L.forEach(function(_){b=++v===L.length,r(_,n[_],b,R,p,h,E)})}}var o={};return o.asLines=function(a,n,u,A){var p=typeof u!="function"?u:!1;r(".",a,!1,[],n,p,A||u)},o.asTree=function(a,n,u){var A="";return r(".",a,!1,[],n,u,function(p){A+=p+` 186`).reduce(xat,Object.create(null)),xat=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};Vue.exports=F1});var qE=U((o4t,Jue)=>{Jue.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var eb=U((a4t,zue)=>{"use strict";zue.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var i3=U((c4t,Xue)=>{"use strict";var tb=["|","<",">","?",":"],n3=tb.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),bat=new Map(tb.map((t,e)=>[t,n3[e]])),Qat=new Map(n3.map((t,e)=>[t,tb[e]]));Xue.exports={encode:t=>tb.reduce((e,r)=>e.split(r).join(bat.get(r)),t),decode:t=>n3.reduce((e,r)=>e.split(r).join(Qat.get(r)),t)}});var s3=U((u4t,$ue)=>{var{isAbsolute:kat,parse:Zue}=Ie("path").win32;$ue.exports=t=>{let e="",r=Zue(t);for(;kat(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=Zue(t)}return[e,t]}});var tAe=U((A4t,eAe)=>{"use strict";eAe.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var g3=U((h4t,gAe)=>{"use strict";var lAe=LE(),cAe=$x(),uAe=HE(),lA=Ie("fs"),rAe=Ie("path"),aA=UE(),Fat=qE(),AAe=(t,e)=>e?(t=aA(t).replace(/^\.(\/|$)/,""),Fat(e)+"/"+t):aA(t),Rat=16*1024*1024,nAe=Symbol("process"),iAe=Symbol("file"),sAe=Symbol("directory"),a3=Symbol("symlink"),oAe=Symbol("hardlink"),R1=Symbol("header"),rb=Symbol("read"),l3=Symbol("lstat"),nb=Symbol("onlstat"),c3=Symbol("onread"),u3=Symbol("onreadlink"),A3=Symbol("openfile"),f3=Symbol("onopenfile"),d0=Symbol("close"),ib=Symbol("mode"),p3=Symbol("awaitDrain"),o3=Symbol("ondrain"),cA=Symbol("prefix"),aAe=Symbol("hadError"),fAe=eb(),Tat=i3(),pAe=s3(),hAe=tAe(),sb=fAe(class extends lAe{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=aA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||Rat,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=aA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?aA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=pAe(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=Tat.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=aA(r.absolute||rAe.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[nb](this.statCache.get(this.absolute)):this[l3]()}emit(e,...r){return e==="error"&&(this[aAe]=!0),super.emit(e,...r)}[l3](){lA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[nb](r)})}[nb](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Lat(e),this.emit("stat",e),this[nAe]()}[nAe](){switch(this.type){case"File":return this[iAe]();case"Directory":return this[sAe]();case"SymbolicLink":return this[a3]();default:return this.end()}}[ib](e){return hAe(e,this.type==="Directory",this.portable)}[cA](e){return AAe(e,this.prefix)}[R1](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new uAe({path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,mode:this[ib](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new cAe({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[sAe](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[R1](),this.end()}[a3](){lA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[u3](r)})}[u3](e){this.linkpath=aA(e),this[R1](),this.end()}[oAe](e){this.type="Link",this.linkpath=aA(rAe.relative(this.cwd,e)),this.stat.size=0,this[R1](),this.end()}[iAe](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[oAe](r)}this.linkCache.set(e,this.absolute)}if(this[R1](),this.stat.size===0)return this.end();this[A3]()}[A3](){lA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[f3](r)})}[f3](e){if(this.fd=e,this[aAe])return this[d0]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[rb]()}[rb](){let{fd:e,buf:r,offset:o,length:a,pos:n}=this;lA.read(e,r,o,a,n,(u,A)=>{if(u)return this[d0](()=>this.emit("error",u));this[c3](A)})}[d0](e){lA.close(this.fd,e)}[c3](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[d0](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[d0](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;a<this.length&&e<this.blockRemain;a++)this.buf[a+this.offset]=0,e++,this.remain++;let r=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(r)?this[o3]():this[p3](()=>this[o3]())}[p3](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let r=new Error("writing more data than expected");return r.path=this.absolute,this.emit("error",r)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[o3](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[d0](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[rb]()}}),h3=class extends sb{[l3](){this[nb](lA.lstatSync(this.absolute))}[a3](){this[u3](lA.readlinkSync(this.absolute))}[A3](){this[f3](lA.openSync(this.absolute,"r"))}[rb](){let e=!0;try{let{fd:r,buf:o,offset:a,length:n,pos:u}=this,A=lA.readSync(r,o,a,n,u);this[c3](A),e=!1}finally{if(e)try{this[d0](()=>{})}catch{}}}[p3](e){e()}[d0](e){lA.closeSync(this.fd),e()}},Nat=fAe(class extends lAe{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=aA(e.path),this.mode=this[ib](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=aA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=pAe(this.path);a&&(this.path=n,o=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new uAe({path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new cAe({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[cA](e){return AAe(e,this.prefix)}[ib](e){return hAe(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});sb.Sync=h3;sb.Tar=Nat;var Lat=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";gAe.exports=sb});var gb=U((d4t,wAe)=>{"use strict";var pb=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},Oat=LE(),Mat=VU(),Uat=Xx(),v3=g3(),_at=v3.Sync,Hat=v3.Tar,qat=pS(),dAe=Buffer.alloc(1024),lb=Symbol("onStat"),ob=Symbol("ended"),uA=Symbol("queue"),jE=Symbol("current"),Ud=Symbol("process"),ab=Symbol("processing"),mAe=Symbol("processJob"),AA=Symbol("jobs"),d3=Symbol("jobDone"),ub=Symbol("addFSEntry"),yAe=Symbol("addTarEntry"),C3=Symbol("stat"),I3=Symbol("readdir"),Ab=Symbol("onreaddir"),fb=Symbol("pipe"),EAe=Symbol("entry"),m3=Symbol("entryOpt"),w3=Symbol("writeEntryClass"),IAe=Symbol("write"),y3=Symbol("ondrain"),hb=Ie("fs"),CAe=Ie("path"),jat=eb(),E3=UE(),D3=jat(class extends Oat{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=E3(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[w3]=v3,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new Mat.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[y3]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[y3]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[uA]=new qat,this[AA]=0,this.jobs=+e.jobs||4,this[ab]=!1,this[ob]=!1}[IAe](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[ob]=!0,this[Ud](),this}write(e){if(this[ob])throw new Error("write after end");return e instanceof Uat?this[yAe](e):this[ub](e),this.flowing}[yAe](e){let r=E3(CAe.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let o=new pb(e.path,r,!1);o.entry=new Hat(e,this[m3](o)),o.entry.on("end",a=>this[d3](o)),this[AA]+=1,this[uA].push(o)}this[Ud]()}[ub](e){let r=E3(CAe.resolve(this.cwd,e));this[uA].push(new pb(e,r)),this[Ud]()}[C3](e){e.pending=!0,this[AA]+=1;let r=this.follow?"stat":"lstat";hb[r](e.absolute,(o,a)=>{e.pending=!1,this[AA]-=1,o?this.emit("error",o):this[lb](e,a)})}[lb](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[Ud]()}[I3](e){e.pending=!0,this[AA]+=1,hb.readdir(e.absolute,(r,o)=>{if(e.pending=!1,this[AA]-=1,r)return this.emit("error",r);this[Ab](e,o)})}[Ab](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[Ud]()}[Ud](){if(!this[ab]){this[ab]=!0;for(let e=this[uA].head;e!==null&&this[AA]<this.jobs;e=e.next)if(this[mAe](e.value),e.value.ignore){let r=e.next;this[uA].removeNode(e),e.next=r}this[ab]=!1,this[ob]&&!this[uA].length&&this[AA]===0&&(this.zip?this.zip.end(dAe):(super.write(dAe),super.end()))}}get[jE](){return this[uA]&&this[uA].head&&this[uA].head.value}[d3](e){this[uA].shift(),this[AA]-=1,this[Ud]()}[mAe](e){if(!e.pending){if(e.entry){e===this[jE]&&!e.piped&&this[fb](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[lb](e,this.statCache.get(e.absolute)):this[C3](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[Ab](e,this.readdirCache.get(e.absolute)):this[I3](e),!e.readdir))){if(e.entry=this[EAe](e),!e.entry){e.ignore=!0;return}e===this[jE]&&!e.piped&&this[fb](e)}}}[m3](e){return{onwarn:(r,o,a)=>this.warn(r,o,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[EAe](e){this[AA]+=1;try{return new this[w3](e.path,this[m3](e)).on("end",()=>this[d3](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[y3](){this[jE]&&this[jE].entry&&this[jE].entry.resume()}[fb](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[ub](u+a)});let r=e.entry,o=this.zip;o?r.on("data",a=>{o.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),B3=class extends D3{constructor(e){super(e),this[w3]=_at}pause(){}resume(){}[C3](e){let r=this.follow?"statSync":"lstatSync";this[lb](e,hb[r](e.absolute))}[I3](e,r){this[Ab](e,hb.readdirSync(e.absolute))}[fb](e){let r=e.entry,o=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[ub](u+a)}),o?r.on("data",a=>{o.write(a)}):r.on("data",a=>{super[IAe](a)})}};D3.Sync=B3;wAe.exports=D3});var XE=U(N1=>{"use strict";var Gat=LE(),Wat=Ie("events").EventEmitter,Fa=Ie("fs"),x3=Fa.writev;if(!x3){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;x3=(r,o,a,n)=>{let u=(p,h)=>n(p,h,o),A=new e;A.oncomplete=u,t.writeBuffers(r,o,a,A)}}var JE=Symbol("_autoClose"),zc=Symbol("_close"),T1=Symbol("_ended"),Mn=Symbol("_fd"),BAe=Symbol("_finished"),y0=Symbol("_flags"),S3=Symbol("_flush"),b3=Symbol("_handleChunk"),Q3=Symbol("_makeBuf"),Cb=Symbol("_mode"),db=Symbol("_needDrain"),KE=Symbol("_onerror"),zE=Symbol("_onopen"),P3=Symbol("_onread"),WE=Symbol("_onwrite"),E0=Symbol("_open"),Gf=Symbol("_path"),_d=Symbol("_pos"),fA=Symbol("_queue"),YE=Symbol("_read"),vAe=Symbol("_readSize"),m0=Symbol("_reading"),mb=Symbol("_remain"),DAe=Symbol("_size"),yb=Symbol("_write"),GE=Symbol("_writing"),Eb=Symbol("_defaultFlag"),VE=Symbol("_errored"),Ib=class extends Gat{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[VE]=!1,this[Mn]=typeof r.fd=="number"?r.fd:null,this[Gf]=e,this[vAe]=r.readSize||16*1024*1024,this[m0]=!1,this[DAe]=typeof r.size=="number"?r.size:1/0,this[mb]=this[DAe],this[JE]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[Mn]=="number"?this[YE]():this[E0]()}get fd(){return this[Mn]}get path(){return this[Gf]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[E0](){Fa.open(this[Gf],"r",(e,r)=>this[zE](e,r))}[zE](e,r){e?this[KE](e):(this[Mn]=r,this.emit("open",r),this[YE]())}[Q3](){return Buffer.allocUnsafe(Math.min(this[vAe],this[mb]))}[YE](){if(!this[m0]){this[m0]=!0;let e=this[Q3]();if(e.length===0)return process.nextTick(()=>this[P3](null,0,e));Fa.read(this[Mn],e,0,e.length,null,(r,o,a)=>this[P3](r,o,a))}}[P3](e,r,o){this[m0]=!1,e?this[KE](e):this[b3](r,o)&&this[YE]()}[zc](){if(this[JE]&&typeof this[Mn]=="number"){let e=this[Mn];this[Mn]=null,Fa.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[KE](e){this[m0]=!0,this[zc](),this.emit("error",e)}[b3](e,r){let o=!1;return this[mb]-=e,e>0&&(o=super.write(e<r.length?r.slice(0,e):r)),(e===0||this[mb]<=0)&&(o=!1,this[zc](),super.end()),o}emit(e,r){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[Mn]=="number"&&this[YE]();break;case"error":return this[VE]?void 0:(this[VE]=!0,super.emit(e,r));default:return super.emit(e,r)}}},k3=class extends Ib{[E0](){let e=!0;try{this[zE](null,Fa.openSync(this[Gf],"r")),e=!1}finally{e&&this[zc]()}}[YE](){let e=!0;try{if(!this[m0]){this[m0]=!0;do{let r=this[Q3](),o=r.length===0?0:Fa.readSync(this[Mn],r,0,r.length,null);if(!this[b3](o,r))break}while(!0);this[m0]=!1}e=!1}finally{e&&this[zc]()}}[zc](){if(this[JE]&&typeof this[Mn]=="number"){let e=this[Mn];this[Mn]=null,Fa.closeSync(e),this.emit("close")}}},wb=class extends Wat{constructor(e,r){r=r||{},super(r),this.readable=!1,this.writable=!0,this[VE]=!1,this[GE]=!1,this[T1]=!1,this[db]=!1,this[fA]=[],this[Gf]=e,this[Mn]=typeof r.fd=="number"?r.fd:null,this[Cb]=r.mode===void 0?438:r.mode,this[_d]=typeof r.start=="number"?r.start:null,this[JE]=typeof r.autoClose=="boolean"?r.autoClose:!0;let o=this[_d]!==null?"r+":"w";this[Eb]=r.flags===void 0,this[y0]=this[Eb]?o:r.flags,this[Mn]===null&&this[E0]()}emit(e,r){if(e==="error"){if(this[VE])return;this[VE]=!0}return super.emit(e,r)}get fd(){return this[Mn]}get path(){return this[Gf]}[KE](e){this[zc](),this[GE]=!0,this.emit("error",e)}[E0](){Fa.open(this[Gf],this[y0],this[Cb],(e,r)=>this[zE](e,r))}[zE](e,r){this[Eb]&&this[y0]==="r+"&&e&&e.code==="ENOENT"?(this[y0]="w",this[E0]()):e?this[KE](e):(this[Mn]=r,this.emit("open",r),this[S3]())}end(e,r){return e&&this.write(e,r),this[T1]=!0,!this[GE]&&!this[fA].length&&typeof this[Mn]=="number"&&this[WE](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[T1]?(this.emit("error",new Error("write() after end()")),!1):this[Mn]===null||this[GE]||this[fA].length?(this[fA].push(e),this[db]=!0,!1):(this[GE]=!0,this[yb](e),!0)}[yb](e){Fa.write(this[Mn],e,0,e.length,this[_d],(r,o)=>this[WE](r,o))}[WE](e,r){e?this[KE](e):(this[_d]!==null&&(this[_d]+=r),this[fA].length?this[S3]():(this[GE]=!1,this[T1]&&!this[BAe]?(this[BAe]=!0,this[zc](),this.emit("finish")):this[db]&&(this[db]=!1,this.emit("drain"))))}[S3](){if(this[fA].length===0)this[T1]&&this[WE](null,0);else if(this[fA].length===1)this[yb](this[fA].pop());else{let e=this[fA];this[fA]=[],x3(this[Mn],e,this[_d],(r,o)=>this[WE](r,o))}}[zc](){if(this[JE]&&typeof this[Mn]=="number"){let e=this[Mn];this[Mn]=null,Fa.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},F3=class extends wb{[E0](){let e;if(this[Eb]&&this[y0]==="r+")try{e=Fa.openSync(this[Gf],this[y0],this[Cb])}catch(r){if(r.code==="ENOENT")return this[y0]="w",this[E0]();throw r}else e=Fa.openSync(this[Gf],this[y0],this[Cb]);this[zE](null,e)}[zc](){if(this[JE]&&typeof this[Mn]=="number"){let e=this[Mn];this[Mn]=null,Fa.closeSync(e),this.emit("close")}}[yb](e){let r=!0;try{this[WE](null,Fa.writeSync(this[Mn],e,0,e.length,this[_d])),r=!1}finally{if(r)try{this[zc]()}catch{}}}};N1.ReadStream=Ib;N1.ReadStreamSync=k3;N1.WriteStream=wb;N1.WriteStreamSync=F3});var bb=U((E4t,FAe)=>{"use strict";var Yat=eb(),Kat=HE(),Vat=Ie("events"),Jat=pS(),zat=1024*1024,Xat=Xx(),SAe=$x(),Zat=VU(),R3=Buffer.from([31,139]),nc=Symbol("state"),Hd=Symbol("writeEntry"),Wf=Symbol("readEntry"),T3=Symbol("nextEntry"),PAe=Symbol("processEntry"),ic=Symbol("extendedHeader"),L1=Symbol("globalExtendedHeader"),C0=Symbol("meta"),xAe=Symbol("emitMeta"),li=Symbol("buffer"),Yf=Symbol("queue"),qd=Symbol("ended"),bAe=Symbol("emittedEnd"),jd=Symbol("emit"),Ra=Symbol("unzip"),Bb=Symbol("consumeChunk"),vb=Symbol("consumeChunkSub"),N3=Symbol("consumeBody"),QAe=Symbol("consumeMeta"),kAe=Symbol("consumeHeader"),Db=Symbol("consuming"),L3=Symbol("bufferConcat"),O3=Symbol("maybeEnd"),O1=Symbol("writing"),I0=Symbol("aborted"),Sb=Symbol("onDone"),Gd=Symbol("sawValidEntry"),Pb=Symbol("sawNullBlock"),xb=Symbol("sawEOF"),$at=t=>!0;FAe.exports=Yat(class extends Vat{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Gd]=null,this.on(Sb,r=>{(this[nc]==="begin"||this[Gd]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(Sb,e.ondone):this.on(Sb,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||zat,this.filter=typeof e.filter=="function"?e.filter:$at,this.writable=!0,this.readable=!1,this[Yf]=new Jat,this[li]=null,this[Wf]=null,this[Hd]=null,this[nc]="begin",this[C0]="",this[ic]=null,this[L1]=null,this[qd]=!1,this[Ra]=null,this[I0]=!1,this[Pb]=!1,this[xb]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[kAe](e,r){this[Gd]===null&&(this[Gd]=!1);let o;try{o=new Kat(e,r,this[ic],this[L1])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(o.nullBlock)this[Pb]?(this[xb]=!0,this[nc]==="begin"&&(this[nc]="header"),this[jd]("eof")):(this[Pb]=!0,this[jd]("nullBlock"));else if(this[Pb]=!1,!o.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:o});else if(!o.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:o});else{let a=o.type;if(/^(Symbolic)?Link$/.test(a)&&!o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:o});else if(!/^(Symbolic)?Link$/.test(a)&&o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:o});else{let n=this[Hd]=new Xat(o,this[ic],this[L1]);if(!this[Gd])if(n.remain){let u=()=>{n.invalid||(this[Gd]=!0)};n.on("end",u)}else this[Gd]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[jd]("ignoredEntry",n),this[nc]="ignore",n.resume()):n.size>0&&(this[C0]="",n.on("data",u=>this[C0]+=u),this[nc]="meta"):(this[ic]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[jd]("ignoredEntry",n),this[nc]=n.remain?"ignore":"header",n.resume()):(n.remain?this[nc]="body":(this[nc]="header",n.end()),this[Wf]?this[Yf].push(n):(this[Yf].push(n),this[T3]())))}}}[PAe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Wf]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",o=>this[T3]()),r=!1)):(this[Wf]=null,r=!1),r}[T3](){do;while(this[PAe](this[Yf].shift()));if(!this[Yf].length){let e=this[Wf];!e||e.flowing||e.size===e.remain?this[O1]||this.emit("drain"):e.once("drain",o=>this.emit("drain"))}}[N3](e,r){let o=this[Hd],a=o.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return o.write(n),o.blockRemain||(this[nc]="header",this[Hd]=null,o.end()),n.length}[QAe](e,r){let o=this[Hd],a=this[N3](e,r);return this[Hd]||this[xAe](o),a}[jd](e,r,o){!this[Yf].length&&!this[Wf]?this.emit(e,r,o):this[Yf].push([e,r,o])}[xAe](e){switch(this[jd]("meta",this[C0]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[ic]=SAe.parse(this[C0],this[ic],!1);break;case"GlobalExtendedHeader":this[L1]=SAe.parse(this[C0],this[L1],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[ic]=this[ic]||Object.create(null),this[ic].path=this[C0].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[ic]=this[ic]||Object.create(null),this[ic].linkpath=this[C0].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[I0]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[I0])return;if(this[Ra]===null&&e){if(this[li]&&(e=Buffer.concat([this[li],e]),this[li]=null),e.length<R3.length)return this[li]=e,!0;for(let o=0;this[Ra]===null&&o<R3.length;o++)e[o]!==R3[o]&&(this[Ra]=!1);if(this[Ra]===null){let o=this[qd];this[qd]=!1,this[Ra]=new Zat.Unzip,this[Ra].on("data",n=>this[Bb](n)),this[Ra].on("error",n=>this.abort(n)),this[Ra].on("end",n=>{this[qd]=!0,this[Bb]()}),this[O1]=!0;let a=this[Ra][o?"end":"write"](e);return this[O1]=!1,a}}this[O1]=!0,this[Ra]?this[Ra].write(e):this[Bb](e),this[O1]=!1;let r=this[Yf].length?!1:this[Wf]?this[Wf].flowing:!0;return!r&&!this[Yf].length&&this[Wf].once("drain",o=>this.emit("drain")),r}[L3](e){e&&!this[I0]&&(this[li]=this[li]?Buffer.concat([this[li],e]):e)}[O3](){if(this[qd]&&!this[bAe]&&!this[I0]&&!this[Db]){this[bAe]=!0;let e=this[Hd];if(e&&e.blockRemain){let r=this[li]?this[li].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[li]&&e.write(this[li]),e.end()}this[jd](Sb)}}[Bb](e){if(this[Db])this[L3](e);else if(!e&&!this[li])this[O3]();else{if(this[Db]=!0,this[li]){this[L3](e);let r=this[li];this[li]=null,this[vb](r)}else this[vb](e);for(;this[li]&&this[li].length>=512&&!this[I0]&&!this[xb];){let r=this[li];this[li]=null,this[vb](r)}this[Db]=!1}(!this[li]||this[qd])&&this[O3]()}[vb](e){let r=0,o=e.length;for(;r+512<=o&&!this[I0]&&!this[xb];)switch(this[nc]){case"begin":case"header":this[kAe](e,r),r+=512;break;case"ignore":case"body":r+=this[N3](e,r);break;case"meta":r+=this[QAe](e,r);break;default:throw new Error("invalid state: "+this[nc])}r<o&&(this[li]?this[li]=Buffer.concat([e.slice(r),this[li]]):this[li]=e.slice(r))}end(e){this[I0]||(this[Ra]?this[Ra].end(e):(this[qd]=!0,this.write(e)))}})});var Qb=U((C4t,LAe)=>{"use strict";var elt=TE(),TAe=bb(),ZE=Ie("fs"),tlt=XE(),RAe=Ie("path"),M3=qE();LAe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=elt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&nlt(o,e),o.noResume||rlt(o),o.file&&o.sync?ilt(o):o.file?slt(o,r):NAe(o)};var rlt=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},nlt=(t,e)=>{let r=new Map(e.map(n=>[M3(n),!0])),o=t.filter,a=(n,u)=>{let A=u||RAe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(RAe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(M3(n)):n=>a(M3(n))},ilt=t=>{let e=NAe(t),r=t.file,o=!0,a;try{let n=ZE.statSync(r),u=t.maxReadSize||16*1024*1024;if(n.size<u)e.end(ZE.readFileSync(r));else{let A=0,p=Buffer.allocUnsafe(u);for(a=ZE.openSync(r,"r");A<n.size;){let h=ZE.readSync(a,p,0,u,A);A+=h,e.write(p.slice(0,h))}e.end()}o=!1}finally{if(o&&a)try{ZE.closeSync(a)}catch{}}},slt=(t,e)=>{let r=new TAe(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("end",u),ZE.stat(a,(p,h)=>{if(p)A(p);else{let C=new tlt.ReadStream(a,{readSize:o,size:h.size});C.on("error",A),C.pipe(r)}})});return e?n.then(e,e):n},NAe=t=>new TAe(t)});var qAe=U((I4t,HAe)=>{"use strict";var olt=TE(),kb=gb(),OAe=XE(),MAe=Qb(),UAe=Ie("path");HAe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let o=olt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return o.file&&o.sync?alt(o,e):o.file?llt(o,e,r):o.sync?clt(o,e):ult(o,e)};var alt=(t,e)=>{let r=new kb.Sync(t),o=new OAe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(o),_Ae(r,e)},llt=(t,e,r)=>{let o=new kb(t),a=new OAe.WriteStream(t.file,{mode:t.mode||438});o.pipe(a);let n=new Promise((u,A)=>{a.on("error",A),a.on("close",u),o.on("error",A)});return U3(o,e),r?n.then(r,r):n},_Ae=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?MAe({file:UAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},U3=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return MAe({file:UAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>U3(t,e));t.add(r)}t.end()},clt=(t,e)=>{let r=new kb.Sync(t);return _Ae(r,e),r},ult=(t,e)=>{let r=new kb(t);return U3(r,e),r}});var _3=U((w4t,JAe)=>{"use strict";var Alt=TE(),jAe=gb(),hl=Ie("fs"),GAe=XE(),WAe=Qb(),YAe=Ie("path"),KAe=HE();JAe.exports=(t,e,r)=>{let o=Alt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),o.sync?flt(o,e):hlt(o,e,r)};var flt=(t,e)=>{let r=new jAe.Sync(t),o=!0,a,n;try{try{a=hl.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=hl.openSync(t.file,"w+");else throw p}let u=hl.fstatSync(a),A=Buffer.alloc(512);e:for(n=0;n<u.size;n+=512){for(let C=0,w=0;C<512;C+=w){if(w=hl.readSync(a,A,C,A.length-C,n+C),n===0&&A[0]===31&&A[1]===139)throw new Error("cannot append to compressed archives");if(!w)break e}let p=new KAe(A);if(!p.cksumValid)break;let h=512*Math.ceil(p.size/512);if(n+h+512>u.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}o=!1,plt(t,r,n,a,e)}finally{if(o)try{hl.closeSync(a)}catch{}}},plt=(t,e,r,o,a)=>{let n=new GAe.WriteStreamSync(t.file,{fd:o,start:r});e.pipe(n),glt(e,a)},hlt=(t,e,r)=>{e=Array.from(e);let o=new jAe(t),a=(u,A,p)=>{let h=(E,R)=>{E?hl.close(u,L=>p(E)):p(null,R)},C=0;if(A===0)return h(null,0);let w=0,v=Buffer.alloc(512),b=(E,R)=>{if(E)return h(E);if(w+=R,w<512&&R)return hl.read(u,v,w,v.length-w,C+w,b);if(C===0&&v[0]===31&&v[1]===139)return h(new Error("cannot append to compressed archives"));if(w<512)return h(null,C);let L=new KAe(v);if(!L.cksumValid)return h(null,C);let _=512*Math.ceil(L.size/512);if(C+_+512>A||(C+=_+512,C>=A))return h(null,C);t.mtimeCache&&t.mtimeCache.set(L.path,L.mtime),w=0,hl.read(u,v,0,512,C,b)};hl.read(u,v,0,512,C,b)},n=new Promise((u,A)=>{o.on("error",A);let p="r+",h=(C,w)=>{if(C&&C.code==="ENOENT"&&p==="r+")return p="w+",hl.open(t.file,p,h);if(C)return A(C);hl.fstat(w,(v,b)=>{if(v)return hl.close(w,()=>A(v));a(w,b.size,(E,R)=>{if(E)return A(E);let L=new GAe.WriteStream(t.file,{fd:w,start:R});o.pipe(L),L.on("error",A),L.on("close",u),VAe(o,e)})})};hl.open(t.file,p,h)});return r?n.then(r,r):n},glt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?WAe({file:YAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},VAe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return WAe({file:YAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>VAe(t,e));t.add(r)}t.end()}});var XAe=U((B4t,zAe)=>{"use strict";var dlt=TE(),mlt=_3();zAe.exports=(t,e,r)=>{let o=dlt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),ylt(o),mlt(o,e,r)};var ylt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,o)=>e(r,o)&&!(t.mtimeCache.get(r)>o.mtime):(r,o)=>!(t.mtimeCache.get(r)>o.mtime)}});var efe=U((v4t,$Ae)=>{var{promisify:ZAe}=Ie("util"),w0=Ie("fs"),Elt=t=>{if(!t)t={mode:511,fs:w0};else if(typeof t=="object")t={mode:511,fs:w0,...t};else if(typeof t=="number")t={mode:t,fs:w0};else if(typeof t=="string")t={mode:parseInt(t,8),fs:w0};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||w0.mkdir,t.mkdirAsync=ZAe(t.mkdir),t.stat=t.stat||t.fs.stat||w0.stat,t.statAsync=ZAe(t.stat),t.statSync=t.statSync||t.fs.statSync||w0.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||w0.mkdirSync,t};$Ae.exports=Elt});var rfe=U((D4t,tfe)=>{var Clt=process.platform,{resolve:Ilt,parse:wlt}=Ie("path"),Blt=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=Ilt(t),Clt==="win32"){let e=/[*|"<>?:]/,{root:r}=wlt(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};tfe.exports=Blt});var afe=U((S4t,ofe)=>{var{dirname:nfe}=Ie("path"),ife=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(o=>o.isDirectory()?r:void 0,o=>o.code==="ENOENT"?ife(t,nfe(e),e):void 0),sfe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(o){return o.code==="ENOENT"?sfe(t,nfe(e),e):void 0}};ofe.exports={findMade:ife,findMadeSync:sfe}});var j3=U((P4t,cfe)=>{var{dirname:lfe}=Ie("path"),H3=(t,e,r)=>{e.recursive=!1;let o=lfe(t);return o===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return H3(o,e).then(n=>H3(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},q3=(t,e,r)=>{let o=lfe(t);if(e.recursive=!1,o===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return q3(t,e,q3(o,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};cfe.exports={mkdirpManual:H3,mkdirpManualSync:q3}});var ffe=U((x4t,Afe)=>{var{dirname:ufe}=Ie("path"),{findMade:vlt,findMadeSync:Dlt}=afe(),{mkdirpManual:Slt,mkdirpManualSync:Plt}=j3(),xlt=(t,e)=>(e.recursive=!0,ufe(t)===t?e.mkdirAsync(t,e):vlt(e,t).then(o=>e.mkdirAsync(t,e).then(()=>o).catch(a=>{if(a.code==="ENOENT")return Slt(t,e);throw a}))),blt=(t,e)=>{if(e.recursive=!0,ufe(t)===t)return e.mkdirSync(t,e);let o=Dlt(e,t);try{return e.mkdirSync(t,e),o}catch(a){if(a.code==="ENOENT")return Plt(t,e);throw a}};Afe.exports={mkdirpNative:xlt,mkdirpNativeSync:blt}});var dfe=U((b4t,gfe)=>{var pfe=Ie("fs"),Qlt=process.version,G3=Qlt.replace(/^v/,"").split("."),hfe=+G3[0]>10||+G3[0]==10&&+G3[1]>=12,klt=hfe?t=>t.mkdir===pfe.mkdir:()=>!1,Flt=hfe?t=>t.mkdirSync===pfe.mkdirSync:()=>!1;gfe.exports={useNative:klt,useNativeSync:Flt}});var wfe=U((Q4t,Ife)=>{var $E=efe(),eC=rfe(),{mkdirpNative:mfe,mkdirpNativeSync:yfe}=ffe(),{mkdirpManual:Efe,mkdirpManualSync:Cfe}=j3(),{useNative:Rlt,useNativeSync:Tlt}=dfe(),tC=(t,e)=>(t=eC(t),e=$E(e),Rlt(e)?mfe(t,e):Efe(t,e)),Nlt=(t,e)=>(t=eC(t),e=$E(e),Tlt(e)?yfe(t,e):Cfe(t,e));tC.sync=Nlt;tC.native=(t,e)=>mfe(eC(t),$E(e));tC.manual=(t,e)=>Efe(eC(t),$E(e));tC.nativeSync=(t,e)=>yfe(eC(t),$E(e));tC.manualSync=(t,e)=>Cfe(eC(t),$E(e));Ife.exports=tC});var bfe=U((k4t,xfe)=>{"use strict";var sc=Ie("fs"),Wd=Ie("path"),Llt=sc.lchown?"lchown":"chown",Olt=sc.lchownSync?"lchownSync":"chownSync",vfe=sc.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),Bfe=(t,e,r)=>{try{return sc[Olt](t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},Mlt=(t,e,r)=>{try{return sc.chownSync(t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},Ult=vfe?(t,e,r,o)=>a=>{!a||a.code!=="EISDIR"?o(a):sc.chown(t,e,r,o)}:(t,e,r,o)=>o,W3=vfe?(t,e,r)=>{try{return Bfe(t,e,r)}catch(o){if(o.code!=="EISDIR")throw o;Mlt(t,e,r)}}:(t,e,r)=>Bfe(t,e,r),_lt=process.version,Dfe=(t,e,r)=>sc.readdir(t,e,r),Hlt=(t,e)=>sc.readdirSync(t,e);/^v4\./.test(_lt)&&(Dfe=(t,e,r)=>sc.readdir(t,r));var Fb=(t,e,r,o)=>{sc[Llt](t,e,r,Ult(t,e,r,a=>{o(a&&a.code!=="ENOENT"?a:null)}))},Sfe=(t,e,r,o,a)=>{if(typeof e=="string")return sc.lstat(Wd.resolve(t,e),(n,u)=>{if(n)return a(n.code!=="ENOENT"?n:null);u.name=e,Sfe(t,u,r,o,a)});if(e.isDirectory())Y3(Wd.resolve(t,e.name),r,o,n=>{if(n)return a(n);let u=Wd.resolve(t,e.name);Fb(u,r,o,a)});else{let n=Wd.resolve(t,e.name);Fb(n,r,o,a)}},Y3=(t,e,r,o)=>{Dfe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return o();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return o(a)}if(a||!n.length)return Fb(t,e,r,o);let u=n.length,A=null,p=h=>{if(!A){if(h)return o(A=h);if(--u===0)return Fb(t,e,r,o)}};n.forEach(h=>Sfe(t,h,e,r,p))})},qlt=(t,e,r,o)=>{if(typeof e=="string")try{let a=sc.lstatSync(Wd.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&Pfe(Wd.resolve(t,e.name),r,o),W3(Wd.resolve(t,e.name),r,o)},Pfe=(t,e,r)=>{let o;try{o=Hlt(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return W3(t,e,r);throw a}return o&&o.length&&o.forEach(a=>qlt(t,a,e,r)),W3(t,e,r)};xfe.exports=Y3;Y3.sync=Pfe});var Rfe=U((F4t,K3)=>{"use strict";var Qfe=wfe(),oc=Ie("fs"),Rb=Ie("path"),kfe=bfe(),Xc=UE(),Tb=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},Nb=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},Lb=(t,e)=>t.get(Xc(e)),M1=(t,e,r)=>t.set(Xc(e),r),jlt=(t,e)=>{oc.stat(t,(r,o)=>{(r||!o.isDirectory())&&(r=new Nb(t,r&&r.code||"ENOTDIR")),e(r)})};K3.exports=(t,e,r)=>{t=Xc(t);let o=e.umask,a=e.mode|448,n=(a&o)!==0,u=e.uid,A=e.gid,p=typeof u=="number"&&typeof A=="number"&&(u!==e.processUid||A!==e.processGid),h=e.preserve,C=e.unlink,w=e.cache,v=Xc(e.cwd),b=(L,_)=>{L?r(L):(M1(w,t,!0),_&&p?kfe(_,u,A,V=>b(V)):n?oc.chmod(t,a,r):r())};if(w&&Lb(w,t)===!0)return b();if(t===v)return jlt(t,b);if(h)return Qfe(t,{mode:a}).then(L=>b(null,L),b);let R=Xc(Rb.relative(v,t)).split("/");Ob(v,R,a,w,C,v,null,b)};var Ob=(t,e,r,o,a,n,u,A)=>{if(!e.length)return A(null,u);let p=e.shift(),h=Xc(Rb.resolve(t+"/"+p));if(Lb(o,h))return Ob(h,e,r,o,a,n,u,A);oc.mkdir(h,r,Ffe(h,e,r,o,a,n,u,A))},Ffe=(t,e,r,o,a,n,u,A)=>p=>{p?oc.lstat(t,(h,C)=>{if(h)h.path=h.path&&Xc(h.path),A(h);else if(C.isDirectory())Ob(t,e,r,o,a,n,u,A);else if(a)oc.unlink(t,w=>{if(w)return A(w);oc.mkdir(t,r,Ffe(t,e,r,o,a,n,u,A))});else{if(C.isSymbolicLink())return A(new Tb(t,t+"/"+e.join("/")));A(p)}}):(u=u||t,Ob(t,e,r,o,a,n,u,A))},Glt=t=>{let e=!1,r="ENOTDIR";try{e=oc.statSync(t).isDirectory()}catch(o){r=o.code}finally{if(!e)throw new Nb(t,r)}};K3.exports.sync=(t,e)=>{t=Xc(t);let r=e.umask,o=e.mode|448,a=(o&r)!==0,n=e.uid,u=e.gid,A=typeof n=="number"&&typeof u=="number"&&(n!==e.processUid||u!==e.processGid),p=e.preserve,h=e.unlink,C=e.cache,w=Xc(e.cwd),v=L=>{M1(C,t,!0),L&&A&&kfe.sync(L,n,u),a&&oc.chmodSync(t,o)};if(C&&Lb(C,t)===!0)return v();if(t===w)return Glt(w),v();if(p)return v(Qfe.sync(t,o));let E=Xc(Rb.relative(w,t)).split("/"),R=null;for(let L=E.shift(),_=w;L&&(_+="/"+L);L=E.shift())if(_=Xc(Rb.resolve(_)),!Lb(C,_))try{oc.mkdirSync(_,o),R=R||_,M1(C,_,!0)}catch{let re=oc.lstatSync(_);if(re.isDirectory()){M1(C,_,!0);continue}else if(h){oc.unlinkSync(_),oc.mkdirSync(_,o),R=R||_,M1(C,_,!0);continue}else if(re.isSymbolicLink())return new Tb(_,_+"/"+E.join("/"))}return v(R)}});var J3=U((R4t,Tfe)=>{var V3=Object.create(null),{hasOwnProperty:Wlt}=Object.prototype;Tfe.exports=t=>(Wlt.call(V3,t)||(V3[t]=t.normalize("NFKD")),V3[t])});var Mfe=U((T4t,Ofe)=>{var Nfe=Ie("assert"),Ylt=J3(),Klt=qE(),{join:Lfe}=Ie("path"),Vlt=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Jlt=Vlt==="win32";Ofe.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((w,v)=>(w.length&&(v=Lfe(w[w.length-1],v)),w.push(v||"/"),w),[]),o=new Set,a=h=>{let C=e.get(h);if(!C)throw new Error("function does not have any path reservations");return{paths:C.paths.map(w=>t.get(w)),dirs:[...C.dirs].map(w=>t.get(w))}},n=h=>{let{paths:C,dirs:w}=a(h);return C.every(v=>v[0]===h)&&w.every(v=>v[0]instanceof Set&&v[0].has(h))},u=h=>o.has(h)||!n(h)?!1:(o.add(h),h(()=>A(h)),!0),A=h=>{if(!o.has(h))return!1;let{paths:C,dirs:w}=e.get(h),v=new Set;return C.forEach(b=>{let E=t.get(b);Nfe.equal(E[0],h),E.length===1?t.delete(b):(E.shift(),typeof E[0]=="function"?v.add(E[0]):E[0].forEach(R=>v.add(R)))}),w.forEach(b=>{let E=t.get(b);Nfe(E[0]instanceof Set),E[0].size===1&&E.length===1?t.delete(b):E[0].size===1?(E.shift(),v.add(E[0])):E[0].delete(h)}),o.delete(h),v.forEach(b=>u(b)),!0};return{check:n,reserve:(h,C)=>{h=Jlt?["win32 parallelization disabled"]:h.map(v=>Ylt(Klt(Lfe(v))).toLowerCase());let w=new Set(h.map(v=>r(v)).reduce((v,b)=>v.concat(b)));return e.set(C,{dirs:w,paths:h}),h.forEach(v=>{let b=t.get(v);b?b.push(C):t.set(v,[C])}),w.forEach(v=>{let b=t.get(v);b?b[b.length-1]instanceof Set?b[b.length-1].add(C):b.push(new Set([C])):t.set(v,[new Set([C])])}),u(C)}}}});var Hfe=U((N4t,_fe)=>{var zlt=process.platform,Xlt=zlt==="win32",Zlt=global.__FAKE_TESTING_FS__||Ie("fs"),{O_CREAT:$lt,O_TRUNC:ect,O_WRONLY:tct,UV_FS_O_FILEMAP:Ufe=0}=Zlt.constants,rct=Xlt&&!!Ufe,nct=512*1024,ict=Ufe|ect|$lt|tct;_fe.exports=rct?t=>t<nct?ict:"w":()=>"w"});var i_=U((L4t,tpe)=>{"use strict";var sct=Ie("assert"),oct=bb(),En=Ie("fs"),act=XE(),Kf=Ie("path"),Zfe=Rfe(),qfe=i3(),lct=Mfe(),cct=s3(),gl=UE(),uct=qE(),Act=J3(),jfe=Symbol("onEntry"),Z3=Symbol("checkFs"),Gfe=Symbol("checkFs2"),_b=Symbol("pruneCache"),$3=Symbol("isReusable"),ac=Symbol("makeFs"),e_=Symbol("file"),t_=Symbol("directory"),Hb=Symbol("link"),Wfe=Symbol("symlink"),Yfe=Symbol("hardlink"),Kfe=Symbol("unsupported"),Vfe=Symbol("checkPath"),B0=Symbol("mkdir"),ko=Symbol("onError"),Mb=Symbol("pending"),Jfe=Symbol("pend"),rC=Symbol("unpend"),z3=Symbol("ended"),X3=Symbol("maybeClose"),r_=Symbol("skip"),U1=Symbol("doChown"),_1=Symbol("uid"),H1=Symbol("gid"),q1=Symbol("checkedCwd"),$fe=Ie("crypto"),epe=Hfe(),fct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,j1=fct==="win32",pct=(t,e)=>{if(!j1)return En.unlink(t,e);let r=t+".DELETE."+$fe.randomBytes(16).toString("hex");En.rename(t,r,o=>{if(o)return e(o);En.unlink(r,e)})},hct=t=>{if(!j1)return En.unlinkSync(t);let e=t+".DELETE."+$fe.randomBytes(16).toString("hex");En.renameSync(t,e),En.unlinkSync(e)},zfe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Xfe=t=>Act(uct(gl(t))).toLowerCase(),gct=(t,e)=>{e=Xfe(e);for(let r of t.keys()){let o=Xfe(r);(o===e||o.indexOf(e+"/")===0)&&t.delete(r)}},dct=t=>{for(let e of t.keys())t.delete(e)},G1=class extends oct{constructor(e){if(e||(e={}),e.ondone=r=>{this[z3]=!0,this[X3]()},super(e),this[q1]=!1,this.reservations=lct(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[Mb]=0,this[z3]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||j1,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=gl(Kf.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[jfe](r))}warn(e,r,o={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(o.recoverable=!1),super.warn(e,r,o)}[X3](){this[z3]&&this[Mb]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[Vfe](e){if(this.strip){let r=gl(e.path).split("/");if(r.length<this.strip)return!1;if(e.path=r.slice(this.strip).join("/"),e.type==="Link"){let o=gl(e.linkpath).split("/");if(o.length>=this.strip)e.linkpath=o.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=gl(e.path),o=r.split("/");if(o.includes("..")||j1&&/^[a-z]:\.\.$/i.test(o[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=cct(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Kf.isAbsolute(e.path)?e.absolute=gl(Kf.resolve(e.path)):e.absolute=gl(Kf.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:gl(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=Kf.win32.parse(e.absolute);e.absolute=r+qfe.encode(e.absolute.substr(r.length));let{root:o}=Kf.win32.parse(e.path);e.path=o+qfe.encode(e.path.substr(o.length))}return!0}[jfe](e){if(!this[Vfe](e))return e.resume();switch(sct.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[Z3](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[Kfe](e)}}[ko](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[rC](),r.resume())}[B0](e,r,o){Zfe(gl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},o)}[U1](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[_1](e){return zfe(this.uid,e.uid,this.processUid)}[H1](e){return zfe(this.gid,e.gid,this.processGid)}[e_](e,r){let o=e.mode&4095||this.fmode,a=new act.WriteStream(e.absolute,{flags:epe(e.size),mode:o,autoClose:!1});a.on("error",p=>{a.fd&&En.close(a.fd,()=>{}),a.write=()=>!0,this[ko](p,e),r()});let n=1,u=p=>{if(p){a.fd&&En.close(a.fd,()=>{}),this[ko](p,e),r();return}--n===0&&En.close(a.fd,h=>{h?this[ko](h,e):this[rC](),r()})};a.on("finish",p=>{let h=e.absolute,C=a.fd;if(e.mtime&&!this.noMtime){n++;let w=e.atime||new Date,v=e.mtime;En.futimes(C,w,v,b=>b?En.utimes(h,w,v,E=>u(E&&b)):u())}if(this[U1](e)){n++;let w=this[_1](e),v=this[H1](e);En.fchown(C,w,v,b=>b?En.chown(h,w,v,E=>u(E&&b)):u())}u()});let A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",p=>{this[ko](p,e),r()}),e.pipe(A)),A.pipe(a)}[t_](e,r){let o=e.mode&4095||this.dmode;this[B0](e.absolute,o,a=>{if(a){this[ko](a,e),r();return}let n=1,u=A=>{--n===0&&(r(),this[rC](),e.resume())};e.mtime&&!this.noMtime&&(n++,En.utimes(e.absolute,e.atime||new Date,e.mtime,u)),this[U1](e)&&(n++,En.chown(e.absolute,this[_1](e),this[H1](e),u)),u()})}[Kfe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[Wfe](e,r){this[Hb](e,e.linkpath,"symlink",r)}[Yfe](e,r){let o=gl(Kf.resolve(this.cwd,e.linkpath));this[Hb](e,o,"link",r)}[Jfe](){this[Mb]++}[rC](){this[Mb]--,this[X3]()}[r_](e){this[rC](),e.resume()}[$3](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!j1}[Z3](e){this[Jfe]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,o=>this[Gfe](e,o))}[_b](e){e.type==="SymbolicLink"?dct(this.dirCache):e.type!=="Directory"&&gct(this.dirCache,e.absolute)}[Gfe](e,r){this[_b](e);let o=A=>{this[_b](e),r(A)},a=()=>{this[B0](this.cwd,this.dmode,A=>{if(A){this[ko](A,e),o();return}this[q1]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let A=gl(Kf.dirname(e.absolute));if(A!==this.cwd)return this[B0](A,this.dmode,p=>{if(p){this[ko](p,e),o();return}u()})}u()},u=()=>{En.lstat(e.absolute,(A,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[r_](e),o();return}if(A||this[$3](e,p))return this[ac](null,e,o);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,C=w=>this[ac](w,e,o);return h?En.chmod(e.absolute,e.mode,C):C()}if(e.absolute!==this.cwd)return En.rmdir(e.absolute,h=>this[ac](h,e,o))}if(e.absolute===this.cwd)return this[ac](null,e,o);pct(e.absolute,h=>this[ac](h,e,o))})};this[q1]?n():a()}[ac](e,r,o){if(e){this[ko](e,r),o();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[e_](r,o);case"Link":return this[Yfe](r,o);case"SymbolicLink":return this[Wfe](r,o);case"Directory":case"GNUDumpDir":return this[t_](r,o)}}[Hb](e,r,o,a){En[o](r,e.absolute,n=>{n?this[ko](n,e):(this[rC](),e.resume()),a()})}},Ub=t=>{try{return[null,t()]}catch(e){return[e,null]}},n_=class extends G1{[ac](e,r){return super[ac](e,r,()=>{})}[Z3](e){if(this[_b](e),!this[q1]){let n=this[B0](this.cwd,this.dmode);if(n)return this[ko](n,e);this[q1]=!0}if(e.absolute!==this.cwd){let n=gl(Kf.dirname(e.absolute));if(n!==this.cwd){let u=this[B0](n,this.dmode);if(u)return this[ko](u,e)}}let[r,o]=Ub(()=>En.lstatSync(e.absolute));if(o&&(this.keep||this.newer&&o.mtime>e.mtime))return this[r_](e);if(r||this[$3](e,o))return this[ac](null,e);if(o.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(o.mode&4095)!==e.mode,[A]=u?Ub(()=>{En.chmodSync(e.absolute,e.mode)}):[];return this[ac](A,e)}let[n]=Ub(()=>En.rmdirSync(e.absolute));this[ac](n,e)}let[a]=e.absolute===this.cwd?[]:Ub(()=>hct(e.absolute));this[ac](a,e)}[e_](e,r){let o=e.mode&4095||this.fmode,a=A=>{let p;try{En.closeSync(n)}catch(h){p=h}(A||p)&&this[ko](A||p,e),r()},n;try{n=En.openSync(e.absolute,epe(e.size),o)}catch(A){return a(A)}let u=this.transform&&this.transform(e)||e;u!==e&&(u.on("error",A=>this[ko](A,e)),e.pipe(u)),u.on("data",A=>{try{En.writeSync(n,A,0,A.length)}catch(p){a(p)}}),u.on("end",A=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,C=e.mtime;try{En.futimesSync(n,h,C)}catch(w){try{En.utimesSync(e.absolute,h,C)}catch{p=w}}}if(this[U1](e)){let h=this[_1](e),C=this[H1](e);try{En.fchownSync(n,h,C)}catch(w){try{En.chownSync(e.absolute,h,C)}catch{p=p||w}}}a(p)})}[t_](e,r){let o=e.mode&4095||this.dmode,a=this[B0](e.absolute,o);if(a){this[ko](a,e),r();return}if(e.mtime&&!this.noMtime)try{En.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[U1](e))try{En.chownSync(e.absolute,this[_1](e),this[H1](e))}catch{}r(),e.resume()}[B0](e,r){try{return Zfe.sync(gl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(o){return o}}[Hb](e,r,o,a){try{En[o+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[ko](n,e)}}};G1.Sync=n_;tpe.exports=G1});var ope=U((O4t,spe)=>{"use strict";var mct=TE(),qb=i_(),npe=Ie("fs"),ipe=XE(),rpe=Ie("path"),s_=qE();spe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=mct(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&yct(o,e),o.file&&o.sync?Ect(o):o.file?Cct(o,r):o.sync?Ict(o):wct(o)};var yct=(t,e)=>{let r=new Map(e.map(n=>[s_(n),!0])),o=t.filter,a=(n,u)=>{let A=u||rpe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(rpe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(s_(n)):n=>a(s_(n))},Ect=t=>{let e=new qb.Sync(t),r=t.file,o=npe.statSync(r),a=t.maxReadSize||16*1024*1024;new ipe.ReadStreamSync(r,{readSize:a,size:o.size}).pipe(e)},Cct=(t,e)=>{let r=new qb(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("close",u),npe.stat(a,(p,h)=>{if(p)A(p);else{let C=new ipe.ReadStream(a,{readSize:o,size:h.size});C.on("error",A),C.pipe(r)}})});return e?n.then(e,e):n},Ict=t=>new qb.Sync(t),wct=t=>new qb(t)});var ape=U(fs=>{"use strict";fs.c=fs.create=qAe();fs.r=fs.replace=_3();fs.t=fs.list=Qb();fs.u=fs.update=XAe();fs.x=fs.extract=ope();fs.Pack=gb();fs.Unpack=i_();fs.Parse=bb();fs.ReadEntry=Xx();fs.WriteEntry=g3();fs.Header=HE();fs.Pax=$x();fs.types=XU()});var lpe,cpe,v0,jb,upe=dt(()=>{lpe=tt(nd()),cpe=Ie("worker_threads");d1();v0=Symbol("kTaskInfo"),jb=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,lpe.default)(X4());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let r=this.workers.pop();r?r.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new cpe.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[v0])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[v0].resolve(r),e[v0]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{var o;(o=e[v0])==null||o.reject(r),e[v0]=null}),e.on("exit",r=>{var o;r!==0&&((o=e[v0])==null||o.reject(new Error(`Worker exited with code ${r}`))),e[v0]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((o,a)=>{r[v0]={resolve:o,reject:a},r.postMessage(e)})})}}});var fpe=U((_4t,Ape)=>{var o_;Ape.exports.getContent=()=>(typeof o_>"u"&&(o_=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),o_)});var Ji={};Yt(Ji,{convertToZip:()=>vct,extractArchiveTo:()=>Sct,makeArchiveFromDirectory:()=>Bct});async function Bct(t,{baseFs:e=new xn,prefixPath:r=wt.root,compressionLevel:o,inMemory:a=!1}={}){let n;if(a)n=new os(null,{level:o});else{let A=await oe.mktempPromise(),p=J.join(A,"archive.zip");n=new os(p,{create:!0,level:o})}let u=J.resolve(wt.root,r);return await n.copyPromise(u,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function vct(t,e){let r=await oe.mktempPromise(),o=J.join(r,"archive.zip");return ppe||(ppe=new jb((0,dpe.getContent)())),await ppe.run({tmpFile:o,tgz:t,opts:e}),new os(o,{level:e.compressionLevel})}async function*Dct(t){let e=new gpe.default.Parse,r=new hpe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",o=>{r.write(o)}),e.on("error",o=>{r.destroy(o)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let o of r){let a=o;yield a,a.resume()}}async function Sct(t,e,{stripComponents:r=0,prefixPath:o=wt.dot}={}){function a(n){if(n.path[0]==="/")return!0;let u=n.path.split(/\//g);return!!(u.some(A=>A==="..")||u.length<=r)}for await(let n of Dct(t)){if(a(n))continue;let u=J.normalize(ue.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(u.length<=r)continue;let A=u.slice(r).join("/"),p=J.join(o,A),h=420;switch((n.type==="Directory"||((n.mode??0)&73)!==0)&&(h|=73),n.type){case"Directory":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[Ii.SAFE_TIME,Ii.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,Ii.SAFE_TIME,Ii.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[Ii.SAFE_TIME,Ii.SAFE_TIME]}),e.writeFileSync(p,await Jy(n),{mode:h}),e.utimesSync(p,Ii.SAFE_TIME,Ii.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(J.dirname(p),{chmod:493,utimes:[Ii.SAFE_TIME,Ii.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,Ii.SAFE_TIME,Ii.SAFE_TIME);break}}return e}var hpe,gpe,dpe,ppe,mpe=dt(()=>{St();Hc();hpe=Ie("stream"),gpe=tt(ape());upe();Vl();dpe=tt(fpe())});var Epe=U((a_,ype)=>{(function(t,e){typeof a_=="object"?ype.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(a_,function(){function t(a,n){var u=n?"\u2514":"\u251C";return a?u+="\u2500 ":u+="\u2500\u2500\u2510",u}function e(a,n){var u=[];for(var A in a)!a.hasOwnProperty(A)||n&&typeof a[A]=="function"||u.push(A);return u}function r(a,n,u,A,p,h,C){var w="",v=0,b,E,R=A.slice(0);if(R.push([n,u])&&A.length>0&&(A.forEach(function(_,V){V>0&&(w+=(_[1]?" ":"\u2502")+" "),!E&&_[0]===n&&(E=!0)}),w+=t(a,u)+a,p&&(typeof n!="object"||n instanceof Date)&&(w+=": "+n),E&&(w+=" (circular ref.)"),C(w)),!E&&typeof n=="object"){var L=e(n,h);L.forEach(function(_){b=++v===L.length,r(_,n[_],b,R,p,h,C)})}}var o={};return o.asLines=function(a,n,u,A){var p=typeof u!="function"?u:!1;r(".",a,!1,[],n,p,A||u)},o.asTree=function(a,n,u){var A="";return r(".",a,!1,[],n,u,function(p){A+=p+`
187`}),A},o})});var Zo={};Yt(Zo,{emitList:()=>Bct,emitTree:()=>Ipe,treeNodeToJson:()=>Epe,treeNodeToTreeify:()=>Cpe});function Cpe(t,{configuration:e}){let r={},o=(a,n)=>{let u=Array.isArray(a)?a.entries():Object.entries(a);for(let[A,{label:p,value:h,children:E}]of u){let w=[];typeof p<"u"&&w.push(zS(e,p,2)),typeof h<"u"&&w.push(Kt(e,h[0],h[1])),w.length===0&&w.push(zS(e,`${A}`,2));let v=w.join(": "),b=n[v]={};typeof E<"u"&&o(E,b)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return o(t.children,r),r}function Epe(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return md(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)a[n]=e(u);return typeof r.value>"u"?a:{value:md(r.value[0],r.value[1]),children:a}};return e(t)}function Bct(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));Ipe({children:a},{configuration:e,stdout:r,json:o})}function Ipe(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)r.write(`${JSON.stringify(Epe(A))} 187`}),A},o})});var $o={};Yt($o,{emitList:()=>Pct,emitTree:()=>Bpe,treeNodeToJson:()=>wpe,treeNodeToTreeify:()=>Ipe});function Ipe(t,{configuration:e}){let r={},o=(a,n)=>{let u=Array.isArray(a)?a.entries():Object.entries(a);for(let[A,{label:p,value:h,children:C}]of u){let w=[];typeof p<"u"&&w.push(ZS(e,p,2)),typeof h<"u"&&w.push(Kt(e,h[0],h[1])),w.length===0&&w.push(ZS(e,`${A}`,2));let v=w.join(": "),b=n[v]={};typeof C<"u"&&o(C,b)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return o(t.children,r),r}function wpe(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return yd(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)a[n]=e(u);return typeof r.value>"u"?a:{value:yd(r.value[0],r.value[1]),children:a}};return e(t)}function Pct(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));Bpe({children:a},{configuration:e,stdout:r,json:o})}function Bpe(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)r.write(`${JSON.stringify(wpe(A))}
188`);return}let n=(0,ype.asTree)(Cpe(t,{configuration:e}),!1,!1);if(a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 188`);return}let n=(0,Cpe.asTree)(Ipe(t,{configuration:e}),!1,!1);if(a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502
189$1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 189$1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502
190$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}var ype,wpe=dt(()=>{ype=tt(mpe());Jl()});function o_(t){let e=t.indexOf("/");return e!==-1?t.slice(0,e):null}function Dct(t){let e=t.indexOf("/");return e!==-1?t.slice(e+1):t}var Bpe,a_,vct,Ur,vpe=dt(()=>{bt();bt();_c();Bpe=Ie("crypto"),a_=tt(Ie("fs"));Xl();t0();Kl();Ks();vct=9,Ur=class{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,Bpe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let n=r.get("cacheKeyOverride");if(n!==null)this.cacheKey=`${n}`;else{let u=r.get("compressionLevel"),A=u!==Ay?`c${u}`:"";this.cacheKey=[vct,A].join("")}}static async find(e,{immutable:r,check:o}={}){let a=new Ur(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${aC(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=Dct(r).slice(0,10);return`${aC(e)}-${a}.zip`}getLocatorPath(e,r,o={}){var n;return this.mirrorCwd===null||((n=o.unstablePackages)==null?void 0:n.has(e.locatorHash))?z.resolve(this.cwd,this.getVersionFilename(e)):r===null||o_(r)!==this.cacheKey?null:z.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?z.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await ae.existsPromise(this.cwd))throw new Vt(56,"Cache path does not exist.")}else{await ae.mkdirPromise(this.cwd,{recursive:!0});let e=z.resolve(this.cwd,".gitignore");await ae.changeFilePromise(e,`/.gitignore 190$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}var Cpe,vpe=dt(()=>{Cpe=tt(Epe());zl()});function l_(t){let e=t.indexOf("/");return e!==-1?t.slice(0,e):null}function bct(t){let e=t.indexOf("/");return e!==-1?t.slice(e+1):t}var Dpe,c_,xct,Ur,Spe=dt(()=>{St();St();Hc();Dpe=Ie("crypto"),c_=tt(Ie("fs"));Zl();n0();Vl();Ks();xct=9,Ur=class{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,Dpe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let n=r.get("cacheKeyOverride");if(n!==null)this.cacheKey=`${n}`;else{let u=r.get("compressionLevel"),A=u!==Ay?`c${u}`:"";this.cacheKey=[xct,A].join("")}}static async find(e,{immutable:r,check:o}={}){let a=new Ur(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${aE(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=bct(r).slice(0,10);return`${aE(e)}-${a}.zip`}getLocatorPath(e,r,o={}){var n;return this.mirrorCwd===null||((n=o.unstablePackages)==null?void 0:n.has(e.locatorHash))?J.resolve(this.cwd,this.getVersionFilename(e)):r===null||l_(r)!==this.cacheKey?null:J.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?J.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await oe.existsPromise(this.cwd))throw new Vt(56,"Cache path does not exist.")}else{await oe.mkdirPromise(this.cwd,{recursive:!0});let e=J.resolve(this.cwd,".gitignore");await oe.changeFilePromise(e,`/.gitignore
191*.flock 191*.flock
192*.tmp 192*.tmp
193`)}(this.mirrorCwd||!this.immutable)&&await ae.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,{onHit:o,onMiss:a,loader:n,...u}){var ge;let A=this.getLocatorMirrorPath(e),p=new xn,h=()=>{let le=new os,Pe=z.join(wt.root,hM(e));return le.mkdirSync(Pe,{recursive:!0}),le.writeJsonSync(z.join(Pe,Lr.manifest),{name:nn(e),mocked:!0}),le},E=async(le,Pe=null)=>{var De;if(Pe===null&&((De=u.unstablePackages)==null?void 0:De.has(e.locatorHash)))return{isValid:!0,hash:null};let g=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await xP(le)}`:r;if(Pe!==null){let Ce=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await xP(Pe)}`:r;if(g!==Ce)throw new Vt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(r!==null&&g!==r){let Ce;switch(this.check?Ce="throw":o_(r)!==o_(g)?Ce="update":Ce=this.configuration.get("checksumBehavior"),Ce){case"ignore":return{isValid:!0,hash:r};case"update":return{isValid:!0,hash:g};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Vt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:g}},w=async le=>{if(!n)throw new Error(`Cache check required but no loader configured for ${kr(this.configuration,e)}`);let Pe=await n(),g=Pe.getRealPath();Pe.saveAndClose(),await ae.chmodPromise(g,420);let De=await E(le,g);if(!De.isValid)throw new Error("Assertion failed: Expected a valid checksum");return De.hash},v=async()=>{if(A===null||!await ae.existsPromise(A)){let le=await n(),Pe=le.getRealPath();return le.saveAndClose(),{source:"loader",path:Pe}}return{source:"mirror",path:A}},b=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${kr(this.configuration,e)}`);if(this.immutable)throw new Vt(56,`Cache entry required but missing for ${kr(this.configuration,e)}`);let{path:le,source:Pe}=await v(),g=(await E(le)).hash,De=this.getLocatorPath(e,g,u);if(!De)throw new Error("Assertion failed: Expected the cache path to be available");let Ce=[];Pe!=="mirror"&&A!==null&&Ce.push(async()=>{let ne=`${A}${this.cacheId}`;await ae.copyFilePromise(le,ne,a_.default.constants.COPYFILE_FICLONE),await ae.chmodPromise(ne,420),await ae.renamePromise(ne,A)}),(!u.mirrorWriteOnly||A===null)&&Ce.push(async()=>{let ne=`${De}${this.cacheId}`;await ae.copyFilePromise(le,ne,a_.default.constants.COPYFILE_FICLONE),await ae.chmodPromise(ne,420),await ae.renamePromise(ne,De)});let de=u.mirrorWriteOnly?A??De:De;return await Promise.all(Ce.map(ne=>ne())),[!1,de,g]},C=async()=>{let Pe=(async()=>{var Z;let g=this.getLocatorPath(e,r,u),De=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,Ce=!!((Z=u.mockedPackages)!=null&&Z.has(e.locatorHash))&&(!this.check||!De),de=Ce||De,ne=de?o:a;if(ne&&ne(),de){let me=null,be=g;if(!Ce)if(this.check)me=await w(be);else{let ut=await E(be);if(ut.isValid)me=ut.hash;else return b()}return[Ce,be,me]}else return b()})();this.mutexes.set(e.locatorHash,Pe);try{return await Pe}finally{this.mutexes.delete(e.locatorHash)}};for(let le;le=this.mutexes.get(e.locatorHash);)await le;let[R,L,_]=await C();R||this.markedFiles.add(L);let V,re=R?()=>h():()=>new os(L,{baseFs:p,readOnly:!0}),oe=new oy(()=>pL(()=>V=re(),le=>`Failed to open the cache entry for ${kr(this.configuration,e)}: ${le}`),z),pe=new ju(L,{baseFs:oe,pathUtils:z}),he=()=>{V==null||V.discardAndClose()},ve=(ge=u.unstablePackages)!=null&&ge.has(e.locatorHash)?null:_;return[pe,he,ve]}}});var qb,Dpe=dt(()=>{qb=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(qb||{})});var Sct,nE,l_=dt(()=>{bt();_l();n0();Ks();Sct=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>FP({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],nE=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=z.join(e.cwd,e.configuration.get("lockfileFilename"));if(!ae.existsSync(o))return;let a=await ae.readFilePromise(o,"utf8"),n=Yi(a);if(Object.prototype.hasOwnProperty.call(n,"__metadata"))return;let u=this.resolutions=new Map;for(let A of Object.keys(n)){let p=zw(A);if(!p){r.reportWarning(14,`Failed to parse the string "${A}" into a proper descriptor`);continue}let h=ll(p.range)?mn(p,`npm:${p.range}`):p,{version:E,resolved:w}=n[A];if(!w)continue;let v;for(let[C,R]of Sct){let L=w.match(C);if(L){v=R(E,...L);break}}if(!v){r.reportWarning(14,`${Ln(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${w}")`);continue}let b=h;try{let C=vd(h.range),R=zw(C.selector,!0);R&&(b=R)}catch{}u.set(h.descriptorHash,us(b,v))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=cM(a),u=o.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(u,r,o)}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var pA,Spe=dt(()=>{Xl();Mx();Jl();pA=class extends Js{constructor({configuration:r,stdout:o,suggestInstall:a=!0}){super();this.errorCount=0;Hw(this,{configuration:r}),this.configuration=r,this.stdout=o,this.suggestInstall=a}static async start(r,o){let a=new this(r);try{await o(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,o){return o()}async startSectionPromise(r,o){return await o()}startTimerSync(r,o,a){return(typeof o=="function"?o:a)()}async startTimerPromise(r,o,a){return await(typeof o=="function"?o:a)()}async startCacheReport(r){return await r()}reportSeparator(){}reportInfo(r,o){}reportWarning(r,o){}reportError(r,o){this.errorCount+=1,this.stdout.write(`${Kt(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${o} 193`)}(this.mirrorCwd||!this.immutable)&&await oe.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,{onHit:o,onMiss:a,loader:n,...u}){var ge;let A=this.getLocatorMirrorPath(e),p=new xn,h=()=>{let le=new os,Pe=J.join(wt.root,dM(e));return le.mkdirSync(Pe,{recursive:!0}),le.writeJsonSync(J.join(Pe,Lr.manifest),{name:nn(e),mocked:!0}),le},C=async(le,Pe=null)=>{var ve;if(Pe===null&&((ve=u.unstablePackages)==null?void 0:ve.has(e.locatorHash)))return{isValid:!0,hash:null};let g=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await QP(le)}`:r;if(Pe!==null){let Ee=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await QP(Pe)}`:r;if(g!==Ee)throw new Vt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(r!==null&&g!==r){let Ee;switch(this.check?Ee="throw":l_(r)!==l_(g)?Ee="update":Ee=this.configuration.get("checksumBehavior"),Ee){case"ignore":return{isValid:!0,hash:r};case"update":return{isValid:!0,hash:g};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Vt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:g}},w=async le=>{if(!n)throw new Error(`Cache check required but no loader configured for ${kr(this.configuration,e)}`);let Pe=await n(),g=Pe.getRealPath();Pe.saveAndClose(),await oe.chmodPromise(g,420);let ve=await C(le,g);if(!ve.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ve.hash},v=async()=>{if(A===null||!await oe.existsPromise(A)){let le=await n(),Pe=le.getRealPath();return le.saveAndClose(),{source:"loader",path:Pe}}return{source:"mirror",path:A}},b=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${kr(this.configuration,e)}`);if(this.immutable)throw new Vt(56,`Cache entry required but missing for ${kr(this.configuration,e)}`);let{path:le,source:Pe}=await v(),g=(await C(le)).hash,ve=this.getLocatorPath(e,g,u);if(!ve)throw new Error("Assertion failed: Expected the cache path to be available");let Ee=[];Pe!=="mirror"&&A!==null&&Ee.push(async()=>{let ne=`${A}${this.cacheId}`;await oe.copyFilePromise(le,ne,c_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(ne,420),await oe.renamePromise(ne,A)}),(!u.mirrorWriteOnly||A===null)&&Ee.push(async()=>{let ne=`${ve}${this.cacheId}`;await oe.copyFilePromise(le,ne,c_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(ne,420),await oe.renamePromise(ne,ve)});let de=u.mirrorWriteOnly?A??ve:ve;return await Promise.all(Ee.map(ne=>ne())),[!1,de,g]},E=async()=>{let Pe=(async()=>{var Z;let g=this.getLocatorPath(e,r,u),ve=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,Ee=!!((Z=u.mockedPackages)!=null&&Z.has(e.locatorHash))&&(!this.check||!ve),de=Ee||ve,ne=de?o:a;if(ne&&ne(),de){let me=null,be=g;if(!Ee)if(this.check)me=await w(be);else{let ut=await C(be);if(ut.isValid)me=ut.hash;else return b()}return[Ee,be,me]}else return b()})();this.mutexes.set(e.locatorHash,Pe);try{return await Pe}finally{this.mutexes.delete(e.locatorHash)}};for(let le;le=this.mutexes.get(e.locatorHash);)await le;let[R,L,_]=await E();R||this.markedFiles.add(L);let V,re=R?()=>h():()=>new os(L,{baseFs:p,readOnly:!0}),ae=new oy(()=>gL(()=>V=re(),le=>`Failed to open the cache entry for ${kr(this.configuration,e)}: ${le}`),J),he=new ju(L,{baseFs:ae,pathUtils:J}),pe=()=>{V==null||V.discardAndClose()},De=(ge=u.unstablePackages)!=null&&ge.has(e.locatorHash)?null:_;return[he,pe,De]}}});var Gb,Ppe=dt(()=>{Gb=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(Gb||{})});var Qct,nC,u_=dt(()=>{St();Hl();s0();Ks();Qct=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>TP({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],nC=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=J.join(e.cwd,e.configuration.get("lockfileFilename"));if(!oe.existsSync(o))return;let a=await oe.readFilePromise(o,"utf8"),n=Yi(a);if(Object.prototype.hasOwnProperty.call(n,"__metadata"))return;let u=this.resolutions=new Map;for(let A of Object.keys(n)){let p=Xw(A);if(!p){r.reportWarning(14,`Failed to parse the string "${A}" into a proper descriptor`);continue}let h=cl(p.range)?mn(p,`npm:${p.range}`):p,{version:C,resolved:w}=n[A];if(!w)continue;let v;for(let[E,R]of Qct){let L=w.match(E);if(L){v=R(C,...L);break}}if(!v){r.reportWarning(14,`${Ln(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${w}")`);continue}let b=h;try{let E=Dd(h.range),R=Xw(E.selector,!0);R&&(b=R)}catch{}u.set(h.descriptorHash,us(b,v))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=AM(a),u=o.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(u,r,o)}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var pA,xpe=dt(()=>{Zl();_x();zl();pA=class extends Js{constructor({configuration:r,stdout:o,suggestInstall:a=!0}){super();this.errorCount=0;qw(this,{configuration:r}),this.configuration=r,this.stdout=o,this.suggestInstall=a}static async start(r,o){let a=new this(r);try{await o(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,o){return o()}async startSectionPromise(r,o){return await o()}startTimerSync(r,o,a){return(typeof o=="function"?o:a)()}async startTimerPromise(r,o,a){return await(typeof o=="function"?o:a)()}async startCacheReport(r){return await r()}reportSeparator(){}reportInfo(r,o){}reportWarning(r,o){}reportError(r,o){this.errorCount+=1,this.stdout.write(`${Kt(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${o}
194`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}async finalize(){this.errorCount>0&&(this.stdout.write(` 194`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}async finalize(){this.errorCount>0&&(this.stdout.write(`
195`),this.stdout.write(`${Kt(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. 195`),this.stdout.write(`${Kt(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command.
196`),this.suggestInstall&&this.stdout.write(`${Kt(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. 196`),this.suggestInstall&&this.stdout.write(`${Kt(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.
197`))}formatNameWithHyperlink(r){return IU(r,{configuration:this.configuration,json:!1})}}});var iE,c_=dt(()=>{Ks();iE=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(QP(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(QP(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Yf(){}function Pct(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;n<u;n++){var h=e[n];if(h.removed){if(h.value=t.join(o.slice(p,p+h.count)),p+=h.count,n&&e[n-1].added){var w=e[n-1];e[n-1]=e[n],e[n]=w}}else{if(!h.added&&a){var E=r.slice(A,A+h.count);E=E.map(function(b,C){var R=o[p+C];return R.length>b.length?R:b}),h.value=t.join(E)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var v=e[u-1];return u>1&&typeof v.value=="string"&&(v.added||v.removed)&&t.equals("",v.value)&&(e[u-2].value+=v.value,e.pop()),e}function xct(t){return{newPos:t.newPos,components:t.components.slice(0)}}function bct(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function bpe(t,e,r){return r=bct(r,{ignoreWhitespace:!0}),h_.diff(t,e,r)}function Qct(t,e,r){return g_.diff(t,e,r)}function jb(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?jb=function(e){return typeof e}:jb=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jb(t)}function u_(t){return Rct(t)||Tct(t)||Nct(t)||Lct()}function Rct(t){if(Array.isArray(t))return A_(t)}function Tct(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function Nct(t,e){if(!!t){if(typeof t=="string")return A_(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return A_(t,e)}}function A_(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r<e;r++)o[r]=t[r];return o}function Lct(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 197`))}formatNameWithHyperlink(r){return BU(r,{configuration:this.configuration,json:!1})}}});var iC,A_=dt(()=>{Ks();iC=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(FP(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(FP(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Vf(){}function kct(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;n<u;n++){var h=e[n];if(h.removed){if(h.value=t.join(o.slice(p,p+h.count)),p+=h.count,n&&e[n-1].added){var w=e[n-1];e[n-1]=e[n],e[n]=w}}else{if(!h.added&&a){var C=r.slice(A,A+h.count);C=C.map(function(b,E){var R=o[p+E];return R.length>b.length?R:b}),h.value=t.join(C)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var v=e[u-1];return u>1&&typeof v.value=="string"&&(v.added||v.removed)&&t.equals("",v.value)&&(e[u-2].value+=v.value,e.pop()),e}function Fct(t){return{newPos:t.newPos,components:t.components.slice(0)}}function Rct(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function kpe(t,e,r){return r=Rct(r,{ignoreWhitespace:!0}),d_.diff(t,e,r)}function Tct(t,e,r){return m_.diff(t,e,r)}function Wb(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Wb=function(e){return typeof e}:Wb=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Wb(t)}function f_(t){return Oct(t)||Mct(t)||Uct(t)||_ct()}function Oct(t){if(Array.isArray(t))return p_(t)}function Mct(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function Uct(t,e){if(!!t){if(typeof t=="string")return p_(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p_(t,e)}}function p_(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r<e;r++)o[r]=t[r];return o}function _ct(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
198In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function f_(t,e,r,o,a){e=e||[],r=r||[],o&&(t=o(a,t));var n;for(n=0;n<e.length;n+=1)if(e[n]===t)return r[n];var u;if(Oct.call(t)==="[object Array]"){for(e.push(t),u=new Array(t.length),r.push(u),n=0;n<t.length;n+=1)u[n]=f_(t[n],e,r,o,a);return e.pop(),r.pop(),u}if(t&&t.toJSON&&(t=t.toJSON()),jb(t)==="object"&&t!==null){e.push(t),u={},r.push(u);var A=[],p;for(p in t)t.hasOwnProperty(p)&&A.push(p);for(A.sort(),n=0;n<A.length;n+=1)p=A[n],u[p]=f_(t[p],e,r,o,p);e.pop(),r.pop()}else u=t;return u}function Qpe(t,e,r,o,a,n,u){u||(u={}),typeof u.context>"u"&&(u.context=4);var A=Qct(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(_){return _.map(function(V){return" "+V})}for(var h=[],E=0,w=0,v=[],b=1,C=1,R=function(V){var re=A[V],oe=re.lines||re.value.replace(/\n$/,"").split(` 198In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function h_(t,e,r,o,a){e=e||[],r=r||[],o&&(t=o(a,t));var n;for(n=0;n<e.length;n+=1)if(e[n]===t)return r[n];var u;if(Hct.call(t)==="[object Array]"){for(e.push(t),u=new Array(t.length),r.push(u),n=0;n<t.length;n+=1)u[n]=h_(t[n],e,r,o,a);return e.pop(),r.pop(),u}if(t&&t.toJSON&&(t=t.toJSON()),Wb(t)==="object"&&t!==null){e.push(t),u={},r.push(u);var A=[],p;for(p in t)t.hasOwnProperty(p)&&A.push(p);for(A.sort(),n=0;n<A.length;n+=1)p=A[n],u[p]=h_(t[p],e,r,o,p);e.pop(),r.pop()}else u=t;return u}function Fpe(t,e,r,o,a,n,u){u||(u={}),typeof u.context>"u"&&(u.context=4);var A=Tct(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(_){return _.map(function(V){return" "+V})}for(var h=[],C=0,w=0,v=[],b=1,E=1,R=function(V){var re=A[V],ae=re.lines||re.value.replace(/\n$/,"").split(`
199`);if(re.lines=oe,re.added||re.removed){var pe;if(!E){var he=A[V-1];E=b,w=C,he&&(v=u.context>0?p(he.lines.slice(-u.context)):[],E-=v.length,w-=v.length)}(pe=v).push.apply(pe,u_(oe.map(function(de){return(re.added?"+":"-")+de}))),re.added?C+=oe.length:b+=oe.length}else{if(E)if(oe.length<=u.context*2&&V<A.length-2){var ve;(ve=v).push.apply(ve,u_(p(oe)))}else{var ge,le=Math.min(oe.length,u.context);(ge=v).push.apply(ge,u_(p(oe.slice(0,le))));var Pe={oldStart:E,oldLines:b-E+le,newStart:w,newLines:C-w+le,lines:v};if(V>=A.length-2&&oe.length<=u.context){var g=/\n$/.test(r),De=/\n$/.test(o),Ce=oe.length==0&&v.length>Pe.oldLines;!g&&Ce&&r.length>0&&v.splice(Pe.oldLines,0,"\\ No newline at end of file"),(!g&&!Ce||!De)&&v.push("\\ No newline at end of file")}h.push(Pe),E=0,w=0,v=[]}b+=oe.length,C+=oe.length}},L=0;L<A.length;L++)R(L);return{oldFileName:t,newFileName:e,oldHeader:a,newHeader:n,hunks:h}}var sUt,Ppe,xpe,h_,g_,kct,Fct,Oct,j1,p_,d_=dt(()=>{Yf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,E=A+p;o.maxEditLength&&(E=Math.min(E,o.maxEditLength));var w=[{newPos:-1,components:[]}],v=this.extractCommon(w[0],r,e,0);if(w[0].newPos+1>=A&&v+1>=p)return u([{value:this.join(r),count:r.length}]);function b(){for(var R=-1*h;R<=h;R+=2){var L=void 0,_=w[R-1],V=w[R+1],re=(V?V.newPos:0)-R;_&&(w[R-1]=void 0);var oe=_&&_.newPos+1<A,pe=V&&0<=re&&re<p;if(!oe&&!pe){w[R]=void 0;continue}if(!oe||pe&&_.newPos<V.newPos?(L=xct(V),n.pushComponent(L.components,void 0,!0)):(L=_,L.newPos++,n.pushComponent(L.components,!0,void 0)),re=n.extractCommon(L,r,e,R),L.newPos+1>=A&&re+1>=p)return u(Pct(n,L.components,r,e,n.useLongestToken));w[R]=L}h++}if(a)(function R(){setTimeout(function(){if(h>E)return a();b()||R()},0)})();else for(;h<=E;){var C=b();if(C)return C}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1<n&&p+1<u&&this.equals(r[A+1],o[p+1]);)A++,p++,h++;return h&&e.components.push({count:h}),e.newPos=A,p},equals:function(e,r){return this.options.comparator?this.options.comparator(e,r):e===r||this.options.ignoreCase&&e.toLowerCase()===r.toLowerCase()},removeEmpty:function(e){for(var r=[],o=0;o<e.length;o++)e[o]&&r.push(e[o]);return r},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};sUt=new Yf;Ppe=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,xpe=/\S/,h_=new Yf;h_.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!xpe.test(t)&&!xpe.test(e)};h_.tokenize=function(t){for(var e=t.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r<e.length-1;r++)!e[r+1]&&e[r+2]&&Ppe.test(e[r])&&Ppe.test(e[r+2])&&(e[r]+=e[r+2],e.splice(r+1,2),r--);return e};g_=new Yf;g_.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var o=0;o<r.length;o++){var a=r[o];o%2&&!this.options.newlineIsToken?e[e.length-1]+=a:(this.options.ignoreWhitespace&&(a=a.trim()),e.push(a))}return e};kct=new Yf;kct.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};Fct=new Yf;Fct.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};Oct=Object.prototype.toString,j1=new Yf;j1.useLongestToken=!0;j1.tokenize=g_.tokenize;j1.castInput=function(t){var e=this.options,r=e.undefinedReplacement,o=e.stringifyReplacer,a=o===void 0?function(n,u){return typeof u>"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify(f_(t,null,null,a),a," ")};j1.equals=function(t,e){return Yf.prototype.equals.call(j1,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};p_=new Yf;p_.tokenize=function(t){return t.slice()};p_.join=p_.removeEmpty=function(t){return t}});var Fpe=U((aUt,kpe)=>{var Mct=Yl(),Uct=AC(),_ct=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Hct=/^\w*$/;function qct(t,e){if(Mct(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||Uct(t)?!0:Hct.test(t)||!_ct.test(t)||e!=null&&t in Object(e)}kpe.exports=qct});var Npe=U((lUt,Tpe)=>{var Rpe=bS(),jct="Expected a function";function m_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(jct);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(m_.Cache||Rpe),r}m_.Cache=Rpe;Tpe.exports=m_});var Ope=U((cUt,Lpe)=>{var Gct=Npe(),Wct=500;function Yct(t){var e=Gct(t,function(o){return r.size===Wct&&r.clear(),o}),r=e.cache;return e}Lpe.exports=Yct});var y_=U((uUt,Mpe)=>{var Kct=Ope(),Vct=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Jct=/\\(\\)?/g,zct=Kct(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Vct,function(r,o,a,n){e.push(a?n.replace(Jct,"$1"):o||r)}),e});Mpe.exports=zct});var Wd=U((AUt,Upe)=>{var Xct=Yl(),Zct=Fpe(),$ct=y_(),eut=v1();function tut(t,e){return Xct(t)?t:Zct(t,e)?[t]:$ct(eut(t))}Upe.exports=tut});var sE=U((fUt,_pe)=>{var rut=AC(),nut=1/0;function iut(t){if(typeof t=="string"||rut(t))return t;var e=t+"";return e=="0"&&1/t==-nut?"-0":e}_pe.exports=iut});var Gb=U((pUt,Hpe)=>{var sut=Wd(),out=sE();function aut(t,e){e=sut(e,t);for(var r=0,o=e.length;t!=null&&r<o;)t=t[out(e[r++])];return r&&r==o?t:void 0}Hpe.exports=aut});var C_=U((hUt,jpe)=>{var lut=YS(),cut=Wd(),uut=Qw(),qpe=ol(),Aut=sE();function fut(t,e,r,o){if(!qpe(t))return t;e=cut(e,t);for(var a=-1,n=e.length,u=n-1,A=t;A!=null&&++a<n;){var p=Aut(e[a]),h=r;if(p==="__proto__"||p==="constructor"||p==="prototype")return t;if(a!=u){var E=A[p];h=o?o(E,p,A):void 0,h===void 0&&(h=qpe(E)?E:uut(e[a+1])?[]:{})}lut(A,p,h),A=A[p]}return t}jpe.exports=fut});var Wpe=U((gUt,Gpe)=>{var put=Gb(),hut=C_(),gut=Wd();function dut(t,e,r){for(var o=-1,a=e.length,n={};++o<a;){var u=e[o],A=put(t,u);r(A,u)&&hut(n,gut(u,t),A)}return n}Gpe.exports=dut});var Kpe=U((dUt,Ype)=>{function mut(t,e){return t!=null&&e in Object(t)}Ype.exports=mut});var E_=U((mUt,Vpe)=>{var yut=Wd(),Cut=Pw(),Eut=Yl(),Iut=Qw(),wut=NS(),But=sE();function vut(t,e,r){e=yut(e,t);for(var o=-1,a=e.length,n=!1;++o<a;){var u=But(e[o]);if(!(n=t!=null&&r(t,u)))break;t=t[u]}return n||++o!=a?n:(a=t==null?0:t.length,!!a&&wut(a)&&Iut(u,a)&&(Eut(t)||Cut(t)))}Vpe.exports=vut});var zpe=U((yUt,Jpe)=>{var Dut=Kpe(),Sut=E_();function Put(t,e){return t!=null&&Sut(t,e,Dut)}Jpe.exports=Put});var Zpe=U((CUt,Xpe)=>{var xut=Wpe(),but=zpe();function Qut(t,e){return xut(t,e,function(r,o){return but(t,o)})}Xpe.exports=Qut});var r0e=U((EUt,t0e)=>{var $pe=fd(),kut=Pw(),Fut=Yl(),e0e=$pe?$pe.isConcatSpreadable:void 0;function Rut(t){return Fut(t)||kut(t)||!!(e0e&&t&&t[e0e])}t0e.exports=Rut});var s0e=U((IUt,i0e)=>{var Tut=RS(),Nut=r0e();function n0e(t,e,r,o,a){var n=-1,u=t.length;for(r||(r=Nut),a||(a=[]);++n<u;){var A=t[n];e>0&&r(A)?e>1?n0e(A,e-1,r,o,a):Tut(a,A):o||(a[a.length]=A)}return a}i0e.exports=n0e});var a0e=U((wUt,o0e)=>{var Lut=s0e();function Out(t){var e=t==null?0:t.length;return e?Lut(t,1):[]}o0e.exports=Out});var I_=U((BUt,l0e)=>{var Mut=a0e(),Uut=sL(),_ut=oL();function Hut(t){return _ut(Uut(t,void 0,Mut),t+"")}l0e.exports=Hut});var u0e=U((vUt,c0e)=>{var qut=Zpe(),jut=I_(),Gut=jut(function(t,e){return t==null?{}:qut(t,e)});c0e.exports=Gut});var Wb,A0e=dt(()=>{Xl();Wb=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.resolver.bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){throw new Vt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,o,a){throw new Vt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new Vt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var xi,w_=dt(()=>{Xl();xi=class extends Js{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,o){return(typeof r=="function"?r:o)()}async startTimerPromise(e,r,o){return await(typeof r=="function"?r:o)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}}});var f0e,oE,B_=dt(()=>{bt();f0e=tt(oM());uC();Dd();Jl();t0();n0();Ks();oE=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Nt.tryFind(this.cwd)??new Nt,this.relativeCwd=z.relative(this.project.cwd,this.cwd)||wt.dot;let e=this.manifest.name?this.manifest.name:nA(null,`${this.computeCandidateName()}-${Vs(this.relativeCwd).substring(0,6)}`),r=this.manifest.version?this.manifest.version:"0.0.0";this.locator=us(e,r),this.anchoredDescriptor=mn(this.locator,`${Gn.protocol}${this.relativeCwd}`),this.anchoredLocator=us(this.locator,`${Gn.protocol}${this.relativeCwd}`);let o=this.manifest.workspaceDefinitions.map(({pattern:n})=>n),a=await(0,f0e.default)(o,{cwd:ue.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});a.sort();for(let n of a){let u=z.resolve(this.cwd,ue.toPortablePath(n));ae.existsSync(z.join(u,"package.json"))&&this.workspacesCwds.add(u)}}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${Zw(this.project.configuration,this)} (${Kt(this.project.configuration,z.join(this.cwd,Lr.manifest),Bt.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),o=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(o===Gn.protocol&&z.normalize(a)===this.relativeCwd||o===Gn.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=ll(a);return n?o===Gn.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${z.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Nt.hardDependencies}={}){let r=new Set,o=a=>{for(let n of e)for(let u of a.manifest[n].values()){let A=this.project.tryWorkspaceByDescriptor(u);A===null||r.has(A)||(r.add(A),o(A))}};return o(this),r}getRecursiveWorkspaceDependents({dependencies:e=Nt.hardDependencies}={}){let r=new Set,o=a=>{for(let n of this.project.workspaces)e.some(A=>[...n.manifest[A].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&Jw(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),o(n))};return o(this),r}getRecursiveWorkspaceChildren(){let e=[];for(let r of this.workspacesCwds){let o=this.project.workspacesByCwd.get(r);o&&e.push(o,...o.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let r=z.join(this.cwd,Nt.fileName),o=`${JSON.stringify(e,null,this.manifest.indent)} 199`);if(re.lines=ae,re.added||re.removed){var he;if(!C){var pe=A[V-1];C=b,w=E,pe&&(v=u.context>0?p(pe.lines.slice(-u.context)):[],C-=v.length,w-=v.length)}(he=v).push.apply(he,f_(ae.map(function(de){return(re.added?"+":"-")+de}))),re.added?E+=ae.length:b+=ae.length}else{if(C)if(ae.length<=u.context*2&&V<A.length-2){var De;(De=v).push.apply(De,f_(p(ae)))}else{var ge,le=Math.min(ae.length,u.context);(ge=v).push.apply(ge,f_(p(ae.slice(0,le))));var Pe={oldStart:C,oldLines:b-C+le,newStart:w,newLines:E-w+le,lines:v};if(V>=A.length-2&&ae.length<=u.context){var g=/\n$/.test(r),ve=/\n$/.test(o),Ee=ae.length==0&&v.length>Pe.oldLines;!g&&Ee&&r.length>0&&v.splice(Pe.oldLines,0,"\\ No newline at end of file"),(!g&&!Ee||!ve)&&v.push("\\ No newline at end of file")}h.push(Pe),C=0,w=0,v=[]}b+=ae.length,E+=ae.length}},L=0;L<A.length;L++)R(L);return{oldFileName:t,newFileName:e,oldHeader:a,newHeader:n,hunks:h}}var uUt,bpe,Qpe,d_,m_,Nct,Lct,Hct,W1,g_,y_=dt(()=>{Vf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,C=A+p;o.maxEditLength&&(C=Math.min(C,o.maxEditLength));var w=[{newPos:-1,components:[]}],v=this.extractCommon(w[0],r,e,0);if(w[0].newPos+1>=A&&v+1>=p)return u([{value:this.join(r),count:r.length}]);function b(){for(var R=-1*h;R<=h;R+=2){var L=void 0,_=w[R-1],V=w[R+1],re=(V?V.newPos:0)-R;_&&(w[R-1]=void 0);var ae=_&&_.newPos+1<A,he=V&&0<=re&&re<p;if(!ae&&!he){w[R]=void 0;continue}if(!ae||he&&_.newPos<V.newPos?(L=Fct(V),n.pushComponent(L.components,void 0,!0)):(L=_,L.newPos++,n.pushComponent(L.components,!0,void 0)),re=n.extractCommon(L,r,e,R),L.newPos+1>=A&&re+1>=p)return u(kct(n,L.components,r,e,n.useLongestToken));w[R]=L}h++}if(a)(function R(){setTimeout(function(){if(h>C)return a();b()||R()},0)})();else for(;h<=C;){var E=b();if(E)return E}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1<n&&p+1<u&&this.equals(r[A+1],o[p+1]);)A++,p++,h++;return h&&e.components.push({count:h}),e.newPos=A,p},equals:function(e,r){return this.options.comparator?this.options.comparator(e,r):e===r||this.options.ignoreCase&&e.toLowerCase()===r.toLowerCase()},removeEmpty:function(e){for(var r=[],o=0;o<e.length;o++)e[o]&&r.push(e[o]);return r},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};uUt=new Vf;bpe=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,Qpe=/\S/,d_=new Vf;d_.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!Qpe.test(t)&&!Qpe.test(e)};d_.tokenize=function(t){for(var e=t.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r<e.length-1;r++)!e[r+1]&&e[r+2]&&bpe.test(e[r])&&bpe.test(e[r+2])&&(e[r]+=e[r+2],e.splice(r+1,2),r--);return e};m_=new Vf;m_.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var o=0;o<r.length;o++){var a=r[o];o%2&&!this.options.newlineIsToken?e[e.length-1]+=a:(this.options.ignoreWhitespace&&(a=a.trim()),e.push(a))}return e};Nct=new Vf;Nct.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};Lct=new Vf;Lct.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};Hct=Object.prototype.toString,W1=new Vf;W1.useLongestToken=!0;W1.tokenize=m_.tokenize;W1.castInput=function(t){var e=this.options,r=e.undefinedReplacement,o=e.stringifyReplacer,a=o===void 0?function(n,u){return typeof u>"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify(h_(t,null,null,a),a," ")};W1.equals=function(t,e){return Vf.prototype.equals.call(W1,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};g_=new Vf;g_.tokenize=function(t){return t.slice()};g_.join=g_.removeEmpty=function(t){return t}});var Tpe=U((fUt,Rpe)=>{var qct=Kl(),jct=AE(),Gct=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Wct=/^\w*$/;function Yct(t,e){if(qct(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||jct(t)?!0:Wct.test(t)||!Gct.test(t)||e!=null&&t in Object(e)}Rpe.exports=Yct});var Ope=U((pUt,Lpe)=>{var Npe=kS(),Kct="Expected a function";function E_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(Kct);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(E_.Cache||Npe),r}E_.Cache=Npe;Lpe.exports=E_});var Upe=U((hUt,Mpe)=>{var Vct=Ope(),Jct=500;function zct(t){var e=Vct(t,function(o){return r.size===Jct&&r.clear(),o}),r=e.cache;return e}Mpe.exports=zct});var C_=U((gUt,_pe)=>{var Xct=Upe(),Zct=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$ct=/\\(\\)?/g,eut=Xct(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Zct,function(r,o,a,n){e.push(a?n.replace($ct,"$1"):o||r)}),e});_pe.exports=eut});var Yd=U((dUt,Hpe)=>{var tut=Kl(),rut=Tpe(),nut=C_(),iut=S1();function sut(t,e){return tut(t)?t:rut(t,e)?[t]:nut(iut(t))}Hpe.exports=sut});var sC=U((mUt,qpe)=>{var out=AE(),aut=1/0;function lut(t){if(typeof t=="string"||out(t))return t;var e=t+"";return e=="0"&&1/t==-aut?"-0":e}qpe.exports=lut});var Yb=U((yUt,jpe)=>{var cut=Yd(),uut=sC();function Aut(t,e){e=cut(e,t);for(var r=0,o=e.length;t!=null&&r<o;)t=t[uut(e[r++])];return r&&r==o?t:void 0}jpe.exports=Aut});var I_=U((EUt,Wpe)=>{var fut=VS(),put=Yd(),hut=kw(),Gpe=al(),gut=sC();function dut(t,e,r,o){if(!Gpe(t))return t;e=put(e,t);for(var a=-1,n=e.length,u=n-1,A=t;A!=null&&++a<n;){var p=gut(e[a]),h=r;if(p==="__proto__"||p==="constructor"||p==="prototype")return t;if(a!=u){var C=A[p];h=o?o(C,p,A):void 0,h===void 0&&(h=Gpe(C)?C:hut(e[a+1])?[]:{})}fut(A,p,h),A=A[p]}return t}Wpe.exports=dut});var Kpe=U((CUt,Ype)=>{var mut=Yb(),yut=I_(),Eut=Yd();function Cut(t,e,r){for(var o=-1,a=e.length,n={};++o<a;){var u=e[o],A=mut(t,u);r(A,u)&&yut(n,Eut(u,t),A)}return n}Ype.exports=Cut});var Jpe=U((IUt,Vpe)=>{function Iut(t,e){return t!=null&&e in Object(t)}Vpe.exports=Iut});var w_=U((wUt,zpe)=>{var wut=Yd(),But=xw(),vut=Kl(),Dut=kw(),Sut=OS(),Put=sC();function xut(t,e,r){e=wut(e,t);for(var o=-1,a=e.length,n=!1;++o<a;){var u=Put(e[o]);if(!(n=t!=null&&r(t,u)))break;t=t[u]}return n||++o!=a?n:(a=t==null?0:t.length,!!a&&Sut(a)&&Dut(u,a)&&(vut(t)||But(t)))}zpe.exports=xut});var Zpe=U((BUt,Xpe)=>{var but=Jpe(),Qut=w_();function kut(t,e){return t!=null&&Qut(t,e,but)}Xpe.exports=kut});var e0e=U((vUt,$pe)=>{var Fut=Kpe(),Rut=Zpe();function Tut(t,e){return Fut(t,e,function(r,o){return Rut(t,o)})}$pe.exports=Tut});var i0e=U((DUt,n0e)=>{var t0e=pd(),Nut=xw(),Lut=Kl(),r0e=t0e?t0e.isConcatSpreadable:void 0;function Out(t){return Lut(t)||Nut(t)||!!(r0e&&t&&t[r0e])}n0e.exports=Out});var a0e=U((SUt,o0e)=>{var Mut=NS(),Uut=i0e();function s0e(t,e,r,o,a){var n=-1,u=t.length;for(r||(r=Uut),a||(a=[]);++n<u;){var A=t[n];e>0&&r(A)?e>1?s0e(A,e-1,r,o,a):Mut(a,A):o||(a[a.length]=A)}return a}o0e.exports=s0e});var c0e=U((PUt,l0e)=>{var _ut=a0e();function Hut(t){var e=t==null?0:t.length;return e?_ut(t,1):[]}l0e.exports=Hut});var B_=U((xUt,u0e)=>{var qut=c0e(),jut=aL(),Gut=lL();function Wut(t){return Gut(jut(t,void 0,qut),t+"")}u0e.exports=Wut});var f0e=U((bUt,A0e)=>{var Yut=e0e(),Kut=B_(),Vut=Kut(function(t,e){return t==null?{}:Yut(t,e)});A0e.exports=Vut});var Kb,p0e=dt(()=>{Zl();Kb=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.resolver.bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){throw new Vt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,o,a){throw new Vt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new Vt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var xi,v_=dt(()=>{Zl();xi=class extends Js{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,o){return(typeof r=="function"?r:o)()}async startTimerPromise(e,r,o){return await(typeof r=="function"?r:o)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}}});var h0e,oC,D_=dt(()=>{St();h0e=tt(lM());uE();Sd();zl();n0();s0();Ks();oC=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Nt.tryFind(this.cwd)??new Nt,this.relativeCwd=J.relative(this.project.cwd,this.cwd)||wt.dot;let e=this.manifest.name?this.manifest.name:nA(null,`${this.computeCandidateName()}-${Vs(this.relativeCwd).substring(0,6)}`),r=this.manifest.version?this.manifest.version:"0.0.0";this.locator=us(e,r),this.anchoredDescriptor=mn(this.locator,`${Gn.protocol}${this.relativeCwd}`),this.anchoredLocator=us(this.locator,`${Gn.protocol}${this.relativeCwd}`);let o=this.manifest.workspaceDefinitions.map(({pattern:n})=>n);if(o.length===0)return;let a=await(0,h0e.default)(o,{cwd:ue.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});a.sort(),await a.reduce(async(n,u)=>{let A=J.resolve(this.cwd,ue.toPortablePath(u)),p=await oe.existsPromise(J.join(A,"package.json"));await n,p&&this.workspacesCwds.add(A)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${$w(this.project.configuration,this)} (${Kt(this.project.configuration,J.join(this.cwd,Lr.manifest),Bt.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),o=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(o===Gn.protocol&&J.normalize(a)===this.relativeCwd||o===Gn.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=cl(a);return n?o===Gn.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${J.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Nt.hardDependencies}={}){let r=new Set,o=a=>{for(let n of e)for(let u of a.manifest[n].values()){let A=this.project.tryWorkspaceByDescriptor(u);A===null||r.has(A)||(r.add(A),o(A))}};return o(this),r}getRecursiveWorkspaceDependents({dependencies:e=Nt.hardDependencies}={}){let r=new Set,o=a=>{for(let n of this.project.workspaces)e.some(A=>[...n.manifest[A].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&zw(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),o(n))};return o(this),r}getRecursiveWorkspaceChildren(){let e=[];for(let r of this.workspacesCwds){let o=this.project.workspacesByCwd.get(r);o&&e.push(o,...o.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let r=J.join(this.cwd,Nt.fileName),o=`${JSON.stringify(e,null,this.manifest.indent)}
200`;await ae.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function zut({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,volatileDescriptors:A=new Set,report:p}){let h=new Map,E=[],w=new Map,v=new Map,b=new Map,C=new Map,R=new Map,L=new Map(t.workspaces.map(ge=>{let le=ge.anchoredLocator.locatorHash,Pe=o.get(le);if(typeof Pe>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[le,Ww(Pe)]})),_=()=>{let ge=ae.mktempSync(),le=z.join(ge,"stacktrace.log"),Pe=String(E.length+1).length,g=E.map((De,Ce)=>`${`${Ce+1}.`.padStart(Pe," ")} ${Vl(De)} 200`;await oe.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function eAt({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,volatileDescriptors:A=new Set,report:p}){let h=new Map,C=[],w=new Map,v=new Map,b=new Map,E=new Map,R=new Map,L=new Map(t.workspaces.map(ge=>{let le=ge.anchoredLocator.locatorHash,Pe=o.get(le);if(typeof Pe>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[le,Yw(Pe)]})),_=()=>{let ge=oe.mktempSync(),le=J.join(ge,"stacktrace.log"),Pe=String(C.length+1).length,g=C.map((ve,Ee)=>`${`${Ee+1}.`.padStart(Pe," ")} ${Jl(ve)}
201`).join("");throw ae.writeFileSync(le,g),ae.detachTemp(ge),new Vt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${ue.fromPortablePath(le)}`)},V=ge=>{let le=r.get(ge.descriptorHash);if(typeof le>"u")throw new Error("Assertion failed: The resolution should have been registered");let Pe=o.get(le);if(!Pe)throw new Error("Assertion failed: The package could not be found");return Pe},re=(ge,le,Pe,{top:g,optional:De})=>{E.length>1e3&&_(),E.push(le);let Ce=oe(ge,le,Pe,{top:g,optional:De});return E.pop(),Ce},oe=(ge,le,Pe,{top:g,optional:De})=>{if(a.has(le.locatorHash))return;a.add(le.locatorHash),De||n.delete(le.locatorHash);let Ce=o.get(le.locatorHash);if(!Ce)throw new Error(`Assertion failed: The package (${kr(t.configuration,le)}) should have been registered`);let de=[],ne=[],Z=[],me=[],be=[];for(let H of Array.from(Ce.dependencies.values())){if(Ce.peerDependencies.has(H.identHash)&&Ce.locatorHash!==g)continue;if(Qf(H))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");A.delete(H.descriptorHash);let yt=De;if(!yt){let Oe=Ce.dependenciesMeta.get(nn(H));if(typeof Oe<"u"){let x=Oe.get(null);typeof x<"u"&&x.optional&&(yt=!0)}}let Me=r.get(H.descriptorHash);if(!Me)throw new Error(`Assertion failed: The resolution (${Ln(t.configuration,H)}) should have been registered`);let Te=L.get(Me)||o.get(Me);if(!Te)throw new Error(`Assertion failed: The package (${Me}, resolved from ${Ln(t.configuration,H)}) should have been registered`);if(Te.peerDependencies.size===0){re(H,Te,new Map,{top:g,optional:yt});continue}let Qe,_e,qe=new Set,At;ne.push(()=>{Qe=AM(H,le.locatorHash),_e=fM(Te,le.locatorHash),Ce.dependencies.delete(H.identHash),Ce.dependencies.set(Qe.identHash,Qe),r.set(Qe.descriptorHash,_e.locatorHash),e.set(Qe.descriptorHash,Qe),o.set(_e.locatorHash,_e),de.push([Te,Qe,_e])}),Z.push(()=>{At=new Map;for(let Oe of _e.peerDependencies.values()){let x=Ce.dependencies.get(Oe.identHash);if(!x&&Vw(le,Oe)&&(ge.identHash===le.identHash?x=ge:(x=mn(le,ge.range),e.set(x.descriptorHash,x),r.set(x.descriptorHash,le.locatorHash),A.delete(x.descriptorHash))),(!x||x.range==="missing:")&&_e.dependencies.has(Oe.identHash)){_e.peerDependencies.delete(Oe.identHash);continue}x||(x=mn(Oe,"missing:")),_e.dependencies.set(x.identHash,x),Qf(x)&&dd(b,x.descriptorHash).add(_e.locatorHash),w.set(x.identHash,x),x.range==="missing:"&&qe.add(x.identHash),At.set(Oe.identHash,Pe.get(Oe.identHash)??_e.locatorHash)}_e.dependencies=new Map(Pa(_e.dependencies,([Oe,x])=>nn(x)))}),me.push(()=>{if(!o.has(_e.locatorHash))return;let Oe=h.get(Te.locatorHash);typeof Oe=="number"&&Oe>=2&&_();let x=h.get(Te.locatorHash),I=typeof x<"u"?x+1:1;h.set(Te.locatorHash,I),re(Qe,_e,At,{top:g,optional:yt}),h.set(Te.locatorHash,I-1)}),be.push(()=>{let Oe=Ce.dependencies.get(H.identHash);if(typeof Oe>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let x=r.get(Oe.descriptorHash);if(typeof x>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(dd(R,x).add(le.locatorHash),!!o.has(_e.locatorHash)){for(let I of _e.peerDependencies.values()){let P=At.get(I.identHash);if(typeof P>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");Yy(Ky(C,P),nn(I)).push(_e.locatorHash)}for(let I of qe)_e.dependencies.delete(I)}})}for(let H of[...ne,...Z])H();let ut;do{ut=!0;for(let[H,yt,Me]of de){let Te=Ky(v,H.locatorHash),Qe=Vs(...[...Me.dependencies.values()].map(Oe=>{let x=Oe.range!=="missing:"?r.get(Oe.descriptorHash):"missing:";if(typeof x>"u")throw new Error(`Assertion failed: Expected the resolution for ${Ln(t.configuration,Oe)} to have been registered`);return x===g?`${x} (top)`:x}),yt.identHash),_e=Te.get(Qe);if(typeof _e>"u"){Te.set(Qe,yt);continue}if(_e===yt)continue;o.delete(Me.locatorHash),e.delete(yt.descriptorHash),r.delete(yt.descriptorHash),a.delete(Me.locatorHash);let qe=b.get(yt.descriptorHash)||[],At=[Ce.locatorHash,...qe];b.delete(yt.descriptorHash);for(let Oe of At){let x=o.get(Oe);typeof x>"u"||(x.dependencies.get(yt.identHash).descriptorHash!==_e.descriptorHash&&(ut=!1),x.dependencies.set(yt.identHash,_e))}}}while(!ut);for(let H of[...me,...be])H()};for(let ge of t.workspaces){let le=ge.anchoredLocator;A.delete(ge.anchoredDescriptor.descriptorHash),re(ge.anchoredDescriptor,le,new Map,{top:le.locatorHash,optional:!1})}let pe;(Pe=>(Pe[Pe.NotProvided=0]="NotProvided",Pe[Pe.NotCompatible=1]="NotCompatible"))(pe||(pe={}));let he=[];for(let[ge,le]of R){let Pe=o.get(ge);if(typeof Pe>"u")throw new Error("Assertion failed: Expected the root to be registered");let g=C.get(ge);if(!(typeof g>"u"))for(let De of le){let Ce=o.get(De);if(!(typeof Ce>"u"))for(let[de,ne]of g){let Z=Ys(de);if(Ce.peerDependencies.has(Z.identHash))continue;let me=`p${Vs(De,de,ge).slice(0,5)}`;u.set(me,{subject:De,requested:Z,rootRequester:ge,allRequesters:ne});let be=Pe.dependencies.get(Z.identHash);if(typeof be<"u"){let ut=V(be),H=ut.version??"0.0.0",yt=new Set;for(let Te of ne){let Qe=o.get(Te);if(typeof Qe>"u")throw new Error("Assertion failed: Expected the link to be registered");let _e=Qe.peerDependencies.get(Z.identHash);if(typeof _e>"u")throw new Error("Assertion failed: Expected the ident to be registered");yt.add(_e.range)}[...yt].every(Te=>{if(Te.startsWith(Gn.protocol)){if(!t.tryWorkspaceByLocator(ut))return!1;Te=Te.slice(Gn.protocol.length),(Te==="^"||Te==="~")&&(Te="*")}return Sd(H,Te)})||he.push({type:1,subject:Ce,requested:Z,requester:Pe,version:H,hash:me,requirementCount:ne.length})}else{let ut=Pe.peerDependenciesMeta.get(de);ut!=null&&ut.optional||he.push({type:0,subject:Ce,requested:Z,requester:Pe,hash:me})}}}}let ve=[ge=>pM(ge.subject),ge=>nn(ge.requested),ge=>`${ge.type}`];p==null||p.startSectionSync({reportFooter:()=>{p.reportWarning(0,`Some peer dependencies are incorrectly met; run ${Kt(t.configuration,"yarn explain peer-requirements <hash>",Bt.CODE)} for details, where ${Kt(t.configuration,"<hash>",Bt.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let ge of Pa(he,ve))switch(ge.type){case 0:p.reportWarning(2,`${kr(t.configuration,ge.subject)} doesn't provide ${cs(t.configuration,ge.requested)} (${Kt(t.configuration,ge.hash,Bt.CODE)}), requested by ${cs(t.configuration,ge.requester)}`);break;case 1:{let le=ge.requirementCount>1?"and some of its descendants request":"requests";p.reportWarning(60,`${kr(t.configuration,ge.subject)} provides ${cs(t.configuration,ge.requested)} (${Kt(t.configuration,ge.hash,Bt.CODE)}) with version ${Xw(t.configuration,ge.version)}, which doesn't satisfy what ${cs(t.configuration,ge.requester)} ${le}`)}break}})}var Yb,Kb,d0e,m0e,S_,D_,P_,p0e,Wut,Yut,h0e,Kut,Vut,Jut,gl,v_,g0e,St,y0e=dt(()=>{bt();bt();_l();_t();Yb=Ie("crypto");d_();Kb=tt(u0e()),d0e=tt(rd()),m0e=tt(si()),S_=Ie("util"),D_=tt(Ie("v8")),P_=tt(Ie("zlib"));m1();l_();c_();uC();CM();Xl();A0e();w_();Dd();B_();_P();Jl();t0();Kl();g1();DU();n0();Ks();p0e=7,Wut=2,Yut=/ *, */g,h0e=/\/$/,Kut=32,Vut=(0,S_.promisify)(P_.default.gzip),Jut=(0,S_.promisify)(P_.default.gunzip),gl=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(gl||{}),v_={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},g0e=t=>Vs(`${Wut}`,t),St=class{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){var C,R,L;if(!e.projectCwd)throw new ot(`No project found in ${r}`);let o=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,ae.existsSync(z.join(n,Lr.manifest))){o=n;break}a=z.dirname(n)}let u=new St(e.projectCwd,{configuration:e});(C=Xe.telemetry)==null||C.reportProject(u.cwd),await u.setupResolutions(),await u.setupWorkspaces(),(R=Xe.telemetry)==null||R.reportWorkspaceCount(u.workspaces.length),(L=Xe.telemetry)==null||L.reportDependencyCount(u.workspaces.reduce((_,V)=>_+V.manifest.dependencies.size+V.manifest.devDependencies.size,0));let A=u.tryWorkspaceByCwd(o);if(A)return{project:u,workspace:A,locator:A.anchoredLocator};let p=await u.findLocatorForLocation(`${o}/`,{strict:!0});if(p)return{project:u,locator:p,workspace:null};let h=Kt(e,u.cwd,Bt.PATH),E=Kt(e,z.relative(u.cwd,o),Bt.PATH),w=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,v=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,b=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new ot(`The nearest package directory (${Kt(e,o,Bt.PATH)}) doesn't seem to be part of the project declared in ${Kt(e,u.cwd,Bt.PATH)}. 201`).join("");throw oe.writeFileSync(le,g),oe.detachTemp(ge),new Vt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${ue.fromPortablePath(le)}`)},V=ge=>{let le=r.get(ge.descriptorHash);if(typeof le>"u")throw new Error("Assertion failed: The resolution should have been registered");let Pe=o.get(le);if(!Pe)throw new Error("Assertion failed: The package could not be found");return Pe},re=(ge,le,Pe,{top:g,optional:ve})=>{C.length>1e3&&_(),C.push(le);let Ee=ae(ge,le,Pe,{top:g,optional:ve});return C.pop(),Ee},ae=(ge,le,Pe,{top:g,optional:ve})=>{if(a.has(le.locatorHash))return;a.add(le.locatorHash),ve||n.delete(le.locatorHash);let Ee=o.get(le.locatorHash);if(!Ee)throw new Error(`Assertion failed: The package (${kr(t.configuration,le)}) should have been registered`);let de=[],ne=[],Z=[],me=[],be=[];for(let H of Array.from(Ee.dependencies.values())){if(Ee.peerDependencies.has(H.identHash)&&Ee.locatorHash!==g)continue;if(kf(H))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");A.delete(H.descriptorHash);let yt=ve;if(!yt){let Oe=Ee.dependenciesMeta.get(nn(H));if(typeof Oe<"u"){let x=Oe.get(null);typeof x<"u"&&x.optional&&(yt=!0)}}let Me=r.get(H.descriptorHash);if(!Me)throw new Error(`Assertion failed: The resolution (${Ln(t.configuration,H)}) should have been registered`);let Te=L.get(Me)||o.get(Me);if(!Te)throw new Error(`Assertion failed: The package (${Me}, resolved from ${Ln(t.configuration,H)}) should have been registered`);if(Te.peerDependencies.size===0){re(H,Te,new Map,{top:g,optional:yt});continue}let Qe,_e,qe=new Set,At;ne.push(()=>{Qe=pM(H,le.locatorHash),_e=hM(Te,le.locatorHash),Ee.dependencies.delete(H.identHash),Ee.dependencies.set(Qe.identHash,Qe),r.set(Qe.descriptorHash,_e.locatorHash),e.set(Qe.descriptorHash,Qe),o.set(_e.locatorHash,_e),de.push([Te,Qe,_e])}),Z.push(()=>{At=new Map;for(let Oe of _e.peerDependencies.values()){let x=Ee.dependencies.get(Oe.identHash);if(!x&&Jw(le,Oe)&&(ge.identHash===le.identHash?x=ge:(x=mn(le,ge.range),e.set(x.descriptorHash,x),r.set(x.descriptorHash,le.locatorHash),A.delete(x.descriptorHash))),(!x||x.range==="missing:")&&_e.dependencies.has(Oe.identHash)){_e.peerDependencies.delete(Oe.identHash);continue}x||(x=mn(Oe,"missing:")),_e.dependencies.set(x.identHash,x),kf(x)&&md(b,x.descriptorHash).add(_e.locatorHash),w.set(x.identHash,x),x.range==="missing:"&&qe.add(x.identHash),At.set(Oe.identHash,Pe.get(Oe.identHash)??_e.locatorHash)}_e.dependencies=new Map(xa(_e.dependencies,([Oe,x])=>nn(x)))}),me.push(()=>{if(!o.has(_e.locatorHash))return;let Oe=h.get(Te.locatorHash);typeof Oe=="number"&&Oe>=2&&_();let x=h.get(Te.locatorHash),I=typeof x<"u"?x+1:1;h.set(Te.locatorHash,I),re(Qe,_e,At,{top:g,optional:yt}),h.set(Te.locatorHash,I-1)}),be.push(()=>{let Oe=Ee.dependencies.get(H.identHash);if(typeof Oe>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let x=r.get(Oe.descriptorHash);if(typeof x>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(md(R,x).add(le.locatorHash),!!o.has(_e.locatorHash)){for(let I of _e.peerDependencies.values()){let P=At.get(I.identHash);if(typeof P>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");Yy(Ky(E,P),nn(I)).push(_e.locatorHash)}for(let I of qe)_e.dependencies.delete(I)}})}for(let H of[...ne,...Z])H();let ut;do{ut=!0;for(let[H,yt,Me]of de){let Te=Ky(v,H.locatorHash),Qe=Vs(...[...Me.dependencies.values()].map(Oe=>{let x=Oe.range!=="missing:"?r.get(Oe.descriptorHash):"missing:";if(typeof x>"u")throw new Error(`Assertion failed: Expected the resolution for ${Ln(t.configuration,Oe)} to have been registered`);return x===g?`${x} (top)`:x}),yt.identHash),_e=Te.get(Qe);if(typeof _e>"u"){Te.set(Qe,yt);continue}if(_e===yt)continue;o.delete(Me.locatorHash),e.delete(yt.descriptorHash),r.delete(yt.descriptorHash),a.delete(Me.locatorHash);let qe=b.get(yt.descriptorHash)||[],At=[Ee.locatorHash,...qe];b.delete(yt.descriptorHash);for(let Oe of At){let x=o.get(Oe);typeof x>"u"||(x.dependencies.get(yt.identHash).descriptorHash!==_e.descriptorHash&&(ut=!1),x.dependencies.set(yt.identHash,_e))}}}while(!ut);for(let H of[...me,...be])H()};for(let ge of t.workspaces){let le=ge.anchoredLocator;A.delete(ge.anchoredDescriptor.descriptorHash),re(ge.anchoredDescriptor,le,new Map,{top:le.locatorHash,optional:!1})}let he;(Pe=>(Pe[Pe.NotProvided=0]="NotProvided",Pe[Pe.NotCompatible=1]="NotCompatible"))(he||(he={}));let pe=[];for(let[ge,le]of R){let Pe=o.get(ge);if(typeof Pe>"u")throw new Error("Assertion failed: Expected the root to be registered");let g=E.get(ge);if(!(typeof g>"u"))for(let ve of le){let Ee=o.get(ve);if(!(typeof Ee>"u"))for(let[de,ne]of g){let Z=Ys(de);if(Ee.peerDependencies.has(Z.identHash))continue;let me=`p${Vs(ve,de,ge).slice(0,5)}`;u.set(me,{subject:ve,requested:Z,rootRequester:ge,allRequesters:ne});let be=Pe.dependencies.get(Z.identHash);if(typeof be<"u"){let ut=V(be),H=ut.version??"0.0.0",yt=new Set;for(let Te of ne){let Qe=o.get(Te);if(typeof Qe>"u")throw new Error("Assertion failed: Expected the link to be registered");let _e=Qe.peerDependencies.get(Z.identHash);if(typeof _e>"u")throw new Error("Assertion failed: Expected the ident to be registered");yt.add(_e.range)}[...yt].every(Te=>{if(Te.startsWith(Gn.protocol)){if(!t.tryWorkspaceByLocator(ut))return!1;Te=Te.slice(Gn.protocol.length),(Te==="^"||Te==="~")&&(Te="*")}return Pd(H,Te)})||pe.push({type:1,subject:Ee,requested:Z,requester:Pe,version:H,hash:me,requirementCount:ne.length})}else{let ut=Pe.peerDependenciesMeta.get(de);ut!=null&&ut.optional||pe.push({type:0,subject:Ee,requested:Z,requester:Pe,hash:me})}}}}let De=[ge=>gM(ge.subject),ge=>nn(ge.requested),ge=>`${ge.type}`];p==null||p.startSectionSync({reportFooter:()=>{p.reportWarning(0,`Some peer dependencies are incorrectly met; run ${Kt(t.configuration,"yarn explain peer-requirements <hash>",Bt.CODE)} for details, where ${Kt(t.configuration,"<hash>",Bt.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let ge of xa(pe,De))switch(ge.type){case 0:p.reportWarning(2,`${kr(t.configuration,ge.subject)} doesn't provide ${cs(t.configuration,ge.requested)} (${Kt(t.configuration,ge.hash,Bt.CODE)}), requested by ${cs(t.configuration,ge.requester)}`);break;case 1:{let le=ge.requirementCount>1?"and some of its descendants request":"requests";p.reportWarning(60,`${kr(t.configuration,ge.subject)} provides ${cs(t.configuration,ge.requested)} (${Kt(t.configuration,ge.hash,Bt.CODE)}) with version ${Zw(t.configuration,ge.version)}, which doesn't satisfy what ${cs(t.configuration,ge.requester)} ${le}`)}break}})}var Vb,Jb,zb,y0e,x_,P_,b_,g0e,Jut,zut,d0e,Xut,Zut,$ut,dl,S_,m0e,Pt,E0e=dt(()=>{St();St();Hl();_t();Vb=Ie("crypto");y_();Jb=tt(f0e()),zb=tt(nd()),y0e=tt(si()),x_=Ie("util"),P_=tt(Ie("v8")),b_=tt(Ie("zlib"));E1();u_();A_();uE();IM();Zl();p0e();v_();Sd();D_();qP();zl();n0();Vl();d1();PU();s0();Ks();g0e=7,Jut=2,zut=/ *, */g,d0e=/\/$/,Xut=32,Zut=(0,x_.promisify)(b_.default.gzip),$ut=(0,x_.promisify)(b_.default.gunzip),dl=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(dl||{}),S_={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},m0e=t=>Vs(`${Jut}`,t),Pt=class{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){var E,R,L;if(!e.projectCwd)throw new ot(`No project found in ${r}`);let o=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,oe.existsSync(J.join(n,Lr.manifest))){o=n;break}a=J.dirname(n)}let u=new Pt(e.projectCwd,{configuration:e});(E=Xe.telemetry)==null||E.reportProject(u.cwd),await u.setupResolutions(),await u.setupWorkspaces(),(R=Xe.telemetry)==null||R.reportWorkspaceCount(u.workspaces.length),(L=Xe.telemetry)==null||L.reportDependencyCount(u.workspaces.reduce((_,V)=>_+V.manifest.dependencies.size+V.manifest.devDependencies.size,0));let A=u.tryWorkspaceByCwd(o);if(A)return{project:u,workspace:A,locator:A.anchoredLocator};let p=await u.findLocatorForLocation(`${o}/`,{strict:!0});if(p)return{project:u,locator:p,workspace:null};let h=Kt(e,u.cwd,Bt.PATH),C=Kt(e,J.relative(u.cwd,o),Bt.PATH),w=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,v=`- If ${h} is intended to be a project, it might be that you forgot to list ${C} in its workspace configuration.`,b=`- Finally, if ${h} is fine and you intend ${C} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new ot(`The nearest package directory (${Kt(e,o,Bt.PATH)}) doesn't seem to be part of the project declared in ${Kt(e,u.cwd,Bt.PATH)}.
202 202
203${[w,v,b].join(` 203${[w,v,b].join(`
204`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=z.join(this.cwd,this.configuration.get("lockfileFilename")),r=this.configuration.get("defaultLanguageName");if(ae.existsSync(e)){let o=await ae.readFilePromise(e,"utf8");this.lockFileChecksum=g0e(o);let a=Yi(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileNeedsRefresh=n<p0e;for(let A of Object.keys(a)){if(A==="__metadata")continue;let p=a[A];if(typeof p.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=kf(p.resolution,!0),E=new Nt;E.load(p,{yamlCompatibilityMode:!0});let w=E.version,v=E.languageName||r,b=p.linkType.toUpperCase(),C=p.conditions??null,R=E.dependencies,L=E.peerDependencies,_=E.dependenciesMeta,V=E.peerDependenciesMeta,re=E.bin;if(p.checksum!=null){let pe=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,pe)}let oe={...h,version:w,languageName:v,linkType:b,conditions:C,dependencies:R,peerDependencies:L,dependenciesMeta:_,peerDependenciesMeta:V,bin:re};this.originalPackages.set(oe.locatorHash,oe);for(let pe of A.split(Yut)){let he=r0(pe);n<=6&&(he=this.configuration.normalizeDependency(he),he=mn(he,he.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(he.descriptorHash,he),this.storedResolutions.set(he.descriptorHash,h.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=[this.cwd];for(;e.length>0;){let r=e;e=[];for(let o of r){if(this.workspacesByCwd.has(o))continue;let a=await this.addWorkspace(o);for(let n of a.workspacesCwds)e.push(n)}}}async addWorkspace(e){let r=new oE(e,{project:this});await r.setup();let o=this.workspacesByIdent.get(r.locator.identHash);if(typeof o<"u")throw new Error(`Duplicate workspace name ${cs(this.configuration,r.locator)}: ${ue.fromPortablePath(e)} conflicts with ${ue.fromPortablePath(o.cwd)}`);return this.workspaces.push(r),this.workspacesByCwd.set(e,r),this.workspacesByIdent.set(r.locator.identHash,r),r}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){z.isAbsolute(e)||(e=z.resolve(this.cwd,e)),e=z.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)z.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${cs(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(Gn.protocol)){let o=e.range.slice(Gn.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!ll(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(Qf(e)&&(e=Yw(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${Ln(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Wc(e)&&(e=Kw(e)),r.locator.locatorHash!==e.locatorHash&&r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${kr(this.configuration,e)})`);return r}forgetResolution(e){let r=a=>{this.storedResolutions.delete(a),this.storedDescriptors.delete(a)},o=a=>{this.originalPackages.delete(a),this.storedPackages.delete(a),this.accessibleLocators.delete(a)};if("descriptorHash"in e){let a=this.storedResolutions.get(e.descriptorHash);r(e.descriptorHash);let n=new Set(this.storedResolutions.values());typeof a<"u"&&!n.has(a)&&o(a)}if("locatorHash"in e){o(e.locatorHash);for(let[a,n]of this.storedResolutions)n===e.locatorHash&&r(a)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let r of this.originalPackages.values()){let o;try{o=e.shouldPersistResolution(r,{project:this,resolver:e})}catch{o=!1}o||this.forgetResolution(r)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)Qf(o)&&e.dependencies.set(r,Yw(o))}getDependencyMeta(e,r){let o={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(nn(e));if(!n)return o;let u=n.get(null);if(u&&Object.assign(o,u),r===null||!m0e.default.valid(r))return o;for(let[A,p]of n)A!==null&&A===r&&Object.assign(o,p);return o}async findLocatorForLocation(e,{strict:r=!1}={}){let o=new xi,a=this.configuration.getLinkers(),n={project:this,report:o};for(let u of a){let A=await u.findPackageLocator(e,n);if(A){if(r&&(await u.findPackageLocation(A,n)).replace(h0e,"")!==e.replace(h0e,""))continue;return A}}return null}async loadUserConfig(){let e=z.join(this.cwd,"yarn.config.js");return await ae.existsPromise(e)?Vp(e):null}async preparePackage(e,{resolver:r,resolveOptions:o}){let a=this.configuration.normalizePackage(e);for(let[n,u]of a.dependencies){let A=await this.configuration.reduceHook(h=>h.reduceDependency,u,this,a,u,{resolver:r,resolveOptions:o});if(!Vw(u,A))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let p=r.bindDescriptor(A,a,o);a.dependencies.set(n,p)}return a}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let r=e.resolver||this.configuration.makeResolver(),o=new nE(r);await o.setup(this,{report:e.report});let a=e.lockfileOnly?[new Wb(r)]:[o,r],n=new Pd([new iE(r),...a]),u=new Pd([...a]),A=this.configuration.makeFetcher(),p=e.lockfileOnly?{project:this,report:e.report,resolver:n}:{project:this,report:e.report,resolver:n,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:A,cacheOptions:{mirrorWriteOnly:!0}}},h=new Map,E=new Map,w=new Map,v=new Map,b=new Map,C=new Map,R=this.topLevelWorkspace.anchoredLocator,L=new Set,_=[],V=V4(),re=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Js.progressViaTitle(),async Pe=>{let g=async Z=>{let me=await Vy(async()=>await n.resolve(Z,p),H=>`${kr(this.configuration,Z)}: ${H}`);if(!Jw(Z,me))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${kr(this.configuration,Z)} to ${kr(this.configuration,me)})`);v.set(me.locatorHash,me);let be=await this.preparePackage(me,{resolver:n,resolveOptions:p}),ut=jc([...be.dependencies.values()].map(H=>ne(H)));return _.push(ut),ut.catch(()=>{}),E.set(be.locatorHash,be),be},De=async Z=>{let me=b.get(Z.locatorHash);if(typeof me<"u")return me;let be=Promise.resolve().then(()=>g(Z));return b.set(Z.locatorHash,be),be},Ce=async(Z,me)=>{let be=await ne(me);return h.set(Z.descriptorHash,Z),w.set(Z.descriptorHash,be.locatorHash),be},de=async Z=>{Pe.setTitle(Ln(this.configuration,Z));let me=this.resolutionAliases.get(Z.descriptorHash);if(typeof me<"u")return Ce(Z,this.storedDescriptors.get(me));let be=n.getResolutionDependencies(Z,p),ut=Object.fromEntries(await jc(Object.entries(be).map(async([Me,Te])=>{let Qe=n.bindDescriptor(Te,R,p),_e=await ne(Qe);return L.add(_e.locatorHash),[Me,_e]}))),yt=(await Vy(async()=>await n.getCandidates(Z,ut,p),Me=>`${Ln(this.configuration,Z)}: ${Me}`))[0];if(typeof yt>"u")throw new Vt(82,`${Ln(this.configuration,Z)}: No candidates found`);if(e.checkResolutions){let{locators:Me}=await u.getSatisfying(Z,ut,[yt],{...p,resolver:u});if(!Me.find(Te=>Te.locatorHash===yt.locatorHash))throw new Vt(78,`Invalid resolution ${qw(this.configuration,Z,yt)}`)}return h.set(Z.descriptorHash,Z),w.set(Z.descriptorHash,yt.locatorHash),De(yt)},ne=Z=>{let me=C.get(Z.descriptorHash);if(typeof me<"u")return me;h.set(Z.descriptorHash,Z);let be=Promise.resolve().then(()=>de(Z));return C.set(Z.descriptorHash,be),be};for(let Z of this.workspaces){let me=Z.anchoredDescriptor;_.push(ne(me))}for(;_.length>0;){let Z=[..._];_.length=0,await jc(Z)}});let oe=new Set(this.resolutionAliases.values()),pe=new Set(E.keys()),he=new Set,ve=new Map;zut({project:this,report:e.report,accessibleLocators:he,volatileDescriptors:oe,optionalBuilds:pe,peerRequirements:ve,allDescriptors:h,allResolutions:w,allPackages:E});for(let Pe of L)pe.delete(Pe);for(let Pe of oe)h.delete(Pe),w.delete(Pe);let ge=new Set,le=new Set;for(let Pe of E.values())Pe.conditions!=null&&(!pe.has(Pe.locatorHash)||(NP(Pe,re)||(NP(Pe,V)&&e.report.reportWarningOnce(77,`${kr(this.configuration,Pe)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Kt(this.configuration,"supportedArchitectures",Bt.SETTING)} setting`),le.add(Pe.locatorHash)),ge.add(Pe.locatorHash)));this.storedResolutions=w,this.storedDescriptors=h,this.storedPackages=E,this.accessibleLocators=he,this.conditionalLocators=ge,this.disabledLocators=le,this.originalPackages=v,this.optionalBuilds=pe,this.peerRequirements=ve}async fetchEverything({cache:e,report:r,fetcher:o,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=Array.from(new Set(Pa(this.storedResolutions.values(),[v=>{let b=this.storedPackages.get(v);if(!b)throw new Error("Assertion failed: The locator should have been registered");return Vl(b)}])));a==="update-lockfile"&&(p=p.filter(v=>!this.storedChecksums.has(v)));let h=!1,E=Js.progressViaCounter(p.length);await r.reportProgress(E);let w=(0,d0e.default)(Kut);if(await r.startCacheReport(async()=>{await jc(p.map(v=>w(async()=>{let b=this.storedPackages.get(v);if(!b)throw new Error("Assertion failed: The locator should have been registered");if(Wc(b))return;let C;try{C=await u.fetch(b,A)}catch(R){R.message=`${kr(this.configuration,b)}: ${R.message}`,r.reportExceptionOnce(R),h=R;return}C.checksum!=null?this.storedChecksums.set(b.locatorHash,C.checksum):this.storedChecksums.delete(b.locatorHash),C.releaseFs&&C.releaseFs()}).finally(()=>{E.tick()})))}),h)throw h}async linkEverything({cache:e,report:r,fetcher:o,mode:a}){var De,Ce;let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(de=>{let ne=de.makeInstaller(h),Z=de.getCustomDataKey(),me=this.linkersCustomData.get(Z);return typeof me<"u"&&ne.attachCustomData(me),[de,ne]})),w=new Map,v=new Map,b=new Map,C=new Map(await jc([...this.accessibleLocators].map(async de=>{let ne=this.storedPackages.get(de);if(!ne)throw new Error("Assertion failed: The locator should have been registered");return[de,await u.fetch(ne,A)]}))),R=[];for(let de of this.accessibleLocators){let ne=this.storedPackages.get(de);if(typeof ne>"u")throw new Error("Assertion failed: The locator should have been registered");let Z=C.get(ne.locatorHash);if(typeof Z>"u")throw new Error("Assertion failed: The fetch result should have been registered");let me=[],be=H=>{me.push(H)},ut=this.tryWorkspaceByLocator(ne);if(ut!==null){let H=[],{scripts:yt}=ut.manifest;for(let Te of["preinstall","install","postinstall"])yt.has(Te)&&H.push([0,Te]);try{for(let[Te,Qe]of E)if(Te.supportsPackage(ne,h)&&(await Qe.installPackage(ne,Z,{holdFetchResult:be})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{me.length===0?(De=Z.releaseFs)==null||De.call(Z):R.push(jc(me).catch(()=>{}).then(()=>{var Te;(Te=Z.releaseFs)==null||Te.call(Z)}))}let Me=z.join(Z.packageFs.getRealPath(),Z.prefixPath);v.set(ne.locatorHash,Me),!Wc(ne)&&H.length>0&&b.set(ne.locatorHash,{directives:H,buildLocations:[Me]})}else{let H=p.find(Te=>Te.supportsPackage(ne,h));if(!H)throw new Vt(12,`${kr(this.configuration,ne)} isn't supported by any available linker`);let yt=E.get(H);if(!yt)throw new Error("Assertion failed: The installer should have been registered");let Me;try{Me=await yt.installPackage(ne,Z,{holdFetchResult:be})}finally{me.length===0?(Ce=Z.releaseFs)==null||Ce.call(Z):R.push(jc(me).then(()=>{}).then(()=>{var Te;(Te=Z.releaseFs)==null||Te.call(Z)}))}w.set(ne.locatorHash,H),v.set(ne.locatorHash,Me.packageLocation),Me.buildDirective&&Me.buildDirective.length>0&&Me.packageLocation&&b.set(ne.locatorHash,{directives:Me.buildDirective,buildLocations:[Me.packageLocation]})}}let L=new Map;for(let de of this.accessibleLocators){let ne=this.storedPackages.get(de);if(!ne)throw new Error("Assertion failed: The locator should have been registered");let Z=this.tryWorkspaceByLocator(ne)!==null,me=async(be,ut)=>{let H=v.get(ne.locatorHash);if(typeof H>"u")throw new Error(`Assertion failed: The package (${kr(this.configuration,ne)}) should have been registered`);let yt=[];for(let Me of ne.dependencies.values()){let Te=this.storedResolutions.get(Me.descriptorHash);if(typeof Te>"u")throw new Error(`Assertion failed: The resolution (${Ln(this.configuration,Me)}, from ${kr(this.configuration,ne)})should have been registered`);let Qe=this.storedPackages.get(Te);if(typeof Qe>"u")throw new Error(`Assertion failed: The package (${Te}, resolved from ${Ln(this.configuration,Me)}) should have been registered`);let _e=this.tryWorkspaceByLocator(Qe)===null?w.get(Te):null;if(typeof _e>"u")throw new Error(`Assertion failed: The package (${Te}, resolved from ${Ln(this.configuration,Me)}) should have been registered`);_e===be||_e===null?v.get(Qe.locatorHash)!==null&&yt.push([Me,Qe]):!Z&&H!==null&&Yy(L,Te).push(H)}H!==null&&await ut.attachInternalDependencies(ne,yt)};if(Z)for(let[be,ut]of E)be.supportsPackage(ne,h)&&await me(be,ut);else{let be=w.get(ne.locatorHash);if(!be)throw new Error("Assertion failed: The linker should have been found");let ut=E.get(be);if(!ut)throw new Error("Assertion failed: The installer should have been registered");await me(be,ut)}}for(let[de,ne]of L){let Z=this.storedPackages.get(de);if(!Z)throw new Error("Assertion failed: The package should have been registered");let me=w.get(Z.locatorHash);if(!me)throw new Error("Assertion failed: The linker should have been found");let be=E.get(me);if(!be)throw new Error("Assertion failed: The installer should have been registered");await be.attachExternalDependents(Z,ne)}let _=new Map;for(let[de,ne]of E){let Z=await ne.finalizeInstall();for(let me of(Z==null?void 0:Z.records)??[])b.set(me.locatorHash,{directives:me.buildDirective,buildLocations:me.buildLocations});typeof(Z==null?void 0:Z.customData)<"u"&&_.set(de.getCustomDataKey(),Z.customData)}if(this.linkersCustomData=_,await jc(R),a==="skip-build")return;let V=new Set(this.storedPackages.keys()),re=new Set(b.keys());for(let de of re)V.delete(de);let oe=(0,Yb.createHash)("sha512");oe.update(process.versions.node),await this.configuration.triggerHook(de=>de.globalHashGeneration,this,de=>{oe.update("\0"),oe.update(de)});let pe=oe.digest("hex"),he=new Map,ve=de=>{let ne=he.get(de.locatorHash);if(typeof ne<"u")return ne;let Z=this.storedPackages.get(de.locatorHash);if(typeof Z>"u")throw new Error("Assertion failed: The package should have been registered");let me=(0,Yb.createHash)("sha512");me.update(de.locatorHash),he.set(de.locatorHash,"<recursive>");for(let be of Z.dependencies.values()){let ut=this.storedResolutions.get(be.descriptorHash);if(typeof ut>"u")throw new Error(`Assertion failed: The resolution (${Ln(this.configuration,be)}) should have been registered`);let H=this.storedPackages.get(ut);if(typeof H>"u")throw new Error("Assertion failed: The package should have been registered");me.update(ve(H))}return ne=me.digest("hex"),he.set(de.locatorHash,ne),ne},ge=(de,ne)=>{let Z=(0,Yb.createHash)("sha512");Z.update(pe),Z.update(ve(de));for(let me of ne)Z.update(me);return Z.digest("hex")},le=new Map,Pe=!1,g=de=>{let ne=new Set([de.locatorHash]);for(let Z of ne){let me=this.storedPackages.get(Z);if(!me)throw new Error("Assertion failed: The package should have been registered");for(let be of me.dependencies.values()){let ut=this.storedResolutions.get(be.descriptorHash);if(!ut)throw new Error(`Assertion failed: The resolution (${Ln(this.configuration,be)}) should have been registered`);if(ut!==de.locatorHash&&re.has(ut))return!1;let H=this.storedPackages.get(ut);if(!H)throw new Error("Assertion failed: The package should have been registered");let yt=this.tryWorkspaceByLocator(H);if(yt){if(yt.anchoredLocator.locatorHash!==de.locatorHash&&re.has(yt.anchoredLocator.locatorHash))return!1;ne.add(yt.anchoredLocator.locatorHash)}ne.add(ut)}}return!0};for(;re.size>0;){let de=re.size,ne=[];for(let Z of re){let me=this.storedPackages.get(Z);if(!me)throw new Error("Assertion failed: The package should have been registered");if(!g(me))continue;let be=b.get(me.locatorHash);if(!be)throw new Error("Assertion failed: The build directive should have been registered");let ut=ge(me,be.buildLocations);if(this.storedBuildState.get(me.locatorHash)===ut){le.set(me.locatorHash,ut),re.delete(Z);continue}Pe||(await this.persistInstallStateFile(),Pe=!0),this.storedBuildState.has(me.locatorHash)?r.reportInfo(8,`${kr(this.configuration,me)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${kr(this.configuration,me)} must be built because it never has been before or the last one failed`);let H=be.buildLocations.map(async yt=>{if(!z.isAbsolute(yt))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${yt})`);for(let[Me,Te]of be.directives){let Qe=`# This file contains the result of Yarn building a package (${Vl(me)}) 204`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=J.join(this.cwd,this.configuration.get("lockfileFilename")),r=this.configuration.get("defaultLanguageName");if(oe.existsSync(e)){let o=await oe.readFilePromise(e,"utf8");this.lockFileChecksum=m0e(o);let a=Yi(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileNeedsRefresh=n<g0e;for(let A of Object.keys(a)){if(A==="__metadata")continue;let p=a[A];if(typeof p.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=Ff(p.resolution,!0),C=new Nt;C.load(p,{yamlCompatibilityMode:!0});let w=C.version,v=C.languageName||r,b=p.linkType.toUpperCase(),E=p.conditions??null,R=C.dependencies,L=C.peerDependencies,_=C.dependenciesMeta,V=C.peerDependenciesMeta,re=C.bin;if(p.checksum!=null){let he=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,he)}let ae={...h,version:w,languageName:v,linkType:b,conditions:E,dependencies:R,peerDependencies:L,dependenciesMeta:_,peerDependenciesMeta:V,bin:re};this.originalPackages.set(ae.locatorHash,ae);for(let he of A.split(zut)){let pe=i0(he);n<=6&&(pe=this.configuration.normalizeDependency(pe),pe=mn(pe,pe.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(pe.descriptorHash,pe),this.storedResolutions.set(pe.descriptorHash,h.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,zb.default)(4),o=async(a,n)=>{if(e.has(n))return a;e.add(n);let u=new oC(n,{project:this});await r(()=>u.setup());let A=a.then(()=>{this.addWorkspace(u)});return Array.from(u.workspacesCwds).reduce(o,A)};await o(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.locator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${cs(this.configuration,e.locator)}: ${ue.fromPortablePath(e.cwd)} conflicts with ${ue.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){J.isAbsolute(e)||(e=J.resolve(this.cwd,e)),e=J.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)J.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${cs(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(Gn.protocol)){let o=e.range.slice(Gn.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!cl(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(kf(e)&&(e=Kw(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${Ln(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Yc(e)&&(e=Vw(e)),r.locator.locatorHash!==e.locatorHash&&r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${kr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let o=new Set(this.storedResolutions.values());typeof r<"u"&&!o.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,o]of this.storedResolutions)o===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[o,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(o)}for(let o of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(o,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(o.locatorHash);let n=r.get(o.locatorHash);if(n){r.delete(o.locatorHash);for(let u of n)this.deleteDescriptor(u)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)kf(o)&&e.dependencies.set(r,Kw(o))}getDependencyMeta(e,r){let o={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(nn(e));if(!n)return o;let u=n.get(null);if(u&&Object.assign(o,u),r===null||!y0e.default.valid(r))return o;for(let[A,p]of n)A!==null&&A===r&&Object.assign(o,p);return o}async findLocatorForLocation(e,{strict:r=!1}={}){let o=new xi,a=this.configuration.getLinkers(),n={project:this,report:o};for(let u of a){let A=await u.findPackageLocator(e,n);if(A){if(r&&(await u.findPackageLocation(A,n)).replace(d0e,"")!==e.replace(d0e,""))continue;return A}}return null}async loadUserConfig(){let e=J.join(this.cwd,"yarn.config.js");return await oe.existsPromise(e)?zp(e):null}async preparePackage(e,{resolver:r,resolveOptions:o}){let a=this.configuration.normalizePackage(e);for(let[n,u]of a.dependencies){let A=await this.configuration.reduceHook(h=>h.reduceDependency,u,this,a,u,{resolver:r,resolveOptions:o});if(!Jw(u,A))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let p=r.bindDescriptor(A,a,o);a.dependencies.set(n,p)}return a}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let r=e.resolver||this.configuration.makeResolver(),o=new nC(r);await o.setup(this,{report:e.report});let a=e.lockfileOnly?[new Kb(r)]:[o,r],n=new xd([new iC(r),...a]),u=new xd([...a]),A=this.configuration.makeFetcher(),p=e.lockfileOnly?{project:this,report:e.report,resolver:n}:{project:this,report:e.report,resolver:n,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:A,cacheOptions:{mirrorWriteOnly:!0}}},h=new Map,C=new Map,w=new Map,v=new Map,b=new Map,E=new Map,R=this.topLevelWorkspace.anchoredLocator,L=new Set,_=[],V=z4(),re=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Js.progressViaTitle(),async Pe=>{let g=async Z=>{let me=await Vy(async()=>await n.resolve(Z,p),H=>`${kr(this.configuration,Z)}: ${H}`);if(!zw(Z,me))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${kr(this.configuration,Z)} to ${kr(this.configuration,me)})`);v.set(me.locatorHash,me);let be=await this.preparePackage(me,{resolver:n,resolveOptions:p}),ut=Gc([...be.dependencies.values()].map(H=>ne(H)));return _.push(ut),ut.catch(()=>{}),C.set(be.locatorHash,be),be},ve=async Z=>{let me=b.get(Z.locatorHash);if(typeof me<"u")return me;let be=Promise.resolve().then(()=>g(Z));return b.set(Z.locatorHash,be),be},Ee=async(Z,me)=>{let be=await ne(me);return h.set(Z.descriptorHash,Z),w.set(Z.descriptorHash,be.locatorHash),be},de=async Z=>{Pe.setTitle(Ln(this.configuration,Z));let me=this.resolutionAliases.get(Z.descriptorHash);if(typeof me<"u")return Ee(Z,this.storedDescriptors.get(me));let be=n.getResolutionDependencies(Z,p),ut=Object.fromEntries(await Gc(Object.entries(be).map(async([Me,Te])=>{let Qe=n.bindDescriptor(Te,R,p),_e=await ne(Qe);return L.add(_e.locatorHash),[Me,_e]}))),yt=(await Vy(async()=>await n.getCandidates(Z,ut,p),Me=>`${Ln(this.configuration,Z)}: ${Me}`))[0];if(typeof yt>"u")throw new Vt(82,`${Ln(this.configuration,Z)}: No candidates found`);if(e.checkResolutions){let{locators:Me}=await u.getSatisfying(Z,ut,[yt],{...p,resolver:u});if(!Me.find(Te=>Te.locatorHash===yt.locatorHash))throw new Vt(78,`Invalid resolution ${jw(this.configuration,Z,yt)}`)}return h.set(Z.descriptorHash,Z),w.set(Z.descriptorHash,yt.locatorHash),ve(yt)},ne=Z=>{let me=E.get(Z.descriptorHash);if(typeof me<"u")return me;h.set(Z.descriptorHash,Z);let be=Promise.resolve().then(()=>de(Z));return E.set(Z.descriptorHash,be),be};for(let Z of this.workspaces){let me=Z.anchoredDescriptor;_.push(ne(me))}for(;_.length>0;){let Z=[..._];_.length=0,await Gc(Z)}});let ae=new Set(this.resolutionAliases.values()),he=new Set(C.keys()),pe=new Set,De=new Map;eAt({project:this,report:e.report,accessibleLocators:pe,volatileDescriptors:ae,optionalBuilds:he,peerRequirements:De,allDescriptors:h,allResolutions:w,allPackages:C});for(let Pe of L)he.delete(Pe);for(let Pe of ae)h.delete(Pe),w.delete(Pe);let ge=new Set,le=new Set;for(let Pe of C.values())Pe.conditions!=null&&(!he.has(Pe.locatorHash)||(OP(Pe,re)||(OP(Pe,V)&&e.report.reportWarningOnce(77,`${kr(this.configuration,Pe)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Kt(this.configuration,"supportedArchitectures",Bt.SETTING)} setting`),le.add(Pe.locatorHash)),ge.add(Pe.locatorHash)));this.storedResolutions=w,this.storedDescriptors=h,this.storedPackages=C,this.accessibleLocators=pe,this.conditionalLocators=ge,this.disabledLocators=le,this.originalPackages=v,this.optionalBuilds=he,this.peerRequirements=De}async fetchEverything({cache:e,report:r,fetcher:o,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=Array.from(new Set(xa(this.storedResolutions.values(),[v=>{let b=this.storedPackages.get(v);if(!b)throw new Error("Assertion failed: The locator should have been registered");return Jl(b)}])));a==="update-lockfile"&&(p=p.filter(v=>!this.storedChecksums.has(v)));let h=!1,C=Js.progressViaCounter(p.length);await r.reportProgress(C);let w=(0,zb.default)(Xut);if(await r.startCacheReport(async()=>{await Gc(p.map(v=>w(async()=>{let b=this.storedPackages.get(v);if(!b)throw new Error("Assertion failed: The locator should have been registered");if(Yc(b))return;let E;try{E=await u.fetch(b,A)}catch(R){R.message=`${kr(this.configuration,b)}: ${R.message}`,r.reportExceptionOnce(R),h=R;return}E.checksum!=null?this.storedChecksums.set(b.locatorHash,E.checksum):this.storedChecksums.delete(b.locatorHash),E.releaseFs&&E.releaseFs()}).finally(()=>{C.tick()})))}),h)throw h}async linkEverything({cache:e,report:r,fetcher:o,mode:a}){var ve,Ee;let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},C=new Map(p.map(de=>{let ne=de.makeInstaller(h),Z=de.getCustomDataKey(),me=this.linkersCustomData.get(Z);return typeof me<"u"&&ne.attachCustomData(me),[de,ne]})),w=new Map,v=new Map,b=new Map,E=new Map(await Gc([...this.accessibleLocators].map(async de=>{let ne=this.storedPackages.get(de);if(!ne)throw new Error("Assertion failed: The locator should have been registered");return[de,await u.fetch(ne,A)]}))),R=[];for(let de of this.accessibleLocators){let ne=this.storedPackages.get(de);if(typeof ne>"u")throw new Error("Assertion failed: The locator should have been registered");let Z=E.get(ne.locatorHash);if(typeof Z>"u")throw new Error("Assertion failed: The fetch result should have been registered");let me=[],be=H=>{me.push(H)},ut=this.tryWorkspaceByLocator(ne);if(ut!==null){let H=[],{scripts:yt}=ut.manifest;for(let Te of["preinstall","install","postinstall"])yt.has(Te)&&H.push([0,Te]);try{for(let[Te,Qe]of C)if(Te.supportsPackage(ne,h)&&(await Qe.installPackage(ne,Z,{holdFetchResult:be})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{me.length===0?(ve=Z.releaseFs)==null||ve.call(Z):R.push(Gc(me).catch(()=>{}).then(()=>{var Te;(Te=Z.releaseFs)==null||Te.call(Z)}))}let Me=J.join(Z.packageFs.getRealPath(),Z.prefixPath);v.set(ne.locatorHash,Me),!Yc(ne)&&H.length>0&&b.set(ne.locatorHash,{directives:H,buildLocations:[Me]})}else{let H=p.find(Te=>Te.supportsPackage(ne,h));if(!H)throw new Vt(12,`${kr(this.configuration,ne)} isn't supported by any available linker`);let yt=C.get(H);if(!yt)throw new Error("Assertion failed: The installer should have been registered");let Me;try{Me=await yt.installPackage(ne,Z,{holdFetchResult:be})}finally{me.length===0?(Ee=Z.releaseFs)==null||Ee.call(Z):R.push(Gc(me).then(()=>{}).then(()=>{var Te;(Te=Z.releaseFs)==null||Te.call(Z)}))}w.set(ne.locatorHash,H),v.set(ne.locatorHash,Me.packageLocation),Me.buildDirective&&Me.buildDirective.length>0&&Me.packageLocation&&b.set(ne.locatorHash,{directives:Me.buildDirective,buildLocations:[Me.packageLocation]})}}let L=new Map;for(let de of this.accessibleLocators){let ne=this.storedPackages.get(de);if(!ne)throw new Error("Assertion failed: The locator should have been registered");let Z=this.tryWorkspaceByLocator(ne)!==null,me=async(be,ut)=>{let H=v.get(ne.locatorHash);if(typeof H>"u")throw new Error(`Assertion failed: The package (${kr(this.configuration,ne)}) should have been registered`);let yt=[];for(let Me of ne.dependencies.values()){let Te=this.storedResolutions.get(Me.descriptorHash);if(typeof Te>"u")throw new Error(`Assertion failed: The resolution (${Ln(this.configuration,Me)}, from ${kr(this.configuration,ne)})should have been registered`);let Qe=this.storedPackages.get(Te);if(typeof Qe>"u")throw new Error(`Assertion failed: The package (${Te}, resolved from ${Ln(this.configuration,Me)}) should have been registered`);let _e=this.tryWorkspaceByLocator(Qe)===null?w.get(Te):null;if(typeof _e>"u")throw new Error(`Assertion failed: The package (${Te}, resolved from ${Ln(this.configuration,Me)}) should have been registered`);_e===be||_e===null?v.get(Qe.locatorHash)!==null&&yt.push([Me,Qe]):!Z&&H!==null&&Yy(L,Te).push(H)}H!==null&&await ut.attachInternalDependencies(ne,yt)};if(Z)for(let[be,ut]of C)be.supportsPackage(ne,h)&&await me(be,ut);else{let be=w.get(ne.locatorHash);if(!be)throw new Error("Assertion failed: The linker should have been found");let ut=C.get(be);if(!ut)throw new Error("Assertion failed: The installer should have been registered");await me(be,ut)}}for(let[de,ne]of L){let Z=this.storedPackages.get(de);if(!Z)throw new Error("Assertion failed: The package should have been registered");let me=w.get(Z.locatorHash);if(!me)throw new Error("Assertion failed: The linker should have been found");let be=C.get(me);if(!be)throw new Error("Assertion failed: The installer should have been registered");await be.attachExternalDependents(Z,ne)}let _=new Map;for(let[de,ne]of C){let Z=await ne.finalizeInstall();for(let me of(Z==null?void 0:Z.records)??[])b.set(me.locatorHash,{directives:me.buildDirective,buildLocations:me.buildLocations});typeof(Z==null?void 0:Z.customData)<"u"&&_.set(de.getCustomDataKey(),Z.customData)}if(this.linkersCustomData=_,await Gc(R),a==="skip-build")return;let V=new Set(this.storedPackages.keys()),re=new Set(b.keys());for(let de of re)V.delete(de);let ae=(0,Vb.createHash)("sha512");ae.update(process.versions.node),await this.configuration.triggerHook(de=>de.globalHashGeneration,this,de=>{ae.update("\0"),ae.update(de)});let he=ae.digest("hex"),pe=new Map,De=de=>{let ne=pe.get(de.locatorHash);if(typeof ne<"u")return ne;let Z=this.storedPackages.get(de.locatorHash);if(typeof Z>"u")throw new Error("Assertion failed: The package should have been registered");let me=(0,Vb.createHash)("sha512");me.update(de.locatorHash),pe.set(de.locatorHash,"<recursive>");for(let be of Z.dependencies.values()){let ut=this.storedResolutions.get(be.descriptorHash);if(typeof ut>"u")throw new Error(`Assertion failed: The resolution (${Ln(this.configuration,be)}) should have been registered`);let H=this.storedPackages.get(ut);if(typeof H>"u")throw new Error("Assertion failed: The package should have been registered");me.update(De(H))}return ne=me.digest("hex"),pe.set(de.locatorHash,ne),ne},ge=(de,ne)=>{let Z=(0,Vb.createHash)("sha512");Z.update(he),Z.update(De(de));for(let me of ne)Z.update(me);return Z.digest("hex")},le=new Map,Pe=!1,g=de=>{let ne=new Set([de.locatorHash]);for(let Z of ne){let me=this.storedPackages.get(Z);if(!me)throw new Error("Assertion failed: The package should have been registered");for(let be of me.dependencies.values()){let ut=this.storedResolutions.get(be.descriptorHash);if(!ut)throw new Error(`Assertion failed: The resolution (${Ln(this.configuration,be)}) should have been registered`);if(ut!==de.locatorHash&&re.has(ut))return!1;let H=this.storedPackages.get(ut);if(!H)throw new Error("Assertion failed: The package should have been registered");let yt=this.tryWorkspaceByLocator(H);if(yt){if(yt.anchoredLocator.locatorHash!==de.locatorHash&&re.has(yt.anchoredLocator.locatorHash))return!1;ne.add(yt.anchoredLocator.locatorHash)}ne.add(ut)}}return!0};for(;re.size>0;){let de=re.size,ne=[];for(let Z of re){let me=this.storedPackages.get(Z);if(!me)throw new Error("Assertion failed: The package should have been registered");if(!g(me))continue;let be=b.get(me.locatorHash);if(!be)throw new Error("Assertion failed: The build directive should have been registered");let ut=ge(me,be.buildLocations);if(this.storedBuildState.get(me.locatorHash)===ut){le.set(me.locatorHash,ut),re.delete(Z);continue}Pe||(await this.persistInstallStateFile(),Pe=!0),this.storedBuildState.has(me.locatorHash)?r.reportInfo(8,`${kr(this.configuration,me)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${kr(this.configuration,me)} must be built because it never has been before or the last one failed`);let H=be.buildLocations.map(async yt=>{if(!J.isAbsolute(yt))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${yt})`);for(let[Me,Te]of be.directives){let Qe=`# This file contains the result of Yarn building a package (${Jl(me)})
205`;switch(Me){case 0:Qe+=`# Script name: ${Te} 205`;switch(Me){case 0:Qe+=`# Script name: ${Te}
206`;break;case 1:Qe+=`# Script code: ${Te} 206`;break;case 1:Qe+=`# Script code: ${Te}
207`;break}let _e=null;if(!await ae.mktempPromise(async At=>{let Oe=z.join(At,"build.log"),{stdout:x,stderr:I}=this.configuration.getSubprocessStreams(Oe,{header:Qe,prefix:kr(this.configuration,me),report:r}),P;try{switch(Me){case 0:P=await Ux(me,Te,[],{cwd:yt,project:this,stdin:_e,stdout:x,stderr:I});break;case 1:P=await BU(me,Te,[],{cwd:yt,project:this,stdin:_e,stdout:x,stderr:I});break}}catch(F){I.write(F.stack),P=1}if(x.end(),I.end(),P===0)return!0;ae.detachTemp(At);let y=`${kr(this.configuration,me)} couldn't be built successfully (exit code ${Kt(this.configuration,P,Bt.NUMBER)}, logs can be found here: ${Kt(this.configuration,Oe,Bt.PATH)})`;return this.optionalBuilds.has(me.locatorHash)?(r.reportInfo(9,y),!0):(r.reportError(9,y),!1)}))return!1}return!0});ne.push(...H,Promise.allSettled(H).then(yt=>{re.delete(Z),yt.every(Me=>Me.status==="fulfilled"&&Me.value===!0)&&le.set(me.locatorHash,ut)}))}if(await jc(ne),de===re.size){let Z=Array.from(re).map(me=>{let be=this.storedPackages.get(me);if(!be)throw new Error("Assertion failed: The package should have been registered");return kr(this.configuration,be)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${Z})`);break}}this.storedBuildState=le}async install(e){var h,E;let r=this.configuration.get("nodeLinker");(h=Xe.telemetry)==null||h.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(w=>w.validateProject,this,{reportWarning:(w,v)=>{e.report.reportWarning(w,v)},reportError:(w,v)=>{e.report.reportError(w,v),o=!0}})}),o)return;for(let w of this.configuration.packageExtensions.values())for(let[,v]of w)for(let b of v)b.status="inactive";let a=z.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await ae.readFilePromise(a,"utf8")}catch(w){throw w.code==="ENOENT"?new Vt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):w}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,w]of this.configuration.packageExtensions)for(let[,v]of w)for(let b of v)if(b.userProvided){let C=Kt(this.configuration,b,Bt.PACKAGE_EXTENSION);switch(b.status){case"inactive":e.report.reportWarning(68,`${C}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${C}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let w=Lg(n,this.generateLockfile());if(w!==n){let v=Qpe(a,a,n,w,void 0,void 0,{maxEditLength:100});if(v){e.report.reportSeparator();for(let b of v.hunks){e.report.reportInfo(null,`@@ -${b.oldStart},${b.oldLines} +${b.newStart},${b.newLines} @@`);for(let C of b.lines)C.startsWith("+")?e.report.reportError(28,Kt(this.configuration,C,Bt.ADDED)):C.startsWith("-")?e.report.reportError(28,Kt(this.configuration,C,Bt.REMOVED)):e.report.reportInfo(null,Kt(this.configuration,C,"grey"))}e.report.reportSeparator()}throw new Vt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let w of this.configuration.packageExtensions.values())for(let[,v]of w)for(let b of v)b.userProvided&&b.status==="active"&&((E=Xe.telemetry)==null||E.reportPackageExtension(md(b,Bt.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let u=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],A=await Promise.all(u.map(async w=>bP(w,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Kt(this.configuration,"mode=update-lockfile",Bt.CODE)}`);return}await this.linkEverything(e);let w=await Promise.all(u.map(async v=>bP(v,{cwd:this.cwd})));for(let v=0;v<u.length;++v)A[v]!==w[v]&&e.report.reportError(64,`The checksum for ${u[v]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile();let p=!1;await e.report.startTimerPromise("Post-install validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(w=>w.validateProjectAfterInstall,this,{reportWarning:(w,v)=>{e.report.reportWarning(w,v)},reportError:(w,v)=>{e.report.reportError(w,v),p=!0}})}),!p&&await this.configuration.triggerHook(w=>w.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[a,n]of this.storedResolutions.entries()){let u=e.get(n);u||e.set(n,u=new Set),u.add(a)}let r={};r.__metadata={version:p0e,cacheKey:void 0};for(let[a,n]of e.entries()){let u=this.originalPackages.get(a);if(!u)continue;let A=[];for(let v of n){let b=this.storedDescriptors.get(v);if(!b)throw new Error("Assertion failed: The descriptor should have been registered");A.push(b)}let p=A.map(v=>ba(v)).sort().join(", "),h=new Nt;h.version=u.linkType==="HARD"?u.version:"0.0.0-use.local",h.languageName=u.languageName,h.dependencies=new Map(u.dependencies),h.peerDependencies=new Map(u.peerDependencies),h.dependenciesMeta=new Map(u.dependenciesMeta),h.peerDependenciesMeta=new Map(u.peerDependenciesMeta),h.bin=new Map(u.bin);let E,w=this.storedChecksums.get(u.locatorHash);if(typeof w<"u"){let v=w.indexOf("/");if(v===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let b=w.slice(0,v),C=w.slice(v+1);typeof r.__metadata.cacheKey>"u"&&(r.__metadata.cacheKey=b),b===r.__metadata.cacheKey?E=C:E=w}r[p]={...h.exportTo({},{compatibilityMode:!1}),linkType:u.linkType.toLowerCase(),resolution:Vl(u),checksum:E,conditions:u.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. 207`;break}let _e=null;if(!await oe.mktempPromise(async At=>{let Oe=J.join(At,"build.log"),{stdout:x,stderr:I}=this.configuration.getSubprocessStreams(Oe,{header:Qe,prefix:kr(this.configuration,me),report:r}),P;try{switch(Me){case 0:P=await Hx(me,Te,[],{cwd:yt,project:this,stdin:_e,stdout:x,stderr:I});break;case 1:P=await DU(me,Te,[],{cwd:yt,project:this,stdin:_e,stdout:x,stderr:I});break}}catch(F){I.write(F.stack),P=1}if(x.end(),I.end(),P===0)return!0;oe.detachTemp(At);let y=`${kr(this.configuration,me)} couldn't be built successfully (exit code ${Kt(this.configuration,P,Bt.NUMBER)}, logs can be found here: ${Kt(this.configuration,Oe,Bt.PATH)})`;return this.optionalBuilds.has(me.locatorHash)?(r.reportInfo(9,y),!0):(r.reportError(9,y),!1)}))return!1}return!0});ne.push(...H,Promise.allSettled(H).then(yt=>{re.delete(Z),yt.every(Me=>Me.status==="fulfilled"&&Me.value===!0)&&le.set(me.locatorHash,ut)}))}if(await Gc(ne),de===re.size){let Z=Array.from(re).map(me=>{let be=this.storedPackages.get(me);if(!be)throw new Error("Assertion failed: The package should have been registered");return kr(this.configuration,be)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${Z})`);break}}this.storedBuildState=le}async install(e){var h,C;let r=this.configuration.get("nodeLinker");(h=Xe.telemetry)==null||h.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(w=>w.validateProject,this,{reportWarning:(w,v)=>{e.report.reportWarning(w,v)},reportError:(w,v)=>{e.report.reportError(w,v),o=!0}})}),o)return;for(let w of this.configuration.packageExtensions.values())for(let[,v]of w)for(let b of v)b.status="inactive";let a=J.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await oe.readFilePromise(a,"utf8")}catch(w){throw w.code==="ENOENT"?new Vt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):w}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,w]of this.configuration.packageExtensions)for(let[,v]of w)for(let b of v)if(b.userProvided){let E=Kt(this.configuration,b,Bt.PACKAGE_EXTENSION);switch(b.status){case"inactive":e.report.reportWarning(68,`${E}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${E}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let w=Og(n,this.generateLockfile());if(w!==n){let v=Fpe(a,a,n,w,void 0,void 0,{maxEditLength:100});if(v){e.report.reportSeparator();for(let b of v.hunks){e.report.reportInfo(null,`@@ -${b.oldStart},${b.oldLines} +${b.newStart},${b.newLines} @@`);for(let E of b.lines)E.startsWith("+")?e.report.reportError(28,Kt(this.configuration,E,Bt.ADDED)):E.startsWith("-")?e.report.reportError(28,Kt(this.configuration,E,Bt.REMOVED)):e.report.reportInfo(null,Kt(this.configuration,E,"grey"))}e.report.reportSeparator()}throw new Vt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let w of this.configuration.packageExtensions.values())for(let[,v]of w)for(let b of v)b.userProvided&&b.status==="active"&&((C=Xe.telemetry)==null||C.reportPackageExtension(yd(b,Bt.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let u=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],A=await Promise.all(u.map(async w=>kP(w,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Kt(this.configuration,"mode=update-lockfile",Bt.CODE)}`);return}await this.linkEverything(e);let w=await Promise.all(u.map(async v=>kP(v,{cwd:this.cwd})));for(let v=0;v<u.length;++v)A[v]!==w[v]&&e.report.reportError(64,`The checksum for ${u[v]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile();let p=!1;await e.report.startTimerPromise("Post-install validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(w=>w.validateProjectAfterInstall,this,{reportWarning:(w,v)=>{e.report.reportWarning(w,v)},reportError:(w,v)=>{e.report.reportError(w,v),p=!0}})}),!p&&await this.configuration.triggerHook(w=>w.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[a,n]of this.storedResolutions.entries()){let u=e.get(n);u||e.set(n,u=new Set),u.add(a)}let r={};r.__metadata={version:g0e,cacheKey:void 0};for(let[a,n]of e.entries()){let u=this.originalPackages.get(a);if(!u)continue;let A=[];for(let v of n){let b=this.storedDescriptors.get(v);if(!b)throw new Error("Assertion failed: The descriptor should have been registered");A.push(b)}let p=A.map(v=>Qa(v)).sort().join(", "),h=new Nt;h.version=u.linkType==="HARD"?u.version:"0.0.0-use.local",h.languageName=u.languageName,h.dependencies=new Map(u.dependencies),h.peerDependencies=new Map(u.peerDependencies),h.dependenciesMeta=new Map(u.dependenciesMeta),h.peerDependenciesMeta=new Map(u.peerDependenciesMeta),h.bin=new Map(u.bin);let C,w=this.storedChecksums.get(u.locatorHash);if(typeof w<"u"){let v=w.indexOf("/");if(v===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let b=w.slice(0,v),E=w.slice(v+1);typeof r.__metadata.cacheKey>"u"&&(r.__metadata.cacheKey=b),b===r.__metadata.cacheKey?C=E:C=w}r[p]={...h.exportTo({},{compatibilityMode:!1}),linkType:u.linkType.toLowerCase(),resolution:Jl(u),checksum:C,conditions:u.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project.
208`,`# Manual changes might be lost - proceed with caution! 208`,`# Manual changes might be lost - proceed with caution!
209`].join("")} 209`].join("")}
210`+wa(r)}async persistLockfile(){let e=z.join(this.cwd,this.configuration.get("lockfileFilename")),r="";try{r=await ae.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=Lg(r,o);a!==r&&(await ae.writeFilePromise(e,a),this.lockFileChecksum=g0e(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(v_))e.push(...u);let r=(0,Kb.default)(this,e),o=D_.default.serialize(r),a=Vs(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await ae.mkdirPromise(z.dirname(n),{recursive:!0}),await ae.writeFilePromise(n,await Vut(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await Jut(await ae.readFilePromise(a));n=D_.default.deserialize(u),this.installStateChecksum=Vs(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,Kb.default)(n,v_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,Kb.default)(n,v_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new xi}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return;let o=new Set([".gitignore"]);if(!bM(e.cwd,this.cwd)||!await ae.existsPromise(e.cwd))return;let a=this.configuration.get("preferAggregateCacheInfo"),n=0,u=null;for(let A of await ae.readdirPromise(e.cwd)){if(o.has(A))continue;let p=z.resolve(e.cwd,A);e.markedFiles.has(p)||(u=A,e.immutable?r.reportError(56,`${Kt(this.configuration,z.basename(p),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(a?n+=1:r.reportInfo(19,`${Kt(this.configuration,z.basename(p),"magenta")} appears to be unused - removing`),await ae.removePromise(p)))}a&&n!==0&&r.reportInfo(19,n>1?`${n} packages appeared to be unused and were removed`:`${u} appeared to be unused and was removed`)}}});var aE,C0e=dt(()=>{bt();t0();dx();Kl();aE=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let o=this.getRegistryPath();this.isNew=!ae.existsSync(o),this.sendReport(r),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){dd(this.values,e).add(r)}reportEnumerator(e,r){dd(this.enumerators,e).add(Vs(r))}reportHit(e,r="*"){let o=Ky(this.hits,e),a=Df(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return z.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=ae.readJsonSync(r)}catch{o={}}let a=Date.now(),n=this.configuration.get("telemetryInterval")*24*60*60*1e3,A=(o.lastUpdate??a+n+Math.floor(n*Math.random()))+n;if(A>a&&o.lastUpdate!=null)return;try{ae.mkdirSync(z.dirname(r),{recursive:!0}),ae.writeJsonSync(r,{lastUpdate:a})}catch{return}if(A>a||!o.blocks)return;let p=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,h=E=>Y4(p,E,{configuration:this.configuration}).catch(()=>{});for(let[E,w]of Object.entries(o.blocks??{})){if(Object.keys(w).length===0)continue;let v=w;v.userId=E,v.reportType="primary";for(let R of Object.keys(v.enumerators??{}))v.enumerators[R]=v.enumerators[R].length;h(v);let b=new Map,C=20;for(let[R,L]of Object.entries(v.values))L.length>0&&b.set(R,L.slice(0,C));for(;b.size>0;){let R={};R.userId=E,R.reportType="secondary",R.metrics={};for(let[L,_]of b)R.metrics[L]=_.shift(),_.length===0&&b.delete(L);h(R)}}}applyChanges(){let e=this.getRegistryPath(),r;try{r=ae.readJsonSync(e)}catch{r={}}let o=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[o]=a[o]??{};for(let u of this.hits.keys()){let A=n.hits=n.hits??{},p=A[u]=A[u]??{};for(let[h,E]of this.hits.get(u))p[h]=(p[h]??0)+E}for(let u of["values","enumerators"])for(let A of this[u].keys()){let p=n[u]=n[u]??{};p[A]=[...new Set([...p[A]??[],...this[u].get(A)??[]])]}ae.mkdirSync(z.dirname(e),{recursive:!0}),ae.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var G1={};Yt(G1,{BuildType:()=>qb,Cache:()=>Ur,Configuration:()=>Xe,DEFAULT_LOCK_FILENAME:()=>eU,DEFAULT_RC_FILENAME:()=>$4,FormatType:()=>lce,InstallMode:()=>gl,LegacyMigrationResolver:()=>nE,LightReport:()=>pA,LinkType:()=>zy,LockfileResolver:()=>iE,Manifest:()=>Nt,MessageName:()=>dr,MultiFetcher:()=>fC,PackageExtensionStatus:()=>mL,PackageExtensionType:()=>dL,Project:()=>St,ProjectLookup:()=>nU,Report:()=>Js,ReportError:()=>Vt,SettingsType:()=>d1,StreamReport:()=>Et,TAG_REGEXP:()=>QC,TelemetryManager:()=>aE,ThrowReport:()=>xi,VirtualFetcher:()=>pC,WindowsLinkType:()=>Bx,Workspace:()=>oE,WorkspaceFetcher:()=>gC,WorkspaceResolver:()=>Gn,YarnVersion:()=>On,execUtils:()=>Mr,folderUtils:()=>UP,formatUtils:()=>ye,hashUtils:()=>bn,httpUtils:()=>ln,miscUtils:()=>Ye,nodeUtils:()=>As,parseMessageName:()=>$D,scriptUtils:()=>sn,semverUtils:()=>Tr,stringifyMessageName:()=>Vu,structUtils:()=>Y,tgzUtils:()=>Ji,treeUtils:()=>Zo});var Ke=dt(()=>{yx();_P();Jl();t0();dx();Kl();g1();DU();n0();Ks();gpe();wpe();vpe();m1();m1();Dpe();l_();Spe();c_();uC();eS();yM();y0e();Xl();Mx();C0e();w_();EM();IM();Dd();B_();wU();vne()});var D0e=U(($3t,Y1)=>{"use strict";var $ut=process.env.TERM_PROGRAM==="Hyper",eAt=process.platform==="win32",w0e=process.platform==="linux",Q_={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},B0e=Object.assign({},Q_,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),v0e=Object.assign({},Q_,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:w0e?"\u25B8":"\u276F",pointerSmall:w0e?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Y1.exports=eAt&&!$ut?B0e:v0e;Reflect.defineProperty(Y1.exports,"common",{enumerable:!1,value:Q_});Reflect.defineProperty(Y1.exports,"windows",{enumerable:!1,value:B0e});Reflect.defineProperty(Y1.exports,"other",{enumerable:!1,value:v0e})});var Xc=U((e_t,k_)=>{"use strict";var tAt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),rAt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,S0e=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let u=n.open=`\x1B[${n.codes[0]}m`,A=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(A)&&(h=h.replace(p,A+u));let w=u+h+A;return E?w.replace(/\r*\n/g,`${A}$&${u}`):w},n},r=(n,u,A)=>typeof n=="function"?n(u):n.wrap(u,A),o=(n,u)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let A=""+n,p=A.includes(` 210`+Ba(r)}async persistLockfile(){let e=J.join(this.cwd,this.configuration.get("lockfileFilename")),r="";try{r=await oe.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=Og(r,o);a!==r&&(await oe.writeFilePromise(e,a),this.lockFileChecksum=m0e(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(S_))e.push(...u);let r=(0,Jb.default)(this,e),o=P_.default.serialize(r),a=Vs(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await oe.mkdirPromise(J.dirname(n),{recursive:!0}),await oe.writeFilePromise(n,await Zut(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await $ut(await oe.readFilePromise(a));n=P_.default.deserialize(u),this.installStateChecksum=Vs(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,Jb.default)(n,S_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,Jb.default)(n,S_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new xi}),await this.persistInstallStateFile()}async persist(){let e=(0,zb.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return;let o=new Set([".gitignore"]);if(!kM(e.cwd,this.cwd)||!await oe.existsPromise(e.cwd))return;let a=this.configuration.get("preferAggregateCacheInfo"),n=0,u=null;for(let A of await oe.readdirPromise(e.cwd)){if(o.has(A))continue;let p=J.resolve(e.cwd,A);e.markedFiles.has(p)||(u=A,e.immutable?r.reportError(56,`${Kt(this.configuration,J.basename(p),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(a?n+=1:r.reportInfo(19,`${Kt(this.configuration,J.basename(p),"magenta")} appears to be unused - removing`),await oe.removePromise(p)))}a&&n!==0&&r.reportInfo(19,n>1?`${n} packages appeared to be unused and were removed`:`${u} appeared to be unused and was removed`)}}});var aC,C0e=dt(()=>{St();n0();yx();Vl();aC=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let o=this.getRegistryPath();this.isNew=!oe.existsSync(o),this.sendReport(r),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){md(this.values,e).add(r)}reportEnumerator(e,r){md(this.enumerators,e).add(Vs(r))}reportHit(e,r="*"){let o=Ky(this.hits,e),a=Sf(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return J.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=oe.readJsonSync(r)}catch{o={}}let a=Date.now(),n=this.configuration.get("telemetryInterval")*24*60*60*1e3,A=(o.lastUpdate??a+n+Math.floor(n*Math.random()))+n;if(A>a&&o.lastUpdate!=null)return;try{oe.mkdirSync(J.dirname(r),{recursive:!0}),oe.writeJsonSync(r,{lastUpdate:a})}catch{return}if(A>a||!o.blocks)return;let p=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,h=C=>V4(p,C,{configuration:this.configuration}).catch(()=>{});for(let[C,w]of Object.entries(o.blocks??{})){if(Object.keys(w).length===0)continue;let v=w;v.userId=C,v.reportType="primary";for(let R of Object.keys(v.enumerators??{}))v.enumerators[R]=v.enumerators[R].length;h(v);let b=new Map,E=20;for(let[R,L]of Object.entries(v.values))L.length>0&&b.set(R,L.slice(0,E));for(;b.size>0;){let R={};R.userId=C,R.reportType="secondary",R.metrics={};for(let[L,_]of b)R.metrics[L]=_.shift(),_.length===0&&b.delete(L);h(R)}}}applyChanges(){let e=this.getRegistryPath(),r;try{r=oe.readJsonSync(e)}catch{r={}}let o=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[o]=a[o]??{};for(let u of this.hits.keys()){let A=n.hits=n.hits??{},p=A[u]=A[u]??{};for(let[h,C]of this.hits.get(u))p[h]=(p[h]??0)+C}for(let u of["values","enumerators"])for(let A of this[u].keys()){let p=n[u]=n[u]??{};p[A]=[...new Set([...p[A]??[],...this[u].get(A)??[]])]}oe.mkdirSync(J.dirname(e),{recursive:!0}),oe.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var Y1={};Yt(Y1,{BuildType:()=>Gb,Cache:()=>Ur,Configuration:()=>Xe,DEFAULT_LOCK_FILENAME:()=>rU,DEFAULT_RC_FILENAME:()=>tU,FormatType:()=>uce,InstallMode:()=>dl,LEGACY_PLUGINS:()=>m1,LegacyMigrationResolver:()=>nC,LightReport:()=>pA,LinkType:()=>zy,LockfileResolver:()=>iC,Manifest:()=>Nt,MessageName:()=>dr,MultiFetcher:()=>fE,PackageExtensionStatus:()=>EL,PackageExtensionType:()=>yL,Project:()=>Pt,ProjectLookup:()=>sU,Report:()=>Js,ReportError:()=>Vt,SettingsType:()=>y1,StreamReport:()=>Ct,TAG_REGEXP:()=>QE,TelemetryManager:()=>aC,ThrowReport:()=>xi,VirtualFetcher:()=>pE,WindowsLinkType:()=>Dx,Workspace:()=>oC,WorkspaceFetcher:()=>gE,WorkspaceResolver:()=>Gn,YarnVersion:()=>On,execUtils:()=>Mr,folderUtils:()=>HP,formatUtils:()=>ye,hashUtils:()=>bn,httpUtils:()=>ln,miscUtils:()=>We,nodeUtils:()=>As,parseMessageName:()=>tS,scriptUtils:()=>sn,semverUtils:()=>Tr,stringifyMessageName:()=>Vu,structUtils:()=>Y,tgzUtils:()=>Ji,treeUtils:()=>$o});var Ke=dt(()=>{Cx();qP();zl();n0();yx();Vl();d1();PU();s0();Ks();mpe();vpe();Spe();E1();E1();Ppe();u_();xpe();A_();uE();rS();CM();E0e();Zl();_x();C0e();v_();wM();BM();Sd();D_();vU();Sne()});var S0e=U((i_t,V1)=>{"use strict";var nAt=process.env.TERM_PROGRAM==="Hyper",iAt=process.platform==="win32",B0e=process.platform==="linux",F_={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},v0e=Object.assign({},F_,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),D0e=Object.assign({},F_,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:B0e?"\u25B8":"\u276F",pointerSmall:B0e?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});V1.exports=iAt&&!nAt?v0e:D0e;Reflect.defineProperty(V1.exports,"common",{enumerable:!1,value:F_});Reflect.defineProperty(V1.exports,"windows",{enumerable:!1,value:v0e});Reflect.defineProperty(V1.exports,"other",{enumerable:!1,value:D0e})});var Zc=U((s_t,R_)=>{"use strict";var sAt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),oAt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,P0e=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let u=n.open=`\x1B[${n.codes[0]}m`,A=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,C)=>{h.includes(A)&&(h=h.replace(p,A+u));let w=u+h+A;return C?w.replace(/\r*\n/g,`${A}$&${u}`):w},n},r=(n,u,A)=>typeof n=="function"?n(u):n.wrap(u,A),o=(n,u)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let A=""+n,p=A.includes(`
211`),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>o(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=rAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!tAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=D0e(),t.define=a,t};k_.exports=S0e();k_.exports.create=S0e});var Fo=U($r=>{"use strict";var nAt=Object.prototype.toString,ac=Xc(),P0e=!1,F_=[],x0e={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};$r.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);$r.hasColor=t=>!!t&&ac.hasColor(t);var zb=$r.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);$r.nativeType=t=>nAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");$r.isAsyncFn=t=>$r.nativeType(t)==="asyncfunction";$r.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";$r.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;$r.scrollDown=(t=[])=>[...t.slice(1),t[0]];$r.scrollUp=(t=[])=>[t.pop(),...t];$r.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index<o.index?-1:0),e};$r.swap=(t,e,r)=>{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};$r.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};$r.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};$r.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=` 211`),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=C=>o(C,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=oAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!sAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=S0e(),t.define=a,t};R_.exports=P0e();R_.exports.create=P0e});var Fo=U($r=>{"use strict";var aAt=Object.prototype.toString,lc=Zc(),x0e=!1,T_=[],b0e={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};$r.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);$r.hasColor=t=>!!t&&lc.hasColor(t);var $b=$r.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);$r.nativeType=t=>aAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");$r.isAsyncFn=t=>$r.nativeType(t)==="asyncfunction";$r.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";$r.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;$r.scrollDown=(t=[])=>[...t.slice(1),t[0]];$r.scrollUp=(t=[])=>[t.pop(),...t];$r.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index<o.index?-1:0),e};$r.swap=(t,e,r)=>{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};$r.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};$r.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};$r.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=`
212`+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(o)};$r.unmute=t=>{let e=t.stack.find(o=>ac.keys.color.includes(o));return e?ac[e]:t.stack.find(o=>o.slice(2)==="bg")?ac[e.slice(2)]:o=>o};$r.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";$r.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>ac.keys.color.includes(o));if(e){let o=ac["bg"+$r.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?ac[r.slice(2).toLowerCase()]||t:ac.none};$r.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>ac.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return ac[x0e[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=x0e[o];return a&&ac["bg"+$r.pascal(a)]||t}return ac.none};$r.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};$r.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!$r.isObject(A)&&n<u.length-1&&(A={}),o[a]=A},t);$r.get=(t={},e="",r)=>{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};$r.mixin=(t,e)=>{if(!zb(t))return e;if(!zb(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&zb(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);zb(a.value)?t[r]=$r.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};$r.merge=(...t)=>{let e={};for(let r of t)$r.mixin(e,r);return e};$r.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?$r.define(t,o,a.bind(e)):$r.define(t,o,a)}};$r.onExit=t=>{let e=(r,o)=>{P0e||(P0e=!0,F_.forEach(a=>a()),r===!0&&process.exit(128+o))};F_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),F_.push(t)};$r.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};$r.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var b0e=U(uE=>{"use strict";uE.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};uE.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};uE.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};uE.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};uE.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var F0e=U((n_t,k0e)=>{"use strict";var Q0e=Ie("readline"),iAt=b0e(),sAt=/^(?:\x1b)([a-zA-Z0-9])$/,oAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,aAt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function lAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function cAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var Xb=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===` 212`+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(C=>C.replace(/\n$/,"")),e.padEnd&&(h=h.map(C=>C.padEnd(a," "))),e.padStart&&(h=h.map(C=>C.padStart(a," "))),r+h.join(o)};$r.unmute=t=>{let e=t.stack.find(o=>lc.keys.color.includes(o));return e?lc[e]:t.stack.find(o=>o.slice(2)==="bg")?lc[e.slice(2)]:o=>o};$r.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";$r.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>lc.keys.color.includes(o));if(e){let o=lc["bg"+$r.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?lc[r.slice(2).toLowerCase()]||t:lc.none};$r.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>lc.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return lc[b0e[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=b0e[o];return a&&lc["bg"+$r.pascal(a)]||t}return lc.none};$r.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};$r.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!$r.isObject(A)&&n<u.length-1&&(A={}),o[a]=A},t);$r.get=(t={},e="",r)=>{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};$r.mixin=(t,e)=>{if(!$b(t))return e;if(!$b(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&$b(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);$b(a.value)?t[r]=$r.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};$r.merge=(...t)=>{let e={};for(let r of t)$r.mixin(e,r);return e};$r.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?$r.define(t,o,a.bind(e)):$r.define(t,o,a)}};$r.onExit=t=>{let e=(r,o)=>{x0e||(x0e=!0,T_.forEach(a=>a()),r===!0&&process.exit(128+o))};T_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),T_.push(t)};$r.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};$r.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var Q0e=U(uC=>{"use strict";uC.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};uC.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};uC.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};uC.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};uC.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var R0e=U((l_t,F0e)=>{"use strict";var k0e=Ie("readline"),lAt=Q0e(),cAt=/^(?:\x1b)([a-zA-Z0-9])$/,uAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,AAt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function fAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function pAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var eQ=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===`
213`)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+"a".charCodeAt(0)-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=sAt.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=oAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=aAt[n],o.shift=lAt(n)||o.shift,o.ctrl=cAt(n)||o.ctrl}return o};Xb.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=Q0e.createInterface({terminal:!0,input:r});Q0e.emitKeypressEvents(r,o);let a=(A,p)=>e(A,Xb(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};Xb.action=(t,e,r)=>{let o={...iAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};k0e.exports=Xb});var T0e=U((i_t,R0e)=>{"use strict";R0e.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(!!e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),uAt(t,r,o)}};function uAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var L0e=U((s_t,N0e)=>{"use strict";var{define:AAt,width:fAt}=Fo(),R_=class{constructor(e){let r=e.options;AAt(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=fAt(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};N0e.exports=R_});var M0e=U((o_t,O0e)=>{"use strict";var T_=Fo(),Xs=Xc(),N_={default:Xs.noop,noop:Xs.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||T_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||T_.complement(this.primary)},primary:Xs.cyan,success:Xs.green,danger:Xs.magenta,strong:Xs.bold,warning:Xs.yellow,muted:Xs.dim,disabled:Xs.gray,dark:Xs.dim.gray,underline:Xs.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};N_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(Xs.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(Xs.visible=t.styles.visible);let e=T_.merge({},N_,t.styles);delete e.merge;for(let r of Object.keys(Xs))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Xs[r]});for(let r of Object.keys(Xs.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Xs[r]});return e};O0e.exports=N_});var _0e=U((a_t,U0e)=>{"use strict";var L_=process.platform==="win32",Kf=Xc(),pAt=Fo(),O_={...Kf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Kf.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Kf.symbols.question,submitted:Kf.symbols.check,cancelled:Kf.symbols.cross},separator:{pending:Kf.symbols.pointerSmall,submitted:Kf.symbols.middot,cancelled:Kf.symbols.middot},radio:{off:L_?"( )":"\u25EF",on:L_?"(*)":"\u25C9",disabled:L_?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};O_.merge=t=>{let e=pAt.merge({},Kf.symbols,O_,t.symbols);return delete e.merge,e};U0e.exports=O_});var q0e=U((l_t,H0e)=>{"use strict";var hAt=M0e(),gAt=_0e(),dAt=Fo();H0e.exports=t=>{t.options=dAt.merge({},t.options.theme,t.options),t.symbols=gAt.merge(t.options),t.styles=hAt.merge(t.options)}});var K0e=U((W0e,Y0e)=>{"use strict";var j0e=process.env.TERM_PROGRAM==="Apple_Terminal",mAt=Xc(),M_=Fo(),Zc=Y0e.exports=W0e,Bi="\x1B[",G0e="\x07",U_=!1,v0=Zc.code={bell:G0e,beep:G0e,beginning:`${Bi}G`,down:`${Bi}J`,esc:Bi,getPosition:`${Bi}6n`,hide:`${Bi}?25l`,line:`${Bi}2K`,lineEnd:`${Bi}K`,lineStart:`${Bi}1K`,restorePosition:Bi+(j0e?"8":"u"),savePosition:Bi+(j0e?"7":"s"),screen:`${Bi}2J`,show:`${Bi}?25h`,up:`${Bi}1J`},Yd=Zc.cursor={get hidden(){return U_},hide(){return U_=!0,v0.hide},show(){return U_=!1,v0.show},forward:(t=1)=>`${Bi}${t}C`,backward:(t=1)=>`${Bi}${t}D`,nextLine:(t=1)=>`${Bi}E`.repeat(t),prevLine:(t=1)=>`${Bi}F`.repeat(t),up:(t=1)=>t?`${Bi}${t}A`:"",down:(t=1)=>t?`${Bi}${t}B`:"",right:(t=1)=>t?`${Bi}${t}C`:"",left:(t=1)=>t?`${Bi}${t}D`:"",to(t,e){return e?`${Bi}${e+1};${t+1}H`:`${Bi}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Yd.left(-t):t>0?Yd.right(t):"",r+=e<0?Yd.up(-e):e>0?Yd.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:o,input:a,prompt:n,size:u,value:A}=t;if(o=M_.isPrimitive(o)?String(o):"",a=M_.isPrimitive(a)?String(a):"",A=M_.isPrimitive(A)?String(A):"",u){let p=Zc.cursor.up(u)+Zc.cursor.to(n.length),h=a.length-r;return h>0&&(p+=Zc.cursor.left(h)),p}if(A||e){let p=!a&&!!o?-o.length:-a.length+r;return e&&(p-=e.length),a===""&&o&&!n.includes(o)&&(p+=o.length),Zc.cursor.move(p)}}},__=Zc.erase={screen:v0.screen,up:v0.up,down:v0.down,line:v0.line,lineEnd:v0.lineEnd,lineStart:v0.lineStart,lines(t){let e="";for(let r=0;r<t;r++)e+=Zc.erase.line+(r<t-1?Zc.cursor.up(1):"");return t&&(e+=Zc.code.beginning),e}};Zc.clear=(t="",e=process.stdout.columns)=>{if(!e)return __.line+Yd.to(0);let r=n=>[...mAt.unstyle(n)].length,o=t.split(/\r?\n/),a=0;for(let n of o)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(__.line+Yd.prevLine()).repeat(a-1)+__.line+Yd.to(0)}});var AE=U((c_t,J0e)=>{"use strict";var yAt=Ie("events"),V0e=Xc(),H_=F0e(),CAt=T0e(),EAt=L0e(),IAt=q0e(),Ra=Fo(),Kd=K0e(),K1=class extends yAt{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,IAt(this),CAt(this),this.state=new EAt(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=BAt(this.options.margin),this.setMaxListeners(0),wAt(this)}async keypress(e,r={}){this.keypressed=!0;let o=H_.action(e,H_(e,r),this.options.actions);this.state.keypress=o,this.emit("keypress",e,o),this.emit("state",this.state.clone());let a=this.options[o.action]||this[o.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,o);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Kd.code.beep)}cursorHide(){this.stdout.write(Kd.cursor.hide()),Ra.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Kd.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Kd.cursor.down(e)+Kd.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:o}=this.sections(),{cursor:a,initial:n="",input:u="",value:A=""}=this,p=this.state.size=o.length,h={after:r,cursor:a,initial:n,input:u,prompt:e,size:p,value:A},E=Kd.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:o}=this.state;o=V0e.unstyle(o);let a=V0e.unstyle(e),n=a.indexOf(o),u=a.slice(0,n),p=a.slice(n).split(` 213`)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+"a".charCodeAt(0)-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=cAt.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=uAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=AAt[n],o.shift=fAt(n)||o.shift,o.ctrl=pAt(n)||o.ctrl}return o};eQ.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=k0e.createInterface({terminal:!0,input:r});k0e.emitKeypressEvents(r,o);let a=(A,p)=>e(A,eQ(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};eQ.action=(t,e,r)=>{let o={...lAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};F0e.exports=eQ});var N0e=U((c_t,T0e)=>{"use strict";T0e.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(!!e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),hAt(t,r,o)}};function hAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var O0e=U((u_t,L0e)=>{"use strict";var{define:gAt,width:dAt}=Fo(),N_=class{constructor(e){let r=e.options;gAt(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=dAt(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};L0e.exports=N_});var U0e=U((A_t,M0e)=>{"use strict";var L_=Fo(),Xs=Zc(),O_={default:Xs.noop,noop:Xs.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||L_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||L_.complement(this.primary)},primary:Xs.cyan,success:Xs.green,danger:Xs.magenta,strong:Xs.bold,warning:Xs.yellow,muted:Xs.dim,disabled:Xs.gray,dark:Xs.dim.gray,underline:Xs.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};O_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(Xs.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(Xs.visible=t.styles.visible);let e=L_.merge({},O_,t.styles);delete e.merge;for(let r of Object.keys(Xs))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Xs[r]});for(let r of Object.keys(Xs.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Xs[r]});return e};M0e.exports=O_});var H0e=U((f_t,_0e)=>{"use strict";var M_=process.platform==="win32",Jf=Zc(),mAt=Fo(),U_={...Jf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Jf.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Jf.symbols.question,submitted:Jf.symbols.check,cancelled:Jf.symbols.cross},separator:{pending:Jf.symbols.pointerSmall,submitted:Jf.symbols.middot,cancelled:Jf.symbols.middot},radio:{off:M_?"( )":"\u25EF",on:M_?"(*)":"\u25C9",disabled:M_?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};U_.merge=t=>{let e=mAt.merge({},Jf.symbols,U_,t.symbols);return delete e.merge,e};_0e.exports=U_});var j0e=U((p_t,q0e)=>{"use strict";var yAt=U0e(),EAt=H0e(),CAt=Fo();q0e.exports=t=>{t.options=CAt.merge({},t.options.theme,t.options),t.symbols=EAt.merge(t.options),t.styles=yAt.merge(t.options)}});var V0e=U((Y0e,K0e)=>{"use strict";var G0e=process.env.TERM_PROGRAM==="Apple_Terminal",IAt=Zc(),__=Fo(),$c=K0e.exports=Y0e,Bi="\x1B[",W0e="\x07",H_=!1,D0=$c.code={bell:W0e,beep:W0e,beginning:`${Bi}G`,down:`${Bi}J`,esc:Bi,getPosition:`${Bi}6n`,hide:`${Bi}?25l`,line:`${Bi}2K`,lineEnd:`${Bi}K`,lineStart:`${Bi}1K`,restorePosition:Bi+(G0e?"8":"u"),savePosition:Bi+(G0e?"7":"s"),screen:`${Bi}2J`,show:`${Bi}?25h`,up:`${Bi}1J`},Kd=$c.cursor={get hidden(){return H_},hide(){return H_=!0,D0.hide},show(){return H_=!1,D0.show},forward:(t=1)=>`${Bi}${t}C`,backward:(t=1)=>`${Bi}${t}D`,nextLine:(t=1)=>`${Bi}E`.repeat(t),prevLine:(t=1)=>`${Bi}F`.repeat(t),up:(t=1)=>t?`${Bi}${t}A`:"",down:(t=1)=>t?`${Bi}${t}B`:"",right:(t=1)=>t?`${Bi}${t}C`:"",left:(t=1)=>t?`${Bi}${t}D`:"",to(t,e){return e?`${Bi}${e+1};${t+1}H`:`${Bi}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Kd.left(-t):t>0?Kd.right(t):"",r+=e<0?Kd.up(-e):e>0?Kd.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:o,input:a,prompt:n,size:u,value:A}=t;if(o=__.isPrimitive(o)?String(o):"",a=__.isPrimitive(a)?String(a):"",A=__.isPrimitive(A)?String(A):"",u){let p=$c.cursor.up(u)+$c.cursor.to(n.length),h=a.length-r;return h>0&&(p+=$c.cursor.left(h)),p}if(A||e){let p=!a&&!!o?-o.length:-a.length+r;return e&&(p-=e.length),a===""&&o&&!n.includes(o)&&(p+=o.length),$c.cursor.move(p)}}},q_=$c.erase={screen:D0.screen,up:D0.up,down:D0.down,line:D0.line,lineEnd:D0.lineEnd,lineStart:D0.lineStart,lines(t){let e="";for(let r=0;r<t;r++)e+=$c.erase.line+(r<t-1?$c.cursor.up(1):"");return t&&(e+=$c.code.beginning),e}};$c.clear=(t="",e=process.stdout.columns)=>{if(!e)return q_.line+Kd.to(0);let r=n=>[...IAt.unstyle(n)].length,o=t.split(/\r?\n/),a=0;for(let n of o)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(q_.line+Kd.prevLine()).repeat(a-1)+q_.line+Kd.to(0)}});var AC=U((h_t,z0e)=>{"use strict";var wAt=Ie("events"),J0e=Zc(),j_=R0e(),BAt=N0e(),vAt=O0e(),DAt=j0e(),Ta=Fo(),Vd=V0e(),J1=class extends wAt{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,DAt(this),BAt(this),this.state=new vAt(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=PAt(this.options.margin),this.setMaxListeners(0),SAt(this)}async keypress(e,r={}){this.keypressed=!0;let o=j_.action(e,j_(e,r),this.options.actions);this.state.keypress=o,this.emit("keypress",e,o),this.emit("state",this.state.clone());let a=this.options[o.action]||this[o.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,o);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Vd.code.beep)}cursorHide(){this.stdout.write(Vd.cursor.hide()),Ta.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Vd.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Vd.cursor.down(e)+Vd.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:o}=this.sections(),{cursor:a,initial:n="",input:u="",value:A=""}=this,p=this.state.size=o.length,h={after:r,cursor:a,initial:n,input:u,prompt:e,size:p,value:A},C=Vd.cursor.restore(h);C&&this.stdout.write(C)}sections(){let{buffer:e,input:r,prompt:o}=this.state;o=J0e.unstyle(o);let a=J0e.unstyle(e),n=a.indexOf(o),u=a.slice(0,n),p=a.slice(n).split(`
214`),h=p[0],E=p[p.length-1],v=(o+(r?" "+r:"")).length,b=v<h.length?h.slice(v+1):"";return{header:u,prompt:h,after:b,rest:p.slice(1),last:E}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let r=` 214`),h=p[0],C=p[p.length-1],v=(o+(r?" "+r:"")).length,b=v<h.length?h.slice(v+1):"";return{header:u,prompt:h,after:b,rest:p.slice(1),last:C}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let r=`
215`+this.symbols.pointer+" ";typeof e=="string"?r+=e.trim():r+="Invalid input",this.state.error=` 215`+this.symbols.pointer+" ";typeof e=="string"?r+=e.trim():r+="Invalid input",this.state.error=`
216`+this.styles.danger(r),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),r=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Kd.cursor.down(e.rest.length)),this.write(` 216`+this.styles.danger(r),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),r=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Vd.cursor.down(e.rest.length)),this.write(`
217`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=H_.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:r,result:o}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let w=await this.resolve(E,n,r,o);return!w&&r&&r[e]?this.resolve(h,n,r,o):w}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,Ra.isObject(e)&&(e=e[o.status]||e.pending),Ra.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Ra.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return Ra.isObject(n)&&(n=n[o.status]||n.pending),Ra.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&Ra.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=Ra.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&Ra.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return Ra.hasColor(A)?A:u(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Ra.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Ra.resolve(this,e,...r)}get base(){return K1.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Ra.height(this.stdout,25)}get width(){return this.options.columns||Ra.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function wAt(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function BAt(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` 217`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=j_.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:r,result:o}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],C=r&&r[e]!=null?r[e]:await h;if(C==="")return C;let w=await this.resolve(C,n,r,o);return!w&&r&&r[e]?this.resolve(h,n,r,o):w}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,Ta.isObject(e)&&(e=e[o.status]||e.pending),Ta.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Ta.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return Ta.isObject(n)&&(n=n[o.status]||n.pending),Ta.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&Ta.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=Ta.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&Ta.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return Ta.hasColor(A)?A:u(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Ta.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Ta.resolve(this,e,...r)}get base(){return J1.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Ta.height(this.stdout,25)}get width(){return this.options.columns||Ta.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function SAt(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function PAt(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?`
218`:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}J0e.exports=K1});var Z0e=U((u_t,X0e)=>{"use strict";var vAt=Fo(),z0e={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return z0e.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};X0e.exports=(t,e={})=>{let r=vAt.merge({},z0e,e.roles);return r[t]||r.default}});var V1=U((A_t,the)=>{"use strict";var DAt=Xc(),SAt=AE(),PAt=Z0e(),Zb=Fo(),{reorder:q_,scrollUp:xAt,scrollDown:bAt,isObject:$0e,swap:QAt}=Zb,j_=class extends SAt{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");$0e(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p<u.length;p++){let h=u[p]=await this.toChoice(u[p],a++,A);o.push(h),h.choices&&await n(h.choices,h)}return o};return n(e,r).then(u=>(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=PAt(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,Zb.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,DAt.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(r=>r.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let o=e.parent;for(;o;){let a=o.choices.filter(n=>this.isDisabled(n));o.enabled=a.every(n=>n.enabled===!0),o=o.parent}return ehe(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=o=>{let a=Number(o);if(a>this.choices.length-1)return this.alert();let n=this.focused,u=this.choices.find(A=>a===A.index);if(!u.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(u)===-1){let A=q_(this.choices),p=A.indexOf(u);if(n.index>p){let h=A.slice(p,p+this.limit),E=A.filter(w=>!h.includes(w));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=A.slice(h).concat(A.slice(0,h))}}return this.index=this.choices.indexOf(u),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(o=>{let a=this.choices.length,n=this.num,u=(A=!1,p)=>{clearTimeout(this.numberTimeout),A&&(p=r(n)),this.num="",o(p)};if(n==="0"||n.length===1&&Number(n+"0")>a)return u(!0);if(Number(n)>a)return u(!1,this.alert());this.numberTimeout=setTimeout(()=>u(!0),this.delay)})}home(){return this.choices=q_(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=q_(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===0?this.alert():e>r&&o===0?this.scrollUp():(this.index=(o-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===r-1?this.alert():e>r&&o===r-1?this.scrollDown():(this.index=(o+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=xAt(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=bAt(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){QAt(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(o=>e[o]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(o=>!this.isDisabled(o));return e.enabled&&r.every(o=>this.isEnabled(o))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((o,a)=>(o[a]=this.find(a,r),o),{})}filter(e,r){let a=typeof e=="function"?e:(A,p)=>[A.name,p].includes(e),u=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?u.map(A=>A[r]):u}find(e,r){if($0e(e))return r?e[r]:e;let a=typeof e=="function"?e:(u,A)=>[u.name,A].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(u=>u.newChoice))return this.alert();let{reorder:r,sort:o}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&o!==!0&&(n=Zb.reorder(n)),this.value=a?n.map(u=>u.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(o=>o.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let o=this.find(r);o&&(this.initial=o.index,this.focus(o,!0))}}}get choices(){return ehe(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:o}=this,a=e.limit||this._limit||r.limit||o.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function ehe(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Zb.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let o=r.choices.filter(a=>!t.isDisabled(a));r.enabled=o.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}the.exports=j_});var D0=U((f_t,rhe)=>{"use strict";var kAt=V1(),G_=Fo(),W_=class extends kAt{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let o=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!G_.hasColor(o)&&(o=this.styles.strong(o)),this.resolve(o,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),u=await this.resolve(e.hint,this.state,e,r);u&&!G_.hasColor(u)&&(u=this.styles.muted(u));let A=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],A+a+n,p,this.margin[1],u].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(G_.hasColor(p)||(p=this.styles.disabled(p)),h()):(o&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,u)=>await this.renderChoice(n,u)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let o=this.margin[0]+r.join(` 218`:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}z0e.exports=J1});var $0e=U((g_t,Z0e)=>{"use strict";var xAt=Fo(),X0e={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return X0e.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};Z0e.exports=(t,e={})=>{let r=xAt.merge({},X0e,e.roles);return r[t]||r.default}});var z1=U((d_t,rhe)=>{"use strict";var bAt=Zc(),QAt=AC(),kAt=$0e(),tQ=Fo(),{reorder:G_,scrollUp:FAt,scrollDown:RAt,isObject:ehe,swap:TAt}=tQ,W_=class extends QAt{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");ehe(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p<u.length;p++){let h=u[p]=await this.toChoice(u[p],a++,A);o.push(h),h.choices&&await n(h.choices,h)}return o};return n(e,r).then(u=>(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=kAt(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,tQ.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,bAt.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(r=>r.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let o=e.parent;for(;o;){let a=o.choices.filter(n=>this.isDisabled(n));o.enabled=a.every(n=>n.enabled===!0),o=o.parent}return the(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=o=>{let a=Number(o);if(a>this.choices.length-1)return this.alert();let n=this.focused,u=this.choices.find(A=>a===A.index);if(!u.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(u)===-1){let A=G_(this.choices),p=A.indexOf(u);if(n.index>p){let h=A.slice(p,p+this.limit),C=A.filter(w=>!h.includes(w));this.choices=h.concat(C)}else{let h=p-this.limit+1;this.choices=A.slice(h).concat(A.slice(0,h))}}return this.index=this.choices.indexOf(u),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(o=>{let a=this.choices.length,n=this.num,u=(A=!1,p)=>{clearTimeout(this.numberTimeout),A&&(p=r(n)),this.num="",o(p)};if(n==="0"||n.length===1&&Number(n+"0")>a)return u(!0);if(Number(n)>a)return u(!1,this.alert());this.numberTimeout=setTimeout(()=>u(!0),this.delay)})}home(){return this.choices=G_(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=G_(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===0?this.alert():e>r&&o===0?this.scrollUp():(this.index=(o-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===r-1?this.alert():e>r&&o===r-1?this.scrollDown():(this.index=(o+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=FAt(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=RAt(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){TAt(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(o=>e[o]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(o=>!this.isDisabled(o));return e.enabled&&r.every(o=>this.isEnabled(o))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((o,a)=>(o[a]=this.find(a,r),o),{})}filter(e,r){let a=typeof e=="function"?e:(A,p)=>[A.name,p].includes(e),u=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?u.map(A=>A[r]):u}find(e,r){if(ehe(e))return r?e[r]:e;let a=typeof e=="function"?e:(u,A)=>[u.name,A].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(u=>u.newChoice))return this.alert();let{reorder:r,sort:o}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&o!==!0&&(n=tQ.reorder(n)),this.value=a?n.map(u=>u.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(o=>o.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let o=this.find(r);o&&(this.initial=o.index,this.focus(o,!0))}}}get choices(){return the(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:o}=this,a=e.limit||this._limit||r.limit||o.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function the(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(tQ.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let o=r.choices.filter(a=>!t.isDisabled(a));r.enabled=o.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}rhe.exports=W_});var S0=U((m_t,nhe)=>{"use strict";var NAt=z1(),Y_=Fo(),K_=class extends NAt{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let o=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!Y_.hasColor(o)&&(o=this.styles.strong(o)),this.resolve(o,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),u=await this.resolve(e.hint,this.state,e,r);u&&!Y_.hasColor(u)&&(u=this.styles.muted(u));let A=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],A+a+n,p,this.margin[1],u].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(Y_.hasColor(p)||(p=this.styles.disabled(p)),h()):(o&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,u)=>await this.renderChoice(n,u)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let o=this.margin[0]+r.join(`
219`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].filter(Boolean).join(` 219`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].filter(Boolean).join(`
220`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),w=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,E,w].filter(Boolean).join(` 220`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),C=await this.renderChoices(),w=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!C.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,C,w].filter(Boolean).join(`
221`)),this.write(this.margin[2]),this.restore()}};rhe.exports=W_});var ihe=U((p_t,nhe)=>{"use strict";var FAt=D0(),RAt=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},Y_=class extends FAt{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=RAt(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};nhe.exports=Y_});var V_=U((h_t,she)=>{"use strict";var K_=Fo();she.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=K_.inverse(t.styles.primary),h=R=>p(t.styles.black(R)),E=r,w=" ",v=h(w);if(t.blink&&t.blink.off===!0&&(h=R=>R,v=""),n&&a===0&&o===""&&r==="")return h(w);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=K_.isPrimitive(o)?`${o}`:"",r=K_.isPrimitive(r)?`${r}`:"";let b=o&&o.startsWith(r)&&o!==r,C=b?h(o[r.length]):v;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),C=""),n===!1&&(C=""),b){let R=t.styles.unstyle(E+C);return E+C+A(o.slice(R.length))}return E+C}});var $b=U((g_t,ohe)=>{"use strict";var TAt=Xc(),NAt=D0(),LAt=V_(),J_=class extends NAt{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:E,submitted:w,primary:v,danger:b}=a,C=p,R=this.index===r,L=e.validate||(()=>!0),_=await this.choiceSeparator(e,r),V=e.message;this.align==="right"&&(V=V.padStart(this.longest+1," ")),this.align==="left"&&(V=V.padEnd(this.longest+1," "));let re=this.values[A]=h||u,oe=h?"success":"dark";await L.call(e,re,this.state)!==!0&&(oe="danger");let pe=a[oe],he=pe(await this.indicator(e,r))+(e.pad||""),ve=this.indent(e),ge=()=>[ve,he,V+_,h,C].filter(Boolean).join(" ");if(o.submitted)return V=TAt.unstyle(V),h=w(h),C="",ge();if(e.format)h=await e.format.call(this,h,e,r);else{let le=this.styles.muted;h=LAt(this,{input:h,initial:u,pos:n,showCursor:R,color:le})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[A]=await e.result.call(this,re,e,r)),R&&(V=v(V)),e.error?h+=(h?" ":"")+b(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),ge()}async submit(){return this.value=this.values,super.base.submit.call(this)}};ohe.exports=J_});var z_=U((d_t,lhe)=>{"use strict";var OAt=$b(),MAt=()=>{throw new Error("expected prompt to have a custom authenticate method")},ahe=(t=MAt)=>{class e extends OAt{constructor(o){super(o)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(o){return ahe(o)}}return e};lhe.exports=ahe()});var Ahe=U((m_t,uhe)=>{"use strict";var UAt=z_();function _At(t,e){return t.username===this.options.username&&t.password===this.options.password}var che=(t=_At)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(o){return this.options.showPassword?o:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(o.length))}}];class r extends UAt.create(t){constructor(a){super({...a,choices:e})}static create(a){return che(a)}}return r};uhe.exports=che()});var eQ=U((y_t,fhe)=>{"use strict";var HAt=AE(),{isPrimitive:qAt,hasColor:jAt}=Fo(),X_=class extends HAt{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:o}=this;return o.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return qAt(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return jAt(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=this.styles.muted(this.default),A=[o,n,u,a].filter(Boolean).join(" ");this.state.prompt=A;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),w=await this.error()||await this.hint(),v=await this.footer();w&&!A.includes(w)&&(E+=" "+w),A+=" "+E,this.clear(r),this.write([p,A,v].filter(Boolean).join(` 221`)),this.write(this.margin[2]),this.restore()}};nhe.exports=K_});var she=U((y_t,ihe)=>{"use strict";var LAt=S0(),OAt=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},V_=class extends LAt{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=OAt(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};ihe.exports=V_});var z_=U((E_t,ohe)=>{"use strict";var J_=Fo();ohe.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=J_.inverse(t.styles.primary),h=R=>p(t.styles.black(R)),C=r,w=" ",v=h(w);if(t.blink&&t.blink.off===!0&&(h=R=>R,v=""),n&&a===0&&o===""&&r==="")return h(w);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=J_.isPrimitive(o)?`${o}`:"",r=J_.isPrimitive(r)?`${r}`:"";let b=o&&o.startsWith(r)&&o!==r,E=b?h(o[r.length]):v;if(a!==r.length&&n===!0&&(C=r.slice(0,a)+h(r[a])+r.slice(a+1),E=""),n===!1&&(E=""),b){let R=t.styles.unstyle(C+E);return C+E+A(o.slice(R.length))}return C+E}});var rQ=U((C_t,ahe)=>{"use strict";var MAt=Zc(),UAt=S0(),_At=z_(),X_=class extends UAt{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:C,submitted:w,primary:v,danger:b}=a,E=p,R=this.index===r,L=e.validate||(()=>!0),_=await this.choiceSeparator(e,r),V=e.message;this.align==="right"&&(V=V.padStart(this.longest+1," ")),this.align==="left"&&(V=V.padEnd(this.longest+1," "));let re=this.values[A]=h||u,ae=h?"success":"dark";await L.call(e,re,this.state)!==!0&&(ae="danger");let he=a[ae],pe=he(await this.indicator(e,r))+(e.pad||""),De=this.indent(e),ge=()=>[De,pe,V+_,h,E].filter(Boolean).join(" ");if(o.submitted)return V=MAt.unstyle(V),h=w(h),E="",ge();if(e.format)h=await e.format.call(this,h,e,r);else{let le=this.styles.muted;h=_At(this,{input:h,initial:u,pos:n,showCursor:R,color:le})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[A]=await e.result.call(this,re,e,r)),R&&(V=v(V)),e.error?h+=(h?" ":"")+b(e.error.trim()):e.hint&&(h+=(h?" ":"")+C(e.hint.trim())),ge()}async submit(){return this.value=this.values,super.base.submit.call(this)}};ahe.exports=X_});var Z_=U((I_t,che)=>{"use strict";var HAt=rQ(),qAt=()=>{throw new Error("expected prompt to have a custom authenticate method")},lhe=(t=qAt)=>{class e extends HAt{constructor(o){super(o)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(o){return lhe(o)}}return e};che.exports=lhe()});var fhe=U((w_t,Ahe)=>{"use strict";var jAt=Z_();function GAt(t,e){return t.username===this.options.username&&t.password===this.options.password}var uhe=(t=GAt)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(o){return this.options.showPassword?o:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(o.length))}}];class r extends jAt.create(t){constructor(a){super({...a,choices:e})}static create(a){return uhe(a)}}return r};Ahe.exports=uhe()});var nQ=U((B_t,phe)=>{"use strict";var WAt=AC(),{isPrimitive:YAt,hasColor:KAt}=Fo(),$_=class extends WAt{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:o}=this;return o.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return YAt(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return KAt(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=this.styles.muted(this.default),A=[o,n,u,a].filter(Boolean).join(" ");this.state.prompt=A;let p=await this.header(),h=this.value=this.cast(e),C=await this.format(h),w=await this.error()||await this.hint(),v=await this.footer();w&&!A.includes(w)&&(C+=" "+w),A+=" "+C,this.clear(r),this.write([p,A,v].filter(Boolean).join(`
222`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};fhe.exports=X_});var hhe=U((C_t,phe)=>{"use strict";var GAt=eQ(),Z_=class extends GAt{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};phe.exports=Z_});var dhe=U((E_t,ghe)=>{"use strict";var WAt=D0(),YAt=$b(),fE=YAt.prototype,$_=class extends WAt{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():fE.dispatch.call(this,e,r)}append(e,r){return fE.append.call(this,e,r)}delete(e,r){return fE.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?fE.next.call(this):super.next()}prev(){return this.focused.editable?fE.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?fE.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};ghe.exports=$_});var Vd=U((I_t,mhe)=>{"use strict";var KAt=AE(),VAt=V_(),{isPrimitive:JAt}=Fo(),e8=class extends KAt{constructor(e){super(e),this.initial=JAt(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(` 222`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};phe.exports=$_});var ghe=U((v_t,hhe)=>{"use strict";var VAt=nQ(),e8=class extends VAt{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};hhe.exports=e8});var mhe=U((D_t,dhe)=>{"use strict";var JAt=S0(),zAt=rQ(),fC=zAt.prototype,t8=class extends JAt{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():fC.dispatch.call(this,e,r)}append(e,r){return fC.append.call(this,e,r)}delete(e,r){return fC.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?fC.next.call(this):super.next()}prev(){return this.focused.editable?fC.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?fC.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};dhe.exports=t8});var Jd=U((S_t,yhe)=>{"use strict";var XAt=AC(),ZAt=z_(),{isPrimitive:$At}=Fo(),r8=class extends XAt{constructor(e){super(e),this.initial=$At(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(`
223`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):VAt(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(` 223`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):ZAt(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(`
224`)),this.restore()}};mhe.exports=e8});var Che=U((w_t,yhe)=>{"use strict";var zAt=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),tQ=t=>zAt(t).filter(Boolean);yhe.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:tQ([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:tQ([...n,r]),present:u};case"save":return{past:tQ([...o,r]),present:""};case"remove":return u=tQ(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var r8=U((B_t,Ihe)=>{"use strict";var XAt=Vd(),Ehe=Che(),t8=class extends XAt{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Ehe(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Ehe("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Ihe.exports=t8});var Bhe=U((v_t,whe)=>{"use strict";var ZAt=Vd(),n8=class extends ZAt{format(){return""}};whe.exports=n8});var Dhe=U((D_t,vhe)=>{"use strict";var $At=Vd(),i8=class extends $At{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};vhe.exports=i8});var Phe=U((S_t,She)=>{"use strict";var eft=D0(),s8=class extends eft{constructor(e){super({...e,multiple:!0})}};She.exports=s8});var a8=U((P_t,xhe)=>{"use strict";var tft=Vd(),o8=class extends tft{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return o<this.min-r?this.alert():(this.input=`${o-r}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(r=>this.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};xhe.exports=o8});var Qhe=U((x_t,bhe)=>{bhe.exports=a8()});var Fhe=U((b_t,khe)=>{"use strict";var rft=Vd(),l8=class extends rft{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};khe.exports=l8});var Nhe=U((Q_t,The)=>{"use strict";var nft=Xc(),ift=V1(),Rhe=Fo(),c8=class extends ift{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` 224`)),this.restore()}};yhe.exports=r8});var Che=U((P_t,Ehe)=>{"use strict";var eft=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),iQ=t=>eft(t).filter(Boolean);Ehe.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:iQ([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:iQ([...n,r]),present:u};case"save":return{past:iQ([...o,r]),present:""};case"remove":return u=iQ(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var i8=U((x_t,whe)=>{"use strict";var tft=Jd(),Ihe=Che(),n8=class extends tft{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Ihe(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Ihe("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};whe.exports=n8});var vhe=U((b_t,Bhe)=>{"use strict";var rft=Jd(),s8=class extends rft{format(){return""}};Bhe.exports=s8});var She=U((Q_t,Dhe)=>{"use strict";var nft=Jd(),o8=class extends nft{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Dhe.exports=o8});var xhe=U((k_t,Phe)=>{"use strict";var ift=S0(),a8=class extends ift{constructor(e){super({...e,multiple:!0})}};Phe.exports=a8});var c8=U((F_t,bhe)=>{"use strict";var sft=Jd(),l8=class extends sft{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return o<this.min-r?this.alert():(this.input=`${o-r}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(r=>this.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};bhe.exports=l8});var khe=U((R_t,Qhe)=>{Qhe.exports=c8()});var Rhe=U((T_t,Fhe)=>{"use strict";var oft=Jd(),u8=class extends oft{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Fhe.exports=u8});var Lhe=U((N_t,Nhe)=>{"use strict";var aft=Zc(),lft=z1(),The=Fo(),A8=class extends lft{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||`
225 `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o<this.scale.length;o++)r.scale.push({index:o})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}heading(e,r,o){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(` 225 `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o<this.scale.length;o++)r.scale.push({index:o})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}heading(e,r,o){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(`
226`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!Rhe.hasColor(n)&&(n=this.styles.muted(n));let u=C=>this.margin[3]+C.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),w=this.margin[1]+this.margin[3];this.scaleLength=nft.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-w.length);let b=Rhe.wordWrap(h,{width:this.widths[0],newline:A}).split(` 226`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!The.hasColor(n)&&(n=this.styles.muted(n));let u=E=>this.margin[3]+E.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),C=await this.renderScale(e,r),w=this.margin[1]+this.margin[3];this.scaleLength=aft.unstyle(C).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-w.length);let b=The.wordWrap(h,{width:this.widths[0],newline:A}).split(`
227`).map(C=>u(C)+this.margin[1]);return o&&(E=this.styles.info(E),b=b.map(C=>this.styles.info(C))),b[0]+=E,this.linebreak&&b.push(""),[p+a,b.join(` 227`).map(E=>u(E)+this.margin[1]);return o&&(C=this.styles.info(C),b=b.map(E=>this.styles.info(E))),b[0]+=C,this.linebreak&&b.push(""),[p+a,b.join(`
228`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(` 228`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(`
229`)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),w=await this.renderChoices(),v=await this.footer(),b=this.emptyError;p&&(u+=p),E&&!u.includes(E)&&(u+=" "+E),e&&!p&&!w.trim()&&this.multiple&&b!=null&&(u+=this.styles.danger(b)),this.clear(r),this.write([A,u,h,w,v].filter(Boolean).join(` 229`)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),C=await this.error()||await this.hint(),w=await this.renderChoices(),v=await this.footer(),b=this.emptyError;p&&(u+=p),C&&!u.includes(C)&&(u+=" "+C),e&&!p&&!w.trim()&&this.multiple&&b!=null&&(u+=this.styles.danger(b)),this.clear(r),this.write([A,u,h,w,v].filter(Boolean).join(`
230`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};The.exports=c8});var Mhe=U((k_t,Ohe)=>{"use strict";var Lhe=Xc(),sft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",A8=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=sft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},oft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,w=()=>n[++E],v=()=>n[E+1],b=C=>{C.line=h,u.push(C)};for(b({type:"bos",value:""});E<n.length-1;){let C=w();if(/^[^\S\n ]$/.test(C)){b({type:"text",value:C});continue}if(C===` 230`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Nhe.exports=A8});var Uhe=U((L_t,Mhe)=>{"use strict";var Ohe=Zc(),cft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",p8=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=cft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},uft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let C=-1,w=()=>n[++C],v=()=>n[C+1],b=E=>{E.line=h,u.push(E)};for(b({type:"bos",value:""});C<n.length-1;){let E=w();if(/^[^\S\n ]$/.test(E)){b({type:"text",value:E});continue}if(E===`
231`){b({type:"newline",value:C}),h++;continue}if(C==="\\"){C+=w(),b({type:"text",value:C});continue}if((C==="$"||C==="#"||C==="{")&&v()==="{"){let L=w();C+=L;let _={type:"template",open:C,inner:"",close:"",value:C},V;for(;V=w();){if(V==="}"){v()==="}"&&(V+=w()),_.value+=V,_.close=V;break}V===":"?(_.initial="",_.key=_.inner):_.initial!==void 0&&(_.initial+=V),_.value+=V,_.inner+=V}_.template=_.open+(_.initial||_.inner)+_.close,_.key=_.key||_.inner,e.hasOwnProperty(_.key)&&(_.initial=e[_.key]),_=r(_),b(_),p.push(_.key),o.add(_.key);let re=A.find(oe=>oe.name===_.key);_.field=a.find(oe=>oe.name===_.key),re||(re=new A8(_),A.push(re)),re.lines.push(_.line-1);continue}let R=u[u.length-1];R.type==="text"&&R.line===h?R.value+=C:b({type:"text",value:C})}return b({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};Ohe.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await oft(e,o),A=u8("result",t,e),p=u8("format",t,e),h=u8("validate",t,e,!0),E=t.isValue.bind(t);return async(w={},v=!1)=>{let b=0;w.required=r,w.items=n,w.keys=u,w.output="";let C=async(V,re,oe,pe)=>{let he=await h(V,re,oe,pe);return he===!1?"Invalid field "+oe.name:he};for(let V of a){let re=V.value,oe=V.key;if(V.type!=="template"){re&&(w.output+=re);continue}if(V.type==="template"){let pe=n.find(Pe=>Pe.name===oe);e.required===!0&&w.required.add(pe.name);let he=[pe.input,w.values[pe.value],pe.value,re].find(E),ge=(pe.field||{}).message||V.inner;if(v){let Pe=await C(w.values[oe],w,pe,b);if(Pe&&typeof Pe=="string"||Pe===!1){w.invalid.set(oe,Pe);continue}w.invalid.delete(oe);let g=await A(w.values[oe],w,pe,b);w.output+=Lhe.unstyle(g);continue}pe.placeholder=!1;let le=re;re=await p(re,w,pe,b),he!==re?(w.values[oe]=he,re=t.styles.typing(he),w.missing.delete(ge)):(w.values[oe]=void 0,he=`<${ge}>`,re=t.styles.primary(he),pe.placeholder=!0,w.required.has(oe)&&w.missing.add(ge)),w.missing.has(ge)&&w.validating&&(re=t.styles.warning(he)),w.invalid.has(oe)&&w.validating&&(re=t.styles.danger(he)),b===w.index&&(le!==re?re=t.styles.underline(re):re=t.styles.heading(Lhe.unstyle(re))),b++}re&&(w.output+=re)}let R=w.output.split(` 231`){b({type:"newline",value:E}),h++;continue}if(E==="\\"){E+=w(),b({type:"text",value:E});continue}if((E==="$"||E==="#"||E==="{")&&v()==="{"){let L=w();E+=L;let _={type:"template",open:E,inner:"",close:"",value:E},V;for(;V=w();){if(V==="}"){v()==="}"&&(V+=w()),_.value+=V,_.close=V;break}V===":"?(_.initial="",_.key=_.inner):_.initial!==void 0&&(_.initial+=V),_.value+=V,_.inner+=V}_.template=_.open+(_.initial||_.inner)+_.close,_.key=_.key||_.inner,e.hasOwnProperty(_.key)&&(_.initial=e[_.key]),_=r(_),b(_),p.push(_.key),o.add(_.key);let re=A.find(ae=>ae.name===_.key);_.field=a.find(ae=>ae.name===_.key),re||(re=new p8(_),A.push(re)),re.lines.push(_.line-1);continue}let R=u[u.length-1];R.type==="text"&&R.line===h?R.value+=E:b({type:"text",value:E})}return b({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};Mhe.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await uft(e,o),A=f8("result",t,e),p=f8("format",t,e),h=f8("validate",t,e,!0),C=t.isValue.bind(t);return async(w={},v=!1)=>{let b=0;w.required=r,w.items=n,w.keys=u,w.output="";let E=async(V,re,ae,he)=>{let pe=await h(V,re,ae,he);return pe===!1?"Invalid field "+ae.name:pe};for(let V of a){let re=V.value,ae=V.key;if(V.type!=="template"){re&&(w.output+=re);continue}if(V.type==="template"){let he=n.find(Pe=>Pe.name===ae);e.required===!0&&w.required.add(he.name);let pe=[he.input,w.values[he.value],he.value,re].find(C),ge=(he.field||{}).message||V.inner;if(v){let Pe=await E(w.values[ae],w,he,b);if(Pe&&typeof Pe=="string"||Pe===!1){w.invalid.set(ae,Pe);continue}w.invalid.delete(ae);let g=await A(w.values[ae],w,he,b);w.output+=Ohe.unstyle(g);continue}he.placeholder=!1;let le=re;re=await p(re,w,he,b),pe!==re?(w.values[ae]=pe,re=t.styles.typing(pe),w.missing.delete(ge)):(w.values[ae]=void 0,pe=`<${ge}>`,re=t.styles.primary(pe),he.placeholder=!0,w.required.has(ae)&&w.missing.add(ge)),w.missing.has(ge)&&w.validating&&(re=t.styles.warning(pe)),w.invalid.has(ae)&&w.validating&&(re=t.styles.danger(pe)),b===w.index&&(le!==re?re=t.styles.underline(re):re=t.styles.heading(Ohe.unstyle(re))),b++}re&&(w.output+=re)}let R=w.output.split(`
232`).map(V=>" "+V),L=n.length,_=0;for(let V of n)w.invalid.has(V.name)&&V.lines.forEach(re=>{R[re][0]===" "&&(R[re]=w.styles.danger(w.symbols.bullet)+R[re].slice(1))}),t.isValue(w.values[V.name])&&_++;return w.completed=(_/L*100).toFixed(0),w.output=R.join(` 232`).map(V=>" "+V),L=n.length,_=0;for(let V of n)w.invalid.has(V.name)&&V.lines.forEach(re=>{R[re][0]===" "&&(R[re]=w.styles.danger(w.symbols.bullet)+R[re].slice(1))}),t.isValue(w.values[V.name])&&_++;return w.completed=(_/L*100).toFixed(0),w.output=R.join(`
233`),w.output}};function u8(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var _he=U((F_t,Uhe)=>{"use strict";var aft=Xc(),lft=Mhe(),cft=AE(),f8=class extends cft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await lft(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,` 233`),w.output}};function f8(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var Hhe=U((O_t,_he)=>{"use strict";var Aft=Zc(),fft=Uhe(),pft=AC(),h8=class extends pft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await fft(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,`
234`].find(V=>V!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),w=await this.error()||"",v=await this.hint()||"",b=o?"":await this.interpolate(this.state),C=this.state.key=r[e]||"",R=await this.format(C),L=await this.footer();R&&(h+=" "+R),v&&!R&&this.state.completed===0&&(h+=" "+v),this.clear(a);let _=[E,h,b,L,w.trim()];this.write(_.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h} 234`].find(V=>V!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let C=await this.header(),w=await this.error()||"",v=await this.hint()||"",b=o?"":await this.interpolate(this.state),E=this.state.key=r[e]||"",R=await this.format(E),L=await this.footer();R&&(h+=" "+R),v&&!R&&this.state.completed===0&&(h+=" "+v),this.clear(a);let _=[C,h,b,L,w.trim()];this.write(_.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h}
235`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=aft.unstyle(o).split(` 235`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=Aft.unstyle(o).split(`
236`).map(A=>A.slice(1)).join(` 236`).map(A=>A.slice(1)).join(`
237`);return this.value={values:a,result:u},super.submit()}};Uhe.exports=f8});var qhe=U((R_t,Hhe)=>{"use strict";var uft="(Use <shift>+<up/down> to sort)",Aft=D0(),p8=class extends Aft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,uft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};Hhe.exports=p8});var Ghe=U((T_t,jhe)=>{"use strict";var fft=V1(),h8=class extends fft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(` 237`);return this.value={values:a,result:u},super.submit()}};_he.exports=h8});var jhe=U((M_t,qhe)=>{"use strict";var hft="(Use <shift>+<up/down> to sort)",gft=S0(),g8=class extends gft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,hft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};qhe.exports=g8});var Whe=U((U_t,Ghe)=>{"use strict";var dft=z1(),d8=class extends dft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(`
238 `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=pft(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=re=>(re?this.styles.success("\u25C9"):"\u25EF")+u,E=r+1+".",w=o?this.styles.heading:this.styles.noop,v=await this.resolve(e.message,this.state,e,r),b=this.indent(e),C=b+e.scale.map((re,oe)=>h(oe===e.scaleIdx)).join(A),R=re=>re===e.scaleIdx?w(re):re,L=b+e.scale.map((re,oe)=>R(oe)).join(p),_=()=>[E,v].filter(Boolean).join(" "),V=()=>[_(),C,L," "].filter(Boolean).join(` 238 `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=mft(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=re=>(re?this.styles.success("\u25C9"):"\u25EF")+u,C=r+1+".",w=o?this.styles.heading:this.styles.noop,v=await this.resolve(e.message,this.state,e,r),b=this.indent(e),E=b+e.scale.map((re,ae)=>h(ae===e.scaleIdx)).join(A),R=re=>re===e.scaleIdx?w(re):re,L=b+e.scale.map((re,ae)=>R(ae)).join(p),_=()=>[C,v].filter(Boolean).join(" "),V=()=>[_(),E,L," "].filter(Boolean).join(`
239`);return o&&(C=this.styles.cyan(C),L=this.styles.cyan(L)),V()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` 239`);return o&&(E=this.styles.cyan(E),L=this.styles.cyan(L)),V()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(`
240`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),w=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,E,w].filter(Boolean).join(` 240`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),C=await this.renderChoices(),w=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!C&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,C,w].filter(Boolean).join(`
241`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function pft(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o<t+1;o++)r.push({i:o,selected:!1});return r}jhe.exports=h8});var Yhe=U((N_t,Whe)=>{Whe.exports=r8()});var Vhe=U((L_t,Khe)=>{"use strict";var hft=eQ(),g8=class extends hft{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=o=>this.styles.primary.underline(o);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(` 241`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function mft(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o<t+1;o++)r.push({i:o,selected:!1});return r}Ghe.exports=d8});var Khe=U((__t,Yhe)=>{Yhe.exports=i8()});var Jhe=U((H_t,Vhe)=>{"use strict";var yft=nQ(),m8=class extends yft{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=o=>this.styles.primary.underline(o);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(`
242`)),this.write(this.margin[2]),this.restore()}};Khe.exports=g8});var zhe=U((O_t,Jhe)=>{"use strict";var gft=D0(),d8=class extends gft{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Jhe.exports=d8});var Zhe=U(m8=>{"use strict";var Xhe=Fo(),ps=(t,e)=>{Xhe.defineExport(m8,t,e),Xhe.defineExport(m8,t.toLowerCase(),e)};ps("AutoComplete",()=>ihe());ps("BasicAuth",()=>Ahe());ps("Confirm",()=>hhe());ps("Editable",()=>dhe());ps("Form",()=>$b());ps("Input",()=>r8());ps("Invisible",()=>Bhe());ps("List",()=>Dhe());ps("MultiSelect",()=>Phe());ps("Numeral",()=>Qhe());ps("Password",()=>Fhe());ps("Scale",()=>Nhe());ps("Select",()=>D0());ps("Snippet",()=>_he());ps("Sort",()=>qhe());ps("Survey",()=>Ghe());ps("Text",()=>Yhe());ps("Toggle",()=>Vhe());ps("Quiz",()=>zhe())});var ege=U((U_t,$he)=>{$he.exports={ArrayPrompt:V1(),AuthPrompt:z_(),BooleanPrompt:eQ(),NumberPrompt:a8(),StringPrompt:Vd()}});var z1=U((__t,rge)=>{"use strict";var tge=Ie("assert"),C8=Ie("events"),S0=Fo(),$c=class extends C8{constructor(e,r){super(),this.options=S0.merge({},e),this.answers={...r}}register(e,r){if(S0.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}tge.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(S0.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=S0.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=S0;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];tge(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",E=>{this.emit("answer",a,E,A),n(this.answers,a,E)});let h=A.emit.bind(A);return A.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||AE()}static get prompts(){return Zhe()}static get types(){return ege()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return S0.mixinEmitter(e,new C8),e}};S0.mixinEmitter($c,new C8);var y8=$c.prompts;for(let t of Object.keys(y8)){let e=t.toLowerCase(),r=o=>new y8[t](o).run();$c.prompt[e]=r,$c[e]=r,$c[t]||Reflect.defineProperty($c,t,{get:()=>y8[t]})}var J1=t=>{S0.defineExport($c,t,()=>$c.types[t])};J1("ArrayPrompt");J1("AuthPrompt");J1("BooleanPrompt");J1("NumberPrompt");J1("StringPrompt");rge.exports=$c});var e2=U((w8t,cge)=>{var Ift=Gb();function wft(t,e,r){var o=t==null?void 0:Ift(t,e);return o===void 0?r:o}cge.exports=wft});var fge=U((x8t,Age)=>{function Bft(t,e){for(var r=-1,o=t==null?0:t.length;++r<o&&e(t[r],r,t)!==!1;);return t}Age.exports=Bft});var hge=U((b8t,pge)=>{var vft=gd(),Dft=_S();function Sft(t,e){return t&&vft(e,Dft(e),t)}pge.exports=Sft});var dge=U((Q8t,gge)=>{var Pft=gd(),xft=Wy();function bft(t,e){return t&&Pft(e,xft(e),t)}gge.exports=bft});var yge=U((k8t,mge)=>{var Qft=gd(),kft=TS();function Fft(t,e){return Qft(t,kft(t),e)}mge.exports=Fft});var D8=U((F8t,Cge)=>{var Rft=RS(),Tft=WS(),Nft=TS(),Lft=_N(),Oft=Object.getOwnPropertySymbols,Mft=Oft?function(t){for(var e=[];t;)Rft(e,Nft(t)),t=Tft(t);return e}:Lft;Cge.exports=Mft});var Ige=U((R8t,Ege)=>{var Uft=gd(),_ft=D8();function Hft(t,e){return Uft(t,_ft(t),e)}Ege.exports=Hft});var S8=U((T8t,wge)=>{var qft=UN(),jft=D8(),Gft=Wy();function Wft(t){return qft(t,Gft,jft)}wge.exports=Wft});var vge=U((N8t,Bge)=>{var Yft=Object.prototype,Kft=Yft.hasOwnProperty;function Vft(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&Kft.call(t,"index")&&(r.index=t.index,r.input=t.input),r}Bge.exports=Vft});var Sge=U((L8t,Dge)=>{var Jft=jS();function zft(t,e){var r=e?Jft(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}Dge.exports=zft});var xge=U((O8t,Pge)=>{var Xft=/\w*$/;function Zft(t){var e=new t.constructor(t.source,Xft.exec(t));return e.lastIndex=t.lastIndex,e}Pge.exports=Zft});var Rge=U((M8t,Fge)=>{var bge=fd(),Qge=bge?bge.prototype:void 0,kge=Qge?Qge.valueOf:void 0;function $ft(t){return kge?Object(kge.call(t)):{}}Fge.exports=$ft});var Nge=U((U8t,Tge)=>{var ept=jS(),tpt=Sge(),rpt=xge(),npt=Rge(),ipt=eL(),spt="[object Boolean]",opt="[object Date]",apt="[object Map]",lpt="[object Number]",cpt="[object RegExp]",upt="[object Set]",Apt="[object String]",fpt="[object Symbol]",ppt="[object ArrayBuffer]",hpt="[object DataView]",gpt="[object Float32Array]",dpt="[object Float64Array]",mpt="[object Int8Array]",ypt="[object Int16Array]",Cpt="[object Int32Array]",Ept="[object Uint8Array]",Ipt="[object Uint8ClampedArray]",wpt="[object Uint16Array]",Bpt="[object Uint32Array]";function vpt(t,e,r){var o=t.constructor;switch(e){case ppt:return ept(t);case spt:case opt:return new o(+t);case hpt:return tpt(t,r);case gpt:case dpt:case mpt:case ypt:case Cpt:case Ept:case Ipt:case wpt:case Bpt:return ipt(t,r);case apt:return new o;case lpt:case Apt:return new o(t);case cpt:return rpt(t);case upt:return new o;case fpt:return npt(t)}}Tge.exports=vpt});var Oge=U((_8t,Lge)=>{var Dpt=Tw(),Spt=Xu(),Ppt="[object Map]";function xpt(t){return Spt(t)&&Dpt(t)==Ppt}Lge.exports=xpt});var Hge=U((H8t,_ge)=>{var bpt=Oge(),Qpt=LS(),Mge=OS(),Uge=Mge&&Mge.isMap,kpt=Uge?Qpt(Uge):bpt;_ge.exports=kpt});var jge=U((q8t,qge)=>{var Fpt=Tw(),Rpt=Xu(),Tpt="[object Set]";function Npt(t){return Rpt(t)&&Fpt(t)==Tpt}qge.exports=Npt});var Kge=U((j8t,Yge)=>{var Lpt=jge(),Opt=LS(),Gge=OS(),Wge=Gge&&Gge.isSet,Mpt=Wge?Opt(Wge):Lpt;Yge.exports=Mpt});var P8=U((G8t,Xge)=>{var Upt=QS(),_pt=fge(),Hpt=YS(),qpt=hge(),jpt=dge(),Gpt=$N(),Wpt=GS(),Ypt=yge(),Kpt=Ige(),Vpt=GN(),Jpt=S8(),zpt=Tw(),Xpt=vge(),Zpt=Nge(),$pt=tL(),e0t=Yl(),t0t=bw(),r0t=Hge(),n0t=ol(),i0t=Kge(),s0t=_S(),o0t=Wy(),a0t=1,l0t=2,c0t=4,Vge="[object Arguments]",u0t="[object Array]",A0t="[object Boolean]",f0t="[object Date]",p0t="[object Error]",Jge="[object Function]",h0t="[object GeneratorFunction]",g0t="[object Map]",d0t="[object Number]",zge="[object Object]",m0t="[object RegExp]",y0t="[object Set]",C0t="[object String]",E0t="[object Symbol]",I0t="[object WeakMap]",w0t="[object ArrayBuffer]",B0t="[object DataView]",v0t="[object Float32Array]",D0t="[object Float64Array]",S0t="[object Int8Array]",P0t="[object Int16Array]",x0t="[object Int32Array]",b0t="[object Uint8Array]",Q0t="[object Uint8ClampedArray]",k0t="[object Uint16Array]",F0t="[object Uint32Array]",Xn={};Xn[Vge]=Xn[u0t]=Xn[w0t]=Xn[B0t]=Xn[A0t]=Xn[f0t]=Xn[v0t]=Xn[D0t]=Xn[S0t]=Xn[P0t]=Xn[x0t]=Xn[g0t]=Xn[d0t]=Xn[zge]=Xn[m0t]=Xn[y0t]=Xn[C0t]=Xn[E0t]=Xn[b0t]=Xn[Q0t]=Xn[k0t]=Xn[F0t]=!0;Xn[p0t]=Xn[Jge]=Xn[I0t]=!1;function nQ(t,e,r,o,a,n){var u,A=e&a0t,p=e&l0t,h=e&c0t;if(r&&(u=a?r(t,o,a,n):r(t)),u!==void 0)return u;if(!n0t(t))return t;var E=e0t(t);if(E){if(u=Xpt(t),!A)return Wpt(t,u)}else{var w=zpt(t),v=w==Jge||w==h0t;if(t0t(t))return Gpt(t,A);if(w==zge||w==Vge||v&&!a){if(u=p||v?{}:$pt(t),!A)return p?Kpt(t,jpt(u,t)):Ypt(t,qpt(u,t))}else{if(!Xn[w])return a?t:{};u=Zpt(t,w,A)}}n||(n=new Upt);var b=n.get(t);if(b)return b;n.set(t,u),i0t(t)?t.forEach(function(L){u.add(nQ(L,e,r,L,t,n))}):r0t(t)&&t.forEach(function(L,_){u.set(_,nQ(L,e,r,_,t,n))});var C=h?p?Jpt:Vpt:p?o0t:s0t,R=E?void 0:C(t);return _pt(R||t,function(L,_){R&&(_=L,L=t[_]),Hpt(u,_,nQ(L,e,r,_,t,n))}),u}Xge.exports=nQ});var x8=U((W8t,Zge)=>{var R0t=P8(),T0t=1,N0t=4;function L0t(t){return R0t(t,T0t|N0t)}Zge.exports=L0t});var b8=U((Y8t,$ge)=>{var O0t=C_();function M0t(t,e,r){return t==null?t:O0t(t,e,r)}$ge.exports=M0t});var ide=U((Z8t,nde)=>{var U0t=Object.prototype,_0t=U0t.hasOwnProperty;function H0t(t,e){return t!=null&&_0t.call(t,e)}nde.exports=H0t});var ode=U(($8t,sde)=>{var q0t=ide(),j0t=E_();function G0t(t,e){return t!=null&&j0t(t,e,q0t)}sde.exports=G0t});var lde=U((eHt,ade)=>{function W0t(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}ade.exports=W0t});var ude=U((tHt,cde)=>{var Y0t=Gb(),K0t=dU();function V0t(t,e){return e.length<2?t:Y0t(t,K0t(e,0,-1))}cde.exports=V0t});var k8=U((rHt,Ade)=>{var J0t=Wd(),z0t=lde(),X0t=ude(),Z0t=sE();function $0t(t,e){return e=J0t(e,t),t=X0t(t,e),t==null||delete t[Z0t(z0t(e))]}Ade.exports=$0t});var F8=U((nHt,fde)=>{var eht=k8();function tht(t,e){return t==null?!0:eht(t,e)}fde.exports=tht});var mde=U((FHt,iht)=>{iht.exports={name:"@yarnpkg/cli",version:"4.0.0-rc.42",stableVersion:"3.4.1",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"^3.2.0-rc.10",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.3.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=14.15.0"}}});var H8=U((aGt,Qde)=>{"use strict";Qde.exports=function(e,r){r===!0&&(r=0);var o="";if(typeof e=="string")try{o=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(o=e.protocol);var a=o.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var Fde=U((lGt,kde)=>{"use strict";var Eht=H8();function Iht(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=Eht(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}kde.exports=Iht});var Nde=U((cGt,Tde)=>{"use strict";var wht=Fde();function Bht(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var vht=Bht(wht),Dht="text/plain",Sht="us-ascii",Rde=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Pht=(t,{stripHash:e})=>{let r=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:o,data:a,hash:n}=r.groups,u=o.split(";");n=e?"":n;let A=!1;u[u.length-1]==="base64"&&(u.pop(),A=!0);let p=(u.shift()||"").toLowerCase(),E=[...u.map(w=>{let[v,b=""]=w.split("=").map(C=>C.trim());return v==="charset"&&(b=b.toLowerCase(),b===Sht)?"":`${v}${b?`=${b}`:""}`}).filter(Boolean)];return A&&E.push("base64"),(E.length>0||p&&p!==Dht)&&E.unshift(p),`data:${E.join(";")},${A?a.trim():a}${n?`#${n}`:""}`};function xht(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return Pht(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let u=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,p="";for(;;){let E=u.exec(a.pathname);if(!E)break;let w=E[0],v=E.index,b=a.pathname.slice(A,v);p+=b.replace(/\/{2,}/g,"/"),p+=w,A=v+w.length}let h=a.pathname.slice(A,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let u=a.pathname.split("/"),A=u[u.length-1];Rde(A,e.removeDirectoryIndex)&&(u=u.slice(0,-1),a.pathname=u.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let u of[...a.searchParams.keys()])Rde(u,e.removeQueryParameters)&&a.searchParams.delete(u);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var q8=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,o=n=>{let u=new Error(n);throw u.subject_url=t,u};(typeof t!="string"||!t.trim())&&o("Invalid url."),t.length>q8.MAX_INPUT_LENGTH&&o("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=xht(t,e));let a=vht.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):o("URL parsing failed.")}return a};q8.MAX_INPUT_LENGTH=2048;Tde.exports=q8});var Mde=U((uGt,Ode)=>{"use strict";var bht=H8();function Lde(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=bht(t);if(t=t.substring(t.indexOf("://")+3),Lde(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@")<t.indexOf(":")}Ode.exports=Lde});var Hde=U((AGt,_de)=>{"use strict";var Qht=Nde(),Ude=Mde();function kht(t){var e=Qht(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Ude(e.protocols)||e.protocols.length===0&&Ude(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}_de.exports=kht});var jde=U((fGt,qde)=>{"use strict";var Fht=Hde();function j8(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=Fht(t),o=r.resource.split("."),a=null;switch(r.toString=function(L){return j8.stringify(this,L)},r.source=o.length>2?o.slice(1-o.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=o[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var u=a.indexOf("-",2),A=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),w=a.indexOf("raw",2),v=a.indexOf("edit",2);n=u>0?u-1:A>0?A-1:p>0?p-1:h>0?h-1:E>0?E-1:w>0?w-1:v>0?v-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var b=a.length>n&&a[n+1]==="-"?n+1:n;a.length>b+2&&["raw","src","blob","tree","edit"].indexOf(a[b+1])>=0&&(r.filepathtype=a[b+1],r.ref=a[b+2],a.length>b+3&&(r.filepath=a.slice(b+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var C=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,R=C.exec(r.pathname);return R!=null&&(r.source="bitbucket-server",R[1]==="users"?r.owner="~"+R[2]:r.owner=R[2],r.organization=r.owner,r.name=R[3],a=R[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}j8.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",o=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+o+"@"+t.resource+r+"/"+t.full_name+a:o+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+o+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?Rht(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+Tht(t)+a;default:return t.href}};function Rht(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function Tht(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}qde.exports=j8});var sme=U((j9t,ime)=>{var Ght=Fx(),Wht=GS(),Yht=Yl(),Kht=AC(),Vht=y_(),Jht=sE(),zht=v1();function Xht(t){return Yht(t)?Ght(t,Jht):Kht(t)?[t]:Wht(Vht(zht(t)))}ime.exports=Xht});function tgt(t,e){return e===1&&egt.has(t[0])}function l2(t){let e=Array.isArray(t)?t:(0,lme.default)(t);return e.map((o,a)=>Zht.test(o)?`[${o}]`:$ht.test(o)&&!tgt(e,a)?`.${o}`:`[${JSON.stringify(o)}]`).join("").replace(/^\./,"")}function rgt(t,e){let r=[];if(e.methodName!==null&&r.push(ye.pretty(t,e.methodName,ye.Type.CODE)),e.file!==null){let o=[];o.push(ye.pretty(t,e.file,ye.Type.PATH)),e.line!==null&&(o.push(ye.pretty(t,e.line,ye.Type.NUMBER)),e.column!==null&&o.push(ye.pretty(t,e.line,ye.Type.NUMBER))),r.push(`(${o.join(ye.pretty(t,":","grey"))})`)}return r.join(" ")}function aQ(t,{manifestUpdates:e,reportedErrors:r},{fix:o}={}){var u;let a=new Map,n=new Map;for(let[A,p]of e){let h=((u=r.get(A))==null?void 0:u.map(b=>({text:b,fixable:!1})))??[],E=!1,w=t.getWorkspaceByCwd(A),v=w.manifest.exportTo({});for(let[b,C]of p){if(C.size>1){let R=[...C].map(([L,_])=>{let V=ye.pretty(t.configuration,L,ye.Type.INSPECT),re=_.size>0?rgt(t.configuration,_.values().next().value):null;return re!==null?` 242`)),this.write(this.margin[2]),this.restore()}};Vhe.exports=m8});var Xhe=U((q_t,zhe)=>{"use strict";var Eft=S0(),y8=class extends Eft{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};zhe.exports=y8});var $he=U(E8=>{"use strict";var Zhe=Fo(),ps=(t,e)=>{Zhe.defineExport(E8,t,e),Zhe.defineExport(E8,t.toLowerCase(),e)};ps("AutoComplete",()=>she());ps("BasicAuth",()=>fhe());ps("Confirm",()=>ghe());ps("Editable",()=>mhe());ps("Form",()=>rQ());ps("Input",()=>i8());ps("Invisible",()=>vhe());ps("List",()=>She());ps("MultiSelect",()=>xhe());ps("Numeral",()=>khe());ps("Password",()=>Rhe());ps("Scale",()=>Lhe());ps("Select",()=>S0());ps("Snippet",()=>Hhe());ps("Sort",()=>jhe());ps("Survey",()=>Whe());ps("Text",()=>Khe());ps("Toggle",()=>Jhe());ps("Quiz",()=>Xhe())});var tge=U((G_t,ege)=>{ege.exports={ArrayPrompt:z1(),AuthPrompt:Z_(),BooleanPrompt:nQ(),NumberPrompt:c8(),StringPrompt:Jd()}});var Z1=U((W_t,nge)=>{"use strict";var rge=Ie("assert"),I8=Ie("events"),P0=Fo(),eu=class extends I8{constructor(e,r){super(),this.options=P0.merge({},e),this.answers={...r}}register(e,r){if(P0.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}rge.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(P0.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=P0.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=P0;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];rge(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",C=>{this.emit("answer",a,C,A),n(this.answers,a,C)});let h=A.emit.bind(A);return A.emit=(...C)=>(this.emit.call(this,...C),h(...C)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||AC()}static get prompts(){return $he()}static get types(){return tge()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return P0.mixinEmitter(e,new I8),e}};P0.mixinEmitter(eu,new I8);var C8=eu.prompts;for(let t of Object.keys(C8)){let e=t.toLowerCase(),r=o=>new C8[t](o).run();eu.prompt[e]=r,eu[e]=r,eu[t]||Reflect.defineProperty(eu,t,{get:()=>C8[t]})}var X1=t=>{P0.defineExport(eu,t,()=>eu.types[t])};X1("ArrayPrompt");X1("AuthPrompt");X1("BooleanPrompt");X1("NumberPrompt");X1("StringPrompt");nge.exports=eu});var r2=U((P8t,uge)=>{var Dft=Yb();function Sft(t,e,r){var o=t==null?void 0:Dft(t,e);return o===void 0?r:o}uge.exports=Sft});var pge=U((R8t,fge)=>{function Pft(t,e){for(var r=-1,o=t==null?0:t.length;++r<o&&e(t[r],r,t)!==!1;);return t}fge.exports=Pft});var gge=U((T8t,hge)=>{var xft=dd(),bft=qS();function Qft(t,e){return t&&xft(e,bft(e),t)}hge.exports=Qft});var mge=U((N8t,dge)=>{var kft=dd(),Fft=Wy();function Rft(t,e){return t&&kft(e,Fft(e),t)}dge.exports=Rft});var Ege=U((L8t,yge)=>{var Tft=dd(),Nft=LS();function Lft(t,e){return Tft(t,Nft(t),e)}yge.exports=Lft});var P8=U((O8t,Cge)=>{var Oft=NS(),Mft=KS(),Uft=LS(),_ft=qN(),Hft=Object.getOwnPropertySymbols,qft=Hft?function(t){for(var e=[];t;)Oft(e,Uft(t)),t=Mft(t);return e}:_ft;Cge.exports=qft});var wge=U((M8t,Ige)=>{var jft=dd(),Gft=P8();function Wft(t,e){return jft(t,Gft(t),e)}Ige.exports=Wft});var x8=U((U8t,Bge)=>{var Yft=HN(),Kft=P8(),Vft=Wy();function Jft(t){return Yft(t,Vft,Kft)}Bge.exports=Jft});var Dge=U((_8t,vge)=>{var zft=Object.prototype,Xft=zft.hasOwnProperty;function Zft(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&Xft.call(t,"index")&&(r.index=t.index,r.input=t.input),r}vge.exports=Zft});var Pge=U((H8t,Sge)=>{var $ft=WS();function ept(t,e){var r=e?$ft(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}Sge.exports=ept});var bge=U((q8t,xge)=>{var tpt=/\w*$/;function rpt(t){var e=new t.constructor(t.source,tpt.exec(t));return e.lastIndex=t.lastIndex,e}xge.exports=rpt});var Tge=U((j8t,Rge)=>{var Qge=pd(),kge=Qge?Qge.prototype:void 0,Fge=kge?kge.valueOf:void 0;function npt(t){return Fge?Object(Fge.call(t)):{}}Rge.exports=npt});var Lge=U((G8t,Nge)=>{var ipt=WS(),spt=Pge(),opt=bge(),apt=Tge(),lpt=rL(),cpt="[object Boolean]",upt="[object Date]",Apt="[object Map]",fpt="[object Number]",ppt="[object RegExp]",hpt="[object Set]",gpt="[object String]",dpt="[object Symbol]",mpt="[object ArrayBuffer]",ypt="[object DataView]",Ept="[object Float32Array]",Cpt="[object Float64Array]",Ipt="[object Int8Array]",wpt="[object Int16Array]",Bpt="[object Int32Array]",vpt="[object Uint8Array]",Dpt="[object Uint8ClampedArray]",Spt="[object Uint16Array]",Ppt="[object Uint32Array]";function xpt(t,e,r){var o=t.constructor;switch(e){case mpt:return ipt(t);case cpt:case upt:return new o(+t);case ypt:return spt(t,r);case Ept:case Cpt:case Ipt:case wpt:case Bpt:case vpt:case Dpt:case Spt:case Ppt:return lpt(t,r);case Apt:return new o;case fpt:case gpt:return new o(t);case ppt:return opt(t);case hpt:return new o;case dpt:return apt(t)}}Nge.exports=xpt});var Mge=U((W8t,Oge)=>{var bpt=Nw(),Qpt=Xu(),kpt="[object Map]";function Fpt(t){return Qpt(t)&&bpt(t)==kpt}Oge.exports=Fpt});var qge=U((Y8t,Hge)=>{var Rpt=Mge(),Tpt=MS(),Uge=US(),_ge=Uge&&Uge.isMap,Npt=_ge?Tpt(_ge):Rpt;Hge.exports=Npt});var Gge=U((K8t,jge)=>{var Lpt=Nw(),Opt=Xu(),Mpt="[object Set]";function Upt(t){return Opt(t)&&Lpt(t)==Mpt}jge.exports=Upt});var Vge=U((V8t,Kge)=>{var _pt=Gge(),Hpt=MS(),Wge=US(),Yge=Wge&&Wge.isSet,qpt=Yge?Hpt(Yge):_pt;Kge.exports=qpt});var b8=U((J8t,Zge)=>{var jpt=RS(),Gpt=pge(),Wpt=VS(),Ypt=gge(),Kpt=mge(),Vpt=tL(),Jpt=YS(),zpt=Ege(),Xpt=wge(),Zpt=YN(),$pt=x8(),e0t=Nw(),t0t=Dge(),r0t=Lge(),n0t=nL(),i0t=Kl(),s0t=Qw(),o0t=qge(),a0t=al(),l0t=Vge(),c0t=qS(),u0t=Wy(),A0t=1,f0t=2,p0t=4,Jge="[object Arguments]",h0t="[object Array]",g0t="[object Boolean]",d0t="[object Date]",m0t="[object Error]",zge="[object Function]",y0t="[object GeneratorFunction]",E0t="[object Map]",C0t="[object Number]",Xge="[object Object]",I0t="[object RegExp]",w0t="[object Set]",B0t="[object String]",v0t="[object Symbol]",D0t="[object WeakMap]",S0t="[object ArrayBuffer]",P0t="[object DataView]",x0t="[object Float32Array]",b0t="[object Float64Array]",Q0t="[object Int8Array]",k0t="[object Int16Array]",F0t="[object Int32Array]",R0t="[object Uint8Array]",T0t="[object Uint8ClampedArray]",N0t="[object Uint16Array]",L0t="[object Uint32Array]",Xn={};Xn[Jge]=Xn[h0t]=Xn[S0t]=Xn[P0t]=Xn[g0t]=Xn[d0t]=Xn[x0t]=Xn[b0t]=Xn[Q0t]=Xn[k0t]=Xn[F0t]=Xn[E0t]=Xn[C0t]=Xn[Xge]=Xn[I0t]=Xn[w0t]=Xn[B0t]=Xn[v0t]=Xn[R0t]=Xn[T0t]=Xn[N0t]=Xn[L0t]=!0;Xn[m0t]=Xn[zge]=Xn[D0t]=!1;function oQ(t,e,r,o,a,n){var u,A=e&A0t,p=e&f0t,h=e&p0t;if(r&&(u=a?r(t,o,a,n):r(t)),u!==void 0)return u;if(!a0t(t))return t;var C=i0t(t);if(C){if(u=t0t(t),!A)return Jpt(t,u)}else{var w=e0t(t),v=w==zge||w==y0t;if(s0t(t))return Vpt(t,A);if(w==Xge||w==Jge||v&&!a){if(u=p||v?{}:n0t(t),!A)return p?Xpt(t,Kpt(u,t)):zpt(t,Ypt(u,t))}else{if(!Xn[w])return a?t:{};u=r0t(t,w,A)}}n||(n=new jpt);var b=n.get(t);if(b)return b;n.set(t,u),l0t(t)?t.forEach(function(L){u.add(oQ(L,e,r,L,t,n))}):o0t(t)&&t.forEach(function(L,_){u.set(_,oQ(L,e,r,_,t,n))});var E=h?p?$pt:Zpt:p?u0t:c0t,R=C?void 0:E(t);return Gpt(R||t,function(L,_){R&&(_=L,L=t[_]),Wpt(u,_,oQ(L,e,r,_,t,n))}),u}Zge.exports=oQ});var Q8=U((z8t,$ge)=>{var O0t=b8(),M0t=1,U0t=4;function _0t(t){return O0t(t,M0t|U0t)}$ge.exports=_0t});var k8=U((X8t,ede)=>{var H0t=I_();function q0t(t,e,r){return t==null?t:H0t(t,e,r)}ede.exports=q0t});var sde=U((nHt,ide)=>{var j0t=Object.prototype,G0t=j0t.hasOwnProperty;function W0t(t,e){return t!=null&&G0t.call(t,e)}ide.exports=W0t});var ade=U((iHt,ode)=>{var Y0t=sde(),K0t=w_();function V0t(t,e){return t!=null&&K0t(t,e,Y0t)}ode.exports=V0t});var cde=U((sHt,lde)=>{function J0t(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}lde.exports=J0t});var Ade=U((oHt,ude)=>{var z0t=Yb(),X0t=yU();function Z0t(t,e){return e.length<2?t:z0t(t,X0t(e,0,-1))}ude.exports=Z0t});var R8=U((aHt,fde)=>{var $0t=Yd(),eht=cde(),tht=Ade(),rht=sC();function nht(t,e){return e=$0t(e,t),t=tht(t,e),t==null||delete t[rht(eht(e))]}fde.exports=nht});var T8=U((lHt,pde)=>{var iht=R8();function sht(t,e){return t==null?!0:iht(t,e)}pde.exports=sht});var yde=U((OHt,lht)=>{lht.exports={name:"@yarnpkg/cli",version:"4.0.0-rc.45",stableVersion:"3.5.1",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"^3.2.0-rc.10",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.3.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=14.15.0"}}});var j8=U((pGt,kde)=>{"use strict";kde.exports=function(e,r){r===!0&&(r=0);var o="";if(typeof e=="string")try{o=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(o=e.protocol);var a=o.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var Rde=U((hGt,Fde)=>{"use strict";var Dht=j8();function Sht(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=Dht(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}Fde.exports=Sht});var Lde=U((gGt,Nde)=>{"use strict";var Pht=Rde();function xht(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var bht=xht(Pht),Qht="text/plain",kht="us-ascii",Tde=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Fht=(t,{stripHash:e})=>{let r=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:o,data:a,hash:n}=r.groups,u=o.split(";");n=e?"":n;let A=!1;u[u.length-1]==="base64"&&(u.pop(),A=!0);let p=(u.shift()||"").toLowerCase(),C=[...u.map(w=>{let[v,b=""]=w.split("=").map(E=>E.trim());return v==="charset"&&(b=b.toLowerCase(),b===kht)?"":`${v}${b?`=${b}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length>0||p&&p!==Qht)&&C.unshift(p),`data:${C.join(";")},${A?a.trim():a}${n?`#${n}`:""}`};function Rht(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return Fht(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let u=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,p="";for(;;){let C=u.exec(a.pathname);if(!C)break;let w=C[0],v=C.index,b=a.pathname.slice(A,v);p+=b.replace(/\/{2,}/g,"/"),p+=w,A=v+w.length}let h=a.pathname.slice(A,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let u=a.pathname.split("/"),A=u[u.length-1];Tde(A,e.removeDirectoryIndex)&&(u=u.slice(0,-1),a.pathname=u.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let u of[...a.searchParams.keys()])Tde(u,e.removeQueryParameters)&&a.searchParams.delete(u);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var G8=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,o=n=>{let u=new Error(n);throw u.subject_url=t,u};(typeof t!="string"||!t.trim())&&o("Invalid url."),t.length>G8.MAX_INPUT_LENGTH&&o("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=Rht(t,e));let a=bht.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):o("URL parsing failed.")}return a};G8.MAX_INPUT_LENGTH=2048;Nde.exports=G8});var Ude=U((dGt,Mde)=>{"use strict";var Tht=j8();function Ode(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=Tht(t);if(t=t.substring(t.indexOf("://")+3),Ode(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@")<t.indexOf(":")}Mde.exports=Ode});var qde=U((mGt,Hde)=>{"use strict";var Nht=Lde(),_de=Ude();function Lht(t){var e=Nht(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),_de(e.protocols)||e.protocols.length===0&&_de(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Hde.exports=Lht});var Gde=U((yGt,jde)=>{"use strict";var Oht=qde();function W8(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=Oht(t),o=r.resource.split("."),a=null;switch(r.toString=function(L){return W8.stringify(this,L)},r.source=o.length>2?o.slice(1-o.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=o[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var u=a.indexOf("-",2),A=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),C=a.indexOf("src",2),w=a.indexOf("raw",2),v=a.indexOf("edit",2);n=u>0?u-1:A>0?A-1:p>0?p-1:h>0?h-1:C>0?C-1:w>0?w-1:v>0?v-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var b=a.length>n&&a[n+1]==="-"?n+1:n;a.length>b+2&&["raw","src","blob","tree","edit"].indexOf(a[b+1])>=0&&(r.filepathtype=a[b+1],r.ref=a[b+2],a.length>b+3&&(r.filepath=a.slice(b+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var E=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,R=E.exec(r.pathname);return R!=null&&(r.source="bitbucket-server",R[1]==="users"?r.owner="~"+R[2]:r.owner=R[2],r.organization=r.owner,r.name=R[3],a=R[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}W8.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",o=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+o+"@"+t.resource+r+"/"+t.full_name+a:o+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+o+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?Mht(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+Uht(t)+a;default:return t.href}};function Mht(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function Uht(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}jde.exports=W8});var ome=U((J9t,sme)=>{var Jht=Tx(),zht=YS(),Xht=Kl(),Zht=AE(),$ht=C_(),egt=sC(),tgt=S1();function rgt(t){return Xht(t)?Jht(t,egt):Zht(t)?[t]:zht($ht(tgt(t)))}sme.exports=rgt});function ogt(t,e){return e===1&&sgt.has(t[0])}function u2(t){let e=Array.isArray(t)?t:(0,cme.default)(t);return e.map((o,a)=>ngt.test(o)?`[${o}]`:igt.test(o)&&!ogt(e,a)?`.${o}`:`[${JSON.stringify(o)}]`).join("").replace(/^\./,"")}function agt(t,e){let r=[];if(e.methodName!==null&&r.push(ye.pretty(t,e.methodName,ye.Type.CODE)),e.file!==null){let o=[];o.push(ye.pretty(t,e.file,ye.Type.PATH)),e.line!==null&&(o.push(ye.pretty(t,e.line,ye.Type.NUMBER)),e.column!==null&&o.push(ye.pretty(t,e.line,ye.Type.NUMBER))),r.push(`(${o.join(ye.pretty(t,":","grey"))})`)}return r.join(" ")}function uQ(t,{manifestUpdates:e,reportedErrors:r},{fix:o}={}){var u;let a=new Map,n=new Map;for(let[A,p]of e){let h=((u=r.get(A))==null?void 0:u.map(b=>({text:b,fixable:!1})))??[],C=!1,w=t.getWorkspaceByCwd(A),v=w.manifest.exportTo({});for(let[b,E]of p){if(E.size>1){let R=[...E].map(([L,_])=>{let V=ye.pretty(t.configuration,L,ye.Type.INSPECT),re=_.size>0?agt(t.configuration,_.values().next().value):null;return re!==null?`
243${V} at ${re}`:` 243${V} at ${re}`:`
244${V}`}).join("");h.push({text:`Conflict detected in constraint targeting ${ye.pretty(t.configuration,b,ye.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=C,L=(0,ome.default)(v,b);if(L===R)continue;if(!o){let _=typeof L>"u"?`Missing field ${ye.pretty(t.configuration,b,ye.Type.CODE)}; expected ${ye.pretty(t.configuration,R,ye.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${ye.pretty(t.configuration,b,ye.Type.CODE)} currently set to ${ye.pretty(t.configuration,L,ye.Type.INSPECT)}`:`Invalid field ${ye.pretty(t.configuration,b,ye.Type.CODE)}; expected ${ye.pretty(t.configuration,R,ye.Type.INSPECT)}, found ${ye.pretty(t.configuration,L,ye.Type.INSPECT)}`;h.push({text:_,fixable:!0});continue}typeof R>"u"?(0,cme.default)(v,b):(0,ame.default)(v,b,R),E=!0}E&&a.set(w,v)}h.length>0&&n.set(w,h)}return{changedWorkspaces:a,remainingErrors:n}}var ome,ame,lme,cme,a2,Zht,$ht,egt,c2=dt(()=>{Ke();ome=tt(e2()),ame=tt(b8()),lme=tt(sme()),cme=tt(F8()),a2=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0;if(typeof o>"u")continue;Ye.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.prototype.hasOwnProperty.call(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let E=new Set(h.get(A)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let w of a)E.has(w)||a.delete(w);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.prototype.hasOwnProperty.call(u,A)&&u[A]===p:Object.prototype.hasOwnProperty.call(u,A)===!1))return!1;return!0})),n}},Zht=/^[0-9]+$/,$ht=/^[a-zA-Z0-9_]+$/,egt=new Set(["scripts",...Nt.allDependencies])});var ume=U((Z9t,iH)=>{var ngt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(!t.type.is_variable(A)&&!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(t.type.is_integer(A)&&A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else{var p=new t.type.Term("length",[u,new t.type.Num(0,!1),A]);t.type.is_integer(A)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),o.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E<A.value;E++)h=new t.type.Term(".",[u,h]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[h,p])),a.substitution,a)])}},"sort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),w=E.length-1;w>0;w--)E[w].equals(E[w-1])&&E.splice(w,1);for(var v=new t.type.Term("[]"),w=E.length-1;w>=0;w--)v=new t.type.Term(".",[E[w],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"msort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),w=new t.type.Term("[]"),v=E.length-1;v>=0;v--)w=new t.type.Term(".",[E[v],w]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,A])),a.substitution,a)])}}},"keysort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h,E=u;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){o.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){o.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))o.throw_error(t.error.type("list",u,n.indicator));else{for(var w=p.sort(t.compare),v=new t.type.Term("[]"),b=w.length-1;b>=0;b--)v=new t.type.Term(".",[new t.type.Term("-",[w[b],w[b].pair]),v]),delete w[b].pair;o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"take/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],w=A;h>0&&w.indicator==="./2";)E.push(w.args[0]),w=w.args[1],h--;if(h===0){for(var v=new t.type.Term("[]"),h=E.length-1;h>=0;h--)v=new t.type.Term(".",[E[h],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,p])),a.substitution,a)])}}},"drop/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],w=A;h>0&&w.indicator==="./2";)E.push(w.args[0]),w=w.args[1],h--;h===0&&o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,p])),a.substitution,a)])}},"reverse/2":function(o,a,n){var u=n.args[0],A=n.args[1],p=t.type.is_instantiated_list(u),h=t.type.is_instantiated_list(A);if(t.type.is_variable(u)&&t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(u)&&!t.type.is_fully_list(u))o.throw_error(t.error.type("list",u,n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!p&&!h)o.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?u:A,w=new t.type.Term("[]",[]);E.indicator==="./2";)w=new t.type.Term(".",[E.args[0],w]),E=E.args[1];o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,p?A:u])),a.substitution,a)])}},"list_to_set/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else{for(var p=u,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=[],w=new t.type.Term("[]",[]),v,b=0;b<h.length;b++){v=!1;for(var C=0;C<E.length&&!v;C++)v=t.compare(h[b],E[C])===0;v||E.push(h[b])}for(b=E.length-1;b>=0;b--)w=new t.type.Term(".",[E[b],w]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[A,w])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof iH<"u"?iH.exports=function(o){t=o,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(ngt)});var Dme=U(qr=>{"use strict";var tm=process.platform==="win32",sH="aes-256-cbc",igt="sha256",pme="The current environment doesn't support interactive reading from TTY.",Un=Ie("fs"),Ame=process.binding("tty_wrap").TTY,aH=Ie("child_process"),oh=Ie("path"),lH={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},Jf="none",tu,mE,fme=!1,sh,cQ,oH,sgt=0,pH="",em=[],uQ,hme=!1,cH=!1,u2=!1;function gme(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(o){return"#"+o.charCodeAt(0)+";"})}return cQ.concat(function(r){var o=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&o.push("--"+a):r[a]==="string"&&t[a]&&o.push("--"+a,e(t[a]))}),o}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function ogt(t,e){function r(_){var V,re="",oe;for(oH=oH||Ie("os").tmpdir();;){V=oh.join(oH,_+re);try{oe=Un.openSync(V,"wx")}catch(pe){if(pe.code==="EEXIST"){re++;continue}else throw pe}Un.closeSync(oe);break}return V}var o,a,n,u={},A,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),w=r("readline-sync.exit"),v=r("readline-sync.done"),b=Ie("crypto"),C,R,L;C=b.createHash(igt),C.update(""+process.pid+sgt+++Math.random()),L=C.digest("hex"),R=b.createDecipher(sH,L),o=gme(t),tm?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+sh+"%Q%"+o.map(function(_){return" %Q%"+_+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+w+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+sH+"%Q% %Q%"+L+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+v+"%Q%"]):(a="/bin/sh",n=["-c",'("'+sh+'"'+o.map(function(_){return" '"+_.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+w+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+sH+'" "'+L+'" >"'+h+'"; echo 1 >"'+v+'"']),u2&&u2("_execFileSync",o);try{aH.spawn(a,n,e)}catch(_){u.error=new Error(_.message),u.error.method="_execFileSync - spawn",u.error.program=a,u.error.args=n}for(;Un.readFileSync(v,{encoding:t.encoding}).trim()!=="1";);return(A=Un.readFileSync(w,{encoding:t.encoding}).trim())==="0"?u.input=R.update(Un.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+R.final(t.encoding):(p=Un.readFileSync(E,{encoding:t.encoding}).trim(),u.error=new Error(pme+(p?` 244${V}`}).join("");h.push({text:`Conflict detected in constraint targeting ${ye.pretty(t.configuration,b,ye.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=E,L=(0,ame.default)(v,b);if(L===R)continue;if(!o){let _=typeof L>"u"?`Missing field ${ye.pretty(t.configuration,b,ye.Type.CODE)}; expected ${ye.pretty(t.configuration,R,ye.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${ye.pretty(t.configuration,b,ye.Type.CODE)} currently set to ${ye.pretty(t.configuration,L,ye.Type.INSPECT)}`:`Invalid field ${ye.pretty(t.configuration,b,ye.Type.CODE)}; expected ${ye.pretty(t.configuration,R,ye.Type.INSPECT)}, found ${ye.pretty(t.configuration,L,ye.Type.INSPECT)}`;h.push({text:_,fixable:!0});continue}typeof R>"u"?(0,ume.default)(v,b):(0,lme.default)(v,b,R),C=!0}C&&a.set(w,v)}h.length>0&&n.set(w,h)}return{changedWorkspaces:a,remainingErrors:n}}function Ame(t,{configuration:e}){let r={children:[]};for(let[o,a]of t){let n=[];for(let A of a){let p=A.text.split(/\n/);A.fixable&&(p[0]=`${ye.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:ye.tuple(ye.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:ye.tuple(ye.Type.NO_HINT,h)}))})}let u={value:ye.tuple(ye.Type.LOCATOR,o.anchoredLocator),children:We.sortMap(n,A=>A.value[1])};r.children.push(u)}return r.children=We.sortMap(r.children,o=>o.value[1]),r}var ame,lme,cme,ume,c2,ngt,igt,sgt,A2=dt(()=>{Ke();ame=tt(r2()),lme=tt(k8()),cme=tt(ome()),ume=tt(T8()),c2=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0;if(typeof o>"u")continue;We.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.prototype.hasOwnProperty.call(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let C=new Set(h.get(A)??[]);if(C.size===0)return[];if(typeof a>"u")a=C;else for(let w of a)C.has(w)||a.delete(w);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.prototype.hasOwnProperty.call(u,A)&&u[A]===p:Object.prototype.hasOwnProperty.call(u,A)===!1))return!1;return!0})),n}},ngt=/^[0-9]+$/,igt=/^[a-zA-Z0-9_]+$/,sgt=new Set(["scripts",...Nt.allDependencies])});var fme=U((s5t,oH)=>{var lgt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(!t.type.is_variable(A)&&!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(t.type.is_integer(A)&&A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else{var p=new t.type.Term("length",[u,new t.type.Num(0,!1),A]);t.type.is_integer(A)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),o.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),C=0;C<A.value;C++)h=new t.type.Term(".",[u,h]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[h,p])),a.substitution,a)])}},"sort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var C=p.sort(t.compare),w=C.length-1;w>0;w--)C[w].equals(C[w-1])&&C.splice(w,1);for(var v=new t.type.Term("[]"),w=C.length-1;w>=0;w--)v=new t.type.Term(".",[C[w],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"msort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var C=p.sort(t.compare),w=new t.type.Term("[]"),v=C.length-1;v>=0;v--)w=new t.type.Term(".",[C[v],w]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,A])),a.substitution,a)])}}},"keysort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h,C=u;C.indicator==="./2";){if(h=C.args[0],t.type.is_variable(h)){o.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){o.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),C=C.args[1]}if(t.type.is_variable(C))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(C))o.throw_error(t.error.type("list",u,n.indicator));else{for(var w=p.sort(t.compare),v=new t.type.Term("[]"),b=w.length-1;b>=0;b--)v=new t.type.Term(".",[new t.type.Term("-",[w[b],w[b].pair]),v]),delete w[b].pair;o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"take/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,C=[],w=A;h>0&&w.indicator==="./2";)C.push(w.args[0]),w=w.args[1],h--;if(h===0){for(var v=new t.type.Term("[]"),h=C.length-1;h>=0;h--)v=new t.type.Term(".",[C[h],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,p])),a.substitution,a)])}}},"drop/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,C=[],w=A;h>0&&w.indicator==="./2";)C.push(w.args[0]),w=w.args[1],h--;h===0&&o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,p])),a.substitution,a)])}},"reverse/2":function(o,a,n){var u=n.args[0],A=n.args[1],p=t.type.is_instantiated_list(u),h=t.type.is_instantiated_list(A);if(t.type.is_variable(u)&&t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(u)&&!t.type.is_fully_list(u))o.throw_error(t.error.type("list",u,n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!p&&!h)o.throw_error(t.error.instantiation(n.indicator));else{for(var C=p?u:A,w=new t.type.Term("[]",[]);C.indicator==="./2";)w=new t.type.Term(".",[C.args[0],w]),C=C.args[1];o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,p?A:u])),a.substitution,a)])}},"list_to_set/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else{for(var p=u,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")o.throw_error(t.error.type("list",u,n.indicator));else{for(var C=[],w=new t.type.Term("[]",[]),v,b=0;b<h.length;b++){v=!1;for(var E=0;E<C.length&&!v;E++)v=t.compare(h[b],C[E])===0;v||C.push(h[b])}for(b=C.length-1;b>=0;b--)w=new t.type.Term(".",[C[b],w]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[A,w])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof oH<"u"?oH.exports=function(o){t=o,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(lgt)});var Pme=U(qr=>{"use strict";var rm=process.platform==="win32",aH="aes-256-cbc",cgt="sha256",gme="The current environment doesn't support interactive reading from TTY.",Un=Ie("fs"),pme=process.binding("tty_wrap").TTY,cH=Ie("child_process"),ah=Ie("path"),uH={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},Xf="none",ru,mC,hme=!1,oh,fQ,lH,ugt=0,gH="",tm=[],pQ,dme=!1,AH=!1,f2=!1;function mme(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(o){return"#"+o.charCodeAt(0)+";"})}return fQ.concat(function(r){var o=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&o.push("--"+a):r[a]==="string"&&t[a]&&o.push("--"+a,e(t[a]))}),o}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Agt(t,e){function r(_){var V,re="",ae;for(lH=lH||Ie("os").tmpdir();;){V=ah.join(lH,_+re);try{ae=Un.openSync(V,"wx")}catch(he){if(he.code==="EEXIST"){re++;continue}else throw he}Un.closeSync(ae);break}return V}var o,a,n,u={},A,p,h=r("readline-sync.stdout"),C=r("readline-sync.stderr"),w=r("readline-sync.exit"),v=r("readline-sync.done"),b=Ie("crypto"),E,R,L;E=b.createHash(cgt),E.update(""+process.pid+ugt+++Math.random()),L=E.digest("hex"),R=b.createDecipher(aH,L),o=mme(t),rm?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+oh+"%Q%"+o.map(function(_){return" %Q%"+_+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+w+"%Q%%Q%) 2>%Q%"+C+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+aH+"%Q% %Q%"+L+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+v+"%Q%"]):(a="/bin/sh",n=["-c",'("'+oh+'"'+o.map(function(_){return" '"+_.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+w+'") 2>"'+C+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+aH+'" "'+L+'" >"'+h+'"; echo 1 >"'+v+'"']),f2&&f2("_execFileSync",o);try{cH.spawn(a,n,e)}catch(_){u.error=new Error(_.message),u.error.method="_execFileSync - spawn",u.error.program=a,u.error.args=n}for(;Un.readFileSync(v,{encoding:t.encoding}).trim()!=="1";);return(A=Un.readFileSync(w,{encoding:t.encoding}).trim())==="0"?u.input=R.update(Un.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+R.final(t.encoding):(p=Un.readFileSync(C,{encoding:t.encoding}).trim(),u.error=new Error(gme+(p?`
245`+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Un.unlinkSync(h),Un.unlinkSync(E),Un.unlinkSync(w),Un.unlinkSync(v),u}function agt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(sh||(tm?process.env.PSModulePath?(sh="powershell.exe",cQ=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(sh="cscript.exe",cQ=["//nologo",__dirname+"\\read.cs.js"]):(sh="/bin/sh",cQ=[__dirname+"/read.sh"])),tm&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),aH.execFileSync){e=gme(t),u2&&u2("execFileSync",e);try{r.input=aH.execFileSync(sh,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(pme+(o?` 245`+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Un.unlinkSync(h),Un.unlinkSync(C),Un.unlinkSync(w),Un.unlinkSync(v),u}function fgt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(oh||(rm?process.env.PSModulePath?(oh="powershell.exe",fQ=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(oh="cscript.exe",fQ=["//nologo",__dirname+"\\read.cs.js"]):(oh="/bin/sh",fQ=[__dirname+"/read.sh"])),rm&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),cH.execFileSync){e=mme(t),f2&&f2("execFileSync",e);try{r.input=cH.execFileSync(oh,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(gme+(o?`
246`+o:"")),r.error.method="execFileSync",r.error.program=sh,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=ogt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function uH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=agt(t);if(n.error)throw n.error;return n.input}return cH&&cH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof Jf=="string")if(Jf=null,tm){if(A=function(h){var E=h.replace(/^\D+/,"").split("."),w=0;return(E[0]=+E[0])&&(w+=E[0]*1e4),(E[1]=+E[1])&&(w+=E[1]*100),(E[2]=+E[2])&&(w+=E[2]),w}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),Jf=process.stdin.fd,mE=process.stdin._handle;else try{Jf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),mE=new Ame(Jf,!0)}catch{}if(process.stdout.isTTY)tu=process.stdout.fd;else{try{tu=Un.openSync("\\\\.\\CON","w")}catch{}if(typeof tu!="number")try{tu=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Jf=Un.openSync("/dev/tty","r"),mE=process.stdin._handle}catch{}}else try{Jf=Un.openSync("/dev/tty","r"),mE=new Ame(Jf,!1)}catch{}if(process.stdout.isTTY)tu=process.stdout.fd;else try{tu=Un.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,E,w,v;uQ="";function b(C){return C===fme?!0:mE.setRawMode(C)!==0?!1:(fme=C,!0)}if(hme||!mE||typeof tu!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Un.writeSync(tu,t.display),t.display=""),!t.displayOnly){if(!b(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=Un.readSync(Jf,p,0,h)}catch(C){if(C.code!=="EOF"){b(!1),e+=a();return}}if(E>0?(w=p.toString(t.encoding,0,E),uQ+=w):(w=` 246`+o:"")),r.error.method="execFileSync",r.error.program=oh,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=Agt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function fH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=fgt(t);if(n.error)throw n.error;return n.input}return AH&&AH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof Xf=="string")if(Xf=null,rm){if(A=function(h){var C=h.replace(/^\D+/,"").split("."),w=0;return(C[0]=+C[0])&&(w+=C[0]*1e4),(C[1]=+C[1])&&(w+=C[1]*100),(C[2]=+C[2])&&(w+=C[2]),w}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),Xf=process.stdin.fd,mC=process.stdin._handle;else try{Xf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),mC=new pme(Xf,!0)}catch{}if(process.stdout.isTTY)ru=process.stdout.fd;else{try{ru=Un.openSync("\\\\.\\CON","w")}catch{}if(typeof ru!="number")try{ru=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Xf=Un.openSync("/dev/tty","r"),mC=process.stdin._handle}catch{}}else try{Xf=Un.openSync("/dev/tty","r"),mC=new pme(Xf,!1)}catch{}if(process.stdout.isTTY)ru=process.stdout.fd;else try{ru=Un.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,C,w,v;pQ="";function b(E){return E===hme?!0:mC.setRawMode(E)!==0?!1:(hme=E,!0)}if(dme||!mC||typeof ru!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Un.writeSync(ru,t.display),t.display=""),!t.displayOnly){if(!b(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){C=0;try{C=Un.readSync(Xf,p,0,h)}catch(E){if(E.code!=="EOF"){b(!1),e+=a();return}}if(C>0?(w=p.toString(t.encoding,0,C),pQ+=w):(w=`
247`,uQ+=String.fromCharCode(0)),w&&typeof(v=(w.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(w=v,n=!0),w&&(w=w.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),w&&u&&(w=w.replace(u,"")),w&&(A||(t.hideEchoBack?t.mask&&Un.writeSync(tu,new Array(w.length+1).join(t.mask)):Un.writeSync(tu,w)),e+=w),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Un.writeSync(tu,` 247`,pQ+=String.fromCharCode(0)),w&&typeof(v=(w.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(w=v,n=!0),w&&(w=w.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),w&&u&&(w=w.replace(u,"")),w&&(A||(t.hideEchoBack?t.mask&&Un.writeSync(ru,new Array(w.length+1).join(t.mask)):Un.writeSync(ru,w)),e+=w),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Un.writeSync(ru,`
248`),b(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` 248`),b(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+`
249`),t.encoding),t.displayOnly?"":pH=t.keepWhitespace||t.keyIn?e:e.trim()}function lgt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function hH(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Ps(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(lH),t.unshift(lH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(!!a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=lgt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function AH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function gH(t,e){var r=oh.normalize(tm?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=oh.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+hH(r)+"(?=\\/|\\\\|$)",tm?"i":""),"~")}function yE(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,E,w){var v;return A||typeof(v=e(E))!="string"?p:v?(h||"")+v+(w||""):""}return t.replace(o,n).replace(a,n)}function dme(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(E,w){return w.length>3?(E.push(w[0]+"..."+w[w.length-1]),p=!0):w.length&&(E=E.concat(w)),E}return o=t.reduce(function(E,w){return E.concat((w+"").split(""))},[]).reduce(function(E,w){var v,b;return e||(w=w.toLowerCase()),v=/^\d$/.test(w)?1:/^[A-Z]$/.test(w)?2:/^[a-z]$/.test(w)?3:0,r&&v===0?A+=w:(b=w.charCodeAt(0),v&&v===n&&b===u+1?a.push(w):(E=h(E,a),a=[w],n=v),u=b),E},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function mme(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function yme(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=dme(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=mme(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=pH;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=oh.basename(r):t==="cwdHome"&&(r=gH(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=em[em.length-n]||"")}return r}function Cme(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o<a?1:-1,n=o;n!==a+u;n+=u)r+=String.fromCharCode(n);return r}function fH(t){var e=new RegExp(/(\s*)(?:("|')(.*?)(?:\2|$)|(\S+))/g),r,o="",a=[],n;for(t=t.trim();r=e.exec(t);)n=r[3]||r[4]||"",r[1]&&(a.push(o),o=""),o+=n;return o&&a.push(o),a}function Eme(t,e){return e.trueValue.length&&AH(t,e.trueValue,e.caseSensitive)?!0:e.falseValue.length&&AH(t,e.falseValue,e.caseSensitive)?!1:t}function Ime(t){var e,r,o,a,n,u,A;function p(E){return yme(E,t)}function h(E){t.display+=(/[^\r\n]$/.test(t.display)?` 249`),t.encoding),t.displayOnly?"":gH=t.keepWhitespace||t.keyIn?e:e.trim()}function pgt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function dH(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Ps(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(uH),t.unshift(uH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(!!a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=pgt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function pH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function mH(t,e){var r=ah.normalize(rm?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=ah.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+dH(r)+"(?=\\/|\\\\|$)",rm?"i":""),"~")}function yC(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,C,w){var v;return A||typeof(v=e(C))!="string"?p:v?(h||"")+v+(w||""):""}return t.replace(o,n).replace(a,n)}function yme(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(C,w){return w.length>3?(C.push(w[0]+"..."+w[w.length-1]),p=!0):w.length&&(C=C.concat(w)),C}return o=t.reduce(function(C,w){return C.concat((w+"").split(""))},[]).reduce(function(C,w){var v,b;return e||(w=w.toLowerCase()),v=/^\d$/.test(w)?1:/^[A-Z]$/.test(w)?2:/^[a-z]$/.test(w)?3:0,r&&v===0?A+=w:(b=w.charCodeAt(0),v&&v===n&&b===u+1?a.push(w):(C=h(C,a),a=[w],n=v),u=b),C},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function Eme(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function Cme(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=yme(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=Eme(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=gH;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=ah.basename(r):t==="cwdHome"&&(r=mH(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=tm[tm.length-n]||"")}return r}function Ime(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o<a?1:-1,n=o;n!==a+u;n+=u)r+=String.fromCharCode(n);return r}function hH(t){var e=new RegExp(/(\s*)(?:("|')(.*?)(?:\2|$)|(\S+))/g),r,o="",a=[],n;for(t=t.trim();r=e.exec(t);)n=r[3]||r[4]||"",r[1]&&(a.push(o),o=""),o+=n;return o&&a.push(o),a}function wme(t,e){return e.trueValue.length&&pH(t,e.trueValue,e.caseSensitive)?!0:e.falseValue.length&&pH(t,e.falseValue,e.caseSensitive)?!1:t}function Bme(t){var e,r,o,a,n,u,A;function p(C){return Cme(C,t)}function h(C){t.display+=(/[^\r\n]$/.test(t.display)?`
250`:"")+E}for(t.limitSrc=t.limit,t.displaySrc=t.display,t.limit="",t.display=yE(t.display+"",p);;){if(e=uH(t),r=!1,o="",t.defaultInput&&!e&&(e=t.defaultInput),t.history&&((a=/^\s*\!(?:\!|-1)(:p)?\s*$/.exec(e))?(n=em[0]||"",a[1]?r=!0:e=n,h(n+` 250`:"")+C}for(t.limitSrc=t.limit,t.displaySrc=t.display,t.limit="",t.display=yC(t.display+"",p);;){if(e=fH(t),r=!1,o="",t.defaultInput&&!e&&(e=t.defaultInput),t.history&&((a=/^\s*\!(?:\!|-1)(:p)?\s*$/.exec(e))?(n=tm[0]||"",a[1]?r=!0:e=n,h(n+`
251`),r||(t.displayOnly=!0,uH(t),t.displayOnly=!1)):e&&e!==em[em.length-1]&&(em=[e])),!r&&t.cd&&e)switch(u=fH(e),u[0].toLowerCase()){case"cd":if(u[1])try{process.chdir(gH(u[1],!0))}catch(E){h(E+"")}r=!0;break;case"pwd":h(process.cwd()),r=!0;break}if(!r&&t.preCheck&&(A=t.preCheck(e,t),e=A.res,A.forceNext&&(r=!0)),!r){if(!t.limitSrc.length||AH(e,t.limitSrc,t.caseSensitive))break;t.limitMessage&&(o=yE(t.limitMessage,p))}h((o?o+` 251`),r||(t.displayOnly=!0,fH(t),t.displayOnly=!1)):e&&e!==tm[tm.length-1]&&(tm=[e])),!r&&t.cd&&e)switch(u=hH(e),u[0].toLowerCase()){case"cd":if(u[1])try{process.chdir(mH(u[1],!0))}catch(C){h(C+"")}r=!0;break;case"pwd":h(process.cwd()),r=!0;break}if(!r&&t.preCheck&&(A=t.preCheck(e,t),e=A.res,A.forceNext&&(r=!0)),!r){if(!t.limitSrc.length||pH(e,t.limitSrc,t.caseSensitive))break;t.limitMessage&&(o=yC(t.limitMessage,p))}h((o?o+`
252`:"")+yE(t.displaySrc+"",p))}return Eme(e,t)}qr._DBG_set_useExt=function(t){hme=t};qr._DBG_set_checkOptions=function(t){cH=t};qr._DBG_set_checkMethod=function(t){u2=t};qr._DBG_clearHistory=function(){pH="",em=[]};qr.setDefaultOptions=function(t){return lH=Ps(!0,t),Ps(!0)};qr.question=function(t,e){return Ime(Ps(Ps(!0,e),{display:t}))};qr.prompt=function(t){var e=Ps(!0,t);return e.display=e.prompt,Ime(e)};qr.keyIn=function(t,e){var r=Ps(Ps(!0,e),{display:t,keyIn:!0,keepWhitespace:!0});return r.limitSrc=r.limit.filter(function(o){var a=typeof o;return a==="string"||a==="number"}).map(function(o){return yE(o+"",Cme)}),r.limit=hH(r.limitSrc.join("")),["trueValue","falseValue"].forEach(function(o){r[o]=r[o].reduce(function(a,n){var u=typeof n;return u==="string"||u==="number"?a=a.concat((n+"").split("")):a.push(n),a},[])}),r.display=yE(r.display+"",function(o){return yme(o,r)}),Eme(uH(r),r)};qr.questionEMail=function(t,e){return t==null&&(t="Input e-mail address: "),qr.question(t,Ps({hideEchoBack:!1,limit:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,limitMessage:"Input valid e-mail address, please.",trueValue:null,falseValue:null},e,{keepWhitespace:!1,cd:!1}))};qr.questionNewPassword=function(t,e){var r,o,a,n=Ps({hideEchoBack:!0,mask:"*",limitMessage:`It can include: $<charlist> 252`:"")+yC(t.displaySrc+"",p))}return wme(e,t)}qr._DBG_set_useExt=function(t){dme=t};qr._DBG_set_checkOptions=function(t){AH=t};qr._DBG_set_checkMethod=function(t){f2=t};qr._DBG_clearHistory=function(){gH="",tm=[]};qr.setDefaultOptions=function(t){return uH=Ps(!0,t),Ps(!0)};qr.question=function(t,e){return Bme(Ps(Ps(!0,e),{display:t}))};qr.prompt=function(t){var e=Ps(!0,t);return e.display=e.prompt,Bme(e)};qr.keyIn=function(t,e){var r=Ps(Ps(!0,e),{display:t,keyIn:!0,keepWhitespace:!0});return r.limitSrc=r.limit.filter(function(o){var a=typeof o;return a==="string"||a==="number"}).map(function(o){return yC(o+"",Ime)}),r.limit=dH(r.limitSrc.join("")),["trueValue","falseValue"].forEach(function(o){r[o]=r[o].reduce(function(a,n){var u=typeof n;return u==="string"||u==="number"?a=a.concat((n+"").split("")):a.push(n),a},[])}),r.display=yC(r.display+"",function(o){return Cme(o,r)}),wme(fH(r),r)};qr.questionEMail=function(t,e){return t==null&&(t="Input e-mail address: "),qr.question(t,Ps({hideEchoBack:!1,limit:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,limitMessage:"Input valid e-mail address, please.",trueValue:null,falseValue:null},e,{keepWhitespace:!1,cd:!1}))};qr.questionNewPassword=function(t,e){var r,o,a,n=Ps({hideEchoBack:!0,mask:"*",limitMessage:`It can include: $<charlist>
253And the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(b){return b==="charlist"?r.text:b==="length"?o+"..."+a:null}}),u,A,p,h,E,w,v;for(e=e||{},u=yE(e.charlist?e.charlist+"":"$<!-~>",Cme),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+hH(u)+"]{"+o+","+a+"}$"),r=dme([u],n.caseSensitive,!0),r.text=mme(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!v;)n.limit=h,n.limitMessage=E,w=qr.question(t,n),n.limit=[w,""],n.limitMessage=p,v=qr.question(A,n);return w};function wme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return qr.question(t,Ps({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}qr.questionInt=function(t,e){return wme(t,e,function(r){return parseInt(r,10)})};qr.questionFloat=function(t,e){return wme(t,e,parseFloat)};qr.questionPath=function(t,e){var r,o="",a=Ps({hideEchoBack:!1,limitMessage:`$<error( 253And the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(b){return b==="charlist"?r.text:b==="length"?o+"..."+a:null}}),u,A,p,h,C,w,v;for(e=e||{},u=yC(e.charlist?e.charlist+"":"$<!-~>",Ime),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+dH(u)+"]{"+o+","+a+"}$"),r=yme([u],n.caseSensitive,!0),r.text=Eme(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),C=n.limitMessage;!v;)n.limit=h,n.limitMessage=C,w=qr.question(t,n),n.limit=[w,""],n.limitMessage=p,v=qr.question(A,n);return w};function vme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return qr.question(t,Ps({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}qr.questionInt=function(t,e){return vme(t,e,function(r){return parseInt(r,10)})};qr.questionFloat=function(t,e){return vme(t,e,parseFloat)};qr.questionPath=function(t,e){var r,o="",a=Ps({hideEchoBack:!1,limitMessage:`$<error(
254)>Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=gH(n,!0),o="";function h(E){E.split(/\/|\\/).reduce(function(w,v){var b=oh.resolve(w+=v+oh.sep);if(!Un.existsSync(b))Un.mkdirSync(b);else if(!Un.statSync(b).isDirectory())throw new Error("Non directory already exists: "+b);return w},"")}try{if(u=Un.existsSync(n),r=u?Un.realpathSync(n):oh.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(oh.dirname(r)),Un.closeSync(Un.openSync(r,"w"))),r=Un.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Un.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(E){return o=E+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),qr.question(t,a),r};function Bme(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=fH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=fH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}qr.promptCL=function(t,e){var r=Ps({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=Bme(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,qr.prompt(r),o.args};qr.promptLoop=function(t,e){for(var r=Ps({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(qr.prompt(r)););};qr.promptCLLoop=function(t,e){var r=Ps({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=Bme(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;qr.prompt(r),!o.hRes;);};qr.promptSimShell=function(t){return qr.prompt(Ps({hideEchoBack:!1,history:!0},t,{prompt:function(){return tm?"$<cwd>>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$<cwdHome>$ "}()}))};function vme(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=qr.keyIn(t,Ps(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}qr.keyInYN=function(t,e){return vme(t,e)};qr.keyInYNStrict=function(t,e){return vme(t,e,"yn")};qr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),qr.keyIn(t,Ps({limit:null},e,{hideEchoBack:!0,mask:""}))};qr.keyInSelect=function(t,e,r){var o=Ps({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=` 254)>Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=mH(n,!0),o="";function h(C){C.split(/\/|\\/).reduce(function(w,v){var b=ah.resolve(w+=v+ah.sep);if(!Un.existsSync(b))Un.mkdirSync(b);else if(!Un.statSync(b).isDirectory())throw new Error("Non directory already exists: "+b);return w},"")}try{if(u=Un.existsSync(n),r=u?Un.realpathSync(n):ah.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(ah.dirname(r)),Un.closeSync(Un.openSync(r,"w"))),r=Un.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Un.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(C){return o=C+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),qr.question(t,a),r};function Dme(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=hH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=hH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}qr.promptCL=function(t,e){var r=Ps({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=Dme(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,qr.prompt(r),o.args};qr.promptLoop=function(t,e){for(var r=Ps({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(qr.prompt(r)););};qr.promptCLLoop=function(t,e){var r=Ps({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=Dme(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;qr.prompt(r),!o.hRes;);};qr.promptSimShell=function(t){return qr.prompt(Ps({hideEchoBack:!1,history:!0},t,{prompt:function(){return rm?"$<cwd>>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$<cwdHome>$ "}()}))};function Sme(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=qr.keyIn(t,Ps(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}qr.keyInYN=function(t,e){return Sme(t,e)};qr.keyInYNStrict=function(t,e){return Sme(t,e,"yn")};qr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),qr.keyIn(t,Ps({limit:null},e,{hideEchoBack:!0,mask:""}))};qr.keyInSelect=function(t,e,r){var o=Ps({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=`
255`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(u);a+=E,n[E]=h,A+="["+E+"] "+(p+"").trim()+` 255`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var C=String.fromCharCode(u);a+=C,n[C]=h,A+="["+C+"] "+(p+"").trim()+`
256`,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` 256`,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+`
257`),o.limit=a,A+=` 257`),o.limit=a,A+=`
258`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$<limit>]: "),A+=e),n[qr.keyIn(A,o).toLowerCase()]};qr.getRawInput=function(){return uQ};function A2(t,e){var r;return e.length&&(r={},r[t]=e[0]),qr.setDefaultOptions(r)[t]}qr.setPrint=function(){return A2("print",arguments)};qr.setPrompt=function(){return A2("prompt",arguments)};qr.setEncoding=function(){return A2("encoding",arguments)};qr.setMask=function(){return A2("mask",arguments)};qr.setBufferSize=function(){return A2("bufferSize",arguments)}});var dH=U((e5t,dl)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(I,P,y){var F=tau_file_system.files[I];if(!F){if(y==="read")return null;F={path:I,text:"",type:P,get:function(J,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+J)},put:function(J,X){return X==="end_of_file"?(this.text+=J,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+J+this.text.substring(X+J.length),!0)},get_byte:function(J){if(J==="end_of_stream")return-1;var X=Math.floor(J/2);if(this.text.length<=X)return-1;var $=n(this.text[Math.floor(J/2)],0);return J%2===0?$&255:$/256>>>0},put_byte:function(J,X){var $=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<$)return null;var ie=this.text.length===$?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(ie=ie/256>>>0,ie=(ie&255)<<8|J&255):(ie=ie&255,ie=(J&255)<<8|ie&255),this.text.length===$?this.text+=u(ie):this.text=this.text.substring(0,$)+u(ie)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var J=tau_file_system.files[this.path];return J?!0:null}},tau_file_system.files[I]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(I,P){for(var y;tau_user_input.buffer.length<I;)y=window.prompt(),y&&(tau_user_input.buffer+=y);return y=tau_user_input.buffer.substr(0,I),tau_user_input.buffer=tau_user_input.buffer.substr(I),y}},tau_user_output={put:function(I,P){return console.log(I),!0},flush:function(){return!0}},nodejs_file_system={open:function(I,P,y){var F=Ie("fs"),J=F.openSync(I,y[0]);return y==="read"&&!F.existsSync(I)?null:{get:function(X,$){var ie=new Buffer(X);return F.readSync(J,ie,0,X,$),ie.toString()},put:function(X,$){var ie=Buffer.from(X);if($==="end_of_file")F.writeSync(J,ie);else{if($==="past_end_of_file")return null;F.writeSync(J,ie,0,ie.length,$)}return!0},get_byte:function(X){return null},put_byte:function(X,$){return null},flush:function(){return!0},close:function(){return F.closeSync(J),!0}}}},nodejs_user_input={buffer:"",get:function(I,P){for(var y,F=Dme();nodejs_user_input.buffer.length<I;)nodejs_user_input.buffer+=F.question();return y=nodejs_user_input.buffer.substr(0,I),nodejs_user_input.buffer=nodejs_user_input.buffer.substr(I),y}},nodejs_user_output={put:function(I,P){return process.stdout.write(I),!0},flush:function(){return!0}};var e;Array.prototype.indexOf?e=function(I,P){return I.indexOf(P)}:e=function(I,P){for(var y=I.length,F=0;F<y;F++)if(P===I[F])return F;return-1};var r=function(I,P){if(I.length!==0){for(var y=I[0],F=I.length,J=1;J<F;J++)y=P(y,I[J]);return y}},o;Array.prototype.map?o=function(I,P){return I.map(P)}:o=function(I,P){for(var y=[],F=I.length,J=0;J<F;J++)y.push(P(I[J]));return y};var a;Array.prototype.filter?a=function(I,P){return I.filter(P)}:a=function(I,P){for(var y=[],F=I.length,J=0;J<F;J++)P(I[J])&&y.push(I[J]);return y};var n;String.prototype.codePointAt?n=function(I,P){return I.codePointAt(P)}:n=function(I,P){return I.charCodeAt(P)};var u;String.fromCodePoint?u=function(){return String.fromCodePoint.apply(null,arguments)}:u=function(){return String.fromCharCode.apply(null,arguments)};var A=0,p=1,h=/(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)|\\x([0-9a-fA-F]+)\\|\\([0-7]+)\\|(\\\\)|(\\')|('')|(\\")|(\\`)|(\\.)|(.)/g,E={"\\a":7,"\\b":8,"\\f":12,"\\n":10,"\\r":13,"\\t":9,"\\v":11};function w(I){var P=[],y=!1;return I.replace(h,function(F,J,X,$,ie,ke,Ne,st,ht,Ut,Xt,Pt,tn,Dr,fr,Br,jr){switch(!0){case ht!==void 0:return P.push(parseInt(ht,16)),"";case Ut!==void 0:return P.push(parseInt(Ut,8)),"";case Xt!==void 0:case Pt!==void 0:case tn!==void 0:case Dr!==void 0:case fr!==void 0:return P.push(n(F.substr(1),0)),"";case jr!==void 0:return P.push(n(jr,0)),"";case Br!==void 0:y=!0;default:return P.push(E[F]),""}}),y?null:P}function v(I,P){var y="";if(I.length<2)return I;try{I=I.replace(/\\([0-7]+)\\/g,function($,ie){return u(parseInt(ie,8))}),I=I.replace(/\\x([0-9a-fA-F]+)\\/g,function($,ie){return u(parseInt(ie,16))})}catch{return null}for(var F=0;F<I.length;F++){var J=I.charAt(F),X=I.charAt(F+1);if(J===P&&X===P)F++,y+=P;else if(J==="\\")if(["a","b","f","n","r","t","v","'",'"',"\\","a","\b","\f",` 258`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$<limit>]: "),A+=e),n[qr.keyIn(A,o).toLowerCase()]};qr.getRawInput=function(){return pQ};function p2(t,e){var r;return e.length&&(r={},r[t]=e[0]),qr.setDefaultOptions(r)[t]}qr.setPrint=function(){return p2("print",arguments)};qr.setPrompt=function(){return p2("prompt",arguments)};qr.setEncoding=function(){return p2("encoding",arguments)};qr.setMask=function(){return p2("mask",arguments)};qr.setBufferSize=function(){return p2("bufferSize",arguments)}});var yH=U((a5t,ml)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(I,P,y){var F=tau_file_system.files[I];if(!F){if(y==="read")return null;F={path:I,text:"",type:P,get:function(z,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+z)},put:function(z,X){return X==="end_of_file"?(this.text+=z,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+z+this.text.substring(X+z.length),!0)},get_byte:function(z){if(z==="end_of_stream")return-1;var X=Math.floor(z/2);if(this.text.length<=X)return-1;var $=n(this.text[Math.floor(z/2)],0);return z%2===0?$&255:$/256>>>0},put_byte:function(z,X){var $=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<$)return null;var ie=this.text.length===$?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(ie=ie/256>>>0,ie=(ie&255)<<8|z&255):(ie=ie&255,ie=(z&255)<<8|ie&255),this.text.length===$?this.text+=u(ie):this.text=this.text.substring(0,$)+u(ie)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[I]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(I,P){for(var y;tau_user_input.buffer.length<I;)y=window.prompt(),y&&(tau_user_input.buffer+=y);return y=tau_user_input.buffer.substr(0,I),tau_user_input.buffer=tau_user_input.buffer.substr(I),y}},tau_user_output={put:function(I,P){return console.log(I),!0},flush:function(){return!0}},nodejs_file_system={open:function(I,P,y){var F=Ie("fs"),z=F.openSync(I,y[0]);return y==="read"&&!F.existsSync(I)?null:{get:function(X,$){var ie=new Buffer(X);return F.readSync(z,ie,0,X,$),ie.toString()},put:function(X,$){var ie=Buffer.from(X);if($==="end_of_file")F.writeSync(z,ie);else{if($==="past_end_of_file")return null;F.writeSync(z,ie,0,ie.length,$)}return!0},get_byte:function(X){return null},put_byte:function(X,$){return null},flush:function(){return!0},close:function(){return F.closeSync(z),!0}}}},nodejs_user_input={buffer:"",get:function(I,P){for(var y,F=Pme();nodejs_user_input.buffer.length<I;)nodejs_user_input.buffer+=F.question();return y=nodejs_user_input.buffer.substr(0,I),nodejs_user_input.buffer=nodejs_user_input.buffer.substr(I),y}},nodejs_user_output={put:function(I,P){return process.stdout.write(I),!0},flush:function(){return!0}};var e;Array.prototype.indexOf?e=function(I,P){return I.indexOf(P)}:e=function(I,P){for(var y=I.length,F=0;F<y;F++)if(P===I[F])return F;return-1};var r=function(I,P){if(I.length!==0){for(var y=I[0],F=I.length,z=1;z<F;z++)y=P(y,I[z]);return y}},o;Array.prototype.map?o=function(I,P){return I.map(P)}:o=function(I,P){for(var y=[],F=I.length,z=0;z<F;z++)y.push(P(I[z]));return y};var a;Array.prototype.filter?a=function(I,P){return I.filter(P)}:a=function(I,P){for(var y=[],F=I.length,z=0;z<F;z++)P(I[z])&&y.push(I[z]);return y};var n;String.prototype.codePointAt?n=function(I,P){return I.codePointAt(P)}:n=function(I,P){return I.charCodeAt(P)};var u;String.fromCodePoint?u=function(){return String.fromCodePoint.apply(null,arguments)}:u=function(){return String.fromCharCode.apply(null,arguments)};var A=0,p=1,h=/(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)|\\x([0-9a-fA-F]+)\\|\\([0-7]+)\\|(\\\\)|(\\')|('')|(\\")|(\\`)|(\\.)|(.)/g,C={"\\a":7,"\\b":8,"\\f":12,"\\n":10,"\\r":13,"\\t":9,"\\v":11};function w(I){var P=[],y=!1;return I.replace(h,function(F,z,X,$,ie,ke,Ne,st,ht,Ut,Xt,xt,tn,Dr,fr,Br,jr){switch(!0){case ht!==void 0:return P.push(parseInt(ht,16)),"";case Ut!==void 0:return P.push(parseInt(Ut,8)),"";case Xt!==void 0:case xt!==void 0:case tn!==void 0:case Dr!==void 0:case fr!==void 0:return P.push(n(F.substr(1),0)),"";case jr!==void 0:return P.push(n(jr,0)),"";case Br!==void 0:y=!0;default:return P.push(C[F]),""}}),y?null:P}function v(I,P){var y="";if(I.length<2)return I;try{I=I.replace(/\\([0-7]+)\\/g,function($,ie){return u(parseInt(ie,8))}),I=I.replace(/\\x([0-9a-fA-F]+)\\/g,function($,ie){return u(parseInt(ie,16))})}catch{return null}for(var F=0;F<I.length;F++){var z=I.charAt(F),X=I.charAt(F+1);if(z===P&&X===P)F++,y+=P;else if(z==="\\")if(["a","b","f","n","r","t","v","'",'"',"\\","a","\b","\f",`
259`,"\r"," ","\v"].indexOf(X)!==-1)switch(F+=1,X){case"a":y+="a";break;case"b":y+="\b";break;case"f":y+="\f";break;case"n":y+=` 259`,"\r"," ","\v"].indexOf(X)!==-1)switch(F+=1,X){case"a":y+="a";break;case"b":y+="\b";break;case"f":y+="\f";break;case"n":y+=`
260`;break;case"r":y+="\r";break;case"t":y+=" ";break;case"v":y+="\v";break;case"'":y+="'";break;case'"':y+='"';break;case"\\":y+="\\";break}else return null;else y+=J}return y}function b(I){for(var P="",y=0;y<I.length;y++)switch(I.charAt(y)){case"'":P+="\\'";break;case"\\":P+="\\\\";break;case"\b":P+="\\b";break;case"\f":P+="\\f";break;case` 260`;break;case"r":y+="\r";break;case"t":y+=" ";break;case"v":y+="\v";break;case"'":y+="'";break;case'"':y+='"';break;case"\\":y+="\\";break}else return null;else y+=z}return y}function b(I){for(var P="",y=0;y<I.length;y++)switch(I.charAt(y)){case"'":P+="\\'";break;case"\\":P+="\\\\";break;case"\b":P+="\\b";break;case"\f":P+="\\f";break;case`
261`:P+="\\n";break;case"\r":P+="\\r";break;case" ":P+="\\t";break;case"\v":P+="\\v";break;default:P+=I.charAt(y);break}return P}function C(I){var P=I.substr(2);switch(I.substr(0,2).toLowerCase()){case"0x":return parseInt(P,16);case"0b":return parseInt(P,2);case"0o":return parseInt(P,8);case"0'":return w(P)[0];default:return parseFloat(I)}}var R={whitespace:/^\s*(?:(?:%.*)|(?:\/\*(?:\n|\r|.)*?\*\/)|(?:\s+))\s*/,variable:/^(?:[A-Z_][a-zA-Z0-9_]*)/,atom:/^(\!|,|;|[a-z][0-9a-zA-Z_]*|[#\$\&\*\+\-\.\/\:\<\=\>\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(I,P){return I.get_flag("char_conversion").id==="on"?P.replace(/./g,function(y){return I.get_char_conversion(y)}):P}function _(I){this.thread=I,this.text="",this.tokens=[]}_.prototype.set_last_tokens=function(I){return this.tokens=I},_.prototype.new_text=function(I){this.text=I,this.tokens=[]},_.prototype.get_tokens=function(I){var P,y=0,F=0,J=0,X=[],$=!1;if(I){var ie=this.tokens[I-1];y=ie.len,P=L(this.thread,this.text.substr(ie.len)),F=ie.line,J=ie.start}else P=this.text;if(/^\s*$/.test(P))return null;for(;P!=="";){var ke=[],Ne=!1;if(/^\n/.exec(P)!==null){F++,J=0,y++,P=P.replace(/\n/,""),$=!0;continue}for(var st in R)if(R.hasOwnProperty(st)){var ht=R[st].exec(P);ht&&ke.push({value:ht[0],name:st,matches:ht})}if(!ke.length)return this.set_last_tokens([{value:P,matches:[],name:"lexical",line:F,start:J}]);var ie=r(ke,function(Dr,fr){return Dr.value.length>=fr.value.length?Dr:fr});switch(ie.start=J,ie.line=F,P=P.replace(ie.value,""),J+=ie.value.length,y+=ie.value.length,ie.name){case"atom":ie.raw=ie.value,ie.value.charAt(0)==="'"&&(ie.value=v(ie.value.substr(1,ie.value.length-2),"'"),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence"));break;case"number":ie.float=ie.value.substring(0,2)!=="0x"&&ie.value.match(/[.eE]/)!==null&&ie.value!=="0'.",ie.value=C(ie.value),ie.blank=Ne;break;case"string":var Ut=ie.value.charAt(0);ie.value=v(ie.value.substr(1,ie.value.length-2),Ut),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence");break;case"whitespace":var Xt=X[X.length-1];Xt&&(Xt.space=!0),Ne=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(ie=X.pop(),ie.name="atom",ie.value="{}",ie.raw="{}",ie.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(ie=X.pop(),ie.name="atom",ie.value="[]",ie.raw="[]",ie.space=!1);break}ie.len=y,X.push(ie),Ne=!1}var Pt=this.set_last_tokens(X);return Pt.length===0?null:Pt};function V(I,P,y,F,J){if(!P[y])return{type:A,value:x.error.syntax(P[y-1],"expression expected",!0)};var X;if(F==="0"){var $=P[y];switch($.name){case"number":return{type:p,len:y+1,value:new x.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new x.type.Var($.value)};case"string":var ie;switch(I.get_flag("double_quotes").id){case"atom":ie=new H($.value,[]);break;case"codes":ie=new H("[]",[]);for(var ke=$.value.length-1;ke>=0;ke--)ie=new H(".",[new x.type.Num(n($.value,ke),!1),ie]);break;case"chars":ie=new H("[]",[]);for(var ke=$.value.length-1;ke>=0;ke--)ie=new H(".",[new x.type.Term($.value.charAt(ke),[]),ie]);break}return{type:p,len:y+1,value:ie};case"l_paren":var Pt=V(I,P,y+1,I.__get_max_priority(),!0);return Pt.type!==p?Pt:P[Pt.len]&&P[Pt.len].name==="r_paren"?(Pt.len++,Pt):{type:A,derived:!0,value:x.error.syntax(P[Pt.len]?P[Pt.len]:P[Pt.len-1],") or operator expected",!P[Pt.len])};case"l_bracket":var Pt=V(I,P,y+1,I.__get_max_priority(),!0);return Pt.type!==p?Pt:P[Pt.len]&&P[Pt.len].name==="r_bracket"?(Pt.len++,Pt.value=new H("{}",[Pt.value]),Pt):{type:A,derived:!0,value:x.error.syntax(P[Pt.len]?P[Pt.len]:P[Pt.len-1],"} or operator expected",!P[Pt.len])}}var Ne=re(I,P,y,J);return Ne.type===p||Ne.derived||(Ne=oe(I,P,y),Ne.type===p||Ne.derived)?Ne:{type:A,derived:!1,value:x.error.syntax(P[y],"unexpected token")}}var st=I.__get_max_priority(),ht=I.__get_next_priority(F),Ut=y;if(P[y].name==="atom"&&P[y+1]&&(P[y].space||P[y+1].name!=="l_paren")){var $=P[y++],Xt=I.__lookup_operator_classes(F,$.value);if(Xt&&Xt.indexOf("fy")>-1){var Pt=V(I,P,y,F,J);if(Pt.type!==A)return $.value==="-"&&!$.space&&x.type.is_number(Pt.value)?{value:new x.type.Num(-Pt.value.value,Pt.value.is_float),len:Pt.len,type:p}:{value:new x.type.Term($.value,[Pt.value]),len:Pt.len,type:p};X=Pt}else if(Xt&&Xt.indexOf("fx")>-1){var Pt=V(I,P,y,ht,J);if(Pt.type!==A)return{value:new x.type.Term($.value,[Pt.value]),len:Pt.len,type:p};X=Pt}}y=Ut;var Pt=V(I,P,y,ht,J);if(Pt.type===p){y=Pt.len;var $=P[y];if(P[y]&&(P[y].name==="atom"&&I.__lookup_operator_classes(F,$.value)||P[y].name==="bar"&&I.__lookup_operator_classes(F,"|"))){var tn=ht,Dr=F,Xt=I.__lookup_operator_classes(F,$.value);if(Xt.indexOf("xf")>-1)return{value:new x.type.Term($.value,[Pt.value]),len:++Pt.len,type:p};if(Xt.indexOf("xfx")>-1){var fr=V(I,P,y+1,tn,J);return fr.type===p?{value:new x.type.Term($.value,[Pt.value,fr.value]),len:fr.len,type:p}:(fr.derived=!0,fr)}else if(Xt.indexOf("xfy")>-1){var fr=V(I,P,y+1,Dr,J);return fr.type===p?{value:new x.type.Term($.value,[Pt.value,fr.value]),len:fr.len,type:p}:(fr.derived=!0,fr)}else if(Pt.type!==A)for(;;){y=Pt.len;var $=P[y];if($&&$.name==="atom"&&I.__lookup_operator_classes(F,$.value)){var Xt=I.__lookup_operator_classes(F,$.value);if(Xt.indexOf("yf")>-1)Pt={value:new x.type.Term($.value,[Pt.value]),len:++y,type:p};else if(Xt.indexOf("yfx")>-1){var fr=V(I,P,++y,tn,J);if(fr.type===A)return fr.derived=!0,fr;y=fr.len,Pt={value:new x.type.Term($.value,[Pt.value,fr.value]),len:y,type:p}}else break}else break}}else X={type:A,value:x.error.syntax(P[Pt.len-1],"operator expected")};return Pt}return Pt}function re(I,P,y,F){if(!P[y]||P[y].name==="atom"&&P[y].raw==="."&&!F&&(P[y].space||!P[y+1]||P[y+1].name!=="l_paren"))return{type:A,derived:!1,value:x.error.syntax(P[y-1],"unfounded token")};var J=P[y],X=[];if(P[y].name==="atom"&&P[y].raw!==","){if(y++,P[y-1].space)return{type:p,len:y,value:new x.type.Term(J.value,X)};if(P[y]&&P[y].name==="l_paren"){if(P[y+1]&&P[y+1].name==="r_paren")return{type:A,derived:!0,value:x.error.syntax(P[y+1],"argument expected")};var $=V(I,P,++y,"999",!0);if($.type===A)return $.derived?$:{type:A,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],"argument expected",!P[y])};for(X.push($.value),y=$.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if($=V(I,P,y+1,"999",!0),$.type===A)return $.derived?$:{type:A,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};X.push($.value),y=$.len}if(P[y]&&P[y].name==="r_paren")y++;else return{type:A,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],", or ) expected",!P[y])}}return{type:p,len:y,value:new x.type.Term(J.value,X)}}return{type:A,derived:!1,value:x.error.syntax(P[y],"term expected")}}function oe(I,P,y){if(!P[y])return{type:A,derived:!1,value:x.error.syntax(P[y-1],"[ expected")};if(P[y]&&P[y].name==="l_brace"){var F=V(I,P,++y,"999",!0),J=[F.value],X=void 0;if(F.type===A)return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:new x.type.Term("[]",[])}:{type:A,derived:!0,value:x.error.syntax(P[y],"] expected")};for(y=F.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if(F=V(I,P,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};J.push(F.value),y=F.len}var $=!1;if(P[y]&&P[y].name==="bar"){if($=!0,F=V(I,P,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};X=F.value,y=F.len}return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:g(J,X)}:{type:A,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],$?"] expected":", or | or ] expected",!P[y])}}return{type:A,derived:!1,value:x.error.syntax(P[y],"list expected")}}function pe(I,P,y){var F=P[y].line,J=V(I,P,y,I.__get_max_priority(),!1),X=null,$;if(J.type!==A)if(y=J.len,P[y]&&P[y].name==="atom"&&P[y].raw===".")if(y++,x.type.is_term(J.value)){if(J.value.indicator===":-/2"?(X=new x.type.Rule(J.value.args[0],Pe(J.value.args[1])),$={value:X,len:y,type:p}):J.value.indicator==="-->/2"?(X=ge(new x.type.Rule(J.value.args[0],J.value.args[1]),I),X.body=Pe(X.body),$={value:X,len:y,type:x.type.is_rule(X)?p:A}):(X=new x.type.Rule(J.value,null),$={value:X,len:y,type:p}),X){var ie=X.singleton_variables();ie.length>0&&I.throw_warning(x.warning.singleton(ie,X.head.indicator,F))}return $}else return{type:A,value:x.error.syntax(P[y],"callable expected")};else return{type:A,value:x.error.syntax(P[y]?P[y]:P[y-1],". or operator expected")};return J}function he(I,P,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new _(I),J={},X;F.new_text(P);var $=0,ie=F.get_tokens($);do{if(ie===null||!ie[$])break;var ke=pe(I,ie,$);if(ke.type===A)return new H("throw",[ke.value]);if(ke.value.body===null&&ke.value.head.indicator==="?-/1"){var Ne=new At(I.session);Ne.add_goal(ke.value.head.args[0]),Ne.answer(function(ht){x.type.is_error(ht)?I.throw_warning(ht.args[0]):(ht===!1||ht===null)&&I.throw_warning(x.warning.failed_goal(ke.value.head.args[0],ke.len))}),$=ke.len;var st=!0}else if(ke.value.body===null&&ke.value.head.indicator===":-/1"){var st=I.run_directive(ke.value.head.args[0]);$=ke.len,ke.value.head.args[0].indicator==="char_conversion/2"&&(ie=F.get_tokens($),$=0)}else{X=ke.value.head.indicator,y.reconsult!==!1&&J[X]!==!0&&!I.is_multifile_predicate(X)&&(I.session.rules[X]=a(I.session.rules[X]||[],function(Ut){return Ut.dynamic}),J[X]=!0);var st=I.add_rule(ke.value,y);$=ke.len}if(!st)return st}while(!0);return!0}function ve(I,P){var y=new _(I);y.new_text(P);var F=0;do{var J=y.get_tokens(F);if(J===null)break;var X=V(I,J,0,I.__get_max_priority(),!1);if(X.type!==A){var $=X.len,ie=$;if(J[$]&&J[$].name==="atom"&&J[$].raw===".")I.add_goal(Pe(X.value));else{var ke=J[$];return new H("throw",[x.error.syntax(ke||J[$-1],". or operator expected",!ke)])}F=X.len+1}else return new H("throw",[X.value])}while(!0);return!0}function ge(I,P){I=I.rename(P);var y=P.next_free_variable(),F=le(I.body,y,P);return F.error?F.value:(I.body=F.value,I.head.args=I.head.args.concat([y,F.variable]),I.head=new H(I.head.id,I.head.args),I)}function le(I,P,y){var F;if(x.type.is_term(I)&&I.indicator==="!/0")return{value:I,variable:P,error:!1};if(x.type.is_term(I)&&I.indicator===",/2"){var J=le(I.args[0],P,y);if(J.error)return J;var X=le(I.args[1],J.variable,y);return X.error?X:{value:new H(",",[J.value,X.value]),variable:X.variable,error:!1}}else{if(x.type.is_term(I)&&I.indicator==="{}/1")return{value:I.args[0],variable:P,error:!1};if(x.type.is_empty_list(I))return{value:new H("true",[]),variable:P,error:!1};if(x.type.is_list(I)){F=y.next_free_variable();for(var $=I,ie;$.indicator==="./2";)ie=$,$=$.args[1];return x.type.is_variable($)?{value:x.error.instantiation("DCG"),variable:P,error:!0}:x.type.is_empty_list($)?(ie.args[1]=F,{value:new H("=",[P,I]),variable:F,error:!1}):{value:x.error.type("list",I,"DCG"),variable:P,error:!0}}else return x.type.is_callable(I)?(F=y.next_free_variable(),I.args=I.args.concat([P,F]),I=new H(I.id,I.args),{value:I,variable:F,error:!1}):{value:x.error.type("callable",I,"DCG"),variable:P,error:!0}}}function Pe(I){return x.type.is_variable(I)?new H("call",[I]):x.type.is_term(I)&&[",/2",";/2","->/2"].indexOf(I.indicator)!==-1?new H(I.id,[Pe(I.args[0]),Pe(I.args[1])]):I}function g(I,P){for(var y=P||new x.type.Term("[]",[]),F=I.length-1;F>=0;F--)y=new x.type.Term(".",[I[F],y]);return y}function De(I,P){for(var y=I.length-1;y>=0;y--)I[y]===P&&I.splice(y,1)}function Ce(I){for(var P={},y=[],F=0;F<I.length;F++)I[F]in P||(y.push(I[F]),P[I[F]]=!0);return y}function de(I,P,y,F){if(I.session.rules[y]!==null){for(var J=0;J<I.session.rules[y].length;J++)if(I.session.rules[y][J]===F){I.session.rules[y].splice(J,1),I.success(P);break}}}function ne(I){return function(P,y,F){var J=F.args[0],X=F.args.slice(1,I);if(x.type.is_variable(J))P.throw_error(x.error.instantiation(P.level));else if(!x.type.is_callable(J))P.throw_error(x.error.type("callable",J,P.level));else{var $=new H(J.id,J.args.concat(X));P.prepend([new Qe(y.goal.replace($),y.substitution,y)])}}}function Z(I){for(var P=I.length-1;P>=0;P--)if(I.charAt(P)==="/")return new H("/",[new H(I.substring(0,P)),new be(parseInt(I.substring(P+1)),!1)])}function me(I){this.id=I}function be(I,P){this.is_float=P!==void 0?P:parseInt(I)!==I,this.value=this.is_float?I:parseInt(I)}var ut=0;function H(I,P,y){this.ref=y||++ut,this.id=I,this.args=P||[],this.indicator=I+"/"+this.args.length}var yt=0;function Me(I,P,y,F,J,X){this.id=yt++,this.stream=I,this.mode=P,this.alias=y,this.type=F!==void 0?F:"text",this.reposition=J!==void 0?J:!0,this.eof_action=X!==void 0?X:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function Te(I){I=I||{},this.links=I}function Qe(I,P,y){P=P||new Te,y=y||null,this.goal=I,this.substitution=P,this.parent=y}function _e(I,P,y){this.head=I,this.body=P,this.dynamic=y||!1}function qe(I){I=I===void 0||I<=0?1e3:I,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new At(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=I,this.streams={user_input:new Me(typeof dl<"u"&&dl.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Me(typeof dl<"u"&&dl.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof dl<"u"&&dl.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(P){return P.substitution},this.format_error=function(P){return P.goal},this.flag={bounded:x.flag.bounded.value,max_integer:x.flag.max_integer.value,min_integer:x.flag.min_integer.value,integer_rounding_function:x.flag.integer_rounding_function.value,char_conversion:x.flag.char_conversion.value,debug:x.flag.debug.value,max_arity:x.flag.max_arity.value,unknown:x.flag.unknown.value,double_quotes:x.flag.double_quotes.value,occurs_check:x.flag.occurs_check.value,dialect:x.flag.dialect.value,version_data:x.flag.version_data.value,nodejs:x.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function At(I){this.epoch=Date.now(),this.session=I,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function Oe(I,P,y){this.id=I,this.rules=P,this.exports=y,x.module[I]=this}Oe.prototype.exports_predicate=function(I){return this.exports.indexOf(I)!==-1},me.prototype.unify=function(I,P){if(P&&e(I.variables(),this.id)!==-1&&!x.type.is_variable(I))return null;var y={};return y[this.id]=I,new Te(y)},be.prototype.unify=function(I,P){return x.type.is_number(I)&&this.value===I.value&&this.is_float===I.is_float?new Te:null},H.prototype.unify=function(I,P){if(x.type.is_term(I)&&this.indicator===I.indicator){for(var y=new Te,F=0;F<this.args.length;F++){var J=x.unify(this.args[F].apply(y),I.args[F].apply(y),P);if(J===null)return null;for(var X in J.links)y.links[X]=J.links[X];y=y.apply(J)}return y}return null},Me.prototype.unify=function(I,P){return x.type.is_stream(I)&&this.id===I.id?new Te:null},me.prototype.toString=function(I){return this.id},be.prototype.toString=function(I){return this.is_float&&e(this.value.toString(),".")===-1?this.value+".0":this.value.toString()},H.prototype.toString=function(I,P,y){if(I=I||{},I.quoted=I.quoted===void 0?!0:I.quoted,I.ignore_ops=I.ignore_ops===void 0?!1:I.ignore_ops,I.numbervars=I.numbervars===void 0?!1:I.numbervars,P=P===void 0?1200:P,y=y===void 0?"":y,I.numbervars&&this.indicator==="$VAR/1"&&x.type.is_integer(this.args[0])&&this.args[0].value>=0){var F=this.args[0].value,J=Math.floor(F/26),X=F%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[X]+(J!==0?J:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(I)+"}";case"./2":for(var $="["+this.args[0].toString(I),ie=this.args[1];ie.indicator==="./2";)$+=", "+ie.args[0].toString(I),ie=ie.args[1];return ie.indicator!=="[]/0"&&($+="|"+ie.toString(I)),$+="]",$;case",/2":return"("+this.args[0].toString(I)+", "+this.args[1].toString(I)+")";default:var ke=this.id,Ne=I.session?I.session.lookup_operator(this.id,this.args.length):null;if(I.session===void 0||I.ignore_ops||Ne===null)return I.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(ke)&&ke!=="{}"&&ke!=="[]"&&(ke="'"+b(ke)+"'"),ke+(this.args.length?"("+o(this.args,function(Xt){return Xt.toString(I)}).join(", ")+")":"");var st=Ne.priority>P.priority||Ne.priority===P.priority&&(Ne.class==="xfy"&&this.indicator!==P.indicator||Ne.class==="yfx"&&this.indicator!==P.indicator||this.indicator===P.indicator&&Ne.class==="yfx"&&y==="right"||this.indicator===P.indicator&&Ne.class==="xfy"&&y==="left");Ne.indicator=this.indicator;var ht=st?"(":"",Ut=st?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Ne.class)!==-1?ht+ke+" "+this.args[0].toString(I,Ne)+Ut:["yf","xf"].indexOf(Ne.class)!==-1?ht+this.args[0].toString(I,Ne)+" "+ke+Ut:ht+this.args[0].toString(I,Ne,"left")+" "+this.id+" "+this.args[1].toString(I,Ne,"right")+Ut}},Me.prototype.toString=function(I){return"<stream>("+this.id+")"},Te.prototype.toString=function(I){var P="{";for(var y in this.links)!this.links.hasOwnProperty(y)||(P!=="{"&&(P+=", "),P+=y+"/"+this.links[y].toString(I));return P+="}",P},Qe.prototype.toString=function(I){return this.goal===null?"<"+this.substitution.toString(I)+">":"<"+this.goal.toString(I)+", "+this.substitution.toString(I)+">"},_e.prototype.toString=function(I){return this.body?this.head.toString(I)+" :- "+this.body.toString(I)+".":this.head.toString(I)+"."},qe.prototype.toString=function(I){for(var P="",y=0;y<this.modules.length;y++)P+=":- use_module(library("+this.modules[y]+`)). 261`:P+="\\n";break;case"\r":P+="\\r";break;case" ":P+="\\t";break;case"\v":P+="\\v";break;default:P+=I.charAt(y);break}return P}function E(I){var P=I.substr(2);switch(I.substr(0,2).toLowerCase()){case"0x":return parseInt(P,16);case"0b":return parseInt(P,2);case"0o":return parseInt(P,8);case"0'":return w(P)[0];default:return parseFloat(I)}}var R={whitespace:/^\s*(?:(?:%.*)|(?:\/\*(?:\n|\r|.)*?\*\/)|(?:\s+))\s*/,variable:/^(?:[A-Z_][a-zA-Z0-9_]*)/,atom:/^(\!|,|;|[a-z][0-9a-zA-Z_]*|[#\$\&\*\+\-\.\/\:\<\=\>\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(I,P){return I.get_flag("char_conversion").id==="on"?P.replace(/./g,function(y){return I.get_char_conversion(y)}):P}function _(I){this.thread=I,this.text="",this.tokens=[]}_.prototype.set_last_tokens=function(I){return this.tokens=I},_.prototype.new_text=function(I){this.text=I,this.tokens=[]},_.prototype.get_tokens=function(I){var P,y=0,F=0,z=0,X=[],$=!1;if(I){var ie=this.tokens[I-1];y=ie.len,P=L(this.thread,this.text.substr(ie.len)),F=ie.line,z=ie.start}else P=this.text;if(/^\s*$/.test(P))return null;for(;P!=="";){var ke=[],Ne=!1;if(/^\n/.exec(P)!==null){F++,z=0,y++,P=P.replace(/\n/,""),$=!0;continue}for(var st in R)if(R.hasOwnProperty(st)){var ht=R[st].exec(P);ht&&ke.push({value:ht[0],name:st,matches:ht})}if(!ke.length)return this.set_last_tokens([{value:P,matches:[],name:"lexical",line:F,start:z}]);var ie=r(ke,function(Dr,fr){return Dr.value.length>=fr.value.length?Dr:fr});switch(ie.start=z,ie.line=F,P=P.replace(ie.value,""),z+=ie.value.length,y+=ie.value.length,ie.name){case"atom":ie.raw=ie.value,ie.value.charAt(0)==="'"&&(ie.value=v(ie.value.substr(1,ie.value.length-2),"'"),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence"));break;case"number":ie.float=ie.value.substring(0,2)!=="0x"&&ie.value.match(/[.eE]/)!==null&&ie.value!=="0'.",ie.value=E(ie.value),ie.blank=Ne;break;case"string":var Ut=ie.value.charAt(0);ie.value=v(ie.value.substr(1,ie.value.length-2),Ut),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence");break;case"whitespace":var Xt=X[X.length-1];Xt&&(Xt.space=!0),Ne=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(ie=X.pop(),ie.name="atom",ie.value="{}",ie.raw="{}",ie.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(ie=X.pop(),ie.name="atom",ie.value="[]",ie.raw="[]",ie.space=!1);break}ie.len=y,X.push(ie),Ne=!1}var xt=this.set_last_tokens(X);return xt.length===0?null:xt};function V(I,P,y,F,z){if(!P[y])return{type:A,value:x.error.syntax(P[y-1],"expression expected",!0)};var X;if(F==="0"){var $=P[y];switch($.name){case"number":return{type:p,len:y+1,value:new x.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new x.type.Var($.value)};case"string":var ie;switch(I.get_flag("double_quotes").id){case"atom":ie=new H($.value,[]);break;case"codes":ie=new H("[]",[]);for(var ke=$.value.length-1;ke>=0;ke--)ie=new H(".",[new x.type.Num(n($.value,ke),!1),ie]);break;case"chars":ie=new H("[]",[]);for(var ke=$.value.length-1;ke>=0;ke--)ie=new H(".",[new x.type.Term($.value.charAt(ke),[]),ie]);break}return{type:p,len:y+1,value:ie};case"l_paren":var xt=V(I,P,y+1,I.__get_max_priority(),!0);return xt.type!==p?xt:P[xt.len]&&P[xt.len].name==="r_paren"?(xt.len++,xt):{type:A,derived:!0,value:x.error.syntax(P[xt.len]?P[xt.len]:P[xt.len-1],") or operator expected",!P[xt.len])};case"l_bracket":var xt=V(I,P,y+1,I.__get_max_priority(),!0);return xt.type!==p?xt:P[xt.len]&&P[xt.len].name==="r_bracket"?(xt.len++,xt.value=new H("{}",[xt.value]),xt):{type:A,derived:!0,value:x.error.syntax(P[xt.len]?P[xt.len]:P[xt.len-1],"} or operator expected",!P[xt.len])}}var Ne=re(I,P,y,z);return Ne.type===p||Ne.derived||(Ne=ae(I,P,y),Ne.type===p||Ne.derived)?Ne:{type:A,derived:!1,value:x.error.syntax(P[y],"unexpected token")}}var st=I.__get_max_priority(),ht=I.__get_next_priority(F),Ut=y;if(P[y].name==="atom"&&P[y+1]&&(P[y].space||P[y+1].name!=="l_paren")){var $=P[y++],Xt=I.__lookup_operator_classes(F,$.value);if(Xt&&Xt.indexOf("fy")>-1){var xt=V(I,P,y,F,z);if(xt.type!==A)return $.value==="-"&&!$.space&&x.type.is_number(xt.value)?{value:new x.type.Num(-xt.value.value,xt.value.is_float),len:xt.len,type:p}:{value:new x.type.Term($.value,[xt.value]),len:xt.len,type:p};X=xt}else if(Xt&&Xt.indexOf("fx")>-1){var xt=V(I,P,y,ht,z);if(xt.type!==A)return{value:new x.type.Term($.value,[xt.value]),len:xt.len,type:p};X=xt}}y=Ut;var xt=V(I,P,y,ht,z);if(xt.type===p){y=xt.len;var $=P[y];if(P[y]&&(P[y].name==="atom"&&I.__lookup_operator_classes(F,$.value)||P[y].name==="bar"&&I.__lookup_operator_classes(F,"|"))){var tn=ht,Dr=F,Xt=I.__lookup_operator_classes(F,$.value);if(Xt.indexOf("xf")>-1)return{value:new x.type.Term($.value,[xt.value]),len:++xt.len,type:p};if(Xt.indexOf("xfx")>-1){var fr=V(I,P,y+1,tn,z);return fr.type===p?{value:new x.type.Term($.value,[xt.value,fr.value]),len:fr.len,type:p}:(fr.derived=!0,fr)}else if(Xt.indexOf("xfy")>-1){var fr=V(I,P,y+1,Dr,z);return fr.type===p?{value:new x.type.Term($.value,[xt.value,fr.value]),len:fr.len,type:p}:(fr.derived=!0,fr)}else if(xt.type!==A)for(;;){y=xt.len;var $=P[y];if($&&$.name==="atom"&&I.__lookup_operator_classes(F,$.value)){var Xt=I.__lookup_operator_classes(F,$.value);if(Xt.indexOf("yf")>-1)xt={value:new x.type.Term($.value,[xt.value]),len:++y,type:p};else if(Xt.indexOf("yfx")>-1){var fr=V(I,P,++y,tn,z);if(fr.type===A)return fr.derived=!0,fr;y=fr.len,xt={value:new x.type.Term($.value,[xt.value,fr.value]),len:y,type:p}}else break}else break}}else X={type:A,value:x.error.syntax(P[xt.len-1],"operator expected")};return xt}return xt}function re(I,P,y,F){if(!P[y]||P[y].name==="atom"&&P[y].raw==="."&&!F&&(P[y].space||!P[y+1]||P[y+1].name!=="l_paren"))return{type:A,derived:!1,value:x.error.syntax(P[y-1],"unfounded token")};var z=P[y],X=[];if(P[y].name==="atom"&&P[y].raw!==","){if(y++,P[y-1].space)return{type:p,len:y,value:new x.type.Term(z.value,X)};if(P[y]&&P[y].name==="l_paren"){if(P[y+1]&&P[y+1].name==="r_paren")return{type:A,derived:!0,value:x.error.syntax(P[y+1],"argument expected")};var $=V(I,P,++y,"999",!0);if($.type===A)return $.derived?$:{type:A,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],"argument expected",!P[y])};for(X.push($.value),y=$.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if($=V(I,P,y+1,"999",!0),$.type===A)return $.derived?$:{type:A,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};X.push($.value),y=$.len}if(P[y]&&P[y].name==="r_paren")y++;else return{type:A,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],", or ) expected",!P[y])}}return{type:p,len:y,value:new x.type.Term(z.value,X)}}return{type:A,derived:!1,value:x.error.syntax(P[y],"term expected")}}function ae(I,P,y){if(!P[y])return{type:A,derived:!1,value:x.error.syntax(P[y-1],"[ expected")};if(P[y]&&P[y].name==="l_brace"){var F=V(I,P,++y,"999",!0),z=[F.value],X=void 0;if(F.type===A)return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:new x.type.Term("[]",[])}:{type:A,derived:!0,value:x.error.syntax(P[y],"] expected")};for(y=F.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if(F=V(I,P,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};z.push(F.value),y=F.len}var $=!1;if(P[y]&&P[y].name==="bar"){if($=!0,F=V(I,P,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:x.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};X=F.value,y=F.len}return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:g(z,X)}:{type:A,derived:!0,value:x.error.syntax(P[y]?P[y]:P[y-1],$?"] expected":", or | or ] expected",!P[y])}}return{type:A,derived:!1,value:x.error.syntax(P[y],"list expected")}}function he(I,P,y){var F=P[y].line,z=V(I,P,y,I.__get_max_priority(),!1),X=null,$;if(z.type!==A)if(y=z.len,P[y]&&P[y].name==="atom"&&P[y].raw===".")if(y++,x.type.is_term(z.value)){if(z.value.indicator===":-/2"?(X=new x.type.Rule(z.value.args[0],Pe(z.value.args[1])),$={value:X,len:y,type:p}):z.value.indicator==="-->/2"?(X=ge(new x.type.Rule(z.value.args[0],z.value.args[1]),I),X.body=Pe(X.body),$={value:X,len:y,type:x.type.is_rule(X)?p:A}):(X=new x.type.Rule(z.value,null),$={value:X,len:y,type:p}),X){var ie=X.singleton_variables();ie.length>0&&I.throw_warning(x.warning.singleton(ie,X.head.indicator,F))}return $}else return{type:A,value:x.error.syntax(P[y],"callable expected")};else return{type:A,value:x.error.syntax(P[y]?P[y]:P[y-1],". or operator expected")};return z}function pe(I,P,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new _(I),z={},X;F.new_text(P);var $=0,ie=F.get_tokens($);do{if(ie===null||!ie[$])break;var ke=he(I,ie,$);if(ke.type===A)return new H("throw",[ke.value]);if(ke.value.body===null&&ke.value.head.indicator==="?-/1"){var Ne=new At(I.session);Ne.add_goal(ke.value.head.args[0]),Ne.answer(function(ht){x.type.is_error(ht)?I.throw_warning(ht.args[0]):(ht===!1||ht===null)&&I.throw_warning(x.warning.failed_goal(ke.value.head.args[0],ke.len))}),$=ke.len;var st=!0}else if(ke.value.body===null&&ke.value.head.indicator===":-/1"){var st=I.run_directive(ke.value.head.args[0]);$=ke.len,ke.value.head.args[0].indicator==="char_conversion/2"&&(ie=F.get_tokens($),$=0)}else{X=ke.value.head.indicator,y.reconsult!==!1&&z[X]!==!0&&!I.is_multifile_predicate(X)&&(I.session.rules[X]=a(I.session.rules[X]||[],function(Ut){return Ut.dynamic}),z[X]=!0);var st=I.add_rule(ke.value,y);$=ke.len}if(!st)return st}while(!0);return!0}function De(I,P){var y=new _(I);y.new_text(P);var F=0;do{var z=y.get_tokens(F);if(z===null)break;var X=V(I,z,0,I.__get_max_priority(),!1);if(X.type!==A){var $=X.len,ie=$;if(z[$]&&z[$].name==="atom"&&z[$].raw===".")I.add_goal(Pe(X.value));else{var ke=z[$];return new H("throw",[x.error.syntax(ke||z[$-1],". or operator expected",!ke)])}F=X.len+1}else return new H("throw",[X.value])}while(!0);return!0}function ge(I,P){I=I.rename(P);var y=P.next_free_variable(),F=le(I.body,y,P);return F.error?F.value:(I.body=F.value,I.head.args=I.head.args.concat([y,F.variable]),I.head=new H(I.head.id,I.head.args),I)}function le(I,P,y){var F;if(x.type.is_term(I)&&I.indicator==="!/0")return{value:I,variable:P,error:!1};if(x.type.is_term(I)&&I.indicator===",/2"){var z=le(I.args[0],P,y);if(z.error)return z;var X=le(I.args[1],z.variable,y);return X.error?X:{value:new H(",",[z.value,X.value]),variable:X.variable,error:!1}}else{if(x.type.is_term(I)&&I.indicator==="{}/1")return{value:I.args[0],variable:P,error:!1};if(x.type.is_empty_list(I))return{value:new H("true",[]),variable:P,error:!1};if(x.type.is_list(I)){F=y.next_free_variable();for(var $=I,ie;$.indicator==="./2";)ie=$,$=$.args[1];return x.type.is_variable($)?{value:x.error.instantiation("DCG"),variable:P,error:!0}:x.type.is_empty_list($)?(ie.args[1]=F,{value:new H("=",[P,I]),variable:F,error:!1}):{value:x.error.type("list",I,"DCG"),variable:P,error:!0}}else return x.type.is_callable(I)?(F=y.next_free_variable(),I.args=I.args.concat([P,F]),I=new H(I.id,I.args),{value:I,variable:F,error:!1}):{value:x.error.type("callable",I,"DCG"),variable:P,error:!0}}}function Pe(I){return x.type.is_variable(I)?new H("call",[I]):x.type.is_term(I)&&[",/2",";/2","->/2"].indexOf(I.indicator)!==-1?new H(I.id,[Pe(I.args[0]),Pe(I.args[1])]):I}function g(I,P){for(var y=P||new x.type.Term("[]",[]),F=I.length-1;F>=0;F--)y=new x.type.Term(".",[I[F],y]);return y}function ve(I,P){for(var y=I.length-1;y>=0;y--)I[y]===P&&I.splice(y,1)}function Ee(I){for(var P={},y=[],F=0;F<I.length;F++)I[F]in P||(y.push(I[F]),P[I[F]]=!0);return y}function de(I,P,y,F){if(I.session.rules[y]!==null){for(var z=0;z<I.session.rules[y].length;z++)if(I.session.rules[y][z]===F){I.session.rules[y].splice(z,1),I.success(P);break}}}function ne(I){return function(P,y,F){var z=F.args[0],X=F.args.slice(1,I);if(x.type.is_variable(z))P.throw_error(x.error.instantiation(P.level));else if(!x.type.is_callable(z))P.throw_error(x.error.type("callable",z,P.level));else{var $=new H(z.id,z.args.concat(X));P.prepend([new Qe(y.goal.replace($),y.substitution,y)])}}}function Z(I){for(var P=I.length-1;P>=0;P--)if(I.charAt(P)==="/")return new H("/",[new H(I.substring(0,P)),new be(parseInt(I.substring(P+1)),!1)])}function me(I){this.id=I}function be(I,P){this.is_float=P!==void 0?P:parseInt(I)!==I,this.value=this.is_float?I:parseInt(I)}var ut=0;function H(I,P,y){this.ref=y||++ut,this.id=I,this.args=P||[],this.indicator=I+"/"+this.args.length}var yt=0;function Me(I,P,y,F,z,X){this.id=yt++,this.stream=I,this.mode=P,this.alias=y,this.type=F!==void 0?F:"text",this.reposition=z!==void 0?z:!0,this.eof_action=X!==void 0?X:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function Te(I){I=I||{},this.links=I}function Qe(I,P,y){P=P||new Te,y=y||null,this.goal=I,this.substitution=P,this.parent=y}function _e(I,P,y){this.head=I,this.body=P,this.dynamic=y||!1}function qe(I){I=I===void 0||I<=0?1e3:I,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new At(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=I,this.streams={user_input:new Me(typeof ml<"u"&&ml.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Me(typeof ml<"u"&&ml.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof ml<"u"&&ml.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(P){return P.substitution},this.format_error=function(P){return P.goal},this.flag={bounded:x.flag.bounded.value,max_integer:x.flag.max_integer.value,min_integer:x.flag.min_integer.value,integer_rounding_function:x.flag.integer_rounding_function.value,char_conversion:x.flag.char_conversion.value,debug:x.flag.debug.value,max_arity:x.flag.max_arity.value,unknown:x.flag.unknown.value,double_quotes:x.flag.double_quotes.value,occurs_check:x.flag.occurs_check.value,dialect:x.flag.dialect.value,version_data:x.flag.version_data.value,nodejs:x.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function At(I){this.epoch=Date.now(),this.session=I,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function Oe(I,P,y){this.id=I,this.rules=P,this.exports=y,x.module[I]=this}Oe.prototype.exports_predicate=function(I){return this.exports.indexOf(I)!==-1},me.prototype.unify=function(I,P){if(P&&e(I.variables(),this.id)!==-1&&!x.type.is_variable(I))return null;var y={};return y[this.id]=I,new Te(y)},be.prototype.unify=function(I,P){return x.type.is_number(I)&&this.value===I.value&&this.is_float===I.is_float?new Te:null},H.prototype.unify=function(I,P){if(x.type.is_term(I)&&this.indicator===I.indicator){for(var y=new Te,F=0;F<this.args.length;F++){var z=x.unify(this.args[F].apply(y),I.args[F].apply(y),P);if(z===null)return null;for(var X in z.links)y.links[X]=z.links[X];y=y.apply(z)}return y}return null},Me.prototype.unify=function(I,P){return x.type.is_stream(I)&&this.id===I.id?new Te:null},me.prototype.toString=function(I){return this.id},be.prototype.toString=function(I){return this.is_float&&e(this.value.toString(),".")===-1?this.value+".0":this.value.toString()},H.prototype.toString=function(I,P,y){if(I=I||{},I.quoted=I.quoted===void 0?!0:I.quoted,I.ignore_ops=I.ignore_ops===void 0?!1:I.ignore_ops,I.numbervars=I.numbervars===void 0?!1:I.numbervars,P=P===void 0?1200:P,y=y===void 0?"":y,I.numbervars&&this.indicator==="$VAR/1"&&x.type.is_integer(this.args[0])&&this.args[0].value>=0){var F=this.args[0].value,z=Math.floor(F/26),X=F%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[X]+(z!==0?z:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(I)+"}";case"./2":for(var $="["+this.args[0].toString(I),ie=this.args[1];ie.indicator==="./2";)$+=", "+ie.args[0].toString(I),ie=ie.args[1];return ie.indicator!=="[]/0"&&($+="|"+ie.toString(I)),$+="]",$;case",/2":return"("+this.args[0].toString(I)+", "+this.args[1].toString(I)+")";default:var ke=this.id,Ne=I.session?I.session.lookup_operator(this.id,this.args.length):null;if(I.session===void 0||I.ignore_ops||Ne===null)return I.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(ke)&&ke!=="{}"&&ke!=="[]"&&(ke="'"+b(ke)+"'"),ke+(this.args.length?"("+o(this.args,function(Xt){return Xt.toString(I)}).join(", ")+")":"");var st=Ne.priority>P.priority||Ne.priority===P.priority&&(Ne.class==="xfy"&&this.indicator!==P.indicator||Ne.class==="yfx"&&this.indicator!==P.indicator||this.indicator===P.indicator&&Ne.class==="yfx"&&y==="right"||this.indicator===P.indicator&&Ne.class==="xfy"&&y==="left");Ne.indicator=this.indicator;var ht=st?"(":"",Ut=st?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Ne.class)!==-1?ht+ke+" "+this.args[0].toString(I,Ne)+Ut:["yf","xf"].indexOf(Ne.class)!==-1?ht+this.args[0].toString(I,Ne)+" "+ke+Ut:ht+this.args[0].toString(I,Ne,"left")+" "+this.id+" "+this.args[1].toString(I,Ne,"right")+Ut}},Me.prototype.toString=function(I){return"<stream>("+this.id+")"},Te.prototype.toString=function(I){var P="{";for(var y in this.links)!this.links.hasOwnProperty(y)||(P!=="{"&&(P+=", "),P+=y+"/"+this.links[y].toString(I));return P+="}",P},Qe.prototype.toString=function(I){return this.goal===null?"<"+this.substitution.toString(I)+">":"<"+this.goal.toString(I)+", "+this.substitution.toString(I)+">"},_e.prototype.toString=function(I){return this.body?this.head.toString(I)+" :- "+this.body.toString(I)+".":this.head.toString(I)+"."},qe.prototype.toString=function(I){for(var P="",y=0;y<this.modules.length;y++)P+=":- use_module(library("+this.modules[y]+`)).
262`;P+=` 262`;P+=`
263`;for(key in this.rules)for(y=0;y<this.rules[key].length;y++)P+=this.rules[key][y].toString(I),P+=` 263`;for(key in this.rules)for(y=0;y<this.rules[key].length;y++)P+=this.rules[key][y].toString(I),P+=`
264`;return P},me.prototype.clone=function(){return new me(this.id)},be.prototype.clone=function(){return new be(this.value,this.is_float)},H.prototype.clone=function(){return new H(this.id,o(this.args,function(I){return I.clone()}))},Me.prototype.clone=function(){return new Stram(this.stream,this.mode,this.alias,this.type,this.reposition,this.eof_action)},Te.prototype.clone=function(){var I={};for(var P in this.links)!this.links.hasOwnProperty(P)||(I[P]=this.links[P].clone());return new Te(I)},Qe.prototype.clone=function(){return new Qe(this.goal.clone(),this.substitution.clone(),this.parent)},_e.prototype.clone=function(){return new _e(this.head.clone(),this.body!==null?this.body.clone():null)},me.prototype.equals=function(I){return x.type.is_variable(I)&&this.id===I.id},be.prototype.equals=function(I){return x.type.is_number(I)&&this.value===I.value&&this.is_float===I.is_float},H.prototype.equals=function(I){if(!x.type.is_term(I)||this.indicator!==I.indicator)return!1;for(var P=0;P<this.args.length;P++)if(!this.args[P].equals(I.args[P]))return!1;return!0},Me.prototype.equals=function(I){return x.type.is_stream(I)&&this.id===I.id},Te.prototype.equals=function(I){var P;if(!x.type.is_substitution(I))return!1;for(P in this.links)if(!!this.links.hasOwnProperty(P)&&(!I.links[P]||!this.links[P].equals(I.links[P])))return!1;for(P in I.links)if(!!I.links.hasOwnProperty(P)&&!this.links[P])return!1;return!0},Qe.prototype.equals=function(I){return x.type.is_state(I)&&this.goal.equals(I.goal)&&this.substitution.equals(I.substitution)&&this.parent===I.parent},_e.prototype.equals=function(I){return x.type.is_rule(I)&&this.head.equals(I.head)&&(this.body===null&&I.body===null||this.body!==null&&this.body.equals(I.body))},me.prototype.rename=function(I){return I.get_free_variable(this)},be.prototype.rename=function(I){return this},H.prototype.rename=function(I){return new H(this.id,o(this.args,function(P){return P.rename(I)}))},Me.prototype.rename=function(I){return this},_e.prototype.rename=function(I){return new _e(this.head.rename(I),this.body!==null?this.body.rename(I):null)},me.prototype.variables=function(){return[this.id]},be.prototype.variables=function(){return[]},H.prototype.variables=function(){return[].concat.apply([],o(this.args,function(I){return I.variables()}))},Me.prototype.variables=function(){return[]},_e.prototype.variables=function(){return this.body===null?this.head.variables():this.head.variables().concat(this.body.variables())},me.prototype.apply=function(I){return I.lookup(this.id)?I.lookup(this.id):this},be.prototype.apply=function(I){return this},H.prototype.apply=function(I){if(this.indicator==="./2"){for(var P=[],y=this;y.indicator==="./2";)P.push(y.args[0].apply(I)),y=y.args[1];for(var F=y.apply(I),J=P.length-1;J>=0;J--)F=new H(".",[P[J],F]);return F}return new H(this.id,o(this.args,function(X){return X.apply(I)}),this.ref)},Me.prototype.apply=function(I){return this},_e.prototype.apply=function(I){return new _e(this.head.apply(I),this.body!==null?this.body.apply(I):null)},Te.prototype.apply=function(I){var P,y={};for(P in this.links)!this.links.hasOwnProperty(P)||(y[P]=this.links[P].apply(I));return new Te(y)},H.prototype.select=function(){for(var I=this;I.indicator===",/2";)I=I.args[0];return I},H.prototype.replace=function(I){return this.indicator===",/2"?this.args[0].indicator===",/2"?new H(",",[this.args[0].replace(I),this.args[1]]):I===null?this.args[1]:new H(",",[I,this.args[1]]):I},H.prototype.search=function(I){if(x.type.is_term(I)&&I.ref!==void 0&&this.ref===I.ref)return!0;for(var P=0;P<this.args.length;P++)if(x.type.is_term(this.args[P])&&this.args[P].search(I))return!0;return!1},qe.prototype.get_current_input=function(){return this.current_input},At.prototype.get_current_input=function(){return this.session.get_current_input()},qe.prototype.get_current_output=function(){return this.current_output},At.prototype.get_current_output=function(){return this.session.get_current_output()},qe.prototype.set_current_input=function(I){this.current_input=I},At.prototype.set_current_input=function(I){return this.session.set_current_input(I)},qe.prototype.set_current_output=function(I){this.current_input=I},At.prototype.set_current_output=function(I){return this.session.set_current_output(I)},qe.prototype.get_stream_by_alias=function(I){return this.streams[I]},At.prototype.get_stream_by_alias=function(I){return this.session.get_stream_by_alias(I)},qe.prototype.file_system_open=function(I,P,y){return this.file_system.open(I,P,y)},At.prototype.file_system_open=function(I,P,y){return this.session.file_system_open(I,P,y)},qe.prototype.get_char_conversion=function(I){return this.__char_conversion[I]||I},At.prototype.get_char_conversion=function(I){return this.session.get_char_conversion(I)},qe.prototype.parse=function(I){return this.thread.parse(I)},At.prototype.parse=function(I){var P=new _(this);P.new_text(I);var y=P.get_tokens();if(y===null)return!1;var F=V(this,y,0,this.__get_max_priority(),!1);return F.len!==y.length?!1:{value:F.value,expr:F,tokens:y}},qe.prototype.get_flag=function(I){return this.flag[I]},At.prototype.get_flag=function(I){return this.session.get_flag(I)},qe.prototype.add_rule=function(I,P){return P=P||{},P.from=P.from?P.from:"$tau-js",this.src_predicates[I.head.indicator]=P.from,this.rules[I.head.indicator]||(this.rules[I.head.indicator]=[]),this.rules[I.head.indicator].push(I),this.public_predicates.hasOwnProperty(I.head.indicator)||(this.public_predicates[I.head.indicator]=!1),!0},At.prototype.add_rule=function(I,P){return this.session.add_rule(I,P)},qe.prototype.run_directive=function(I){this.thread.run_directive(I)},At.prototype.run_directive=function(I){return x.type.is_directive(I)?(x.directive[I.indicator](this,I),!0):!1},qe.prototype.__get_max_priority=function(){return"1200"},At.prototype.__get_max_priority=function(){return this.session.__get_max_priority()},qe.prototype.__get_next_priority=function(I){var P=0;I=parseInt(I);for(var y in this.__operators)if(!!this.__operators.hasOwnProperty(y)){var F=parseInt(y);F>P&&F<I&&(P=F)}return P.toString()},At.prototype.__get_next_priority=function(I){return this.session.__get_next_priority(I)},qe.prototype.__lookup_operator_classes=function(I,P){return this.__operators.hasOwnProperty(I)&&this.__operators[I][P]instanceof Array&&this.__operators[I][P]||!1},At.prototype.__lookup_operator_classes=function(I,P){return this.session.__lookup_operator_classes(I,P)},qe.prototype.lookup_operator=function(I,P){for(var y in this.__operators)if(this.__operators[y][I]){for(var F=0;F<this.__operators[y][I].length;F++)if(P===0||this.__operators[y][I][F].length===P+1)return{priority:y,class:this.__operators[y][I][F]}}return null},At.prototype.lookup_operator=function(I,P){return this.session.lookup_operator(I,P)},qe.prototype.throw_warning=function(I){this.thread.throw_warning(I)},At.prototype.throw_warning=function(I){this.warnings.push(I)},qe.prototype.get_warnings=function(){return this.thread.get_warnings()},At.prototype.get_warnings=function(){return this.warnings},qe.prototype.add_goal=function(I,P){this.thread.add_goal(I,P)},At.prototype.add_goal=function(I,P,y){y=y||null,P===!0&&(this.points=[]);for(var F=I.variables(),J={},X=0;X<F.length;X++)J[F[X]]=new me(F[X]);this.points.push(new Qe(I,new Te(J),y))},qe.prototype.consult=function(I,P){return this.thread.consult(I,P)},At.prototype.consult=function(I,P){var y="";if(typeof I=="string"){y=I;var F=y.length;if(y.substring(F-3,F)===".pl"&&document.getElementById(y)){var J=document.getElementById(y),X=J.getAttribute("type");X!==null&&X.replace(/ /g,"").toLowerCase()==="text/prolog"&&(y=J.text)}}else if(I.nodeName)switch(I.nodeName.toLowerCase()){case"input":case"textarea":y=I.value;break;default:y=I.innerHTML;break}else return!1;return this.warnings=[],he(this,y,P)},qe.prototype.query=function(I){return this.thread.query(I)},At.prototype.query=function(I){return this.points=[],this.debugger_points=[],ve(this,I)},qe.prototype.head_point=function(){return this.thread.head_point()},At.prototype.head_point=function(){return this.points[this.points.length-1]},qe.prototype.get_free_variable=function(I){return this.thread.get_free_variable(I)},At.prototype.get_free_variable=function(I){var P=[];if(I.id==="_"||this.session.renamed_variables[I.id]===void 0){for(this.session.rename++,this.points.length>0&&(P=this.head_point().substitution.domain());e(P,x.format_variable(this.session.rename))!==-1;)this.session.rename++;if(I.id==="_")return new me(x.format_variable(this.session.rename));this.session.renamed_variables[I.id]=x.format_variable(this.session.rename)}return new me(this.session.renamed_variables[I.id])},qe.prototype.next_free_variable=function(){return this.thread.next_free_variable()},At.prototype.next_free_variable=function(){this.session.rename++;var I=[];for(this.points.length>0&&(I=this.head_point().substitution.domain());e(I,x.format_variable(this.session.rename))!==-1;)this.session.rename++;return new me(x.format_variable(this.session.rename))},qe.prototype.is_public_predicate=function(I){return!this.public_predicates.hasOwnProperty(I)||this.public_predicates[I]===!0},At.prototype.is_public_predicate=function(I){return this.session.is_public_predicate(I)},qe.prototype.is_multifile_predicate=function(I){return this.multifile_predicates.hasOwnProperty(I)&&this.multifile_predicates[I]===!0},At.prototype.is_multifile_predicate=function(I){return this.session.is_multifile_predicate(I)},qe.prototype.prepend=function(I){return this.thread.prepend(I)},At.prototype.prepend=function(I){for(var P=I.length-1;P>=0;P--)this.points.push(I[P])},qe.prototype.success=function(I,P){return this.thread.success(I,P)},At.prototype.success=function(I,y){var y=typeof y>"u"?I:y;this.prepend([new Qe(I.goal.replace(null),I.substitution,y)])},qe.prototype.throw_error=function(I){return this.thread.throw_error(I)},At.prototype.throw_error=function(I){this.prepend([new Qe(new H("throw",[I]),new Te,null,null)])},qe.prototype.step_rule=function(I,P){return this.thread.step_rule(I,P)},At.prototype.step_rule=function(I,P){var y=P.indicator;if(I==="user"&&(I=null),I===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=I===null?this.session.modules:e(this.session.modules,I)===-1?[]:[I],J=0;J<F.length;J++){var X=x.module[F[J]];if(X.rules.hasOwnProperty(y)&&(X.rules.hasOwnProperty(this.level)||X.exports_predicate(y)))return x.module[F[J]].rules[y]}return null},qe.prototype.step=function(){return this.thread.step()},At.prototype.step=function(){if(this.points.length!==0){var I=!1,P=this.points.pop();if(this.debugger&&this.debugger_states.push(P),x.type.is_term(P.goal)){var y=P.goal.select(),F=null,J=[];if(y!==null){this.total_steps++;for(var X=P;X.parent!==null&&X.parent.goal.search(y);)X=X.parent;if(this.level=X.parent===null?"top_level/0":X.parent.goal.select().indicator,x.type.is_term(y)&&y.indicator===":/2"&&(F=y.args[0].id,y=y.args[1]),F===null&&x.type.is_builtin(y))this.__call_indicator=y.indicator,I=x.predicate[y.indicator](this,P,y);else{var $=this.step_rule(F,y);if($===null)this.session.rules.hasOwnProperty(y.indicator)||(this.get_flag("unknown").id==="error"?this.throw_error(x.error.existence("procedure",y.indicator,this.level)):this.get_flag("unknown").id==="warning"&&this.throw_warning("unknown procedure "+y.indicator+" (from "+this.level+")"));else if($ instanceof Function)I=$(this,P,y);else{for(var ie in $)if(!!$.hasOwnProperty(ie)){var ke=$[ie];this.session.renamed_variables={},ke=ke.rename(this);var Ne=this.get_flag("occurs_check").indicator==="true/0",st=new Qe,ht=x.unify(y,ke.head,Ne);ht!==null&&(st.goal=P.goal.replace(ke.body),st.goal!==null&&(st.goal=st.goal.apply(ht)),st.substitution=P.substitution.apply(ht),st.parent=P,J.push(st))}this.prepend(J)}}}}else x.type.is_variable(P.goal)?this.throw_error(x.error.instantiation(this.level)):this.throw_error(x.error.type("callable",P.goal,this.level));return I}},qe.prototype.answer=function(I){return this.thread.answer(I)},At.prototype.answer=function(I){I=I||function(P){},this.__calls.push(I),!(this.__calls.length>1)&&this.again()},qe.prototype.answers=function(I,P,y){return this.thread.answers(I,P,y)},At.prototype.answers=function(I,P,y){var F=P||1e3,J=this;if(P<=0){y&&y();return}this.answer(function(X){I(X),X!==!1?setTimeout(function(){J.answers(I,P-1,y)},1):y&&y()})},qe.prototype.again=function(I){return this.thread.again(I)},At.prototype.again=function(I){for(var P,y=Date.now();this.__calls.length>0;){for(this.warnings=[],I!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!x.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var J=this.__calls.shift();this.current_limit<=0?J(null):this.points.length===0?J(!1):x.type.is_error(this.head_point().goal)?(P=this.session.format_error(this.points.pop()),this.points=[],J(P)):(this.debugger&&this.debugger_states.push(this.head_point()),P=this.session.format_success(this.points.pop()),J(P))}},qe.prototype.unfold=function(I){if(I.body===null)return!1;var P=I.head,y=I.body,F=y.select(),J=new At(this),X=[];J.add_goal(F),J.step();for(var $=J.points.length-1;$>=0;$--){var ie=J.points[$],ke=P.apply(ie.substitution),Ne=y.replace(ie.goal);Ne!==null&&(Ne=Ne.apply(ie.substitution)),X.push(new _e(ke,Ne))}var st=this.rules[P.indicator],ht=e(st,I);return X.length>0&&ht!==-1?(st.splice.apply(st,[ht,1].concat(X)),!0):!1},At.prototype.unfold=function(I){return this.session.unfold(I)},me.prototype.interpret=function(I){return x.error.instantiation(I.level)},be.prototype.interpret=function(I){return this},H.prototype.interpret=function(I){return x.type.is_unitary_list(this)?this.args[0].interpret(I):x.operate(I,this)},me.prototype.compare=function(I){return this.id<I.id?-1:this.id>I.id?1:0},be.prototype.compare=function(I){if(this.value===I.value&&this.is_float===I.is_float)return 0;if(this.value<I.value||this.value===I.value&&this.is_float&&!I.is_float)return-1;if(this.value>I.value)return 1},H.prototype.compare=function(I){if(this.args.length<I.args.length||this.args.length===I.args.length&&this.id<I.id)return-1;if(this.args.length>I.args.length||this.args.length===I.args.length&&this.id>I.id)return 1;for(var P=0;P<this.args.length;P++){var y=x.compare(this.args[P],I.args[P]);if(y!==0)return y}return 0},Te.prototype.lookup=function(I){return this.links[I]?this.links[I]:null},Te.prototype.filter=function(I){var P={};for(var y in this.links)if(!!this.links.hasOwnProperty(y)){var F=this.links[y];I(y,F)&&(P[y]=F)}return new Te(P)},Te.prototype.exclude=function(I){var P={};for(var y in this.links)!this.links.hasOwnProperty(y)||e(I,y)===-1&&(P[y]=this.links[y]);return new Te(P)},Te.prototype.add=function(I,P){this.links[I]=P},Te.prototype.domain=function(I){var P=I===!0?function(J){return J}:function(J){return new me(J)},y=[];for(var F in this.links)y.push(P(F));return y},me.prototype.compile=function(){return'new pl.type.Var("'+this.id.toString()+'")'},be.prototype.compile=function(){return"new pl.type.Num("+this.value.toString()+", "+this.is_float.toString()+")"},H.prototype.compile=function(){return'new pl.type.Term("'+this.id.replace(/"/g,'\\"')+'", ['+o(this.args,function(I){return I.compile()})+"])"},_e.prototype.compile=function(){return"new pl.type.Rule("+this.head.compile()+", "+(this.body===null?"null":this.body.compile())+")"},qe.prototype.compile=function(){var I,P=[],y;for(var F in this.rules)if(!!this.rules.hasOwnProperty(F)){var J=this.rules[F];y=[],I='"'+F+'": [';for(var X=0;X<J.length;X++)y.push(J[X].compile());I+=y.join(),I+="]",P.push(I)}return"{"+P.join()+"};"},me.prototype.toJavaScript=function(){},be.prototype.toJavaScript=function(){return this.value},H.prototype.toJavaScript=function(){if(this.args.length===0&&this.indicator!=="[]/0")return this.id;if(x.type.is_list(this)){for(var I=[],P=this,y;P.indicator==="./2";){if(y=P.args[0].toJavaScript(),y===void 0)return;I.push(y),P=P.args[1]}if(P.indicator==="[]/0")return I}},_e.prototype.singleton_variables=function(){var I=this.head.variables(),P={},y=[];this.body!==null&&(I=I.concat(this.body.variables()));for(var F=0;F<I.length;F++)P[I[F]]===void 0&&(P[I[F]]=0),P[I[F]]++;for(var J in P)J!=="_"&&P[J]===1&&y.push(J);return y};var x={__env:typeof dl<"u"&&dl.exports?global:window,module:{},version:t,parser:{tokenizer:_,expression:V},utils:{str_indicator:Z,codePointAt:n,fromCodePoint:u},statistics:{getCountTerms:function(){return ut}},fromJavaScript:{test:{boolean:function(I){return I===!0||I===!1},number:function(I){return typeof I=="number"},string:function(I){return typeof I=="string"},list:function(I){return I instanceof Array},variable:function(I){return I===void 0},any:function(I){return!0}},conversion:{boolean:function(I){return new H(I?"true":"false",[])},number:function(I){return new be(I,I%1!==0)},string:function(I){return new H(I,[])},list:function(I){for(var P=[],y,F=0;F<I.length;F++){if(y=x.fromJavaScript.apply(I[F]),y===void 0)return;P.push(y)}return g(P)},variable:function(I){return new me("_")},any:function(I){}},apply:function(I){for(var P in x.fromJavaScript.test)if(P!=="any"&&x.fromJavaScript.test[P](I))return x.fromJavaScript.conversion[P](I);return x.fromJavaScript.conversion.any(I)}},type:{Var:me,Num:be,Term:H,Rule:_e,State:Qe,Stream:Me,Module:Oe,Thread:At,Session:qe,Substitution:Te,order:[me,be,H,Me],compare:function(I,P){var y=e(x.type.order,I.constructor),F=e(x.type.order,P.constructor);if(y<F)return-1;if(y>F)return 1;if(I.constructor===be){if(I.is_float&&P.is_float)return 0;if(I.is_float)return-1;if(P.is_float)return 1}return 0},is_substitution:function(I){return I instanceof Te},is_state:function(I){return I instanceof Qe},is_rule:function(I){return I instanceof _e},is_variable:function(I){return I instanceof me},is_stream:function(I){return I instanceof Me},is_anonymous_var:function(I){return I instanceof me&&I.id==="_"},is_callable:function(I){return I instanceof H},is_number:function(I){return I instanceof be},is_integer:function(I){return I instanceof be&&!I.is_float},is_float:function(I){return I instanceof be&&I.is_float},is_term:function(I){return I instanceof H},is_atom:function(I){return I instanceof H&&I.args.length===0},is_ground:function(I){if(I instanceof me)return!1;if(I instanceof H){for(var P=0;P<I.args.length;P++)if(!x.type.is_ground(I.args[P]))return!1}return!0},is_atomic:function(I){return I instanceof H&&I.args.length===0||I instanceof be},is_compound:function(I){return I instanceof H&&I.args.length>0},is_list:function(I){return I instanceof H&&(I.indicator==="[]/0"||I.indicator==="./2")},is_empty_list:function(I){return I instanceof H&&I.indicator==="[]/0"},is_non_empty_list:function(I){return I instanceof H&&I.indicator==="./2"},is_fully_list:function(I){for(;I instanceof H&&I.indicator==="./2";)I=I.args[1];return I instanceof me||I instanceof H&&I.indicator==="[]/0"},is_instantiated_list:function(I){for(;I instanceof H&&I.indicator==="./2";)I=I.args[1];return I instanceof H&&I.indicator==="[]/0"},is_unitary_list:function(I){return I instanceof H&&I.indicator==="./2"&&I.args[1]instanceof H&&I.args[1].indicator==="[]/0"},is_character:function(I){return I instanceof H&&(I.id.length===1||I.id.length>0&&I.id.length<=2&&n(I.id,0)>=65536)},is_character_code:function(I){return I instanceof be&&!I.is_float&&I.value>=0&&I.value<=1114111},is_byte:function(I){return I instanceof be&&!I.is_float&&I.value>=0&&I.value<=255},is_operator:function(I){return I instanceof H&&x.arithmetic.evaluation[I.indicator]},is_directive:function(I){return I instanceof H&&x.directive[I.indicator]!==void 0},is_builtin:function(I){return I instanceof H&&x.predicate[I.indicator]!==void 0},is_error:function(I){return I instanceof H&&I.indicator==="throw/1"},is_predicate_indicator:function(I){return I instanceof H&&I.indicator==="//2"&&I.args[0]instanceof H&&I.args[0].args.length===0&&I.args[1]instanceof be&&I.args[1].is_float===!1},is_flag:function(I){return I instanceof H&&I.args.length===0&&x.flag[I.id]!==void 0},is_value_flag:function(I,P){if(!x.type.is_flag(I))return!1;for(var y in x.flag[I.id].allowed)if(!!x.flag[I.id].allowed.hasOwnProperty(y)&&x.flag[I.id].allowed[y].equals(P))return!0;return!1},is_io_mode:function(I){return x.type.is_atom(I)&&["read","write","append"].indexOf(I.id)!==-1},is_stream_option:function(I){return x.type.is_term(I)&&(I.indicator==="alias/1"&&x.type.is_atom(I.args[0])||I.indicator==="reposition/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="type/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="text"||I.args[0].id==="binary")||I.indicator==="eof_action/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="error"||I.args[0].id==="eof_code"||I.args[0].id==="reset"))},is_stream_position:function(I){return x.type.is_integer(I)&&I.value>=0||x.type.is_atom(I)&&(I.id==="end_of_stream"||I.id==="past_end_of_stream")},is_stream_property:function(I){return x.type.is_term(I)&&(I.indicator==="input/0"||I.indicator==="output/0"||I.indicator==="alias/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0]))||I.indicator==="file_name/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0]))||I.indicator==="position/1"&&(x.type.is_variable(I.args[0])||x.type.is_stream_position(I.args[0]))||I.indicator==="reposition/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false"))||I.indicator==="type/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="text"||I.args[0].id==="binary"))||I.indicator==="mode/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="read"||I.args[0].id==="write"||I.args[0].id==="append"))||I.indicator==="eof_action/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="error"||I.args[0].id==="eof_code"||I.args[0].id==="reset"))||I.indicator==="end_of_stream/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="at"||I.args[0].id==="past"||I.args[0].id==="not")))},is_streamable:function(I){return I.__proto__.stream!==void 0},is_read_option:function(I){return x.type.is_term(I)&&["variables/1","variable_names/1","singletons/1"].indexOf(I.indicator)!==-1},is_write_option:function(I){return x.type.is_term(I)&&(I.indicator==="quoted/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="ignore_ops/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="numbervars/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false"))},is_close_option:function(I){return x.type.is_term(I)&&I.indicator==="force/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")},is_modifiable_flag:function(I){return x.type.is_flag(I)&&x.flag[I.id].changeable},is_module:function(I){return I instanceof H&&I.indicator==="library/1"&&I.args[0]instanceof H&&I.args[0].args.length===0&&x.module[I.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(I){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(I){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(I){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(I){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(I,P){return I}},"-/1":{type_args:null,type_result:null,fn:function(I,P){return-I}},"\\/1":{type_args:!1,type_result:!1,fn:function(I,P){return~I}},"abs/1":{type_args:null,type_result:null,fn:function(I,P){return Math.abs(I)}},"sign/1":{type_args:null,type_result:null,fn:function(I,P){return Math.sign(I)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(I,P){return parseInt(I)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(I,P){return I-parseInt(I)}},"float/1":{type_args:null,type_result:!0,fn:function(I,P){return parseFloat(I)}},"floor/1":{type_args:!0,type_result:!1,fn:function(I,P){return Math.floor(I)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(I,P){return parseInt(I)}},"round/1":{type_args:!0,type_result:!1,fn:function(I,P){return Math.round(I)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(I,P){return Math.ceil(I)}},"sin/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.sin(I)}},"cos/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.cos(I)}},"tan/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.tan(I)}},"asin/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.asin(I)}},"acos/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.acos(I)}},"atan/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.atan(I)}},"atan2/2":{type_args:null,type_result:!0,fn:function(I,P,y){return Math.atan2(I,P)}},"exp/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.exp(I)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.sqrt(I)}},"log/1":{type_args:null,type_result:!0,fn:function(I,P){return I>0?Math.log(I):x.error.evaluation("undefined",P.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(I,P,y){return I+P}},"-/2":{type_args:null,type_result:null,fn:function(I,P,y){return I-P}},"*/2":{type_args:null,type_result:null,fn:function(I,P,y){return I*P}},"//2":{type_args:null,type_result:!0,fn:function(I,P,y){return P?I/P:x.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(I,P,y){return P?parseInt(I/P):x.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(I,P,y){return Math.pow(I,P)}},"^/2":{type_args:null,type_result:null,fn:function(I,P,y){return Math.pow(I,P)}},"<</2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I<<P}},">>/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I>>P}},"/\\/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I&P}},"\\//2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I|P}},"xor/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I^P}},"rem/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return P?I%P:x.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return P?I-parseInt(I/P)*P:x.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(I,P,y){return Math.max(I,P)}},"min/2":{type_args:null,type_result:null,fn:function(I,P,y){return Math.min(I,P)}}}},directive:{"dynamic/1":function(I,P){var y=P.args[0];if(x.type.is_variable(y))I.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_compound(y)||y.indicator!=="//2")I.throw_error(x.error.type("predicate_indicator",y,P.indicator));else if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))I.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_atom(y.args[0]))I.throw_error(x.error.type("atom",y.args[0],P.indicator));else if(!x.type.is_integer(y.args[1]))I.throw_error(x.error.type("integer",y.args[1],P.indicator));else{var F=P.args[0].args[0].id+"/"+P.args[0].args[1].value;I.session.public_predicates[F]=!0,I.session.rules[F]||(I.session.rules[F]=[])}},"multifile/1":function(I,P){var y=P.args[0];x.type.is_variable(y)?I.throw_error(x.error.instantiation(P.indicator)):!x.type.is_compound(y)||y.indicator!=="//2"?I.throw_error(x.error.type("predicate_indicator",y,P.indicator)):x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1])?I.throw_error(x.error.instantiation(P.indicator)):x.type.is_atom(y.args[0])?x.type.is_integer(y.args[1])?I.session.multifile_predicates[P.args[0].args[0].id+"/"+P.args[0].args[1].value]=!0:I.throw_error(x.error.type("integer",y.args[1],P.indicator)):I.throw_error(x.error.type("atom",y.args[0],P.indicator))},"set_prolog_flag/2":function(I,P){var y=P.args[0],F=P.args[1];x.type.is_variable(y)||x.type.is_variable(F)?I.throw_error(x.error.instantiation(P.indicator)):x.type.is_atom(y)?x.type.is_flag(y)?x.type.is_value_flag(y,F)?x.type.is_modifiable_flag(y)?I.session.flag[y.id]=F:I.throw_error(x.error.permission("modify","flag",y)):I.throw_error(x.error.domain("flag_value",new H("+",[y,F]),P.indicator)):I.throw_error(x.error.domain("prolog_flag",y,P.indicator)):I.throw_error(x.error.type("atom",y,P.indicator))},"use_module/1":function(I,P){var y=P.args[0];if(x.type.is_variable(y))I.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_term(y))I.throw_error(x.error.type("term",y,P.indicator));else if(x.type.is_module(y)){var F=y.args[0].id;e(I.session.modules,F)===-1&&I.session.modules.push(F)}},"char_conversion/2":function(I,P){var y=P.args[0],F=P.args[1];x.type.is_variable(y)||x.type.is_variable(F)?I.throw_error(x.error.instantiation(P.indicator)):x.type.is_character(y)?x.type.is_character(F)?y.id===F.id?delete I.session.__char_conversion[y.id]:I.session.__char_conversion[y.id]=F.id:I.throw_error(x.error.type("character",F,P.indicator)):I.throw_error(x.error.type("character",y,P.indicator))},"op/3":function(I,P){var y=P.args[0],F=P.args[1],J=P.args[2];if(x.type.is_variable(y)||x.type.is_variable(F)||x.type.is_variable(J))I.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_integer(y))I.throw_error(x.error.type("integer",y,P.indicator));else if(!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,P.indicator));else if(!x.type.is_atom(J))I.throw_error(x.error.type("atom",J,P.indicator));else if(y.value<0||y.value>1200)I.throw_error(x.error.domain("operator_priority",y,P.indicator));else if(J.id===",")I.throw_error(x.error.permission("modify","operator",J,P.indicator));else if(J.id==="|"&&(y.value<1001||F.id.length!==3))I.throw_error(x.error.permission("modify","operator",J,P.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(F.id)===-1)I.throw_error(x.error.domain("operator_specifier",F,P.indicator));else{var X={prefix:null,infix:null,postfix:null};for(var $ in I.session.__operators)if(!!I.session.__operators.hasOwnProperty($)){var ie=I.session.__operators[$][J.id];ie&&(e(ie,"fx")!==-1&&(X.prefix={priority:$,type:"fx"}),e(ie,"fy")!==-1&&(X.prefix={priority:$,type:"fy"}),e(ie,"xf")!==-1&&(X.postfix={priority:$,type:"xf"}),e(ie,"yf")!==-1&&(X.postfix={priority:$,type:"yf"}),e(ie,"xfx")!==-1&&(X.infix={priority:$,type:"xfx"}),e(ie,"xfy")!==-1&&(X.infix={priority:$,type:"xfy"}),e(ie,"yfx")!==-1&&(X.infix={priority:$,type:"yfx"}))}var ke;switch(F.id){case"fy":case"fx":ke="prefix";break;case"yf":case"xf":ke="postfix";break;default:ke="infix";break}if(((X.prefix&&ke==="prefix"||X.postfix&&ke==="postfix"||X.infix&&ke==="infix")&&X[ke].type!==F.id||X.infix&&ke==="postfix"||X.postfix&&ke==="infix")&&y.value!==0)I.throw_error(x.error.permission("create","operator",J,P.indicator));else return X[ke]&&(De(I.session.__operators[X[ke].priority][J.id],F.id),I.session.__operators[X[ke].priority][J.id].length===0&&delete I.session.__operators[X[ke].priority][J.id]),y.value>0&&(I.session.__operators[y.value]||(I.session.__operators[y.value.toString()]={}),I.session.__operators[y.value][J.id]||(I.session.__operators[y.value][J.id]=[]),I.session.__operators[y.value][J.id].push(F.id)),!0}}},predicate:{"op/3":function(I,P,y){x.directive["op/3"](I,y)&&I.success(P)},"current_op/3":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=[];for(var ie in I.session.__operators)for(var ke in I.session.__operators[ie])for(var Ne=0;Ne<I.session.__operators[ie][ke].length;Ne++)$.push(new Qe(P.goal.replace(new H(",",[new H("=",[new be(ie,!1),F]),new H(",",[new H("=",[new H(I.session.__operators[ie][ke][Ne],[]),J]),new H("=",[new H(ke,[]),X])])])),P.substitution,P));I.prepend($)},";/2":function(I,P,y){if(x.type.is_term(y.args[0])&&y.args[0].indicator==="->/2"){var F=I.points,J=I.session.format_success,X=I.session.format_error;I.session.format_success=function(Ne){return Ne.substitution},I.session.format_error=function(Ne){return Ne.goal},I.points=[new Qe(y.args[0].args[0],P.substitution,P)];var $=function(Ne){I.points=F,I.session.format_success=J,I.session.format_error=X,Ne===!1?I.prepend([new Qe(P.goal.replace(y.args[1]),P.substitution,P)]):x.type.is_error(Ne)?I.throw_error(Ne.args[0]):Ne===null?(I.prepend([P]),I.__calls.shift()(null)):I.prepend([new Qe(P.goal.replace(y.args[0].args[1]).apply(Ne),P.substitution.apply(Ne),P)])};I.__calls.unshift($)}else{var ie=new Qe(P.goal.replace(y.args[0]),P.substitution,P),ke=new Qe(P.goal.replace(y.args[1]),P.substitution,P);I.prepend([ie,ke])}},"!/0":function(I,P,y){var F,J,X=[];for(F=P,J=null;F.parent!==null&&F.parent.goal.search(y);)if(J=F,F=F.parent,F.goal!==null){var $=F.goal.select();if($&&$.id==="call"&&$.search(y)){F=J;break}}for(var ie=I.points.length-1;ie>=0;ie--){for(var ke=I.points[ie],Ne=ke.parent;Ne!==null&&Ne!==F.parent;)Ne=Ne.parent;Ne===null&&Ne!==F.parent&&X.push(ke)}I.points=X.reverse(),I.success(P)},"\\+/1":function(I,P,y){var F=y.args[0];x.type.is_variable(F)?I.throw_error(x.error.instantiation(I.level)):x.type.is_callable(F)?I.prepend([new Qe(P.goal.replace(new H(",",[new H(",",[new H("call",[F]),new H("!",[])]),new H("fail",[])])),P.substitution,P),new Qe(P.goal.replace(null),P.substitution,P)]):I.throw_error(x.error.type("callable",F,I.level))},"->/2":function(I,P,y){var F=P.goal.replace(new H(",",[y.args[0],new H(",",[new H("!"),y.args[1]])]));I.prepend([new Qe(F,P.substitution,P)])},"fail/0":function(I,P,y){},"false/0":function(I,P,y){},"true/0":function(I,P,y){I.success(P)},"call/1":ne(1),"call/2":ne(2),"call/3":ne(3),"call/4":ne(4),"call/5":ne(5),"call/6":ne(6),"call/7":ne(7),"call/8":ne(8),"once/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("call",[F]),new H("!",[])])),P.substitution,P)])},"forall/2":function(I,P,y){var F=y.args[0],J=y.args[1];I.prepend([new Qe(P.goal.replace(new H("\\+",[new H(",",[new H("call",[F]),new H("\\+",[new H("call",[J])])])])),P.substitution,P)])},"repeat/0":function(I,P,y){I.prepend([new Qe(P.goal.replace(null),P.substitution,P),P])},"throw/1":function(I,P,y){x.type.is_variable(y.args[0])?I.throw_error(x.error.instantiation(I.level)):I.throw_error(y.args[0])},"catch/3":function(I,P,y){var F=I.points;I.points=[],I.prepend([new Qe(y.args[0],P.substitution,P)]);var J=I.session.format_success,X=I.session.format_error;I.session.format_success=function(ie){return ie.substitution},I.session.format_error=function(ie){return ie.goal};var $=function(ie){var ke=I.points;if(I.points=F,I.session.format_success=J,I.session.format_error=X,x.type.is_error(ie)){for(var Ne=[],st=I.points.length-1;st>=0;st--){for(var Xt=I.points[st],ht=Xt.parent;ht!==null&&ht!==P.parent;)ht=ht.parent;ht===null&&ht!==P.parent&&Ne.push(Xt)}I.points=Ne;var Ut=I.get_flag("occurs_check").indicator==="true/0",Xt=new Qe,Pt=x.unify(ie.args[0],y.args[1],Ut);Pt!==null?(Xt.substitution=P.substitution.apply(Pt),Xt.goal=P.goal.replace(y.args[2]).apply(Pt),Xt.parent=P,I.prepend([Xt])):I.throw_error(ie.args[0])}else if(ie!==!1){for(var tn=ie===null?[]:[new Qe(P.goal.apply(ie).replace(null),P.substitution.apply(ie),P)],Dr=[],st=ke.length-1;st>=0;st--){Dr.push(ke[st]);var fr=ke[st].goal!==null?ke[st].goal.select():null;if(x.type.is_term(fr)&&fr.indicator==="!/0")break}var Br=o(Dr,function(jr){return jr.goal===null&&(jr.goal=new H("true",[])),jr=new Qe(P.goal.replace(new H("catch",[jr.goal,y.args[1],y.args[2]])),P.substitution.apply(jr.substitution),jr.parent),jr.exclude=y.args[0].variables(),jr}).reverse();I.prepend(Br),I.prepend(tn),ie===null&&(this.current_limit=0,I.__calls.shift()(null))}};I.__calls.unshift($)},"=/2":function(I,P,y){var F=I.get_flag("occurs_check").indicator==="true/0",J=new Qe,X=x.unify(y.args[0],y.args[1],F);X!==null&&(J.goal=P.goal.apply(X).replace(null),J.substitution=P.substitution.apply(X),J.parent=P,I.prepend([J]))},"unify_with_occurs_check/2":function(I,P,y){var F=new Qe,J=x.unify(y.args[0],y.args[1],!0);J!==null&&(F.goal=P.goal.apply(J).replace(null),F.substitution=P.substitution.apply(J),F.parent=P,I.prepend([F]))},"\\=/2":function(I,P,y){var F=I.get_flag("occurs_check").indicator==="true/0",J=x.unify(y.args[0],y.args[1],F);J===null&&I.success(P)},"subsumes_term/2":function(I,P,y){var F=I.get_flag("occurs_check").indicator==="true/0",J=x.unify(y.args[1],y.args[0],F);J!==null&&y.args[1].apply(J).equals(y.args[1])&&I.success(P)},"findall/3":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(x.type.is_variable(J))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(J))I.throw_error(x.error.type("callable",J,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else{var $=I.next_free_variable(),ie=new H(",",[J,new H("=",[$,F])]),ke=I.points,Ne=I.session.limit,st=I.session.format_success;I.session.format_success=function(Xt){return Xt.substitution},I.add_goal(ie,!0,P);var ht=[],Ut=function(Xt){if(Xt!==!1&&Xt!==null&&!x.type.is_error(Xt))I.__calls.unshift(Ut),ht.push(Xt.links[$.id]),I.session.limit=I.current_limit;else if(I.points=ke,I.session.limit=Ne,I.session.format_success=st,x.type.is_error(Xt))I.throw_error(Xt.args[0]);else if(I.current_limit>0){for(var Pt=new H("[]"),tn=ht.length-1;tn>=0;tn--)Pt=new H(".",[ht[tn],Pt]);I.prepend([new Qe(P.goal.replace(new H("=",[X,Pt])),P.substitution,P)])}};I.__calls.unshift(Ut)}},"bagof/3":function(I,P,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(X))I.throw_error(x.error.type("callable",X,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))I.throw_error(x.error.type("list",$,y.indicator));else{var ie=I.next_free_variable(),ke;X.indicator==="^/2"?(ke=X.args[0].variables(),X=X.args[1]):ke=[],ke=ke.concat(J.variables());for(var Ne=X.variables().filter(function(Br){return e(ke,Br)===-1}),st=new H("[]"),ht=Ne.length-1;ht>=0;ht--)st=new H(".",[new me(Ne[ht]),st]);var Ut=new H(",",[X,new H("=",[ie,new H(",",[st,J])])]),Xt=I.points,Pt=I.session.limit,tn=I.session.format_success;I.session.format_success=function(Br){return Br.substitution},I.add_goal(Ut,!0,P);var Dr=[],fr=function(Br){if(Br!==!1&&Br!==null&&!x.type.is_error(Br)){I.__calls.unshift(fr);var jr=!1,Hn=Br.links[ie.id].args[0],bs=Br.links[ie.id].args[1];for(var ki in Dr)if(!!Dr.hasOwnProperty(ki)){var gs=Dr[ki];if(gs.variables.equals(Hn)){gs.answers.push(bs),jr=!0;break}}jr||Dr.push({variables:Hn,answers:[bs]}),I.session.limit=I.current_limit}else if(I.points=Xt,I.session.limit=Pt,I.session.format_success=tn,x.type.is_error(Br))I.throw_error(Br.args[0]);else if(I.current_limit>0){for(var to=[],Di=0;Di<Dr.length;Di++){Br=Dr[Di].answers;for(var Qs=new H("[]"),ro=Br.length-1;ro>=0;ro--)Qs=new H(".",[Br[ro],Qs]);to.push(new Qe(P.goal.replace(new H(",",[new H("=",[st,Dr[Di].variables]),new H("=",[$,Qs])])),P.substitution,P))}I.prepend(to)}};I.__calls.unshift(fr)}},"setof/3":function(I,P,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(X))I.throw_error(x.error.type("callable",X,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))I.throw_error(x.error.type("list",$,y.indicator));else{var ie=I.next_free_variable(),ke;X.indicator==="^/2"?(ke=X.args[0].variables(),X=X.args[1]):ke=[],ke=ke.concat(J.variables());for(var Ne=X.variables().filter(function(Br){return e(ke,Br)===-1}),st=new H("[]"),ht=Ne.length-1;ht>=0;ht--)st=new H(".",[new me(Ne[ht]),st]);var Ut=new H(",",[X,new H("=",[ie,new H(",",[st,J])])]),Xt=I.points,Pt=I.session.limit,tn=I.session.format_success;I.session.format_success=function(Br){return Br.substitution},I.add_goal(Ut,!0,P);var Dr=[],fr=function(Br){if(Br!==!1&&Br!==null&&!x.type.is_error(Br)){I.__calls.unshift(fr);var jr=!1,Hn=Br.links[ie.id].args[0],bs=Br.links[ie.id].args[1];for(var ki in Dr)if(!!Dr.hasOwnProperty(ki)){var gs=Dr[ki];if(gs.variables.equals(Hn)){gs.answers.push(bs),jr=!0;break}}jr||Dr.push({variables:Hn,answers:[bs]}),I.session.limit=I.current_limit}else if(I.points=Xt,I.session.limit=Pt,I.session.format_success=tn,x.type.is_error(Br))I.throw_error(Br.args[0]);else if(I.current_limit>0){for(var to=[],Di=0;Di<Dr.length;Di++){Br=Dr[Di].answers.sort(x.compare);for(var Qs=new H("[]"),ro=Br.length-1;ro>=0;ro--)Qs=new H(".",[Br[ro],Qs]);to.push(new Qe(P.goal.replace(new H(",",[new H("=",[st,Dr[Di].variables]),new H("=",[$,Qs])])),P.substitution,P))}I.prepend(to)}};I.__calls.unshift(fr)}},"functor/3":function(I,P,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(x.type.is_variable(J)&&(x.type.is_variable(X)||x.type.is_variable($)))I.throw_error(x.error.instantiation("functor/3"));else if(!x.type.is_variable($)&&!x.type.is_integer($))I.throw_error(x.error.type("integer",y.args[2],"functor/3"));else if(!x.type.is_variable(X)&&!x.type.is_atomic(X))I.throw_error(x.error.type("atomic",y.args[1],"functor/3"));else if(x.type.is_integer(X)&&x.type.is_integer($)&&$.value!==0)I.throw_error(x.error.type("atom",y.args[1],"functor/3"));else if(x.type.is_variable(J)){if(y.args[2].value>=0){for(var ie=[],ke=0;ke<$.value;ke++)ie.push(I.next_free_variable());var Ne=x.type.is_integer(X)?X:new H(X.id,ie);I.prepend([new Qe(P.goal.replace(new H("=",[J,Ne])),P.substitution,P)])}}else{var st=x.type.is_integer(J)?J:new H(J.id,[]),ht=x.type.is_integer(J)?new be(0,!1):new be(J.args.length,!1),Ut=new H(",",[new H("=",[st,X]),new H("=",[ht,$])]);I.prepend([new Qe(P.goal.replace(Ut),P.substitution,P)])}},"arg/3":function(I,P,y){if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))I.throw_error(x.error.instantiation(y.indicator));else if(y.args[0].value<0)I.throw_error(x.error.domain("not_less_than_zero",y.args[0],y.indicator));else if(!x.type.is_compound(y.args[1]))I.throw_error(x.error.type("compound",y.args[1],y.indicator));else{var F=y.args[0].value;if(F>0&&F<=y.args[1].args.length){var J=new H("=",[y.args[1].args[F-1],y.args[2]]);I.prepend([new Qe(P.goal.replace(J),P.substitution,P)])}}},"=../2":function(I,P,y){var F;if(x.type.is_variable(y.args[0])&&(x.type.is_variable(y.args[1])||x.type.is_non_empty_list(y.args[1])&&x.type.is_variable(y.args[1].args[0])))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_fully_list(y.args[1]))I.throw_error(x.error.type("list",y.args[1],y.indicator));else if(x.type.is_variable(y.args[0])){if(!x.type.is_variable(y.args[1])){var X=[];for(F=y.args[1].args[1];F.indicator==="./2";)X.push(F.args[0]),F=F.args[1];x.type.is_variable(y.args[0])&&x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):X.length===0&&x.type.is_compound(y.args[1].args[0])?I.throw_error(x.error.type("atomic",y.args[1].args[0],y.indicator)):X.length>0&&(x.type.is_compound(y.args[1].args[0])||x.type.is_number(y.args[1].args[0]))?I.throw_error(x.error.type("atom",y.args[1].args[0],y.indicator)):X.length===0?I.prepend([new Qe(P.goal.replace(new H("=",[y.args[1].args[0],y.args[0]],P)),P.substitution,P)]):I.prepend([new Qe(P.goal.replace(new H("=",[new H(y.args[1].args[0].id,X),y.args[0]])),P.substitution,P)])}}else{if(x.type.is_atomic(y.args[0]))F=new H(".",[y.args[0],new H("[]")]);else{F=new H("[]");for(var J=y.args[0].args.length-1;J>=0;J--)F=new H(".",[y.args[0].args[J],F]);F=new H(".",[new H(y.args[0].id),F])}I.prepend([new Qe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P)])}},"copy_term/2":function(I,P,y){var F=y.args[0].rename(I);I.prepend([new Qe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P.parent)])},"term_variables/2":function(I,P,y){var F=y.args[0],J=y.args[1];if(!x.type.is_fully_list(J))I.throw_error(x.error.type("list",J,y.indicator));else{var X=g(o(Ce(F.variables()),function($){return new me($)}));I.prepend([new Qe(P.goal.replace(new H("=",[J,X])),P.substitution,P)])}},"clause/2":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))I.throw_error(x.error.type("callable",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_callable(y.args[1]))I.throw_error(x.error.type("callable",y.args[1],y.indicator));else if(I.session.rules[y.args[0].indicator]!==void 0)if(I.is_public_predicate(y.args[0].indicator)){var F=[];for(var J in I.session.rules[y.args[0].indicator])if(!!I.session.rules[y.args[0].indicator].hasOwnProperty(J)){var X=I.session.rules[y.args[0].indicator][J];I.session.renamed_variables={},X=X.rename(I),X.body===null&&(X.body=new H("true"));var $=new H(",",[new H("=",[X.head,y.args[0]]),new H("=",[X.body,y.args[1]])]);F.push(new Qe(P.goal.replace($),P.substitution,P))}I.prepend(F)}else I.throw_error(x.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(I,P,y){var F=y.args[0];if(!x.type.is_variable(F)&&(!x.type.is_compound(F)||F.indicator!=="//2"))I.throw_error(x.error.type("predicate_indicator",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[0])&&!x.type.is_atom(F.args[0]))I.throw_error(x.error.type("atom",F.args[0],y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[1])&&!x.type.is_integer(F.args[1]))I.throw_error(x.error.type("integer",F.args[1],y.indicator));else{var J=[];for(var X in I.session.rules)if(!!I.session.rules.hasOwnProperty(X)){var $=X.lastIndexOf("/"),ie=X.substr(0,$),ke=parseInt(X.substr($+1,X.length-($+1))),Ne=new H("/",[new H(ie),new be(ke,!1)]),st=new H("=",[Ne,F]);J.push(new Qe(P.goal.replace(st),P.substitution,P))}I.prepend(J)}},"asserta/1":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))I.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,J;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=Pe(y.args[0].args[1])):(F=y.args[0],J=null),x.type.is_callable(F)?J!==null&&!x.type.is_callable(J)?I.throw_error(x.error.type("callable",J,y.indicator)):I.is_public_predicate(F.indicator)?(I.session.rules[F.indicator]===void 0&&(I.session.rules[F.indicator]=[]),I.session.public_predicates[F.indicator]=!0,I.session.rules[F.indicator]=[new _e(F,J,!0)].concat(I.session.rules[F.indicator]),I.success(P)):I.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator)):I.throw_error(x.error.type("callable",F,y.indicator))}},"assertz/1":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))I.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,J;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=Pe(y.args[0].args[1])):(F=y.args[0],J=null),x.type.is_callable(F)?J!==null&&!x.type.is_callable(J)?I.throw_error(x.error.type("callable",J,y.indicator)):I.is_public_predicate(F.indicator)?(I.session.rules[F.indicator]===void 0&&(I.session.rules[F.indicator]=[]),I.session.public_predicates[F.indicator]=!0,I.session.rules[F.indicator].push(new _e(F,J,!0)),I.success(P)):I.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator)):I.throw_error(x.error.type("callable",F,y.indicator))}},"retract/1":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))I.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,J;if(y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=y.args[0].args[1]):(F=y.args[0],J=new H("true")),typeof P.retract>"u")if(I.is_public_predicate(F.indicator)){if(I.session.rules[F.indicator]!==void 0){for(var X=[],$=0;$<I.session.rules[F.indicator].length;$++){I.session.renamed_variables={};var ie=I.session.rules[F.indicator][$],ke=ie.rename(I);ke.body===null&&(ke.body=new H("true",[]));var Ne=I.get_flag("occurs_check").indicator==="true/0",st=x.unify(new H(",",[F,J]),new H(",",[ke.head,ke.body]),Ne);if(st!==null){var ht=new Qe(P.goal.replace(new H(",",[new H("retract",[new H(":-",[F,J])]),new H(",",[new H("=",[F,ke.head]),new H("=",[J,ke.body])])])),P.substitution,P);ht.retract=ie,X.push(ht)}}I.prepend(X)}}else I.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator));else de(I,P,F.indicator,P.retract)}},"retractall/1":function(I,P,y){var F=y.args[0];x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_callable(F)?I.prepend([new Qe(P.goal.replace(new H(",",[new H("retract",[new x.type.Term(":-",[F,new me("_")])]),new H("fail",[])])),P.substitution,P),new Qe(P.goal.replace(null),P.substitution,P)]):I.throw_error(x.error.type("callable",F,y.indicator))},"abolish/1":function(I,P,y){if(x.type.is_variable(y.args[0])||x.type.is_term(y.args[0])&&y.args[0].indicator==="//2"&&(x.type.is_variable(y.args[0].args[0])||x.type.is_variable(y.args[0].args[1])))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_term(y.args[0])||y.args[0].indicator!=="//2")I.throw_error(x.error.type("predicate_indicator",y.args[0],y.indicator));else if(!x.type.is_atom(y.args[0].args[0]))I.throw_error(x.error.type("atom",y.args[0].args[0],y.indicator));else if(!x.type.is_integer(y.args[0].args[1]))I.throw_error(x.error.type("integer",y.args[0].args[1],y.indicator));else if(y.args[0].args[1].value<0)I.throw_error(x.error.domain("not_less_than_zero",y.args[0].args[1],y.indicator));else if(x.type.is_number(I.get_flag("max_arity"))&&y.args[0].args[1].value>I.get_flag("max_arity").value)I.throw_error(x.error.representation("max_arity",y.indicator));else{var F=y.args[0].args[0].id+"/"+y.args[0].args[1].value;I.is_public_predicate(F)?(delete I.session.rules[F],I.success(P)):I.throw_error(x.error.permission("modify","static_procedure",F,y.indicator))}},"atom_length/2":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_atom(y.args[0]))I.throw_error(x.error.type("atom",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_integer(y.args[1]))I.throw_error(x.error.type("integer",y.args[1],y.indicator));else if(x.type.is_integer(y.args[1])&&y.args[1].value<0)I.throw_error(x.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var F=new be(y.args[0].id.length,!1);I.prepend([new Qe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P)])}},"atom_concat/3":function(I,P,y){var F,J,X=y.args[0],$=y.args[1],ie=y.args[2];if(x.type.is_variable(ie)&&(x.type.is_variable(X)||x.type.is_variable($)))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_atom(X))I.throw_error(x.error.type("atom",X,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_atom($))I.throw_error(x.error.type("atom",$,y.indicator));else if(!x.type.is_variable(ie)&&!x.type.is_atom(ie))I.throw_error(x.error.type("atom",ie,y.indicator));else{var ke=x.type.is_variable(X),Ne=x.type.is_variable($);if(!ke&&!Ne)J=new H("=",[ie,new H(X.id+$.id)]),I.prepend([new Qe(P.goal.replace(J),P.substitution,P)]);else if(ke&&!Ne)F=ie.id.substr(0,ie.id.length-$.id.length),F+$.id===ie.id&&(J=new H("=",[X,new H(F)]),I.prepend([new Qe(P.goal.replace(J),P.substitution,P)]));else if(Ne&&!ke)F=ie.id.substr(X.id.length),X.id+F===ie.id&&(J=new H("=",[$,new H(F)]),I.prepend([new Qe(P.goal.replace(J),P.substitution,P)]));else{for(var st=[],ht=0;ht<=ie.id.length;ht++){var Ut=new H(ie.id.substr(0,ht)),Xt=new H(ie.id.substr(ht));J=new H(",",[new H("=",[Ut,X]),new H("=",[Xt,$])]),st.push(new Qe(P.goal.replace(J),P.substitution,P))}I.prepend(st)}}},"sub_atom/5":function(I,P,y){var F,J=y.args[0],X=y.args[1],$=y.args[2],ie=y.args[3],ke=y.args[4];if(x.type.is_variable(J))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_integer(X))I.throw_error(x.error.type("integer",X,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_integer($))I.throw_error(x.error.type("integer",$,y.indicator));else if(!x.type.is_variable(ie)&&!x.type.is_integer(ie))I.throw_error(x.error.type("integer",ie,y.indicator));else if(x.type.is_integer(X)&&X.value<0)I.throw_error(x.error.domain("not_less_than_zero",X,y.indicator));else if(x.type.is_integer($)&&$.value<0)I.throw_error(x.error.domain("not_less_than_zero",$,y.indicator));else if(x.type.is_integer(ie)&&ie.value<0)I.throw_error(x.error.domain("not_less_than_zero",ie,y.indicator));else{var Ne=[],st=[],ht=[];if(x.type.is_variable(X))for(F=0;F<=J.id.length;F++)Ne.push(F);else Ne.push(X.value);if(x.type.is_variable($))for(F=0;F<=J.id.length;F++)st.push(F);else st.push($.value);if(x.type.is_variable(ie))for(F=0;F<=J.id.length;F++)ht.push(F);else ht.push(ie.value);var Ut=[];for(var Xt in Ne)if(!!Ne.hasOwnProperty(Xt)){F=Ne[Xt];for(var Pt in st)if(!!st.hasOwnProperty(Pt)){var tn=st[Pt],Dr=J.id.length-F-tn;if(e(ht,Dr)!==-1&&F+tn+Dr===J.id.length){var fr=J.id.substr(F,tn);if(J.id===J.id.substr(0,F)+fr+J.id.substr(F+tn,Dr)){var Br=new H("=",[new H(fr),ke]),jr=new H("=",[X,new be(F)]),Hn=new H("=",[$,new be(tn)]),bs=new H("=",[ie,new be(Dr)]),ki=new H(",",[new H(",",[new H(",",[jr,Hn]),bs]),Br]);Ut.push(new Qe(P.goal.replace(ki),P.substitution,P))}}}}I.prepend(Ut)}},"atom_chars/2":function(I,P,y){var F=y.args[0],J=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(J))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_variable(F)){for(var ie=J,ke=x.type.is_variable(F),Ne="";ie.indicator==="./2";){if(x.type.is_character(ie.args[0]))Ne+=ie.args[0].id;else if(x.type.is_variable(ie.args[0])&&ke){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(ie.args[0])){I.throw_error(x.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}x.type.is_variable(ie)&&ke?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(ie)&&!x.type.is_variable(ie)?I.throw_error(x.error.type("list",J,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[new H(Ne),F])),P.substitution,P)])}else{for(var X=new H("[]"),$=F.id.length-1;$>=0;$--)X=new H(".",[new H(F.id.charAt($)),X]);I.prepend([new Qe(P.goal.replace(new H("=",[J,X])),P.substitution,P)])}},"atom_codes/2":function(I,P,y){var F=y.args[0],J=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(J))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_variable(F)){for(var ie=J,ke=x.type.is_variable(F),Ne="";ie.indicator==="./2";){if(x.type.is_character_code(ie.args[0]))Ne+=u(ie.args[0].value);else if(x.type.is_variable(ie.args[0])&&ke){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(ie.args[0])){I.throw_error(x.error.representation("character_code",y.indicator));return}ie=ie.args[1]}x.type.is_variable(ie)&&ke?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(ie)&&!x.type.is_variable(ie)?I.throw_error(x.error.type("list",J,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[new H(Ne),F])),P.substitution,P)])}else{for(var X=new H("[]"),$=F.id.length-1;$>=0;$--)X=new H(".",[new be(n(F.id,$),!1),X]);I.prepend([new Qe(P.goal.replace(new H("=",[J,X])),P.substitution,P)])}},"char_code/2":function(I,P,y){var F=y.args[0],J=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(J))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_character(F))I.throw_error(x.error.type("character",F,y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_integer(J))I.throw_error(x.error.type("integer",J,y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_character_code(J))I.throw_error(x.error.representation("character_code",y.indicator));else if(x.type.is_variable(J)){var X=new be(n(F.id,0),!1);I.prepend([new Qe(P.goal.replace(new H("=",[X,J])),P.substitution,P)])}else{var $=new H(u(J.value));I.prepend([new Qe(P.goal.replace(new H("=",[$,F])),P.substitution,P)])}},"number_chars/2":function(I,P,y){var F,J=y.args[0],X=y.args[1];if(x.type.is_variable(J)&&x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_number(J))I.throw_error(x.error.type("number",J,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else{var $=x.type.is_variable(J);if(!x.type.is_variable(X)){var ie=X,ke=!0;for(F="";ie.indicator==="./2";){if(x.type.is_character(ie.args[0]))F+=ie.args[0].id;else if(x.type.is_variable(ie.args[0]))ke=!1;else if(!x.type.is_variable(ie.args[0])){I.throw_error(x.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}if(ke=ke&&x.type.is_empty_list(ie),!x.type.is_empty_list(ie)&&!x.type.is_variable(ie)){I.throw_error(x.error.type("list",X,y.indicator));return}if(!ke&&$){I.throw_error(x.error.instantiation(y.indicator));return}else if(ke)if(x.type.is_variable(ie)&&$){I.throw_error(x.error.instantiation(y.indicator));return}else{var Ne=I.parse(F),st=Ne.value;!x.type.is_number(st)||Ne.tokens[Ne.tokens.length-1].space?I.throw_error(x.error.syntax_by_predicate("parseable_number",y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[J,st])),P.substitution,P)]);return}}if(!$){F=J.toString();for(var ht=new H("[]"),Ut=F.length-1;Ut>=0;Ut--)ht=new H(".",[new H(F.charAt(Ut)),ht]);I.prepend([new Qe(P.goal.replace(new H("=",[X,ht])),P.substitution,P)])}}},"number_codes/2":function(I,P,y){var F,J=y.args[0],X=y.args[1];if(x.type.is_variable(J)&&x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_number(J))I.throw_error(x.error.type("number",J,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else{var $=x.type.is_variable(J);if(!x.type.is_variable(X)){var ie=X,ke=!0;for(F="";ie.indicator==="./2";){if(x.type.is_character_code(ie.args[0]))F+=u(ie.args[0].value);else if(x.type.is_variable(ie.args[0]))ke=!1;else if(!x.type.is_variable(ie.args[0])){I.throw_error(x.error.type("character_code",ie.args[0],y.indicator));return}ie=ie.args[1]}if(ke=ke&&x.type.is_empty_list(ie),!x.type.is_empty_list(ie)&&!x.type.is_variable(ie)){I.throw_error(x.error.type("list",X,y.indicator));return}if(!ke&&$){I.throw_error(x.error.instantiation(y.indicator));return}else if(ke)if(x.type.is_variable(ie)&&$){I.throw_error(x.error.instantiation(y.indicator));return}else{var Ne=I.parse(F),st=Ne.value;!x.type.is_number(st)||Ne.tokens[Ne.tokens.length-1].space?I.throw_error(x.error.syntax_by_predicate("parseable_number",y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[J,st])),P.substitution,P)]);return}}if(!$){F=J.toString();for(var ht=new H("[]"),Ut=F.length-1;Ut>=0;Ut--)ht=new H(".",[new be(n(F,Ut),!1),ht]);I.prepend([new Qe(P.goal.replace(new H("=",[X,ht])),P.substitution,P)])}}},"upcase_atom/2":function(I,P,y){var F=y.args[0],J=y.args[1];x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(J)&&!x.type.is_atom(J)?I.throw_error(x.error.type("atom",J,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[J,new H(F.id.toUpperCase(),[])])),P.substitution,P)]):I.throw_error(x.error.type("atom",F,y.indicator))},"downcase_atom/2":function(I,P,y){var F=y.args[0],J=y.args[1];x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(J)&&!x.type.is_atom(J)?I.throw_error(x.error.type("atom",J,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[J,new H(F.id.toLowerCase(),[])])),P.substitution,P)]):I.throw_error(x.error.type("atom",F,y.indicator))},"atomic_list_concat/2":function(I,P,y){var F=y.args[0],J=y.args[1];I.prepend([new Qe(P.goal.replace(new H("atomic_list_concat",[F,new H("",[]),J])),P.substitution,P)])},"atomic_list_concat/3":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(x.type.is_variable(J)||x.type.is_variable(F)&&x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_list(F))I.throw_error(x.error.type("list",F,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_atom(X))I.throw_error(x.error.type("atom",X,y.indicator));else if(x.type.is_variable(X)){for(var ie="",ke=F;x.type.is_term(ke)&&ke.indicator==="./2";){if(!x.type.is_atom(ke.args[0])&&!x.type.is_number(ke.args[0])){I.throw_error(x.error.type("atomic",ke.args[0],y.indicator));return}ie!==""&&(ie+=J.id),x.type.is_atom(ke.args[0])?ie+=ke.args[0].id:ie+=""+ke.args[0].value,ke=ke.args[1]}ie=new H(ie,[]),x.type.is_variable(ke)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_term(ke)||ke.indicator!=="[]/0"?I.throw_error(x.error.type("list",F,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[ie,X])),P.substitution,P)])}else{var $=g(o(X.id.split(J.id),function(Ne){return new H(Ne,[])}));I.prepend([new Qe(P.goal.replace(new H("=",[$,F])),P.substitution,P)])}},"@=</2":function(I,P,y){x.compare(y.args[0],y.args[1])<=0&&I.success(P)},"==/2":function(I,P,y){x.compare(y.args[0],y.args[1])===0&&I.success(P)},"\\==/2":function(I,P,y){x.compare(y.args[0],y.args[1])!==0&&I.success(P)},"@</2":function(I,P,y){x.compare(y.args[0],y.args[1])<0&&I.success(P)},"@>/2":function(I,P,y){x.compare(y.args[0],y.args[1])>0&&I.success(P)},"@>=/2":function(I,P,y){x.compare(y.args[0],y.args[1])>=0&&I.success(P)},"compare/3":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(!x.type.is_variable(F)&&!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_atom(F)&&["<",">","="].indexOf(F.id)===-1)I.throw_error(x.type.domain("order",F,y.indicator));else{var $=x.compare(J,X);$=$===0?"=":$===-1?"<":">",I.prepend([new Qe(P.goal.replace(new H("=",[F,new H($,[])])),P.substitution,P)])}},"is/2":function(I,P,y){var F=y.args[1].interpret(I);x.type.is_number(F)?I.prepend([new Qe(P.goal.replace(new H("=",[y.args[0],F],I.level)),P.substitution,P)]):I.throw_error(F)},"between/3":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(x.type.is_variable(F)||x.type.is_variable(J))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_integer(F))I.throw_error(x.error.type("integer",F,y.indicator));else if(!x.type.is_integer(J))I.throw_error(x.error.type("integer",J,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_integer(X))I.throw_error(x.error.type("integer",X,y.indicator));else if(x.type.is_variable(X)){var $=[new Qe(P.goal.replace(new H("=",[X,F])),P.substitution,P)];F.value<J.value&&$.push(new Qe(P.goal.replace(new H("between",[new be(F.value+1,!1),J,X])),P.substitution,P)),I.prepend($)}else F.value<=X.value&&J.value>=X.value&&I.success(P)},"succ/2":function(I,P,y){var F=y.args[0],J=y.args[1];x.type.is_variable(F)&&x.type.is_variable(J)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_integer(F)?I.throw_error(x.error.type("integer",F,y.indicator)):!x.type.is_variable(J)&&!x.type.is_integer(J)?I.throw_error(x.error.type("integer",J,y.indicator)):!x.type.is_variable(F)&&F.value<0?I.throw_error(x.error.domain("not_less_than_zero",F,y.indicator)):!x.type.is_variable(J)&&J.value<0?I.throw_error(x.error.domain("not_less_than_zero",J,y.indicator)):(x.type.is_variable(J)||J.value>0)&&(x.type.is_variable(F)?I.prepend([new Qe(P.goal.replace(new H("=",[F,new be(J.value-1,!1)])),P.substitution,P)]):I.prepend([new Qe(P.goal.replace(new H("=",[J,new be(F.value+1,!1)])),P.substitution,P)]))},"=:=/2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F===0&&I.success(P)},"=\\=/2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F!==0&&I.success(P)},"</2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F<0&&I.success(P)},"=</2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F<=0&&I.success(P)},">/2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F>0&&I.success(P)},">=/2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F>=0&&I.success(P)},"var/1":function(I,P,y){x.type.is_variable(y.args[0])&&I.success(P)},"atom/1":function(I,P,y){x.type.is_atom(y.args[0])&&I.success(P)},"atomic/1":function(I,P,y){x.type.is_atomic(y.args[0])&&I.success(P)},"compound/1":function(I,P,y){x.type.is_compound(y.args[0])&&I.success(P)},"integer/1":function(I,P,y){x.type.is_integer(y.args[0])&&I.success(P)},"float/1":function(I,P,y){x.type.is_float(y.args[0])&&I.success(P)},"number/1":function(I,P,y){x.type.is_number(y.args[0])&&I.success(P)},"nonvar/1":function(I,P,y){x.type.is_variable(y.args[0])||I.success(P)},"ground/1":function(I,P,y){y.variables().length===0&&I.success(P)},"acyclic_term/1":function(I,P,y){for(var F=P.substitution.apply(P.substitution),J=y.args[0].variables(),X=0;X<J.length;X++)if(P.substitution.links[J[X]]!==void 0&&!P.substitution.links[J[X]].equals(F.links[J[X]]))return;I.success(P)},"callable/1":function(I,P,y){x.type.is_callable(y.args[0])&&I.success(P)},"is_list/1":function(I,P,y){for(var F=y.args[0];x.type.is_term(F)&&F.indicator==="./2";)F=F.args[1];x.type.is_term(F)&&F.indicator==="[]/0"&&I.success(P)},"current_input/1":function(I,P,y){var F=y.args[0];!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream",F,y.indicator)):(x.type.is_atom(F)&&I.get_stream_by_alias(F.id)&&(F=I.get_stream_by_alias(F.id)),I.prepend([new Qe(P.goal.replace(new H("=",[F,I.get_current_input()])),P.substitution,P)]))},"current_output/1":function(I,P,y){var F=y.args[0];!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):(x.type.is_atom(F)&&I.get_stream_by_alias(F.id)&&(F=I.get_stream_by_alias(F.id)),I.prepend([new Qe(P.goal.replace(new H("=",[F,I.get_current_output()])),P.substitution,P)]))},"set_input/1":function(I,P,y){var F=y.args[0],J=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):x.type.is_stream(J)?J.output===!0?I.throw_error(x.error.permission("input","stream",F,y.indicator)):(I.set_current_input(J),I.success(P)):I.throw_error(x.error.existence("stream",F,y.indicator))},"set_output/1":function(I,P,y){var F=y.args[0],J=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):x.type.is_stream(J)?J.input===!0?I.throw_error(x.error.permission("output","stream",F,y.indicator)):(I.set_current_output(J),I.success(P)):I.throw_error(x.error.existence("stream",F,y.indicator))},"open/3":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2];I.prepend([new Qe(P.goal.replace(new H("open",[F,J,X,new H("[]",[])])),P.substitution,P)])},"open/4":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=y.args[3];if(x.type.is_variable(F)||x.type.is_variable(J))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_atom(J))I.throw_error(x.error.type("atom",J,y.indicator));else if(!x.type.is_list($))I.throw_error(x.error.type("list",$,y.indicator));else if(!x.type.is_variable(X))I.throw_error(x.error.type("variable",X,y.indicator));else if(!x.type.is_atom(F)&&!x.type.is_streamable(F))I.throw_error(x.error.domain("source_sink",F,y.indicator));else if(!x.type.is_io_mode(J))I.throw_error(x.error.domain("io_mode",J,y.indicator));else{for(var ie={},ke=$,Ne;x.type.is_term(ke)&&ke.indicator==="./2";){if(Ne=ke.args[0],x.type.is_variable(Ne)){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_stream_option(Ne)){I.throw_error(x.error.domain("stream_option",Ne,y.indicator));return}ie[Ne.id]=Ne.args[0].id,ke=ke.args[1]}if(ke.indicator!=="[]/0"){x.type.is_variable(ke)?I.throw_error(x.error.instantiation(y.indicator)):I.throw_error(x.error.type("list",$,y.indicator));return}else{var st=ie.alias;if(st&&I.get_stream_by_alias(st)){I.throw_error(x.error.permission("open","source_sink",new H("alias",[new H(st,[])]),y.indicator));return}ie.type||(ie.type="text");var ht;if(x.type.is_atom(F)?ht=I.file_system_open(F.id,ie.type,J.id):ht=F.stream(ie.type,J.id),ht===!1){I.throw_error(x.error.permission("open","source_sink",F,y.indicator));return}else if(ht===null){I.throw_error(x.error.existence("source_sink",F,y.indicator));return}var Ut=new Me(ht,J.id,ie.alias,ie.type,ie.reposition==="true",ie.eof_action);st?I.session.streams[st]=Ut:I.session.streams[Ut.id]=Ut,I.prepend([new Qe(P.goal.replace(new H("=",[X,Ut])),P.substitution,P)])}}},"close/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H("close",[F,new H("[]",[])])),P.substitution,P)])},"close/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(J))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(J))I.throw_error(x.error.type("list",J,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else{for(var $={},ie=J,ke;x.type.is_term(ie)&&ie.indicator==="./2";){if(ke=ie.args[0],x.type.is_variable(ke)){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_close_option(ke)){I.throw_error(x.error.domain("close_option",ke,y.indicator));return}$[ke.id]=ke.args[0].id==="true",ie=ie.args[1]}if(ie.indicator!=="[]/0"){x.type.is_variable(ie)?I.throw_error(x.error.instantiation(y.indicator)):I.throw_error(x.error.type("list",J,y.indicator));return}else{if(X===I.session.standard_input||X===I.session.standard_output){I.success(P);return}else X===I.session.current_input?I.session.current_input=I.session.standard_input:X===I.session.current_output&&(I.session.current_output=I.session.current_output);X.alias!==null?delete I.session.streams[X.alias]:delete I.session.streams[X.id],X.output&&X.stream.flush();var Ne=X.stream.close();X.stream=null,($.force===!0||Ne===!0)&&I.success(P)}}},"flush_output/0":function(I,P,y){I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("flush_output",[new me("S")])])),P.substitution,P)])},"flush_output/1":function(I,P,y){var F=y.args[0],J=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(J)||J.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):F.input===!0?I.throw_error(x.error.permission("output","stream",output,y.indicator)):(J.stream.flush(),I.success(P))},"stream_property/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_variable(F)&&(!x.type.is_stream(X)||X.stream===null))I.throw_error(x.error.existence("stream",F,y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_stream_property(J))I.throw_error(x.error.domain("stream_property",J,y.indicator));else{var $=[],ie=[];if(!x.type.is_variable(F))$.push(X);else for(var ke in I.session.streams)$.push(I.session.streams[ke]);for(var Ne=0;Ne<$.length;Ne++){var st=[];$[Ne].filename&&st.push(new H("file_name",[new H($[Ne].file_name,[])])),st.push(new H("mode",[new H($[Ne].mode,[])])),st.push(new H($[Ne].input?"input":"output",[])),$[Ne].alias&&st.push(new H("alias",[new H($[Ne].alias,[])])),st.push(new H("position",[typeof $[Ne].position=="number"?new be($[Ne].position,!1):new H($[Ne].position,[])])),st.push(new H("end_of_stream",[new H($[Ne].position==="end_of_stream"?"at":$[Ne].position==="past_end_of_stream"?"past":"not",[])])),st.push(new H("eof_action",[new H($[Ne].eof_action,[])])),st.push(new H("reposition",[new H($[Ne].reposition?"true":"false",[])])),st.push(new H("type",[new H($[Ne].type,[])]));for(var ht=0;ht<st.length;ht++)ie.push(new Qe(P.goal.replace(new H(",",[new H("=",[x.type.is_variable(F)?F:X,$[Ne]]),new H("=",[J,st[ht]])])),P.substitution,P))}I.prepend(ie)}},"at_end_of_stream/0":function(I,P,y){I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H(",",[new H("stream_property",[new me("S"),new H("end_of_stream",[new me("E")])]),new H(",",[new H("!",[]),new H(";",[new H("=",[new me("E"),new H("at",[])]),new H("=",[new me("E"),new H("past",[])])])])])])),P.substitution,P)])},"at_end_of_stream/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("stream_property",[F,new H("end_of_stream",[new me("E")])]),new H(",",[new H("!",[]),new H(";",[new H("=",[new me("E"),new H("at",[])]),new H("=",[new me("E"),new H("past",[])])])])])),P.substitution,P)])},"set_stream_position/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(J)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(X)||X.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):x.type.is_stream_position(J)?X.reposition===!1?I.throw_error(x.error.permission("reposition","stream",F,y.indicator)):(x.type.is_integer(J)?X.position=J.value:X.position=J.id,I.success(P)):I.throw_error(x.error.domain("stream_position",J,y.indicator))},"get_char/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("get_char",[new me("S"),F])])),P.substitution,P)])},"get_char/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_character(J))I.throw_error(x.error.type("in_character",J,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){I.throw_error(x.error.representation("character",y.indicator));return}X.position++}I.prepend([new Qe(P.goal.replace(new H("=",[new H($,[]),J])),P.substitution,P)])}},"get_code/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("get_code",[new me("S"),F])])),P.substitution,P)])},"get_code/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_integer(J))I.throw_error(x.error.type("integer",char,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$=-1,X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){I.throw_error(x.error.representation("character",y.indicator));return}$=n($,0),X.position++}I.prepend([new Qe(P.goal.replace(new H("=",[new be($,!1),J])),P.substitution,P)])}},"peek_char/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("peek_char",[new me("S"),F])])),P.substitution,P)])},"peek_char/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_character(J))I.throw_error(x.error.type("in_character",J,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else if($=X.stream.get(1,X.position),$===null){I.throw_error(x.error.representation("character",y.indicator));return}I.prepend([new Qe(P.goal.replace(new H("=",[new H($,[]),J])),P.substitution,P)])}},"peek_code/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("peek_code",[new me("S"),F])])),P.substitution,P)])},"peek_code/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_integer(J))I.throw_error(x.error.type("integer",char,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$=-1,X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){I.throw_error(x.error.representation("character",y.indicator));return}$=n($,0)}I.prepend([new Qe(P.goal.replace(new H("=",[new be($,!1),J])),P.substitution,P)])}},"put_char/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("put_char",[new me("S"),F])])),P.substitution,P)])},"put_char/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(J)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_character(J)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(X)||X.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):X.input?I.throw_error(x.error.permission("output","stream",F,y.indicator)):X.type==="binary"?I.throw_error(x.error.permission("output","binary_stream",F,y.indicator)):X.stream.put(J.id,X.position)&&(typeof X.position=="number"&&X.position++,I.success(P)):I.throw_error(x.error.type("character",J,y.indicator))},"put_code/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("put_code",[new me("S"),F])])),P.substitution,P)])},"put_code/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(J)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(J)?x.type.is_character_code(J)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(X)||X.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):X.input?I.throw_error(x.error.permission("output","stream",F,y.indicator)):X.type==="binary"?I.throw_error(x.error.permission("output","binary_stream",F,y.indicator)):X.stream.put_char(u(J.value),X.position)&&(typeof X.position=="number"&&X.position++,I.success(P)):I.throw_error(x.error.representation("character_code",y.indicator)):I.throw_error(x.error.type("integer",J,y.indicator))},"nl/0":function(I,P,y){I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("put_char",[new me("S"),new H(` 264`;return P},me.prototype.clone=function(){return new me(this.id)},be.prototype.clone=function(){return new be(this.value,this.is_float)},H.prototype.clone=function(){return new H(this.id,o(this.args,function(I){return I.clone()}))},Me.prototype.clone=function(){return new Stram(this.stream,this.mode,this.alias,this.type,this.reposition,this.eof_action)},Te.prototype.clone=function(){var I={};for(var P in this.links)!this.links.hasOwnProperty(P)||(I[P]=this.links[P].clone());return new Te(I)},Qe.prototype.clone=function(){return new Qe(this.goal.clone(),this.substitution.clone(),this.parent)},_e.prototype.clone=function(){return new _e(this.head.clone(),this.body!==null?this.body.clone():null)},me.prototype.equals=function(I){return x.type.is_variable(I)&&this.id===I.id},be.prototype.equals=function(I){return x.type.is_number(I)&&this.value===I.value&&this.is_float===I.is_float},H.prototype.equals=function(I){if(!x.type.is_term(I)||this.indicator!==I.indicator)return!1;for(var P=0;P<this.args.length;P++)if(!this.args[P].equals(I.args[P]))return!1;return!0},Me.prototype.equals=function(I){return x.type.is_stream(I)&&this.id===I.id},Te.prototype.equals=function(I){var P;if(!x.type.is_substitution(I))return!1;for(P in this.links)if(!!this.links.hasOwnProperty(P)&&(!I.links[P]||!this.links[P].equals(I.links[P])))return!1;for(P in I.links)if(!!I.links.hasOwnProperty(P)&&!this.links[P])return!1;return!0},Qe.prototype.equals=function(I){return x.type.is_state(I)&&this.goal.equals(I.goal)&&this.substitution.equals(I.substitution)&&this.parent===I.parent},_e.prototype.equals=function(I){return x.type.is_rule(I)&&this.head.equals(I.head)&&(this.body===null&&I.body===null||this.body!==null&&this.body.equals(I.body))},me.prototype.rename=function(I){return I.get_free_variable(this)},be.prototype.rename=function(I){return this},H.prototype.rename=function(I){return new H(this.id,o(this.args,function(P){return P.rename(I)}))},Me.prototype.rename=function(I){return this},_e.prototype.rename=function(I){return new _e(this.head.rename(I),this.body!==null?this.body.rename(I):null)},me.prototype.variables=function(){return[this.id]},be.prototype.variables=function(){return[]},H.prototype.variables=function(){return[].concat.apply([],o(this.args,function(I){return I.variables()}))},Me.prototype.variables=function(){return[]},_e.prototype.variables=function(){return this.body===null?this.head.variables():this.head.variables().concat(this.body.variables())},me.prototype.apply=function(I){return I.lookup(this.id)?I.lookup(this.id):this},be.prototype.apply=function(I){return this},H.prototype.apply=function(I){if(this.indicator==="./2"){for(var P=[],y=this;y.indicator==="./2";)P.push(y.args[0].apply(I)),y=y.args[1];for(var F=y.apply(I),z=P.length-1;z>=0;z--)F=new H(".",[P[z],F]);return F}return new H(this.id,o(this.args,function(X){return X.apply(I)}),this.ref)},Me.prototype.apply=function(I){return this},_e.prototype.apply=function(I){return new _e(this.head.apply(I),this.body!==null?this.body.apply(I):null)},Te.prototype.apply=function(I){var P,y={};for(P in this.links)!this.links.hasOwnProperty(P)||(y[P]=this.links[P].apply(I));return new Te(y)},H.prototype.select=function(){for(var I=this;I.indicator===",/2";)I=I.args[0];return I},H.prototype.replace=function(I){return this.indicator===",/2"?this.args[0].indicator===",/2"?new H(",",[this.args[0].replace(I),this.args[1]]):I===null?this.args[1]:new H(",",[I,this.args[1]]):I},H.prototype.search=function(I){if(x.type.is_term(I)&&I.ref!==void 0&&this.ref===I.ref)return!0;for(var P=0;P<this.args.length;P++)if(x.type.is_term(this.args[P])&&this.args[P].search(I))return!0;return!1},qe.prototype.get_current_input=function(){return this.current_input},At.prototype.get_current_input=function(){return this.session.get_current_input()},qe.prototype.get_current_output=function(){return this.current_output},At.prototype.get_current_output=function(){return this.session.get_current_output()},qe.prototype.set_current_input=function(I){this.current_input=I},At.prototype.set_current_input=function(I){return this.session.set_current_input(I)},qe.prototype.set_current_output=function(I){this.current_input=I},At.prototype.set_current_output=function(I){return this.session.set_current_output(I)},qe.prototype.get_stream_by_alias=function(I){return this.streams[I]},At.prototype.get_stream_by_alias=function(I){return this.session.get_stream_by_alias(I)},qe.prototype.file_system_open=function(I,P,y){return this.file_system.open(I,P,y)},At.prototype.file_system_open=function(I,P,y){return this.session.file_system_open(I,P,y)},qe.prototype.get_char_conversion=function(I){return this.__char_conversion[I]||I},At.prototype.get_char_conversion=function(I){return this.session.get_char_conversion(I)},qe.prototype.parse=function(I){return this.thread.parse(I)},At.prototype.parse=function(I){var P=new _(this);P.new_text(I);var y=P.get_tokens();if(y===null)return!1;var F=V(this,y,0,this.__get_max_priority(),!1);return F.len!==y.length?!1:{value:F.value,expr:F,tokens:y}},qe.prototype.get_flag=function(I){return this.flag[I]},At.prototype.get_flag=function(I){return this.session.get_flag(I)},qe.prototype.add_rule=function(I,P){return P=P||{},P.from=P.from?P.from:"$tau-js",this.src_predicates[I.head.indicator]=P.from,this.rules[I.head.indicator]||(this.rules[I.head.indicator]=[]),this.rules[I.head.indicator].push(I),this.public_predicates.hasOwnProperty(I.head.indicator)||(this.public_predicates[I.head.indicator]=!1),!0},At.prototype.add_rule=function(I,P){return this.session.add_rule(I,P)},qe.prototype.run_directive=function(I){this.thread.run_directive(I)},At.prototype.run_directive=function(I){return x.type.is_directive(I)?(x.directive[I.indicator](this,I),!0):!1},qe.prototype.__get_max_priority=function(){return"1200"},At.prototype.__get_max_priority=function(){return this.session.__get_max_priority()},qe.prototype.__get_next_priority=function(I){var P=0;I=parseInt(I);for(var y in this.__operators)if(!!this.__operators.hasOwnProperty(y)){var F=parseInt(y);F>P&&F<I&&(P=F)}return P.toString()},At.prototype.__get_next_priority=function(I){return this.session.__get_next_priority(I)},qe.prototype.__lookup_operator_classes=function(I,P){return this.__operators.hasOwnProperty(I)&&this.__operators[I][P]instanceof Array&&this.__operators[I][P]||!1},At.prototype.__lookup_operator_classes=function(I,P){return this.session.__lookup_operator_classes(I,P)},qe.prototype.lookup_operator=function(I,P){for(var y in this.__operators)if(this.__operators[y][I]){for(var F=0;F<this.__operators[y][I].length;F++)if(P===0||this.__operators[y][I][F].length===P+1)return{priority:y,class:this.__operators[y][I][F]}}return null},At.prototype.lookup_operator=function(I,P){return this.session.lookup_operator(I,P)},qe.prototype.throw_warning=function(I){this.thread.throw_warning(I)},At.prototype.throw_warning=function(I){this.warnings.push(I)},qe.prototype.get_warnings=function(){return this.thread.get_warnings()},At.prototype.get_warnings=function(){return this.warnings},qe.prototype.add_goal=function(I,P){this.thread.add_goal(I,P)},At.prototype.add_goal=function(I,P,y){y=y||null,P===!0&&(this.points=[]);for(var F=I.variables(),z={},X=0;X<F.length;X++)z[F[X]]=new me(F[X]);this.points.push(new Qe(I,new Te(z),y))},qe.prototype.consult=function(I,P){return this.thread.consult(I,P)},At.prototype.consult=function(I,P){var y="";if(typeof I=="string"){y=I;var F=y.length;if(y.substring(F-3,F)===".pl"&&document.getElementById(y)){var z=document.getElementById(y),X=z.getAttribute("type");X!==null&&X.replace(/ /g,"").toLowerCase()==="text/prolog"&&(y=z.text)}}else if(I.nodeName)switch(I.nodeName.toLowerCase()){case"input":case"textarea":y=I.value;break;default:y=I.innerHTML;break}else return!1;return this.warnings=[],pe(this,y,P)},qe.prototype.query=function(I){return this.thread.query(I)},At.prototype.query=function(I){return this.points=[],this.debugger_points=[],De(this,I)},qe.prototype.head_point=function(){return this.thread.head_point()},At.prototype.head_point=function(){return this.points[this.points.length-1]},qe.prototype.get_free_variable=function(I){return this.thread.get_free_variable(I)},At.prototype.get_free_variable=function(I){var P=[];if(I.id==="_"||this.session.renamed_variables[I.id]===void 0){for(this.session.rename++,this.points.length>0&&(P=this.head_point().substitution.domain());e(P,x.format_variable(this.session.rename))!==-1;)this.session.rename++;if(I.id==="_")return new me(x.format_variable(this.session.rename));this.session.renamed_variables[I.id]=x.format_variable(this.session.rename)}return new me(this.session.renamed_variables[I.id])},qe.prototype.next_free_variable=function(){return this.thread.next_free_variable()},At.prototype.next_free_variable=function(){this.session.rename++;var I=[];for(this.points.length>0&&(I=this.head_point().substitution.domain());e(I,x.format_variable(this.session.rename))!==-1;)this.session.rename++;return new me(x.format_variable(this.session.rename))},qe.prototype.is_public_predicate=function(I){return!this.public_predicates.hasOwnProperty(I)||this.public_predicates[I]===!0},At.prototype.is_public_predicate=function(I){return this.session.is_public_predicate(I)},qe.prototype.is_multifile_predicate=function(I){return this.multifile_predicates.hasOwnProperty(I)&&this.multifile_predicates[I]===!0},At.prototype.is_multifile_predicate=function(I){return this.session.is_multifile_predicate(I)},qe.prototype.prepend=function(I){return this.thread.prepend(I)},At.prototype.prepend=function(I){for(var P=I.length-1;P>=0;P--)this.points.push(I[P])},qe.prototype.success=function(I,P){return this.thread.success(I,P)},At.prototype.success=function(I,y){var y=typeof y>"u"?I:y;this.prepend([new Qe(I.goal.replace(null),I.substitution,y)])},qe.prototype.throw_error=function(I){return this.thread.throw_error(I)},At.prototype.throw_error=function(I){this.prepend([new Qe(new H("throw",[I]),new Te,null,null)])},qe.prototype.step_rule=function(I,P){return this.thread.step_rule(I,P)},At.prototype.step_rule=function(I,P){var y=P.indicator;if(I==="user"&&(I=null),I===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=I===null?this.session.modules:e(this.session.modules,I)===-1?[]:[I],z=0;z<F.length;z++){var X=x.module[F[z]];if(X.rules.hasOwnProperty(y)&&(X.rules.hasOwnProperty(this.level)||X.exports_predicate(y)))return x.module[F[z]].rules[y]}return null},qe.prototype.step=function(){return this.thread.step()},At.prototype.step=function(){if(this.points.length!==0){var I=!1,P=this.points.pop();if(this.debugger&&this.debugger_states.push(P),x.type.is_term(P.goal)){var y=P.goal.select(),F=null,z=[];if(y!==null){this.total_steps++;for(var X=P;X.parent!==null&&X.parent.goal.search(y);)X=X.parent;if(this.level=X.parent===null?"top_level/0":X.parent.goal.select().indicator,x.type.is_term(y)&&y.indicator===":/2"&&(F=y.args[0].id,y=y.args[1]),F===null&&x.type.is_builtin(y))this.__call_indicator=y.indicator,I=x.predicate[y.indicator](this,P,y);else{var $=this.step_rule(F,y);if($===null)this.session.rules.hasOwnProperty(y.indicator)||(this.get_flag("unknown").id==="error"?this.throw_error(x.error.existence("procedure",y.indicator,this.level)):this.get_flag("unknown").id==="warning"&&this.throw_warning("unknown procedure "+y.indicator+" (from "+this.level+")"));else if($ instanceof Function)I=$(this,P,y);else{for(var ie in $)if(!!$.hasOwnProperty(ie)){var ke=$[ie];this.session.renamed_variables={},ke=ke.rename(this);var Ne=this.get_flag("occurs_check").indicator==="true/0",st=new Qe,ht=x.unify(y,ke.head,Ne);ht!==null&&(st.goal=P.goal.replace(ke.body),st.goal!==null&&(st.goal=st.goal.apply(ht)),st.substitution=P.substitution.apply(ht),st.parent=P,z.push(st))}this.prepend(z)}}}}else x.type.is_variable(P.goal)?this.throw_error(x.error.instantiation(this.level)):this.throw_error(x.error.type("callable",P.goal,this.level));return I}},qe.prototype.answer=function(I){return this.thread.answer(I)},At.prototype.answer=function(I){I=I||function(P){},this.__calls.push(I),!(this.__calls.length>1)&&this.again()},qe.prototype.answers=function(I,P,y){return this.thread.answers(I,P,y)},At.prototype.answers=function(I,P,y){var F=P||1e3,z=this;if(P<=0){y&&y();return}this.answer(function(X){I(X),X!==!1?setTimeout(function(){z.answers(I,P-1,y)},1):y&&y()})},qe.prototype.again=function(I){return this.thread.again(I)},At.prototype.again=function(I){for(var P,y=Date.now();this.__calls.length>0;){for(this.warnings=[],I!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!x.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var z=this.__calls.shift();this.current_limit<=0?z(null):this.points.length===0?z(!1):x.type.is_error(this.head_point().goal)?(P=this.session.format_error(this.points.pop()),this.points=[],z(P)):(this.debugger&&this.debugger_states.push(this.head_point()),P=this.session.format_success(this.points.pop()),z(P))}},qe.prototype.unfold=function(I){if(I.body===null)return!1;var P=I.head,y=I.body,F=y.select(),z=new At(this),X=[];z.add_goal(F),z.step();for(var $=z.points.length-1;$>=0;$--){var ie=z.points[$],ke=P.apply(ie.substitution),Ne=y.replace(ie.goal);Ne!==null&&(Ne=Ne.apply(ie.substitution)),X.push(new _e(ke,Ne))}var st=this.rules[P.indicator],ht=e(st,I);return X.length>0&&ht!==-1?(st.splice.apply(st,[ht,1].concat(X)),!0):!1},At.prototype.unfold=function(I){return this.session.unfold(I)},me.prototype.interpret=function(I){return x.error.instantiation(I.level)},be.prototype.interpret=function(I){return this},H.prototype.interpret=function(I){return x.type.is_unitary_list(this)?this.args[0].interpret(I):x.operate(I,this)},me.prototype.compare=function(I){return this.id<I.id?-1:this.id>I.id?1:0},be.prototype.compare=function(I){if(this.value===I.value&&this.is_float===I.is_float)return 0;if(this.value<I.value||this.value===I.value&&this.is_float&&!I.is_float)return-1;if(this.value>I.value)return 1},H.prototype.compare=function(I){if(this.args.length<I.args.length||this.args.length===I.args.length&&this.id<I.id)return-1;if(this.args.length>I.args.length||this.args.length===I.args.length&&this.id>I.id)return 1;for(var P=0;P<this.args.length;P++){var y=x.compare(this.args[P],I.args[P]);if(y!==0)return y}return 0},Te.prototype.lookup=function(I){return this.links[I]?this.links[I]:null},Te.prototype.filter=function(I){var P={};for(var y in this.links)if(!!this.links.hasOwnProperty(y)){var F=this.links[y];I(y,F)&&(P[y]=F)}return new Te(P)},Te.prototype.exclude=function(I){var P={};for(var y in this.links)!this.links.hasOwnProperty(y)||e(I,y)===-1&&(P[y]=this.links[y]);return new Te(P)},Te.prototype.add=function(I,P){this.links[I]=P},Te.prototype.domain=function(I){var P=I===!0?function(z){return z}:function(z){return new me(z)},y=[];for(var F in this.links)y.push(P(F));return y},me.prototype.compile=function(){return'new pl.type.Var("'+this.id.toString()+'")'},be.prototype.compile=function(){return"new pl.type.Num("+this.value.toString()+", "+this.is_float.toString()+")"},H.prototype.compile=function(){return'new pl.type.Term("'+this.id.replace(/"/g,'\\"')+'", ['+o(this.args,function(I){return I.compile()})+"])"},_e.prototype.compile=function(){return"new pl.type.Rule("+this.head.compile()+", "+(this.body===null?"null":this.body.compile())+")"},qe.prototype.compile=function(){var I,P=[],y;for(var F in this.rules)if(!!this.rules.hasOwnProperty(F)){var z=this.rules[F];y=[],I='"'+F+'": [';for(var X=0;X<z.length;X++)y.push(z[X].compile());I+=y.join(),I+="]",P.push(I)}return"{"+P.join()+"};"},me.prototype.toJavaScript=function(){},be.prototype.toJavaScript=function(){return this.value},H.prototype.toJavaScript=function(){if(this.args.length===0&&this.indicator!=="[]/0")return this.id;if(x.type.is_list(this)){for(var I=[],P=this,y;P.indicator==="./2";){if(y=P.args[0].toJavaScript(),y===void 0)return;I.push(y),P=P.args[1]}if(P.indicator==="[]/0")return I}},_e.prototype.singleton_variables=function(){var I=this.head.variables(),P={},y=[];this.body!==null&&(I=I.concat(this.body.variables()));for(var F=0;F<I.length;F++)P[I[F]]===void 0&&(P[I[F]]=0),P[I[F]]++;for(var z in P)z!=="_"&&P[z]===1&&y.push(z);return y};var x={__env:typeof ml<"u"&&ml.exports?global:window,module:{},version:t,parser:{tokenizer:_,expression:V},utils:{str_indicator:Z,codePointAt:n,fromCodePoint:u},statistics:{getCountTerms:function(){return ut}},fromJavaScript:{test:{boolean:function(I){return I===!0||I===!1},number:function(I){return typeof I=="number"},string:function(I){return typeof I=="string"},list:function(I){return I instanceof Array},variable:function(I){return I===void 0},any:function(I){return!0}},conversion:{boolean:function(I){return new H(I?"true":"false",[])},number:function(I){return new be(I,I%1!==0)},string:function(I){return new H(I,[])},list:function(I){for(var P=[],y,F=0;F<I.length;F++){if(y=x.fromJavaScript.apply(I[F]),y===void 0)return;P.push(y)}return g(P)},variable:function(I){return new me("_")},any:function(I){}},apply:function(I){for(var P in x.fromJavaScript.test)if(P!=="any"&&x.fromJavaScript.test[P](I))return x.fromJavaScript.conversion[P](I);return x.fromJavaScript.conversion.any(I)}},type:{Var:me,Num:be,Term:H,Rule:_e,State:Qe,Stream:Me,Module:Oe,Thread:At,Session:qe,Substitution:Te,order:[me,be,H,Me],compare:function(I,P){var y=e(x.type.order,I.constructor),F=e(x.type.order,P.constructor);if(y<F)return-1;if(y>F)return 1;if(I.constructor===be){if(I.is_float&&P.is_float)return 0;if(I.is_float)return-1;if(P.is_float)return 1}return 0},is_substitution:function(I){return I instanceof Te},is_state:function(I){return I instanceof Qe},is_rule:function(I){return I instanceof _e},is_variable:function(I){return I instanceof me},is_stream:function(I){return I instanceof Me},is_anonymous_var:function(I){return I instanceof me&&I.id==="_"},is_callable:function(I){return I instanceof H},is_number:function(I){return I instanceof be},is_integer:function(I){return I instanceof be&&!I.is_float},is_float:function(I){return I instanceof be&&I.is_float},is_term:function(I){return I instanceof H},is_atom:function(I){return I instanceof H&&I.args.length===0},is_ground:function(I){if(I instanceof me)return!1;if(I instanceof H){for(var P=0;P<I.args.length;P++)if(!x.type.is_ground(I.args[P]))return!1}return!0},is_atomic:function(I){return I instanceof H&&I.args.length===0||I instanceof be},is_compound:function(I){return I instanceof H&&I.args.length>0},is_list:function(I){return I instanceof H&&(I.indicator==="[]/0"||I.indicator==="./2")},is_empty_list:function(I){return I instanceof H&&I.indicator==="[]/0"},is_non_empty_list:function(I){return I instanceof H&&I.indicator==="./2"},is_fully_list:function(I){for(;I instanceof H&&I.indicator==="./2";)I=I.args[1];return I instanceof me||I instanceof H&&I.indicator==="[]/0"},is_instantiated_list:function(I){for(;I instanceof H&&I.indicator==="./2";)I=I.args[1];return I instanceof H&&I.indicator==="[]/0"},is_unitary_list:function(I){return I instanceof H&&I.indicator==="./2"&&I.args[1]instanceof H&&I.args[1].indicator==="[]/0"},is_character:function(I){return I instanceof H&&(I.id.length===1||I.id.length>0&&I.id.length<=2&&n(I.id,0)>=65536)},is_character_code:function(I){return I instanceof be&&!I.is_float&&I.value>=0&&I.value<=1114111},is_byte:function(I){return I instanceof be&&!I.is_float&&I.value>=0&&I.value<=255},is_operator:function(I){return I instanceof H&&x.arithmetic.evaluation[I.indicator]},is_directive:function(I){return I instanceof H&&x.directive[I.indicator]!==void 0},is_builtin:function(I){return I instanceof H&&x.predicate[I.indicator]!==void 0},is_error:function(I){return I instanceof H&&I.indicator==="throw/1"},is_predicate_indicator:function(I){return I instanceof H&&I.indicator==="//2"&&I.args[0]instanceof H&&I.args[0].args.length===0&&I.args[1]instanceof be&&I.args[1].is_float===!1},is_flag:function(I){return I instanceof H&&I.args.length===0&&x.flag[I.id]!==void 0},is_value_flag:function(I,P){if(!x.type.is_flag(I))return!1;for(var y in x.flag[I.id].allowed)if(!!x.flag[I.id].allowed.hasOwnProperty(y)&&x.flag[I.id].allowed[y].equals(P))return!0;return!1},is_io_mode:function(I){return x.type.is_atom(I)&&["read","write","append"].indexOf(I.id)!==-1},is_stream_option:function(I){return x.type.is_term(I)&&(I.indicator==="alias/1"&&x.type.is_atom(I.args[0])||I.indicator==="reposition/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="type/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="text"||I.args[0].id==="binary")||I.indicator==="eof_action/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="error"||I.args[0].id==="eof_code"||I.args[0].id==="reset"))},is_stream_position:function(I){return x.type.is_integer(I)&&I.value>=0||x.type.is_atom(I)&&(I.id==="end_of_stream"||I.id==="past_end_of_stream")},is_stream_property:function(I){return x.type.is_term(I)&&(I.indicator==="input/0"||I.indicator==="output/0"||I.indicator==="alias/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0]))||I.indicator==="file_name/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0]))||I.indicator==="position/1"&&(x.type.is_variable(I.args[0])||x.type.is_stream_position(I.args[0]))||I.indicator==="reposition/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false"))||I.indicator==="type/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="text"||I.args[0].id==="binary"))||I.indicator==="mode/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="read"||I.args[0].id==="write"||I.args[0].id==="append"))||I.indicator==="eof_action/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="error"||I.args[0].id==="eof_code"||I.args[0].id==="reset"))||I.indicator==="end_of_stream/1"&&(x.type.is_variable(I.args[0])||x.type.is_atom(I.args[0])&&(I.args[0].id==="at"||I.args[0].id==="past"||I.args[0].id==="not")))},is_streamable:function(I){return I.__proto__.stream!==void 0},is_read_option:function(I){return x.type.is_term(I)&&["variables/1","variable_names/1","singletons/1"].indexOf(I.indicator)!==-1},is_write_option:function(I){return x.type.is_term(I)&&(I.indicator==="quoted/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="ignore_ops/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="numbervars/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false"))},is_close_option:function(I){return x.type.is_term(I)&&I.indicator==="force/1"&&x.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")},is_modifiable_flag:function(I){return x.type.is_flag(I)&&x.flag[I.id].changeable},is_module:function(I){return I instanceof H&&I.indicator==="library/1"&&I.args[0]instanceof H&&I.args[0].args.length===0&&x.module[I.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(I){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(I){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(I){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(I){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(I,P){return I}},"-/1":{type_args:null,type_result:null,fn:function(I,P){return-I}},"\\/1":{type_args:!1,type_result:!1,fn:function(I,P){return~I}},"abs/1":{type_args:null,type_result:null,fn:function(I,P){return Math.abs(I)}},"sign/1":{type_args:null,type_result:null,fn:function(I,P){return Math.sign(I)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(I,P){return parseInt(I)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(I,P){return I-parseInt(I)}},"float/1":{type_args:null,type_result:!0,fn:function(I,P){return parseFloat(I)}},"floor/1":{type_args:!0,type_result:!1,fn:function(I,P){return Math.floor(I)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(I,P){return parseInt(I)}},"round/1":{type_args:!0,type_result:!1,fn:function(I,P){return Math.round(I)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(I,P){return Math.ceil(I)}},"sin/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.sin(I)}},"cos/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.cos(I)}},"tan/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.tan(I)}},"asin/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.asin(I)}},"acos/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.acos(I)}},"atan/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.atan(I)}},"atan2/2":{type_args:null,type_result:!0,fn:function(I,P,y){return Math.atan2(I,P)}},"exp/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.exp(I)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(I,P){return Math.sqrt(I)}},"log/1":{type_args:null,type_result:!0,fn:function(I,P){return I>0?Math.log(I):x.error.evaluation("undefined",P.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(I,P,y){return I+P}},"-/2":{type_args:null,type_result:null,fn:function(I,P,y){return I-P}},"*/2":{type_args:null,type_result:null,fn:function(I,P,y){return I*P}},"//2":{type_args:null,type_result:!0,fn:function(I,P,y){return P?I/P:x.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(I,P,y){return P?parseInt(I/P):x.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(I,P,y){return Math.pow(I,P)}},"^/2":{type_args:null,type_result:null,fn:function(I,P,y){return Math.pow(I,P)}},"<</2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I<<P}},">>/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I>>P}},"/\\/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I&P}},"\\//2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I|P}},"xor/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return I^P}},"rem/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return P?I%P:x.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(I,P,y){return P?I-parseInt(I/P)*P:x.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(I,P,y){return Math.max(I,P)}},"min/2":{type_args:null,type_result:null,fn:function(I,P,y){return Math.min(I,P)}}}},directive:{"dynamic/1":function(I,P){var y=P.args[0];if(x.type.is_variable(y))I.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_compound(y)||y.indicator!=="//2")I.throw_error(x.error.type("predicate_indicator",y,P.indicator));else if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))I.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_atom(y.args[0]))I.throw_error(x.error.type("atom",y.args[0],P.indicator));else if(!x.type.is_integer(y.args[1]))I.throw_error(x.error.type("integer",y.args[1],P.indicator));else{var F=P.args[0].args[0].id+"/"+P.args[0].args[1].value;I.session.public_predicates[F]=!0,I.session.rules[F]||(I.session.rules[F]=[])}},"multifile/1":function(I,P){var y=P.args[0];x.type.is_variable(y)?I.throw_error(x.error.instantiation(P.indicator)):!x.type.is_compound(y)||y.indicator!=="//2"?I.throw_error(x.error.type("predicate_indicator",y,P.indicator)):x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1])?I.throw_error(x.error.instantiation(P.indicator)):x.type.is_atom(y.args[0])?x.type.is_integer(y.args[1])?I.session.multifile_predicates[P.args[0].args[0].id+"/"+P.args[0].args[1].value]=!0:I.throw_error(x.error.type("integer",y.args[1],P.indicator)):I.throw_error(x.error.type("atom",y.args[0],P.indicator))},"set_prolog_flag/2":function(I,P){var y=P.args[0],F=P.args[1];x.type.is_variable(y)||x.type.is_variable(F)?I.throw_error(x.error.instantiation(P.indicator)):x.type.is_atom(y)?x.type.is_flag(y)?x.type.is_value_flag(y,F)?x.type.is_modifiable_flag(y)?I.session.flag[y.id]=F:I.throw_error(x.error.permission("modify","flag",y)):I.throw_error(x.error.domain("flag_value",new H("+",[y,F]),P.indicator)):I.throw_error(x.error.domain("prolog_flag",y,P.indicator)):I.throw_error(x.error.type("atom",y,P.indicator))},"use_module/1":function(I,P){var y=P.args[0];if(x.type.is_variable(y))I.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_term(y))I.throw_error(x.error.type("term",y,P.indicator));else if(x.type.is_module(y)){var F=y.args[0].id;e(I.session.modules,F)===-1&&I.session.modules.push(F)}},"char_conversion/2":function(I,P){var y=P.args[0],F=P.args[1];x.type.is_variable(y)||x.type.is_variable(F)?I.throw_error(x.error.instantiation(P.indicator)):x.type.is_character(y)?x.type.is_character(F)?y.id===F.id?delete I.session.__char_conversion[y.id]:I.session.__char_conversion[y.id]=F.id:I.throw_error(x.error.type("character",F,P.indicator)):I.throw_error(x.error.type("character",y,P.indicator))},"op/3":function(I,P){var y=P.args[0],F=P.args[1],z=P.args[2];if(x.type.is_variable(y)||x.type.is_variable(F)||x.type.is_variable(z))I.throw_error(x.error.instantiation(P.indicator));else if(!x.type.is_integer(y))I.throw_error(x.error.type("integer",y,P.indicator));else if(!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,P.indicator));else if(!x.type.is_atom(z))I.throw_error(x.error.type("atom",z,P.indicator));else if(y.value<0||y.value>1200)I.throw_error(x.error.domain("operator_priority",y,P.indicator));else if(z.id===",")I.throw_error(x.error.permission("modify","operator",z,P.indicator));else if(z.id==="|"&&(y.value<1001||F.id.length!==3))I.throw_error(x.error.permission("modify","operator",z,P.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(F.id)===-1)I.throw_error(x.error.domain("operator_specifier",F,P.indicator));else{var X={prefix:null,infix:null,postfix:null};for(var $ in I.session.__operators)if(!!I.session.__operators.hasOwnProperty($)){var ie=I.session.__operators[$][z.id];ie&&(e(ie,"fx")!==-1&&(X.prefix={priority:$,type:"fx"}),e(ie,"fy")!==-1&&(X.prefix={priority:$,type:"fy"}),e(ie,"xf")!==-1&&(X.postfix={priority:$,type:"xf"}),e(ie,"yf")!==-1&&(X.postfix={priority:$,type:"yf"}),e(ie,"xfx")!==-1&&(X.infix={priority:$,type:"xfx"}),e(ie,"xfy")!==-1&&(X.infix={priority:$,type:"xfy"}),e(ie,"yfx")!==-1&&(X.infix={priority:$,type:"yfx"}))}var ke;switch(F.id){case"fy":case"fx":ke="prefix";break;case"yf":case"xf":ke="postfix";break;default:ke="infix";break}if(((X.prefix&&ke==="prefix"||X.postfix&&ke==="postfix"||X.infix&&ke==="infix")&&X[ke].type!==F.id||X.infix&&ke==="postfix"||X.postfix&&ke==="infix")&&y.value!==0)I.throw_error(x.error.permission("create","operator",z,P.indicator));else return X[ke]&&(ve(I.session.__operators[X[ke].priority][z.id],F.id),I.session.__operators[X[ke].priority][z.id].length===0&&delete I.session.__operators[X[ke].priority][z.id]),y.value>0&&(I.session.__operators[y.value]||(I.session.__operators[y.value.toString()]={}),I.session.__operators[y.value][z.id]||(I.session.__operators[y.value][z.id]=[]),I.session.__operators[y.value][z.id].push(F.id)),!0}}},predicate:{"op/3":function(I,P,y){x.directive["op/3"](I,y)&&I.success(P)},"current_op/3":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2],$=[];for(var ie in I.session.__operators)for(var ke in I.session.__operators[ie])for(var Ne=0;Ne<I.session.__operators[ie][ke].length;Ne++)$.push(new Qe(P.goal.replace(new H(",",[new H("=",[new be(ie,!1),F]),new H(",",[new H("=",[new H(I.session.__operators[ie][ke][Ne],[]),z]),new H("=",[new H(ke,[]),X])])])),P.substitution,P));I.prepend($)},";/2":function(I,P,y){if(x.type.is_term(y.args[0])&&y.args[0].indicator==="->/2"){var F=I.points,z=I.session.format_success,X=I.session.format_error;I.session.format_success=function(Ne){return Ne.substitution},I.session.format_error=function(Ne){return Ne.goal},I.points=[new Qe(y.args[0].args[0],P.substitution,P)];var $=function(Ne){I.points=F,I.session.format_success=z,I.session.format_error=X,Ne===!1?I.prepend([new Qe(P.goal.replace(y.args[1]),P.substitution,P)]):x.type.is_error(Ne)?I.throw_error(Ne.args[0]):Ne===null?(I.prepend([P]),I.__calls.shift()(null)):I.prepend([new Qe(P.goal.replace(y.args[0].args[1]).apply(Ne),P.substitution.apply(Ne),P)])};I.__calls.unshift($)}else{var ie=new Qe(P.goal.replace(y.args[0]),P.substitution,P),ke=new Qe(P.goal.replace(y.args[1]),P.substitution,P);I.prepend([ie,ke])}},"!/0":function(I,P,y){var F,z,X=[];for(F=P,z=null;F.parent!==null&&F.parent.goal.search(y);)if(z=F,F=F.parent,F.goal!==null){var $=F.goal.select();if($&&$.id==="call"&&$.search(y)){F=z;break}}for(var ie=I.points.length-1;ie>=0;ie--){for(var ke=I.points[ie],Ne=ke.parent;Ne!==null&&Ne!==F.parent;)Ne=Ne.parent;Ne===null&&Ne!==F.parent&&X.push(ke)}I.points=X.reverse(),I.success(P)},"\\+/1":function(I,P,y){var F=y.args[0];x.type.is_variable(F)?I.throw_error(x.error.instantiation(I.level)):x.type.is_callable(F)?I.prepend([new Qe(P.goal.replace(new H(",",[new H(",",[new H("call",[F]),new H("!",[])]),new H("fail",[])])),P.substitution,P),new Qe(P.goal.replace(null),P.substitution,P)]):I.throw_error(x.error.type("callable",F,I.level))},"->/2":function(I,P,y){var F=P.goal.replace(new H(",",[y.args[0],new H(",",[new H("!"),y.args[1]])]));I.prepend([new Qe(F,P.substitution,P)])},"fail/0":function(I,P,y){},"false/0":function(I,P,y){},"true/0":function(I,P,y){I.success(P)},"call/1":ne(1),"call/2":ne(2),"call/3":ne(3),"call/4":ne(4),"call/5":ne(5),"call/6":ne(6),"call/7":ne(7),"call/8":ne(8),"once/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("call",[F]),new H("!",[])])),P.substitution,P)])},"forall/2":function(I,P,y){var F=y.args[0],z=y.args[1];I.prepend([new Qe(P.goal.replace(new H("\\+",[new H(",",[new H("call",[F]),new H("\\+",[new H("call",[z])])])])),P.substitution,P)])},"repeat/0":function(I,P,y){I.prepend([new Qe(P.goal.replace(null),P.substitution,P),P])},"throw/1":function(I,P,y){x.type.is_variable(y.args[0])?I.throw_error(x.error.instantiation(I.level)):I.throw_error(y.args[0])},"catch/3":function(I,P,y){var F=I.points;I.points=[],I.prepend([new Qe(y.args[0],P.substitution,P)]);var z=I.session.format_success,X=I.session.format_error;I.session.format_success=function(ie){return ie.substitution},I.session.format_error=function(ie){return ie.goal};var $=function(ie){var ke=I.points;if(I.points=F,I.session.format_success=z,I.session.format_error=X,x.type.is_error(ie)){for(var Ne=[],st=I.points.length-1;st>=0;st--){for(var Xt=I.points[st],ht=Xt.parent;ht!==null&&ht!==P.parent;)ht=ht.parent;ht===null&&ht!==P.parent&&Ne.push(Xt)}I.points=Ne;var Ut=I.get_flag("occurs_check").indicator==="true/0",Xt=new Qe,xt=x.unify(ie.args[0],y.args[1],Ut);xt!==null?(Xt.substitution=P.substitution.apply(xt),Xt.goal=P.goal.replace(y.args[2]).apply(xt),Xt.parent=P,I.prepend([Xt])):I.throw_error(ie.args[0])}else if(ie!==!1){for(var tn=ie===null?[]:[new Qe(P.goal.apply(ie).replace(null),P.substitution.apply(ie),P)],Dr=[],st=ke.length-1;st>=0;st--){Dr.push(ke[st]);var fr=ke[st].goal!==null?ke[st].goal.select():null;if(x.type.is_term(fr)&&fr.indicator==="!/0")break}var Br=o(Dr,function(jr){return jr.goal===null&&(jr.goal=new H("true",[])),jr=new Qe(P.goal.replace(new H("catch",[jr.goal,y.args[1],y.args[2]])),P.substitution.apply(jr.substitution),jr.parent),jr.exclude=y.args[0].variables(),jr}).reverse();I.prepend(Br),I.prepend(tn),ie===null&&(this.current_limit=0,I.__calls.shift()(null))}};I.__calls.unshift($)},"=/2":function(I,P,y){var F=I.get_flag("occurs_check").indicator==="true/0",z=new Qe,X=x.unify(y.args[0],y.args[1],F);X!==null&&(z.goal=P.goal.apply(X).replace(null),z.substitution=P.substitution.apply(X),z.parent=P,I.prepend([z]))},"unify_with_occurs_check/2":function(I,P,y){var F=new Qe,z=x.unify(y.args[0],y.args[1],!0);z!==null&&(F.goal=P.goal.apply(z).replace(null),F.substitution=P.substitution.apply(z),F.parent=P,I.prepend([F]))},"\\=/2":function(I,P,y){var F=I.get_flag("occurs_check").indicator==="true/0",z=x.unify(y.args[0],y.args[1],F);z===null&&I.success(P)},"subsumes_term/2":function(I,P,y){var F=I.get_flag("occurs_check").indicator==="true/0",z=x.unify(y.args[1],y.args[0],F);z!==null&&y.args[1].apply(z).equals(y.args[1])&&I.success(P)},"findall/3":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(x.type.is_variable(z))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(z))I.throw_error(x.error.type("callable",z,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else{var $=I.next_free_variable(),ie=new H(",",[z,new H("=",[$,F])]),ke=I.points,Ne=I.session.limit,st=I.session.format_success;I.session.format_success=function(Xt){return Xt.substitution},I.add_goal(ie,!0,P);var ht=[],Ut=function(Xt){if(Xt!==!1&&Xt!==null&&!x.type.is_error(Xt))I.__calls.unshift(Ut),ht.push(Xt.links[$.id]),I.session.limit=I.current_limit;else if(I.points=ke,I.session.limit=Ne,I.session.format_success=st,x.type.is_error(Xt))I.throw_error(Xt.args[0]);else if(I.current_limit>0){for(var xt=new H("[]"),tn=ht.length-1;tn>=0;tn--)xt=new H(".",[ht[tn],xt]);I.prepend([new Qe(P.goal.replace(new H("=",[X,xt])),P.substitution,P)])}};I.__calls.unshift(Ut)}},"bagof/3":function(I,P,y){var F,z=y.args[0],X=y.args[1],$=y.args[2];if(x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(X))I.throw_error(x.error.type("callable",X,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))I.throw_error(x.error.type("list",$,y.indicator));else{var ie=I.next_free_variable(),ke;X.indicator==="^/2"?(ke=X.args[0].variables(),X=X.args[1]):ke=[],ke=ke.concat(z.variables());for(var Ne=X.variables().filter(function(Br){return e(ke,Br)===-1}),st=new H("[]"),ht=Ne.length-1;ht>=0;ht--)st=new H(".",[new me(Ne[ht]),st]);var Ut=new H(",",[X,new H("=",[ie,new H(",",[st,z])])]),Xt=I.points,xt=I.session.limit,tn=I.session.format_success;I.session.format_success=function(Br){return Br.substitution},I.add_goal(Ut,!0,P);var Dr=[],fr=function(Br){if(Br!==!1&&Br!==null&&!x.type.is_error(Br)){I.__calls.unshift(fr);var jr=!1,Hn=Br.links[ie.id].args[0],bs=Br.links[ie.id].args[1];for(var ki in Dr)if(!!Dr.hasOwnProperty(ki)){var gs=Dr[ki];if(gs.variables.equals(Hn)){gs.answers.push(bs),jr=!0;break}}jr||Dr.push({variables:Hn,answers:[bs]}),I.session.limit=I.current_limit}else if(I.points=Xt,I.session.limit=xt,I.session.format_success=tn,x.type.is_error(Br))I.throw_error(Br.args[0]);else if(I.current_limit>0){for(var to=[],Di=0;Di<Dr.length;Di++){Br=Dr[Di].answers;for(var Qs=new H("[]"),ro=Br.length-1;ro>=0;ro--)Qs=new H(".",[Br[ro],Qs]);to.push(new Qe(P.goal.replace(new H(",",[new H("=",[st,Dr[Di].variables]),new H("=",[$,Qs])])),P.substitution,P))}I.prepend(to)}};I.__calls.unshift(fr)}},"setof/3":function(I,P,y){var F,z=y.args[0],X=y.args[1],$=y.args[2];if(x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(X))I.throw_error(x.error.type("callable",X,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))I.throw_error(x.error.type("list",$,y.indicator));else{var ie=I.next_free_variable(),ke;X.indicator==="^/2"?(ke=X.args[0].variables(),X=X.args[1]):ke=[],ke=ke.concat(z.variables());for(var Ne=X.variables().filter(function(Br){return e(ke,Br)===-1}),st=new H("[]"),ht=Ne.length-1;ht>=0;ht--)st=new H(".",[new me(Ne[ht]),st]);var Ut=new H(",",[X,new H("=",[ie,new H(",",[st,z])])]),Xt=I.points,xt=I.session.limit,tn=I.session.format_success;I.session.format_success=function(Br){return Br.substitution},I.add_goal(Ut,!0,P);var Dr=[],fr=function(Br){if(Br!==!1&&Br!==null&&!x.type.is_error(Br)){I.__calls.unshift(fr);var jr=!1,Hn=Br.links[ie.id].args[0],bs=Br.links[ie.id].args[1];for(var ki in Dr)if(!!Dr.hasOwnProperty(ki)){var gs=Dr[ki];if(gs.variables.equals(Hn)){gs.answers.push(bs),jr=!0;break}}jr||Dr.push({variables:Hn,answers:[bs]}),I.session.limit=I.current_limit}else if(I.points=Xt,I.session.limit=xt,I.session.format_success=tn,x.type.is_error(Br))I.throw_error(Br.args[0]);else if(I.current_limit>0){for(var to=[],Di=0;Di<Dr.length;Di++){Br=Dr[Di].answers.sort(x.compare);for(var Qs=new H("[]"),ro=Br.length-1;ro>=0;ro--)Qs=new H(".",[Br[ro],Qs]);to.push(new Qe(P.goal.replace(new H(",",[new H("=",[st,Dr[Di].variables]),new H("=",[$,Qs])])),P.substitution,P))}I.prepend(to)}};I.__calls.unshift(fr)}},"functor/3":function(I,P,y){var F,z=y.args[0],X=y.args[1],$=y.args[2];if(x.type.is_variable(z)&&(x.type.is_variable(X)||x.type.is_variable($)))I.throw_error(x.error.instantiation("functor/3"));else if(!x.type.is_variable($)&&!x.type.is_integer($))I.throw_error(x.error.type("integer",y.args[2],"functor/3"));else if(!x.type.is_variable(X)&&!x.type.is_atomic(X))I.throw_error(x.error.type("atomic",y.args[1],"functor/3"));else if(x.type.is_integer(X)&&x.type.is_integer($)&&$.value!==0)I.throw_error(x.error.type("atom",y.args[1],"functor/3"));else if(x.type.is_variable(z)){if(y.args[2].value>=0){for(var ie=[],ke=0;ke<$.value;ke++)ie.push(I.next_free_variable());var Ne=x.type.is_integer(X)?X:new H(X.id,ie);I.prepend([new Qe(P.goal.replace(new H("=",[z,Ne])),P.substitution,P)])}}else{var st=x.type.is_integer(z)?z:new H(z.id,[]),ht=x.type.is_integer(z)?new be(0,!1):new be(z.args.length,!1),Ut=new H(",",[new H("=",[st,X]),new H("=",[ht,$])]);I.prepend([new Qe(P.goal.replace(Ut),P.substitution,P)])}},"arg/3":function(I,P,y){if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))I.throw_error(x.error.instantiation(y.indicator));else if(y.args[0].value<0)I.throw_error(x.error.domain("not_less_than_zero",y.args[0],y.indicator));else if(!x.type.is_compound(y.args[1]))I.throw_error(x.error.type("compound",y.args[1],y.indicator));else{var F=y.args[0].value;if(F>0&&F<=y.args[1].args.length){var z=new H("=",[y.args[1].args[F-1],y.args[2]]);I.prepend([new Qe(P.goal.replace(z),P.substitution,P)])}}},"=../2":function(I,P,y){var F;if(x.type.is_variable(y.args[0])&&(x.type.is_variable(y.args[1])||x.type.is_non_empty_list(y.args[1])&&x.type.is_variable(y.args[1].args[0])))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_fully_list(y.args[1]))I.throw_error(x.error.type("list",y.args[1],y.indicator));else if(x.type.is_variable(y.args[0])){if(!x.type.is_variable(y.args[1])){var X=[];for(F=y.args[1].args[1];F.indicator==="./2";)X.push(F.args[0]),F=F.args[1];x.type.is_variable(y.args[0])&&x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):X.length===0&&x.type.is_compound(y.args[1].args[0])?I.throw_error(x.error.type("atomic",y.args[1].args[0],y.indicator)):X.length>0&&(x.type.is_compound(y.args[1].args[0])||x.type.is_number(y.args[1].args[0]))?I.throw_error(x.error.type("atom",y.args[1].args[0],y.indicator)):X.length===0?I.prepend([new Qe(P.goal.replace(new H("=",[y.args[1].args[0],y.args[0]],P)),P.substitution,P)]):I.prepend([new Qe(P.goal.replace(new H("=",[new H(y.args[1].args[0].id,X),y.args[0]])),P.substitution,P)])}}else{if(x.type.is_atomic(y.args[0]))F=new H(".",[y.args[0],new H("[]")]);else{F=new H("[]");for(var z=y.args[0].args.length-1;z>=0;z--)F=new H(".",[y.args[0].args[z],F]);F=new H(".",[new H(y.args[0].id),F])}I.prepend([new Qe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P)])}},"copy_term/2":function(I,P,y){var F=y.args[0].rename(I);I.prepend([new Qe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P.parent)])},"term_variables/2":function(I,P,y){var F=y.args[0],z=y.args[1];if(!x.type.is_fully_list(z))I.throw_error(x.error.type("list",z,y.indicator));else{var X=g(o(Ee(F.variables()),function($){return new me($)}));I.prepend([new Qe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"clause/2":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))I.throw_error(x.error.type("callable",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_callable(y.args[1]))I.throw_error(x.error.type("callable",y.args[1],y.indicator));else if(I.session.rules[y.args[0].indicator]!==void 0)if(I.is_public_predicate(y.args[0].indicator)){var F=[];for(var z in I.session.rules[y.args[0].indicator])if(!!I.session.rules[y.args[0].indicator].hasOwnProperty(z)){var X=I.session.rules[y.args[0].indicator][z];I.session.renamed_variables={},X=X.rename(I),X.body===null&&(X.body=new H("true"));var $=new H(",",[new H("=",[X.head,y.args[0]]),new H("=",[X.body,y.args[1]])]);F.push(new Qe(P.goal.replace($),P.substitution,P))}I.prepend(F)}else I.throw_error(x.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(I,P,y){var F=y.args[0];if(!x.type.is_variable(F)&&(!x.type.is_compound(F)||F.indicator!=="//2"))I.throw_error(x.error.type("predicate_indicator",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[0])&&!x.type.is_atom(F.args[0]))I.throw_error(x.error.type("atom",F.args[0],y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[1])&&!x.type.is_integer(F.args[1]))I.throw_error(x.error.type("integer",F.args[1],y.indicator));else{var z=[];for(var X in I.session.rules)if(!!I.session.rules.hasOwnProperty(X)){var $=X.lastIndexOf("/"),ie=X.substr(0,$),ke=parseInt(X.substr($+1,X.length-($+1))),Ne=new H("/",[new H(ie),new be(ke,!1)]),st=new H("=",[Ne,F]);z.push(new Qe(P.goal.replace(st),P.substitution,P))}I.prepend(z)}},"asserta/1":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))I.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=Pe(y.args[0].args[1])):(F=y.args[0],z=null),x.type.is_callable(F)?z!==null&&!x.type.is_callable(z)?I.throw_error(x.error.type("callable",z,y.indicator)):I.is_public_predicate(F.indicator)?(I.session.rules[F.indicator]===void 0&&(I.session.rules[F.indicator]=[]),I.session.public_predicates[F.indicator]=!0,I.session.rules[F.indicator]=[new _e(F,z,!0)].concat(I.session.rules[F.indicator]),I.success(P)):I.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator)):I.throw_error(x.error.type("callable",F,y.indicator))}},"assertz/1":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))I.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=Pe(y.args[0].args[1])):(F=y.args[0],z=null),x.type.is_callable(F)?z!==null&&!x.type.is_callable(z)?I.throw_error(x.error.type("callable",z,y.indicator)):I.is_public_predicate(F.indicator)?(I.session.rules[F.indicator]===void 0&&(I.session.rules[F.indicator]=[]),I.session.public_predicates[F.indicator]=!0,I.session.rules[F.indicator].push(new _e(F,z,!0)),I.success(P)):I.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator)):I.throw_error(x.error.type("callable",F,y.indicator))}},"retract/1":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))I.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;if(y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=y.args[0].args[1]):(F=y.args[0],z=new H("true")),typeof P.retract>"u")if(I.is_public_predicate(F.indicator)){if(I.session.rules[F.indicator]!==void 0){for(var X=[],$=0;$<I.session.rules[F.indicator].length;$++){I.session.renamed_variables={};var ie=I.session.rules[F.indicator][$],ke=ie.rename(I);ke.body===null&&(ke.body=new H("true",[]));var Ne=I.get_flag("occurs_check").indicator==="true/0",st=x.unify(new H(",",[F,z]),new H(",",[ke.head,ke.body]),Ne);if(st!==null){var ht=new Qe(P.goal.replace(new H(",",[new H("retract",[new H(":-",[F,z])]),new H(",",[new H("=",[F,ke.head]),new H("=",[z,ke.body])])])),P.substitution,P);ht.retract=ie,X.push(ht)}}I.prepend(X)}}else I.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator));else de(I,P,F.indicator,P.retract)}},"retractall/1":function(I,P,y){var F=y.args[0];x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_callable(F)?I.prepend([new Qe(P.goal.replace(new H(",",[new H("retract",[new x.type.Term(":-",[F,new me("_")])]),new H("fail",[])])),P.substitution,P),new Qe(P.goal.replace(null),P.substitution,P)]):I.throw_error(x.error.type("callable",F,y.indicator))},"abolish/1":function(I,P,y){if(x.type.is_variable(y.args[0])||x.type.is_term(y.args[0])&&y.args[0].indicator==="//2"&&(x.type.is_variable(y.args[0].args[0])||x.type.is_variable(y.args[0].args[1])))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_term(y.args[0])||y.args[0].indicator!=="//2")I.throw_error(x.error.type("predicate_indicator",y.args[0],y.indicator));else if(!x.type.is_atom(y.args[0].args[0]))I.throw_error(x.error.type("atom",y.args[0].args[0],y.indicator));else if(!x.type.is_integer(y.args[0].args[1]))I.throw_error(x.error.type("integer",y.args[0].args[1],y.indicator));else if(y.args[0].args[1].value<0)I.throw_error(x.error.domain("not_less_than_zero",y.args[0].args[1],y.indicator));else if(x.type.is_number(I.get_flag("max_arity"))&&y.args[0].args[1].value>I.get_flag("max_arity").value)I.throw_error(x.error.representation("max_arity",y.indicator));else{var F=y.args[0].args[0].id+"/"+y.args[0].args[1].value;I.is_public_predicate(F)?(delete I.session.rules[F],I.success(P)):I.throw_error(x.error.permission("modify","static_procedure",F,y.indicator))}},"atom_length/2":function(I,P,y){if(x.type.is_variable(y.args[0]))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_atom(y.args[0]))I.throw_error(x.error.type("atom",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_integer(y.args[1]))I.throw_error(x.error.type("integer",y.args[1],y.indicator));else if(x.type.is_integer(y.args[1])&&y.args[1].value<0)I.throw_error(x.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var F=new be(y.args[0].id.length,!1);I.prepend([new Qe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P)])}},"atom_concat/3":function(I,P,y){var F,z,X=y.args[0],$=y.args[1],ie=y.args[2];if(x.type.is_variable(ie)&&(x.type.is_variable(X)||x.type.is_variable($)))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_atom(X))I.throw_error(x.error.type("atom",X,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_atom($))I.throw_error(x.error.type("atom",$,y.indicator));else if(!x.type.is_variable(ie)&&!x.type.is_atom(ie))I.throw_error(x.error.type("atom",ie,y.indicator));else{var ke=x.type.is_variable(X),Ne=x.type.is_variable($);if(!ke&&!Ne)z=new H("=",[ie,new H(X.id+$.id)]),I.prepend([new Qe(P.goal.replace(z),P.substitution,P)]);else if(ke&&!Ne)F=ie.id.substr(0,ie.id.length-$.id.length),F+$.id===ie.id&&(z=new H("=",[X,new H(F)]),I.prepend([new Qe(P.goal.replace(z),P.substitution,P)]));else if(Ne&&!ke)F=ie.id.substr(X.id.length),X.id+F===ie.id&&(z=new H("=",[$,new H(F)]),I.prepend([new Qe(P.goal.replace(z),P.substitution,P)]));else{for(var st=[],ht=0;ht<=ie.id.length;ht++){var Ut=new H(ie.id.substr(0,ht)),Xt=new H(ie.id.substr(ht));z=new H(",",[new H("=",[Ut,X]),new H("=",[Xt,$])]),st.push(new Qe(P.goal.replace(z),P.substitution,P))}I.prepend(st)}}},"sub_atom/5":function(I,P,y){var F,z=y.args[0],X=y.args[1],$=y.args[2],ie=y.args[3],ke=y.args[4];if(x.type.is_variable(z))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_integer(X))I.throw_error(x.error.type("integer",X,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_integer($))I.throw_error(x.error.type("integer",$,y.indicator));else if(!x.type.is_variable(ie)&&!x.type.is_integer(ie))I.throw_error(x.error.type("integer",ie,y.indicator));else if(x.type.is_integer(X)&&X.value<0)I.throw_error(x.error.domain("not_less_than_zero",X,y.indicator));else if(x.type.is_integer($)&&$.value<0)I.throw_error(x.error.domain("not_less_than_zero",$,y.indicator));else if(x.type.is_integer(ie)&&ie.value<0)I.throw_error(x.error.domain("not_less_than_zero",ie,y.indicator));else{var Ne=[],st=[],ht=[];if(x.type.is_variable(X))for(F=0;F<=z.id.length;F++)Ne.push(F);else Ne.push(X.value);if(x.type.is_variable($))for(F=0;F<=z.id.length;F++)st.push(F);else st.push($.value);if(x.type.is_variable(ie))for(F=0;F<=z.id.length;F++)ht.push(F);else ht.push(ie.value);var Ut=[];for(var Xt in Ne)if(!!Ne.hasOwnProperty(Xt)){F=Ne[Xt];for(var xt in st)if(!!st.hasOwnProperty(xt)){var tn=st[xt],Dr=z.id.length-F-tn;if(e(ht,Dr)!==-1&&F+tn+Dr===z.id.length){var fr=z.id.substr(F,tn);if(z.id===z.id.substr(0,F)+fr+z.id.substr(F+tn,Dr)){var Br=new H("=",[new H(fr),ke]),jr=new H("=",[X,new be(F)]),Hn=new H("=",[$,new be(tn)]),bs=new H("=",[ie,new be(Dr)]),ki=new H(",",[new H(",",[new H(",",[jr,Hn]),bs]),Br]);Ut.push(new Qe(P.goal.replace(ki),P.substitution,P))}}}}I.prepend(Ut)}},"atom_chars/2":function(I,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_variable(F)){for(var ie=z,ke=x.type.is_variable(F),Ne="";ie.indicator==="./2";){if(x.type.is_character(ie.args[0]))Ne+=ie.args[0].id;else if(x.type.is_variable(ie.args[0])&&ke){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(ie.args[0])){I.throw_error(x.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}x.type.is_variable(ie)&&ke?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(ie)&&!x.type.is_variable(ie)?I.throw_error(x.error.type("list",z,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[new H(Ne),F])),P.substitution,P)])}else{for(var X=new H("[]"),$=F.id.length-1;$>=0;$--)X=new H(".",[new H(F.id.charAt($)),X]);I.prepend([new Qe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"atom_codes/2":function(I,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_variable(F)){for(var ie=z,ke=x.type.is_variable(F),Ne="";ie.indicator==="./2";){if(x.type.is_character_code(ie.args[0]))Ne+=u(ie.args[0].value);else if(x.type.is_variable(ie.args[0])&&ke){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(ie.args[0])){I.throw_error(x.error.representation("character_code",y.indicator));return}ie=ie.args[1]}x.type.is_variable(ie)&&ke?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(ie)&&!x.type.is_variable(ie)?I.throw_error(x.error.type("list",z,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[new H(Ne),F])),P.substitution,P)])}else{for(var X=new H("[]"),$=F.id.length-1;$>=0;$--)X=new H(".",[new be(n(F.id,$),!1),X]);I.prepend([new Qe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"char_code/2":function(I,P,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_character(F))I.throw_error(x.error.type("character",F,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))I.throw_error(x.error.type("integer",z,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character_code(z))I.throw_error(x.error.representation("character_code",y.indicator));else if(x.type.is_variable(z)){var X=new be(n(F.id,0),!1);I.prepend([new Qe(P.goal.replace(new H("=",[X,z])),P.substitution,P)])}else{var $=new H(u(z.value));I.prepend([new Qe(P.goal.replace(new H("=",[$,F])),P.substitution,P)])}},"number_chars/2":function(I,P,y){var F,z=y.args[0],X=y.args[1];if(x.type.is_variable(z)&&x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_number(z))I.throw_error(x.error.type("number",z,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else{var $=x.type.is_variable(z);if(!x.type.is_variable(X)){var ie=X,ke=!0;for(F="";ie.indicator==="./2";){if(x.type.is_character(ie.args[0]))F+=ie.args[0].id;else if(x.type.is_variable(ie.args[0]))ke=!1;else if(!x.type.is_variable(ie.args[0])){I.throw_error(x.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}if(ke=ke&&x.type.is_empty_list(ie),!x.type.is_empty_list(ie)&&!x.type.is_variable(ie)){I.throw_error(x.error.type("list",X,y.indicator));return}if(!ke&&$){I.throw_error(x.error.instantiation(y.indicator));return}else if(ke)if(x.type.is_variable(ie)&&$){I.throw_error(x.error.instantiation(y.indicator));return}else{var Ne=I.parse(F),st=Ne.value;!x.type.is_number(st)||Ne.tokens[Ne.tokens.length-1].space?I.throw_error(x.error.syntax_by_predicate("parseable_number",y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[z,st])),P.substitution,P)]);return}}if(!$){F=z.toString();for(var ht=new H("[]"),Ut=F.length-1;Ut>=0;Ut--)ht=new H(".",[new H(F.charAt(Ut)),ht]);I.prepend([new Qe(P.goal.replace(new H("=",[X,ht])),P.substitution,P)])}}},"number_codes/2":function(I,P,y){var F,z=y.args[0],X=y.args[1];if(x.type.is_variable(z)&&x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_number(z))I.throw_error(x.error.type("number",z,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else{var $=x.type.is_variable(z);if(!x.type.is_variable(X)){var ie=X,ke=!0;for(F="";ie.indicator==="./2";){if(x.type.is_character_code(ie.args[0]))F+=u(ie.args[0].value);else if(x.type.is_variable(ie.args[0]))ke=!1;else if(!x.type.is_variable(ie.args[0])){I.throw_error(x.error.type("character_code",ie.args[0],y.indicator));return}ie=ie.args[1]}if(ke=ke&&x.type.is_empty_list(ie),!x.type.is_empty_list(ie)&&!x.type.is_variable(ie)){I.throw_error(x.error.type("list",X,y.indicator));return}if(!ke&&$){I.throw_error(x.error.instantiation(y.indicator));return}else if(ke)if(x.type.is_variable(ie)&&$){I.throw_error(x.error.instantiation(y.indicator));return}else{var Ne=I.parse(F),st=Ne.value;!x.type.is_number(st)||Ne.tokens[Ne.tokens.length-1].space?I.throw_error(x.error.syntax_by_predicate("parseable_number",y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[z,st])),P.substitution,P)]);return}}if(!$){F=z.toString();for(var ht=new H("[]"),Ut=F.length-1;Ut>=0;Ut--)ht=new H(".",[new be(n(F,Ut),!1),ht]);I.prepend([new Qe(P.goal.replace(new H("=",[X,ht])),P.substitution,P)])}}},"upcase_atom/2":function(I,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(z)&&!x.type.is_atom(z)?I.throw_error(x.error.type("atom",z,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[z,new H(F.id.toUpperCase(),[])])),P.substitution,P)]):I.throw_error(x.error.type("atom",F,y.indicator))},"downcase_atom/2":function(I,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(z)&&!x.type.is_atom(z)?I.throw_error(x.error.type("atom",z,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[z,new H(F.id.toLowerCase(),[])])),P.substitution,P)]):I.throw_error(x.error.type("atom",F,y.indicator))},"atomic_list_concat/2":function(I,P,y){var F=y.args[0],z=y.args[1];I.prepend([new Qe(P.goal.replace(new H("atomic_list_concat",[F,new H("",[]),z])),P.substitution,P)])},"atomic_list_concat/3":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(x.type.is_variable(z)||x.type.is_variable(F)&&x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_list(F))I.throw_error(x.error.type("list",F,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_atom(X))I.throw_error(x.error.type("atom",X,y.indicator));else if(x.type.is_variable(X)){for(var ie="",ke=F;x.type.is_term(ke)&&ke.indicator==="./2";){if(!x.type.is_atom(ke.args[0])&&!x.type.is_number(ke.args[0])){I.throw_error(x.error.type("atomic",ke.args[0],y.indicator));return}ie!==""&&(ie+=z.id),x.type.is_atom(ke.args[0])?ie+=ke.args[0].id:ie+=""+ke.args[0].value,ke=ke.args[1]}ie=new H(ie,[]),x.type.is_variable(ke)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_term(ke)||ke.indicator!=="[]/0"?I.throw_error(x.error.type("list",F,y.indicator)):I.prepend([new Qe(P.goal.replace(new H("=",[ie,X])),P.substitution,P)])}else{var $=g(o(X.id.split(z.id),function(Ne){return new H(Ne,[])}));I.prepend([new Qe(P.goal.replace(new H("=",[$,F])),P.substitution,P)])}},"@=</2":function(I,P,y){x.compare(y.args[0],y.args[1])<=0&&I.success(P)},"==/2":function(I,P,y){x.compare(y.args[0],y.args[1])===0&&I.success(P)},"\\==/2":function(I,P,y){x.compare(y.args[0],y.args[1])!==0&&I.success(P)},"@</2":function(I,P,y){x.compare(y.args[0],y.args[1])<0&&I.success(P)},"@>/2":function(I,P,y){x.compare(y.args[0],y.args[1])>0&&I.success(P)},"@>=/2":function(I,P,y){x.compare(y.args[0],y.args[1])>=0&&I.success(P)},"compare/3":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(!x.type.is_variable(F)&&!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_atom(F)&&["<",">","="].indexOf(F.id)===-1)I.throw_error(x.type.domain("order",F,y.indicator));else{var $=x.compare(z,X);$=$===0?"=":$===-1?"<":">",I.prepend([new Qe(P.goal.replace(new H("=",[F,new H($,[])])),P.substitution,P)])}},"is/2":function(I,P,y){var F=y.args[1].interpret(I);x.type.is_number(F)?I.prepend([new Qe(P.goal.replace(new H("=",[y.args[0],F],I.level)),P.substitution,P)]):I.throw_error(F)},"between/3":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(x.type.is_variable(F)||x.type.is_variable(z))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_integer(F))I.throw_error(x.error.type("integer",F,y.indicator));else if(!x.type.is_integer(z))I.throw_error(x.error.type("integer",z,y.indicator));else if(!x.type.is_variable(X)&&!x.type.is_integer(X))I.throw_error(x.error.type("integer",X,y.indicator));else if(x.type.is_variable(X)){var $=[new Qe(P.goal.replace(new H("=",[X,F])),P.substitution,P)];F.value<z.value&&$.push(new Qe(P.goal.replace(new H("between",[new be(F.value+1,!1),z,X])),P.substitution,P)),I.prepend($)}else F.value<=X.value&&z.value>=X.value&&I.success(P)},"succ/2":function(I,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)&&x.type.is_variable(z)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_integer(F)?I.throw_error(x.error.type("integer",F,y.indicator)):!x.type.is_variable(z)&&!x.type.is_integer(z)?I.throw_error(x.error.type("integer",z,y.indicator)):!x.type.is_variable(F)&&F.value<0?I.throw_error(x.error.domain("not_less_than_zero",F,y.indicator)):!x.type.is_variable(z)&&z.value<0?I.throw_error(x.error.domain("not_less_than_zero",z,y.indicator)):(x.type.is_variable(z)||z.value>0)&&(x.type.is_variable(F)?I.prepend([new Qe(P.goal.replace(new H("=",[F,new be(z.value-1,!1)])),P.substitution,P)]):I.prepend([new Qe(P.goal.replace(new H("=",[z,new be(F.value+1,!1)])),P.substitution,P)]))},"=:=/2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F===0&&I.success(P)},"=\\=/2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F!==0&&I.success(P)},"</2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F<0&&I.success(P)},"=</2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F<=0&&I.success(P)},">/2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F>0&&I.success(P)},">=/2":function(I,P,y){var F=x.arithmetic_compare(I,y.args[0],y.args[1]);x.type.is_term(F)?I.throw_error(F):F>=0&&I.success(P)},"var/1":function(I,P,y){x.type.is_variable(y.args[0])&&I.success(P)},"atom/1":function(I,P,y){x.type.is_atom(y.args[0])&&I.success(P)},"atomic/1":function(I,P,y){x.type.is_atomic(y.args[0])&&I.success(P)},"compound/1":function(I,P,y){x.type.is_compound(y.args[0])&&I.success(P)},"integer/1":function(I,P,y){x.type.is_integer(y.args[0])&&I.success(P)},"float/1":function(I,P,y){x.type.is_float(y.args[0])&&I.success(P)},"number/1":function(I,P,y){x.type.is_number(y.args[0])&&I.success(P)},"nonvar/1":function(I,P,y){x.type.is_variable(y.args[0])||I.success(P)},"ground/1":function(I,P,y){y.variables().length===0&&I.success(P)},"acyclic_term/1":function(I,P,y){for(var F=P.substitution.apply(P.substitution),z=y.args[0].variables(),X=0;X<z.length;X++)if(P.substitution.links[z[X]]!==void 0&&!P.substitution.links[z[X]].equals(F.links[z[X]]))return;I.success(P)},"callable/1":function(I,P,y){x.type.is_callable(y.args[0])&&I.success(P)},"is_list/1":function(I,P,y){for(var F=y.args[0];x.type.is_term(F)&&F.indicator==="./2";)F=F.args[1];x.type.is_term(F)&&F.indicator==="[]/0"&&I.success(P)},"current_input/1":function(I,P,y){var F=y.args[0];!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream",F,y.indicator)):(x.type.is_atom(F)&&I.get_stream_by_alias(F.id)&&(F=I.get_stream_by_alias(F.id)),I.prepend([new Qe(P.goal.replace(new H("=",[F,I.get_current_input()])),P.substitution,P)]))},"current_output/1":function(I,P,y){var F=y.args[0];!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):(x.type.is_atom(F)&&I.get_stream_by_alias(F.id)&&(F=I.get_stream_by_alias(F.id)),I.prepend([new Qe(P.goal.replace(new H("=",[F,I.get_current_output()])),P.substitution,P)]))},"set_input/1":function(I,P,y){var F=y.args[0],z=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):x.type.is_stream(z)?z.output===!0?I.throw_error(x.error.permission("input","stream",F,y.indicator)):(I.set_current_input(z),I.success(P)):I.throw_error(x.error.existence("stream",F,y.indicator))},"set_output/1":function(I,P,y){var F=y.args[0],z=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):x.type.is_stream(z)?z.input===!0?I.throw_error(x.error.permission("output","stream",F,y.indicator)):(I.set_current_output(z),I.success(P)):I.throw_error(x.error.existence("stream",F,y.indicator))},"open/3":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];I.prepend([new Qe(P.goal.replace(new H("open",[F,z,X,new H("[]",[])])),P.substitution,P)])},"open/4":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2],$=y.args[3];if(x.type.is_variable(F)||x.type.is_variable(z))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_atom(z))I.throw_error(x.error.type("atom",z,y.indicator));else if(!x.type.is_list($))I.throw_error(x.error.type("list",$,y.indicator));else if(!x.type.is_variable(X))I.throw_error(x.error.type("variable",X,y.indicator));else if(!x.type.is_atom(F)&&!x.type.is_streamable(F))I.throw_error(x.error.domain("source_sink",F,y.indicator));else if(!x.type.is_io_mode(z))I.throw_error(x.error.domain("io_mode",z,y.indicator));else{for(var ie={},ke=$,Ne;x.type.is_term(ke)&&ke.indicator==="./2";){if(Ne=ke.args[0],x.type.is_variable(Ne)){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_stream_option(Ne)){I.throw_error(x.error.domain("stream_option",Ne,y.indicator));return}ie[Ne.id]=Ne.args[0].id,ke=ke.args[1]}if(ke.indicator!=="[]/0"){x.type.is_variable(ke)?I.throw_error(x.error.instantiation(y.indicator)):I.throw_error(x.error.type("list",$,y.indicator));return}else{var st=ie.alias;if(st&&I.get_stream_by_alias(st)){I.throw_error(x.error.permission("open","source_sink",new H("alias",[new H(st,[])]),y.indicator));return}ie.type||(ie.type="text");var ht;if(x.type.is_atom(F)?ht=I.file_system_open(F.id,ie.type,z.id):ht=F.stream(ie.type,z.id),ht===!1){I.throw_error(x.error.permission("open","source_sink",F,y.indicator));return}else if(ht===null){I.throw_error(x.error.existence("source_sink",F,y.indicator));return}var Ut=new Me(ht,z.id,ie.alias,ie.type,ie.reposition==="true",ie.eof_action);st?I.session.streams[st]=Ut:I.session.streams[Ut.id]=Ut,I.prepend([new Qe(P.goal.replace(new H("=",[X,Ut])),P.substitution,P)])}}},"close/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H("close",[F,new H("[]",[])])),P.substitution,P)])},"close/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(z))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(z))I.throw_error(x.error.type("list",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else{for(var $={},ie=z,ke;x.type.is_term(ie)&&ie.indicator==="./2";){if(ke=ie.args[0],x.type.is_variable(ke)){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_close_option(ke)){I.throw_error(x.error.domain("close_option",ke,y.indicator));return}$[ke.id]=ke.args[0].id==="true",ie=ie.args[1]}if(ie.indicator!=="[]/0"){x.type.is_variable(ie)?I.throw_error(x.error.instantiation(y.indicator)):I.throw_error(x.error.type("list",z,y.indicator));return}else{if(X===I.session.standard_input||X===I.session.standard_output){I.success(P);return}else X===I.session.current_input?I.session.current_input=I.session.standard_input:X===I.session.current_output&&(I.session.current_output=I.session.current_output);X.alias!==null?delete I.session.streams[X.alias]:delete I.session.streams[X.id],X.output&&X.stream.flush();var Ne=X.stream.close();X.stream=null,($.force===!0||Ne===!0)&&I.success(P)}}},"flush_output/0":function(I,P,y){I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("flush_output",[new me("S")])])),P.substitution,P)])},"flush_output/1":function(I,P,y){var F=y.args[0],z=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(z)||z.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):F.input===!0?I.throw_error(x.error.permission("output","stream",output,y.indicator)):(z.stream.flush(),I.success(P))},"stream_property/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_variable(F)&&(!x.type.is_stream(X)||X.stream===null))I.throw_error(x.error.existence("stream",F,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_stream_property(z))I.throw_error(x.error.domain("stream_property",z,y.indicator));else{var $=[],ie=[];if(!x.type.is_variable(F))$.push(X);else for(var ke in I.session.streams)$.push(I.session.streams[ke]);for(var Ne=0;Ne<$.length;Ne++){var st=[];$[Ne].filename&&st.push(new H("file_name",[new H($[Ne].file_name,[])])),st.push(new H("mode",[new H($[Ne].mode,[])])),st.push(new H($[Ne].input?"input":"output",[])),$[Ne].alias&&st.push(new H("alias",[new H($[Ne].alias,[])])),st.push(new H("position",[typeof $[Ne].position=="number"?new be($[Ne].position,!1):new H($[Ne].position,[])])),st.push(new H("end_of_stream",[new H($[Ne].position==="end_of_stream"?"at":$[Ne].position==="past_end_of_stream"?"past":"not",[])])),st.push(new H("eof_action",[new H($[Ne].eof_action,[])])),st.push(new H("reposition",[new H($[Ne].reposition?"true":"false",[])])),st.push(new H("type",[new H($[Ne].type,[])]));for(var ht=0;ht<st.length;ht++)ie.push(new Qe(P.goal.replace(new H(",",[new H("=",[x.type.is_variable(F)?F:X,$[Ne]]),new H("=",[z,st[ht]])])),P.substitution,P))}I.prepend(ie)}},"at_end_of_stream/0":function(I,P,y){I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H(",",[new H("stream_property",[new me("S"),new H("end_of_stream",[new me("E")])]),new H(",",[new H("!",[]),new H(";",[new H("=",[new me("E"),new H("at",[])]),new H("=",[new me("E"),new H("past",[])])])])])])),P.substitution,P)])},"at_end_of_stream/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("stream_property",[F,new H("end_of_stream",[new me("E")])]),new H(",",[new H("!",[]),new H(";",[new H("=",[new me("E"),new H("at",[])]),new H("=",[new me("E"),new H("past",[])])])])])),P.substitution,P)])},"set_stream_position/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?I.throw_error(x.error.instantiation(y.indicator)):!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(X)||X.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):x.type.is_stream_position(z)?X.reposition===!1?I.throw_error(x.error.permission("reposition","stream",F,y.indicator)):(x.type.is_integer(z)?X.position=z.value:X.position=z.id,I.success(P)):I.throw_error(x.error.domain("stream_position",z,y.indicator))},"get_char/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("get_char",[new me("S"),F])])),P.substitution,P)])},"get_char/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character(z))I.throw_error(x.error.type("in_character",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){I.throw_error(x.error.representation("character",y.indicator));return}X.position++}I.prepend([new Qe(P.goal.replace(new H("=",[new H($,[]),z])),P.substitution,P)])}},"get_code/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("get_code",[new me("S"),F])])),P.substitution,P)])},"get_code/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))I.throw_error(x.error.type("integer",char,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$=-1,X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){I.throw_error(x.error.representation("character",y.indicator));return}$=n($,0),X.position++}I.prepend([new Qe(P.goal.replace(new H("=",[new be($,!1),z])),P.substitution,P)])}},"peek_char/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("peek_char",[new me("S"),F])])),P.substitution,P)])},"peek_char/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character(z))I.throw_error(x.error.type("in_character",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else if($=X.stream.get(1,X.position),$===null){I.throw_error(x.error.representation("character",y.indicator));return}I.prepend([new Qe(P.goal.replace(new H("=",[new H($,[]),z])),P.substitution,P)])}},"peek_code/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("peek_code",[new me("S"),F])])),P.substitution,P)])},"peek_code/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))I.throw_error(x.error.type("integer",char,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$=-1,X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){I.throw_error(x.error.representation("character",y.indicator));return}$=n($,0)}I.prepend([new Qe(P.goal.replace(new H("=",[new be($,!1),z])),P.substitution,P)])}},"put_char/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("put_char",[new me("S"),F])])),P.substitution,P)])},"put_char/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_character(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(X)||X.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):X.input?I.throw_error(x.error.permission("output","stream",F,y.indicator)):X.type==="binary"?I.throw_error(x.error.permission("output","binary_stream",F,y.indicator)):X.stream.put(z.id,X.position)&&(typeof X.position=="number"&&X.position++,I.success(P)):I.throw_error(x.error.type("character",z,y.indicator))},"put_code/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("put_code",[new me("S"),F])])),P.substitution,P)])},"put_code/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(z)?x.type.is_character_code(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(X)||X.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):X.input?I.throw_error(x.error.permission("output","stream",F,y.indicator)):X.type==="binary"?I.throw_error(x.error.permission("output","binary_stream",F,y.indicator)):X.stream.put_char(u(z.value),X.position)&&(typeof X.position=="number"&&X.position++,I.success(P)):I.throw_error(x.error.representation("character_code",y.indicator)):I.throw_error(x.error.type("integer",z,y.indicator))},"nl/0":function(I,P,y){I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("put_char",[new me("S"),new H(`
265`,[])])])),P.substitution,P)])},"nl/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H("put_char",[F,new H(` 265`,[])])])),P.substitution,P)])},"nl/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H("put_char",[F,new H(`
266`,[])])),P.substitution,P)])},"get_byte/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("get_byte",[new me("S"),F])])),P.substitution,P)])},"get_byte/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_byte(J))I.throw_error(x.error.type("in_byte",char,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="text")I.throw_error(x.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else{if($=X.stream.get_byte(X.position),$===null){I.throw_error(x.error.representation("byte",y.indicator));return}X.position++}I.prepend([new Qe(P.goal.replace(new H("=",[new be($,!1),J])),P.substitution,P)])}},"peek_byte/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("peek_byte",[new me("S"),F])])),P.substitution,P)])},"peek_byte/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(J)&&!x.type.is_byte(J))I.throw_error(x.error.type("in_byte",char,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="text")I.throw_error(x.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else if($=X.stream.get_byte(X.position),$===null){I.throw_error(x.error.representation("byte",y.indicator));return}I.prepend([new Qe(P.goal.replace(new H("=",[new be($,!1),J])),P.substitution,P)])}},"put_byte/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("put_byte",[new me("S"),F])])),P.substitution,P)])},"put_byte/2":function(I,P,y){var F=y.args[0],J=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(J)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_byte(J)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(X)||X.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):X.input?I.throw_error(x.error.permission("output","stream",F,y.indicator)):X.type==="text"?I.throw_error(x.error.permission("output","text_stream",F,y.indicator)):X.stream.put_byte(J.value,X.position)&&(typeof X.position=="number"&&X.position++,I.success(P)):I.throw_error(x.error.type("byte",J,y.indicator))},"read/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("read_term",[new me("S"),F,new H("[]",[])])])),P.substitution,P)])},"read/2":function(I,P,y){var F=y.args[0],J=y.args[1];I.prepend([new Qe(P.goal.replace(new H("read_term",[F,J,new H("[]",[])])),P.substitution,P)])},"read_term/2":function(I,P,y){var F=y.args[0],J=y.args[1];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("read_term",[new me("S"),F,J])])),P.substitution,P)])},"read_term/3":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if($.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if($.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{for(var ie={},ke=X,Ne;x.type.is_term(ke)&&ke.indicator==="./2";){if(Ne=ke.args[0],x.type.is_variable(Ne)){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_read_option(Ne)){I.throw_error(x.error.domain("read_option",Ne,y.indicator));return}ie[Ne.id]=Ne.args[0],ke=ke.args[1]}if(ke.indicator!=="[]/0"){x.type.is_variable(ke)?I.throw_error(x.error.instantiation(y.indicator)):I.throw_error(x.error.type("list",X,y.indicator));return}else{for(var st,ht,Ut,Xt="",Pt=[],tn=null;tn===null||tn.name!=="atom"||tn.value!=="."||Ut.type===A&&x.flatten_error(new H("throw",[Ut.value])).found==="token_not_found";){if(st=$.stream.get(1,$.position),st===null){I.throw_error(x.error.representation("character",y.indicator));return}if(st==="end_of_file"||st==="past_end_of_file"){Ut?I.throw_error(x.error.syntax(Pt[Ut.len-1],". or expression expected",!1)):I.throw_error(x.error.syntax(null,"token not found",!0));return}$.position++,Xt+=st,ht=new _(I),ht.new_text(Xt),Pt=ht.get_tokens(),tn=Pt!==null&&Pt.length>0?Pt[Pt.length-1]:null,Pt!==null&&(Ut=V(I,Pt,0,I.__get_max_priority(),!1))}if(Ut.type===p&&Ut.len===Pt.length-1&&tn.value==="."){Ut=Ut.value.rename(I);var Dr=new H("=",[J,Ut]);if(ie.variables){var fr=g(o(Ce(Ut.variables()),function(Br){return new me(Br)}));Dr=new H(",",[Dr,new H("=",[ie.variables,fr])])}if(ie.variable_names){var fr=g(o(Ce(Ut.variables()),function(jr){var Hn;for(Hn in I.session.renamed_variables)if(I.session.renamed_variables.hasOwnProperty(Hn)&&I.session.renamed_variables[Hn]===jr)break;return new H("=",[new H(Hn,[]),new me(jr)])}));Dr=new H(",",[Dr,new H("=",[ie.variable_names,fr])])}if(ie.singletons){var fr=g(o(new _e(Ut,null).singleton_variables(),function(jr){var Hn;for(Hn in I.session.renamed_variables)if(I.session.renamed_variables.hasOwnProperty(Hn)&&I.session.renamed_variables[Hn]===jr)break;return new H("=",[new H(Hn,[]),new me(jr)])}));Dr=new H(",",[Dr,new H("=",[ie.singletons,fr])])}I.prepend([new Qe(P.goal.replace(Dr),P.substitution,P)])}else Ut.type===p?I.throw_error(x.error.syntax(Pt[Ut.len],"unexpected token",!1)):I.throw_error(Ut.value)}}},"write/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("write",[new me("S"),F])])),P.substitution,P)])},"write/2":function(I,P,y){var F=y.args[0],J=y.args[1];I.prepend([new Qe(P.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("false",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),P.substitution,P)])},"writeq/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("writeq",[new me("S"),F])])),P.substitution,P)])},"writeq/2":function(I,P,y){var F=y.args[0],J=y.args[1];I.prepend([new Qe(P.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),P.substitution,P)])},"write_canonical/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("write_canonical",[new me("S"),F])])),P.substitution,P)])},"write_canonical/2":function(I,P,y){var F=y.args[0],J=y.args[1];I.prepend([new Qe(P.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("true")]),new H(".",[new H("numbervars",[new H("false")]),new H("[]",[])])])])])),P.substitution,P)])},"write_term/2":function(I,P,y){var F=y.args[0],J=y.args[1];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("write_term",[new me("S"),F,J])])),P.substitution,P)])},"write_term/3":function(I,P,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if($.input)I.throw_error(x.error.permission("output","stream",F,y.indicator));else if($.type==="binary")I.throw_error(x.error.permission("output","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")I.throw_error(x.error.permission("output","past_end_of_stream",F,y.indicator));else{for(var ie={},ke=X,Ne;x.type.is_term(ke)&&ke.indicator==="./2";){if(Ne=ke.args[0],x.type.is_variable(Ne)){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_write_option(Ne)){I.throw_error(x.error.domain("write_option",Ne,y.indicator));return}ie[Ne.id]=Ne.args[0].id==="true",ke=ke.args[1]}if(ke.indicator!=="[]/0"){x.type.is_variable(ke)?I.throw_error(x.error.instantiation(y.indicator)):I.throw_error(x.error.type("list",X,y.indicator));return}else{ie.session=I.session;var st=J.toString(ie);$.stream.put(st,$.position),typeof $.position=="number"&&($.position+=st.length),I.success(P)}}},"halt/0":function(I,P,y){I.points=[]},"halt/1":function(I,P,y){var F=y.args[0];x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(F)?I.points=[]:I.throw_error(x.error.type("integer",F,y.indicator))},"current_prolog_flag/2":function(I,P,y){var F=y.args[0],J=y.args[1];if(!x.type.is_variable(F)&&!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_flag(F))I.throw_error(x.error.domain("prolog_flag",F,y.indicator));else{var X=[];for(var $ in x.flag)if(!!x.flag.hasOwnProperty($)){var ie=new H(",",[new H("=",[new H($),F]),new H("=",[I.get_flag($),J])]);X.push(new Qe(P.goal.replace(ie),P.substitution,P))}I.prepend(X)}},"set_prolog_flag/2":function(I,P,y){var F=y.args[0],J=y.args[1];x.type.is_variable(F)||x.type.is_variable(J)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?x.type.is_flag(F)?x.type.is_value_flag(F,J)?x.type.is_modifiable_flag(F)?(I.session.flag[F.id]=J,I.success(P)):I.throw_error(x.error.permission("modify","flag",F)):I.throw_error(x.error.domain("flag_value",new H("+",[F,J]),y.indicator)):I.throw_error(x.error.domain("prolog_flag",F,y.indicator)):I.throw_error(x.error.type("atom",F,y.indicator))}},flag:{bounded:{allowed:[new H("true"),new H("false")],value:new H("true"),changeable:!1},max_integer:{allowed:[new be(Number.MAX_SAFE_INTEGER)],value:new be(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new be(Number.MIN_SAFE_INTEGER)],value:new be(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new H("down"),new H("toward_zero")],value:new H("toward_zero"),changeable:!1},char_conversion:{allowed:[new H("on"),new H("off")],value:new H("on"),changeable:!0},debug:{allowed:[new H("on"),new H("off")],value:new H("off"),changeable:!0},max_arity:{allowed:[new H("unbounded")],value:new H("unbounded"),changeable:!1},unknown:{allowed:[new H("error"),new H("fail"),new H("warning")],value:new H("error"),changeable:!0},double_quotes:{allowed:[new H("chars"),new H("codes"),new H("atom")],value:new H("codes"),changeable:!0},occurs_check:{allowed:[new H("false"),new H("true")],value:new H("false"),changeable:!0},dialect:{allowed:[new H("tau")],value:new H("tau"),changeable:!1},version_data:{allowed:[new H("tau",[new be(t.major,!1),new be(t.minor,!1),new be(t.patch,!1),new H(t.status)])],value:new H("tau",[new be(t.major,!1),new be(t.minor,!1),new be(t.patch,!1),new H(t.status)]),changeable:!1},nodejs:{allowed:[new H("yes"),new H("no")],value:new H(typeof dl<"u"&&dl.exports?"yes":"no"),changeable:!1}},unify:function(I,P,y){y=y===void 0?!1:y;for(var F=[{left:I,right:P}],J={};F.length!==0;){var X=F.pop();if(I=X.left,P=X.right,x.type.is_term(I)&&x.type.is_term(P)){if(I.indicator!==P.indicator)return null;for(var $=0;$<I.args.length;$++)F.push({left:I.args[$],right:P.args[$]})}else if(x.type.is_number(I)&&x.type.is_number(P)){if(I.value!==P.value||I.is_float!==P.is_float)return null}else if(x.type.is_variable(I)){if(x.type.is_variable(P)&&I.id===P.id)continue;if(y===!0&&P.variables().indexOf(I.id)!==-1)return null;if(I.id!=="_"){var ie=new Te;ie.add(I.id,P);for(var $=0;$<F.length;$++)F[$].left=F[$].left.apply(ie),F[$].right=F[$].right.apply(ie);for(var $ in J)J[$]=J[$].apply(ie);J[I.id]=P}}else if(x.type.is_variable(P))F.push({left:P,right:I});else if(I.unify!==void 0){if(!I.unify(P))return null}else return null}return new Te(J)},compare:function(I,P){var y=x.type.compare(I,P);return y!==0?y:I.compare(P)},arithmetic_compare:function(I,P,y){var F=P.interpret(I);if(x.type.is_number(F)){var J=y.interpret(I);return x.type.is_number(J)?F.value<J.value?-1:F.value>J.value?1:0:J}else return F},operate:function(I,P){if(x.type.is_operator(P)){for(var y=x.type.is_operator(P),F=[],J,X=!1,$=0;$<P.args.length;$++){if(J=P.args[$].interpret(I),x.type.is_number(J)){if(y.type_args!==null&&J.is_float!==y.type_args)return x.error.type(y.type_args?"float":"integer",J,I.__call_indicator);F.push(J.value)}else return J;X=X||J.is_float}return F.push(I),J=x.arithmetic.evaluation[P.indicator].fn.apply(this,F),X=y.type_result===null?X:y.type_result,x.type.is_term(J)?J:J===Number.POSITIVE_INFINITY||J===Number.NEGATIVE_INFINITY?x.error.evaluation("overflow",I.__call_indicator):X===!1&&I.get_flag("bounded").id==="true"&&(J>I.get_flag("max_integer").value||J<I.get_flag("min_integer").value)?x.error.evaluation("int_overflow",I.__call_indicator):new be(J,X)}else return x.error.type("evaluable",P.indicator,I.__call_indicator)},error:{existence:function(I,P,y){return typeof P=="string"&&(P=Z(P)),new H("error",[new H("existence_error",[new H(I),P]),Z(y)])},type:function(I,P,y){return new H("error",[new H("type_error",[new H(I),P]),Z(y)])},instantiation:function(I){return new H("error",[new H("instantiation_error"),Z(I)])},domain:function(I,P,y){return new H("error",[new H("domain_error",[new H(I),P]),Z(y)])},representation:function(I,P){return new H("error",[new H("representation_error",[new H(I)]),Z(P)])},permission:function(I,P,y,F){return new H("error",[new H("permission_error",[new H(I),new H(P),y]),Z(F)])},evaluation:function(I,P){return new H("error",[new H("evaluation_error",[new H(I)]),Z(P)])},syntax:function(I,P,y){I=I||{value:"",line:0,column:0,matches:[""],start:0};var F=y&&I.matches.length>0?I.start+I.matches[0].length:I.start,J=y?new H("token_not_found"):new H("found",[new H(I.value.toString())]),X=new H(".",[new H("line",[new be(I.line+1)]),new H(".",[new H("column",[new be(F+1)]),new H(".",[J,new H("[]",[])])])]);return new H("error",[new H("syntax_error",[new H(P)]),X])},syntax_by_predicate:function(I,P){return new H("error",[new H("syntax_error",[new H(I)]),Z(P)])}},warning:{singleton:function(I,P,y){for(var F=new H("[]"),J=I.length-1;J>=0;J--)F=new H(".",[new me(I[J]),F]);return new H("warning",[new H("singleton_variables",[F,Z(P)]),new H(".",[new H("line",[new be(y,!1)]),new H("[]")])])},failed_goal:function(I,P){return new H("warning",[new H("failed_goal",[I]),new H(".",[new H("line",[new be(P,!1)]),new H("[]")])])}},format_variable:function(I){return"_"+I},format_answer:function(I,P,F){P instanceof qe&&(P=P.thread);var F=F||{};if(F.session=P?P.session:void 0,x.type.is_error(I))return"uncaught exception: "+I.args[0].toString();if(I===!1)return"false.";if(I===null)return"limit exceeded ;";var J=0,X="";if(x.type.is_substitution(I)){var $=I.domain(!0);I=I.filter(function(Ne,st){return!x.type.is_variable(st)||$.indexOf(st.id)!==-1&&Ne!==st.id})}for(var ie in I.links)!I.links.hasOwnProperty(ie)||(J++,X!==""&&(X+=", "),X+=ie.toString(F)+" = "+I.links[ie].toString(F));var ke=typeof P>"u"||P.points.length>0?" ;":".";return J===0?"true"+ke:X+ke},flatten_error:function(I){if(!x.type.is_error(I))return null;I=I.args[0];var P={};return P.type=I.args[0].id,P.thrown=P.type==="syntax_error"?null:I.args[1].id,P.expected=null,P.found=null,P.representation=null,P.existence=null,P.existence_type=null,P.line=null,P.column=null,P.permission_operation=null,P.permission_type=null,P.evaluation_type=null,P.type==="type_error"||P.type==="domain_error"?(P.expected=I.args[0].args[0].id,P.found=I.args[0].args[1].toString()):P.type==="syntax_error"?I.args[1].indicator==="./2"?(P.expected=I.args[0].args[0].id,P.found=I.args[1].args[1].args[1].args[0],P.found=P.found.id==="token_not_found"?P.found.id:P.found.args[0].id,P.line=I.args[1].args[0].args[0].value,P.column=I.args[1].args[1].args[0].args[0].value):P.thrown=I.args[1].id:P.type==="permission_error"?(P.found=I.args[0].args[2].toString(),P.permission_operation=I.args[0].args[0].id,P.permission_type=I.args[0].args[1].id):P.type==="evaluation_error"?P.evaluation_type=I.args[0].args[0].id:P.type==="representation_error"?P.representation=I.args[0].args[0].id:P.type==="existence_error"&&(P.existence=I.args[0].args[1].toString(),P.existence_type=I.args[0].args[0].id),P},create:function(I){return new x.type.Session(I)}};typeof dl<"u"?dl.exports=x:window.pl=x})()});function Sme(t,e,r){t.prepend(r.map(o=>new Ta.default.type.State(e.goal.replace(o),e.substitution,e)))}function mH(t){let e=xme.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function bme(t,e){xme.set(t,e),t.consult(`:- use_module(library(${Agt.id})).`)}var yH,Ta,Pme,ah,cgt,ugt,xme,Agt,Qme=dt(()=>{Ke();yH=tt(e2()),Ta=tt(dH()),Pme=tt(Ie("vm")),{is_atom:ah,is_variable:cgt,is_instantiated_list:ugt}=Ta.default.type;xme=new WeakMap;Agt=new Ta.default.type.Module("constraints",{["project_workspaces_by_descriptor/3"]:(t,e,r)=>{let[o,a,n]=r.args;if(!ah(o)||!ah(a)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let u=Y.parseIdent(o.id),A=Y.makeDescriptor(u,a.id),h=mH(t).tryWorkspaceByDescriptor(A);cgt(n)&&h!==null&&Sme(t,e,[new Ta.default.type.Term("=",[n,new Ta.default.type.Term(String(h.relativeCwd))])]),ah(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},["workspace_field/3"]:(t,e,r)=>{let[o,a,n]=r.args;if(!ah(o)||!ah(a)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let A=mH(t).tryWorkspaceByCwd(o.id);if(A==null)return;let p=(0,yH.default)(A.manifest.raw,a.id);typeof p>"u"||Sme(t,e,[new Ta.default.type.Term("=",[n,new Ta.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},["workspace_field_test/3"]:(t,e,r)=>{let[o,a,n]=r.args;t.prepend([new Ta.default.type.State(e.goal.replace(new Ta.default.type.Term("workspace_field_test",[o,a,n,new Ta.default.type.Term("[]",[])])),e.substitution,e)])},["workspace_field_test/4"]:(t,e,r)=>{let[o,a,n,u]=r.args;if(!ah(o)||!ah(a)||!ah(n)||!ugt(u)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let p=mH(t).tryWorkspaceByCwd(o.id);if(p==null)return;let h=(0,yH.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[v,b]of u.toJavaScript().entries())E[`$${v}`]=b;Pme.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var p2={};Yt(p2,{Constraints:()=>f2,DependencyType:()=>Tme});function Zs(t){if(t instanceof CE.default.type.Num)return t.value;if(t instanceof CE.default.type.Term)switch(t.indicator){case"throw/1":return Zs(t.args[0]);case"error/1":return Zs(t.args[0]);case"error/2":if(t.args[0]instanceof CE.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(Zs(t.args[0]),...Zs(t.args[1]));{let e=Zs(t.args[0]);return e.message+=` (in ${Zs(t.args[1])})`,e}case"syntax_error/1":return new Vt(43,`Syntax error: ${Zs(t.args[0])}`);case"existence_error/2":return new Vt(44,`Existence error: ${Zs(t.args[0])} ${Zs(t.args[1])} not found`);case"instantiation_error/0":return new Vt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:Zs(t.args[0])};case"column/1":return{column:Zs(t.args[0])};case"found/1":return{found:Zs(t.args[0])};case"./2":return[Zs(t.args[0])].concat(Zs(t.args[1]));case"//2":return`${Zs(t.args[0])}/${Zs(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function Fme(t){let e;try{e=Zs(t)}catch(r){throw typeof r=="string"?new Vt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function rm(t){return t.id==="null"?null:`${t.toJavaScript()}`}function fgt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function lh(t){return typeof t=="string"?`'${t}'`:"[]"}var Rme,CE,Tme,kme,CH,f2,h2=dt(()=>{Ke();Ke();bt();Rme=tt(ume()),CE=tt(dH());c2();Qme();(0,Rme.default)(CE.default);Tme=(o=>(o.Dependencies="dependencies",o.DevDependencies="devDependencies",o.PeerDependencies="peerDependencies",o))(Tme||{}),kme=["dependencies","devDependencies","peerDependencies"];CH=class{constructor(e,r){let o=1e3*e.workspaces.length;this.session=CE.default.create(o),bme(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw Fme(r);for(;;){let o=await this.fetchNextAnswer();if(o===null)throw new Vt(79,"Resolution limit exceeded");if(!o)break;if(o.id==="throw")throw Fme(o);yield o}}};f2=class{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");ae.existsSync(r)&&(this.source=ae.readFileSync(r,"utf8"))}static async find(e){return new f2(e)}getProjectDatabase(){let e="";for(let r of kme)e+=`dependency_type(${r}). 266`,[])])),P.substitution,P)])},"get_byte/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("get_byte",[new me("S"),F])])),P.substitution,P)])},"get_byte/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_byte(z))I.throw_error(x.error.type("in_byte",char,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="text")I.throw_error(x.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else{if($=X.stream.get_byte(X.position),$===null){I.throw_error(x.error.representation("byte",y.indicator));return}X.position++}I.prepend([new Qe(P.goal.replace(new H("=",[new be($,!1),z])),P.substitution,P)])}},"peek_byte/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("peek_byte",[new me("S"),F])])),P.substitution,P)])},"peek_byte/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_byte(z))I.throw_error(x.error.type("in_byte",char,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(X)||X.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if(X.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if(X.type==="text")I.throw_error(x.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else if($=X.stream.get_byte(X.position),$===null){I.throw_error(x.error.representation("byte",y.indicator));return}I.prepend([new Qe(P.goal.replace(new H("=",[new be($,!1),z])),P.substitution,P)])}},"put_byte/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("put_byte",[new me("S"),F])])),P.substitution,P)])},"put_byte/2":function(I,P,y){var F=y.args[0],z=y.args[1],X=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_byte(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?I.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(X)||X.stream===null?I.throw_error(x.error.existence("stream",F,y.indicator)):X.input?I.throw_error(x.error.permission("output","stream",F,y.indicator)):X.type==="text"?I.throw_error(x.error.permission("output","text_stream",F,y.indicator)):X.stream.put_byte(z.value,X.position)&&(typeof X.position=="number"&&X.position++,I.success(P)):I.throw_error(x.error.type("byte",z,y.indicator))},"read/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("read_term",[new me("S"),F,new H("[]",[])])])),P.substitution,P)])},"read/2":function(I,P,y){var F=y.args[0],z=y.args[1];I.prepend([new Qe(P.goal.replace(new H("read_term",[F,z,new H("[]",[])])),P.substitution,P)])},"read_term/2":function(I,P,y){var F=y.args[0],z=y.args[1];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_input",[new me("S")]),new H("read_term",[new me("S"),F,z])])),P.substitution,P)])},"read_term/3":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2],$=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if($.output)I.throw_error(x.error.permission("input","stream",F,y.indicator));else if($.type==="binary")I.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")I.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{for(var ie={},ke=X,Ne;x.type.is_term(ke)&&ke.indicator==="./2";){if(Ne=ke.args[0],x.type.is_variable(Ne)){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_read_option(Ne)){I.throw_error(x.error.domain("read_option",Ne,y.indicator));return}ie[Ne.id]=Ne.args[0],ke=ke.args[1]}if(ke.indicator!=="[]/0"){x.type.is_variable(ke)?I.throw_error(x.error.instantiation(y.indicator)):I.throw_error(x.error.type("list",X,y.indicator));return}else{for(var st,ht,Ut,Xt="",xt=[],tn=null;tn===null||tn.name!=="atom"||tn.value!=="."||Ut.type===A&&x.flatten_error(new H("throw",[Ut.value])).found==="token_not_found";){if(st=$.stream.get(1,$.position),st===null){I.throw_error(x.error.representation("character",y.indicator));return}if(st==="end_of_file"||st==="past_end_of_file"){Ut?I.throw_error(x.error.syntax(xt[Ut.len-1],". or expression expected",!1)):I.throw_error(x.error.syntax(null,"token not found",!0));return}$.position++,Xt+=st,ht=new _(I),ht.new_text(Xt),xt=ht.get_tokens(),tn=xt!==null&&xt.length>0?xt[xt.length-1]:null,xt!==null&&(Ut=V(I,xt,0,I.__get_max_priority(),!1))}if(Ut.type===p&&Ut.len===xt.length-1&&tn.value==="."){Ut=Ut.value.rename(I);var Dr=new H("=",[z,Ut]);if(ie.variables){var fr=g(o(Ee(Ut.variables()),function(Br){return new me(Br)}));Dr=new H(",",[Dr,new H("=",[ie.variables,fr])])}if(ie.variable_names){var fr=g(o(Ee(Ut.variables()),function(jr){var Hn;for(Hn in I.session.renamed_variables)if(I.session.renamed_variables.hasOwnProperty(Hn)&&I.session.renamed_variables[Hn]===jr)break;return new H("=",[new H(Hn,[]),new me(jr)])}));Dr=new H(",",[Dr,new H("=",[ie.variable_names,fr])])}if(ie.singletons){var fr=g(o(new _e(Ut,null).singleton_variables(),function(jr){var Hn;for(Hn in I.session.renamed_variables)if(I.session.renamed_variables.hasOwnProperty(Hn)&&I.session.renamed_variables[Hn]===jr)break;return new H("=",[new H(Hn,[]),new me(jr)])}));Dr=new H(",",[Dr,new H("=",[ie.singletons,fr])])}I.prepend([new Qe(P.goal.replace(Dr),P.substitution,P)])}else Ut.type===p?I.throw_error(x.error.syntax(xt[Ut.len],"unexpected token",!1)):I.throw_error(Ut.value)}}},"write/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("write",[new me("S"),F])])),P.substitution,P)])},"write/2":function(I,P,y){var F=y.args[0],z=y.args[1];I.prepend([new Qe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("false",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),P.substitution,P)])},"writeq/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("writeq",[new me("S"),F])])),P.substitution,P)])},"writeq/2":function(I,P,y){var F=y.args[0],z=y.args[1];I.prepend([new Qe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),P.substitution,P)])},"write_canonical/1":function(I,P,y){var F=y.args[0];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("write_canonical",[new me("S"),F])])),P.substitution,P)])},"write_canonical/2":function(I,P,y){var F=y.args[0],z=y.args[1];I.prepend([new Qe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("true")]),new H(".",[new H("numbervars",[new H("false")]),new H("[]",[])])])])])),P.substitution,P)])},"write_term/2":function(I,P,y){var F=y.args[0],z=y.args[1];I.prepend([new Qe(P.goal.replace(new H(",",[new H("current_output",[new me("S")]),new H("write_term",[new me("S"),F,z])])),P.substitution,P)])},"write_term/3":function(I,P,y){var F=y.args[0],z=y.args[1],X=y.args[2],$=x.type.is_stream(F)?F:I.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(X))I.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(X))I.throw_error(x.error.type("list",X,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))I.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)I.throw_error(x.error.existence("stream",F,y.indicator));else if($.input)I.throw_error(x.error.permission("output","stream",F,y.indicator));else if($.type==="binary")I.throw_error(x.error.permission("output","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")I.throw_error(x.error.permission("output","past_end_of_stream",F,y.indicator));else{for(var ie={},ke=X,Ne;x.type.is_term(ke)&&ke.indicator==="./2";){if(Ne=ke.args[0],x.type.is_variable(Ne)){I.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_write_option(Ne)){I.throw_error(x.error.domain("write_option",Ne,y.indicator));return}ie[Ne.id]=Ne.args[0].id==="true",ke=ke.args[1]}if(ke.indicator!=="[]/0"){x.type.is_variable(ke)?I.throw_error(x.error.instantiation(y.indicator)):I.throw_error(x.error.type("list",X,y.indicator));return}else{ie.session=I.session;var st=z.toString(ie);$.stream.put(st,$.position),typeof $.position=="number"&&($.position+=st.length),I.success(P)}}},"halt/0":function(I,P,y){I.points=[]},"halt/1":function(I,P,y){var F=y.args[0];x.type.is_variable(F)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(F)?I.points=[]:I.throw_error(x.error.type("integer",F,y.indicator))},"current_prolog_flag/2":function(I,P,y){var F=y.args[0],z=y.args[1];if(!x.type.is_variable(F)&&!x.type.is_atom(F))I.throw_error(x.error.type("atom",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_flag(F))I.throw_error(x.error.domain("prolog_flag",F,y.indicator));else{var X=[];for(var $ in x.flag)if(!!x.flag.hasOwnProperty($)){var ie=new H(",",[new H("=",[new H($),F]),new H("=",[I.get_flag($),z])]);X.push(new Qe(P.goal.replace(ie),P.substitution,P))}I.prepend(X)}},"set_prolog_flag/2":function(I,P,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)||x.type.is_variable(z)?I.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?x.type.is_flag(F)?x.type.is_value_flag(F,z)?x.type.is_modifiable_flag(F)?(I.session.flag[F.id]=z,I.success(P)):I.throw_error(x.error.permission("modify","flag",F)):I.throw_error(x.error.domain("flag_value",new H("+",[F,z]),y.indicator)):I.throw_error(x.error.domain("prolog_flag",F,y.indicator)):I.throw_error(x.error.type("atom",F,y.indicator))}},flag:{bounded:{allowed:[new H("true"),new H("false")],value:new H("true"),changeable:!1},max_integer:{allowed:[new be(Number.MAX_SAFE_INTEGER)],value:new be(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new be(Number.MIN_SAFE_INTEGER)],value:new be(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new H("down"),new H("toward_zero")],value:new H("toward_zero"),changeable:!1},char_conversion:{allowed:[new H("on"),new H("off")],value:new H("on"),changeable:!0},debug:{allowed:[new H("on"),new H("off")],value:new H("off"),changeable:!0},max_arity:{allowed:[new H("unbounded")],value:new H("unbounded"),changeable:!1},unknown:{allowed:[new H("error"),new H("fail"),new H("warning")],value:new H("error"),changeable:!0},double_quotes:{allowed:[new H("chars"),new H("codes"),new H("atom")],value:new H("codes"),changeable:!0},occurs_check:{allowed:[new H("false"),new H("true")],value:new H("false"),changeable:!0},dialect:{allowed:[new H("tau")],value:new H("tau"),changeable:!1},version_data:{allowed:[new H("tau",[new be(t.major,!1),new be(t.minor,!1),new be(t.patch,!1),new H(t.status)])],value:new H("tau",[new be(t.major,!1),new be(t.minor,!1),new be(t.patch,!1),new H(t.status)]),changeable:!1},nodejs:{allowed:[new H("yes"),new H("no")],value:new H(typeof ml<"u"&&ml.exports?"yes":"no"),changeable:!1}},unify:function(I,P,y){y=y===void 0?!1:y;for(var F=[{left:I,right:P}],z={};F.length!==0;){var X=F.pop();if(I=X.left,P=X.right,x.type.is_term(I)&&x.type.is_term(P)){if(I.indicator!==P.indicator)return null;for(var $=0;$<I.args.length;$++)F.push({left:I.args[$],right:P.args[$]})}else if(x.type.is_number(I)&&x.type.is_number(P)){if(I.value!==P.value||I.is_float!==P.is_float)return null}else if(x.type.is_variable(I)){if(x.type.is_variable(P)&&I.id===P.id)continue;if(y===!0&&P.variables().indexOf(I.id)!==-1)return null;if(I.id!=="_"){var ie=new Te;ie.add(I.id,P);for(var $=0;$<F.length;$++)F[$].left=F[$].left.apply(ie),F[$].right=F[$].right.apply(ie);for(var $ in z)z[$]=z[$].apply(ie);z[I.id]=P}}else if(x.type.is_variable(P))F.push({left:P,right:I});else if(I.unify!==void 0){if(!I.unify(P))return null}else return null}return new Te(z)},compare:function(I,P){var y=x.type.compare(I,P);return y!==0?y:I.compare(P)},arithmetic_compare:function(I,P,y){var F=P.interpret(I);if(x.type.is_number(F)){var z=y.interpret(I);return x.type.is_number(z)?F.value<z.value?-1:F.value>z.value?1:0:z}else return F},operate:function(I,P){if(x.type.is_operator(P)){for(var y=x.type.is_operator(P),F=[],z,X=!1,$=0;$<P.args.length;$++){if(z=P.args[$].interpret(I),x.type.is_number(z)){if(y.type_args!==null&&z.is_float!==y.type_args)return x.error.type(y.type_args?"float":"integer",z,I.__call_indicator);F.push(z.value)}else return z;X=X||z.is_float}return F.push(I),z=x.arithmetic.evaluation[P.indicator].fn.apply(this,F),X=y.type_result===null?X:y.type_result,x.type.is_term(z)?z:z===Number.POSITIVE_INFINITY||z===Number.NEGATIVE_INFINITY?x.error.evaluation("overflow",I.__call_indicator):X===!1&&I.get_flag("bounded").id==="true"&&(z>I.get_flag("max_integer").value||z<I.get_flag("min_integer").value)?x.error.evaluation("int_overflow",I.__call_indicator):new be(z,X)}else return x.error.type("evaluable",P.indicator,I.__call_indicator)},error:{existence:function(I,P,y){return typeof P=="string"&&(P=Z(P)),new H("error",[new H("existence_error",[new H(I),P]),Z(y)])},type:function(I,P,y){return new H("error",[new H("type_error",[new H(I),P]),Z(y)])},instantiation:function(I){return new H("error",[new H("instantiation_error"),Z(I)])},domain:function(I,P,y){return new H("error",[new H("domain_error",[new H(I),P]),Z(y)])},representation:function(I,P){return new H("error",[new H("representation_error",[new H(I)]),Z(P)])},permission:function(I,P,y,F){return new H("error",[new H("permission_error",[new H(I),new H(P),y]),Z(F)])},evaluation:function(I,P){return new H("error",[new H("evaluation_error",[new H(I)]),Z(P)])},syntax:function(I,P,y){I=I||{value:"",line:0,column:0,matches:[""],start:0};var F=y&&I.matches.length>0?I.start+I.matches[0].length:I.start,z=y?new H("token_not_found"):new H("found",[new H(I.value.toString())]),X=new H(".",[new H("line",[new be(I.line+1)]),new H(".",[new H("column",[new be(F+1)]),new H(".",[z,new H("[]",[])])])]);return new H("error",[new H("syntax_error",[new H(P)]),X])},syntax_by_predicate:function(I,P){return new H("error",[new H("syntax_error",[new H(I)]),Z(P)])}},warning:{singleton:function(I,P,y){for(var F=new H("[]"),z=I.length-1;z>=0;z--)F=new H(".",[new me(I[z]),F]);return new H("warning",[new H("singleton_variables",[F,Z(P)]),new H(".",[new H("line",[new be(y,!1)]),new H("[]")])])},failed_goal:function(I,P){return new H("warning",[new H("failed_goal",[I]),new H(".",[new H("line",[new be(P,!1)]),new H("[]")])])}},format_variable:function(I){return"_"+I},format_answer:function(I,P,F){P instanceof qe&&(P=P.thread);var F=F||{};if(F.session=P?P.session:void 0,x.type.is_error(I))return"uncaught exception: "+I.args[0].toString();if(I===!1)return"false.";if(I===null)return"limit exceeded ;";var z=0,X="";if(x.type.is_substitution(I)){var $=I.domain(!0);I=I.filter(function(Ne,st){return!x.type.is_variable(st)||$.indexOf(st.id)!==-1&&Ne!==st.id})}for(var ie in I.links)!I.links.hasOwnProperty(ie)||(z++,X!==""&&(X+=", "),X+=ie.toString(F)+" = "+I.links[ie].toString(F));var ke=typeof P>"u"||P.points.length>0?" ;":".";return z===0?"true"+ke:X+ke},flatten_error:function(I){if(!x.type.is_error(I))return null;I=I.args[0];var P={};return P.type=I.args[0].id,P.thrown=P.type==="syntax_error"?null:I.args[1].id,P.expected=null,P.found=null,P.representation=null,P.existence=null,P.existence_type=null,P.line=null,P.column=null,P.permission_operation=null,P.permission_type=null,P.evaluation_type=null,P.type==="type_error"||P.type==="domain_error"?(P.expected=I.args[0].args[0].id,P.found=I.args[0].args[1].toString()):P.type==="syntax_error"?I.args[1].indicator==="./2"?(P.expected=I.args[0].args[0].id,P.found=I.args[1].args[1].args[1].args[0],P.found=P.found.id==="token_not_found"?P.found.id:P.found.args[0].id,P.line=I.args[1].args[0].args[0].value,P.column=I.args[1].args[1].args[0].args[0].value):P.thrown=I.args[1].id:P.type==="permission_error"?(P.found=I.args[0].args[2].toString(),P.permission_operation=I.args[0].args[0].id,P.permission_type=I.args[0].args[1].id):P.type==="evaluation_error"?P.evaluation_type=I.args[0].args[0].id:P.type==="representation_error"?P.representation=I.args[0].args[0].id:P.type==="existence_error"&&(P.existence=I.args[0].args[1].toString(),P.existence_type=I.args[0].args[0].id),P},create:function(I){return new x.type.Session(I)}};typeof ml<"u"?ml.exports=x:window.pl=x})()});function xme(t,e,r){t.prepend(r.map(o=>new Na.default.type.State(e.goal.replace(o),e.substitution,e)))}function EH(t){let e=Qme.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function kme(t,e){Qme.set(t,e),t.consult(`:- use_module(library(${dgt.id})).`)}var CH,Na,bme,lh,hgt,ggt,Qme,dgt,Fme=dt(()=>{Ke();CH=tt(r2()),Na=tt(yH()),bme=tt(Ie("vm")),{is_atom:lh,is_variable:hgt,is_instantiated_list:ggt}=Na.default.type;Qme=new WeakMap;dgt=new Na.default.type.Module("constraints",{["project_workspaces_by_descriptor/3"]:(t,e,r)=>{let[o,a,n]=r.args;if(!lh(o)||!lh(a)){t.throw_error(Na.default.error.instantiation(r.indicator));return}let u=Y.parseIdent(o.id),A=Y.makeDescriptor(u,a.id),h=EH(t).tryWorkspaceByDescriptor(A);hgt(n)&&h!==null&&xme(t,e,[new Na.default.type.Term("=",[n,new Na.default.type.Term(String(h.relativeCwd))])]),lh(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},["workspace_field/3"]:(t,e,r)=>{let[o,a,n]=r.args;if(!lh(o)||!lh(a)){t.throw_error(Na.default.error.instantiation(r.indicator));return}let A=EH(t).tryWorkspaceByCwd(o.id);if(A==null)return;let p=(0,CH.default)(A.manifest.raw,a.id);typeof p>"u"||xme(t,e,[new Na.default.type.Term("=",[n,new Na.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},["workspace_field_test/3"]:(t,e,r)=>{let[o,a,n]=r.args;t.prepend([new Na.default.type.State(e.goal.replace(new Na.default.type.Term("workspace_field_test",[o,a,n,new Na.default.type.Term("[]",[])])),e.substitution,e)])},["workspace_field_test/4"]:(t,e,r)=>{let[o,a,n,u]=r.args;if(!lh(o)||!lh(a)||!lh(n)||!ggt(u)){t.throw_error(Na.default.error.instantiation(r.indicator));return}let p=EH(t).tryWorkspaceByCwd(o.id);if(p==null)return;let h=(0,CH.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let C={$$:h};for(let[v,b]of u.toJavaScript().entries())C[`$${v}`]=b;bme.default.runInNewContext(n.id,C)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var g2={};Yt(g2,{Constraints:()=>h2,DependencyType:()=>Lme});function Zs(t){if(t instanceof EC.default.type.Num)return t.value;if(t instanceof EC.default.type.Term)switch(t.indicator){case"throw/1":return Zs(t.args[0]);case"error/1":return Zs(t.args[0]);case"error/2":if(t.args[0]instanceof EC.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(Zs(t.args[0]),...Zs(t.args[1]));{let e=Zs(t.args[0]);return e.message+=` (in ${Zs(t.args[1])})`,e}case"syntax_error/1":return new Vt(43,`Syntax error: ${Zs(t.args[0])}`);case"existence_error/2":return new Vt(44,`Existence error: ${Zs(t.args[0])} ${Zs(t.args[1])} not found`);case"instantiation_error/0":return new Vt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:Zs(t.args[0])};case"column/1":return{column:Zs(t.args[0])};case"found/1":return{found:Zs(t.args[0])};case"./2":return[Zs(t.args[0])].concat(Zs(t.args[1]));case"//2":return`${Zs(t.args[0])}/${Zs(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function Tme(t){let e;try{e=Zs(t)}catch(r){throw typeof r=="string"?new Vt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function nm(t){return t.id==="null"?null:`${t.toJavaScript()}`}function mgt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function ch(t){return typeof t=="string"?`'${t}'`:"[]"}var Nme,EC,Lme,Rme,IH,h2,d2=dt(()=>{Ke();Ke();St();Nme=tt(fme()),EC=tt(yH());A2();Fme();(0,Nme.default)(EC.default);Lme=(o=>(o.Dependencies="dependencies",o.DevDependencies="devDependencies",o.PeerDependencies="peerDependencies",o))(Lme||{}),Rme=["dependencies","devDependencies","peerDependencies"];IH=class{constructor(e,r){let o=1e3*e.workspaces.length;this.session=EC.default.create(o),kme(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw Tme(r);for(;;){let o=await this.fetchNextAnswer();if(o===null)throw new Vt(79,"Resolution limit exceeded");if(!o)break;if(o.id==="throw")throw Tme(o);yield o}}};h2=class{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");oe.existsSync(r)&&(this.source=oe.readFileSync(r,"utf8"))}static async find(e){return new h2(e)}getProjectDatabase(){let e="";for(let r of Rme)e+=`dependency_type(${r}).
267`;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${lh(o)}). 267`;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${ch(o)}).
268`,e+=`workspace_ident(${lh(o)}, ${lh(Y.stringifyIdent(r.locator))}). 268`,e+=`workspace_ident(${ch(o)}, ${ch(Y.stringifyIdent(r.locator))}).
269`,e+=`workspace_version(${lh(o)}, ${lh(r.manifest.version)}). 269`,e+=`workspace_version(${ch(o)}, ${ch(r.manifest.version)}).
270`;for(let a of kme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${lh(o)}, ${lh(Y.stringifyIdent(n))}, ${lh(n.range)}, ${a}). 270`;for(let a of Rme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${ch(o)}, ${ch(Y.stringifyIdent(n))}, ${ch(n.range)}, ${a}).
271`}return e+=`workspace(_) :- false. 271`}return e+=`workspace(_) :- false.
272`,e+=`workspace_ident(_, _) :- false. 272`,e+=`workspace_ident(_, _) :- false.
273`,e+=`workspace_version(_, _) :- false. 273`,e+=`workspace_version(_, _) :- false.
@@ -276,50 +276,50 @@ And the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:
276`,e+=`gen_enforced_field(_, _, _) :- false. 276`,e+=`gen_enforced_field(_, _, _) :- false.
277`,e}get fullSource(){return`${this.getProjectDatabase()} 277`,e}get fullSource(){return`${this.getProjectDatabase()}
278${this.source} 278${this.source}
279${this.getDeclarations()}`}createSession(){return new CH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=l2([A,Y.stringifyIdent(n)]),h=Ye.getMapWithDefault(o,a.cwd);Ye.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=l2(n),p=Ye.getMapWithDefault(o,a.cwd);Ye.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=z.resolve(this.project.cwd,rm(o.links.WorkspaceCwd)),n=rm(o.links.DependencyIdent),u=rm(o.links.DependencyRange),A=rm(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=Y.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return Ye.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>Y.stringifyIdent(o.locator),({dependencyIdent:o})=>Y.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=z.resolve(this.project.cwd,rm(o.links.WorkspaceCwd)),n=rm(o.links.FieldPath),u=fgt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return Ye.sortMap(r,[({workspace:o})=>Y.stringifyIdent(o.locator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=rm(u));yield a}}}});var qme=U(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});function Q2(t){let e=[...t.caches],r=e.shift();return r===void 0?Hme():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>Q2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>Q2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>Q2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>Q2({caches:e}).clear())}}}function Hme(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}hQ.createFallbackableCache=Q2;hQ.createNullCache=Hme});var Gme=U((RWt,jme)=>{jme.exports=qme()});var Wme=U(RH=>{"use strict";Object.defineProperty(RH,"__esModule",{value:!0});function kgt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}RH.createInMemoryCache=kgt});var Kme=U((NWt,Yme)=>{Yme.exports=Wme()});var Jme=U(ru=>{"use strict";Object.defineProperty(ru,"__esModule",{value:!0});function Fgt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===TH.WithinHeaders?o:{}},queryParameters(){return t===TH.WithinQueryParameters?o:{}}}}function Rgt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function Vme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return Vme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Tgt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function Ngt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function Lgt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var Ogt="4.14.2",Mgt=t=>()=>t.transporter.requester.destroy(),TH={WithinQueryParameters:0,WithinHeaders:1};ru.AuthMode=TH;ru.addMethods=Ngt;ru.createAuth=Fgt;ru.createRetryablePromise=Rgt;ru.createWaitablePromise=Vme;ru.destroy=Mgt;ru.encode=Lgt;ru.shuffle=Tgt;ru.version=Ogt});var k2=U((OWt,zme)=>{zme.exports=Jme()});var Xme=U(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});var Ugt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};NH.MethodEnum=Ugt});var F2=U((UWt,Zme)=>{Zme.exports=Xme()});var pye=U(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});var eye=F2();function LH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var R2={Read:1,Write:2,Any:3},BE={Up:1,Down:2,Timeouted:3},tye=2*60*1e3;function MH(t,e=BE.Up){return{...t,status:e,lastUpdate:Date.now()}}function rye(t){return t.status===BE.Up||Date.now()-t.lastUpdate>tye}function nye(t){return t.status===BE.Timeouted&&Date.now()-t.lastUpdate<=tye}function UH(t){return typeof t=="string"?{protocol:"https",url:t,accept:R2.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||R2.Any}}function _gt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(MH(r))))).then(r=>{let o=r.filter(A=>rye(A)),a=r.filter(A=>nye(A)),n=[...o,...a],u=n.length>0?n.map(A=>UH(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Hgt=({isTimedOut:t,status:e})=>!t&&~~e===0,qgt=t=>{let e=t.status;return t.isTimedOut||Hgt(t)||~~(e/100)!==2&&~~(e/100)!==4},jgt=({status:t})=>~~(t/100)===2,Ggt=(t,e)=>qgt(t)?e.onRetry(t):jgt(t)?e.onSuccess(t):e.onFail(t);function $me(t,e,r,o){let a=[],n=lye(r,o),u=cye(t,o),A=r.method,p=r.method!==eye.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},E=0,w=(v,b)=>{let C=v.pop();if(C===void 0)throw fye(OH(a));let R={data:n,headers:u,method:A,url:oye(C,r.path,h),connectTimeout:b(E,t.timeouts.connect),responseTimeout:b(E,o.timeout)},L=V=>{let re={request:R,response:V,host:C,triesLeft:v.length};return a.push(re),re},_={onSuccess:V=>iye(V),onRetry(V){let re=L(V);return V.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",_H(re)),t.hostsCache.set(C,MH(C,V.isTimedOut?BE.Timeouted:BE.Down))]).then(()=>w(v,b))},onFail(V){throw L(V),sye(V,OH(a))}};return t.requester.send(R).then(V=>Ggt(V,_))};return _gt(t.hostsCache,e).then(v=>w([...v.statelessHosts].reverse(),v.getTimeout))}function Wgt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:E}=t,w={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:E,queryParameters:h,hosts:p.map(v=>UH(v)),read(v,b){let C=LH(b,w.timeouts.read),R=()=>$me(w,w.hosts.filter(V=>(V.accept&R2.Read)!==0),v,C);if((C.cacheable!==void 0?C.cacheable:v.cacheable)!==!0)return R();let _={request:v,mappedRequestOptions:C,transporter:{queryParameters:w.queryParameters,headers:w.headers}};return w.responsesCache.get(_,()=>w.requestsCache.get(_,()=>w.requestsCache.set(_,R()).then(V=>Promise.all([w.requestsCache.delete(_),V]),V=>Promise.all([w.requestsCache.delete(_),Promise.reject(V)])).then(([V,re])=>re)),{miss:V=>w.responsesCache.set(_,V)})},write(v,b){return $me(w,w.hosts.filter(C=>(C.accept&R2.Write)!==0),v,LH(b,w.timeouts.write))}};return w}function Ygt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function iye(t){try{return JSON.parse(t.content)}catch(e){throw Aye(e.message,t)}}function sye({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return uye(o,e,r)}function Kgt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function oye(t,e,r){let o=aye(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function aye(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Kgt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function lye(t,e){if(t.method===eye.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function cye(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function OH(t){return t.map(e=>_H(e))}function _H(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function uye(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function Aye(t,e){return{name:"DeserializationError",message:t,response:e}}function fye(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}bi.CallEnum=R2;bi.HostStatusEnum=BE;bi.createApiError=uye;bi.createDeserializationError=Aye;bi.createMappedRequestOptions=LH;bi.createRetryError=fye;bi.createStatefulHost=MH;bi.createStatelessHost=UH;bi.createTransporter=Wgt;bi.createUserAgent=Ygt;bi.deserializeFailure=sye;bi.deserializeSuccess=iye;bi.isStatefulHostTimeouted=nye;bi.isStatefulHostUp=rye;bi.serializeData=lye;bi.serializeHeaders=cye;bi.serializeQueryParameters=aye;bi.serializeUrl=oye;bi.stackFrameWithoutCredentials=_H;bi.stackTraceWithoutCredentials=OH});var T2=U((HWt,hye)=>{hye.exports=pye()});var gye=U(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});var vE=k2(),Vgt=T2(),N2=F2(),Jgt=t=>{let e=t.region||"us",r=vE.createAuth(vE.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Vgt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return vE.addMethods({appId:a,transporter:o},t.methods)},zgt=t=>(e,r)=>t.transporter.write({method:N2.MethodEnum.Post,path:"2/abtests",data:e},r),Xgt=t=>(e,r)=>t.transporter.write({method:N2.MethodEnum.Delete,path:vE.encode("2/abtests/%s",e)},r),Zgt=t=>(e,r)=>t.transporter.read({method:N2.MethodEnum.Get,path:vE.encode("2/abtests/%s",e)},r),$gt=t=>e=>t.transporter.read({method:N2.MethodEnum.Get,path:"2/abtests"},e),edt=t=>(e,r)=>t.transporter.write({method:N2.MethodEnum.Post,path:vE.encode("2/abtests/%s/stop",e)},r);hh.addABTest=zgt;hh.createAnalyticsClient=Jgt;hh.deleteABTest=Xgt;hh.getABTest=Zgt;hh.getABTests=$gt;hh.stopABTest=edt});var mye=U((jWt,dye)=>{dye.exports=gye()});var Cye=U(L2=>{"use strict";Object.defineProperty(L2,"__esModule",{value:!0});var HH=k2(),tdt=T2(),yye=F2(),rdt=t=>{let e=t.region||"us",r=HH.createAuth(HH.AuthMode.WithinHeaders,t.appId,t.apiKey),o=tdt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return HH.addMethods({appId:t.appId,transporter:o},t.methods)},ndt=t=>e=>t.transporter.read({method:yye.MethodEnum.Get,path:"1/strategies/personalization"},e),idt=t=>(e,r)=>t.transporter.write({method:yye.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);L2.createPersonalizationClient=rdt;L2.getPersonalizationStrategy=ndt;L2.setPersonalizationStrategy=idt});var Iye=U((WWt,Eye)=>{Eye.exports=Cye()});var Nye=U(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Ht=k2(),Na=T2(),mr=F2(),sdt=Ie("crypto");function gQ(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var odt=t=>{let e=t.appId,r=Ht.createAuth(t.authMode!==void 0?t.authMode:Ht.AuthMode.WithinHeaders,e,t.apiKey),o=Na.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Na.CallEnum.Read},{url:`${e}.algolia.net`,accept:Na.CallEnum.Write}].concat(Ht.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Ht.addMethods(a,t.methods)};function wye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function Bye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function vye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var adt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Ht.createRetryablePromise(h=>O2(t)(A.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:"1/keys",data:n},a),u)},ldt=t=>(e,r,o)=>{let a=Na.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:mr.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},cdt=t=>(e,r,o)=>t.transporter.write({method:mr.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),udt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>DE(t)(o.taskID,a)),dQ=t=>(e,r,o)=>{let a=(n,u)=>M2(t)(e,{methods:{waitTask:zi}}).waitTask(n.taskID,u);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},Adt=t=>(e,r,o)=>dQ(t)(e,r,{...o,scope:[yQ.Rules]}),fdt=t=>(e,r,o)=>dQ(t)(e,r,{...o,scope:[yQ.Settings]}),pdt=t=>(e,r,o)=>dQ(t)(e,r,{...o,scope:[yQ.Synonyms]}),hdt=t=>(e,r)=>e.method===mr.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),gdt=t=>(e,r)=>{let o=(a,n)=>Ht.createRetryablePromise(u=>O2(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/keys/%s",e)},r),o)},ddt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>DE(t)(n.taskID,u))},mdt=()=>(t,e)=>{let r=Na.serializeQueryParameters(e),o=sdt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},O2=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/keys/%s",e)},r),Dye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/task/%s",e.toString())},r),ydt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),Cdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/logs"},e),Edt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw vye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},Idt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping/top"},e),wdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/clusters/mapping/%s",e)},r),Bdt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},M2=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Ht.addMethods(o,r.methods)},vdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/keys"},e),Ddt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters"},e),Sdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/indexes"},e),Pdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping"},e),xdt=t=>(e,r,o)=>{let a=(n,u)=>M2(t)(e,{methods:{waitTask:zi}}).waitTask(n.taskID,u);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},bdt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>M2(t)(u,{methods:{waitTask:zi}}).waitTask(a.taskID[u],n)));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},Qdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),kdt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Na.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},Fdt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return M2(t)(o.indexName,{methods:{searchForFacetValues:Fye}}).searchForFacetValues(a,n,{...r,...u})})),Rdt=t=>(e,r)=>{let o=Na.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:mr.MethodEnum.Delete,path:"1/clusters/mapping"},o)},Tdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>DE(t)(n.taskID,u))},Ndt=t=>(e,r)=>{let o=(a,n)=>Ht.createRetryablePromise(u=>O2(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/keys/%s/restore",e)},r),o)},Ldt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>DE(t)(n.taskID,u))},Odt=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),Mdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),Udt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>DE(t)(o.taskID,a)),_dt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(o).filter(w=>A.indexOf(w)!==-1).every(w=>E[w]===o[w]),h=(E,w)=>Ht.createRetryablePromise(v=>O2(t)(e,w).then(b=>p(b)?Promise.resolve():v()));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:Ht.encode("1/keys/%s",e),data:u},n),h)},DE=t=>(e,r)=>Ht.createRetryablePromise(o=>Dye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),Sye=t=>(e,r)=>{let o=(a,n)=>zi(t)(a.taskID,n);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Hdt=t=>e=>gQ({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),qdt=t=>e=>{let r={hitsPerPage:1e3,...e};return gQ({shouldStop:o=>o.hits.length<r.hitsPerPage,...r,request(o){return Rye(t)("",{...r,...o}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},jdt=t=>e=>{let r={hitsPerPage:1e3,...e};return gQ({shouldStop:o=>o.hits.length<r.hitsPerPage,...r,request(o){return Tye(t)("",{...r,...o}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},mQ=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],E;for(E=p;E<e.length&&(h.push(e[E]),h.length!==(a||1e3));E++);return h.length===0?Promise.resolve(u):Sye(t)(h.map(w=>({action:r,body:w})),n).then(w=>(u.objectIDs=u.objectIDs.concat(w.objectIDs),u.taskIDs.push(w.taskID),E++,A(E)))};return Ht.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(E=>zi(t)(E,h))))},Gdt=t=>e=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>zi(t)(r.taskID,o)),Wdt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Na.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>zi(t)(n.taskID,u))},Ydt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Na.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>zi(t)(n.taskID,u))},Kdt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>zi(t)(o.taskID,a)),Vdt=t=>e=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s",t.indexName)},e),(r,o)=>zi(t)(r.taskID,o)),Jdt=t=>(e,r)=>Ht.createWaitablePromise(Pye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),Pye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return mQ(t)(o,sm.DeleteObject,r)},zdt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>zi(t)(u.taskID,A))},Xdt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>zi(t)(u.taskID,A))},Zdt=t=>e=>xye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),$dt=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),emt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>kye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw Bye();return A()});return A()},tmt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/%s",t.indexName,e)},r),rmt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},nmt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},imt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),xye=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),smt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),bye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),omt=t=>(e,r)=>Ht.createWaitablePromise(Qye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),Qye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?sm.PartialUpdateObject:sm.PartialUpdateObjectNoCreate;return mQ(t)(e,n,a)},amt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(C,R,L,_)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",C),data:{operation:L,destination:R}},_),(V,re)=>zi(t)(V.taskID,re)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=qH({appId:t.appId,transporter:t.transporter,indexName:h}),w=[],v=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});w.push(v);let b=(o?v.wait(u):v).then(()=>{let C=E(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return w.push(C),o?C.wait(u):C}).then(()=>{let C=A(h,t.indexName,"move",u);return w.push(C),o?C.wait(u):C}).then(()=>Promise.all(w)).then(([C,R,L])=>({objectIDs:R.objectIDs,taskIDs:[C.taskID,...R.taskIDs,L.taskID]}));return Ht.createWaitablePromise(b,(C,R)=>Promise.all(w.map(L=>L.wait(R))))},lmt=t=>(e,r)=>jH(t)(e,{...r,clearExistingRules:!0}),cmt=t=>(e,r)=>GH(t)(e,{...r,clearExistingSynonyms:!0}),umt=t=>(e,r)=>Ht.createWaitablePromise(qH(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),qH=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?sm.AddObject:sm.UpdateObject;if(n===sm.UpdateObject){for(let u of e)if(u.objectID===void 0)return Ht.createWaitablePromise(Promise.reject(wye()))}return mQ(t)(e,n,a)},Amt=t=>(e,r)=>jH(t)([e],r),jH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Na.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>zi(t)(A.taskID,p))},fmt=t=>(e,r)=>GH(t)([e],r),GH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Na.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>zi(t)(p.taskID,h))},kye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),Fye=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),Rye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),Tye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),pmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:Ht.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>zi(t)(u.taskID,A))},zi=t=>(e,r)=>Ht.createRetryablePromise(o=>bye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),hmt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},sm={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},yQ={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},gmt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},dmt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=hmt;Ft.BatchActionEnum=sm;Ft.ScopeEnum=yQ;Ft.StrategyEnum=gmt;Ft.SynonymEnum=dmt;Ft.addApiKey=adt;Ft.assignUserID=ldt;Ft.assignUserIDs=cdt;Ft.batch=Sye;Ft.browseObjects=Hdt;Ft.browseRules=qdt;Ft.browseSynonyms=jdt;Ft.chunkedBatch=mQ;Ft.clearDictionaryEntries=udt;Ft.clearObjects=Gdt;Ft.clearRules=Wdt;Ft.clearSynonyms=Ydt;Ft.copyIndex=dQ;Ft.copyRules=Adt;Ft.copySettings=fdt;Ft.copySynonyms=pdt;Ft.createBrowsablePromise=gQ;Ft.createMissingObjectIDError=wye;Ft.createObjectNotFoundError=Bye;Ft.createSearchClient=odt;Ft.createValidUntilNotFoundError=vye;Ft.customRequest=hdt;Ft.deleteApiKey=gdt;Ft.deleteBy=Kdt;Ft.deleteDictionaryEntries=ddt;Ft.deleteIndex=Vdt;Ft.deleteObject=Jdt;Ft.deleteObjects=Pye;Ft.deleteRule=zdt;Ft.deleteSynonym=Xdt;Ft.exists=Zdt;Ft.findAnswers=$dt;Ft.findObject=emt;Ft.generateSecuredApiKey=mdt;Ft.getApiKey=O2;Ft.getAppTask=Dye;Ft.getDictionarySettings=ydt;Ft.getLogs=Cdt;Ft.getObject=tmt;Ft.getObjectPosition=rmt;Ft.getObjects=nmt;Ft.getRule=imt;Ft.getSecuredApiKeyRemainingValidity=Edt;Ft.getSettings=xye;Ft.getSynonym=smt;Ft.getTask=bye;Ft.getTopUserIDs=Idt;Ft.getUserID=wdt;Ft.hasPendingMappings=Bdt;Ft.initIndex=M2;Ft.listApiKeys=vdt;Ft.listClusters=Ddt;Ft.listIndices=Sdt;Ft.listUserIDs=Pdt;Ft.moveIndex=xdt;Ft.multipleBatch=bdt;Ft.multipleGetObjects=Qdt;Ft.multipleQueries=kdt;Ft.multipleSearchForFacetValues=Fdt;Ft.partialUpdateObject=omt;Ft.partialUpdateObjects=Qye;Ft.removeUserID=Rdt;Ft.replaceAllObjects=amt;Ft.replaceAllRules=lmt;Ft.replaceAllSynonyms=cmt;Ft.replaceDictionaryEntries=Tdt;Ft.restoreApiKey=Ndt;Ft.saveDictionaryEntries=Ldt;Ft.saveObject=umt;Ft.saveObjects=qH;Ft.saveRule=Amt;Ft.saveRules=jH;Ft.saveSynonym=fmt;Ft.saveSynonyms=GH;Ft.search=kye;Ft.searchDictionaryEntries=Odt;Ft.searchForFacetValues=Fye;Ft.searchRules=Rye;Ft.searchSynonyms=Tye;Ft.searchUserIDs=Mdt;Ft.setDictionarySettings=Udt;Ft.setSettings=pmt;Ft.updateApiKey=_dt;Ft.waitAppTask=DE;Ft.waitTask=zi});var Oye=U((KWt,Lye)=>{Lye.exports=Nye()});var Mye=U(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});function mmt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var ymt={Debug:1,Info:2,Error:3};CQ.LogLevelEnum=ymt;CQ.createNullLogger=mmt});var _ye=U((JWt,Uye)=>{Uye.exports=Mye()});var Gye=U(WH=>{"use strict";Object.defineProperty(WH,"__esModule",{value:!0});var Hye=Ie("http"),qye=Ie("https"),Cmt=Ie("url"),jye={keepAlive:!0},Emt=new Hye.Agent(jye),Imt=new qye.Agent(jye);function wmt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||Emt,n=r||t||Imt;return{send(u){return new Promise(A=>{let p=Cmt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},w=(p.protocol==="https:"?qye:Hye).request(E,R=>{let L=[];R.on("data",_=>{L=L.concat(_)}),R.on("end",()=>{clearTimeout(b),clearTimeout(C),A({status:R.statusCode||0,content:Buffer.concat(L).toString(),isTimedOut:!1})})}),v=(R,L)=>setTimeout(()=>{w.abort(),A({status:0,content:L,isTimedOut:!0})},R*1e3),b=v(u.connectTimeout,"Connection timeout"),C;w.on("error",R=>{clearTimeout(b),clearTimeout(C),A({status:0,content:R.message,isTimedOut:!1})}),w.once("response",()=>{clearTimeout(b),C=v(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&w.write(u.data),w.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}WH.createNodeHttpRequester=wmt});var Yye=U((XWt,Wye)=>{Wye.exports=Gye()});var zye=U((ZWt,Jye)=>{"use strict";var Kye=Gme(),Bmt=Kme(),SE=mye(),KH=k2(),YH=Iye(),Lt=Oye(),vmt=_ye(),Dmt=Yye(),Smt=T2();function Vye(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:Dmt.createNodeHttpRequester(),logger:vmt.createNullLogger(),responsesCache:Kye.createNullCache(),requestsCache:Kye.createNullCache(),hostsCache:Bmt.createInMemoryCache(),userAgent:Smt.createUserAgent(KH.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>YH.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:YH.getPersonalizationStrategy,setPersonalizationStrategy:YH.setPersonalizationStrategy}});return Lt.createSearchClient({...a,methods:{search:Lt.multipleQueries,searchForFacetValues:Lt.multipleSearchForFacetValues,multipleBatch:Lt.multipleBatch,multipleGetObjects:Lt.multipleGetObjects,multipleQueries:Lt.multipleQueries,copyIndex:Lt.copyIndex,copySettings:Lt.copySettings,copyRules:Lt.copyRules,copySynonyms:Lt.copySynonyms,moveIndex:Lt.moveIndex,listIndices:Lt.listIndices,getLogs:Lt.getLogs,listClusters:Lt.listClusters,multipleSearchForFacetValues:Lt.multipleSearchForFacetValues,getApiKey:Lt.getApiKey,addApiKey:Lt.addApiKey,listApiKeys:Lt.listApiKeys,updateApiKey:Lt.updateApiKey,deleteApiKey:Lt.deleteApiKey,restoreApiKey:Lt.restoreApiKey,assignUserID:Lt.assignUserID,assignUserIDs:Lt.assignUserIDs,getUserID:Lt.getUserID,searchUserIDs:Lt.searchUserIDs,listUserIDs:Lt.listUserIDs,getTopUserIDs:Lt.getTopUserIDs,removeUserID:Lt.removeUserID,hasPendingMappings:Lt.hasPendingMappings,generateSecuredApiKey:Lt.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Lt.getSecuredApiKeyRemainingValidity,destroy:KH.destroy,clearDictionaryEntries:Lt.clearDictionaryEntries,deleteDictionaryEntries:Lt.deleteDictionaryEntries,getDictionarySettings:Lt.getDictionarySettings,getAppTask:Lt.getAppTask,replaceDictionaryEntries:Lt.replaceDictionaryEntries,saveDictionaryEntries:Lt.saveDictionaryEntries,searchDictionaryEntries:Lt.searchDictionaryEntries,setDictionarySettings:Lt.setDictionarySettings,waitAppTask:Lt.waitAppTask,customRequest:Lt.customRequest,initIndex:u=>A=>Lt.initIndex(u)(A,{methods:{batch:Lt.batch,delete:Lt.deleteIndex,findAnswers:Lt.findAnswers,getObject:Lt.getObject,getObjects:Lt.getObjects,saveObject:Lt.saveObject,saveObjects:Lt.saveObjects,search:Lt.search,searchForFacetValues:Lt.searchForFacetValues,waitTask:Lt.waitTask,setSettings:Lt.setSettings,getSettings:Lt.getSettings,partialUpdateObject:Lt.partialUpdateObject,partialUpdateObjects:Lt.partialUpdateObjects,deleteObject:Lt.deleteObject,deleteObjects:Lt.deleteObjects,deleteBy:Lt.deleteBy,clearObjects:Lt.clearObjects,browseObjects:Lt.browseObjects,getObjectPosition:Lt.getObjectPosition,findObject:Lt.findObject,exists:Lt.exists,saveSynonym:Lt.saveSynonym,saveSynonyms:Lt.saveSynonyms,getSynonym:Lt.getSynonym,searchSynonyms:Lt.searchSynonyms,browseSynonyms:Lt.browseSynonyms,deleteSynonym:Lt.deleteSynonym,clearSynonyms:Lt.clearSynonyms,replaceAllObjects:Lt.replaceAllObjects,replaceAllSynonyms:Lt.replaceAllSynonyms,searchRules:Lt.searchRules,getRule:Lt.getRule,deleteRule:Lt.deleteRule,saveRule:Lt.saveRule,saveRules:Lt.saveRules,replaceAllRules:Lt.replaceAllRules,browseRules:Lt.browseRules,clearRules:Lt.clearRules}}),initAnalytics:()=>u=>SE.createAnalyticsClient({...o,...u,methods:{addABTest:SE.addABTest,getABTest:SE.getABTest,getABTests:SE.getABTests,stopABTest:SE.stopABTest,deleteABTest:SE.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}Vye.version=KH.version;Jye.exports=Vye});var JH=U(($Wt,VH)=>{var Xye=zye();VH.exports=Xye;VH.exports.default=Xye});var ZH=U((tYt,eCe)=>{"use strict";var $ye=Object.getOwnPropertySymbols,xmt=Object.prototype.hasOwnProperty,bmt=Object.prototype.propertyIsEnumerable;function Qmt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function kmt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}eCe.exports=kmt()?Object.assign:function(t,e){for(var r,o=Qmt(t),a,n=1;n<arguments.length;n++){r=Object(arguments[n]);for(var u in r)xmt.call(r,u)&&(o[u]=r[u]);if($ye){a=$ye(r);for(var A=0;A<a.length;A++)bmt.call(r,a[A])&&(o[a[A]]=r[a[A]])}}return o}});var fCe=U(Qn=>{"use strict";var n6=ZH(),nu=typeof Symbol=="function"&&Symbol.for,U2=nu?Symbol.for("react.element"):60103,Fmt=nu?Symbol.for("react.portal"):60106,Rmt=nu?Symbol.for("react.fragment"):60107,Tmt=nu?Symbol.for("react.strict_mode"):60108,Nmt=nu?Symbol.for("react.profiler"):60114,Lmt=nu?Symbol.for("react.provider"):60109,Omt=nu?Symbol.for("react.context"):60110,Mmt=nu?Symbol.for("react.forward_ref"):60112,Umt=nu?Symbol.for("react.suspense"):60113,_mt=nu?Symbol.for("react.memo"):60115,Hmt=nu?Symbol.for("react.lazy"):60116,tCe=typeof Symbol=="function"&&Symbol.iterator;function _2(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)e+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+t+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var rCe={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},nCe={};function PE(t,e,r){this.props=t,this.context=e,this.refs=nCe,this.updater=r||rCe}PE.prototype.isReactComponent={};PE.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error(_2(85));this.updater.enqueueSetState(this,t,e,"setState")};PE.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function iCe(){}iCe.prototype=PE.prototype;function i6(t,e,r){this.props=t,this.context=e,this.refs=nCe,this.updater=r||rCe}var s6=i6.prototype=new iCe;s6.constructor=i6;n6(s6,PE.prototype);s6.isPureReactComponent=!0;var o6={current:null},sCe=Object.prototype.hasOwnProperty,oCe={key:!0,ref:!0,__self:!0,__source:!0};function aCe(t,e,r){var o,a={},n=null,u=null;if(e!=null)for(o in e.ref!==void 0&&(u=e.ref),e.key!==void 0&&(n=""+e.key),e)sCe.call(e,o)&&!oCe.hasOwnProperty(o)&&(a[o]=e[o]);var A=arguments.length-2;if(A===1)a.children=r;else if(1<A){for(var p=Array(A),h=0;h<A;h++)p[h]=arguments[h+2];a.children=p}if(t&&t.defaultProps)for(o in A=t.defaultProps,A)a[o]===void 0&&(a[o]=A[o]);return{$$typeof:U2,type:t,key:n,ref:u,props:a,_owner:o6.current}}function qmt(t,e){return{$$typeof:U2,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function a6(t){return typeof t=="object"&&t!==null&&t.$$typeof===U2}function jmt(t){var e={"=":"=0",":":"=2"};return"$"+(""+t).replace(/[=:]/g,function(r){return e[r]})}var lCe=/\/+/g,EQ=[];function cCe(t,e,r,o){if(EQ.length){var a=EQ.pop();return a.result=t,a.keyPrefix=e,a.func=r,a.context=o,a.count=0,a}return{result:t,keyPrefix:e,func:r,context:o,count:0}}function uCe(t){t.result=null,t.keyPrefix=null,t.func=null,t.context=null,t.count=0,10>EQ.length&&EQ.push(t)}function e6(t,e,r,o){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var n=!1;if(t===null)n=!0;else switch(a){case"string":case"number":n=!0;break;case"object":switch(t.$$typeof){case U2:case Fmt:n=!0}}if(n)return r(o,t,e===""?"."+$H(t,0):e),1;if(n=0,e=e===""?".":e+":",Array.isArray(t))for(var u=0;u<t.length;u++){a=t[u];var A=e+$H(a,u);n+=e6(a,A,r,o)}else if(t===null||typeof t!="object"?A=null:(A=tCe&&t[tCe]||t["@@iterator"],A=typeof A=="function"?A:null),typeof A=="function")for(t=A.call(t),u=0;!(a=t.next()).done;)a=a.value,A=e+$H(a,u++),n+=e6(a,A,r,o);else if(a==="object")throw r=""+t,Error(_2(31,r==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":r,""));return n}function t6(t,e,r){return t==null?0:e6(t,"",e,r)}function $H(t,e){return typeof t=="object"&&t!==null&&t.key!=null?jmt(t.key):e.toString(36)}function Gmt(t,e){t.func.call(t.context,e,t.count++)}function Wmt(t,e,r){var o=t.result,a=t.keyPrefix;t=t.func.call(t.context,e,t.count++),Array.isArray(t)?r6(t,o,r,function(n){return n}):t!=null&&(a6(t)&&(t=qmt(t,a+(!t.key||e&&e.key===t.key?"":(""+t.key).replace(lCe,"$&/")+"/")+r)),o.push(t))}function r6(t,e,r,o,a){var n="";r!=null&&(n=(""+r).replace(lCe,"$&/")+"/"),e=cCe(e,n,o,a),t6(t,Wmt,e),uCe(e)}var ACe={current:null};function zf(){var t=ACe.current;if(t===null)throw Error(_2(321));return t}var Ymt={ReactCurrentDispatcher:ACe,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:o6,IsSomeRendererActing:{current:!1},assign:n6};Qn.Children={map:function(t,e,r){if(t==null)return t;var o=[];return r6(t,o,null,e,r),o},forEach:function(t,e,r){if(t==null)return t;e=cCe(null,null,e,r),t6(t,Gmt,e),uCe(e)},count:function(t){return t6(t,function(){return null},null)},toArray:function(t){var e=[];return r6(t,e,null,function(r){return r}),e},only:function(t){if(!a6(t))throw Error(_2(143));return t}};Qn.Component=PE;Qn.Fragment=Rmt;Qn.Profiler=Nmt;Qn.PureComponent=i6;Qn.StrictMode=Tmt;Qn.Suspense=Umt;Qn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Ymt;Qn.cloneElement=function(t,e,r){if(t==null)throw Error(_2(267,t));var o=n6({},t.props),a=t.key,n=t.ref,u=t._owner;if(e!=null){if(e.ref!==void 0&&(n=e.ref,u=o6.current),e.key!==void 0&&(a=""+e.key),t.type&&t.type.defaultProps)var A=t.type.defaultProps;for(p in e)sCe.call(e,p)&&!oCe.hasOwnProperty(p)&&(o[p]=e[p]===void 0&&A!==void 0?A[p]:e[p])}var p=arguments.length-2;if(p===1)o.children=r;else if(1<p){A=Array(p);for(var h=0;h<p;h++)A[h]=arguments[h+2];o.children=A}return{$$typeof:U2,type:t.type,key:a,ref:n,props:o,_owner:u}};Qn.createContext=function(t,e){return e===void 0&&(e=null),t={$$typeof:Omt,_calculateChangedBits:e,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider={$$typeof:Lmt,_context:t},t.Consumer=t};Qn.createElement=aCe;Qn.createFactory=function(t){var e=aCe.bind(null,t);return e.type=t,e};Qn.createRef=function(){return{current:null}};Qn.forwardRef=function(t){return{$$typeof:Mmt,render:t}};Qn.isValidElement=a6;Qn.lazy=function(t){return{$$typeof:Hmt,_ctor:t,_status:-1,_result:null}};Qn.memo=function(t,e){return{$$typeof:_mt,type:t,compare:e===void 0?null:e}};Qn.useCallback=function(t,e){return zf().useCallback(t,e)};Qn.useContext=function(t,e){return zf().useContext(t,e)};Qn.useDebugValue=function(){};Qn.useEffect=function(t,e){return zf().useEffect(t,e)};Qn.useImperativeHandle=function(t,e,r){return zf().useImperativeHandle(t,e,r)};Qn.useLayoutEffect=function(t,e){return zf().useLayoutEffect(t,e)};Qn.useMemo=function(t,e){return zf().useMemo(t,e)};Qn.useReducer=function(t,e,r){return zf().useReducer(t,e,r)};Qn.useRef=function(t){return zf().useRef(t)};Qn.useState=function(t){return zf().useState(t)};Qn.version="16.13.1"});var en=U((nYt,pCe)=>{"use strict";pCe.exports=fCe()});var c6=U((iYt,l6)=>{"use strict";var on=l6.exports;l6.exports.default=on;var kn="\x1B[",H2="\x1B]",xE="\x07",IQ=";",hCe=process.env.TERM_PROGRAM==="Apple_Terminal";on.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?kn+(t+1)+"G":kn+(e+1)+";"+(t+1)+"H"};on.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=kn+-t+"D":t>0&&(r+=kn+t+"C"),e<0?r+=kn+-e+"A":e>0&&(r+=kn+e+"B"),r};on.cursorUp=(t=1)=>kn+t+"A";on.cursorDown=(t=1)=>kn+t+"B";on.cursorForward=(t=1)=>kn+t+"C";on.cursorBackward=(t=1)=>kn+t+"D";on.cursorLeft=kn+"G";on.cursorSavePosition=hCe?"\x1B7":kn+"s";on.cursorRestorePosition=hCe?"\x1B8":kn+"u";on.cursorGetPosition=kn+"6n";on.cursorNextLine=kn+"E";on.cursorPrevLine=kn+"F";on.cursorHide=kn+"?25l";on.cursorShow=kn+"?25h";on.eraseLines=t=>{let e="";for(let r=0;r<t;r++)e+=on.eraseLine+(r<t-1?on.cursorUp():"");return t&&(e+=on.cursorLeft),e};on.eraseEndLine=kn+"K";on.eraseStartLine=kn+"1K";on.eraseLine=kn+"2K";on.eraseDown=kn+"J";on.eraseUp=kn+"1J";on.eraseScreen=kn+"2J";on.scrollUp=kn+"S";on.scrollDown=kn+"T";on.clearScreen="\x1Bc";on.clearTerminal=process.platform==="win32"?`${on.eraseScreen}${kn}0f`:`${on.eraseScreen}${kn}3J${kn}H`;on.beep=xE;on.link=(t,e)=>[H2,"8",IQ,IQ,e,xE,t,H2,"8",IQ,IQ,xE].join("");on.image=(t,e={})=>{let r=`${H2}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+xE};on.iTerm={setCwd:(t=process.cwd())=>`${H2}50;CurrentDir=${t}${xE}`,annotation:(t,e={})=>{let r=`${H2}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+xE}}});var dCe=U((sYt,u6)=>{"use strict";var gCe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};u6.exports=gCe;u6.exports.default=gCe});var yCe=U((oYt,BQ)=>{"use strict";var Kmt=dCe(),wQ=new WeakMap,mCe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"<anonymous>",n=function(...u){if(wQ.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return Kmt(n,t),wQ.set(n,o),n};BQ.exports=mCe;BQ.exports.default=mCe;BQ.exports.callCount=t=>{if(!wQ.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return wQ.get(t)}});var CCe=U((aYt,vQ)=>{vQ.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&vQ.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&vQ.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var p6=U((lYt,kE)=>{var gi=global.process,om=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};om(gi)?(ECe=Ie("assert"),bE=CCe(),ICe=/^win/i.test(gi.platform),q2=Ie("events"),typeof q2!="function"&&(q2=q2.EventEmitter),gi.__signal_exit_emitter__?xs=gi.__signal_exit_emitter__:(xs=gi.__signal_exit_emitter__=new q2,xs.count=0,xs.emitted={}),xs.infinite||(xs.setMaxListeners(1/0),xs.infinite=!0),kE.exports=function(t,e){if(!om(global.process))return function(){};ECe.equal(typeof t,"function","a callback must be provided for exit handler"),QE===!1&&A6();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){xs.removeListener(r,t),xs.listeners("exit").length===0&&xs.listeners("afterexit").length===0&&DQ()};return xs.on(r,t),o},DQ=function(){!QE||!om(global.process)||(QE=!1,bE.forEach(function(e){try{gi.removeListener(e,SQ[e])}catch{}}),gi.emit=PQ,gi.reallyExit=f6,xs.count-=1)},kE.exports.unload=DQ,am=function(e,r,o){xs.emitted[e]||(xs.emitted[e]=!0,xs.emit(e,r,o))},SQ={},bE.forEach(function(t){SQ[t]=function(){if(!!om(global.process)){var r=gi.listeners(t);r.length===xs.count&&(DQ(),am("exit",null,t),am("afterexit",null,t),ICe&&t==="SIGHUP"&&(t="SIGINT"),gi.kill(gi.pid,t))}}}),kE.exports.signals=function(){return bE},QE=!1,A6=function(){QE||!om(global.process)||(QE=!0,xs.count+=1,bE=bE.filter(function(e){try{return gi.on(e,SQ[e]),!0}catch{return!1}}),gi.emit=BCe,gi.reallyExit=wCe)},kE.exports.load=A6,f6=gi.reallyExit,wCe=function(e){!om(global.process)||(gi.exitCode=e||0,am("exit",gi.exitCode,null),am("afterexit",gi.exitCode,null),f6.call(gi,gi.exitCode))},PQ=gi.emit,BCe=function(e,r){if(e==="exit"&&om(global.process)){r!==void 0&&(gi.exitCode=r);var o=PQ.apply(this,arguments);return am("exit",gi.exitCode,null),am("afterexit",gi.exitCode,null),o}else return PQ.apply(this,arguments)}):kE.exports=function(){return function(){}};var ECe,bE,ICe,q2,xs,DQ,am,SQ,QE,A6,f6,wCe,PQ,BCe});var DCe=U((cYt,vCe)=>{"use strict";var Vmt=yCe(),Jmt=p6();vCe.exports=Vmt(()=>{Jmt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var h6=U(FE=>{"use strict";var zmt=DCe(),xQ=!1;FE.show=(t=process.stderr)=>{!t.isTTY||(xQ=!1,t.write("\x1B[?25h"))};FE.hide=(t=process.stderr)=>{!t.isTTY||(zmt(),xQ=!0,t.write("\x1B[?25l"))};FE.toggle=(t,e)=>{t!==void 0&&(xQ=t),xQ?FE.show(e):FE.hide(e)}});var bCe=U(j2=>{"use strict";var xCe=j2&&j2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(j2,"__esModule",{value:!0});var SCe=xCe(c6()),PCe=xCe(h6()),Xmt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&(PCe.default.hide(),a=!0);let A=u+` 279${this.getDeclarations()}`}createSession(){return new IH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=u2([A,Y.stringifyIdent(n)]),h=We.getMapWithDefault(o,a.cwd);We.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=u2(n),p=We.getMapWithDefault(o,a.cwd);We.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=J.resolve(this.project.cwd,nm(o.links.WorkspaceCwd)),n=nm(o.links.DependencyIdent),u=nm(o.links.DependencyRange),A=nm(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=Y.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return We.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>Y.stringifyIdent(o.locator),({dependencyIdent:o})=>Y.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=J.resolve(this.project.cwd,nm(o.links.WorkspaceCwd)),n=nm(o.links.FieldPath),u=mgt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return We.sortMap(r,[({workspace:o})=>Y.stringifyIdent(o.locator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=nm(u));yield a}}}});var Gme=U(mQ=>{"use strict";Object.defineProperty(mQ,"__esModule",{value:!0});function F2(t){let e=[...t.caches],r=e.shift();return r===void 0?jme():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>F2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>F2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>F2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>F2({caches:e}).clear())}}}function jme(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}mQ.createFallbackableCache=F2;mQ.createNullCache=jme});var Yme=U((_Wt,Wme)=>{Wme.exports=Gme()});var Kme=U(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});function Lgt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}NH.createInMemoryCache=Lgt});var Jme=U((qWt,Vme)=>{Vme.exports=Kme()});var Xme=U(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});function Ogt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===LH.WithinHeaders?o:{}},queryParameters(){return t===LH.WithinQueryParameters?o:{}}}}function Mgt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function zme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return zme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Ugt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function _gt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function Hgt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var qgt="4.14.2",jgt=t=>()=>t.transporter.requester.destroy(),LH={WithinQueryParameters:0,WithinHeaders:1};nu.AuthMode=LH;nu.addMethods=_gt;nu.createAuth=Ogt;nu.createRetryablePromise=Mgt;nu.createWaitablePromise=zme;nu.destroy=jgt;nu.encode=Hgt;nu.shuffle=Ugt;nu.version=qgt});var R2=U((GWt,Zme)=>{Zme.exports=Xme()});var $me=U(OH=>{"use strict";Object.defineProperty(OH,"__esModule",{value:!0});var Ggt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};OH.MethodEnum=Ggt});var T2=U((YWt,eye)=>{eye.exports=$me()});var gye=U(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});var rye=T2();function MH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var N2={Read:1,Write:2,Any:3},BC={Up:1,Down:2,Timeouted:3},nye=2*60*1e3;function _H(t,e=BC.Up){return{...t,status:e,lastUpdate:Date.now()}}function iye(t){return t.status===BC.Up||Date.now()-t.lastUpdate>nye}function sye(t){return t.status===BC.Timeouted&&Date.now()-t.lastUpdate<=nye}function HH(t){return typeof t=="string"?{protocol:"https",url:t,accept:N2.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||N2.Any}}function Wgt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(_H(r))))).then(r=>{let o=r.filter(A=>iye(A)),a=r.filter(A=>sye(A)),n=[...o,...a],u=n.length>0?n.map(A=>HH(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Ygt=({isTimedOut:t,status:e})=>!t&&~~e===0,Kgt=t=>{let e=t.status;return t.isTimedOut||Ygt(t)||~~(e/100)!==2&&~~(e/100)!==4},Vgt=({status:t})=>~~(t/100)===2,Jgt=(t,e)=>Kgt(t)?e.onRetry(t):Vgt(t)?e.onSuccess(t):e.onFail(t);function tye(t,e,r,o){let a=[],n=uye(r,o),u=Aye(t,o),A=r.method,p=r.method!==rye.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},C=0,w=(v,b)=>{let E=v.pop();if(E===void 0)throw hye(UH(a));let R={data:n,headers:u,method:A,url:lye(E,r.path,h),connectTimeout:b(C,t.timeouts.connect),responseTimeout:b(C,o.timeout)},L=V=>{let re={request:R,response:V,host:E,triesLeft:v.length};return a.push(re),re},_={onSuccess:V=>oye(V),onRetry(V){let re=L(V);return V.isTimedOut&&C++,Promise.all([t.logger.info("Retryable failure",qH(re)),t.hostsCache.set(E,_H(E,V.isTimedOut?BC.Timeouted:BC.Down))]).then(()=>w(v,b))},onFail(V){throw L(V),aye(V,UH(a))}};return t.requester.send(R).then(V=>Jgt(V,_))};return Wgt(t.hostsCache,e).then(v=>w([...v.statelessHosts].reverse(),v.getTimeout))}function zgt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:C}=t,w={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:C,queryParameters:h,hosts:p.map(v=>HH(v)),read(v,b){let E=MH(b,w.timeouts.read),R=()=>tye(w,w.hosts.filter(V=>(V.accept&N2.Read)!==0),v,E);if((E.cacheable!==void 0?E.cacheable:v.cacheable)!==!0)return R();let _={request:v,mappedRequestOptions:E,transporter:{queryParameters:w.queryParameters,headers:w.headers}};return w.responsesCache.get(_,()=>w.requestsCache.get(_,()=>w.requestsCache.set(_,R()).then(V=>Promise.all([w.requestsCache.delete(_),V]),V=>Promise.all([w.requestsCache.delete(_),Promise.reject(V)])).then(([V,re])=>re)),{miss:V=>w.responsesCache.set(_,V)})},write(v,b){return tye(w,w.hosts.filter(E=>(E.accept&N2.Write)!==0),v,MH(b,w.timeouts.write))}};return w}function Xgt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function oye(t){try{return JSON.parse(t.content)}catch(e){throw pye(e.message,t)}}function aye({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return fye(o,e,r)}function Zgt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function lye(t,e,r){let o=cye(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function cye(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Zgt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function uye(t,e){if(t.method===rye.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function Aye(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function UH(t){return t.map(e=>qH(e))}function qH(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function fye(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function pye(t,e){return{name:"DeserializationError",message:t,response:e}}function hye(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}bi.CallEnum=N2;bi.HostStatusEnum=BC;bi.createApiError=fye;bi.createDeserializationError=pye;bi.createMappedRequestOptions=MH;bi.createRetryError=hye;bi.createStatefulHost=_H;bi.createStatelessHost=HH;bi.createTransporter=zgt;bi.createUserAgent=Xgt;bi.deserializeFailure=aye;bi.deserializeSuccess=oye;bi.isStatefulHostTimeouted=sye;bi.isStatefulHostUp=iye;bi.serializeData=uye;bi.serializeHeaders=Aye;bi.serializeQueryParameters=cye;bi.serializeUrl=lye;bi.stackFrameWithoutCredentials=qH;bi.stackTraceWithoutCredentials=UH});var L2=U((VWt,dye)=>{dye.exports=gye()});var mye=U(gh=>{"use strict";Object.defineProperty(gh,"__esModule",{value:!0});var vC=R2(),$gt=L2(),O2=T2(),edt=t=>{let e=t.region||"us",r=vC.createAuth(vC.AuthMode.WithinHeaders,t.appId,t.apiKey),o=$gt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return vC.addMethods({appId:a,transporter:o},t.methods)},tdt=t=>(e,r)=>t.transporter.write({method:O2.MethodEnum.Post,path:"2/abtests",data:e},r),rdt=t=>(e,r)=>t.transporter.write({method:O2.MethodEnum.Delete,path:vC.encode("2/abtests/%s",e)},r),ndt=t=>(e,r)=>t.transporter.read({method:O2.MethodEnum.Get,path:vC.encode("2/abtests/%s",e)},r),idt=t=>e=>t.transporter.read({method:O2.MethodEnum.Get,path:"2/abtests"},e),sdt=t=>(e,r)=>t.transporter.write({method:O2.MethodEnum.Post,path:vC.encode("2/abtests/%s/stop",e)},r);gh.addABTest=tdt;gh.createAnalyticsClient=edt;gh.deleteABTest=rdt;gh.getABTest=ndt;gh.getABTests=idt;gh.stopABTest=sdt});var Eye=U((zWt,yye)=>{yye.exports=mye()});var Iye=U(M2=>{"use strict";Object.defineProperty(M2,"__esModule",{value:!0});var jH=R2(),odt=L2(),Cye=T2(),adt=t=>{let e=t.region||"us",r=jH.createAuth(jH.AuthMode.WithinHeaders,t.appId,t.apiKey),o=odt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return jH.addMethods({appId:t.appId,transporter:o},t.methods)},ldt=t=>e=>t.transporter.read({method:Cye.MethodEnum.Get,path:"1/strategies/personalization"},e),cdt=t=>(e,r)=>t.transporter.write({method:Cye.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);M2.createPersonalizationClient=adt;M2.getPersonalizationStrategy=ldt;M2.setPersonalizationStrategy=cdt});var Bye=U((ZWt,wye)=>{wye.exports=Iye()});var Oye=U(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Ht=R2(),La=L2(),mr=T2(),udt=Ie("crypto");function yQ(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var Adt=t=>{let e=t.appId,r=Ht.createAuth(t.authMode!==void 0?t.authMode:Ht.AuthMode.WithinHeaders,e,t.apiKey),o=La.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:La.CallEnum.Read},{url:`${e}.algolia.net`,accept:La.CallEnum.Write}].concat(Ht.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Ht.addMethods(a,t.methods)};function vye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function Dye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function Sye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var fdt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Ht.createRetryablePromise(h=>U2(t)(A.key,p).catch(C=>{if(C.status!==404)throw C;return h()}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:"1/keys",data:n},a),u)},pdt=t=>(e,r,o)=>{let a=La.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:mr.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},hdt=t=>(e,r,o)=>t.transporter.write({method:mr.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),gdt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>DC(t)(o.taskID,a)),EQ=t=>(e,r,o)=>{let a=(n,u)=>_2(t)(e,{methods:{waitTask:zi}}).waitTask(n.taskID,u);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},ddt=t=>(e,r,o)=>EQ(t)(e,r,{...o,scope:[IQ.Rules]}),mdt=t=>(e,r,o)=>EQ(t)(e,r,{...o,scope:[IQ.Settings]}),ydt=t=>(e,r,o)=>EQ(t)(e,r,{...o,scope:[IQ.Synonyms]}),Edt=t=>(e,r)=>e.method===mr.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),Cdt=t=>(e,r)=>{let o=(a,n)=>Ht.createRetryablePromise(u=>U2(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/keys/%s",e)},r),o)},Idt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>DC(t)(n.taskID,u))},wdt=()=>(t,e)=>{let r=La.serializeQueryParameters(e),o=udt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},U2=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/keys/%s",e)},r),Pye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/task/%s",e.toString())},r),Bdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),vdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/logs"},e),Ddt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw Sye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},Sdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping/top"},e),Pdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/clusters/mapping/%s",e)},r),xdt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},_2=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Ht.addMethods(o,r.methods)},bdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/keys"},e),Qdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters"},e),kdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/indexes"},e),Fdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping"},e),Rdt=t=>(e,r,o)=>{let a=(n,u)=>_2(t)(e,{methods:{waitTask:zi}}).waitTask(n.taskID,u);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},Tdt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>_2(t)(u,{methods:{waitTask:zi}}).waitTask(a.taskID[u],n)));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},Ndt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),Ldt=t=>(e,r)=>{let o=e.map(a=>({...a,params:La.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},Odt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return _2(t)(o.indexName,{methods:{searchForFacetValues:Tye}}).searchForFacetValues(a,n,{...r,...u})})),Mdt=t=>(e,r)=>{let o=La.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:mr.MethodEnum.Delete,path:"1/clusters/mapping"},o)},Udt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>DC(t)(n.taskID,u))},_dt=t=>(e,r)=>{let o=(a,n)=>Ht.createRetryablePromise(u=>U2(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/keys/%s/restore",e)},r),o)},Hdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>DC(t)(n.taskID,u))},qdt=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),jdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),Gdt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>DC(t)(o.taskID,a)),Wdt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=C=>Object.keys(o).filter(w=>A.indexOf(w)!==-1).every(w=>C[w]===o[w]),h=(C,w)=>Ht.createRetryablePromise(v=>U2(t)(e,w).then(b=>p(b)?Promise.resolve():v()));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:Ht.encode("1/keys/%s",e),data:u},n),h)},DC=t=>(e,r)=>Ht.createRetryablePromise(o=>Pye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),xye=t=>(e,r)=>{let o=(a,n)=>zi(t)(a.taskID,n);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Ydt=t=>e=>yQ({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),Kdt=t=>e=>{let r={hitsPerPage:1e3,...e};return yQ({shouldStop:o=>o.hits.length<r.hitsPerPage,...r,request(o){return Nye(t)("",{...r,...o}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Vdt=t=>e=>{let r={hitsPerPage:1e3,...e};return yQ({shouldStop:o=>o.hits.length<r.hitsPerPage,...r,request(o){return Lye(t)("",{...r,...o}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},CQ=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],C;for(C=p;C<e.length&&(h.push(e[C]),h.length!==(a||1e3));C++);return h.length===0?Promise.resolve(u):xye(t)(h.map(w=>({action:r,body:w})),n).then(w=>(u.objectIDs=u.objectIDs.concat(w.objectIDs),u.taskIDs.push(w.taskID),C++,A(C)))};return Ht.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(C=>zi(t)(C,h))))},Jdt=t=>e=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>zi(t)(r.taskID,o)),zdt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=La.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>zi(t)(n.taskID,u))},Xdt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=La.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>zi(t)(n.taskID,u))},Zdt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>zi(t)(o.taskID,a)),$dt=t=>e=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s",t.indexName)},e),(r,o)=>zi(t)(r.taskID,o)),emt=t=>(e,r)=>Ht.createWaitablePromise(bye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),bye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return CQ(t)(o,om.DeleteObject,r)},tmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=La.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>zi(t)(u.taskID,A))},rmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=La.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>zi(t)(u.taskID,A))},nmt=t=>e=>Qye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),imt=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),smt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>Rye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,C]of Object.entries(p.hits))if(e(C))return{object:C,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw Dye();return A()});return A()},omt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/%s",t.indexName,e)},r),amt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},lmt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},cmt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),Qye=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),umt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),kye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),Amt=t=>(e,r)=>Ht.createWaitablePromise(Fye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),Fye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?om.PartialUpdateObject:om.PartialUpdateObjectNoCreate;return CQ(t)(e,n,a)},fmt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(E,R,L,_)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",E),data:{operation:L,destination:R}},_),(V,re)=>zi(t)(V.taskID,re)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,C=GH({appId:t.appId,transporter:t.transporter,indexName:h}),w=[],v=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});w.push(v);let b=(o?v.wait(u):v).then(()=>{let E=C(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return w.push(E),o?E.wait(u):E}).then(()=>{let E=A(h,t.indexName,"move",u);return w.push(E),o?E.wait(u):E}).then(()=>Promise.all(w)).then(([E,R,L])=>({objectIDs:R.objectIDs,taskIDs:[E.taskID,...R.taskIDs,L.taskID]}));return Ht.createWaitablePromise(b,(E,R)=>Promise.all(w.map(L=>L.wait(R))))},pmt=t=>(e,r)=>WH(t)(e,{...r,clearExistingRules:!0}),hmt=t=>(e,r)=>YH(t)(e,{...r,clearExistingSynonyms:!0}),gmt=t=>(e,r)=>Ht.createWaitablePromise(GH(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),GH=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?om.AddObject:om.UpdateObject;if(n===om.UpdateObject){for(let u of e)if(u.objectID===void 0)return Ht.createWaitablePromise(Promise.reject(vye()))}return CQ(t)(e,n,a)},dmt=t=>(e,r)=>WH(t)([e],r),WH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=La.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>zi(t)(A.taskID,p))},mmt=t=>(e,r)=>YH(t)([e],r),YH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=La.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>zi(t)(p.taskID,h))},Rye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),Tye=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),Nye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),Lye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),ymt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=La.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:Ht.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>zi(t)(u.taskID,A))},zi=t=>(e,r)=>Ht.createRetryablePromise(o=>kye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),Emt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},om={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},IQ={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Cmt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},Imt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=Emt;Ft.BatchActionEnum=om;Ft.ScopeEnum=IQ;Ft.StrategyEnum=Cmt;Ft.SynonymEnum=Imt;Ft.addApiKey=fdt;Ft.assignUserID=pdt;Ft.assignUserIDs=hdt;Ft.batch=xye;Ft.browseObjects=Ydt;Ft.browseRules=Kdt;Ft.browseSynonyms=Vdt;Ft.chunkedBatch=CQ;Ft.clearDictionaryEntries=gdt;Ft.clearObjects=Jdt;Ft.clearRules=zdt;Ft.clearSynonyms=Xdt;Ft.copyIndex=EQ;Ft.copyRules=ddt;Ft.copySettings=mdt;Ft.copySynonyms=ydt;Ft.createBrowsablePromise=yQ;Ft.createMissingObjectIDError=vye;Ft.createObjectNotFoundError=Dye;Ft.createSearchClient=Adt;Ft.createValidUntilNotFoundError=Sye;Ft.customRequest=Edt;Ft.deleteApiKey=Cdt;Ft.deleteBy=Zdt;Ft.deleteDictionaryEntries=Idt;Ft.deleteIndex=$dt;Ft.deleteObject=emt;Ft.deleteObjects=bye;Ft.deleteRule=tmt;Ft.deleteSynonym=rmt;Ft.exists=nmt;Ft.findAnswers=imt;Ft.findObject=smt;Ft.generateSecuredApiKey=wdt;Ft.getApiKey=U2;Ft.getAppTask=Pye;Ft.getDictionarySettings=Bdt;Ft.getLogs=vdt;Ft.getObject=omt;Ft.getObjectPosition=amt;Ft.getObjects=lmt;Ft.getRule=cmt;Ft.getSecuredApiKeyRemainingValidity=Ddt;Ft.getSettings=Qye;Ft.getSynonym=umt;Ft.getTask=kye;Ft.getTopUserIDs=Sdt;Ft.getUserID=Pdt;Ft.hasPendingMappings=xdt;Ft.initIndex=_2;Ft.listApiKeys=bdt;Ft.listClusters=Qdt;Ft.listIndices=kdt;Ft.listUserIDs=Fdt;Ft.moveIndex=Rdt;Ft.multipleBatch=Tdt;Ft.multipleGetObjects=Ndt;Ft.multipleQueries=Ldt;Ft.multipleSearchForFacetValues=Odt;Ft.partialUpdateObject=Amt;Ft.partialUpdateObjects=Fye;Ft.removeUserID=Mdt;Ft.replaceAllObjects=fmt;Ft.replaceAllRules=pmt;Ft.replaceAllSynonyms=hmt;Ft.replaceDictionaryEntries=Udt;Ft.restoreApiKey=_dt;Ft.saveDictionaryEntries=Hdt;Ft.saveObject=gmt;Ft.saveObjects=GH;Ft.saveRule=dmt;Ft.saveRules=WH;Ft.saveSynonym=mmt;Ft.saveSynonyms=YH;Ft.search=Rye;Ft.searchDictionaryEntries=qdt;Ft.searchForFacetValues=Tye;Ft.searchRules=Nye;Ft.searchSynonyms=Lye;Ft.searchUserIDs=jdt;Ft.setDictionarySettings=Gdt;Ft.setSettings=ymt;Ft.updateApiKey=Wdt;Ft.waitAppTask=DC;Ft.waitTask=zi});var Uye=U((eYt,Mye)=>{Mye.exports=Oye()});var _ye=U(wQ=>{"use strict";Object.defineProperty(wQ,"__esModule",{value:!0});function wmt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var Bmt={Debug:1,Info:2,Error:3};wQ.LogLevelEnum=Bmt;wQ.createNullLogger=wmt});var qye=U((rYt,Hye)=>{Hye.exports=_ye()});var Yye=U(KH=>{"use strict";Object.defineProperty(KH,"__esModule",{value:!0});var jye=Ie("http"),Gye=Ie("https"),vmt=Ie("url"),Wye={keepAlive:!0},Dmt=new jye.Agent(Wye),Smt=new Gye.Agent(Wye);function Pmt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||Dmt,n=r||t||Smt;return{send(u){return new Promise(A=>{let p=vmt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,C={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},w=(p.protocol==="https:"?Gye:jye).request(C,R=>{let L=[];R.on("data",_=>{L=L.concat(_)}),R.on("end",()=>{clearTimeout(b),clearTimeout(E),A({status:R.statusCode||0,content:Buffer.concat(L).toString(),isTimedOut:!1})})}),v=(R,L)=>setTimeout(()=>{w.abort(),A({status:0,content:L,isTimedOut:!0})},R*1e3),b=v(u.connectTimeout,"Connection timeout"),E;w.on("error",R=>{clearTimeout(b),clearTimeout(E),A({status:0,content:R.message,isTimedOut:!1})}),w.once("response",()=>{clearTimeout(b),E=v(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&w.write(u.data),w.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}KH.createNodeHttpRequester=Pmt});var Vye=U((iYt,Kye)=>{Kye.exports=Yye()});var Zye=U((sYt,Xye)=>{"use strict";var Jye=Yme(),xmt=Jme(),SC=Eye(),JH=R2(),VH=Bye(),Lt=Uye(),bmt=qye(),Qmt=Vye(),kmt=L2();function zye(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:Qmt.createNodeHttpRequester(),logger:bmt.createNullLogger(),responsesCache:Jye.createNullCache(),requestsCache:Jye.createNullCache(),hostsCache:xmt.createInMemoryCache(),userAgent:kmt.createUserAgent(JH.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>VH.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:VH.getPersonalizationStrategy,setPersonalizationStrategy:VH.setPersonalizationStrategy}});return Lt.createSearchClient({...a,methods:{search:Lt.multipleQueries,searchForFacetValues:Lt.multipleSearchForFacetValues,multipleBatch:Lt.multipleBatch,multipleGetObjects:Lt.multipleGetObjects,multipleQueries:Lt.multipleQueries,copyIndex:Lt.copyIndex,copySettings:Lt.copySettings,copyRules:Lt.copyRules,copySynonyms:Lt.copySynonyms,moveIndex:Lt.moveIndex,listIndices:Lt.listIndices,getLogs:Lt.getLogs,listClusters:Lt.listClusters,multipleSearchForFacetValues:Lt.multipleSearchForFacetValues,getApiKey:Lt.getApiKey,addApiKey:Lt.addApiKey,listApiKeys:Lt.listApiKeys,updateApiKey:Lt.updateApiKey,deleteApiKey:Lt.deleteApiKey,restoreApiKey:Lt.restoreApiKey,assignUserID:Lt.assignUserID,assignUserIDs:Lt.assignUserIDs,getUserID:Lt.getUserID,searchUserIDs:Lt.searchUserIDs,listUserIDs:Lt.listUserIDs,getTopUserIDs:Lt.getTopUserIDs,removeUserID:Lt.removeUserID,hasPendingMappings:Lt.hasPendingMappings,generateSecuredApiKey:Lt.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Lt.getSecuredApiKeyRemainingValidity,destroy:JH.destroy,clearDictionaryEntries:Lt.clearDictionaryEntries,deleteDictionaryEntries:Lt.deleteDictionaryEntries,getDictionarySettings:Lt.getDictionarySettings,getAppTask:Lt.getAppTask,replaceDictionaryEntries:Lt.replaceDictionaryEntries,saveDictionaryEntries:Lt.saveDictionaryEntries,searchDictionaryEntries:Lt.searchDictionaryEntries,setDictionarySettings:Lt.setDictionarySettings,waitAppTask:Lt.waitAppTask,customRequest:Lt.customRequest,initIndex:u=>A=>Lt.initIndex(u)(A,{methods:{batch:Lt.batch,delete:Lt.deleteIndex,findAnswers:Lt.findAnswers,getObject:Lt.getObject,getObjects:Lt.getObjects,saveObject:Lt.saveObject,saveObjects:Lt.saveObjects,search:Lt.search,searchForFacetValues:Lt.searchForFacetValues,waitTask:Lt.waitTask,setSettings:Lt.setSettings,getSettings:Lt.getSettings,partialUpdateObject:Lt.partialUpdateObject,partialUpdateObjects:Lt.partialUpdateObjects,deleteObject:Lt.deleteObject,deleteObjects:Lt.deleteObjects,deleteBy:Lt.deleteBy,clearObjects:Lt.clearObjects,browseObjects:Lt.browseObjects,getObjectPosition:Lt.getObjectPosition,findObject:Lt.findObject,exists:Lt.exists,saveSynonym:Lt.saveSynonym,saveSynonyms:Lt.saveSynonyms,getSynonym:Lt.getSynonym,searchSynonyms:Lt.searchSynonyms,browseSynonyms:Lt.browseSynonyms,deleteSynonym:Lt.deleteSynonym,clearSynonyms:Lt.clearSynonyms,replaceAllObjects:Lt.replaceAllObjects,replaceAllSynonyms:Lt.replaceAllSynonyms,searchRules:Lt.searchRules,getRule:Lt.getRule,deleteRule:Lt.deleteRule,saveRule:Lt.saveRule,saveRules:Lt.saveRules,replaceAllRules:Lt.replaceAllRules,browseRules:Lt.browseRules,clearRules:Lt.clearRules}}),initAnalytics:()=>u=>SC.createAnalyticsClient({...o,...u,methods:{addABTest:SC.addABTest,getABTest:SC.getABTest,getABTests:SC.getABTests,stopABTest:SC.stopABTest,deleteABTest:SC.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}zye.version=JH.version;Xye.exports=zye});var XH=U((oYt,zH)=>{var $ye=Zye();zH.exports=$ye;zH.exports.default=$ye});var e6=U((lYt,rEe)=>{"use strict";var tEe=Object.getOwnPropertySymbols,Rmt=Object.prototype.hasOwnProperty,Tmt=Object.prototype.propertyIsEnumerable;function Nmt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function Lmt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}rEe.exports=Lmt()?Object.assign:function(t,e){for(var r,o=Nmt(t),a,n=1;n<arguments.length;n++){r=Object(arguments[n]);for(var u in r)Rmt.call(r,u)&&(o[u]=r[u]);if(tEe){a=tEe(r);for(var A=0;A<a.length;A++)Tmt.call(r,a[A])&&(o[a[A]]=r[a[A]])}}return o}});var hEe=U(Qn=>{"use strict";var s6=e6(),iu=typeof Symbol=="function"&&Symbol.for,H2=iu?Symbol.for("react.element"):60103,Omt=iu?Symbol.for("react.portal"):60106,Mmt=iu?Symbol.for("react.fragment"):60107,Umt=iu?Symbol.for("react.strict_mode"):60108,_mt=iu?Symbol.for("react.profiler"):60114,Hmt=iu?Symbol.for("react.provider"):60109,qmt=iu?Symbol.for("react.context"):60110,jmt=iu?Symbol.for("react.forward_ref"):60112,Gmt=iu?Symbol.for("react.suspense"):60113,Wmt=iu?Symbol.for("react.memo"):60115,Ymt=iu?Symbol.for("react.lazy"):60116,nEe=typeof Symbol=="function"&&Symbol.iterator;function q2(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)e+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+t+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var iEe={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sEe={};function PC(t,e,r){this.props=t,this.context=e,this.refs=sEe,this.updater=r||iEe}PC.prototype.isReactComponent={};PC.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error(q2(85));this.updater.enqueueSetState(this,t,e,"setState")};PC.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function oEe(){}oEe.prototype=PC.prototype;function o6(t,e,r){this.props=t,this.context=e,this.refs=sEe,this.updater=r||iEe}var a6=o6.prototype=new oEe;a6.constructor=o6;s6(a6,PC.prototype);a6.isPureReactComponent=!0;var l6={current:null},aEe=Object.prototype.hasOwnProperty,lEe={key:!0,ref:!0,__self:!0,__source:!0};function cEe(t,e,r){var o,a={},n=null,u=null;if(e!=null)for(o in e.ref!==void 0&&(u=e.ref),e.key!==void 0&&(n=""+e.key),e)aEe.call(e,o)&&!lEe.hasOwnProperty(o)&&(a[o]=e[o]);var A=arguments.length-2;if(A===1)a.children=r;else if(1<A){for(var p=Array(A),h=0;h<A;h++)p[h]=arguments[h+2];a.children=p}if(t&&t.defaultProps)for(o in A=t.defaultProps,A)a[o]===void 0&&(a[o]=A[o]);return{$$typeof:H2,type:t,key:n,ref:u,props:a,_owner:l6.current}}function Kmt(t,e){return{$$typeof:H2,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function c6(t){return typeof t=="object"&&t!==null&&t.$$typeof===H2}function Vmt(t){var e={"=":"=0",":":"=2"};return"$"+(""+t).replace(/[=:]/g,function(r){return e[r]})}var uEe=/\/+/g,BQ=[];function AEe(t,e,r,o){if(BQ.length){var a=BQ.pop();return a.result=t,a.keyPrefix=e,a.func=r,a.context=o,a.count=0,a}return{result:t,keyPrefix:e,func:r,context:o,count:0}}function fEe(t){t.result=null,t.keyPrefix=null,t.func=null,t.context=null,t.count=0,10>BQ.length&&BQ.push(t)}function r6(t,e,r,o){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var n=!1;if(t===null)n=!0;else switch(a){case"string":case"number":n=!0;break;case"object":switch(t.$$typeof){case H2:case Omt:n=!0}}if(n)return r(o,t,e===""?"."+t6(t,0):e),1;if(n=0,e=e===""?".":e+":",Array.isArray(t))for(var u=0;u<t.length;u++){a=t[u];var A=e+t6(a,u);n+=r6(a,A,r,o)}else if(t===null||typeof t!="object"?A=null:(A=nEe&&t[nEe]||t["@@iterator"],A=typeof A=="function"?A:null),typeof A=="function")for(t=A.call(t),u=0;!(a=t.next()).done;)a=a.value,A=e+t6(a,u++),n+=r6(a,A,r,o);else if(a==="object")throw r=""+t,Error(q2(31,r==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":r,""));return n}function n6(t,e,r){return t==null?0:r6(t,"",e,r)}function t6(t,e){return typeof t=="object"&&t!==null&&t.key!=null?Vmt(t.key):e.toString(36)}function Jmt(t,e){t.func.call(t.context,e,t.count++)}function zmt(t,e,r){var o=t.result,a=t.keyPrefix;t=t.func.call(t.context,e,t.count++),Array.isArray(t)?i6(t,o,r,function(n){return n}):t!=null&&(c6(t)&&(t=Kmt(t,a+(!t.key||e&&e.key===t.key?"":(""+t.key).replace(uEe,"$&/")+"/")+r)),o.push(t))}function i6(t,e,r,o,a){var n="";r!=null&&(n=(""+r).replace(uEe,"$&/")+"/"),e=AEe(e,n,o,a),n6(t,zmt,e),fEe(e)}var pEe={current:null};function Zf(){var t=pEe.current;if(t===null)throw Error(q2(321));return t}var Xmt={ReactCurrentDispatcher:pEe,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:l6,IsSomeRendererActing:{current:!1},assign:s6};Qn.Children={map:function(t,e,r){if(t==null)return t;var o=[];return i6(t,o,null,e,r),o},forEach:function(t,e,r){if(t==null)return t;e=AEe(null,null,e,r),n6(t,Jmt,e),fEe(e)},count:function(t){return n6(t,function(){return null},null)},toArray:function(t){var e=[];return i6(t,e,null,function(r){return r}),e},only:function(t){if(!c6(t))throw Error(q2(143));return t}};Qn.Component=PC;Qn.Fragment=Mmt;Qn.Profiler=_mt;Qn.PureComponent=o6;Qn.StrictMode=Umt;Qn.Suspense=Gmt;Qn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Xmt;Qn.cloneElement=function(t,e,r){if(t==null)throw Error(q2(267,t));var o=s6({},t.props),a=t.key,n=t.ref,u=t._owner;if(e!=null){if(e.ref!==void 0&&(n=e.ref,u=l6.current),e.key!==void 0&&(a=""+e.key),t.type&&t.type.defaultProps)var A=t.type.defaultProps;for(p in e)aEe.call(e,p)&&!lEe.hasOwnProperty(p)&&(o[p]=e[p]===void 0&&A!==void 0?A[p]:e[p])}var p=arguments.length-2;if(p===1)o.children=r;else if(1<p){A=Array(p);for(var h=0;h<p;h++)A[h]=arguments[h+2];o.children=A}return{$$typeof:H2,type:t.type,key:a,ref:n,props:o,_owner:u}};Qn.createContext=function(t,e){return e===void 0&&(e=null),t={$$typeof:qmt,_calculateChangedBits:e,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider={$$typeof:Hmt,_context:t},t.Consumer=t};Qn.createElement=cEe;Qn.createFactory=function(t){var e=cEe.bind(null,t);return e.type=t,e};Qn.createRef=function(){return{current:null}};Qn.forwardRef=function(t){return{$$typeof:jmt,render:t}};Qn.isValidElement=c6;Qn.lazy=function(t){return{$$typeof:Ymt,_ctor:t,_status:-1,_result:null}};Qn.memo=function(t,e){return{$$typeof:Wmt,type:t,compare:e===void 0?null:e}};Qn.useCallback=function(t,e){return Zf().useCallback(t,e)};Qn.useContext=function(t,e){return Zf().useContext(t,e)};Qn.useDebugValue=function(){};Qn.useEffect=function(t,e){return Zf().useEffect(t,e)};Qn.useImperativeHandle=function(t,e,r){return Zf().useImperativeHandle(t,e,r)};Qn.useLayoutEffect=function(t,e){return Zf().useLayoutEffect(t,e)};Qn.useMemo=function(t,e){return Zf().useMemo(t,e)};Qn.useReducer=function(t,e,r){return Zf().useReducer(t,e,r)};Qn.useRef=function(t){return Zf().useRef(t)};Qn.useState=function(t){return Zf().useState(t)};Qn.version="16.13.1"});var en=U((uYt,gEe)=>{"use strict";gEe.exports=hEe()});var A6=U((AYt,u6)=>{"use strict";var on=u6.exports;u6.exports.default=on;var kn="\x1B[",j2="\x1B]",xC="\x07",vQ=";",dEe=process.env.TERM_PROGRAM==="Apple_Terminal";on.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?kn+(t+1)+"G":kn+(e+1)+";"+(t+1)+"H"};on.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=kn+-t+"D":t>0&&(r+=kn+t+"C"),e<0?r+=kn+-e+"A":e>0&&(r+=kn+e+"B"),r};on.cursorUp=(t=1)=>kn+t+"A";on.cursorDown=(t=1)=>kn+t+"B";on.cursorForward=(t=1)=>kn+t+"C";on.cursorBackward=(t=1)=>kn+t+"D";on.cursorLeft=kn+"G";on.cursorSavePosition=dEe?"\x1B7":kn+"s";on.cursorRestorePosition=dEe?"\x1B8":kn+"u";on.cursorGetPosition=kn+"6n";on.cursorNextLine=kn+"E";on.cursorPrevLine=kn+"F";on.cursorHide=kn+"?25l";on.cursorShow=kn+"?25h";on.eraseLines=t=>{let e="";for(let r=0;r<t;r++)e+=on.eraseLine+(r<t-1?on.cursorUp():"");return t&&(e+=on.cursorLeft),e};on.eraseEndLine=kn+"K";on.eraseStartLine=kn+"1K";on.eraseLine=kn+"2K";on.eraseDown=kn+"J";on.eraseUp=kn+"1J";on.eraseScreen=kn+"2J";on.scrollUp=kn+"S";on.scrollDown=kn+"T";on.clearScreen="\x1Bc";on.clearTerminal=process.platform==="win32"?`${on.eraseScreen}${kn}0f`:`${on.eraseScreen}${kn}3J${kn}H`;on.beep=xC;on.link=(t,e)=>[j2,"8",vQ,vQ,e,xC,t,j2,"8",vQ,vQ,xC].join("");on.image=(t,e={})=>{let r=`${j2}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+xC};on.iTerm={setCwd:(t=process.cwd())=>`${j2}50;CurrentDir=${t}${xC}`,annotation:(t,e={})=>{let r=`${j2}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+xC}}});var yEe=U((fYt,f6)=>{"use strict";var mEe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};f6.exports=mEe;f6.exports.default=mEe});var CEe=U((pYt,SQ)=>{"use strict";var Zmt=yEe(),DQ=new WeakMap,EEe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"<anonymous>",n=function(...u){if(DQ.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return Zmt(n,t),DQ.set(n,o),n};SQ.exports=EEe;SQ.exports.default=EEe;SQ.exports.callCount=t=>{if(!DQ.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return DQ.get(t)}});var IEe=U((hYt,PQ)=>{PQ.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&PQ.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&PQ.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var g6=U((gYt,kC)=>{var gi=global.process,am=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};am(gi)?(wEe=Ie("assert"),bC=IEe(),BEe=/^win/i.test(gi.platform),G2=Ie("events"),typeof G2!="function"&&(G2=G2.EventEmitter),gi.__signal_exit_emitter__?xs=gi.__signal_exit_emitter__:(xs=gi.__signal_exit_emitter__=new G2,xs.count=0,xs.emitted={}),xs.infinite||(xs.setMaxListeners(1/0),xs.infinite=!0),kC.exports=function(t,e){if(!am(global.process))return function(){};wEe.equal(typeof t,"function","a callback must be provided for exit handler"),QC===!1&&p6();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){xs.removeListener(r,t),xs.listeners("exit").length===0&&xs.listeners("afterexit").length===0&&xQ()};return xs.on(r,t),o},xQ=function(){!QC||!am(global.process)||(QC=!1,bC.forEach(function(e){try{gi.removeListener(e,bQ[e])}catch{}}),gi.emit=QQ,gi.reallyExit=h6,xs.count-=1)},kC.exports.unload=xQ,lm=function(e,r,o){xs.emitted[e]||(xs.emitted[e]=!0,xs.emit(e,r,o))},bQ={},bC.forEach(function(t){bQ[t]=function(){if(!!am(global.process)){var r=gi.listeners(t);r.length===xs.count&&(xQ(),lm("exit",null,t),lm("afterexit",null,t),BEe&&t==="SIGHUP"&&(t="SIGINT"),gi.kill(gi.pid,t))}}}),kC.exports.signals=function(){return bC},QC=!1,p6=function(){QC||!am(global.process)||(QC=!0,xs.count+=1,bC=bC.filter(function(e){try{return gi.on(e,bQ[e]),!0}catch{return!1}}),gi.emit=DEe,gi.reallyExit=vEe)},kC.exports.load=p6,h6=gi.reallyExit,vEe=function(e){!am(global.process)||(gi.exitCode=e||0,lm("exit",gi.exitCode,null),lm("afterexit",gi.exitCode,null),h6.call(gi,gi.exitCode))},QQ=gi.emit,DEe=function(e,r){if(e==="exit"&&am(global.process)){r!==void 0&&(gi.exitCode=r);var o=QQ.apply(this,arguments);return lm("exit",gi.exitCode,null),lm("afterexit",gi.exitCode,null),o}else return QQ.apply(this,arguments)}):kC.exports=function(){return function(){}};var wEe,bC,BEe,G2,xs,xQ,lm,bQ,QC,p6,h6,vEe,QQ,DEe});var PEe=U((dYt,SEe)=>{"use strict";var $mt=CEe(),eyt=g6();SEe.exports=$mt(()=>{eyt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var d6=U(FC=>{"use strict";var tyt=PEe(),kQ=!1;FC.show=(t=process.stderr)=>{!t.isTTY||(kQ=!1,t.write("\x1B[?25h"))};FC.hide=(t=process.stderr)=>{!t.isTTY||(tyt(),kQ=!0,t.write("\x1B[?25l"))};FC.toggle=(t,e)=>{t!==void 0&&(kQ=t),kQ?FC.show(e):FC.hide(e)}});var kEe=U(W2=>{"use strict";var QEe=W2&&W2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(W2,"__esModule",{value:!0});var xEe=QEe(A6()),bEe=QEe(d6()),ryt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&(bEe.default.hide(),a=!0);let A=u+`
280`;A!==o&&(o=A,t.write(SCe.default.eraseLines(r)+A),r=A.split(` 280`;A!==o&&(o=A,t.write(xEe.default.eraseLines(r)+A),r=A.split(`
281`).length)};return n.clear=()=>{t.write(SCe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(PCe.default.show(),a=!1)},n};j2.default={create:Xmt}});var QCe=U((fYt,Zmt)=>{Zmt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var RCe=U(ml=>{"use strict";var FCe=QCe(),gA=process.env;Object.defineProperty(ml,"_vendors",{value:FCe.map(function(t){return t.constant})});ml.name=null;ml.isPR=null;FCe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return kCe(o)});if(ml[t.constant]=r,r)switch(ml.name=t.name,typeof t.pr){case"string":ml.isPR=!!gA[t.pr];break;case"object":"env"in t.pr?ml.isPR=t.pr.env in gA&&gA[t.pr.env]!==t.pr.ne:"any"in t.pr?ml.isPR=t.pr.any.some(function(o){return!!gA[o]}):ml.isPR=kCe(t.pr);break;default:ml.isPR=null}});ml.isCI=!!(gA.CI||gA.CONTINUOUS_INTEGRATION||gA.BUILD_NUMBER||gA.RUN_ID||ml.name);function kCe(t){return typeof t=="string"?!!gA[t]:Object.keys(t).every(function(e){return gA[e]===t[e]})}});var NCe=U((hYt,TCe)=>{"use strict";TCe.exports=RCe().isCI});var OCe=U((gYt,LCe)=>{"use strict";var $mt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};LCe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of $mt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var GCe=U(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var TE,Y2,RQ,TQ,I6;typeof window>"u"||typeof MessageChannel!="function"?(RE=null,g6=null,d6=function(){if(RE!==null)try{var t=vn.unstable_now();RE(!0,t),RE=null}catch(e){throw setTimeout(d6,0),e}},MCe=Date.now(),vn.unstable_now=function(){return Date.now()-MCe},TE=function(t){RE!==null?setTimeout(TE,0,t):(RE=t,setTimeout(d6,0))},Y2=function(t,e){g6=setTimeout(t,e)},RQ=function(){clearTimeout(g6)},TQ=function(){return!1},I6=vn.unstable_forceFrameRate=function(){}):(bQ=window.performance,m6=window.Date,UCe=window.setTimeout,_Ce=window.clearTimeout,typeof console<"u"&&(HCe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof HCe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof bQ=="object"&&typeof bQ.now=="function"?vn.unstable_now=function(){return bQ.now()}:(qCe=m6.now(),vn.unstable_now=function(){return m6.now()-qCe}),G2=!1,W2=null,QQ=-1,y6=5,C6=0,TQ=function(){return vn.unstable_now()>=C6},I6=function(){},vn.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):y6=0<t?Math.floor(1e3/t):5},E6=new MessageChannel,kQ=E6.port2,E6.port1.onmessage=function(){if(W2!==null){var t=vn.unstable_now();C6=t+y6;try{W2(!0,t)?kQ.postMessage(null):(G2=!1,W2=null)}catch(e){throw kQ.postMessage(null),e}}else G2=!1},TE=function(t){W2=t,G2||(G2=!0,kQ.postMessage(null))},Y2=function(t,e){QQ=UCe(function(){t(vn.unstable_now())},e)},RQ=function(){_Ce(QQ),QQ=-1});var RE,g6,d6,MCe,bQ,m6,UCe,_Ce,HCe,qCe,G2,W2,QQ,y6,C6,E6,kQ;function w6(t,e){var r=t.length;t.push(e);e:for(;;){var o=Math.floor((r-1)/2),a=t[o];if(a!==void 0&&0<FQ(a,e))t[o]=e,t[r]=a,r=o;else break e}}function lc(t){return t=t[0],t===void 0?null:t}function NQ(t){var e=t[0];if(e!==void 0){var r=t.pop();if(r!==e){t[0]=r;e:for(var o=0,a=t.length;o<a;){var n=2*(o+1)-1,u=t[n],A=n+1,p=t[A];if(u!==void 0&&0>FQ(u,r))p!==void 0&&0>FQ(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>FQ(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function FQ(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var iu=[],gh=[],eyt=1,ea=null,Ro=3,LQ=!1,lm=!1,K2=!1;function OQ(t){for(var e=lc(gh);e!==null;){if(e.callback===null)NQ(gh);else if(e.startTime<=t)NQ(gh),e.sortIndex=e.expirationTime,w6(iu,e);else break;e=lc(gh)}}function B6(t){if(K2=!1,OQ(t),!lm)if(lc(iu)!==null)lm=!0,TE(v6);else{var e=lc(gh);e!==null&&Y2(B6,e.startTime-t)}}function v6(t,e){lm=!1,K2&&(K2=!1,RQ()),LQ=!0;var r=Ro;try{for(OQ(e),ea=lc(iu);ea!==null&&(!(ea.expirationTime>e)||t&&!TQ());){var o=ea.callback;if(o!==null){ea.callback=null,Ro=ea.priorityLevel;var a=o(ea.expirationTime<=e);e=vn.unstable_now(),typeof a=="function"?ea.callback=a:ea===lc(iu)&&NQ(iu),OQ(e)}else NQ(iu);ea=lc(iu)}if(ea!==null)var n=!0;else{var u=lc(gh);u!==null&&Y2(B6,u.startTime-e),n=!1}return n}finally{ea=null,Ro=r,LQ=!1}}function jCe(t){switch(t){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var tyt=I6;vn.unstable_ImmediatePriority=1;vn.unstable_UserBlockingPriority=2;vn.unstable_NormalPriority=3;vn.unstable_IdlePriority=5;vn.unstable_LowPriority=4;vn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=Ro;Ro=t;try{return e()}finally{Ro=r}};vn.unstable_next=function(t){switch(Ro){case 1:case 2:case 3:var e=3;break;default:e=Ro}var r=Ro;Ro=e;try{return t()}finally{Ro=r}};vn.unstable_scheduleCallback=function(t,e,r){var o=vn.unstable_now();if(typeof r=="object"&&r!==null){var a=r.delay;a=typeof a=="number"&&0<a?o+a:o,r=typeof r.timeout=="number"?r.timeout:jCe(t)}else r=jCe(t),a=o;return r=a+r,t={id:eyt++,callback:e,priorityLevel:t,startTime:a,expirationTime:r,sortIndex:-1},a>o?(t.sortIndex=a,w6(gh,t),lc(iu)===null&&t===lc(gh)&&(K2?RQ():K2=!0,Y2(B6,a-o))):(t.sortIndex=r,w6(iu,t),lm||LQ||(lm=!0,TE(v6))),t};vn.unstable_cancelCallback=function(t){t.callback=null};vn.unstable_wrapCallback=function(t){var e=Ro;return function(){var r=Ro;Ro=e;try{return t.apply(this,arguments)}finally{Ro=r}}};vn.unstable_getCurrentPriorityLevel=function(){return Ro};vn.unstable_shouldYield=function(){var t=vn.unstable_now();OQ(t);var e=lc(iu);return e!==ea&&ea!==null&&e!==null&&e.callback!==null&&e.startTime<=t&&e.expirationTime<ea.expirationTime||TQ()};vn.unstable_requestPaint=tyt;vn.unstable_continueExecution=function(){lm||LQ||(lm=!0,TE(v6))};vn.unstable_pauseExecution=function(){};vn.unstable_getFirstCallbackNode=function(){return lc(iu)};vn.unstable_Profiling=null});var D6=U((mYt,WCe)=>{"use strict";WCe.exports=GCe()});var YCe=U((yYt,V2)=>{V2.exports=function t(e){"use strict";var r=ZH(),o=en(),a=D6();function n(S){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+S,T=1;T<arguments.length;T++)D+="&args[]="+encodeURIComponent(arguments[T]);return"Minified React error #"+S+"; visit "+D+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var u=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;u.hasOwnProperty("ReactCurrentDispatcher")||(u.ReactCurrentDispatcher={current:null}),u.hasOwnProperty("ReactCurrentBatchConfig")||(u.ReactCurrentBatchConfig={suspense:null});var A=typeof Symbol=="function"&&Symbol.for,p=A?Symbol.for("react.element"):60103,h=A?Symbol.for("react.portal"):60106,E=A?Symbol.for("react.fragment"):60107,w=A?Symbol.for("react.strict_mode"):60108,v=A?Symbol.for("react.profiler"):60114,b=A?Symbol.for("react.provider"):60109,C=A?Symbol.for("react.context"):60110,R=A?Symbol.for("react.concurrent_mode"):60111,L=A?Symbol.for("react.forward_ref"):60112,_=A?Symbol.for("react.suspense"):60113,V=A?Symbol.for("react.suspense_list"):60120,re=A?Symbol.for("react.memo"):60115,oe=A?Symbol.for("react.lazy"):60116;A&&Symbol.for("react.fundamental"),A&&Symbol.for("react.responder"),A&&Symbol.for("react.scope");var pe=typeof Symbol=="function"&&Symbol.iterator;function he(S){return S===null||typeof S!="object"?null:(S=pe&&S[pe]||S["@@iterator"],typeof S=="function"?S:null)}function ve(S){if(S._status===-1){S._status=0;var D=S._ctor;D=D(),S._result=D,D.then(function(T){S._status===0&&(T=T.default,S._status=1,S._result=T)},function(T){S._status===0&&(S._status=2,S._result=T)})}}function ge(S){if(S==null)return null;if(typeof S=="function")return S.displayName||S.name||null;if(typeof S=="string")return S;switch(S){case E:return"Fragment";case h:return"Portal";case v:return"Profiler";case w:return"StrictMode";case _:return"Suspense";case V:return"SuspenseList"}if(typeof S=="object")switch(S.$$typeof){case C:return"Context.Consumer";case b:return"Context.Provider";case L:var D=S.render;return D=D.displayName||D.name||"",S.displayName||(D!==""?"ForwardRef("+D+")":"ForwardRef");case re:return ge(S.type);case oe:if(S=S._status===1?S._result:null)return ge(S)}return null}function le(S){var D=S,T=S;if(S.alternate)for(;D.return;)D=D.return;else{S=D;do D=S,(D.effectTag&1026)!==0&&(T=D.return),S=D.return;while(S)}return D.tag===3?T:null}function Pe(S){if(le(S)!==S)throw Error(n(188))}function g(S){var D=S.alternate;if(!D){if(D=le(S),D===null)throw Error(n(188));return D!==S?null:S}for(var T=S,q=D;;){var W=T.return;if(W===null)break;var ce=W.alternate;if(ce===null){if(q=W.return,q!==null){T=q;continue}break}if(W.child===ce.child){for(ce=W.child;ce;){if(ce===T)return Pe(W),S;if(ce===q)return Pe(W),D;ce=ce.sibling}throw Error(n(188))}if(T.return!==q.return)T=W,q=ce;else{for(var Se=!1,It=W.child;It;){if(It===T){Se=!0,T=W,q=ce;break}if(It===q){Se=!0,q=W,T=ce;break}It=It.sibling}if(!Se){for(It=ce.child;It;){if(It===T){Se=!0,T=ce,q=W;break}if(It===q){Se=!0,q=ce,T=W;break}It=It.sibling}if(!Se)throw Error(n(189))}}if(T.alternate!==q)throw Error(n(190))}if(T.tag!==3)throw Error(n(188));return T.stateNode.current===T?S:D}function De(S){if(S=g(S),!S)return null;for(var D=S;;){if(D.tag===5||D.tag===6)return D;if(D.child)D.child.return=D,D=D.child;else{if(D===S)break;for(;!D.sibling;){if(!D.return||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}function Ce(S){if(S=g(S),!S)return null;for(var D=S;;){if(D.tag===5||D.tag===6)return D;if(D.child&&D.tag!==4)D.child.return=D,D=D.child;else{if(D===S)break;for(;!D.sibling;){if(!D.return||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}var de=e.getPublicInstance,ne=e.getRootHostContext,Z=e.getChildHostContext,me=e.prepareForCommit,be=e.resetAfterCommit,ut=e.createInstance,H=e.appendInitialChild,yt=e.finalizeInitialChildren,Me=e.prepareUpdate,Te=e.shouldSetTextContent,Qe=e.shouldDeprioritizeSubtree,_e=e.createTextInstance,qe=e.setTimeout,At=e.clearTimeout,Oe=e.noTimeout,x=e.isPrimaryRenderer,I=e.supportsMutation,P=e.supportsPersistence,y=e.supportsHydration,F=e.appendChild,J=e.appendChildToContainer,X=e.commitTextUpdate,$=e.commitMount,ie=e.commitUpdate,ke=e.insertBefore,Ne=e.insertInContainerBefore,st=e.removeChild,ht=e.removeChildFromContainer,Ut=e.resetTextContent,Xt=e.hideInstance,Pt=e.hideTextInstance,tn=e.unhideInstance,Dr=e.unhideTextInstance,fr=e.cloneInstance,Br=e.createContainerChildSet,jr=e.appendChildToContainerChildSet,Hn=e.finalizeContainerChildren,bs=e.replaceContainerChildren,ki=e.cloneHiddenInstance,gs=e.cloneHiddenTextInstance,to=e.canHydrateInstance,Di=e.canHydrateTextInstance,Qs=e.isSuspenseInstancePending,ro=e.isSuspenseInstanceFallback,pc=e.getNextHydratableSibling,gu=e.getFirstHydratableChild,ap=e.hydrateInstance,lp=e.hydrateTextInstance,ks=e.getNextHydratableInstanceAfterSuspenseInstance,En=e.commitHydratedContainer,no=e.commitHydratedSuspenseInstance,Fs=/^(.*)[\\\/]/;function Cl(S){var D="";do{e:switch(S.tag){case 3:case 4:case 6:case 7:case 10:case 9:var T="";break e;default:var q=S._debugOwner,W=S._debugSource,ce=ge(S.type);T=null,q&&(T=ge(q.type)),q=ce,ce="",W?ce=" (at "+W.fileName.replace(Fs,"")+":"+W.lineNumber+")":T&&(ce=" (created by "+T+")"),T=` 281`).length)};return n.clear=()=>{t.write(xEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(bEe.default.show(),a=!1)},n};W2.default={create:ryt}});var FEe=U((EYt,nyt)=>{nyt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var NEe=U(yl=>{"use strict";var TEe=FEe(),gA=process.env;Object.defineProperty(yl,"_vendors",{value:TEe.map(function(t){return t.constant})});yl.name=null;yl.isPR=null;TEe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return REe(o)});if(yl[t.constant]=r,r)switch(yl.name=t.name,typeof t.pr){case"string":yl.isPR=!!gA[t.pr];break;case"object":"env"in t.pr?yl.isPR=t.pr.env in gA&&gA[t.pr.env]!==t.pr.ne:"any"in t.pr?yl.isPR=t.pr.any.some(function(o){return!!gA[o]}):yl.isPR=REe(t.pr);break;default:yl.isPR=null}});yl.isCI=!!(gA.CI||gA.CONTINUOUS_INTEGRATION||gA.BUILD_NUMBER||gA.RUN_ID||yl.name);function REe(t){return typeof t=="string"?!!gA[t]:Object.keys(t).every(function(e){return gA[e]===t[e]})}});var OEe=U((IYt,LEe)=>{"use strict";LEe.exports=NEe().isCI});var UEe=U((wYt,MEe)=>{"use strict";var iyt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};MEe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of iyt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var YEe=U(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var TC,V2,LQ,OQ,B6;typeof window>"u"||typeof MessageChannel!="function"?(RC=null,m6=null,y6=function(){if(RC!==null)try{var t=vn.unstable_now();RC(!0,t),RC=null}catch(e){throw setTimeout(y6,0),e}},_Ee=Date.now(),vn.unstable_now=function(){return Date.now()-_Ee},TC=function(t){RC!==null?setTimeout(TC,0,t):(RC=t,setTimeout(y6,0))},V2=function(t,e){m6=setTimeout(t,e)},LQ=function(){clearTimeout(m6)},OQ=function(){return!1},B6=vn.unstable_forceFrameRate=function(){}):(FQ=window.performance,E6=window.Date,HEe=window.setTimeout,qEe=window.clearTimeout,typeof console<"u"&&(jEe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof jEe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof FQ=="object"&&typeof FQ.now=="function"?vn.unstable_now=function(){return FQ.now()}:(GEe=E6.now(),vn.unstable_now=function(){return E6.now()-GEe}),Y2=!1,K2=null,RQ=-1,C6=5,I6=0,OQ=function(){return vn.unstable_now()>=I6},B6=function(){},vn.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):C6=0<t?Math.floor(1e3/t):5},w6=new MessageChannel,TQ=w6.port2,w6.port1.onmessage=function(){if(K2!==null){var t=vn.unstable_now();I6=t+C6;try{K2(!0,t)?TQ.postMessage(null):(Y2=!1,K2=null)}catch(e){throw TQ.postMessage(null),e}}else Y2=!1},TC=function(t){K2=t,Y2||(Y2=!0,TQ.postMessage(null))},V2=function(t,e){RQ=HEe(function(){t(vn.unstable_now())},e)},LQ=function(){qEe(RQ),RQ=-1});var RC,m6,y6,_Ee,FQ,E6,HEe,qEe,jEe,GEe,Y2,K2,RQ,C6,I6,w6,TQ;function v6(t,e){var r=t.length;t.push(e);e:for(;;){var o=Math.floor((r-1)/2),a=t[o];if(a!==void 0&&0<NQ(a,e))t[o]=e,t[r]=a,r=o;else break e}}function cc(t){return t=t[0],t===void 0?null:t}function MQ(t){var e=t[0];if(e!==void 0){var r=t.pop();if(r!==e){t[0]=r;e:for(var o=0,a=t.length;o<a;){var n=2*(o+1)-1,u=t[n],A=n+1,p=t[A];if(u!==void 0&&0>NQ(u,r))p!==void 0&&0>NQ(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>NQ(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function NQ(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var su=[],dh=[],syt=1,ta=null,Ro=3,UQ=!1,cm=!1,J2=!1;function _Q(t){for(var e=cc(dh);e!==null;){if(e.callback===null)MQ(dh);else if(e.startTime<=t)MQ(dh),e.sortIndex=e.expirationTime,v6(su,e);else break;e=cc(dh)}}function D6(t){if(J2=!1,_Q(t),!cm)if(cc(su)!==null)cm=!0,TC(S6);else{var e=cc(dh);e!==null&&V2(D6,e.startTime-t)}}function S6(t,e){cm=!1,J2&&(J2=!1,LQ()),UQ=!0;var r=Ro;try{for(_Q(e),ta=cc(su);ta!==null&&(!(ta.expirationTime>e)||t&&!OQ());){var o=ta.callback;if(o!==null){ta.callback=null,Ro=ta.priorityLevel;var a=o(ta.expirationTime<=e);e=vn.unstable_now(),typeof a=="function"?ta.callback=a:ta===cc(su)&&MQ(su),_Q(e)}else MQ(su);ta=cc(su)}if(ta!==null)var n=!0;else{var u=cc(dh);u!==null&&V2(D6,u.startTime-e),n=!1}return n}finally{ta=null,Ro=r,UQ=!1}}function WEe(t){switch(t){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var oyt=B6;vn.unstable_ImmediatePriority=1;vn.unstable_UserBlockingPriority=2;vn.unstable_NormalPriority=3;vn.unstable_IdlePriority=5;vn.unstable_LowPriority=4;vn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=Ro;Ro=t;try{return e()}finally{Ro=r}};vn.unstable_next=function(t){switch(Ro){case 1:case 2:case 3:var e=3;break;default:e=Ro}var r=Ro;Ro=e;try{return t()}finally{Ro=r}};vn.unstable_scheduleCallback=function(t,e,r){var o=vn.unstable_now();if(typeof r=="object"&&r!==null){var a=r.delay;a=typeof a=="number"&&0<a?o+a:o,r=typeof r.timeout=="number"?r.timeout:WEe(t)}else r=WEe(t),a=o;return r=a+r,t={id:syt++,callback:e,priorityLevel:t,startTime:a,expirationTime:r,sortIndex:-1},a>o?(t.sortIndex=a,v6(dh,t),cc(su)===null&&t===cc(dh)&&(J2?LQ():J2=!0,V2(D6,a-o))):(t.sortIndex=r,v6(su,t),cm||UQ||(cm=!0,TC(S6))),t};vn.unstable_cancelCallback=function(t){t.callback=null};vn.unstable_wrapCallback=function(t){var e=Ro;return function(){var r=Ro;Ro=e;try{return t.apply(this,arguments)}finally{Ro=r}}};vn.unstable_getCurrentPriorityLevel=function(){return Ro};vn.unstable_shouldYield=function(){var t=vn.unstable_now();_Q(t);var e=cc(su);return e!==ta&&ta!==null&&e!==null&&e.callback!==null&&e.startTime<=t&&e.expirationTime<ta.expirationTime||OQ()};vn.unstable_requestPaint=oyt;vn.unstable_continueExecution=function(){cm||UQ||(cm=!0,TC(S6))};vn.unstable_pauseExecution=function(){};vn.unstable_getFirstCallbackNode=function(){return cc(su)};vn.unstable_Profiling=null});var P6=U((vYt,KEe)=>{"use strict";KEe.exports=YEe()});var VEe=U((DYt,z2)=>{z2.exports=function t(e){"use strict";var r=e6(),o=en(),a=P6();function n(S){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+S,T=1;T<arguments.length;T++)D+="&args[]="+encodeURIComponent(arguments[T]);return"Minified React error #"+S+"; visit "+D+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var u=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;u.hasOwnProperty("ReactCurrentDispatcher")||(u.ReactCurrentDispatcher={current:null}),u.hasOwnProperty("ReactCurrentBatchConfig")||(u.ReactCurrentBatchConfig={suspense:null});var A=typeof Symbol=="function"&&Symbol.for,p=A?Symbol.for("react.element"):60103,h=A?Symbol.for("react.portal"):60106,C=A?Symbol.for("react.fragment"):60107,w=A?Symbol.for("react.strict_mode"):60108,v=A?Symbol.for("react.profiler"):60114,b=A?Symbol.for("react.provider"):60109,E=A?Symbol.for("react.context"):60110,R=A?Symbol.for("react.concurrent_mode"):60111,L=A?Symbol.for("react.forward_ref"):60112,_=A?Symbol.for("react.suspense"):60113,V=A?Symbol.for("react.suspense_list"):60120,re=A?Symbol.for("react.memo"):60115,ae=A?Symbol.for("react.lazy"):60116;A&&Symbol.for("react.fundamental"),A&&Symbol.for("react.responder"),A&&Symbol.for("react.scope");var he=typeof Symbol=="function"&&Symbol.iterator;function pe(S){return S===null||typeof S!="object"?null:(S=he&&S[he]||S["@@iterator"],typeof S=="function"?S:null)}function De(S){if(S._status===-1){S._status=0;var D=S._ctor;D=D(),S._result=D,D.then(function(T){S._status===0&&(T=T.default,S._status=1,S._result=T)},function(T){S._status===0&&(S._status=2,S._result=T)})}}function ge(S){if(S==null)return null;if(typeof S=="function")return S.displayName||S.name||null;if(typeof S=="string")return S;switch(S){case C:return"Fragment";case h:return"Portal";case v:return"Profiler";case w:return"StrictMode";case _:return"Suspense";case V:return"SuspenseList"}if(typeof S=="object")switch(S.$$typeof){case E:return"Context.Consumer";case b:return"Context.Provider";case L:var D=S.render;return D=D.displayName||D.name||"",S.displayName||(D!==""?"ForwardRef("+D+")":"ForwardRef");case re:return ge(S.type);case ae:if(S=S._status===1?S._result:null)return ge(S)}return null}function le(S){var D=S,T=S;if(S.alternate)for(;D.return;)D=D.return;else{S=D;do D=S,(D.effectTag&1026)!==0&&(T=D.return),S=D.return;while(S)}return D.tag===3?T:null}function Pe(S){if(le(S)!==S)throw Error(n(188))}function g(S){var D=S.alternate;if(!D){if(D=le(S),D===null)throw Error(n(188));return D!==S?null:S}for(var T=S,q=D;;){var W=T.return;if(W===null)break;var ce=W.alternate;if(ce===null){if(q=W.return,q!==null){T=q;continue}break}if(W.child===ce.child){for(ce=W.child;ce;){if(ce===T)return Pe(W),S;if(ce===q)return Pe(W),D;ce=ce.sibling}throw Error(n(188))}if(T.return!==q.return)T=W,q=ce;else{for(var Se=!1,It=W.child;It;){if(It===T){Se=!0,T=W,q=ce;break}if(It===q){Se=!0,q=W,T=ce;break}It=It.sibling}if(!Se){for(It=ce.child;It;){if(It===T){Se=!0,T=ce,q=W;break}if(It===q){Se=!0,q=ce,T=W;break}It=It.sibling}if(!Se)throw Error(n(189))}}if(T.alternate!==q)throw Error(n(190))}if(T.tag!==3)throw Error(n(188));return T.stateNode.current===T?S:D}function ve(S){if(S=g(S),!S)return null;for(var D=S;;){if(D.tag===5||D.tag===6)return D;if(D.child)D.child.return=D,D=D.child;else{if(D===S)break;for(;!D.sibling;){if(!D.return||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}function Ee(S){if(S=g(S),!S)return null;for(var D=S;;){if(D.tag===5||D.tag===6)return D;if(D.child&&D.tag!==4)D.child.return=D,D=D.child;else{if(D===S)break;for(;!D.sibling;){if(!D.return||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}var de=e.getPublicInstance,ne=e.getRootHostContext,Z=e.getChildHostContext,me=e.prepareForCommit,be=e.resetAfterCommit,ut=e.createInstance,H=e.appendInitialChild,yt=e.finalizeInitialChildren,Me=e.prepareUpdate,Te=e.shouldSetTextContent,Qe=e.shouldDeprioritizeSubtree,_e=e.createTextInstance,qe=e.setTimeout,At=e.clearTimeout,Oe=e.noTimeout,x=e.isPrimaryRenderer,I=e.supportsMutation,P=e.supportsPersistence,y=e.supportsHydration,F=e.appendChild,z=e.appendChildToContainer,X=e.commitTextUpdate,$=e.commitMount,ie=e.commitUpdate,ke=e.insertBefore,Ne=e.insertInContainerBefore,st=e.removeChild,ht=e.removeChildFromContainer,Ut=e.resetTextContent,Xt=e.hideInstance,xt=e.hideTextInstance,tn=e.unhideInstance,Dr=e.unhideTextInstance,fr=e.cloneInstance,Br=e.createContainerChildSet,jr=e.appendChildToContainerChildSet,Hn=e.finalizeContainerChildren,bs=e.replaceContainerChildren,ki=e.cloneHiddenInstance,gs=e.cloneHiddenTextInstance,to=e.canHydrateInstance,Di=e.canHydrateTextInstance,Qs=e.isSuspenseInstancePending,ro=e.isSuspenseInstanceFallback,hc=e.getNextHydratableSibling,gu=e.getFirstHydratableChild,cp=e.hydrateInstance,up=e.hydrateTextInstance,ks=e.getNextHydratableInstanceAfterSuspenseInstance,Cn=e.commitHydratedContainer,no=e.commitHydratedSuspenseInstance,Fs=/^(.*)[\\\/]/;function Cl(S){var D="";do{e:switch(S.tag){case 3:case 4:case 6:case 7:case 10:case 9:var T="";break e;default:var q=S._debugOwner,W=S._debugSource,ce=ge(S.type);T=null,q&&(T=ge(q.type)),q=ce,ce="",W?ce=" (at "+W.fileName.replace(Fs,"")+":"+W.lineNumber+")":T&&(ce=" (created by "+T+")"),T=`
282 in `+(q||"Unknown")+ce}D+=T,S=S.return}while(S);return D}var El=[],io=-1;function Ue(S){0>io||(S.current=El[io],El[io]=null,io--)}function Fn(S,D){io++,El[io]=S.current,S.current=D}var Fi={},Rn={current:Fi},Ui={current:!1},Zt=Fi;function Ri(S,D){var T=S.type.contextTypes;if(!T)return Fi;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},ce;for(ce in T)W[ce]=D[ce];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=D,S.__reactInternalMemoizedMaskedChildContext=W),W}function $n(S){return S=S.childContextTypes,S!=null}function Ma(S){Ue(Ui,S),Ue(Rn,S)}function $t(S){Ue(Ui,S),Ue(Rn,S)}function hc(S,D,T){if(Rn.current!==Fi)throw Error(n(168));Fn(Rn,D,S),Fn(Ui,T,S)}function du(S,D,T){var q=S.stateNode;if(S=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in S))throw Error(n(108,ge(D)||"Unknown",W));return r({},T,{},q)}function gc(S){var D=S.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Fi,Zt=Rn.current,Fn(Rn,D,S),Fn(Ui,Ui.current,S),!0}function Il(S,D,T){var q=S.stateNode;if(!q)throw Error(n(169));T?(D=du(S,D,Zt),q.__reactInternalMemoizedMergedChildContext=D,Ue(Ui,S),Ue(Rn,S),Fn(Rn,D,S)):Ue(Ui,S),Fn(Ui,T,S)}var PA=a.unstable_runWithPriority,mu=a.unstable_scheduleCallback,Ee=a.unstable_cancelCallback,Rt=a.unstable_shouldYield,dc=a.unstable_requestPaint,_i=a.unstable_now,yu=a.unstable_getCurrentPriorityLevel,qt=a.unstable_ImmediatePriority,wl=a.unstable_UserBlockingPriority,xA=a.unstable_NormalPriority,cp=a.unstable_LowPriority,mc=a.unstable_IdlePriority,bA={},Dn=dc!==void 0?dc:function(){},ui=null,yc=null,QA=!1,ra=_i(),Hi=1e4>ra?_i:function(){return _i()-ra};function Oo(){switch(yu()){case qt:return 99;case wl:return 98;case xA:return 97;case cp:return 96;case mc:return 95;default:throw Error(n(332))}}function $e(S){switch(S){case 99:return qt;case 98:return wl;case 97:return xA;case 96:return cp;case 95:return mc;default:throw Error(n(332))}}function so(S,D){return S=$e(S),PA(S,D)}function Bl(S,D,T){return S=$e(S),mu(S,D,T)}function Cu(S){return ui===null?(ui=[S],yc=mu(qt,Eu)):ui.push(S),bA}function qi(){if(yc!==null){var S=yc;yc=null,Ee(S)}Eu()}function Eu(){if(!QA&&ui!==null){QA=!0;var S=0;try{var D=ui;so(99,function(){for(;S<D.length;S++){var T=D[S];do T=T(!0);while(T!==null)}}),ui=null}catch(T){throw ui!==null&&(ui=ui.slice(S+1)),mu(qt,qi),T}finally{QA=!1}}}var kA=3;function Ua(S,D,T){return T/=10,1073741821-(((1073741821-S+D/10)/T|0)+1)*T}function Cc(S,D){return S===D&&(S!==0||1/S===1/D)||S!==S&&D!==D}var ds=typeof Object.is=="function"?Object.is:Cc,Ot=Object.prototype.hasOwnProperty;function Sn(S,D){if(ds(S,D))return!0;if(typeof S!="object"||S===null||typeof D!="object"||D===null)return!1;var T=Object.keys(S),q=Object.keys(D);if(T.length!==q.length)return!1;for(q=0;q<T.length;q++)if(!Ot.call(D,T[q])||!ds(S[T[q]],D[T[q]]))return!1;return!0}function di(S,D){if(S&&S.defaultProps){D=r({},D),S=S.defaultProps;for(var T in S)D[T]===void 0&&(D[T]=S[T])}return D}var na={current:null},oo=null,Rs=null,ia=null;function sa(){ia=Rs=oo=null}function Mo(S,D){var T=S.type._context;x?(Fn(na,T._currentValue,S),T._currentValue=D):(Fn(na,T._currentValue2,S),T._currentValue2=D)}function Zi(S){var D=na.current;Ue(na,S),S=S.type._context,x?S._currentValue=D:S._currentValue2=D}function Ts(S,D){for(;S!==null;){var T=S.alternate;if(S.childExpirationTime<D)S.childExpirationTime=D,T!==null&&T.childExpirationTime<D&&(T.childExpirationTime=D);else if(T!==null&&T.childExpirationTime<D)T.childExpirationTime=D;else break;S=S.return}}function Ns(S,D){oo=S,ia=Rs=null,S=S.dependencies,S!==null&&S.firstContext!==null&&(S.expirationTime>=D&&(Uo=!0),S.firstContext=null)}function Ls(S,D){if(ia!==S&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(ia=S,D=1073741823),D={context:S,observedBits:D,next:null},Rs===null){if(oo===null)throw Error(n(308));Rs=D,oo.dependencies={expirationTime:0,firstContext:D,responders:null}}else Rs=Rs.next=D;return x?S._currentValue:S._currentValue2}var ao=!1;function Yn(S){return{baseState:S,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qn(S){return{baseState:S.baseState,firstUpdate:S.firstUpdate,lastUpdate:S.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $i(S,D){return{expirationTime:S,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function es(S,D){S.lastUpdate===null?S.firstUpdate=S.lastUpdate=D:(S.lastUpdate.next=D,S.lastUpdate=D)}function mi(S,D){var T=S.alternate;if(T===null){var q=S.updateQueue,W=null;q===null&&(q=S.updateQueue=Yn(S.memoizedState))}else q=S.updateQueue,W=T.updateQueue,q===null?W===null?(q=S.updateQueue=Yn(S.memoizedState),W=T.updateQueue=Yn(T.memoizedState)):q=S.updateQueue=qn(W):W===null&&(W=T.updateQueue=qn(q));W===null||q===W?es(q,D):q.lastUpdate===null||W.lastUpdate===null?(es(q,D),es(W,D)):(es(q,D),W.lastUpdate=D)}function Ha(S,D){var T=S.updateQueue;T=T===null?S.updateQueue=Yn(S.memoizedState):oa(S,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function oa(S,D){var T=S.alternate;return T!==null&&D===T.updateQueue&&(D=S.updateQueue=qn(D)),D}function ee(S,D,T,q,W,ce){switch(T.tag){case 1:return S=T.payload,typeof S=="function"?S.call(ce,q,W):S;case 3:S.effectTag=S.effectTag&-4097|64;case 0:if(S=T.payload,W=typeof S=="function"?S.call(ce,q,W):S,W==null)break;return r({},q,W);case 2:ao=!0}return q}function we(S,D,T,q,W){ao=!1,D=oa(S,D);for(var ce=D.baseState,Se=null,It=0,Ct=D.firstUpdate,xt=ce;Ct!==null;){var Nr=Ct.expirationTime;Nr<W?(Se===null&&(Se=Ct,ce=xt),It<Nr&&(It=Nr)):(yI(Nr,Ct.suspenseConfig),xt=ee(S,D,Ct,xt,T,q),Ct.callback!==null&&(S.effectTag|=32,Ct.nextEffect=null,D.lastEffect===null?D.firstEffect=D.lastEffect=Ct:(D.lastEffect.nextEffect=Ct,D.lastEffect=Ct))),Ct=Ct.next}for(Nr=null,Ct=D.firstCapturedUpdate;Ct!==null;){var is=Ct.expirationTime;is<W?(Nr===null&&(Nr=Ct,Se===null&&(ce=xt)),It<is&&(It=is)):(xt=ee(S,D,Ct,xt,T,q),Ct.callback!==null&&(S.effectTag|=32,Ct.nextEffect=null,D.lastCapturedEffect===null?D.firstCapturedEffect=D.lastCapturedEffect=Ct:(D.lastCapturedEffect.nextEffect=Ct,D.lastCapturedEffect=Ct))),Ct=Ct.next}Se===null&&(D.lastUpdate=null),Nr===null?D.lastCapturedUpdate=null:S.effectTag|=32,Se===null&&Nr===null&&(ce=xt),D.baseState=ce,D.firstUpdate=Se,D.firstCapturedUpdate=Nr,jm(It),S.expirationTime=It,S.memoizedState=xt}function je(S,D,T){D.firstCapturedUpdate!==null&&(D.lastUpdate!==null&&(D.lastUpdate.next=D.firstCapturedUpdate,D.lastUpdate=D.lastCapturedUpdate),D.firstCapturedUpdate=D.lastCapturedUpdate=null),Be(D.firstEffect,T),D.firstEffect=D.lastEffect=null,Be(D.firstCapturedEffect,T),D.firstCapturedEffect=D.lastCapturedEffect=null}function Be(S,D){for(;S!==null;){var T=S.callback;if(T!==null){S.callback=null;var q=D;if(typeof T!="function")throw Error(n(191,T));T.call(q)}S=S.nextEffect}}var xe=u.ReactCurrentBatchConfig,Ve=new o.Component().refs;function vt(S,D,T,q){D=S.memoizedState,T=T(q,D),T=T==null?D:r({},D,T),S.memoizedState=T,q=S.updateQueue,q!==null&&S.expirationTime===0&&(q.baseState=T)}var tr={isMounted:function(S){return(S=S._reactInternalFiber)?le(S)===S:!1},enqueueSetState:function(S,D,T){S=S._reactInternalFiber;var q=ga(),W=xe.suspense;q=qA(q,S,W),W=$i(q,W),W.payload=D,T!=null&&(W.callback=T),mi(S,W),Qc(S,q)},enqueueReplaceState:function(S,D,T){S=S._reactInternalFiber;var q=ga(),W=xe.suspense;q=qA(q,S,W),W=$i(q,W),W.tag=1,W.payload=D,T!=null&&(W.callback=T),mi(S,W),Qc(S,q)},enqueueForceUpdate:function(S,D){S=S._reactInternalFiber;var T=ga(),q=xe.suspense;T=qA(T,S,q),q=$i(T,q),q.tag=2,D!=null&&(q.callback=D),mi(S,q),Qc(S,T)}};function Zr(S,D,T,q,W,ce,Se){return S=S.stateNode,typeof S.shouldComponentUpdate=="function"?S.shouldComponentUpdate(q,ce,Se):D.prototype&&D.prototype.isPureReactComponent?!Sn(T,q)||!Sn(W,ce):!0}function Tn(S,D,T){var q=!1,W=Fi,ce=D.contextType;return typeof ce=="object"&&ce!==null?ce=Ls(ce):(W=$n(D)?Zt:Rn.current,q=D.contextTypes,ce=(q=q!=null)?Ri(S,W):Fi),D=new D(T,ce),S.memoizedState=D.state!==null&&D.state!==void 0?D.state:null,D.updater=tr,S.stateNode=D,D._reactInternalFiber=S,q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=W,S.__reactInternalMemoizedMaskedChildContext=ce),D}function _r(S,D,T,q){S=D.state,typeof D.componentWillReceiveProps=="function"&&D.componentWillReceiveProps(T,q),typeof D.UNSAFE_componentWillReceiveProps=="function"&&D.UNSAFE_componentWillReceiveProps(T,q),D.state!==S&&tr.enqueueReplaceState(D,D.state,null)}function ei(S,D,T,q){var W=S.stateNode;W.props=T,W.state=S.memoizedState,W.refs=Ve;var ce=D.contextType;typeof ce=="object"&&ce!==null?W.context=Ls(ce):(ce=$n(D)?Zt:Rn.current,W.context=Ri(S,ce)),ce=S.updateQueue,ce!==null&&(we(S,ce,T,W,q),W.state=S.memoizedState),ce=D.getDerivedStateFromProps,typeof ce=="function"&&(vt(S,D,ce,T),W.state=S.memoizedState),typeof D.getDerivedStateFromProps=="function"||typeof W.getSnapshotBeforeUpdate=="function"||typeof W.UNSAFE_componentWillMount!="function"&&typeof W.componentWillMount!="function"||(D=W.state,typeof W.componentWillMount=="function"&&W.componentWillMount(),typeof W.UNSAFE_componentWillMount=="function"&&W.UNSAFE_componentWillMount(),D!==W.state&&tr.enqueueReplaceState(W,W.state,null),ce=S.updateQueue,ce!==null&&(we(S,ce,T,W,q),W.state=S.memoizedState)),typeof W.componentDidMount=="function"&&(S.effectTag|=4)}var Ti=Array.isArray;function Kn(S,D,T){if(S=T.ref,S!==null&&typeof S!="function"&&typeof S!="object"){if(T._owner){if(T=T._owner,T){if(T.tag!==1)throw Error(n(309));var q=T.stateNode}if(!q)throw Error(n(147,S));var W=""+S;return D!==null&&D.ref!==null&&typeof D.ref=="function"&&D.ref._stringRef===W?D.ref:(D=function(ce){var Se=q.refs;Se===Ve&&(Se=q.refs={}),ce===null?delete Se[W]:Se[W]=ce},D._stringRef=W,D)}if(typeof S!="string")throw Error(n(284));if(!T._owner)throw Error(n(290,S))}return S}function qa(S,D){if(S.type!=="textarea")throw Error(n(31,Object.prototype.toString.call(D)==="[object Object]"?"object with keys {"+Object.keys(D).join(", ")+"}":D,""))}function aa(S){function D(rt,Je){if(S){var ft=rt.lastEffect;ft!==null?(ft.nextEffect=Je,rt.lastEffect=Je):rt.firstEffect=rt.lastEffect=Je,Je.nextEffect=null,Je.effectTag=8}}function T(rt,Je){if(!S)return null;for(;Je!==null;)D(rt,Je),Je=Je.sibling;return null}function q(rt,Je){for(rt=new Map;Je!==null;)Je.key!==null?rt.set(Je.key,Je):rt.set(Je.index,Je),Je=Je.sibling;return rt}function W(rt,Je,ft){return rt=YA(rt,Je,ft),rt.index=0,rt.sibling=null,rt}function ce(rt,Je,ft){return rt.index=ft,S?(ft=rt.alternate,ft!==null?(ft=ft.index,ft<Je?(rt.effectTag=2,Je):ft):(rt.effectTag=2,Je)):Je}function Se(rt){return S&&rt.alternate===null&&(rt.effectTag=2),rt}function It(rt,Je,ft,jt){return Je===null||Je.tag!==6?(Je=BI(ft,rt.mode,jt),Je.return=rt,Je):(Je=W(Je,ft,jt),Je.return=rt,Je)}function Ct(rt,Je,ft,jt){return Je!==null&&Je.elementType===ft.type?(jt=W(Je,ft.props,jt),jt.ref=Kn(rt,Je,ft),jt.return=rt,jt):(jt=Gm(ft.type,ft.key,ft.props,null,rt.mode,jt),jt.ref=Kn(rt,Je,ft),jt.return=rt,jt)}function xt(rt,Je,ft,jt){return Je===null||Je.tag!==4||Je.stateNode.containerInfo!==ft.containerInfo||Je.stateNode.implementation!==ft.implementation?(Je=vI(ft,rt.mode,jt),Je.return=rt,Je):(Je=W(Je,ft.children||[],jt),Je.return=rt,Je)}function Nr(rt,Je,ft,jt,Cr){return Je===null||Je.tag!==7?(Je=Fu(ft,rt.mode,jt,Cr),Je.return=rt,Je):(Je=W(Je,ft,jt),Je.return=rt,Je)}function is(rt,Je,ft){if(typeof Je=="string"||typeof Je=="number")return Je=BI(""+Je,rt.mode,ft),Je.return=rt,Je;if(typeof Je=="object"&&Je!==null){switch(Je.$$typeof){case p:return ft=Gm(Je.type,Je.key,Je.props,null,rt.mode,ft),ft.ref=Kn(rt,null,Je),ft.return=rt,ft;case h:return Je=vI(Je,rt.mode,ft),Je.return=rt,Je}if(Ti(Je)||he(Je))return Je=Fu(Je,rt.mode,ft,null),Je.return=rt,Je;qa(rt,Je)}return null}function fi(rt,Je,ft,jt){var Cr=Je!==null?Je.key:null;if(typeof ft=="string"||typeof ft=="number")return Cr!==null?null:It(rt,Je,""+ft,jt);if(typeof ft=="object"&&ft!==null){switch(ft.$$typeof){case p:return ft.key===Cr?ft.type===E?Nr(rt,Je,ft.props.children,jt,Cr):Ct(rt,Je,ft,jt):null;case h:return ft.key===Cr?xt(rt,Je,ft,jt):null}if(Ti(ft)||he(ft))return Cr!==null?null:Nr(rt,Je,ft,jt,null);qa(rt,ft)}return null}function Ao(rt,Je,ft,jt,Cr){if(typeof jt=="string"||typeof jt=="number")return rt=rt.get(ft)||null,It(Je,rt,""+jt,Cr);if(typeof jt=="object"&&jt!==null){switch(jt.$$typeof){case p:return rt=rt.get(jt.key===null?ft:jt.key)||null,jt.type===E?Nr(Je,rt,jt.props.children,Cr,jt.key):Ct(Je,rt,jt,Cr);case h:return rt=rt.get(jt.key===null?ft:jt.key)||null,xt(Je,rt,jt,Cr)}if(Ti(jt)||he(jt))return rt=rt.get(ft)||null,Nr(Je,rt,jt,Cr,null);qa(Je,jt)}return null}function VA(rt,Je,ft,jt){for(var Cr=null,In=null,Sr=Je,wn=Je=0,ni=null;Sr!==null&&wn<ft.length;wn++){Sr.index>wn?(ni=Sr,Sr=null):ni=Sr.sibling;var Xr=fi(rt,Sr,ft[wn],jt);if(Xr===null){Sr===null&&(Sr=ni);break}S&&Sr&&Xr.alternate===null&&D(rt,Sr),Je=ce(Xr,Je,wn),In===null?Cr=Xr:In.sibling=Xr,In=Xr,Sr=ni}if(wn===ft.length)return T(rt,Sr),Cr;if(Sr===null){for(;wn<ft.length;wn++)Sr=is(rt,ft[wn],jt),Sr!==null&&(Je=ce(Sr,Je,wn),In===null?Cr=Sr:In.sibling=Sr,In=Sr);return Cr}for(Sr=q(rt,Sr);wn<ft.length;wn++)ni=Ao(Sr,rt,wn,ft[wn],jt),ni!==null&&(S&&ni.alternate!==null&&Sr.delete(ni.key===null?wn:ni.key),Je=ce(ni,Je,wn),In===null?Cr=ni:In.sibling=ni,In=ni);return S&&Sr.forEach(function(fo){return D(rt,fo)}),Cr}function Ho(rt,Je,ft,jt){var Cr=he(ft);if(typeof Cr!="function")throw Error(n(150));if(ft=Cr.call(ft),ft==null)throw Error(n(151));for(var In=Cr=null,Sr=Je,wn=Je=0,ni=null,Xr=ft.next();Sr!==null&&!Xr.done;wn++,Xr=ft.next()){Sr.index>wn?(ni=Sr,Sr=null):ni=Sr.sibling;var fo=fi(rt,Sr,Xr.value,jt);if(fo===null){Sr===null&&(Sr=ni);break}S&&Sr&&fo.alternate===null&&D(rt,Sr),Je=ce(fo,Je,wn),In===null?Cr=fo:In.sibling=fo,In=fo,Sr=ni}if(Xr.done)return T(rt,Sr),Cr;if(Sr===null){for(;!Xr.done;wn++,Xr=ft.next())Xr=is(rt,Xr.value,jt),Xr!==null&&(Je=ce(Xr,Je,wn),In===null?Cr=Xr:In.sibling=Xr,In=Xr);return Cr}for(Sr=q(rt,Sr);!Xr.done;wn++,Xr=ft.next())Xr=Ao(Sr,rt,wn,Xr.value,jt),Xr!==null&&(S&&Xr.alternate!==null&&Sr.delete(Xr.key===null?wn:Xr.key),Je=ce(Xr,Je,wn),In===null?Cr=Xr:In.sibling=Xr,In=Xr);return S&&Sr.forEach(function(mF){return D(rt,mF)}),Cr}return function(rt,Je,ft,jt){var Cr=typeof ft=="object"&&ft!==null&&ft.type===E&&ft.key===null;Cr&&(ft=ft.props.children);var In=typeof ft=="object"&&ft!==null;if(In)switch(ft.$$typeof){case p:e:{for(In=ft.key,Cr=Je;Cr!==null;){if(Cr.key===In)if(Cr.tag===7?ft.type===E:Cr.elementType===ft.type){T(rt,Cr.sibling),Je=W(Cr,ft.type===E?ft.props.children:ft.props,jt),Je.ref=Kn(rt,Cr,ft),Je.return=rt,rt=Je;break e}else{T(rt,Cr);break}else D(rt,Cr);Cr=Cr.sibling}ft.type===E?(Je=Fu(ft.props.children,rt.mode,jt,ft.key),Je.return=rt,rt=Je):(jt=Gm(ft.type,ft.key,ft.props,null,rt.mode,jt),jt.ref=Kn(rt,Je,ft),jt.return=rt,rt=jt)}return Se(rt);case h:e:{for(Cr=ft.key;Je!==null;){if(Je.key===Cr)if(Je.tag===4&&Je.stateNode.containerInfo===ft.containerInfo&&Je.stateNode.implementation===ft.implementation){T(rt,Je.sibling),Je=W(Je,ft.children||[],jt),Je.return=rt,rt=Je;break e}else{T(rt,Je);break}else D(rt,Je);Je=Je.sibling}Je=vI(ft,rt.mode,jt),Je.return=rt,rt=Je}return Se(rt)}if(typeof ft=="string"||typeof ft=="number")return ft=""+ft,Je!==null&&Je.tag===6?(T(rt,Je.sibling),Je=W(Je,ft,jt),Je.return=rt,rt=Je):(T(rt,Je),Je=BI(ft,rt.mode,jt),Je.return=rt,rt=Je),Se(rt);if(Ti(ft))return VA(rt,Je,ft,jt);if(he(ft))return Ho(rt,Je,ft,jt);if(In&&qa(rt,ft),typeof ft>"u"&&!Cr)switch(rt.tag){case 1:case 0:throw rt=rt.type,Error(n(152,rt.displayName||rt.name||"Component"))}return T(rt,Je)}}var yi=aa(!0),la=aa(!1),ja={},lo={current:ja},FA={current:ja},Ec={current:ja};function ca(S){if(S===ja)throw Error(n(174));return S}function rg(S,D){Fn(Ec,D,S),Fn(FA,S,S),Fn(lo,ja,S),D=ne(D),Ue(lo,S),Fn(lo,D,S)}function Ic(S){Ue(lo,S),Ue(FA,S),Ue(Ec,S)}function bm(S){var D=ca(Ec.current),T=ca(lo.current);D=Z(T,S.type,D),T!==D&&(Fn(FA,S,S),Fn(lo,D,S))}function ng(S){FA.current===S&&(Ue(lo,S),Ue(FA,S))}var Vn={current:0};function up(S){for(var D=S;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Qs(T)||ro(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if((D.effectTag&64)!==0)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break;for(;D.sibling===null;){if(D.return===null||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function ig(S,D){return{responder:S,props:D}}var RA=u.ReactCurrentDispatcher,Os=u.ReactCurrentBatchConfig,Iu=0,Ga=null,ji=null,ua=null,wu=null,ms=null,wc=null,Bc=0,G=null,Dt=0,vl=!1,Si=null,vc=0;function lt(){throw Error(n(321))}function Bu(S,D){if(D===null)return!1;for(var T=0;T<D.length&&T<S.length;T++)if(!ds(S[T],D[T]))return!1;return!0}function sg(S,D,T,q,W,ce){if(Iu=ce,Ga=D,ua=S!==null?S.memoizedState:null,RA.current=ua===null?uI:Fm,D=T(q,W),vl){do vl=!1,vc+=1,ua=S!==null?S.memoizedState:null,wc=wu,G=ms=ji=null,RA.current=Fm,D=T(q,W);while(vl);Si=null,vc=0}if(RA.current=Du,S=Ga,S.memoizedState=wu,S.expirationTime=Bc,S.updateQueue=G,S.effectTag|=Dt,S=ji!==null&&ji.next!==null,Iu=0,wc=ms=wu=ua=ji=Ga=null,Bc=0,G=null,Dt=0,S)throw Error(n(300));return D}function cI(){RA.current=Du,Iu=0,wc=ms=wu=ua=ji=Ga=null,Bc=0,G=null,Dt=0,vl=!1,Si=null,vc=0}function TA(){var S={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return ms===null?wu=ms=S:ms=ms.next=S,ms}function Ap(){if(wc!==null)ms=wc,wc=ms.next,ji=ua,ua=ji!==null?ji.next:null;else{if(ua===null)throw Error(n(310));ji=ua;var S={memoizedState:ji.memoizedState,baseState:ji.baseState,queue:ji.queue,baseUpdate:ji.baseUpdate,next:null};ms=ms===null?wu=S:ms.next=S,ua=ji.next}return ms}function yr(S,D){return typeof D=="function"?D(S):D}function ys(S){var D=Ap(),T=D.queue;if(T===null)throw Error(n(311));if(T.lastRenderedReducer=S,0<vc){var q=T.dispatch;if(Si!==null){var W=Si.get(T);if(W!==void 0){Si.delete(T);var ce=D.memoizedState;do ce=S(ce,W.action),W=W.next;while(W!==null);return ds(ce,D.memoizedState)||(Uo=!0),D.memoizedState=ce,D.baseUpdate===T.last&&(D.baseState=ce),T.lastRenderedState=ce,[ce,q]}}return[D.memoizedState,q]}q=T.last;var Se=D.baseUpdate;if(ce=D.baseState,Se!==null?(q!==null&&(q.next=null),q=Se.next):q=q!==null?q.next:null,q!==null){var It=W=null,Ct=q,xt=!1;do{var Nr=Ct.expirationTime;Nr<Iu?(xt||(xt=!0,It=Se,W=ce),Nr>Bc&&(Bc=Nr,jm(Bc))):(yI(Nr,Ct.suspenseConfig),ce=Ct.eagerReducer===S?Ct.eagerState:S(ce,Ct.action)),Se=Ct,Ct=Ct.next}while(Ct!==null&&Ct!==q);xt||(It=Se,W=ce),ds(ce,D.memoizedState)||(Uo=!0),D.memoizedState=ce,D.baseUpdate=It,D.baseState=W,T.lastRenderedState=ce}return[D.memoizedState,T.dispatch]}function og(S){var D=TA();return typeof S=="function"&&(S=S()),D.memoizedState=D.baseState=S,S=D.queue={last:null,dispatch:null,lastRenderedReducer:yr,lastRenderedState:S},S=S.dispatch=Ag.bind(null,Ga,S),[D.memoizedState,S]}function ag(S){return ys(yr,S)}function lg(S,D,T,q){return S={tag:S,create:D,destroy:T,deps:q,next:null},G===null?(G={lastEffect:null},G.lastEffect=S.next=S):(D=G.lastEffect,D===null?G.lastEffect=S.next=S:(T=D.next,D.next=S,S.next=T,G.lastEffect=S)),S}function fp(S,D,T,q){var W=TA();Dt|=S,W.memoizedState=lg(D,T,void 0,q===void 0?null:q)}function Dc(S,D,T,q){var W=Ap();q=q===void 0?null:q;var ce=void 0;if(ji!==null){var Se=ji.memoizedState;if(ce=Se.destroy,q!==null&&Bu(q,Se.deps)){lg(0,T,ce,q);return}}Dt|=S,W.memoizedState=lg(D,T,ce,q)}function mt(S,D){return fp(516,192,S,D)}function Qm(S,D){return Dc(516,192,S,D)}function cg(S,D){if(typeof D=="function")return S=S(),D(S),function(){D(null)};if(D!=null)return S=S(),D.current=S,function(){D.current=null}}function ug(){}function vu(S,D){return TA().memoizedState=[S,D===void 0?null:D],S}function km(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(T.memoizedState=[S,D],S)}function Ag(S,D,T){if(!(25>vc))throw Error(n(301));var q=S.alternate;if(S===Ga||q!==null&&q===Ga)if(vl=!0,S={expirationTime:Iu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},Si===null&&(Si=new Map),T=Si.get(D),T===void 0)Si.set(D,S);else{for(D=T;D.next!==null;)D=D.next;D.next=S}else{var W=ga(),ce=xe.suspense;W=qA(W,S,ce),ce={expirationTime:W,suspenseConfig:ce,action:T,eagerReducer:null,eagerState:null,next:null};var Se=D.last;if(Se===null)ce.next=ce;else{var It=Se.next;It!==null&&(ce.next=It),Se.next=ce}if(D.last=ce,S.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var Ct=D.lastRenderedState,xt=q(Ct,T);if(ce.eagerReducer=q,ce.eagerState=xt,ds(xt,Ct))return}catch{}finally{}Qc(S,W)}}var Du={readContext:Ls,useCallback:lt,useContext:lt,useEffect:lt,useImperativeHandle:lt,useLayoutEffect:lt,useMemo:lt,useReducer:lt,useRef:lt,useState:lt,useDebugValue:lt,useResponder:lt,useDeferredValue:lt,useTransition:lt},uI={readContext:Ls,useCallback:vu,useContext:Ls,useEffect:mt,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,fp(4,36,cg.bind(null,D,S),T)},useLayoutEffect:function(S,D){return fp(4,36,S,D)},useMemo:function(S,D){var T=TA();return D=D===void 0?null:D,S=S(),T.memoizedState=[S,D],S},useReducer:function(S,D,T){var q=TA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,S=q.queue={last:null,dispatch:null,lastRenderedReducer:S,lastRenderedState:D},S=S.dispatch=Ag.bind(null,Ga,S),[q.memoizedState,S]},useRef:function(S){var D=TA();return S={current:S},D.memoizedState=S},useState:og,useDebugValue:ug,useResponder:ig,useDeferredValue:function(S,D){var T=og(S),q=T[0],W=T[1];return mt(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=og(!1),T=D[0],q=D[1];return[vu(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},Fm={readContext:Ls,useCallback:km,useContext:Ls,useEffect:Qm,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,Dc(4,36,cg.bind(null,D,S),T)},useLayoutEffect:function(S,D){return Dc(4,36,S,D)},useMemo:function(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(S=S(),T.memoizedState=[S,D],S)},useReducer:ys,useRef:function(){return Ap().memoizedState},useState:ag,useDebugValue:ug,useResponder:ig,useDeferredValue:function(S,D){var T=ag(S),q=T[0],W=T[1];return Qm(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=ag(!1),T=D[0],q=D[1];return[km(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},Aa=null,Sc=null,Dl=!1;function Su(S,D){var T=xl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=S,T.effectTag=8,S.lastEffect!==null?(S.lastEffect.nextEffect=T,S.lastEffect=T):S.firstEffect=S.lastEffect=T}function fg(S,D){switch(S.tag){case 5:return D=to(D,S.type,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 6:return D=Di(D,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function NA(S){if(Dl){var D=Sc;if(D){var T=D;if(!fg(S,D)){if(D=pc(T),!D||!fg(S,D)){S.effectTag=S.effectTag&-1025|2,Dl=!1,Aa=S;return}Su(Aa,T)}Aa=S,Sc=gu(D)}else S.effectTag=S.effectTag&-1025|2,Dl=!1,Aa=S}}function pp(S){for(S=S.return;S!==null&&S.tag!==5&&S.tag!==3&&S.tag!==13;)S=S.return;Aa=S}function Wa(S){if(!y||S!==Aa)return!1;if(!Dl)return pp(S),Dl=!0,!1;var D=S.type;if(S.tag!==5||D!=="head"&&D!=="body"&&!Te(D,S.memoizedProps))for(D=Sc;D;)Su(S,D),D=pc(D);if(pp(S),S.tag===13){if(!y)throw Error(n(316));if(S=S.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));Sc=ks(S)}else Sc=Aa?pc(S.stateNode):null;return!0}function pg(){y&&(Sc=Aa=null,Dl=!1)}var hp=u.ReactCurrentOwner,Uo=!1;function Cs(S,D,T,q){D.child=S===null?la(D,null,T,q):yi(D,S.child,T,q)}function Ci(S,D,T,q,W){T=T.render;var ce=D.ref;return Ns(D,W),q=sg(S,D,T,q,ce,W),S!==null&&!Uo?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=W&&(S.expirationTime=0),ti(S,D,W)):(D.effectTag|=1,Cs(S,D,q,W),D.child)}function Rm(S,D,T,q,W,ce){if(S===null){var Se=T.type;return typeof Se=="function"&&!wI(Se)&&Se.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=Se,Tm(S,D,Se,q,W,ce)):(S=Gm(T.type,null,q,null,D.mode,ce),S.ref=D.ref,S.return=D,D.child=S)}return Se=S.child,W<ce&&(W=Se.memoizedProps,T=T.compare,T=T!==null?T:Sn,T(W,q)&&S.ref===D.ref)?ti(S,D,ce):(D.effectTag|=1,S=YA(Se,q,ce),S.ref=D.ref,S.return=D,D.child=S)}function Tm(S,D,T,q,W,ce){return S!==null&&Sn(S.memoizedProps,q)&&S.ref===D.ref&&(Uo=!1,W<ce)?ti(S,D,ce):LA(S,D,T,q,ce)}function _o(S,D){var T=D.ref;(S===null&&T!==null||S!==null&&S.ref!==T)&&(D.effectTag|=128)}function LA(S,D,T,q,W){var ce=$n(T)?Zt:Rn.current;return ce=Ri(D,ce),Ns(D,W),T=sg(S,D,T,q,ce,W),S!==null&&!Uo?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=W&&(S.expirationTime=0),ti(S,D,W)):(D.effectTag|=1,Cs(S,D,T,W),D.child)}function gp(S,D,T,q,W){if($n(T)){var ce=!0;gc(D)}else ce=!1;if(Ns(D,W),D.stateNode===null)S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),Tn(D,T,q,W),ei(D,T,q,W),q=!0;else if(S===null){var Se=D.stateNode,It=D.memoizedProps;Se.props=It;var Ct=Se.context,xt=T.contextType;typeof xt=="object"&&xt!==null?xt=Ls(xt):(xt=$n(T)?Zt:Rn.current,xt=Ri(D,xt));var Nr=T.getDerivedStateFromProps,is=typeof Nr=="function"||typeof Se.getSnapshotBeforeUpdate=="function";is||typeof Se.UNSAFE_componentWillReceiveProps!="function"&&typeof Se.componentWillReceiveProps!="function"||(It!==q||Ct!==xt)&&_r(D,Se,q,xt),ao=!1;var fi=D.memoizedState;Ct=Se.state=fi;var Ao=D.updateQueue;Ao!==null&&(we(D,Ao,q,Se,W),Ct=D.memoizedState),It!==q||fi!==Ct||Ui.current||ao?(typeof Nr=="function"&&(vt(D,T,Nr,q),Ct=D.memoizedState),(It=ao||Zr(D,T,It,q,fi,Ct,xt))?(is||typeof Se.UNSAFE_componentWillMount!="function"&&typeof Se.componentWillMount!="function"||(typeof Se.componentWillMount=="function"&&Se.componentWillMount(),typeof Se.UNSAFE_componentWillMount=="function"&&Se.UNSAFE_componentWillMount()),typeof Se.componentDidMount=="function"&&(D.effectTag|=4)):(typeof Se.componentDidMount=="function"&&(D.effectTag|=4),D.memoizedProps=q,D.memoizedState=Ct),Se.props=q,Se.state=Ct,Se.context=xt,q=It):(typeof Se.componentDidMount=="function"&&(D.effectTag|=4),q=!1)}else Se=D.stateNode,It=D.memoizedProps,Se.props=D.type===D.elementType?It:di(D.type,It),Ct=Se.context,xt=T.contextType,typeof xt=="object"&&xt!==null?xt=Ls(xt):(xt=$n(T)?Zt:Rn.current,xt=Ri(D,xt)),Nr=T.getDerivedStateFromProps,(is=typeof Nr=="function"||typeof Se.getSnapshotBeforeUpdate=="function")||typeof Se.UNSAFE_componentWillReceiveProps!="function"&&typeof Se.componentWillReceiveProps!="function"||(It!==q||Ct!==xt)&&_r(D,Se,q,xt),ao=!1,Ct=D.memoizedState,fi=Se.state=Ct,Ao=D.updateQueue,Ao!==null&&(we(D,Ao,q,Se,W),fi=D.memoizedState),It!==q||Ct!==fi||Ui.current||ao?(typeof Nr=="function"&&(vt(D,T,Nr,q),fi=D.memoizedState),(Nr=ao||Zr(D,T,It,q,Ct,fi,xt))?(is||typeof Se.UNSAFE_componentWillUpdate!="function"&&typeof Se.componentWillUpdate!="function"||(typeof Se.componentWillUpdate=="function"&&Se.componentWillUpdate(q,fi,xt),typeof Se.UNSAFE_componentWillUpdate=="function"&&Se.UNSAFE_componentWillUpdate(q,fi,xt)),typeof Se.componentDidUpdate=="function"&&(D.effectTag|=4),typeof Se.getSnapshotBeforeUpdate=="function"&&(D.effectTag|=256)):(typeof Se.componentDidUpdate!="function"||It===S.memoizedProps&&Ct===S.memoizedState||(D.effectTag|=4),typeof Se.getSnapshotBeforeUpdate!="function"||It===S.memoizedProps&&Ct===S.memoizedState||(D.effectTag|=256),D.memoizedProps=q,D.memoizedState=fi),Se.props=q,Se.state=fi,Se.context=xt,q=Nr):(typeof Se.componentDidUpdate!="function"||It===S.memoizedProps&&Ct===S.memoizedState||(D.effectTag|=4),typeof Se.getSnapshotBeforeUpdate!="function"||It===S.memoizedProps&&Ct===S.memoizedState||(D.effectTag|=256),q=!1);return dp(S,D,T,q,ce,W)}function dp(S,D,T,q,W,ce){_o(S,D);var Se=(D.effectTag&64)!==0;if(!q&&!Se)return W&&Il(D,T,!1),ti(S,D,ce);q=D.stateNode,hp.current=D;var It=Se&&typeof T.getDerivedStateFromError!="function"?null:q.render();return D.effectTag|=1,S!==null&&Se?(D.child=yi(D,S.child,null,ce),D.child=yi(D,null,It,ce)):Cs(S,D,It,ce),D.memoizedState=q.state,W&&Il(D,T,!0),D.child}function hg(S){var D=S.stateNode;D.pendingContext?hc(S,D.pendingContext,D.pendingContext!==D.context):D.context&&hc(S,D.context,!1),rg(S,D.containerInfo)}var fa={dehydrated:null,retryTime:0};function rn(S,D,T){var q=D.mode,W=D.pendingProps,ce=Vn.current,Se=!1,It;if((It=(D.effectTag&64)!==0)||(It=(ce&2)!==0&&(S===null||S.memoizedState!==null)),It?(Se=!0,D.effectTag&=-65):S!==null&&S.memoizedState===null||W.fallback===void 0||W.unstable_avoidThisFallback===!0||(ce|=1),Fn(Vn,ce&1,D),S===null){if(W.fallback!==void 0&&NA(D),Se){if(Se=W.fallback,W=Fu(null,q,0,null),W.return=D,(D.mode&2)===0)for(S=D.memoizedState!==null?D.child.child:D.child,W.child=S;S!==null;)S.return=W,S=S.sibling;return T=Fu(Se,q,T,null),T.return=D,W.sibling=T,D.memoizedState=fa,D.child=W,T}return q=W.children,D.memoizedState=null,D.child=la(D,null,q,T)}if(S.memoizedState!==null){if(S=S.child,q=S.sibling,Se){if(W=W.fallback,T=YA(S,S.pendingProps,0),T.return=D,(D.mode&2)===0&&(Se=D.memoizedState!==null?D.child.child:D.child,Se!==S.child))for(T.child=Se;Se!==null;)Se.return=T,Se=Se.sibling;return q=YA(q,W,q.expirationTime),q.return=D,T.sibling=q,T.childExpirationTime=0,D.memoizedState=fa,D.child=T,q}return T=yi(D,S.child,W.children,T),D.memoizedState=null,D.child=T}if(S=S.child,Se){if(Se=W.fallback,W=Fu(null,q,0,null),W.return=D,W.child=S,S!==null&&(S.return=W),(D.mode&2)===0)for(S=D.memoizedState!==null?D.child.child:D.child,W.child=S;S!==null;)S.return=W,S=S.sibling;return T=Fu(Se,q,T,null),T.return=D,W.sibling=T,T.effectTag|=2,W.childExpirationTime=0,D.memoizedState=fa,D.child=W,T}return D.memoizedState=null,D.child=yi(D,S,W.children,T)}function co(S,D){S.expirationTime<D&&(S.expirationTime=D);var T=S.alternate;T!==null&&T.expirationTime<D&&(T.expirationTime=D),Ts(S.return,D)}function OA(S,D,T,q,W,ce){var Se=S.memoizedState;Se===null?S.memoizedState={isBackwards:D,rendering:null,last:q,tail:T,tailExpiration:0,tailMode:W,lastEffect:ce}:(Se.isBackwards=D,Se.rendering=null,Se.last=q,Se.tail=T,Se.tailExpiration=0,Se.tailMode=W,Se.lastEffect=ce)}function Ya(S,D,T){var q=D.pendingProps,W=q.revealOrder,ce=q.tail;if(Cs(S,D,q.children,T),q=Vn.current,(q&2)!==0)q=q&1|2,D.effectTag|=64;else{if(S!==null&&(S.effectTag&64)!==0)e:for(S=D.child;S!==null;){if(S.tag===13)S.memoizedState!==null&&co(S,T);else if(S.tag===19)co(S,T);else if(S.child!==null){S.child.return=S,S=S.child;continue}if(S===D)break e;for(;S.sibling===null;){if(S.return===null||S.return===D)break e;S=S.return}S.sibling.return=S.return,S=S.sibling}q&=1}if(Fn(Vn,q,D),(D.mode&2)===0)D.memoizedState=null;else switch(W){case"forwards":for(T=D.child,W=null;T!==null;)S=T.alternate,S!==null&&up(S)===null&&(W=T),T=T.sibling;T=W,T===null?(W=D.child,D.child=null):(W=T.sibling,T.sibling=null),OA(D,!1,W,T,ce,D.lastEffect);break;case"backwards":for(T=null,W=D.child,D.child=null;W!==null;){if(S=W.alternate,S!==null&&up(S)===null){D.child=W;break}S=W.sibling,W.sibling=T,T=W,W=S}OA(D,!0,T,null,ce,D.lastEffect);break;case"together":OA(D,!1,null,null,void 0,D.lastEffect);break;default:D.memoizedState=null}return D.child}function ti(S,D,T){S!==null&&(D.dependencies=S.dependencies);var q=D.expirationTime;if(q!==0&&jm(q),D.childExpirationTime<T)return null;if(S!==null&&D.child!==S.child)throw Error(n(153));if(D.child!==null){for(S=D.child,T=YA(S,S.pendingProps,S.expirationTime),D.child=T,T.return=D;S.sibling!==null;)S=S.sibling,T=T.sibling=YA(S,S.pendingProps,S.expirationTime),T.return=D;T.sibling=null}return D.child}function pa(S){S.effectTag|=4}var Pc,Sl,ts,Hr;if(I)Pc=function(S,D){for(var T=D.child;T!==null;){if(T.tag===5||T.tag===6)H(S,T.stateNode);else if(T.tag!==4&&T.child!==null){T.child.return=T,T=T.child;continue}if(T===D)break;for(;T.sibling===null;){if(T.return===null||T.return===D)return;T=T.return}T.sibling.return=T.return,T=T.sibling}},Sl=function(){},ts=function(S,D,T,q,W){if(S=S.memoizedProps,S!==q){var ce=D.stateNode,Se=ca(lo.current);T=Me(ce,T,S,q,W,Se),(D.updateQueue=T)&&pa(D)}},Hr=function(S,D,T,q){T!==q&&pa(D)};else if(P){Pc=function(S,D,T,q){for(var W=D.child;W!==null;){if(W.tag===5){var ce=W.stateNode;T&&q&&(ce=ki(ce,W.type,W.memoizedProps,W)),H(S,ce)}else if(W.tag===6)ce=W.stateNode,T&&q&&(ce=gs(ce,W.memoizedProps,W)),H(S,ce);else if(W.tag!==4){if(W.tag===13&&(W.effectTag&4)!==0&&(ce=W.memoizedState!==null)){var Se=W.child;if(Se!==null&&(Se.child!==null&&(Se.child.return=Se,Pc(S,Se,!0,ce)),ce=Se.sibling,ce!==null)){ce.return=W,W=ce;continue}}if(W.child!==null){W.child.return=W,W=W.child;continue}}if(W===D)break;for(;W.sibling===null;){if(W.return===null||W.return===D)return;W=W.return}W.sibling.return=W.return,W=W.sibling}};var mp=function(S,D,T,q){for(var W=D.child;W!==null;){if(W.tag===5){var ce=W.stateNode;T&&q&&(ce=ki(ce,W.type,W.memoizedProps,W)),jr(S,ce)}else if(W.tag===6)ce=W.stateNode,T&&q&&(ce=gs(ce,W.memoizedProps,W)),jr(S,ce);else if(W.tag!==4){if(W.tag===13&&(W.effectTag&4)!==0&&(ce=W.memoizedState!==null)){var Se=W.child;if(Se!==null&&(Se.child!==null&&(Se.child.return=Se,mp(S,Se,!0,ce)),ce=Se.sibling,ce!==null)){ce.return=W,W=ce;continue}}if(W.child!==null){W.child.return=W,W=W.child;continue}}if(W===D)break;for(;W.sibling===null;){if(W.return===null||W.return===D)return;W=W.return}W.sibling.return=W.return,W=W.sibling}};Sl=function(S){var D=S.stateNode;if(S.firstEffect!==null){var T=D.containerInfo,q=Br(T);mp(q,S,!1,!1),D.pendingChildren=q,pa(S),Hn(T,q)}},ts=function(S,D,T,q,W){var ce=S.stateNode,Se=S.memoizedProps;if((S=D.firstEffect===null)&&Se===q)D.stateNode=ce;else{var It=D.stateNode,Ct=ca(lo.current),xt=null;Se!==q&&(xt=Me(It,T,Se,q,W,Ct)),S&&xt===null?D.stateNode=ce:(ce=fr(ce,xt,T,Se,q,D,S,It),yt(ce,T,q,W,Ct)&&pa(D),D.stateNode=ce,S?pa(D):Pc(ce,D,!1,!1))}},Hr=function(S,D,T,q){T!==q&&(S=ca(Ec.current),T=ca(lo.current),D.stateNode=_e(q,S,T,D),pa(D))}}else Sl=function(){},ts=function(){},Hr=function(){};function xc(S,D){switch(S.tailMode){case"hidden":D=S.tail;for(var T=null;D!==null;)D.alternate!==null&&(T=D),D=D.sibling;T===null?S.tail=null:T.sibling=null;break;case"collapsed":T=S.tail;for(var q=null;T!==null;)T.alternate!==null&&(q=T),T=T.sibling;q===null?D||S.tail===null?S.tail=null:S.tail.sibling=null:q.sibling=null}}function AI(S){switch(S.tag){case 1:$n(S.type)&&Ma(S);var D=S.effectTag;return D&4096?(S.effectTag=D&-4097|64,S):null;case 3:if(Ic(S),$t(S),D=S.effectTag,(D&64)!==0)throw Error(n(285));return S.effectTag=D&-4097|64,S;case 5:return ng(S),null;case 13:return Ue(Vn,S),D=S.effectTag,D&4096?(S.effectTag=D&-4097|64,S):null;case 19:return Ue(Vn,S),null;case 4:return Ic(S),null;case 10:return Zi(S),null;default:return null}}function gg(S,D){return{value:S,source:D,stack:Cl(D)}}var dg=typeof WeakSet=="function"?WeakSet:Set;function Ka(S,D){var T=D.source,q=D.stack;q===null&&T!==null&&(q=Cl(T)),T!==null&&ge(T.type),D=D.value,S!==null&&S.tag===1&&ge(S.type);try{console.error(D)}catch(W){setTimeout(function(){throw W})}}function Nm(S,D){try{D.props=S.memoizedProps,D.state=S.memoizedState,D.componentWillUnmount()}catch(T){WA(S,T)}}function mg(S){var D=S.ref;if(D!==null)if(typeof D=="function")try{D(null)}catch(T){WA(S,T)}else D.current=null}function kt(S,D){switch(D.tag){case 0:case 11:case 15:N(2,0,D);break;case 1:if(D.effectTag&256&&S!==null){var T=S.memoizedProps,q=S.memoizedState;S=D.stateNode,D=S.getSnapshotBeforeUpdate(D.elementType===D.type?T:di(D.type,T),q),S.__reactInternalSnapshotBeforeUpdate=D}break;case 3:case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}function N(S,D,T){if(T=T.updateQueue,T=T!==null?T.lastEffect:null,T!==null){var q=T=T.next;do{if((q.tag&S)!==0){var W=q.destroy;q.destroy=void 0,W!==void 0&&W()}(q.tag&D)!==0&&(W=q.create,q.destroy=W()),q=q.next}while(q!==T)}}function K(S,D,T){switch(typeof II=="function"&&II(D),D.tag){case 0:case 11:case 14:case 15:if(S=D.updateQueue,S!==null&&(S=S.lastEffect,S!==null)){var q=S.next;so(97<T?97:T,function(){var W=q;do{var ce=W.destroy;if(ce!==void 0){var Se=D;try{ce()}catch(It){WA(Se,It)}}W=W.next}while(W!==q)})}break;case 1:mg(D),T=D.stateNode,typeof T.componentWillUnmount=="function"&&Nm(D,T);break;case 5:mg(D);break;case 4:I?gr(S,D,T):P&&ze(D)}}function te(S,D,T){for(var q=D;;)if(K(S,q,T),q.child===null||I&&q.tag===4){if(q===D)break;for(;q.sibling===null;){if(q.return===null||q.return===D)return;q=q.return}q.sibling.return=q.return,q=q.sibling}else q.child.return=q,q=q.child}function Ae(S){var D=S.alternate;S.return=null,S.child=null,S.memoizedState=null,S.updateQueue=null,S.dependencies=null,S.alternate=null,S.firstEffect=null,S.lastEffect=null,S.pendingProps=null,S.memoizedProps=null,D!==null&&Ae(D)}function ze(S){if(P){S=S.stateNode.containerInfo;var D=Br(S);bs(S,D)}}function gt(S){return S.tag===5||S.tag===3||S.tag===4}function ur(S){if(I){e:{for(var D=S.return;D!==null;){if(gt(D)){var T=D;break e}D=D.return}throw Error(n(160))}switch(D=T.stateNode,T.tag){case 5:var q=!1;break;case 3:D=D.containerInfo,q=!0;break;case 4:D=D.containerInfo,q=!0;break;default:throw Error(n(161))}T.effectTag&16&&(Ut(D),T.effectTag&=-17);e:t:for(T=S;;){for(;T.sibling===null;){if(T.return===null||gt(T.return)){T=null;break e}T=T.return}for(T.sibling.return=T.return,T=T.sibling;T.tag!==5&&T.tag!==6&&T.tag!==18;){if(T.effectTag&2||T.child===null||T.tag===4)continue t;T.child.return=T,T=T.child}if(!(T.effectTag&2)){T=T.stateNode;break e}}for(var W=S;;){var ce=W.tag===5||W.tag===6;if(ce)ce=ce?W.stateNode:W.stateNode.instance,T?q?Ne(D,ce,T):ke(D,ce,T):q?J(D,ce):F(D,ce);else if(W.tag!==4&&W.child!==null){W.child.return=W,W=W.child;continue}if(W===S)break;for(;W.sibling===null;){if(W.return===null||W.return===S)return;W=W.return}W.sibling.return=W.return,W=W.sibling}}}function gr(S,D,T){for(var q=D,W=!1,ce,Se;;){if(!W){W=q.return;e:for(;;){if(W===null)throw Error(n(160));switch(ce=W.stateNode,W.tag){case 5:Se=!1;break e;case 3:ce=ce.containerInfo,Se=!0;break e;case 4:ce=ce.containerInfo,Se=!0;break e}W=W.return}W=!0}if(q.tag===5||q.tag===6)te(S,q,T),Se?ht(ce,q.stateNode):st(ce,q.stateNode);else if(q.tag===4){if(q.child!==null){ce=q.stateNode.containerInfo,Se=!0,q.child.return=q,q=q.child;continue}}else if(K(S,q,T),q.child!==null){q.child.return=q,q=q.child;continue}if(q===D)break;for(;q.sibling===null;){if(q.return===null||q.return===D)return;q=q.return,q.tag===4&&(W=!1)}q.sibling.return=q.return,q=q.sibling}}function hn(S,D){if(I)switch(D.tag){case 0:case 11:case 14:case 15:N(4,8,D);break;case 1:break;case 5:var T=D.stateNode;if(T!=null){var q=D.memoizedProps;S=S!==null?S.memoizedProps:q;var W=D.type,ce=D.updateQueue;D.updateQueue=null,ce!==null&&ie(T,ce,W,S,q,D)}break;case 6:if(D.stateNode===null)throw Error(n(162));T=D.memoizedProps,X(D.stateNode,S!==null?S.memoizedProps:T,T);break;case 3:y&&(D=D.stateNode,D.hydrate&&(D.hydrate=!1,En(D.containerInfo)));break;case 12:break;case 13:ri(D),Ni(D);break;case 19:Ni(D);break;case 17:break;case 20:break;case 21:break;default:throw Error(n(163))}else{switch(D.tag){case 0:case 11:case 14:case 15:N(4,8,D);return;case 12:return;case 13:ri(D),Ni(D);return;case 19:Ni(D);return;case 3:y&&(T=D.stateNode,T.hydrate&&(T.hydrate=!1,En(T.containerInfo)))}e:if(P)switch(D.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:D=D.stateNode,bs(D.containerInfo,D.pendingChildren);break e;default:throw Error(n(163))}}}function ri(S){var D=S;if(S.memoizedState===null)var T=!1;else T=!0,D=S.child,hI=Hi();if(I&&D!==null){e:if(S=D,I)for(D=S;;){if(D.tag===5){var q=D.stateNode;T?Xt(q):tn(D.stateNode,D.memoizedProps)}else if(D.tag===6)q=D.stateNode,T?Pt(q):Dr(q,D.memoizedProps);else if(D.tag===13&&D.memoizedState!==null&&D.memoizedState.dehydrated===null){q=D.child.sibling,q.return=D,D=q;continue}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break e;for(;D.sibling===null;){if(D.return===null||D.return===S)break e;D=D.return}D.sibling.return=D.return,D=D.sibling}}}function Ni(S){var D=S.updateQueue;if(D!==null){S.updateQueue=null;var T=S.stateNode;T===null&&(T=S.stateNode=new dg),D.forEach(function(q){var W=AF.bind(null,S,q);T.has(q)||(T.add(q),q.then(W,W))})}}var yg=typeof WeakMap=="function"?WeakMap:Map;function Qv(S,D,T){T=$i(T,null),T.tag=3,T.payload={element:null};var q=D.value;return T.callback=function(){xu||(xu=!0,_m=q),Ka(S,D)},T}function kv(S,D,T){T=$i(T,null),T.tag=3;var q=S.type.getDerivedStateFromError;if(typeof q=="function"){var W=D.value;T.payload=function(){return Ka(S,D),q(W)}}var ce=S.stateNode;return ce!==null&&typeof ce.componentDidCatch=="function"&&(T.callback=function(){typeof q!="function"&&(bu===null?bu=new Set([this]):bu.add(this),Ka(S,D));var Se=D.stack;this.componentDidCatch(D.value,{componentStack:Se!==null?Se:""})}),T}var fI=Math.ceil,yp=u.ReactCurrentDispatcher,pI=u.ReactCurrentOwner,gn=0,Lm=8,rs=16,Ms=32,Pu=0,Om=1,Ei=2,ha=3,Pl=4,bc=5,pr=gn,Ai=null,Fr=null,ns=0,Gi=Pu,Mm=null,Va=1073741823,MA=1073741823,Um=null,Cp=0,UA=!1,hI=0,gI=500,nr=null,xu=!1,_m=null,bu=null,Ep=!1,Cg=null,_A=90,HA=null,Eg=0,dI=null,Hm=0;function ga(){return(pr&(rs|Ms))!==gn?1073741821-(Hi()/10|0):Hm!==0?Hm:Hm=1073741821-(Hi()/10|0)}function qA(S,D,T){if(D=D.mode,(D&2)===0)return 1073741823;var q=Oo();if((D&4)===0)return q===99?1073741823:1073741822;if((pr&rs)!==gn)return ns;if(T!==null)S=Ua(S,T.timeoutMs|0||5e3,250);else switch(q){case 99:S=1073741823;break;case 98:S=Ua(S,150,100);break;case 97:case 96:S=Ua(S,5e3,250);break;case 95:S=2;break;default:throw Error(n(326))}return Ai!==null&&S===ns&&--S,S}function Qc(S,D){if(50<Eg)throw Eg=0,dI=null,Error(n(185));if(S=Ig(S,D),S!==null){var T=Oo();D===1073741823?(pr&Lm)!==gn&&(pr&(rs|Ms))===gn?mI(S):(uo(S),pr===gn&&qi()):uo(S),(pr&4)===gn||T!==98&&T!==99||(HA===null?HA=new Map([[S,D]]):(T=HA.get(S),(T===void 0||T>D)&&HA.set(S,D)))}}function Ig(S,D){S.expirationTime<D&&(S.expirationTime=D);var T=S.alternate;T!==null&&T.expirationTime<D&&(T.expirationTime=D);var q=S.return,W=null;if(q===null&&S.tag===3)W=S.stateNode;else for(;q!==null;){if(T=q.alternate,q.childExpirationTime<D&&(q.childExpirationTime=D),T!==null&&T.childExpirationTime<D&&(T.childExpirationTime=D),q.return===null&&q.tag===3){W=q.stateNode;break}q=q.return}return W!==null&&(Ai===W&&(jm(D),Gi===Pl&&KA(W,ns)),_v(W,D)),W}function qm(S){var D=S.lastExpiredTime;return D!==0||(D=S.firstPendingTime,!Uv(S,D))?D:(D=S.lastPingedTime,S=S.nextKnownPendingLevel,D>S?D:S)}function uo(S){if(S.lastExpiredTime!==0)S.callbackExpirationTime=1073741823,S.callbackPriority=99,S.callbackNode=Cu(mI.bind(null,S));else{var D=qm(S),T=S.callbackNode;if(D===0)T!==null&&(S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90);else{var q=ga();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var W=S.callbackPriority;if(S.callbackExpirationTime===D&&W>=q)return;T!==bA&&Ee(T)}S.callbackExpirationTime=D,S.callbackPriority=q,D=D===1073741823?Cu(mI.bind(null,S)):Bl(q,Fv.bind(null,S),{timeout:10*(1073741821-D)-Hi()}),S.callbackNode=D}}}function Fv(S,D){if(Hm=0,D)return D=ga(),Wm(S,D),uo(S),null;var T=qm(S);if(T!==0){if(D=S.callbackNode,(pr&(rs|Ms))!==gn)throw Error(n(327));if(Ip(),S===Ai&&T===ns||Qu(S,T),Fr!==null){var q=pr;pr|=rs;var W=GA(S);do try{oF();break}catch(It){jA(S,It)}while(1);if(sa(),pr=q,yp.current=W,Gi===Om)throw D=Mm,Qu(S,T),KA(S,T),uo(S),D;if(Fr===null)switch(W=S.finishedWork=S.current.alternate,S.finishedExpirationTime=T,q=Gi,Ai=null,q){case Pu:case Om:throw Error(n(345));case Ei:Wm(S,2<T?2:T);break;case ha:if(KA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=CI(W)),Va===1073741823&&(W=hI+gI-Hi(),10<W)){if(UA){var ce=S.lastPingedTime;if(ce===0||ce>=T){S.lastPingedTime=T,Qu(S,T);break}}if(ce=qm(S),ce!==0&&ce!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}S.timeoutHandle=qe(ku.bind(null,S),W);break}ku(S);break;case Pl:if(KA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=CI(W)),UA&&(W=S.lastPingedTime,W===0||W>=T)){S.lastPingedTime=T,Qu(S,T);break}if(W=qm(S),W!==0&&W!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}if(MA!==1073741823?q=10*(1073741821-MA)-Hi():Va===1073741823?q=0:(q=10*(1073741821-Va)-5e3,W=Hi(),T=10*(1073741821-T)-W,q=W-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*fI(q/1960))-q,T<q&&(q=T)),10<q){S.timeoutHandle=qe(ku.bind(null,S),q);break}ku(S);break;case bc:if(Va!==1073741823&&Um!==null){ce=Va;var Se=Um;if(q=Se.busyMinDurationMs|0,0>=q?q=0:(W=Se.busyDelayMs|0,ce=Hi()-(10*(1073741821-ce)-(Se.timeoutMs|0||5e3)),q=ce<=W?0:W+q-ce),10<q){KA(S,T),S.timeoutHandle=qe(ku.bind(null,S),q);break}}ku(S);break;default:throw Error(n(329))}if(uo(S),S.callbackNode===D)return Fv.bind(null,S)}}return null}function mI(S){var D=S.lastExpiredTime;if(D=D!==0?D:1073741823,S.finishedExpirationTime===D)ku(S);else{if((pr&(rs|Ms))!==gn)throw Error(n(327));if(Ip(),S===Ai&&D===ns||Qu(S,D),Fr!==null){var T=pr;pr|=rs;var q=GA(S);do try{sF();break}catch(W){jA(S,W)}while(1);if(sa(),pr=T,yp.current=q,Gi===Om)throw T=Mm,Qu(S,D),KA(S,D),uo(S),T;if(Fr!==null)throw Error(n(261));S.finishedWork=S.current.alternate,S.finishedExpirationTime=D,Ai=null,ku(S),uo(S)}}return null}function Rv(S,D){Wm(S,D),uo(S),(pr&(rs|Ms))===gn&&qi()}function iF(){if(HA!==null){var S=HA;HA=null,S.forEach(function(D,T){Wm(T,D),uo(T)}),qi()}}function Tv(S,D){if((pr&(rs|Ms))!==gn)throw Error(n(187));var T=pr;pr|=1;try{return so(99,S.bind(null,D))}finally{pr=T,qi()}}function Qu(S,D){S.finishedWork=null,S.finishedExpirationTime=0;var T=S.timeoutHandle;if(T!==Oe&&(S.timeoutHandle=Oe,At(T)),Fr!==null)for(T=Fr.return;T!==null;){var q=T;switch(q.tag){case 1:var W=q.type.childContextTypes;W!=null&&Ma(q);break;case 3:Ic(q),$t(q);break;case 5:ng(q);break;case 4:Ic(q);break;case 13:Ue(Vn,q);break;case 19:Ue(Vn,q);break;case 10:Zi(q)}T=T.return}Ai=S,Fr=YA(S.current,null,D),ns=D,Gi=Pu,Mm=null,MA=Va=1073741823,Um=null,Cp=0,UA=!1}function jA(S,D){do{try{if(sa(),cI(),Fr===null||Fr.return===null)return Gi=Om,Mm=D,null;e:{var T=S,q=Fr.return,W=Fr,ce=D;if(D=ns,W.effectTag|=2048,W.firstEffect=W.lastEffect=null,ce!==null&&typeof ce=="object"&&typeof ce.then=="function"){var Se=ce,It=(Vn.current&1)!==0,Ct=q;do{var xt;if(xt=Ct.tag===13){var Nr=Ct.memoizedState;if(Nr!==null)xt=Nr.dehydrated!==null;else{var is=Ct.memoizedProps;xt=is.fallback===void 0?!1:is.unstable_avoidThisFallback!==!0?!0:!It}}if(xt){var fi=Ct.updateQueue;if(fi===null){var Ao=new Set;Ao.add(Se),Ct.updateQueue=Ao}else fi.add(Se);if((Ct.mode&2)===0){if(Ct.effectTag|=64,W.effectTag&=-2981,W.tag===1)if(W.alternate===null)W.tag=17;else{var VA=$i(1073741823,null);VA.tag=2,mi(W,VA)}W.expirationTime=1073741823;break e}ce=void 0,W=D;var Ho=T.pingCache;if(Ho===null?(Ho=T.pingCache=new yg,ce=new Set,Ho.set(Se,ce)):(ce=Ho.get(Se),ce===void 0&&(ce=new Set,Ho.set(Se,ce))),!ce.has(W)){ce.add(W);var rt=uF.bind(null,T,Se,W);Se.then(rt,rt)}Ct.effectTag|=4096,Ct.expirationTime=D;break e}Ct=Ct.return}while(Ct!==null);ce=Error((ge(W.type)||"A React component")+` suspended while rendering, but no fallback UI was specified. 282 in `+(q||"Unknown")+ce}D+=T,S=S.return}while(S);return D}var Il=[],io=-1;function Ue(S){0>io||(S.current=Il[io],Il[io]=null,io--)}function Fn(S,D){io++,Il[io]=S.current,S.current=D}var Fi={},Rn={current:Fi},Ui={current:!1},Zt=Fi;function Ri(S,D){var T=S.type.contextTypes;if(!T)return Fi;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},ce;for(ce in T)W[ce]=D[ce];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=D,S.__reactInternalMemoizedMaskedChildContext=W),W}function $n(S){return S=S.childContextTypes,S!=null}function Ua(S){Ue(Ui,S),Ue(Rn,S)}function $t(S){Ue(Ui,S),Ue(Rn,S)}function gc(S,D,T){if(Rn.current!==Fi)throw Error(n(168));Fn(Rn,D,S),Fn(Ui,T,S)}function du(S,D,T){var q=S.stateNode;if(S=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in S))throw Error(n(108,ge(D)||"Unknown",W));return r({},T,{},q)}function dc(S){var D=S.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Fi,Zt=Rn.current,Fn(Rn,D,S),Fn(Ui,Ui.current,S),!0}function wl(S,D,T){var q=S.stateNode;if(!q)throw Error(n(169));T?(D=du(S,D,Zt),q.__reactInternalMemoizedMergedChildContext=D,Ue(Ui,S),Ue(Rn,S),Fn(Rn,D,S)):Ue(Ui,S),Fn(Ui,T,S)}var xA=a.unstable_runWithPriority,mu=a.unstable_scheduleCallback,Ce=a.unstable_cancelCallback,Rt=a.unstable_shouldYield,mc=a.unstable_requestPaint,_i=a.unstable_now,yu=a.unstable_getCurrentPriorityLevel,qt=a.unstable_ImmediatePriority,Bl=a.unstable_UserBlockingPriority,bA=a.unstable_NormalPriority,Ap=a.unstable_LowPriority,yc=a.unstable_IdlePriority,QA={},Dn=mc!==void 0?mc:function(){},ui=null,Ec=null,kA=!1,na=_i(),Hi=1e4>na?_i:function(){return _i()-na};function Mo(){switch(yu()){case qt:return 99;case Bl:return 98;case bA:return 97;case Ap:return 96;case yc:return 95;default:throw Error(n(332))}}function $e(S){switch(S){case 99:return qt;case 98:return Bl;case 97:return bA;case 96:return Ap;case 95:return yc;default:throw Error(n(332))}}function so(S,D){return S=$e(S),xA(S,D)}function vl(S,D,T){return S=$e(S),mu(S,D,T)}function Eu(S){return ui===null?(ui=[S],Ec=mu(qt,Cu)):ui.push(S),QA}function qi(){if(Ec!==null){var S=Ec;Ec=null,Ce(S)}Cu()}function Cu(){if(!kA&&ui!==null){kA=!0;var S=0;try{var D=ui;so(99,function(){for(;S<D.length;S++){var T=D[S];do T=T(!0);while(T!==null)}}),ui=null}catch(T){throw ui!==null&&(ui=ui.slice(S+1)),mu(qt,qi),T}finally{kA=!1}}}var FA=3;function Ha(S,D,T){return T/=10,1073741821-(((1073741821-S+D/10)/T|0)+1)*T}function Cc(S,D){return S===D&&(S!==0||1/S===1/D)||S!==S&&D!==D}var ds=typeof Object.is=="function"?Object.is:Cc,Ot=Object.prototype.hasOwnProperty;function Sn(S,D){if(ds(S,D))return!0;if(typeof S!="object"||S===null||typeof D!="object"||D===null)return!1;var T=Object.keys(S),q=Object.keys(D);if(T.length!==q.length)return!1;for(q=0;q<T.length;q++)if(!Ot.call(D,T[q])||!ds(S[T[q]],D[T[q]]))return!1;return!0}function di(S,D){if(S&&S.defaultProps){D=r({},D),S=S.defaultProps;for(var T in S)D[T]===void 0&&(D[T]=S[T])}return D}var ia={current:null},oo=null,Rs=null,sa=null;function oa(){sa=Rs=oo=null}function Uo(S,D){var T=S.type._context;x?(Fn(ia,T._currentValue,S),T._currentValue=D):(Fn(ia,T._currentValue2,S),T._currentValue2=D)}function Zi(S){var D=ia.current;Ue(ia,S),S=S.type._context,x?S._currentValue=D:S._currentValue2=D}function Ts(S,D){for(;S!==null;){var T=S.alternate;if(S.childExpirationTime<D)S.childExpirationTime=D,T!==null&&T.childExpirationTime<D&&(T.childExpirationTime=D);else if(T!==null&&T.childExpirationTime<D)T.childExpirationTime=D;else break;S=S.return}}function Ns(S,D){oo=S,sa=Rs=null,S=S.dependencies,S!==null&&S.firstContext!==null&&(S.expirationTime>=D&&(_o=!0),S.firstContext=null)}function Ls(S,D){if(sa!==S&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(sa=S,D=1073741823),D={context:S,observedBits:D,next:null},Rs===null){if(oo===null)throw Error(n(308));Rs=D,oo.dependencies={expirationTime:0,firstContext:D,responders:null}}else Rs=Rs.next=D;return x?S._currentValue:S._currentValue2}var ao=!1;function Yn(S){return{baseState:S,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qn(S){return{baseState:S.baseState,firstUpdate:S.firstUpdate,lastUpdate:S.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $i(S,D){return{expirationTime:S,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function es(S,D){S.lastUpdate===null?S.firstUpdate=S.lastUpdate=D:(S.lastUpdate.next=D,S.lastUpdate=D)}function mi(S,D){var T=S.alternate;if(T===null){var q=S.updateQueue,W=null;q===null&&(q=S.updateQueue=Yn(S.memoizedState))}else q=S.updateQueue,W=T.updateQueue,q===null?W===null?(q=S.updateQueue=Yn(S.memoizedState),W=T.updateQueue=Yn(T.memoizedState)):q=S.updateQueue=qn(W):W===null&&(W=T.updateQueue=qn(q));W===null||q===W?es(q,D):q.lastUpdate===null||W.lastUpdate===null?(es(q,D),es(W,D)):(es(q,D),W.lastUpdate=D)}function qa(S,D){var T=S.updateQueue;T=T===null?S.updateQueue=Yn(S.memoizedState):aa(S,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function aa(S,D){var T=S.alternate;return T!==null&&D===T.updateQueue&&(D=S.updateQueue=qn(D)),D}function ee(S,D,T,q,W,ce){switch(T.tag){case 1:return S=T.payload,typeof S=="function"?S.call(ce,q,W):S;case 3:S.effectTag=S.effectTag&-4097|64;case 0:if(S=T.payload,W=typeof S=="function"?S.call(ce,q,W):S,W==null)break;return r({},q,W);case 2:ao=!0}return q}function we(S,D,T,q,W){ao=!1,D=aa(S,D);for(var ce=D.baseState,Se=null,It=0,Et=D.firstUpdate,bt=ce;Et!==null;){var Nr=Et.expirationTime;Nr<W?(Se===null&&(Se=Et,ce=bt),It<Nr&&(It=Nr)):(yI(Nr,Et.suspenseConfig),bt=ee(S,D,Et,bt,T,q),Et.callback!==null&&(S.effectTag|=32,Et.nextEffect=null,D.lastEffect===null?D.firstEffect=D.lastEffect=Et:(D.lastEffect.nextEffect=Et,D.lastEffect=Et))),Et=Et.next}for(Nr=null,Et=D.firstCapturedUpdate;Et!==null;){var is=Et.expirationTime;is<W?(Nr===null&&(Nr=Et,Se===null&&(ce=bt)),It<is&&(It=is)):(bt=ee(S,D,Et,bt,T,q),Et.callback!==null&&(S.effectTag|=32,Et.nextEffect=null,D.lastCapturedEffect===null?D.firstCapturedEffect=D.lastCapturedEffect=Et:(D.lastCapturedEffect.nextEffect=Et,D.lastCapturedEffect=Et))),Et=Et.next}Se===null&&(D.lastUpdate=null),Nr===null?D.lastCapturedUpdate=null:S.effectTag|=32,Se===null&&Nr===null&&(ce=bt),D.baseState=ce,D.firstUpdate=Se,D.firstCapturedUpdate=Nr,jm(It),S.expirationTime=It,S.memoizedState=bt}function je(S,D,T){D.firstCapturedUpdate!==null&&(D.lastUpdate!==null&&(D.lastUpdate.next=D.firstCapturedUpdate,D.lastUpdate=D.lastCapturedUpdate),D.firstCapturedUpdate=D.lastCapturedUpdate=null),Be(D.firstEffect,T),D.firstEffect=D.lastEffect=null,Be(D.firstCapturedEffect,T),D.firstCapturedEffect=D.lastCapturedEffect=null}function Be(S,D){for(;S!==null;){var T=S.callback;if(T!==null){S.callback=null;var q=D;if(typeof T!="function")throw Error(n(191,T));T.call(q)}S=S.nextEffect}}var xe=u.ReactCurrentBatchConfig,Ve=new o.Component().refs;function vt(S,D,T,q){D=S.memoizedState,T=T(q,D),T=T==null?D:r({},D,T),S.memoizedState=T,q=S.updateQueue,q!==null&&S.expirationTime===0&&(q.baseState=T)}var tr={isMounted:function(S){return(S=S._reactInternalFiber)?le(S)===S:!1},enqueueSetState:function(S,D,T){S=S._reactInternalFiber;var q=da(),W=xe.suspense;q=jA(q,S,W),W=$i(q,W),W.payload=D,T!=null&&(W.callback=T),mi(S,W),kc(S,q)},enqueueReplaceState:function(S,D,T){S=S._reactInternalFiber;var q=da(),W=xe.suspense;q=jA(q,S,W),W=$i(q,W),W.tag=1,W.payload=D,T!=null&&(W.callback=T),mi(S,W),kc(S,q)},enqueueForceUpdate:function(S,D){S=S._reactInternalFiber;var T=da(),q=xe.suspense;T=jA(T,S,q),q=$i(T,q),q.tag=2,D!=null&&(q.callback=D),mi(S,q),kc(S,T)}};function Zr(S,D,T,q,W,ce,Se){return S=S.stateNode,typeof S.shouldComponentUpdate=="function"?S.shouldComponentUpdate(q,ce,Se):D.prototype&&D.prototype.isPureReactComponent?!Sn(T,q)||!Sn(W,ce):!0}function Tn(S,D,T){var q=!1,W=Fi,ce=D.contextType;return typeof ce=="object"&&ce!==null?ce=Ls(ce):(W=$n(D)?Zt:Rn.current,q=D.contextTypes,ce=(q=q!=null)?Ri(S,W):Fi),D=new D(T,ce),S.memoizedState=D.state!==null&&D.state!==void 0?D.state:null,D.updater=tr,S.stateNode=D,D._reactInternalFiber=S,q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=W,S.__reactInternalMemoizedMaskedChildContext=ce),D}function _r(S,D,T,q){S=D.state,typeof D.componentWillReceiveProps=="function"&&D.componentWillReceiveProps(T,q),typeof D.UNSAFE_componentWillReceiveProps=="function"&&D.UNSAFE_componentWillReceiveProps(T,q),D.state!==S&&tr.enqueueReplaceState(D,D.state,null)}function ei(S,D,T,q){var W=S.stateNode;W.props=T,W.state=S.memoizedState,W.refs=Ve;var ce=D.contextType;typeof ce=="object"&&ce!==null?W.context=Ls(ce):(ce=$n(D)?Zt:Rn.current,W.context=Ri(S,ce)),ce=S.updateQueue,ce!==null&&(we(S,ce,T,W,q),W.state=S.memoizedState),ce=D.getDerivedStateFromProps,typeof ce=="function"&&(vt(S,D,ce,T),W.state=S.memoizedState),typeof D.getDerivedStateFromProps=="function"||typeof W.getSnapshotBeforeUpdate=="function"||typeof W.UNSAFE_componentWillMount!="function"&&typeof W.componentWillMount!="function"||(D=W.state,typeof W.componentWillMount=="function"&&W.componentWillMount(),typeof W.UNSAFE_componentWillMount=="function"&&W.UNSAFE_componentWillMount(),D!==W.state&&tr.enqueueReplaceState(W,W.state,null),ce=S.updateQueue,ce!==null&&(we(S,ce,T,W,q),W.state=S.memoizedState)),typeof W.componentDidMount=="function"&&(S.effectTag|=4)}var Ti=Array.isArray;function Kn(S,D,T){if(S=T.ref,S!==null&&typeof S!="function"&&typeof S!="object"){if(T._owner){if(T=T._owner,T){if(T.tag!==1)throw Error(n(309));var q=T.stateNode}if(!q)throw Error(n(147,S));var W=""+S;return D!==null&&D.ref!==null&&typeof D.ref=="function"&&D.ref._stringRef===W?D.ref:(D=function(ce){var Se=q.refs;Se===Ve&&(Se=q.refs={}),ce===null?delete Se[W]:Se[W]=ce},D._stringRef=W,D)}if(typeof S!="string")throw Error(n(284));if(!T._owner)throw Error(n(290,S))}return S}function ja(S,D){if(S.type!=="textarea")throw Error(n(31,Object.prototype.toString.call(D)==="[object Object]"?"object with keys {"+Object.keys(D).join(", ")+"}":D,""))}function la(S){function D(rt,Je){if(S){var ft=rt.lastEffect;ft!==null?(ft.nextEffect=Je,rt.lastEffect=Je):rt.firstEffect=rt.lastEffect=Je,Je.nextEffect=null,Je.effectTag=8}}function T(rt,Je){if(!S)return null;for(;Je!==null;)D(rt,Je),Je=Je.sibling;return null}function q(rt,Je){for(rt=new Map;Je!==null;)Je.key!==null?rt.set(Je.key,Je):rt.set(Je.index,Je),Je=Je.sibling;return rt}function W(rt,Je,ft){return rt=KA(rt,Je,ft),rt.index=0,rt.sibling=null,rt}function ce(rt,Je,ft){return rt.index=ft,S?(ft=rt.alternate,ft!==null?(ft=ft.index,ft<Je?(rt.effectTag=2,Je):ft):(rt.effectTag=2,Je)):Je}function Se(rt){return S&&rt.alternate===null&&(rt.effectTag=2),rt}function It(rt,Je,ft,jt){return Je===null||Je.tag!==6?(Je=BI(ft,rt.mode,jt),Je.return=rt,Je):(Je=W(Je,ft,jt),Je.return=rt,Je)}function Et(rt,Je,ft,jt){return Je!==null&&Je.elementType===ft.type?(jt=W(Je,ft.props,jt),jt.ref=Kn(rt,Je,ft),jt.return=rt,jt):(jt=Gm(ft.type,ft.key,ft.props,null,rt.mode,jt),jt.ref=Kn(rt,Je,ft),jt.return=rt,jt)}function bt(rt,Je,ft,jt){return Je===null||Je.tag!==4||Je.stateNode.containerInfo!==ft.containerInfo||Je.stateNode.implementation!==ft.implementation?(Je=vI(ft,rt.mode,jt),Je.return=rt,Je):(Je=W(Je,ft.children||[],jt),Je.return=rt,Je)}function Nr(rt,Je,ft,jt,Er){return Je===null||Je.tag!==7?(Je=Fu(ft,rt.mode,jt,Er),Je.return=rt,Je):(Je=W(Je,ft,jt),Je.return=rt,Je)}function is(rt,Je,ft){if(typeof Je=="string"||typeof Je=="number")return Je=BI(""+Je,rt.mode,ft),Je.return=rt,Je;if(typeof Je=="object"&&Je!==null){switch(Je.$$typeof){case p:return ft=Gm(Je.type,Je.key,Je.props,null,rt.mode,ft),ft.ref=Kn(rt,null,Je),ft.return=rt,ft;case h:return Je=vI(Je,rt.mode,ft),Je.return=rt,Je}if(Ti(Je)||pe(Je))return Je=Fu(Je,rt.mode,ft,null),Je.return=rt,Je;ja(rt,Je)}return null}function fi(rt,Je,ft,jt){var Er=Je!==null?Je.key:null;if(typeof ft=="string"||typeof ft=="number")return Er!==null?null:It(rt,Je,""+ft,jt);if(typeof ft=="object"&&ft!==null){switch(ft.$$typeof){case p:return ft.key===Er?ft.type===C?Nr(rt,Je,ft.props.children,jt,Er):Et(rt,Je,ft,jt):null;case h:return ft.key===Er?bt(rt,Je,ft,jt):null}if(Ti(ft)||pe(ft))return Er!==null?null:Nr(rt,Je,ft,jt,null);ja(rt,ft)}return null}function Ao(rt,Je,ft,jt,Er){if(typeof jt=="string"||typeof jt=="number")return rt=rt.get(ft)||null,It(Je,rt,""+jt,Er);if(typeof jt=="object"&&jt!==null){switch(jt.$$typeof){case p:return rt=rt.get(jt.key===null?ft:jt.key)||null,jt.type===C?Nr(Je,rt,jt.props.children,Er,jt.key):Et(Je,rt,jt,Er);case h:return rt=rt.get(jt.key===null?ft:jt.key)||null,bt(Je,rt,jt,Er)}if(Ti(jt)||pe(jt))return rt=rt.get(ft)||null,Nr(Je,rt,jt,Er,null);ja(Je,jt)}return null}function JA(rt,Je,ft,jt){for(var Er=null,In=null,Sr=Je,wn=Je=0,ni=null;Sr!==null&&wn<ft.length;wn++){Sr.index>wn?(ni=Sr,Sr=null):ni=Sr.sibling;var Xr=fi(rt,Sr,ft[wn],jt);if(Xr===null){Sr===null&&(Sr=ni);break}S&&Sr&&Xr.alternate===null&&D(rt,Sr),Je=ce(Xr,Je,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr,Sr=ni}if(wn===ft.length)return T(rt,Sr),Er;if(Sr===null){for(;wn<ft.length;wn++)Sr=is(rt,ft[wn],jt),Sr!==null&&(Je=ce(Sr,Je,wn),In===null?Er=Sr:In.sibling=Sr,In=Sr);return Er}for(Sr=q(rt,Sr);wn<ft.length;wn++)ni=Ao(Sr,rt,wn,ft[wn],jt),ni!==null&&(S&&ni.alternate!==null&&Sr.delete(ni.key===null?wn:ni.key),Je=ce(ni,Je,wn),In===null?Er=ni:In.sibling=ni,In=ni);return S&&Sr.forEach(function(fo){return D(rt,fo)}),Er}function qo(rt,Je,ft,jt){var Er=pe(ft);if(typeof Er!="function")throw Error(n(150));if(ft=Er.call(ft),ft==null)throw Error(n(151));for(var In=Er=null,Sr=Je,wn=Je=0,ni=null,Xr=ft.next();Sr!==null&&!Xr.done;wn++,Xr=ft.next()){Sr.index>wn?(ni=Sr,Sr=null):ni=Sr.sibling;var fo=fi(rt,Sr,Xr.value,jt);if(fo===null){Sr===null&&(Sr=ni);break}S&&Sr&&fo.alternate===null&&D(rt,Sr),Je=ce(fo,Je,wn),In===null?Er=fo:In.sibling=fo,In=fo,Sr=ni}if(Xr.done)return T(rt,Sr),Er;if(Sr===null){for(;!Xr.done;wn++,Xr=ft.next())Xr=is(rt,Xr.value,jt),Xr!==null&&(Je=ce(Xr,Je,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return Er}for(Sr=q(rt,Sr);!Xr.done;wn++,Xr=ft.next())Xr=Ao(Sr,rt,wn,Xr.value,jt),Xr!==null&&(S&&Xr.alternate!==null&&Sr.delete(Xr.key===null?wn:Xr.key),Je=ce(Xr,Je,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return S&&Sr.forEach(function(CF){return D(rt,CF)}),Er}return function(rt,Je,ft,jt){var Er=typeof ft=="object"&&ft!==null&&ft.type===C&&ft.key===null;Er&&(ft=ft.props.children);var In=typeof ft=="object"&&ft!==null;if(In)switch(ft.$$typeof){case p:e:{for(In=ft.key,Er=Je;Er!==null;){if(Er.key===In)if(Er.tag===7?ft.type===C:Er.elementType===ft.type){T(rt,Er.sibling),Je=W(Er,ft.type===C?ft.props.children:ft.props,jt),Je.ref=Kn(rt,Er,ft),Je.return=rt,rt=Je;break e}else{T(rt,Er);break}else D(rt,Er);Er=Er.sibling}ft.type===C?(Je=Fu(ft.props.children,rt.mode,jt,ft.key),Je.return=rt,rt=Je):(jt=Gm(ft.type,ft.key,ft.props,null,rt.mode,jt),jt.ref=Kn(rt,Je,ft),jt.return=rt,rt=jt)}return Se(rt);case h:e:{for(Er=ft.key;Je!==null;){if(Je.key===Er)if(Je.tag===4&&Je.stateNode.containerInfo===ft.containerInfo&&Je.stateNode.implementation===ft.implementation){T(rt,Je.sibling),Je=W(Je,ft.children||[],jt),Je.return=rt,rt=Je;break e}else{T(rt,Je);break}else D(rt,Je);Je=Je.sibling}Je=vI(ft,rt.mode,jt),Je.return=rt,rt=Je}return Se(rt)}if(typeof ft=="string"||typeof ft=="number")return ft=""+ft,Je!==null&&Je.tag===6?(T(rt,Je.sibling),Je=W(Je,ft,jt),Je.return=rt,rt=Je):(T(rt,Je),Je=BI(ft,rt.mode,jt),Je.return=rt,rt=Je),Se(rt);if(Ti(ft))return JA(rt,Je,ft,jt);if(pe(ft))return qo(rt,Je,ft,jt);if(In&&ja(rt,ft),typeof ft>"u"&&!Er)switch(rt.tag){case 1:case 0:throw rt=rt.type,Error(n(152,rt.displayName||rt.name||"Component"))}return T(rt,Je)}}var yi=la(!0),ca=la(!1),Ga={},lo={current:Ga},RA={current:Ga},Ic={current:Ga};function ua(S){if(S===Ga)throw Error(n(174));return S}function ng(S,D){Fn(Ic,D,S),Fn(RA,S,S),Fn(lo,Ga,S),D=ne(D),Ue(lo,S),Fn(lo,D,S)}function wc(S){Ue(lo,S),Ue(RA,S),Ue(Ic,S)}function bm(S){var D=ua(Ic.current),T=ua(lo.current);D=Z(T,S.type,D),T!==D&&(Fn(RA,S,S),Fn(lo,D,S))}function ig(S){RA.current===S&&(Ue(lo,S),Ue(RA,S))}var Vn={current:0};function fp(S){for(var D=S;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Qs(T)||ro(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if((D.effectTag&64)!==0)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break;for(;D.sibling===null;){if(D.return===null||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function sg(S,D){return{responder:S,props:D}}var TA=u.ReactCurrentDispatcher,Os=u.ReactCurrentBatchConfig,Iu=0,Wa=null,ji=null,Aa=null,wu=null,ms=null,Bc=null,vc=0,G=null,Dt=0,Dl=!1,Si=null,Dc=0;function lt(){throw Error(n(321))}function Bu(S,D){if(D===null)return!1;for(var T=0;T<D.length&&T<S.length;T++)if(!ds(S[T],D[T]))return!1;return!0}function og(S,D,T,q,W,ce){if(Iu=ce,Wa=D,Aa=S!==null?S.memoizedState:null,TA.current=Aa===null?uI:Fm,D=T(q,W),Dl){do Dl=!1,Dc+=1,Aa=S!==null?S.memoizedState:null,Bc=wu,G=ms=ji=null,TA.current=Fm,D=T(q,W);while(Dl);Si=null,Dc=0}if(TA.current=Du,S=Wa,S.memoizedState=wu,S.expirationTime=vc,S.updateQueue=G,S.effectTag|=Dt,S=ji!==null&&ji.next!==null,Iu=0,Bc=ms=wu=Aa=ji=Wa=null,vc=0,G=null,Dt=0,S)throw Error(n(300));return D}function cI(){TA.current=Du,Iu=0,Bc=ms=wu=Aa=ji=Wa=null,vc=0,G=null,Dt=0,Dl=!1,Si=null,Dc=0}function NA(){var S={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return ms===null?wu=ms=S:ms=ms.next=S,ms}function pp(){if(Bc!==null)ms=Bc,Bc=ms.next,ji=Aa,Aa=ji!==null?ji.next:null;else{if(Aa===null)throw Error(n(310));ji=Aa;var S={memoizedState:ji.memoizedState,baseState:ji.baseState,queue:ji.queue,baseUpdate:ji.baseUpdate,next:null};ms=ms===null?wu=S:ms.next=S,Aa=ji.next}return ms}function yr(S,D){return typeof D=="function"?D(S):D}function ys(S){var D=pp(),T=D.queue;if(T===null)throw Error(n(311));if(T.lastRenderedReducer=S,0<Dc){var q=T.dispatch;if(Si!==null){var W=Si.get(T);if(W!==void 0){Si.delete(T);var ce=D.memoizedState;do ce=S(ce,W.action),W=W.next;while(W!==null);return ds(ce,D.memoizedState)||(_o=!0),D.memoizedState=ce,D.baseUpdate===T.last&&(D.baseState=ce),T.lastRenderedState=ce,[ce,q]}}return[D.memoizedState,q]}q=T.last;var Se=D.baseUpdate;if(ce=D.baseState,Se!==null?(q!==null&&(q.next=null),q=Se.next):q=q!==null?q.next:null,q!==null){var It=W=null,Et=q,bt=!1;do{var Nr=Et.expirationTime;Nr<Iu?(bt||(bt=!0,It=Se,W=ce),Nr>vc&&(vc=Nr,jm(vc))):(yI(Nr,Et.suspenseConfig),ce=Et.eagerReducer===S?Et.eagerState:S(ce,Et.action)),Se=Et,Et=Et.next}while(Et!==null&&Et!==q);bt||(It=Se,W=ce),ds(ce,D.memoizedState)||(_o=!0),D.memoizedState=ce,D.baseUpdate=It,D.baseState=W,T.lastRenderedState=ce}return[D.memoizedState,T.dispatch]}function ag(S){var D=NA();return typeof S=="function"&&(S=S()),D.memoizedState=D.baseState=S,S=D.queue={last:null,dispatch:null,lastRenderedReducer:yr,lastRenderedState:S},S=S.dispatch=fg.bind(null,Wa,S),[D.memoizedState,S]}function lg(S){return ys(yr,S)}function cg(S,D,T,q){return S={tag:S,create:D,destroy:T,deps:q,next:null},G===null?(G={lastEffect:null},G.lastEffect=S.next=S):(D=G.lastEffect,D===null?G.lastEffect=S.next=S:(T=D.next,D.next=S,S.next=T,G.lastEffect=S)),S}function hp(S,D,T,q){var W=NA();Dt|=S,W.memoizedState=cg(D,T,void 0,q===void 0?null:q)}function Sc(S,D,T,q){var W=pp();q=q===void 0?null:q;var ce=void 0;if(ji!==null){var Se=ji.memoizedState;if(ce=Se.destroy,q!==null&&Bu(q,Se.deps)){cg(0,T,ce,q);return}}Dt|=S,W.memoizedState=cg(D,T,ce,q)}function mt(S,D){return hp(516,192,S,D)}function Qm(S,D){return Sc(516,192,S,D)}function ug(S,D){if(typeof D=="function")return S=S(),D(S),function(){D(null)};if(D!=null)return S=S(),D.current=S,function(){D.current=null}}function Ag(){}function vu(S,D){return NA().memoizedState=[S,D===void 0?null:D],S}function km(S,D){var T=pp();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(T.memoizedState=[S,D],S)}function fg(S,D,T){if(!(25>Dc))throw Error(n(301));var q=S.alternate;if(S===Wa||q!==null&&q===Wa)if(Dl=!0,S={expirationTime:Iu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},Si===null&&(Si=new Map),T=Si.get(D),T===void 0)Si.set(D,S);else{for(D=T;D.next!==null;)D=D.next;D.next=S}else{var W=da(),ce=xe.suspense;W=jA(W,S,ce),ce={expirationTime:W,suspenseConfig:ce,action:T,eagerReducer:null,eagerState:null,next:null};var Se=D.last;if(Se===null)ce.next=ce;else{var It=Se.next;It!==null&&(ce.next=It),Se.next=ce}if(D.last=ce,S.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var Et=D.lastRenderedState,bt=q(Et,T);if(ce.eagerReducer=q,ce.eagerState=bt,ds(bt,Et))return}catch{}finally{}kc(S,W)}}var Du={readContext:Ls,useCallback:lt,useContext:lt,useEffect:lt,useImperativeHandle:lt,useLayoutEffect:lt,useMemo:lt,useReducer:lt,useRef:lt,useState:lt,useDebugValue:lt,useResponder:lt,useDeferredValue:lt,useTransition:lt},uI={readContext:Ls,useCallback:vu,useContext:Ls,useEffect:mt,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,hp(4,36,ug.bind(null,D,S),T)},useLayoutEffect:function(S,D){return hp(4,36,S,D)},useMemo:function(S,D){var T=NA();return D=D===void 0?null:D,S=S(),T.memoizedState=[S,D],S},useReducer:function(S,D,T){var q=NA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,S=q.queue={last:null,dispatch:null,lastRenderedReducer:S,lastRenderedState:D},S=S.dispatch=fg.bind(null,Wa,S),[q.memoizedState,S]},useRef:function(S){var D=NA();return S={current:S},D.memoizedState=S},useState:ag,useDebugValue:Ag,useResponder:sg,useDeferredValue:function(S,D){var T=ag(S),q=T[0],W=T[1];return mt(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=ag(!1),T=D[0],q=D[1];return[vu(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},Fm={readContext:Ls,useCallback:km,useContext:Ls,useEffect:Qm,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,Sc(4,36,ug.bind(null,D,S),T)},useLayoutEffect:function(S,D){return Sc(4,36,S,D)},useMemo:function(S,D){var T=pp();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(S=S(),T.memoizedState=[S,D],S)},useReducer:ys,useRef:function(){return pp().memoizedState},useState:lg,useDebugValue:Ag,useResponder:sg,useDeferredValue:function(S,D){var T=lg(S),q=T[0],W=T[1];return Qm(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=lg(!1),T=D[0],q=D[1];return[km(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},fa=null,Pc=null,Sl=!1;function Su(S,D){var T=bl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=S,T.effectTag=8,S.lastEffect!==null?(S.lastEffect.nextEffect=T,S.lastEffect=T):S.firstEffect=S.lastEffect=T}function pg(S,D){switch(S.tag){case 5:return D=to(D,S.type,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 6:return D=Di(D,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function LA(S){if(Sl){var D=Pc;if(D){var T=D;if(!pg(S,D)){if(D=hc(T),!D||!pg(S,D)){S.effectTag=S.effectTag&-1025|2,Sl=!1,fa=S;return}Su(fa,T)}fa=S,Pc=gu(D)}else S.effectTag=S.effectTag&-1025|2,Sl=!1,fa=S}}function gp(S){for(S=S.return;S!==null&&S.tag!==5&&S.tag!==3&&S.tag!==13;)S=S.return;fa=S}function Ya(S){if(!y||S!==fa)return!1;if(!Sl)return gp(S),Sl=!0,!1;var D=S.type;if(S.tag!==5||D!=="head"&&D!=="body"&&!Te(D,S.memoizedProps))for(D=Pc;D;)Su(S,D),D=hc(D);if(gp(S),S.tag===13){if(!y)throw Error(n(316));if(S=S.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));Pc=ks(S)}else Pc=fa?hc(S.stateNode):null;return!0}function hg(){y&&(Pc=fa=null,Sl=!1)}var dp=u.ReactCurrentOwner,_o=!1;function Es(S,D,T,q){D.child=S===null?ca(D,null,T,q):yi(D,S.child,T,q)}function Ei(S,D,T,q,W){T=T.render;var ce=D.ref;return Ns(D,W),q=og(S,D,T,q,ce,W),S!==null&&!_o?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=W&&(S.expirationTime=0),ti(S,D,W)):(D.effectTag|=1,Es(S,D,q,W),D.child)}function Rm(S,D,T,q,W,ce){if(S===null){var Se=T.type;return typeof Se=="function"&&!wI(Se)&&Se.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=Se,Tm(S,D,Se,q,W,ce)):(S=Gm(T.type,null,q,null,D.mode,ce),S.ref=D.ref,S.return=D,D.child=S)}return Se=S.child,W<ce&&(W=Se.memoizedProps,T=T.compare,T=T!==null?T:Sn,T(W,q)&&S.ref===D.ref)?ti(S,D,ce):(D.effectTag|=1,S=KA(Se,q,ce),S.ref=D.ref,S.return=D,D.child=S)}function Tm(S,D,T,q,W,ce){return S!==null&&Sn(S.memoizedProps,q)&&S.ref===D.ref&&(_o=!1,W<ce)?ti(S,D,ce):OA(S,D,T,q,ce)}function Ho(S,D){var T=D.ref;(S===null&&T!==null||S!==null&&S.ref!==T)&&(D.effectTag|=128)}function OA(S,D,T,q,W){var ce=$n(T)?Zt:Rn.current;return ce=Ri(D,ce),Ns(D,W),T=og(S,D,T,q,ce,W),S!==null&&!_o?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=W&&(S.expirationTime=0),ti(S,D,W)):(D.effectTag|=1,Es(S,D,T,W),D.child)}function mp(S,D,T,q,W){if($n(T)){var ce=!0;dc(D)}else ce=!1;if(Ns(D,W),D.stateNode===null)S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),Tn(D,T,q,W),ei(D,T,q,W),q=!0;else if(S===null){var Se=D.stateNode,It=D.memoizedProps;Se.props=It;var Et=Se.context,bt=T.contextType;typeof bt=="object"&&bt!==null?bt=Ls(bt):(bt=$n(T)?Zt:Rn.current,bt=Ri(D,bt));var Nr=T.getDerivedStateFromProps,is=typeof Nr=="function"||typeof Se.getSnapshotBeforeUpdate=="function";is||typeof Se.UNSAFE_componentWillReceiveProps!="function"&&typeof Se.componentWillReceiveProps!="function"||(It!==q||Et!==bt)&&_r(D,Se,q,bt),ao=!1;var fi=D.memoizedState;Et=Se.state=fi;var Ao=D.updateQueue;Ao!==null&&(we(D,Ao,q,Se,W),Et=D.memoizedState),It!==q||fi!==Et||Ui.current||ao?(typeof Nr=="function"&&(vt(D,T,Nr,q),Et=D.memoizedState),(It=ao||Zr(D,T,It,q,fi,Et,bt))?(is||typeof Se.UNSAFE_componentWillMount!="function"&&typeof Se.componentWillMount!="function"||(typeof Se.componentWillMount=="function"&&Se.componentWillMount(),typeof Se.UNSAFE_componentWillMount=="function"&&Se.UNSAFE_componentWillMount()),typeof Se.componentDidMount=="function"&&(D.effectTag|=4)):(typeof Se.componentDidMount=="function"&&(D.effectTag|=4),D.memoizedProps=q,D.memoizedState=Et),Se.props=q,Se.state=Et,Se.context=bt,q=It):(typeof Se.componentDidMount=="function"&&(D.effectTag|=4),q=!1)}else Se=D.stateNode,It=D.memoizedProps,Se.props=D.type===D.elementType?It:di(D.type,It),Et=Se.context,bt=T.contextType,typeof bt=="object"&&bt!==null?bt=Ls(bt):(bt=$n(T)?Zt:Rn.current,bt=Ri(D,bt)),Nr=T.getDerivedStateFromProps,(is=typeof Nr=="function"||typeof Se.getSnapshotBeforeUpdate=="function")||typeof Se.UNSAFE_componentWillReceiveProps!="function"&&typeof Se.componentWillReceiveProps!="function"||(It!==q||Et!==bt)&&_r(D,Se,q,bt),ao=!1,Et=D.memoizedState,fi=Se.state=Et,Ao=D.updateQueue,Ao!==null&&(we(D,Ao,q,Se,W),fi=D.memoizedState),It!==q||Et!==fi||Ui.current||ao?(typeof Nr=="function"&&(vt(D,T,Nr,q),fi=D.memoizedState),(Nr=ao||Zr(D,T,It,q,Et,fi,bt))?(is||typeof Se.UNSAFE_componentWillUpdate!="function"&&typeof Se.componentWillUpdate!="function"||(typeof Se.componentWillUpdate=="function"&&Se.componentWillUpdate(q,fi,bt),typeof Se.UNSAFE_componentWillUpdate=="function"&&Se.UNSAFE_componentWillUpdate(q,fi,bt)),typeof Se.componentDidUpdate=="function"&&(D.effectTag|=4),typeof Se.getSnapshotBeforeUpdate=="function"&&(D.effectTag|=256)):(typeof Se.componentDidUpdate!="function"||It===S.memoizedProps&&Et===S.memoizedState||(D.effectTag|=4),typeof Se.getSnapshotBeforeUpdate!="function"||It===S.memoizedProps&&Et===S.memoizedState||(D.effectTag|=256),D.memoizedProps=q,D.memoizedState=fi),Se.props=q,Se.state=fi,Se.context=bt,q=Nr):(typeof Se.componentDidUpdate!="function"||It===S.memoizedProps&&Et===S.memoizedState||(D.effectTag|=4),typeof Se.getSnapshotBeforeUpdate!="function"||It===S.memoizedProps&&Et===S.memoizedState||(D.effectTag|=256),q=!1);return yp(S,D,T,q,ce,W)}function yp(S,D,T,q,W,ce){Ho(S,D);var Se=(D.effectTag&64)!==0;if(!q&&!Se)return W&&wl(D,T,!1),ti(S,D,ce);q=D.stateNode,dp.current=D;var It=Se&&typeof T.getDerivedStateFromError!="function"?null:q.render();return D.effectTag|=1,S!==null&&Se?(D.child=yi(D,S.child,null,ce),D.child=yi(D,null,It,ce)):Es(S,D,It,ce),D.memoizedState=q.state,W&&wl(D,T,!0),D.child}function gg(S){var D=S.stateNode;D.pendingContext?gc(S,D.pendingContext,D.pendingContext!==D.context):D.context&&gc(S,D.context,!1),ng(S,D.containerInfo)}var pa={dehydrated:null,retryTime:0};function rn(S,D,T){var q=D.mode,W=D.pendingProps,ce=Vn.current,Se=!1,It;if((It=(D.effectTag&64)!==0)||(It=(ce&2)!==0&&(S===null||S.memoizedState!==null)),It?(Se=!0,D.effectTag&=-65):S!==null&&S.memoizedState===null||W.fallback===void 0||W.unstable_avoidThisFallback===!0||(ce|=1),Fn(Vn,ce&1,D),S===null){if(W.fallback!==void 0&&LA(D),Se){if(Se=W.fallback,W=Fu(null,q,0,null),W.return=D,(D.mode&2)===0)for(S=D.memoizedState!==null?D.child.child:D.child,W.child=S;S!==null;)S.return=W,S=S.sibling;return T=Fu(Se,q,T,null),T.return=D,W.sibling=T,D.memoizedState=pa,D.child=W,T}return q=W.children,D.memoizedState=null,D.child=ca(D,null,q,T)}if(S.memoizedState!==null){if(S=S.child,q=S.sibling,Se){if(W=W.fallback,T=KA(S,S.pendingProps,0),T.return=D,(D.mode&2)===0&&(Se=D.memoizedState!==null?D.child.child:D.child,Se!==S.child))for(T.child=Se;Se!==null;)Se.return=T,Se=Se.sibling;return q=KA(q,W,q.expirationTime),q.return=D,T.sibling=q,T.childExpirationTime=0,D.memoizedState=pa,D.child=T,q}return T=yi(D,S.child,W.children,T),D.memoizedState=null,D.child=T}if(S=S.child,Se){if(Se=W.fallback,W=Fu(null,q,0,null),W.return=D,W.child=S,S!==null&&(S.return=W),(D.mode&2)===0)for(S=D.memoizedState!==null?D.child.child:D.child,W.child=S;S!==null;)S.return=W,S=S.sibling;return T=Fu(Se,q,T,null),T.return=D,W.sibling=T,T.effectTag|=2,W.childExpirationTime=0,D.memoizedState=pa,D.child=W,T}return D.memoizedState=null,D.child=yi(D,S,W.children,T)}function co(S,D){S.expirationTime<D&&(S.expirationTime=D);var T=S.alternate;T!==null&&T.expirationTime<D&&(T.expirationTime=D),Ts(S.return,D)}function MA(S,D,T,q,W,ce){var Se=S.memoizedState;Se===null?S.memoizedState={isBackwards:D,rendering:null,last:q,tail:T,tailExpiration:0,tailMode:W,lastEffect:ce}:(Se.isBackwards=D,Se.rendering=null,Se.last=q,Se.tail=T,Se.tailExpiration=0,Se.tailMode=W,Se.lastEffect=ce)}function Ka(S,D,T){var q=D.pendingProps,W=q.revealOrder,ce=q.tail;if(Es(S,D,q.children,T),q=Vn.current,(q&2)!==0)q=q&1|2,D.effectTag|=64;else{if(S!==null&&(S.effectTag&64)!==0)e:for(S=D.child;S!==null;){if(S.tag===13)S.memoizedState!==null&&co(S,T);else if(S.tag===19)co(S,T);else if(S.child!==null){S.child.return=S,S=S.child;continue}if(S===D)break e;for(;S.sibling===null;){if(S.return===null||S.return===D)break e;S=S.return}S.sibling.return=S.return,S=S.sibling}q&=1}if(Fn(Vn,q,D),(D.mode&2)===0)D.memoizedState=null;else switch(W){case"forwards":for(T=D.child,W=null;T!==null;)S=T.alternate,S!==null&&fp(S)===null&&(W=T),T=T.sibling;T=W,T===null?(W=D.child,D.child=null):(W=T.sibling,T.sibling=null),MA(D,!1,W,T,ce,D.lastEffect);break;case"backwards":for(T=null,W=D.child,D.child=null;W!==null;){if(S=W.alternate,S!==null&&fp(S)===null){D.child=W;break}S=W.sibling,W.sibling=T,T=W,W=S}MA(D,!0,T,null,ce,D.lastEffect);break;case"together":MA(D,!1,null,null,void 0,D.lastEffect);break;default:D.memoizedState=null}return D.child}function ti(S,D,T){S!==null&&(D.dependencies=S.dependencies);var q=D.expirationTime;if(q!==0&&jm(q),D.childExpirationTime<T)return null;if(S!==null&&D.child!==S.child)throw Error(n(153));if(D.child!==null){for(S=D.child,T=KA(S,S.pendingProps,S.expirationTime),D.child=T,T.return=D;S.sibling!==null;)S=S.sibling,T=T.sibling=KA(S,S.pendingProps,S.expirationTime),T.return=D;T.sibling=null}return D.child}function ha(S){S.effectTag|=4}var xc,Pl,ts,Hr;if(I)xc=function(S,D){for(var T=D.child;T!==null;){if(T.tag===5||T.tag===6)H(S,T.stateNode);else if(T.tag!==4&&T.child!==null){T.child.return=T,T=T.child;continue}if(T===D)break;for(;T.sibling===null;){if(T.return===null||T.return===D)return;T=T.return}T.sibling.return=T.return,T=T.sibling}},Pl=function(){},ts=function(S,D,T,q,W){if(S=S.memoizedProps,S!==q){var ce=D.stateNode,Se=ua(lo.current);T=Me(ce,T,S,q,W,Se),(D.updateQueue=T)&&ha(D)}},Hr=function(S,D,T,q){T!==q&&ha(D)};else if(P){xc=function(S,D,T,q){for(var W=D.child;W!==null;){if(W.tag===5){var ce=W.stateNode;T&&q&&(ce=ki(ce,W.type,W.memoizedProps,W)),H(S,ce)}else if(W.tag===6)ce=W.stateNode,T&&q&&(ce=gs(ce,W.memoizedProps,W)),H(S,ce);else if(W.tag!==4){if(W.tag===13&&(W.effectTag&4)!==0&&(ce=W.memoizedState!==null)){var Se=W.child;if(Se!==null&&(Se.child!==null&&(Se.child.return=Se,xc(S,Se,!0,ce)),ce=Se.sibling,ce!==null)){ce.return=W,W=ce;continue}}if(W.child!==null){W.child.return=W,W=W.child;continue}}if(W===D)break;for(;W.sibling===null;){if(W.return===null||W.return===D)return;W=W.return}W.sibling.return=W.return,W=W.sibling}};var Ep=function(S,D,T,q){for(var W=D.child;W!==null;){if(W.tag===5){var ce=W.stateNode;T&&q&&(ce=ki(ce,W.type,W.memoizedProps,W)),jr(S,ce)}else if(W.tag===6)ce=W.stateNode,T&&q&&(ce=gs(ce,W.memoizedProps,W)),jr(S,ce);else if(W.tag!==4){if(W.tag===13&&(W.effectTag&4)!==0&&(ce=W.memoizedState!==null)){var Se=W.child;if(Se!==null&&(Se.child!==null&&(Se.child.return=Se,Ep(S,Se,!0,ce)),ce=Se.sibling,ce!==null)){ce.return=W,W=ce;continue}}if(W.child!==null){W.child.return=W,W=W.child;continue}}if(W===D)break;for(;W.sibling===null;){if(W.return===null||W.return===D)return;W=W.return}W.sibling.return=W.return,W=W.sibling}};Pl=function(S){var D=S.stateNode;if(S.firstEffect!==null){var T=D.containerInfo,q=Br(T);Ep(q,S,!1,!1),D.pendingChildren=q,ha(S),Hn(T,q)}},ts=function(S,D,T,q,W){var ce=S.stateNode,Se=S.memoizedProps;if((S=D.firstEffect===null)&&Se===q)D.stateNode=ce;else{var It=D.stateNode,Et=ua(lo.current),bt=null;Se!==q&&(bt=Me(It,T,Se,q,W,Et)),S&&bt===null?D.stateNode=ce:(ce=fr(ce,bt,T,Se,q,D,S,It),yt(ce,T,q,W,Et)&&ha(D),D.stateNode=ce,S?ha(D):xc(ce,D,!1,!1))}},Hr=function(S,D,T,q){T!==q&&(S=ua(Ic.current),T=ua(lo.current),D.stateNode=_e(q,S,T,D),ha(D))}}else Pl=function(){},ts=function(){},Hr=function(){};function bc(S,D){switch(S.tailMode){case"hidden":D=S.tail;for(var T=null;D!==null;)D.alternate!==null&&(T=D),D=D.sibling;T===null?S.tail=null:T.sibling=null;break;case"collapsed":T=S.tail;for(var q=null;T!==null;)T.alternate!==null&&(q=T),T=T.sibling;q===null?D||S.tail===null?S.tail=null:S.tail.sibling=null:q.sibling=null}}function AI(S){switch(S.tag){case 1:$n(S.type)&&Ua(S);var D=S.effectTag;return D&4096?(S.effectTag=D&-4097|64,S):null;case 3:if(wc(S),$t(S),D=S.effectTag,(D&64)!==0)throw Error(n(285));return S.effectTag=D&-4097|64,S;case 5:return ig(S),null;case 13:return Ue(Vn,S),D=S.effectTag,D&4096?(S.effectTag=D&-4097|64,S):null;case 19:return Ue(Vn,S),null;case 4:return wc(S),null;case 10:return Zi(S),null;default:return null}}function dg(S,D){return{value:S,source:D,stack:Cl(D)}}var mg=typeof WeakSet=="function"?WeakSet:Set;function Va(S,D){var T=D.source,q=D.stack;q===null&&T!==null&&(q=Cl(T)),T!==null&&ge(T.type),D=D.value,S!==null&&S.tag===1&&ge(S.type);try{console.error(D)}catch(W){setTimeout(function(){throw W})}}function Nm(S,D){try{D.props=S.memoizedProps,D.state=S.memoizedState,D.componentWillUnmount()}catch(T){YA(S,T)}}function yg(S){var D=S.ref;if(D!==null)if(typeof D=="function")try{D(null)}catch(T){YA(S,T)}else D.current=null}function kt(S,D){switch(D.tag){case 0:case 11:case 15:N(2,0,D);break;case 1:if(D.effectTag&256&&S!==null){var T=S.memoizedProps,q=S.memoizedState;S=D.stateNode,D=S.getSnapshotBeforeUpdate(D.elementType===D.type?T:di(D.type,T),q),S.__reactInternalSnapshotBeforeUpdate=D}break;case 3:case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}function N(S,D,T){if(T=T.updateQueue,T=T!==null?T.lastEffect:null,T!==null){var q=T=T.next;do{if((q.tag&S)!==0){var W=q.destroy;q.destroy=void 0,W!==void 0&&W()}(q.tag&D)!==0&&(W=q.create,q.destroy=W()),q=q.next}while(q!==T)}}function K(S,D,T){switch(typeof II=="function"&&II(D),D.tag){case 0:case 11:case 14:case 15:if(S=D.updateQueue,S!==null&&(S=S.lastEffect,S!==null)){var q=S.next;so(97<T?97:T,function(){var W=q;do{var ce=W.destroy;if(ce!==void 0){var Se=D;try{ce()}catch(It){YA(Se,It)}}W=W.next}while(W!==q)})}break;case 1:yg(D),T=D.stateNode,typeof T.componentWillUnmount=="function"&&Nm(D,T);break;case 5:yg(D);break;case 4:I?gr(S,D,T):P&&ze(D)}}function te(S,D,T){for(var q=D;;)if(K(S,q,T),q.child===null||I&&q.tag===4){if(q===D)break;for(;q.sibling===null;){if(q.return===null||q.return===D)return;q=q.return}q.sibling.return=q.return,q=q.sibling}else q.child.return=q,q=q.child}function Ae(S){var D=S.alternate;S.return=null,S.child=null,S.memoizedState=null,S.updateQueue=null,S.dependencies=null,S.alternate=null,S.firstEffect=null,S.lastEffect=null,S.pendingProps=null,S.memoizedProps=null,D!==null&&Ae(D)}function ze(S){if(P){S=S.stateNode.containerInfo;var D=Br(S);bs(S,D)}}function gt(S){return S.tag===5||S.tag===3||S.tag===4}function ur(S){if(I){e:{for(var D=S.return;D!==null;){if(gt(D)){var T=D;break e}D=D.return}throw Error(n(160))}switch(D=T.stateNode,T.tag){case 5:var q=!1;break;case 3:D=D.containerInfo,q=!0;break;case 4:D=D.containerInfo,q=!0;break;default:throw Error(n(161))}T.effectTag&16&&(Ut(D),T.effectTag&=-17);e:t:for(T=S;;){for(;T.sibling===null;){if(T.return===null||gt(T.return)){T=null;break e}T=T.return}for(T.sibling.return=T.return,T=T.sibling;T.tag!==5&&T.tag!==6&&T.tag!==18;){if(T.effectTag&2||T.child===null||T.tag===4)continue t;T.child.return=T,T=T.child}if(!(T.effectTag&2)){T=T.stateNode;break e}}for(var W=S;;){var ce=W.tag===5||W.tag===6;if(ce)ce=ce?W.stateNode:W.stateNode.instance,T?q?Ne(D,ce,T):ke(D,ce,T):q?z(D,ce):F(D,ce);else if(W.tag!==4&&W.child!==null){W.child.return=W,W=W.child;continue}if(W===S)break;for(;W.sibling===null;){if(W.return===null||W.return===S)return;W=W.return}W.sibling.return=W.return,W=W.sibling}}}function gr(S,D,T){for(var q=D,W=!1,ce,Se;;){if(!W){W=q.return;e:for(;;){if(W===null)throw Error(n(160));switch(ce=W.stateNode,W.tag){case 5:Se=!1;break e;case 3:ce=ce.containerInfo,Se=!0;break e;case 4:ce=ce.containerInfo,Se=!0;break e}W=W.return}W=!0}if(q.tag===5||q.tag===6)te(S,q,T),Se?ht(ce,q.stateNode):st(ce,q.stateNode);else if(q.tag===4){if(q.child!==null){ce=q.stateNode.containerInfo,Se=!0,q.child.return=q,q=q.child;continue}}else if(K(S,q,T),q.child!==null){q.child.return=q,q=q.child;continue}if(q===D)break;for(;q.sibling===null;){if(q.return===null||q.return===D)return;q=q.return,q.tag===4&&(W=!1)}q.sibling.return=q.return,q=q.sibling}}function hn(S,D){if(I)switch(D.tag){case 0:case 11:case 14:case 15:N(4,8,D);break;case 1:break;case 5:var T=D.stateNode;if(T!=null){var q=D.memoizedProps;S=S!==null?S.memoizedProps:q;var W=D.type,ce=D.updateQueue;D.updateQueue=null,ce!==null&&ie(T,ce,W,S,q,D)}break;case 6:if(D.stateNode===null)throw Error(n(162));T=D.memoizedProps,X(D.stateNode,S!==null?S.memoizedProps:T,T);break;case 3:y&&(D=D.stateNode,D.hydrate&&(D.hydrate=!1,Cn(D.containerInfo)));break;case 12:break;case 13:ri(D),Ni(D);break;case 19:Ni(D);break;case 17:break;case 20:break;case 21:break;default:throw Error(n(163))}else{switch(D.tag){case 0:case 11:case 14:case 15:N(4,8,D);return;case 12:return;case 13:ri(D),Ni(D);return;case 19:Ni(D);return;case 3:y&&(T=D.stateNode,T.hydrate&&(T.hydrate=!1,Cn(T.containerInfo)))}e:if(P)switch(D.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:D=D.stateNode,bs(D.containerInfo,D.pendingChildren);break e;default:throw Error(n(163))}}}function ri(S){var D=S;if(S.memoizedState===null)var T=!1;else T=!0,D=S.child,hI=Hi();if(I&&D!==null){e:if(S=D,I)for(D=S;;){if(D.tag===5){var q=D.stateNode;T?Xt(q):tn(D.stateNode,D.memoizedProps)}else if(D.tag===6)q=D.stateNode,T?xt(q):Dr(q,D.memoizedProps);else if(D.tag===13&&D.memoizedState!==null&&D.memoizedState.dehydrated===null){q=D.child.sibling,q.return=D,D=q;continue}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break e;for(;D.sibling===null;){if(D.return===null||D.return===S)break e;D=D.return}D.sibling.return=D.return,D=D.sibling}}}function Ni(S){var D=S.updateQueue;if(D!==null){S.updateQueue=null;var T=S.stateNode;T===null&&(T=S.stateNode=new mg),D.forEach(function(q){var W=hF.bind(null,S,q);T.has(q)||(T.add(q),q.then(W,W))})}}var Eg=typeof WeakMap=="function"?WeakMap:Map;function Fv(S,D,T){T=$i(T,null),T.tag=3,T.payload={element:null};var q=D.value;return T.callback=function(){xu||(xu=!0,_m=q),Va(S,D)},T}function Rv(S,D,T){T=$i(T,null),T.tag=3;var q=S.type.getDerivedStateFromError;if(typeof q=="function"){var W=D.value;T.payload=function(){return Va(S,D),q(W)}}var ce=S.stateNode;return ce!==null&&typeof ce.componentDidCatch=="function"&&(T.callback=function(){typeof q!="function"&&(bu===null?bu=new Set([this]):bu.add(this),Va(S,D));var Se=D.stack;this.componentDidCatch(D.value,{componentStack:Se!==null?Se:""})}),T}var fI=Math.ceil,Cp=u.ReactCurrentDispatcher,pI=u.ReactCurrentOwner,gn=0,Lm=8,rs=16,Ms=32,Pu=0,Om=1,Ci=2,ga=3,xl=4,Qc=5,pr=gn,Ai=null,Fr=null,ns=0,Gi=Pu,Mm=null,Ja=1073741823,UA=1073741823,Um=null,Ip=0,_A=!1,hI=0,gI=500,nr=null,xu=!1,_m=null,bu=null,wp=!1,Cg=null,HA=90,qA=null,Ig=0,dI=null,Hm=0;function da(){return(pr&(rs|Ms))!==gn?1073741821-(Hi()/10|0):Hm!==0?Hm:Hm=1073741821-(Hi()/10|0)}function jA(S,D,T){if(D=D.mode,(D&2)===0)return 1073741823;var q=Mo();if((D&4)===0)return q===99?1073741823:1073741822;if((pr&rs)!==gn)return ns;if(T!==null)S=Ha(S,T.timeoutMs|0||5e3,250);else switch(q){case 99:S=1073741823;break;case 98:S=Ha(S,150,100);break;case 97:case 96:S=Ha(S,5e3,250);break;case 95:S=2;break;default:throw Error(n(326))}return Ai!==null&&S===ns&&--S,S}function kc(S,D){if(50<Ig)throw Ig=0,dI=null,Error(n(185));if(S=wg(S,D),S!==null){var T=Mo();D===1073741823?(pr&Lm)!==gn&&(pr&(rs|Ms))===gn?mI(S):(uo(S),pr===gn&&qi()):uo(S),(pr&4)===gn||T!==98&&T!==99||(qA===null?qA=new Map([[S,D]]):(T=qA.get(S),(T===void 0||T>D)&&qA.set(S,D)))}}function wg(S,D){S.expirationTime<D&&(S.expirationTime=D);var T=S.alternate;T!==null&&T.expirationTime<D&&(T.expirationTime=D);var q=S.return,W=null;if(q===null&&S.tag===3)W=S.stateNode;else for(;q!==null;){if(T=q.alternate,q.childExpirationTime<D&&(q.childExpirationTime=D),T!==null&&T.childExpirationTime<D&&(T.childExpirationTime=D),q.return===null&&q.tag===3){W=q.stateNode;break}q=q.return}return W!==null&&(Ai===W&&(jm(D),Gi===xl&&VA(W,ns)),qv(W,D)),W}function qm(S){var D=S.lastExpiredTime;return D!==0||(D=S.firstPendingTime,!Hv(S,D))?D:(D=S.lastPingedTime,S=S.nextKnownPendingLevel,D>S?D:S)}function uo(S){if(S.lastExpiredTime!==0)S.callbackExpirationTime=1073741823,S.callbackPriority=99,S.callbackNode=Eu(mI.bind(null,S));else{var D=qm(S),T=S.callbackNode;if(D===0)T!==null&&(S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90);else{var q=da();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var W=S.callbackPriority;if(S.callbackExpirationTime===D&&W>=q)return;T!==QA&&Ce(T)}S.callbackExpirationTime=D,S.callbackPriority=q,D=D===1073741823?Eu(mI.bind(null,S)):vl(q,Tv.bind(null,S),{timeout:10*(1073741821-D)-Hi()}),S.callbackNode=D}}}function Tv(S,D){if(Hm=0,D)return D=da(),Wm(S,D),uo(S),null;var T=qm(S);if(T!==0){if(D=S.callbackNode,(pr&(rs|Ms))!==gn)throw Error(n(327));if(Bp(),S===Ai&&T===ns||Qu(S,T),Fr!==null){var q=pr;pr|=rs;var W=WA(S);do try{cF();break}catch(It){GA(S,It)}while(1);if(oa(),pr=q,Cp.current=W,Gi===Om)throw D=Mm,Qu(S,T),VA(S,T),uo(S),D;if(Fr===null)switch(W=S.finishedWork=S.current.alternate,S.finishedExpirationTime=T,q=Gi,Ai=null,q){case Pu:case Om:throw Error(n(345));case Ci:Wm(S,2<T?2:T);break;case ga:if(VA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=EI(W)),Ja===1073741823&&(W=hI+gI-Hi(),10<W)){if(_A){var ce=S.lastPingedTime;if(ce===0||ce>=T){S.lastPingedTime=T,Qu(S,T);break}}if(ce=qm(S),ce!==0&&ce!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}S.timeoutHandle=qe(ku.bind(null,S),W);break}ku(S);break;case xl:if(VA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=EI(W)),_A&&(W=S.lastPingedTime,W===0||W>=T)){S.lastPingedTime=T,Qu(S,T);break}if(W=qm(S),W!==0&&W!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}if(UA!==1073741823?q=10*(1073741821-UA)-Hi():Ja===1073741823?q=0:(q=10*(1073741821-Ja)-5e3,W=Hi(),T=10*(1073741821-T)-W,q=W-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*fI(q/1960))-q,T<q&&(q=T)),10<q){S.timeoutHandle=qe(ku.bind(null,S),q);break}ku(S);break;case Qc:if(Ja!==1073741823&&Um!==null){ce=Ja;var Se=Um;if(q=Se.busyMinDurationMs|0,0>=q?q=0:(W=Se.busyDelayMs|0,ce=Hi()-(10*(1073741821-ce)-(Se.timeoutMs|0||5e3)),q=ce<=W?0:W+q-ce),10<q){VA(S,T),S.timeoutHandle=qe(ku.bind(null,S),q);break}}ku(S);break;default:throw Error(n(329))}if(uo(S),S.callbackNode===D)return Tv.bind(null,S)}}return null}function mI(S){var D=S.lastExpiredTime;if(D=D!==0?D:1073741823,S.finishedExpirationTime===D)ku(S);else{if((pr&(rs|Ms))!==gn)throw Error(n(327));if(Bp(),S===Ai&&D===ns||Qu(S,D),Fr!==null){var T=pr;pr|=rs;var q=WA(S);do try{lF();break}catch(W){GA(S,W)}while(1);if(oa(),pr=T,Cp.current=q,Gi===Om)throw T=Mm,Qu(S,D),VA(S,D),uo(S),T;if(Fr!==null)throw Error(n(261));S.finishedWork=S.current.alternate,S.finishedExpirationTime=D,Ai=null,ku(S),uo(S)}}return null}function Nv(S,D){Wm(S,D),uo(S),(pr&(rs|Ms))===gn&&qi()}function aF(){if(qA!==null){var S=qA;qA=null,S.forEach(function(D,T){Wm(T,D),uo(T)}),qi()}}function Lv(S,D){if((pr&(rs|Ms))!==gn)throw Error(n(187));var T=pr;pr|=1;try{return so(99,S.bind(null,D))}finally{pr=T,qi()}}function Qu(S,D){S.finishedWork=null,S.finishedExpirationTime=0;var T=S.timeoutHandle;if(T!==Oe&&(S.timeoutHandle=Oe,At(T)),Fr!==null)for(T=Fr.return;T!==null;){var q=T;switch(q.tag){case 1:var W=q.type.childContextTypes;W!=null&&Ua(q);break;case 3:wc(q),$t(q);break;case 5:ig(q);break;case 4:wc(q);break;case 13:Ue(Vn,q);break;case 19:Ue(Vn,q);break;case 10:Zi(q)}T=T.return}Ai=S,Fr=KA(S.current,null,D),ns=D,Gi=Pu,Mm=null,UA=Ja=1073741823,Um=null,Ip=0,_A=!1}function GA(S,D){do{try{if(oa(),cI(),Fr===null||Fr.return===null)return Gi=Om,Mm=D,null;e:{var T=S,q=Fr.return,W=Fr,ce=D;if(D=ns,W.effectTag|=2048,W.firstEffect=W.lastEffect=null,ce!==null&&typeof ce=="object"&&typeof ce.then=="function"){var Se=ce,It=(Vn.current&1)!==0,Et=q;do{var bt;if(bt=Et.tag===13){var Nr=Et.memoizedState;if(Nr!==null)bt=Nr.dehydrated!==null;else{var is=Et.memoizedProps;bt=is.fallback===void 0?!1:is.unstable_avoidThisFallback!==!0?!0:!It}}if(bt){var fi=Et.updateQueue;if(fi===null){var Ao=new Set;Ao.add(Se),Et.updateQueue=Ao}else fi.add(Se);if((Et.mode&2)===0){if(Et.effectTag|=64,W.effectTag&=-2981,W.tag===1)if(W.alternate===null)W.tag=17;else{var JA=$i(1073741823,null);JA.tag=2,mi(W,JA)}W.expirationTime=1073741823;break e}ce=void 0,W=D;var qo=T.pingCache;if(qo===null?(qo=T.pingCache=new Eg,ce=new Set,qo.set(Se,ce)):(ce=qo.get(Se),ce===void 0&&(ce=new Set,qo.set(Se,ce))),!ce.has(W)){ce.add(W);var rt=pF.bind(null,T,Se,W);Se.then(rt,rt)}Et.effectTag|=4096,Et.expirationTime=D;break e}Et=Et.return}while(Et!==null);ce=Error((ge(W.type)||"A React component")+` suspended while rendering, but no fallback UI was specified.
283 283
284Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`+Cl(W))}Gi!==bc&&(Gi=Ei),ce=gg(ce,W),Ct=q;do{switch(Ct.tag){case 3:Se=ce,Ct.effectTag|=4096,Ct.expirationTime=D;var Je=Qv(Ct,Se,D);Ha(Ct,Je);break e;case 1:Se=ce;var ft=Ct.type,jt=Ct.stateNode;if((Ct.effectTag&64)===0&&(typeof ft.getDerivedStateFromError=="function"||jt!==null&&typeof jt.componentDidCatch=="function"&&(bu===null||!bu.has(jt)))){Ct.effectTag|=4096,Ct.expirationTime=D;var Cr=kv(Ct,Se,D);Ha(Ct,Cr);break e}}Ct=Ct.return}while(Ct!==null)}Fr=Lv(Fr)}catch(In){D=In;continue}break}while(1)}function GA(){var S=yp.current;return yp.current=Du,S===null?Du:S}function yI(S,D){S<Va&&2<S&&(Va=S),D!==null&&S<MA&&2<S&&(MA=S,Um=D)}function jm(S){S>Cp&&(Cp=S)}function sF(){for(;Fr!==null;)Fr=Nv(Fr)}function oF(){for(;Fr!==null&&!Rt();)Fr=Nv(Fr)}function Nv(S){var D=Mv(S.alternate,S,ns);return S.memoizedProps=S.pendingProps,D===null&&(D=Lv(S)),pI.current=null,D}function Lv(S){Fr=S;do{var D=Fr.alternate;if(S=Fr.return,(Fr.effectTag&2048)===0){e:{var T=D;D=Fr;var q=ns,W=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:$n(D.type)&&Ma(D);break;case 3:Ic(D),$t(D),W=D.stateNode,W.pendingContext&&(W.context=W.pendingContext,W.pendingContext=null),(T===null||T.child===null)&&Wa(D)&&pa(D),Sl(D);break;case 5:ng(D);var ce=ca(Ec.current);if(q=D.type,T!==null&&D.stateNode!=null)ts(T,D,q,W,ce),T.ref!==D.ref&&(D.effectTag|=128);else if(W){if(T=ca(lo.current),Wa(D)){if(W=D,!y)throw Error(n(175));T=ap(W.stateNode,W.type,W.memoizedProps,ce,T,W),W.updateQueue=T,T=T!==null,T&&pa(D)}else{var Se=ut(q,W,ce,T,D);Pc(Se,D,!1,!1),D.stateNode=Se,yt(Se,q,W,ce,T)&&pa(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Hr(T,D,T.memoizedProps,W);else{if(typeof W!="string"&&D.stateNode===null)throw Error(n(166));if(T=ca(Ec.current),ce=ca(lo.current),Wa(D)){if(T=D,!y)throw Error(n(176));(T=lp(T.stateNode,T.memoizedProps,T))&&pa(D)}else D.stateNode=_e(W,T,ce,D)}break;case 11:break;case 13:if(Ue(Vn,D),W=D.memoizedState,(D.effectTag&64)!==0){D.expirationTime=q;break e}W=W!==null,ce=!1,T===null?D.memoizedProps.fallback!==void 0&&Wa(D):(q=T.memoizedState,ce=q!==null,W||q===null||(q=T.child.sibling,q!==null&&(Se=D.firstEffect,Se!==null?(D.firstEffect=q,q.nextEffect=Se):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),W&&!ce&&(D.mode&2)!==0&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||(Vn.current&1)!==0?Gi===Pu&&(Gi=ha):((Gi===Pu||Gi===ha)&&(Gi=Pl),Cp!==0&&Ai!==null&&(KA(Ai,ns),_v(Ai,Cp)))),P&&W&&(D.effectTag|=4),I&&(W||ce)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Ic(D),Sl(D);break;case 10:Zi(D);break;case 9:break;case 14:break;case 17:$n(D.type)&&Ma(D);break;case 19:if(Ue(Vn,D),W=D.memoizedState,W===null)break;if(ce=(D.effectTag&64)!==0,Se=W.rendering,Se===null){if(ce)xc(W,!1);else if(Gi!==Pu||T!==null&&(T.effectTag&64)!==0)for(T=D.child;T!==null;){if(Se=up(T),Se!==null){for(D.effectTag|=64,xc(W,!1),T=Se.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),W.lastEffect===null&&(D.firstEffect=null),D.lastEffect=W.lastEffect,T=q,W=D.child;W!==null;)ce=W,q=T,ce.effectTag&=2,ce.nextEffect=null,ce.firstEffect=null,ce.lastEffect=null,Se=ce.alternate,Se===null?(ce.childExpirationTime=0,ce.expirationTime=q,ce.child=null,ce.memoizedProps=null,ce.memoizedState=null,ce.updateQueue=null,ce.dependencies=null):(ce.childExpirationTime=Se.childExpirationTime,ce.expirationTime=Se.expirationTime,ce.child=Se.child,ce.memoizedProps=Se.memoizedProps,ce.memoizedState=Se.memoizedState,ce.updateQueue=Se.updateQueue,q=Se.dependencies,ce.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),W=W.sibling;Fn(Vn,Vn.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!ce)if(T=up(Se),T!==null){if(D.effectTag|=64,ce=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),xc(W,!0),W.tail===null&&W.tailMode==="hidden"&&!Se.alternate){D=D.lastEffect=W.lastEffect,D!==null&&(D.nextEffect=null);break}}else Hi()>W.tailExpiration&&1<q&&(D.effectTag|=64,ce=!0,xc(W,!1),D.expirationTime=D.childExpirationTime=q-1);W.isBackwards?(Se.sibling=D.child,D.child=Se):(T=W.last,T!==null?T.sibling=Se:D.child=Se,W.last=Se)}if(W.tail!==null){W.tailExpiration===0&&(W.tailExpiration=Hi()+500),T=W.tail,W.rendering=T,W.tail=T.sibling,W.lastEffect=D.lastEffect,T.sibling=null,W=Vn.current,W=ce?W&1|2:W&1,Fn(Vn,W,D),D=T;break e}break;case 20:break;case 21:break;default:throw Error(n(156,D.tag))}D=null}if(T=Fr,ns===1||T.childExpirationTime!==1){for(W=0,ce=T.child;ce!==null;)q=ce.expirationTime,Se=ce.childExpirationTime,q>W&&(W=q),Se>W&&(W=Se),ce=ce.sibling;T.childExpirationTime=W}if(D!==null)return D;S!==null&&(S.effectTag&2048)===0&&(S.firstEffect===null&&(S.firstEffect=Fr.firstEffect),Fr.lastEffect!==null&&(S.lastEffect!==null&&(S.lastEffect.nextEffect=Fr.firstEffect),S.lastEffect=Fr.lastEffect),1<Fr.effectTag&&(S.lastEffect!==null?S.lastEffect.nextEffect=Fr:S.firstEffect=Fr,S.lastEffect=Fr))}else{if(D=AI(Fr,ns),D!==null)return D.effectTag&=2047,D;S!==null&&(S.firstEffect=S.lastEffect=null,S.effectTag|=2048)}if(D=Fr.sibling,D!==null)return D;Fr=S}while(Fr!==null);return Gi===Pu&&(Gi=bc),null}function CI(S){var D=S.expirationTime;return S=S.childExpirationTime,D>S?D:S}function ku(S){var D=Oo();return so(99,aF.bind(null,S,D)),null}function aF(S,D){do Ip();while(Cg!==null);if((pr&(rs|Ms))!==gn)throw Error(n(327));var T=S.finishedWork,q=S.finishedExpirationTime;if(T===null)return null;if(S.finishedWork=null,S.finishedExpirationTime=0,T===S.current)throw Error(n(177));S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90,S.nextKnownPendingLevel=0;var W=CI(T);if(S.firstPendingTime=W,q<=S.lastSuspendedTime?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:q<=S.firstSuspendedTime&&(S.firstSuspendedTime=q-1),q<=S.lastPingedTime&&(S.lastPingedTime=0),q<=S.lastExpiredTime&&(S.lastExpiredTime=0),S===Ai&&(Fr=Ai=null,ns=0),1<T.effectTag?T.lastEffect!==null?(T.lastEffect.nextEffect=T,W=T.firstEffect):W=T:W=T.firstEffect,W!==null){var ce=pr;pr|=Ms,pI.current=null,me(S.containerInfo),nr=W;do try{lF()}catch(fo){if(nr===null)throw Error(n(330));WA(nr,fo),nr=nr.nextEffect}while(nr!==null);nr=W;do try{for(var Se=S,It=D;nr!==null;){var Ct=nr.effectTag;if(Ct&16&&I&&Ut(nr.stateNode),Ct&128){var xt=nr.alternate;if(xt!==null){var Nr=xt.ref;Nr!==null&&(typeof Nr=="function"?Nr(null):Nr.current=null)}}switch(Ct&1038){case 2:ur(nr),nr.effectTag&=-3;break;case 6:ur(nr),nr.effectTag&=-3,hn(nr.alternate,nr);break;case 1024:nr.effectTag&=-1025;break;case 1028:nr.effectTag&=-1025,hn(nr.alternate,nr);break;case 4:hn(nr.alternate,nr);break;case 8:var is=Se,fi=nr,Ao=It;I?gr(is,fi,Ao):te(is,fi,Ao),Ae(fi)}nr=nr.nextEffect}}catch(fo){if(nr===null)throw Error(n(330));WA(nr,fo),nr=nr.nextEffect}while(nr!==null);be(S.containerInfo),S.current=T,nr=W;do try{for(Ct=q;nr!==null;){var VA=nr.effectTag;if(VA&36){var Ho=nr.alternate;switch(xt=nr,Nr=Ct,xt.tag){case 0:case 11:case 15:N(16,32,xt);break;case 1:var rt=xt.stateNode;if(xt.effectTag&4)if(Ho===null)rt.componentDidMount();else{var Je=xt.elementType===xt.type?Ho.memoizedProps:di(xt.type,Ho.memoizedProps);rt.componentDidUpdate(Je,Ho.memoizedState,rt.__reactInternalSnapshotBeforeUpdate)}var ft=xt.updateQueue;ft!==null&&je(xt,ft,rt,Nr);break;case 3:var jt=xt.updateQueue;if(jt!==null){if(Se=null,xt.child!==null)switch(xt.child.tag){case 5:Se=de(xt.child.stateNode);break;case 1:Se=xt.child.stateNode}je(xt,jt,Se,Nr)}break;case 5:var Cr=xt.stateNode;Ho===null&&xt.effectTag&4&&$(Cr,xt.type,xt.memoizedProps,xt);break;case 6:break;case 4:break;case 12:break;case 13:if(y&&xt.memoizedState===null){var In=xt.alternate;if(In!==null){var Sr=In.memoizedState;if(Sr!==null){var wn=Sr.dehydrated;wn!==null&&no(wn)}}}break;case 19:case 17:case 20:case 21:break;default:throw Error(n(163))}}if(VA&128){xt=void 0;var ni=nr.ref;if(ni!==null){var Xr=nr.stateNode;switch(nr.tag){case 5:xt=de(Xr);break;default:xt=Xr}typeof ni=="function"?ni(xt):ni.current=xt}}nr=nr.nextEffect}}catch(fo){if(nr===null)throw Error(n(330));WA(nr,fo),nr=nr.nextEffect}while(nr!==null);nr=null,Dn(),pr=ce}else S.current=T;if(Ep)Ep=!1,Cg=S,_A=D;else for(nr=W;nr!==null;)D=nr.nextEffect,nr.nextEffect=null,nr=D;if(D=S.firstPendingTime,D===0&&(bu=null),D===1073741823?S===dI?Eg++:(Eg=0,dI=S):Eg=0,typeof EI=="function"&&EI(T.stateNode,q),uo(S),xu)throw xu=!1,S=_m,_m=null,S;return(pr&Lm)!==gn||qi(),null}function lF(){for(;nr!==null;){var S=nr.effectTag;(S&256)!==0&&kt(nr.alternate,nr),(S&512)===0||Ep||(Ep=!0,Bl(97,function(){return Ip(),null})),nr=nr.nextEffect}}function Ip(){if(_A!==90){var S=97<_A?97:_A;return _A=90,so(S,cF)}}function cF(){if(Cg===null)return!1;var S=Cg;if(Cg=null,(pr&(rs|Ms))!==gn)throw Error(n(331));var D=pr;for(pr|=Ms,S=S.current.firstEffect;S!==null;){try{var T=S;if((T.effectTag&512)!==0)switch(T.tag){case 0:case 11:case 15:N(128,0,T),N(0,64,T)}}catch(q){if(S===null)throw Error(n(330));WA(S,q)}T=S.nextEffect,S.nextEffect=null,S=T}return pr=D,qi(),!0}function Ov(S,D,T){D=gg(T,D),D=Qv(S,D,1073741823),mi(S,D),S=Ig(S,1073741823),S!==null&&uo(S)}function WA(S,D){if(S.tag===3)Ov(S,S,D);else for(var T=S.return;T!==null;){if(T.tag===3){Ov(T,S,D);break}else if(T.tag===1){var q=T.stateNode;if(typeof T.type.getDerivedStateFromError=="function"||typeof q.componentDidCatch=="function"&&(bu===null||!bu.has(q))){S=gg(D,S),S=kv(T,S,1073741823),mi(T,S),T=Ig(T,1073741823),T!==null&&uo(T);break}}T=T.return}}function uF(S,D,T){var q=S.pingCache;q!==null&&q.delete(D),Ai===S&&ns===T?Gi===Pl||Gi===ha&&Va===1073741823&&Hi()-hI<gI?Qu(S,ns):UA=!0:Uv(S,T)&&(D=S.lastPingedTime,D!==0&&D<T||(S.lastPingedTime=T,S.finishedExpirationTime===T&&(S.finishedExpirationTime=0,S.finishedWork=null),uo(S)))}function AF(S,D){var T=S.stateNode;T!==null&&T.delete(D),D=0,D===0&&(D=ga(),D=qA(D,S,null)),S=Ig(S,D),S!==null&&uo(S)}var Mv;Mv=function(S,D,T){var q=D.expirationTime;if(S!==null){var W=D.pendingProps;if(S.memoizedProps!==W||Ui.current)Uo=!0;else{if(q<T){switch(Uo=!1,D.tag){case 3:hg(D),pg();break;case 5:if(bm(D),D.mode&4&&T!==1&&Qe(D.type,W))return D.expirationTime=D.childExpirationTime=1,null;break;case 1:$n(D.type)&&gc(D);break;case 4:rg(D,D.stateNode.containerInfo);break;case 10:Mo(D,D.memoizedProps.value);break;case 13:if(D.memoizedState!==null)return q=D.child.childExpirationTime,q!==0&&q>=T?rn(S,D,T):(Fn(Vn,Vn.current&1,D),D=ti(S,D,T),D!==null?D.sibling:null);Fn(Vn,Vn.current&1,D);break;case 19:if(q=D.childExpirationTime>=T,(S.effectTag&64)!==0){if(q)return Ya(S,D,T);D.effectTag|=64}if(W=D.memoizedState,W!==null&&(W.rendering=null,W.tail=null),Fn(Vn,Vn.current,D),!q)return null}return ti(S,D,T)}Uo=!1}}else Uo=!1;switch(D.expirationTime=0,D.tag){case 2:if(q=D.type,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,W=Ri(D,Rn.current),Ns(D,T),W=sg(null,D,q,S,W,T),D.effectTag|=1,typeof W=="object"&&W!==null&&typeof W.render=="function"&&W.$$typeof===void 0){if(D.tag=1,cI(),$n(q)){var ce=!0;gc(D)}else ce=!1;D.memoizedState=W.state!==null&&W.state!==void 0?W.state:null;var Se=q.getDerivedStateFromProps;typeof Se=="function"&&vt(D,q,Se,S),W.updater=tr,D.stateNode=W,W._reactInternalFiber=D,ei(D,q,S,T),D=dp(null,D,q,!0,ce,T)}else D.tag=0,Cs(null,D,W,T),D=D.child;return D;case 16:if(W=D.elementType,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,ve(W),W._status!==1)throw W._result;switch(W=W._result,D.type=W,ce=D.tag=hF(W),S=di(W,S),ce){case 0:D=LA(null,D,W,S,T);break;case 1:D=gp(null,D,W,S,T);break;case 11:D=Ci(null,D,W,S,T);break;case 14:D=Rm(null,D,W,di(W.type,S),q,T);break;default:throw Error(n(306,W,""))}return D;case 0:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),LA(S,D,q,W,T);case 1:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),gp(S,D,q,W,T);case 3:if(hg(D),q=D.updateQueue,q===null)throw Error(n(282));if(W=D.memoizedState,W=W!==null?W.element:null,we(D,q,D.pendingProps,null,T),q=D.memoizedState.element,q===W)pg(),D=ti(S,D,T);else{if((W=D.stateNode.hydrate)&&(y?(Sc=gu(D.stateNode.containerInfo),Aa=D,W=Dl=!0):W=!1),W)for(T=la(D,null,q,T),D.child=T;T;)T.effectTag=T.effectTag&-3|1024,T=T.sibling;else Cs(S,D,q,T),pg();D=D.child}return D;case 5:return bm(D),S===null&&NA(D),q=D.type,W=D.pendingProps,ce=S!==null?S.memoizedProps:null,Se=W.children,Te(q,W)?Se=null:ce!==null&&Te(q,ce)&&(D.effectTag|=16),_o(S,D),D.mode&4&&T!==1&&Qe(q,W)?(D.expirationTime=D.childExpirationTime=1,D=null):(Cs(S,D,Se,T),D=D.child),D;case 6:return S===null&&NA(D),null;case 13:return rn(S,D,T);case 4:return rg(D,D.stateNode.containerInfo),q=D.pendingProps,S===null?D.child=yi(D,null,q,T):Cs(S,D,q,T),D.child;case 11:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),Ci(S,D,q,W,T);case 7:return Cs(S,D,D.pendingProps,T),D.child;case 8:return Cs(S,D,D.pendingProps.children,T),D.child;case 12:return Cs(S,D,D.pendingProps.children,T),D.child;case 10:e:{if(q=D.type._context,W=D.pendingProps,Se=D.memoizedProps,ce=W.value,Mo(D,ce),Se!==null){var It=Se.value;if(ce=ds(It,ce)?0:(typeof q._calculateChangedBits=="function"?q._calculateChangedBits(It,ce):1073741823)|0,ce===0){if(Se.children===W.children&&!Ui.current){D=ti(S,D,T);break e}}else for(It=D.child,It!==null&&(It.return=D);It!==null;){var Ct=It.dependencies;if(Ct!==null){Se=It.child;for(var xt=Ct.firstContext;xt!==null;){if(xt.context===q&&(xt.observedBits&ce)!==0){It.tag===1&&(xt=$i(T,null),xt.tag=2,mi(It,xt)),It.expirationTime<T&&(It.expirationTime=T),xt=It.alternate,xt!==null&&xt.expirationTime<T&&(xt.expirationTime=T),Ts(It.return,T),Ct.expirationTime<T&&(Ct.expirationTime=T);break}xt=xt.next}}else Se=It.tag===10&&It.type===D.type?null:It.child;if(Se!==null)Se.return=It;else for(Se=It;Se!==null;){if(Se===D){Se=null;break}if(It=Se.sibling,It!==null){It.return=Se.return,Se=It;break}Se=Se.return}It=Se}}Cs(S,D,W.children,T),D=D.child}return D;case 9:return W=D.type,ce=D.pendingProps,q=ce.children,Ns(D,T),W=Ls(W,ce.unstable_observedBits),q=q(W),D.effectTag|=1,Cs(S,D,q,T),D.child;case 14:return W=D.type,ce=di(W,D.pendingProps),ce=di(W.type,ce),Rm(S,D,W,ce,q,T);case 15:return Tm(S,D,D.type,D.pendingProps,q,T);case 17:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),D.tag=1,$n(q)?(S=!0,gc(D)):S=!1,Ns(D,T),Tn(D,q,W,T),ei(D,q,W,T),dp(null,D,q,!0,S,T);case 19:return Ya(S,D,T)}throw Error(n(156,D.tag))};var EI=null,II=null;function fF(S){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(D.isDisabled||!D.supportsFiber)return!0;try{var T=D.inject(S);EI=function(q){try{D.onCommitFiberRoot(T,q,void 0,(q.current.effectTag&64)===64)}catch{}},II=function(q){try{D.onCommitFiberUnmount(T,q)}catch{}}}catch{}return!0}function pF(S,D,T,q){this.tag=S,this.key=T,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=q,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function xl(S,D,T,q){return new pF(S,D,T,q)}function wI(S){return S=S.prototype,!(!S||!S.isReactComponent)}function hF(S){if(typeof S=="function")return wI(S)?1:0;if(S!=null){if(S=S.$$typeof,S===L)return 11;if(S===re)return 14}return 2}function YA(S,D){var T=S.alternate;return T===null?(T=xl(S.tag,D,S.key,S.mode),T.elementType=S.elementType,T.type=S.type,T.stateNode=S.stateNode,T.alternate=S,S.alternate=T):(T.pendingProps=D,T.effectTag=0,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null),T.childExpirationTime=S.childExpirationTime,T.expirationTime=S.expirationTime,T.child=S.child,T.memoizedProps=S.memoizedProps,T.memoizedState=S.memoizedState,T.updateQueue=S.updateQueue,D=S.dependencies,T.dependencies=D===null?null:{expirationTime:D.expirationTime,firstContext:D.firstContext,responders:D.responders},T.sibling=S.sibling,T.index=S.index,T.ref=S.ref,T}function Gm(S,D,T,q,W,ce){var Se=2;if(q=S,typeof S=="function")wI(S)&&(Se=1);else if(typeof S=="string")Se=5;else e:switch(S){case E:return Fu(T.children,W,ce,D);case R:Se=8,W|=7;break;case w:Se=8,W|=1;break;case v:return S=xl(12,T,D,W|8),S.elementType=v,S.type=v,S.expirationTime=ce,S;case _:return S=xl(13,T,D,W),S.type=_,S.elementType=_,S.expirationTime=ce,S;case V:return S=xl(19,T,D,W),S.elementType=V,S.expirationTime=ce,S;default:if(typeof S=="object"&&S!==null)switch(S.$$typeof){case b:Se=10;break e;case C:Se=9;break e;case L:Se=11;break e;case re:Se=14;break e;case oe:Se=16,q=null;break e}throw Error(n(130,S==null?S:typeof S,""))}return D=xl(Se,T,D,W),D.elementType=S,D.type=q,D.expirationTime=ce,D}function Fu(S,D,T,q){return S=xl(7,S,q,D),S.expirationTime=T,S}function BI(S,D,T){return S=xl(6,S,null,D),S.expirationTime=T,S}function vI(S,D,T){return D=xl(4,S.children!==null?S.children:[],S.key,D),D.expirationTime=T,D.stateNode={containerInfo:S.containerInfo,pendingChildren:null,implementation:S.implementation},D}function gF(S,D,T){this.tag=D,this.current=null,this.containerInfo=S,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=Oe,this.pendingContext=this.context=null,this.hydrate=T,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Uv(S,D){var T=S.firstSuspendedTime;return S=S.lastSuspendedTime,T!==0&&T>=D&&S<=D}function KA(S,D){var T=S.firstSuspendedTime,q=S.lastSuspendedTime;T<D&&(S.firstSuspendedTime=D),(q>D||T===0)&&(S.lastSuspendedTime=D),D<=S.lastPingedTime&&(S.lastPingedTime=0),D<=S.lastExpiredTime&&(S.lastExpiredTime=0)}function _v(S,D){D>S.firstPendingTime&&(S.firstPendingTime=D);var T=S.firstSuspendedTime;T!==0&&(D>=T?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:D>=S.lastSuspendedTime&&(S.lastSuspendedTime=D+1),D>S.nextKnownPendingLevel&&(S.nextKnownPendingLevel=D))}function Wm(S,D){var T=S.lastExpiredTime;(T===0||T>D)&&(S.lastExpiredTime=D)}function Hv(S){var D=S._reactInternalFiber;if(D===void 0)throw typeof S.render=="function"?Error(n(188)):Error(n(268,Object.keys(S)));return S=De(D),S===null?null:S.stateNode}function qv(S,D){S=S.memoizedState,S!==null&&S.dehydrated!==null&&S.retryTime<D&&(S.retryTime=D)}function Ym(S,D){qv(S,D),(S=S.alternate)&&qv(S,D)}var jv={createContainer:function(S,D,T){return S=new gF(S,D,T),D=xl(3,null,null,D===2?7:D===1?3:0),S.current=D,D.stateNode=S},updateContainer:function(S,D,T,q){var W=D.current,ce=ga(),Se=xe.suspense;ce=qA(ce,W,Se);e:if(T){T=T._reactInternalFiber;t:{if(le(T)!==T||T.tag!==1)throw Error(n(170));var It=T;do{switch(It.tag){case 3:It=It.stateNode.context;break t;case 1:if($n(It.type)){It=It.stateNode.__reactInternalMemoizedMergedChildContext;break t}}It=It.return}while(It!==null);throw Error(n(171))}if(T.tag===1){var Ct=T.type;if($n(Ct)){T=du(T,Ct,It);break e}}T=It}else T=Fi;return D.context===null?D.context=T:D.pendingContext=T,D=$i(ce,Se),D.payload={element:S},q=q===void 0?null:q,q!==null&&(D.callback=q),mi(W,D),Qc(W,ce),ce},batchedEventUpdates:function(S,D){var T=pr;pr|=2;try{return S(D)}finally{pr=T,pr===gn&&qi()}},batchedUpdates:function(S,D){var T=pr;pr|=1;try{return S(D)}finally{pr=T,pr===gn&&qi()}},unbatchedUpdates:function(S,D){var T=pr;pr&=-2,pr|=Lm;try{return S(D)}finally{pr=T,pr===gn&&qi()}},deferredUpdates:function(S){return so(97,S)},syncUpdates:function(S,D,T,q){return so(99,S.bind(null,D,T,q))},discreteUpdates:function(S,D,T,q){var W=pr;pr|=4;try{return so(98,S.bind(null,D,T,q))}finally{pr=W,pr===gn&&qi()}},flushDiscreteUpdates:function(){(pr&(1|rs|Ms))===gn&&(iF(),Ip())},flushControlled:function(S){var D=pr;pr|=1;try{so(99,S)}finally{pr=D,pr===gn&&qi()}},flushSync:Tv,flushPassiveEffects:Ip,IsThisRendererActing:{current:!1},getPublicRootInstance:function(S){if(S=S.current,!S.child)return null;switch(S.child.tag){case 5:return de(S.child.stateNode);default:return S.child.stateNode}},attemptSynchronousHydration:function(S){switch(S.tag){case 3:var D=S.stateNode;D.hydrate&&Rv(D,D.firstPendingTime);break;case 13:Tv(function(){return Qc(S,1073741823)}),D=Ua(ga(),150,100),Ym(S,D)}},attemptUserBlockingHydration:function(S){if(S.tag===13){var D=Ua(ga(),150,100);Qc(S,D),Ym(S,D)}},attemptContinuousHydration:function(S){if(S.tag===13){ga();var D=kA++;Qc(S,D),Ym(S,D)}},attemptHydrationAtCurrentPriority:function(S){if(S.tag===13){var D=ga();D=qA(D,S,null),Qc(S,D),Ym(S,D)}},findHostInstance:Hv,findHostInstanceWithWarning:function(S){return Hv(S)},findHostInstanceWithNoPortals:function(S){return S=Ce(S),S===null?null:S.tag===20?S.stateNode.instance:S.stateNode},shouldSuspend:function(){return!1},injectIntoDevTools:function(S){var D=S.findFiberByHostInstance;return fF(r({},S,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:u.ReactCurrentDispatcher,findHostInstanceByFiber:function(T){return T=De(T),T===null?null:T.stateNode},findFiberByHostInstance:function(T){return D?D(T):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))}};V2.exports=jv.default||jv;var dF=V2.exports;return V2.exports=t,dF}});var VCe=U((CYt,KCe)=>{"use strict";KCe.exports=YCe()});var zCe=U((EYt,JCe)=>{"use strict";var ryt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};JCe.exports=ryt});var eEe=U((IYt,$Ce)=>{"use strict";var nyt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])}return t},MQ=function(){function t(e,r){for(var o=0;o<r.length;o++){var a=r[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,r,o){return r&&t(e.prototype,r),o&&t(e,o),e}}();function S6(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function P6(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var su=zCe(),iyt=function(){function t(e,r,o,a,n,u){P6(this,t),this.left=e,this.right=r,this.top=o,this.bottom=a,this.width=n,this.height=u}return MQ(t,[{key:"fromJS",value:function(r){r(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),t}(),XCe=function(){MQ(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){P6(this,t),this.width=e,this.height=r}return MQ(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return"<Size#"+this.width+"x"+this.height+">"}}]),t}(),ZCe=function(){function t(e,r){P6(this,t),this.unit=e,this.value=r}return MQ(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case su.UNIT_POINT:return String(this.value);case su.UNIT_PERCENT:return this.value+"%";case su.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();$Ce.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var E=arguments.length,w=Array(E),v=0;v<E;v++)w[v]=arguments[v];return p.call.apply(p,[this,h].concat(w))}}for(var o=["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"],a=function(){var A,p=o[n],h=(A={},S6(A,su.UNIT_POINT,e.Node.prototype[p]),S6(A,su.UNIT_PERCENT,e.Node.prototype[p+"Percent"]),S6(A,su.UNIT_AUTO,e.Node.prototype[p+"Auto"]),A);r(e.Node.prototype,p,function(E){for(var w=arguments.length,v=Array(w>1?w-1:0),b=1;b<w;b++)v[b-1]=arguments[b];var C=v.pop(),R=void 0,L=void 0;if(C==="auto")R=su.UNIT_AUTO,L=void 0;else if(C instanceof ZCe)R=C.unit,L=C.valueOf();else if(R=typeof C=="string"&&C.endsWith("%")?su.UNIT_PERCENT:su.UNIT_POINT,L=parseFloat(C),!Number.isNaN(C)&&Number.isNaN(L))throw new Error("Invalid value "+C+" for "+p);if(!h[R])throw new Error('Failed to execute "'+p+`": Unsupported unit '`+C+"'");if(L!==void 0){var _;return(_=h[R]).call.apply(_,[this].concat(v,[L]))}else{var V;return(V=h[R]).call.apply(V,[this].concat(v))}})},n=0;n<o.length;n++)a();return r(e.Config.prototype,"free",function(){e.Config.destroy(this)}),r(e.Node,"create",function(u,A){return A?e.Node.createWithConfig(A):e.Node.createDefault()}),r(e.Node.prototype,"free",function(){e.Node.destroy(this)}),r(e.Node.prototype,"freeRecursive",function(){for(var u=0,A=this.getChildCount();u<A;++u)this.getChild(0).freeRecursive();this.free()}),r(e.Node.prototype,"setMeasureFunc",function(u,A){return A?u.call(this,function(){return XCe.fromJS(A.apply(void 0,arguments))}):this.unsetMeasureFunc()}),r(e.Node.prototype,"calculateLayout",function(u){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:su.DIRECTION_LTR;return u.call(this,A,p,h)}),nyt({Config:e.Config,Node:e.Node,Layout:t("Layout",iyt),Size:t("Size",XCe),Value:t("Value",ZCe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},su)}});var tEe=U((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof Ie=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e<Runtime.functionPointers.length;e++)if(!Runtime.functionPointers[e])return Runtime.functionPointers[e]=t,2*(1+e);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(t){Runtime.functionPointers[(t-2)/2]=null},warnOnce:function(t){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[t]||(Runtime.warnOnce.shown[t]=1,Module.printErr(t))},funcWrappers:{},getFuncWrapper:function(t,e){if(!!t){assert(e),Runtime.funcWrappers[e]||(Runtime.funcWrappers[e]={});var r=Runtime.funcWrappers[e];return r[t]||(e.length===1?r[t]=function(){return Runtime.dynCall(e,t)}:e.length===2?r[t]=function(a){return Runtime.dynCall(e,t,[a])}:r[t]=function(){return Runtime.dynCall(e,t,Array.prototype.slice.call(arguments))}),r[t]}},getCompilerSetting:function(t){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(t){var e=STACKTOP;return STACKTOP=STACKTOP+t|0,STACKTOP=STACKTOP+15&-16,e},staticAlloc:function(t){var e=STATICTOP;return STATICTOP=STATICTOP+t|0,STATICTOP=STATICTOP+15&-16,e},dynamicAlloc:function(t){var e=HEAP32[DYNAMICTOP_PTR>>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h<a.length;h++){var E=toC[o[h]];E?(p===0&&(p=Runtime.stackSave()),A[h]=E(a[h])):A[h]=a[h]}var w=u.apply(null,A);if(r==="string"&&(w=Pointer_stringify(w)),p!==0){if(n&&n.async){EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(p)});return}Runtime.stackRestore(p)}return w};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(t){var e=t.toString().match(sourceRegex).slice(1);return{arguments:e[0],body:e[1],returnValue:e[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var t in JSfuncs)JSfuncs.hasOwnProperty(t)&&(JSsource[t]=parseJSFunc(JSfuncs[t]))}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(t){return t==="number"}),numericRet=returnType!=="string";if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(t,e){return"$"+e}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type!=="number"){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}})(),Module.ccall=ccall,Module.cwrap=cwrap;function setValue(t,e,r,o){switch(r=r||"i8",r.charAt(r.length-1)==="*"&&(r="i32"),r){case"i1":HEAP8[t>>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o<p;o+=4)HEAP32[o>>2]=0;for(p=A+n;o<p;)HEAP8[o++>>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,E,w,v;h<n;){var b=t[h];if(typeof b=="function"&&(b=Runtime.getFunctionIndex(b)),E=u||e[h],E===0){h++;continue}E=="i64"&&(E="i32"),setValue(A+h,b,E),v!==E&&(w=Runtime.getNativeTypeSize(E),v=E),h+=w}return A}Module.allocate=allocate;function getMemory(t){return staticSealed?runtimeInitialized?_malloc(t):Runtime.dynamicAlloc(t):Runtime.staticAlloc(t)}Module.getMemory=getMemory;function Pointer_stringify(t,e){if(e===0||!t)return"";for(var r=0,o,a=0;o=HEAPU8[t+a>>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var E=o-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u<t.length;++u){var A=t.charCodeAt(u);if(A>=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r<t.length;++r){var o=t.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` 284Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`+Cl(W))}Gi!==Qc&&(Gi=Ci),ce=dg(ce,W),Et=q;do{switch(Et.tag){case 3:Se=ce,Et.effectTag|=4096,Et.expirationTime=D;var Je=Fv(Et,Se,D);qa(Et,Je);break e;case 1:Se=ce;var ft=Et.type,jt=Et.stateNode;if((Et.effectTag&64)===0&&(typeof ft.getDerivedStateFromError=="function"||jt!==null&&typeof jt.componentDidCatch=="function"&&(bu===null||!bu.has(jt)))){Et.effectTag|=4096,Et.expirationTime=D;var Er=Rv(Et,Se,D);qa(Et,Er);break e}}Et=Et.return}while(Et!==null)}Fr=Mv(Fr)}catch(In){D=In;continue}break}while(1)}function WA(){var S=Cp.current;return Cp.current=Du,S===null?Du:S}function yI(S,D){S<Ja&&2<S&&(Ja=S),D!==null&&S<UA&&2<S&&(UA=S,Um=D)}function jm(S){S>Ip&&(Ip=S)}function lF(){for(;Fr!==null;)Fr=Ov(Fr)}function cF(){for(;Fr!==null&&!Rt();)Fr=Ov(Fr)}function Ov(S){var D=_v(S.alternate,S,ns);return S.memoizedProps=S.pendingProps,D===null&&(D=Mv(S)),pI.current=null,D}function Mv(S){Fr=S;do{var D=Fr.alternate;if(S=Fr.return,(Fr.effectTag&2048)===0){e:{var T=D;D=Fr;var q=ns,W=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:$n(D.type)&&Ua(D);break;case 3:wc(D),$t(D),W=D.stateNode,W.pendingContext&&(W.context=W.pendingContext,W.pendingContext=null),(T===null||T.child===null)&&Ya(D)&&ha(D),Pl(D);break;case 5:ig(D);var ce=ua(Ic.current);if(q=D.type,T!==null&&D.stateNode!=null)ts(T,D,q,W,ce),T.ref!==D.ref&&(D.effectTag|=128);else if(W){if(T=ua(lo.current),Ya(D)){if(W=D,!y)throw Error(n(175));T=cp(W.stateNode,W.type,W.memoizedProps,ce,T,W),W.updateQueue=T,T=T!==null,T&&ha(D)}else{var Se=ut(q,W,ce,T,D);xc(Se,D,!1,!1),D.stateNode=Se,yt(Se,q,W,ce,T)&&ha(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Hr(T,D,T.memoizedProps,W);else{if(typeof W!="string"&&D.stateNode===null)throw Error(n(166));if(T=ua(Ic.current),ce=ua(lo.current),Ya(D)){if(T=D,!y)throw Error(n(176));(T=up(T.stateNode,T.memoizedProps,T))&&ha(D)}else D.stateNode=_e(W,T,ce,D)}break;case 11:break;case 13:if(Ue(Vn,D),W=D.memoizedState,(D.effectTag&64)!==0){D.expirationTime=q;break e}W=W!==null,ce=!1,T===null?D.memoizedProps.fallback!==void 0&&Ya(D):(q=T.memoizedState,ce=q!==null,W||q===null||(q=T.child.sibling,q!==null&&(Se=D.firstEffect,Se!==null?(D.firstEffect=q,q.nextEffect=Se):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),W&&!ce&&(D.mode&2)!==0&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||(Vn.current&1)!==0?Gi===Pu&&(Gi=ga):((Gi===Pu||Gi===ga)&&(Gi=xl),Ip!==0&&Ai!==null&&(VA(Ai,ns),qv(Ai,Ip)))),P&&W&&(D.effectTag|=4),I&&(W||ce)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:wc(D),Pl(D);break;case 10:Zi(D);break;case 9:break;case 14:break;case 17:$n(D.type)&&Ua(D);break;case 19:if(Ue(Vn,D),W=D.memoizedState,W===null)break;if(ce=(D.effectTag&64)!==0,Se=W.rendering,Se===null){if(ce)bc(W,!1);else if(Gi!==Pu||T!==null&&(T.effectTag&64)!==0)for(T=D.child;T!==null;){if(Se=fp(T),Se!==null){for(D.effectTag|=64,bc(W,!1),T=Se.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),W.lastEffect===null&&(D.firstEffect=null),D.lastEffect=W.lastEffect,T=q,W=D.child;W!==null;)ce=W,q=T,ce.effectTag&=2,ce.nextEffect=null,ce.firstEffect=null,ce.lastEffect=null,Se=ce.alternate,Se===null?(ce.childExpirationTime=0,ce.expirationTime=q,ce.child=null,ce.memoizedProps=null,ce.memoizedState=null,ce.updateQueue=null,ce.dependencies=null):(ce.childExpirationTime=Se.childExpirationTime,ce.expirationTime=Se.expirationTime,ce.child=Se.child,ce.memoizedProps=Se.memoizedProps,ce.memoizedState=Se.memoizedState,ce.updateQueue=Se.updateQueue,q=Se.dependencies,ce.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),W=W.sibling;Fn(Vn,Vn.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!ce)if(T=fp(Se),T!==null){if(D.effectTag|=64,ce=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),bc(W,!0),W.tail===null&&W.tailMode==="hidden"&&!Se.alternate){D=D.lastEffect=W.lastEffect,D!==null&&(D.nextEffect=null);break}}else Hi()>W.tailExpiration&&1<q&&(D.effectTag|=64,ce=!0,bc(W,!1),D.expirationTime=D.childExpirationTime=q-1);W.isBackwards?(Se.sibling=D.child,D.child=Se):(T=W.last,T!==null?T.sibling=Se:D.child=Se,W.last=Se)}if(W.tail!==null){W.tailExpiration===0&&(W.tailExpiration=Hi()+500),T=W.tail,W.rendering=T,W.tail=T.sibling,W.lastEffect=D.lastEffect,T.sibling=null,W=Vn.current,W=ce?W&1|2:W&1,Fn(Vn,W,D),D=T;break e}break;case 20:break;case 21:break;default:throw Error(n(156,D.tag))}D=null}if(T=Fr,ns===1||T.childExpirationTime!==1){for(W=0,ce=T.child;ce!==null;)q=ce.expirationTime,Se=ce.childExpirationTime,q>W&&(W=q),Se>W&&(W=Se),ce=ce.sibling;T.childExpirationTime=W}if(D!==null)return D;S!==null&&(S.effectTag&2048)===0&&(S.firstEffect===null&&(S.firstEffect=Fr.firstEffect),Fr.lastEffect!==null&&(S.lastEffect!==null&&(S.lastEffect.nextEffect=Fr.firstEffect),S.lastEffect=Fr.lastEffect),1<Fr.effectTag&&(S.lastEffect!==null?S.lastEffect.nextEffect=Fr:S.firstEffect=Fr,S.lastEffect=Fr))}else{if(D=AI(Fr,ns),D!==null)return D.effectTag&=2047,D;S!==null&&(S.firstEffect=S.lastEffect=null,S.effectTag|=2048)}if(D=Fr.sibling,D!==null)return D;Fr=S}while(Fr!==null);return Gi===Pu&&(Gi=Qc),null}function EI(S){var D=S.expirationTime;return S=S.childExpirationTime,D>S?D:S}function ku(S){var D=Mo();return so(99,uF.bind(null,S,D)),null}function uF(S,D){do Bp();while(Cg!==null);if((pr&(rs|Ms))!==gn)throw Error(n(327));var T=S.finishedWork,q=S.finishedExpirationTime;if(T===null)return null;if(S.finishedWork=null,S.finishedExpirationTime=0,T===S.current)throw Error(n(177));S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90,S.nextKnownPendingLevel=0;var W=EI(T);if(S.firstPendingTime=W,q<=S.lastSuspendedTime?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:q<=S.firstSuspendedTime&&(S.firstSuspendedTime=q-1),q<=S.lastPingedTime&&(S.lastPingedTime=0),q<=S.lastExpiredTime&&(S.lastExpiredTime=0),S===Ai&&(Fr=Ai=null,ns=0),1<T.effectTag?T.lastEffect!==null?(T.lastEffect.nextEffect=T,W=T.firstEffect):W=T:W=T.firstEffect,W!==null){var ce=pr;pr|=Ms,pI.current=null,me(S.containerInfo),nr=W;do try{AF()}catch(fo){if(nr===null)throw Error(n(330));YA(nr,fo),nr=nr.nextEffect}while(nr!==null);nr=W;do try{for(var Se=S,It=D;nr!==null;){var Et=nr.effectTag;if(Et&16&&I&&Ut(nr.stateNode),Et&128){var bt=nr.alternate;if(bt!==null){var Nr=bt.ref;Nr!==null&&(typeof Nr=="function"?Nr(null):Nr.current=null)}}switch(Et&1038){case 2:ur(nr),nr.effectTag&=-3;break;case 6:ur(nr),nr.effectTag&=-3,hn(nr.alternate,nr);break;case 1024:nr.effectTag&=-1025;break;case 1028:nr.effectTag&=-1025,hn(nr.alternate,nr);break;case 4:hn(nr.alternate,nr);break;case 8:var is=Se,fi=nr,Ao=It;I?gr(is,fi,Ao):te(is,fi,Ao),Ae(fi)}nr=nr.nextEffect}}catch(fo){if(nr===null)throw Error(n(330));YA(nr,fo),nr=nr.nextEffect}while(nr!==null);be(S.containerInfo),S.current=T,nr=W;do try{for(Et=q;nr!==null;){var JA=nr.effectTag;if(JA&36){var qo=nr.alternate;switch(bt=nr,Nr=Et,bt.tag){case 0:case 11:case 15:N(16,32,bt);break;case 1:var rt=bt.stateNode;if(bt.effectTag&4)if(qo===null)rt.componentDidMount();else{var Je=bt.elementType===bt.type?qo.memoizedProps:di(bt.type,qo.memoizedProps);rt.componentDidUpdate(Je,qo.memoizedState,rt.__reactInternalSnapshotBeforeUpdate)}var ft=bt.updateQueue;ft!==null&&je(bt,ft,rt,Nr);break;case 3:var jt=bt.updateQueue;if(jt!==null){if(Se=null,bt.child!==null)switch(bt.child.tag){case 5:Se=de(bt.child.stateNode);break;case 1:Se=bt.child.stateNode}je(bt,jt,Se,Nr)}break;case 5:var Er=bt.stateNode;qo===null&&bt.effectTag&4&&$(Er,bt.type,bt.memoizedProps,bt);break;case 6:break;case 4:break;case 12:break;case 13:if(y&&bt.memoizedState===null){var In=bt.alternate;if(In!==null){var Sr=In.memoizedState;if(Sr!==null){var wn=Sr.dehydrated;wn!==null&&no(wn)}}}break;case 19:case 17:case 20:case 21:break;default:throw Error(n(163))}}if(JA&128){bt=void 0;var ni=nr.ref;if(ni!==null){var Xr=nr.stateNode;switch(nr.tag){case 5:bt=de(Xr);break;default:bt=Xr}typeof ni=="function"?ni(bt):ni.current=bt}}nr=nr.nextEffect}}catch(fo){if(nr===null)throw Error(n(330));YA(nr,fo),nr=nr.nextEffect}while(nr!==null);nr=null,Dn(),pr=ce}else S.current=T;if(wp)wp=!1,Cg=S,HA=D;else for(nr=W;nr!==null;)D=nr.nextEffect,nr.nextEffect=null,nr=D;if(D=S.firstPendingTime,D===0&&(bu=null),D===1073741823?S===dI?Ig++:(Ig=0,dI=S):Ig=0,typeof CI=="function"&&CI(T.stateNode,q),uo(S),xu)throw xu=!1,S=_m,_m=null,S;return(pr&Lm)!==gn||qi(),null}function AF(){for(;nr!==null;){var S=nr.effectTag;(S&256)!==0&&kt(nr.alternate,nr),(S&512)===0||wp||(wp=!0,vl(97,function(){return Bp(),null})),nr=nr.nextEffect}}function Bp(){if(HA!==90){var S=97<HA?97:HA;return HA=90,so(S,fF)}}function fF(){if(Cg===null)return!1;var S=Cg;if(Cg=null,(pr&(rs|Ms))!==gn)throw Error(n(331));var D=pr;for(pr|=Ms,S=S.current.firstEffect;S!==null;){try{var T=S;if((T.effectTag&512)!==0)switch(T.tag){case 0:case 11:case 15:N(128,0,T),N(0,64,T)}}catch(q){if(S===null)throw Error(n(330));YA(S,q)}T=S.nextEffect,S.nextEffect=null,S=T}return pr=D,qi(),!0}function Uv(S,D,T){D=dg(T,D),D=Fv(S,D,1073741823),mi(S,D),S=wg(S,1073741823),S!==null&&uo(S)}function YA(S,D){if(S.tag===3)Uv(S,S,D);else for(var T=S.return;T!==null;){if(T.tag===3){Uv(T,S,D);break}else if(T.tag===1){var q=T.stateNode;if(typeof T.type.getDerivedStateFromError=="function"||typeof q.componentDidCatch=="function"&&(bu===null||!bu.has(q))){S=dg(D,S),S=Rv(T,S,1073741823),mi(T,S),T=wg(T,1073741823),T!==null&&uo(T);break}}T=T.return}}function pF(S,D,T){var q=S.pingCache;q!==null&&q.delete(D),Ai===S&&ns===T?Gi===xl||Gi===ga&&Ja===1073741823&&Hi()-hI<gI?Qu(S,ns):_A=!0:Hv(S,T)&&(D=S.lastPingedTime,D!==0&&D<T||(S.lastPingedTime=T,S.finishedExpirationTime===T&&(S.finishedExpirationTime=0,S.finishedWork=null),uo(S)))}function hF(S,D){var T=S.stateNode;T!==null&&T.delete(D),D=0,D===0&&(D=da(),D=jA(D,S,null)),S=wg(S,D),S!==null&&uo(S)}var _v;_v=function(S,D,T){var q=D.expirationTime;if(S!==null){var W=D.pendingProps;if(S.memoizedProps!==W||Ui.current)_o=!0;else{if(q<T){switch(_o=!1,D.tag){case 3:gg(D),hg();break;case 5:if(bm(D),D.mode&4&&T!==1&&Qe(D.type,W))return D.expirationTime=D.childExpirationTime=1,null;break;case 1:$n(D.type)&&dc(D);break;case 4:ng(D,D.stateNode.containerInfo);break;case 10:Uo(D,D.memoizedProps.value);break;case 13:if(D.memoizedState!==null)return q=D.child.childExpirationTime,q!==0&&q>=T?rn(S,D,T):(Fn(Vn,Vn.current&1,D),D=ti(S,D,T),D!==null?D.sibling:null);Fn(Vn,Vn.current&1,D);break;case 19:if(q=D.childExpirationTime>=T,(S.effectTag&64)!==0){if(q)return Ka(S,D,T);D.effectTag|=64}if(W=D.memoizedState,W!==null&&(W.rendering=null,W.tail=null),Fn(Vn,Vn.current,D),!q)return null}return ti(S,D,T)}_o=!1}}else _o=!1;switch(D.expirationTime=0,D.tag){case 2:if(q=D.type,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,W=Ri(D,Rn.current),Ns(D,T),W=og(null,D,q,S,W,T),D.effectTag|=1,typeof W=="object"&&W!==null&&typeof W.render=="function"&&W.$$typeof===void 0){if(D.tag=1,cI(),$n(q)){var ce=!0;dc(D)}else ce=!1;D.memoizedState=W.state!==null&&W.state!==void 0?W.state:null;var Se=q.getDerivedStateFromProps;typeof Se=="function"&&vt(D,q,Se,S),W.updater=tr,D.stateNode=W,W._reactInternalFiber=D,ei(D,q,S,T),D=yp(null,D,q,!0,ce,T)}else D.tag=0,Es(null,D,W,T),D=D.child;return D;case 16:if(W=D.elementType,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,De(W),W._status!==1)throw W._result;switch(W=W._result,D.type=W,ce=D.tag=mF(W),S=di(W,S),ce){case 0:D=OA(null,D,W,S,T);break;case 1:D=mp(null,D,W,S,T);break;case 11:D=Ei(null,D,W,S,T);break;case 14:D=Rm(null,D,W,di(W.type,S),q,T);break;default:throw Error(n(306,W,""))}return D;case 0:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),OA(S,D,q,W,T);case 1:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),mp(S,D,q,W,T);case 3:if(gg(D),q=D.updateQueue,q===null)throw Error(n(282));if(W=D.memoizedState,W=W!==null?W.element:null,we(D,q,D.pendingProps,null,T),q=D.memoizedState.element,q===W)hg(),D=ti(S,D,T);else{if((W=D.stateNode.hydrate)&&(y?(Pc=gu(D.stateNode.containerInfo),fa=D,W=Sl=!0):W=!1),W)for(T=ca(D,null,q,T),D.child=T;T;)T.effectTag=T.effectTag&-3|1024,T=T.sibling;else Es(S,D,q,T),hg();D=D.child}return D;case 5:return bm(D),S===null&&LA(D),q=D.type,W=D.pendingProps,ce=S!==null?S.memoizedProps:null,Se=W.children,Te(q,W)?Se=null:ce!==null&&Te(q,ce)&&(D.effectTag|=16),Ho(S,D),D.mode&4&&T!==1&&Qe(q,W)?(D.expirationTime=D.childExpirationTime=1,D=null):(Es(S,D,Se,T),D=D.child),D;case 6:return S===null&&LA(D),null;case 13:return rn(S,D,T);case 4:return ng(D,D.stateNode.containerInfo),q=D.pendingProps,S===null?D.child=yi(D,null,q,T):Es(S,D,q,T),D.child;case 11:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),Ei(S,D,q,W,T);case 7:return Es(S,D,D.pendingProps,T),D.child;case 8:return Es(S,D,D.pendingProps.children,T),D.child;case 12:return Es(S,D,D.pendingProps.children,T),D.child;case 10:e:{if(q=D.type._context,W=D.pendingProps,Se=D.memoizedProps,ce=W.value,Uo(D,ce),Se!==null){var It=Se.value;if(ce=ds(It,ce)?0:(typeof q._calculateChangedBits=="function"?q._calculateChangedBits(It,ce):1073741823)|0,ce===0){if(Se.children===W.children&&!Ui.current){D=ti(S,D,T);break e}}else for(It=D.child,It!==null&&(It.return=D);It!==null;){var Et=It.dependencies;if(Et!==null){Se=It.child;for(var bt=Et.firstContext;bt!==null;){if(bt.context===q&&(bt.observedBits&ce)!==0){It.tag===1&&(bt=$i(T,null),bt.tag=2,mi(It,bt)),It.expirationTime<T&&(It.expirationTime=T),bt=It.alternate,bt!==null&&bt.expirationTime<T&&(bt.expirationTime=T),Ts(It.return,T),Et.expirationTime<T&&(Et.expirationTime=T);break}bt=bt.next}}else Se=It.tag===10&&It.type===D.type?null:It.child;if(Se!==null)Se.return=It;else for(Se=It;Se!==null;){if(Se===D){Se=null;break}if(It=Se.sibling,It!==null){It.return=Se.return,Se=It;break}Se=Se.return}It=Se}}Es(S,D,W.children,T),D=D.child}return D;case 9:return W=D.type,ce=D.pendingProps,q=ce.children,Ns(D,T),W=Ls(W,ce.unstable_observedBits),q=q(W),D.effectTag|=1,Es(S,D,q,T),D.child;case 14:return W=D.type,ce=di(W,D.pendingProps),ce=di(W.type,ce),Rm(S,D,W,ce,q,T);case 15:return Tm(S,D,D.type,D.pendingProps,q,T);case 17:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),D.tag=1,$n(q)?(S=!0,dc(D)):S=!1,Ns(D,T),Tn(D,q,W,T),ei(D,q,W,T),yp(null,D,q,!0,S,T);case 19:return Ka(S,D,T)}throw Error(n(156,D.tag))};var CI=null,II=null;function gF(S){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(D.isDisabled||!D.supportsFiber)return!0;try{var T=D.inject(S);CI=function(q){try{D.onCommitFiberRoot(T,q,void 0,(q.current.effectTag&64)===64)}catch{}},II=function(q){try{D.onCommitFiberUnmount(T,q)}catch{}}}catch{}return!0}function dF(S,D,T,q){this.tag=S,this.key=T,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=q,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function bl(S,D,T,q){return new dF(S,D,T,q)}function wI(S){return S=S.prototype,!(!S||!S.isReactComponent)}function mF(S){if(typeof S=="function")return wI(S)?1:0;if(S!=null){if(S=S.$$typeof,S===L)return 11;if(S===re)return 14}return 2}function KA(S,D){var T=S.alternate;return T===null?(T=bl(S.tag,D,S.key,S.mode),T.elementType=S.elementType,T.type=S.type,T.stateNode=S.stateNode,T.alternate=S,S.alternate=T):(T.pendingProps=D,T.effectTag=0,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null),T.childExpirationTime=S.childExpirationTime,T.expirationTime=S.expirationTime,T.child=S.child,T.memoizedProps=S.memoizedProps,T.memoizedState=S.memoizedState,T.updateQueue=S.updateQueue,D=S.dependencies,T.dependencies=D===null?null:{expirationTime:D.expirationTime,firstContext:D.firstContext,responders:D.responders},T.sibling=S.sibling,T.index=S.index,T.ref=S.ref,T}function Gm(S,D,T,q,W,ce){var Se=2;if(q=S,typeof S=="function")wI(S)&&(Se=1);else if(typeof S=="string")Se=5;else e:switch(S){case C:return Fu(T.children,W,ce,D);case R:Se=8,W|=7;break;case w:Se=8,W|=1;break;case v:return S=bl(12,T,D,W|8),S.elementType=v,S.type=v,S.expirationTime=ce,S;case _:return S=bl(13,T,D,W),S.type=_,S.elementType=_,S.expirationTime=ce,S;case V:return S=bl(19,T,D,W),S.elementType=V,S.expirationTime=ce,S;default:if(typeof S=="object"&&S!==null)switch(S.$$typeof){case b:Se=10;break e;case E:Se=9;break e;case L:Se=11;break e;case re:Se=14;break e;case ae:Se=16,q=null;break e}throw Error(n(130,S==null?S:typeof S,""))}return D=bl(Se,T,D,W),D.elementType=S,D.type=q,D.expirationTime=ce,D}function Fu(S,D,T,q){return S=bl(7,S,q,D),S.expirationTime=T,S}function BI(S,D,T){return S=bl(6,S,null,D),S.expirationTime=T,S}function vI(S,D,T){return D=bl(4,S.children!==null?S.children:[],S.key,D),D.expirationTime=T,D.stateNode={containerInfo:S.containerInfo,pendingChildren:null,implementation:S.implementation},D}function yF(S,D,T){this.tag=D,this.current=null,this.containerInfo=S,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=Oe,this.pendingContext=this.context=null,this.hydrate=T,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Hv(S,D){var T=S.firstSuspendedTime;return S=S.lastSuspendedTime,T!==0&&T>=D&&S<=D}function VA(S,D){var T=S.firstSuspendedTime,q=S.lastSuspendedTime;T<D&&(S.firstSuspendedTime=D),(q>D||T===0)&&(S.lastSuspendedTime=D),D<=S.lastPingedTime&&(S.lastPingedTime=0),D<=S.lastExpiredTime&&(S.lastExpiredTime=0)}function qv(S,D){D>S.firstPendingTime&&(S.firstPendingTime=D);var T=S.firstSuspendedTime;T!==0&&(D>=T?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:D>=S.lastSuspendedTime&&(S.lastSuspendedTime=D+1),D>S.nextKnownPendingLevel&&(S.nextKnownPendingLevel=D))}function Wm(S,D){var T=S.lastExpiredTime;(T===0||T>D)&&(S.lastExpiredTime=D)}function jv(S){var D=S._reactInternalFiber;if(D===void 0)throw typeof S.render=="function"?Error(n(188)):Error(n(268,Object.keys(S)));return S=ve(D),S===null?null:S.stateNode}function Gv(S,D){S=S.memoizedState,S!==null&&S.dehydrated!==null&&S.retryTime<D&&(S.retryTime=D)}function Ym(S,D){Gv(S,D),(S=S.alternate)&&Gv(S,D)}var Wv={createContainer:function(S,D,T){return S=new yF(S,D,T),D=bl(3,null,null,D===2?7:D===1?3:0),S.current=D,D.stateNode=S},updateContainer:function(S,D,T,q){var W=D.current,ce=da(),Se=xe.suspense;ce=jA(ce,W,Se);e:if(T){T=T._reactInternalFiber;t:{if(le(T)!==T||T.tag!==1)throw Error(n(170));var It=T;do{switch(It.tag){case 3:It=It.stateNode.context;break t;case 1:if($n(It.type)){It=It.stateNode.__reactInternalMemoizedMergedChildContext;break t}}It=It.return}while(It!==null);throw Error(n(171))}if(T.tag===1){var Et=T.type;if($n(Et)){T=du(T,Et,It);break e}}T=It}else T=Fi;return D.context===null?D.context=T:D.pendingContext=T,D=$i(ce,Se),D.payload={element:S},q=q===void 0?null:q,q!==null&&(D.callback=q),mi(W,D),kc(W,ce),ce},batchedEventUpdates:function(S,D){var T=pr;pr|=2;try{return S(D)}finally{pr=T,pr===gn&&qi()}},batchedUpdates:function(S,D){var T=pr;pr|=1;try{return S(D)}finally{pr=T,pr===gn&&qi()}},unbatchedUpdates:function(S,D){var T=pr;pr&=-2,pr|=Lm;try{return S(D)}finally{pr=T,pr===gn&&qi()}},deferredUpdates:function(S){return so(97,S)},syncUpdates:function(S,D,T,q){return so(99,S.bind(null,D,T,q))},discreteUpdates:function(S,D,T,q){var W=pr;pr|=4;try{return so(98,S.bind(null,D,T,q))}finally{pr=W,pr===gn&&qi()}},flushDiscreteUpdates:function(){(pr&(1|rs|Ms))===gn&&(aF(),Bp())},flushControlled:function(S){var D=pr;pr|=1;try{so(99,S)}finally{pr=D,pr===gn&&qi()}},flushSync:Lv,flushPassiveEffects:Bp,IsThisRendererActing:{current:!1},getPublicRootInstance:function(S){if(S=S.current,!S.child)return null;switch(S.child.tag){case 5:return de(S.child.stateNode);default:return S.child.stateNode}},attemptSynchronousHydration:function(S){switch(S.tag){case 3:var D=S.stateNode;D.hydrate&&Nv(D,D.firstPendingTime);break;case 13:Lv(function(){return kc(S,1073741823)}),D=Ha(da(),150,100),Ym(S,D)}},attemptUserBlockingHydration:function(S){if(S.tag===13){var D=Ha(da(),150,100);kc(S,D),Ym(S,D)}},attemptContinuousHydration:function(S){if(S.tag===13){da();var D=FA++;kc(S,D),Ym(S,D)}},attemptHydrationAtCurrentPriority:function(S){if(S.tag===13){var D=da();D=jA(D,S,null),kc(S,D),Ym(S,D)}},findHostInstance:jv,findHostInstanceWithWarning:function(S){return jv(S)},findHostInstanceWithNoPortals:function(S){return S=Ee(S),S===null?null:S.tag===20?S.stateNode.instance:S.stateNode},shouldSuspend:function(){return!1},injectIntoDevTools:function(S){var D=S.findFiberByHostInstance;return gF(r({},S,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:u.ReactCurrentDispatcher,findHostInstanceByFiber:function(T){return T=ve(T),T===null?null:T.stateNode},findFiberByHostInstance:function(T){return D?D(T):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))}};z2.exports=Wv.default||Wv;var EF=z2.exports;return z2.exports=t,EF}});var zEe=U((SYt,JEe)=>{"use strict";JEe.exports=VEe()});var ZEe=U((PYt,XEe)=>{"use strict";var ayt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};XEe.exports=ayt});var rCe=U((xYt,tCe)=>{"use strict";var lyt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])}return t},HQ=function(){function t(e,r){for(var o=0;o<r.length;o++){var a=r[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,r,o){return r&&t(e.prototype,r),o&&t(e,o),e}}();function x6(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function b6(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var ou=ZEe(),cyt=function(){function t(e,r,o,a,n,u){b6(this,t),this.left=e,this.right=r,this.top=o,this.bottom=a,this.width=n,this.height=u}return HQ(t,[{key:"fromJS",value:function(r){r(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),t}(),$Ee=function(){HQ(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){b6(this,t),this.width=e,this.height=r}return HQ(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return"<Size#"+this.width+"x"+this.height+">"}}]),t}(),eCe=function(){function t(e,r){b6(this,t),this.unit=e,this.value=r}return HQ(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case ou.UNIT_POINT:return String(this.value);case ou.UNIT_PERCENT:return this.value+"%";case ou.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();tCe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var C=arguments.length,w=Array(C),v=0;v<C;v++)w[v]=arguments[v];return p.call.apply(p,[this,h].concat(w))}}for(var o=["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"],a=function(){var A,p=o[n],h=(A={},x6(A,ou.UNIT_POINT,e.Node.prototype[p]),x6(A,ou.UNIT_PERCENT,e.Node.prototype[p+"Percent"]),x6(A,ou.UNIT_AUTO,e.Node.prototype[p+"Auto"]),A);r(e.Node.prototype,p,function(C){for(var w=arguments.length,v=Array(w>1?w-1:0),b=1;b<w;b++)v[b-1]=arguments[b];var E=v.pop(),R=void 0,L=void 0;if(E==="auto")R=ou.UNIT_AUTO,L=void 0;else if(E instanceof eCe)R=E.unit,L=E.valueOf();else if(R=typeof E=="string"&&E.endsWith("%")?ou.UNIT_PERCENT:ou.UNIT_POINT,L=parseFloat(E),!Number.isNaN(E)&&Number.isNaN(L))throw new Error("Invalid value "+E+" for "+p);if(!h[R])throw new Error('Failed to execute "'+p+`": Unsupported unit '`+E+"'");if(L!==void 0){var _;return(_=h[R]).call.apply(_,[this].concat(v,[L]))}else{var V;return(V=h[R]).call.apply(V,[this].concat(v))}})},n=0;n<o.length;n++)a();return r(e.Config.prototype,"free",function(){e.Config.destroy(this)}),r(e.Node,"create",function(u,A){return A?e.Node.createWithConfig(A):e.Node.createDefault()}),r(e.Node.prototype,"free",function(){e.Node.destroy(this)}),r(e.Node.prototype,"freeRecursive",function(){for(var u=0,A=this.getChildCount();u<A;++u)this.getChild(0).freeRecursive();this.free()}),r(e.Node.prototype,"setMeasureFunc",function(u,A){return A?u.call(this,function(){return $Ee.fromJS(A.apply(void 0,arguments))}):this.unsetMeasureFunc()}),r(e.Node.prototype,"calculateLayout",function(u){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:ou.DIRECTION_LTR;return u.call(this,A,p,h)}),lyt({Config:e.Config,Node:e.Node,Layout:t("Layout",cyt),Size:t("Size",$Ee),Value:t("Value",eCe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},ou)}});var nCe=U((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof Ie=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e<Runtime.functionPointers.length;e++)if(!Runtime.functionPointers[e])return Runtime.functionPointers[e]=t,2*(1+e);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(t){Runtime.functionPointers[(t-2)/2]=null},warnOnce:function(t){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[t]||(Runtime.warnOnce.shown[t]=1,Module.printErr(t))},funcWrappers:{},getFuncWrapper:function(t,e){if(!!t){assert(e),Runtime.funcWrappers[e]||(Runtime.funcWrappers[e]={});var r=Runtime.funcWrappers[e];return r[t]||(e.length===1?r[t]=function(){return Runtime.dynCall(e,t)}:e.length===2?r[t]=function(a){return Runtime.dynCall(e,t,[a])}:r[t]=function(){return Runtime.dynCall(e,t,Array.prototype.slice.call(arguments))}),r[t]}},getCompilerSetting:function(t){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(t){var e=STACKTOP;return STACKTOP=STACKTOP+t|0,STACKTOP=STACKTOP+15&-16,e},staticAlloc:function(t){var e=STATICTOP;return STATICTOP=STATICTOP+t|0,STATICTOP=STATICTOP+15&-16,e},dynamicAlloc:function(t){var e=HEAP32[DYNAMICTOP_PTR>>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h<a.length;h++){var C=toC[o[h]];C?(p===0&&(p=Runtime.stackSave()),A[h]=C(a[h])):A[h]=a[h]}var w=u.apply(null,A);if(r==="string"&&(w=Pointer_stringify(w)),p!==0){if(n&&n.async){EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(p)});return}Runtime.stackRestore(p)}return w};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(t){var e=t.toString().match(sourceRegex).slice(1);return{arguments:e[0],body:e[1],returnValue:e[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var t in JSfuncs)JSfuncs.hasOwnProperty(t)&&(JSsource[t]=parseJSFunc(JSfuncs[t]))}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(t){return t==="number"}),numericRet=returnType!=="string";if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(t,e){return"$"+e}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type!=="number"){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}})(),Module.ccall=ccall,Module.cwrap=cwrap;function setValue(t,e,r,o){switch(r=r||"i8",r.charAt(r.length-1)==="*"&&(r="i32"),r){case"i1":HEAP8[t>>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o<p;o+=4)HEAP32[o>>2]=0;for(p=A+n;o<p;)HEAP8[o++>>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,C,w,v;h<n;){var b=t[h];if(typeof b=="function"&&(b=Runtime.getFunctionIndex(b)),C=u||e[h],C===0){h++;continue}C=="i64"&&(C="i32"),setValue(A+h,b,C),v!==C&&(w=Runtime.getNativeTypeSize(C),v=C),h+=w}return A}Module.allocate=allocate;function getMemory(t){return staticSealed?runtimeInitialized?_malloc(t):Runtime.dynamicAlloc(t):Runtime.staticAlloc(t)}Module.getMemory=getMemory;function Pointer_stringify(t,e){if(e===0||!t)return"";for(var r=0,o,a=0;o=HEAPU8[t+a>>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var C=o-65536;h+=String.fromCharCode(55296|C>>10,56320|C&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u<t.length;++u){var A=t.charCodeAt(u);if(A>=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r<t.length;++r){var o=t.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=`
285`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),Module.buffer?buffer=Module.buffer:buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}if(HEAP32[0]=1668509029,HEAP16[1]=25459,HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;function callRuntimeCallbacks(t){for(;t.length>0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r<t.length;r++){var o=t[r];o>255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o<t.length;++o)HEAP8[e++>>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,w=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=w:(w=w+.5,Browser.mainLoop.remainingBlockers=(8*E+w)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0);return}if(!(u<Browser.mainLoop.currentlyRunningMainloop)){if(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u<Browser.mainLoop.currentlyRunningMainloop)&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())}}},a||(e&&e>0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e<r?Module.setStatus(t+" ("+(r-e)+"/"+r+")"):Module.setStatus(t):Module.setStatus("")}},runIter:function(t){if(!ABORT){if(Module.preMainLoop){var e=Module.preMainLoop();if(e===!1)return}try{t()}catch(r){if(r instanceof ExitStatus)return;throw r&&typeof r=="object"&&r.stack&&Module.printErr("exception thrown: "+[r,r.stack]),r}Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),Browser.initted)return;Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch{Browser.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder<"u"?MozBlobBuilder:typeof WebKitBlobBuilder<"u"?WebKitBlobBuilder:Browser.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),Browser.URLObject=typeof window<"u"?window.URL?window.URL:window.webkitURL:void 0,!Module.noImageDecoding&&typeof Browser.URLObject>"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(b){Runtime.warnOnce("Blob constructor present but fails: "+b+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var w=Browser.URLObject.createObjectURL(h),v=new Image;v.onload=function(){assert(v.complete,"Image "+u+" could not be decoded");var C=document.createElement("canvas");C.width=v.width,C.height=v.height;var R=C.getContext("2d");R.drawImage(v,0,0),Module.preloadedImages[u]=C,Browser.URLObject.revokeObjectURL(w),A&&A(n)},v.onerror=function(C){console.log("Image "+w+" could not be decoded"),p&&p()},v.src=w},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function E(R){h||(h=!0,Module.preloadedAudios[u]=R,A&&A(n))}function w(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var v=new Blob([n],{type:Browser.getMimetype(u)})}catch{return w()}var b=Browser.URLObject.createObjectURL(v),C=new Audio;C.addEventListener("canplaythrough",function(){E(C)},!1),C.onerror=function(L){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function _(V){for(var re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",oe="=",pe="",he=0,ve=0,ge=0;ge<V.length;ge++)for(he=he<<8|V[ge],ve+=8;ve>=6;){var le=he>>ve-6&63;ve-=6,pe+=re[le]}return ve==2?(pe+=re[(he&3)<<4],pe+=oe+oe):ve==4&&(pe+=re[(he&15)<<2],pe+=oe),pe}C.src="data:audio/x-"+u.substr(-3)+";base64,"+_(n),E(C)},C.src=b,Browser.safeSetTimeout(function(){E(C)},1e4)}else return w()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[u.identifier];E||(E=h),Browser.lastTouches[u.identifier]=E,Browser.touches[u.identifier]=h}return}var w=t.pageX-(a+e.left),v=t.pageY-(n+e.top);w=w*(r/e.width),v=v*(o/e.height),Browser.mouseMovementX=w-Browser.mouseX,Browser.mouseMovementY=v-Browser.mouseY,Browser.mouseX=w,Browser.mouseY=v}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a<Module.forcedAspectRatio?o=Math.round(a*Module.forcedAspectRatio):a=Math.round(o/Module.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t.parentNode&&typeof screen<"u"){var n=Math.min(screen.width/o,screen.height/a);o=Math.round(o*n),a=Math.round(a*n)}Browser.resizeCanvas?(t.width!=o&&(t.width=o),t.height!=a&&(t.height=a),typeof t.style<"u"&&(t.style.removeProperty("width"),t.style.removeProperty("height"))):(t.width!=e&&(t.width=e),t.height!=r&&(t.height=r),typeof t.style<"u"&&(o!=e||a!=r?(t.style.setProperty("width",o+"px","important"),t.style.setProperty("height",a+"px","important")):(t.style.removeProperty("width"),t.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var t=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,t}},SYSCALLS={varargs:0,get:function(t){SYSCALLS.varargs+=4;var e=HEAP32[SYSCALLS.varargs-4>>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr<X>"],[640,1,"std::unique_ptr<X>"],[5120,1,"std::vector<X>"],[6144,2,"std::array<X, Y>"],[9216,-1,"std::function<X (Y)>"]];function r(p,h,E,w,v,b){if(h==1){var C=w&896;(C==128||C==256||C==384)&&(p="X const")}var R;return b?R=E.replace("X",p).replace("Y",v):R=p.replace("X",E).replace("Y",v),R.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,E,w,v){throw new Error(p+" type "+E.replace("X",h+"?")+(w?" with flag "+w:"")+" in "+v)}function a(p,h,E,w,v,b,C,R){b===void 0&&(b="X"),R===void 0&&(R=1);var L=E(p);if(L)return L;var _=w(p),V=_.placeholderFlag,re=e[V];C&&re&&(b=r(C[2],C[0],b,re[0],"?",!0));var oe;V==0&&(oe="Unbound"),V>=10&&(oe="Corrupt"),R>20&&(oe="Deeply nested"),oe&&o(oe,p,b,V,v||"?");var pe=_.paramList[0],he=a(pe,h,E,w,v,b,re,R+1),ve,ge={flags:re[0],id:p,name:"",paramList:[he]},le=[],Pe="?";switch(_.placeholderFlag){case 1:ve=he.spec;break;case 2:if((he.flags&15360)==1024&&he.spec.ptrSize==1){ge.flags=7168;break}case 3:case 6:case 5:ve=he.spec,he.flags&15360;break;case 8:Pe=""+_.paramList[1],ge.paramList.push(_.paramList[1]);break;case 9:for(var g=0,De=_.paramList[1];g<De.length;g++){var Ce=De[g],de=a(Ce,h,E,w,v,b,re,R+1);le.push(de.name),ge.paramList.push(de)}Pe=le.join(", ");break;default:break}if(ge.name=r(re[2],re[0],he.name,he.flags,Pe),ve){for(var ne=0,Z=Object.keys(ve);ne<Z.length;ne++){var me=Z[ne];ge[me]=ge[me]||ve[me]}ge.flags|=ve.flags}return n(h,ge)}function n(p,h){var E=h.flags,w=E&896,v=E&15360;return!h.name&&v==1024&&(h.ptrSize==1?h.name=(E&16?"":(E&8?"un":"")+"signed ")+"char":h.name=(E&8?"u":"")+(E&32?"float":"int")+(h.ptrSize*8+"_t")),h.ptrSize==8&&!(E&32)&&(v=64),v==2048&&(w==512||w==640?v=4096:w&&(v=3072)),p(v,h)}var u=function(){function p(h){this.id=h.id,this.name=h.name,this.flags=h.flags,this.spec=h}return p.prototype.toString=function(){return this.name},p}(),A={Type:u,getComplexType:a,makeType:n,structureList:e};return t.output=A,t.output||A}function __nbind_register_type(t,e){var r=_nbind.readAsciiString(e),o={flags:10240,id:t,name:r};_nbind.makeType(_nbind.constructType,o)}function __nbind_register_callback_signature(t,e){var r=_nbind.readTypeIdList(t,e),o=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[o]=_nbind.makeJSCaller(r),o}function __extends(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);function o(){this.constructor=t}o.prototype=e.prototype,t.prototype=new o}function __nbind_register_class(t,e,r,o,a,n,u){var A=_nbind.readAsciiString(u),p=_nbind.readPolicyList(e),h=HEAPU32.subarray(t/4,t/4+2),E={flags:2048|(p.Value?2:0),id:h[0],name:A},w=_nbind.makeType(_nbind.constructType,E);w.ptrType=_nbind.getComplexType(h[1],_nbind.constructType,_nbind.getType,_nbind.queryType),w.destroy=_nbind.makeMethodCaller(w.ptrType,{boundID:E.id,flags:0,name:"destroy",num:0,ptr:n,title:w.name+".free",typeList:["void","uint32_t","uint32_t"]}),a&&(w.superIdList=Array.prototype.slice.call(HEAPU32.subarray(r/4,r/4+a)),w.upcastList=Array.prototype.slice.call(HEAPU32.subarray(o/4,o/4+a))),Module[w.name]=w.makeBound(p),_nbind.BindClass.list.push(w)}function _removeAccessorPrefix(t){var e=/^[Gg]et_?([A-Z]?([A-Z]?))/;return t.replace(e,function(r,o,a){return a?o:o.toLowerCase()})}function __nbind_register_function(t,e,r,o,a,n,u,A,p,h){var E=_nbind.getType(t),w=_nbind.readPolicyList(e),v=_nbind.readTypeIdList(r,o),b;if(u==5)b=[{direct:a,name:"__nbindConstructor",ptr:0,title:E.name+" constructor",typeList:["uint32_t"].concat(v.slice(1))},{direct:n,name:"__nbindValueConstructor",ptr:0,title:E.name+" value constructor",typeList:["void","uint32_t"].concat(v.slice(1))}];else{var C=_nbind.readAsciiString(A),R=(E.name&&E.name+".")+C;(u==3||u==4)&&(C=_removeAccessorPrefix(C)),b=[{boundID:t,direct:n,name:C,ptr:a,title:R,typeList:v}]}for(var L=0,_=b;L<_.length;L++){var V=_[L];V.signatureType=u,V.policyTbl=w,V.num=p,V.flags=h,E.addMethod(V)}}function _nbind_value(t,e){_nbind.typeNameTbl[t]||_nbind.throwError("Unknown value type "+t),Module.NBind.bind_value(t,e),_defineHidden(_nbind.typeNameTbl[t].proto.prototype.__nbindValueConstructor)(e.prototype,"__nbindValueConstructor")}Module._nbind_value=_nbind_value;function __nbind_get_value_object(t,e){var r=_nbind.popValue(t);if(!r.fromJS)throw new Error("Object "+r+" has no fromJS function");r.fromJS(function(){r.__nbindValueConstructor.apply(this,Array.prototype.concat.apply([e],arguments))})}function _emscripten_memcpy_big(t,e,r){return HEAPU8.set(HEAPU8.subarray(e,e+r),t),t}function __nbind_register_primitive(t,e,r){var o={flags:1024|r,id:t,ptrSize:e};_nbind.makeType(_nbind.constructType,o)}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___setErrNo(t){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,w){var v=___syscall146.buffers[E];assert(v),w===0||w===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(v,0)),v.length=0):v.push(w)});for(var u=0;u<a;u++){for(var A=HEAP32[o+u*8>>2],p=HEAP32[o+(u*8+4)>>2],h=0;h<p;h++)___syscall146.printChar(r,HEAPU8[A+h]);n+=p}return n}catch(E){return(typeof FS>"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;t<e.length;t++){var r=e[t];r.finish()}}var ___dso_handle=STATICTOP;STATICTOP+=16,function(_nbind){var typeIdTbl={};_nbind.typeNameTbl={};var Pool=function(){function t(){}return t.lalloc=function(e){e=e+7&-8;var r=HEAPU32[t.usedPtr];if(e>t.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=u,w=A,v=p;if(n!==_nbind.ptrMarker){var b=h.__nbindConstructor.apply(h,arguments);E=4608,v=HEAPU32[b/4],w=HEAPU32[b/4+1]}var C={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:E,__nbindPtr:w};v&&(R.__nbindShared=v,_nbind.mark(h));for(var L=0,_=Object.keys(R);L<_.length;L++){var V=_[L];C.value=R[V],Object.defineProperty(h,V,C)}return _defineHidden(0)(h,"__nbindState"),h}return a.prototype.free=function(){e.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},a}(Wrapper);return __decorate([_defineHidden()],r.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],r.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(t)],r.prototype,"__nbindPolicies",void 0),r}_nbind.makeBound=makeBound;function disableMember(t,e){function r(){throw new Error("Accessing deleted object")}Object.defineProperty(t,e,{configurable:!1,enumerable:!1,get:r,set:r})}_nbind.ptrMarker={};var BindClass=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;return o.wireRead=function(a){return _nbind.popValue(a,o.ptrType)},o.wireWrite=function(a){return pushPointer(a,o.ptrType,!0)},o.pendingSuperCount=0,o.ready=!1,o.methodTbl={},r.paramList?(o.classType=r.paramList[0].classType,o.proto=o.classType.proto):o.classType=o,o}return e.prototype.makeBound=function(r){var o=_nbind.makeBound(r,this);return this.proto=o,this.ptrType.proto=o,o},e.prototype.addMethod=function(r){var o=this.methodTbl[r.name]||[];o.push(r),this.methodTbl[r.name]=o},e.prototype.registerMethods=function(r,o){for(var a,n=0,u=Object.keys(r.methodTbl);n<u.length;n++)for(var A=u[n],p=r.methodTbl[A],h=0,E=p;h<E.length;h++){var w=E[h],v=void 0,b=void 0;if(v=this.proto.prototype,!(o&&w.signatureType!=1))switch(w.signatureType){case 1:v=this.proto;case 5:b=_nbind.makeCaller(w),_nbind.addMethod(v,w.name,b,w.typeList.length-1);break;case 4:a=_nbind.makeMethodCaller(r.ptrType,w);break;case 3:Object.defineProperty(v,w.name,{configurable:!0,enumerable:!1,get:_nbind.makeMethodCaller(r.ptrType,w),set:a});break;case 2:b=_nbind.makeMethodCaller(r.ptrType,w),_nbind.addMethod(v,w.name,b,w.typeList.length-1);break;default:break}}},e.prototype.registerSuperMethods=function(r,o,a){if(!a[r.name]){a[r.name]=!0;for(var n=0,u,A=0,p=r.superIdList||[];A<p.length;A++){var h=p[A],E=_nbind.getType(h);n++<o||o<0?u=-1:u=0,this.registerSuperMethods(E,u,a)}this.registerMethods(r,o<0)}},e.prototype.finish=function(){if(this.ready)return this;this.ready=!0,this.superList=(this.superIdList||[]).map(function(a){return _nbind.getType(a).finish()});var r=this.proto;if(this.superList.length){var o=function(){this.constructor=r};o.prototype=this.superList[0].proto.prototype,r.prototype=new o}return r!=Module&&(r.prototype.__nbindType=this),this.registerSuperMethods(this,1,{}),this},e.prototype.upcastStep=function(r,o){if(r==this)return o;for(var a=0;a<this.superList.length;++a){var n=this.superList[a].upcastStep(r,_nbind.callUpcast(this.upcastList[a],o));if(n)return n}return 0},e}(_nbind.BindType);BindClass.list=[],_nbind.BindClass=BindClass;function popPointer(t,e){return t?new e.proto(_nbind.ptrMarker,e.flags,t):null}_nbind.popPointer=popPointer;function pushPointer(t,e,r){if(!(t instanceof _nbind.Wrapper)){if(r)return _nbind.pushValue(t);throw new Error("Type mismatch")}var o=t.__nbindPtr,a=t.__nbindType.classType,n=e.classType;if(t instanceof e.proto)for(;a!=n;)o=_nbind.callUpcast(a.upcastList[0],o),a=a.superList[0];else if(o=a.upcastStep(n,o),!o)throw new Error("Type mismatch");return o}_nbind.pushPointer=pushPointer;function pushMutablePointer(t,e){var r=pushPointer(t,e);if(t.__nbindFlags&1)throw new Error("Passing a const value as a non-const argument");return r}var BindClassPtr=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;o.classType=r.paramList[0].classType,o.proto=o.classType.proto;var a=r.flags&1,n=(o.flags&896)==256&&r.flags&2,u=a?pushPointer:pushMutablePointer,A=n?_nbind.popValue:popPointer;return o.makeWireWrite=function(p,h){return h.Nullable?function(E){return E?u(E,o):0}:function(E){return u(E,o)}},o.wireRead=function(p){return A(p,o)},o.wireWrite=function(p){return u(p,o)},o}return e}(_nbind.BindType);_nbind.BindClassPtr=BindClassPtr;function popShared(t,e){var r=HEAPU32[t/4],o=HEAPU32[t/4+1];return o?new e.proto(_nbind.ptrMarker,e.flags,o,r):null}_nbind.popShared=popShared;function pushShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");return t.__nbindShared}function pushMutableShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");if(t.__nbindFlags&1)throw new Error("Passing a const value as a non-const argument");return t.__nbindShared}var SharedClassPtr=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;o.readResources=[_nbind.resources.pool],o.classType=r.paramList[0].classType,o.proto=o.classType.proto;var a=r.flags&1,n=a?pushShared:pushMutableShared;return o.wireRead=function(u){return popShared(u,o)},o.wireWrite=function(u){return n(u,o)},o}return e}(_nbind.BindType);_nbind.SharedClassPtr=SharedClassPtr,_nbind.externalList=[0];var firstFreeExternal=0,External=function(){function t(e){this.refCount=1,this.data=e}return t.prototype.register=function(){var e=firstFreeExternal;return e?firstFreeExternal=_nbind.externalList[e]:e=_nbind.externalList.length,_nbind.externalList[e]=this,e},t.prototype.reference=function(){++this.refCount},t.prototype.dereference=function(e){--this.refCount==0&&(this.free&&this.free(),_nbind.externalList[e]=firstFreeExternal,firstFreeExternal=e)},t}();_nbind.External=External;function popExternal(t){var e=_nbind.externalList[t];return e.dereference(t),e.data}function pushExternal(t){var e=new External(t);return e.reference(),e.register()}var ExternalType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popExternal,r.wireWrite=pushExternal,r}return e}(_nbind.BindType);_nbind.ExternalType=ExternalType,_nbind.callbackSignatureList=[];var CallbackType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=function(o){return typeof o!="function"&&_nbind.throwError("Type mismatch"),new _nbind.External(o).register()},r}return e}(_nbind.BindType);_nbind.CallbackType=CallbackType,_nbind.valueList=[0];var firstFreeValue=0;function pushValue(t){var e=firstFreeValue;return e?firstFreeValue=_nbind.valueList[e]:e=_nbind.valueList.length,_nbind.valueList[e]=t,e*2+1}_nbind.pushValue=pushValue;function popValue(t,e){if(t||_nbind.throwError("Value type JavaScript class is missing or not registered"),t&1){t>>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t<valueBase?t:popValue((t-valueBase)/4096)}var CreateValueType=function(t){__extends(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.makeWireWrite=function(r){return"(_nbind.pushValue(new "+r+"))"},e}(_nbind.BindType);_nbind.CreateValueType=CreateValueType;var Int64Type=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=push64,r.wireRead=pop64,r}return e}(_nbind.BindType);_nbind.Int64Type=Int64Type;function pushArray(t,e){if(!t)return 0;var r=t.length;if((e.size||e.size===0)&&r<e.size)throw new Error("Type mismatch");var o=e.memberType.ptrSize,a=_nbind.Pool.lalloc(4+r*o);HEAPU32[a/4]=r;var n=e.memberType.heap,u=(a+4)/o,A=e.memberType.wireWrite,p=0;if(A)for(;p<r;)n[u++]=A(t[p++]);else for(;p<r;)n[u++]=t[p++];return a}_nbind.pushArray=pushArray;function popArray(t,e){if(t===0)return null;var r=HEAPU32[t/4],o=new Array(r),a=e.memberType.heap;t=(t+4)/e.memberType.ptrSize;var n=e.memberType.wireRead,u=0;if(n)for(;u<r;)o[u++]=n(a[t++]);else for(;u<r;)o[u++]=a[t++];return o}_nbind.popArray=popArray;var ArrayType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;return o.wireRead=function(a){return popArray(a,o)},o.wireWrite=function(a){return pushArray(a,o)},o.readResources=[_nbind.resources.pool],o.writeResources=[_nbind.resources.pool],o.memberType=r.paramList[0],r.paramList[1]&&(o.size=r.paramList[1]),o}return e}(_nbind.BindType);_nbind.ArrayType=ArrayType;function pushString(t,e){if(t==null)if(e&&e.Nullable)t="";else throw new Error("Type mismatch");if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t),o=_nbind.Pool.lalloc(4+r+1);return HEAPU32[o/4]=r,Module.stringToUTF8Array(t,HEAPU8,o+4,r+1),o}_nbind.pushString=pushString;function popString(t){if(t===0)return null;var e=HEAPU32[t/4];return Module.Pointer_stringify(t+4,e)}_nbind.popString=popString;var StringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popString,r.wireWrite=pushString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushString(a,o)}},e}(_nbind.BindType);_nbind.StringType=StringType;function makeArgList(t){return Array.apply(null,Array(t)).map(function(e,r){return"a"+(r+1)})}function anyNeedsWireWrite(t,e){return t.reduce(function(r,o){return r||o.needsWireWrite(e)},!1)}function anyNeedsWireRead(t,e){return t.reduce(function(r,o){return r||!!o.needsWireRead(e)},!1)}function makeWireRead(t,e,r,o){var a=t.length;return r.makeWireRead?r.makeWireRead(o,t,a):r.wireRead?(t[a]=r.wireRead,"(convertParamList["+a+"]("+o+"))"):o}function makeWireWrite(t,e,r,o){var a,n=t.length;return r.makeWireWrite?a=r.makeWireWrite(o,e,t,n):a=r.wireWrite,a?typeof a=="string"?a:(t[n]=a,"(convertParamList["+n+"]("+o+"))"):o}function buildCallerFunction(dynCall,ptrType,ptr,num,policyTbl,needsWireWrite,prefix,returnType,argTypeList,mask,err){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireRead(convertParamList,policyTbl,returnType,"dynCall("+[prefix].concat(argList.map(function(t,e){return makeWireWrite(convertParamList,policyTbl,argTypeList[e],t)})).join(",")+")"),resourceSet=_nbind.listResources([returnType],argTypeList),sourceCode="function("+argList.join(",")+"){"+(mask?"this.__nbindFlags&mask&&err();":"")+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function buildJSCallerFunction(returnType,argTypeList){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireWrite(convertParamList,null,returnType,"_nbind.externalList[num].data("+argList.map(function(t,e){return makeWireRead(convertParamList,null,argTypeList[e],t)}).join(",")+")"),resourceSet=_nbind.listResources(argTypeList,[returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode="function("+["dummy","num"].concat(argList).join(",")+"){"+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}_nbind.buildJSCallerFunction=buildJSCallerFunction;function makeJSCaller(t){var e=t.length-1,r=_nbind.getTypes(t,"callback"),o=r[0],a=r.slice(1),n=anyNeedsWireRead(a,null),u=o.needsWireWrite(null);if(!u&&!n)switch(e){case 0:return function(A,p){return _nbind.externalList[p].data()};case 1:return function(A,p,h){return _nbind.externalList[p].data(h)};case 2:return function(A,p,h,E){return _nbind.externalList[p].data(h,E)};case 3:return function(A,p,h,E,w){return _nbind.externalList[p].data(h,E,w)};default:break}return buildJSCallerFunction(o,a)}_nbind.makeJSCaller=makeJSCaller;function makeMethodCaller(t,e){var r=e.typeList.length-1,o=e.typeList.slice(0);o.splice(1,0,"uint32_t",e.boundID);var a=_nbind.getTypes(o,e.title),n=a[0],u=a.slice(3),A=n.needsWireRead(e.policyTbl),p=anyNeedsWireWrite(u,e.policyTbl),h=e.ptr,E=e.num,w=_nbind.getDynCall(a,e.title),v=~e.flags&1;function b(){throw new Error("Calling a non-const method on a const object")}if(!A&&!p)switch(r){case 0:return function(){return this.__nbindFlags&v?b():w(h,E,_nbind.pushPointer(this,t))};case 1:return function(C){return this.__nbindFlags&v?b():w(h,E,_nbind.pushPointer(this,t),C)};case 2:return function(C,R){return this.__nbindFlags&v?b():w(h,E,_nbind.pushPointer(this,t),C,R)};case 3:return function(C,R,L){return this.__nbindFlags&v?b():w(h,E,_nbind.pushPointer(this,t),C,R,L)};default:break}return buildCallerFunction(w,t,h,E,e.policyTbl,p,"ptr,num,pushPointer(this,ptrType)",n,u,v,b)}_nbind.makeMethodCaller=makeMethodCaller;function makeCaller(t){var e=t.typeList.length-1,r=_nbind.getTypes(t.typeList,t.title),o=r[0],a=r.slice(1),n=o.needsWireRead(t.policyTbl),u=anyNeedsWireWrite(a,t.policyTbl),A=t.direct,p=t.ptr;if(t.direct&&!n&&!u){var h=_nbind.getDynCall(r,t.title);switch(e){case 0:return function(){return h(A)};case 1:return function(b){return h(A,b)};case 2:return function(b,C){return h(A,b,C)};case 3:return function(b,C,R){return h(A,b,C,R)};default:break}p=0}var E;if(p){var w=t.typeList.slice(0);w.splice(1,0,"uint32_t"),r=_nbind.getTypes(w,t.title),E="ptr,num"}else p=A,E="ptr";var v=_nbind.getDynCall(r,t.title);return buildCallerFunction(v,null,p,t.num,t.policyTbl,u,E,o,a)}_nbind.makeCaller=makeCaller;function makeOverloader(t,e){var r=[];function o(){return r[arguments.length].apply(this,arguments)}return o.addMethod=function(a,n){r[n]=a},o.addMethod(t,e),o}_nbind.makeOverloader=makeOverloader;var Resource=function(){function t(e,r){var o=this;this.makeOpen=function(){return Object.keys(o.openTbl).join("")},this.makeClose=function(){return Object.keys(o.closeTbl).join("")},this.openTbl={},this.closeTbl={},e&&(this.openTbl[e]=!0),r&&(this.closeTbl[r]=!0)}return t.prototype.add=function(e){for(var r=0,o=Object.keys(e.openTbl);r<o.length;r++){var a=o[r];this.openTbl[a]=!0}for(var n=0,u=Object.keys(e.closeTbl);n<u.length;n++){var a=u[n];this.closeTbl[a]=!0}},t.prototype.remove=function(e){for(var r=0,o=Object.keys(e.openTbl);r<o.length;r++){var a=o[r];delete this.openTbl[a]}for(var n=0,u=Object.keys(e.closeTbl);n<u.length;n++){var a=u[n];delete this.closeTbl[a]}},t}();_nbind.Resource=Resource;function listResources(t,e){for(var r=new Resource,o=0,a=t;o<a.length;o++)for(var n=a[o],u=0,A=n.readResources||[];u<A.length;u++){var p=A[u];r.add(p)}for(var h=0,E=e;h<E.length;h++)for(var n=E[h],w=0,v=n.writeResources||[];w<v.length;w++){var p=v[w];r.add(p)}return r}_nbind.listResources=listResources,_nbind.resources={pool:new Resource("var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];","_nbind.Pool.lreset(used,page);")};var ExternalBuffer=function(t){__extends(e,t);function e(r,o){var a=t.call(this,r)||this;return a.ptr=o,a}return e.prototype.free=function(){_free(this.ptr)},e}(_nbind.External);function getBuffer(t){return t instanceof ArrayBuffer?new Uint8Array(t):t instanceof DataView?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function pushBuffer(t,e){if(t==null&&e&&e.Nullable&&(t=[]),typeof t!="object")throw new Error("Type mismatch");var r=t,o=r.byteLength||r.length;if(!o&&o!==0&&r.byteLength!==0)throw new Error("Type mismatch");var a=_nbind.Pool.lalloc(8),n=_malloc(o),u=a/4;return HEAPU32[u++]=o,HEAPU32[u++]=n,HEAPU32[u++]=new ExternalBuffer(t,n).register(),HEAPU8.set(getBuffer(t),n),a}var BufferType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=pushBuffer,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushBuffer(a,o)}},e}(_nbind.BindType);_nbind.BufferType=BufferType;function commitBuffer(t,e,r){var o=_nbind.externalList[t].data,a=Buffer;if(typeof Buffer!="function"&&(a=function(){}),!(o instanceof Array)){var n=HEAPU8.subarray(e,e+r);if(o instanceof a){var u=void 0;typeof Buffer.from=="function"&&Buffer.from.length>=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t<e.length;t++){var r=e[t];r.__nbindState&3||r.free()}dirtyList=[],gcTimer=0}_nbind.mark=function(t){};function toggleLightGC(t){t?_nbind.mark=function(e){dirtyList.push(e),gcTimer||(gcTimer=setTimeout(sweep,0))}:_nbind.mark=function(e){}}_nbind.toggleLightGC=toggleLightGC}(_nbind),Module.requestFullScreen=function t(e,r,o){Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."),Module.requestFullScreen=Module.requestFullscreen,Browser.requestFullScreen(e,r,o)},Module.requestFullscreen=function t(e,r,o){Browser.requestFullscreen(e,r,o)},Module.requestAnimationFrame=function t(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function t(e,r,o){Browser.setCanvasSize(e,r,o)},Module.pauseMainLoop=function t(){Browser.mainLoop.pause()},Module.resumeMainLoop=function t(){Browser.mainLoop.resume()},Module.getUserMedia=function t(){Browser.getUserMedia()},Module.createContext=function t(e,r,o,a){return Browser.createContext(e,r,o,a)},ENVIRONMENT_IS_NODE?_emscripten_get_now=function(){var e=process.hrtime();return e[0]*1e3+e[1]/1e6}:typeof dateNow<"u"?_emscripten_get_now=dateNow:typeof self=="object"&&self.performance&&typeof self.performance.now=="function"?_emscripten_get_now=function(){return self.performance.now()}:typeof performance=="object"&&typeof performance.now=="function"?_emscripten_get_now=function(){return performance.now()}:_emscripten_get_now=Date.now,__ATEXIT__.push(function(){var t=Module._fflush;t&&t(0);var e=___syscall146.printChar;if(!!e){var r=___syscall146.buffers;r[1].length&&e(1,10),r[2].length&&e(2,10)}}),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),w=e.DYNAMICTOP_PTR|0,v=e.tempDoublePtr|0,b=e.ABORT|0,C=e.STACKTOP|0,R=e.STACK_MAX|0,L=e.cttz_i8|0,_=e.___dso_handle|0,V=0,re=0,oe=0,pe=0,he=t.NaN,ve=t.Infinity,ge=0,le=0,Pe=0,g=0,De=0,Ce=0,de=t.Math.floor,ne=t.Math.abs,Z=t.Math.sqrt,me=t.Math.pow,be=t.Math.cos,ut=t.Math.sin,H=t.Math.tan,yt=t.Math.acos,Me=t.Math.asin,Te=t.Math.atan,Qe=t.Math.atan2,_e=t.Math.exp,qe=t.Math.log,At=t.Math.ceil,Oe=t.Math.imul,x=t.Math.min,I=t.Math.max,P=t.Math.clz32,y=t.Math.fround,F=e.abort,J=e.assert,X=e.enlargeMemory,$=e.getTotalMemory,ie=e.abortOnCannotGrowMemory,ke=e.invoke_viiiii,Ne=e.invoke_vif,st=e.invoke_vid,ht=e.invoke_fiff,Ut=e.invoke_vi,Xt=e.invoke_vii,Pt=e.invoke_ii,tn=e.invoke_viddi,Dr=e.invoke_vidd,fr=e.invoke_iiii,Br=e.invoke_diii,jr=e.invoke_di,Hn=e.invoke_iid,bs=e.invoke_iii,ki=e.invoke_viiddi,gs=e.invoke_viiiiii,to=e.invoke_dii,Di=e.invoke_i,Qs=e.invoke_iiiiii,ro=e.invoke_viiid,pc=e.invoke_viififi,gu=e.invoke_viii,ap=e.invoke_v,lp=e.invoke_viid,ks=e.invoke_idd,En=e.invoke_viiii,no=e._emscripten_asm_const_iiiii,Fs=e._emscripten_asm_const_iiidddddd,Cl=e._emscripten_asm_const_iiiid,El=e.__nbind_reference_external,io=e._emscripten_asm_const_iiiiiiii,Ue=e._removeAccessorPrefix,Fn=e._typeModule,Fi=e.__nbind_register_pool,Rn=e.__decorate,Ui=e._llvm_stackrestore,Zt=e.___cxa_atexit,Ri=e.__extends,$n=e.__nbind_get_value_object,Ma=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,$t=e._emscripten_set_main_loop_timing,hc=e.__nbind_register_primitive,du=e.__nbind_register_type,gc=e._emscripten_memcpy_big,Il=e.__nbind_register_function,PA=e.___setErrNo,mu=e.__nbind_register_class,Ee=e.__nbind_finish,Rt=e._abort,dc=e._nbind_value,_i=e._llvm_stacksave,yu=e.___syscall54,qt=e._defineHidden,wl=e._emscripten_set_main_loop,xA=e._emscripten_get_now,cp=e.__nbind_register_callback_signature,mc=e._emscripten_asm_const_iiiiii,bA=e.__nbind_free_external,Dn=e._emscripten_asm_const_iiii,ui=e._emscripten_asm_const_iiididi,yc=e.___syscall6,QA=e._atexit,ra=e.___syscall140,Hi=e.___syscall146,Oo=y(0);let $e=y(0);function so(s){s=s|0;var l=0;return l=C,C=C+s|0,C=C+15&-16,l|0}function Bl(){return C|0}function Cu(s){s=s|0,C=s}function qi(s,l){s=s|0,l=l|0,C=s,R=l}function Eu(s,l){s=s|0,l=l|0,V||(V=s,re=l)}function kA(s){s=s|0,Ce=s}function Ua(){return Ce|0}function Cc(){var s=0,l=0;Er(8104,8,400)|0,Er(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,Zt(17,8104,_|0)|0}function ds(s){s=s|0,Be(s+948|0)}function Ot(s){return s=y(s),((bu(s)|0)&2147483647)>>>0>2139095040|0}function Sn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(0);return s|0}function di(s){s=s|0;var l=0;return l=$v(1e3)|0,na(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Er(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function na(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,gg(s,5,3197,f)),C=d}function oo(){return di(956)|0}function Rs(s){s=s|0;var l=0;return l=Gt(1e3)|0,ia(l,s),na(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function ia(s,l){s=s|0,l=l|0;var c=0;Er(s|0,l|0,948)|0,Nm(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function sa(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Mo(c+948|0,s)|0,n[l>>2]=0),c=Zi(s)|0,c|0){l=0;do n[(Ts(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),Ns(c),eD(s),n[2276]=(n[2276]|0)+-1}function Mo(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0;f=n[s>>2]|0,Q=s+4|0,c=n[Q>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(0);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(bI(d|0,f|0,s|0)|0,c=n[Q>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[Q>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function Zi(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function Ts(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function Ns(s){s=s|0;var l=0,c=0,f=0,d=0;f=C,C=C+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Ep(l,d,d,s+8|0),Cg(s,l),_A(l)),C=f}function Ls(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;M=Zi(s)|0;do if(M|0){if((n[(Ts(s,0)|0)+944>>2]|0)==(s|0)){if(!(Mo(s+948|0,l)|0))break;Er(l+400|0,8504,540)|0,n[l+944>>2]=0,je(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,Q=s+948|0,k=(B|0)==0,c=0,m=0;do f=n[(n[Q>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?je(s):(d=Rs(f)|0,n[(n[Q>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,k||PR[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(M|0));if(c>>>0<M>>>0){k=s+948|0,Q=s+952|0,B=c,c=n[Q>>2]|0;do m=(n[k>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(bI(m|0,f|0,d|0)|0,c=n[Q>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[Q>>2]=c),B=B+1|0;while((B|0)!=(M|0))}}while(0)}function ao(s){s=s|0;var l=0,c=0,f=0,d=0;Yn(s,(Zi(s)|0)==0,2491),Yn(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),Ns(l),l=s+976|0,c=n[l>>2]|0,Er(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function Yn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,co(s,5,3197,f)),C=d}function qn(){return n[2276]|0}function $i(){var s=0;return s=$v(20)|0,es((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function es(s,l){s=s|0,l=l|0;var c=0,f=0;f=C,C=C+16|0,c=f,s||(n[c>>2]=l,co(0,5,3197,c)),C=f}function mi(s){s=s|0,eD(s),n[2277]=(n[2277]|0)+-1}function Ha(s,l){s=s|0,l=l|0;var c=0;l?(Yn(s,(Zi(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function oa(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,Yn(s,(n[l+944>>2]|0)==0,2709),Yn(s,(n[s+964>>2]|0)==0,2763),ee(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],we(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,je(s),C=f}function ee(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;if(c=Zi(s)|0,c|0&&(n[(Ts(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,Q=Rs(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=Q,n[Q+944>>2]=s,m||PR[f&15](B,Q,s,l),l=l+1|0;while((l|0)!=(c|0))}}function we(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0,et=0,Ze=0;et=C,C=C+64|0,j=et+52|0,Q=et+48|0,se=et+28|0,We=et+24|0,Le=et+20|0,Re=et,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}HA(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=N(s)|0,d>>>0<f>>>0&&Vr(s),O=n[s>>2]|0,M=(n[B>>2]|0)-O|0,m=M>>1,Ep(Re,M>>2>>>0<d>>>1>>>0?m>>>0<f>>>0?f:m:d,l-O>>2,s+8|0),O=Re+8|0,f=n[O>>2]|0,m=Re+12|0,M=n[m>>2]|0,B=M,k=f;do if((f|0)==(M|0)){if(M=Re+4|0,f=n[M>>2]|0,Ze=n[Re>>2]|0,d=Ze,f>>>0<=Ze>>>0){f=B-d>>1,f=(f|0)==0?1:f,Ep(se,f,f>>>2,n[Re+16>>2]|0),n[We>>2]=n[M>>2],n[Le>>2]=n[O>>2],n[Q>>2]=n[We>>2],n[j>>2]=n[Le>>2],dI(se,Q,j),f=n[Re>>2]|0,n[Re>>2]=n[se>>2],n[se>>2]=f,f=se+4|0,Ze=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Ze,f=se+8|0,Ze=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Ze,f=se+12|0,Ze=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Ze,_A(se),f=n[O>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,Q=f+(B<<2)|0,d=k-m|0,m=d>>2,m&&(bI(Q|0,f|0,d|0)|0,f=n[M>>2]|0),Ze=Q+(m<<2)|0,n[O>>2]=Ze,n[M>>2]=f+(B<<2),f=Ze}while(0);n[f>>2]=n[c>>2],n[O>>2]=(n[O>>2]|0)+4,l=Eg(s,Re,l)|0,_A(Re)}while(0);return C=et,l|0}function je(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(he),s=n[s+944>>2]|0}while((s|0)!=0)}function Be(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function xe(s){return s=s|0,n[s+944>>2]|0}function Ve(s){s=s|0,Yn(s,(n[s+964>>2]|0)!=0,2832),je(s)}function vt(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function tr(s,l){s=s|0,l=l|0,ZUe(s,l,400)|0&&(Er(s|0,l|0,400)|0,je(s))}function Zr(s){s=s|0;var l=$e;return l=y(h[s+44>>2]),s=Ot(l)|0,y(s?y(0):l)}function Tn(s){s=s|0;var l=$e;return l=y(h[s+48>>2]),Ot(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function _r(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function ei(s){return s=s|0,n[s+980>>2]|0}function Ti(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function Kn(s){return s=s|0,n[s+4>>2]|0}function qa(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function aa(s){return s=s|0,n[s+8>>2]|0}function yi(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function la(s){return s=s|0,n[s+12>>2]|0}function ja(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function lo(s){return s=s|0,n[s+16>>2]|0}function FA(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function Ec(s){return s=s|0,n[s+20>>2]|0}function ca(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function rg(s){return s=s|0,n[s+24>>2]|0}function Ic(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function bm(s){return s=s|0,n[s+28>>2]|0}function ng(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function Vn(s){return s=s|0,n[s+32>>2]|0}function up(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function ig(s){return s=s|0,n[s+36>>2]|0}function RA(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,je(s))}function Os(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,je(s))}function Iu(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,je(s))}function Ga(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function ji(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,je(s))}function ua(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function wu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function ms(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function wc(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Bc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function G(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function Dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function vl(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(he),n[c>>2]=3,je(s))}function Si(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function vc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function lt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Bu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function sg(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function cI(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function TA(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,je(s))}function Ap(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(he),n[l>>2]=3,je(s))}function yr(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function ys(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function og(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,je(s))}function ag(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(he),n[l>>2]=3,je(s))}function lg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function fp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function Dc(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function mt(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Qm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function cg(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function ug(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function vu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function km(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function Ag(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Du(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function uI(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function Fm(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Aa(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,je(s))}function Sc(s){return s=s|0,y(h[s+396>>2])}function Dl(s){return s=s|0,y(h[s+400>>2])}function Su(s){return s=s|0,y(h[s+404>>2])}function fg(s){return s=s|0,y(h[s+408>>2])}function NA(s){return s=s|0,y(h[s+412>>2])}function pp(s){return s=s|0,y(h[s+416>>2])}function Wa(s){return s=s|0,y(h[s+420>>2])}function pg(s,l){switch(s=s|0,l=l|0,Yn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function hp(s,l){switch(s=s|0,l=l|0,Yn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function Uo(s,l){switch(s=s|0,l=l|0,Yn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function Cs(s,l){s=s|0,l=l|0;var c=0,f=$e;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ne(y(f-y(h[l>>2]))))<y(999999974e-13)):s=1:s=0,s|0}function Ci(s,l){s=y(s),l=y(l);var c=0;return Ot(s)|0?c=Ot(l)|0:c=y(ne(y(s-l)))<y(999999974e-13),c|0}function Rm(s,l){s=s|0,l=l|0,Tm(s,l)}function Tm(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c+4|0,n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,Ma(f|0,s|0,l|0,0),co(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),I3e(f),C=c}function _o(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=$e;s=y(s*l),d=y(IR(s,y(1)));do if(Ci(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),Ci(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=Ci(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(0);return y(s/l)}function LA(s,l,c,f,d,m,B,Q,k,M,O,j,se){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,Q=y(Q),k=y(k),M=y(M),O=y(O),j=y(j),se=se|0;var We=0,Le=$e,Re=$e,et=$e,Ze=$e,at=$e,He=$e;return k<y(0)|M<y(0)?se=0:((se|0)!=0&&(Le=y(h[se+4>>2]),Le!=y(0))?(et=y(_o(l,Le,0,0)),Ze=y(_o(f,Le,0,0)),Re=y(_o(m,Le,0,0)),Le=y(_o(Q,Le,0,0))):(Re=m,et=l,Le=Q,Ze=f),(d|0)==(s|0)?We=Ci(Re,et)|0:We=0,(B|0)==(c|0)?se=Ci(Le,Ze)|0:se=0,!We&&(at=y(l-O),!(gp(s,at,k)|0))&&!(dp(s,at,d,k)|0)?We=hg(s,at,d,m,k)|0:We=1,!se&&(He=y(f-j),!(gp(c,He,M)|0))&&!(dp(c,He,B,M)|0)?se=hg(c,He,B,Q,M)|0:se=1,se=We&se),se|0}function gp(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=Ci(l,c)|0:s=0,s|0}function dp(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=Ci(l,f)|0:s=0,s|0}function hg(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=Ci(l,d)|0:s=0,s|0}function fa(s,l,c,f,d,m,B,Q,k,M,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),Q=y(Q),k=k|0,M=M|0,O=O|0;var j=0,se=0,We=0,Le=0,Re=$e,et=$e,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0,Bn=$e,po=$e,ho=$e,go=0,ya=0;rr=C,C=C+160|0,Jt=rr+152|0,ir=rr+120|0,Rr=rr+104|0,He=rr+72|0,Le=rr+56|0,Tt=rr+8|0,at=rr,Ge=(n[2279]|0)+1|0,n[2279]=Ge,Ir=s+984|0,(o[Ir>>0]|0)!=0&&(n[s+512>>2]|0)!=(n[2278]|0)?Ze=4:(n[s+516>>2]|0)==(f|0)?Qr=0:Ze=4,(Ze|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Qr=1);e:do if(n[s+964>>2]|0)if(Re=y(rn(s,2,B)),et=y(rn(s,0,B)),j=s+916|0,ho=y(h[j>>2]),po=y(h[s+920>>2]),Bn=y(h[s+932>>2]),LA(d,l,m,c,n[s+924>>2]|0,ho,n[s+928>>2]|0,po,Bn,y(h[s+936>>2]),Re,et,O)|0)Ze=22;else if(We=n[s+520>>2]|0,!We)Ze=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Bn=y(h[j>>2]),po=y(h[s+524+(se*24|0)+4>>2]),ho=y(h[s+524+(se*24|0)+16>>2]),LA(d,l,m,c,n[s+524+(se*24|0)+8>>2]|0,Bn,n[s+524+(se*24|0)+12>>2]|0,po,ho,y(h[s+524+(se*24|0)+20>>2]),Re,et,O)|0){Ze=22;break e}if(se=se+1|0,se>>>0>=We>>>0){Ze=21;break}}else{if(k){if(j=s+916|0,!(Ci(y(h[j>>2]),l)|0)){Ze=21;break}if(!(Ci(y(h[s+920>>2]),c)|0)){Ze=21;break}if((n[s+924>>2]|0)!=(d|0)){Ze=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Ze=22;break}if(We=n[s+520>>2]|0,!We)Ze=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Ci(y(h[j>>2]),l)|0&&Ci(y(h[s+524+(se*24|0)+4>>2]),c)|0&&(n[s+524+(se*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(se*24|0)+12>>2]|0)==(m|0)){Ze=22;break e}if(se=se+1|0,se>>>0>=We>>>0){Ze=21;break}}}while(0);do if((Ze|0)==21)o[11697]|0?(j=0,Ze=28):(j=0,Ze=31);else if((Ze|0)==22){if(se=(o[11697]|0)!=0,!((j|0)!=0&(Qr^1)))if(se){Ze=28;break}else{Ze=31;break}Le=j+16|0,n[s+908>>2]=n[Le>>2],We=j+20|0,n[s+912>>2]=n[We>>2],(o[11698]|0)==0|se^1||(n[at>>2]=OA(Ge)|0,n[at+4>>2]=Ge,co(s,4,2972,at),se=n[s+972>>2]|0,se|0&&tf[se&127](s),d=Ya(d,k)|0,m=Ya(m,k)|0,ya=+y(h[Le>>2]),go=+y(h[We>>2]),n[Tt>>2]=d,n[Tt+4>>2]=m,E[Tt+8>>3]=+l,E[Tt+16>>3]=+c,E[Tt+24>>3]=ya,E[Tt+32>>3]=go,n[Tt+40>>2]=M,co(s,4,2989,Tt))}while(0);return(Ze|0)==28&&(se=OA(Ge)|0,n[Le>>2]=se,n[Le+4>>2]=Ge,n[Le+8>>2]=Qr?3047:11699,co(s,4,3038,Le),se=n[s+972>>2]|0,se|0&&tf[se&127](s),Tt=Ya(d,k)|0,Ze=Ya(m,k)|0,n[He>>2]=Tt,n[He+4>>2]=Ze,E[He+8>>3]=+l,E[He+16>>3]=+c,n[He+24>>2]=M,co(s,4,3049,He),Ze=31),(Ze|0)==31&&(ti(s,l,c,f,d,m,B,Q,k,O),o[11697]|0&&(se=n[2279]|0,Tt=OA(se)|0,n[Rr>>2]=Tt,n[Rr+4>>2]=se,n[Rr+8>>2]=Qr?3047:11699,co(s,4,3083,Rr),se=n[s+972>>2]|0,se|0&&tf[se&127](s),Tt=Ya(d,k)|0,Rr=Ya(m,k)|0,go=+y(h[s+908>>2]),ya=+y(h[s+912>>2]),n[ir>>2]=Tt,n[ir+4>>2]=Rr,E[ir+8>>3]=go,E[ir+16>>3]=ya,n[ir+24>>2]=M,co(s,4,3092,ir)),n[s+516>>2]=f,j||(se=s+520|0,j=n[se>>2]|0,(j|0)==16&&(o[11697]|0&&co(s,4,3124,Jt),n[se>>2]=0,j=0),k?j=s+916|0:(n[se>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),k&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[Ir>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],C=rr,Qr|(j|0)==0|0}function rn(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(K(s,l,c)),y(f+y(te(s,l,c)))}function co(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=C,C=C+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,dg(f,s,l,c,d),C=m}function OA(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function Ya(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,C=d,s|0}function ti(s,l,c,f,d,m,B,Q,k,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),Q=y(Q),k=k|0,M=M|0;var O=0,j=0,se=0,We=0,Le=$e,Re=$e,et=$e,Ze=$e,at=$e,He=$e,Ge=$e,Tt=0,Rr=0,ir=0,Jt=$e,Ir=$e,Qr=0,rr=$e,Bn=0,po=0,ho=0,go=0,ya=0,Qp=0,kp=0,kl=0,Fp=0,Lu=0,Ou=0,Rp=0,Tp=0,Np=0,Jr=0,Fl=0,Lp=0,Fc=0,Op=$e,Mp=$e,Mu=$e,Uu=$e,Rc=$e,Us=0,$a=0,qo=0,Rl=0,nf=0,sf=$e,_u=$e,of=$e,af=$e,_s=$e,ws=$e,Tl=0,Pn=$e,lf=$e,mo=$e,Tc=$e,yo=$e,Nc=$e,cf=0,uf=0,Lc=$e,Hs=$e,Nl=0,Af=0,ff=0,pf=0,vr=$e,jn=0,Bs=0,Co=0,qs=0,Pr=0,lr=0,Ll=0,Wt=$e,hf=0,ii=0;Ll=C,C=C+16|0,Us=Ll+12|0,$a=Ll+8|0,qo=Ll+4|0,Rl=Ll,Yn(s,(d|0)==0|(Ot(l)|0)^1,3326),Yn(s,(m|0)==0|(Ot(c)|0)^1,3406),Bs=gt(s,f)|0,n[s+496>>2]=Bs,Pr=ur(2,Bs)|0,lr=ur(0,Bs)|0,h[s+440>>2]=y(K(s,Pr,B)),h[s+444>>2]=y(te(s,Pr,B)),h[s+428>>2]=y(K(s,lr,B)),h[s+436>>2]=y(te(s,lr,B)),h[s+464>>2]=y(gr(s,Pr)),h[s+468>>2]=y(hn(s,Pr)),h[s+452>>2]=y(gr(s,lr)),h[s+460>>2]=y(hn(s,lr)),h[s+488>>2]=y(ri(s,Pr,B)),h[s+492>>2]=y(Ni(s,Pr,B)),h[s+476>>2]=y(ri(s,lr,B)),h[s+484>>2]=y(Ni(s,lr,B));do if(n[s+964>>2]|0)yg(s,l,c,d,m,B,Q);else{if(Co=s+948|0,qs=(n[s+952>>2]|0)-(n[Co>>2]|0)>>2,!qs){Qv(s,l,c,d,m,B,Q);break}if(!k&&kv(s,l,c,d,m,B,Q)|0)break;ee(s),Fl=s+508|0,o[Fl>>0]=0,Pr=ur(n[s+4>>2]|0,Bs)|0,lr=fI(Pr,Bs)|0,jn=Ae(Pr)|0,Lp=n[s+8>>2]|0,Af=s+28|0,Fc=(n[Af>>2]|0)!=0,yo=jn?B:Q,Lc=jn?Q:B,Op=y(yp(s,Pr,B)),Mp=y(pI(s,Pr,B)),Le=y(yp(s,lr,B)),Nc=y(gn(s,Pr,B)),Hs=y(gn(s,lr,B)),ir=jn?d:m,Nl=jn?m:d,vr=jn?Nc:Hs,at=jn?Hs:Nc,Tc=y(rn(s,2,B)),Ze=y(rn(s,0,B)),Re=y(y(Hr(s+364|0,B))-vr),et=y(y(Hr(s+380|0,B))-vr),He=y(y(Hr(s+372|0,Q))-at),Ge=y(y(Hr(s+388|0,Q))-at),Mu=jn?Re:He,Uu=jn?et:Ge,Tc=y(l-Tc),l=y(Tc-vr),Ot(l)|0?vr=l:vr=y(Nn(y(Qg(l,et)),Re)),lf=y(c-Ze),l=y(lf-at),Ot(l)|0?mo=l:mo=y(Nn(y(Qg(l,Ge)),He)),Re=jn?vr:mo,Pn=jn?mo:vr;e:do if((ir|0)==1)for(f=0,j=0;;){if(O=Ts(s,j)|0,!f)y(rs(O))>y(0)&&y(Ms(O))>y(0)?f=O:f=0;else if(Lm(O)|0){We=0;break e}if(j=j+1|0,j>>>0>=qs>>>0){We=f;break}}else We=0;while(0);Tt=We+500|0,Rr=We+504|0,f=0,O=0,l=y(0),se=0;do{if(j=n[(n[Co>>2]|0)+(se<<2)>>2]|0,(n[j+36>>2]|0)==1)Pu(j),o[j+985>>0]=1,o[j+984>>0]=0;else{Sl(j),k&&mp(j,gt(j,Bs)|0,Re,Pn,vr);do if((n[j+24>>2]|0)!=1)if((j|0)==(We|0)){n[Tt>>2]=n[2278],h[Rr>>2]=y(0);break}else{Om(s,j,vr,d,mo,vr,mo,m,Bs,M);break}else O|0&&(n[O+960>>2]=j),n[j+960>>2]=0,O=j,f=(f|0)==0?j:f;while(0);ws=y(h[j+504>>2]),l=y(l+y(ws+y(rn(j,Pr,vr))))}se=se+1|0}while((se|0)!=(qs|0));for(ho=l>Re,Tl=Fc&((ir|0)==2&ho)?1:ir,Bn=(Nl|0)==1,ya=Bn&(k^1),Qp=(Tl|0)==1,kp=(Tl|0)==2,kl=976+(Pr<<2)|0,Fp=(Nl|2|0)==2,Np=Bn&(Fc^1),Lu=1040+(lr<<2)|0,Ou=1040+(Pr<<2)|0,Rp=976+(lr<<2)|0,Tp=(Nl|0)!=1,ho=Fc&((ir|0)!=0&ho),po=s+976|0,Bn=Bn^1,l=Re,Qr=0,go=0,ws=y(0),Rc=y(0);;){e:do if(Qr>>>0<qs>>>0)for(Rr=n[Co>>2]|0,se=0,Ge=y(0),He=y(0),et=y(0),Re=y(0),j=0,O=0,We=Qr;;){if(Tt=n[Rr+(We<<2)>>2]|0,(n[Tt+36>>2]|0)!=1&&(n[Tt+940>>2]=go,(n[Tt+24>>2]|0)!=1)){if(Ze=y(rn(Tt,Pr,vr)),Jr=n[kl>>2]|0,c=y(Hr(Tt+380+(Jr<<3)|0,yo)),at=y(h[Tt+504>>2]),c=y(Qg(c,at)),c=y(Nn(y(Hr(Tt+364+(Jr<<3)|0,yo)),c)),Fc&(se|0)!=0&y(Ze+y(He+c))>l){m=se,Ze=Ge,ir=We;break e}Ze=y(Ze+c),c=y(He+Ze),Ze=y(Ge+Ze),Lm(Tt)|0&&(et=y(et+y(rs(Tt))),Re=y(Re-y(at*y(Ms(Tt))))),O|0&&(n[O+960>>2]=Tt),n[Tt+960>>2]=0,se=se+1|0,O=Tt,j=(j|0)==0?Tt:j}else Ze=Ge,c=He;if(We=We+1|0,We>>>0<qs>>>0)Ge=Ze,He=c;else{m=se,ir=We;break}}else m=0,Ze=y(0),et=y(0),Re=y(0),j=0,ir=Qr;while(0);Jr=et>y(0)&et<y(1),Jt=Jr?y(1):et,Jr=Re>y(0)&Re<y(1),Ge=Jr?y(1):Re;do if(Qp)Jr=51;else if(Ze<Mu&((Ot(Mu)|0)^1))l=Mu,Jr=51;else if(Ze>Uu&((Ot(Uu)|0)^1))l=Uu,Jr=51;else if(o[(n[po>>2]|0)+3>>0]|0)Jr=51;else{if(Jt!=y(0)&&y(rs(s))!=y(0)){Jr=53;break}l=Ze,Jr=53}while(0);if((Jr|0)==51&&(Jr=0,Ot(l)|0?Jr=53:(Ir=y(l-Ze),rr=l)),(Jr|0)==53&&(Jr=0,Ze<y(0)?(Ir=y(-Ze),rr=l):(Ir=y(0),rr=l)),!ya&&(nf=(j|0)==0,!nf)){se=n[kl>>2]|0,We=Ir<y(0),at=y(Ir/Ge),Tt=Ir>y(0),He=y(Ir/Jt),et=y(0),Ze=y(0),l=y(0),O=j;do c=y(Hr(O+380+(se<<3)|0,yo)),Re=y(Hr(O+364+(se<<3)|0,yo)),Re=y(Qg(c,y(Nn(Re,y(h[O+504>>2]))))),We?(c=y(Re*y(Ms(O))),c!=y(-0)&&(Wt=y(Re-y(at*c)),sf=y(Ei(O,Pr,Wt,rr,vr)),Wt!=sf)&&(et=y(et-y(sf-Re)),l=y(l+c))):Tt&&(_u=y(rs(O)),_u!=y(0))&&(Wt=y(Re+y(He*_u)),of=y(Ei(O,Pr,Wt,rr,vr)),Wt!=of)&&(et=y(et-y(of-Re)),Ze=y(Ze-_u)),O=n[O+960>>2]|0;while((O|0)!=0);if(l=y(Ge+l),Re=y(Ir+et),nf)l=y(0);else{at=y(Jt+Ze),We=n[kl>>2]|0,Tt=Re<y(0),Rr=l==y(0),He=y(Re/l),se=Re>y(0),at=y(Re/at),l=y(0);do{Wt=y(Hr(j+380+(We<<3)|0,yo)),et=y(Hr(j+364+(We<<3)|0,yo)),et=y(Qg(Wt,y(Nn(et,y(h[j+504>>2]))))),Tt?(Wt=y(et*y(Ms(j))),Re=y(-Wt),Wt!=y(-0)?(Wt=y(He*Re),Re=y(Ei(j,Pr,y(et+(Rr?Re:Wt)),rr,vr))):Re=et):se&&(af=y(rs(j)),af!=y(0))?Re=y(Ei(j,Pr,y(et+y(at*af)),rr,vr)):Re=et,l=y(l-y(Re-et)),Ze=y(rn(j,Pr,vr)),c=y(rn(j,lr,vr)),Re=y(Re+Ze),h[$a>>2]=Re,n[Rl>>2]=1,et=y(h[j+396>>2]);e:do if(Ot(et)|0){O=Ot(Pn)|0;do if(!O){if(ho|(ts(j,lr,Pn)|0|Bn)||(ha(s,j)|0)!=4||(n[(Pl(j,lr)|0)+4>>2]|0)==3||(n[(bc(j,lr)|0)+4>>2]|0)==3)break;h[Us>>2]=Pn,n[qo>>2]=1;break e}while(0);if(ts(j,lr,Pn)|0){O=n[j+992+(n[Rp>>2]<<2)>>2]|0,Wt=y(c+y(Hr(O,Pn))),h[Us>>2]=Wt,O=Tp&(n[O+4>>2]|0)==2,n[qo>>2]=((Ot(Wt)|0|O)^1)&1;break}else{h[Us>>2]=Pn,n[qo>>2]=O?0:2;break}}else Wt=y(Re-Ze),Jt=y(Wt/et),Wt=y(et*Wt),n[qo>>2]=1,h[Us>>2]=y(c+(jn?Jt:Wt));while(0);pr(j,Pr,rr,vr,Rl,$a),pr(j,lr,Pn,vr,qo,Us);do if(!(ts(j,lr,Pn)|0)&&(ha(s,j)|0)==4){if((n[(Pl(j,lr)|0)+4>>2]|0)==3){O=0;break}O=(n[(bc(j,lr)|0)+4>>2]|0)!=3}else O=0;while(0);Wt=y(h[$a>>2]),Jt=y(h[Us>>2]),hf=n[Rl>>2]|0,ii=n[qo>>2]|0,fa(j,jn?Wt:Jt,jn?Jt:Wt,Bs,jn?hf:ii,jn?ii:hf,vr,mo,k&(O^1),3488,M)|0,o[Fl>>0]=o[Fl>>0]|o[j+508>>0],j=n[j+960>>2]|0}while((j|0)!=0)}}else l=y(0);if(l=y(Ir+l),ii=l<y(0)&1,o[Fl>>0]=ii|u[Fl>>0],kp&l>y(0)?(O=n[kl>>2]|0,(n[s+364+(O<<3)+4>>2]|0)!=0&&(_s=y(Hr(s+364+(O<<3)|0,yo)),_s>=y(0))?Re=y(Nn(y(0),y(_s-y(rr-l)))):Re=y(0)):Re=l,Tt=Qr>>>0<ir>>>0,Tt){We=n[Co>>2]|0,se=Qr,O=0;do j=n[We+(se<<2)>>2]|0,n[j+24>>2]|0||(O=((n[(Pl(j,Pr)|0)+4>>2]|0)==3&1)+O|0,O=O+((n[(bc(j,Pr)|0)+4>>2]|0)==3&1)|0),se=se+1|0;while((se|0)!=(ir|0));O?(Ze=y(0),c=y(0)):Jr=101}else Jr=101;e:do if((Jr|0)==101)switch(Jr=0,Lp|0){case 1:{O=0,Ze=y(Re*y(.5)),c=y(0);break e}case 2:{O=0,Ze=Re,c=y(0);break e}case 3:{if(m>>>0<=1){O=0,Ze=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),O=0,Ze=y(0),c=y(y(Nn(Re,y(0)))/c);break e}case 5:{c=y(Re/y((m+1|0)>>>0)),O=0,Ze=c;break e}case 4:{c=y(Re/y(m>>>0)),O=0,Ze=y(c*y(.5));break e}default:{O=0,Ze=y(0),c=y(0);break e}}while(0);if(l=y(Op+Ze),Tt){et=y(Re/y(O|0)),se=n[Co>>2]|0,j=Qr,Re=y(0);do{O=n[se+(j<<2)>>2]|0;e:do if((n[O+36>>2]|0)!=1){switch(n[O+24>>2]|0){case 1:{if(Ai(O,Pr)|0){if(!k)break e;Wt=y(Fr(O,Pr,rr)),Wt=y(Wt+y(gr(s,Pr))),Wt=y(Wt+y(K(O,Pr,vr))),h[O+400+(n[Ou>>2]<<2)>>2]=Wt;break e}break}case 0:if(ii=(n[(Pl(O,Pr)|0)+4>>2]|0)==3,Wt=y(et+l),l=ii?Wt:l,k&&(ii=O+400+(n[Ou>>2]<<2)|0,h[ii>>2]=y(l+y(h[ii>>2]))),ii=(n[(bc(O,Pr)|0)+4>>2]|0)==3,Wt=y(et+l),l=ii?Wt:l,ya){Wt=y(c+y(rn(O,Pr,vr))),Re=Pn,l=y(l+y(Wt+y(h[O+504>>2])));break e}else{l=y(l+y(c+y(ns(O,Pr,vr)))),Re=y(Nn(Re,y(ns(O,lr,vr))));break e}default:}k&&(Wt=y(Ze+y(gr(s,Pr))),ii=O+400+(n[Ou>>2]<<2)|0,h[ii>>2]=y(Wt+y(h[ii>>2])))}while(0);j=j+1|0}while((j|0)!=(ir|0))}else Re=y(0);if(c=y(Mp+l),Fp?Ze=y(y(Ei(s,lr,y(Hs+Re),Lc,B))-Hs):Ze=Pn,et=y(y(Ei(s,lr,y(Hs+(Np?Pn:Re)),Lc,B))-Hs),Tt&k){j=Qr;do{se=n[(n[Co>>2]|0)+(j<<2)>>2]|0;do if((n[se+36>>2]|0)!=1){if((n[se+24>>2]|0)==1){if(Ai(se,lr)|0){if(Wt=y(Fr(se,lr,Pn)),Wt=y(Wt+y(gr(s,lr))),Wt=y(Wt+y(K(se,lr,vr))),O=n[Lu>>2]|0,h[se+400+(O<<2)>>2]=Wt,!(Ot(Wt)|0))break}else O=n[Lu>>2]|0;Wt=y(gr(s,lr)),h[se+400+(O<<2)>>2]=y(Wt+y(K(se,lr,vr)));break}O=ha(s,se)|0;do if((O|0)==4){if((n[(Pl(se,lr)|0)+4>>2]|0)==3){Jr=139;break}if((n[(bc(se,lr)|0)+4>>2]|0)==3){Jr=139;break}if(ts(se,lr,Pn)|0){l=Le;break}hf=n[se+908+(n[kl>>2]<<2)>>2]|0,n[Us>>2]=hf,l=y(h[se+396>>2]),ii=Ot(l)|0,Re=(n[v>>2]=hf,y(h[v>>2])),ii?l=et:(Ir=y(rn(se,lr,vr)),Wt=y(Re/l),l=y(l*Re),l=y(Ir+(jn?Wt:l))),h[$a>>2]=l,h[Us>>2]=y(y(rn(se,Pr,vr))+Re),n[qo>>2]=1,n[Rl>>2]=1,pr(se,Pr,rr,vr,qo,Us),pr(se,lr,Pn,vr,Rl,$a),l=y(h[Us>>2]),Ir=y(h[$a>>2]),Wt=jn?l:Ir,l=jn?Ir:l,ii=((Ot(Wt)|0)^1)&1,fa(se,Wt,l,Bs,ii,((Ot(l)|0)^1)&1,vr,mo,1,3493,M)|0,l=Le}else Jr=139;while(0);e:do if((Jr|0)==139){Jr=0,l=y(Ze-y(ns(se,lr,vr)));do if((n[(Pl(se,lr)|0)+4>>2]|0)==3){if((n[(bc(se,lr)|0)+4>>2]|0)!=3)break;l=y(Le+y(Nn(y(0),y(l*y(.5)))));break e}while(0);if((n[(bc(se,lr)|0)+4>>2]|0)==3){l=Le;break}if((n[(Pl(se,lr)|0)+4>>2]|0)==3){l=y(Le+y(Nn(y(0),l)));break}switch(O|0){case 1:{l=Le;break e}case 2:{l=y(Le+y(l*y(.5)));break e}default:{l=y(Le+l);break e}}}while(0);Wt=y(ws+l),ii=se+400+(n[Lu>>2]<<2)|0,h[ii>>2]=y(Wt+y(h[ii>>2]))}while(0);j=j+1|0}while((j|0)!=(ir|0))}if(ws=y(ws+et),Rc=y(Nn(Rc,c)),m=go+1|0,ir>>>0>=qs>>>0)break;l=rr,Qr=ir,go=m}do if(k){if(O=m>>>0>1,!O&&!(Gi(s)|0))break;if(!(Ot(Pn)|0)){l=y(Pn-ws);e:do switch(n[s+12>>2]|0){case 3:{Le=y(Le+l),He=y(0);break}case 2:{Le=y(Le+y(l*y(.5))),He=y(0);break}case 4:{Pn>ws?He=y(l/y(m>>>0)):He=y(0);break}case 7:if(Pn>ws){Le=y(Le+y(l/y(m<<1>>>0))),He=y(l/y(m>>>0)),He=O?He:y(0);break e}else{Le=y(Le+y(l*y(.5))),He=y(0);break e}case 6:{He=y(l/y(go>>>0)),He=Pn>ws&O?He:y(0);break}default:He=y(0)}while(0);if(m|0)for(Tt=1040+(lr<<2)|0,Rr=976+(lr<<2)|0,We=0,j=0;;){e:do if(j>>>0<qs>>>0)for(Re=y(0),et=y(0),l=y(0),se=j;;){O=n[(n[Co>>2]|0)+(se<<2)>>2]|0;do if((n[O+36>>2]|0)!=1&&(n[O+24>>2]|0)==0){if((n[O+940>>2]|0)!=(We|0))break e;if(Mm(O,lr)|0&&(Wt=y(h[O+908+(n[Rr>>2]<<2)>>2]),l=y(Nn(l,y(Wt+y(rn(O,lr,vr)))))),(ha(s,O)|0)!=5)break;_s=y(Va(O)),_s=y(_s+y(K(O,0,vr))),Wt=y(h[O+912>>2]),Wt=y(y(Wt+y(rn(O,0,vr)))-_s),_s=y(Nn(et,_s)),Wt=y(Nn(Re,Wt)),Re=Wt,et=_s,l=y(Nn(l,y(_s+Wt)))}while(0);if(O=se+1|0,O>>>0<qs>>>0)se=O;else{se=O;break}}else et=y(0),l=y(0),se=j;while(0);if(at=y(He+l),c=Le,Le=y(Le+at),j>>>0<se>>>0){Ze=y(c+et),O=j;do{j=n[(n[Co>>2]|0)+(O<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&(n[j+24>>2]|0)==0)switch(ha(s,j)|0){case 1:{Wt=y(c+y(K(j,lr,vr))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 3:{Wt=y(y(Le-y(te(j,lr,vr)))-y(h[j+908+(n[Rr>>2]<<2)>>2])),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 2:{Wt=y(c+y(y(at-y(h[j+908+(n[Rr>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 4:{if(Wt=y(c+y(K(j,lr,vr))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt,ts(j,lr,Pn)|0||(jn?(Re=y(h[j+908>>2]),l=y(Re+y(rn(j,Pr,vr))),et=at):(et=y(h[j+912>>2]),et=y(et+y(rn(j,lr,vr))),l=at,Re=y(h[j+908>>2])),Ci(l,Re)|0&&Ci(et,y(h[j+912>>2]))|0))break e;fa(j,l,et,Bs,1,1,vr,mo,1,3501,M)|0;break e}case 5:{h[j+404>>2]=y(y(Ze-y(Va(j)))+y(Fr(j,0,Pn)));break e}default:break e}while(0);O=O+1|0}while((O|0)!=(se|0))}if(We=We+1|0,(We|0)==(m|0))break;j=se}}}while(0);if(h[s+908>>2]=y(Ei(s,2,Tc,B,B)),h[s+912>>2]=y(Ei(s,0,lf,Q,B)),(Tl|0)!=0&&(cf=n[s+32>>2]|0,uf=(Tl|0)==2,!(uf&(cf|0)!=2))?uf&(cf|0)==2&&(l=y(Nc+rr),l=y(Nn(y(Qg(l,y(MA(s,Pr,Rc,yo)))),Nc)),Jr=198):(l=y(Ei(s,Pr,Rc,yo,B)),Jr=198),(Jr|0)==198&&(h[s+908+(n[976+(Pr<<2)>>2]<<2)>>2]=l),(Nl|0)!=0&&(ff=n[s+32>>2]|0,pf=(Nl|0)==2,!(pf&(ff|0)!=2))?pf&(ff|0)==2&&(l=y(Hs+Pn),l=y(Nn(y(Qg(l,y(MA(s,lr,y(Hs+ws),Lc)))),Hs)),Jr=204):(l=y(Ei(s,lr,y(Hs+ws),Lc,B)),Jr=204),(Jr|0)==204&&(h[s+908+(n[976+(lr<<2)>>2]<<2)>>2]=l),k){if((n[Af>>2]|0)==2){j=976+(lr<<2)|0,se=1040+(lr<<2)|0,O=0;do We=Ts(s,O)|0,n[We+24>>2]|0||(hf=n[j>>2]|0,Wt=y(h[s+908+(hf<<2)>>2]),ii=We+400+(n[se>>2]<<2)|0,Wt=y(Wt-y(h[ii>>2])),h[ii>>2]=y(Wt-y(h[We+908+(hf<<2)>>2]))),O=O+1|0;while((O|0)!=(qs|0))}if(f|0){O=jn?Tl:d;do Um(s,f,vr,O,mo,Bs,M),f=n[f+960>>2]|0;while((f|0)!=0)}if(O=(Pr|2|0)==3,j=(lr|2|0)==3,O|j){f=0;do se=n[(n[Co>>2]|0)+(f<<2)>>2]|0,(n[se+36>>2]|0)!=1&&(O&&Cp(s,se,Pr),j&&Cp(s,se,lr)),f=f+1|0;while((f|0)!=(qs|0))}}}while(0);C=Ll}function pa(s,l){s=s|0,l=y(l);var c=0;na(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function Pc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=$e,m=$e,B=0,Q=0,k=0;n[2278]=(n[2278]|0)+1,Sl(s),ts(s,2,l)|0?(d=y(Hr(n[s+992>>2]|0,l)),k=1,d=y(d+y(rn(s,2,l)))):(d=y(Hr(s+380|0,l)),d>=y(0)?k=2:(k=((Ot(l)|0)^1)&1,d=l)),ts(s,0,c)|0?(m=y(Hr(n[s+996>>2]|0,c)),Q=1,m=y(m+y(rn(s,0,l)))):(m=y(Hr(s+388|0,c)),m>=y(0)?Q=2:(Q=((Ot(c)|0)^1)&1,m=c)),B=s+976|0,fa(s,d,m,f,k,Q,l,c,1,3189,n[B>>2]|0)|0&&(mp(s,n[s+496>>2]|0,l,c,l),xc(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&Rm(s,7)}function Sl(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;Q=C,C=C+32|0,B=Q+24|0,m=Q+16|0,f=Q+8|0,d=Q,c=0;do l=s+380+(c<<3)|0,(n[s+380+(c<<3)+4>>2]|0)!=0&&(k=l,M=n[k+4>>2]|0,O=f,n[O>>2]=n[k>>2],n[O+4>>2]=M,O=s+364+(c<<3)|0,M=n[O+4>>2]|0,k=d,n[k>>2]=n[O>>2],n[k+4>>2]=M,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],Cs(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);C=Q}function ts(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])<y(0)?s=0:f=5;break}case 2:{y(h[s>>2])<y(0)?s=0:s=(Ot(c)|0)^1;break}default:f=5}return(f|0)==5&&(s=1),s|0}function Hr(s,l){switch(s=s|0,l=y(l),n[s+4>>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(he)}return y(l)}function mp(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=$e;l=n[s+944>>2]|0?l:1,m=ur(n[s+4>>2]|0,l)|0,l=fI(m,l)|0,c=y(_m(s,m,c)),f=y(_m(s,l,f)),B=y(c+y(K(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(te(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(K(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(te(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function xc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=$e,Q=$e,k=0,M=0,O=$e,j=0,se=$e,We=$e,Le=$e,Re=$e;if(l!=y(0)&&(d=s+400|0,Re=y(h[d>>2]),m=s+404|0,Le=y(h[m>>2]),j=s+416|0,We=y(h[j>>2]),M=s+420|0,B=y(h[M>>2]),se=y(Re+c),O=y(Le+f),f=y(se+We),Q=y(O+B),k=(n[s+988>>2]|0)==1,h[d>>2]=y(_o(Re,l,0,k)),h[m>>2]=y(_o(Le,l,0,k)),c=y(IR(y(We*l),y(1))),Ci(c,y(0))|0?m=0:m=(Ci(c,y(1))|0)^1,c=y(IR(y(B*l),y(1))),Ci(c,y(0))|0?d=0:d=(Ci(c,y(1))|0)^1,Re=y(_o(f,l,k&m,k&(m^1))),h[j>>2]=y(Re-y(_o(se,l,0,k))),Re=y(_o(Q,l,k&d,k&(d^1))),h[M>>2]=y(Re-y(_o(O,l,0,k))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do xc(Ts(s,d)|0,l,se,O),d=d+1|0;while((d|0)!=(m|0))}}function AI(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=e7(n[489]|0,f,d)|0;break}default:s=m3e(f,d)|0}return s|0}function gg(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=C,C=C+16|0,m=d,n[m>>2]=f,dg(s,0,l,c,m),C=d}function dg(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,I7[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Rt();else return}function Ka(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function Nm(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(mg(s,f),kt(s,n[l>>2]|0,n[c>>2]|0,f))}function mg(s,l){s=s|0,l=l|0;var c=0;if((N(s)|0)>>>0<l>>>0&&Vr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function kt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Er(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function N(s){return s=s|0,1073741823}function K(s,l,c){return s=s|0,l=l|0,c=y(c),Ae(l)|0&&(n[s+96>>2]|0)!=0?s=s+92|0:s=Sn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function te(s,l,c){return s=s|0,l=l|0,c=y(c),Ae(l)|0&&(n[s+104>>2]|0)!=0?s=s+100|0:s=Sn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function Ae(s){return s=s|0,(s|1|0)==3|0}function ze(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Hr(s,l)),y(l)}function gt(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,((s|0)==0?(l|0)>1?l:1:s)|0}function ur(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(0);return s|0}function gr(s,l){s=s|0,l=l|0;var c=$e;return Ae(l)|0&&(n[s+312>>2]|0)!=0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(Nn(y(h[(Sn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function hn(s,l){s=s|0,l=l|0;var c=$e;return Ae(l)|0&&(n[s+320>>2]|0)!=0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(Nn(y(h[(Sn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function ri(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return Ae(l)|0&&(n[s+240>>2]|0)!=0&&(f=y(Hr(s+236|0,c)),f>=y(0))||(f=y(Nn(y(Hr(Sn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Ni(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return Ae(l)|0&&(n[s+248>>2]|0)!=0&&(f=y(Hr(s+244|0,c)),f>=y(0))||(f=y(Nn(y(Hr(Sn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function yg(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=$e,k=$e,M=$e,O=$e,j=$e,se=$e,We=0,Le=0,Re=0;Re=C,C=C+16|0,We=Re,Le=s+964|0,Yn(s,(n[Le>>2]|0)!=0,3519),Q=y(gn(s,2,l)),k=y(gn(s,0,l)),M=y(rn(s,2,l)),O=y(rn(s,0,l)),Ot(l)|0?j=l:j=y(Nn(y(0),y(y(l-M)-Q))),Ot(c)|0?se=c:se=y(Nn(y(0),y(y(c-O)-k))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Ei(s,2,y(l-M),m,m)),l=y(Ei(s,0,y(c-O),B,m))):(w7[n[Le>>2]&1](We,s,j,f,se,d),j=y(Q+y(h[We>>2])),se=y(l-M),h[s+908>>2]=y(Ei(s,2,(f|2|0)==2?j:se,m,m)),se=y(k+y(h[We+4>>2])),l=y(c-O),l=y(Ei(s,0,(d|2|0)==2?se:l,B,m))),h[s+912>>2]=l,C=Re}function Qv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=$e,k=$e,M=$e,O=$e;M=y(gn(s,2,m)),Q=y(gn(s,0,m)),O=y(rn(s,2,m)),k=y(rn(s,0,m)),l=y(l-O),h[s+908>>2]=y(Ei(s,2,(f|2|0)==2?M:l,m,m)),c=y(c-k),h[s+912>>2]=y(Ei(s,0,(d|2|0)==2?Q:c,B,m))}function kv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=0,k=$e,M=$e;return Q=(f|0)==2,!(l<=y(0)&Q)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(k=y(rn(s,0,m)),M=y(rn(s,2,m)),Q=l<y(0)&Q|(Ot(l)|0),l=y(l-M),h[s+908>>2]=y(Ei(s,2,Q?y(0):l,m,m)),l=y(c-k),Q=c<y(0)&(d|0)==2|(Ot(c)|0),h[s+912>>2]=y(Ei(s,0,Q?y(0):l,B,m)),s=1),s|0}function fI(s,l){return s=s|0,l=l|0,UA(s)|0?s=ur(2,l)|0:s=0,s|0}function yp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(ri(s,l,c)),y(c+y(gr(s,l)))}function pI(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(Ni(s,l,c)),y(c+y(hn(s,l)))}function gn(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(yp(s,l,c)),y(f+y(pI(s,l,c)))}function Lm(s){return s=s|0,n[s+24>>2]|0?s=0:y(rs(s))!=y(0)?s=1:s=y(Ms(s))!=y(0),s|0}function rs(s){s=s|0;var l=$e;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),Ot(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((Ot(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function Ms(s){s=s|0;var l=$e,c=0,f=$e;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),Ot(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,c<<24>>24==0&&(f=y(h[s+40>>2]),f<y(0)&((Ot(f)|0)^1))){l=y(-f);break}l=c<<24>>24?y(1):y(0)}}else l=y(0);while(0);return y(l)}function Pu(s){s=s|0;var l=0,c=0;if($m(s+400|0,0,540)|0,o[s+985>>0]=1,ee(s),c=Zi(s)|0,c|0){l=s+948|0,s=0;do Pu(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function Om(s,l,c,f,d,m,B,Q,k,M){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),Q=Q|0,k=k|0,M=M|0;var O=0,j=$e,se=0,We=0,Le=$e,Re=$e,et=0,Ze=$e,at=0,He=$e,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0,Bn=0,po=0;Bn=C,C=C+16|0,Rr=Bn+12|0,ir=Bn+8|0,Jt=Bn+4|0,Ir=Bn,rr=ur(n[s+4>>2]|0,k)|0,Ge=Ae(rr)|0,j=y(Hr(hI(l)|0,Ge?m:B)),Tt=ts(l,2,m)|0,Qr=ts(l,0,B)|0;do if(!(Ot(j)|0)&&!(Ot(Ge?c:d)|0)){if(O=l+504|0,!(Ot(y(h[O>>2]))|0)&&(!(gI(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[O>>2]=y(Nn(j,y(gn(l,rr,m))))}else se=7;while(0);do if((se|0)==7){if(at=Ge^1,!(at|Tt^1)){B=y(Hr(n[l+992>>2]|0,m)),h[l+504>>2]=y(Nn(B,y(gn(l,2,m))));break}if(!(Ge|Qr^1)){B=y(Hr(n[l+996>>2]|0,B)),h[l+504>>2]=y(Nn(B,y(gn(l,0,m))));break}h[Rr>>2]=y(he),h[ir>>2]=y(he),n[Jt>>2]=0,n[Ir>>2]=0,Ze=y(rn(l,2,m)),He=y(rn(l,0,m)),Tt?(Le=y(Ze+y(Hr(n[l+992>>2]|0,m))),h[Rr>>2]=Le,n[Jt>>2]=1,We=1):(We=0,Le=y(he)),Qr?(j=y(He+y(Hr(n[l+996>>2]|0,B))),h[ir>>2]=j,n[Ir>>2]=1,O=1):(O=0,j=y(he)),se=n[s+32>>2]|0,Ge&(se|0)==2?se=2:Ot(Le)|0&&!(Ot(c)|0)&&(h[Rr>>2]=c,n[Jt>>2]=2,We=2,Le=c),!((se|0)==2&at)&&Ot(j)|0&&!(Ot(d)|0)&&(h[ir>>2]=d,n[Ir>>2]=2,O=2,j=d),Re=y(h[l+396>>2]),et=Ot(Re)|0;do if(et)se=We;else{if((We|0)==1&at){h[ir>>2]=y(y(Le-Ze)/Re),n[Ir>>2]=1,O=1,se=1;break}Ge&(O|0)==1?(h[Rr>>2]=y(Re*y(j-He)),n[Jt>>2]=1,O=1,se=1):se=We}while(0);po=Ot(c)|0,We=(ha(s,l)|0)!=4,!(Ge|Tt|((f|0)!=1|po)|(We|(se|0)==1))&&(h[Rr>>2]=c,n[Jt>>2]=1,!et)&&(h[ir>>2]=y(y(c-Ze)/Re),n[Ir>>2]=1,O=1),!(Qr|at|((Q|0)!=1|(Ot(d)|0))|(We|(O|0)==1))&&(h[ir>>2]=d,n[Ir>>2]=1,!et)&&(h[Rr>>2]=y(Re*y(d-He)),n[Jt>>2]=1),pr(l,2,m,m,Jt,Rr),pr(l,0,B,m,Ir,ir),c=y(h[Rr>>2]),d=y(h[ir>>2]),fa(l,c,d,k,n[Jt>>2]|0,n[Ir>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(rr<<2)>>2]<<2)>>2]),h[l+504>>2]=y(Nn(B,y(gn(l,rr,m))))}while(0);n[l+500>>2]=n[2278],C=Bn}function Ei(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(MA(s,l,c,f)),y(Nn(f,y(gn(s,l,d))))}function ha(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[((n[l>>2]|0)==0?s+16|0:l)>>2]|0,(l|0)==5&&UA(n[s+4>>2]|0)|0&&(l=1),l|0}function Pl(s,l){return s=s|0,l=l|0,Ae(l)|0&&(n[s+96>>2]|0)!=0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function bc(s,l){return s=s|0,l=l|0,Ae(l)|0&&(n[s+104>>2]|0)!=0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function pr(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Hr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(rn(s,l,f))),n[d>>2]|0){case 2:case 1:{d=Ot(c)|0,f=y(h[m>>2]),h[m>>2]=d|f<c?f:c;break}case 0:{Ot(c)|0||(n[d>>2]=2,h[m>>2]=c);break}default:}}function Ai(s,l){return s=s|0,l=l|0,s=s+132|0,Ae(l)|0&&(n[(Sn(s,4,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Sn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Fr(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,Ae(l)|0&&(f=Sn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Sn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Hr(f,c))),y(c)}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(K(s,l,c))),y(f+y(te(s,l,c)))}function Gi(s){s=s|0;var l=0,c=0,f=0;e:do if(UA(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=Zi(s)|0,!c)l=0;else for(l=0;;){if(f=Ts(s,l)|0,(n[f+24>>2]|0)==0&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(0);return l|0}function Mm(s,l){s=s|0,l=l|0;var c=$e;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((Ot(c)|0)^1)|0}function Va(s){s=s|0;var l=$e,c=0,f=0,d=0,m=0,B=0,Q=0,k=$e;if(c=n[s+968>>2]|0,c)k=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(m7[c&0](s,k,l)),Yn(s,(Ot(l)|0)^1,3573);else{m=Zi(s)|0;do if(m|0){for(c=0,d=0;;){if(f=Ts(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(Q=(ha(s,f)|0)==5,Q){c=f;break}else c=(c|0)==0?f:c;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(Va(c)),y(l+y(h[c+404>>2]))}while(0);l=y(h[s+912>>2])}return y(l)}function MA(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=$e,m=0;return UA(l)|0?(l=1,m=3):Ae(l)|0?(l=0,m=3):(f=y(he),d=y(he)),(m|0)==3&&(d=y(Hr(s+364+(l<<3)|0,f)),f=y(Hr(s+380+(l<<3)|0,f))),m=f<c&(f>=y(0)&((Ot(f)|0)^1)),c=m?f:c,m=d>=y(0)&((Ot(d)|0)^1)&c<d,y(m?d:c)}function Um(s,l,c,f,d,m,B){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,B=B|0;var Q=$e,k=$e,M=0,O=0,j=$e,se=$e,We=$e,Le=0,Re=0,et=0,Ze=0,at=$e,He=0;et=ur(n[s+4>>2]|0,m)|0,Le=fI(et,m)|0,Re=Ae(et)|0,j=y(rn(l,2,c)),se=y(rn(l,0,c)),ts(l,2,c)|0?Q=y(j+y(Hr(n[l+992>>2]|0,c))):Ai(l,2)|0&&nr(l,2)|0?(Q=y(h[s+908>>2]),k=y(gr(s,2)),k=y(Q-y(k+y(hn(s,2)))),Q=y(Fr(l,2,c)),Q=y(Ei(l,2,y(k-y(Q+y(xu(l,2,c)))),c,c))):Q=y(he),ts(l,0,d)|0?k=y(se+y(Hr(n[l+996>>2]|0,d))):Ai(l,0)|0&&nr(l,0)|0?(k=y(h[s+912>>2]),at=y(gr(s,0)),at=y(k-y(at+y(hn(s,0)))),k=y(Fr(l,0,d)),k=y(Ei(l,0,y(at-y(k+y(xu(l,0,d)))),d,c))):k=y(he),M=Ot(Q)|0,O=Ot(k)|0;do if(M^O&&(We=y(h[l+396>>2]),!(Ot(We)|0)))if(M){Q=y(j+y(y(k-se)*We));break}else{at=y(se+y(y(Q-j)/We)),k=O?at:k;break}while(0);O=Ot(Q)|0,M=Ot(k)|0,O|M&&(He=(O^1)&1,f=c>y(0)&((f|0)!=0&O),Q=Re?Q:f?c:Q,fa(l,Q,k,m,Re?He:f?2:He,O&(M^1)&1,Q,k,0,3623,B)|0,Q=y(h[l+908>>2]),Q=y(Q+y(rn(l,2,c))),k=y(h[l+912>>2]),k=y(k+y(rn(l,0,c)))),fa(l,Q,k,m,1,1,Q,k,1,3635,B)|0,nr(l,et)|0&&!(Ai(l,et)|0)?(He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),at=y(at-y(hn(s,et))),at=y(at-y(te(l,et,c))),at=y(at-y(xu(l,et,Re?c:d))),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at):Ze=21;do if((Ze|0)==21){if(!(Ai(l,et)|0)&&(n[s+8>>2]|0)==1){He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(y(at-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at;break}!(Ai(l,et)|0)&&(n[s+8>>2]|0)==2&&(He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at)}while(0);nr(l,Le)|0&&!(Ai(l,Le)|0)?(He=n[976+(Le<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),at=y(at-y(hn(s,Le))),at=y(at-y(te(l,Le,c))),at=y(at-y(xu(l,Le,Re?d:c))),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=at):Ze=30;do if((Ze|0)==30&&!(Ai(l,Le)|0)){if((ha(s,l)|0)==2){He=n[976+(Le<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(y(at-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=at;break}He=(ha(s,l)|0)==3,He^(n[s+28>>2]|0)==2&&(He=n[976+(Le<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=at)}while(0)}function Cp(s,l,c){s=s|0,l=l|0,c=c|0;var f=$e,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function UA(s){return s=s|0,(s|1|0)==1|0}function hI(s){s=s|0;var l=$e;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((Ot(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function gI(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function nr(s,l){return s=s|0,l=l|0,s=s+132|0,Ae(l)|0&&(n[(Sn(s,5,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Sn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function xu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,Ae(l)|0&&(f=Sn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Sn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Hr(f,c))),y(c)}function _m(s,l,c){return s=s|0,l=l|0,c=y(c),Ai(s,l)|0?c=y(Fr(s,l,c)):c=y(-y(xu(s,l,c))),y(c)}function bu(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function Ep(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function Cg(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _A(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function HA(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;if(B=s+4|0,Q=n[B>>2]|0,d=Q-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0<c>>>0){f=Q;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0<c>>>0)}m|0&&bI(Q+(0-m<<2)|0,l|0,d|0)|0}function Eg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0;return Q=l+4|0,k=n[Q>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=k+(0-(m>>2)<<2)|0,n[Q>>2]=f,(m|0)>0&&Er(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(Er(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[Q>>2],n[Q>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[Q>>2],k|0}function dI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function Hm(){Cc()}function ga(){var s=0;return s=Gt(4)|0,qA(s),s|0}function qA(s){s=s|0,n[s>>2]=$i()|0}function Qc(s){s=s|0,s|0&&(Ig(s),pt(s))}function Ig(s){s=s|0,mi(n[s>>2]|0)}function qm(s,l,c){s=s|0,l=l|0,c=c|0,Ka(n[s>>2]|0,l,c)}function uo(s,l){s=s|0,l=y(l),pa(n[s>>2]|0,l)}function Fv(s,l){return s=s|0,l=l|0,gI(n[s>>2]|0,l)|0}function mI(){var s=0;return s=Gt(8)|0,Rv(s,0),s|0}function Rv(s,l){s=s|0,l=l|0,l?l=di(n[l>>2]|0)|0:l=oo()|0,n[s>>2]=l,n[s+4>>2]=0,_r(l,s)}function iF(s){s=s|0;var l=0;return l=Gt(8)|0,Rv(l,s),l|0}function Tv(s){s=s|0,s|0&&(Qu(s),pt(s))}function Qu(s){s=s|0;var l=0;sa(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(jA(s),pt(s))}function jA(s){s=s|0,GA(s)}function GA(s){s=s|0,s=n[s>>2]|0,s|0&&bA(s|0)}function yI(s){return s=s|0,ei(s)|0}function jm(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(jA(l),pt(l)),ao(n[s>>2]|0)}function sF(s,l){s=s|0,l=l|0,tr(n[s>>2]|0,n[l>>2]|0)}function oF(s,l){s=s|0,l=l|0,ca(n[s>>2]|0,l)}function Nv(s,l,c){s=s|0,l=l|0,c=+c,wu(n[s>>2]|0,l,y(c))}function Lv(s,l,c){s=s|0,l=l|0,c=+c,ms(n[s>>2]|0,l,y(c))}function CI(s,l){s=s|0,l=l|0,yi(n[s>>2]|0,l)}function ku(s,l){s=s|0,l=l|0,ja(n[s>>2]|0,l)}function aF(s,l){s=s|0,l=l|0,FA(n[s>>2]|0,l)}function lF(s,l){s=s|0,l=l|0,Ti(n[s>>2]|0,l)}function Ip(s,l){s=s|0,l=l|0,Ic(n[s>>2]|0,l)}function cF(s,l){s=s|0,l=l|0,qa(n[s>>2]|0,l)}function Ov(s,l,c){s=s|0,l=l|0,c=+c,Bc(n[s>>2]|0,l,y(c))}function WA(s,l,c){s=s|0,l=l|0,c=+c,G(n[s>>2]|0,l,y(c))}function uF(s,l){s=s|0,l=l|0,vl(n[s>>2]|0,l)}function AF(s,l){s=s|0,l=l|0,ng(n[s>>2]|0,l)}function Mv(s,l){s=s|0,l=l|0,up(n[s>>2]|0,l)}function EI(s,l){s=s|0,l=+l,RA(n[s>>2]|0,y(l))}function II(s,l){s=s|0,l=+l,Ga(n[s>>2]|0,y(l))}function fF(s,l){s=s|0,l=+l,ji(n[s>>2]|0,y(l))}function pF(s,l){s=s|0,l=+l,Os(n[s>>2]|0,y(l))}function xl(s,l){s=s|0,l=+l,Iu(n[s>>2]|0,y(l))}function wI(s,l){s=s|0,l=+l,cI(n[s>>2]|0,y(l))}function hF(s,l){s=s|0,l=+l,TA(n[s>>2]|0,y(l))}function YA(s){s=s|0,Ap(n[s>>2]|0)}function Gm(s,l){s=s|0,l=+l,ys(n[s>>2]|0,y(l))}function Fu(s,l){s=s|0,l=+l,og(n[s>>2]|0,y(l))}function BI(s){s=s|0,ag(n[s>>2]|0)}function vI(s,l){s=s|0,l=+l,fp(n[s>>2]|0,y(l))}function gF(s,l){s=s|0,l=+l,Dc(n[s>>2]|0,y(l))}function Uv(s,l){s=s|0,l=+l,Qm(n[s>>2]|0,y(l))}function KA(s,l){s=s|0,l=+l,cg(n[s>>2]|0,y(l))}function _v(s,l){s=s|0,l=+l,vu(n[s>>2]|0,y(l))}function Wm(s,l){s=s|0,l=+l,km(n[s>>2]|0,y(l))}function Hv(s,l){s=s|0,l=+l,Du(n[s>>2]|0,y(l))}function qv(s,l){s=s|0,l=+l,uI(n[s>>2]|0,y(l))}function Ym(s,l){s=s|0,l=+l,Aa(n[s>>2]|0,y(l))}function jv(s,l,c){s=s|0,l=l|0,c=+c,Bu(n[s>>2]|0,l,y(c))}function dF(s,l,c){s=s|0,l=l|0,c=+c,Si(n[s>>2]|0,l,y(c))}function S(s,l,c){s=s|0,l=l|0,c=+c,vc(n[s>>2]|0,l,y(c))}function D(s){return s=s|0,rg(n[s>>2]|0)|0}function T(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,wc(d,n[l>>2]|0,c),q(s,d),C=f}function q(s,l){s=s|0,l=l|0,W(s,n[l+4>>2]|0,+y(h[l>>2]))}function W(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,E[s+8>>3]=c}function ce(s){return s=s|0,la(n[s>>2]|0)|0}function Se(s){return s=s|0,lo(n[s>>2]|0)|0}function It(s){return s=s|0,Ec(n[s>>2]|0)|0}function Ct(s){return s=s|0,Kn(n[s>>2]|0)|0}function xt(s){return s=s|0,bm(n[s>>2]|0)|0}function Nr(s){return s=s|0,aa(n[s>>2]|0)|0}function is(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Dt(d,n[l>>2]|0,c),q(s,d),C=f}function fi(s){return s=s|0,Vn(n[s>>2]|0)|0}function Ao(s){return s=s|0,ig(n[s>>2]|0)|0}function VA(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,ua(f,n[l>>2]|0),q(s,f),C=c}function Ho(s){return s=s|0,+ +y(Zr(n[s>>2]|0))}function rt(s){return s=s|0,+ +y(Tn(n[s>>2]|0))}function Je(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,yr(f,n[l>>2]|0),q(s,f),C=c}function ft(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,lg(f,n[l>>2]|0),q(s,f),C=c}function jt(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,mt(f,n[l>>2]|0),q(s,f),C=c}function Cr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,ug(f,n[l>>2]|0),q(s,f),C=c}function In(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Ag(f,n[l>>2]|0),q(s,f),C=c}function Sr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Fm(f,n[l>>2]|0),q(s,f),C=c}function wn(s){return s=s|0,+ +y(Sc(n[s>>2]|0))}function ni(s,l){return s=s|0,l=l|0,+ +y(sg(n[s>>2]|0,l))}function Xr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,lt(d,n[l>>2]|0,c),q(s,d),C=f}function fo(s,l,c){s=s|0,l=l|0,c=c|0,oa(n[s>>2]|0,n[l>>2]|0,c)}function mF(s,l){s=s|0,l=l|0,Ls(n[s>>2]|0,n[l>>2]|0)}function Ive(s){return s=s|0,Zi(n[s>>2]|0)|0}function wve(s){return s=s|0,s=xe(n[s>>2]|0)|0,s?s=yI(s)|0:s=0,s|0}function Bve(s,l){return s=s|0,l=l|0,s=Ts(n[s>>2]|0,l)|0,s?s=yI(s)|0:s=0,s|0}function vve(s,l){s=s|0,l=l|0;var c=0,f=0;f=Gt(4)|0,YG(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(jA(l),pt(l)),Ha(n[s>>2]|0,1)}function YG(s,l){s=s|0,l=l|0,Lve(s,l)}function Dve(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,Q=0;B=C,C=C+16|0,Q=B,Sve(Q,ei(l)|0,+c,f,+d,m),h[s>>2]=y(+E[Q>>3]),h[s+4>>2]=y(+E[Q+8>>3]),C=B}function Sve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,Q=0,k=0,M=0,O=0;B=C,C=C+32|0,O=B+8|0,M=B+20|0,k=B,Q=B+16|0,E[O>>3]=c,n[M>>2]=f,E[k>>3]=d,n[Q>>2]=m,Pve(s,n[l+4>>2]|0,O,M,k,Q),C=B}function Pve(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0;B=C,C=C+16|0,Q=B,za(Q),l=da(l)|0,xve(s,l,+E[c>>3],n[f>>2]|0,+E[d>>3],n[m>>2]|0),Xa(Q),C=B}function da(s){return s=s|0,n[s>>2]|0}function xve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=bl(bve()|0)|0,c=+JA(c),f=yF(f)|0,d=+JA(d),Qve(s,ui(0,B|0,l|0,+c,f|0,+d,yF(m)|0)|0)}function bve(){var s=0;return o[7608]|0||(Tve(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function bl(s){return s=s|0,n[s+8>>2]|0}function JA(s){return s=+s,+ +CF(s)}function yF(s){return s=s|0,VG(s)|0}function Qve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=l,f&1?(kve(c,0),$n(f|0,c|0)|0,Fve(s,c),Rve(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),C=d}function kve(s,l){s=s|0,l=l|0,KG(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function Fve(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function Rve(s){s=s|0,o[s+24>>0]=0}function KG(s,l){s=s|0,l=l|0,n[s>>2]=l}function VG(s){return s=s|0,s|0}function CF(s){return s=+s,+s}function Tve(s){s=s|0,Ql(s,Nve()|0,4)}function Nve(){return 1064}function Ql(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=cp(l|0,c+1|0)|0}function Lve(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,El(l|0)}function Ove(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(jA(l),pt(l)),Ha(n[s>>2]|0,0)}function Mve(s){s=s|0,Ve(n[s>>2]|0)}function Uve(s){return s=s|0,vt(n[s>>2]|0)|0}function _ve(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,Pc(n[s>>2]|0,y(l),y(c),f)}function Hve(s){return s=s|0,+ +y(Dl(n[s>>2]|0))}function qve(s){return s=s|0,+ +y(fg(n[s>>2]|0))}function jve(s){return s=s|0,+ +y(Su(n[s>>2]|0))}function Gve(s){return s=s|0,+ +y(NA(n[s>>2]|0))}function Wve(s){return s=s|0,+ +y(pp(n[s>>2]|0))}function Yve(s){return s=s|0,+ +y(Wa(n[s>>2]|0))}function Kve(s,l){s=s|0,l=l|0,E[s>>3]=+y(Dl(n[l>>2]|0)),E[s+8>>3]=+y(fg(n[l>>2]|0)),E[s+16>>3]=+y(Su(n[l>>2]|0)),E[s+24>>3]=+y(NA(n[l>>2]|0)),E[s+32>>3]=+y(pp(n[l>>2]|0)),E[s+40>>3]=+y(Wa(n[l>>2]|0))}function Vve(s,l){return s=s|0,l=l|0,+ +y(pg(n[s>>2]|0,l))}function Jve(s,l){return s=s|0,l=l|0,+ +y(hp(n[s>>2]|0,l))}function zve(s,l){return s=s|0,l=l|0,+ +y(Uo(n[s>>2]|0,l))}function Xve(){return qn()|0}function Zve(){$ve(),eDe(),tDe(),rDe(),nDe(),iDe()}function $ve(){nLe(11713,4938,1)}function eDe(){wNe(10448)}function tDe(){nNe(10408)}function rDe(){STe(10324)}function nDe(){TFe(10096)}function iDe(){sDe(9132)}function sDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0,Bn=0,po=0,ho=0,go=0,ya=0,Qp=0,kp=0,kl=0,Fp=0,Lu=0,Ou=0,Rp=0,Tp=0,Np=0,Jr=0,Fl=0,Lp=0,Fc=0,Op=0,Mp=0,Mu=0,Uu=0,Rc=0,Us=0,$a=0,qo=0,Rl=0,nf=0,sf=0,_u=0,of=0,af=0,_s=0,ws=0,Tl=0,Pn=0,lf=0,mo=0,Tc=0,yo=0,Nc=0,cf=0,uf=0,Lc=0,Hs=0,Nl=0,Af=0,ff=0,pf=0,vr=0,jn=0,Bs=0,Co=0,qs=0,Pr=0,lr=0,Ll=0;l=C,C=C+672|0,c=l+656|0,Ll=l+648|0,lr=l+640|0,Pr=l+632|0,qs=l+624|0,Co=l+616|0,Bs=l+608|0,jn=l+600|0,vr=l+592|0,pf=l+584|0,ff=l+576|0,Af=l+568|0,Nl=l+560|0,Hs=l+552|0,Lc=l+544|0,uf=l+536|0,cf=l+528|0,Nc=l+520|0,yo=l+512|0,Tc=l+504|0,mo=l+496|0,lf=l+488|0,Pn=l+480|0,Tl=l+472|0,ws=l+464|0,_s=l+456|0,af=l+448|0,of=l+440|0,_u=l+432|0,sf=l+424|0,nf=l+416|0,Rl=l+408|0,qo=l+400|0,$a=l+392|0,Us=l+384|0,Rc=l+376|0,Uu=l+368|0,Mu=l+360|0,Mp=l+352|0,Op=l+344|0,Fc=l+336|0,Lp=l+328|0,Fl=l+320|0,Jr=l+312|0,Np=l+304|0,Tp=l+296|0,Rp=l+288|0,Ou=l+280|0,Lu=l+272|0,Fp=l+264|0,kl=l+256|0,kp=l+248|0,Qp=l+240|0,ya=l+232|0,go=l+224|0,ho=l+216|0,po=l+208|0,Bn=l+200|0,rr=l+192|0,Qr=l+184|0,Ir=l+176|0,Jt=l+168|0,ir=l+160|0,Rr=l+152|0,Tt=l+144|0,Ge=l+136|0,He=l+128|0,at=l+120|0,Ze=l+112|0,et=l+104|0,Re=l+96|0,Le=l+88|0,We=l+80|0,se=l+72|0,j=l+64|0,O=l+56|0,M=l+48|0,k=l+40|0,Q=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,oDe(s,3646),aDe(s,3651,2)|0,lDe(s,3665,2)|0,cDe(s,3682,18)|0,n[Ll>>2]=19,n[Ll+4>>2]=0,n[c>>2]=n[Ll>>2],n[c+4>>2]=n[Ll+4>>2],DI(s,3690,c)|0,n[lr>>2]=1,n[lr+4>>2]=0,n[c>>2]=n[lr>>2],n[c+4>>2]=n[lr+4>>2],uDe(s,3696,c)|0,n[Pr>>2]=2,n[Pr+4>>2]=0,n[c>>2]=n[Pr>>2],n[c+4>>2]=n[Pr+4>>2],Ru(s,3706,c)|0,n[qs>>2]=1,n[qs+4>>2]=0,n[c>>2]=n[qs>>2],n[c+4>>2]=n[qs+4>>2],wg(s,3722,c)|0,n[Co>>2]=2,n[Co+4>>2]=0,n[c>>2]=n[Co>>2],n[c+4>>2]=n[Co+4>>2],wg(s,3734,c)|0,n[Bs>>2]=3,n[Bs+4>>2]=0,n[c>>2]=n[Bs>>2],n[c+4>>2]=n[Bs+4>>2],Ru(s,3753,c)|0,n[jn>>2]=4,n[jn+4>>2]=0,n[c>>2]=n[jn>>2],n[c+4>>2]=n[jn+4>>2],Ru(s,3769,c)|0,n[vr>>2]=5,n[vr+4>>2]=0,n[c>>2]=n[vr>>2],n[c+4>>2]=n[vr+4>>2],Ru(s,3783,c)|0,n[pf>>2]=6,n[pf+4>>2]=0,n[c>>2]=n[pf>>2],n[c+4>>2]=n[pf+4>>2],Ru(s,3796,c)|0,n[ff>>2]=7,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],Ru(s,3813,c)|0,n[Af>>2]=8,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],Ru(s,3825,c)|0,n[Nl>>2]=3,n[Nl+4>>2]=0,n[c>>2]=n[Nl>>2],n[c+4>>2]=n[Nl+4>>2],wg(s,3843,c)|0,n[Hs>>2]=4,n[Hs+4>>2]=0,n[c>>2]=n[Hs>>2],n[c+4>>2]=n[Hs+4>>2],wg(s,3853,c)|0,n[Lc>>2]=9,n[Lc+4>>2]=0,n[c>>2]=n[Lc>>2],n[c+4>>2]=n[Lc+4>>2],Ru(s,3870,c)|0,n[uf>>2]=10,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],Ru(s,3884,c)|0,n[cf>>2]=11,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],Ru(s,3896,c)|0,n[Nc>>2]=1,n[Nc+4>>2]=0,n[c>>2]=n[Nc>>2],n[c+4>>2]=n[Nc+4>>2],Es(s,3907,c)|0,n[yo>>2]=2,n[yo+4>>2]=0,n[c>>2]=n[yo>>2],n[c+4>>2]=n[yo+4>>2],Es(s,3915,c)|0,n[Tc>>2]=3,n[Tc+4>>2]=0,n[c>>2]=n[Tc>>2],n[c+4>>2]=n[Tc+4>>2],Es(s,3928,c)|0,n[mo>>2]=4,n[mo+4>>2]=0,n[c>>2]=n[mo>>2],n[c+4>>2]=n[mo+4>>2],Es(s,3948,c)|0,n[lf>>2]=5,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Es(s,3960,c)|0,n[Pn>>2]=6,n[Pn+4>>2]=0,n[c>>2]=n[Pn>>2],n[c+4>>2]=n[Pn+4>>2],Es(s,3974,c)|0,n[Tl>>2]=7,n[Tl+4>>2]=0,n[c>>2]=n[Tl>>2],n[c+4>>2]=n[Tl+4>>2],Es(s,3983,c)|0,n[ws>>2]=20,n[ws+4>>2]=0,n[c>>2]=n[ws>>2],n[c+4>>2]=n[ws+4>>2],DI(s,3999,c)|0,n[_s>>2]=8,n[_s+4>>2]=0,n[c>>2]=n[_s>>2],n[c+4>>2]=n[_s+4>>2],Es(s,4012,c)|0,n[af>>2]=9,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],Es(s,4022,c)|0,n[of>>2]=21,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],DI(s,4039,c)|0,n[_u>>2]=10,n[_u+4>>2]=0,n[c>>2]=n[_u>>2],n[c+4>>2]=n[_u+4>>2],Es(s,4053,c)|0,n[sf>>2]=11,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],Es(s,4065,c)|0,n[nf>>2]=12,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],Es(s,4084,c)|0,n[Rl>>2]=13,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],Es(s,4097,c)|0,n[qo>>2]=14,n[qo+4>>2]=0,n[c>>2]=n[qo>>2],n[c+4>>2]=n[qo+4>>2],Es(s,4117,c)|0,n[$a>>2]=15,n[$a+4>>2]=0,n[c>>2]=n[$a>>2],n[c+4>>2]=n[$a+4>>2],Es(s,4129,c)|0,n[Us>>2]=16,n[Us+4>>2]=0,n[c>>2]=n[Us>>2],n[c+4>>2]=n[Us+4>>2],Es(s,4148,c)|0,n[Rc>>2]=17,n[Rc+4>>2]=0,n[c>>2]=n[Rc>>2],n[c+4>>2]=n[Rc+4>>2],Es(s,4161,c)|0,n[Uu>>2]=18,n[Uu+4>>2]=0,n[c>>2]=n[Uu>>2],n[c+4>>2]=n[Uu+4>>2],Es(s,4181,c)|0,n[Mu>>2]=5,n[Mu+4>>2]=0,n[c>>2]=n[Mu>>2],n[c+4>>2]=n[Mu+4>>2],wg(s,4196,c)|0,n[Mp>>2]=6,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],wg(s,4206,c)|0,n[Op>>2]=7,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],wg(s,4217,c)|0,n[Fc>>2]=3,n[Fc+4>>2]=0,n[c>>2]=n[Fc>>2],n[c+4>>2]=n[Fc+4>>2],zA(s,4235,c)|0,n[Lp>>2]=1,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],EF(s,4251,c)|0,n[Fl>>2]=4,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],zA(s,4263,c)|0,n[Jr>>2]=5,n[Jr+4>>2]=0,n[c>>2]=n[Jr>>2],n[c+4>>2]=n[Jr+4>>2],zA(s,4279,c)|0,n[Np>>2]=6,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],zA(s,4293,c)|0,n[Tp>>2]=7,n[Tp+4>>2]=0,n[c>>2]=n[Tp>>2],n[c+4>>2]=n[Tp+4>>2],zA(s,4306,c)|0,n[Rp>>2]=8,n[Rp+4>>2]=0,n[c>>2]=n[Rp>>2],n[c+4>>2]=n[Rp+4>>2],zA(s,4323,c)|0,n[Ou>>2]=9,n[Ou+4>>2]=0,n[c>>2]=n[Ou>>2],n[c+4>>2]=n[Ou+4>>2],zA(s,4335,c)|0,n[Lu>>2]=2,n[Lu+4>>2]=0,n[c>>2]=n[Lu>>2],n[c+4>>2]=n[Lu+4>>2],EF(s,4353,c)|0,n[Fp>>2]=12,n[Fp+4>>2]=0,n[c>>2]=n[Fp>>2],n[c+4>>2]=n[Fp+4>>2],Bg(s,4363,c)|0,n[kl>>2]=1,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],XA(s,4376,c)|0,n[kp>>2]=2,n[kp+4>>2]=0,n[c>>2]=n[kp>>2],n[c+4>>2]=n[kp+4>>2],XA(s,4388,c)|0,n[Qp>>2]=13,n[Qp+4>>2]=0,n[c>>2]=n[Qp>>2],n[c+4>>2]=n[Qp+4>>2],Bg(s,4402,c)|0,n[ya>>2]=14,n[ya+4>>2]=0,n[c>>2]=n[ya>>2],n[c+4>>2]=n[ya+4>>2],Bg(s,4411,c)|0,n[go>>2]=15,n[go+4>>2]=0,n[c>>2]=n[go>>2],n[c+4>>2]=n[go+4>>2],Bg(s,4421,c)|0,n[ho>>2]=16,n[ho+4>>2]=0,n[c>>2]=n[ho>>2],n[c+4>>2]=n[ho+4>>2],Bg(s,4433,c)|0,n[po>>2]=17,n[po+4>>2]=0,n[c>>2]=n[po>>2],n[c+4>>2]=n[po+4>>2],Bg(s,4446,c)|0,n[Bn>>2]=18,n[Bn+4>>2]=0,n[c>>2]=n[Bn>>2],n[c+4>>2]=n[Bn+4>>2],Bg(s,4458,c)|0,n[rr>>2]=3,n[rr+4>>2]=0,n[c>>2]=n[rr>>2],n[c+4>>2]=n[rr+4>>2],XA(s,4471,c)|0,n[Qr>>2]=1,n[Qr+4>>2]=0,n[c>>2]=n[Qr>>2],n[c+4>>2]=n[Qr+4>>2],Gv(s,4486,c)|0,n[Ir>>2]=10,n[Ir+4>>2]=0,n[c>>2]=n[Ir>>2],n[c+4>>2]=n[Ir+4>>2],zA(s,4496,c)|0,n[Jt>>2]=11,n[Jt+4>>2]=0,n[c>>2]=n[Jt>>2],n[c+4>>2]=n[Jt+4>>2],zA(s,4508,c)|0,n[ir>>2]=3,n[ir+4>>2]=0,n[c>>2]=n[ir>>2],n[c+4>>2]=n[ir+4>>2],EF(s,4519,c)|0,n[Rr>>2]=4,n[Rr+4>>2]=0,n[c>>2]=n[Rr>>2],n[c+4>>2]=n[Rr+4>>2],ADe(s,4530,c)|0,n[Tt>>2]=19,n[Tt+4>>2]=0,n[c>>2]=n[Tt>>2],n[c+4>>2]=n[Tt+4>>2],fDe(s,4542,c)|0,n[Ge>>2]=12,n[Ge+4>>2]=0,n[c>>2]=n[Ge>>2],n[c+4>>2]=n[Ge+4>>2],pDe(s,4554,c)|0,n[He>>2]=13,n[He+4>>2]=0,n[c>>2]=n[He>>2],n[c+4>>2]=n[He+4>>2],hDe(s,4568,c)|0,n[at>>2]=2,n[at+4>>2]=0,n[c>>2]=n[at>>2],n[c+4>>2]=n[at+4>>2],gDe(s,4578,c)|0,n[Ze>>2]=20,n[Ze+4>>2]=0,n[c>>2]=n[Ze>>2],n[c+4>>2]=n[Ze+4>>2],dDe(s,4587,c)|0,n[et>>2]=22,n[et+4>>2]=0,n[c>>2]=n[et>>2],n[c+4>>2]=n[et+4>>2],DI(s,4602,c)|0,n[Re>>2]=23,n[Re+4>>2]=0,n[c>>2]=n[Re>>2],n[c+4>>2]=n[Re+4>>2],DI(s,4619,c)|0,n[Le>>2]=14,n[Le+4>>2]=0,n[c>>2]=n[Le>>2],n[c+4>>2]=n[Le+4>>2],mDe(s,4629,c)|0,n[We>>2]=1,n[We+4>>2]=0,n[c>>2]=n[We>>2],n[c+4>>2]=n[We+4>>2],yDe(s,4637,c)|0,n[se>>2]=4,n[se+4>>2]=0,n[c>>2]=n[se>>2],n[c+4>>2]=n[se+4>>2],XA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],XA(s,4669,c)|0,n[O>>2]=6,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],XA(s,4686,c)|0,n[M>>2]=7,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],XA(s,4701,c)|0,n[k>>2]=8,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],XA(s,4719,c)|0,n[Q>>2]=9,n[Q+4>>2]=0,n[c>>2]=n[Q>>2],n[c+4>>2]=n[Q+4>>2],XA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],CDe(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],Gv(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],Gv(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],Gv(s,4808,c)|0,C=l}function oDe(s,l){s=s|0,l=l|0;var c=0;c=DFe()|0,n[s>>2]=c,SFe(c,l),Pp(n[s>>2]|0)}function aDe(s,l,c){return s=s|0,l=l|0,c=c|0,AFe(s,cn(l)|0,c,0),s|0}function lDe(s,l,c){return s=s|0,l=l|0,c=c|0,Jke(s,cn(l)|0,c,0),s|0}function cDe(s,l,c){return s=s|0,l=l|0,c=c|0,Nke(s,cn(l)|0,c,0),s|0}function DI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Cke(s,l,d),C=f,s|0}function uDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eke(s,l,d),C=f,s|0}function Ru(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],MQe(s,l,d),C=f,s|0}function wg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wQe(s,l,d),C=f,s|0}function Es(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],oQe(s,l,d),C=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Gbe(s,l,d),C=f,s|0}function EF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xbe(s,l,d),C=f,s|0}function Bg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ebe(s,l,d),C=f,s|0}function XA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Mxe(s,l,d),C=f,s|0}function Gv(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wxe(s,l,d),C=f,s|0}function ADe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],oxe(s,l,d),C=f,s|0}function fDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],GPe(s,l,d),C=f,s|0}function pDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bPe(s,l,d),C=f,s|0}function hDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hPe(s,l,d),C=f,s|0}function gDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XSe(s,l,d),C=f,s|0}function dDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],TSe(s,l,d),C=f,s|0}function mDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ySe(s,l,d),C=f,s|0}function yDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eSe(s,l,d),C=f,s|0}function CDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EDe(s,l,d),C=f,s|0}function EDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IDe(s,c,d,1),C=f}function cn(s){return s=s|0,s|0}function IDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=IF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=wDe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,BDe(m,f)|0,f),C=d}function IF(){var s=0,l=0;if(o[7616]|0||(XG(9136),Zt(24,9136,_|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(br(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));XG(9136)}return 9136}function wDe(s){return s=s|0,0}function BDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=IF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],zG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(SDe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function un(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0;B=C,C=C+32|0,se=B+24|0,j=B+20|0,k=B+16|0,O=B+12|0,M=B+8|0,Q=B+4|0,We=B,n[j>>2]=l,n[k>>2]=c,n[O>>2]=f,n[M>>2]=d,n[Q>>2]=m,m=s+28|0,n[We>>2]=n[m>>2],n[se>>2]=n[We>>2],vDe(s+24|0,se,j,O,M,k,Q)|0,n[m>>2]=n[n[m>>2]>>2],C=B}function vDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=DDe(l)|0,l=Gt(24)|0,JG(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function DDe(s){return s=s|0,n[s>>2]|0}function JG(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function Ar(s,l){return s=s|0,l=l|0,l|s|0}function zG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function SDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=PDe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xDe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],zG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,bDe(s,Q),QDe(Q),C=M;return}}function PDe(s){return s=s|0,357913941}function xDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function QDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function XG(s){s=s|0,RDe(s)}function kDe(s){s=s|0,FDe(s+24|0)}function br(s){return s=s|0,n[s>>2]|0}function FDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function RDe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,3,l,TDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Gr(){return 9228}function TDe(){return 1140}function NDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=LDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=ODe(l,f)|0,C=c,l|0}function Wr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function LDe(s){return s=s|0,(n[(IF()|0)+24>>2]|0)+(s*12|0)|0}function ODe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),rf[c&31](f,s),f=MDe(f)|0,C=d,f|0}function MDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=wF(ZG()|0)|0,f?(BF(l,f),vF(c,l),UDe(s,c),s=DF(l)|0):s=_De(s)|0,C=d,s|0}function ZG(){var s=0;return o[7632]|0||(zDe(9184),Zt(25,9184,_|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function wF(s){return s=s|0,n[s+36>>2]|0}function BF(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function vF(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function UDe(s,l){s=s|0,l=l|0,GDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function DF(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function _De(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0;k=C,C=C+16|0,c=k+4|0,f=k,d=Ja(8)|0,m=d,B=Gt(48)|0,Q=B,l=Q+48|0;do n[Q>>2]=n[s>>2],Q=Q+4|0,s=s+4|0;while((Q|0)<(l|0));return l=m+4|0,n[l>>2]=B,Q=Gt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],$G(Q,B,c),n[d>>2]=Q,C=k,m|0}function $G(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function HDe(s){s=s|0,Zm(s),pt(s)}function qDe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function jDe(s){s=s|0,pt(s)}function GDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=WDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function WDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var Q=0,k=0;return Q=C,C=C+16|0,k=Q,za(k),s=da(s)|0,B=YDe(s,+E[l>>3],+E[c>>3],+E[f>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,Xa(k),C=Q,B|0}function YDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var Q=0;return Q=bl(KDe()|0)|0,l=+JA(l),c=+JA(c),f=+JA(f),d=+JA(d),m=+JA(m),Fs(0,Q|0,s|0,+l,+c,+f,+d,+m,+ +JA(B))|0}function KDe(){var s=0;return o[7624]|0||(VDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function VDe(s){s=s|0,Ql(s,JDe()|0,6)}function JDe(){return 1112}function zDe(s){s=s|0,wp(s)}function XDe(s){s=s|0,e9(s+24|0),t9(s+16|0)}function e9(s){s=s|0,$De(s)}function t9(s){s=s|0,ZDe(s)}function ZDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function $De(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function wp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function eSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tSe(s,c,d,0),C=f}function tSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=SF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=rSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,nSe(m,f)|0,f),C=d}function SF(){var s=0,l=0;if(o[7640]|0||(n9(9232),Zt(26,9232,_|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(br(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n9(9232)}return 9232}function rSe(s){return s=s|0,0}function nSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=SF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],r9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(iSe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function r9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function iSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=sSe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,oSe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],r9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,aSe(s,Q),lSe(Q),C=M;return}}function sSe(s){return s=s|0,357913941}function oSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function aSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function lSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function n9(s){s=s|0,ASe(s)}function cSe(s){s=s|0,uSe(s+24|0)}function uSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function ASe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,fSe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function fSe(){return 1144}function pSe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,Q=0,k=0;m=C,C=C+16|0,B=m+8|0,Q=m,k=hSe(s)|0,s=n[k+4>>2]|0,n[Q>>2]=n[k>>2],n[Q+4>>2]=s,n[B>>2]=n[Q>>2],n[B+4>>2]=n[Q+4>>2],gSe(l,B,c,f,d),C=m}function hSe(s){return s=s|0,(n[(SF()|0)+24>>2]|0)+(s*12|0)|0}function gSe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,Q=0,k=0,M=0;M=C,C=C+16|0,B=M+2|0,Q=M+1|0,k=M,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),Tu(B,c),c=+Nu(B,c),Tu(Q,f),f=+Nu(Q,f),ZA(k,d),k=$A(k,d)|0,y7[m&1](s,c,f,k),C=M}function Tu(s,l){s=s|0,l=+l}function Nu(s,l){return s=s|0,l=+l,+ +mSe(l)}function ZA(s,l){s=s|0,l=l|0}function $A(s,l){return s=s|0,l=l|0,dSe(l)|0}function dSe(s){return s=s|0,s|0}function mSe(s){return s=+s,+s}function ySe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CSe(s,c,d,1),C=f}function CSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=PF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=ESe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,ISe(m,f)|0,f),C=d}function PF(){var s=0,l=0;if(o[7648]|0||(s9(9268),Zt(27,9268,_|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(br(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s9(9268)}return 9268}function ESe(s){return s=s|0,0}function ISe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=PF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],i9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(wSe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function i9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function wSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=BSe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,vSe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],i9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,DSe(s,Q),SSe(Q),C=M;return}}function BSe(s){return s=s|0,357913941}function vSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function DSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function SSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function s9(s){s=s|0,bSe(s)}function PSe(s){s=s|0,xSe(s+24|0)}function xSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function bSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,4,l,QSe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function QSe(){return 1160}function kSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=FSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=RSe(l,f)|0,C=c,l|0}function FSe(s){return s=s|0,(n[(PF()|0)+24>>2]|0)+(s*12|0)|0}function RSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),o9(Fg[c&31](s)|0)|0}function o9(s){return s=s|0,s&1|0}function TSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],NSe(s,c,d,0),C=f}function NSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=xF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=LSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,OSe(m,f)|0,f),C=d}function xF(){var s=0,l=0;if(o[7656]|0||(l9(9304),Zt(28,9304,_|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(br(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));l9(9304)}return 9304}function LSe(s){return s=s|0,0}function OSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=xF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],a9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(MSe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function a9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function MSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=USe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,_Se(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],a9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,HSe(s,Q),qSe(Q),C=M;return}}function USe(s){return s=s|0,357913941}function _Se(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function HSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function qSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function l9(s){s=s|0,WSe(s)}function jSe(s){s=s|0,GSe(s+24|0)}function GSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function WSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,YSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YSe(){return 1164}function KSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=VSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],JSe(l,d,c),C=f}function VSe(s){return s=s|0,(n[(xF()|0)+24>>2]|0)+(s*12|0)|0}function JSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Bp(d,c),c=vp(d,c)|0,rf[f&31](s,c),Dp(d),C=m}function Bp(s,l){s=s|0,l=l|0,zSe(s,l)}function vp(s,l){return s=s|0,l=l|0,s|0}function Dp(s){s=s|0,jA(s)}function zSe(s,l){s=s|0,l=l|0,bF(s,l)}function bF(s,l){s=s|0,l=l|0,n[s>>2]=l}function XSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZSe(s,c,d,0),C=f}function ZSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=QF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=$Se(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,ePe(m,f)|0,f),C=d}function QF(){var s=0,l=0;if(o[7664]|0||(u9(9340),Zt(29,9340,_|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(br(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));u9(9340)}return 9340}function $Se(s){return s=s|0,0}function ePe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=QF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],c9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(tPe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function c9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function tPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=rPe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,nPe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],c9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,iPe(s,Q),sPe(Q),C=M;return}}function rPe(s){return s=s|0,357913941}function nPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function iPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function sPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function u9(s){s=s|0,lPe(s)}function oPe(s){s=s|0,aPe(s+24|0)}function aPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function lPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,4,l,cPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cPe(){return 1180}function uPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=APe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=fPe(l,d,c)|0,C=f,c|0}function APe(s){return s=s|0,(n[(QF()|0)+24>>2]|0)+(s*12|0)|0}function fPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),vg(d,c),d=Dg(d,c)|0,d=Wv(SR[f&15](s,d)|0)|0,C=m,d|0}function vg(s,l){s=s|0,l=l|0}function Dg(s,l){return s=s|0,l=l|0,pPe(l)|0}function Wv(s){return s=s|0,s|0}function pPe(s){return s=s|0,s|0}function hPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],gPe(s,c,d,0),C=f}function gPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=kF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=dPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,mPe(m,f)|0,f),C=d}function kF(){var s=0,l=0;if(o[7672]|0||(f9(9376),Zt(30,9376,_|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(br(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));f9(9376)}return 9376}function dPe(s){return s=s|0,0}function mPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=kF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],A9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(yPe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function A9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function yPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=CPe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,EPe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],A9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,IPe(s,Q),wPe(Q),C=M;return}}function CPe(s){return s=s|0,357913941}function EPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function IPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function f9(s){s=s|0,DPe(s)}function BPe(s){s=s|0,vPe(s+24|0)}function vPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function DPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,p9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function p9(){return 1196}function SPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=PPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=xPe(l,f)|0,C=c,l|0}function PPe(s){return s=s|0,(n[(kF()|0)+24>>2]|0)+(s*12|0)|0}function xPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),Wv(Fg[c&31](s)|0)|0}function bPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],QPe(s,c,d,1),C=f}function QPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=FF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=kPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,FPe(m,f)|0,f),C=d}function FF(){var s=0,l=0;if(o[7680]|0||(g9(9412),Zt(31,9412,_|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(br(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));g9(9412)}return 9412}function kPe(s){return s=s|0,0}function FPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=FF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],h9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(RPe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function h9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function RPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=TPe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,NPe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],h9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,LPe(s,Q),OPe(Q),C=M;return}}function TPe(s){return s=s|0,357913941}function NPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function LPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function OPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function g9(s){s=s|0,_Pe(s)}function MPe(s){s=s|0,UPe(s+24|0)}function UPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function _Pe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,d9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function d9(){return 1200}function HPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=qPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=jPe(l,f)|0,C=c,l|0}function qPe(s){return s=s|0,(n[(FF()|0)+24>>2]|0)+(s*12|0)|0}function jPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),Yv(Fg[c&31](s)|0)|0}function Yv(s){return s=s|0,s|0}function GPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],WPe(s,c,d,0),C=f}function WPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=RF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=YPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,KPe(m,f)|0,f),C=d}function RF(){var s=0,l=0;if(o[7688]|0||(y9(9448),Zt(32,9448,_|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(br(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));y9(9448)}return 9448}function YPe(s){return s=s|0,0}function KPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=RF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],m9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(VPe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function m9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function VPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=JPe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,zPe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],m9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,XPe(s,Q),ZPe(Q),C=M;return}}function JPe(s){return s=s|0,357913941}function zPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function XPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ZPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function y9(s){s=s|0,txe(s)}function $Pe(s){s=s|0,exe(s+24|0)}function exe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function txe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,C9()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function C9(){return 1204}function rxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=nxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ixe(l,d,c),C=f}function nxe(s){return s=s|0,(n[(RF()|0)+24>>2]|0)+(s*12|0)|0}function ixe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),TF(d,c),d=NF(d,c)|0,rf[f&31](s,d),C=m}function TF(s,l){s=s|0,l=l|0}function NF(s,l){return s=s|0,l=l|0,sxe(l)|0}function sxe(s){return s=s|0,s|0}function oxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],axe(s,c,d,0),C=f}function axe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=LF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=lxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,cxe(m,f)|0,f),C=d}function LF(){var s=0,l=0;if(o[7696]|0||(I9(9484),Zt(33,9484,_|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(br(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));I9(9484)}return 9484}function lxe(s){return s=s|0,0}function cxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=LF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],E9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(uxe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function E9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Axe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,fxe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],E9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,pxe(s,Q),hxe(Q),C=M;return}}function Axe(s){return s=s|0,357913941}function fxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function pxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function hxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function I9(s){s=s|0,mxe(s)}function gxe(s){s=s|0,dxe(s+24|0)}function dxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function mxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,yxe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function yxe(){return 1212}function Cxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=C,C=C+16|0,m=d+8|0,B=d,Q=Exe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],Ixe(l,m,c,f),C=d}function Exe(s){return s=s|0,(n[(LF()|0)+24>>2]|0)+(s*12|0)|0}function Ixe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;Q=C,C=C+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),TF(m,c),m=NF(m,c)|0,vg(B,f),B=Dg(B,f)|0,FI[d&15](s,m,B),C=Q}function wxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Bxe(s,c,d,1),C=f}function Bxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=OF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=vxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Dxe(m,f)|0,f),C=d}function OF(){var s=0,l=0;if(o[7704]|0||(B9(9520),Zt(34,9520,_|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(br(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));B9(9520)}return 9520}function vxe(s){return s=s|0,0}function Dxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=OF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],w9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Sxe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function w9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Sxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Pxe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xxe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],w9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,bxe(s,Q),Qxe(Q),C=M;return}}function Pxe(s){return s=s|0,357913941}function xxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Qxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function B9(s){s=s|0,Rxe(s)}function kxe(s){s=s|0,Fxe(s+24|0)}function Fxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Rxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,Txe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Txe(){return 1224}function Nxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;return d=C,C=C+16|0,m=d+8|0,B=d,Q=Lxe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+Oxe(l,m,c),C=d,+f}function Lxe(s){return s=s|0,(n[(OF()|0)+24>>2]|0)+(s*12|0)|0}function Oxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,B=+CF(+E7[f&7](s,d)),C=m,+B}function Mxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Uxe(s,c,d,1),C=f}function Uxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=MF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=_xe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Hxe(m,f)|0,f),C=d}function MF(){var s=0,l=0;if(o[7712]|0||(D9(9556),Zt(35,9556,_|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(br(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));D9(9556)}return 9556}function _xe(s){return s=s|0,0}function Hxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=MF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],v9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(qxe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function v9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function qxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=jxe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Gxe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],v9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Wxe(s,Q),Yxe(Q),C=M;return}}function jxe(s){return s=s|0,357913941}function Gxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Wxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Yxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function D9(s){s=s|0,Jxe(s)}function Kxe(s){s=s|0,Vxe(s+24|0)}function Vxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Jxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,zxe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function zxe(){return 1232}function Xxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=Zxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+$xe(l,d),C=f,+c}function Zxe(s){return s=s|0,(n[(MF()|0)+24>>2]|0)+(s*12|0)|0}function $xe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +CF(+C7[c&15](s))}function ebe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tbe(s,c,d,1),C=f}function tbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=UF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=rbe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,nbe(m,f)|0,f),C=d}function UF(){var s=0,l=0;if(o[7720]|0||(P9(9592),Zt(36,9592,_|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(br(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));P9(9592)}return 9592}function rbe(s){return s=s|0,0}function nbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=UF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],S9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ibe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function S9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ibe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=sbe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,obe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],S9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,abe(s,Q),lbe(Q),C=M;return}}function sbe(s){return s=s|0,357913941}function obe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function lbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function P9(s){s=s|0,Abe(s)}function cbe(s){s=s|0,ube(s+24|0)}function ube(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Abe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,7,l,fbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function fbe(){return 1276}function pbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=hbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=gbe(l,f)|0,C=c,l|0}function hbe(s){return s=s|0,(n[(UF()|0)+24>>2]|0)+(s*12|0)|0}function gbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),rf[c&31](f,s),f=x9(f)|0,C=d,f|0}function x9(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=wF(b9()|0)|0,f?(BF(l,f),vF(c,l),dbe(s,c),s=DF(l)|0):s=mbe(s)|0,C=d,s|0}function b9(){var s=0;return o[7736]|0||(Pbe(9640),Zt(25,9640,_|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function dbe(s,l){s=s|0,l=l|0,Ibe(l,s,s+8|0)|0}function mbe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(16)|0,n[Q>>2]=n[s>>2],n[Q+4>>2]=n[s+4>>2],n[Q+8>>2]=n[s+8>>2],n[Q+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],_F(s,m,d),n[f>>2]=s,C=c,l|0}function _F(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function ybe(s){s=s|0,Zm(s),pt(s)}function Cbe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function Ebe(s){s=s|0,pt(s)}function Ibe(s,l,c){return s=s|0,l=l|0,c=c|0,l=wbe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function wbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=C,C=C+16|0,d=f,za(d),s=da(s)|0,c=Bbe(s,n[l>>2]|0,+E[c>>3])|0,Xa(d),C=f,c|0}function Bbe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=bl(vbe()|0)|0,l=yF(l)|0,Cl(0,f|0,s|0,l|0,+ +JA(c))|0}function vbe(){var s=0;return o[7728]|0||(Dbe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function Dbe(s){s=s|0,Ql(s,Sbe()|0,2)}function Sbe(){return 1264}function Pbe(s){s=s|0,wp(s)}function xbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bbe(s,c,d,1),C=f}function bbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=HF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Qbe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,kbe(m,f)|0,f),C=d}function HF(){var s=0,l=0;if(o[7744]|0||(k9(9684),Zt(37,9684,_|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(br(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));k9(9684)}return 9684}function Qbe(s){return s=s|0,0}function kbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=HF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Q9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Fbe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function Q9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Fbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Rbe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Tbe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],Q9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Nbe(s,Q),Lbe(Q),C=M;return}}function Rbe(s){return s=s|0,357913941}function Tbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Nbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Lbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function k9(s){s=s|0,Ube(s)}function Obe(s){s=s|0,Mbe(s+24|0)}function Mbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Ube(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,_be()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function _be(){return 1280}function Hbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=qbe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=jbe(l,d,c)|0,C=f,c|0}function qbe(s){return s=s|0,(n[(HF()|0)+24>>2]|0)+(s*12|0)|0}function jbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=C,C=C+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(m,c),m=$A(m,c)|0,FI[f&15](d,s,m),m=x9(d)|0,C=B,m|0}function Gbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Wbe(s,c,d,1),C=f}function Wbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=qF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Ybe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Kbe(m,f)|0,f),C=d}function qF(){var s=0,l=0;if(o[7752]|0||(R9(9720),Zt(38,9720,_|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(br(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));R9(9720)}return 9720}function Ybe(s){return s=s|0,0}function Kbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=qF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],F9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Vbe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function F9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Vbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Jbe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,zbe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],F9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Xbe(s,Q),Zbe(Q),C=M;return}}function Jbe(s){return s=s|0,357913941}function zbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Xbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Zbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function R9(s){s=s|0,tQe(s)}function $be(s){s=s|0,eQe(s+24|0)}function eQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function tQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,rQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function rQe(){return 1288}function nQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=iQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=sQe(l,f)|0,C=c,l|0}function iQe(s){return s=s|0,(n[(qF()|0)+24>>2]|0)+(s*12|0)|0}function sQe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),VG(Fg[c&31](s)|0)|0}function oQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],aQe(s,c,d,0),C=f}function aQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=jF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=lQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,cQe(m,f)|0,f),C=d}function jF(){var s=0,l=0;if(o[7760]|0||(N9(9756),Zt(39,9756,_|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(br(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));N9(9756)}return 9756}function lQe(s){return s=s|0,0}function cQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=jF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],T9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(uQe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function T9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function uQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=AQe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,fQe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],T9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,pQe(s,Q),hQe(Q),C=M;return}}function AQe(s){return s=s|0,357913941}function fQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function pQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function hQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function N9(s){s=s|0,mQe(s)}function gQe(s){s=s|0,dQe(s+24|0)}function dQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function mQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,yQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function yQe(){return 1292}function CQe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=EQe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IQe(l,d,c),C=f}function EQe(s){return s=s|0,(n[(jF()|0)+24>>2]|0)+(s*12|0)|0}function IQe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Tu(d,c),c=+Nu(d,c),d7[f&31](s,c),C=m}function wQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],BQe(s,c,d,0),C=f}function BQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=GF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=vQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,DQe(m,f)|0,f),C=d}function GF(){var s=0,l=0;if(o[7768]|0||(O9(9792),Zt(40,9792,_|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(br(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));O9(9792)}return 9792}function vQe(s){return s=s|0,0}function DQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=GF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],L9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(SQe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function L9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function SQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=PQe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xQe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],L9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,bQe(s,Q),QQe(Q),C=M;return}}function PQe(s){return s=s|0,357913941}function xQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function QQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function O9(s){s=s|0,RQe(s)}function kQe(s){s=s|0,FQe(s+24|0)}function FQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function RQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,TQe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TQe(){return 1300}function NQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,Q=0;d=C,C=C+16|0,m=d+8|0,B=d,Q=LQe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],OQe(l,m,c,f),C=d}function LQe(s){return s=s|0,(n[(GF()|0)+24>>2]|0)+(s*12|0)|0}function OQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,Q=0;Q=C,C=C+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),ZA(m,c),m=$A(m,c)|0,Tu(B,f),f=+Nu(B,f),v7[d&15](s,m,f),C=Q}function MQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UQe(s,c,d,0),C=f}function UQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=WF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=_Qe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,HQe(m,f)|0,f),C=d}function WF(){var s=0,l=0;if(o[7776]|0||(U9(9828),Zt(41,9828,_|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(br(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));U9(9828)}return 9828}function _Qe(s){return s=s|0,0}function HQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=WF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],M9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(qQe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function M9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function qQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=jQe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,GQe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],M9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,WQe(s,Q),YQe(Q),C=M;return}}function jQe(s){return s=s|0,357913941}function GQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function WQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function YQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function U9(s){s=s|0,JQe(s)}function KQe(s){s=s|0,VQe(s+24|0)}function VQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function JQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,7,l,zQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function zQe(){return 1312}function XQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=ZQe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$Qe(l,d,c),C=f}function ZQe(s){return s=s|0,(n[(WF()|0)+24>>2]|0)+(s*12|0)|0}function $Qe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,rf[f&31](s,d),C=m}function eke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tke(s,c,d,0),C=f}function tke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=YF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=rke(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,nke(m,f)|0,f),C=d}function YF(){var s=0,l=0;if(o[7784]|0||(H9(9864),Zt(42,9864,_|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(br(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));H9(9864)}return 9864}function rke(s){return s=s|0,0}function nke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=YF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ike(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ike(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ske(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,oke(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,ake(s,Q),lke(Q),C=M;return}}function ske(s){return s=s|0,357913941}function oke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function lke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function H9(s){s=s|0,Ake(s)}function cke(s){s=s|0,uke(s+24|0)}function uke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Ake(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,fke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function fke(){return 1320}function pke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=hke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],gke(l,d,c),C=f}function hke(s){return s=s|0,(n[(YF()|0)+24>>2]|0)+(s*12|0)|0}function gke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),dke(d,c),d=mke(d,c)|0,rf[f&31](s,d),C=m}function dke(s,l){s=s|0,l=l|0}function mke(s,l){return s=s|0,l=l|0,yke(l)|0}function yke(s){return s=s|0,s|0}function Cke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Eke(s,c,d,0),C=f}function Eke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=KF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Ike(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,wke(m,f)|0,f),C=d}function KF(){var s=0,l=0;if(o[7792]|0||(j9(9900),Zt(43,9900,_|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(br(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));j9(9900)}return 9900}function Ike(s){return s=s|0,0}function wke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=KF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],q9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Bke(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function q9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Bke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=vke(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Dke(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],q9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Ske(s,Q),Pke(Q),C=M;return}}function vke(s){return s=s|0,357913941}function Dke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Ske(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Pke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function j9(s){s=s|0,Qke(s)}function xke(s){s=s|0,bke(s+24|0)}function bke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Qke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,22,l,kke()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function kke(){return 1344}function Fke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=C,C=C+16|0,f=c+8|0,d=c,m=Rke(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],Tke(l,f),C=c}function Rke(s){return s=s|0,(n[(KF()|0)+24>>2]|0)+(s*12|0)|0}function Tke(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&127](s)}function Nke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=VF()|0,s=Lke(c)|0,un(m,l,d,s,Oke(c,f)|0,f)}function VF(){var s=0,l=0;if(o[7800]|0||(W9(9936),Zt(44,9936,_|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(br(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));W9(9936)}return 9936}function Lke(s){return s=s|0,s|0}function Oke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=VF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(G9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(Mke(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function G9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function Mke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=Uke(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,_ke(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,G9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,Hke(s,d),qke(d),C=Q;return}}function Uke(s){return s=s|0,536870911}function _ke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function Hke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function qke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function W9(s){s=s|0,Wke(s)}function jke(s){s=s|0,Gke(s+24|0)}function Gke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function Wke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,23,l,C9()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Yke(s,l){s=s|0,l=l|0,Vke(n[(Kke(s)|0)>>2]|0,l)}function Kke(s){return s=s|0,(n[(VF()|0)+24>>2]|0)+(s<<3)|0}function Vke(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,TF(f,l),l=NF(f,l)|0,tf[s&127](l),C=c}function Jke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=JF()|0,s=zke(c)|0,un(m,l,d,s,Xke(c,f)|0,f)}function JF(){var s=0,l=0;if(o[7808]|0||(K9(9972),Zt(45,9972,_|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(br(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));K9(9972)}return 9972}function zke(s){return s=s|0,s|0}function Xke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=JF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(Y9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(Zke(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function Y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function Zke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=$ke(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,eFe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,Y9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,tFe(s,d),rFe(d),C=Q;return}}function $ke(s){return s=s|0,536870911}function eFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function tFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function rFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function K9(s){s=s|0,sFe(s)}function nFe(s){s=s|0,iFe(s+24|0)}function iFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function sFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,9,l,oFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function oFe(){return 1348}function aFe(s,l){return s=s|0,l=l|0,cFe(n[(lFe(s)|0)>>2]|0,l)|0}function lFe(s){return s=s|0,(n[(JF()|0)+24>>2]|0)+(s<<3)|0}function cFe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,V9(f,l),l=J9(f,l)|0,l=Wv(Fg[s&31](l)|0)|0,C=c,l|0}function V9(s,l){s=s|0,l=l|0}function J9(s,l){return s=s|0,l=l|0,uFe(l)|0}function uFe(s){return s=s|0,s|0}function AFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=zF()|0,s=fFe(c)|0,un(m,l,d,s,pFe(c,f)|0,f)}function zF(){var s=0,l=0;if(o[7816]|0||(X9(10008),Zt(46,10008,_|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(br(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));X9(10008)}return 10008}function fFe(s){return s=s|0,s|0}function pFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=zF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(z9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(hFe(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function z9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function hFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=gFe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,dFe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,z9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,mFe(s,d),yFe(d),C=Q;return}}function gFe(s){return s=s|0,536870911}function dFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function mFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function X9(s){s=s|0,IFe(s)}function CFe(s){s=s|0,EFe(s+24|0)}function EFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function IFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,15,l,p9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wFe(s){return s=s|0,vFe(n[(BFe(s)|0)>>2]|0)|0}function BFe(s){return s=s|0,(n[(zF()|0)+24>>2]|0)+(s<<3)|0}function vFe(s){return s=s|0,Wv(oD[s&7]()|0)|0}function DFe(){var s=0;return o[7832]|0||(RFe(10052),Zt(25,10052,_|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function SFe(s,l){s=s|0,l=l|0,n[s>>2]=PFe()|0,n[s+4>>2]=xFe()|0,n[s+12>>2]=l,n[s+8>>2]=bFe()|0,n[s+32>>2]=2}function PFe(){return 11709}function xFe(){return 1188}function bFe(){return Kv()|0}function QFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(kFe(c),pt(c)):l|0&&(Qu(l),pt(l))}function Sp(s,l){return s=s|0,l=l|0,l&s|0}function kFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&xp(s)}function Kv(){var s=0;return o[7824]|0||(n[2511]=FFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function FFe(){return 0}function RFe(s){s=s|0,wp(s)}function TFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=C,C=C+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,NFe(s,4827),LFe(s,4834,3)|0,OFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],MFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],UFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],_Fe(s,4891,c)|0,C=l}function NFe(s,l){s=s|0,l=l|0;var c=0;c=yTe()|0,n[s>>2]=c,CTe(c,l),Pp(n[s>>2]|0)}function LFe(s,l,c){return s=s|0,l=l|0,c=c|0,rTe(s,cn(l)|0,c,0),s|0}function OFe(s,l,c){return s=s|0,l=l|0,c=c|0,HRe(s,cn(l)|0,c,0),s|0}function MFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wRe(s,l,d),C=f,s|0}function UFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],nRe(s,l,d),C=f,s|0}function _Fe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],HFe(s,l,d),C=f,s|0}function HFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qFe(s,c,d,1),C=f}function qFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=XF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=jFe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,GFe(m,f)|0,f),C=d}function XF(){var s=0,l=0;if(o[7840]|0||($9(10100),Zt(48,10100,_|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(br(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$9(10100)}return 10100}function jFe(s){return s=s|0,0}function GFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=XF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Z9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(WFe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function Z9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function WFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=YFe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,KFe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],Z9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,VFe(s,Q),JFe(Q),C=M;return}}function YFe(s){return s=s|0,357913941}function KFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function VFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function JFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function $9(s){s=s|0,ZFe(s)}function zFe(s){s=s|0,XFe(s+24|0)}function XFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function ZFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,$Fe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function $Fe(){return 1364}function eRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=tRe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=rRe(l,d,c)|0,C=f,c|0}function tRe(s){return s=s|0,(n[(XF()|0)+24>>2]|0)+(s*12|0)|0}function rRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,d=o9(SR[f&15](s,d)|0)|0,C=m,d|0}function nRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iRe(s,c,d,0),C=f}function iRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=ZF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=sRe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,oRe(m,f)|0,f),C=d}function ZF(){var s=0,l=0;if(o[7848]|0||(t5(10136),Zt(49,10136,_|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(br(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t5(10136)}return 10136}function sRe(s){return s=s|0,0}function oRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=ZF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],e5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(aRe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function e5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function aRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=lRe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,cRe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],e5(m,f,c),n[k>>2]=(n[k>>2]|0)+12,uRe(s,Q),ARe(Q),C=M;return}}function lRe(s){return s=s|0,357913941}function cRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function uRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ARe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function t5(s){s=s|0,hRe(s)}function fRe(s){s=s|0,pRe(s+24|0)}function pRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function hRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,9,l,gRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function gRe(){return 1372}function dRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=mRe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yRe(l,d,c),C=f}function mRe(s){return s=s|0,(n[(ZF()|0)+24>>2]|0)+(s*12|0)|0}function yRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=$e;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),CRe(d,c),B=y(ERe(d,c)),g7[f&1](s,B),C=m}function CRe(s,l){s=s|0,l=+l}function ERe(s,l){return s=s|0,l=+l,y(IRe(l))}function IRe(s){return s=+s,y(s)}function wRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],BRe(s,c,d,0),C=f}function BRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=$F()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=vRe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,DRe(m,f)|0,f),C=d}function $F(){var s=0,l=0;if(o[7856]|0||(n5(10172),Zt(50,10172,_|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(br(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n5(10172)}return 10172}function vRe(s){return s=s|0,0}function DRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=$F()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],r5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(SRe(M,Q,k),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function r5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function SRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=PRe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xRe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],r5(m,f,c),n[k>>2]=(n[k>>2]|0)+12,bRe(s,Q),QRe(Q),C=M;return}}function PRe(s){return s=s|0,357913941}function xRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function QRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function n5(s){s=s|0,RRe(s)}function kRe(s){s=s|0,FRe(s+24|0)}function FRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function RRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,3,l,TRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TRe(){return 1380}function NRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=C,C=C+16|0,m=d+8|0,B=d,Q=LRe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],ORe(l,m,c,f),C=d}function LRe(s){return s=s|0,(n[($F()|0)+24>>2]|0)+(s*12|0)|0}function ORe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;Q=C,C=C+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),ZA(m,c),m=$A(m,c)|0,MRe(B,f),B=URe(B,f)|0,FI[d&15](s,m,B),C=Q}function MRe(s,l){s=s|0,l=l|0}function URe(s,l){return s=s|0,l=l|0,_Re(l)|0}function _Re(s){return s=s|0,(s|0)!=0|0}function HRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=eR()|0,s=qRe(c)|0,un(m,l,d,s,jRe(c,f)|0,f)}function eR(){var s=0,l=0;if(o[7864]|0||(s5(10208),Zt(51,10208,_|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(br(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s5(10208)}return 10208}function qRe(s){return s=s|0,s|0}function jRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=eR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(i5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(GRe(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function i5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function GRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=WRe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,YRe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,i5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,KRe(s,d),VRe(d),C=Q;return}}function WRe(s){return s=s|0,536870911}function YRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function KRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function VRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function s5(s){s=s|0,XRe(s)}function JRe(s){s=s|0,zRe(s+24|0)}function zRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function XRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,24,l,ZRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ZRe(){return 1392}function $Re(s,l){s=s|0,l=l|0,tTe(n[(eTe(s)|0)>>2]|0,l)}function eTe(s){return s=s|0,(n[(eR()|0)+24>>2]|0)+(s<<3)|0}function tTe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,V9(f,l),l=J9(f,l)|0,tf[s&127](l),C=c}function rTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=tR()|0,s=nTe(c)|0,un(m,l,d,s,iTe(c,f)|0,f)}function tR(){var s=0,l=0;if(o[7872]|0||(a5(10244),Zt(52,10244,_|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(br(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a5(10244)}return 10244}function nTe(s){return s=s|0,s|0}function iTe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=tR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(o5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(sTe(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function o5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function sTe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=oTe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,aTe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,o5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,lTe(s,d),cTe(d),C=Q;return}}function oTe(s){return s=s|0,536870911}function aTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function lTe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cTe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function a5(s){s=s|0,fTe(s)}function uTe(s){s=s|0,ATe(s+24|0)}function ATe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function fTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,16,l,pTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pTe(){return 1400}function hTe(s){return s=s|0,dTe(n[(gTe(s)|0)>>2]|0)|0}function gTe(s){return s=s|0,(n[(tR()|0)+24>>2]|0)+(s<<3)|0}function dTe(s){return s=s|0,mTe(oD[s&7]()|0)|0}function mTe(s){return s=s|0,s|0}function yTe(){var s=0;return o[7880]|0||(DTe(10280),Zt(25,10280,_|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function CTe(s,l){s=s|0,l=l|0,n[s>>2]=ETe()|0,n[s+4>>2]=ITe()|0,n[s+12>>2]=l,n[s+8>>2]=wTe()|0,n[s+32>>2]=4}function ETe(){return 11711}function ITe(){return 1356}function wTe(){return Kv()|0}function BTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(vTe(c),pt(c)):l|0&&(Ig(l),pt(l))}function vTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&xp(s)}function DTe(s){s=s|0,wp(s)}function STe(s){s=s|0,PTe(s,4920),xTe(s)|0,bTe(s)|0}function PTe(s,l){s=s|0,l=l|0;var c=0;c=b9()|0,n[s>>2]=c,zTe(c,l),Pp(n[s>>2]|0)}function xTe(s){s=s|0;var l=0;return l=n[s>>2]|0,Sg(l,_Te()|0),s|0}function bTe(s){s=s|0;var l=0;return l=n[s>>2]|0,Sg(l,QTe()|0),s|0}function QTe(){var s=0;return o[7888]|0||(l5(10328),Zt(53,10328,_|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),br(10328)|0||l5(10328),10328}function Sg(s,l){s=s|0,l=l|0,un(s,0,l,0,0,0)}function l5(s){s=s|0,RTe(s),Pg(s,10)}function kTe(s){s=s|0,FTe(s+24|0)}function FTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function RTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,1,l,OTe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TTe(s,l,c){s=s|0,l=l|0,c=+c,NTe(s,l,c)}function Pg(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function NTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+16|0,m=f+8|0,Q=f+13|0,d=f,B=f+12|0,ZA(Q,l),n[m>>2]=$A(Q,l)|0,Tu(B,c),E[d>>3]=+Nu(B,c),LTe(s,m,d),C=f}function LTe(s,l,c){s=s|0,l=l|0,c=c|0,W(s+8|0,n[l>>2]|0,+E[c>>3]),o[s+24>>0]=1}function OTe(){return 1404}function MTe(s,l){return s=s|0,l=+l,UTe(s,l)|0}function UTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return f=C,C=C+16|0,m=f+4|0,B=f+8|0,Q=f,d=Ja(8)|0,c=d,k=Gt(16)|0,ZA(m,s),s=$A(m,s)|0,Tu(B,l),W(k,s,+Nu(B,l)),B=c+4|0,n[B>>2]=k,s=Gt(8)|0,B=n[B>>2]|0,n[Q>>2]=0,n[m>>2]=n[Q>>2],_F(s,B,m),n[d>>2]=s,C=f,c|0}function _Te(){var s=0;return o[7896]|0||(c5(10364),Zt(54,10364,_|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),br(10364)|0||c5(10364),10364}function c5(s){s=s|0,jTe(s),Pg(s,55)}function HTe(s){s=s|0,qTe(s+24|0)}function qTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function jTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,4,l,KTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function GTe(s){s=s|0,WTe(s)}function WTe(s){s=s|0,YTe(s)}function YTe(s){s=s|0,u5(s+8|0),o[s+24>>0]=1}function u5(s){s=s|0,n[s>>2]=0,E[s+8>>3]=0}function KTe(){return 1424}function VTe(){return JTe()|0}function JTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,f=Gt(16)|0,u5(f),m=s+4|0,n[m>>2]=f,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],_F(f,m,d),n[c>>2]=f,C=l,s|0}function zTe(s,l){s=s|0,l=l|0,n[s>>2]=XTe()|0,n[s+4>>2]=ZTe()|0,n[s+12>>2]=l,n[s+8>>2]=$Te()|0,n[s+32>>2]=5}function XTe(){return 11710}function ZTe(){return 1416}function $Te(){return Vv()|0}function eNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(tNe(c),pt(c)):l|0&&pt(l)}function tNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&xp(s)}function Vv(){var s=0;return o[7904]|0||(n[2600]=rNe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function rNe(){return n[357]|0}function nNe(s){s=s|0,iNe(s,4926),sNe(s)|0}function iNe(s,l){s=s|0,l=l|0;var c=0;c=ZG()|0,n[s>>2]=c,dNe(c,l),Pp(n[s>>2]|0)}function sNe(s){s=s|0;var l=0;return l=n[s>>2]|0,Sg(l,oNe()|0),s|0}function oNe(){var s=0;return o[7912]|0||(A5(10412),Zt(56,10412,_|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),br(10412)|0||A5(10412),10412}function A5(s){s=s|0,cNe(s),Pg(s,57)}function aNe(s){s=s|0,lNe(s+24|0)}function lNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function cNe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,5,l,pNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uNe(s){s=s|0,ANe(s)}function ANe(s){s=s|0,fNe(s)}function fNe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function pNe(){return 1432}function hNe(){return gNe()|0}function gNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,Q=0;B=C,C=C+16|0,s=B+4|0,l=B,c=Ja(8)|0,f=c,d=Gt(48)|0,m=d,Q=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(Q|0));return m=f+4|0,n[m>>2]=d,Q=Gt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],$G(Q,m,s),n[c>>2]=Q,C=B,f|0}function dNe(s,l){s=s|0,l=l|0,n[s>>2]=mNe()|0,n[s+4>>2]=yNe()|0,n[s+12>>2]=l,n[s+8>>2]=CNe()|0,n[s+32>>2]=6}function mNe(){return 11704}function yNe(){return 1436}function CNe(){return Vv()|0}function ENe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(INe(c),pt(c)):l|0&&pt(l)}function INe(s){s=s|0,s=n[s+4>>2]|0,s|0&&xp(s)}function wNe(s){s=s|0,BNe(s,4933),vNe(s)|0,DNe(s)|0}function BNe(s,l){s=s|0,l=l|0;var c=0;c=JNe()|0,n[s>>2]=c,zNe(c,l),Pp(n[s>>2]|0)}function vNe(s){s=s|0;var l=0;return l=n[s>>2]|0,Sg(l,UNe()|0),s|0}function DNe(s){s=s|0;var l=0;return l=n[s>>2]|0,Sg(l,SNe()|0),s|0}function SNe(){var s=0;return o[7920]|0||(f5(10452),Zt(58,10452,_|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),br(10452)|0||f5(10452),10452}function f5(s){s=s|0,bNe(s),Pg(s,1)}function PNe(s){s=s|0,xNe(s+24|0)}function xNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function bNe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,1,l,RNe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function QNe(s,l,c){s=s|0,l=+l,c=+c,kNe(s,l,c)}function kNe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+32|0,m=f+8|0,Q=f+17|0,d=f,B=f+16|0,Tu(Q,l),E[m>>3]=+Nu(Q,l),Tu(B,c),E[d>>3]=+Nu(B,c),FNe(s,m,d),C=f}function FNe(s,l,c){s=s|0,l=l|0,c=c|0,p5(s+8|0,+E[l>>3],+E[c>>3]),o[s+24>>0]=1}function p5(s,l,c){s=s|0,l=+l,c=+c,E[s>>3]=l,E[s+8>>3]=c}function RNe(){return 1472}function TNe(s,l){return s=+s,l=+l,NNe(s,l)|0}function NNe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return f=C,C=C+16|0,B=f+4|0,Q=f+8|0,k=f,d=Ja(8)|0,c=d,m=Gt(16)|0,Tu(B,s),s=+Nu(B,s),Tu(Q,l),p5(m,s,+Nu(Q,l)),Q=c+4|0,n[Q>>2]=m,m=Gt(8)|0,Q=n[Q>>2]|0,n[k>>2]=0,n[B>>2]=n[k>>2],h5(m,Q,B),n[d>>2]=m,C=f,c|0}function h5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function LNe(s){s=s|0,Zm(s),pt(s)}function ONe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function MNe(s){s=s|0,pt(s)}function UNe(){var s=0;return o[7928]|0||(g5(10488),Zt(59,10488,_|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),br(10488)|0||g5(10488),10488}function g5(s){s=s|0,qNe(s),Pg(s,60)}function _Ne(s){s=s|0,HNe(s+24|0)}function HNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function qNe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,6,l,YNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function jNe(s){s=s|0,GNe(s)}function GNe(s){s=s|0,WNe(s)}function WNe(s){s=s|0,d5(s+8|0),o[s+24>>0]=1}function d5(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function YNe(){return 1492}function KNe(){return VNe()|0}function VNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,f=Gt(16)|0,d5(f),m=s+4|0,n[m>>2]=f,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],h5(f,m,d),n[c>>2]=f,C=l,s|0}function JNe(){var s=0;return o[7936]|0||(rLe(10524),Zt(25,10524,_|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function zNe(s,l){s=s|0,l=l|0,n[s>>2]=XNe()|0,n[s+4>>2]=ZNe()|0,n[s+12>>2]=l,n[s+8>>2]=$Ne()|0,n[s+32>>2]=7}function XNe(){return 11700}function ZNe(){return 1484}function $Ne(){return Vv()|0}function eLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(tLe(c),pt(c)):l|0&&pt(l)}function tLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&xp(s)}function rLe(s){s=s|0,wp(s)}function nLe(s,l,c){s=s|0,l=l|0,c=c|0,s=cn(l)|0,l=iLe(c)|0,c=sLe(c,0)|0,NLe(s,l,c,rR()|0,0)}function iLe(s){return s=s|0,s|0}function sLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=rR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(y5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(fLe(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function rR(){var s=0,l=0;if(o[7944]|0||(m5(10568),Zt(61,10568,_|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(br(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));m5(10568)}return 10568}function m5(s){s=s|0,lLe(s)}function oLe(s){s=s|0,aLe(s+24|0)}function aLe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function lLe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,17,l,d9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cLe(s){return s=s|0,ALe(n[(uLe(s)|0)>>2]|0)|0}function uLe(s){return s=s|0,(n[(rR()|0)+24>>2]|0)+(s<<3)|0}function ALe(s){return s=s|0,Yv(oD[s&7]()|0)|0}function y5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function fLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=pLe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,hLe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,y5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,gLe(s,d),dLe(d),C=Q;return}}function pLe(s){return s=s|0,536870911}function hLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function gLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dLe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function mLe(){yLe()}function yLe(){CLe(10604)}function CLe(s){s=s|0,ELe(s,4955)}function ELe(s,l){s=s|0,l=l|0;var c=0;c=ILe()|0,n[s>>2]=c,wLe(c,l),Pp(n[s>>2]|0)}function ILe(){var s=0;return o[7952]|0||(kLe(10612),Zt(25,10612,_|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function wLe(s,l){s=s|0,l=l|0,n[s>>2]=SLe()|0,n[s+4>>2]=PLe()|0,n[s+12>>2]=l,n[s+8>>2]=xLe()|0,n[s+32>>2]=8}function Pp(s){s=s|0;var l=0,c=0;l=C,C=C+16|0,c=l,Km()|0,n[c>>2]=s,BLe(10608,c),C=l}function Km(){return o[11714]|0||(n[2652]=0,Zt(62,10608,_|0)|0,o[11714]=1),10608}function BLe(s,l){s=s|0,l=l|0;var c=0;c=Gt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function vLe(s){s=s|0,DLe(s)}function DLe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function SLe(){return 11715}function PLe(){return 1496}function xLe(){return Kv()|0}function bLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(QLe(c),pt(c)):l|0&&pt(l)}function QLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&xp(s)}function kLe(s){s=s|0,wp(s)}function FLe(s,l){s=s|0,l=l|0;var c=0,f=0;Km()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&($5(nR(f)|0,s)|0)==0);)if(c=n[c>>2]|0,!c)break e;RLe(f,l)}while(0)}function nR(s){return s=s|0,n[s+12>>2]|0}function RLe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(jA(c),pt(c)),c=Gt(4)|0,YG(c,l),n[s>>2]=c}function iR(){return o[11716]|0||(n[2664]=0,Zt(63,10656,_|0)|0,o[11716]=1),10656}function C5(){var s=0;return o[11717]|0?s=n[2665]|0:(TLe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function TLe(){o[11740]|0||(o[11718]=Ar(Ar(8,0)|0,0)|0,o[11719]=Ar(Ar(0,0)|0,0)|0,o[11720]=Ar(Ar(0,16)|0,0)|0,o[11721]=Ar(Ar(8,0)|0,0)|0,o[11722]=Ar(Ar(0,0)|0,0)|0,o[11723]=Ar(Ar(8,0)|0,0)|0,o[11724]=Ar(Ar(0,0)|0,0)|0,o[11725]=Ar(Ar(8,0)|0,0)|0,o[11726]=Ar(Ar(0,0)|0,0)|0,o[11727]=Ar(Ar(8,0)|0,0)|0,o[11728]=Ar(Ar(0,0)|0,0)|0,o[11729]=Ar(Ar(0,0)|0,32)|0,o[11730]=Ar(Ar(0,0)|0,32)|0,o[11740]=1)}function E5(){return 1572}function NLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0;m=C,C=C+32|0,O=m+16|0,M=m+12|0,k=m+8|0,Q=m+4|0,B=m,n[O>>2]=s,n[M>>2]=l,n[k>>2]=c,n[Q>>2]=f,n[B>>2]=d,iR()|0,LLe(10656,O,M,k,Q,B),C=m}function LLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Gt(24)|0,JG(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function I5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0,et=0,Ze=0,at=0;if(at=C,C=C+32|0,Le=at+20|0,Re=at+8|0,et=at+4|0,Ze=at,l=n[l>>2]|0,l|0){We=Le+4|0,k=Le+8|0,M=Re+4|0,O=Re+8|0,j=Re+8|0,se=Le+8|0;do{if(B=l+4|0,Q=sR(B)|0,Q|0){if(d=SI(Q)|0,n[Le>>2]=0,n[We>>2]=0,n[k>>2]=0,f=(PI(Q)|0)+1|0,OLe(Le,f),f|0)for(;f=f+-1|0,kc(Re,n[d>>2]|0),m=n[We>>2]|0,m>>>0<(n[se>>2]|0)>>>0?(n[m>>2]=n[Re>>2],n[We>>2]=(n[We>>2]|0)+4):oR(Le,Re),f;)d=d+4|0;f=xI(Q)|0,n[Re>>2]=0,n[M>>2]=0,n[O>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?MLe(Re,f):(n[d>>2]=n[f>>2],n[M>>2]=(n[M>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[M>>2]|0,m=n[j>>2]|0}while(0);n[et>>2]=Jv(B)|0,n[Ze>>2]=br(Q)|0,ULe(c,s,et,Ze,Le,Re),aR(Re),ef(Le)}l=n[l>>2]|0}while((l|0)!=0)}C=at}function sR(s){return s=s|0,n[s+12>>2]|0}function SI(s){return s=s|0,n[s+12>>2]|0}function PI(s){return s=s|0,n[s+16>>2]|0}function OLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0<l>>>0&&(b5(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),Q5(s,c),k5(c)),C=d}function oR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=x5(s)|0,m>>>0<d>>>0)Vr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,k=M>>1,b5(c,M>>2>>>0<m>>>1>>>0?k>>>0<d>>>0?d:k:m,(n[f>>2]|0)-Q>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,Q5(s,c),k5(c),C=B;return}}function xI(s){return s=s|0,n[s+8>>2]|0}function MLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=P5(s)|0,m>>>0<d>>>0)Vr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,k=M>>1,iOe(c,M>>2>>>0<m>>>1>>>0?k>>>0<d>>>0?d:k:m,(n[f>>2]|0)-Q>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,sOe(s,c),oOe(c),C=B;return}}function Jv(s){return s=s|0,n[s>>2]|0}function ULe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,_Le(s,l,c,f,d,m)}function aR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function ef(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function _Le(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=C,C=C+48|0,O=B+40|0,Q=B+32|0,j=B+24|0,k=B+12|0,M=B,za(Q),s=da(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,lR(k,d),HLe(M,m),n[O>>2]=n[j>>2],qLe(s,O,c,f,k,M),aR(M),ef(k),Xa(Q),C=B}function lR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(rOe(s,f),nOe(s,n[l>>2]|0,n[c>>2]|0,f))}function HLe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(eOe(s,f),tOe(s,n[l>>2]|0,n[c>>2]|0,f))}function qLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=C,C=C+32|0,O=B+28|0,j=B+24|0,Q=B+12|0,k=B,M=bl(jLe()|0)|0,n[j>>2]=n[l>>2],n[O>>2]=n[j>>2],l=xg(O)|0,c=w5(c)|0,f=cR(f)|0,n[Q>>2]=n[d>>2],O=d+4|0,n[Q+4>>2]=n[O>>2],j=d+8|0,n[Q+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[d>>2]=0,d=uR(Q)|0,n[k>>2]=n[m>>2],O=m+4|0,n[k+4>>2]=n[O>>2],j=m+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[m>>2]=0,io(0,M|0,s|0,l|0,c|0,f|0,d|0,GLe(k)|0)|0,aR(k),ef(Q),C=B}function jLe(){var s=0;return o[7968]|0||(ZLe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function xg(s){return s=s|0,v5(s)|0}function w5(s){return s=s|0,B5(s)|0}function cR(s){return s=s|0,Yv(s)|0}function uR(s){return s=s|0,YLe(s)|0}function GLe(s){return s=s|0,WLe(s)|0}function WLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Ja(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=B5(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function B5(s){return s=s|0,s|0}function YLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Ja(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=v5((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function v5(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=wF(D5()|0)|0,f?(BF(l,f),vF(c,l),xUe(s,c),s=DF(l)|0):s=KLe(s)|0,C=d,s|0}function D5(){var s=0;return o[7960]|0||(XLe(10664),Zt(25,10664,_|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function KLe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(4)|0,n[Q>>2]=n[s>>2],m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],S5(s,m,d),n[f>>2]=s,C=c,l|0}function S5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function VLe(s){s=s|0,Zm(s),pt(s)}function JLe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function zLe(s){s=s|0,pt(s)}function XLe(s){s=s|0,wp(s)}function ZLe(s){s=s|0,Ql(s,$Le()|0,5)}function $Le(){return 1676}function eOe(s,l){s=s|0,l=l|0;var c=0;if((P5(s)|0)>>>0<l>>>0&&Vr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function tOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Er(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function P5(s){return s=s|0,1073741823}function rOe(s,l){s=s|0,l=l|0;var c=0;if((x5(s)|0)>>>0<l>>>0&&Vr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function nOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Er(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function x5(s){return s=s|0,1073741823}function iOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function sOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function b5(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function Q5(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function k5(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function aOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0;if(Re=C,C=C+32|0,O=Re+20|0,j=Re+12|0,M=Re+16|0,se=Re+4|0,We=Re,Le=Re+8|0,Q=C5()|0,m=n[Q>>2]|0,B=n[m>>2]|0,B|0)for(k=n[Q+8>>2]|0,Q=n[Q+4>>2]|0;kc(O,B),lOe(s,O,Q,k),m=m+4|0,B=n[m>>2]|0,B;)k=k+1|0,Q=Q+1|0;if(m=E5()|0,B=n[m>>2]|0,B|0)do kc(O,B),n[j>>2]=n[m+4>>2],cOe(l,O,j),m=m+8|0,B=n[m>>2]|0;while((B|0)!=0);if(m=n[(Km()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,kc(O,n[(Vm(l)|0)>>2]|0),n[j>>2]=nR(l)|0,uOe(c,O,j),m=n[m>>2]|0;while((m|0)!=0);if(kc(M,0),m=iR()|0,n[O>>2]=n[M>>2],I5(O,m,d),m=n[(Km()|0)>>2]|0,m|0){s=O+4|0,l=O+8|0,c=O+8|0;do{if(k=n[m+4>>2]|0,kc(j,n[(Vm(k)|0)>>2]|0),AOe(se,F5(k)|0),B=n[se>>2]|0,B|0){n[O>>2]=0,n[s>>2]=0,n[l>>2]=0;do kc(We,n[(Vm(n[B+4>>2]|0)|0)>>2]|0),Q=n[s>>2]|0,Q>>>0<(n[c>>2]|0)>>>0?(n[Q>>2]=n[We>>2],n[s>>2]=(n[s>>2]|0)+4):oR(O,We),B=n[B>>2]|0;while((B|0)!=0);fOe(f,j,O),ef(O)}n[Le>>2]=n[j>>2],M=R5(k)|0,n[O>>2]=n[Le>>2],I5(O,M,d),t9(se),m=n[m>>2]|0}while((m|0)!=0)}C=Re}function lOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,vOe(s,l,c,f)}function cOe(s,l,c){s=s|0,l=l|0,c=c|0,BOe(s,l,c)}function Vm(s){return s=s|0,s|0}function uOe(s,l,c){s=s|0,l=l|0,c=c|0,COe(s,l,c)}function F5(s){return s=s|0,s+16|0}function AOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;if(m=C,C=C+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=yOe(c)|0,f|0){if(f=Gt(12)|0,B=(T5(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Gt(12)|0,k=(T5(d)|0)+4|0,Q=n[k+4>>2]|0,B=s+4|0,n[B>>2]=n[k>>2],n[B+4>>2]=Q,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}C=m}function fOe(s,l,c){s=s|0,l=l|0,c=c|0,pOe(s,l,c)}function R5(s){return s=s|0,s+24|0}function pOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+32|0,B=f+24|0,d=f+16|0,Q=f+12|0,m=f,za(d),s=da(s)|0,n[Q>>2]=n[l>>2],lR(m,c),n[B>>2]=n[Q>>2],hOe(s,B,m),ef(m),Xa(d),C=f}function hOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=C,C=C+32|0,B=f+16|0,Q=f+12|0,d=f,m=bl(gOe()|0)|0,n[Q>>2]=n[l>>2],n[B>>2]=n[Q>>2],l=xg(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],Q=c+8|0,n[d+8>>2]=n[Q>>2],n[Q>>2]=0,n[B>>2]=0,n[c>>2]=0,no(0,m|0,s|0,l|0,uR(d)|0)|0,ef(d),C=f}function gOe(){var s=0;return o[7976]|0||(dOe(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function dOe(s){s=s|0,Ql(s,mOe()|0,2)}function mOe(){return 1732}function yOe(s){return s=s|0,n[s>>2]|0}function T5(s){return s=s|0,n[s>>2]|0}function COe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,za(d),s=da(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],N5(s,m,c),Xa(d),C=f}function N5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+4|0,B=f,d=bl(EOe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=xg(m)|0,no(0,d|0,s|0,l|0,w5(c)|0)|0,C=f}function EOe(){var s=0;return o[7984]|0||(IOe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function IOe(s){s=s|0,Ql(s,wOe()|0,2)}function wOe(){return 1744}function BOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,za(d),s=da(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],N5(s,m,c),Xa(d),C=f}function vOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,Q=d,za(m),s=da(s)|0,n[Q>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[Q>>2],DOe(s,B,c,f),Xa(m),C=d}function DOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=C,C=C+16|0,B=d+4|0,Q=d,m=bl(SOe()|0)|0,n[Q>>2]=n[l>>2],n[B>>2]=n[Q>>2],l=xg(B)|0,c=Jm(c)|0,mc(0,m|0,s|0,l|0,c|0,Jm(f)|0)|0,C=d}function SOe(){var s=0;return o[7992]|0||(xOe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function Jm(s){return s=s|0,POe(s)|0}function POe(s){return s=s|0,s&255|0}function xOe(s){s=s|0,Ql(s,bOe()|0,3)}function bOe(){return 1756}function QOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;switch(se=C,C=C+32|0,Q=se+8|0,k=se+4|0,M=se+20|0,O=se,bF(s,0),f=PUe(l)|0,n[Q>>2]=0,j=Q+4|0,n[j>>2]=0,n[Q+8>>2]=0,f<<24>>24){case 0:{o[M>>0]=0,kOe(k,c,M),zv(s,k)|0,GA(k);break}case 8:{j=dR(l)|0,o[M>>0]=8,kc(O,n[j+4>>2]|0),FOe(k,c,M,O,j+8|0),zv(s,k)|0,GA(k);break}case 9:{if(m=dR(l)|0,l=n[m+4>>2]|0,l|0)for(B=Q+8|0,d=m+12|0;l=l+-1|0,kc(k,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[k>>2],n[j>>2]=(n[j>>2]|0)+4):oR(Q,k),l;)d=d+4|0;o[M>>0]=9,kc(O,n[m+8>>2]|0),ROe(k,c,M,O,Q),zv(s,k)|0,GA(k);break}default:j=dR(l)|0,o[M>>0]=f,kc(O,n[j+4>>2]|0),TOe(k,c,M,O),zv(s,k)|0,GA(k)}ef(Q),C=se}function kOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,za(d),l=da(l)|0,KOe(s,l,o[c>>0]|0),Xa(d),C=f}function zv(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&bA(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function FOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0;m=C,C=C+32|0,Q=m+16|0,B=m+8|0,k=m,za(B),l=da(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],d=n[d>>2]|0,n[Q>>2]=n[k>>2],jOe(s,l,c,Q,d),Xa(B),C=m}function ROe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0;m=C,C=C+32|0,k=m+24|0,B=m+16|0,M=m+12|0,Q=m,za(B),l=da(l)|0,c=o[c>>0]|0,n[M>>2]=n[f>>2],lR(Q,d),n[k>>2]=n[M>>2],UOe(s,l,c,k,Q),ef(Q),Xa(B),C=m}function TOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,Q=d,za(m),l=da(l)|0,c=o[c>>0]|0,n[Q>>2]=n[f>>2],n[B>>2]=n[Q>>2],NOe(s,l,c,B),Xa(m),C=d}function NOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=C,C=C+16|0,m=d+4|0,Q=d,B=bl(LOe()|0)|0,c=Jm(c)|0,n[Q>>2]=n[f>>2],n[m>>2]=n[Q>>2],Xv(s,no(0,B|0,l|0,c|0,xg(m)|0)|0),C=d}function LOe(){var s=0;return o[8e3]|0||(OOe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function Xv(s,l){s=s|0,l=l|0,bF(s,l)}function OOe(s){s=s|0,Ql(s,MOe()|0,2)}function MOe(){return 1772}function UOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0;m=C,C=C+32|0,k=m+16|0,M=m+12|0,B=m,Q=bl(_Oe()|0)|0,c=Jm(c)|0,n[M>>2]=n[f>>2],n[k>>2]=n[M>>2],f=xg(k)|0,n[B>>2]=n[d>>2],k=d+4|0,n[B+4>>2]=n[k>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[k>>2]=0,n[d>>2]=0,Xv(s,mc(0,Q|0,l|0,c|0,f|0,uR(B)|0)|0),ef(B),C=m}function _Oe(){var s=0;return o[8008]|0||(HOe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function HOe(s){s=s|0,Ql(s,qOe()|0,3)}function qOe(){return 1784}function jOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0;m=C,C=C+16|0,Q=m+4|0,k=m,B=bl(GOe()|0)|0,c=Jm(c)|0,n[k>>2]=n[f>>2],n[Q>>2]=n[k>>2],f=xg(Q)|0,Xv(s,mc(0,B|0,l|0,c|0,f|0,cR(d)|0)|0),C=m}function GOe(){var s=0;return o[8016]|0||(WOe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function WOe(s){s=s|0,Ql(s,YOe()|0,3)}function YOe(){return 1800}function KOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=bl(VOe()|0)|0,Xv(s,Dn(0,f|0,l|0,Jm(c)|0)|0)}function VOe(){var s=0;return o[8024]|0||(JOe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function JOe(s){s=s|0,Ql(s,zOe()|0,1)}function zOe(){return 1816}function XOe(){ZOe(),$Oe(),eMe()}function ZOe(){n[2702]=c7(65536)|0}function $Oe(){EMe(10856)}function eMe(){tMe(10816)}function tMe(s){s=s|0,rMe(s,5044),nMe(s)|0}function rMe(s,l){s=s|0,l=l|0;var c=0;c=D5()|0,n[s>>2]=c,hMe(c,l),Pp(n[s>>2]|0)}function nMe(s){s=s|0;var l=0;return l=n[s>>2]|0,Sg(l,iMe()|0),s|0}function iMe(){var s=0;return o[8032]|0||(L5(10820),Zt(64,10820,_|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),br(10820)|0||L5(10820),10820}function L5(s){s=s|0,aMe(s),Pg(s,25)}function sMe(s){s=s|0,oMe(s+24|0)}function oMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function aMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,18,l,AMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function lMe(s,l){s=s|0,l=l|0,cMe(s,l)}function cMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=C,C=C+16|0,f=c,d=c+4|0,vg(d,l),n[f>>2]=Dg(d,l)|0,uMe(s,f),C=c}function uMe(s,l){s=s|0,l=l|0,O5(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function O5(s,l){s=s|0,l=l|0,n[s>>2]=l}function AMe(){return 1824}function fMe(s){return s=s|0,pMe(s)|0}function pMe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(4)|0,vg(d,s),O5(Q,Dg(d,s)|0),m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],S5(s,m,d),n[f>>2]=s,C=c,l|0}function Ja(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=c7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function hMe(s,l){s=s|0,l=l|0,n[s>>2]=gMe()|0,n[s+4>>2]=dMe()|0,n[s+12>>2]=l,n[s+8>>2]=mMe()|0,n[s+32>>2]=9}function gMe(){return 11744}function dMe(){return 1832}function mMe(){return Vv()|0}function yMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(CMe(c),pt(c)):l|0&&pt(l)}function CMe(s){s=s|0,s=n[s+4>>2]|0,s|0&&xp(s)}function EMe(s){s=s|0,IMe(s,5052),wMe(s)|0,BMe(s,5058,26)|0,vMe(s,5069,1)|0,DMe(s,5077,10)|0,SMe(s,5087,19)|0,PMe(s,5094,27)|0}function IMe(s,l){s=s|0,l=l|0;var c=0;c=CUe()|0,n[s>>2]=c,EUe(c,l),Pp(n[s>>2]|0)}function wMe(s){s=s|0;var l=0;return l=n[s>>2]|0,Sg(l,sUe()|0),s|0}function BMe(s,l,c){return s=s|0,l=l|0,c=c|0,H4e(s,cn(l)|0,c,0),s|0}function vMe(s,l,c){return s=s|0,l=l|0,c=c|0,S4e(s,cn(l)|0,c,0),s|0}function DMe(s,l,c){return s=s|0,l=l|0,c=c|0,i4e(s,cn(l)|0,c,0),s|0}function SMe(s,l,c){return s=s|0,l=l|0,c=c|0,jMe(s,cn(l)|0,c,0),s|0}function M5(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}pt(c)}n[2701]=s}function PMe(s,l,c){return s=s|0,l=l|0,c=c|0,xMe(s,cn(l)|0,c,0),s|0}function xMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=AR()|0,s=bMe(c)|0,un(m,l,d,s,QMe(c,f)|0,f)}function AR(){var s=0,l=0;if(o[8040]|0||(_5(10860),Zt(65,10860,_|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(br(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));_5(10860)}return 10860}function bMe(s){return s=s|0,s|0}function QMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=AR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(U5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(kMe(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function U5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function kMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=FMe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,RMe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,U5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,TMe(s,d),NMe(d),C=Q;return}}function FMe(s){return s=s|0,536870911}function RMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function TMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function NMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function _5(s){s=s|0,MMe(s)}function LMe(s){s=s|0,OMe(s+24|0)}function OMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function MMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,11,l,UMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function UMe(){return 1840}function _Me(s,l,c){s=s|0,l=l|0,c=c|0,qMe(n[(HMe(s)|0)>>2]|0,l,c)}function HMe(s){return s=s|0,(n[(AR()|0)+24>>2]|0)+(s<<3)|0}function qMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+1|0,d=f,vg(m,l),l=Dg(m,l)|0,vg(d,c),c=Dg(d,c)|0,rf[s&31](l,c),C=f}function jMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=fR()|0,s=GMe(c)|0,un(m,l,d,s,WMe(c,f)|0,f)}function fR(){var s=0,l=0;if(o[8048]|0||(q5(10896),Zt(66,10896,_|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(br(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));q5(10896)}return 10896}function GMe(s){return s=s|0,s|0}function WMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=fR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(H5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(YMe(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function H5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function YMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=KMe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,VMe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,H5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,JMe(s,d),zMe(d),C=Q;return}}function KMe(s){return s=s|0,536870911}function VMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function JMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function q5(s){s=s|0,$Me(s)}function XMe(s){s=s|0,ZMe(s+24|0)}function ZMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function $Me(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,11,l,e4e()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function e4e(){return 1852}function t4e(s,l){return s=s|0,l=l|0,n4e(n[(r4e(s)|0)>>2]|0,l)|0}function r4e(s){return s=s|0,(n[(fR()|0)+24>>2]|0)+(s<<3)|0}function n4e(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,vg(f,l),l=Dg(f,l)|0,l=Yv(Fg[s&31](l)|0)|0,C=c,l|0}function i4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=pR()|0,s=s4e(c)|0,un(m,l,d,s,o4e(c,f)|0,f)}function pR(){var s=0,l=0;if(o[8056]|0||(G5(10932),Zt(67,10932,_|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(br(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));G5(10932)}return 10932}function s4e(s){return s=s|0,s|0}function o4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=pR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(j5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(a4e(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function j5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function a4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=l4e(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,c4e(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,j5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,u4e(s,d),A4e(d),C=Q;return}}function l4e(s){return s=s|0,536870911}function c4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function u4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function A4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function G5(s){s=s|0,h4e(s)}function f4e(s){s=s|0,p4e(s+24|0)}function p4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function h4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,7,l,g4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function g4e(){return 1860}function d4e(s,l,c){return s=s|0,l=l|0,c=c|0,y4e(n[(m4e(s)|0)>>2]|0,l,c)|0}function m4e(s){return s=s|0,(n[(pR()|0)+24>>2]|0)+(s<<3)|0}function y4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0;return f=C,C=C+32|0,B=f+12|0,m=f+8|0,Q=f,k=f+16|0,d=f+4|0,C4e(k,l),E4e(Q,k,l),Bp(d,c),c=vp(d,c)|0,n[B>>2]=n[Q>>2],FI[s&15](m,B,c),c=I4e(m)|0,GA(m),Dp(d),C=f,c|0}function C4e(s,l){s=s|0,l=l|0}function E4e(s,l,c){s=s|0,l=l|0,c=c|0,w4e(s,c)}function I4e(s){return s=s|0,da(s)|0}function w4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+16|0,c=d,f=l,f&1?(B4e(c,0),$n(f|0,c|0)|0,v4e(s,c),D4e(c)):n[s>>2]=n[l>>2],C=d}function B4e(s,l){s=s|0,l=l|0,KG(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function v4e(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function D4e(s){s=s|0,o[s+8>>0]=0}function S4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=hR()|0,s=P4e(c)|0,un(m,l,d,s,x4e(c,f)|0,f)}function hR(){var s=0,l=0;if(o[8064]|0||(Y5(10968),Zt(68,10968,_|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(br(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Y5(10968)}return 10968}function P4e(s){return s=s|0,s|0}function x4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=hR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(W5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(b4e(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function W5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function b4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=Q4e(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,k4e(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,W5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,F4e(s,d),R4e(d),C=Q;return}}function Q4e(s){return s=s|0,536870911}function k4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function F4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function R4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function Y5(s){s=s|0,L4e(s)}function T4e(s){s=s|0,N4e(s+24|0)}function N4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function L4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,1,l,O4e()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function O4e(){return 1872}function M4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,_4e(n[(U4e(s)|0)>>2]|0,l,c,f,d,m)}function U4e(s){return s=s|0,(n[(hR()|0)+24>>2]|0)+(s<<3)|0}function _4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=C,C=C+32|0,Q=B+16|0,k=B+12|0,M=B+8|0,O=B+4|0,j=B,Bp(Q,l),l=vp(Q,l)|0,Bp(k,c),c=vp(k,c)|0,Bp(M,f),f=vp(M,f)|0,Bp(O,d),d=vp(O,d)|0,Bp(j,m),m=vp(j,m)|0,h7[s&1](l,c,f,d,m),Dp(j),Dp(O),Dp(M),Dp(k),Dp(Q),C=B}function H4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=gR()|0,s=q4e(c)|0,un(m,l,d,s,j4e(c,f)|0,f)}function gR(){var s=0,l=0;if(o[8072]|0||(V5(11004),Zt(69,11004,_|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(br(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));V5(11004)}return 11004}function q4e(s){return s=s|0,s|0}function j4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=C,C=C+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=gR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(K5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(G4e(B,d,m),l=n[c>>2]|0),C=Q,(l-(n[B>>2]|0)>>3)+-1|0}function K5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function G4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=C,C=C+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=W4e(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,Y4e(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,K5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,K4e(s,d),V4e(d),C=Q;return}}function W4e(s){return s=s|0,536870911}function Y4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function K4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Er(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function V4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function V5(s){s=s|0,X4e(s)}function J4e(s){s=s|0,z4e(s+24|0)}function z4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function X4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,12,l,Z4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Z4e(){return 1896}function $4e(s,l,c){s=s|0,l=l|0,c=c|0,tUe(n[(eUe(s)|0)>>2]|0,l,c)}function eUe(s){return s=s|0,(n[(gR()|0)+24>>2]|0)+(s<<3)|0}function tUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+4|0,d=f,rUe(m,l),l=nUe(m,l)|0,Bp(d,c),c=vp(d,c)|0,rf[s&31](l,c),Dp(d),C=f}function rUe(s,l){s=s|0,l=l|0}function nUe(s,l){return s=s|0,l=l|0,iUe(l)|0}function iUe(s){return s=s|0,s|0}function sUe(){var s=0;return o[8080]|0||(J5(11040),Zt(70,11040,_|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),br(11040)|0||J5(11040),11040}function J5(s){s=s|0,lUe(s),Pg(s,71)}function oUe(s){s=s|0,aUe(s+24|0)}function aUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function lUe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,7,l,fUe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cUe(s){s=s|0,uUe(s)}function uUe(s){s=s|0,AUe(s)}function AUe(s){s=s|0,o[s+8>>0]=1}function fUe(){return 1936}function pUe(){return hUe()|0}function hUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,m=s+4|0,n[m>>2]=Gt(1)|0,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],gUe(f,m,d),n[c>>2]=f,C=l,s|0}function gUe(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function dUe(s){s=s|0,Zm(s),pt(s)}function mUe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function yUe(s){s=s|0,pt(s)}function CUe(){var s=0;return o[8088]|0||(SUe(11076),Zt(25,11076,_|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function EUe(s,l){s=s|0,l=l|0,n[s>>2]=IUe()|0,n[s+4>>2]=wUe()|0,n[s+12>>2]=l,n[s+8>>2]=BUe()|0,n[s+32>>2]=10}function IUe(){return 11745}function wUe(){return 1940}function BUe(){return Kv()|0}function vUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(DUe(c),pt(c)):l|0&&pt(l)}function DUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&xp(s)}function SUe(s){s=s|0,wp(s)}function kc(s,l){s=s|0,l=l|0,n[s>>2]=l}function dR(s){return s=s|0,n[s>>2]|0}function PUe(s){return s=s|0,o[n[s>>2]>>0]|0}function xUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,n[f>>2]=n[s>>2],bUe(l,f)|0,C=c}function bUe(s,l){s=s|0,l=l|0;var c=0;return c=QUe(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function QUe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,za(f),s=da(s)|0,l=kUe(s,n[l>>2]|0)|0,Xa(f),C=c,l|0}function za(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function kUe(s,l){s=s|0,l=l|0;var c=0;return c=bl(FUe()|0)|0,Dn(0,c|0,s|0,cR(l)|0)|0}function Xa(s){s=s|0,M5(n[s>>2]|0,n[s+4>>2]|0)}function FUe(){var s=0;return o[8096]|0||(RUe(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function RUe(s){s=s|0,Ql(s,TUe()|0,1)}function TUe(){return 1948}function NUe(){LUe()}function LUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0;if(Le=C,C=C+16|0,O=Le+4|0,j=Le,Fi(65536,10804,n[2702]|0,10812),c=C5()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;hc(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=E5()|0,l=n[s>>2]|0,l|0)do du(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while((l|0)!=0);du(OUe()|0,5167),M=Km()|0,s=n[M>>2]|0;e:do if(s|0){do MUe(n[s+4>>2]|0),s=n[s>>2]|0;while((s|0)!=0);if(s=n[M>>2]|0,s|0){k=M;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(UUe(d)|0);)if(n[j>>2]=k,n[O>>2]=n[j>>2],_Ue(M,O)|0,!s)break e;if(HUe(d),k=n[k>>2]|0,l=z5(d)|0,m=_i()|0,B=C,C=C+((1*(l<<2)|0)+15&-16)|0,Q=C,C=C+((1*(l<<2)|0)+15&-16)|0,l=n[(F5(d)|0)>>2]|0,l|0)for(c=B,f=Q;n[c>>2]=n[(Vm(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Re=Vm(d)|0,l=qUe(d)|0,c=z5(d)|0,f=jUe(d)|0,mu(Re|0,l|0,B|0,Q|0,c|0,f|0,nR(d)|0),Ui(m|0)}while((s|0)!=0)}}while(0);if(s=n[(iR()|0)>>2]|0,s|0)do Re=s+4|0,M=sR(Re)|0,d=xI(M)|0,m=SI(M)|0,B=(PI(M)|0)+1|0,Q=Zv(M)|0,k=X5(Re)|0,M=br(M)|0,O=Jv(Re)|0,j=mR(Re)|0,Il(0,d|0,m|0,B|0,Q|0,k|0,M|0,O|0,j|0,yR(Re)|0),s=n[s>>2]|0;while((s|0)!=0);s=n[(Km()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(se=n[(Vm(l)|0)>>2]|0,We=n[(R5(l)|0)>>2]|0,We|0)){c=We;do{l=c+4|0,f=sR(l)|0;r:do if(f|0)switch(br(f)|0){case 0:break t;case 4:case 3:case 2:{Q=xI(f)|0,k=SI(f)|0,M=(PI(f)|0)+1|0,O=Zv(f)|0,j=br(f)|0,Re=Jv(l)|0,Il(se|0,Q|0,k|0,M|0,O|0,0,j|0,Re|0,mR(l)|0,yR(l)|0);break r}case 1:{B=xI(f)|0,Q=SI(f)|0,k=(PI(f)|0)+1|0,M=Zv(f)|0,O=X5(l)|0,j=br(f)|0,Re=Jv(l)|0,Il(se|0,B|0,Q|0,k|0,M|0,O|0,j|0,Re|0,mR(l)|0,yR(l)|0);break r}case 5:{M=xI(f)|0,O=SI(f)|0,j=(PI(f)|0)+1|0,Re=Zv(f)|0,Il(se|0,M|0,O|0,j|0,Re|0,GUe(f)|0,br(f)|0,0,0,0);break r}default:break r}while(0);c=n[c>>2]|0}while((c|0)!=0)}if(s=n[s>>2]|0,!s)break e}Rt()}while(0);Ee(),C=Le}function OUe(){return 11703}function MUe(s){s=s|0,o[s+40>>0]=0}function UUe(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function _Ue(s,l){return s=s|0,l=l|0,l=WUe(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],pt(s),n[l>>2]|0}function HUe(s){s=s|0,o[s+40>>0]=1}function z5(s){return s=s|0,n[s+20>>2]|0}function qUe(s){return s=s|0,n[s+8>>2]|0}function jUe(s){return s=s|0,n[s+32>>2]|0}function Zv(s){return s=s|0,n[s+4>>2]|0}function X5(s){return s=s|0,n[s+4>>2]|0}function mR(s){return s=s|0,n[s+8>>2]|0}function yR(s){return s=s|0,n[s+16>>2]|0}function GUe(s){return s=s|0,n[s+20>>2]|0}function WUe(s){return s=s|0,n[s>>2]|0}function $v(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0;Tt=C,C=C+16|0,se=Tt;do if(s>>>0<245){if(M=s>>>0<11?16:s+11&-8,s=M>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<<l):(n[m+12>>2]=s,n[c>>2]=m),Ge=l<<3,n[f+4>>2]=Ge|3,Ge=f+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1,Ge=d,C=Tt,Ge|0;if(O=n[2785]|0,M>>>0>O>>>0){if(c|0)return l=2<<s,l=c<<s&(l|0-l),l=(l&0-l)+-1|0,B=l>>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<<f),n[2783]=s):(n[c+12>>2]=l,n[s>>2]=c,s=j),m=(f<<3)-M|0,n[d+4>>2]=M|3,f=d+M|0,n[f+4>>2]=m|1,n[f+m>>2]=m,O|0&&(d=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,Ge=B,C=Tt,Ge|0;if(Q=n[2784]|0,Q){if(c=(Q&0-Q)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,k=c>>>2&4,c=c>>>k,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|k|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-M|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)k=s,m=c;else{do B=(n[f+4>>2]&-8)-M|0,k=B>>>0<c>>>0,c=k?B:c,s=k?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while((f|0)!=0);k=s,m=c}if(B=k+M|0,k>>>0<B>>>0){d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[k+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(0);do if(d|0){if(l=n[k+28>>2]|0,s=11436+(l<<2)|0,(k|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=Q&~(1<<l);break}}else if(n[d+16+(((n[d+16>>2]|0)!=(k|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[k+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[k+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(0);return m>>>0<16?(Ge=m+M|0,n[k+4>>2]=Ge|3,Ge=k+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1):(n[k+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,O|0&&(f=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<<l,j&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),Ge=k+8|0,C=Tt,Ge|0}else j=M}else j=M}else j=M}else if(s>>>0<=4294967231)if(s=s+11|0,M=s&-8,k=n[2784]|0,k){f=0-M|0,s=s>>>8,s?M>>>0>16777215?Q=31:(j=(s+1048320|0)>>>16&8,He=s<<j,O=(He+520192|0)>>>16&4,He=He<<O,Q=(He+245760|0)>>>16&2,Q=14-(O|j|Q)+(He<<Q>>>15)|0,Q=M>>>(Q+7|0)&1|Q<<1):Q=0,c=n[11436+(Q<<2)>>2]|0;e:do if(!c)c=0,s=0,He=57;else for(s=0,B=M<<((Q|0)==31?0:25-(Q>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-M|0,d>>>0<f>>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,He=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,He=57;break}else B=B<<((d^1)&1)}while(0);if((He|0)==57){if((c|0)==0&(s|0)==0){if(s=2<<Q,s=k&(s|0-s),!s){j=M;break}j=(s&0-s)+-1|0,B=j>>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,Q=j>>>2&4,j=j>>>Q,O=j>>>1&2,j=j>>>O,c=j>>>1&1,s=0,c=n[11436+((m|B|Q|O|c)+(j>>>c)<<2)>>2]|0}c?(d=c,He=61):(Q=s,B=f)}if((He|0)==61)for(;;)if(He=0,c=(n[d+4>>2]&-8)-M|0,j=c>>>0<f>>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,He=61;else{Q=s,B=c;break}if((Q|0)!=0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=Q+M|0,Q>>>0>=m>>>0)return Ge=0,C=Tt,Ge|0;d=n[Q+24>>2]|0,l=n[Q+12>>2]|0;do if((l|0)==(Q|0)){if(s=Q+20|0,l=n[s>>2]|0,!l&&(s=Q+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else Ge=n[Q+8>>2]|0,n[Ge+12>>2]=l,n[l+8>>2]=Ge;while(0);do if(d){if(s=n[Q+28>>2]|0,c=11436+(s<<2)|0,(Q|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=k&~(1<<s),n[2784]=f;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(Q|0)&1)<<2)>>2]=l,!l){f=k;break}n[l+24>>2]=d,s=n[Q+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[Q+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=k}else f=k;while(0);do if(B>>>0>=16){if(n[Q+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(He=(l+1048320|0)>>>16&8,Ge=l<<He,at=(Ge+520192|0)>>>16&4,Ge=Ge<<at,l=(Ge+245760|0)>>>16&2,l=14-(at|He|l)+(Ge<<l>>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<<l,!(f&s)){n[2784]=f|s,n[c>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){He=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=96;break}}if((He|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((He|0)==97){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=m,n[He>>2]=m,n[m+8>>2]=Ge,n[m+12>>2]=c,n[m+24>>2]=0;break}}else Ge=B+M|0,n[Q+4>>2]=Ge|3,Ge=Q+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1;while(0);return Ge=Q+8|0,C=Tt,Ge|0}else j=M}else j=M;else j=-1;while(0);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(Ge=s+j|0,n[2788]=Ge,n[2785]=l,n[Ge+4>>2]=l|1,n[Ge+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,Ge=s+c+4|0,n[Ge>>2]=n[Ge>>2]|1),Ge=s+8|0,C=Tt,Ge|0;if(B=n[2786]|0,B>>>0>j>>>0)return at=B-j|0,n[2786]=at,Ge=n[2789]|0,He=Ge+j|0,n[2789]=He,n[He+4>>2]=at|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,C=Tt,Ge|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=se&-16^1431655768,n[se>>2]=s,n[2901]=s,s=4096),Q=j+48|0,k=j+47|0,m=s+k|0,d=0-s|0,M=m&d,M>>>0<=j>>>0||(s=n[2893]|0,s|0&&(O=n[2891]|0,se=O+M|0,se>>>0<=O>>>0|se>>>0>s>>>0)))return Ge=0,C=Tt,Ge|0;e:do if(n[2894]&4)l=0,He=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Re=f+4|0,(s+(n[Re>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{He=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=bp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Re>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,He=135;break e}}else f=s,He=126;else l=0}else He=118;while(0);do if((He|0)==118)if(c=bp(0)|0,(c|0)!=-1&&(l=c,We=n[2902]|0,Le=We+-1|0,l=((Le&l|0)==0?0:(Le+l&0-We)-l|0)+M|0,We=n[2891]|0,Le=l+We|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Re=n[2893]|0,Re|0&&Le>>>0<=We>>>0|Le>>>0>Re>>>0){l=0;break}if(s=bp(l|0)|0,(s|0)==(c|0)){B=l,m=c,He=135;break e}else f=s,He=126}else l=0;while(0);do if((He|0)==126){if(c=0-l|0,!(Q>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,He=135;break e}if(s=n[2903]|0,s=k-l+s&0-s,s>>>0>=2147483647){B=l,m=f,He=135;break e}if((bp(s|0)|0)==-1){bp(c|0)|0,l=0;break}else{B=s+l|0,m=f,He=135;break e}}while(0);n[2894]=n[2894]|4,He=133}while(0);if((He|0)==133&&M>>>0<2147483647&&(at=bp(M|0)|0,Re=bp(0)|0,et=Re-at|0,Ze=et>>>0>(j+40|0)>>>0,!((at|0)==-1|Ze^1|at>>>0<Re>>>0&((at|0)!=-1&(Re|0)!=-1)^1))&&(B=Ze?et:l,m=at,He=135),(He|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),k=n[2789]|0;do if(k){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){He=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((He|0)==145&&(n[l+12>>2]&8|0)==0&&k>>>0<m>>>0&k>>>0>=s>>>0){n[c>>2]=f+B,Ge=k+8|0,Ge=(Ge&7|0)==0?0:0-Ge&7,He=k+Ge|0,Ge=(n[2786]|0)+(B-Ge)|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){He=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((He|0)==153&&(n[l+12>>2]&8|0)==0){n[l>>2]=m,O=l+4|0,n[O>>2]=(n[O>>2]|0)+B,O=m+8|0,O=m+((O&7|0)==0?0:0-O&7)|0,l=c+8|0,l=c+((l&7|0)==0?0:0-l&7)|0,M=O+j|0,Q=l-O-j|0,n[O+4>>2]=j|3;do if((l|0)!=(k|0)){if((l|0)==(n[2788]|0)){Ge=(n[2785]|0)+Q|0,n[2785]=Ge,n[2788]=M,n[M+4>>2]=Ge|1,n[M+Ge>>2]=Ge;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<<f);break}else{n[s+12>>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else Ge=n[l+8>>2]|0,n[Ge+12>>2]=s,n[s+8>>2]=Ge;while(0);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<<c);break e}while(0);if(n[s+24>>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(0);l=l+B|0,d=B+Q|0}else d=Q;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}He=(l+1048320|0)>>>16&8,Ge=l<<He,at=(Ge+520192|0)>>>16&4,Ge=Ge<<at,l=(Ge+245760|0)>>>16&2,l=14-(at|He|l)+(Ge<<l>>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(0);if(f=11436+(l<<2)|0,n[M+28>>2]=l,s=M+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<<l,!(s&c)){n[2784]=s|c,n[f>>2]=M,n[M+24>>2]=f,n[M+12>>2]=M,n[M+8>>2]=M;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){He=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=193;break}}if((He|0)==193){n[f>>2]=M,n[M+24>>2]=c,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((He|0)==194){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=M,n[He>>2]=M,n[M+8>>2]=Ge,n[M+12>>2]=c,n[M+24>>2]=0;break}}else Ge=(n[2786]|0)+Q|0,n[2786]=Ge,n[2789]=M,n[M+4>>2]=Ge|1;while(0);return Ge=O+8|0,C=Tt,Ge|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=k>>>0&&(Ge=s+(n[l+4>>2]|0)|0,Ge>>>0>k>>>0));)l=n[l+8>>2]|0;d=Ge+-47|0,s=d+8|0,s=d+((s&7|0)==0?0:0-s&7)|0,d=k+16|0,s=s>>>0<d>>>0?k:s,l=s+8|0,c=m+8|0,c=(c&7|0)==0?0:0-c&7,He=m+c|0,c=B+-40-c|0,n[2789]=He,n[2786]=c,n[He+4>>2]=c|1,n[He+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do He=l,l=l+4|0,n[l>>2]=7;while((He+8|0)>>>0<Ge>>>0);if((s|0)!=(k|0)){if(m=s-k|0,n[c>>2]=n[c>>2]&-2,n[k+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=k,n[l+12>>2]=k,n[k+8>>2]=l,n[k+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(He=(l+1048320|0)>>>16&8,Ge=l<<He,at=(Ge+520192|0)>>>16&4,Ge=Ge<<at,c=(Ge+245760|0)>>>16&2,c=14-(at|He|c)+(Ge<<c>>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[k+28>>2]=c,n[k+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<<c,!(l&s)){n[2784]=l|s,n[f>>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){He=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=215;break}}if((He|0)==215){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((He|0)==216){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=k,n[He>>2]=k,n[k+8>>2]=Ge,n[k+12>>2]=c,n[k+24>>2]=0;break}}}else{Ge=n[2787]|0,(Ge|0)==0|m>>>0<Ge>>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do Ge=11172+(l<<1<<2)|0,n[Ge+12>>2]=Ge,n[Ge+8>>2]=Ge,l=l+1|0;while((l|0)!=32);Ge=m+8|0,Ge=(Ge&7|0)==0?0:0-Ge&7,He=m+Ge|0,Ge=B+-40-Ge|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905]}while(0);if(l=n[2786]|0,l>>>0>j>>>0)return at=l-j|0,n[2786]=at,Ge=n[2789]|0,He=Ge+j|0,n[2789]=He,n[He+4>>2]=at|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,C=Tt,Ge|0}return n[(zm()|0)>>2]=12,Ge=0,C=Tt,Ge|0}function eD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0;if(!!s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,k=c+l|0;do if(s&1)Q=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0<d>>>0))return;if((B|0)==(n[2788]|0)){if(s=k+4|0,l=n[s>>2]|0,(l&3|0)!=3){Q=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<<c),Q=B,l=m;break}else{n[s+12>>2]=l,n[l+8>>2]=s,Q=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else Q=n[B+8>>2]|0,n[Q+12>>2]=s,n[s+8>>2]=Q;while(0);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<<l),Q=B,l=m;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){Q=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,Q=B,l=m):(Q=B,l=m)}else Q=B,l=m}while(0);if(!(B>>>0>=k>>>0)&&(s=k+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[Q+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(k|0)==(n[2789]|0)){if(k=(n[2786]|0)+l|0,n[2786]=k,n[2789]=Q,n[Q+4>>2]=k|1,(Q|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((k|0)==(s|0)){k=(n[2785]|0)+l|0,n[2785]=k,n[2788]=B,n[Q+4>>2]=k|1,n[B+k>>2]=k;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[k+8>>2]|0,s=n[k+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<<c);break}else{n[l+12>>2]=s,n[s+8>>2]=l;break}else{m=n[k+24>>2]|0,s=n[k+12>>2]|0;do if((s|0)==(k|0)){if(c=k+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[k+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(0);if(m|0){if(s=n[k+28>>2]|0,l=11436+(s<<2)|0,(k|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<<s);break}}else if(n[m+16+(((n[m+16>>2]|0)!=(k|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=k+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(0);if(n[Q+4>>2]=d|1,n[B+d>>2]=d,(Q|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<<s,l&s?(l=c+8|0,s=n[l>>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=Q,n[s+12>>2]=Q,n[Q+8>>2]=s,n[Q+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,k=s<<B,m=(k+520192|0)>>>16&4,k=k<<m,s=(k+245760|0)>>>16&2,s=14-(m|B|s)+(k<<s>>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[Q+28>>2]=s,n[Q+20>>2]=0,n[Q+16>>2]=0,l=n[2784]|0,c=1<<s;do if(l&c){for(l=d<<((s|0)==31?0:25-(s>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=Q,n[Q+24>>2]=c,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}else if((s|0)==73){B=c+8|0,k=n[B>>2]|0,n[k+12>>2]=Q,n[B>>2]=Q,n[Q+8>>2]=k,n[Q+12>>2]=c,n[Q+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=Q,n[Q+24>>2]=f,n[Q+12>>2]=Q,n[Q+8>>2]=Q;while(0);if(k=(n[2791]|0)+-1|0,n[2791]=k,!k)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function YUe(){return 11628}function KUe(s){s=s|0;var l=0,c=0;return l=C,C=C+16|0,c=l,n[c>>2]=zUe(n[s+60>>2]|0)|0,s=tD(yc(6,c|0)|0)|0,C=l,s|0}function Z5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0;j=C,C=C+48|0,M=j+16|0,m=j,d=j+32|0,Q=s+28|0,f=n[Q>>2]|0,n[d>>2]=f,k=s+20|0,f=(n[k>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=tD(Hi(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,We=n[d+4>>2]|0,se=m>>>0>We>>>0,d=se?d+8|0:d,l=(se<<31>>31)+l|0,We=m-(se?We:0)|0,n[d>>2]=(n[d>>2]|0)+We,se=d+4|0,n[se>>2]=(n[se>>2]|0)-We,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=tD(Hi(146,M|0)|0)|0,(f|0)==(m|0)){O=3;break e}n[s+16>>2]=0,n[Q>>2]=0,n[k>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else O=3;while(0);return(O|0)==3&&(We=n[s+44>>2]|0,n[s+16>>2]=We+(n[s+48>>2]|0),n[Q>>2]=We,n[k>>2]=We),C=j,c|0}function VUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=C,C=C+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(tD(ra(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,C=d,s|0}function tD(s){return s=s|0,s>>>0>4294963200&&(n[(zm()|0)>>2]=0-s,s=-1),s|0}function zm(){return(JUe()|0)+64|0}function JUe(){return CR()|0}function CR(){return 2084}function zUe(s){return s=s|0,s|0}function XUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=C,C=C+32|0,f=d,n[s+36>>2]=1,(n[s>>2]&64|0)==0&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,yu(54,f|0)|0)&&(o[s+75>>0]=-1),f=Z5(s,l,c)|0,C=d,f|0}function $5(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,c<<24>>24==0||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(c<<24>>24==0||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function ZUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(0);return s|0}function e7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0;Re=C,C=C+224|0,O=Re+120|0,j=Re+80|0,We=Re,Le=Re+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[O>>2]=n[c>>2],(ER(0,l,O,We,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?se=$Ue(s)|0:se=0,c=n[s>>2]|0,M=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=ER(s,l,O,We,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Le,B=s+28|0,n[B>>2]=Le,Q=s+20|0,n[Q>>2]=Le,n[f>>2]=80,k=s+16|0,n[k>>2]=Le+80,c=ER(s,l,O,We,j)|0,m&&(sD[n[s+36>>2]&7](s,0,0)|0,c=(n[Q>>2]|0)==0?-1:c,n[d>>2]=m,n[f>>2]=0,n[k>>2]=0,n[B>>2]=0,n[Q>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|M,se|0&&e3e(s),c=(f&32|0)==0?c:-1),C=Re,c|0}function ER(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0;rr=C,C=C+64|0,ir=rr+16|0,Jt=rr,Tt=rr+24|0,Ir=rr+8|0,Qr=rr+20|0,n[ir>>2]=l,at=(s|0)!=0,He=Tt+40|0,Ge=He,Tt=Tt+39|0,Rr=Ir+4|0,B=0,m=0,O=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(zm()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(0);if(B=o[l>>0]|0,B<<24>>24)Q=l;else{Ze=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=Q,Ze=9;break t}case 0:{B=Q;break t}default:}et=Q+1|0,n[ir>>2]=et,B=o[et>>0]|0,Q=et}t:do if((Ze|0)==9)for(;;){if(Ze=0,(o[Q+1>>0]|0)!=37)break t;if(B=B+1|0,Q=Q+2|0,n[ir>>2]=Q,(o[Q>>0]|0)==37)Ze=9;else break}while(0);if(B=B-l|0,at&&ss(s,l,B),B|0){l=Q;continue}k=Q+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10?(et=(o[Q+2>>0]|0)==36,Re=et?B:-1,O=et?1:O,k=et?Q+3|0:k):Re=-1,n[ir>>2]=k,B=o[k>>0]|0,Q=(B<<24>>24)+-32|0;t:do if(Q>>>0<32)for(M=0,j=B;;){if(B=1<<Q,!(B&75913)){B=j;break t}if(M=B|M,k=k+1|0,n[ir>>2]=k,B=o[k>>0]|0,Q=(B<<24>>24)+-32|0,Q>>>0>=32)break;j=B}else M=0;while(0);if(B<<24>>24==42){if(Q=k+1|0,B=(o[Q>>0]|0)+-48|0,B>>>0<10&&(o[k+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[Q>>0]|0)+-48<<3)>>2]|0,O=1,k=k+3|0;else{if(O|0){m=-1;break}at?(O=(n[c>>2]|0)+(4-1)&~(4-1),B=n[O>>2]|0,n[c>>2]=O+4,O=0,k=Q):(B=0,O=0,k=Q)}n[ir>>2]=k,et=(B|0)<0,B=et?0-B|0:B,M=et?M|8192:M}else{if(B=t7(ir)|0,(B|0)<0){m=-1;break}k=n[ir>>2]|0}do if((o[k>>0]|0)==46){if((o[k+1>>0]|0)!=42){n[ir>>2]=k+1,Q=t7(ir)|0,k=n[ir>>2]|0;break}if(j=k+2|0,Q=(o[j>>0]|0)+-48|0,Q>>>0<10&&(o[k+3>>0]|0)==36){n[d+(Q<<2)>>2]=10,Q=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,k=k+4|0,n[ir>>2]=k;break}if(O|0){m=-1;break e}at?(et=(n[c>>2]|0)+(4-1)&~(4-1),Q=n[et>>2]|0,n[c>>2]=et+4):Q=0,n[ir>>2]=j,k=j}else Q=-1;while(0);for(Le=0;;){if(((o[k>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(et=k+1|0,n[ir>>2]=et,j=o[(o[k>>0]|0)+-65+(5178+(Le*58|0))>>0]|0,se=j&255,(se+-1|0)>>>0<8)Le=se,k=et;else break}if(!(j<<24>>24)){m=-1;break}We=(Re|0)>-1;do if(j<<24>>24==19)if(We){m=-1;break e}else Ze=49;else{if(We){n[d+(Re<<2)>>2]=se,We=f+(Re<<3)|0,Re=n[We+4>>2]|0,Ze=Jt,n[Ze>>2]=n[We>>2],n[Ze+4>>2]=Re,Ze=49;break}if(!at){m=0;break e}r7(Jt,se,c)}while(0);if((Ze|0)==49&&(Ze=0,!at)){B=0,l=et;continue}k=o[k>>0]|0,k=(Le|0)!=0&(k&15|0)==3?k&-33:k,We=M&-65537,Re=(M&8192|0)==0?M:We;t:do switch(k|0){case 110:switch((Le&255)<<24>>24){case 0:{n[n[Jt>>2]>>2]=m,B=0,l=et;continue e}case 1:{n[n[Jt>>2]>>2]=m,B=0,l=et;continue e}case 2:{B=n[Jt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}case 3:{a[n[Jt>>2]>>1]=m,B=0,l=et;continue e}case 4:{o[n[Jt>>2]>>0]=m,B=0,l=et;continue e}case 6:{n[n[Jt>>2]>>2]=m,B=0,l=et;continue e}case 7:{B=n[Jt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}default:{B=0,l=et;continue e}}case 112:{k=120,Q=Q>>>0>8?Q:8,l=Re|8,Ze=61;break}case 88:case 120:{l=Re,Ze=61;break}case 111:{k=Jt,l=n[k>>2]|0,k=n[k+4>>2]|0,se=r3e(l,k,He)|0,We=Ge-se|0,M=0,j=5642,Q=(Re&8|0)==0|(Q|0)>(We|0)?Q:We+1|0,We=Re,Ze=67;break}case 105:case 100:if(k=Jt,l=n[k>>2]|0,k=n[k+4>>2]|0,(k|0)<0){l=rD(0,0,l|0,k|0)|0,k=Ce,M=Jt,n[M>>2]=l,n[M+4>>2]=k,M=1,j=5642,Ze=66;break t}else{M=(Re&2049|0)!=0&1,j=(Re&2048|0)==0?(Re&1|0)==0?5642:5644:5643,Ze=66;break t}case 117:{k=Jt,M=0,j=5642,l=n[k>>2]|0,k=n[k+4>>2]|0,Ze=66;break}case 99:{o[Tt>>0]=n[Jt>>2],l=Tt,M=0,j=5642,se=He,k=1,Q=We;break}case 109:{k=n3e(n[(zm()|0)>>2]|0)|0,Ze=71;break}case 115:{k=n[Jt>>2]|0,k=k|0?k:5652,Ze=71;break}case 67:{n[Ir>>2]=n[Jt>>2],n[Rr>>2]=0,n[Jt>>2]=Ir,se=-1,k=Ir,Ze=75;break}case 83:{l=n[Jt>>2]|0,Q?(se=Q,k=l,Ze=75):(Is(s,32,B,0,Re),l=0,Ze=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=s3e(s,+E[Jt>>3],B,Q,Re,k)|0,l=et;continue e}default:M=0,j=5642,se=He,k=Q,Q=Re}while(0);t:do if((Ze|0)==61)Re=Jt,Le=n[Re>>2]|0,Re=n[Re+4>>2]|0,se=t3e(Le,Re,He,k&32)|0,j=(l&8|0)==0|(Le|0)==0&(Re|0)==0,M=j?0:2,j=j?5642:5642+(k>>4)|0,We=l,l=Le,k=Re,Ze=67;else if((Ze|0)==66)se=Xm(l,k,He)|0,We=Re,Ze=67;else if((Ze|0)==71)Ze=0,Re=i3e(k,0,Q)|0,Le=(Re|0)==0,l=k,M=0,j=5642,se=Le?k+Q|0:Re,k=Le?Q:Re-k|0,Q=We;else if((Ze|0)==75){for(Ze=0,j=k,l=0,Q=0;M=n[j>>2]|0,!(!M||(Q=n7(Qr,M)|0,(Q|0)<0|Q>>>0>(se-l|0)>>>0));)if(l=Q+l|0,se>>>0>l>>>0)j=j+4|0;else break;if((Q|0)<0){m=-1;break e}if(Is(s,32,B,l,Re),!l)l=0,Ze=84;else for(M=0;;){if(Q=n[k>>2]|0,!Q){Ze=84;break t}if(Q=n7(Qr,Q)|0,M=Q+M|0,(M|0)>(l|0)){Ze=84;break t}if(ss(s,Qr,Q),M>>>0>=l>>>0){Ze=84;break}else k=k+4|0}}while(0);if((Ze|0)==67)Ze=0,k=(l|0)!=0|(k|0)!=0,Re=(Q|0)!=0|k,k=((k^1)&1)+(Ge-se)|0,l=Re?se:He,se=He,k=Re?(Q|0)>(k|0)?Q:k:Q,Q=(Q|0)>-1?We&-65537:We;else if((Ze|0)==84){Ze=0,Is(s,32,B,l,Re^8192),B=(B|0)>(l|0)?B:l,l=et;continue}Le=se-l|0,We=(k|0)<(Le|0)?Le:k,Re=We+M|0,B=(B|0)<(Re|0)?Re:B,Is(s,32,B,Re,Q),ss(s,j,M),Is(s,48,B,Re,Q^65536),Is(s,48,We,Le,0),ss(s,l,Le),Is(s,32,B,Re,Q^8192),l=et}e:do if((Ze|0)==87&&!s)if(!O)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(r7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(0);return C=rr,m|0}function $Ue(s){return s=s|0,0}function e3e(s){s=s|0}function ss(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||h3e(l,c,s)|0}function t7(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function r7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+(8-1)&~(8-1),l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}default:break e}while(0);while(0)}function t3e(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=nD(s|0,l|0,4)|0,l=Ce;while(!((s|0)==0&(l|0)==0));return c|0}function r3e(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=nD(s|0,l|0,3)|0,l=Ce;while(!((s|0)==0&(l|0)==0));return c|0}function Xm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=vR(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=BR(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=Ce;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function n3e(s){return s=s|0,u3e(s,n[(c3e()|0)+188>>2]|0)|0}function i3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(0);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=Oe(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(0);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(0);return(c|0?s:0)|0}function Is(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=C,C=C+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,$m(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do ss(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}ss(s,m,d)}C=B}function n7(s,l){return s=s|0,l=l|0,s?s=a3e(s,l,0)|0:s=0,s|0}function s3e(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0,Bn=0;Bn=C,C=C+560|0,k=Bn+8|0,et=Bn,rr=Bn+524|0,Qr=rr,M=Bn+512|0,n[et>>2]=0,Ir=M+12|0,i7(l)|0,(Ce|0)<0?(l=-l,ir=1,Rr=5659):(ir=(d&2049|0)!=0&1,Rr=(d&2048|0)==0?(d&1|0)==0?5660:5665:5662),i7(l)|0,Jt=Ce&2146435072;do if(Jt>>>0<2146435072|(Jt|0)==2146435072&0<0){if(We=+o3e(l,et)*2,B=We!=0,B&&(n[et>>2]=(n[et>>2]|0)+-1),at=m|32,(at|0)==97){Le=m&32,se=(Le|0)==0?Rr:Rr+9|0,j=ir|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=We;else{l=8;do B=B+-1|0,l=l*16;while((B|0)!=0);if((o[se>>0]|0)==45){l=-(l+(-We-l));break}else{l=We+l-l;break}}while(0);Q=n[et>>2]|0,B=(Q|0)<0?0-Q|0:Q,B=Xm(B,((B|0)<0)<<31>>31,Ir)|0,(B|0)==(Ir|0)&&(B=M+11|0,o[B>>0]=48),o[B+-1>>0]=(Q>>31&2)+43,O=B+-2|0,o[O>>0]=m+15,M=(f|0)<1,k=(d&8|0)==0,B=rr;do Jt=~~l,Q=B+1|0,o[B>>0]=u[5694+Jt>>0]|Le,l=(l-+(Jt|0))*16,(Q-Qr|0)==1&&!(k&(M&l==0))?(o[Q>>0]=46,B=B+2|0):B=Q;while(l!=0);Jt=B-Qr|0,Qr=Ir-O|0,Ir=(f|0)!=0&(Jt+-2|0)<(f|0)?f+2|0:Jt,B=Qr+j+Ir|0,Is(s,32,c,B,d),ss(s,se,j),Is(s,48,c,B,d^65536),ss(s,rr,Jt),Is(s,48,Ir-Jt|0,0,0),ss(s,O,Qr),Is(s,32,c,B,d^8192);break}Q=(f|0)<0?6:f,B?(B=(n[et>>2]|0)+-28|0,n[et>>2]=B,l=We*268435456):(l=We,B=n[et>>2]|0),Jt=(B|0)<0?k:k+288|0,k=Jt;do Ge=~~l>>>0,n[k>>2]=Ge,k=k+4|0,l=(l-+(Ge>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=Jt,j=k;;){if(O=(B|0)<29?B:29,B=j+-4|0,B>>>0>=M>>>0){k=0;do He=u7(n[B>>2]|0,0,O|0)|0,He=wR(He|0,Ce|0,k|0,0)|0,Ge=Ce,Ze=vR(He|0,Ge|0,1e9,0)|0,n[B>>2]=Ze,k=BR(He|0,Ge|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);k&&(M=M+-4|0,n[M>>2]=k)}for(k=j;!(k>>>0<=M>>>0);)if(B=k+-4|0,!(n[B>>2]|0))k=B;else break;if(B=(n[et>>2]|0)-O|0,n[et>>2]=B,(B|0)>0)j=k;else break}else M=Jt;if((B|0)<0){f=((Q+25|0)/9|0)+1|0,Re=(at|0)==102;do{if(Le=0-B|0,Le=(Le|0)<9?Le:9,M>>>0<k>>>0){O=(1<<Le)+-1|0,j=1e9>>>Le,se=0,B=M;do Ge=n[B>>2]|0,n[B>>2]=(Ge>>>Le)+se,se=Oe(Ge&O,j)|0,B=B+4|0;while(B>>>0<k>>>0);B=(n[M>>2]|0)==0?M+4|0:M,se?(n[k>>2]=se,M=B,B=k+4|0):(M=B,B=k)}else M=(n[M>>2]|0)==0?M+4|0:M,B=k;k=Re?Jt:M,k=(B-k>>2|0)>(f|0)?k+(f<<2)|0:B,B=(n[et>>2]|0)+Le|0,n[et>>2]=B}while((B|0)<0);B=M,f=k}else B=M,f=k;if(Ge=Jt,B>>>0<f>>>0){if(k=(Ge-B>>2)*9|0,O=n[B>>2]|0,O>>>0>=10){M=10;do M=M*10|0,k=k+1|0;while(O>>>0>=M>>>0)}}else k=0;if(Re=(at|0)==103,Ze=(Q|0)!=0,M=Q-((at|0)!=102?k:0)+((Ze&Re)<<31>>31)|0,(M|0)<(((f-Ge>>2)*9|0)+-9|0)){if(M=M+9216|0,Le=Jt+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(j=n[Le>>2]|0,se=(j>>>0)%(O>>>0)|0,M=(Le+4|0)==(f|0),M&(se|0)==0)M=Le;else if(We=(((j>>>0)/(O>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,He=(O|0)/2|0,l=se>>>0<He>>>0?.5:M&(se|0)==(He|0)?1:1.5,ir&&(He=(o[Rr>>0]|0)==45,l=He?-l:l,We=He?-We:We),M=j-se|0,n[Le>>2]=M,We+l!=We){if(He=M+O|0,n[Le>>2]=He,He>>>0>999999999)for(k=Le;M=k+-4|0,n[k>>2]=0,M>>>0<B>>>0&&(B=B+-4|0,n[B>>2]=0),He=(n[M>>2]|0)+1|0,n[M>>2]=He,He>>>0>999999999;)k=M;else M=Le;if(k=(Ge-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){O=10;do O=O*10|0,k=k+1|0;while(j>>>0>=O>>>0)}}else M=Le;M=M+4|0,M=f>>>0>M>>>0?M:f,He=B}else M=f,He=B;for(at=M;;){if(at>>>0<=He>>>0){et=0;break}if(B=at+-4|0,!(n[B>>2]|0))at=B;else{et=1;break}}f=0-k|0;do if(Re)if(B=((Ze^1)&1)+Q|0,(B|0)>(k|0)&(k|0)>-5?(O=m+-1|0,Q=B+-1-k|0):(O=m+-2|0,Q=B+-1|0),B=d&8,B)Le=B;else{if(et&&(Tt=n[at+-4>>2]|0,(Tt|0)!=0))if((Tt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Tt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((at-Ge>>2)*9|0)+-9|0,(O|32|0)==102){Le=B-M|0,Le=(Le|0)>0?Le:0,Q=(Q|0)<(Le|0)?Q:Le,Le=0;break}else{Le=B+k-M|0,Le=(Le|0)>0?Le:0,Q=(Q|0)<(Le|0)?Q:Le,Le=0;break}}else O=m,Le=d&8;while(0);if(Re=Q|Le,j=(Re|0)!=0&1,se=(O|32|0)==102,se)Ze=0,B=(k|0)>0?k:0;else{if(B=(k|0)<0?f:k,B=Xm(B,((B|0)<0)<<31>>31,Ir)|0,M=Ir,(M-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((M-B|0)<2);o[B+-1>>0]=(k>>31&2)+43,B=B+-2|0,o[B>>0]=O,Ze=B,B=M-B|0}if(B=ir+1+Q+j+B|0,Is(s,32,c,B,d),ss(s,Rr,ir),Is(s,48,c,B,d^65536),se){O=He>>>0>Jt>>>0?Jt:He,Le=rr+9|0,j=Le,se=rr+8|0,M=O;do{if(k=Xm(n[M>>2]|0,0,Le)|0,(M|0)==(O|0))(k|0)==(Le|0)&&(o[se>>0]=48,k=se);else if(k>>>0>rr>>>0){$m(rr|0,48,k-Qr|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}ss(s,k,j-k|0),M=M+4|0}while(M>>>0<=Jt>>>0);if(Re|0&&ss(s,5710,1),M>>>0<at>>>0&(Q|0)>0)for(;;){if(k=Xm(n[M>>2]|0,0,Le)|0,k>>>0>rr>>>0){$m(rr|0,48,k-Qr|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}if(ss(s,k,(Q|0)<9?Q:9),M=M+4|0,k=Q+-9|0,M>>>0<at>>>0&(Q|0)>9)Q=k;else{Q=k;break}}Is(s,48,Q+9|0,9,0)}else{if(Re=et?at:He+4|0,(Q|0)>-1){et=rr+9|0,Le=(Le|0)==0,f=et,j=0-Qr|0,se=rr+8|0,O=He;do{k=Xm(n[O>>2]|0,0,et)|0,(k|0)==(et|0)&&(o[se>>0]=48,k=se);do if((O|0)==(He|0)){if(M=k+1|0,ss(s,k,1),Le&(Q|0)<1){k=M;break}ss(s,5710,1),k=M}else{if(k>>>0<=rr>>>0)break;$m(rr|0,48,k+j|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}while(0);Qr=f-k|0,ss(s,k,(Q|0)>(Qr|0)?Qr:Q),Q=Q-Qr|0,O=O+4|0}while(O>>>0<Re>>>0&(Q|0)>-1)}Is(s,48,Q+18|0,18,0),ss(s,Ze,Ir-Ze|0)}Is(s,32,c,B,d^8192)}else rr=(m&32|0)!=0,B=ir+3|0,Is(s,32,c,B,d&-65537),ss(s,Rr,ir),ss(s,l!=l|!1?rr?5686:5690:rr?5678:5682,3),Is(s,32,c,B,d^8192);while(0);return C=Bn,((B|0)<(c|0)?c:B)|0}function i7(s){s=+s;var l=0;return E[v>>3]=s,l=n[v>>2]|0,Ce=n[v+4>>2]|0,l|0}function o3e(s,l){return s=+s,l=l|0,+ +s7(s,l)}function s7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(E[v>>3]=s,c=n[v>>2]|0,f=n[v+4>>2]|0,d=nD(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+s7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[v>>2]=c,n[v+4>>2]=f&-2146435073|1071644672,s=+E[v>>3]}return+s}function a3e(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(l3e()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(zm()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(zm()|0)>>2]=84,s=-1;break}}else s=1;while(0);return s|0}function l3e(){return CR()|0}function c3e(){return CR()|0}function u3e(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while((o[s>>0]|0)!=0);if(f=f+-1|0,f)s=5;else break}return A3e(c,n[l+20>>2]|0)|0}function A3e(s,l){return s=s|0,l=l|0,f3e(s,l)|0}function f3e(s,l){return s=s|0,l=l|0,l?l=p3e(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function p3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;se=(n[s>>2]|0)+1794895138|0,m=bg(n[s+8>>2]|0,se)|0,f=bg(n[s+12>>2]|0,se)|0,d=bg(n[s+16>>2]|0,se)|0;e:do if(m>>>0<l>>>2>>>0&&(j=l-(m<<2)|0,f>>>0<j>>>0&d>>>0<j>>>0)&&((d|f)&3|0)==0){for(j=f>>>2,O=d>>>2,M=0;;){if(Q=m>>>1,k=M+Q|0,B=k<<1,d=B+j|0,f=bg(n[s+(d<<2)>>2]|0,se)|0,d=bg(n[s+(d+1<<2)>>2]|0,se)|0,!(d>>>0<l>>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=$5(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else M=f?M:k,m=f?Q:m-Q|0}f=B+O|0,d=bg(n[s+(f<<2)>>2]|0,se)|0,f=bg(n[s+(f+1<<2)>>2]|0,se)|0,f>>>0<l>>>0&d>>>0<(l-f|0)>>>0?f=(o[s+(f+d)>>0]|0)==0?s+f|0:0:f=0}else f=0;while(0);return f|0}function bg(s,l){s=s|0,l=l|0;var c=0;return c=p7(s|0)|0,((l|0)==0?s:c)|0}function h3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=c+16|0,d=n[f>>2]|0,d?m=5:g3e(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(Q=c+20|0,B=n[Q>>2]|0,f=B,(d-B|0)>>>0<l>>>0){f=sD[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=sD[n[c+36>>2]&7](c,s,B)|0,f>>>0<B>>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[Q>>2]|0}else m=0,d=s;while(0);Er(f|0,d|0,l|0)|0,n[Q>>2]=(n[Q>>2]|0)+l,f=m+l|0}while(0);return f|0}function g3e(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function Nn(s,l){s=y(s),l=y(l);var c=0,f=0;c=o7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=o7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s<l?l:s;break}}else s=l;while(0);return y(s)}function o7(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function Qg(s,l){s=y(s),l=y(l);var c=0,f=0;c=a7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=a7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s<l?s:l;break}}else s=l;while(0);return y(s)}function a7(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function IR(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;m=(h[v>>2]=s,n[v>>2]|0),Q=(h[v>>2]=l,n[v>>2]|0),c=m>>>23&255,B=Q>>>23&255,k=m&-2147483648,d=Q<<1;e:do if((d|0)!=0&&!((c|0)==255|((d3e(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)Q=Q&8388607|8388608;else{if(m=Q<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,Q=Q<<1-d}d=f-Q|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-Q|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(0);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[v>>2]=c|k,y(h[v>>2]))}else M=3;while(0);return(M|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function d3e(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function m3e(s,l){return s=s|0,l=l|0,e7(n[582]|0,s,l)|0}function Vr(s){s=s|0,Rt()}function Zm(s){s=s|0}function y3e(s,l){return s=s|0,l=l|0,0}function C3e(s){return s=s|0,(l7(s+4|0)|0)==-1?(tf[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function l7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function xp(s){s=s|0,C3e(s)|0&&E3e(s)}function E3e(s){s=s|0;var l=0;l=s+8|0,(n[l>>2]|0)!=0&&(l7(l)|0)!=-1||tf[n[(n[s>>2]|0)+16>>2]&127](s)}function Gt(s){s=s|0;var l=0;for(l=(s|0)==0?1:s;s=$v(l)|0,!(s|0);){if(s=w3e()|0,!s){s=0;break}B7[s&0]()}return s|0}function c7(s){return s=s|0,Gt(s)|0}function pt(s){s=s|0,eD(s)}function I3e(s){s=s|0,(o[s+11>>0]|0)<0&&pt(n[s>>2]|0)}function w3e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function B3e(){}function rD(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,Ce=f,s-c>>>0|0|0}function wR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,Ce=l+f+(c>>>0<s>>>0|0)>>>0,c|0|0}function $m(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function u7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Ce=l<<c|(s&(1<<c)-1<<32-c)>>>32-c,s<<c):(Ce=s<<c-32,0)}function nD(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Ce=l>>>c,s>>>c|(l&(1<<c)-1)<<32-c):(Ce=0,l>>>c-32|0)}function Er(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return gc(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function A7(s){s=s|0;var l=0;return l=o[L+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[L+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[L+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[L+(s>>>24)>>0]|0)+24|0))}function f7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Le=0;if(O=s,k=l,M=k,B=c,se=f,Q=se,!M)return m=(d|0)!=0,Q?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,se=0,d=0,Ce=se,d|0):(se=0,d=0,Ce=se,d|0):(m&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),se=0,d=(O>>>0)/(B>>>0)>>>0,Ce=se,d|0);m=(Q|0)==0;do if(B){if(!m){if(m=(P(Q|0)|0)-(P(M|0)|0)|0,m>>>0<=31){j=m+1|0,Q=31-m|0,l=m-31>>31,B=j,s=O>>>(j>>>0)&l|M<<Q,l=M>>>(j>>>0)&l,m=0,Q=O<<Q;break}return d?(n[d>>2]=s|0,n[d+4>>2]=k|l&0,se=0,d=0,Ce=se,d|0):(se=0,d=0,Ce=se,d|0)}if(m=B-1|0,m&B|0){Q=(P(B|0)|0)+33-(P(M|0)|0)|0,Le=64-Q|0,j=32-Q|0,k=j>>31,We=Q-32|0,l=We>>31,B=Q,s=j-1>>31&M>>>(We>>>0)|(M<<j|O>>>(Q>>>0))&l,l=l&M>>>(Q>>>0),m=O<<Le&k,Q=(M<<Le|O>>>(We>>>0))&k|O<<j&Q-33>>31;break}return d|0&&(n[d>>2]=m&O,n[d+4>>2]=0),(B|0)==1?(We=k|l&0,Le=s|0|0,Ce=We,Le|0):(Le=A7(B|0)|0,We=M>>>(Le>>>0)|0,Le=M<<32-Le|O>>>(Le>>>0)|0,Ce=We,Le|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),We=0,Le=(M>>>0)/(B>>>0)>>>0,Ce=We,Le|0;if(!O)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(Q>>>0)),We=0,Le=(M>>>0)/(Q>>>0)>>>0,Ce=We,Le|0;if(m=Q-1|0,!(m&Q))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&M|l&0),We=0,Le=M>>>((A7(Q|0)|0)>>>0),Ce=We,Le|0;if(m=(P(Q|0)|0)-(P(M|0)|0)|0,m>>>0<=30){l=m+1|0,Q=31-m|0,B=l,s=M<<Q|O>>>(l>>>0),l=M>>>(l>>>0),m=0,Q=O<<Q;break}return d?(n[d>>2]=s|0,n[d+4>>2]=k|l&0,We=0,Le=0,Ce=We,Le|0):(We=0,Le=0,Ce=We,Le|0)}while(0);if(!B)M=Q,k=0,Q=0;else{j=c|0|0,O=se|f&0,M=wR(j|0,O|0,-1,-1)|0,c=Ce,k=Q,Q=0;do f=k,k=m>>>31|k<<1,m=Q|m<<1,f=s<<1|f>>>31|0,se=s>>>31|l<<1|0,rD(M|0,c|0,f|0,se|0)|0,Le=Ce,We=Le>>31|((Le|0)<0?-1:0)<<1,Q=We&1,s=rD(f|0,se|0,We&j|0,(((Le|0)<0?-1:0)>>31|((Le|0)<0?-1:0)<<1)&O|0)|0,l=Ce,B=B-1|0;while((B|0)!=0);M=k,k=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),We=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|k,Le=(m<<1|0>>>31)&-2|Q,Ce=We,Le|0}function BR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f7(s,l,c,f,0)|0}function bp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[w>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(ie()|0,PA(12),-1):(n[w>>2]=s,(s|0)>($()|0)&&(X()|0)==0?(n[w>>2]=l,PA(12),-1):l|0)}function bI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else Er(s,l,c)|0;return s|0}function vR(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=C,C=C+16|0,d=m|0,f7(s,l,c,f,d)|0,C=m,Ce=n[d+4>>2]|0,n[d>>2]|0|0}function p7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function v3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,h7[s&1](l|0,c|0,f|0,d|0,m|0)}function D3e(s,l,c){s=s|0,l=l|0,c=y(c),g7[s&1](l|0,y(c))}function S3e(s,l,c){s=s|0,l=l|0,c=+c,d7[s&31](l|0,+c)}function P3e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(m7[s&0](l|0,y(c),y(f)))}function x3e(s,l){s=s|0,l=l|0,tf[s&127](l|0)}function b3e(s,l,c){s=s|0,l=l|0,c=c|0,rf[s&31](l|0,c|0)}function Q3e(s,l){return s=s|0,l=l|0,Fg[s&31](l|0)|0}function k3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,y7[s&1](l|0,+c,+f,d|0)}function F3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,f_e[s&1](l|0,+c,+f)}function R3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,sD[s&7](l|0,c|0,f|0)|0}function T3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+p_e[s&1](l|0,c|0,f|0)}function N3e(s,l){return s=s|0,l=l|0,+C7[s&15](l|0)}function L3e(s,l,c){return s=s|0,l=l|0,c=+c,h_e[s&1](l|0,+c)|0}function O3e(s,l,c){return s=s|0,l=l|0,c=c|0,SR[s&15](l|0,c|0)|0}function M3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,g_e[s&1](l|0,c|0,+f,+d,m|0)}function U3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,d_e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function _3e(s,l,c){return s=s|0,l=l|0,c=c|0,+E7[s&7](l|0,c|0)}function H3e(s){return s=s|0,oD[s&7]()|0}function q3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,I7[s&1](l|0,c|0,f|0,d|0,m|0)|0}function j3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,m_e[s&1](l|0,c|0,f|0,+d)}function G3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,w7[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function W3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,FI[s&15](l|0,c|0,f|0)}function Y3e(s){s=s|0,B7[s&0]()}function K3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,v7[s&15](l|0,c|0,+f)}function V3e(s,l,c){return s=s|0,l=+l,c=+c,y_e[s&1](+l,+c)|0}function J3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,PR[s&15](l|0,c|0,f|0,d|0)}function z3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(0)}function X3e(s,l){s=s|0,l=y(l),F(1)}function ma(s,l){s=s|0,l=+l,F(2)}function Z3e(s,l,c){return s=s|0,l=y(l),c=y(c),F(3),$e}function hr(s){s=s|0,F(4)}function QI(s,l){s=s|0,l=l|0,F(5)}function Za(s){return s=s|0,F(6),0}function $3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,F(7)}function e_e(s,l,c){s=s|0,l=+l,c=+c,F(8)}function t_e(s,l,c){return s=s|0,l=l|0,c=c|0,F(9),0}function r_e(s,l,c){return s=s|0,l=l|0,c=c|0,F(10),0}function kg(s){return s=s|0,F(11),0}function n_e(s,l){return s=s|0,l=+l,F(12),0}function kI(s,l){return s=s|0,l=l|0,F(13),0}function i_e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,F(14)}function s_e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,F(15)}function DR(s,l){return s=s|0,l=l|0,F(16),0}function o_e(){return F(17),0}function a_e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(18),0}function l_e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,F(19)}function c_e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,F(20)}function iD(s,l,c){s=s|0,l=l|0,c=c|0,F(21)}function u_e(){F(22)}function ey(s,l,c){s=s|0,l=l|0,c=+c,F(23)}function A_e(s,l){return s=+s,l=+l,F(24),0}function ty(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,F(25)}var h7=[z3e,aOe],g7=[X3e,uo],d7=[ma,EI,II,fF,pF,xl,wI,hF,Gm,Fu,vI,gF,Uv,KA,_v,Wm,Hv,qv,Ym,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma],m7=[Z3e],tf=[hr,Zm,HDe,qDe,jDe,ybe,Cbe,Ebe,LNe,ONe,MNe,VLe,JLe,zLe,dUe,mUe,yUe,ds,Tv,jm,YA,BI,Ove,Mve,kDe,XDe,cSe,PSe,jSe,oPe,BPe,MPe,$Pe,gxe,kxe,Kxe,cbe,Obe,$be,gQe,kQe,KQe,cke,xke,jke,nFe,CFe,Qc,zFe,fRe,kRe,JRe,uTe,kTe,HTe,GTe,aNe,uNe,PNe,_Ne,jNe,oLe,vLe,e9,sMe,LMe,XMe,f4e,T4e,J4e,oUe,cUe,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr],rf=[QI,sF,oF,CI,ku,aF,lF,Ip,cF,uF,AF,Mv,VA,Je,ft,jt,Cr,In,Sr,mF,vve,Kve,Fke,Yke,$Re,lMe,FLe,M5,QI,QI,QI,QI],Fg=[Za,KUe,iF,D,ce,Se,It,Ct,xt,Nr,fi,Ao,Ive,wve,Uve,wFe,hTe,cLe,fMe,Ja,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za,Za],y7=[$3e,_ve],f_e=[e_e,QNe],sD=[t_e,Z5,VUe,XUe,uPe,Hbe,eRe,d4e],p_e=[r_e,Nxe],C7=[kg,Ho,rt,wn,Hve,qve,jve,Gve,Wve,Yve,kg,kg,kg,kg,kg,kg],h_e=[n_e,MTe],SR=[kI,y3e,Bve,NDe,kSe,SPe,HPe,pbe,nQe,aFe,Fv,t4e,kI,kI,kI,kI],g_e=[i_e,pSe],d_e=[s_e,M4e],E7=[DR,ni,Vve,Jve,zve,Xxe,DR,DR],oD=[o_e,Xve,mI,ga,VTe,hNe,KNe,pUe],I7=[a_e,AI],m_e=[l_e,NQe],w7=[c_e,Dve],FI=[iD,T,is,Xr,fo,KSe,rxe,XQe,pke,qm,QOe,_Me,$4e,iD,iD,iD],B7=[u_e],v7=[ey,Nv,Lv,Ov,WA,jv,dF,S,CQe,dRe,TTe,ey,ey,ey,ey,ey],y_e=[A_e,TNe],PR=[ty,Cxe,QFe,NRe,BTe,eNe,ENe,eLe,bLe,yMe,vUe,ty,ty,ty,ty,ty];return{_llvm_bswap_i32:p7,dynCall_idd:V3e,dynCall_i:H3e,_i64Subtract:rD,___udivdi3:BR,dynCall_vif:D3e,setThrew:Eu,dynCall_viii:W3e,_bitshift64Lshr:nD,_bitshift64Shl:u7,dynCall_vi:x3e,dynCall_viiddi:M3e,dynCall_diii:T3e,dynCall_iii:O3e,_memset:$m,_sbrk:bp,_memcpy:Er,__GLOBAL__sub_I_Yoga_cpp:Hm,dynCall_vii:b3e,___uremdi3:vR,dynCall_vid:S3e,stackAlloc:so,_nbind_init:NUe,getTempRet0:Ua,dynCall_di:N3e,dynCall_iid:L3e,setTempRet0:kA,_i64Add:wR,dynCall_fiff:P3e,dynCall_iiii:R3e,_emscripten_get_global_libc:YUe,dynCall_viid:K3e,dynCall_viiid:j3e,dynCall_viififi:G3e,dynCall_ii:Q3e,__GLOBAL__sub_I_Binding_cc:XOe,dynCall_viiii:J3e,dynCall_iiiiii:q3e,stackSave:Bl,dynCall_viiiii:v3e,__GLOBAL__sub_I_nbind_cc:Zve,dynCall_vidd:F3e,_free:eD,runPostSets:B3e,dynCall_viiiiii:U3e,establishStackSpace:qi,_memmove:bI,stackRestore:Cu,_malloc:$v,__GLOBAL__sub_I_common_cc:mLe,dynCall_viddi:k3e,dynCall_dii:_3e,dynCall_v:Y3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<4-1;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n<r-1;n=n+1)a.push(allocate(intArrayFromString(e[n]),"i8",ALLOC_NORMAL)),o();a.push(0),a=allocate(a,"i32",ALLOC_NORMAL);try{var u=Module._main(r,a,0);exit(u,!0)}catch(p){if(p instanceof ExitStatus)return;if(p=="SimulateInfiniteLoop"){Module.noExitRuntime=!0;return}else{var A=p;p&&typeof p=="object"&&p.stack&&(A=[p,p.stack]),Module.printErr("exception thrown: "+A),Module.quit(1,p)}}finally{calledMain=!0}};function run(t){if(t=t||Module.arguments,preloadStartTime===null&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` 285`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),Module.buffer?buffer=Module.buffer:buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}if(HEAP32[0]=1668509029,HEAP16[1]=25459,HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;function callRuntimeCallbacks(t){for(;t.length>0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r<t.length;r++){var o=t[r];o>255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o<t.length;++o)HEAP8[e++>>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var C=Browser.mainLoop.remainingBlockers,w=C%1==0?C-1:Math.floor(C);h.counted?Browser.mainLoop.remainingBlockers=w:(w=w+.5,Browser.mainLoop.remainingBlockers=(8*C+w)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0);return}if(!(u<Browser.mainLoop.currentlyRunningMainloop)){if(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u<Browser.mainLoop.currentlyRunningMainloop)&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())}}},a||(e&&e>0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e<r?Module.setStatus(t+" ("+(r-e)+"/"+r+")"):Module.setStatus(t):Module.setStatus("")}},runIter:function(t){if(!ABORT){if(Module.preMainLoop){var e=Module.preMainLoop();if(e===!1)return}try{t()}catch(r){if(r instanceof ExitStatus)return;throw r&&typeof r=="object"&&r.stack&&Module.printErr("exception thrown: "+[r,r.stack]),r}Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),Browser.initted)return;Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch{Browser.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder<"u"?MozBlobBuilder:typeof WebKitBlobBuilder<"u"?WebKitBlobBuilder:Browser.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),Browser.URLObject=typeof window<"u"?window.URL?window.URL:window.webkitURL:void 0,!Module.noImageDecoding&&typeof Browser.URLObject>"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(b){Runtime.warnOnce("Blob constructor present but fails: "+b+"; falling back to blob builder")}if(!h){var C=new Browser.BlobBuilder;C.append(new Uint8Array(n).buffer),h=C.getBlob()}var w=Browser.URLObject.createObjectURL(h),v=new Image;v.onload=function(){assert(v.complete,"Image "+u+" could not be decoded");var E=document.createElement("canvas");E.width=v.width,E.height=v.height;var R=E.getContext("2d");R.drawImage(v,0,0),Module.preloadedImages[u]=E,Browser.URLObject.revokeObjectURL(w),A&&A(n)},v.onerror=function(E){console.log("Image "+w+" could not be decoded"),p&&p()},v.src=w},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function C(R){h||(h=!0,Module.preloadedAudios[u]=R,A&&A(n))}function w(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var v=new Blob([n],{type:Browser.getMimetype(u)})}catch{return w()}var b=Browser.URLObject.createObjectURL(v),E=new Audio;E.addEventListener("canplaythrough",function(){C(E)},!1),E.onerror=function(L){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function _(V){for(var re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ae="=",he="",pe=0,De=0,ge=0;ge<V.length;ge++)for(pe=pe<<8|V[ge],De+=8;De>=6;){var le=pe>>De-6&63;De-=6,he+=re[le]}return De==2?(he+=re[(pe&3)<<4],he+=ae+ae):De==4&&(he+=re[(pe&15)<<2],he+=ae),he}E.src="data:audio/x-"+u.substr(-3)+";base64,"+_(n),C(E)},E.src=b,Browser.safeSetTimeout(function(){C(E)},1e4)}else return w()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var C=Browser.touches[u.identifier];C||(C=h),Browser.lastTouches[u.identifier]=C,Browser.touches[u.identifier]=h}return}var w=t.pageX-(a+e.left),v=t.pageY-(n+e.top);w=w*(r/e.width),v=v*(o/e.height),Browser.mouseMovementX=w-Browser.mouseX,Browser.mouseMovementY=v-Browser.mouseY,Browser.mouseX=w,Browser.mouseY=v}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a<Module.forcedAspectRatio?o=Math.round(a*Module.forcedAspectRatio):a=Math.round(o/Module.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t.parentNode&&typeof screen<"u"){var n=Math.min(screen.width/o,screen.height/a);o=Math.round(o*n),a=Math.round(a*n)}Browser.resizeCanvas?(t.width!=o&&(t.width=o),t.height!=a&&(t.height=a),typeof t.style<"u"&&(t.style.removeProperty("width"),t.style.removeProperty("height"))):(t.width!=e&&(t.width=e),t.height!=r&&(t.height=r),typeof t.style<"u"&&(o!=e||a!=r?(t.style.setProperty("width",o+"px","important"),t.style.setProperty("height",a+"px","important")):(t.style.removeProperty("width"),t.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var t=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,t}},SYSCALLS={varargs:0,get:function(t){SYSCALLS.varargs+=4;var e=HEAP32[SYSCALLS.varargs-4>>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr<X>"],[640,1,"std::unique_ptr<X>"],[5120,1,"std::vector<X>"],[6144,2,"std::array<X, Y>"],[9216,-1,"std::function<X (Y)>"]];function r(p,h,C,w,v,b){if(h==1){var E=w&896;(E==128||E==256||E==384)&&(p="X const")}var R;return b?R=C.replace("X",p).replace("Y",v):R=p.replace("X",C).replace("Y",v),R.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,C,w,v){throw new Error(p+" type "+C.replace("X",h+"?")+(w?" with flag "+w:"")+" in "+v)}function a(p,h,C,w,v,b,E,R){b===void 0&&(b="X"),R===void 0&&(R=1);var L=C(p);if(L)return L;var _=w(p),V=_.placeholderFlag,re=e[V];E&&re&&(b=r(E[2],E[0],b,re[0],"?",!0));var ae;V==0&&(ae="Unbound"),V>=10&&(ae="Corrupt"),R>20&&(ae="Deeply nested"),ae&&o(ae,p,b,V,v||"?");var he=_.paramList[0],pe=a(he,h,C,w,v,b,re,R+1),De,ge={flags:re[0],id:p,name:"",paramList:[pe]},le=[],Pe="?";switch(_.placeholderFlag){case 1:De=pe.spec;break;case 2:if((pe.flags&15360)==1024&&pe.spec.ptrSize==1){ge.flags=7168;break}case 3:case 6:case 5:De=pe.spec,pe.flags&15360;break;case 8:Pe=""+_.paramList[1],ge.paramList.push(_.paramList[1]);break;case 9:for(var g=0,ve=_.paramList[1];g<ve.length;g++){var Ee=ve[g],de=a(Ee,h,C,w,v,b,re,R+1);le.push(de.name),ge.paramList.push(de)}Pe=le.join(", ");break;default:break}if(ge.name=r(re[2],re[0],pe.name,pe.flags,Pe),De){for(var ne=0,Z=Object.keys(De);ne<Z.length;ne++){var me=Z[ne];ge[me]=ge[me]||De[me]}ge.flags|=De.flags}return n(h,ge)}function n(p,h){var C=h.flags,w=C&896,v=C&15360;return!h.name&&v==1024&&(h.ptrSize==1?h.name=(C&16?"":(C&8?"un":"")+"signed ")+"char":h.name=(C&8?"u":"")+(C&32?"float":"int")+(h.ptrSize*8+"_t")),h.ptrSize==8&&!(C&32)&&(v=64),v==2048&&(w==512||w==640?v=4096:w&&(v=3072)),p(v,h)}var u=function(){function p(h){this.id=h.id,this.name=h.name,this.flags=h.flags,this.spec=h}return p.prototype.toString=function(){return this.name},p}(),A={Type:u,getComplexType:a,makeType:n,structureList:e};return t.output=A,t.output||A}function __nbind_register_type(t,e){var r=_nbind.readAsciiString(e),o={flags:10240,id:t,name:r};_nbind.makeType(_nbind.constructType,o)}function __nbind_register_callback_signature(t,e){var r=_nbind.readTypeIdList(t,e),o=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[o]=_nbind.makeJSCaller(r),o}function __extends(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);function o(){this.constructor=t}o.prototype=e.prototype,t.prototype=new o}function __nbind_register_class(t,e,r,o,a,n,u){var A=_nbind.readAsciiString(u),p=_nbind.readPolicyList(e),h=HEAPU32.subarray(t/4,t/4+2),C={flags:2048|(p.Value?2:0),id:h[0],name:A},w=_nbind.makeType(_nbind.constructType,C);w.ptrType=_nbind.getComplexType(h[1],_nbind.constructType,_nbind.getType,_nbind.queryType),w.destroy=_nbind.makeMethodCaller(w.ptrType,{boundID:C.id,flags:0,name:"destroy",num:0,ptr:n,title:w.name+".free",typeList:["void","uint32_t","uint32_t"]}),a&&(w.superIdList=Array.prototype.slice.call(HEAPU32.subarray(r/4,r/4+a)),w.upcastList=Array.prototype.slice.call(HEAPU32.subarray(o/4,o/4+a))),Module[w.name]=w.makeBound(p),_nbind.BindClass.list.push(w)}function _removeAccessorPrefix(t){var e=/^[Gg]et_?([A-Z]?([A-Z]?))/;return t.replace(e,function(r,o,a){return a?o:o.toLowerCase()})}function __nbind_register_function(t,e,r,o,a,n,u,A,p,h){var C=_nbind.getType(t),w=_nbind.readPolicyList(e),v=_nbind.readTypeIdList(r,o),b;if(u==5)b=[{direct:a,name:"__nbindConstructor",ptr:0,title:C.name+" constructor",typeList:["uint32_t"].concat(v.slice(1))},{direct:n,name:"__nbindValueConstructor",ptr:0,title:C.name+" value constructor",typeList:["void","uint32_t"].concat(v.slice(1))}];else{var E=_nbind.readAsciiString(A),R=(C.name&&C.name+".")+E;(u==3||u==4)&&(E=_removeAccessorPrefix(E)),b=[{boundID:t,direct:n,name:E,ptr:a,title:R,typeList:v}]}for(var L=0,_=b;L<_.length;L++){var V=_[L];V.signatureType=u,V.policyTbl=w,V.num=p,V.flags=h,C.addMethod(V)}}function _nbind_value(t,e){_nbind.typeNameTbl[t]||_nbind.throwError("Unknown value type "+t),Module.NBind.bind_value(t,e),_defineHidden(_nbind.typeNameTbl[t].proto.prototype.__nbindValueConstructor)(e.prototype,"__nbindValueConstructor")}Module._nbind_value=_nbind_value;function __nbind_get_value_object(t,e){var r=_nbind.popValue(t);if(!r.fromJS)throw new Error("Object "+r+" has no fromJS function");r.fromJS(function(){r.__nbindValueConstructor.apply(this,Array.prototype.concat.apply([e],arguments))})}function _emscripten_memcpy_big(t,e,r){return HEAPU8.set(HEAPU8.subarray(e,e+r),t),t}function __nbind_register_primitive(t,e,r){var o={flags:1024|r,id:t,ptrSize:e};_nbind.makeType(_nbind.constructType,o)}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___setErrNo(t){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(C,w){var v=___syscall146.buffers[C];assert(v),w===0||w===10?((C===1?Module.print:Module.printErr)(UTF8ArrayToString(v,0)),v.length=0):v.push(w)});for(var u=0;u<a;u++){for(var A=HEAP32[o+u*8>>2],p=HEAP32[o+(u*8+4)>>2],h=0;h<p;h++)___syscall146.printChar(r,HEAPU8[A+h]);n+=p}return n}catch(C){return(typeof FS>"u"||!(C instanceof FS.ErrnoError))&&abort(C),-C.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;t<e.length;t++){var r=e[t];r.finish()}}var ___dso_handle=STATICTOP;STATICTOP+=16,function(_nbind){var typeIdTbl={};_nbind.typeNameTbl={};var Pool=function(){function t(){}return t.lalloc=function(e){e=e+7&-8;var r=HEAPU32[t.usedPtr];if(e>t.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var C=u,w=A,v=p;if(n!==_nbind.ptrMarker){var b=h.__nbindConstructor.apply(h,arguments);C=4608,v=HEAPU32[b/4],w=HEAPU32[b/4+1]}var E={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:C,__nbindPtr:w};v&&(R.__nbindShared=v,_nbind.mark(h));for(var L=0,_=Object.keys(R);L<_.length;L++){var V=_[L];E.value=R[V],Object.defineProperty(h,V,E)}return _defineHidden(0)(h,"__nbindState"),h}return a.prototype.free=function(){e.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},a}(Wrapper);return __decorate([_defineHidden()],r.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],r.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(t)],r.prototype,"__nbindPolicies",void 0),r}_nbind.makeBound=makeBound;function disableMember(t,e){function r(){throw new Error("Accessing deleted object")}Object.defineProperty(t,e,{configurable:!1,enumerable:!1,get:r,set:r})}_nbind.ptrMarker={};var BindClass=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;return o.wireRead=function(a){return _nbind.popValue(a,o.ptrType)},o.wireWrite=function(a){return pushPointer(a,o.ptrType,!0)},o.pendingSuperCount=0,o.ready=!1,o.methodTbl={},r.paramList?(o.classType=r.paramList[0].classType,o.proto=o.classType.proto):o.classType=o,o}return e.prototype.makeBound=function(r){var o=_nbind.makeBound(r,this);return this.proto=o,this.ptrType.proto=o,o},e.prototype.addMethod=function(r){var o=this.methodTbl[r.name]||[];o.push(r),this.methodTbl[r.name]=o},e.prototype.registerMethods=function(r,o){for(var a,n=0,u=Object.keys(r.methodTbl);n<u.length;n++)for(var A=u[n],p=r.methodTbl[A],h=0,C=p;h<C.length;h++){var w=C[h],v=void 0,b=void 0;if(v=this.proto.prototype,!(o&&w.signatureType!=1))switch(w.signatureType){case 1:v=this.proto;case 5:b=_nbind.makeCaller(w),_nbind.addMethod(v,w.name,b,w.typeList.length-1);break;case 4:a=_nbind.makeMethodCaller(r.ptrType,w);break;case 3:Object.defineProperty(v,w.name,{configurable:!0,enumerable:!1,get:_nbind.makeMethodCaller(r.ptrType,w),set:a});break;case 2:b=_nbind.makeMethodCaller(r.ptrType,w),_nbind.addMethod(v,w.name,b,w.typeList.length-1);break;default:break}}},e.prototype.registerSuperMethods=function(r,o,a){if(!a[r.name]){a[r.name]=!0;for(var n=0,u,A=0,p=r.superIdList||[];A<p.length;A++){var h=p[A],C=_nbind.getType(h);n++<o||o<0?u=-1:u=0,this.registerSuperMethods(C,u,a)}this.registerMethods(r,o<0)}},e.prototype.finish=function(){if(this.ready)return this;this.ready=!0,this.superList=(this.superIdList||[]).map(function(a){return _nbind.getType(a).finish()});var r=this.proto;if(this.superList.length){var o=function(){this.constructor=r};o.prototype=this.superList[0].proto.prototype,r.prototype=new o}return r!=Module&&(r.prototype.__nbindType=this),this.registerSuperMethods(this,1,{}),this},e.prototype.upcastStep=function(r,o){if(r==this)return o;for(var a=0;a<this.superList.length;++a){var n=this.superList[a].upcastStep(r,_nbind.callUpcast(this.upcastList[a],o));if(n)return n}return 0},e}(_nbind.BindType);BindClass.list=[],_nbind.BindClass=BindClass;function popPointer(t,e){return t?new e.proto(_nbind.ptrMarker,e.flags,t):null}_nbind.popPointer=popPointer;function pushPointer(t,e,r){if(!(t instanceof _nbind.Wrapper)){if(r)return _nbind.pushValue(t);throw new Error("Type mismatch")}var o=t.__nbindPtr,a=t.__nbindType.classType,n=e.classType;if(t instanceof e.proto)for(;a!=n;)o=_nbind.callUpcast(a.upcastList[0],o),a=a.superList[0];else if(o=a.upcastStep(n,o),!o)throw new Error("Type mismatch");return o}_nbind.pushPointer=pushPointer;function pushMutablePointer(t,e){var r=pushPointer(t,e);if(t.__nbindFlags&1)throw new Error("Passing a const value as a non-const argument");return r}var BindClassPtr=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;o.classType=r.paramList[0].classType,o.proto=o.classType.proto;var a=r.flags&1,n=(o.flags&896)==256&&r.flags&2,u=a?pushPointer:pushMutablePointer,A=n?_nbind.popValue:popPointer;return o.makeWireWrite=function(p,h){return h.Nullable?function(C){return C?u(C,o):0}:function(C){return u(C,o)}},o.wireRead=function(p){return A(p,o)},o.wireWrite=function(p){return u(p,o)},o}return e}(_nbind.BindType);_nbind.BindClassPtr=BindClassPtr;function popShared(t,e){var r=HEAPU32[t/4],o=HEAPU32[t/4+1];return o?new e.proto(_nbind.ptrMarker,e.flags,o,r):null}_nbind.popShared=popShared;function pushShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");return t.__nbindShared}function pushMutableShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");if(t.__nbindFlags&1)throw new Error("Passing a const value as a non-const argument");return t.__nbindShared}var SharedClassPtr=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;o.readResources=[_nbind.resources.pool],o.classType=r.paramList[0].classType,o.proto=o.classType.proto;var a=r.flags&1,n=a?pushShared:pushMutableShared;return o.wireRead=function(u){return popShared(u,o)},o.wireWrite=function(u){return n(u,o)},o}return e}(_nbind.BindType);_nbind.SharedClassPtr=SharedClassPtr,_nbind.externalList=[0];var firstFreeExternal=0,External=function(){function t(e){this.refCount=1,this.data=e}return t.prototype.register=function(){var e=firstFreeExternal;return e?firstFreeExternal=_nbind.externalList[e]:e=_nbind.externalList.length,_nbind.externalList[e]=this,e},t.prototype.reference=function(){++this.refCount},t.prototype.dereference=function(e){--this.refCount==0&&(this.free&&this.free(),_nbind.externalList[e]=firstFreeExternal,firstFreeExternal=e)},t}();_nbind.External=External;function popExternal(t){var e=_nbind.externalList[t];return e.dereference(t),e.data}function pushExternal(t){var e=new External(t);return e.reference(),e.register()}var ExternalType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popExternal,r.wireWrite=pushExternal,r}return e}(_nbind.BindType);_nbind.ExternalType=ExternalType,_nbind.callbackSignatureList=[];var CallbackType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=function(o){return typeof o!="function"&&_nbind.throwError("Type mismatch"),new _nbind.External(o).register()},r}return e}(_nbind.BindType);_nbind.CallbackType=CallbackType,_nbind.valueList=[0];var firstFreeValue=0;function pushValue(t){var e=firstFreeValue;return e?firstFreeValue=_nbind.valueList[e]:e=_nbind.valueList.length,_nbind.valueList[e]=t,e*2+1}_nbind.pushValue=pushValue;function popValue(t,e){if(t||_nbind.throwError("Value type JavaScript class is missing or not registered"),t&1){t>>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t<valueBase?t:popValue((t-valueBase)/4096)}var CreateValueType=function(t){__extends(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.makeWireWrite=function(r){return"(_nbind.pushValue(new "+r+"))"},e}(_nbind.BindType);_nbind.CreateValueType=CreateValueType;var Int64Type=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=push64,r.wireRead=pop64,r}return e}(_nbind.BindType);_nbind.Int64Type=Int64Type;function pushArray(t,e){if(!t)return 0;var r=t.length;if((e.size||e.size===0)&&r<e.size)throw new Error("Type mismatch");var o=e.memberType.ptrSize,a=_nbind.Pool.lalloc(4+r*o);HEAPU32[a/4]=r;var n=e.memberType.heap,u=(a+4)/o,A=e.memberType.wireWrite,p=0;if(A)for(;p<r;)n[u++]=A(t[p++]);else for(;p<r;)n[u++]=t[p++];return a}_nbind.pushArray=pushArray;function popArray(t,e){if(t===0)return null;var r=HEAPU32[t/4],o=new Array(r),a=e.memberType.heap;t=(t+4)/e.memberType.ptrSize;var n=e.memberType.wireRead,u=0;if(n)for(;u<r;)o[u++]=n(a[t++]);else for(;u<r;)o[u++]=a[t++];return o}_nbind.popArray=popArray;var ArrayType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;return o.wireRead=function(a){return popArray(a,o)},o.wireWrite=function(a){return pushArray(a,o)},o.readResources=[_nbind.resources.pool],o.writeResources=[_nbind.resources.pool],o.memberType=r.paramList[0],r.paramList[1]&&(o.size=r.paramList[1]),o}return e}(_nbind.BindType);_nbind.ArrayType=ArrayType;function pushString(t,e){if(t==null)if(e&&e.Nullable)t="";else throw new Error("Type mismatch");if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t),o=_nbind.Pool.lalloc(4+r+1);return HEAPU32[o/4]=r,Module.stringToUTF8Array(t,HEAPU8,o+4,r+1),o}_nbind.pushString=pushString;function popString(t){if(t===0)return null;var e=HEAPU32[t/4];return Module.Pointer_stringify(t+4,e)}_nbind.popString=popString;var StringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popString,r.wireWrite=pushString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushString(a,o)}},e}(_nbind.BindType);_nbind.StringType=StringType;function makeArgList(t){return Array.apply(null,Array(t)).map(function(e,r){return"a"+(r+1)})}function anyNeedsWireWrite(t,e){return t.reduce(function(r,o){return r||o.needsWireWrite(e)},!1)}function anyNeedsWireRead(t,e){return t.reduce(function(r,o){return r||!!o.needsWireRead(e)},!1)}function makeWireRead(t,e,r,o){var a=t.length;return r.makeWireRead?r.makeWireRead(o,t,a):r.wireRead?(t[a]=r.wireRead,"(convertParamList["+a+"]("+o+"))"):o}function makeWireWrite(t,e,r,o){var a,n=t.length;return r.makeWireWrite?a=r.makeWireWrite(o,e,t,n):a=r.wireWrite,a?typeof a=="string"?a:(t[n]=a,"(convertParamList["+n+"]("+o+"))"):o}function buildCallerFunction(dynCall,ptrType,ptr,num,policyTbl,needsWireWrite,prefix,returnType,argTypeList,mask,err){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireRead(convertParamList,policyTbl,returnType,"dynCall("+[prefix].concat(argList.map(function(t,e){return makeWireWrite(convertParamList,policyTbl,argTypeList[e],t)})).join(",")+")"),resourceSet=_nbind.listResources([returnType],argTypeList),sourceCode="function("+argList.join(",")+"){"+(mask?"this.__nbindFlags&mask&&err();":"")+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function buildJSCallerFunction(returnType,argTypeList){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireWrite(convertParamList,null,returnType,"_nbind.externalList[num].data("+argList.map(function(t,e){return makeWireRead(convertParamList,null,argTypeList[e],t)}).join(",")+")"),resourceSet=_nbind.listResources(argTypeList,[returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode="function("+["dummy","num"].concat(argList).join(",")+"){"+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}_nbind.buildJSCallerFunction=buildJSCallerFunction;function makeJSCaller(t){var e=t.length-1,r=_nbind.getTypes(t,"callback"),o=r[0],a=r.slice(1),n=anyNeedsWireRead(a,null),u=o.needsWireWrite(null);if(!u&&!n)switch(e){case 0:return function(A,p){return _nbind.externalList[p].data()};case 1:return function(A,p,h){return _nbind.externalList[p].data(h)};case 2:return function(A,p,h,C){return _nbind.externalList[p].data(h,C)};case 3:return function(A,p,h,C,w){return _nbind.externalList[p].data(h,C,w)};default:break}return buildJSCallerFunction(o,a)}_nbind.makeJSCaller=makeJSCaller;function makeMethodCaller(t,e){var r=e.typeList.length-1,o=e.typeList.slice(0);o.splice(1,0,"uint32_t",e.boundID);var a=_nbind.getTypes(o,e.title),n=a[0],u=a.slice(3),A=n.needsWireRead(e.policyTbl),p=anyNeedsWireWrite(u,e.policyTbl),h=e.ptr,C=e.num,w=_nbind.getDynCall(a,e.title),v=~e.flags&1;function b(){throw new Error("Calling a non-const method on a const object")}if(!A&&!p)switch(r){case 0:return function(){return this.__nbindFlags&v?b():w(h,C,_nbind.pushPointer(this,t))};case 1:return function(E){return this.__nbindFlags&v?b():w(h,C,_nbind.pushPointer(this,t),E)};case 2:return function(E,R){return this.__nbindFlags&v?b():w(h,C,_nbind.pushPointer(this,t),E,R)};case 3:return function(E,R,L){return this.__nbindFlags&v?b():w(h,C,_nbind.pushPointer(this,t),E,R,L)};default:break}return buildCallerFunction(w,t,h,C,e.policyTbl,p,"ptr,num,pushPointer(this,ptrType)",n,u,v,b)}_nbind.makeMethodCaller=makeMethodCaller;function makeCaller(t){var e=t.typeList.length-1,r=_nbind.getTypes(t.typeList,t.title),o=r[0],a=r.slice(1),n=o.needsWireRead(t.policyTbl),u=anyNeedsWireWrite(a,t.policyTbl),A=t.direct,p=t.ptr;if(t.direct&&!n&&!u){var h=_nbind.getDynCall(r,t.title);switch(e){case 0:return function(){return h(A)};case 1:return function(b){return h(A,b)};case 2:return function(b,E){return h(A,b,E)};case 3:return function(b,E,R){return h(A,b,E,R)};default:break}p=0}var C;if(p){var w=t.typeList.slice(0);w.splice(1,0,"uint32_t"),r=_nbind.getTypes(w,t.title),C="ptr,num"}else p=A,C="ptr";var v=_nbind.getDynCall(r,t.title);return buildCallerFunction(v,null,p,t.num,t.policyTbl,u,C,o,a)}_nbind.makeCaller=makeCaller;function makeOverloader(t,e){var r=[];function o(){return r[arguments.length].apply(this,arguments)}return o.addMethod=function(a,n){r[n]=a},o.addMethod(t,e),o}_nbind.makeOverloader=makeOverloader;var Resource=function(){function t(e,r){var o=this;this.makeOpen=function(){return Object.keys(o.openTbl).join("")},this.makeClose=function(){return Object.keys(o.closeTbl).join("")},this.openTbl={},this.closeTbl={},e&&(this.openTbl[e]=!0),r&&(this.closeTbl[r]=!0)}return t.prototype.add=function(e){for(var r=0,o=Object.keys(e.openTbl);r<o.length;r++){var a=o[r];this.openTbl[a]=!0}for(var n=0,u=Object.keys(e.closeTbl);n<u.length;n++){var a=u[n];this.closeTbl[a]=!0}},t.prototype.remove=function(e){for(var r=0,o=Object.keys(e.openTbl);r<o.length;r++){var a=o[r];delete this.openTbl[a]}for(var n=0,u=Object.keys(e.closeTbl);n<u.length;n++){var a=u[n];delete this.closeTbl[a]}},t}();_nbind.Resource=Resource;function listResources(t,e){for(var r=new Resource,o=0,a=t;o<a.length;o++)for(var n=a[o],u=0,A=n.readResources||[];u<A.length;u++){var p=A[u];r.add(p)}for(var h=0,C=e;h<C.length;h++)for(var n=C[h],w=0,v=n.writeResources||[];w<v.length;w++){var p=v[w];r.add(p)}return r}_nbind.listResources=listResources,_nbind.resources={pool:new Resource("var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];","_nbind.Pool.lreset(used,page);")};var ExternalBuffer=function(t){__extends(e,t);function e(r,o){var a=t.call(this,r)||this;return a.ptr=o,a}return e.prototype.free=function(){_free(this.ptr)},e}(_nbind.External);function getBuffer(t){return t instanceof ArrayBuffer?new Uint8Array(t):t instanceof DataView?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function pushBuffer(t,e){if(t==null&&e&&e.Nullable&&(t=[]),typeof t!="object")throw new Error("Type mismatch");var r=t,o=r.byteLength||r.length;if(!o&&o!==0&&r.byteLength!==0)throw new Error("Type mismatch");var a=_nbind.Pool.lalloc(8),n=_malloc(o),u=a/4;return HEAPU32[u++]=o,HEAPU32[u++]=n,HEAPU32[u++]=new ExternalBuffer(t,n).register(),HEAPU8.set(getBuffer(t),n),a}var BufferType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=pushBuffer,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushBuffer(a,o)}},e}(_nbind.BindType);_nbind.BufferType=BufferType;function commitBuffer(t,e,r){var o=_nbind.externalList[t].data,a=Buffer;if(typeof Buffer!="function"&&(a=function(){}),!(o instanceof Array)){var n=HEAPU8.subarray(e,e+r);if(o instanceof a){var u=void 0;typeof Buffer.from=="function"&&Buffer.from.length>=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t<e.length;t++){var r=e[t];r.__nbindState&3||r.free()}dirtyList=[],gcTimer=0}_nbind.mark=function(t){};function toggleLightGC(t){t?_nbind.mark=function(e){dirtyList.push(e),gcTimer||(gcTimer=setTimeout(sweep,0))}:_nbind.mark=function(e){}}_nbind.toggleLightGC=toggleLightGC}(_nbind),Module.requestFullScreen=function t(e,r,o){Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."),Module.requestFullScreen=Module.requestFullscreen,Browser.requestFullScreen(e,r,o)},Module.requestFullscreen=function t(e,r,o){Browser.requestFullscreen(e,r,o)},Module.requestAnimationFrame=function t(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function t(e,r,o){Browser.setCanvasSize(e,r,o)},Module.pauseMainLoop=function t(){Browser.mainLoop.pause()},Module.resumeMainLoop=function t(){Browser.mainLoop.resume()},Module.getUserMedia=function t(){Browser.getUserMedia()},Module.createContext=function t(e,r,o,a){return Browser.createContext(e,r,o,a)},ENVIRONMENT_IS_NODE?_emscripten_get_now=function(){var e=process.hrtime();return e[0]*1e3+e[1]/1e6}:typeof dateNow<"u"?_emscripten_get_now=dateNow:typeof self=="object"&&self.performance&&typeof self.performance.now=="function"?_emscripten_get_now=function(){return self.performance.now()}:typeof performance=="object"&&typeof performance.now=="function"?_emscripten_get_now=function(){return performance.now()}:_emscripten_get_now=Date.now,__ATEXIT__.push(function(){var t=Module._fflush;t&&t(0);var e=___syscall146.printChar;if(!!e){var r=___syscall146.buffers;r[1].length&&e(1,10),r[2].length&&e(2,10)}}),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),C=new t.Float64Array(r),w=e.DYNAMICTOP_PTR|0,v=e.tempDoublePtr|0,b=e.ABORT|0,E=e.STACKTOP|0,R=e.STACK_MAX|0,L=e.cttz_i8|0,_=e.___dso_handle|0,V=0,re=0,ae=0,he=0,pe=t.NaN,De=t.Infinity,ge=0,le=0,Pe=0,g=0,ve=0,Ee=0,de=t.Math.floor,ne=t.Math.abs,Z=t.Math.sqrt,me=t.Math.pow,be=t.Math.cos,ut=t.Math.sin,H=t.Math.tan,yt=t.Math.acos,Me=t.Math.asin,Te=t.Math.atan,Qe=t.Math.atan2,_e=t.Math.exp,qe=t.Math.log,At=t.Math.ceil,Oe=t.Math.imul,x=t.Math.min,I=t.Math.max,P=t.Math.clz32,y=t.Math.fround,F=e.abort,z=e.assert,X=e.enlargeMemory,$=e.getTotalMemory,ie=e.abortOnCannotGrowMemory,ke=e.invoke_viiiii,Ne=e.invoke_vif,st=e.invoke_vid,ht=e.invoke_fiff,Ut=e.invoke_vi,Xt=e.invoke_vii,xt=e.invoke_ii,tn=e.invoke_viddi,Dr=e.invoke_vidd,fr=e.invoke_iiii,Br=e.invoke_diii,jr=e.invoke_di,Hn=e.invoke_iid,bs=e.invoke_iii,ki=e.invoke_viiddi,gs=e.invoke_viiiiii,to=e.invoke_dii,Di=e.invoke_i,Qs=e.invoke_iiiiii,ro=e.invoke_viiid,hc=e.invoke_viififi,gu=e.invoke_viii,cp=e.invoke_v,up=e.invoke_viid,ks=e.invoke_idd,Cn=e.invoke_viiii,no=e._emscripten_asm_const_iiiii,Fs=e._emscripten_asm_const_iiidddddd,Cl=e._emscripten_asm_const_iiiid,Il=e.__nbind_reference_external,io=e._emscripten_asm_const_iiiiiiii,Ue=e._removeAccessorPrefix,Fn=e._typeModule,Fi=e.__nbind_register_pool,Rn=e.__decorate,Ui=e._llvm_stackrestore,Zt=e.___cxa_atexit,Ri=e.__extends,$n=e.__nbind_get_value_object,Ua=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,$t=e._emscripten_set_main_loop_timing,gc=e.__nbind_register_primitive,du=e.__nbind_register_type,dc=e._emscripten_memcpy_big,wl=e.__nbind_register_function,xA=e.___setErrNo,mu=e.__nbind_register_class,Ce=e.__nbind_finish,Rt=e._abort,mc=e._nbind_value,_i=e._llvm_stacksave,yu=e.___syscall54,qt=e._defineHidden,Bl=e._emscripten_set_main_loop,bA=e._emscripten_get_now,Ap=e.__nbind_register_callback_signature,yc=e._emscripten_asm_const_iiiiii,QA=e.__nbind_free_external,Dn=e._emscripten_asm_const_iiii,ui=e._emscripten_asm_const_iiididi,Ec=e.___syscall6,kA=e._atexit,na=e.___syscall140,Hi=e.___syscall146,Mo=y(0);let $e=y(0);function so(s){s=s|0;var l=0;return l=E,E=E+s|0,E=E+15&-16,l|0}function vl(){return E|0}function Eu(s){s=s|0,E=s}function qi(s,l){s=s|0,l=l|0,E=s,R=l}function Cu(s,l){s=s|0,l=l|0,V||(V=s,re=l)}function FA(s){s=s|0,Ee=s}function Ha(){return Ee|0}function Cc(){var s=0,l=0;Cr(8104,8,400)|0,Cr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,Zt(17,8104,_|0)|0}function ds(s){s=s|0,Be(s+948|0)}function Ot(s){return s=y(s),((bu(s)|0)&2147483647)>>>0>2139095040|0}function Sn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(0);return s|0}function di(s){s=s|0;var l=0;return l=tD(1e3)|0,ia(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Cr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function ia(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=E,E=E+16|0,f=d,l||(n[f>>2]=c,dg(s,5,3197,f)),E=d}function oo(){return di(956)|0}function Rs(s){s=s|0;var l=0;return l=Gt(1e3)|0,sa(l,s),ia(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function sa(s,l){s=s|0,l=l|0;var c=0;Cr(s|0,l|0,948)|0,Nm(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function oa(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Uo(c+948|0,s)|0,n[l>>2]=0),c=Zi(s)|0,c|0){l=0;do n[(Ts(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),Ns(c),rD(s),n[2276]=(n[2276]|0)+-1}function Uo(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0;f=n[s>>2]|0,Q=s+4|0,c=n[Q>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(0);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(bI(d|0,f|0,s|0)|0,c=n[Q>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[Q>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function Zi(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function Ts(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function Ns(s){s=s|0;var l=0,c=0,f=0,d=0;f=E,E=E+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,wp(l,d,d,s+8|0),Cg(s,l),HA(l)),E=f}function Ls(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;M=Zi(s)|0;do if(M|0){if((n[(Ts(s,0)|0)+944>>2]|0)==(s|0)){if(!(Uo(s+948|0,l)|0))break;Cr(l+400|0,8504,540)|0,n[l+944>>2]=0,je(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,Q=s+948|0,k=(B|0)==0,c=0,m=0;do f=n[(n[Q>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?je(s):(d=Rs(f)|0,n[(n[Q>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,k||QR[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(M|0));if(c>>>0<M>>>0){k=s+948|0,Q=s+952|0,B=c,c=n[Q>>2]|0;do m=(n[k>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(bI(m|0,f|0,d|0)|0,c=n[Q>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[Q>>2]=c),B=B+1|0;while((B|0)!=(M|0))}}while(0)}function ao(s){s=s|0;var l=0,c=0,f=0,d=0;Yn(s,(Zi(s)|0)==0,2491),Yn(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),Ns(l),l=s+976|0,c=n[l>>2]|0,Cr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function Yn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=E,E=E+16|0,f=d,l||(n[f>>2]=c,co(s,5,3197,f)),E=d}function qn(){return n[2276]|0}function $i(){var s=0;return s=tD(20)|0,es((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function es(s,l){s=s|0,l=l|0;var c=0,f=0;f=E,E=E+16|0,c=f,s||(n[c>>2]=l,co(0,5,3197,c)),E=f}function mi(s){s=s|0,rD(s),n[2277]=(n[2277]|0)+-1}function qa(s,l){s=s|0,l=l|0;var c=0;l?(Yn(s,(Zi(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function aa(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,Yn(s,(n[l+944>>2]|0)==0,2709),Yn(s,(n[s+964>>2]|0)==0,2763),ee(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],we(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,je(s),E=f}function ee(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;if(c=Zi(s)|0,c|0&&(n[(Ts(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,Q=Rs(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=Q,n[Q+944>>2]=s,m||QR[f&15](B,Q,s,l),l=l+1|0;while((l|0)!=(c|0))}}function we(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0,et=0,Ze=0;et=E,E=E+64|0,j=et+52|0,Q=et+48|0,se=et+28|0,Ye=et+24|0,Le=et+20|0,Re=et,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}qA(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=N(s)|0,d>>>0<f>>>0&&Vr(s),O=n[s>>2]|0,M=(n[B>>2]|0)-O|0,m=M>>1,wp(Re,M>>2>>>0<d>>>1>>>0?m>>>0<f>>>0?f:m:d,l-O>>2,s+8|0),O=Re+8|0,f=n[O>>2]|0,m=Re+12|0,M=n[m>>2]|0,B=M,k=f;do if((f|0)==(M|0)){if(M=Re+4|0,f=n[M>>2]|0,Ze=n[Re>>2]|0,d=Ze,f>>>0<=Ze>>>0){f=B-d>>1,f=(f|0)==0?1:f,wp(se,f,f>>>2,n[Re+16>>2]|0),n[Ye>>2]=n[M>>2],n[Le>>2]=n[O>>2],n[Q>>2]=n[Ye>>2],n[j>>2]=n[Le>>2],dI(se,Q,j),f=n[Re>>2]|0,n[Re>>2]=n[se>>2],n[se>>2]=f,f=se+4|0,Ze=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Ze,f=se+8|0,Ze=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Ze,f=se+12|0,Ze=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Ze,HA(se),f=n[O>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,Q=f+(B<<2)|0,d=k-m|0,m=d>>2,m&&(bI(Q|0,f|0,d|0)|0,f=n[M>>2]|0),Ze=Q+(m<<2)|0,n[O>>2]=Ze,n[M>>2]=f+(B<<2),f=Ze}while(0);n[f>>2]=n[c>>2],n[O>>2]=(n[O>>2]|0)+4,l=Ig(s,Re,l)|0,HA(Re)}while(0);return E=et,l|0}function je(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(pe),s=n[s+944>>2]|0}while((s|0)!=0)}function Be(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function xe(s){return s=s|0,n[s+944>>2]|0}function Ve(s){s=s|0,Yn(s,(n[s+964>>2]|0)!=0,2832),je(s)}function vt(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function tr(s,l){s=s|0,l=l|0,r3e(s,l,400)|0&&(Cr(s|0,l|0,400)|0,je(s))}function Zr(s){s=s|0;var l=$e;return l=y(h[s+44>>2]),s=Ot(l)|0,y(s?y(0):l)}function Tn(s){s=s|0;var l=$e;return l=y(h[s+48>>2]),Ot(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function _r(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function ei(s){return s=s|0,n[s+980>>2]|0}function Ti(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function Kn(s){return s=s|0,n[s+4>>2]|0}function ja(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function la(s){return s=s|0,n[s+8>>2]|0}function yi(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function ca(s){return s=s|0,n[s+12>>2]|0}function Ga(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function lo(s){return s=s|0,n[s+16>>2]|0}function RA(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function Ic(s){return s=s|0,n[s+20>>2]|0}function ua(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function ng(s){return s=s|0,n[s+24>>2]|0}function wc(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function bm(s){return s=s|0,n[s+28>>2]|0}function ig(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function Vn(s){return s=s|0,n[s+32>>2]|0}function fp(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,je(s))}function sg(s){return s=s|0,n[s+36>>2]|0}function TA(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,je(s))}function Os(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,je(s))}function Iu(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,je(s))}function Wa(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function ji(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,je(s))}function Aa(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function wu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function ms(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function Bc(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function vc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function G(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function Dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Dl(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(pe),n[c>>2]=3,je(s))}function Si(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function Dc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function lt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Bu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,je(s))}function og(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function cI(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function NA(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,je(s))}function pp(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(pe),n[l>>2]=3,je(s))}function yr(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function ys(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function ag(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,je(s))}function lg(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(pe),n[l>>2]=3,je(s))}function cg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function hp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function Sc(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function mt(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Qm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function ug(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function Ag(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function vu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function km(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function fg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Du(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function uI(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,je(s))}function Fm(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function fa(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,je(s))}function Pc(s){return s=s|0,y(h[s+396>>2])}function Sl(s){return s=s|0,y(h[s+400>>2])}function Su(s){return s=s|0,y(h[s+404>>2])}function pg(s){return s=s|0,y(h[s+408>>2])}function LA(s){return s=s|0,y(h[s+412>>2])}function gp(s){return s=s|0,y(h[s+416>>2])}function Ya(s){return s=s|0,y(h[s+420>>2])}function hg(s,l){switch(s=s|0,l=l|0,Yn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function dp(s,l){switch(s=s|0,l=l|0,Yn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function _o(s,l){switch(s=s|0,l=l|0,Yn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function Es(s,l){s=s|0,l=l|0;var c=0,f=$e;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ne(y(f-y(h[l>>2]))))<y(999999974e-13)):s=1:s=0,s|0}function Ei(s,l){s=y(s),l=y(l);var c=0;return Ot(s)|0?c=Ot(l)|0:c=y(ne(y(s-l)))<y(999999974e-13),c|0}function Rm(s,l){s=s|0,l=l|0,Tm(s,l)}function Tm(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c+4|0,n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,Ua(f|0,s|0,l|0,0),co(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),D3e(f),E=c}function Ho(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=$e;s=y(s*l),d=y(vR(s,y(1)));do if(Ei(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),Ei(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=Ei(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(0);return y(s/l)}function OA(s,l,c,f,d,m,B,Q,k,M,O,j,se){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,Q=y(Q),k=y(k),M=y(M),O=y(O),j=y(j),se=se|0;var Ye=0,Le=$e,Re=$e,et=$e,Ze=$e,at=$e,He=$e;return k<y(0)|M<y(0)?se=0:((se|0)!=0&&(Le=y(h[se+4>>2]),Le!=y(0))?(et=y(Ho(l,Le,0,0)),Ze=y(Ho(f,Le,0,0)),Re=y(Ho(m,Le,0,0)),Le=y(Ho(Q,Le,0,0))):(Re=m,et=l,Le=Q,Ze=f),(d|0)==(s|0)?Ye=Ei(Re,et)|0:Ye=0,(B|0)==(c|0)?se=Ei(Le,Ze)|0:se=0,!Ye&&(at=y(l-O),!(mp(s,at,k)|0))&&!(yp(s,at,d,k)|0)?Ye=gg(s,at,d,m,k)|0:Ye=1,!se&&(He=y(f-j),!(mp(c,He,M)|0))&&!(yp(c,He,B,M)|0)?se=gg(c,He,B,Q,M)|0:se=1,se=Ye&se),se|0}function mp(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=Ei(l,c)|0:s=0,s|0}function yp(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=Ei(l,f)|0:s=0,s|0}function gg(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=Ei(l,d)|0:s=0,s|0}function pa(s,l,c,f,d,m,B,Q,k,M,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),Q=y(Q),k=k|0,M=M|0,O=O|0;var j=0,se=0,Ye=0,Le=0,Re=$e,et=$e,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0,Bn=$e,po=$e,ho=$e,go=0,Ea=0;rr=E,E=E+160|0,Jt=rr+152|0,ir=rr+120|0,Rr=rr+104|0,He=rr+72|0,Le=rr+56|0,Tt=rr+8|0,at=rr,Ge=(n[2279]|0)+1|0,n[2279]=Ge,Ir=s+984|0,(o[Ir>>0]|0)!=0&&(n[s+512>>2]|0)!=(n[2278]|0)?Ze=4:(n[s+516>>2]|0)==(f|0)?Qr=0:Ze=4,(Ze|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Qr=1);e:do if(n[s+964>>2]|0)if(Re=y(rn(s,2,B)),et=y(rn(s,0,B)),j=s+916|0,ho=y(h[j>>2]),po=y(h[s+920>>2]),Bn=y(h[s+932>>2]),OA(d,l,m,c,n[s+924>>2]|0,ho,n[s+928>>2]|0,po,Bn,y(h[s+936>>2]),Re,et,O)|0)Ze=22;else if(Ye=n[s+520>>2]|0,!Ye)Ze=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Bn=y(h[j>>2]),po=y(h[s+524+(se*24|0)+4>>2]),ho=y(h[s+524+(se*24|0)+16>>2]),OA(d,l,m,c,n[s+524+(se*24|0)+8>>2]|0,Bn,n[s+524+(se*24|0)+12>>2]|0,po,ho,y(h[s+524+(se*24|0)+20>>2]),Re,et,O)|0){Ze=22;break e}if(se=se+1|0,se>>>0>=Ye>>>0){Ze=21;break}}else{if(k){if(j=s+916|0,!(Ei(y(h[j>>2]),l)|0)){Ze=21;break}if(!(Ei(y(h[s+920>>2]),c)|0)){Ze=21;break}if((n[s+924>>2]|0)!=(d|0)){Ze=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Ze=22;break}if(Ye=n[s+520>>2]|0,!Ye)Ze=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Ei(y(h[j>>2]),l)|0&&Ei(y(h[s+524+(se*24|0)+4>>2]),c)|0&&(n[s+524+(se*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(se*24|0)+12>>2]|0)==(m|0)){Ze=22;break e}if(se=se+1|0,se>>>0>=Ye>>>0){Ze=21;break}}}while(0);do if((Ze|0)==21)o[11697]|0?(j=0,Ze=28):(j=0,Ze=31);else if((Ze|0)==22){if(se=(o[11697]|0)!=0,!((j|0)!=0&(Qr^1)))if(se){Ze=28;break}else{Ze=31;break}Le=j+16|0,n[s+908>>2]=n[Le>>2],Ye=j+20|0,n[s+912>>2]=n[Ye>>2],(o[11698]|0)==0|se^1||(n[at>>2]=MA(Ge)|0,n[at+4>>2]=Ge,co(s,4,2972,at),se=n[s+972>>2]|0,se|0&&rf[se&127](s),d=Ka(d,k)|0,m=Ka(m,k)|0,Ea=+y(h[Le>>2]),go=+y(h[Ye>>2]),n[Tt>>2]=d,n[Tt+4>>2]=m,C[Tt+8>>3]=+l,C[Tt+16>>3]=+c,C[Tt+24>>3]=Ea,C[Tt+32>>3]=go,n[Tt+40>>2]=M,co(s,4,2989,Tt))}while(0);return(Ze|0)==28&&(se=MA(Ge)|0,n[Le>>2]=se,n[Le+4>>2]=Ge,n[Le+8>>2]=Qr?3047:11699,co(s,4,3038,Le),se=n[s+972>>2]|0,se|0&&rf[se&127](s),Tt=Ka(d,k)|0,Ze=Ka(m,k)|0,n[He>>2]=Tt,n[He+4>>2]=Ze,C[He+8>>3]=+l,C[He+16>>3]=+c,n[He+24>>2]=M,co(s,4,3049,He),Ze=31),(Ze|0)==31&&(ti(s,l,c,f,d,m,B,Q,k,O),o[11697]|0&&(se=n[2279]|0,Tt=MA(se)|0,n[Rr>>2]=Tt,n[Rr+4>>2]=se,n[Rr+8>>2]=Qr?3047:11699,co(s,4,3083,Rr),se=n[s+972>>2]|0,se|0&&rf[se&127](s),Tt=Ka(d,k)|0,Rr=Ka(m,k)|0,go=+y(h[s+908>>2]),Ea=+y(h[s+912>>2]),n[ir>>2]=Tt,n[ir+4>>2]=Rr,C[ir+8>>3]=go,C[ir+16>>3]=Ea,n[ir+24>>2]=M,co(s,4,3092,ir)),n[s+516>>2]=f,j||(se=s+520|0,j=n[se>>2]|0,(j|0)==16&&(o[11697]|0&&co(s,4,3124,Jt),n[se>>2]=0,j=0),k?j=s+916|0:(n[se>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),k&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[Ir>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],E=rr,Qr|(j|0)==0|0}function rn(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(K(s,l,c)),y(f+y(te(s,l,c)))}function co(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=E,E=E+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,mg(f,s,l,c,d),E=m}function MA(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function Ka(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,E=d,s|0}function ti(s,l,c,f,d,m,B,Q,k,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),Q=y(Q),k=k|0,M=M|0;var O=0,j=0,se=0,Ye=0,Le=$e,Re=$e,et=$e,Ze=$e,at=$e,He=$e,Ge=$e,Tt=0,Rr=0,ir=0,Jt=$e,Ir=$e,Qr=0,rr=$e,Bn=0,po=0,ho=0,go=0,Ea=0,Fp=0,Rp=0,Fl=0,Tp=0,Lu=0,Ou=0,Np=0,Lp=0,Op=0,Jr=0,Rl=0,Mp=0,Rc=0,Up=$e,_p=$e,Mu=$e,Uu=$e,Tc=$e,Us=0,el=0,jo=0,Tl=0,sf=0,of=$e,_u=$e,af=$e,lf=$e,_s=$e,ws=$e,Nl=0,Pn=$e,cf=$e,mo=$e,Nc=$e,yo=$e,Lc=$e,uf=0,Af=0,Oc=$e,Hs=$e,Ll=0,ff=0,pf=0,hf=0,vr=$e,jn=0,Bs=0,Eo=0,qs=0,Pr=0,lr=0,Ol=0,Wt=$e,gf=0,ii=0;Ol=E,E=E+16|0,Us=Ol+12|0,el=Ol+8|0,jo=Ol+4|0,Tl=Ol,Yn(s,(d|0)==0|(Ot(l)|0)^1,3326),Yn(s,(m|0)==0|(Ot(c)|0)^1,3406),Bs=gt(s,f)|0,n[s+496>>2]=Bs,Pr=ur(2,Bs)|0,lr=ur(0,Bs)|0,h[s+440>>2]=y(K(s,Pr,B)),h[s+444>>2]=y(te(s,Pr,B)),h[s+428>>2]=y(K(s,lr,B)),h[s+436>>2]=y(te(s,lr,B)),h[s+464>>2]=y(gr(s,Pr)),h[s+468>>2]=y(hn(s,Pr)),h[s+452>>2]=y(gr(s,lr)),h[s+460>>2]=y(hn(s,lr)),h[s+488>>2]=y(ri(s,Pr,B)),h[s+492>>2]=y(Ni(s,Pr,B)),h[s+476>>2]=y(ri(s,lr,B)),h[s+484>>2]=y(Ni(s,lr,B));do if(n[s+964>>2]|0)Eg(s,l,c,d,m,B,Q);else{if(Eo=s+948|0,qs=(n[s+952>>2]|0)-(n[Eo>>2]|0)>>2,!qs){Fv(s,l,c,d,m,B,Q);break}if(!k&&Rv(s,l,c,d,m,B,Q)|0)break;ee(s),Rl=s+508|0,o[Rl>>0]=0,Pr=ur(n[s+4>>2]|0,Bs)|0,lr=fI(Pr,Bs)|0,jn=Ae(Pr)|0,Mp=n[s+8>>2]|0,ff=s+28|0,Rc=(n[ff>>2]|0)!=0,yo=jn?B:Q,Oc=jn?Q:B,Up=y(Cp(s,Pr,B)),_p=y(pI(s,Pr,B)),Le=y(Cp(s,lr,B)),Lc=y(gn(s,Pr,B)),Hs=y(gn(s,lr,B)),ir=jn?d:m,Ll=jn?m:d,vr=jn?Lc:Hs,at=jn?Hs:Lc,Nc=y(rn(s,2,B)),Ze=y(rn(s,0,B)),Re=y(y(Hr(s+364|0,B))-vr),et=y(y(Hr(s+380|0,B))-vr),He=y(y(Hr(s+372|0,Q))-at),Ge=y(y(Hr(s+388|0,Q))-at),Mu=jn?Re:He,Uu=jn?et:Ge,Nc=y(l-Nc),l=y(Nc-vr),Ot(l)|0?vr=l:vr=y(Nn(y(kg(l,et)),Re)),cf=y(c-Ze),l=y(cf-at),Ot(l)|0?mo=l:mo=y(Nn(y(kg(l,Ge)),He)),Re=jn?vr:mo,Pn=jn?mo:vr;e:do if((ir|0)==1)for(f=0,j=0;;){if(O=Ts(s,j)|0,!f)y(rs(O))>y(0)&&y(Ms(O))>y(0)?f=O:f=0;else if(Lm(O)|0){Ye=0;break e}if(j=j+1|0,j>>>0>=qs>>>0){Ye=f;break}}else Ye=0;while(0);Tt=Ye+500|0,Rr=Ye+504|0,f=0,O=0,l=y(0),se=0;do{if(j=n[(n[Eo>>2]|0)+(se<<2)>>2]|0,(n[j+36>>2]|0)==1)Pu(j),o[j+985>>0]=1,o[j+984>>0]=0;else{Pl(j),k&&Ep(j,gt(j,Bs)|0,Re,Pn,vr);do if((n[j+24>>2]|0)!=1)if((j|0)==(Ye|0)){n[Tt>>2]=n[2278],h[Rr>>2]=y(0);break}else{Om(s,j,vr,d,mo,vr,mo,m,Bs,M);break}else O|0&&(n[O+960>>2]=j),n[j+960>>2]=0,O=j,f=(f|0)==0?j:f;while(0);ws=y(h[j+504>>2]),l=y(l+y(ws+y(rn(j,Pr,vr))))}se=se+1|0}while((se|0)!=(qs|0));for(ho=l>Re,Nl=Rc&((ir|0)==2&ho)?1:ir,Bn=(Ll|0)==1,Ea=Bn&(k^1),Fp=(Nl|0)==1,Rp=(Nl|0)==2,Fl=976+(Pr<<2)|0,Tp=(Ll|2|0)==2,Op=Bn&(Rc^1),Lu=1040+(lr<<2)|0,Ou=1040+(Pr<<2)|0,Np=976+(lr<<2)|0,Lp=(Ll|0)!=1,ho=Rc&((ir|0)!=0&ho),po=s+976|0,Bn=Bn^1,l=Re,Qr=0,go=0,ws=y(0),Tc=y(0);;){e:do if(Qr>>>0<qs>>>0)for(Rr=n[Eo>>2]|0,se=0,Ge=y(0),He=y(0),et=y(0),Re=y(0),j=0,O=0,Ye=Qr;;){if(Tt=n[Rr+(Ye<<2)>>2]|0,(n[Tt+36>>2]|0)!=1&&(n[Tt+940>>2]=go,(n[Tt+24>>2]|0)!=1)){if(Ze=y(rn(Tt,Pr,vr)),Jr=n[Fl>>2]|0,c=y(Hr(Tt+380+(Jr<<3)|0,yo)),at=y(h[Tt+504>>2]),c=y(kg(c,at)),c=y(Nn(y(Hr(Tt+364+(Jr<<3)|0,yo)),c)),Rc&(se|0)!=0&y(Ze+y(He+c))>l){m=se,Ze=Ge,ir=Ye;break e}Ze=y(Ze+c),c=y(He+Ze),Ze=y(Ge+Ze),Lm(Tt)|0&&(et=y(et+y(rs(Tt))),Re=y(Re-y(at*y(Ms(Tt))))),O|0&&(n[O+960>>2]=Tt),n[Tt+960>>2]=0,se=se+1|0,O=Tt,j=(j|0)==0?Tt:j}else Ze=Ge,c=He;if(Ye=Ye+1|0,Ye>>>0<qs>>>0)Ge=Ze,He=c;else{m=se,ir=Ye;break}}else m=0,Ze=y(0),et=y(0),Re=y(0),j=0,ir=Qr;while(0);Jr=et>y(0)&et<y(1),Jt=Jr?y(1):et,Jr=Re>y(0)&Re<y(1),Ge=Jr?y(1):Re;do if(Fp)Jr=51;else if(Ze<Mu&((Ot(Mu)|0)^1))l=Mu,Jr=51;else if(Ze>Uu&((Ot(Uu)|0)^1))l=Uu,Jr=51;else if(o[(n[po>>2]|0)+3>>0]|0)Jr=51;else{if(Jt!=y(0)&&y(rs(s))!=y(0)){Jr=53;break}l=Ze,Jr=53}while(0);if((Jr|0)==51&&(Jr=0,Ot(l)|0?Jr=53:(Ir=y(l-Ze),rr=l)),(Jr|0)==53&&(Jr=0,Ze<y(0)?(Ir=y(-Ze),rr=l):(Ir=y(0),rr=l)),!Ea&&(sf=(j|0)==0,!sf)){se=n[Fl>>2]|0,Ye=Ir<y(0),at=y(Ir/Ge),Tt=Ir>y(0),He=y(Ir/Jt),et=y(0),Ze=y(0),l=y(0),O=j;do c=y(Hr(O+380+(se<<3)|0,yo)),Re=y(Hr(O+364+(se<<3)|0,yo)),Re=y(kg(c,y(Nn(Re,y(h[O+504>>2]))))),Ye?(c=y(Re*y(Ms(O))),c!=y(-0)&&(Wt=y(Re-y(at*c)),of=y(Ci(O,Pr,Wt,rr,vr)),Wt!=of)&&(et=y(et-y(of-Re)),l=y(l+c))):Tt&&(_u=y(rs(O)),_u!=y(0))&&(Wt=y(Re+y(He*_u)),af=y(Ci(O,Pr,Wt,rr,vr)),Wt!=af)&&(et=y(et-y(af-Re)),Ze=y(Ze-_u)),O=n[O+960>>2]|0;while((O|0)!=0);if(l=y(Ge+l),Re=y(Ir+et),sf)l=y(0);else{at=y(Jt+Ze),Ye=n[Fl>>2]|0,Tt=Re<y(0),Rr=l==y(0),He=y(Re/l),se=Re>y(0),at=y(Re/at),l=y(0);do{Wt=y(Hr(j+380+(Ye<<3)|0,yo)),et=y(Hr(j+364+(Ye<<3)|0,yo)),et=y(kg(Wt,y(Nn(et,y(h[j+504>>2]))))),Tt?(Wt=y(et*y(Ms(j))),Re=y(-Wt),Wt!=y(-0)?(Wt=y(He*Re),Re=y(Ci(j,Pr,y(et+(Rr?Re:Wt)),rr,vr))):Re=et):se&&(lf=y(rs(j)),lf!=y(0))?Re=y(Ci(j,Pr,y(et+y(at*lf)),rr,vr)):Re=et,l=y(l-y(Re-et)),Ze=y(rn(j,Pr,vr)),c=y(rn(j,lr,vr)),Re=y(Re+Ze),h[el>>2]=Re,n[Tl>>2]=1,et=y(h[j+396>>2]);e:do if(Ot(et)|0){O=Ot(Pn)|0;do if(!O){if(ho|(ts(j,lr,Pn)|0|Bn)||(ga(s,j)|0)!=4||(n[(xl(j,lr)|0)+4>>2]|0)==3||(n[(Qc(j,lr)|0)+4>>2]|0)==3)break;h[Us>>2]=Pn,n[jo>>2]=1;break e}while(0);if(ts(j,lr,Pn)|0){O=n[j+992+(n[Np>>2]<<2)>>2]|0,Wt=y(c+y(Hr(O,Pn))),h[Us>>2]=Wt,O=Lp&(n[O+4>>2]|0)==2,n[jo>>2]=((Ot(Wt)|0|O)^1)&1;break}else{h[Us>>2]=Pn,n[jo>>2]=O?0:2;break}}else Wt=y(Re-Ze),Jt=y(Wt/et),Wt=y(et*Wt),n[jo>>2]=1,h[Us>>2]=y(c+(jn?Jt:Wt));while(0);pr(j,Pr,rr,vr,Tl,el),pr(j,lr,Pn,vr,jo,Us);do if(!(ts(j,lr,Pn)|0)&&(ga(s,j)|0)==4){if((n[(xl(j,lr)|0)+4>>2]|0)==3){O=0;break}O=(n[(Qc(j,lr)|0)+4>>2]|0)!=3}else O=0;while(0);Wt=y(h[el>>2]),Jt=y(h[Us>>2]),gf=n[Tl>>2]|0,ii=n[jo>>2]|0,pa(j,jn?Wt:Jt,jn?Jt:Wt,Bs,jn?gf:ii,jn?ii:gf,vr,mo,k&(O^1),3488,M)|0,o[Rl>>0]=o[Rl>>0]|o[j+508>>0],j=n[j+960>>2]|0}while((j|0)!=0)}}else l=y(0);if(l=y(Ir+l),ii=l<y(0)&1,o[Rl>>0]=ii|u[Rl>>0],Rp&l>y(0)?(O=n[Fl>>2]|0,(n[s+364+(O<<3)+4>>2]|0)!=0&&(_s=y(Hr(s+364+(O<<3)|0,yo)),_s>=y(0))?Re=y(Nn(y(0),y(_s-y(rr-l)))):Re=y(0)):Re=l,Tt=Qr>>>0<ir>>>0,Tt){Ye=n[Eo>>2]|0,se=Qr,O=0;do j=n[Ye+(se<<2)>>2]|0,n[j+24>>2]|0||(O=((n[(xl(j,Pr)|0)+4>>2]|0)==3&1)+O|0,O=O+((n[(Qc(j,Pr)|0)+4>>2]|0)==3&1)|0),se=se+1|0;while((se|0)!=(ir|0));O?(Ze=y(0),c=y(0)):Jr=101}else Jr=101;e:do if((Jr|0)==101)switch(Jr=0,Mp|0){case 1:{O=0,Ze=y(Re*y(.5)),c=y(0);break e}case 2:{O=0,Ze=Re,c=y(0);break e}case 3:{if(m>>>0<=1){O=0,Ze=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),O=0,Ze=y(0),c=y(y(Nn(Re,y(0)))/c);break e}case 5:{c=y(Re/y((m+1|0)>>>0)),O=0,Ze=c;break e}case 4:{c=y(Re/y(m>>>0)),O=0,Ze=y(c*y(.5));break e}default:{O=0,Ze=y(0),c=y(0);break e}}while(0);if(l=y(Up+Ze),Tt){et=y(Re/y(O|0)),se=n[Eo>>2]|0,j=Qr,Re=y(0);do{O=n[se+(j<<2)>>2]|0;e:do if((n[O+36>>2]|0)!=1){switch(n[O+24>>2]|0){case 1:{if(Ai(O,Pr)|0){if(!k)break e;Wt=y(Fr(O,Pr,rr)),Wt=y(Wt+y(gr(s,Pr))),Wt=y(Wt+y(K(O,Pr,vr))),h[O+400+(n[Ou>>2]<<2)>>2]=Wt;break e}break}case 0:if(ii=(n[(xl(O,Pr)|0)+4>>2]|0)==3,Wt=y(et+l),l=ii?Wt:l,k&&(ii=O+400+(n[Ou>>2]<<2)|0,h[ii>>2]=y(l+y(h[ii>>2]))),ii=(n[(Qc(O,Pr)|0)+4>>2]|0)==3,Wt=y(et+l),l=ii?Wt:l,Ea){Wt=y(c+y(rn(O,Pr,vr))),Re=Pn,l=y(l+y(Wt+y(h[O+504>>2])));break e}else{l=y(l+y(c+y(ns(O,Pr,vr)))),Re=y(Nn(Re,y(ns(O,lr,vr))));break e}default:}k&&(Wt=y(Ze+y(gr(s,Pr))),ii=O+400+(n[Ou>>2]<<2)|0,h[ii>>2]=y(Wt+y(h[ii>>2])))}while(0);j=j+1|0}while((j|0)!=(ir|0))}else Re=y(0);if(c=y(_p+l),Tp?Ze=y(y(Ci(s,lr,y(Hs+Re),Oc,B))-Hs):Ze=Pn,et=y(y(Ci(s,lr,y(Hs+(Op?Pn:Re)),Oc,B))-Hs),Tt&k){j=Qr;do{se=n[(n[Eo>>2]|0)+(j<<2)>>2]|0;do if((n[se+36>>2]|0)!=1){if((n[se+24>>2]|0)==1){if(Ai(se,lr)|0){if(Wt=y(Fr(se,lr,Pn)),Wt=y(Wt+y(gr(s,lr))),Wt=y(Wt+y(K(se,lr,vr))),O=n[Lu>>2]|0,h[se+400+(O<<2)>>2]=Wt,!(Ot(Wt)|0))break}else O=n[Lu>>2]|0;Wt=y(gr(s,lr)),h[se+400+(O<<2)>>2]=y(Wt+y(K(se,lr,vr)));break}O=ga(s,se)|0;do if((O|0)==4){if((n[(xl(se,lr)|0)+4>>2]|0)==3){Jr=139;break}if((n[(Qc(se,lr)|0)+4>>2]|0)==3){Jr=139;break}if(ts(se,lr,Pn)|0){l=Le;break}gf=n[se+908+(n[Fl>>2]<<2)>>2]|0,n[Us>>2]=gf,l=y(h[se+396>>2]),ii=Ot(l)|0,Re=(n[v>>2]=gf,y(h[v>>2])),ii?l=et:(Ir=y(rn(se,lr,vr)),Wt=y(Re/l),l=y(l*Re),l=y(Ir+(jn?Wt:l))),h[el>>2]=l,h[Us>>2]=y(y(rn(se,Pr,vr))+Re),n[jo>>2]=1,n[Tl>>2]=1,pr(se,Pr,rr,vr,jo,Us),pr(se,lr,Pn,vr,Tl,el),l=y(h[Us>>2]),Ir=y(h[el>>2]),Wt=jn?l:Ir,l=jn?Ir:l,ii=((Ot(Wt)|0)^1)&1,pa(se,Wt,l,Bs,ii,((Ot(l)|0)^1)&1,vr,mo,1,3493,M)|0,l=Le}else Jr=139;while(0);e:do if((Jr|0)==139){Jr=0,l=y(Ze-y(ns(se,lr,vr)));do if((n[(xl(se,lr)|0)+4>>2]|0)==3){if((n[(Qc(se,lr)|0)+4>>2]|0)!=3)break;l=y(Le+y(Nn(y(0),y(l*y(.5)))));break e}while(0);if((n[(Qc(se,lr)|0)+4>>2]|0)==3){l=Le;break}if((n[(xl(se,lr)|0)+4>>2]|0)==3){l=y(Le+y(Nn(y(0),l)));break}switch(O|0){case 1:{l=Le;break e}case 2:{l=y(Le+y(l*y(.5)));break e}default:{l=y(Le+l);break e}}}while(0);Wt=y(ws+l),ii=se+400+(n[Lu>>2]<<2)|0,h[ii>>2]=y(Wt+y(h[ii>>2]))}while(0);j=j+1|0}while((j|0)!=(ir|0))}if(ws=y(ws+et),Tc=y(Nn(Tc,c)),m=go+1|0,ir>>>0>=qs>>>0)break;l=rr,Qr=ir,go=m}do if(k){if(O=m>>>0>1,!O&&!(Gi(s)|0))break;if(!(Ot(Pn)|0)){l=y(Pn-ws);e:do switch(n[s+12>>2]|0){case 3:{Le=y(Le+l),He=y(0);break}case 2:{Le=y(Le+y(l*y(.5))),He=y(0);break}case 4:{Pn>ws?He=y(l/y(m>>>0)):He=y(0);break}case 7:if(Pn>ws){Le=y(Le+y(l/y(m<<1>>>0))),He=y(l/y(m>>>0)),He=O?He:y(0);break e}else{Le=y(Le+y(l*y(.5))),He=y(0);break e}case 6:{He=y(l/y(go>>>0)),He=Pn>ws&O?He:y(0);break}default:He=y(0)}while(0);if(m|0)for(Tt=1040+(lr<<2)|0,Rr=976+(lr<<2)|0,Ye=0,j=0;;){e:do if(j>>>0<qs>>>0)for(Re=y(0),et=y(0),l=y(0),se=j;;){O=n[(n[Eo>>2]|0)+(se<<2)>>2]|0;do if((n[O+36>>2]|0)!=1&&(n[O+24>>2]|0)==0){if((n[O+940>>2]|0)!=(Ye|0))break e;if(Mm(O,lr)|0&&(Wt=y(h[O+908+(n[Rr>>2]<<2)>>2]),l=y(Nn(l,y(Wt+y(rn(O,lr,vr)))))),(ga(s,O)|0)!=5)break;_s=y(Ja(O)),_s=y(_s+y(K(O,0,vr))),Wt=y(h[O+912>>2]),Wt=y(y(Wt+y(rn(O,0,vr)))-_s),_s=y(Nn(et,_s)),Wt=y(Nn(Re,Wt)),Re=Wt,et=_s,l=y(Nn(l,y(_s+Wt)))}while(0);if(O=se+1|0,O>>>0<qs>>>0)se=O;else{se=O;break}}else et=y(0),l=y(0),se=j;while(0);if(at=y(He+l),c=Le,Le=y(Le+at),j>>>0<se>>>0){Ze=y(c+et),O=j;do{j=n[(n[Eo>>2]|0)+(O<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&(n[j+24>>2]|0)==0)switch(ga(s,j)|0){case 1:{Wt=y(c+y(K(j,lr,vr))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 3:{Wt=y(y(Le-y(te(j,lr,vr)))-y(h[j+908+(n[Rr>>2]<<2)>>2])),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 2:{Wt=y(c+y(y(at-y(h[j+908+(n[Rr>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 4:{if(Wt=y(c+y(K(j,lr,vr))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt,ts(j,lr,Pn)|0||(jn?(Re=y(h[j+908>>2]),l=y(Re+y(rn(j,Pr,vr))),et=at):(et=y(h[j+912>>2]),et=y(et+y(rn(j,lr,vr))),l=at,Re=y(h[j+908>>2])),Ei(l,Re)|0&&Ei(et,y(h[j+912>>2]))|0))break e;pa(j,l,et,Bs,1,1,vr,mo,1,3501,M)|0;break e}case 5:{h[j+404>>2]=y(y(Ze-y(Ja(j)))+y(Fr(j,0,Pn)));break e}default:break e}while(0);O=O+1|0}while((O|0)!=(se|0))}if(Ye=Ye+1|0,(Ye|0)==(m|0))break;j=se}}}while(0);if(h[s+908>>2]=y(Ci(s,2,Nc,B,B)),h[s+912>>2]=y(Ci(s,0,cf,Q,B)),(Nl|0)!=0&&(uf=n[s+32>>2]|0,Af=(Nl|0)==2,!(Af&(uf|0)!=2))?Af&(uf|0)==2&&(l=y(Lc+rr),l=y(Nn(y(kg(l,y(UA(s,Pr,Tc,yo)))),Lc)),Jr=198):(l=y(Ci(s,Pr,Tc,yo,B)),Jr=198),(Jr|0)==198&&(h[s+908+(n[976+(Pr<<2)>>2]<<2)>>2]=l),(Ll|0)!=0&&(pf=n[s+32>>2]|0,hf=(Ll|0)==2,!(hf&(pf|0)!=2))?hf&(pf|0)==2&&(l=y(Hs+Pn),l=y(Nn(y(kg(l,y(UA(s,lr,y(Hs+ws),Oc)))),Hs)),Jr=204):(l=y(Ci(s,lr,y(Hs+ws),Oc,B)),Jr=204),(Jr|0)==204&&(h[s+908+(n[976+(lr<<2)>>2]<<2)>>2]=l),k){if((n[ff>>2]|0)==2){j=976+(lr<<2)|0,se=1040+(lr<<2)|0,O=0;do Ye=Ts(s,O)|0,n[Ye+24>>2]|0||(gf=n[j>>2]|0,Wt=y(h[s+908+(gf<<2)>>2]),ii=Ye+400+(n[se>>2]<<2)|0,Wt=y(Wt-y(h[ii>>2])),h[ii>>2]=y(Wt-y(h[Ye+908+(gf<<2)>>2]))),O=O+1|0;while((O|0)!=(qs|0))}if(f|0){O=jn?Nl:d;do Um(s,f,vr,O,mo,Bs,M),f=n[f+960>>2]|0;while((f|0)!=0)}if(O=(Pr|2|0)==3,j=(lr|2|0)==3,O|j){f=0;do se=n[(n[Eo>>2]|0)+(f<<2)>>2]|0,(n[se+36>>2]|0)!=1&&(O&&Ip(s,se,Pr),j&&Ip(s,se,lr)),f=f+1|0;while((f|0)!=(qs|0))}}}while(0);E=Ol}function ha(s,l){s=s|0,l=y(l);var c=0;ia(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function xc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=$e,m=$e,B=0,Q=0,k=0;n[2278]=(n[2278]|0)+1,Pl(s),ts(s,2,l)|0?(d=y(Hr(n[s+992>>2]|0,l)),k=1,d=y(d+y(rn(s,2,l)))):(d=y(Hr(s+380|0,l)),d>=y(0)?k=2:(k=((Ot(l)|0)^1)&1,d=l)),ts(s,0,c)|0?(m=y(Hr(n[s+996>>2]|0,c)),Q=1,m=y(m+y(rn(s,0,l)))):(m=y(Hr(s+388|0,c)),m>=y(0)?Q=2:(Q=((Ot(c)|0)^1)&1,m=c)),B=s+976|0,pa(s,d,m,f,k,Q,l,c,1,3189,n[B>>2]|0)|0&&(Ep(s,n[s+496>>2]|0,l,c,l),bc(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&Rm(s,7)}function Pl(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;Q=E,E=E+32|0,B=Q+24|0,m=Q+16|0,f=Q+8|0,d=Q,c=0;do l=s+380+(c<<3)|0,(n[s+380+(c<<3)+4>>2]|0)!=0&&(k=l,M=n[k+4>>2]|0,O=f,n[O>>2]=n[k>>2],n[O+4>>2]=M,O=s+364+(c<<3)|0,M=n[O+4>>2]|0,k=d,n[k>>2]=n[O>>2],n[k+4>>2]=M,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],Es(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);E=Q}function ts(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])<y(0)?s=0:f=5;break}case 2:{y(h[s>>2])<y(0)?s=0:s=(Ot(c)|0)^1;break}default:f=5}return(f|0)==5&&(s=1),s|0}function Hr(s,l){switch(s=s|0,l=y(l),n[s+4>>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(pe)}return y(l)}function Ep(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=$e;l=n[s+944>>2]|0?l:1,m=ur(n[s+4>>2]|0,l)|0,l=fI(m,l)|0,c=y(_m(s,m,c)),f=y(_m(s,l,f)),B=y(c+y(K(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(te(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(K(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(te(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function bc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=$e,Q=$e,k=0,M=0,O=$e,j=0,se=$e,Ye=$e,Le=$e,Re=$e;if(l!=y(0)&&(d=s+400|0,Re=y(h[d>>2]),m=s+404|0,Le=y(h[m>>2]),j=s+416|0,Ye=y(h[j>>2]),M=s+420|0,B=y(h[M>>2]),se=y(Re+c),O=y(Le+f),f=y(se+Ye),Q=y(O+B),k=(n[s+988>>2]|0)==1,h[d>>2]=y(Ho(Re,l,0,k)),h[m>>2]=y(Ho(Le,l,0,k)),c=y(vR(y(Ye*l),y(1))),Ei(c,y(0))|0?m=0:m=(Ei(c,y(1))|0)^1,c=y(vR(y(B*l),y(1))),Ei(c,y(0))|0?d=0:d=(Ei(c,y(1))|0)^1,Re=y(Ho(f,l,k&m,k&(m^1))),h[j>>2]=y(Re-y(Ho(se,l,0,k))),Re=y(Ho(Q,l,k&d,k&(d^1))),h[M>>2]=y(Re-y(Ho(O,l,0,k))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do bc(Ts(s,d)|0,l,se,O),d=d+1|0;while((d|0)!=(m|0))}}function AI(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=r7(n[489]|0,f,d)|0;break}default:s=I3e(f,d)|0}return s|0}function dg(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=E,E=E+16|0,m=d,n[m>>2]=f,mg(s,0,l,c,m),E=d}function mg(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,B7[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Rt();else return}function Va(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function Nm(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(yg(s,f),kt(s,n[l>>2]|0,n[c>>2]|0,f))}function yg(s,l){s=s|0,l=l|0;var c=0;if((N(s)|0)>>>0<l>>>0&&Vr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function kt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function N(s){return s=s|0,1073741823}function K(s,l,c){return s=s|0,l=l|0,c=y(c),Ae(l)|0&&(n[s+96>>2]|0)!=0?s=s+92|0:s=Sn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function te(s,l,c){return s=s|0,l=l|0,c=y(c),Ae(l)|0&&(n[s+104>>2]|0)!=0?s=s+100|0:s=Sn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function Ae(s){return s=s|0,(s|1|0)==3|0}function ze(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Hr(s,l)),y(l)}function gt(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,((s|0)==0?(l|0)>1?l:1:s)|0}function ur(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(0);return s|0}function gr(s,l){s=s|0,l=l|0;var c=$e;return Ae(l)|0&&(n[s+312>>2]|0)!=0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(Nn(y(h[(Sn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function hn(s,l){s=s|0,l=l|0;var c=$e;return Ae(l)|0&&(n[s+320>>2]|0)!=0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(Nn(y(h[(Sn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function ri(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return Ae(l)|0&&(n[s+240>>2]|0)!=0&&(f=y(Hr(s+236|0,c)),f>=y(0))||(f=y(Nn(y(Hr(Sn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Ni(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return Ae(l)|0&&(n[s+248>>2]|0)!=0&&(f=y(Hr(s+244|0,c)),f>=y(0))||(f=y(Nn(y(Hr(Sn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Eg(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=$e,k=$e,M=$e,O=$e,j=$e,se=$e,Ye=0,Le=0,Re=0;Re=E,E=E+16|0,Ye=Re,Le=s+964|0,Yn(s,(n[Le>>2]|0)!=0,3519),Q=y(gn(s,2,l)),k=y(gn(s,0,l)),M=y(rn(s,2,l)),O=y(rn(s,0,l)),Ot(l)|0?j=l:j=y(Nn(y(0),y(y(l-M)-Q))),Ot(c)|0?se=c:se=y(Nn(y(0),y(y(c-O)-k))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Ci(s,2,y(l-M),m,m)),l=y(Ci(s,0,y(c-O),B,m))):(v7[n[Le>>2]&1](Ye,s,j,f,se,d),j=y(Q+y(h[Ye>>2])),se=y(l-M),h[s+908>>2]=y(Ci(s,2,(f|2|0)==2?j:se,m,m)),se=y(k+y(h[Ye+4>>2])),l=y(c-O),l=y(Ci(s,0,(d|2|0)==2?se:l,B,m))),h[s+912>>2]=l,E=Re}function Fv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=$e,k=$e,M=$e,O=$e;M=y(gn(s,2,m)),Q=y(gn(s,0,m)),O=y(rn(s,2,m)),k=y(rn(s,0,m)),l=y(l-O),h[s+908>>2]=y(Ci(s,2,(f|2|0)==2?M:l,m,m)),c=y(c-k),h[s+912>>2]=y(Ci(s,0,(d|2|0)==2?Q:c,B,m))}function Rv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=0,k=$e,M=$e;return Q=(f|0)==2,!(l<=y(0)&Q)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(k=y(rn(s,0,m)),M=y(rn(s,2,m)),Q=l<y(0)&Q|(Ot(l)|0),l=y(l-M),h[s+908>>2]=y(Ci(s,2,Q?y(0):l,m,m)),l=y(c-k),Q=c<y(0)&(d|0)==2|(Ot(c)|0),h[s+912>>2]=y(Ci(s,0,Q?y(0):l,B,m)),s=1),s|0}function fI(s,l){return s=s|0,l=l|0,_A(s)|0?s=ur(2,l)|0:s=0,s|0}function Cp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(ri(s,l,c)),y(c+y(gr(s,l)))}function pI(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(Ni(s,l,c)),y(c+y(hn(s,l)))}function gn(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(Cp(s,l,c)),y(f+y(pI(s,l,c)))}function Lm(s){return s=s|0,n[s+24>>2]|0?s=0:y(rs(s))!=y(0)?s=1:s=y(Ms(s))!=y(0),s|0}function rs(s){s=s|0;var l=$e;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),Ot(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((Ot(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function Ms(s){s=s|0;var l=$e,c=0,f=$e;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),Ot(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,c<<24>>24==0&&(f=y(h[s+40>>2]),f<y(0)&((Ot(f)|0)^1))){l=y(-f);break}l=c<<24>>24?y(1):y(0)}}else l=y(0);while(0);return y(l)}function Pu(s){s=s|0;var l=0,c=0;if($m(s+400|0,0,540)|0,o[s+985>>0]=1,ee(s),c=Zi(s)|0,c|0){l=s+948|0,s=0;do Pu(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function Om(s,l,c,f,d,m,B,Q,k,M){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),Q=Q|0,k=k|0,M=M|0;var O=0,j=$e,se=0,Ye=0,Le=$e,Re=$e,et=0,Ze=$e,at=0,He=$e,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0,Bn=0,po=0;Bn=E,E=E+16|0,Rr=Bn+12|0,ir=Bn+8|0,Jt=Bn+4|0,Ir=Bn,rr=ur(n[s+4>>2]|0,k)|0,Ge=Ae(rr)|0,j=y(Hr(hI(l)|0,Ge?m:B)),Tt=ts(l,2,m)|0,Qr=ts(l,0,B)|0;do if(!(Ot(j)|0)&&!(Ot(Ge?c:d)|0)){if(O=l+504|0,!(Ot(y(h[O>>2]))|0)&&(!(gI(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[O>>2]=y(Nn(j,y(gn(l,rr,m))))}else se=7;while(0);do if((se|0)==7){if(at=Ge^1,!(at|Tt^1)){B=y(Hr(n[l+992>>2]|0,m)),h[l+504>>2]=y(Nn(B,y(gn(l,2,m))));break}if(!(Ge|Qr^1)){B=y(Hr(n[l+996>>2]|0,B)),h[l+504>>2]=y(Nn(B,y(gn(l,0,m))));break}h[Rr>>2]=y(pe),h[ir>>2]=y(pe),n[Jt>>2]=0,n[Ir>>2]=0,Ze=y(rn(l,2,m)),He=y(rn(l,0,m)),Tt?(Le=y(Ze+y(Hr(n[l+992>>2]|0,m))),h[Rr>>2]=Le,n[Jt>>2]=1,Ye=1):(Ye=0,Le=y(pe)),Qr?(j=y(He+y(Hr(n[l+996>>2]|0,B))),h[ir>>2]=j,n[Ir>>2]=1,O=1):(O=0,j=y(pe)),se=n[s+32>>2]|0,Ge&(se|0)==2?se=2:Ot(Le)|0&&!(Ot(c)|0)&&(h[Rr>>2]=c,n[Jt>>2]=2,Ye=2,Le=c),!((se|0)==2&at)&&Ot(j)|0&&!(Ot(d)|0)&&(h[ir>>2]=d,n[Ir>>2]=2,O=2,j=d),Re=y(h[l+396>>2]),et=Ot(Re)|0;do if(et)se=Ye;else{if((Ye|0)==1&at){h[ir>>2]=y(y(Le-Ze)/Re),n[Ir>>2]=1,O=1,se=1;break}Ge&(O|0)==1?(h[Rr>>2]=y(Re*y(j-He)),n[Jt>>2]=1,O=1,se=1):se=Ye}while(0);po=Ot(c)|0,Ye=(ga(s,l)|0)!=4,!(Ge|Tt|((f|0)!=1|po)|(Ye|(se|0)==1))&&(h[Rr>>2]=c,n[Jt>>2]=1,!et)&&(h[ir>>2]=y(y(c-Ze)/Re),n[Ir>>2]=1,O=1),!(Qr|at|((Q|0)!=1|(Ot(d)|0))|(Ye|(O|0)==1))&&(h[ir>>2]=d,n[Ir>>2]=1,!et)&&(h[Rr>>2]=y(Re*y(d-He)),n[Jt>>2]=1),pr(l,2,m,m,Jt,Rr),pr(l,0,B,m,Ir,ir),c=y(h[Rr>>2]),d=y(h[ir>>2]),pa(l,c,d,k,n[Jt>>2]|0,n[Ir>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(rr<<2)>>2]<<2)>>2]),h[l+504>>2]=y(Nn(B,y(gn(l,rr,m))))}while(0);n[l+500>>2]=n[2278],E=Bn}function Ci(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(UA(s,l,c,f)),y(Nn(f,y(gn(s,l,d))))}function ga(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[((n[l>>2]|0)==0?s+16|0:l)>>2]|0,(l|0)==5&&_A(n[s+4>>2]|0)|0&&(l=1),l|0}function xl(s,l){return s=s|0,l=l|0,Ae(l)|0&&(n[s+96>>2]|0)!=0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function Qc(s,l){return s=s|0,l=l|0,Ae(l)|0&&(n[s+104>>2]|0)!=0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function pr(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Hr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(rn(s,l,f))),n[d>>2]|0){case 2:case 1:{d=Ot(c)|0,f=y(h[m>>2]),h[m>>2]=d|f<c?f:c;break}case 0:{Ot(c)|0||(n[d>>2]=2,h[m>>2]=c);break}default:}}function Ai(s,l){return s=s|0,l=l|0,s=s+132|0,Ae(l)|0&&(n[(Sn(s,4,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Sn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Fr(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,Ae(l)|0&&(f=Sn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Sn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Hr(f,c))),y(c)}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(K(s,l,c))),y(f+y(te(s,l,c)))}function Gi(s){s=s|0;var l=0,c=0,f=0;e:do if(_A(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=Zi(s)|0,!c)l=0;else for(l=0;;){if(f=Ts(s,l)|0,(n[f+24>>2]|0)==0&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(0);return l|0}function Mm(s,l){s=s|0,l=l|0;var c=$e;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((Ot(c)|0)^1)|0}function Ja(s){s=s|0;var l=$e,c=0,f=0,d=0,m=0,B=0,Q=0,k=$e;if(c=n[s+968>>2]|0,c)k=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(E7[c&0](s,k,l)),Yn(s,(Ot(l)|0)^1,3573);else{m=Zi(s)|0;do if(m|0){for(c=0,d=0;;){if(f=Ts(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(Q=(ga(s,f)|0)==5,Q){c=f;break}else c=(c|0)==0?f:c;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(Ja(c)),y(l+y(h[c+404>>2]))}while(0);l=y(h[s+912>>2])}return y(l)}function UA(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=$e,m=0;return _A(l)|0?(l=1,m=3):Ae(l)|0?(l=0,m=3):(f=y(pe),d=y(pe)),(m|0)==3&&(d=y(Hr(s+364+(l<<3)|0,f)),f=y(Hr(s+380+(l<<3)|0,f))),m=f<c&(f>=y(0)&((Ot(f)|0)^1)),c=m?f:c,m=d>=y(0)&((Ot(d)|0)^1)&c<d,y(m?d:c)}function Um(s,l,c,f,d,m,B){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,B=B|0;var Q=$e,k=$e,M=0,O=0,j=$e,se=$e,Ye=$e,Le=0,Re=0,et=0,Ze=0,at=$e,He=0;et=ur(n[s+4>>2]|0,m)|0,Le=fI(et,m)|0,Re=Ae(et)|0,j=y(rn(l,2,c)),se=y(rn(l,0,c)),ts(l,2,c)|0?Q=y(j+y(Hr(n[l+992>>2]|0,c))):Ai(l,2)|0&&nr(l,2)|0?(Q=y(h[s+908>>2]),k=y(gr(s,2)),k=y(Q-y(k+y(hn(s,2)))),Q=y(Fr(l,2,c)),Q=y(Ci(l,2,y(k-y(Q+y(xu(l,2,c)))),c,c))):Q=y(pe),ts(l,0,d)|0?k=y(se+y(Hr(n[l+996>>2]|0,d))):Ai(l,0)|0&&nr(l,0)|0?(k=y(h[s+912>>2]),at=y(gr(s,0)),at=y(k-y(at+y(hn(s,0)))),k=y(Fr(l,0,d)),k=y(Ci(l,0,y(at-y(k+y(xu(l,0,d)))),d,c))):k=y(pe),M=Ot(Q)|0,O=Ot(k)|0;do if(M^O&&(Ye=y(h[l+396>>2]),!(Ot(Ye)|0)))if(M){Q=y(j+y(y(k-se)*Ye));break}else{at=y(se+y(y(Q-j)/Ye)),k=O?at:k;break}while(0);O=Ot(Q)|0,M=Ot(k)|0,O|M&&(He=(O^1)&1,f=c>y(0)&((f|0)!=0&O),Q=Re?Q:f?c:Q,pa(l,Q,k,m,Re?He:f?2:He,O&(M^1)&1,Q,k,0,3623,B)|0,Q=y(h[l+908>>2]),Q=y(Q+y(rn(l,2,c))),k=y(h[l+912>>2]),k=y(k+y(rn(l,0,c)))),pa(l,Q,k,m,1,1,Q,k,1,3635,B)|0,nr(l,et)|0&&!(Ai(l,et)|0)?(He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),at=y(at-y(hn(s,et))),at=y(at-y(te(l,et,c))),at=y(at-y(xu(l,et,Re?c:d))),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at):Ze=21;do if((Ze|0)==21){if(!(Ai(l,et)|0)&&(n[s+8>>2]|0)==1){He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(y(at-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at;break}!(Ai(l,et)|0)&&(n[s+8>>2]|0)==2&&(He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at)}while(0);nr(l,Le)|0&&!(Ai(l,Le)|0)?(He=n[976+(Le<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),at=y(at-y(hn(s,Le))),at=y(at-y(te(l,Le,c))),at=y(at-y(xu(l,Le,Re?d:c))),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=at):Ze=30;do if((Ze|0)==30&&!(Ai(l,Le)|0)){if((ga(s,l)|0)==2){He=n[976+(Le<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(y(at-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=at;break}He=(ga(s,l)|0)==3,He^(n[s+28>>2]|0)==2&&(He=n[976+(Le<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=at)}while(0)}function Ip(s,l,c){s=s|0,l=l|0,c=c|0;var f=$e,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function _A(s){return s=s|0,(s|1|0)==1|0}function hI(s){s=s|0;var l=$e;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((Ot(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function gI(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function nr(s,l){return s=s|0,l=l|0,s=s+132|0,Ae(l)|0&&(n[(Sn(s,5,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Sn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function xu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,Ae(l)|0&&(f=Sn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Sn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Hr(f,c))),y(c)}function _m(s,l,c){return s=s|0,l=l|0,c=y(c),Ai(s,l)|0?c=y(Fr(s,l,c)):c=y(-y(xu(s,l,c))),y(c)}function bu(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function wp(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function Cg(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function HA(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function qA(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;if(B=s+4|0,Q=n[B>>2]|0,d=Q-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0<c>>>0){f=Q;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0<c>>>0)}m|0&&bI(Q+(0-m<<2)|0,l|0,d|0)|0}function Ig(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0;return Q=l+4|0,k=n[Q>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=k+(0-(m>>2)<<2)|0,n[Q>>2]=f,(m|0)>0&&Cr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(Cr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[Q>>2],n[Q>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[Q>>2],k|0}function dI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function Hm(){Cc()}function da(){var s=0;return s=Gt(4)|0,jA(s),s|0}function jA(s){s=s|0,n[s>>2]=$i()|0}function kc(s){s=s|0,s|0&&(wg(s),pt(s))}function wg(s){s=s|0,mi(n[s>>2]|0)}function qm(s,l,c){s=s|0,l=l|0,c=c|0,Va(n[s>>2]|0,l,c)}function uo(s,l){s=s|0,l=y(l),ha(n[s>>2]|0,l)}function Tv(s,l){return s=s|0,l=l|0,gI(n[s>>2]|0,l)|0}function mI(){var s=0;return s=Gt(8)|0,Nv(s,0),s|0}function Nv(s,l){s=s|0,l=l|0,l?l=di(n[l>>2]|0)|0:l=oo()|0,n[s>>2]=l,n[s+4>>2]=0,_r(l,s)}function aF(s){s=s|0;var l=0;return l=Gt(8)|0,Nv(l,s),l|0}function Lv(s){s=s|0,s|0&&(Qu(s),pt(s))}function Qu(s){s=s|0;var l=0;oa(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(GA(s),pt(s))}function GA(s){s=s|0,WA(s)}function WA(s){s=s|0,s=n[s>>2]|0,s|0&&QA(s|0)}function yI(s){return s=s|0,ei(s)|0}function jm(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(GA(l),pt(l)),ao(n[s>>2]|0)}function lF(s,l){s=s|0,l=l|0,tr(n[s>>2]|0,n[l>>2]|0)}function cF(s,l){s=s|0,l=l|0,ua(n[s>>2]|0,l)}function Ov(s,l,c){s=s|0,l=l|0,c=+c,wu(n[s>>2]|0,l,y(c))}function Mv(s,l,c){s=s|0,l=l|0,c=+c,ms(n[s>>2]|0,l,y(c))}function EI(s,l){s=s|0,l=l|0,yi(n[s>>2]|0,l)}function ku(s,l){s=s|0,l=l|0,Ga(n[s>>2]|0,l)}function uF(s,l){s=s|0,l=l|0,RA(n[s>>2]|0,l)}function AF(s,l){s=s|0,l=l|0,Ti(n[s>>2]|0,l)}function Bp(s,l){s=s|0,l=l|0,wc(n[s>>2]|0,l)}function fF(s,l){s=s|0,l=l|0,ja(n[s>>2]|0,l)}function Uv(s,l,c){s=s|0,l=l|0,c=+c,vc(n[s>>2]|0,l,y(c))}function YA(s,l,c){s=s|0,l=l|0,c=+c,G(n[s>>2]|0,l,y(c))}function pF(s,l){s=s|0,l=l|0,Dl(n[s>>2]|0,l)}function hF(s,l){s=s|0,l=l|0,ig(n[s>>2]|0,l)}function _v(s,l){s=s|0,l=l|0,fp(n[s>>2]|0,l)}function CI(s,l){s=s|0,l=+l,TA(n[s>>2]|0,y(l))}function II(s,l){s=s|0,l=+l,Wa(n[s>>2]|0,y(l))}function gF(s,l){s=s|0,l=+l,ji(n[s>>2]|0,y(l))}function dF(s,l){s=s|0,l=+l,Os(n[s>>2]|0,y(l))}function bl(s,l){s=s|0,l=+l,Iu(n[s>>2]|0,y(l))}function wI(s,l){s=s|0,l=+l,cI(n[s>>2]|0,y(l))}function mF(s,l){s=s|0,l=+l,NA(n[s>>2]|0,y(l))}function KA(s){s=s|0,pp(n[s>>2]|0)}function Gm(s,l){s=s|0,l=+l,ys(n[s>>2]|0,y(l))}function Fu(s,l){s=s|0,l=+l,ag(n[s>>2]|0,y(l))}function BI(s){s=s|0,lg(n[s>>2]|0)}function vI(s,l){s=s|0,l=+l,hp(n[s>>2]|0,y(l))}function yF(s,l){s=s|0,l=+l,Sc(n[s>>2]|0,y(l))}function Hv(s,l){s=s|0,l=+l,Qm(n[s>>2]|0,y(l))}function VA(s,l){s=s|0,l=+l,ug(n[s>>2]|0,y(l))}function qv(s,l){s=s|0,l=+l,vu(n[s>>2]|0,y(l))}function Wm(s,l){s=s|0,l=+l,km(n[s>>2]|0,y(l))}function jv(s,l){s=s|0,l=+l,Du(n[s>>2]|0,y(l))}function Gv(s,l){s=s|0,l=+l,uI(n[s>>2]|0,y(l))}function Ym(s,l){s=s|0,l=+l,fa(n[s>>2]|0,y(l))}function Wv(s,l,c){s=s|0,l=l|0,c=+c,Bu(n[s>>2]|0,l,y(c))}function EF(s,l,c){s=s|0,l=l|0,c=+c,Si(n[s>>2]|0,l,y(c))}function S(s,l,c){s=s|0,l=l|0,c=+c,Dc(n[s>>2]|0,l,y(c))}function D(s){return s=s|0,ng(n[s>>2]|0)|0}function T(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Bc(d,n[l>>2]|0,c),q(s,d),E=f}function q(s,l){s=s|0,l=l|0,W(s,n[l+4>>2]|0,+y(h[l>>2]))}function W(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,C[s+8>>3]=c}function ce(s){return s=s|0,ca(n[s>>2]|0)|0}function Se(s){return s=s|0,lo(n[s>>2]|0)|0}function It(s){return s=s|0,Ic(n[s>>2]|0)|0}function Et(s){return s=s|0,Kn(n[s>>2]|0)|0}function bt(s){return s=s|0,bm(n[s>>2]|0)|0}function Nr(s){return s=s|0,la(n[s>>2]|0)|0}function is(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Dt(d,n[l>>2]|0,c),q(s,d),E=f}function fi(s){return s=s|0,Vn(n[s>>2]|0)|0}function Ao(s){return s=s|0,sg(n[s>>2]|0)|0}function JA(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,Aa(f,n[l>>2]|0),q(s,f),E=c}function qo(s){return s=s|0,+ +y(Zr(n[s>>2]|0))}function rt(s){return s=s|0,+ +y(Tn(n[s>>2]|0))}function Je(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,yr(f,n[l>>2]|0),q(s,f),E=c}function ft(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,cg(f,n[l>>2]|0),q(s,f),E=c}function jt(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,mt(f,n[l>>2]|0),q(s,f),E=c}function Er(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,Ag(f,n[l>>2]|0),q(s,f),E=c}function In(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,fg(f,n[l>>2]|0),q(s,f),E=c}function Sr(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,Fm(f,n[l>>2]|0),q(s,f),E=c}function wn(s){return s=s|0,+ +y(Pc(n[s>>2]|0))}function ni(s,l){return s=s|0,l=l|0,+ +y(og(n[s>>2]|0,l))}function Xr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,lt(d,n[l>>2]|0,c),q(s,d),E=f}function fo(s,l,c){s=s|0,l=l|0,c=c|0,aa(n[s>>2]|0,n[l>>2]|0,c)}function CF(s,l){s=s|0,l=l|0,Ls(n[s>>2]|0,n[l>>2]|0)}function Dve(s){return s=s|0,Zi(n[s>>2]|0)|0}function Sve(s){return s=s|0,s=xe(n[s>>2]|0)|0,s?s=yI(s)|0:s=0,s|0}function Pve(s,l){return s=s|0,l=l|0,s=Ts(n[s>>2]|0,l)|0,s?s=yI(s)|0:s=0,s|0}function xve(s,l){s=s|0,l=l|0;var c=0,f=0;f=Gt(4)|0,VG(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(GA(l),pt(l)),qa(n[s>>2]|0,1)}function VG(s,l){s=s|0,l=l|0,_ve(s,l)}function bve(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,Q=0;B=E,E=E+16|0,Q=B,Qve(Q,ei(l)|0,+c,f,+d,m),h[s>>2]=y(+C[Q>>3]),h[s+4>>2]=y(+C[Q+8>>3]),E=B}function Qve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,Q=0,k=0,M=0,O=0;B=E,E=E+32|0,O=B+8|0,M=B+20|0,k=B,Q=B+16|0,C[O>>3]=c,n[M>>2]=f,C[k>>3]=d,n[Q>>2]=m,kve(s,n[l+4>>2]|0,O,M,k,Q),E=B}function kve(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0;B=E,E=E+16|0,Q=B,Xa(Q),l=ma(l)|0,Fve(s,l,+C[c>>3],n[f>>2]|0,+C[d>>3],n[m>>2]|0),Za(Q),E=B}function ma(s){return s=s|0,n[s>>2]|0}function Fve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=Ql(Rve()|0)|0,c=+zA(c),f=IF(f)|0,d=+zA(d),Tve(s,ui(0,B|0,l|0,+c,f|0,+d,IF(m)|0)|0)}function Rve(){var s=0;return o[7608]|0||(Mve(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function Ql(s){return s=s|0,n[s+8>>2]|0}function zA(s){return s=+s,+ +wF(s)}function IF(s){return s=s|0,zG(s)|0}function Tve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+32|0,c=d,f=l,f&1?(Nve(c,0),$n(f|0,c|0)|0,Lve(s,c),Ove(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),E=d}function Nve(s,l){s=s|0,l=l|0,JG(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function Lve(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function Ove(s){s=s|0,o[s+24>>0]=0}function JG(s,l){s=s|0,l=l|0,n[s>>2]=l}function zG(s){return s=s|0,s|0}function wF(s){return s=+s,+s}function Mve(s){s=s|0,kl(s,Uve()|0,4)}function Uve(){return 1064}function kl(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=Ap(l|0,c+1|0)|0}function _ve(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,Il(l|0)}function Hve(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(GA(l),pt(l)),qa(n[s>>2]|0,0)}function qve(s){s=s|0,Ve(n[s>>2]|0)}function jve(s){return s=s|0,vt(n[s>>2]|0)|0}function Gve(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,xc(n[s>>2]|0,y(l),y(c),f)}function Wve(s){return s=s|0,+ +y(Sl(n[s>>2]|0))}function Yve(s){return s=s|0,+ +y(pg(n[s>>2]|0))}function Kve(s){return s=s|0,+ +y(Su(n[s>>2]|0))}function Vve(s){return s=s|0,+ +y(LA(n[s>>2]|0))}function Jve(s){return s=s|0,+ +y(gp(n[s>>2]|0))}function zve(s){return s=s|0,+ +y(Ya(n[s>>2]|0))}function Xve(s,l){s=s|0,l=l|0,C[s>>3]=+y(Sl(n[l>>2]|0)),C[s+8>>3]=+y(pg(n[l>>2]|0)),C[s+16>>3]=+y(Su(n[l>>2]|0)),C[s+24>>3]=+y(LA(n[l>>2]|0)),C[s+32>>3]=+y(gp(n[l>>2]|0)),C[s+40>>3]=+y(Ya(n[l>>2]|0))}function Zve(s,l){return s=s|0,l=l|0,+ +y(hg(n[s>>2]|0,l))}function $ve(s,l){return s=s|0,l=l|0,+ +y(dp(n[s>>2]|0,l))}function eDe(s,l){return s=s|0,l=l|0,+ +y(_o(n[s>>2]|0,l))}function tDe(){return qn()|0}function rDe(){nDe(),iDe(),sDe(),oDe(),aDe(),lDe()}function nDe(){aLe(11713,4938,1)}function iDe(){SNe(10448)}function sDe(){aNe(10408)}function oDe(){QTe(10324)}function aDe(){MFe(10096)}function lDe(){cDe(9132)}function cDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0,Bn=0,po=0,ho=0,go=0,Ea=0,Fp=0,Rp=0,Fl=0,Tp=0,Lu=0,Ou=0,Np=0,Lp=0,Op=0,Jr=0,Rl=0,Mp=0,Rc=0,Up=0,_p=0,Mu=0,Uu=0,Tc=0,Us=0,el=0,jo=0,Tl=0,sf=0,of=0,_u=0,af=0,lf=0,_s=0,ws=0,Nl=0,Pn=0,cf=0,mo=0,Nc=0,yo=0,Lc=0,uf=0,Af=0,Oc=0,Hs=0,Ll=0,ff=0,pf=0,hf=0,vr=0,jn=0,Bs=0,Eo=0,qs=0,Pr=0,lr=0,Ol=0;l=E,E=E+672|0,c=l+656|0,Ol=l+648|0,lr=l+640|0,Pr=l+632|0,qs=l+624|0,Eo=l+616|0,Bs=l+608|0,jn=l+600|0,vr=l+592|0,hf=l+584|0,pf=l+576|0,ff=l+568|0,Ll=l+560|0,Hs=l+552|0,Oc=l+544|0,Af=l+536|0,uf=l+528|0,Lc=l+520|0,yo=l+512|0,Nc=l+504|0,mo=l+496|0,cf=l+488|0,Pn=l+480|0,Nl=l+472|0,ws=l+464|0,_s=l+456|0,lf=l+448|0,af=l+440|0,_u=l+432|0,of=l+424|0,sf=l+416|0,Tl=l+408|0,jo=l+400|0,el=l+392|0,Us=l+384|0,Tc=l+376|0,Uu=l+368|0,Mu=l+360|0,_p=l+352|0,Up=l+344|0,Rc=l+336|0,Mp=l+328|0,Rl=l+320|0,Jr=l+312|0,Op=l+304|0,Lp=l+296|0,Np=l+288|0,Ou=l+280|0,Lu=l+272|0,Tp=l+264|0,Fl=l+256|0,Rp=l+248|0,Fp=l+240|0,Ea=l+232|0,go=l+224|0,ho=l+216|0,po=l+208|0,Bn=l+200|0,rr=l+192|0,Qr=l+184|0,Ir=l+176|0,Jt=l+168|0,ir=l+160|0,Rr=l+152|0,Tt=l+144|0,Ge=l+136|0,He=l+128|0,at=l+120|0,Ze=l+112|0,et=l+104|0,Re=l+96|0,Le=l+88|0,Ye=l+80|0,se=l+72|0,j=l+64|0,O=l+56|0,M=l+48|0,k=l+40|0,Q=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,uDe(s,3646),ADe(s,3651,2)|0,fDe(s,3665,2)|0,pDe(s,3682,18)|0,n[Ol>>2]=19,n[Ol+4>>2]=0,n[c>>2]=n[Ol>>2],n[c+4>>2]=n[Ol+4>>2],DI(s,3690,c)|0,n[lr>>2]=1,n[lr+4>>2]=0,n[c>>2]=n[lr>>2],n[c+4>>2]=n[lr+4>>2],hDe(s,3696,c)|0,n[Pr>>2]=2,n[Pr+4>>2]=0,n[c>>2]=n[Pr>>2],n[c+4>>2]=n[Pr+4>>2],Ru(s,3706,c)|0,n[qs>>2]=1,n[qs+4>>2]=0,n[c>>2]=n[qs>>2],n[c+4>>2]=n[qs+4>>2],Bg(s,3722,c)|0,n[Eo>>2]=2,n[Eo+4>>2]=0,n[c>>2]=n[Eo>>2],n[c+4>>2]=n[Eo+4>>2],Bg(s,3734,c)|0,n[Bs>>2]=3,n[Bs+4>>2]=0,n[c>>2]=n[Bs>>2],n[c+4>>2]=n[Bs+4>>2],Ru(s,3753,c)|0,n[jn>>2]=4,n[jn+4>>2]=0,n[c>>2]=n[jn>>2],n[c+4>>2]=n[jn+4>>2],Ru(s,3769,c)|0,n[vr>>2]=5,n[vr+4>>2]=0,n[c>>2]=n[vr>>2],n[c+4>>2]=n[vr+4>>2],Ru(s,3783,c)|0,n[hf>>2]=6,n[hf+4>>2]=0,n[c>>2]=n[hf>>2],n[c+4>>2]=n[hf+4>>2],Ru(s,3796,c)|0,n[pf>>2]=7,n[pf+4>>2]=0,n[c>>2]=n[pf>>2],n[c+4>>2]=n[pf+4>>2],Ru(s,3813,c)|0,n[ff>>2]=8,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],Ru(s,3825,c)|0,n[Ll>>2]=3,n[Ll+4>>2]=0,n[c>>2]=n[Ll>>2],n[c+4>>2]=n[Ll+4>>2],Bg(s,3843,c)|0,n[Hs>>2]=4,n[Hs+4>>2]=0,n[c>>2]=n[Hs>>2],n[c+4>>2]=n[Hs+4>>2],Bg(s,3853,c)|0,n[Oc>>2]=9,n[Oc+4>>2]=0,n[c>>2]=n[Oc>>2],n[c+4>>2]=n[Oc+4>>2],Ru(s,3870,c)|0,n[Af>>2]=10,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],Ru(s,3884,c)|0,n[uf>>2]=11,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],Ru(s,3896,c)|0,n[Lc>>2]=1,n[Lc+4>>2]=0,n[c>>2]=n[Lc>>2],n[c+4>>2]=n[Lc+4>>2],Cs(s,3907,c)|0,n[yo>>2]=2,n[yo+4>>2]=0,n[c>>2]=n[yo>>2],n[c+4>>2]=n[yo+4>>2],Cs(s,3915,c)|0,n[Nc>>2]=3,n[Nc+4>>2]=0,n[c>>2]=n[Nc>>2],n[c+4>>2]=n[Nc+4>>2],Cs(s,3928,c)|0,n[mo>>2]=4,n[mo+4>>2]=0,n[c>>2]=n[mo>>2],n[c+4>>2]=n[mo+4>>2],Cs(s,3948,c)|0,n[cf>>2]=5,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],Cs(s,3960,c)|0,n[Pn>>2]=6,n[Pn+4>>2]=0,n[c>>2]=n[Pn>>2],n[c+4>>2]=n[Pn+4>>2],Cs(s,3974,c)|0,n[Nl>>2]=7,n[Nl+4>>2]=0,n[c>>2]=n[Nl>>2],n[c+4>>2]=n[Nl+4>>2],Cs(s,3983,c)|0,n[ws>>2]=20,n[ws+4>>2]=0,n[c>>2]=n[ws>>2],n[c+4>>2]=n[ws+4>>2],DI(s,3999,c)|0,n[_s>>2]=8,n[_s+4>>2]=0,n[c>>2]=n[_s>>2],n[c+4>>2]=n[_s+4>>2],Cs(s,4012,c)|0,n[lf>>2]=9,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Cs(s,4022,c)|0,n[af>>2]=21,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],DI(s,4039,c)|0,n[_u>>2]=10,n[_u+4>>2]=0,n[c>>2]=n[_u>>2],n[c+4>>2]=n[_u+4>>2],Cs(s,4053,c)|0,n[of>>2]=11,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],Cs(s,4065,c)|0,n[sf>>2]=12,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],Cs(s,4084,c)|0,n[Tl>>2]=13,n[Tl+4>>2]=0,n[c>>2]=n[Tl>>2],n[c+4>>2]=n[Tl+4>>2],Cs(s,4097,c)|0,n[jo>>2]=14,n[jo+4>>2]=0,n[c>>2]=n[jo>>2],n[c+4>>2]=n[jo+4>>2],Cs(s,4117,c)|0,n[el>>2]=15,n[el+4>>2]=0,n[c>>2]=n[el>>2],n[c+4>>2]=n[el+4>>2],Cs(s,4129,c)|0,n[Us>>2]=16,n[Us+4>>2]=0,n[c>>2]=n[Us>>2],n[c+4>>2]=n[Us+4>>2],Cs(s,4148,c)|0,n[Tc>>2]=17,n[Tc+4>>2]=0,n[c>>2]=n[Tc>>2],n[c+4>>2]=n[Tc+4>>2],Cs(s,4161,c)|0,n[Uu>>2]=18,n[Uu+4>>2]=0,n[c>>2]=n[Uu>>2],n[c+4>>2]=n[Uu+4>>2],Cs(s,4181,c)|0,n[Mu>>2]=5,n[Mu+4>>2]=0,n[c>>2]=n[Mu>>2],n[c+4>>2]=n[Mu+4>>2],Bg(s,4196,c)|0,n[_p>>2]=6,n[_p+4>>2]=0,n[c>>2]=n[_p>>2],n[c+4>>2]=n[_p+4>>2],Bg(s,4206,c)|0,n[Up>>2]=7,n[Up+4>>2]=0,n[c>>2]=n[Up>>2],n[c+4>>2]=n[Up+4>>2],Bg(s,4217,c)|0,n[Rc>>2]=3,n[Rc+4>>2]=0,n[c>>2]=n[Rc>>2],n[c+4>>2]=n[Rc+4>>2],XA(s,4235,c)|0,n[Mp>>2]=1,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],BF(s,4251,c)|0,n[Rl>>2]=4,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],XA(s,4263,c)|0,n[Jr>>2]=5,n[Jr+4>>2]=0,n[c>>2]=n[Jr>>2],n[c+4>>2]=n[Jr+4>>2],XA(s,4279,c)|0,n[Op>>2]=6,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],XA(s,4293,c)|0,n[Lp>>2]=7,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],XA(s,4306,c)|0,n[Np>>2]=8,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],XA(s,4323,c)|0,n[Ou>>2]=9,n[Ou+4>>2]=0,n[c>>2]=n[Ou>>2],n[c+4>>2]=n[Ou+4>>2],XA(s,4335,c)|0,n[Lu>>2]=2,n[Lu+4>>2]=0,n[c>>2]=n[Lu>>2],n[c+4>>2]=n[Lu+4>>2],BF(s,4353,c)|0,n[Tp>>2]=12,n[Tp+4>>2]=0,n[c>>2]=n[Tp>>2],n[c+4>>2]=n[Tp+4>>2],vg(s,4363,c)|0,n[Fl>>2]=1,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],ZA(s,4376,c)|0,n[Rp>>2]=2,n[Rp+4>>2]=0,n[c>>2]=n[Rp>>2],n[c+4>>2]=n[Rp+4>>2],ZA(s,4388,c)|0,n[Fp>>2]=13,n[Fp+4>>2]=0,n[c>>2]=n[Fp>>2],n[c+4>>2]=n[Fp+4>>2],vg(s,4402,c)|0,n[Ea>>2]=14,n[Ea+4>>2]=0,n[c>>2]=n[Ea>>2],n[c+4>>2]=n[Ea+4>>2],vg(s,4411,c)|0,n[go>>2]=15,n[go+4>>2]=0,n[c>>2]=n[go>>2],n[c+4>>2]=n[go+4>>2],vg(s,4421,c)|0,n[ho>>2]=16,n[ho+4>>2]=0,n[c>>2]=n[ho>>2],n[c+4>>2]=n[ho+4>>2],vg(s,4433,c)|0,n[po>>2]=17,n[po+4>>2]=0,n[c>>2]=n[po>>2],n[c+4>>2]=n[po+4>>2],vg(s,4446,c)|0,n[Bn>>2]=18,n[Bn+4>>2]=0,n[c>>2]=n[Bn>>2],n[c+4>>2]=n[Bn+4>>2],vg(s,4458,c)|0,n[rr>>2]=3,n[rr+4>>2]=0,n[c>>2]=n[rr>>2],n[c+4>>2]=n[rr+4>>2],ZA(s,4471,c)|0,n[Qr>>2]=1,n[Qr+4>>2]=0,n[c>>2]=n[Qr>>2],n[c+4>>2]=n[Qr+4>>2],Yv(s,4486,c)|0,n[Ir>>2]=10,n[Ir+4>>2]=0,n[c>>2]=n[Ir>>2],n[c+4>>2]=n[Ir+4>>2],XA(s,4496,c)|0,n[Jt>>2]=11,n[Jt+4>>2]=0,n[c>>2]=n[Jt>>2],n[c+4>>2]=n[Jt+4>>2],XA(s,4508,c)|0,n[ir>>2]=3,n[ir+4>>2]=0,n[c>>2]=n[ir>>2],n[c+4>>2]=n[ir+4>>2],BF(s,4519,c)|0,n[Rr>>2]=4,n[Rr+4>>2]=0,n[c>>2]=n[Rr>>2],n[c+4>>2]=n[Rr+4>>2],gDe(s,4530,c)|0,n[Tt>>2]=19,n[Tt+4>>2]=0,n[c>>2]=n[Tt>>2],n[c+4>>2]=n[Tt+4>>2],dDe(s,4542,c)|0,n[Ge>>2]=12,n[Ge+4>>2]=0,n[c>>2]=n[Ge>>2],n[c+4>>2]=n[Ge+4>>2],mDe(s,4554,c)|0,n[He>>2]=13,n[He+4>>2]=0,n[c>>2]=n[He>>2],n[c+4>>2]=n[He+4>>2],yDe(s,4568,c)|0,n[at>>2]=2,n[at+4>>2]=0,n[c>>2]=n[at>>2],n[c+4>>2]=n[at+4>>2],EDe(s,4578,c)|0,n[Ze>>2]=20,n[Ze+4>>2]=0,n[c>>2]=n[Ze>>2],n[c+4>>2]=n[Ze+4>>2],CDe(s,4587,c)|0,n[et>>2]=22,n[et+4>>2]=0,n[c>>2]=n[et>>2],n[c+4>>2]=n[et+4>>2],DI(s,4602,c)|0,n[Re>>2]=23,n[Re+4>>2]=0,n[c>>2]=n[Re>>2],n[c+4>>2]=n[Re+4>>2],DI(s,4619,c)|0,n[Le>>2]=14,n[Le+4>>2]=0,n[c>>2]=n[Le>>2],n[c+4>>2]=n[Le+4>>2],IDe(s,4629,c)|0,n[Ye>>2]=1,n[Ye+4>>2]=0,n[c>>2]=n[Ye>>2],n[c+4>>2]=n[Ye+4>>2],wDe(s,4637,c)|0,n[se>>2]=4,n[se+4>>2]=0,n[c>>2]=n[se>>2],n[c+4>>2]=n[se+4>>2],ZA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],ZA(s,4669,c)|0,n[O>>2]=6,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],ZA(s,4686,c)|0,n[M>>2]=7,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],ZA(s,4701,c)|0,n[k>>2]=8,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],ZA(s,4719,c)|0,n[Q>>2]=9,n[Q+4>>2]=0,n[c>>2]=n[Q>>2],n[c+4>>2]=n[Q+4>>2],ZA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],BDe(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],Yv(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],Yv(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],Yv(s,4808,c)|0,E=l}function uDe(s,l){s=s|0,l=l|0;var c=0;c=bFe()|0,n[s>>2]=c,QFe(c,l),bp(n[s>>2]|0)}function ADe(s,l,c){return s=s|0,l=l|0,c=c|0,gFe(s,cn(l)|0,c,0),s|0}function fDe(s,l,c){return s=s|0,l=l|0,c=c|0,$ke(s,cn(l)|0,c,0),s|0}function pDe(s,l,c){return s=s|0,l=l|0,c=c|0,Uke(s,cn(l)|0,c,0),s|0}function DI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Bke(s,l,d),E=f,s|0}function hDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ike(s,l,d),E=f,s|0}function Ru(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qQe(s,l,d),E=f,s|0}function Bg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SQe(s,l,d),E=f,s|0}function Cs(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],uQe(s,l,d),E=f,s|0}function XA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Vbe(s,l,d),E=f,s|0}function BF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Fbe(s,l,d),E=f,s|0}function vg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ibe(s,l,d),E=f,s|0}function ZA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qxe(s,l,d),E=f,s|0}function Yv(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Sxe(s,l,d),E=f,s|0}function gDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],uxe(s,l,d),E=f,s|0}function dDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],VPe(s,l,d),E=f,s|0}function mDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],RPe(s,l,d),E=f,s|0}function yDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yPe(s,l,d),E=f,s|0}function EDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tPe(s,l,d),E=f,s|0}function CDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],MSe(s,l,d),E=f,s|0}function IDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wSe(s,l,d),E=f,s|0}function wDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iSe(s,l,d),E=f,s|0}function BDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vDe(s,l,d),E=f,s|0}function vDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],DDe(s,c,d,1),E=f}function cn(s){return s=s|0,s|0}function DDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=vF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=SDe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,PDe(m,f)|0,f),E=d}function vF(){var s=0,l=0;if(o[7616]|0||($G(9136),Zt(24,9136,_|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(br(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$G(9136)}return 9136}function SDe(s){return s=s|0,0}function PDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=vF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],ZG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(QDe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function un(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0;B=E,E=E+32|0,se=B+24|0,j=B+20|0,k=B+16|0,O=B+12|0,M=B+8|0,Q=B+4|0,Ye=B,n[j>>2]=l,n[k>>2]=c,n[O>>2]=f,n[M>>2]=d,n[Q>>2]=m,m=s+28|0,n[Ye>>2]=n[m>>2],n[se>>2]=n[Ye>>2],xDe(s+24|0,se,j,O,M,k,Q)|0,n[m>>2]=n[n[m>>2]>>2],E=B}function xDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=bDe(l)|0,l=Gt(24)|0,XG(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function bDe(s){return s=s|0,n[s>>2]|0}function XG(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function Ar(s,l){return s=s|0,l=l|0,l|s|0}function ZG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function QDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=kDe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,FDe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],ZG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,RDe(s,Q),TDe(Q),E=M;return}}function kDe(s){return s=s|0,357913941}function FDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function RDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function TDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function $G(s){s=s|0,ODe(s)}function NDe(s){s=s|0,LDe(s+24|0)}function br(s){return s=s|0,n[s>>2]|0}function LDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function ODe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,3,l,MDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Gr(){return 9228}function MDe(){return 1140}function UDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=_De(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=HDe(l,f)|0,E=c,l|0}function Wr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function _De(s){return s=s|0,(n[(vF()|0)+24>>2]|0)+(s*12|0)|0}function HDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),nf[c&31](f,s),f=qDe(f)|0,E=d,f|0}function qDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=DF(e9()|0)|0,f?(SF(l,f),PF(c,l),jDe(s,c),s=xF(l)|0):s=GDe(s)|0,E=d,s|0}function e9(){var s=0;return o[7632]|0||(eSe(9184),Zt(25,9184,_|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function DF(s){return s=s|0,n[s+36>>2]|0}function SF(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function PF(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function jDe(s,l){s=s|0,l=l|0,VDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function xF(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function GDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0;k=E,E=E+16|0,c=k+4|0,f=k,d=za(8)|0,m=d,B=Gt(48)|0,Q=B,l=Q+48|0;do n[Q>>2]=n[s>>2],Q=Q+4|0,s=s+4|0;while((Q|0)<(l|0));return l=m+4|0,n[l>>2]=B,Q=Gt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],t9(Q,B,c),n[d>>2]=Q,E=k,m|0}function t9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function WDe(s){s=s|0,Zm(s),pt(s)}function YDe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function KDe(s){s=s|0,pt(s)}function VDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=JDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function JDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var Q=0,k=0;return Q=E,E=E+16|0,k=Q,Xa(k),s=ma(s)|0,B=zDe(s,+C[l>>3],+C[c>>3],+C[f>>3],+C[d>>3],+C[m>>3],+C[B>>3])|0,Za(k),E=Q,B|0}function zDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var Q=0;return Q=Ql(XDe()|0)|0,l=+zA(l),c=+zA(c),f=+zA(f),d=+zA(d),m=+zA(m),Fs(0,Q|0,s|0,+l,+c,+f,+d,+m,+ +zA(B))|0}function XDe(){var s=0;return o[7624]|0||(ZDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function ZDe(s){s=s|0,kl(s,$De()|0,6)}function $De(){return 1112}function eSe(s){s=s|0,vp(s)}function tSe(s){s=s|0,r9(s+24|0),n9(s+16|0)}function r9(s){s=s|0,nSe(s)}function n9(s){s=s|0,rSe(s)}function rSe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function nSe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function vp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function iSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sSe(s,c,d,0),E=f}function sSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=bF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=oSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,aSe(m,f)|0,f),E=d}function bF(){var s=0,l=0;if(o[7640]|0||(s9(9232),Zt(26,9232,_|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(br(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s9(9232)}return 9232}function oSe(s){return s=s|0,0}function aSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=bF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],i9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function i9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cSe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,uSe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],i9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,ASe(s,Q),fSe(Q),E=M;return}}function cSe(s){return s=s|0,357913941}function uSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ASe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function s9(s){s=s|0,gSe(s)}function pSe(s){s=s|0,hSe(s+24|0)}function hSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function gSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,dSe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dSe(){return 1144}function mSe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+16|0,B=m+8|0,Q=m,k=ySe(s)|0,s=n[k+4>>2]|0,n[Q>>2]=n[k>>2],n[Q+4>>2]=s,n[B>>2]=n[Q>>2],n[B+4>>2]=n[Q+4>>2],ESe(l,B,c,f,d),E=m}function ySe(s){return s=s|0,(n[(bF()|0)+24>>2]|0)+(s*12|0)|0}function ESe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,Q=0,k=0,M=0;M=E,E=E+16|0,B=M+2|0,Q=M+1|0,k=M,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),Tu(B,c),c=+Nu(B,c),Tu(Q,f),f=+Nu(Q,f),$A(k,d),k=ef(k,d)|0,C7[m&1](s,c,f,k),E=M}function Tu(s,l){s=s|0,l=+l}function Nu(s,l){return s=s|0,l=+l,+ +ISe(l)}function $A(s,l){s=s|0,l=l|0}function ef(s,l){return s=s|0,l=l|0,CSe(l)|0}function CSe(s){return s=s|0,s|0}function ISe(s){return s=+s,+s}function wSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],BSe(s,c,d,1),E=f}function BSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=QF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=vSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,DSe(m,f)|0,f),E=d}function QF(){var s=0,l=0;if(o[7648]|0||(a9(9268),Zt(27,9268,_|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(br(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a9(9268)}return 9268}function vSe(s){return s=s|0,0}function DSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=QF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],o9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(SSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function o9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function SSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=PSe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xSe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],o9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,bSe(s,Q),QSe(Q),E=M;return}}function PSe(s){return s=s|0,357913941}function xSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function QSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function a9(s){s=s|0,RSe(s)}function kSe(s){s=s|0,FSe(s+24|0)}function FSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function RSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,4,l,TSe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TSe(){return 1160}function NSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=LSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=OSe(l,f)|0,E=c,l|0}function LSe(s){return s=s|0,(n[(QF()|0)+24>>2]|0)+(s*12|0)|0}function OSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),l9(Rg[c&31](s)|0)|0}function l9(s){return s=s|0,s&1|0}function MSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],USe(s,c,d,0),E=f}function USe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=kF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=_Se(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,HSe(m,f)|0,f),E=d}function kF(){var s=0,l=0;if(o[7656]|0||(u9(9304),Zt(28,9304,_|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(br(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));u9(9304)}return 9304}function _Se(s){return s=s|0,0}function HSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=kF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],c9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(qSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function c9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function qSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=jSe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,GSe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],c9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,WSe(s,Q),YSe(Q),E=M;return}}function jSe(s){return s=s|0,357913941}function GSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function WSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function YSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function u9(s){s=s|0,JSe(s)}function KSe(s){s=s|0,VSe(s+24|0)}function VSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function JSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,zSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function zSe(){return 1164}function XSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=ZSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$Se(l,d,c),E=f}function ZSe(s){return s=s|0,(n[(kF()|0)+24>>2]|0)+(s*12|0)|0}function $Se(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Dp(d,c),c=Sp(d,c)|0,nf[f&31](s,c),Pp(d),E=m}function Dp(s,l){s=s|0,l=l|0,ePe(s,l)}function Sp(s,l){return s=s|0,l=l|0,s|0}function Pp(s){s=s|0,GA(s)}function ePe(s,l){s=s|0,l=l|0,FF(s,l)}function FF(s,l){s=s|0,l=l|0,n[s>>2]=l}function tPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rPe(s,c,d,0),E=f}function rPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=RF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,iPe(m,f)|0,f),E=d}function RF(){var s=0,l=0;if(o[7664]|0||(f9(9340),Zt(29,9340,_|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(br(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));f9(9340)}return 9340}function nPe(s){return s=s|0,0}function iPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=RF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],A9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sPe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function A9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oPe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,aPe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],A9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,lPe(s,Q),cPe(Q),E=M;return}}function oPe(s){return s=s|0,357913941}function aPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function f9(s){s=s|0,fPe(s)}function uPe(s){s=s|0,APe(s+24|0)}function APe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function fPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,4,l,pPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pPe(){return 1180}function hPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=gPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=dPe(l,d,c)|0,E=f,c|0}function gPe(s){return s=s|0,(n[(RF()|0)+24>>2]|0)+(s*12|0)|0}function dPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Dg(d,c),d=Sg(d,c)|0,d=Kv(bR[f&15](s,d)|0)|0,E=m,d|0}function Dg(s,l){s=s|0,l=l|0}function Sg(s,l){return s=s|0,l=l|0,mPe(l)|0}function Kv(s){return s=s|0,s|0}function mPe(s){return s=s|0,s|0}function yPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EPe(s,c,d,0),E=f}function EPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=TF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=CPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,IPe(m,f)|0,f),E=d}function TF(){var s=0,l=0;if(o[7672]|0||(h9(9376),Zt(30,9376,_|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(br(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));h9(9376)}return 9376}function CPe(s){return s=s|0,0}function IPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=TF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],p9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(wPe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function p9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function wPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=BPe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,vPe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],p9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,DPe(s,Q),SPe(Q),E=M;return}}function BPe(s){return s=s|0,357913941}function vPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function DPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function SPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function h9(s){s=s|0,bPe(s)}function PPe(s){s=s|0,xPe(s+24|0)}function xPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function bPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,g9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function g9(){return 1196}function QPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=kPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=FPe(l,f)|0,E=c,l|0}function kPe(s){return s=s|0,(n[(TF()|0)+24>>2]|0)+(s*12|0)|0}function FPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),Kv(Rg[c&31](s)|0)|0}function RPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],TPe(s,c,d,1),E=f}function TPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=NF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=NPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,LPe(m,f)|0,f),E=d}function NF(){var s=0,l=0;if(o[7680]|0||(m9(9412),Zt(31,9412,_|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(br(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));m9(9412)}return 9412}function NPe(s){return s=s|0,0}function LPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=NF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],d9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(OPe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function d9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function OPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=MPe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,UPe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],d9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,_Pe(s,Q),HPe(Q),E=M;return}}function MPe(s){return s=s|0,357913941}function UPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _Pe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function HPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function m9(s){s=s|0,GPe(s)}function qPe(s){s=s|0,jPe(s+24|0)}function jPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function GPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,y9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function y9(){return 1200}function WPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=YPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=KPe(l,f)|0,E=c,l|0}function YPe(s){return s=s|0,(n[(NF()|0)+24>>2]|0)+(s*12|0)|0}function KPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),Vv(Rg[c&31](s)|0)|0}function Vv(s){return s=s|0,s|0}function VPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],JPe(s,c,d,0),E=f}function JPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=LF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=zPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,XPe(m,f)|0,f),E=d}function LF(){var s=0,l=0;if(o[7688]|0||(C9(9448),Zt(32,9448,_|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(br(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));C9(9448)}return 9448}function zPe(s){return s=s|0,0}function XPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=LF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],E9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ZPe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function E9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ZPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=$Pe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,exe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],E9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,txe(s,Q),rxe(Q),E=M;return}}function $Pe(s){return s=s|0,357913941}function exe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function txe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function rxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function C9(s){s=s|0,sxe(s)}function nxe(s){s=s|0,ixe(s+24|0)}function ixe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function sxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,I9()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function I9(){return 1204}function oxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=axe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lxe(l,d,c),E=f}function axe(s){return s=s|0,(n[(LF()|0)+24>>2]|0)+(s*12|0)|0}function lxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),OF(d,c),d=MF(d,c)|0,nf[f&31](s,d),E=m}function OF(s,l){s=s|0,l=l|0}function MF(s,l){return s=s|0,l=l|0,cxe(l)|0}function cxe(s){return s=s|0,s|0}function uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Axe(s,c,d,0),E=f}function Axe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=UF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=fxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,pxe(m,f)|0,f),E=d}function UF(){var s=0,l=0;if(o[7696]|0||(B9(9484),Zt(33,9484,_|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(br(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));B9(9484)}return 9484}function fxe(s){return s=s|0,0}function pxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=UF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],w9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(hxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function w9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function hxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=gxe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,dxe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],w9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,mxe(s,Q),yxe(Q),E=M;return}}function gxe(s){return s=s|0,357913941}function dxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function mxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function B9(s){s=s|0,Ixe(s)}function Exe(s){s=s|0,Cxe(s+24|0)}function Cxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Ixe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,wxe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wxe(){return 1212}function Bxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=vxe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],Dxe(l,m,c,f),E=d}function vxe(s){return s=s|0,(n[(UF()|0)+24>>2]|0)+(s*12|0)|0}function Dxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),OF(m,c),m=MF(m,c)|0,Dg(B,f),B=Sg(B,f)|0,FI[d&15](s,m,B),E=Q}function Sxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Pxe(s,c,d,1),E=f}function Pxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=_F()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=xxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,bxe(m,f)|0,f),E=d}function _F(){var s=0,l=0;if(o[7704]|0||(D9(9520),Zt(34,9520,_|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(br(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));D9(9520)}return 9520}function xxe(s){return s=s|0,0}function bxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=_F()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],v9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Qxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function v9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Qxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=kxe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Fxe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],v9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Rxe(s,Q),Txe(Q),E=M;return}}function kxe(s){return s=s|0,357913941}function Fxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Rxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Txe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function D9(s){s=s|0,Oxe(s)}function Nxe(s){s=s|0,Lxe(s+24|0)}function Lxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Oxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,Mxe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Mxe(){return 1224}function Uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;return d=E,E=E+16|0,m=d+8|0,B=d,Q=_xe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+Hxe(l,m,c),E=d,+f}function _xe(s){return s=s|0,(n[(_F()|0)+24>>2]|0)+(s*12|0)|0}function Hxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),$A(d,c),d=ef(d,c)|0,B=+wF(+w7[f&7](s,d)),E=m,+B}function qxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jxe(s,c,d,1),E=f}function jxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=HF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Gxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Wxe(m,f)|0,f),E=d}function HF(){var s=0,l=0;if(o[7712]|0||(P9(9556),Zt(35,9556,_|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(br(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));P9(9556)}return 9556}function Gxe(s){return s=s|0,0}function Wxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=HF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],S9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Yxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function S9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Yxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Kxe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Vxe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],S9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Jxe(s,Q),zxe(Q),E=M;return}}function Kxe(s){return s=s|0,357913941}function Vxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Jxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function P9(s){s=s|0,$xe(s)}function Xxe(s){s=s|0,Zxe(s+24|0)}function Zxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function $xe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,ebe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ebe(){return 1232}function tbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=rbe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+nbe(l,d),E=f,+c}function rbe(s){return s=s|0,(n[(HF()|0)+24>>2]|0)+(s*12|0)|0}function nbe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +wF(+I7[c&15](s))}function ibe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sbe(s,c,d,1),E=f}function sbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=qF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=obe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,abe(m,f)|0,f),E=d}function qF(){var s=0,l=0;if(o[7720]|0||(b9(9592),Zt(36,9592,_|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(br(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));b9(9592)}return 9592}function obe(s){return s=s|0,0}function abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=qF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],x9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lbe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function x9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cbe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ube(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],x9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Abe(s,Q),fbe(Q),E=M;return}}function cbe(s){return s=s|0,357913941}function ube(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function b9(s){s=s|0,gbe(s)}function pbe(s){s=s|0,hbe(s+24|0)}function hbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function gbe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,7,l,dbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dbe(){return 1276}function mbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=ybe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Ebe(l,f)|0,E=c,l|0}function ybe(s){return s=s|0,(n[(qF()|0)+24>>2]|0)+(s*12|0)|0}function Ebe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),nf[c&31](f,s),f=Q9(f)|0,E=d,f|0}function Q9(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=DF(k9()|0)|0,f?(SF(l,f),PF(c,l),Cbe(s,c),s=xF(l)|0):s=Ibe(s)|0,E=d,s|0}function k9(){var s=0;return o[7736]|0||(kbe(9640),Zt(25,9640,_|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function Cbe(s,l){s=s|0,l=l|0,Dbe(l,s,s+8|0)|0}function Ibe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=za(8)|0,l=f,Q=Gt(16)|0,n[Q>>2]=n[s>>2],n[Q+4>>2]=n[s+4>>2],n[Q+8>>2]=n[s+8>>2],n[Q+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],jF(s,m,d),n[f>>2]=s,E=c,l|0}function jF(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function wbe(s){s=s|0,Zm(s),pt(s)}function Bbe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function vbe(s){s=s|0,pt(s)}function Dbe(s,l,c){return s=s|0,l=l|0,c=c|0,l=Sbe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function Sbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=E,E=E+16|0,d=f,Xa(d),s=ma(s)|0,c=Pbe(s,n[l>>2]|0,+C[c>>3])|0,Za(d),E=f,c|0}function Pbe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=Ql(xbe()|0)|0,l=IF(l)|0,Cl(0,f|0,s|0,l|0,+ +zA(c))|0}function xbe(){var s=0;return o[7728]|0||(bbe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function bbe(s){s=s|0,kl(s,Qbe()|0,2)}function Qbe(){return 1264}function kbe(s){s=s|0,vp(s)}function Fbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Rbe(s,c,d,1),E=f}function Rbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=GF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Tbe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Nbe(m,f)|0,f),E=d}function GF(){var s=0,l=0;if(o[7744]|0||(R9(9684),Zt(37,9684,_|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(br(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));R9(9684)}return 9684}function Tbe(s){return s=s|0,0}function Nbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=GF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],F9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Lbe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function F9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Lbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Obe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Mbe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],F9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Ube(s,Q),_be(Q),E=M;return}}function Obe(s){return s=s|0,357913941}function Mbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Ube(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _be(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function R9(s){s=s|0,jbe(s)}function Hbe(s){s=s|0,qbe(s+24|0)}function qbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function jbe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,Gbe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Gbe(){return 1280}function Wbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=Ybe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=Kbe(l,d,c)|0,E=f,c|0}function Ybe(s){return s=s|0,(n[(GF()|0)+24>>2]|0)+(s*12|0)|0}function Kbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=E,E=E+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),$A(m,c),m=ef(m,c)|0,FI[f&15](d,s,m),m=Q9(d)|0,E=B,m|0}function Vbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Jbe(s,c,d,1),E=f}function Jbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=WF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=zbe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Xbe(m,f)|0,f),E=d}function WF(){var s=0,l=0;if(o[7752]|0||(N9(9720),Zt(38,9720,_|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(br(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));N9(9720)}return 9720}function zbe(s){return s=s|0,0}function Xbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=WF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],T9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Zbe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function T9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Zbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=$be(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,eQe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],T9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,tQe(s,Q),rQe(Q),E=M;return}}function $be(s){return s=s|0,357913941}function eQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function tQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function rQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function N9(s){s=s|0,sQe(s)}function nQe(s){s=s|0,iQe(s+24|0)}function iQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function sQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,oQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function oQe(){return 1288}function aQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=lQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=cQe(l,f)|0,E=c,l|0}function lQe(s){return s=s|0,(n[(WF()|0)+24>>2]|0)+(s*12|0)|0}function cQe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),zG(Rg[c&31](s)|0)|0}function uQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],AQe(s,c,d,0),E=f}function AQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=YF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=fQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,pQe(m,f)|0,f),E=d}function YF(){var s=0,l=0;if(o[7760]|0||(O9(9756),Zt(39,9756,_|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(br(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));O9(9756)}return 9756}function fQe(s){return s=s|0,0}function pQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=YF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],L9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(hQe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function L9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function hQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=gQe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,dQe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],L9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,mQe(s,Q),yQe(Q),E=M;return}}function gQe(s){return s=s|0,357913941}function dQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function mQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function O9(s){s=s|0,IQe(s)}function EQe(s){s=s|0,CQe(s+24|0)}function CQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function IQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,wQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wQe(){return 1292}function BQe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=vQe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],DQe(l,d,c),E=f}function vQe(s){return s=s|0,(n[(YF()|0)+24>>2]|0)+(s*12|0)|0}function DQe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Tu(d,c),c=+Nu(d,c),y7[f&31](s,c),E=m}function SQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],PQe(s,c,d,0),E=f}function PQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=KF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=xQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,bQe(m,f)|0,f),E=d}function KF(){var s=0,l=0;if(o[7768]|0||(U9(9792),Zt(40,9792,_|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(br(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));U9(9792)}return 9792}function xQe(s){return s=s|0,0}function bQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=KF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],M9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(QQe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function M9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function QQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=kQe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,FQe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],M9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,RQe(s,Q),TQe(Q),E=M;return}}function kQe(s){return s=s|0,357913941}function FQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function RQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function TQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function U9(s){s=s|0,OQe(s)}function NQe(s){s=s|0,LQe(s+24|0)}function LQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function OQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,MQe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function MQe(){return 1300}function UQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=_Qe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],HQe(l,m,c,f),E=d}function _Qe(s){return s=s|0,(n[(KF()|0)+24>>2]|0)+(s*12|0)|0}function HQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),$A(m,c),m=ef(m,c)|0,Tu(B,f),f=+Nu(B,f),S7[d&15](s,m,f),E=Q}function qQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jQe(s,c,d,0),E=f}function jQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=VF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=GQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,WQe(m,f)|0,f),E=d}function VF(){var s=0,l=0;if(o[7776]|0||(H9(9828),Zt(41,9828,_|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(br(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));H9(9828)}return 9828}function GQe(s){return s=s|0,0}function WQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=VF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(YQe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function YQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=KQe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,VQe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,JQe(s,Q),zQe(Q),E=M;return}}function KQe(s){return s=s|0,357913941}function VQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function JQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function H9(s){s=s|0,$Qe(s)}function XQe(s){s=s|0,ZQe(s+24|0)}function ZQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function $Qe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,7,l,eke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function eke(){return 1312}function tke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=rke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],nke(l,d,c),E=f}function rke(s){return s=s|0,(n[(VF()|0)+24>>2]|0)+(s*12|0)|0}function nke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),$A(d,c),d=ef(d,c)|0,nf[f&31](s,d),E=m}function ike(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ske(s,c,d,0),E=f}function ske(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=JF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=oke(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,ake(m,f)|0,f),E=d}function JF(){var s=0,l=0;if(o[7784]|0||(j9(9864),Zt(42,9864,_|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(br(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));j9(9864)}return 9864}function oke(s){return s=s|0,0}function ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=JF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],q9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lke(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function q9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cke(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,uke(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],q9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Ake(s,Q),fke(Q),E=M;return}}function cke(s){return s=s|0,357913941}function uke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function j9(s){s=s|0,gke(s)}function pke(s){s=s|0,hke(s+24|0)}function hke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function gke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,dke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dke(){return 1320}function mke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=yke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Eke(l,d,c),E=f}function yke(s){return s=s|0,(n[(JF()|0)+24>>2]|0)+(s*12|0)|0}function Eke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Cke(d,c),d=Ike(d,c)|0,nf[f&31](s,d),E=m}function Cke(s,l){s=s|0,l=l|0}function Ike(s,l){return s=s|0,l=l|0,wke(l)|0}function wke(s){return s=s|0,s|0}function Bke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vke(s,c,d,0),E=f}function vke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=zF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Dke(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Ske(m,f)|0,f),E=d}function zF(){var s=0,l=0;if(o[7792]|0||(W9(9900),Zt(43,9900,_|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(br(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));W9(9900)}return 9900}function Dke(s){return s=s|0,0}function Ske(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=zF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],G9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Pke(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function G9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Pke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=xke(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,bke(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],G9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Qke(s,Q),kke(Q),E=M;return}}function xke(s){return s=s|0,357913941}function bke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Qke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function kke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function W9(s){s=s|0,Tke(s)}function Fke(s){s=s|0,Rke(s+24|0)}function Rke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Tke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,22,l,Nke()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Nke(){return 1344}function Lke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=E,E=E+16|0,f=c+8|0,d=c,m=Oke(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],Mke(l,f),E=c}function Oke(s){return s=s|0,(n[(zF()|0)+24>>2]|0)+(s*12|0)|0}function Mke(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),rf[c&127](s)}function Uke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=XF()|0,s=_ke(c)|0,un(m,l,d,s,Hke(c,f)|0,f)}function XF(){var s=0,l=0;if(o[7800]|0||(K9(9936),Zt(44,9936,_|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(br(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));K9(9936)}return 9936}function _ke(s){return s=s|0,s|0}function Hke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=XF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(Y9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(qke(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function Y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function qke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=jke(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,Gke(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,Y9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,Wke(s,d),Yke(d),E=Q;return}}function jke(s){return s=s|0,536870911}function Gke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function Wke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Yke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function K9(s){s=s|0,Jke(s)}function Kke(s){s=s|0,Vke(s+24|0)}function Vke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function Jke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,23,l,I9()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function zke(s,l){s=s|0,l=l|0,Zke(n[(Xke(s)|0)>>2]|0,l)}function Xke(s){return s=s|0,(n[(XF()|0)+24>>2]|0)+(s<<3)|0}function Zke(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,OF(f,l),l=MF(f,l)|0,rf[s&127](l),E=c}function $ke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=ZF()|0,s=eFe(c)|0,un(m,l,d,s,tFe(c,f)|0,f)}function ZF(){var s=0,l=0;if(o[7808]|0||(J9(9972),Zt(45,9972,_|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(br(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));J9(9972)}return 9972}function eFe(s){return s=s|0,s|0}function tFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=ZF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(V9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(rFe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function V9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function rFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=nFe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,iFe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,V9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,sFe(s,d),oFe(d),E=Q;return}}function nFe(s){return s=s|0,536870911}function iFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function sFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function J9(s){s=s|0,cFe(s)}function aFe(s){s=s|0,lFe(s+24|0)}function lFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function cFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,9,l,uFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uFe(){return 1348}function AFe(s,l){return s=s|0,l=l|0,pFe(n[(fFe(s)|0)>>2]|0,l)|0}function fFe(s){return s=s|0,(n[(ZF()|0)+24>>2]|0)+(s<<3)|0}function pFe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,z9(f,l),l=X9(f,l)|0,l=Kv(Rg[s&31](l)|0)|0,E=c,l|0}function z9(s,l){s=s|0,l=l|0}function X9(s,l){return s=s|0,l=l|0,hFe(l)|0}function hFe(s){return s=s|0,s|0}function gFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=$F()|0,s=dFe(c)|0,un(m,l,d,s,mFe(c,f)|0,f)}function $F(){var s=0,l=0;if(o[7816]|0||($9(10008),Zt(46,10008,_|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(br(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$9(10008)}return 10008}function dFe(s){return s=s|0,s|0}function mFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=$F()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(Z9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(yFe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function Z9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function yFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=EFe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,CFe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,Z9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,IFe(s,d),wFe(d),E=Q;return}}function EFe(s){return s=s|0,536870911}function CFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function IFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function $9(s){s=s|0,DFe(s)}function BFe(s){s=s|0,vFe(s+24|0)}function vFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function DFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,15,l,g9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function SFe(s){return s=s|0,xFe(n[(PFe(s)|0)>>2]|0)|0}function PFe(s){return s=s|0,(n[($F()|0)+24>>2]|0)+(s<<3)|0}function xFe(s){return s=s|0,Kv(lD[s&7]()|0)|0}function bFe(){var s=0;return o[7832]|0||(OFe(10052),Zt(25,10052,_|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function QFe(s,l){s=s|0,l=l|0,n[s>>2]=kFe()|0,n[s+4>>2]=FFe()|0,n[s+12>>2]=l,n[s+8>>2]=RFe()|0,n[s+32>>2]=2}function kFe(){return 11709}function FFe(){return 1188}function RFe(){return Jv()|0}function TFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(xp(f,896)|0)==512?c|0&&(NFe(c),pt(c)):l|0&&(Qu(l),pt(l))}function xp(s,l){return s=s|0,l=l|0,l&s|0}function NFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Qp(s)}function Jv(){var s=0;return o[7824]|0||(n[2511]=LFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function LFe(){return 0}function OFe(s){s=s|0,vp(s)}function MFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=E,E=E+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,UFe(s,4827),_Fe(s,4834,3)|0,HFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],qFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],jFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],GFe(s,4891,c)|0,E=l}function UFe(s,l){s=s|0,l=l|0;var c=0;c=wTe()|0,n[s>>2]=c,BTe(c,l),bp(n[s>>2]|0)}function _Fe(s,l,c){return s=s|0,l=l|0,c=c|0,oTe(s,cn(l)|0,c,0),s|0}function HFe(s,l,c){return s=s|0,l=l|0,c=c|0,WRe(s,cn(l)|0,c,0),s|0}function qFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SRe(s,l,d),E=f,s|0}function jFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],aRe(s,l,d),E=f,s|0}function GFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],WFe(s,l,d),E=f,s|0}function WFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YFe(s,c,d,1),E=f}function YFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=eR()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=KFe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,VFe(m,f)|0,f),E=d}function eR(){var s=0,l=0;if(o[7840]|0||(t5(10100),Zt(48,10100,_|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(br(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t5(10100)}return 10100}function KFe(s){return s=s|0,0}function VFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=eR()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],e5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(JFe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function e5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function JFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=zFe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,XFe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],e5(m,f,c),n[k>>2]=(n[k>>2]|0)+12,ZFe(s,Q),$Fe(Q),E=M;return}}function zFe(s){return s=s|0,357913941}function XFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ZFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function $Fe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function t5(s){s=s|0,rRe(s)}function eRe(s){s=s|0,tRe(s+24|0)}function tRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function rRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,nRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function nRe(){return 1364}function iRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=sRe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=oRe(l,d,c)|0,E=f,c|0}function sRe(s){return s=s|0,(n[(eR()|0)+24>>2]|0)+(s*12|0)|0}function oRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),$A(d,c),d=ef(d,c)|0,d=l9(bR[f&15](s,d)|0)|0,E=m,d|0}function aRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lRe(s,c,d,0),E=f}function lRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=tR()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=cRe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,uRe(m,f)|0,f),E=d}function tR(){var s=0,l=0;if(o[7848]|0||(n5(10136),Zt(49,10136,_|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(br(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n5(10136)}return 10136}function cRe(s){return s=s|0,0}function uRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=tR()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],r5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ARe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function r5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ARe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=fRe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,pRe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],r5(m,f,c),n[k>>2]=(n[k>>2]|0)+12,hRe(s,Q),gRe(Q),E=M;return}}function fRe(s){return s=s|0,357913941}function pRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function hRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function gRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function n5(s){s=s|0,yRe(s)}function dRe(s){s=s|0,mRe(s+24|0)}function mRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function yRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,9,l,ERe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ERe(){return 1372}function CRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=IRe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wRe(l,d,c),E=f}function IRe(s){return s=s|0,(n[(tR()|0)+24>>2]|0)+(s*12|0)|0}function wRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=$e;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),BRe(d,c),B=y(vRe(d,c)),m7[f&1](s,B),E=m}function BRe(s,l){s=s|0,l=+l}function vRe(s,l){return s=s|0,l=+l,y(DRe(l))}function DRe(s){return s=+s,y(s)}function SRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],PRe(s,c,d,0),E=f}function PRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=rR()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=xRe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,bRe(m,f)|0,f),E=d}function rR(){var s=0,l=0;if(o[7856]|0||(s5(10172),Zt(50,10172,_|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(br(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s5(10172)}return 10172}function xRe(s){return s=s|0,0}function bRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=rR()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],i5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(QRe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function i5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function QRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=kRe(s)|0,m>>>0<d>>>0)Vr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,FRe(Q,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],i5(m,f,c),n[k>>2]=(n[k>>2]|0)+12,RRe(s,Q),TRe(Q),E=M;return}}function kRe(s){return s=s|0,357913941}function FRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function RRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function TRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function s5(s){s=s|0,ORe(s)}function NRe(s){s=s|0,LRe(s+24|0)}function LRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function ORe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,3,l,MRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function MRe(){return 1380}function URe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=_Re(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],HRe(l,m,c,f),E=d}function _Re(s){return s=s|0,(n[(rR()|0)+24>>2]|0)+(s*12|0)|0}function HRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),$A(m,c),m=ef(m,c)|0,qRe(B,f),B=jRe(B,f)|0,FI[d&15](s,m,B),E=Q}function qRe(s,l){s=s|0,l=l|0}function jRe(s,l){return s=s|0,l=l|0,GRe(l)|0}function GRe(s){return s=s|0,(s|0)!=0|0}function WRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=nR()|0,s=YRe(c)|0,un(m,l,d,s,KRe(c,f)|0,f)}function nR(){var s=0,l=0;if(o[7864]|0||(a5(10208),Zt(51,10208,_|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(br(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a5(10208)}return 10208}function YRe(s){return s=s|0,s|0}function KRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=nR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(o5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(VRe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function o5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function VRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=JRe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,zRe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,o5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,XRe(s,d),ZRe(d),E=Q;return}}function JRe(s){return s=s|0,536870911}function zRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function XRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ZRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function a5(s){s=s|0,tTe(s)}function $Re(s){s=s|0,eTe(s+24|0)}function eTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function tTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,24,l,rTe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function rTe(){return 1392}function nTe(s,l){s=s|0,l=l|0,sTe(n[(iTe(s)|0)>>2]|0,l)}function iTe(s){return s=s|0,(n[(nR()|0)+24>>2]|0)+(s<<3)|0}function sTe(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,z9(f,l),l=X9(f,l)|0,rf[s&127](l),E=c}function oTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=iR()|0,s=aTe(c)|0,un(m,l,d,s,lTe(c,f)|0,f)}function iR(){var s=0,l=0;if(o[7872]|0||(c5(10244),Zt(52,10244,_|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(br(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));c5(10244)}return 10244}function aTe(s){return s=s|0,s|0}function lTe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=iR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(l5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(cTe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function l5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function cTe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=uTe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,ATe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,l5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,fTe(s,d),pTe(d),E=Q;return}}function uTe(s){return s=s|0,536870911}function ATe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function fTe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function pTe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function c5(s){s=s|0,dTe(s)}function hTe(s){s=s|0,gTe(s+24|0)}function gTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function dTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,16,l,mTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function mTe(){return 1400}function yTe(s){return s=s|0,CTe(n[(ETe(s)|0)>>2]|0)|0}function ETe(s){return s=s|0,(n[(iR()|0)+24>>2]|0)+(s<<3)|0}function CTe(s){return s=s|0,ITe(lD[s&7]()|0)|0}function ITe(s){return s=s|0,s|0}function wTe(){var s=0;return o[7880]|0||(bTe(10280),Zt(25,10280,_|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function BTe(s,l){s=s|0,l=l|0,n[s>>2]=vTe()|0,n[s+4>>2]=DTe()|0,n[s+12>>2]=l,n[s+8>>2]=STe()|0,n[s+32>>2]=4}function vTe(){return 11711}function DTe(){return 1356}function STe(){return Jv()|0}function PTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(xp(f,896)|0)==512?c|0&&(xTe(c),pt(c)):l|0&&(wg(l),pt(l))}function xTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Qp(s)}function bTe(s){s=s|0,vp(s)}function QTe(s){s=s|0,kTe(s,4920),FTe(s)|0,RTe(s)|0}function kTe(s,l){s=s|0,l=l|0;var c=0;c=k9()|0,n[s>>2]=c,eNe(c,l),bp(n[s>>2]|0)}function FTe(s){s=s|0;var l=0;return l=n[s>>2]|0,Pg(l,GTe()|0),s|0}function RTe(s){s=s|0;var l=0;return l=n[s>>2]|0,Pg(l,TTe()|0),s|0}function TTe(){var s=0;return o[7888]|0||(u5(10328),Zt(53,10328,_|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),br(10328)|0||u5(10328),10328}function Pg(s,l){s=s|0,l=l|0,un(s,0,l,0,0,0)}function u5(s){s=s|0,OTe(s),xg(s,10)}function NTe(s){s=s|0,LTe(s+24|0)}function LTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function OTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,1,l,HTe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function MTe(s,l,c){s=s|0,l=l|0,c=+c,UTe(s,l,c)}function xg(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function UTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,m=f+8|0,Q=f+13|0,d=f,B=f+12|0,$A(Q,l),n[m>>2]=ef(Q,l)|0,Tu(B,c),C[d>>3]=+Nu(B,c),_Te(s,m,d),E=f}function _Te(s,l,c){s=s|0,l=l|0,c=c|0,W(s+8|0,n[l>>2]|0,+C[c>>3]),o[s+24>>0]=1}function HTe(){return 1404}function qTe(s,l){return s=s|0,l=+l,jTe(s,l)|0}function jTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+16|0,m=f+4|0,B=f+8|0,Q=f,d=za(8)|0,c=d,k=Gt(16)|0,$A(m,s),s=ef(m,s)|0,Tu(B,l),W(k,s,+Nu(B,l)),B=c+4|0,n[B>>2]=k,s=Gt(8)|0,B=n[B>>2]|0,n[Q>>2]=0,n[m>>2]=n[Q>>2],jF(s,B,m),n[d>>2]=s,E=f,c|0}function GTe(){var s=0;return o[7896]|0||(A5(10364),Zt(54,10364,_|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),br(10364)|0||A5(10364),10364}function A5(s){s=s|0,KTe(s),xg(s,55)}function WTe(s){s=s|0,YTe(s+24|0)}function YTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function KTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,4,l,XTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function VTe(s){s=s|0,JTe(s)}function JTe(s){s=s|0,zTe(s)}function zTe(s){s=s|0,f5(s+8|0),o[s+24>>0]=1}function f5(s){s=s|0,n[s>>2]=0,C[s+8>>3]=0}function XTe(){return 1424}function ZTe(){return $Te()|0}function $Te(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=za(8)|0,s=c,f=Gt(16)|0,f5(f),m=s+4|0,n[m>>2]=f,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],jF(f,m,d),n[c>>2]=f,E=l,s|0}function eNe(s,l){s=s|0,l=l|0,n[s>>2]=tNe()|0,n[s+4>>2]=rNe()|0,n[s+12>>2]=l,n[s+8>>2]=nNe()|0,n[s+32>>2]=5}function tNe(){return 11710}function rNe(){return 1416}function nNe(){return zv()|0}function iNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(xp(f,896)|0)==512?c|0&&(sNe(c),pt(c)):l|0&&pt(l)}function sNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Qp(s)}function zv(){var s=0;return o[7904]|0||(n[2600]=oNe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function oNe(){return n[357]|0}function aNe(s){s=s|0,lNe(s,4926),cNe(s)|0}function lNe(s,l){s=s|0,l=l|0;var c=0;c=e9()|0,n[s>>2]=c,CNe(c,l),bp(n[s>>2]|0)}function cNe(s){s=s|0;var l=0;return l=n[s>>2]|0,Pg(l,uNe()|0),s|0}function uNe(){var s=0;return o[7912]|0||(p5(10412),Zt(56,10412,_|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),br(10412)|0||p5(10412),10412}function p5(s){s=s|0,pNe(s),xg(s,57)}function ANe(s){s=s|0,fNe(s+24|0)}function fNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function pNe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,5,l,mNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function hNe(s){s=s|0,gNe(s)}function gNe(s){s=s|0,dNe(s)}function dNe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function mNe(){return 1432}function yNe(){return ENe()|0}function ENe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,Q=0;B=E,E=E+16|0,s=B+4|0,l=B,c=za(8)|0,f=c,d=Gt(48)|0,m=d,Q=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(Q|0));return m=f+4|0,n[m>>2]=d,Q=Gt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],t9(Q,m,s),n[c>>2]=Q,E=B,f|0}function CNe(s,l){s=s|0,l=l|0,n[s>>2]=INe()|0,n[s+4>>2]=wNe()|0,n[s+12>>2]=l,n[s+8>>2]=BNe()|0,n[s+32>>2]=6}function INe(){return 11704}function wNe(){return 1436}function BNe(){return zv()|0}function vNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(xp(f,896)|0)==512?c|0&&(DNe(c),pt(c)):l|0&&pt(l)}function DNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Qp(s)}function SNe(s){s=s|0,PNe(s,4933),xNe(s)|0,bNe(s)|0}function PNe(s,l){s=s|0,l=l|0;var c=0;c=$Ne()|0,n[s>>2]=c,eLe(c,l),bp(n[s>>2]|0)}function xNe(s){s=s|0;var l=0;return l=n[s>>2]|0,Pg(l,jNe()|0),s|0}function bNe(s){s=s|0;var l=0;return l=n[s>>2]|0,Pg(l,QNe()|0),s|0}function QNe(){var s=0;return o[7920]|0||(h5(10452),Zt(58,10452,_|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),br(10452)|0||h5(10452),10452}function h5(s){s=s|0,RNe(s),xg(s,1)}function kNe(s){s=s|0,FNe(s+24|0)}function FNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function RNe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,1,l,ONe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TNe(s,l,c){s=s|0,l=+l,c=+c,NNe(s,l,c)}function NNe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,m=f+8|0,Q=f+17|0,d=f,B=f+16|0,Tu(Q,l),C[m>>3]=+Nu(Q,l),Tu(B,c),C[d>>3]=+Nu(B,c),LNe(s,m,d),E=f}function LNe(s,l,c){s=s|0,l=l|0,c=c|0,g5(s+8|0,+C[l>>3],+C[c>>3]),o[s+24>>0]=1}function g5(s,l,c){s=s|0,l=+l,c=+c,C[s>>3]=l,C[s+8>>3]=c}function ONe(){return 1472}function MNe(s,l){return s=+s,l=+l,UNe(s,l)|0}function UNe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+16|0,B=f+4|0,Q=f+8|0,k=f,d=za(8)|0,c=d,m=Gt(16)|0,Tu(B,s),s=+Nu(B,s),Tu(Q,l),g5(m,s,+Nu(Q,l)),Q=c+4|0,n[Q>>2]=m,m=Gt(8)|0,Q=n[Q>>2]|0,n[k>>2]=0,n[B>>2]=n[k>>2],d5(m,Q,B),n[d>>2]=m,E=f,c|0}function d5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function _Ne(s){s=s|0,Zm(s),pt(s)}function HNe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function qNe(s){s=s|0,pt(s)}function jNe(){var s=0;return o[7928]|0||(m5(10488),Zt(59,10488,_|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),br(10488)|0||m5(10488),10488}function m5(s){s=s|0,YNe(s),xg(s,60)}function GNe(s){s=s|0,WNe(s+24|0)}function WNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function YNe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,6,l,zNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function KNe(s){s=s|0,VNe(s)}function VNe(s){s=s|0,JNe(s)}function JNe(s){s=s|0,y5(s+8|0),o[s+24>>0]=1}function y5(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function zNe(){return 1492}function XNe(){return ZNe()|0}function ZNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=za(8)|0,s=c,f=Gt(16)|0,y5(f),m=s+4|0,n[m>>2]=f,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],d5(f,m,d),n[c>>2]=f,E=l,s|0}function $Ne(){var s=0;return o[7936]|0||(oLe(10524),Zt(25,10524,_|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function eLe(s,l){s=s|0,l=l|0,n[s>>2]=tLe()|0,n[s+4>>2]=rLe()|0,n[s+12>>2]=l,n[s+8>>2]=nLe()|0,n[s+32>>2]=7}function tLe(){return 11700}function rLe(){return 1484}function nLe(){return zv()|0}function iLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(xp(f,896)|0)==512?c|0&&(sLe(c),pt(c)):l|0&&pt(l)}function sLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Qp(s)}function oLe(s){s=s|0,vp(s)}function aLe(s,l,c){s=s|0,l=l|0,c=c|0,s=cn(l)|0,l=lLe(c)|0,c=cLe(c,0)|0,ULe(s,l,c,sR()|0,0)}function lLe(s){return s=s|0,s|0}function cLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=sR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(C5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(dLe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function sR(){var s=0,l=0;if(o[7944]|0||(E5(10568),Zt(61,10568,_|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(br(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));E5(10568)}return 10568}function E5(s){s=s|0,fLe(s)}function uLe(s){s=s|0,ALe(s+24|0)}function ALe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function fLe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,17,l,y9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pLe(s){return s=s|0,gLe(n[(hLe(s)|0)>>2]|0)|0}function hLe(s){return s=s|0,(n[(sR()|0)+24>>2]|0)+(s<<3)|0}function gLe(s){return s=s|0,Vv(lD[s&7]()|0)|0}function C5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function dLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=mLe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,yLe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,C5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,ELe(s,d),CLe(d),E=Q;return}}function mLe(s){return s=s|0,536870911}function yLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function ELe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function CLe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function ILe(){wLe()}function wLe(){BLe(10604)}function BLe(s){s=s|0,vLe(s,4955)}function vLe(s,l){s=s|0,l=l|0;var c=0;c=DLe()|0,n[s>>2]=c,SLe(c,l),bp(n[s>>2]|0)}function DLe(){var s=0;return o[7952]|0||(NLe(10612),Zt(25,10612,_|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function SLe(s,l){s=s|0,l=l|0,n[s>>2]=QLe()|0,n[s+4>>2]=kLe()|0,n[s+12>>2]=l,n[s+8>>2]=FLe()|0,n[s+32>>2]=8}function bp(s){s=s|0;var l=0,c=0;l=E,E=E+16|0,c=l,Km()|0,n[c>>2]=s,PLe(10608,c),E=l}function Km(){return o[11714]|0||(n[2652]=0,Zt(62,10608,_|0)|0,o[11714]=1),10608}function PLe(s,l){s=s|0,l=l|0;var c=0;c=Gt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function xLe(s){s=s|0,bLe(s)}function bLe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function QLe(){return 11715}function kLe(){return 1496}function FLe(){return Jv()|0}function RLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(xp(f,896)|0)==512?c|0&&(TLe(c),pt(c)):l|0&&pt(l)}function TLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Qp(s)}function NLe(s){s=s|0,vp(s)}function LLe(s,l){s=s|0,l=l|0;var c=0,f=0;Km()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&(t7(oR(f)|0,s)|0)==0);)if(c=n[c>>2]|0,!c)break e;OLe(f,l)}while(0)}function oR(s){return s=s|0,n[s+12>>2]|0}function OLe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(GA(c),pt(c)),c=Gt(4)|0,VG(c,l),n[s>>2]=c}function aR(){return o[11716]|0||(n[2664]=0,Zt(63,10656,_|0)|0,o[11716]=1),10656}function I5(){var s=0;return o[11717]|0?s=n[2665]|0:(MLe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function MLe(){o[11740]|0||(o[11718]=Ar(Ar(8,0)|0,0)|0,o[11719]=Ar(Ar(0,0)|0,0)|0,o[11720]=Ar(Ar(0,16)|0,0)|0,o[11721]=Ar(Ar(8,0)|0,0)|0,o[11722]=Ar(Ar(0,0)|0,0)|0,o[11723]=Ar(Ar(8,0)|0,0)|0,o[11724]=Ar(Ar(0,0)|0,0)|0,o[11725]=Ar(Ar(8,0)|0,0)|0,o[11726]=Ar(Ar(0,0)|0,0)|0,o[11727]=Ar(Ar(8,0)|0,0)|0,o[11728]=Ar(Ar(0,0)|0,0)|0,o[11729]=Ar(Ar(0,0)|0,32)|0,o[11730]=Ar(Ar(0,0)|0,32)|0,o[11740]=1)}function w5(){return 1572}function ULe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0;m=E,E=E+32|0,O=m+16|0,M=m+12|0,k=m+8|0,Q=m+4|0,B=m,n[O>>2]=s,n[M>>2]=l,n[k>>2]=c,n[Q>>2]=f,n[B>>2]=d,aR()|0,_Le(10656,O,M,k,Q,B),E=m}function _Le(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Gt(24)|0,XG(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function B5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0,et=0,Ze=0,at=0;if(at=E,E=E+32|0,Le=at+20|0,Re=at+8|0,et=at+4|0,Ze=at,l=n[l>>2]|0,l|0){Ye=Le+4|0,k=Le+8|0,M=Re+4|0,O=Re+8|0,j=Re+8|0,se=Le+8|0;do{if(B=l+4|0,Q=lR(B)|0,Q|0){if(d=SI(Q)|0,n[Le>>2]=0,n[Ye>>2]=0,n[k>>2]=0,f=(PI(Q)|0)+1|0,HLe(Le,f),f|0)for(;f=f+-1|0,Fc(Re,n[d>>2]|0),m=n[Ye>>2]|0,m>>>0<(n[se>>2]|0)>>>0?(n[m>>2]=n[Re>>2],n[Ye>>2]=(n[Ye>>2]|0)+4):cR(Le,Re),f;)d=d+4|0;f=xI(Q)|0,n[Re>>2]=0,n[M>>2]=0,n[O>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?qLe(Re,f):(n[d>>2]=n[f>>2],n[M>>2]=(n[M>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[M>>2]|0,m=n[j>>2]|0}while(0);n[et>>2]=Xv(B)|0,n[Ze>>2]=br(Q)|0,jLe(c,s,et,Ze,Le,Re),uR(Re),tf(Le)}l=n[l>>2]|0}while((l|0)!=0)}E=at}function lR(s){return s=s|0,n[s+12>>2]|0}function SI(s){return s=s|0,n[s+12>>2]|0}function PI(s){return s=s|0,n[s+16>>2]|0}function HLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0<l>>>0&&(k5(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),F5(s,c),R5(c)),E=d}function cR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;if(B=E,E=E+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=Q5(s)|0,m>>>0<d>>>0)Vr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,k=M>>1,k5(c,M>>2>>>0<m>>>1>>>0?k>>>0<d>>>0?d:k:m,(n[f>>2]|0)-Q>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,F5(s,c),R5(c),E=B;return}}function xI(s){return s=s|0,n[s+8>>2]|0}function qLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;if(B=E,E=E+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=b5(s)|0,m>>>0<d>>>0)Vr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,k=M>>1,lOe(c,M>>2>>>0<m>>>1>>>0?k>>>0<d>>>0?d:k:m,(n[f>>2]|0)-Q>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,cOe(s,c),uOe(c),E=B;return}}function Xv(s){return s=s|0,n[s>>2]|0}function jLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,GLe(s,l,c,f,d,m)}function uR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function tf(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function GLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+48|0,O=B+40|0,Q=B+32|0,j=B+24|0,k=B+12|0,M=B,Xa(Q),s=ma(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,AR(k,d),WLe(M,m),n[O>>2]=n[j>>2],YLe(s,O,c,f,k,M),uR(M),tf(k),Za(Q),E=B}function AR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(oOe(s,f),aOe(s,n[l>>2]|0,n[c>>2]|0,f))}function WLe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(iOe(s,f),sOe(s,n[l>>2]|0,n[c>>2]|0,f))}function YLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+32|0,O=B+28|0,j=B+24|0,Q=B+12|0,k=B,M=Ql(KLe()|0)|0,n[j>>2]=n[l>>2],n[O>>2]=n[j>>2],l=bg(O)|0,c=v5(c)|0,f=fR(f)|0,n[Q>>2]=n[d>>2],O=d+4|0,n[Q+4>>2]=n[O>>2],j=d+8|0,n[Q+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[d>>2]=0,d=pR(Q)|0,n[k>>2]=n[m>>2],O=m+4|0,n[k+4>>2]=n[O>>2],j=m+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[m>>2]=0,io(0,M|0,s|0,l|0,c|0,f|0,d|0,VLe(k)|0)|0,uR(k),tf(Q),E=B}function KLe(){var s=0;return o[7968]|0||(rOe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function bg(s){return s=s|0,S5(s)|0}function v5(s){return s=s|0,D5(s)|0}function fR(s){return s=s|0,Vv(s)|0}function pR(s){return s=s|0,zLe(s)|0}function VLe(s){return s=s|0,JLe(s)|0}function JLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=za(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=D5(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function D5(s){return s=s|0,s|0}function zLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=za(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=S5((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function S5(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=DF(P5()|0)|0,f?(SF(l,f),PF(c,l),FUe(s,c),s=xF(l)|0):s=XLe(s)|0,E=d,s|0}function P5(){var s=0;return o[7960]|0||(tOe(10664),Zt(25,10664,_|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function XLe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=za(8)|0,l=f,Q=Gt(4)|0,n[Q>>2]=n[s>>2],m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],x5(s,m,d),n[f>>2]=s,E=c,l|0}function x5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function ZLe(s){s=s|0,Zm(s),pt(s)}function $Le(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function eOe(s){s=s|0,pt(s)}function tOe(s){s=s|0,vp(s)}function rOe(s){s=s|0,kl(s,nOe()|0,5)}function nOe(){return 1676}function iOe(s,l){s=s|0,l=l|0;var c=0;if((b5(s)|0)>>>0<l>>>0&&Vr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function sOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function b5(s){return s=s|0,1073741823}function oOe(s,l){s=s|0,l=l|0;var c=0;if((Q5(s)|0)>>>0<l>>>0&&Vr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function aOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function Q5(s){return s=s|0,1073741823}function lOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function cOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function uOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function k5(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function F5(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function R5(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function AOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0;if(Re=E,E=E+32|0,O=Re+20|0,j=Re+12|0,M=Re+16|0,se=Re+4|0,Ye=Re,Le=Re+8|0,Q=I5()|0,m=n[Q>>2]|0,B=n[m>>2]|0,B|0)for(k=n[Q+8>>2]|0,Q=n[Q+4>>2]|0;Fc(O,B),fOe(s,O,Q,k),m=m+4|0,B=n[m>>2]|0,B;)k=k+1|0,Q=Q+1|0;if(m=w5()|0,B=n[m>>2]|0,B|0)do Fc(O,B),n[j>>2]=n[m+4>>2],pOe(l,O,j),m=m+8|0,B=n[m>>2]|0;while((B|0)!=0);if(m=n[(Km()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,Fc(O,n[(Vm(l)|0)>>2]|0),n[j>>2]=oR(l)|0,hOe(c,O,j),m=n[m>>2]|0;while((m|0)!=0);if(Fc(M,0),m=aR()|0,n[O>>2]=n[M>>2],B5(O,m,d),m=n[(Km()|0)>>2]|0,m|0){s=O+4|0,l=O+8|0,c=O+8|0;do{if(k=n[m+4>>2]|0,Fc(j,n[(Vm(k)|0)>>2]|0),gOe(se,T5(k)|0),B=n[se>>2]|0,B|0){n[O>>2]=0,n[s>>2]=0,n[l>>2]=0;do Fc(Ye,n[(Vm(n[B+4>>2]|0)|0)>>2]|0),Q=n[s>>2]|0,Q>>>0<(n[c>>2]|0)>>>0?(n[Q>>2]=n[Ye>>2],n[s>>2]=(n[s>>2]|0)+4):cR(O,Ye),B=n[B>>2]|0;while((B|0)!=0);dOe(f,j,O),tf(O)}n[Le>>2]=n[j>>2],M=N5(k)|0,n[O>>2]=n[Le>>2],B5(O,M,d),n9(se),m=n[m>>2]|0}while((m|0)!=0)}E=Re}function fOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,xOe(s,l,c,f)}function pOe(s,l,c){s=s|0,l=l|0,c=c|0,POe(s,l,c)}function Vm(s){return s=s|0,s|0}function hOe(s,l,c){s=s|0,l=l|0,c=c|0,BOe(s,l,c)}function T5(s){return s=s|0,s+16|0}function gOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;if(m=E,E=E+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=wOe(c)|0,f|0){if(f=Gt(12)|0,B=(L5(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Gt(12)|0,k=(L5(d)|0)+4|0,Q=n[k+4>>2]|0,B=s+4|0,n[B>>2]=n[k>>2],n[B+4>>2]=Q,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}E=m}function dOe(s,l,c){s=s|0,l=l|0,c=c|0,mOe(s,l,c)}function N5(s){return s=s|0,s+24|0}function mOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,B=f+24|0,d=f+16|0,Q=f+12|0,m=f,Xa(d),s=ma(s)|0,n[Q>>2]=n[l>>2],AR(m,c),n[B>>2]=n[Q>>2],yOe(s,B,m),tf(m),Za(d),E=f}function yOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,B=f+16|0,Q=f+12|0,d=f,m=Ql(EOe()|0)|0,n[Q>>2]=n[l>>2],n[B>>2]=n[Q>>2],l=bg(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],Q=c+8|0,n[d+8>>2]=n[Q>>2],n[Q>>2]=0,n[B>>2]=0,n[c>>2]=0,no(0,m|0,s|0,l|0,pR(d)|0)|0,tf(d),E=f}function EOe(){var s=0;return o[7976]|0||(COe(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function COe(s){s=s|0,kl(s,IOe()|0,2)}function IOe(){return 1732}function wOe(s){return s=s|0,n[s>>2]|0}function L5(s){return s=s|0,n[s>>2]|0}function BOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+32|0,m=f+16|0,d=f+8|0,B=f,Xa(d),s=ma(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],O5(s,m,c),Za(d),E=f}function O5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,m=f+4|0,B=f,d=Ql(vOe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=bg(m)|0,no(0,d|0,s|0,l|0,v5(c)|0)|0,E=f}function vOe(){var s=0;return o[7984]|0||(DOe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function DOe(s){s=s|0,kl(s,SOe()|0,2)}function SOe(){return 1744}function POe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+32|0,m=f+16|0,d=f+8|0,B=f,Xa(d),s=ma(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],O5(s,m,c),Za(d),E=f}function xOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+32|0,B=d+16|0,m=d+8|0,Q=d,Xa(m),s=ma(s)|0,n[Q>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[Q>>2],bOe(s,B,c,f),Za(m),E=d}function bOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,B=d+4|0,Q=d,m=Ql(QOe()|0)|0,n[Q>>2]=n[l>>2],n[B>>2]=n[Q>>2],l=bg(B)|0,c=Jm(c)|0,yc(0,m|0,s|0,l|0,c|0,Jm(f)|0)|0,E=d}function QOe(){var s=0;return o[7992]|0||(FOe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function Jm(s){return s=s|0,kOe(s)|0}function kOe(s){return s=s|0,s&255|0}function FOe(s){s=s|0,kl(s,ROe()|0,3)}function ROe(){return 1756}function TOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;switch(se=E,E=E+32|0,Q=se+8|0,k=se+4|0,M=se+20|0,O=se,FF(s,0),f=kUe(l)|0,n[Q>>2]=0,j=Q+4|0,n[j>>2]=0,n[Q+8>>2]=0,f<<24>>24){case 0:{o[M>>0]=0,NOe(k,c,M),Zv(s,k)|0,WA(k);break}case 8:{j=ER(l)|0,o[M>>0]=8,Fc(O,n[j+4>>2]|0),LOe(k,c,M,O,j+8|0),Zv(s,k)|0,WA(k);break}case 9:{if(m=ER(l)|0,l=n[m+4>>2]|0,l|0)for(B=Q+8|0,d=m+12|0;l=l+-1|0,Fc(k,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[k>>2],n[j>>2]=(n[j>>2]|0)+4):cR(Q,k),l;)d=d+4|0;o[M>>0]=9,Fc(O,n[m+8>>2]|0),OOe(k,c,M,O,Q),Zv(s,k)|0,WA(k);break}default:j=ER(l)|0,o[M>>0]=f,Fc(O,n[j+4>>2]|0),MOe(k,c,M,O),Zv(s,k)|0,WA(k)}tf(Q),E=se}function NOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Xa(d),l=ma(l)|0,XOe(s,l,o[c>>0]|0),Za(d),E=f}function Zv(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&QA(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function LOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+32|0,Q=m+16|0,B=m+8|0,k=m,Xa(B),l=ma(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],d=n[d>>2]|0,n[Q>>2]=n[k>>2],KOe(s,l,c,Q,d),Za(B),E=m}function OOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0;m=E,E=E+32|0,k=m+24|0,B=m+16|0,M=m+12|0,Q=m,Xa(B),l=ma(l)|0,c=o[c>>0]|0,n[M>>2]=n[f>>2],AR(Q,d),n[k>>2]=n[M>>2],jOe(s,l,c,k,Q),tf(Q),Za(B),E=m}function MOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+32|0,B=d+16|0,m=d+8|0,Q=d,Xa(m),l=ma(l)|0,c=o[c>>0]|0,n[Q>>2]=n[f>>2],n[B>>2]=n[Q>>2],UOe(s,l,c,B),Za(m),E=d}function UOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+4|0,Q=d,B=Ql(_Oe()|0)|0,c=Jm(c)|0,n[Q>>2]=n[f>>2],n[m>>2]=n[Q>>2],$v(s,no(0,B|0,l|0,c|0,bg(m)|0)|0),E=d}function _Oe(){var s=0;return o[8e3]|0||(HOe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function $v(s,l){s=s|0,l=l|0,FF(s,l)}function HOe(s){s=s|0,kl(s,qOe()|0,2)}function qOe(){return 1772}function jOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0;m=E,E=E+32|0,k=m+16|0,M=m+12|0,B=m,Q=Ql(GOe()|0)|0,c=Jm(c)|0,n[M>>2]=n[f>>2],n[k>>2]=n[M>>2],f=bg(k)|0,n[B>>2]=n[d>>2],k=d+4|0,n[B+4>>2]=n[k>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[k>>2]=0,n[d>>2]=0,$v(s,yc(0,Q|0,l|0,c|0,f|0,pR(B)|0)|0),tf(B),E=m}function GOe(){var s=0;return o[8008]|0||(WOe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function WOe(s){s=s|0,kl(s,YOe()|0,3)}function YOe(){return 1784}function KOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+16|0,Q=m+4|0,k=m,B=Ql(VOe()|0)|0,c=Jm(c)|0,n[k>>2]=n[f>>2],n[Q>>2]=n[k>>2],f=bg(Q)|0,$v(s,yc(0,B|0,l|0,c|0,f|0,fR(d)|0)|0),E=m}function VOe(){var s=0;return o[8016]|0||(JOe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function JOe(s){s=s|0,kl(s,zOe()|0,3)}function zOe(){return 1800}function XOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=Ql(ZOe()|0)|0,$v(s,Dn(0,f|0,l|0,Jm(c)|0)|0)}function ZOe(){var s=0;return o[8024]|0||($Oe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function $Oe(s){s=s|0,kl(s,eMe()|0,1)}function eMe(){return 1816}function tMe(){rMe(),nMe(),iMe()}function rMe(){n[2702]=A7(65536)|0}function nMe(){vMe(10856)}function iMe(){sMe(10816)}function sMe(s){s=s|0,oMe(s,5044),aMe(s)|0}function oMe(s,l){s=s|0,l=l|0;var c=0;c=P5()|0,n[s>>2]=c,yMe(c,l),bp(n[s>>2]|0)}function aMe(s){s=s|0;var l=0;return l=n[s>>2]|0,Pg(l,lMe()|0),s|0}function lMe(){var s=0;return o[8032]|0||(M5(10820),Zt(64,10820,_|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),br(10820)|0||M5(10820),10820}function M5(s){s=s|0,AMe(s),xg(s,25)}function cMe(s){s=s|0,uMe(s+24|0)}function uMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function AMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,18,l,gMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function fMe(s,l){s=s|0,l=l|0,pMe(s,l)}function pMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=E,E=E+16|0,f=c,d=c+4|0,Dg(d,l),n[f>>2]=Sg(d,l)|0,hMe(s,f),E=c}function hMe(s,l){s=s|0,l=l|0,U5(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function U5(s,l){s=s|0,l=l|0,n[s>>2]=l}function gMe(){return 1824}function dMe(s){return s=s|0,mMe(s)|0}function mMe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=za(8)|0,l=f,Q=Gt(4)|0,Dg(d,s),U5(Q,Sg(d,s)|0),m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],x5(s,m,d),n[f>>2]=s,E=c,l|0}function za(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=A7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function yMe(s,l){s=s|0,l=l|0,n[s>>2]=EMe()|0,n[s+4>>2]=CMe()|0,n[s+12>>2]=l,n[s+8>>2]=IMe()|0,n[s+32>>2]=9}function EMe(){return 11744}function CMe(){return 1832}function IMe(){return zv()|0}function wMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(xp(f,896)|0)==512?c|0&&(BMe(c),pt(c)):l|0&&pt(l)}function BMe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Qp(s)}function vMe(s){s=s|0,DMe(s,5052),SMe(s)|0,PMe(s,5058,26)|0,xMe(s,5069,1)|0,bMe(s,5077,10)|0,QMe(s,5087,19)|0,kMe(s,5094,27)|0}function DMe(s,l){s=s|0,l=l|0;var c=0;c=BUe()|0,n[s>>2]=c,vUe(c,l),bp(n[s>>2]|0)}function SMe(s){s=s|0;var l=0;return l=n[s>>2]|0,Pg(l,cUe()|0),s|0}function PMe(s,l,c){return s=s|0,l=l|0,c=c|0,W4e(s,cn(l)|0,c,0),s|0}function xMe(s,l,c){return s=s|0,l=l|0,c=c|0,Q4e(s,cn(l)|0,c,0),s|0}function bMe(s,l,c){return s=s|0,l=l|0,c=c|0,l4e(s,cn(l)|0,c,0),s|0}function QMe(s,l,c){return s=s|0,l=l|0,c=c|0,KMe(s,cn(l)|0,c,0),s|0}function _5(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}pt(c)}n[2701]=s}function kMe(s,l,c){return s=s|0,l=l|0,c=c|0,FMe(s,cn(l)|0,c,0),s|0}function FMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=hR()|0,s=RMe(c)|0,un(m,l,d,s,TMe(c,f)|0,f)}function hR(){var s=0,l=0;if(o[8040]|0||(q5(10860),Zt(65,10860,_|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(br(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));q5(10860)}return 10860}function RMe(s){return s=s|0,s|0}function TMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=hR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(H5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(NMe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function H5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function NMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=LMe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,OMe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,H5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,MMe(s,d),UMe(d),E=Q;return}}function LMe(s){return s=s|0,536870911}function OMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function MMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function UMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function q5(s){s=s|0,qMe(s)}function _Me(s){s=s|0,HMe(s+24|0)}function HMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function qMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,11,l,jMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function jMe(){return 1840}function GMe(s,l,c){s=s|0,l=l|0,c=c|0,YMe(n[(WMe(s)|0)>>2]|0,l,c)}function WMe(s){return s=s|0,(n[(hR()|0)+24>>2]|0)+(s<<3)|0}function YMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=E,E=E+16|0,m=f+1|0,d=f,Dg(m,l),l=Sg(m,l)|0,Dg(d,c),c=Sg(d,c)|0,nf[s&31](l,c),E=f}function KMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=gR()|0,s=VMe(c)|0,un(m,l,d,s,JMe(c,f)|0,f)}function gR(){var s=0,l=0;if(o[8048]|0||(G5(10896),Zt(66,10896,_|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(br(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));G5(10896)}return 10896}function VMe(s){return s=s|0,s|0}function JMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=gR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(j5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(zMe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function j5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function zMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=XMe(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,ZMe(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,j5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,$Me(s,d),e4e(d),E=Q;return}}function XMe(s){return s=s|0,536870911}function ZMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function $Me(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function e4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function G5(s){s=s|0,n4e(s)}function t4e(s){s=s|0,r4e(s+24|0)}function r4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function n4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,11,l,i4e()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function i4e(){return 1852}function s4e(s,l){return s=s|0,l=l|0,a4e(n[(o4e(s)|0)>>2]|0,l)|0}function o4e(s){return s=s|0,(n[(gR()|0)+24>>2]|0)+(s<<3)|0}function a4e(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,Dg(f,l),l=Sg(f,l)|0,l=Vv(Rg[s&31](l)|0)|0,E=c,l|0}function l4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=dR()|0,s=c4e(c)|0,un(m,l,d,s,u4e(c,f)|0,f)}function dR(){var s=0,l=0;if(o[8056]|0||(Y5(10932),Zt(67,10932,_|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(br(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Y5(10932)}return 10932}function c4e(s){return s=s|0,s|0}function u4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=dR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(W5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(A4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function W5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function A4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=f4e(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,p4e(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,W5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,h4e(s,d),g4e(d),E=Q;return}}function f4e(s){return s=s|0,536870911}function p4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function h4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function g4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function Y5(s){s=s|0,y4e(s)}function d4e(s){s=s|0,m4e(s+24|0)}function m4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function y4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,7,l,E4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function E4e(){return 1860}function C4e(s,l,c){return s=s|0,l=l|0,c=c|0,w4e(n[(I4e(s)|0)>>2]|0,l,c)|0}function I4e(s){return s=s|0,(n[(dR()|0)+24>>2]|0)+(s<<3)|0}function w4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+32|0,B=f+12|0,m=f+8|0,Q=f,k=f+16|0,d=f+4|0,B4e(k,l),v4e(Q,k,l),Dp(d,c),c=Sp(d,c)|0,n[B>>2]=n[Q>>2],FI[s&15](m,B,c),c=D4e(m)|0,WA(m),Pp(d),E=f,c|0}function B4e(s,l){s=s|0,l=l|0}function v4e(s,l,c){s=s|0,l=l|0,c=c|0,S4e(s,c)}function D4e(s){return s=s|0,ma(s)|0}function S4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+16|0,c=d,f=l,f&1?(P4e(c,0),$n(f|0,c|0)|0,x4e(s,c),b4e(c)):n[s>>2]=n[l>>2],E=d}function P4e(s,l){s=s|0,l=l|0,JG(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function x4e(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function b4e(s){s=s|0,o[s+8>>0]=0}function Q4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=mR()|0,s=k4e(c)|0,un(m,l,d,s,F4e(c,f)|0,f)}function mR(){var s=0,l=0;if(o[8064]|0||(V5(10968),Zt(68,10968,_|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(br(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));V5(10968)}return 10968}function k4e(s){return s=s|0,s|0}function F4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=mR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(K5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(R4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function K5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function R4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=T4e(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,N4e(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,K5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,L4e(s,d),O4e(d),E=Q;return}}function T4e(s){return s=s|0,536870911}function N4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function L4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function O4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function V5(s){s=s|0,_4e(s)}function M4e(s){s=s|0,U4e(s+24|0)}function U4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function _4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,1,l,H4e()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function H4e(){return 1872}function q4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,G4e(n[(j4e(s)|0)>>2]|0,l,c,f,d,m)}function j4e(s){return s=s|0,(n[(mR()|0)+24>>2]|0)+(s<<3)|0}function G4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+32|0,Q=B+16|0,k=B+12|0,M=B+8|0,O=B+4|0,j=B,Dp(Q,l),l=Sp(Q,l)|0,Dp(k,c),c=Sp(k,c)|0,Dp(M,f),f=Sp(M,f)|0,Dp(O,d),d=Sp(O,d)|0,Dp(j,m),m=Sp(j,m)|0,d7[s&1](l,c,f,d,m),Pp(j),Pp(O),Pp(M),Pp(k),Pp(Q),E=B}function W4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=yR()|0,s=Y4e(c)|0,un(m,l,d,s,K4e(c,f)|0,f)}function yR(){var s=0,l=0;if(o[8072]|0||(z5(11004),Zt(69,11004,_|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(br(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));z5(11004)}return 11004}function Y4e(s){return s=s|0,s|0}function K4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=yR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(J5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(V4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function J5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function V4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=J4e(s)|0,f>>>0<B>>>0)Vr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,z4e(d,O>>3>>>0<f>>>1>>>0?M>>>0<B>>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,J5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,X4e(s,d),Z4e(d),E=Q;return}}function J4e(s){return s=s|0,536870911}function z4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function X4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Z4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function z5(s){s=s|0,tUe(s)}function $4e(s){s=s|0,eUe(s+24|0)}function eUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function tUe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,12,l,rUe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function rUe(){return 1896}function nUe(s,l,c){s=s|0,l=l|0,c=c|0,sUe(n[(iUe(s)|0)>>2]|0,l,c)}function iUe(s){return s=s|0,(n[(yR()|0)+24>>2]|0)+(s<<3)|0}function sUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=E,E=E+16|0,m=f+4|0,d=f,oUe(m,l),l=aUe(m,l)|0,Dp(d,c),c=Sp(d,c)|0,nf[s&31](l,c),Pp(d),E=f}function oUe(s,l){s=s|0,l=l|0}function aUe(s,l){return s=s|0,l=l|0,lUe(l)|0}function lUe(s){return s=s|0,s|0}function cUe(){var s=0;return o[8080]|0||(X5(11040),Zt(70,11040,_|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),br(11040)|0||X5(11040),11040}function X5(s){s=s|0,fUe(s),xg(s,71)}function uUe(s){s=s|0,AUe(s+24|0)}function AUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function fUe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,7,l,dUe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pUe(s){s=s|0,hUe(s)}function hUe(s){s=s|0,gUe(s)}function gUe(s){s=s|0,o[s+8>>0]=1}function dUe(){return 1936}function mUe(){return yUe()|0}function yUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=za(8)|0,s=c,m=s+4|0,n[m>>2]=Gt(1)|0,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],EUe(f,m,d),n[c>>2]=f,E=l,s|0}function EUe(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function CUe(s){s=s|0,Zm(s),pt(s)}function IUe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function wUe(s){s=s|0,pt(s)}function BUe(){var s=0;return o[8088]|0||(QUe(11076),Zt(25,11076,_|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function vUe(s,l){s=s|0,l=l|0,n[s>>2]=DUe()|0,n[s+4>>2]=SUe()|0,n[s+12>>2]=l,n[s+8>>2]=PUe()|0,n[s+32>>2]=10}function DUe(){return 11745}function SUe(){return 1940}function PUe(){return Jv()|0}function xUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(xp(f,896)|0)==512?c|0&&(bUe(c),pt(c)):l|0&&pt(l)}function bUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Qp(s)}function QUe(s){s=s|0,vp(s)}function Fc(s,l){s=s|0,l=l|0,n[s>>2]=l}function ER(s){return s=s|0,n[s>>2]|0}function kUe(s){return s=s|0,o[n[s>>2]>>0]|0}function FUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,n[f>>2]=n[s>>2],RUe(l,f)|0,E=c}function RUe(s,l){s=s|0,l=l|0;var c=0;return c=TUe(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function TUe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,Xa(f),s=ma(s)|0,l=NUe(s,n[l>>2]|0)|0,Za(f),E=c,l|0}function Xa(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function NUe(s,l){s=s|0,l=l|0;var c=0;return c=Ql(LUe()|0)|0,Dn(0,c|0,s|0,fR(l)|0)|0}function Za(s){s=s|0,_5(n[s>>2]|0,n[s+4>>2]|0)}function LUe(){var s=0;return o[8096]|0||(OUe(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function OUe(s){s=s|0,kl(s,MUe()|0,1)}function MUe(){return 1948}function UUe(){_Ue()}function _Ue(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0;if(Le=E,E=E+16|0,O=Le+4|0,j=Le,Fi(65536,10804,n[2702]|0,10812),c=I5()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;gc(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=w5()|0,l=n[s>>2]|0,l|0)do du(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while((l|0)!=0);du(HUe()|0,5167),M=Km()|0,s=n[M>>2]|0;e:do if(s|0){do qUe(n[s+4>>2]|0),s=n[s>>2]|0;while((s|0)!=0);if(s=n[M>>2]|0,s|0){k=M;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(jUe(d)|0);)if(n[j>>2]=k,n[O>>2]=n[j>>2],GUe(M,O)|0,!s)break e;if(WUe(d),k=n[k>>2]|0,l=Z5(d)|0,m=_i()|0,B=E,E=E+((1*(l<<2)|0)+15&-16)|0,Q=E,E=E+((1*(l<<2)|0)+15&-16)|0,l=n[(T5(d)|0)>>2]|0,l|0)for(c=B,f=Q;n[c>>2]=n[(Vm(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Re=Vm(d)|0,l=YUe(d)|0,c=Z5(d)|0,f=KUe(d)|0,mu(Re|0,l|0,B|0,Q|0,c|0,f|0,oR(d)|0),Ui(m|0)}while((s|0)!=0)}}while(0);if(s=n[(aR()|0)>>2]|0,s|0)do Re=s+4|0,M=lR(Re)|0,d=xI(M)|0,m=SI(M)|0,B=(PI(M)|0)+1|0,Q=eD(M)|0,k=$5(Re)|0,M=br(M)|0,O=Xv(Re)|0,j=CR(Re)|0,wl(0,d|0,m|0,B|0,Q|0,k|0,M|0,O|0,j|0,IR(Re)|0),s=n[s>>2]|0;while((s|0)!=0);s=n[(Km()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(se=n[(Vm(l)|0)>>2]|0,Ye=n[(N5(l)|0)>>2]|0,Ye|0)){c=Ye;do{l=c+4|0,f=lR(l)|0;r:do if(f|0)switch(br(f)|0){case 0:break t;case 4:case 3:case 2:{Q=xI(f)|0,k=SI(f)|0,M=(PI(f)|0)+1|0,O=eD(f)|0,j=br(f)|0,Re=Xv(l)|0,wl(se|0,Q|0,k|0,M|0,O|0,0,j|0,Re|0,CR(l)|0,IR(l)|0);break r}case 1:{B=xI(f)|0,Q=SI(f)|0,k=(PI(f)|0)+1|0,M=eD(f)|0,O=$5(l)|0,j=br(f)|0,Re=Xv(l)|0,wl(se|0,B|0,Q|0,k|0,M|0,O|0,j|0,Re|0,CR(l)|0,IR(l)|0);break r}case 5:{M=xI(f)|0,O=SI(f)|0,j=(PI(f)|0)+1|0,Re=eD(f)|0,wl(se|0,M|0,O|0,j|0,Re|0,VUe(f)|0,br(f)|0,0,0,0);break r}default:break r}while(0);c=n[c>>2]|0}while((c|0)!=0)}if(s=n[s>>2]|0,!s)break e}Rt()}while(0);Ce(),E=Le}function HUe(){return 11703}function qUe(s){s=s|0,o[s+40>>0]=0}function jUe(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function GUe(s,l){return s=s|0,l=l|0,l=JUe(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],pt(s),n[l>>2]|0}function WUe(s){s=s|0,o[s+40>>0]=1}function Z5(s){return s=s|0,n[s+20>>2]|0}function YUe(s){return s=s|0,n[s+8>>2]|0}function KUe(s){return s=s|0,n[s+32>>2]|0}function eD(s){return s=s|0,n[s+4>>2]|0}function $5(s){return s=s|0,n[s+4>>2]|0}function CR(s){return s=s|0,n[s+8>>2]|0}function IR(s){return s=s|0,n[s+16>>2]|0}function VUe(s){return s=s|0,n[s+20>>2]|0}function JUe(s){return s=s|0,n[s>>2]|0}function tD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0;Tt=E,E=E+16|0,se=Tt;do if(s>>>0<245){if(M=s>>>0<11?16:s+11&-8,s=M>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<<l):(n[m+12>>2]=s,n[c>>2]=m),Ge=l<<3,n[f+4>>2]=Ge|3,Ge=f+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1,Ge=d,E=Tt,Ge|0;if(O=n[2785]|0,M>>>0>O>>>0){if(c|0)return l=2<<s,l=c<<s&(l|0-l),l=(l&0-l)+-1|0,B=l>>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<<f),n[2783]=s):(n[c+12>>2]=l,n[s>>2]=c,s=j),m=(f<<3)-M|0,n[d+4>>2]=M|3,f=d+M|0,n[f+4>>2]=m|1,n[f+m>>2]=m,O|0&&(d=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,Ge=B,E=Tt,Ge|0;if(Q=n[2784]|0,Q){if(c=(Q&0-Q)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,k=c>>>2&4,c=c>>>k,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|k|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-M|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)k=s,m=c;else{do B=(n[f+4>>2]&-8)-M|0,k=B>>>0<c>>>0,c=k?B:c,s=k?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while((f|0)!=0);k=s,m=c}if(B=k+M|0,k>>>0<B>>>0){d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[k+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(0);do if(d|0){if(l=n[k+28>>2]|0,s=11436+(l<<2)|0,(k|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=Q&~(1<<l);break}}else if(n[d+16+(((n[d+16>>2]|0)!=(k|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[k+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[k+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(0);return m>>>0<16?(Ge=m+M|0,n[k+4>>2]=Ge|3,Ge=k+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1):(n[k+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,O|0&&(f=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<<l,j&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),Ge=k+8|0,E=Tt,Ge|0}else j=M}else j=M}else j=M}else if(s>>>0<=4294967231)if(s=s+11|0,M=s&-8,k=n[2784]|0,k){f=0-M|0,s=s>>>8,s?M>>>0>16777215?Q=31:(j=(s+1048320|0)>>>16&8,He=s<<j,O=(He+520192|0)>>>16&4,He=He<<O,Q=(He+245760|0)>>>16&2,Q=14-(O|j|Q)+(He<<Q>>>15)|0,Q=M>>>(Q+7|0)&1|Q<<1):Q=0,c=n[11436+(Q<<2)>>2]|0;e:do if(!c)c=0,s=0,He=57;else for(s=0,B=M<<((Q|0)==31?0:25-(Q>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-M|0,d>>>0<f>>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,He=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,He=57;break}else B=B<<((d^1)&1)}while(0);if((He|0)==57){if((c|0)==0&(s|0)==0){if(s=2<<Q,s=k&(s|0-s),!s){j=M;break}j=(s&0-s)+-1|0,B=j>>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,Q=j>>>2&4,j=j>>>Q,O=j>>>1&2,j=j>>>O,c=j>>>1&1,s=0,c=n[11436+((m|B|Q|O|c)+(j>>>c)<<2)>>2]|0}c?(d=c,He=61):(Q=s,B=f)}if((He|0)==61)for(;;)if(He=0,c=(n[d+4>>2]&-8)-M|0,j=c>>>0<f>>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,He=61;else{Q=s,B=c;break}if((Q|0)!=0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=Q+M|0,Q>>>0>=m>>>0)return Ge=0,E=Tt,Ge|0;d=n[Q+24>>2]|0,l=n[Q+12>>2]|0;do if((l|0)==(Q|0)){if(s=Q+20|0,l=n[s>>2]|0,!l&&(s=Q+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else Ge=n[Q+8>>2]|0,n[Ge+12>>2]=l,n[l+8>>2]=Ge;while(0);do if(d){if(s=n[Q+28>>2]|0,c=11436+(s<<2)|0,(Q|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=k&~(1<<s),n[2784]=f;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(Q|0)&1)<<2)>>2]=l,!l){f=k;break}n[l+24>>2]=d,s=n[Q+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[Q+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=k}else f=k;while(0);do if(B>>>0>=16){if(n[Q+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(He=(l+1048320|0)>>>16&8,Ge=l<<He,at=(Ge+520192|0)>>>16&4,Ge=Ge<<at,l=(Ge+245760|0)>>>16&2,l=14-(at|He|l)+(Ge<<l>>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<<l,!(f&s)){n[2784]=f|s,n[c>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){He=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=96;break}}if((He|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((He|0)==97){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=m,n[He>>2]=m,n[m+8>>2]=Ge,n[m+12>>2]=c,n[m+24>>2]=0;break}}else Ge=B+M|0,n[Q+4>>2]=Ge|3,Ge=Q+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1;while(0);return Ge=Q+8|0,E=Tt,Ge|0}else j=M}else j=M;else j=-1;while(0);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(Ge=s+j|0,n[2788]=Ge,n[2785]=l,n[Ge+4>>2]=l|1,n[Ge+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,Ge=s+c+4|0,n[Ge>>2]=n[Ge>>2]|1),Ge=s+8|0,E=Tt,Ge|0;if(B=n[2786]|0,B>>>0>j>>>0)return at=B-j|0,n[2786]=at,Ge=n[2789]|0,He=Ge+j|0,n[2789]=He,n[He+4>>2]=at|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,E=Tt,Ge|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=se&-16^1431655768,n[se>>2]=s,n[2901]=s,s=4096),Q=j+48|0,k=j+47|0,m=s+k|0,d=0-s|0,M=m&d,M>>>0<=j>>>0||(s=n[2893]|0,s|0&&(O=n[2891]|0,se=O+M|0,se>>>0<=O>>>0|se>>>0>s>>>0)))return Ge=0,E=Tt,Ge|0;e:do if(n[2894]&4)l=0,He=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Re=f+4|0,(s+(n[Re>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{He=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=kp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Re>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,He=135;break e}}else f=s,He=126;else l=0}else He=118;while(0);do if((He|0)==118)if(c=kp(0)|0,(c|0)!=-1&&(l=c,Ye=n[2902]|0,Le=Ye+-1|0,l=((Le&l|0)==0?0:(Le+l&0-Ye)-l|0)+M|0,Ye=n[2891]|0,Le=l+Ye|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Re=n[2893]|0,Re|0&&Le>>>0<=Ye>>>0|Le>>>0>Re>>>0){l=0;break}if(s=kp(l|0)|0,(s|0)==(c|0)){B=l,m=c,He=135;break e}else f=s,He=126}else l=0;while(0);do if((He|0)==126){if(c=0-l|0,!(Q>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,He=135;break e}if(s=n[2903]|0,s=k-l+s&0-s,s>>>0>=2147483647){B=l,m=f,He=135;break e}if((kp(s|0)|0)==-1){kp(c|0)|0,l=0;break}else{B=s+l|0,m=f,He=135;break e}}while(0);n[2894]=n[2894]|4,He=133}while(0);if((He|0)==133&&M>>>0<2147483647&&(at=kp(M|0)|0,Re=kp(0)|0,et=Re-at|0,Ze=et>>>0>(j+40|0)>>>0,!((at|0)==-1|Ze^1|at>>>0<Re>>>0&((at|0)!=-1&(Re|0)!=-1)^1))&&(B=Ze?et:l,m=at,He=135),(He|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),k=n[2789]|0;do if(k){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){He=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((He|0)==145&&(n[l+12>>2]&8|0)==0&&k>>>0<m>>>0&k>>>0>=s>>>0){n[c>>2]=f+B,Ge=k+8|0,Ge=(Ge&7|0)==0?0:0-Ge&7,He=k+Ge|0,Ge=(n[2786]|0)+(B-Ge)|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){He=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((He|0)==153&&(n[l+12>>2]&8|0)==0){n[l>>2]=m,O=l+4|0,n[O>>2]=(n[O>>2]|0)+B,O=m+8|0,O=m+((O&7|0)==0?0:0-O&7)|0,l=c+8|0,l=c+((l&7|0)==0?0:0-l&7)|0,M=O+j|0,Q=l-O-j|0,n[O+4>>2]=j|3;do if((l|0)!=(k|0)){if((l|0)==(n[2788]|0)){Ge=(n[2785]|0)+Q|0,n[2785]=Ge,n[2788]=M,n[M+4>>2]=Ge|1,n[M+Ge>>2]=Ge;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<<f);break}else{n[s+12>>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else Ge=n[l+8>>2]|0,n[Ge+12>>2]=s,n[s+8>>2]=Ge;while(0);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<<c);break e}while(0);if(n[s+24>>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(0);l=l+B|0,d=B+Q|0}else d=Q;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}He=(l+1048320|0)>>>16&8,Ge=l<<He,at=(Ge+520192|0)>>>16&4,Ge=Ge<<at,l=(Ge+245760|0)>>>16&2,l=14-(at|He|l)+(Ge<<l>>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(0);if(f=11436+(l<<2)|0,n[M+28>>2]=l,s=M+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<<l,!(s&c)){n[2784]=s|c,n[f>>2]=M,n[M+24>>2]=f,n[M+12>>2]=M,n[M+8>>2]=M;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){He=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=193;break}}if((He|0)==193){n[f>>2]=M,n[M+24>>2]=c,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((He|0)==194){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=M,n[He>>2]=M,n[M+8>>2]=Ge,n[M+12>>2]=c,n[M+24>>2]=0;break}}else Ge=(n[2786]|0)+Q|0,n[2786]=Ge,n[2789]=M,n[M+4>>2]=Ge|1;while(0);return Ge=O+8|0,E=Tt,Ge|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=k>>>0&&(Ge=s+(n[l+4>>2]|0)|0,Ge>>>0>k>>>0));)l=n[l+8>>2]|0;d=Ge+-47|0,s=d+8|0,s=d+((s&7|0)==0?0:0-s&7)|0,d=k+16|0,s=s>>>0<d>>>0?k:s,l=s+8|0,c=m+8|0,c=(c&7|0)==0?0:0-c&7,He=m+c|0,c=B+-40-c|0,n[2789]=He,n[2786]=c,n[He+4>>2]=c|1,n[He+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do He=l,l=l+4|0,n[l>>2]=7;while((He+8|0)>>>0<Ge>>>0);if((s|0)!=(k|0)){if(m=s-k|0,n[c>>2]=n[c>>2]&-2,n[k+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=k,n[l+12>>2]=k,n[k+8>>2]=l,n[k+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(He=(l+1048320|0)>>>16&8,Ge=l<<He,at=(Ge+520192|0)>>>16&4,Ge=Ge<<at,c=(Ge+245760|0)>>>16&2,c=14-(at|He|c)+(Ge<<c>>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[k+28>>2]=c,n[k+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<<c,!(l&s)){n[2784]=l|s,n[f>>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){He=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=215;break}}if((He|0)==215){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((He|0)==216){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=k,n[He>>2]=k,n[k+8>>2]=Ge,n[k+12>>2]=c,n[k+24>>2]=0;break}}}else{Ge=n[2787]|0,(Ge|0)==0|m>>>0<Ge>>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do Ge=11172+(l<<1<<2)|0,n[Ge+12>>2]=Ge,n[Ge+8>>2]=Ge,l=l+1|0;while((l|0)!=32);Ge=m+8|0,Ge=(Ge&7|0)==0?0:0-Ge&7,He=m+Ge|0,Ge=B+-40-Ge|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905]}while(0);if(l=n[2786]|0,l>>>0>j>>>0)return at=l-j|0,n[2786]=at,Ge=n[2789]|0,He=Ge+j|0,n[2789]=He,n[He+4>>2]=at|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,E=Tt,Ge|0}return n[(zm()|0)>>2]=12,Ge=0,E=Tt,Ge|0}function rD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0;if(!!s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,k=c+l|0;do if(s&1)Q=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0<d>>>0))return;if((B|0)==(n[2788]|0)){if(s=k+4|0,l=n[s>>2]|0,(l&3|0)!=3){Q=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<<c),Q=B,l=m;break}else{n[s+12>>2]=l,n[l+8>>2]=s,Q=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else Q=n[B+8>>2]|0,n[Q+12>>2]=s,n[s+8>>2]=Q;while(0);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<<l),Q=B,l=m;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){Q=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,Q=B,l=m):(Q=B,l=m)}else Q=B,l=m}while(0);if(!(B>>>0>=k>>>0)&&(s=k+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[Q+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(k|0)==(n[2789]|0)){if(k=(n[2786]|0)+l|0,n[2786]=k,n[2789]=Q,n[Q+4>>2]=k|1,(Q|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((k|0)==(s|0)){k=(n[2785]|0)+l|0,n[2785]=k,n[2788]=B,n[Q+4>>2]=k|1,n[B+k>>2]=k;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[k+8>>2]|0,s=n[k+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<<c);break}else{n[l+12>>2]=s,n[s+8>>2]=l;break}else{m=n[k+24>>2]|0,s=n[k+12>>2]|0;do if((s|0)==(k|0)){if(c=k+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[k+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(0);if(m|0){if(s=n[k+28>>2]|0,l=11436+(s<<2)|0,(k|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<<s);break}}else if(n[m+16+(((n[m+16>>2]|0)!=(k|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=k+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(0);if(n[Q+4>>2]=d|1,n[B+d>>2]=d,(Q|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<<s,l&s?(l=c+8|0,s=n[l>>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=Q,n[s+12>>2]=Q,n[Q+8>>2]=s,n[Q+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,k=s<<B,m=(k+520192|0)>>>16&4,k=k<<m,s=(k+245760|0)>>>16&2,s=14-(m|B|s)+(k<<s>>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[Q+28>>2]=s,n[Q+20>>2]=0,n[Q+16>>2]=0,l=n[2784]|0,c=1<<s;do if(l&c){for(l=d<<((s|0)==31?0:25-(s>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=Q,n[Q+24>>2]=c,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}else if((s|0)==73){B=c+8|0,k=n[B>>2]|0,n[k+12>>2]=Q,n[B>>2]=Q,n[Q+8>>2]=k,n[Q+12>>2]=c,n[Q+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=Q,n[Q+24>>2]=f,n[Q+12>>2]=Q,n[Q+8>>2]=Q;while(0);if(k=(n[2791]|0)+-1|0,n[2791]=k,!k)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function zUe(){return 11628}function XUe(s){s=s|0;var l=0,c=0;return l=E,E=E+16|0,c=l,n[c>>2]=e3e(n[s+60>>2]|0)|0,s=nD(Ec(6,c|0)|0)|0,E=l,s|0}function e7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0;j=E,E=E+48|0,M=j+16|0,m=j,d=j+32|0,Q=s+28|0,f=n[Q>>2]|0,n[d>>2]=f,k=s+20|0,f=(n[k>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=nD(Hi(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,Ye=n[d+4>>2]|0,se=m>>>0>Ye>>>0,d=se?d+8|0:d,l=(se<<31>>31)+l|0,Ye=m-(se?Ye:0)|0,n[d>>2]=(n[d>>2]|0)+Ye,se=d+4|0,n[se>>2]=(n[se>>2]|0)-Ye,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=nD(Hi(146,M|0)|0)|0,(f|0)==(m|0)){O=3;break e}n[s+16>>2]=0,n[Q>>2]=0,n[k>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else O=3;while(0);return(O|0)==3&&(Ye=n[s+44>>2]|0,n[s+16>>2]=Ye+(n[s+48>>2]|0),n[Q>>2]=Ye,n[k>>2]=Ye),E=j,c|0}function ZUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=E,E=E+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(nD(na(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,E=d,s|0}function nD(s){return s=s|0,s>>>0>4294963200&&(n[(zm()|0)>>2]=0-s,s=-1),s|0}function zm(){return($Ue()|0)+64|0}function $Ue(){return wR()|0}function wR(){return 2084}function e3e(s){return s=s|0,s|0}function t3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=E,E=E+32|0,f=d,n[s+36>>2]=1,(n[s>>2]&64|0)==0&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,yu(54,f|0)|0)&&(o[s+75>>0]=-1),f=e7(s,l,c)|0,E=d,f|0}function t7(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,c<<24>>24==0||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(c<<24>>24==0||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function r3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(0);return s|0}function r7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0;Re=E,E=E+224|0,O=Re+120|0,j=Re+80|0,Ye=Re,Le=Re+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[O>>2]=n[c>>2],(BR(0,l,O,Ye,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?se=n3e(s)|0:se=0,c=n[s>>2]|0,M=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=BR(s,l,O,Ye,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Le,B=s+28|0,n[B>>2]=Le,Q=s+20|0,n[Q>>2]=Le,n[f>>2]=80,k=s+16|0,n[k>>2]=Le+80,c=BR(s,l,O,Ye,j)|0,m&&(aD[n[s+36>>2]&7](s,0,0)|0,c=(n[Q>>2]|0)==0?-1:c,n[d>>2]=m,n[f>>2]=0,n[k>>2]=0,n[B>>2]=0,n[Q>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|M,se|0&&i3e(s),c=(f&32|0)==0?c:-1),E=Re,c|0}function BR(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0;rr=E,E=E+64|0,ir=rr+16|0,Jt=rr,Tt=rr+24|0,Ir=rr+8|0,Qr=rr+20|0,n[ir>>2]=l,at=(s|0)!=0,He=Tt+40|0,Ge=He,Tt=Tt+39|0,Rr=Ir+4|0,B=0,m=0,O=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(zm()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(0);if(B=o[l>>0]|0,B<<24>>24)Q=l;else{Ze=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=Q,Ze=9;break t}case 0:{B=Q;break t}default:}et=Q+1|0,n[ir>>2]=et,B=o[et>>0]|0,Q=et}t:do if((Ze|0)==9)for(;;){if(Ze=0,(o[Q+1>>0]|0)!=37)break t;if(B=B+1|0,Q=Q+2|0,n[ir>>2]=Q,(o[Q>>0]|0)==37)Ze=9;else break}while(0);if(B=B-l|0,at&&ss(s,l,B),B|0){l=Q;continue}k=Q+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10?(et=(o[Q+2>>0]|0)==36,Re=et?B:-1,O=et?1:O,k=et?Q+3|0:k):Re=-1,n[ir>>2]=k,B=o[k>>0]|0,Q=(B<<24>>24)+-32|0;t:do if(Q>>>0<32)for(M=0,j=B;;){if(B=1<<Q,!(B&75913)){B=j;break t}if(M=B|M,k=k+1|0,n[ir>>2]=k,B=o[k>>0]|0,Q=(B<<24>>24)+-32|0,Q>>>0>=32)break;j=B}else M=0;while(0);if(B<<24>>24==42){if(Q=k+1|0,B=(o[Q>>0]|0)+-48|0,B>>>0<10&&(o[k+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[Q>>0]|0)+-48<<3)>>2]|0,O=1,k=k+3|0;else{if(O|0){m=-1;break}at?(O=(n[c>>2]|0)+(4-1)&~(4-1),B=n[O>>2]|0,n[c>>2]=O+4,O=0,k=Q):(B=0,O=0,k=Q)}n[ir>>2]=k,et=(B|0)<0,B=et?0-B|0:B,M=et?M|8192:M}else{if(B=n7(ir)|0,(B|0)<0){m=-1;break}k=n[ir>>2]|0}do if((o[k>>0]|0)==46){if((o[k+1>>0]|0)!=42){n[ir>>2]=k+1,Q=n7(ir)|0,k=n[ir>>2]|0;break}if(j=k+2|0,Q=(o[j>>0]|0)+-48|0,Q>>>0<10&&(o[k+3>>0]|0)==36){n[d+(Q<<2)>>2]=10,Q=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,k=k+4|0,n[ir>>2]=k;break}if(O|0){m=-1;break e}at?(et=(n[c>>2]|0)+(4-1)&~(4-1),Q=n[et>>2]|0,n[c>>2]=et+4):Q=0,n[ir>>2]=j,k=j}else Q=-1;while(0);for(Le=0;;){if(((o[k>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(et=k+1|0,n[ir>>2]=et,j=o[(o[k>>0]|0)+-65+(5178+(Le*58|0))>>0]|0,se=j&255,(se+-1|0)>>>0<8)Le=se,k=et;else break}if(!(j<<24>>24)){m=-1;break}Ye=(Re|0)>-1;do if(j<<24>>24==19)if(Ye){m=-1;break e}else Ze=49;else{if(Ye){n[d+(Re<<2)>>2]=se,Ye=f+(Re<<3)|0,Re=n[Ye+4>>2]|0,Ze=Jt,n[Ze>>2]=n[Ye>>2],n[Ze+4>>2]=Re,Ze=49;break}if(!at){m=0;break e}i7(Jt,se,c)}while(0);if((Ze|0)==49&&(Ze=0,!at)){B=0,l=et;continue}k=o[k>>0]|0,k=(Le|0)!=0&(k&15|0)==3?k&-33:k,Ye=M&-65537,Re=(M&8192|0)==0?M:Ye;t:do switch(k|0){case 110:switch((Le&255)<<24>>24){case 0:{n[n[Jt>>2]>>2]=m,B=0,l=et;continue e}case 1:{n[n[Jt>>2]>>2]=m,B=0,l=et;continue e}case 2:{B=n[Jt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}case 3:{a[n[Jt>>2]>>1]=m,B=0,l=et;continue e}case 4:{o[n[Jt>>2]>>0]=m,B=0,l=et;continue e}case 6:{n[n[Jt>>2]>>2]=m,B=0,l=et;continue e}case 7:{B=n[Jt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}default:{B=0,l=et;continue e}}case 112:{k=120,Q=Q>>>0>8?Q:8,l=Re|8,Ze=61;break}case 88:case 120:{l=Re,Ze=61;break}case 111:{k=Jt,l=n[k>>2]|0,k=n[k+4>>2]|0,se=o3e(l,k,He)|0,Ye=Ge-se|0,M=0,j=5642,Q=(Re&8|0)==0|(Q|0)>(Ye|0)?Q:Ye+1|0,Ye=Re,Ze=67;break}case 105:case 100:if(k=Jt,l=n[k>>2]|0,k=n[k+4>>2]|0,(k|0)<0){l=iD(0,0,l|0,k|0)|0,k=Ee,M=Jt,n[M>>2]=l,n[M+4>>2]=k,M=1,j=5642,Ze=66;break t}else{M=(Re&2049|0)!=0&1,j=(Re&2048|0)==0?(Re&1|0)==0?5642:5644:5643,Ze=66;break t}case 117:{k=Jt,M=0,j=5642,l=n[k>>2]|0,k=n[k+4>>2]|0,Ze=66;break}case 99:{o[Tt>>0]=n[Jt>>2],l=Tt,M=0,j=5642,se=He,k=1,Q=Ye;break}case 109:{k=a3e(n[(zm()|0)>>2]|0)|0,Ze=71;break}case 115:{k=n[Jt>>2]|0,k=k|0?k:5652,Ze=71;break}case 67:{n[Ir>>2]=n[Jt>>2],n[Rr>>2]=0,n[Jt>>2]=Ir,se=-1,k=Ir,Ze=75;break}case 83:{l=n[Jt>>2]|0,Q?(se=Q,k=l,Ze=75):(Is(s,32,B,0,Re),l=0,Ze=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=c3e(s,+C[Jt>>3],B,Q,Re,k)|0,l=et;continue e}default:M=0,j=5642,se=He,k=Q,Q=Re}while(0);t:do if((Ze|0)==61)Re=Jt,Le=n[Re>>2]|0,Re=n[Re+4>>2]|0,se=s3e(Le,Re,He,k&32)|0,j=(l&8|0)==0|(Le|0)==0&(Re|0)==0,M=j?0:2,j=j?5642:5642+(k>>4)|0,Ye=l,l=Le,k=Re,Ze=67;else if((Ze|0)==66)se=Xm(l,k,He)|0,Ye=Re,Ze=67;else if((Ze|0)==71)Ze=0,Re=l3e(k,0,Q)|0,Le=(Re|0)==0,l=k,M=0,j=5642,se=Le?k+Q|0:Re,k=Le?Q:Re-k|0,Q=Ye;else if((Ze|0)==75){for(Ze=0,j=k,l=0,Q=0;M=n[j>>2]|0,!(!M||(Q=s7(Qr,M)|0,(Q|0)<0|Q>>>0>(se-l|0)>>>0));)if(l=Q+l|0,se>>>0>l>>>0)j=j+4|0;else break;if((Q|0)<0){m=-1;break e}if(Is(s,32,B,l,Re),!l)l=0,Ze=84;else for(M=0;;){if(Q=n[k>>2]|0,!Q){Ze=84;break t}if(Q=s7(Qr,Q)|0,M=Q+M|0,(M|0)>(l|0)){Ze=84;break t}if(ss(s,Qr,Q),M>>>0>=l>>>0){Ze=84;break}else k=k+4|0}}while(0);if((Ze|0)==67)Ze=0,k=(l|0)!=0|(k|0)!=0,Re=(Q|0)!=0|k,k=((k^1)&1)+(Ge-se)|0,l=Re?se:He,se=He,k=Re?(Q|0)>(k|0)?Q:k:Q,Q=(Q|0)>-1?Ye&-65537:Ye;else if((Ze|0)==84){Ze=0,Is(s,32,B,l,Re^8192),B=(B|0)>(l|0)?B:l,l=et;continue}Le=se-l|0,Ye=(k|0)<(Le|0)?Le:k,Re=Ye+M|0,B=(B|0)<(Re|0)?Re:B,Is(s,32,B,Re,Q),ss(s,j,M),Is(s,48,B,Re,Q^65536),Is(s,48,Ye,Le,0),ss(s,l,Le),Is(s,32,B,Re,Q^8192),l=et}e:do if((Ze|0)==87&&!s)if(!O)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(i7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(0);return E=rr,m|0}function n3e(s){return s=s|0,0}function i3e(s){s=s|0}function ss(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||y3e(l,c,s)|0}function n7(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function i7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+(8-1)&~(8-1),l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+C[d>>3],n[c>>2]=d+8,C[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+C[d>>3],n[c>>2]=d+8,C[s>>3]=m;break e}default:break e}while(0);while(0)}function s3e(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=sD(s|0,l|0,4)|0,l=Ee;while(!((s|0)==0&(l|0)==0));return c|0}function o3e(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=sD(s|0,l|0,3)|0,l=Ee;while(!((s|0)==0&(l|0)==0));return c|0}function Xm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=PR(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=SR(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=Ee;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function a3e(s){return s=s|0,h3e(s,n[(p3e()|0)+188>>2]|0)|0}function l3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(0);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=Oe(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(0);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(0);return(c|0?s:0)|0}function Is(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=E,E=E+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,$m(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do ss(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}ss(s,m,d)}E=B}function s7(s,l){return s=s|0,l=l|0,s?s=A3e(s,l,0)|0:s=0,s|0}function c3e(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Jt=0,Ir=0,Qr=0,rr=0,Bn=0;Bn=E,E=E+560|0,k=Bn+8|0,et=Bn,rr=Bn+524|0,Qr=rr,M=Bn+512|0,n[et>>2]=0,Ir=M+12|0,o7(l)|0,(Ee|0)<0?(l=-l,ir=1,Rr=5659):(ir=(d&2049|0)!=0&1,Rr=(d&2048|0)==0?(d&1|0)==0?5660:5665:5662),o7(l)|0,Jt=Ee&2146435072;do if(Jt>>>0<2146435072|(Jt|0)==2146435072&0<0){if(Ye=+u3e(l,et)*2,B=Ye!=0,B&&(n[et>>2]=(n[et>>2]|0)+-1),at=m|32,(at|0)==97){Le=m&32,se=(Le|0)==0?Rr:Rr+9|0,j=ir|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=Ye;else{l=8;do B=B+-1|0,l=l*16;while((B|0)!=0);if((o[se>>0]|0)==45){l=-(l+(-Ye-l));break}else{l=Ye+l-l;break}}while(0);Q=n[et>>2]|0,B=(Q|0)<0?0-Q|0:Q,B=Xm(B,((B|0)<0)<<31>>31,Ir)|0,(B|0)==(Ir|0)&&(B=M+11|0,o[B>>0]=48),o[B+-1>>0]=(Q>>31&2)+43,O=B+-2|0,o[O>>0]=m+15,M=(f|0)<1,k=(d&8|0)==0,B=rr;do Jt=~~l,Q=B+1|0,o[B>>0]=u[5694+Jt>>0]|Le,l=(l-+(Jt|0))*16,(Q-Qr|0)==1&&!(k&(M&l==0))?(o[Q>>0]=46,B=B+2|0):B=Q;while(l!=0);Jt=B-Qr|0,Qr=Ir-O|0,Ir=(f|0)!=0&(Jt+-2|0)<(f|0)?f+2|0:Jt,B=Qr+j+Ir|0,Is(s,32,c,B,d),ss(s,se,j),Is(s,48,c,B,d^65536),ss(s,rr,Jt),Is(s,48,Ir-Jt|0,0,0),ss(s,O,Qr),Is(s,32,c,B,d^8192);break}Q=(f|0)<0?6:f,B?(B=(n[et>>2]|0)+-28|0,n[et>>2]=B,l=Ye*268435456):(l=Ye,B=n[et>>2]|0),Jt=(B|0)<0?k:k+288|0,k=Jt;do Ge=~~l>>>0,n[k>>2]=Ge,k=k+4|0,l=(l-+(Ge>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=Jt,j=k;;){if(O=(B|0)<29?B:29,B=j+-4|0,B>>>0>=M>>>0){k=0;do He=f7(n[B>>2]|0,0,O|0)|0,He=DR(He|0,Ee|0,k|0,0)|0,Ge=Ee,Ze=PR(He|0,Ge|0,1e9,0)|0,n[B>>2]=Ze,k=SR(He|0,Ge|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);k&&(M=M+-4|0,n[M>>2]=k)}for(k=j;!(k>>>0<=M>>>0);)if(B=k+-4|0,!(n[B>>2]|0))k=B;else break;if(B=(n[et>>2]|0)-O|0,n[et>>2]=B,(B|0)>0)j=k;else break}else M=Jt;if((B|0)<0){f=((Q+25|0)/9|0)+1|0,Re=(at|0)==102;do{if(Le=0-B|0,Le=(Le|0)<9?Le:9,M>>>0<k>>>0){O=(1<<Le)+-1|0,j=1e9>>>Le,se=0,B=M;do Ge=n[B>>2]|0,n[B>>2]=(Ge>>>Le)+se,se=Oe(Ge&O,j)|0,B=B+4|0;while(B>>>0<k>>>0);B=(n[M>>2]|0)==0?M+4|0:M,se?(n[k>>2]=se,M=B,B=k+4|0):(M=B,B=k)}else M=(n[M>>2]|0)==0?M+4|0:M,B=k;k=Re?Jt:M,k=(B-k>>2|0)>(f|0)?k+(f<<2)|0:B,B=(n[et>>2]|0)+Le|0,n[et>>2]=B}while((B|0)<0);B=M,f=k}else B=M,f=k;if(Ge=Jt,B>>>0<f>>>0){if(k=(Ge-B>>2)*9|0,O=n[B>>2]|0,O>>>0>=10){M=10;do M=M*10|0,k=k+1|0;while(O>>>0>=M>>>0)}}else k=0;if(Re=(at|0)==103,Ze=(Q|0)!=0,M=Q-((at|0)!=102?k:0)+((Ze&Re)<<31>>31)|0,(M|0)<(((f-Ge>>2)*9|0)+-9|0)){if(M=M+9216|0,Le=Jt+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(j=n[Le>>2]|0,se=(j>>>0)%(O>>>0)|0,M=(Le+4|0)==(f|0),M&(se|0)==0)M=Le;else if(Ye=(((j>>>0)/(O>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,He=(O|0)/2|0,l=se>>>0<He>>>0?.5:M&(se|0)==(He|0)?1:1.5,ir&&(He=(o[Rr>>0]|0)==45,l=He?-l:l,Ye=He?-Ye:Ye),M=j-se|0,n[Le>>2]=M,Ye+l!=Ye){if(He=M+O|0,n[Le>>2]=He,He>>>0>999999999)for(k=Le;M=k+-4|0,n[k>>2]=0,M>>>0<B>>>0&&(B=B+-4|0,n[B>>2]=0),He=(n[M>>2]|0)+1|0,n[M>>2]=He,He>>>0>999999999;)k=M;else M=Le;if(k=(Ge-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){O=10;do O=O*10|0,k=k+1|0;while(j>>>0>=O>>>0)}}else M=Le;M=M+4|0,M=f>>>0>M>>>0?M:f,He=B}else M=f,He=B;for(at=M;;){if(at>>>0<=He>>>0){et=0;break}if(B=at+-4|0,!(n[B>>2]|0))at=B;else{et=1;break}}f=0-k|0;do if(Re)if(B=((Ze^1)&1)+Q|0,(B|0)>(k|0)&(k|0)>-5?(O=m+-1|0,Q=B+-1-k|0):(O=m+-2|0,Q=B+-1|0),B=d&8,B)Le=B;else{if(et&&(Tt=n[at+-4>>2]|0,(Tt|0)!=0))if((Tt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Tt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((at-Ge>>2)*9|0)+-9|0,(O|32|0)==102){Le=B-M|0,Le=(Le|0)>0?Le:0,Q=(Q|0)<(Le|0)?Q:Le,Le=0;break}else{Le=B+k-M|0,Le=(Le|0)>0?Le:0,Q=(Q|0)<(Le|0)?Q:Le,Le=0;break}}else O=m,Le=d&8;while(0);if(Re=Q|Le,j=(Re|0)!=0&1,se=(O|32|0)==102,se)Ze=0,B=(k|0)>0?k:0;else{if(B=(k|0)<0?f:k,B=Xm(B,((B|0)<0)<<31>>31,Ir)|0,M=Ir,(M-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((M-B|0)<2);o[B+-1>>0]=(k>>31&2)+43,B=B+-2|0,o[B>>0]=O,Ze=B,B=M-B|0}if(B=ir+1+Q+j+B|0,Is(s,32,c,B,d),ss(s,Rr,ir),Is(s,48,c,B,d^65536),se){O=He>>>0>Jt>>>0?Jt:He,Le=rr+9|0,j=Le,se=rr+8|0,M=O;do{if(k=Xm(n[M>>2]|0,0,Le)|0,(M|0)==(O|0))(k|0)==(Le|0)&&(o[se>>0]=48,k=se);else if(k>>>0>rr>>>0){$m(rr|0,48,k-Qr|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}ss(s,k,j-k|0),M=M+4|0}while(M>>>0<=Jt>>>0);if(Re|0&&ss(s,5710,1),M>>>0<at>>>0&(Q|0)>0)for(;;){if(k=Xm(n[M>>2]|0,0,Le)|0,k>>>0>rr>>>0){$m(rr|0,48,k-Qr|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}if(ss(s,k,(Q|0)<9?Q:9),M=M+4|0,k=Q+-9|0,M>>>0<at>>>0&(Q|0)>9)Q=k;else{Q=k;break}}Is(s,48,Q+9|0,9,0)}else{if(Re=et?at:He+4|0,(Q|0)>-1){et=rr+9|0,Le=(Le|0)==0,f=et,j=0-Qr|0,se=rr+8|0,O=He;do{k=Xm(n[O>>2]|0,0,et)|0,(k|0)==(et|0)&&(o[se>>0]=48,k=se);do if((O|0)==(He|0)){if(M=k+1|0,ss(s,k,1),Le&(Q|0)<1){k=M;break}ss(s,5710,1),k=M}else{if(k>>>0<=rr>>>0)break;$m(rr|0,48,k+j|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}while(0);Qr=f-k|0,ss(s,k,(Q|0)>(Qr|0)?Qr:Q),Q=Q-Qr|0,O=O+4|0}while(O>>>0<Re>>>0&(Q|0)>-1)}Is(s,48,Q+18|0,18,0),ss(s,Ze,Ir-Ze|0)}Is(s,32,c,B,d^8192)}else rr=(m&32|0)!=0,B=ir+3|0,Is(s,32,c,B,d&-65537),ss(s,Rr,ir),ss(s,l!=l|!1?rr?5686:5690:rr?5678:5682,3),Is(s,32,c,B,d^8192);while(0);return E=Bn,((B|0)<(c|0)?c:B)|0}function o7(s){s=+s;var l=0;return C[v>>3]=s,l=n[v>>2]|0,Ee=n[v+4>>2]|0,l|0}function u3e(s,l){return s=+s,l=l|0,+ +a7(s,l)}function a7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(C[v>>3]=s,c=n[v>>2]|0,f=n[v+4>>2]|0,d=sD(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+a7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[v>>2]=c,n[v+4>>2]=f&-2146435073|1071644672,s=+C[v>>3]}return+s}function A3e(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(f3e()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(zm()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(zm()|0)>>2]=84,s=-1;break}}else s=1;while(0);return s|0}function f3e(){return wR()|0}function p3e(){return wR()|0}function h3e(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while((o[s>>0]|0)!=0);if(f=f+-1|0,f)s=5;else break}return g3e(c,n[l+20>>2]|0)|0}function g3e(s,l){return s=s|0,l=l|0,d3e(s,l)|0}function d3e(s,l){return s=s|0,l=l|0,l?l=m3e(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function m3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;se=(n[s>>2]|0)+1794895138|0,m=Qg(n[s+8>>2]|0,se)|0,f=Qg(n[s+12>>2]|0,se)|0,d=Qg(n[s+16>>2]|0,se)|0;e:do if(m>>>0<l>>>2>>>0&&(j=l-(m<<2)|0,f>>>0<j>>>0&d>>>0<j>>>0)&&((d|f)&3|0)==0){for(j=f>>>2,O=d>>>2,M=0;;){if(Q=m>>>1,k=M+Q|0,B=k<<1,d=B+j|0,f=Qg(n[s+(d<<2)>>2]|0,se)|0,d=Qg(n[s+(d+1<<2)>>2]|0,se)|0,!(d>>>0<l>>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=t7(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else M=f?M:k,m=f?Q:m-Q|0}f=B+O|0,d=Qg(n[s+(f<<2)>>2]|0,se)|0,f=Qg(n[s+(f+1<<2)>>2]|0,se)|0,f>>>0<l>>>0&d>>>0<(l-f|0)>>>0?f=(o[s+(f+d)>>0]|0)==0?s+f|0:0:f=0}else f=0;while(0);return f|0}function Qg(s,l){s=s|0,l=l|0;var c=0;return c=g7(s|0)|0,((l|0)==0?s:c)|0}function y3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=c+16|0,d=n[f>>2]|0,d?m=5:E3e(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(Q=c+20|0,B=n[Q>>2]|0,f=B,(d-B|0)>>>0<l>>>0){f=aD[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=aD[n[c+36>>2]&7](c,s,B)|0,f>>>0<B>>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[Q>>2]|0}else m=0,d=s;while(0);Cr(f|0,d|0,l|0)|0,n[Q>>2]=(n[Q>>2]|0)+l,f=m+l|0}while(0);return f|0}function E3e(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function Nn(s,l){s=y(s),l=y(l);var c=0,f=0;c=l7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=l7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s<l?l:s;break}}else s=l;while(0);return y(s)}function l7(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function kg(s,l){s=y(s),l=y(l);var c=0,f=0;c=c7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=c7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s<l?s:l;break}}else s=l;while(0);return y(s)}function c7(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function vR(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;m=(h[v>>2]=s,n[v>>2]|0),Q=(h[v>>2]=l,n[v>>2]|0),c=m>>>23&255,B=Q>>>23&255,k=m&-2147483648,d=Q<<1;e:do if((d|0)!=0&&!((c|0)==255|((C3e(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)Q=Q&8388607|8388608;else{if(m=Q<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,Q=Q<<1-d}d=f-Q|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-Q|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(0);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[v>>2]=c|k,y(h[v>>2]))}else M=3;while(0);return(M|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function C3e(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function I3e(s,l){return s=s|0,l=l|0,r7(n[582]|0,s,l)|0}function Vr(s){s=s|0,Rt()}function Zm(s){s=s|0}function w3e(s,l){return s=s|0,l=l|0,0}function B3e(s){return s=s|0,(u7(s+4|0)|0)==-1?(rf[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function u7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function Qp(s){s=s|0,B3e(s)|0&&v3e(s)}function v3e(s){s=s|0;var l=0;l=s+8|0,(n[l>>2]|0)!=0&&(u7(l)|0)!=-1||rf[n[(n[s>>2]|0)+16>>2]&127](s)}function Gt(s){s=s|0;var l=0;for(l=(s|0)==0?1:s;s=tD(l)|0,!(s|0);){if(s=S3e()|0,!s){s=0;break}D7[s&0]()}return s|0}function A7(s){return s=s|0,Gt(s)|0}function pt(s){s=s|0,rD(s)}function D3e(s){s=s|0,(o[s+11>>0]|0)<0&&pt(n[s>>2]|0)}function S3e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function P3e(){}function iD(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,Ee=f,s-c>>>0|0|0}function DR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,Ee=l+f+(c>>>0<s>>>0|0)>>>0,c|0|0}function $m(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function f7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Ee=l<<c|(s&(1<<c)-1<<32-c)>>>32-c,s<<c):(Ee=s<<c-32,0)}function sD(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Ee=l>>>c,s>>>c|(l&(1<<c)-1)<<32-c):(Ee=0,l>>>c-32|0)}function Cr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return dc(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function p7(s){s=s|0;var l=0;return l=o[L+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[L+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[L+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[L+(s>>>24)>>0]|0)+24|0))}function h7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,Ye=0,Le=0;if(O=s,k=l,M=k,B=c,se=f,Q=se,!M)return m=(d|0)!=0,Q?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,se=0,d=0,Ee=se,d|0):(se=0,d=0,Ee=se,d|0):(m&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),se=0,d=(O>>>0)/(B>>>0)>>>0,Ee=se,d|0);m=(Q|0)==0;do if(B){if(!m){if(m=(P(Q|0)|0)-(P(M|0)|0)|0,m>>>0<=31){j=m+1|0,Q=31-m|0,l=m-31>>31,B=j,s=O>>>(j>>>0)&l|M<<Q,l=M>>>(j>>>0)&l,m=0,Q=O<<Q;break}return d?(n[d>>2]=s|0,n[d+4>>2]=k|l&0,se=0,d=0,Ee=se,d|0):(se=0,d=0,Ee=se,d|0)}if(m=B-1|0,m&B|0){Q=(P(B|0)|0)+33-(P(M|0)|0)|0,Le=64-Q|0,j=32-Q|0,k=j>>31,Ye=Q-32|0,l=Ye>>31,B=Q,s=j-1>>31&M>>>(Ye>>>0)|(M<<j|O>>>(Q>>>0))&l,l=l&M>>>(Q>>>0),m=O<<Le&k,Q=(M<<Le|O>>>(Ye>>>0))&k|O<<j&Q-33>>31;break}return d|0&&(n[d>>2]=m&O,n[d+4>>2]=0),(B|0)==1?(Ye=k|l&0,Le=s|0|0,Ee=Ye,Le|0):(Le=p7(B|0)|0,Ye=M>>>(Le>>>0)|0,Le=M<<32-Le|O>>>(Le>>>0)|0,Ee=Ye,Le|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),Ye=0,Le=(M>>>0)/(B>>>0)>>>0,Ee=Ye,Le|0;if(!O)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(Q>>>0)),Ye=0,Le=(M>>>0)/(Q>>>0)>>>0,Ee=Ye,Le|0;if(m=Q-1|0,!(m&Q))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&M|l&0),Ye=0,Le=M>>>((p7(Q|0)|0)>>>0),Ee=Ye,Le|0;if(m=(P(Q|0)|0)-(P(M|0)|0)|0,m>>>0<=30){l=m+1|0,Q=31-m|0,B=l,s=M<<Q|O>>>(l>>>0),l=M>>>(l>>>0),m=0,Q=O<<Q;break}return d?(n[d>>2]=s|0,n[d+4>>2]=k|l&0,Ye=0,Le=0,Ee=Ye,Le|0):(Ye=0,Le=0,Ee=Ye,Le|0)}while(0);if(!B)M=Q,k=0,Q=0;else{j=c|0|0,O=se|f&0,M=DR(j|0,O|0,-1,-1)|0,c=Ee,k=Q,Q=0;do f=k,k=m>>>31|k<<1,m=Q|m<<1,f=s<<1|f>>>31|0,se=s>>>31|l<<1|0,iD(M|0,c|0,f|0,se|0)|0,Le=Ee,Ye=Le>>31|((Le|0)<0?-1:0)<<1,Q=Ye&1,s=iD(f|0,se|0,Ye&j|0,(((Le|0)<0?-1:0)>>31|((Le|0)<0?-1:0)<<1)&O|0)|0,l=Ee,B=B-1|0;while((B|0)!=0);M=k,k=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),Ye=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|k,Le=(m<<1|0>>>31)&-2|Q,Ee=Ye,Le|0}function SR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,h7(s,l,c,f,0)|0}function kp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[w>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(ie()|0,xA(12),-1):(n[w>>2]=s,(s|0)>($()|0)&&(X()|0)==0?(n[w>>2]=l,xA(12),-1):l|0)}function bI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else Cr(s,l,c)|0;return s|0}function PR(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=E,E=E+16|0,d=m|0,h7(s,l,c,f,d)|0,E=m,Ee=n[d+4>>2]|0,n[d>>2]|0|0}function g7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function x3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,d7[s&1](l|0,c|0,f|0,d|0,m|0)}function b3e(s,l,c){s=s|0,l=l|0,c=y(c),m7[s&1](l|0,y(c))}function Q3e(s,l,c){s=s|0,l=l|0,c=+c,y7[s&31](l|0,+c)}function k3e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(E7[s&0](l|0,y(c),y(f)))}function F3e(s,l){s=s|0,l=l|0,rf[s&127](l|0)}function R3e(s,l,c){s=s|0,l=l|0,c=c|0,nf[s&31](l|0,c|0)}function T3e(s,l){return s=s|0,l=l|0,Rg[s&31](l|0)|0}function N3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,C7[s&1](l|0,+c,+f,d|0)}function L3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,d_e[s&1](l|0,+c,+f)}function O3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,aD[s&7](l|0,c|0,f|0)|0}function M3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+m_e[s&1](l|0,c|0,f|0)}function U3e(s,l){return s=s|0,l=l|0,+I7[s&15](l|0)}function _3e(s,l,c){return s=s|0,l=l|0,c=+c,y_e[s&1](l|0,+c)|0}function H3e(s,l,c){return s=s|0,l=l|0,c=c|0,bR[s&15](l|0,c|0)|0}function q3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,E_e[s&1](l|0,c|0,+f,+d,m|0)}function j3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,C_e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function G3e(s,l,c){return s=s|0,l=l|0,c=c|0,+w7[s&7](l|0,c|0)}function W3e(s){return s=s|0,lD[s&7]()|0}function Y3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B7[s&1](l|0,c|0,f|0,d|0,m|0)|0}function K3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,I_e[s&1](l|0,c|0,f|0,+d)}function V3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,v7[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function J3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,FI[s&15](l|0,c|0,f|0)}function z3e(s){s=s|0,D7[s&0]()}function X3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,S7[s&15](l|0,c|0,+f)}function Z3e(s,l,c){return s=s|0,l=+l,c=+c,w_e[s&1](+l,+c)|0}function $3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,QR[s&15](l|0,c|0,f|0,d|0)}function e_e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(0)}function t_e(s,l){s=s|0,l=y(l),F(1)}function ya(s,l){s=s|0,l=+l,F(2)}function r_e(s,l,c){return s=s|0,l=y(l),c=y(c),F(3),$e}function hr(s){s=s|0,F(4)}function QI(s,l){s=s|0,l=l|0,F(5)}function $a(s){return s=s|0,F(6),0}function n_e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,F(7)}function i_e(s,l,c){s=s|0,l=+l,c=+c,F(8)}function s_e(s,l,c){return s=s|0,l=l|0,c=c|0,F(9),0}function o_e(s,l,c){return s=s|0,l=l|0,c=c|0,F(10),0}function Fg(s){return s=s|0,F(11),0}function a_e(s,l){return s=s|0,l=+l,F(12),0}function kI(s,l){return s=s|0,l=l|0,F(13),0}function l_e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,F(14)}function c_e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,F(15)}function xR(s,l){return s=s|0,l=l|0,F(16),0}function u_e(){return F(17),0}function A_e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(18),0}function f_e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,F(19)}function p_e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,F(20)}function oD(s,l,c){s=s|0,l=l|0,c=c|0,F(21)}function h_e(){F(22)}function ey(s,l,c){s=s|0,l=l|0,c=+c,F(23)}function g_e(s,l){return s=+s,l=+l,F(24),0}function ty(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,F(25)}var d7=[e_e,AOe],m7=[t_e,uo],y7=[ya,CI,II,gF,dF,bl,wI,mF,Gm,Fu,vI,yF,Hv,VA,qv,Wm,jv,Gv,Ym,ya,ya,ya,ya,ya,ya,ya,ya,ya,ya,ya,ya,ya],E7=[r_e],rf=[hr,Zm,WDe,YDe,KDe,wbe,Bbe,vbe,_Ne,HNe,qNe,ZLe,$Le,eOe,CUe,IUe,wUe,ds,Lv,jm,KA,BI,Hve,qve,NDe,tSe,pSe,kSe,KSe,uPe,PPe,qPe,nxe,Exe,Nxe,Xxe,pbe,Hbe,nQe,EQe,NQe,XQe,pke,Fke,Kke,aFe,BFe,kc,eRe,dRe,NRe,$Re,hTe,NTe,WTe,VTe,ANe,hNe,kNe,GNe,KNe,uLe,xLe,r9,cMe,_Me,t4e,d4e,M4e,$4e,uUe,pUe,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr],nf=[QI,lF,cF,EI,ku,uF,AF,Bp,fF,pF,hF,_v,JA,Je,ft,jt,Er,In,Sr,CF,xve,Xve,Lke,zke,nTe,fMe,LLe,_5,QI,QI,QI,QI],Rg=[$a,XUe,aF,D,ce,Se,It,Et,bt,Nr,fi,Ao,Dve,Sve,jve,SFe,yTe,pLe,dMe,za,$a,$a,$a,$a,$a,$a,$a,$a,$a,$a,$a,$a],C7=[n_e,Gve],d_e=[i_e,TNe],aD=[s_e,e7,ZUe,t3e,hPe,Wbe,iRe,C4e],m_e=[o_e,Uxe],I7=[Fg,qo,rt,wn,Wve,Yve,Kve,Vve,Jve,zve,Fg,Fg,Fg,Fg,Fg,Fg],y_e=[a_e,qTe],bR=[kI,w3e,Pve,UDe,NSe,QPe,WPe,mbe,aQe,AFe,Tv,s4e,kI,kI,kI,kI],E_e=[l_e,mSe],C_e=[c_e,q4e],w7=[xR,ni,Zve,$ve,eDe,tbe,xR,xR],lD=[u_e,tDe,mI,da,ZTe,yNe,XNe,mUe],B7=[A_e,AI],I_e=[f_e,UQe],v7=[p_e,bve],FI=[oD,T,is,Xr,fo,XSe,oxe,tke,mke,qm,TOe,GMe,nUe,oD,oD,oD],D7=[h_e],S7=[ey,Ov,Mv,Uv,YA,Wv,EF,S,BQe,CRe,MTe,ey,ey,ey,ey,ey],w_e=[g_e,MNe],QR=[ty,Bxe,TFe,URe,PTe,iNe,vNe,iLe,RLe,wMe,xUe,ty,ty,ty,ty,ty];return{_llvm_bswap_i32:g7,dynCall_idd:Z3e,dynCall_i:W3e,_i64Subtract:iD,___udivdi3:SR,dynCall_vif:b3e,setThrew:Cu,dynCall_viii:J3e,_bitshift64Lshr:sD,_bitshift64Shl:f7,dynCall_vi:F3e,dynCall_viiddi:q3e,dynCall_diii:M3e,dynCall_iii:H3e,_memset:$m,_sbrk:kp,_memcpy:Cr,__GLOBAL__sub_I_Yoga_cpp:Hm,dynCall_vii:R3e,___uremdi3:PR,dynCall_vid:Q3e,stackAlloc:so,_nbind_init:UUe,getTempRet0:Ha,dynCall_di:U3e,dynCall_iid:_3e,setTempRet0:FA,_i64Add:DR,dynCall_fiff:k3e,dynCall_iiii:O3e,_emscripten_get_global_libc:zUe,dynCall_viid:X3e,dynCall_viiid:K3e,dynCall_viififi:V3e,dynCall_ii:T3e,__GLOBAL__sub_I_Binding_cc:tMe,dynCall_viiii:$3e,dynCall_iiiiii:Y3e,stackSave:vl,dynCall_viiiii:x3e,__GLOBAL__sub_I_nbind_cc:rDe,dynCall_vidd:L3e,_free:rD,runPostSets:P3e,dynCall_viiiiii:j3e,establishStackSpace:qi,_memmove:bI,stackRestore:Eu,_malloc:tD,__GLOBAL__sub_I_common_cc:ILe,dynCall_viddi:N3e,dynCall_dii:G3e,dynCall_v:z3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<4-1;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n<r-1;n=n+1)a.push(allocate(intArrayFromString(e[n]),"i8",ALLOC_NORMAL)),o();a.push(0),a=allocate(a,"i32",ALLOC_NORMAL);try{var u=Module._main(r,a,0);exit(u,!0)}catch(p){if(p instanceof ExitStatus)return;if(p=="SimulateInfiniteLoop"){Module.noExitRuntime=!0;return}else{var A=p;p&&typeof p=="object"&&p.stack&&(A=[p,p.stack]),Module.printErr("exception thrown: "+A),Module.quit(1,p)}}finally{calledMain=!0}};function run(t){if(t=t||Module.arguments,preloadStartTime===null&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=`
286If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var cm=U((BYt,rEe)=>{"use strict";var syt=eEe(),oyt=tEe(),x6=!1,b6=null;oyt({},function(t,e){if(!x6){if(x6=!0,t)throw t;b6=e}});if(!x6)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");rEe.exports=syt(b6.bind,b6.lib)});var k6=U((vYt,Q6)=>{"use strict";var nEe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);Q6.exports=nEe;Q6.exports.default=nEe});var sEe=U((DYt,iEe)=>{"use strict";iEe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var UQ=U((SYt,F6)=>{"use strict";var ayt=SS(),lyt=k6(),cyt=sEe(),oEe=t=>{if(typeof t!="string"||t.length===0||(t=ayt(t),t.length===0))return 0;t=t.replace(cyt()," ");let e=0;for(let r=0;r<t.length;r++){let o=t.codePointAt(r);o<=31||o>=127&&o<=159||o>=768&&o<=879||(o>65535&&r++,e+=lyt(o)?2:1)}return e};F6.exports=oEe;F6.exports.default=oEe});var T6=U((PYt,R6)=>{"use strict";var uyt=UQ(),aEe=t=>{let e=0;for(let r of t.split(` 286If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var um=U((QYt,iCe)=>{"use strict";var uyt=rCe(),Ayt=nCe(),Q6=!1,k6=null;Ayt({},function(t,e){if(!Q6){if(Q6=!0,t)throw t;k6=e}});if(!Q6)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");iCe.exports=uyt(k6.bind,k6.lib)});var R6=U((kYt,F6)=>{"use strict";var sCe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);F6.exports=sCe;F6.exports.default=sCe});var aCe=U((FYt,oCe)=>{"use strict";oCe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var qQ=U((RYt,T6)=>{"use strict";var fyt=xS(),pyt=R6(),hyt=aCe(),lCe=t=>{if(typeof t!="string"||t.length===0||(t=fyt(t),t.length===0))return 0;t=t.replace(hyt()," ");let e=0;for(let r=0;r<t.length;r++){let o=t.codePointAt(r);o<=31||o>=127&&o<=159||o>=768&&o<=879||(o>65535&&r++,e+=pyt(o)?2:1)}return e};T6.exports=lCe;T6.exports.default=lCe});var L6=U((TYt,N6)=>{"use strict";var gyt=qQ(),cCe=t=>{let e=0;for(let r of t.split(`
287`))e=Math.max(e,uyt(r));return e};R6.exports=aEe;R6.exports.default=aEe});var lEe=U(J2=>{"use strict";var Ayt=J2&&J2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(J2,"__esModule",{value:!0});var fyt=Ayt(T6()),N6={};J2.default=t=>{if(t.length===0)return{width:0,height:0};if(N6[t])return N6[t];let e=fyt.default(t),r=t.split(` 287`))e=Math.max(e,gyt(r));return e};N6.exports=cCe;N6.exports.default=cCe});var uCe=U(X2=>{"use strict";var dyt=X2&&X2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(X2,"__esModule",{value:!0});var myt=dyt(L6()),O6={};X2.default=t=>{if(t.length===0)return{width:0,height:0};if(O6[t])return O6[t];let e=myt.default(t),r=t.split(`
288`).length;return N6[t]={width:e,height:r},{width:e,height:r}}});var cEe=U(z2=>{"use strict";var pyt=z2&&z2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(z2,"__esModule",{value:!0});var fn=pyt(cm()),hyt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?fn.default.POSITION_TYPE_ABSOLUTE:fn.default.POSITION_TYPE_RELATIVE)},gyt=(t,e)=>{"marginLeft"in e&&t.setMargin(fn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(fn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(fn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(fn.default.EDGE_BOTTOM,e.marginBottom||0)},dyt=(t,e)=>{"paddingLeft"in e&&t.setPadding(fn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(fn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(fn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(fn.default.EDGE_BOTTOM,e.paddingBottom||0)},myt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(fn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(fn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(fn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(fn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(fn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(fn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(fn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(fn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(fn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(fn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(fn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(fn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(fn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(fn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(fn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(fn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(fn.default.JUSTIFY_SPACE_AROUND))},yyt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},Cyt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?fn.default.DISPLAY_FLEX:fn.default.DISPLAY_NONE)},Eyt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(fn.default.EDGE_TOP,r),t.setBorder(fn.default.EDGE_BOTTOM,r),t.setBorder(fn.default.EDGE_LEFT,r),t.setBorder(fn.default.EDGE_RIGHT,r)}};z2.default=(t,e={})=>{hyt(t,e),gyt(t,e),dyt(t,e),myt(t,e),yyt(t,e),Cyt(t,e),Eyt(t,e)}});var fEe=U((QYt,AEe)=>{"use strict";var X2=UQ(),Iyt=SS(),wyt=gw(),O6=new Set(["\x1B","\x9B"]),Byt=39,uEe=t=>`${O6.values().next().value}[${t}m`,vyt=t=>t.split(" ").map(e=>X2(e)),L6=(t,e,r)=>{let o=[...e],a=!1,n=X2(Iyt(t[t.length-1]));for(let[u,A]of o.entries()){let p=X2(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),O6.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u<o.length-1&&(t.push(""),n=0))}!n&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},Dyt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(X2(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},Syt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=vyt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let E=X2(A[A.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),E=0),(E>0||r.trim===!1)&&(A[A.length-1]+=" ",E++)),r.hard&&u[p]>e){let w=e-E,v=1+Math.floor((u[p]-w-1)/e);Math.floor((u[p]-1)/e)<v&&A.push(""),L6(A,h,e);continue}if(E+u[p]>e&&E>0&&u[p]>0){if(r.wordWrap===!1&&E<e){L6(A,h,e);continue}A.push("")}if(E+u[p]>e&&r.wordWrap===!1){L6(A,h,e);continue}A[A.length-1]+=h}r.trim!==!1&&(A=A.map(Dyt)),o=A.join(` 288`).length;return O6[t]={width:e,height:r},{width:e,height:r}}});var ACe=U(Z2=>{"use strict";var yyt=Z2&&Z2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Z2,"__esModule",{value:!0});var fn=yyt(um()),Eyt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?fn.default.POSITION_TYPE_ABSOLUTE:fn.default.POSITION_TYPE_RELATIVE)},Cyt=(t,e)=>{"marginLeft"in e&&t.setMargin(fn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(fn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(fn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(fn.default.EDGE_BOTTOM,e.marginBottom||0)},Iyt=(t,e)=>{"paddingLeft"in e&&t.setPadding(fn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(fn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(fn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(fn.default.EDGE_BOTTOM,e.paddingBottom||0)},wyt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(fn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(fn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(fn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(fn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(fn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(fn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(fn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(fn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(fn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(fn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(fn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(fn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(fn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(fn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(fn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(fn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(fn.default.JUSTIFY_SPACE_AROUND))},Byt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},vyt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?fn.default.DISPLAY_FLEX:fn.default.DISPLAY_NONE)},Dyt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(fn.default.EDGE_TOP,r),t.setBorder(fn.default.EDGE_BOTTOM,r),t.setBorder(fn.default.EDGE_LEFT,r),t.setBorder(fn.default.EDGE_RIGHT,r)}};Z2.default=(t,e={})=>{Eyt(t,e),Cyt(t,e),Iyt(t,e),wyt(t,e),Byt(t,e),vyt(t,e),Dyt(t,e)}});var hCe=U((OYt,pCe)=>{"use strict";var $2=qQ(),Syt=xS(),Pyt=dw(),U6=new Set(["\x1B","\x9B"]),xyt=39,fCe=t=>`${U6.values().next().value}[${t}m`,byt=t=>t.split(" ").map(e=>$2(e)),M6=(t,e,r)=>{let o=[...e],a=!1,n=$2(Syt(t[t.length-1]));for(let[u,A]of o.entries()){let p=$2(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),U6.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u<o.length-1&&(t.push(""),n=0))}!n&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},Qyt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!($2(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},kyt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=byt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let C=$2(A[A.length-1]);if(p!==0&&(C>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),C=0),(C>0||r.trim===!1)&&(A[A.length-1]+=" ",C++)),r.hard&&u[p]>e){let w=e-C,v=1+Math.floor((u[p]-w-1)/e);Math.floor((u[p]-1)/e)<v&&A.push(""),M6(A,h,e);continue}if(C+u[p]>e&&C>0&&u[p]>0){if(r.wordWrap===!1&&C<e){M6(A,h,e);continue}A.push("")}if(C+u[p]>e&&r.wordWrap===!1){M6(A,h,e);continue}A[A.length-1]+=h}r.trim!==!1&&(A=A.map(Qyt)),o=A.join(`
289`);for(let[p,h]of[...o].entries()){if(a+=h,O6.has(h)){let w=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=w===Byt?null:w}let E=wyt.codes.get(Number(n));n&&E&&(o[p+1]===` 289`);for(let[p,h]of[...o].entries()){if(a+=h,U6.has(h)){let w=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=w===xyt?null:w}let C=Pyt.codes.get(Number(n));n&&C&&(o[p+1]===`
290`?a+=uEe(E):h===` 290`?a+=fCe(C):h===`
291`&&(a+=uEe(n)))}return a};AEe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` 291`&&(a+=fCe(n)))}return a};pCe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,`
292`).split(` 292`).split(`
293`).map(o=>Syt(o,e,r)).join(` 293`).map(o=>kyt(o,e,r)).join(`
294`)});var gEe=U((kYt,hEe)=>{"use strict";var pEe="[\uD800-\uDBFF][\uDC00-\uDFFF]",Pyt=t=>t&&t.exact?new RegExp(`^${pEe}$`):new RegExp(pEe,"g");hEe.exports=Pyt});var M6=U((FYt,CEe)=>{"use strict";var xyt=k6(),byt=gEe(),dEe=gw(),yEe=["\x1B","\x9B"],_Q=t=>`${yEe[0]}[${t}m`,mEe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=dEe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(_Q(e?u:n))}else if(e){o.push(_Q(0));break}else o.push(_Q(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=_Q(dEe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};CEe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,E]of o.entries()){let w=!1;if(yEe.includes(E)){let v=/\d[^m]*/.exec(t.slice(h,h+18));u=v&&v.length>0?v[0]:void 0,A<r&&(n=!0,u!==void 0&&a.push(u))}else n&&E==="m"&&(n=!1,w=!0);if(!n&&!w&&++A,!byt({exact:!0}).test(E)&&xyt(E.codePointAt())&&++A,A>e&&A<=r)p+=E;else if(A===e&&!n&&u!==void 0)p=mEe(a);else if(A>=r){p+=mEe(a,!0,u);break}}return p}});var IEe=U((RYt,EEe)=>{"use strict";var dh=M6(),Qyt=UQ();function HQ(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}EEe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=Qyt(t);if(p<=e)return t;if(o==="start"){if(n){let h=HQ(t,p-e+1,!0);return u+dh(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+dh(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let E=HQ(t,h),w=HQ(t,p-(e-h)+1,!0);return dh(t,0,E)+u+dh(t,w,p).trim()}return dh(t,0,h)+u+dh(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=HQ(t,e-1);return dh(t,0,h)+u}return a===!0&&(u=" "+u,A=2),dh(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var _6=U(Z2=>{"use strict";var wEe=Z2&&Z2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Z2,"__esModule",{value:!0});var kyt=wEe(fEe()),Fyt=wEe(IEe()),U6={};Z2.default=(t,e,r)=>{let o=t+String(e)+String(r);if(U6[o])return U6[o];let a=t;if(r==="wrap"&&(a=kyt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=Fyt.default(t,e,{position:n})}return U6[o]=a,a}});var q6=U(H6=>{"use strict";Object.defineProperty(H6,"__esModule",{value:!0});var BEe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=BEe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};H6.default=BEe});var j6=U(ci=>{"use strict";var $2=ci&&ci.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ci,"__esModule",{value:!0});ci.setTextNodeValue=ci.createTextNode=ci.setStyle=ci.setAttribute=ci.removeChildNode=ci.insertBeforeNode=ci.appendChildNode=ci.createNode=ci.TEXT_NAME=void 0;var Ryt=$2(cm()),vEe=$2(lEe()),Tyt=$2(cEe()),Nyt=$2(_6()),Lyt=$2(q6());ci.TEXT_NAME="#text";ci.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:Ryt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(Oyt.bind(null,r))),r};ci.appendChildNode=(t,e)=>{var r;e.parentNode&&ci.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&qQ(t)};ci.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&ci.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&qQ(t)};ci.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&qQ(t)};ci.setAttribute=(t,e,r)=>{t.attributes[e]=r};ci.setStyle=(t,e)=>{t.style=e,t.yogaNode&&Tyt.default(t.yogaNode,e)};ci.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return ci.setTextNodeValue(e,t),e};var Oyt=function(t,e){var r,o;let a=t.nodeName==="#text"?t.nodeValue:Lyt.default(t),n=vEe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let u=(o=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&o!==void 0?o:"wrap",A=Nyt.default(a,e,u);return vEe.default(A)},DEe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:DEe(t.parentNode)},qQ=t=>{let e=DEe(t);e==null||e.markDirty()};ci.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,qQ(t)}});var QEe=U(eB=>{"use strict";var bEe=eB&&eB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(eB,"__esModule",{value:!0});var SEe=D6(),Myt=bEe(VCe()),PEe=bEe(cm()),To=j6(),xEe=t=>{t==null||t.unsetMeasureFunc(),t==null||t.freeRecursive()};eB.default=Myt.default({schedulePassiveEffects:SEe.unstable_scheduleCallback,cancelPassiveEffects:SEe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,o=e==="ink-text"||e==="ink-virtual-text";return r===o?t:{isInsideText:o}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,o)=>{if(o.isInsideText&&t==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let a=t==="ink-text"&&o.isInsideText?"ink-virtual-text":t,n=To.createNode(a);for(let[u,A]of Object.entries(e))u!=="children"&&(u==="style"?To.setStyle(n,A):u==="internal_transform"?n.internal_transform=A:u==="internal_static"?n.internal_static=!0:To.setAttribute(n,u,A));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside <Text> component`);return To.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{To.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{To.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(PEe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(PEe.default.DISPLAY_FLEX)},appendInitialChild:To.appendChildNode,appendChild:To.appendChildNode,insertBefore:To.insertBeforeNode,finalizeInitialChildren:(t,e,r,o)=>(t.internal_static&&(o.isStaticDirty=!0,o.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:To.appendChildNode,insertInContainerBefore:To.insertBeforeNode,removeChildFromContainer:(t,e)=>{To.removeChildNode(t,e),xEe(e.yogaNode)},prepareUpdate:(t,e,r,o,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},u=Object.keys(o);for(let A of u)if(o[A]!==r[A]){if(A==="style"&&typeof o.style=="object"&&typeof r.style=="object"){let h=o.style,E=r.style,w=Object.keys(h);for(let v of w){if(v==="borderStyle"||v==="borderColor"){if(typeof n.style!="object"){let b={};n.style=b}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[v]!==E[v]){if(typeof n.style!="object"){let b={};n.style=b}n.style[v]=h[v]}}continue}n[A]=o[A]}return n},commitUpdate:(t,e)=>{for(let[r,o]of Object.entries(e))r!=="children"&&(r==="style"?To.setStyle(t,o):r==="internal_transform"?t.internal_transform=o:r==="internal_static"?t.internal_static=!0:To.setAttribute(t,r,o))},commitTextUpdate:(t,e,r)=>{To.setTextNodeValue(t,r)},removeChild:(t,e)=>{To.removeChildNode(t,e),xEe(e.yogaNode)}})});var FEe=U((MYt,kEe)=>{"use strict";kEe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let o=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(o,r.indent.repeat(e))}});var REe=U(tB=>{"use strict";var Uyt=tB&&tB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tB,"__esModule",{value:!0});var jQ=Uyt(cm());tB.default=t=>t.getComputedWidth()-t.getComputedPadding(jQ.default.EDGE_LEFT)-t.getComputedPadding(jQ.default.EDGE_RIGHT)-t.getComputedBorder(jQ.default.EDGE_LEFT)-t.getComputedBorder(jQ.default.EDGE_RIGHT)});var TEe=U((_Yt,_yt)=>{_yt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var LEe=U((HYt,G6)=>{"use strict";var NEe=TEe();G6.exports=NEe;G6.exports.default=NEe});var MEe=U((qYt,OEe)=>{"use strict";var Hyt=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},qyt=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r 294`)});var mCe=U((MYt,dCe)=>{"use strict";var gCe="[\uD800-\uDBFF][\uDC00-\uDFFF]",Fyt=t=>t&&t.exact?new RegExp(`^${gCe}$`):new RegExp(gCe,"g");dCe.exports=Fyt});var _6=U((UYt,ICe)=>{"use strict";var Ryt=R6(),Tyt=mCe(),yCe=dw(),CCe=["\x1B","\x9B"],jQ=t=>`${CCe[0]}[${t}m`,ECe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=yCe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(jQ(e?u:n))}else if(e){o.push(jQ(0));break}else o.push(jQ(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=jQ(yCe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};ICe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,C]of o.entries()){let w=!1;if(CCe.includes(C)){let v=/\d[^m]*/.exec(t.slice(h,h+18));u=v&&v.length>0?v[0]:void 0,A<r&&(n=!0,u!==void 0&&a.push(u))}else n&&C==="m"&&(n=!1,w=!0);if(!n&&!w&&++A,!Tyt({exact:!0}).test(C)&&Ryt(C.codePointAt())&&++A,A>e&&A<=r)p+=C;else if(A===e&&!n&&u!==void 0)p=ECe(a);else if(A>=r){p+=ECe(a,!0,u);break}}return p}});var BCe=U((_Yt,wCe)=>{"use strict";var mh=_6(),Nyt=qQ();function GQ(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}wCe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=Nyt(t);if(p<=e)return t;if(o==="start"){if(n){let h=GQ(t,p-e+1,!0);return u+mh(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+mh(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let C=GQ(t,h),w=GQ(t,p-(e-h)+1,!0);return mh(t,0,C)+u+mh(t,w,p).trim()}return mh(t,0,h)+u+mh(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=GQ(t,e-1);return mh(t,0,h)+u}return a===!0&&(u=" "+u,A=2),mh(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var q6=U(eB=>{"use strict";var vCe=eB&&eB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(eB,"__esModule",{value:!0});var Lyt=vCe(hCe()),Oyt=vCe(BCe()),H6={};eB.default=(t,e,r)=>{let o=t+String(e)+String(r);if(H6[o])return H6[o];let a=t;if(r==="wrap"&&(a=Lyt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=Oyt.default(t,e,{position:n})}return H6[o]=a,a}});var G6=U(j6=>{"use strict";Object.defineProperty(j6,"__esModule",{value:!0});var DCe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=DCe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};j6.default=DCe});var W6=U(ci=>{"use strict";var tB=ci&&ci.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ci,"__esModule",{value:!0});ci.setTextNodeValue=ci.createTextNode=ci.setStyle=ci.setAttribute=ci.removeChildNode=ci.insertBeforeNode=ci.appendChildNode=ci.createNode=ci.TEXT_NAME=void 0;var Myt=tB(um()),SCe=tB(uCe()),Uyt=tB(ACe()),_yt=tB(q6()),Hyt=tB(G6());ci.TEXT_NAME="#text";ci.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:Myt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(qyt.bind(null,r))),r};ci.appendChildNode=(t,e)=>{var r;e.parentNode&&ci.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&WQ(t)};ci.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&ci.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&WQ(t)};ci.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&WQ(t)};ci.setAttribute=(t,e,r)=>{t.attributes[e]=r};ci.setStyle=(t,e)=>{t.style=e,t.yogaNode&&Uyt.default(t.yogaNode,e)};ci.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return ci.setTextNodeValue(e,t),e};var qyt=function(t,e){var r,o;let a=t.nodeName==="#text"?t.nodeValue:Hyt.default(t),n=SCe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let u=(o=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&o!==void 0?o:"wrap",A=_yt.default(a,e,u);return SCe.default(A)},PCe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:PCe(t.parentNode)},WQ=t=>{let e=PCe(t);e==null||e.markDirty()};ci.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,WQ(t)}});var FCe=U(rB=>{"use strict";var kCe=rB&&rB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(rB,"__esModule",{value:!0});var xCe=P6(),jyt=kCe(zEe()),bCe=kCe(um()),To=W6(),QCe=t=>{t==null||t.unsetMeasureFunc(),t==null||t.freeRecursive()};rB.default=jyt.default({schedulePassiveEffects:xCe.unstable_scheduleCallback,cancelPassiveEffects:xCe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,o=e==="ink-text"||e==="ink-virtual-text";return r===o?t:{isInsideText:o}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,o)=>{if(o.isInsideText&&t==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let a=t==="ink-text"&&o.isInsideText?"ink-virtual-text":t,n=To.createNode(a);for(let[u,A]of Object.entries(e))u!=="children"&&(u==="style"?To.setStyle(n,A):u==="internal_transform"?n.internal_transform=A:u==="internal_static"?n.internal_static=!0:To.setAttribute(n,u,A));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside <Text> component`);return To.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{To.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{To.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(bCe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(bCe.default.DISPLAY_FLEX)},appendInitialChild:To.appendChildNode,appendChild:To.appendChildNode,insertBefore:To.insertBeforeNode,finalizeInitialChildren:(t,e,r,o)=>(t.internal_static&&(o.isStaticDirty=!0,o.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:To.appendChildNode,insertInContainerBefore:To.insertBeforeNode,removeChildFromContainer:(t,e)=>{To.removeChildNode(t,e),QCe(e.yogaNode)},prepareUpdate:(t,e,r,o,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},u=Object.keys(o);for(let A of u)if(o[A]!==r[A]){if(A==="style"&&typeof o.style=="object"&&typeof r.style=="object"){let h=o.style,C=r.style,w=Object.keys(h);for(let v of w){if(v==="borderStyle"||v==="borderColor"){if(typeof n.style!="object"){let b={};n.style=b}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[v]!==C[v]){if(typeof n.style!="object"){let b={};n.style=b}n.style[v]=h[v]}}continue}n[A]=o[A]}return n},commitUpdate:(t,e)=>{for(let[r,o]of Object.entries(e))r!=="children"&&(r==="style"?To.setStyle(t,o):r==="internal_transform"?t.internal_transform=o:r==="internal_static"?t.internal_static=!0:To.setAttribute(t,r,o))},commitTextUpdate:(t,e,r)=>{To.setTextNodeValue(t,r)},removeChild:(t,e)=>{To.removeChildNode(t,e),QCe(e.yogaNode)}})});var TCe=U((WYt,RCe)=>{"use strict";RCe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let o=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(o,r.indent.repeat(e))}});var NCe=U(nB=>{"use strict";var Gyt=nB&&nB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nB,"__esModule",{value:!0});var YQ=Gyt(um());nB.default=t=>t.getComputedWidth()-t.getComputedPadding(YQ.default.EDGE_LEFT)-t.getComputedPadding(YQ.default.EDGE_RIGHT)-t.getComputedBorder(YQ.default.EDGE_LEFT)-t.getComputedBorder(YQ.default.EDGE_RIGHT)});var LCe=U((KYt,Wyt)=>{Wyt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var MCe=U((VYt,Y6)=>{"use strict";var OCe=LCe();Y6.exports=OCe;Y6.exports.default=OCe});var _Ce=U((JYt,UCe)=>{"use strict";var Yyt=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},Kyt=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r
295`:` 295`:`
296`)+r,a=o+1,o=t.indexOf(` 296`)+r,a=o+1,o=t.indexOf(`
297`,a)}while(o!==-1);return n+=t.substr(a),n};OEe.exports={stringReplaceAll:Hyt,stringEncaseCRLFWithFirstIndex:qyt}});var jEe=U((jYt,qEe)=>{"use strict";var jyt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,UEe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Gyt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Wyt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,Yyt=new Map([["n",` 297`,a)}while(o!==-1);return n+=t.substr(a),n};UCe.exports={stringReplaceAll:Yyt,stringEncaseCRLFWithFirstIndex:Kyt}});var WCe=U((zYt,GCe)=>{"use strict";var Vyt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,HCe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Jyt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,zyt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,Xyt=new Map([["n",`
298`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function HEe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):Yyt.get(t)||t}function Kyt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(Gyt))r.push(a[2].replace(Wyt,(A,p,h)=>p?HEe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function Vyt(t){UEe.lastIndex=0;let e=[],r;for(;(r=UEe.exec(t))!==null;){let o=r[1];if(r[2]){let a=Kyt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function _Ee(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(!!Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}qEe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(jyt,(n,u,A,p,h,E)=>{if(u)a.push(HEe(u));else if(p){let w=a.join("");a=[],o.push(r.length===0?w:_Ee(t,r)(w)),r.push({inverse:A,styles:Vyt(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(_Ee(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var VQ=U((GYt,JEe)=>{"use strict";var rB=gw(),{stdout:Y6,stderr:K6}=uN(),{stringReplaceAll:Jyt,stringEncaseCRLFWithFirstIndex:zyt}=MEe(),{isArray:GQ}=Array,WEe=["ansi","ansi","ansi256","ansi16m"],NE=Object.create(null),Xyt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=Y6?Y6.level:0;t.level=e.level===void 0?r:e.level},V6=class{constructor(e){return YEe(e)}},YEe=t=>{let e={};return Xyt(e,t),e.template=(...r)=>VEe(e.template,...r),Object.setPrototypeOf(e,WQ.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=V6,e.template};function WQ(t){return YEe(t)}for(let[t,e]of Object.entries(rB))NE[t]={get(){let r=YQ(this,J6(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};NE.visible={get(){let t=YQ(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var KEe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of KEe)NE[t]={get(){let{level:e}=this;return function(...r){let o=J6(rB.color[WEe[e]][t](...r),rB.color.close,this._styler);return YQ(this,o,this._isEmpty)}}};for(let t of KEe){let e="bg"+t[0].toUpperCase()+t.slice(1);NE[e]={get(){let{level:r}=this;return function(...o){let a=J6(rB.bgColor[WEe[r]][t](...o),rB.bgColor.close,this._styler);return YQ(this,a,this._isEmpty)}}}}var Zyt=Object.defineProperties(()=>{},{...NE,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),J6=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},YQ=(t,e,r)=>{let o=(...a)=>GQ(a[0])&&GQ(a[0].raw)?GEe(o,VEe(o,...a)):GEe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,Zyt),o._generator=t,o._styler=e,o._isEmpty=r,o},GEe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=Jyt(e,r.close,r.open),r=r.parent;let n=e.indexOf(` 298`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function jCe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):Xyt.get(t)||t}function Zyt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(Jyt))r.push(a[2].replace(zyt,(A,p,h)=>p?jCe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function $yt(t){HCe.lastIndex=0;let e=[],r;for(;(r=HCe.exec(t))!==null;){let o=r[1];if(r[2]){let a=Zyt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function qCe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(!!Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}GCe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(Vyt,(n,u,A,p,h,C)=>{if(u)a.push(jCe(u));else if(p){let w=a.join("");a=[],o.push(r.length===0?w:qCe(t,r)(w)),r.push({inverse:A,styles:$yt(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(qCe(t,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var XQ=U((XYt,XCe)=>{"use strict";var iB=dw(),{stdout:V6,stderr:J6}=fN(),{stringReplaceAll:eEt,stringEncaseCRLFWithFirstIndex:tEt}=_Ce(),{isArray:KQ}=Array,KCe=["ansi","ansi","ansi256","ansi16m"],NC=Object.create(null),rEt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=V6?V6.level:0;t.level=e.level===void 0?r:e.level},z6=class{constructor(e){return VCe(e)}},VCe=t=>{let e={};return rEt(e,t),e.template=(...r)=>zCe(e.template,...r),Object.setPrototypeOf(e,VQ.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=z6,e.template};function VQ(t){return VCe(t)}for(let[t,e]of Object.entries(iB))NC[t]={get(){let r=JQ(this,X6(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};NC.visible={get(){let t=JQ(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var JCe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of JCe)NC[t]={get(){let{level:e}=this;return function(...r){let o=X6(iB.color[KCe[e]][t](...r),iB.color.close,this._styler);return JQ(this,o,this._isEmpty)}}};for(let t of JCe){let e="bg"+t[0].toUpperCase()+t.slice(1);NC[e]={get(){let{level:r}=this;return function(...o){let a=X6(iB.bgColor[KCe[r]][t](...o),iB.bgColor.close,this._styler);return JQ(this,a,this._isEmpty)}}}}var nEt=Object.defineProperties(()=>{},{...NC,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),X6=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},JQ=(t,e,r)=>{let o=(...a)=>KQ(a[0])&&KQ(a[0].raw)?YCe(o,zCe(o,...a)):YCe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,nEt),o._generator=t,o._styler=e,o._isEmpty=r,o},YCe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=eEt(e,r.close,r.open),r=r.parent;let n=e.indexOf(`
299`);return n!==-1&&(e=zyt(e,a,o,n)),o+e+a},W6,VEe=(t,...e)=>{let[r]=e;if(!GQ(r)||!GQ(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(o[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return W6===void 0&&(W6=jEe()),W6(t,a.join(""))};Object.defineProperties(WQ.prototype,NE);var KQ=WQ();KQ.supportsColor=Y6;KQ.stderr=WQ({level:K6?K6.level:0});KQ.stderr.supportsColor=K6;JEe.exports=KQ});var z6=U(iB=>{"use strict";var $yt=iB&&iB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(iB,"__esModule",{value:!0});var nB=$yt(VQ()),eCt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,tCt=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,JQ=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);iB.default=(t,e,r)=>{if(!e)return t;if(e in nB.default){let a=JQ(e,r);return nB.default[a](t)}if(e.startsWith("#")){let a=JQ("hex",r);return nB.default[a](e)(t)}if(e.startsWith("ansi")){let a=tCt.exec(e);if(!a)return t;let n=JQ(a[1],r),u=Number(a[2]);return nB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=eCt.exec(e);if(!a)return t;let n=JQ(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return nB.default[n](u,A,p)(t)}return t}});var XEe=U(sB=>{"use strict";var zEe=sB&&sB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sB,"__esModule",{value:!0});var rCt=zEe(LEe()),X6=zEe(z6());sB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=rCt.default[r.style.borderStyle],p=X6.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=(X6.default(A.vertical,u,"foreground")+` 299`);return n!==-1&&(e=tEt(e,a,o,n)),o+e+a},K6,zCe=(t,...e)=>{let[r]=e;if(!KQ(r)||!KQ(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(o[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return K6===void 0&&(K6=WCe()),K6(t,a.join(""))};Object.defineProperties(VQ.prototype,NC);var zQ=VQ();zQ.supportsColor=V6;zQ.stderr=VQ({level:J6?J6.level:0});zQ.stderr.supportsColor=J6;XCe.exports=zQ});var Z6=U(oB=>{"use strict";var iEt=oB&&oB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oB,"__esModule",{value:!0});var sB=iEt(XQ()),sEt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,oEt=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,ZQ=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);oB.default=(t,e,r)=>{if(!e)return t;if(e in sB.default){let a=ZQ(e,r);return sB.default[a](t)}if(e.startsWith("#")){let a=ZQ("hex",r);return sB.default[a](e)(t)}if(e.startsWith("ansi")){let a=oEt.exec(e);if(!a)return t;let n=ZQ(a[1],r),u=Number(a[2]);return sB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=sEt.exec(e);if(!a)return t;let n=ZQ(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return sB.default[n](u,A,p)(t)}return t}});var $Ce=U(aB=>{"use strict";var ZCe=aB&&aB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(aB,"__esModule",{value:!0});var aEt=ZCe(MCe()),$6=ZCe(Z6());aB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=aEt.default[r.style.borderStyle],p=$6.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=($6.default(A.vertical,u,"foreground")+`
300`).repeat(n-2),E=X6.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,E,{transformers:[]})}}});var $Ee=U(oB=>{"use strict";var um=oB&&oB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oB,"__esModule",{value:!0});var nCt=um(cm()),iCt=um(T6()),sCt=um(FEe()),oCt=um(_6()),aCt=um(REe()),lCt=um(q6()),cCt=um(XEe()),uCt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=` 300`).repeat(n-2),C=$6.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,C,{transformers:[]})}}});var tIe=U(lB=>{"use strict";var Am=lB&&lB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lB,"__esModule",{value:!0});var lEt=Am(um()),cEt=Am(L6()),uEt=Am(TCe()),AEt=Am(q6()),fEt=Am(NCe()),pEt=Am(G6()),hEt=Am($Ce()),gEt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=`
301`.repeat(n)+sCt.default(e,a)}return e},ZEe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===nCt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),w=u;if(typeof t.internal_transform=="function"&&(w=[t.internal_transform,...u]),t.nodeName==="ink-text"){let v=lCt.default(t);if(v.length>0){let b=iCt.default(v),C=aCt.default(p);if(b>C){let R=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";v=oCt.default(v,C,R)}v=uCt(t,v),e.write(h,E,v,{transformers:w})}return}if(t.nodeName==="ink-box"&&cCt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let v of t.childNodes)ZEe(v,e,{offsetX:h,offsetY:E,transformers:w,skipStaticElements:A})}};oB.default=ZEe});var tIe=U((VYt,eIe)=>{"use strict";eIe.exports=t=>{t=Object.assign({onlyFirst:!1},t);let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t.onlyFirst?void 0:"g")}});var nIe=U((JYt,Z6)=>{"use strict";var ACt=tIe(),rIe=t=>typeof t=="string"?t.replace(ACt(),""):t;Z6.exports=rIe;Z6.exports.default=rIe});var oIe=U((zYt,sIe)=>{"use strict";var iIe="[\uD800-\uDBFF][\uDC00-\uDFFF]";sIe.exports=t=>t&&t.exact?new RegExp(`^${iIe}$`):new RegExp(iIe,"g")});var lIe=U((XYt,$6)=>{"use strict";var fCt=nIe(),pCt=oIe(),aIe=t=>fCt(t).replace(pCt()," ").length;$6.exports=aIe;$6.exports.default=aIe});var AIe=U(aB=>{"use strict";var uIe=aB&&aB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(aB,"__esModule",{value:!0});var cIe=uIe(M6()),hCt=uIe(lIe()),eq=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;!o||this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;o<this.height;o++)e.push(" ".repeat(this.width));for(let o of this.writes){let{x:a,y:n,text:u,transformers:A}=o,p=u.split(` 301`.repeat(n)+uEt.default(e,a)}return e},eIe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===lEt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),C=n+p.getComputedTop(),w=u;if(typeof t.internal_transform=="function"&&(w=[t.internal_transform,...u]),t.nodeName==="ink-text"){let v=pEt.default(t);if(v.length>0){let b=cEt.default(v),E=fEt.default(p);if(b>E){let R=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";v=AEt.default(v,E,R)}v=gEt(t,v),e.write(h,C,v,{transformers:w})}return}if(t.nodeName==="ink-box"&&hEt.default(h,C,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let v of t.childNodes)eIe(v,e,{offsetX:h,offsetY:C,transformers:w,skipStaticElements:A})}};lB.default=eIe});var nIe=U((tKt,rIe)=>{"use strict";rIe.exports=t=>{t=Object.assign({onlyFirst:!1},t);let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t.onlyFirst?void 0:"g")}});var sIe=U((rKt,eq)=>{"use strict";var dEt=nIe(),iIe=t=>typeof t=="string"?t.replace(dEt(),""):t;eq.exports=iIe;eq.exports.default=iIe});var lIe=U((nKt,aIe)=>{"use strict";var oIe="[\uD800-\uDBFF][\uDC00-\uDFFF]";aIe.exports=t=>t&&t.exact?new RegExp(`^${oIe}$`):new RegExp(oIe,"g")});var uIe=U((iKt,tq)=>{"use strict";var mEt=sIe(),yEt=lIe(),cIe=t=>mEt(t).replace(yEt()," ").length;tq.exports=cIe;tq.exports.default=cIe});var pIe=U(cB=>{"use strict";var fIe=cB&&cB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cB,"__esModule",{value:!0});var AIe=fIe(_6()),EEt=fIe(uIe()),rq=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;!o||this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;o<this.height;o++)e.push(" ".repeat(this.width));for(let o of this.writes){let{x:a,y:n,text:u,transformers:A}=o,p=u.split(`
302`),h=0;for(let E of p){let w=e[n+h];if(!w)continue;let v=hCt.default(E);for(let b of A)E=b(E);e[n+h]=cIe.default(w,0,a)+E+cIe.default(w,a+v),h++}}return{output:e.map(o=>o.trimRight()).join(` 302`),h=0;for(let C of p){let w=e[n+h];if(!w)continue;let v=EEt.default(C);for(let b of A)C=b(C);e[n+h]=AIe.default(w,0,a)+C+AIe.default(w,a+v),h++}}return{output:e.map(o=>o.trimRight()).join(`
303`),height:e.length}}};aB.default=eq});var hIe=U(lB=>{"use strict";var tq=lB&&lB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lB,"__esModule",{value:!0});var gCt=tq(cm()),fIe=tq($Ee()),pIe=tq(AIe());lB.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,gCt.default.DIRECTION_LTR);let o=new pIe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});fIe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new pIe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),fIe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output} 303`),height:e.length}}};cB.default=rq});var dIe=U(uB=>{"use strict";var nq=uB&&uB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uB,"__esModule",{value:!0});var CEt=nq(um()),hIe=nq(tIe()),gIe=nq(pIe());uB.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,CEt.default.DIRECTION_LTR);let o=new gIe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});hIe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new gIe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),hIe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output}
304`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var yIe=U((eKt,mIe)=>{"use strict";var gIe=Ie("stream"),dIe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],rq={},dCt=t=>{let e=new gIe.PassThrough,r=new gIe.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of dIe)rq[a]=console[a],console[a]=o[a];return()=>{for(let a of dIe)console[a]=rq[a];rq={}}};mIe.exports=dCt});var iq=U(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.default=new WeakMap});var oq=U(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});var mCt=en(),CIe=mCt.createContext({exit:()=>{}});CIe.displayName="InternalAppContext";sq.default=CIe});var lq=U(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});var yCt=en(),EIe=yCt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});EIe.displayName="InternalStdinContext";aq.default=EIe});var uq=U(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});var CCt=en(),IIe=CCt.createContext({stdout:void 0,write:()=>{}});IIe.displayName="InternalStdoutContext";cq.default=IIe});var fq=U(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});var ECt=en(),wIe=ECt.createContext({stderr:void 0,write:()=>{}});wIe.displayName="InternalStderrContext";Aq.default=wIe});var zQ=U(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});var ICt=en(),BIe=ICt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});BIe.displayName="InternalFocusContext";pq.default=BIe});var DIe=U((aKt,vIe)=>{"use strict";var wCt=/[|\\{}()[\]^$+*?.-]/g;vIe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(wCt,"\\$&")}});var bIe=U((lKt,xIe)=>{"use strict";var BCt=DIe(),vCt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",PIe=[].concat(Ie("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));PIe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var cB=class{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=cB.nodeInternals()),"cwd"in e||(e.cwd=vCt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,DCt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...PIe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` 304`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var CIe=U((aKt,EIe)=>{"use strict";var mIe=Ie("stream"),yIe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],iq={},IEt=t=>{let e=new mIe.PassThrough,r=new mIe.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of yIe)iq[a]=console[a],console[a]=o[a];return()=>{for(let a of yIe)console[a]=iq[a];iq={}}};EIe.exports=IEt});var oq=U(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.default=new WeakMap});var lq=U(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});var wEt=en(),IIe=wEt.createContext({exit:()=>{}});IIe.displayName="InternalAppContext";aq.default=IIe});var uq=U(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});var BEt=en(),wIe=BEt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});wIe.displayName="InternalStdinContext";cq.default=wIe});var fq=U(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});var vEt=en(),BIe=vEt.createContext({stdout:void 0,write:()=>{}});BIe.displayName="InternalStdoutContext";Aq.default=BIe});var hq=U(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});var DEt=en(),vIe=DEt.createContext({stderr:void 0,write:()=>{}});vIe.displayName="InternalStderrContext";pq.default=vIe});var $Q=U(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});var SEt=en(),DIe=SEt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});DIe.displayName="InternalFocusContext";gq.default=DIe});var PIe=U((hKt,SIe)=>{"use strict";var PEt=/[|\\{}()[\]^$+*?.-]/g;SIe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(PEt,"\\$&")}});var kIe=U((gKt,QIe)=>{"use strict";var xEt=PIe(),bEt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",bIe=[].concat(Ie("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));bIe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var AB=class{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=AB.nodeInternals()),"cwd"in e||(e.cwd=bEt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,QEt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...bIe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(`
305`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u} 305`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u}
306`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};SIe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(SCt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],w=r[9],v=r[10]==="native",b=r[11]===")",C,R={};if(E&&(R.line=Number(E)),w&&(R.column=Number(w)),b&&h){let L=0;for(let _=h.length-1;_>0;_--)if(h.charAt(_)===")")L++;else if(h.charAt(_)==="("&&h.charAt(_-1)===" "&&(L--,L===-1&&h.charAt(_-1)===" ")){let V=h.slice(0,_-1);h=h.slice(_+1),a+=` (${V}`;break}}if(a){let L=a.match(PCt);L&&(a=L[1],C=L[2])}return SIe(R,h,this._cwd),o&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=A,R.evalColumn=p,R.evalFile=u&&u.replace(/\\/g,"/")),v&&(R.native=!0),a&&(R.function=a),C&&a!==C&&(R.method=C),R}};function SIe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function DCt(t){if(t.length===0)return[];let e=t.map(r=>BCt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var SCt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),PCt=/^(.*?) \[as (.*?)\]$/;xIe.exports=cB});var kIe=U((cKt,QIe)=>{"use strict";QIe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var RIe=U((uKt,FIe)=>{"use strict";var xCt=kIe(),bCt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};FIe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=xCt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},bCt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var XQ=U(ou=>{"use strict";var QCt=ou&&ou.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),kCt=ou&&ou.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),FCt=ou&&ou.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&QCt(e,t,r);return kCt(e,t),e},RCt=ou&&ou.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a<o.length;a++)e.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(t,o[a])&&(r[o[a]]=t[o[a]]);return r};Object.defineProperty(ou,"__esModule",{value:!0});var TIe=FCt(en()),hq=TIe.forwardRef((t,e)=>{var{children:r}=t,o=RCt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return TIe.default.createElement("ink-box",{ref:e,style:a},r)});hq.displayName="Box";hq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};ou.default=hq});var mq=U(uB=>{"use strict";var gq=uB&&uB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uB,"__esModule",{value:!0});var TCt=gq(en()),LE=gq(VQ()),NIe=gq(z6()),dq=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let E=w=>(r&&(w=LE.default.dim(w)),t&&(w=NIe.default(w,t,"foreground")),e&&(w=NIe.default(w,e,"background")),o&&(w=LE.default.bold(w)),a&&(w=LE.default.italic(w)),n&&(w=LE.default.underline(w)),u&&(w=LE.default.strikethrough(w)),A&&(w=LE.default.inverse(w)),w);return TCt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};dq.displayName="Text";dq.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};uB.default=dq});var UIe=U(au=>{"use strict";var NCt=au&&au.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),LCt=au&&au.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),OCt=au&&au.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&NCt(e,t,r);return LCt(e,t),e},AB=au&&au.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(au,"__esModule",{value:!0});var LIe=OCt(Ie("fs")),hs=AB(en()),OIe=AB(bIe()),MCt=AB(RIe()),Xf=AB(XQ()),dA=AB(mq()),MIe=new OIe.default({cwd:process.cwd(),internals:OIe.default.nodeInternals()}),UCt=({error:t})=>{let e=t.stack?t.stack.split(` 306`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};xIe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(kEt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],C=r[8],w=r[9],v=r[10]==="native",b=r[11]===")",E,R={};if(C&&(R.line=Number(C)),w&&(R.column=Number(w)),b&&h){let L=0;for(let _=h.length-1;_>0;_--)if(h.charAt(_)===")")L++;else if(h.charAt(_)==="("&&h.charAt(_-1)===" "&&(L--,L===-1&&h.charAt(_-1)===" ")){let V=h.slice(0,_-1);h=h.slice(_+1),a+=` (${V}`;break}}if(a){let L=a.match(FEt);L&&(a=L[1],E=L[2])}return xIe(R,h,this._cwd),o&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=A,R.evalColumn=p,R.evalFile=u&&u.replace(/\\/g,"/")),v&&(R.native=!0),a&&(R.function=a),E&&a!==E&&(R.method=E),R}};function xIe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function QEt(t){if(t.length===0)return[];let e=t.map(r=>xEt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var kEt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),FEt=/^(.*?) \[as (.*?)\]$/;QIe.exports=AB});var RIe=U((dKt,FIe)=>{"use strict";FIe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var NIe=U((mKt,TIe)=>{"use strict";var REt=RIe(),TEt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};TIe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=REt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},TEt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var ek=U(au=>{"use strict";var NEt=au&&au.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),LEt=au&&au.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),OEt=au&&au.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&NEt(e,t,r);return LEt(e,t),e},MEt=au&&au.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a<o.length;a++)e.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(t,o[a])&&(r[o[a]]=t[o[a]]);return r};Object.defineProperty(au,"__esModule",{value:!0});var LIe=OEt(en()),dq=LIe.forwardRef((t,e)=>{var{children:r}=t,o=MEt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return LIe.default.createElement("ink-box",{ref:e,style:a},r)});dq.displayName="Box";dq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};au.default=dq});var Eq=U(fB=>{"use strict";var mq=fB&&fB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fB,"__esModule",{value:!0});var UEt=mq(en()),LC=mq(XQ()),OIe=mq(Z6()),yq=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let C=w=>(r&&(w=LC.default.dim(w)),t&&(w=OIe.default(w,t,"foreground")),e&&(w=OIe.default(w,e,"background")),o&&(w=LC.default.bold(w)),a&&(w=LC.default.italic(w)),n&&(w=LC.default.underline(w)),u&&(w=LC.default.strikethrough(w)),A&&(w=LC.default.inverse(w)),w);return UEt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:C},h)};yq.displayName="Text";yq.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};fB.default=yq});var HIe=U(lu=>{"use strict";var _Et=lu&&lu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),HEt=lu&&lu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),qEt=lu&&lu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&_Et(e,t,r);return HEt(e,t),e},pB=lu&&lu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lu,"__esModule",{value:!0});var MIe=qEt(Ie("fs")),hs=pB(en()),UIe=pB(kIe()),jEt=pB(NIe()),$f=pB(ek()),dA=pB(Eq()),_Ie=new UIe.default({cwd:process.cwd(),internals:UIe.default.nodeInternals()}),GEt=({error:t})=>{let e=t.stack?t.stack.split(`
307`).slice(1):void 0,r=e?MIe.parseLine(e[0]):void 0,o,a=0;if((r==null?void 0:r.file)&&(r==null?void 0:r.line)&&LIe.existsSync(r.file)){let n=LIe.readFileSync(r.file,"utf8");if(o=MCt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return hs.default.createElement(Xf.default,{flexDirection:"column",padding:1},hs.default.createElement(Xf.default,null,hs.default.createElement(dA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),hs.default.createElement(dA.default,null," ",t.message)),r&&hs.default.createElement(Xf.default,{marginTop:1},hs.default.createElement(dA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&hs.default.createElement(Xf.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>hs.default.createElement(Xf.default,{key:n},hs.default.createElement(Xf.default,{width:a+1},hs.default.createElement(dA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),hs.default.createElement(dA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&hs.default.createElement(Xf.default,{marginTop:1,flexDirection:"column"},t.stack.split(` 307`).slice(1):void 0,r=e?_Ie.parseLine(e[0]):void 0,o,a=0;if((r==null?void 0:r.file)&&(r==null?void 0:r.line)&&MIe.existsSync(r.file)){let n=MIe.readFileSync(r.file,"utf8");if(o=jEt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return hs.default.createElement($f.default,{flexDirection:"column",padding:1},hs.default.createElement($f.default,null,hs.default.createElement(dA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),hs.default.createElement(dA.default,null," ",t.message)),r&&hs.default.createElement($f.default,{marginTop:1},hs.default.createElement(dA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&hs.default.createElement($f.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>hs.default.createElement($f.default,{key:n},hs.default.createElement($f.default,{width:a+1},hs.default.createElement(dA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),hs.default.createElement(dA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&hs.default.createElement($f.default,{marginTop:1,flexDirection:"column"},t.stack.split(`
308`).slice(1).map(n=>{let u=MIe.parseLine(n);return u?hs.default.createElement(Xf.default,{key:n},hs.default.createElement(dA.default,{dimColor:!0},"- "),hs.default.createElement(dA.default,{dimColor:!0,bold:!0},u.function),hs.default.createElement(dA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):hs.default.createElement(Xf.default,{key:n},hs.default.createElement(dA.default,{dimColor:!0},"- "),hs.default.createElement(dA.default,{dimColor:!0,bold:!0},n))})))};au.default=UCt});var HIe=U(lu=>{"use strict";var _Ct=lu&&lu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),HCt=lu&&lu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),qCt=lu&&lu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&_Ct(e,t,r);return HCt(e,t),e},fm=lu&&lu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lu,"__esModule",{value:!0});var Am=qCt(en()),_Ie=fm(h6()),jCt=fm(oq()),GCt=fm(lq()),WCt=fm(uq()),YCt=fm(fq()),KCt=fm(zQ()),VCt=fm(UIe()),JCt=" ",zCt="\x1B[Z",XCt="\x1B",ZQ=class extends Am.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. 308`).slice(1).map(n=>{let u=_Ie.parseLine(n);return u?hs.default.createElement($f.default,{key:n},hs.default.createElement(dA.default,{dimColor:!0},"- "),hs.default.createElement(dA.default,{dimColor:!0,bold:!0},u.function),hs.default.createElement(dA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):hs.default.createElement($f.default,{key:n},hs.default.createElement(dA.default,{dimColor:!0},"- "),hs.default.createElement(dA.default,{dimColor:!0,bold:!0},n))})))};lu.default=GEt});var jIe=U(cu=>{"use strict";var WEt=cu&&cu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),YEt=cu&&cu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),KEt=cu&&cu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&WEt(e,t,r);return YEt(e,t),e},pm=cu&&cu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cu,"__esModule",{value:!0});var fm=KEt(en()),qIe=pm(d6()),VEt=pm(lq()),JEt=pm(uq()),zEt=pm(fq()),XEt=pm(hq()),ZEt=pm($Q()),$Et=pm(HIe()),eCt=" ",tCt="\x1B[Z",rCt="\x1B",tk=class extends fm.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
309Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. 309Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
310Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===XCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===JCt&&this.focusNext(),e===zCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(e=>{let r=e.focusables[0].id;return{activeFocusId:this.findNextFocusable(e)||r}})},this.focusPrevious=()=>{this.setState(e=>{let r=e.focusables[e.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(e)||r}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r+1;o<e.focusables.length;o++)if(e.focusables[o].isActive)return e.focusables[o].id},this.findPreviousFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r-1;o>=0;o--)if(e.focusables[o].isActive)return e.focusables[o].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return Am.default.createElement(jCt.default.Provider,{value:{exit:this.handleExit}},Am.default.createElement(GCt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},Am.default.createElement(WCt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},Am.default.createElement(YCt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},Am.default.createElement(KCt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?Am.default.createElement(VCt.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){_Ie.default.hide(this.props.stdout)}componentWillUnmount(){_Ie.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};lu.default=ZQ;ZQ.displayName="InternalApp"});var GIe=U(cu=>{"use strict";var ZCt=cu&&cu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),$Ct=cu&&cu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),eEt=cu&&cu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ZCt(e,t,r);return $Ct(e,t),e},uu=cu&&cu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cu,"__esModule",{value:!0});var tEt=uu(en()),qIe=mM(),rEt=uu(bCe()),nEt=uu(c6()),iEt=uu(NCe()),sEt=uu(OCe()),yq=uu(QEe()),oEt=uu(hIe()),aEt=uu(p6()),lEt=uu(yIe()),cEt=eEt(j6()),uEt=uu(iq()),AEt=uu(HIe()),OE=process.env.CI==="false"?!1:iEt.default,jIe=()=>{},Cq=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=oEt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` 310Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===rCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===eCt&&this.focusNext(),e===tCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(e=>{let r=e.focusables[0].id;return{activeFocusId:this.findNextFocusable(e)||r}})},this.focusPrevious=()=>{this.setState(e=>{let r=e.focusables[e.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(e)||r}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r+1;o<e.focusables.length;o++)if(e.focusables[o].isActive)return e.focusables[o].id},this.findPreviousFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r-1;o>=0;o--)if(e.focusables[o].isActive)return e.focusables[o].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return fm.default.createElement(VEt.default.Provider,{value:{exit:this.handleExit}},fm.default.createElement(JEt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},fm.default.createElement(zEt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},fm.default.createElement(XEt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},fm.default.createElement(ZEt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?fm.default.createElement($Et.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){qIe.default.hide(this.props.stdout)}componentWillUnmount(){qIe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};cu.default=tk;tk.displayName="InternalApp"});var YIe=U(uu=>{"use strict";var nCt=uu&&uu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),iCt=uu&&uu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),sCt=uu&&uu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&nCt(e,t,r);return iCt(e,t),e},Au=uu&&uu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uu,"__esModule",{value:!0});var oCt=Au(en()),GIe=EM(),aCt=Au(kEe()),lCt=Au(A6()),cCt=Au(OEe()),uCt=Au(UEe()),Cq=Au(FCe()),ACt=Au(dIe()),fCt=Au(g6()),pCt=Au(CIe()),hCt=sCt(W6()),gCt=Au(oq()),dCt=Au(jIe()),OC=process.env.CI==="false"?!1:cCt.default,WIe=()=>{},Iq=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=ACt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==`
311`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(OE){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(nEt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},sEt.default(this),this.options=e,this.rootNode=cEt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:qIe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=rEt.default.create(e.stdout),this.throttledLog=e.debug?this.log:qIe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=yq.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=aEt.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),OE||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=tEt.default.createElement(AEt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);yq.default.updateContainer(r,this.container,null,jIe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(OE){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(OE){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),OE?this.options.stdout.write(this.lastOutput+` 311`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(OC){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(lCt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},uCt.default(this),this.options=e,this.rootNode=hCt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:GIe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=aCt.default.create(e.stdout),this.throttledLog=e.debug?this.log:GIe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=Cq.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=fCt.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),OC||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=oCt.default.createElement(dCt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);Cq.default.updateContainer(r,this.container,null,WIe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(OC){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(OC){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),OC?this.options.stdout.write(this.lastOutput+`
312`):this.options.debug||this.log.done(),this.isUnmounted=!0,yq.default.updateContainer(null,this.container,null,jIe),uEt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!OE&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=lEt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};cu.default=Cq});var YIe=U(fB=>{"use strict";var WIe=fB&&fB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fB,"__esModule",{value:!0});var fEt=WIe(GIe()),$Q=WIe(iq()),pEt=Ie("stream"),hEt=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},gEt(e)),o=dEt(r.stdout,()=>new fEt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>$Q.default.delete(r.stdout),clear:o.clear}};fB.default=hEt;var gEt=(t={})=>t instanceof pEt.Stream?{stdout:t,stdin:process.stdin}:t,dEt=(t,e)=>{let r;return $Q.default.has(t)?r=$Q.default.get(t):(r=e(),$Q.default.set(t,r)),r}});var VIe=U(Zf=>{"use strict";var mEt=Zf&&Zf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),yEt=Zf&&Zf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),CEt=Zf&&Zf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&mEt(e,t,r);return yEt(e,t),e};Object.defineProperty(Zf,"__esModule",{value:!0});var pB=CEt(en()),KIe=t=>{let{items:e,children:r,style:o}=t,[a,n]=pB.useState(0),u=pB.useMemo(()=>e.slice(a),[e,a]);pB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,E)=>r(h,a+E)),p=pB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return pB.default.createElement("ink-box",{internal_static:!0,style:p},A)};KIe.displayName="Static";Zf.default=KIe});var zIe=U(hB=>{"use strict";var EEt=hB&&hB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hB,"__esModule",{value:!0});var IEt=EEt(en()),JIe=({children:t,transform:e})=>t==null?null:IEt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);JIe.displayName="Transform";hB.default=JIe});var ZIe=U(gB=>{"use strict";var wEt=gB&&gB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gB,"__esModule",{value:!0});var BEt=wEt(en()),XIe=({count:t=1})=>BEt.default.createElement("ink-text",null,` 312`):this.options.debug||this.log.done(),this.isUnmounted=!0,Cq.default.updateContainer(null,this.container,null,WIe),gCt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!OC&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=pCt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};uu.default=Iq});var VIe=U(hB=>{"use strict";var KIe=hB&&hB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hB,"__esModule",{value:!0});var mCt=KIe(YIe()),rk=KIe(oq()),yCt=Ie("stream"),ECt=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},CCt(e)),o=ICt(r.stdout,()=>new mCt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>rk.default.delete(r.stdout),clear:o.clear}};hB.default=ECt;var CCt=(t={})=>t instanceof yCt.Stream?{stdout:t,stdin:process.stdin}:t,ICt=(t,e)=>{let r;return rk.default.has(t)?r=rk.default.get(t):(r=e(),rk.default.set(t,r)),r}});var zIe=U(ep=>{"use strict";var wCt=ep&&ep.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),BCt=ep&&ep.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),vCt=ep&&ep.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&wCt(e,t,r);return BCt(e,t),e};Object.defineProperty(ep,"__esModule",{value:!0});var gB=vCt(en()),JIe=t=>{let{items:e,children:r,style:o}=t,[a,n]=gB.useState(0),u=gB.useMemo(()=>e.slice(a),[e,a]);gB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,C)=>r(h,a+C)),p=gB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return gB.default.createElement("ink-box",{internal_static:!0,style:p},A)};JIe.displayName="Static";ep.default=JIe});var ZIe=U(dB=>{"use strict";var DCt=dB&&dB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dB,"__esModule",{value:!0});var SCt=DCt(en()),XIe=({children:t,transform:e})=>t==null?null:SCt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);XIe.displayName="Transform";dB.default=XIe});var ewe=U(mB=>{"use strict";var PCt=mB&&mB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mB,"__esModule",{value:!0});var xCt=PCt(en()),$Ie=({count:t=1})=>xCt.default.createElement("ink-text",null,`
313`.repeat(t));XIe.displayName="Newline";gB.default=XIe});var twe=U(dB=>{"use strict";var $Ie=dB&&dB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dB,"__esModule",{value:!0});var vEt=$Ie(en()),DEt=$Ie(XQ()),ewe=()=>vEt.default.createElement(DEt.default,{flexGrow:1});ewe.displayName="Spacer";dB.default=ewe});var ek=U(mB=>{"use strict";var SEt=mB&&mB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mB,"__esModule",{value:!0});var PEt=en(),xEt=SEt(lq()),bEt=()=>PEt.useContext(xEt.default);mB.default=bEt});var nwe=U(yB=>{"use strict";var QEt=yB&&yB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(yB,"__esModule",{value:!0});var rwe=en(),kEt=QEt(ek()),FEt=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=kEt.default();rwe.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),rwe.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+"a".charCodeAt(0)-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",E=A>="\u0410"&&A<="\u042F";A.length===1&&(h||E)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r==null||r.on("data",n),()=>{r==null||r.off("data",n)}},[e.isActive,r,a,t])};yB.default=FEt});var iwe=U(CB=>{"use strict";var REt=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var TEt=en(),NEt=REt(oq()),LEt=()=>TEt.useContext(NEt.default);CB.default=LEt});var swe=U(EB=>{"use strict";var OEt=EB&&EB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});var MEt=en(),UEt=OEt(uq()),_Et=()=>MEt.useContext(UEt.default);EB.default=_Et});var owe=U(IB=>{"use strict";var HEt=IB&&IB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(IB,"__esModule",{value:!0});var qEt=en(),jEt=HEt(fq()),GEt=()=>qEt.useContext(jEt.default);IB.default=GEt});var lwe=U(BB=>{"use strict";var awe=BB&&BB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(BB,"__esModule",{value:!0});var wB=en(),WEt=awe(zQ()),YEt=awe(ek()),KEt=({isActive:t=!0,autoFocus:e=!1}={})=>{let{isRawModeSupported:r,setRawMode:o}=YEt.default(),{activeId:a,add:n,remove:u,activate:A,deactivate:p}=wB.useContext(WEt.default),h=wB.useMemo(()=>Math.random().toString().slice(2,7),[]);return wB.useEffect(()=>(n(h,{autoFocus:e}),()=>{u(h)}),[h,e]),wB.useEffect(()=>{t?A(h):p(h)},[t,h]),wB.useEffect(()=>{if(!(!r||!t))return o(!0),()=>{o(!1)}},[t]),{isFocused:Boolean(h)&&a===h}};BB.default=KEt});var cwe=U(vB=>{"use strict";var VEt=vB&&vB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vB,"__esModule",{value:!0});var JEt=en(),zEt=VEt(zQ()),XEt=()=>{let t=JEt.useContext(zEt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious}};vB.default=XEt});var uwe=U(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var cc=U($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});var ZEt=YIe();Object.defineProperty($s,"render",{enumerable:!0,get:function(){return ZEt.default}});var $Et=XQ();Object.defineProperty($s,"Box",{enumerable:!0,get:function(){return $Et.default}});var eIt=mq();Object.defineProperty($s,"Text",{enumerable:!0,get:function(){return eIt.default}});var tIt=VIe();Object.defineProperty($s,"Static",{enumerable:!0,get:function(){return tIt.default}});var rIt=zIe();Object.defineProperty($s,"Transform",{enumerable:!0,get:function(){return rIt.default}});var nIt=ZIe();Object.defineProperty($s,"Newline",{enumerable:!0,get:function(){return nIt.default}});var iIt=twe();Object.defineProperty($s,"Spacer",{enumerable:!0,get:function(){return iIt.default}});var sIt=nwe();Object.defineProperty($s,"useInput",{enumerable:!0,get:function(){return sIt.default}});var oIt=iwe();Object.defineProperty($s,"useApp",{enumerable:!0,get:function(){return oIt.default}});var aIt=ek();Object.defineProperty($s,"useStdin",{enumerable:!0,get:function(){return aIt.default}});var lIt=swe();Object.defineProperty($s,"useStdout",{enumerable:!0,get:function(){return lIt.default}});var cIt=owe();Object.defineProperty($s,"useStderr",{enumerable:!0,get:function(){return cIt.default}});var uIt=lwe();Object.defineProperty($s,"useFocus",{enumerable:!0,get:function(){return uIt.default}});var AIt=cwe();Object.defineProperty($s,"useFocusManager",{enumerable:!0,get:function(){return AIt.default}});var fIt=uwe();Object.defineProperty($s,"measureElement",{enumerable:!0,get:function(){return fIt.default}})});var wq={};Yt(wq,{Gem:()=>Iq});var Awe,pm,Iq,tk=dt(()=>{Awe=tt(cc()),pm=tt(en()),Iq=(0,pm.memo)(({active:t})=>{let e=(0,pm.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,pm.useMemo)(()=>t?"green":"yellow",[t]);return pm.default.createElement(Awe.Text,{color:r},e)})});var pwe={};Yt(pwe,{useKeypress:()=>hm});function hm({active:t},e,r){let{stdin:o}=(0,fwe.useStdin)(),a=(0,rk.useCallback)((n,u)=>e(n,u),r);(0,rk.useEffect)(()=>{if(!(!t||!o))return o.on("keypress",a),()=>{o.off("keypress",a)}},[t,a,o])}var fwe,rk,DB=dt(()=>{fwe=tt(cc()),rk=tt(en())});var gwe={};Yt(gwe,{FocusRequest:()=>hwe,useFocusRequest:()=>Bq});var hwe,Bq,vq=dt(()=>{DB();hwe=(r=>(r.BEFORE="before",r.AFTER="after",r))(hwe||{}),Bq=function({active:t},e,r){hm({active:t},(o,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var dwe={};Yt(dwe,{useListInput:()=>SB});var SB,nk=dt(()=>{DB();SB=function(t,e,{active:r,minus:o,plus:a,set:n,loop:u=!0}){hm({active:r},(A,p)=>{let h=e.indexOf(t);switch(p.name){case o:{let E=h-1;if(u){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(u){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,u])}});var ik={};Yt(ik,{ScrollableItems:()=>pIt});var mh,La,pIt,sk=dt(()=>{mh=tt(cc()),La=tt(en());vq();nk();pIt=({active:t=!0,children:e=[],radius:r=10,size:o=1,loop:a=!0,onFocusRequest:n,willReachEnd:u})=>{let A=L=>{if(L.key===null)throw new Error("Expected all children to have a key");return L.key},p=La.default.Children.map(e,L=>A(L)),h=p[0],[E,w]=(0,La.useState)(h),v=p.indexOf(E);(0,La.useEffect)(()=>{p.includes(E)||w(h)},[e]),(0,La.useEffect)(()=>{u&&v>=p.length-2&&u()},[v]),Bq({active:t&&!!n},L=>{n==null||n(L)},[n]),SB(E,p,{active:t,minus:"up",plus:"down",set:w,loop:a});let b=v-r,C=v+r;C>p.length&&(b-=C-p.length,C=p.length),b<0&&(C+=-b,b=0),C>=p.length&&(C=p.length-1);let R=[];for(let L=b;L<=C;++L){let _=p[L],V=t&&_===E;R.push(La.default.createElement(mh.Box,{key:_,height:o},La.default.createElement(mh.Box,{marginLeft:1,marginRight:1},La.default.createElement(mh.Text,null,V?La.default.createElement(mh.Text,{color:"cyan",bold:!0},">"):" ")),La.default.createElement(mh.Box,null,La.default.cloneElement(e[L],{active:V}))))}return La.default.createElement(mh.Box,{flexDirection:"column",width:"100%"},R)}});var mwe,$f,ywe,Dq,Cwe,Sq=dt(()=>{mwe=tt(cc()),$f=tt(en()),ywe=Ie("readline"),Dq=$f.default.createContext(null),Cwe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,mwe.useStdin)();(0,$f.useEffect)(()=>{r&&r(!0),e&&(0,ywe.emitKeypressEvents)(e)},[e,r]);let[o,a]=(0,$f.useState)(new Map),n=(0,$f.useMemo)(()=>({getAll:()=>o,get:u=>o.get(u),set:(u,A)=>a(new Map([...o,[u,A]]))}),[o,a]);return $f.default.createElement(Dq.Provider,{value:n,children:t})}});var Pq={};Yt(Pq,{useMinistore:()=>hIt});function hIt(t,e){let r=(0,ok.useContext)(Dq);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let o=(0,ok.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,o]}var ok,xq=dt(()=>{ok=tt(en());Sq()});var lk={};Yt(lk,{renderForm:()=>gIt});async function gIt(t,e,{stdin:r,stdout:o,stderr:a}){let n,u=p=>{let{exit:h}=(0,ak.useApp)();hm({active:!0},(E,w)=>{w.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:A}=(0,ak.render)(bq.default.createElement(Cwe,null,bq.default.createElement(t,{...e,useSubmit:u})),{stdin:r,stdout:o,stderr:a});return await A(),n}var ak,bq,ck=dt(()=>{ak=tt(cc()),bq=tt(en());Sq();DB()});var Bwe=U(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.UncontrolledTextInput=void 0;var Iwe=en(),Qq=en(),Ewe=cc(),gm=VQ(),wwe=({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:a=!1,showCursor:n=!0,onChange:u,onSubmit:A})=>{let[{cursorOffset:p,cursorWidth:h},E]=Qq.useState({cursorOffset:(t||"").length,cursorWidth:0});Qq.useEffect(()=>{E(R=>{if(!r||!n)return R;let L=t||"";return R.cursorOffset>L.length-1?{cursorOffset:L.length,cursorWidth:0}:R})},[t,r,n]);let w=a?h:0,v=o?o.repeat(t.length):t,b=v,C=e?gm.grey(e):void 0;if(n&&r){C=e.length>0?gm.inverse(e[0])+gm.grey(e.slice(1)):gm.inverse(" "),b=v.length>0?"":gm.inverse(" ");let R=0;for(let L of v)R>=p-w&&R<=p?b+=gm.inverse(L):b+=L,R++;v.length>0&&p===v.length&&(b+=gm.inverse(" "))}return Ewe.useInput((R,L)=>{if(L.upArrow||L.downArrow||L.ctrl&&R==="c"||L.tab||L.shift&&L.tab)return;if(L.return){A&&A(t);return}let _=p,V=t,re=0;L.leftArrow?n&&_--:L.rightArrow?n&&_++:L.backspace||L.delete?p>0&&(V=t.slice(0,p-1)+t.slice(p,t.length),_--):(V=t.slice(0,p)+R+t.slice(p,t.length),_+=R.length,R.length>1&&(re=R.length)),p<0&&(_=0),p>t.length&&(_=t.length),E({cursorOffset:_,cursorWidth:re}),V!==t&&u(V)},{isActive:r}),Iwe.createElement(Ewe.Text,null,e?v.length>0?b:C:b)};PB.default=wwe;PB.UncontrolledTextInput=t=>{let[e,r]=Qq.useState("");return Iwe.createElement(wwe,Object.assign({},t,{value:e,onChange:r}))}});var Swe={};Yt(Swe,{Pad:()=>kq});var vwe,Dwe,kq,Fq=dt(()=>{vwe=tt(cc()),Dwe=tt(en()),kq=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return Dwe.default.createElement(vwe.Text,{dimColor:!e},r)}});var Pwe={};Yt(Pwe,{ItemOptions:()=>dIt});var bB,Ch,dIt,xwe=dt(()=>{bB=tt(cc()),Ch=tt(en());nk();tk();Fq();dIt=function({active:t,skewer:e,options:r,value:o,onChange:a,sizes:n=[]}){let u=r.filter(({label:p})=>!!p).map(({value:p})=>p),A=r.findIndex(p=>p.value===o&&p.label!="");return SB(o,u,{active:t,minus:"left",plus:"right",set:a}),Ch.default.createElement(Ch.default.Fragment,null,r.map(({label:p},h)=>{let E=h===A,w=n[h]-1||0,v=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),b=Math.max(0,w-v.length-2);return p?Ch.default.createElement(bB.Box,{key:p,width:w,marginLeft:1},Ch.default.createElement(bB.Text,{wrap:"truncate"},Ch.default.createElement(Iq,{active:E})," ",p),e?Ch.default.createElement(kq,{active:t,length:b}):null):Ch.default.createElement(bB.Box,{key:`spacer-${h}`,width:w,marginLeft:1})}))}});var Gwe=U((ZVt,jwe)=>{var Hq;jwe.exports=()=>(typeof Hq>"u"&&(Hq=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),Hq)});var A1e=U((BJt,u1e)=>{var zq=Symbol("arg flag"),Oa=class extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,Oa.prototype)}};function WB(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new Oa("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},u={};for(let A of Object.keys(t)){if(!A)throw new Oa("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new Oa(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new Oa(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[A]=="string"){n[A]=t[A];continue}let p=t[A],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(w,v,b=[])=>(b.push(E(w,v,b[b.length-1])),b),h=E===Boolean||E[zq]===!0}else if(typeof p=="function")h=p===Boolean||p[zq]===!0;else throw new Oa(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new Oa(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");u[A]=[p,h]}for(let A=0,p=e.length;A<p;A++){let h=e[A];if(o&&a._.length>0){a._=a._.concat(e.slice(A));break}if(h==="--"){a._=a._.concat(e.slice(A+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(w=>`-${w}`);for(let w=0;w<E.length;w++){let v=E[w],[b,C]=v[1]==="-"?v.split(/=(.*)/,2):[v,void 0],R=b;for(;R in n;)R=n[R];if(!(R in u))if(r){a._.push(v);continue}else throw new Oa(`unknown or unexpected option: ${b}`,"ARG_UNKNOWN_OPTION");let[L,_]=u[R];if(!_&&w+1<E.length)throw new Oa(`option requires argument (but was followed by another short argument): ${b}`,"ARG_MISSING_REQUIRED_SHORTARG");if(_)a[R]=L(!0,R,a[R]);else if(C===void 0){if(e.length<A+2||e[A+1].length>1&&e[A+1][0]==="-"&&!(e[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(L===Number||typeof BigInt<"u"&&L===BigInt))){let V=b===R?"":` (alias for ${R})`;throw new Oa(`option requires argument: ${b}${V}`,"ARG_MISSING_REQUIRED_LONGARG")}a[R]=L(e[A+1],R,a[R]),++A}else a[R]=L(C,R,a[R])}}else a._.push(h)}return a}WB.flag=t=>(t[zq]=!0,t);WB.COUNT=WB.flag((t,e,r)=>(r||0)+1);WB.ArgError=Oa;u1e.exports=WB});var E1e=U((XJt,C1e)=>{var ej;C1e.exports=()=>(typeof ej>"u"&&(ej=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),ej)});var P1e=U((oj,aj)=>{(function(t){oj&&typeof oj=="object"&&typeof aj<"u"?aj.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var k1e=U((Jzt,Q1e)=>{"use strict";lj.ifExists=hwt;var UE=Ie("util"),uc=Ie("path"),x1e=P1e(),Awt=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,fwt={createPwshFile:!0,createCmdFile:x1e(),fs:Ie("fs")},pwt=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function b1e(t){let e={...fwt,...t},r=e.fs;return e.fs_={chmod:r.chmod?UE.promisify(r.chmod):async()=>{},mkdir:UE.promisify(r.mkdir),readFile:UE.promisify(r.readFile),stat:UE.promisify(r.stat),unlink:UE.promisify(r.unlink),writeFile:UE.promisify(r.writeFile)},e}async function lj(t,e,r){let o=b1e(r);await o.fs_.stat(t),await dwt(t,e,o)}function hwt(t,e,r){return lj(t,e,r).catch(()=>{})}function gwt(t,e){return e.fs_.unlink(t).catch(()=>{})}async function dwt(t,e,r){let o=await Iwt(t,r);return await mwt(e,r),ywt(t,e,o,r)}function mwt(t,e){return e.fs_.mkdir(uc.dirname(t),{recursive:!0})}function ywt(t,e,r,o){let a=b1e(o),n=[{generator:vwt,extension:""}];return a.createCmdFile&&n.push({generator:Bwt,extension:".cmd"}),a.createPwshFile&&n.push({generator:Dwt,extension:".ps1"}),Promise.all(n.map(u=>wwt(t,e+u.extension,r,u.generator,a)))}function Cwt(t,e){return gwt(t,e)}function Ewt(t,e){return Swt(t,e)}async function Iwt(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(Awt);if(!a){let n=uc.extname(t).toLowerCase();return{program:pwt.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function wwt(t,e,r,o,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",u=[r.additionalArgs,n].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:u}),await Cwt(e,a),await a.fs_.writeFile(e,o(t,e,a),"utf8"),Ewt(e,a)}function Bwt(t,e,r){let a=uc.relative(uc.dirname(e),t).split("/").join("\\"),n=uc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,u,A=r.prog,p=r.args||"",h=cj(r.nodePath).win32;A?(u=`"%~dp0\\${A}.exe"`,a=n):(A=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",w=h?`@SET NODE_PATH=${h}\r 313`.repeat(t));$Ie.displayName="Newline";mB.default=$Ie});var nwe=U(yB=>{"use strict";var twe=yB&&yB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(yB,"__esModule",{value:!0});var bCt=twe(en()),QCt=twe(ek()),rwe=()=>bCt.default.createElement(QCt.default,{flexGrow:1});rwe.displayName="Spacer";yB.default=rwe});var nk=U(EB=>{"use strict";var kCt=EB&&EB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});var FCt=en(),RCt=kCt(uq()),TCt=()=>FCt.useContext(RCt.default);EB.default=TCt});var swe=U(CB=>{"use strict";var NCt=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var iwe=en(),LCt=NCt(nk()),OCt=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=LCt.default();iwe.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),iwe.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+"a".charCodeAt(0)-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(h||C)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r==null||r.on("data",n),()=>{r==null||r.off("data",n)}},[e.isActive,r,a,t])};CB.default=OCt});var owe=U(IB=>{"use strict";var MCt=IB&&IB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(IB,"__esModule",{value:!0});var UCt=en(),_Ct=MCt(lq()),HCt=()=>UCt.useContext(_Ct.default);IB.default=HCt});var awe=U(wB=>{"use strict";var qCt=wB&&wB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wB,"__esModule",{value:!0});var jCt=en(),GCt=qCt(fq()),WCt=()=>jCt.useContext(GCt.default);wB.default=WCt});var lwe=U(BB=>{"use strict";var YCt=BB&&BB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(BB,"__esModule",{value:!0});var KCt=en(),VCt=YCt(hq()),JCt=()=>KCt.useContext(VCt.default);BB.default=JCt});var uwe=U(DB=>{"use strict";var cwe=DB&&DB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(DB,"__esModule",{value:!0});var vB=en(),zCt=cwe($Q()),XCt=cwe(nk()),ZCt=({isActive:t=!0,autoFocus:e=!1}={})=>{let{isRawModeSupported:r,setRawMode:o}=XCt.default(),{activeId:a,add:n,remove:u,activate:A,deactivate:p}=vB.useContext(zCt.default),h=vB.useMemo(()=>Math.random().toString().slice(2,7),[]);return vB.useEffect(()=>(n(h,{autoFocus:e}),()=>{u(h)}),[h,e]),vB.useEffect(()=>{t?A(h):p(h)},[t,h]),vB.useEffect(()=>{if(!(!r||!t))return o(!0),()=>{o(!1)}},[t]),{isFocused:Boolean(h)&&a===h}};DB.default=ZCt});var Awe=U(SB=>{"use strict";var $Ct=SB&&SB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(SB,"__esModule",{value:!0});var eIt=en(),tIt=$Ct($Q()),rIt=()=>{let t=eIt.useContext(tIt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious}};SB.default=rIt});var fwe=U(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var uc=U($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});var nIt=VIe();Object.defineProperty($s,"render",{enumerable:!0,get:function(){return nIt.default}});var iIt=ek();Object.defineProperty($s,"Box",{enumerable:!0,get:function(){return iIt.default}});var sIt=Eq();Object.defineProperty($s,"Text",{enumerable:!0,get:function(){return sIt.default}});var oIt=zIe();Object.defineProperty($s,"Static",{enumerable:!0,get:function(){return oIt.default}});var aIt=ZIe();Object.defineProperty($s,"Transform",{enumerable:!0,get:function(){return aIt.default}});var lIt=ewe();Object.defineProperty($s,"Newline",{enumerable:!0,get:function(){return lIt.default}});var cIt=nwe();Object.defineProperty($s,"Spacer",{enumerable:!0,get:function(){return cIt.default}});var uIt=swe();Object.defineProperty($s,"useInput",{enumerable:!0,get:function(){return uIt.default}});var AIt=owe();Object.defineProperty($s,"useApp",{enumerable:!0,get:function(){return AIt.default}});var fIt=nk();Object.defineProperty($s,"useStdin",{enumerable:!0,get:function(){return fIt.default}});var pIt=awe();Object.defineProperty($s,"useStdout",{enumerable:!0,get:function(){return pIt.default}});var hIt=lwe();Object.defineProperty($s,"useStderr",{enumerable:!0,get:function(){return hIt.default}});var gIt=uwe();Object.defineProperty($s,"useFocus",{enumerable:!0,get:function(){return gIt.default}});var dIt=Awe();Object.defineProperty($s,"useFocusManager",{enumerable:!0,get:function(){return dIt.default}});var mIt=fwe();Object.defineProperty($s,"measureElement",{enumerable:!0,get:function(){return mIt.default}})});var vq={};Yt(vq,{Gem:()=>Bq});var pwe,hm,Bq,ik=dt(()=>{pwe=tt(uc()),hm=tt(en()),Bq=(0,hm.memo)(({active:t})=>{let e=(0,hm.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,hm.useMemo)(()=>t?"green":"yellow",[t]);return hm.default.createElement(pwe.Text,{color:r},e)})});var gwe={};Yt(gwe,{useKeypress:()=>gm});function gm({active:t},e,r){let{stdin:o}=(0,hwe.useStdin)(),a=(0,sk.useCallback)((n,u)=>e(n,u),r);(0,sk.useEffect)(()=>{if(!(!t||!o))return o.on("keypress",a),()=>{o.off("keypress",a)}},[t,a,o])}var hwe,sk,PB=dt(()=>{hwe=tt(uc()),sk=tt(en())});var mwe={};Yt(mwe,{FocusRequest:()=>dwe,useFocusRequest:()=>Dq});var dwe,Dq,Sq=dt(()=>{PB();dwe=(r=>(r.BEFORE="before",r.AFTER="after",r))(dwe||{}),Dq=function({active:t},e,r){gm({active:t},(o,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var ywe={};Yt(ywe,{useListInput:()=>xB});var xB,ok=dt(()=>{PB();xB=function(t,e,{active:r,minus:o,plus:a,set:n,loop:u=!0}){gm({active:r},(A,p)=>{let h=e.indexOf(t);switch(p.name){case o:{let C=h-1;if(u){n(e[(e.length+C)%e.length]);return}if(C<0)return;n(e[C])}break;case a:{let C=h+1;if(u){n(e[C%e.length]);return}if(C>=e.length)return;n(e[C])}break}},[e,t,a,n,u])}});var ak={};Yt(ak,{ScrollableItems:()=>yIt});var yh,Oa,yIt,lk=dt(()=>{yh=tt(uc()),Oa=tt(en());Sq();ok();yIt=({active:t=!0,children:e=[],radius:r=10,size:o=1,loop:a=!0,onFocusRequest:n,willReachEnd:u})=>{let A=L=>{if(L.key===null)throw new Error("Expected all children to have a key");return L.key},p=Oa.default.Children.map(e,L=>A(L)),h=p[0],[C,w]=(0,Oa.useState)(h),v=p.indexOf(C);(0,Oa.useEffect)(()=>{p.includes(C)||w(h)},[e]),(0,Oa.useEffect)(()=>{u&&v>=p.length-2&&u()},[v]),Dq({active:t&&!!n},L=>{n==null||n(L)},[n]),xB(C,p,{active:t,minus:"up",plus:"down",set:w,loop:a});let b=v-r,E=v+r;E>p.length&&(b-=E-p.length,E=p.length),b<0&&(E+=-b,b=0),E>=p.length&&(E=p.length-1);let R=[];for(let L=b;L<=E;++L){let _=p[L],V=t&&_===C;R.push(Oa.default.createElement(yh.Box,{key:_,height:o},Oa.default.createElement(yh.Box,{marginLeft:1,marginRight:1},Oa.default.createElement(yh.Text,null,V?Oa.default.createElement(yh.Text,{color:"cyan",bold:!0},">"):" ")),Oa.default.createElement(yh.Box,null,Oa.default.cloneElement(e[L],{active:V}))))}return Oa.default.createElement(yh.Box,{flexDirection:"column",width:"100%"},R)}});var Ewe,tp,Cwe,Pq,Iwe,xq=dt(()=>{Ewe=tt(uc()),tp=tt(en()),Cwe=Ie("readline"),Pq=tp.default.createContext(null),Iwe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,Ewe.useStdin)();(0,tp.useEffect)(()=>{r&&r(!0),e&&(0,Cwe.emitKeypressEvents)(e)},[e,r]);let[o,a]=(0,tp.useState)(new Map),n=(0,tp.useMemo)(()=>({getAll:()=>o,get:u=>o.get(u),set:(u,A)=>a(new Map([...o,[u,A]]))}),[o,a]);return tp.default.createElement(Pq.Provider,{value:n,children:t})}});var bq={};Yt(bq,{useMinistore:()=>EIt});function EIt(t,e){let r=(0,ck.useContext)(Pq);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let o=(0,ck.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,o]}var ck,Qq=dt(()=>{ck=tt(en());xq()});var Ak={};Yt(Ak,{renderForm:()=>CIt});async function CIt(t,e,{stdin:r,stdout:o,stderr:a}){let n,u=p=>{let{exit:h}=(0,uk.useApp)();gm({active:!0},(C,w)=>{w.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:A}=(0,uk.render)(kq.default.createElement(Iwe,null,kq.default.createElement(t,{...e,useSubmit:u})),{stdin:r,stdout:o,stderr:a});return await A(),n}var uk,kq,fk=dt(()=>{uk=tt(uc()),kq=tt(en());xq();PB()});var Dwe=U(bB=>{"use strict";Object.defineProperty(bB,"__esModule",{value:!0});bB.UncontrolledTextInput=void 0;var Bwe=en(),Fq=en(),wwe=uc(),dm=XQ(),vwe=({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:a=!1,showCursor:n=!0,onChange:u,onSubmit:A})=>{let[{cursorOffset:p,cursorWidth:h},C]=Fq.useState({cursorOffset:(t||"").length,cursorWidth:0});Fq.useEffect(()=>{C(R=>{if(!r||!n)return R;let L=t||"";return R.cursorOffset>L.length-1?{cursorOffset:L.length,cursorWidth:0}:R})},[t,r,n]);let w=a?h:0,v=o?o.repeat(t.length):t,b=v,E=e?dm.grey(e):void 0;if(n&&r){E=e.length>0?dm.inverse(e[0])+dm.grey(e.slice(1)):dm.inverse(" "),b=v.length>0?"":dm.inverse(" ");let R=0;for(let L of v)R>=p-w&&R<=p?b+=dm.inverse(L):b+=L,R++;v.length>0&&p===v.length&&(b+=dm.inverse(" "))}return wwe.useInput((R,L)=>{if(L.upArrow||L.downArrow||L.ctrl&&R==="c"||L.tab||L.shift&&L.tab)return;if(L.return){A&&A(t);return}let _=p,V=t,re=0;L.leftArrow?n&&_--:L.rightArrow?n&&_++:L.backspace||L.delete?p>0&&(V=t.slice(0,p-1)+t.slice(p,t.length),_--):(V=t.slice(0,p)+R+t.slice(p,t.length),_+=R.length,R.length>1&&(re=R.length)),p<0&&(_=0),p>t.length&&(_=t.length),C({cursorOffset:_,cursorWidth:re}),V!==t&&u(V)},{isActive:r}),Bwe.createElement(wwe.Text,null,e?v.length>0?b:E:b)};bB.default=vwe;bB.UncontrolledTextInput=t=>{let[e,r]=Fq.useState("");return Bwe.createElement(vwe,Object.assign({},t,{value:e,onChange:r}))}});var xwe={};Yt(xwe,{Pad:()=>Rq});var Swe,Pwe,Rq,Tq=dt(()=>{Swe=tt(uc()),Pwe=tt(en()),Rq=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return Pwe.default.createElement(Swe.Text,{dimColor:!e},r)}});var bwe={};Yt(bwe,{ItemOptions:()=>IIt});var kB,Ch,IIt,Qwe=dt(()=>{kB=tt(uc()),Ch=tt(en());ok();ik();Tq();IIt=function({active:t,skewer:e,options:r,value:o,onChange:a,sizes:n=[]}){let u=r.filter(({label:p})=>!!p).map(({value:p})=>p),A=r.findIndex(p=>p.value===o&&p.label!="");return xB(o,u,{active:t,minus:"left",plus:"right",set:a}),Ch.default.createElement(Ch.default.Fragment,null,r.map(({label:p},h)=>{let C=h===A,w=n[h]-1||0,v=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),b=Math.max(0,w-v.length-2);return p?Ch.default.createElement(kB.Box,{key:p,width:w,marginLeft:1},Ch.default.createElement(kB.Text,{wrap:"truncate"},Ch.default.createElement(Bq,{active:C})," ",p),e?Ch.default.createElement(Rq,{active:t,length:b}):null):Ch.default.createElement(kB.Box,{key:`spacer-${h}`,width:w,marginLeft:1})}))}});var Ywe=U((sJt,Wwe)=>{var jq;Wwe.exports=()=>(typeof jq>"u"&&(jq=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),jq)});var p1e=U((QJt,f1e)=>{var Zq=Symbol("arg flag"),Ma=class extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,Ma.prototype)}};function KB(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new Ma("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},u={};for(let A of Object.keys(t)){if(!A)throw new Ma("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new Ma(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new Ma(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[A]=="string"){n[A]=t[A];continue}let p=t[A],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[C]=p;p=(w,v,b=[])=>(b.push(C(w,v,b[b.length-1])),b),h=C===Boolean||C[Zq]===!0}else if(typeof p=="function")h=p===Boolean||p[Zq]===!0;else throw new Ma(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new Ma(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");u[A]=[p,h]}for(let A=0,p=e.length;A<p;A++){let h=e[A];if(o&&a._.length>0){a._=a._.concat(e.slice(A));break}if(h==="--"){a._=a._.concat(e.slice(A+1));break}if(h.length>1&&h[0]==="-"){let C=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(w=>`-${w}`);for(let w=0;w<C.length;w++){let v=C[w],[b,E]=v[1]==="-"?v.split(/=(.*)/,2):[v,void 0],R=b;for(;R in n;)R=n[R];if(!(R in u))if(r){a._.push(v);continue}else throw new Ma(`unknown or unexpected option: ${b}`,"ARG_UNKNOWN_OPTION");let[L,_]=u[R];if(!_&&w+1<C.length)throw new Ma(`option requires argument (but was followed by another short argument): ${b}`,"ARG_MISSING_REQUIRED_SHORTARG");if(_)a[R]=L(!0,R,a[R]);else if(E===void 0){if(e.length<A+2||e[A+1].length>1&&e[A+1][0]==="-"&&!(e[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(L===Number||typeof BigInt<"u"&&L===BigInt))){let V=b===R?"":` (alias for ${R})`;throw new Ma(`option requires argument: ${b}${V}`,"ARG_MISSING_REQUIRED_LONGARG")}a[R]=L(e[A+1],R,a[R]),++A}else a[R]=L(E,R,a[R])}}else a._.push(h)}return a}KB.flag=t=>(t[Zq]=!0,t);KB.COUNT=KB.flag((t,e,r)=>(r||0)+1);KB.ArgError=Ma;f1e.exports=KB});var w1e=U((ozt,I1e)=>{var rj;I1e.exports=()=>(typeof rj>"u"&&(rj=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),rj)});var b1e=U((lj,cj)=>{(function(t){lj&&typeof lj=="object"&&typeof cj<"u"?cj.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var R1e=U((iXt,F1e)=>{"use strict";uj.ifExists=Ewt;var UC=Ie("util"),Ac=Ie("path"),Q1e=b1e(),dwt=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,mwt={createPwshFile:!0,createCmdFile:Q1e(),fs:Ie("fs")},ywt=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function k1e(t){let e={...mwt,...t},r=e.fs;return e.fs_={chmod:r.chmod?UC.promisify(r.chmod):async()=>{},mkdir:UC.promisify(r.mkdir),readFile:UC.promisify(r.readFile),stat:UC.promisify(r.stat),unlink:UC.promisify(r.unlink),writeFile:UC.promisify(r.writeFile)},e}async function uj(t,e,r){let o=k1e(r);await o.fs_.stat(t),await Iwt(t,e,o)}function Ewt(t,e,r){return uj(t,e,r).catch(()=>{})}function Cwt(t,e){return e.fs_.unlink(t).catch(()=>{})}async function Iwt(t,e,r){let o=await Swt(t,r);return await wwt(e,r),Bwt(t,e,o,r)}function wwt(t,e){return e.fs_.mkdir(Ac.dirname(t),{recursive:!0})}function Bwt(t,e,r,o){let a=k1e(o),n=[{generator:bwt,extension:""}];return a.createCmdFile&&n.push({generator:xwt,extension:".cmd"}),a.createPwshFile&&n.push({generator:Qwt,extension:".ps1"}),Promise.all(n.map(u=>Pwt(t,e+u.extension,r,u.generator,a)))}function vwt(t,e){return Cwt(t,e)}function Dwt(t,e){return kwt(t,e)}async function Swt(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(dwt);if(!a){let n=Ac.extname(t).toLowerCase();return{program:ywt.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function Pwt(t,e,r,o,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",u=[r.additionalArgs,n].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:u}),await vwt(e,a),await a.fs_.writeFile(e,o(t,e,a),"utf8"),Dwt(e,a)}function xwt(t,e,r){let a=Ac.relative(Ac.dirname(e),t).split("/").join("\\"),n=Ac.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,u,A=r.prog,p=r.args||"",h=Aj(r.nodePath).win32;A?(u=`"%~dp0\\${A}.exe"`,a=n):(A=n,p="",a="");let C=r.progArgs?`${r.progArgs.join(" ")} `:"",w=h?`@SET NODE_PATH=${h}\r
314`:"";return u?w+=`@IF EXIST ${u} (\r 314`:"";return u?w+=`@IF EXIST ${u} (\r
315 ${u} ${p} ${a} ${E}%*\r 315 ${u} ${p} ${a} ${C}%*\r
316) ELSE (\r 316) ELSE (\r
317 @SETLOCAL\r 317 @SETLOCAL\r
318 @SET PATHEXT=%PATHEXT:;.JS;=;%\r 318 @SET PATHEXT=%PATHEXT:;.JS;=;%\r
319 ${A} ${p} ${a} ${E}%*\r 319 ${A} ${p} ${a} ${C}%*\r
320)\r 320)\r
321`:w+=`@${A} ${p} ${a} ${E}%*\r 321`:w+=`@${A} ${p} ${a} ${C}%*\r
322`,w}function vwt(t,e,r){let o=uc.relative(uc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=uc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=cj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh 322`,w}function bwt(t,e,r){let o=Ac.relative(Ac.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=Ac.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=Aj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",C=`#!/bin/sh
323basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") 323basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')")
324 324
325case \`uname\` in 325case \`uname\` in
@@ -327,19 +327,19 @@ case \`uname\` in
327esac 327esac
328 328
329`,w=r.nodePath?`export NODE_PATH="${p}" 329`,w=r.nodePath?`export NODE_PATH="${p}"
330`:"";return n?E+=`${w}if [ -x ${n} ]; then 330`:"";return n?C+=`${w}if [ -x ${n} ]; then
331 exec ${n} ${A} ${o} ${h}"$@" 331 exec ${n} ${A} ${o} ${h}"$@"
332else 332else
333 exec ${a} ${A} ${o} ${h}"$@" 333 exec ${a} ${A} ${o} ${h}"$@"
334fi 334fi
335`:E+=`${w}${a} ${A} ${o} ${h}"$@" 335`:C+=`${w}${a} ${A} ${o} ${h}"$@"
336exit $? 336exit $?
337`,E}function Dwt(t,e,r){let o=uc.relative(uc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=uc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=cj(r.nodePath),E=h.win32,w=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let v=r.progArgs?`${r.progArgs.join(" ")} `:"",b=`#!/usr/bin/env pwsh 337`,C}function Qwt(t,e,r){let o=Ac.relative(Ac.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=Ac.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=Aj(r.nodePath),C=h.win32,w=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let v=r.progArgs?`${r.progArgs.join(" ")} `:"",b=`#!/usr/bin/env pwsh
338$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 338$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
339 339
340$exe="" 340$exe=""
341${r.nodePath?`$env_node_path=$env:NODE_PATH 341${r.nodePath?`$env_node_path=$env:NODE_PATH
342$env:NODE_PATH="${E}" 342$env:NODE_PATH="${C}"
343`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 343`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
344 # Fix case when both the Windows and Linux builds of Node 344 # Fix case when both the Windows and Linux builds of Node
345 # are installed in the same directory 345 # are installed in the same directory
@@ -376,45 +376,45 @@ if ($MyInvocation.ExpectingInput) {
376} 376}
377${r.nodePath?`$env:NODE_PATH=$env_node_path 377${r.nodePath?`$env:NODE_PATH=$env_node_path
378`:""}exit $LASTEXITCODE 378`:""}exit $LASTEXITCODE
379`,b}function Swt(t,e){return e.fs_.chmod(t,493)}function cj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(uc.delimiter):Array.from(t),r={};for(let o=0;o<e.length;o++){let a=e[o].split("/").join("\\"),n=x1e()?e[o].split("\\").join("/").replace(/^([^:\\/]*):/,(u,A)=>`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}Q1e.exports=lj});var wj=U((AZt,X1e)=>{X1e.exports=Ie("stream")});var t2e=U((fZt,e2e)=>{"use strict";function Z1e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function Ywt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Z1e(Object(r),!0).forEach(function(o){Kwt(t,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Z1e(Object(r)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(r,o))})}return t}function Kwt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Vwt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function $1e(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function Jwt(t,e,r){return e&&$1e(t.prototype,e),r&&$1e(t,r),t}var zwt=Ie("buffer"),Ik=zwt.Buffer,Xwt=Ie("util"),Bj=Xwt.inspect,Zwt=Bj&&Bj.custom||"inspect";function $wt(t,e,r){Ik.prototype.copy.call(t,e,r)}e2e.exports=function(){function t(){Vwt(this,t),this.head=null,this.tail=null,this.length=0}return Jwt(t,[{key:"push",value:function(r){var o={data:r,next:null};this.length>0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return Ik.alloc(0);for(var o=Ik.allocUnsafe(r>>>0),a=this.head,n=0;a;)$wt(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return r<this.head.data.length?(a=this.head.data.slice(0,r),this.head.data=this.head.data.slice(r)):r===this.head.data.length?a=this.shift():a=o?this._getString(r):this._getBuffer(r),a}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(r){var o=this.head,a=1,n=o.data;for(r-=n.length;o=o.next;){var u=o.data,A=r>u.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=Ik.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:Zwt,value:function(r,o){return Bj(this,Ywt({},o,{depth:0,customInspect:!1}))}}]),t}()});var Dj=U((pZt,n2e)=>{"use strict";function e1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(vj,this,t)):process.nextTick(vj,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(wk,r):(r._writableState.errorEmitted=!0,process.nextTick(r2e,r,n)):process.nextTick(r2e,r,n):e?(process.nextTick(wk,r),e(n)):process.nextTick(wk,r)}),this)}function r2e(t,e){vj(t,e),wk(t)}function wk(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function t1t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function vj(t,e){t.emit("error",e)}function r1t(t,e){var r=t._readableState,o=t._writableState;r&&r.autoDestroy||o&&o.autoDestroy?t.destroy(e):t.emit("error",e)}n2e.exports={destroy:e1t,undestroy:t1t,errorOrDestroy:r1t}});var xh=U((hZt,o2e)=>{"use strict";var s2e={};function Ac(t,e,r){r||(r=Error);function o(n,u,A){return typeof e=="string"?e:e(n,u,A)}class a extends r{constructor(u,A,p){super(o(u,A,p))}}a.prototype.name=r.name,a.prototype.code=t,s2e[t]=a}function i2e(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(o=>String(o)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function n1t(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function i1t(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function s1t(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Ac("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Ac("ERR_INVALID_ARG_TYPE",function(t,e,r){let o;typeof e=="string"&&n1t(e,"not ")?(o="must not be",e=e.replace(/^not /,"")):o="must be";let a;if(i1t(t," argument"))a=`The ${t} ${o} ${i2e(e,"type")}`;else{let n=s1t(t,".")?"property":"argument";a=`The "${t}" ${n} ${o} ${i2e(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);Ac("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ac("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Ac("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ac("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Ac("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ac("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ac("ERR_STREAM_WRITE_AFTER_END","write after end");Ac("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ac("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Ac("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");o2e.exports.codes=s2e});var Sj=U((gZt,a2e)=>{"use strict";var o1t=xh().codes.ERR_INVALID_OPT_VALUE;function a1t(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function l1t(t,e,r,o){var a=a1t(e,o,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=o?r:"highWaterMark";throw new o1t(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}a2e.exports={getHighWaterMark:l1t}});var l2e=U((dZt,Pj)=>{typeof Object.create=="function"?Pj.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Pj.exports=function(e,r){if(r){e.super_=r;var o=function(){};o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e}}});var bh=U((mZt,bj)=>{try{if(xj=Ie("util"),typeof xj.inherits!="function")throw"";bj.exports=xj.inherits}catch{bj.exports=l2e()}var xj});var u2e=U((yZt,c2e)=>{c2e.exports=Ie("util").deprecate});var Fj=U((CZt,d2e)=>{"use strict";d2e.exports=Qi;function f2e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){N1t(e,t)}}var qE;Qi.WritableState=nv;var c1t={deprecate:u2e()},p2e=wj(),vk=Ie("buffer").Buffer,u1t=global.Uint8Array||function(){};function A1t(t){return vk.from(t)}function f1t(t){return vk.isBuffer(t)||t instanceof u1t}var kj=Dj(),p1t=Sj(),h1t=p1t.getHighWaterMark,Qh=xh().codes,g1t=Qh.ERR_INVALID_ARG_TYPE,d1t=Qh.ERR_METHOD_NOT_IMPLEMENTED,m1t=Qh.ERR_MULTIPLE_CALLBACK,y1t=Qh.ERR_STREAM_CANNOT_PIPE,C1t=Qh.ERR_STREAM_DESTROYED,E1t=Qh.ERR_STREAM_NULL_VALUES,I1t=Qh.ERR_STREAM_WRITE_AFTER_END,w1t=Qh.ERR_UNKNOWN_ENCODING,jE=kj.errorOrDestroy;bh()(Qi,p2e);function B1t(){}function nv(t,e,r){qE=qE||Im(),t=t||{},typeof r!="boolean"&&(r=e instanceof qE),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=h1t(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){Q1t(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new f2e(this)}nv.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(nv.prototype,"buffer",{get:c1t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Bk;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Bk=Function.prototype[Symbol.hasInstance],Object.defineProperty(Qi,Symbol.hasInstance,{value:function(e){return Bk.call(this,e)?!0:this!==Qi?!1:e&&e._writableState instanceof nv}})):Bk=function(e){return e instanceof this};function Qi(t){qE=qE||Im();var e=this instanceof qE;if(!e&&!Bk.call(Qi,this))return new Qi(t);this._writableState=new nv(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),p2e.call(this)}Qi.prototype.pipe=function(){jE(this,new y1t)};function v1t(t,e){var r=new I1t;jE(t,r),process.nextTick(e,r)}function D1t(t,e,r,o){var a;return r===null?a=new E1t:typeof r!="string"&&!e.objectMode&&(a=new g1t("chunk",["string","Buffer"],r)),a?(jE(t,a),process.nextTick(o,a),!1):!0}Qi.prototype.write=function(t,e,r){var o=this._writableState,a=!1,n=!o.objectMode&&f1t(t);return n&&!vk.isBuffer(t)&&(t=A1t(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=o.defaultEncoding),typeof r!="function"&&(r=B1t),o.ending?v1t(this,r):(n||D1t(this,o,t,r))&&(o.pendingcb++,a=P1t(this,o,n,t,e,r)),a};Qi.prototype.cork=function(){this._writableState.corked++};Qi.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&h2e(this,t))};Qi.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new w1t(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Qi.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function S1t(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=vk.from(e,r)),e}Object.defineProperty(Qi.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function P1t(t,e,r,o,a,n){if(!r){var u=S1t(e,o,a);o!==u&&(r=!0,a="buffer",o=u)}var A=e.objectMode?1:o.length;e.length+=A;var p=e.length<e.highWaterMark;if(p||(e.needDrain=!0),e.writing||e.corked){var h=e.lastBufferedRequest;e.lastBufferedRequest={chunk:o,encoding:a,isBuf:r,callback:n,next:null},h?h.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else Qj(t,e,!1,A,o,a,n);return p}function Qj(t,e,r,o,a,n,u){e.writelen=o,e.writecb=u,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new C1t("write")):r?t._writev(a,e.onwrite):t._write(a,n,e.onwrite),e.sync=!1}function x1t(t,e,r,o,a){--e.pendingcb,r?(process.nextTick(a,o),process.nextTick(rv,t,e),t._writableState.errorEmitted=!0,jE(t,o)):(a(o),t._writableState.errorEmitted=!0,jE(t,o),rv(t,e))}function b1t(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}function Q1t(t,e){var r=t._writableState,o=r.sync,a=r.writecb;if(typeof a!="function")throw new m1t;if(b1t(r),e)x1t(t,r,o,e,a);else{var n=g2e(r)||t.destroyed;!n&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&h2e(t,r),o?process.nextTick(A2e,t,r,n,a):A2e(t,r,n,a)}}function A2e(t,e,r,o){r||k1t(t,e),e.pendingcb--,o(),rv(t,e)}function k1t(t,e){e.length===0&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}function h2e(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var o=e.bufferedRequestCount,a=new Array(o),n=e.corkedRequestsFree;n.entry=r;for(var u=0,A=!0;r;)a[u]=r,r.isBuf||(A=!1),r=r.next,u+=1;a.allBuffers=A,Qj(t,e,!0,e.length,a,"",n.finish),e.pendingcb++,e.lastBufferedRequest=null,n.next?(e.corkedRequestsFree=n.next,n.next=null):e.corkedRequestsFree=new f2e(e),e.bufferedRequestCount=0}else{for(;r;){var p=r.chunk,h=r.encoding,E=r.callback,w=e.objectMode?1:p.length;if(Qj(t,e,!1,w,p,h,E),r=r.next,e.bufferedRequestCount--,e.writing)break}r===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}Qi.prototype._write=function(t,e,r){r(new d1t("_write()"))};Qi.prototype._writev=null;Qi.prototype.end=function(t,e,r){var o=this._writableState;return typeof t=="function"?(r=t,t=null,e=null):typeof e=="function"&&(r=e,e=null),t!=null&&this.write(t,e),o.corked&&(o.corked=1,this.uncork()),o.ending||T1t(this,o,r),this};Object.defineProperty(Qi.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function g2e(t){return t.ending&&t.length===0&&t.bufferedRequest===null&&!t.finished&&!t.writing}function F1t(t,e){t._final(function(r){e.pendingcb--,r&&jE(t,r),e.prefinished=!0,t.emit("prefinish"),rv(t,e)})}function R1t(t,e){!e.prefinished&&!e.finalCalled&&(typeof t._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(F1t,t,e)):(e.prefinished=!0,t.emit("prefinish")))}function rv(t,e){var r=g2e(e);if(r&&(R1t(t,e),e.pendingcb===0&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var o=t._readableState;(!o||o.autoDestroy&&o.endEmitted)&&t.destroy()}return r}function T1t(t,e,r){e.ending=!0,rv(t,e),r&&(e.finished?process.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}function N1t(t,e,r){var o=t.entry;for(t.entry=null;o;){var a=o.callback;e.pendingcb--,a(r),o=o.next}e.corkedRequestsFree.next=t}Object.defineProperty(Qi.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){!this._writableState||(this._writableState.destroyed=e)}});Qi.prototype.destroy=kj.destroy;Qi.prototype._undestroy=kj.undestroy;Qi.prototype._destroy=function(t,e){e(t)}});var Im=U((EZt,y2e)=>{"use strict";var L1t=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};y2e.exports=IA;var m2e=Nj(),Tj=Fj();bh()(IA,m2e);for(Rj=L1t(Tj.prototype),Dk=0;Dk<Rj.length;Dk++)Sk=Rj[Dk],IA.prototype[Sk]||(IA.prototype[Sk]=Tj.prototype[Sk]);var Rj,Sk,Dk;function IA(t){if(!(this instanceof IA))return new IA(t);m2e.call(this,t),Tj.call(this,t),this.allowHalfOpen=!0,t&&(t.readable===!1&&(this.readable=!1),t.writable===!1&&(this.writable=!1),t.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",O1t)))}Object.defineProperty(IA.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(IA.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(IA.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function O1t(){this._writableState.ended||process.nextTick(M1t,this)}function M1t(t){t.end()}Object.defineProperty(IA.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var I2e=U((Lj,E2e)=>{var Pk=Ie("buffer"),ip=Pk.Buffer;function C2e(t,e){for(var r in t)e[r]=t[r]}ip.from&&ip.alloc&&ip.allocUnsafe&&ip.allocUnsafeSlow?E2e.exports=Pk:(C2e(Pk,Lj),Lj.Buffer=GE);function GE(t,e,r){return ip(t,e,r)}C2e(ip,GE);GE.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return ip(t,e,r)};GE.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=ip(t);return e!==void 0?typeof r=="string"?o.fill(e,r):o.fill(e):o.fill(0),o};GE.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ip(t)};GE.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Pk.SlowBuffer(t)}});var Uj=U(B2e=>{"use strict";var Mj=I2e().Buffer,w2e=Mj.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function U1t(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function _1t(t){var e=U1t(t);if(typeof e!="string"&&(Mj.isEncoding===w2e||!w2e(t)))throw new Error("Unknown encoding: "+t);return e||t}B2e.StringDecoder=iv;function iv(t){this.encoding=_1t(t);var e;switch(this.encoding){case"utf16le":this.text=Y1t,this.end=K1t,e=4;break;case"utf8":this.fillLast=j1t,e=4;break;case"base64":this.text=V1t,this.end=J1t,e=3;break;default:this.write=z1t,this.end=X1t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Mj.allocUnsafe(e)}iv.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||""};iv.prototype.end=W1t;iv.prototype.text=G1t;iv.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function Oj(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function H1t(t,e,r){var o=e.length-1;if(o<r)return 0;var a=Oj(e[o]);return a>=0?(a>0&&(t.lastNeed=a-1),a):--o<r||a===-2?0:(a=Oj(e[o]),a>=0?(a>0&&(t.lastNeed=a-2),a):--o<r||a===-2?0:(a=Oj(e[o]),a>=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function q1t(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function j1t(t){var e=this.lastTotal-this.lastNeed,r=q1t(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function G1t(t,e){var r=H1t(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var o=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,o),t.toString("utf8",e,o)}function W1t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function Y1t(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var o=r.charCodeAt(r.length-1);if(o>=55296&&o<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function K1t(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function V1t(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function J1t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function z1t(t){return t.toString(this.encoding)}function X1t(t){return t&&t.length?this.write(t):""}});var xk=U((wZt,S2e)=>{"use strict";var v2e=xh().codes.ERR_STREAM_PREMATURE_CLOSE;function Z1t(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];t.apply(this,o)}}}function $1t(){}function e2t(t){return t.setHeader&&typeof t.abort=="function"}function D2e(t,e,r){if(typeof e=="function")return D2e(t,null,e);e||(e={}),r=Z1t(r||$1t);var o=e.readable||e.readable!==!1&&t.readable,a=e.writable||e.writable!==!1&&t.writable,n=function(){t.writable||A()},u=t._writableState&&t._writableState.finished,A=function(){a=!1,u=!0,o||r.call(t)},p=t._readableState&&t._readableState.endEmitted,h=function(){o=!1,p=!0,a||r.call(t)},E=function(C){r.call(t,C)},w=function(){var C;if(o&&!p)return(!t._readableState||!t._readableState.ended)&&(C=new v2e),r.call(t,C);if(a&&!u)return(!t._writableState||!t._writableState.ended)&&(C=new v2e),r.call(t,C)},v=function(){t.req.on("finish",A)};return e2t(t)?(t.on("complete",A),t.on("abort",w),t.req?v():t.on("request",v)):a&&!t._writableState&&(t.on("end",n),t.on("close",n)),t.on("end",h),t.on("finish",A),e.error!==!1&&t.on("error",E),t.on("close",w),function(){t.removeListener("complete",A),t.removeListener("abort",w),t.removeListener("request",v),t.req&&t.req.removeListener("finish",A),t.removeListener("end",n),t.removeListener("close",n),t.removeListener("finish",A),t.removeListener("end",h),t.removeListener("error",E),t.removeListener("close",w)}}S2e.exports=D2e});var x2e=U((BZt,P2e)=>{"use strict";var bk;function kh(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var t2t=xk(),Fh=Symbol("lastResolve"),wm=Symbol("lastReject"),sv=Symbol("error"),Qk=Symbol("ended"),Bm=Symbol("lastPromise"),_j=Symbol("handlePromise"),vm=Symbol("stream");function Rh(t,e){return{value:t,done:e}}function r2t(t){var e=t[Fh];if(e!==null){var r=t[vm].read();r!==null&&(t[Bm]=null,t[Fh]=null,t[wm]=null,e(Rh(r,!1)))}}function n2t(t){process.nextTick(r2t,t)}function i2t(t,e){return function(r,o){t.then(function(){if(e[Qk]){r(Rh(void 0,!0));return}e[_j](r,o)},o)}}var s2t=Object.getPrototypeOf(function(){}),o2t=Object.setPrototypeOf((bk={get stream(){return this[vm]},next:function(){var e=this,r=this[sv];if(r!==null)return Promise.reject(r);if(this[Qk])return Promise.resolve(Rh(void 0,!0));if(this[vm].destroyed)return new Promise(function(u,A){process.nextTick(function(){e[sv]?A(e[sv]):u(Rh(void 0,!0))})});var o=this[Bm],a;if(o)a=new Promise(i2t(o,this));else{var n=this[vm].read();if(n!==null)return Promise.resolve(Rh(n,!1));a=new Promise(this[_j])}return this[Bm]=a,a}},kh(bk,Symbol.asyncIterator,function(){return this}),kh(bk,"return",function(){var e=this;return new Promise(function(r,o){e[vm].destroy(null,function(a){if(a){o(a);return}r(Rh(void 0,!0))})})}),bk),s2t),a2t=function(e){var r,o=Object.create(o2t,(r={},kh(r,vm,{value:e,writable:!0}),kh(r,Fh,{value:null,writable:!0}),kh(r,wm,{value:null,writable:!0}),kh(r,sv,{value:null,writable:!0}),kh(r,Qk,{value:e._readableState.endEmitted,writable:!0}),kh(r,_j,{value:function(n,u){var A=o[vm].read();A?(o[Bm]=null,o[Fh]=null,o[wm]=null,n(Rh(A,!1))):(o[Fh]=n,o[wm]=u)},writable:!0}),r));return o[Bm]=null,t2t(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=o[wm];n!==null&&(o[Bm]=null,o[Fh]=null,o[wm]=null,n(a)),o[sv]=a;return}var u=o[Fh];u!==null&&(o[Bm]=null,o[Fh]=null,o[wm]=null,u(Rh(void 0,!0))),o[Qk]=!0}),e.on("readable",n2t.bind(null,o)),o};P2e.exports=a2t});var F2e=U((vZt,k2e)=>{"use strict";function b2e(t,e,r,o,a,n,u){try{var A=t[n](u),p=A.value}catch(h){r(h);return}A.done?e(p):Promise.resolve(p).then(o,a)}function l2t(t){return function(){var e=this,r=arguments;return new Promise(function(o,a){var n=t.apply(e,r);function u(p){b2e(n,o,a,u,A,"next",p)}function A(p){b2e(n,o,a,u,A,"throw",p)}u(void 0)})}}function Q2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function c2t(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Q2e(Object(r),!0).forEach(function(o){u2t(t,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Q2e(Object(r)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(r,o))})}return t}function u2t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var A2t=xh().codes.ERR_INVALID_ARG_TYPE;function f2t(t,e,r){var o;if(e&&typeof e.next=="function")o=e;else if(e&&e[Symbol.asyncIterator])o=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])o=e[Symbol.iterator]();else throw new A2t("iterable",["Iterable"],e);var a=new t(c2t({objectMode:!0},r)),n=!1;a._read=function(){n||(n=!0,u())};function u(){return A.apply(this,arguments)}function A(){return A=l2t(function*(){try{var p=yield o.next(),h=p.value,E=p.done;E?a.push(null):a.push(yield h)?u():n=!1}catch(w){a.destroy(w)}}),A.apply(this,arguments)}return a}k2e.exports=f2t});var Nj=U((SZt,q2e)=>{"use strict";q2e.exports=pn;var WE;pn.ReadableState=L2e;var DZt=Ie("events").EventEmitter,N2e=function(e,r){return e.listeners(r).length},av=wj(),kk=Ie("buffer").Buffer,p2t=global.Uint8Array||function(){};function h2t(t){return kk.from(t)}function g2t(t){return kk.isBuffer(t)||t instanceof p2t}var Hj=Ie("util"),zr;Hj&&Hj.debuglog?zr=Hj.debuglog("stream"):zr=function(){};var d2t=t2e(),Vj=Dj(),m2t=Sj(),y2t=m2t.getHighWaterMark,Fk=xh().codes,C2t=Fk.ERR_INVALID_ARG_TYPE,E2t=Fk.ERR_STREAM_PUSH_AFTER_EOF,I2t=Fk.ERR_METHOD_NOT_IMPLEMENTED,w2t=Fk.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,YE,qj,jj;bh()(pn,av);var ov=Vj.errorOrDestroy,Gj=["error","close","destroy","pause","resume"];function B2t(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function L2e(t,e,r){WE=WE||Im(),t=t||{},typeof r!="boolean"&&(r=e instanceof WE),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=y2t(this,t,"readableHighWaterMark",r),this.buffer=new d2t,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(YE||(YE=Uj().StringDecoder),this.decoder=new YE(t.encoding),this.encoding=t.encoding)}function pn(t){if(WE=WE||Im(),!(this instanceof pn))return new pn(t);var e=this instanceof WE;this._readableState=new L2e(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),av.call(this)}Object.defineProperty(pn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});pn.prototype.destroy=Vj.destroy;pn.prototype._undestroy=Vj.undestroy;pn.prototype._destroy=function(t,e){e(t)};pn.prototype.push=function(t,e){var r=this._readableState,o;return r.objectMode?o=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=kk.from(t,e),e=""),o=!0),O2e(this,t,e,!1,o)};pn.prototype.unshift=function(t){return O2e(this,t,null,!0,!1)};function O2e(t,e,r,o,a){zr("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,S2t(t,n);else{var u;if(a||(u=v2t(n,e)),u)ov(t,u);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==kk.prototype&&(e=h2t(e)),o)n.endEmitted?ov(t,new w2t):Wj(t,n,e,!0);else if(n.ended)ov(t,new E2t);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?Wj(t,n,e,!1):Kj(t,n)):Wj(t,n,e,!1)}else o||(n.reading=!1,Kj(t,n))}return!n.ended&&(n.length<n.highWaterMark||n.length===0)}function Wj(t,e,r,o){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,t.emit("data",r)):(e.length+=e.objectMode?1:r.length,o?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&Rk(t)),Kj(t,e)}function v2t(t,e){var r;return!g2t(e)&&typeof e!="string"&&e!==void 0&&!t.objectMode&&(r=new C2t("chunk",["string","Buffer","Uint8Array"],e)),r}pn.prototype.isPaused=function(){return this._readableState.flowing===!1};pn.prototype.setEncoding=function(t){YE||(YE=Uj().StringDecoder);var e=new YE(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,o="";r!==null;)o+=e.write(r.data),r=r.next;return this._readableState.buffer.clear(),o!==""&&this._readableState.buffer.push(o),this._readableState.length=o.length,this};var R2e=1073741824;function D2t(t){return t>=R2e?t=R2e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function T2e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=D2t(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}pn.prototype.read=function(t){zr("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return zr("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Yj(this):Rk(this),null;if(t=T2e(t,e),t===0&&e.ended)return e.length===0&&Yj(this),null;var o=e.needReadable;zr("need readable",o),(e.length===0||e.length-t<e.highWaterMark)&&(o=!0,zr("length less than watermark",o)),e.ended||e.reading?(o=!1,zr("reading or ended",o)):o&&(zr("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=T2e(r,e)));var a;return t>0?a=_2e(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Yj(this)),a!==null&&this.emit("data",a),a};function S2t(t,e){if(zr("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?Rk(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,M2e(t)))}}function Rk(t){var e=t._readableState;zr("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(zr("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(M2e,t))}function M2e(t){var e=t._readableState;zr("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,Jj(t)}function Kj(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(P2t,t,e))}function P2t(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var r=e.length;if(zr("maybeReadMore read 0"),t.read(0),r===e.length)break}e.readingMore=!1}pn.prototype._read=function(t){ov(this,new I2t("_read()"))};pn.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t);break}o.pipesCount+=1,zr("pipe count=%d opts=%j",o.pipesCount,e);var a=(!e||e.end!==!1)&&t!==process.stdout&&t!==process.stderr,n=a?A:R;o.endEmitted?process.nextTick(n):r.once("end",n),t.on("unpipe",u);function u(L,_){zr("onunpipe"),L===r&&_&&_.hasUnpiped===!1&&(_.hasUnpiped=!0,E())}function A(){zr("onend"),t.end()}var p=x2t(r);t.on("drain",p);var h=!1;function E(){zr("cleanup"),t.removeListener("close",b),t.removeListener("finish",C),t.removeListener("drain",p),t.removeListener("error",v),t.removeListener("unpipe",u),r.removeListener("end",A),r.removeListener("end",R),r.removeListener("data",w),h=!0,o.awaitDrain&&(!t._writableState||t._writableState.needDrain)&&p()}r.on("data",w);function w(L){zr("ondata");var _=t.write(L);zr("dest.write",_),_===!1&&((o.pipesCount===1&&o.pipes===t||o.pipesCount>1&&H2e(o.pipes,t)!==-1)&&!h&&(zr("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function v(L){zr("onerror",L),R(),t.removeListener("error",v),N2e(t,"error")===0&&ov(t,L)}B2t(t,"error",v);function b(){t.removeListener("finish",C),R()}t.once("close",b);function C(){zr("onfinish"),t.removeListener("close",b),R()}t.once("finish",C);function R(){zr("unpipe"),r.unpipe(t)}return t.emit("pipe",r),o.flowing||(zr("pipe resume"),r.resume()),t};function x2t(t){return function(){var r=t._readableState;zr("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&N2e(t,"data")&&(r.flowing=!0,Jj(t))}}pn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var o=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n<a;n++)o[n].emit("unpipe",this,{hasUnpiped:!1});return this}var u=H2e(e.pipes,t);return u===-1?this:(e.pipes.splice(u,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,r),this)};pn.prototype.on=function(t,e){var r=av.prototype.on.call(this,t,e),o=this._readableState;return t==="data"?(o.readableListening=this.listenerCount("readable")>0,o.flowing!==!1&&this.resume()):t==="readable"&&!o.endEmitted&&!o.readableListening&&(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,zr("on readable",o.length,o.reading),o.length?Rk(this):o.reading||process.nextTick(b2t,this)),r};pn.prototype.addListener=pn.prototype.on;pn.prototype.removeListener=function(t,e){var r=av.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(U2e,this),r};pn.prototype.removeAllListeners=function(t){var e=av.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(U2e,this),e};function U2e(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function b2t(t){zr("readable nexttick read 0"),t.read(0)}pn.prototype.resume=function(){var t=this._readableState;return t.flowing||(zr("resume"),t.flowing=!t.readableListening,Q2t(this,t)),t.paused=!1,this};function Q2t(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(k2t,t,e))}function k2t(t,e){zr("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),Jj(t),e.flowing&&!e.reading&&t.read(0)}pn.prototype.pause=function(){return zr("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(zr("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Jj(t){var e=t._readableState;for(zr("flow",e.flowing);e.flowing&&t.read()!==null;);}pn.prototype.wrap=function(t){var e=this,r=this._readableState,o=!1;t.on("end",function(){if(zr("wrapped end"),r.decoder&&!r.ended){var u=r.decoder.end();u&&u.length&&e.push(u)}e.push(null)}),t.on("data",function(u){if(zr("wrapped data"),r.decoder&&(u=r.decoder.write(u)),!(r.objectMode&&u==null)&&!(!r.objectMode&&(!u||!u.length))){var A=e.push(u);A||(o=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(A){return function(){return t[A].apply(t,arguments)}}(a));for(var n=0;n<Gj.length;n++)t.on(Gj[n],this.emit.bind(this,Gj[n]));return this._read=function(u){zr("wrapped _read",u),o&&(o=!1,t.resume())},this};typeof Symbol=="function"&&(pn.prototype[Symbol.asyncIterator]=function(){return qj===void 0&&(qj=x2e()),qj(this)});Object.defineProperty(pn.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(pn.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(pn.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});pn._fromList=_2e;Object.defineProperty(pn.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function _2e(t,e){if(e.length===0)return null;var r;return e.objectMode?r=e.buffer.shift():!t||t>=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function Yj(t){var e=t._readableState;zr("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(F2t,e,t))}function F2t(t,e){if(zr("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(pn.from=function(t,e){return jj===void 0&&(jj=F2e()),jj(pn,t,e)});function H2e(t,e){for(var r=0,o=t.length;r<o;r++)if(t[r]===e)return r;return-1}});var zj=U((PZt,G2e)=>{"use strict";G2e.exports=sp;var Tk=xh().codes,R2t=Tk.ERR_METHOD_NOT_IMPLEMENTED,T2t=Tk.ERR_MULTIPLE_CALLBACK,N2t=Tk.ERR_TRANSFORM_ALREADY_TRANSFORMING,L2t=Tk.ERR_TRANSFORM_WITH_LENGTH_0,Nk=Im();bh()(sp,Nk);function O2t(t,e){var r=this._transformState;r.transforming=!1;var o=r.writecb;if(o===null)return this.emit("error",new T2t);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),o(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function sp(t){if(!(this instanceof sp))return new sp(t);Nk.call(this,t),this._transformState={afterTransform:O2t.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(typeof t.transform=="function"&&(this._transform=t.transform),typeof t.flush=="function"&&(this._flush=t.flush)),this.on("prefinish",M2t)}function M2t(){var t=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,r){j2e(t,e,r)}):j2e(this,null,null)}sp.prototype.push=function(t,e){return this._transformState.needTransform=!1,Nk.prototype.push.call(this,t,e)};sp.prototype._transform=function(t,e,r){r(new R2t("_transform()"))};sp.prototype._write=function(t,e,r){var o=this._transformState;if(o.writecb=r,o.writechunk=t,o.writeencoding=e,!o.transforming){var a=this._readableState;(o.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};sp.prototype._read=function(t){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};sp.prototype._destroy=function(t,e){Nk.prototype._destroy.call(this,t,function(r){e(r)})};function j2e(t,e,r){if(e)return t.emit("error",e);if(r!=null&&t.push(r),t._writableState.length)throw new L2t;if(t._transformState.transforming)throw new N2t;return t.push(null)}});var K2e=U((xZt,Y2e)=>{"use strict";Y2e.exports=lv;var W2e=zj();bh()(lv,W2e);function lv(t){if(!(this instanceof lv))return new lv(t);W2e.call(this,t)}lv.prototype._transform=function(t,e,r){r(null,t)}});var Z2e=U((bZt,X2e)=>{"use strict";var Xj;function U2t(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var z2e=xh().codes,_2t=z2e.ERR_MISSING_ARGS,H2t=z2e.ERR_STREAM_DESTROYED;function V2e(t){if(t)throw t}function q2t(t){return t.setHeader&&typeof t.abort=="function"}function j2t(t,e,r,o){o=U2t(o);var a=!1;t.on("close",function(){a=!0}),Xj===void 0&&(Xj=xk()),Xj(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,q2t(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();o(u||new H2t("pipe"))}}}function J2e(t){t()}function G2t(t,e){return t.pipe(e)}function W2t(t){return!t.length||typeof t[t.length-1]!="function"?V2e:t.pop()}function Y2t(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var o=W2t(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new _2t("streams");var a,n=e.map(function(u,A){var p=A<e.length-1,h=A>0;return j2t(u,p,h,function(E){a||(a=E),E&&n.forEach(J2e),!p&&(n.forEach(J2e),o(a))})});return e.reduce(G2t)}X2e.exports=Y2t});var KE=U((fc,uv)=>{var cv=Ie("stream");process.env.READABLE_STREAM==="disable"&&cv?(uv.exports=cv.Readable,Object.assign(uv.exports,cv),uv.exports.Stream=cv):(fc=uv.exports=Nj(),fc.Stream=cv||fc,fc.Readable=fc,fc.Writable=Fj(),fc.Duplex=Im(),fc.Transform=zj(),fc.PassThrough=K2e(),fc.finished=xk(),fc.pipeline=Z2e())});var tBe=U((QZt,eBe)=>{"use strict";var{Buffer:hu}=Ie("buffer"),$2e=Symbol.for("BufferList");function Zn(t){if(!(this instanceof Zn))return new Zn(t);Zn._init.call(this,t)}Zn._init=function(e){Object.defineProperty(this,$2e,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};Zn.prototype._new=function(e){return new Zn(e)};Zn.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let o=0;o<this._bufs.length;o++){let a=r+this._bufs[o].length;if(e<a||o===this._bufs.length-1)return[o,e-r];r=a}};Zn.prototype._reverseOffset=function(t){let e=t[0],r=t[1];for(let o=0;o<e;o++)r+=this._bufs[o].length;return r};Zn.prototype.get=function(e){if(e>this.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};Zn.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};Zn.prototype.copy=function(e,r,o,a){if((typeof o!="number"||o<0)&&(o=0),(typeof a!="number"||a>this.length)&&(a=this.length),o>=this.length||a<=0)return e||hu.alloc(0);let n=!!e,u=this._offset(o),A=a-o,p=A,h=n&&r||0,E=u[1];if(o===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:hu.concat(this._bufs,this.length);for(let w=0;w<this._bufs.length;w++)this._bufs[w].copy(e,h),h+=this._bufs[w].length;return e}if(p<=this._bufs[u[0]].length-E)return n?this._bufs[u[0]].copy(e,r,E,E+p):this._bufs[u[0]].slice(E,E+p);n||(e=hu.allocUnsafe(A));for(let w=u[0];w<this._bufs.length;w++){let v=this._bufs[w].length-E;if(p>v)this._bufs[w].copy(e,h,E),h+=v;else{this._bufs[w].copy(e,h,E,E+p),h+=v;break}p-=v,E&&(E=0)}return e.length>h?e.slice(0,h):e};Zn.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let o=this._offset(e),a=this._offset(r),n=this._bufs.slice(o[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),o[1]!==0&&(n[0]=n[0].slice(o[1])),this._new(n)};Zn.prototype.toString=function(e,r,o){return this.slice(r,o).toString(e)};Zn.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};Zn.prototype.duplicate=function(){let e=this._new();for(let r=0;r<this._bufs.length;r++)e.append(this._bufs[r]);return e};Zn.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(hu.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let r=0;r<e.length;r++)this.append(e[r]);else if(this._isBufferList(e))for(let r=0;r<e._bufs.length;r++)this.append(e._bufs[r]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(hu.from(e));return this};Zn.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};Zn.prototype.indexOf=function(t,e,r){if(r===void 0&&typeof e=="string"&&(r=e,e=void 0),typeof t=="function"||Array.isArray(t))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof t=="number"?t=hu.from([t]):typeof t=="string"?t=hu.from(t,r):this._isBufferList(t)?t=t.slice():Array.isArray(t.buffer)?t=hu.from(t.buffer,t.byteOffset,t.byteLength):hu.isBuffer(t)||(t=hu.from(t)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=this._offset(e),a=o[0],n=o[1];for(;a<this._bufs.length;a++){let u=this._bufs[a];for(;n<u.length;)if(u.length-n>=t.length){let p=u.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=u.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};Zn.prototype._match=function(t,e){if(this.length-t<e.length)return!1;for(let r=0;r<e.length;r++)if(this.get(t+r)!==e[r])return!1;return!0};(function(){let t={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in t)(function(r){t[r]===null?Zn.prototype[r]=function(o,a){return this.slice(o,o+a)[r](0,a)}:Zn.prototype[r]=function(o=0){return this.slice(o,o+t[r])[r](0)}})(e)})();Zn.prototype._isBufferList=function(e){return e instanceof Zn||Zn.isBufferList(e)};Zn.isBufferList=function(e){return e!=null&&e[$2e]};eBe.exports=Zn});var rBe=U((kZt,Lk)=>{"use strict";var Zj=KE().Duplex,K2t=bh(),Av=tBe();function Lo(t){if(!(this instanceof Lo))return new Lo(t);if(typeof t=="function"){this._callback=t;let e=function(o){this._callback&&(this._callback(o),this._callback=null)}.bind(this);this.on("pipe",function(o){o.on("error",e)}),this.on("unpipe",function(o){o.removeListener("error",e)}),t=null}Av._init.call(this,t),Zj.call(this)}K2t(Lo,Zj);Object.assign(Lo.prototype,Av.prototype);Lo.prototype._new=function(e){return new Lo(e)};Lo.prototype._write=function(e,r,o){this._appendBuffer(e),typeof o=="function"&&o()};Lo.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Lo.prototype.end=function(e){Zj.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Lo.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Lo.prototype._isBufferList=function(e){return e instanceof Lo||e instanceof Av||Lo.isBufferList(e)};Lo.isBufferList=Av.isBufferList;Lk.exports=Lo;Lk.exports.BufferListStream=Lo;Lk.exports.BufferList=Av});var tG=U(JE=>{var V2t=Buffer.alloc,J2t="0000000000000000000",z2t="7777777777777777777",nBe="0".charCodeAt(0),iBe=Buffer.from("ustar\0","binary"),X2t=Buffer.from("00","binary"),Z2t=Buffer.from("ustar ","binary"),$2t=Buffer.from(" \0","binary"),eBt=parseInt("7777",8),fv=257,eG=263,tBt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},rBt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},nBt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},sBe=function(t,e,r,o){for(;r<o;r++)if(t[r]===e)return r;return o},oBe=function(t){for(var e=256,r=0;r<148;r++)e+=t[r];for(var o=156;o<512;o++)e+=t[o];return e},Th=function(t,e){return t=t.toString(8),t.length>e?z2t.slice(0,e)+" ":J2t.slice(0,e-t.length)+t+" "};function iBt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],o=t.length-1;o>0;o--){var a=t[o];e?r.push(a):r.push(255-a)}var n=0,u=r.length;for(o=0;o<u;o++)n+=r[o]*Math.pow(256,o);return e?n:-1*n}var Nh=function(t,e,r){if(t=t.slice(e,e+r),e=0,t[e]&128)return iBt(t);for(;e<t.length&&t[e]===32;)e++;for(var o=tBt(sBe(t,32,e,t.length),t.length,t.length);e<o&&t[e]===0;)e++;return o===e?0:parseInt(t.slice(e,o).toString(),8)},VE=function(t,e,r,o){return t.slice(e,sBe(t,0,e,e+r)).toString(o)},$j=function(t){var e=Buffer.byteLength(t),r=Math.floor(Math.log(e)/Math.log(10))+1;return e+r>=Math.pow(10,r)&&r++,e+r+t};JE.decodeLongPath=function(t,e){return VE(t,0,t.length,e)};JE.encodePax=function(t){var e="";t.name&&(e+=$j(" path="+t.name+` 379`,b}function kwt(t,e){return e.fs_.chmod(t,493)}function Aj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(Ac.delimiter):Array.from(t),r={};for(let o=0;o<e.length;o++){let a=e[o].split("/").join("\\"),n=Q1e()?e[o].split("\\").join("/").replace(/^([^:\\/]*):/,(u,A)=>`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}F1e.exports=uj});var vj=U((CZt,$1e)=>{$1e.exports=Ie("stream")});var n2e=U((IZt,r2e)=>{"use strict";function e2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function Xwt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?e2e(Object(r),!0).forEach(function(o){Zwt(t,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e2e(Object(r)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(r,o))})}return t}function Zwt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function $wt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function t2e(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function e1t(t,e,r){return e&&t2e(t.prototype,e),r&&t2e(t,r),t}var t1t=Ie("buffer"),vk=t1t.Buffer,r1t=Ie("util"),Dj=r1t.inspect,n1t=Dj&&Dj.custom||"inspect";function i1t(t,e,r){vk.prototype.copy.call(t,e,r)}r2e.exports=function(){function t(){$wt(this,t),this.head=null,this.tail=null,this.length=0}return e1t(t,[{key:"push",value:function(r){var o={data:r,next:null};this.length>0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return vk.alloc(0);for(var o=vk.allocUnsafe(r>>>0),a=this.head,n=0;a;)i1t(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return r<this.head.data.length?(a=this.head.data.slice(0,r),this.head.data=this.head.data.slice(r)):r===this.head.data.length?a=this.shift():a=o?this._getString(r):this._getBuffer(r),a}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(r){var o=this.head,a=1,n=o.data;for(r-=n.length;o=o.next;){var u=o.data,A=r>u.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=vk.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:n1t,value:function(r,o){return Dj(this,Xwt({},o,{depth:0,customInspect:!1}))}}]),t}()});var Pj=U((wZt,s2e)=>{"use strict";function s1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Sj,this,t)):process.nextTick(Sj,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(Dk,r):(r._writableState.errorEmitted=!0,process.nextTick(i2e,r,n)):process.nextTick(i2e,r,n):e?(process.nextTick(Dk,r),e(n)):process.nextTick(Dk,r)}),this)}function i2e(t,e){Sj(t,e),Dk(t)}function Dk(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function o1t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Sj(t,e){t.emit("error",e)}function a1t(t,e){var r=t._readableState,o=t._writableState;r&&r.autoDestroy||o&&o.autoDestroy?t.destroy(e):t.emit("error",e)}s2e.exports={destroy:s1t,undestroy:o1t,errorOrDestroy:a1t}});var bh=U((BZt,l2e)=>{"use strict";var a2e={};function fc(t,e,r){r||(r=Error);function o(n,u,A){return typeof e=="string"?e:e(n,u,A)}class a extends r{constructor(u,A,p){super(o(u,A,p))}}a.prototype.name=r.name,a.prototype.code=t,a2e[t]=a}function o2e(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(o=>String(o)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function l1t(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function c1t(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function u1t(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}fc("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);fc("ERR_INVALID_ARG_TYPE",function(t,e,r){let o;typeof e=="string"&&l1t(e,"not ")?(o="must not be",e=e.replace(/^not /,"")):o="must be";let a;if(c1t(t," argument"))a=`The ${t} ${o} ${o2e(e,"type")}`;else{let n=u1t(t,".")?"property":"argument";a=`The "${t}" ${n} ${o} ${o2e(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);fc("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");fc("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});fc("ERR_STREAM_PREMATURE_CLOSE","Premature close");fc("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});fc("ERR_MULTIPLE_CALLBACK","Callback called multiple times");fc("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");fc("ERR_STREAM_WRITE_AFTER_END","write after end");fc("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);fc("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);fc("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");l2e.exports.codes=a2e});var xj=U((vZt,c2e)=>{"use strict";var A1t=bh().codes.ERR_INVALID_OPT_VALUE;function f1t(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function p1t(t,e,r,o){var a=f1t(e,o,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=o?r:"highWaterMark";throw new A1t(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}c2e.exports={getHighWaterMark:p1t}});var u2e=U((DZt,bj)=>{typeof Object.create=="function"?bj.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:bj.exports=function(e,r){if(r){e.super_=r;var o=function(){};o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e}}});var Qh=U((SZt,kj)=>{try{if(Qj=Ie("util"),typeof Qj.inherits!="function")throw"";kj.exports=Qj.inherits}catch{kj.exports=u2e()}var Qj});var f2e=U((PZt,A2e)=>{A2e.exports=Ie("util").deprecate});var Tj=U((xZt,y2e)=>{"use strict";y2e.exports=Qi;function h2e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){_1t(e,t)}}var qC;Qi.WritableState=sv;var h1t={deprecate:f2e()},g2e=vj(),Pk=Ie("buffer").Buffer,g1t=global.Uint8Array||function(){};function d1t(t){return Pk.from(t)}function m1t(t){return Pk.isBuffer(t)||t instanceof g1t}var Rj=Pj(),y1t=xj(),E1t=y1t.getHighWaterMark,kh=bh().codes,C1t=kh.ERR_INVALID_ARG_TYPE,I1t=kh.ERR_METHOD_NOT_IMPLEMENTED,w1t=kh.ERR_MULTIPLE_CALLBACK,B1t=kh.ERR_STREAM_CANNOT_PIPE,v1t=kh.ERR_STREAM_DESTROYED,D1t=kh.ERR_STREAM_NULL_VALUES,S1t=kh.ERR_STREAM_WRITE_AFTER_END,P1t=kh.ERR_UNKNOWN_ENCODING,jC=Rj.errorOrDestroy;Qh()(Qi,g2e);function x1t(){}function sv(t,e,r){qC=qC||Im(),t=t||{},typeof r!="boolean"&&(r=e instanceof qC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=E1t(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){N1t(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new h2e(this)}sv.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(sv.prototype,"buffer",{get:h1t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Sk;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Sk=Function.prototype[Symbol.hasInstance],Object.defineProperty(Qi,Symbol.hasInstance,{value:function(e){return Sk.call(this,e)?!0:this!==Qi?!1:e&&e._writableState instanceof sv}})):Sk=function(e){return e instanceof this};function Qi(t){qC=qC||Im();var e=this instanceof qC;if(!e&&!Sk.call(Qi,this))return new Qi(t);this._writableState=new sv(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),g2e.call(this)}Qi.prototype.pipe=function(){jC(this,new B1t)};function b1t(t,e){var r=new S1t;jC(t,r),process.nextTick(e,r)}function Q1t(t,e,r,o){var a;return r===null?a=new D1t:typeof r!="string"&&!e.objectMode&&(a=new C1t("chunk",["string","Buffer"],r)),a?(jC(t,a),process.nextTick(o,a),!1):!0}Qi.prototype.write=function(t,e,r){var o=this._writableState,a=!1,n=!o.objectMode&&m1t(t);return n&&!Pk.isBuffer(t)&&(t=d1t(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=o.defaultEncoding),typeof r!="function"&&(r=x1t),o.ending?b1t(this,r):(n||Q1t(this,o,t,r))&&(o.pendingcb++,a=F1t(this,o,n,t,e,r)),a};Qi.prototype.cork=function(){this._writableState.corked++};Qi.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&d2e(this,t))};Qi.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new P1t(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Qi.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function k1t(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=Pk.from(e,r)),e}Object.defineProperty(Qi.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function F1t(t,e,r,o,a,n){if(!r){var u=k1t(e,o,a);o!==u&&(r=!0,a="buffer",o=u)}var A=e.objectMode?1:o.length;e.length+=A;var p=e.length<e.highWaterMark;if(p||(e.needDrain=!0),e.writing||e.corked){var h=e.lastBufferedRequest;e.lastBufferedRequest={chunk:o,encoding:a,isBuf:r,callback:n,next:null},h?h.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else Fj(t,e,!1,A,o,a,n);return p}function Fj(t,e,r,o,a,n,u){e.writelen=o,e.writecb=u,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new v1t("write")):r?t._writev(a,e.onwrite):t._write(a,n,e.onwrite),e.sync=!1}function R1t(t,e,r,o,a){--e.pendingcb,r?(process.nextTick(a,o),process.nextTick(iv,t,e),t._writableState.errorEmitted=!0,jC(t,o)):(a(o),t._writableState.errorEmitted=!0,jC(t,o),iv(t,e))}function T1t(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}function N1t(t,e){var r=t._writableState,o=r.sync,a=r.writecb;if(typeof a!="function")throw new w1t;if(T1t(r),e)R1t(t,r,o,e,a);else{var n=m2e(r)||t.destroyed;!n&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&d2e(t,r),o?process.nextTick(p2e,t,r,n,a):p2e(t,r,n,a)}}function p2e(t,e,r,o){r||L1t(t,e),e.pendingcb--,o(),iv(t,e)}function L1t(t,e){e.length===0&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}function d2e(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var o=e.bufferedRequestCount,a=new Array(o),n=e.corkedRequestsFree;n.entry=r;for(var u=0,A=!0;r;)a[u]=r,r.isBuf||(A=!1),r=r.next,u+=1;a.allBuffers=A,Fj(t,e,!0,e.length,a,"",n.finish),e.pendingcb++,e.lastBufferedRequest=null,n.next?(e.corkedRequestsFree=n.next,n.next=null):e.corkedRequestsFree=new h2e(e),e.bufferedRequestCount=0}else{for(;r;){var p=r.chunk,h=r.encoding,C=r.callback,w=e.objectMode?1:p.length;if(Fj(t,e,!1,w,p,h,C),r=r.next,e.bufferedRequestCount--,e.writing)break}r===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}Qi.prototype._write=function(t,e,r){r(new I1t("_write()"))};Qi.prototype._writev=null;Qi.prototype.end=function(t,e,r){var o=this._writableState;return typeof t=="function"?(r=t,t=null,e=null):typeof e=="function"&&(r=e,e=null),t!=null&&this.write(t,e),o.corked&&(o.corked=1,this.uncork()),o.ending||U1t(this,o,r),this};Object.defineProperty(Qi.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function m2e(t){return t.ending&&t.length===0&&t.bufferedRequest===null&&!t.finished&&!t.writing}function O1t(t,e){t._final(function(r){e.pendingcb--,r&&jC(t,r),e.prefinished=!0,t.emit("prefinish"),iv(t,e)})}function M1t(t,e){!e.prefinished&&!e.finalCalled&&(typeof t._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(O1t,t,e)):(e.prefinished=!0,t.emit("prefinish")))}function iv(t,e){var r=m2e(e);if(r&&(M1t(t,e),e.pendingcb===0&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var o=t._readableState;(!o||o.autoDestroy&&o.endEmitted)&&t.destroy()}return r}function U1t(t,e,r){e.ending=!0,iv(t,e),r&&(e.finished?process.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}function _1t(t,e,r){var o=t.entry;for(t.entry=null;o;){var a=o.callback;e.pendingcb--,a(r),o=o.next}e.corkedRequestsFree.next=t}Object.defineProperty(Qi.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){!this._writableState||(this._writableState.destroyed=e)}});Qi.prototype.destroy=Rj.destroy;Qi.prototype._undestroy=Rj.undestroy;Qi.prototype._destroy=function(t,e){e(t)}});var Im=U((bZt,C2e)=>{"use strict";var H1t=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};C2e.exports=wA;var E2e=Oj(),Lj=Tj();Qh()(wA,E2e);for(Nj=H1t(Lj.prototype),xk=0;xk<Nj.length;xk++)bk=Nj[xk],wA.prototype[bk]||(wA.prototype[bk]=Lj.prototype[bk]);var Nj,bk,xk;function wA(t){if(!(this instanceof wA))return new wA(t);E2e.call(this,t),Lj.call(this,t),this.allowHalfOpen=!0,t&&(t.readable===!1&&(this.readable=!1),t.writable===!1&&(this.writable=!1),t.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",q1t)))}Object.defineProperty(wA.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(wA.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(wA.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function q1t(){this._writableState.ended||process.nextTick(j1t,this)}function j1t(t){t.end()}Object.defineProperty(wA.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var B2e=U((Mj,w2e)=>{var Qk=Ie("buffer"),op=Qk.Buffer;function I2e(t,e){for(var r in t)e[r]=t[r]}op.from&&op.alloc&&op.allocUnsafe&&op.allocUnsafeSlow?w2e.exports=Qk:(I2e(Qk,Mj),Mj.Buffer=GC);function GC(t,e,r){return op(t,e,r)}I2e(op,GC);GC.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return op(t,e,r)};GC.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=op(t);return e!==void 0?typeof r=="string"?o.fill(e,r):o.fill(e):o.fill(0),o};GC.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return op(t)};GC.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Qk.SlowBuffer(t)}});var Hj=U(D2e=>{"use strict";var _j=B2e().Buffer,v2e=_j.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function G1t(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function W1t(t){var e=G1t(t);if(typeof e!="string"&&(_j.isEncoding===v2e||!v2e(t)))throw new Error("Unknown encoding: "+t);return e||t}D2e.StringDecoder=ov;function ov(t){this.encoding=W1t(t);var e;switch(this.encoding){case"utf16le":this.text=X1t,this.end=Z1t,e=4;break;case"utf8":this.fillLast=V1t,e=4;break;case"base64":this.text=$1t,this.end=e2t,e=3;break;default:this.write=t2t,this.end=r2t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=_j.allocUnsafe(e)}ov.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||""};ov.prototype.end=z1t;ov.prototype.text=J1t;ov.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function Uj(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function Y1t(t,e,r){var o=e.length-1;if(o<r)return 0;var a=Uj(e[o]);return a>=0?(a>0&&(t.lastNeed=a-1),a):--o<r||a===-2?0:(a=Uj(e[o]),a>=0?(a>0&&(t.lastNeed=a-2),a):--o<r||a===-2?0:(a=Uj(e[o]),a>=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function K1t(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function V1t(t){var e=this.lastTotal-this.lastNeed,r=K1t(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function J1t(t,e){var r=Y1t(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var o=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,o),t.toString("utf8",e,o)}function z1t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function X1t(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var o=r.charCodeAt(r.length-1);if(o>=55296&&o<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function Z1t(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function $1t(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function e2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function t2t(t){return t.toString(this.encoding)}function r2t(t){return t&&t.length?this.write(t):""}});var kk=U((kZt,x2e)=>{"use strict";var S2e=bh().codes.ERR_STREAM_PREMATURE_CLOSE;function n2t(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];t.apply(this,o)}}}function i2t(){}function s2t(t){return t.setHeader&&typeof t.abort=="function"}function P2e(t,e,r){if(typeof e=="function")return P2e(t,null,e);e||(e={}),r=n2t(r||i2t);var o=e.readable||e.readable!==!1&&t.readable,a=e.writable||e.writable!==!1&&t.writable,n=function(){t.writable||A()},u=t._writableState&&t._writableState.finished,A=function(){a=!1,u=!0,o||r.call(t)},p=t._readableState&&t._readableState.endEmitted,h=function(){o=!1,p=!0,a||r.call(t)},C=function(E){r.call(t,E)},w=function(){var E;if(o&&!p)return(!t._readableState||!t._readableState.ended)&&(E=new S2e),r.call(t,E);if(a&&!u)return(!t._writableState||!t._writableState.ended)&&(E=new S2e),r.call(t,E)},v=function(){t.req.on("finish",A)};return s2t(t)?(t.on("complete",A),t.on("abort",w),t.req?v():t.on("request",v)):a&&!t._writableState&&(t.on("end",n),t.on("close",n)),t.on("end",h),t.on("finish",A),e.error!==!1&&t.on("error",C),t.on("close",w),function(){t.removeListener("complete",A),t.removeListener("abort",w),t.removeListener("request",v),t.req&&t.req.removeListener("finish",A),t.removeListener("end",n),t.removeListener("close",n),t.removeListener("finish",A),t.removeListener("end",h),t.removeListener("error",C),t.removeListener("close",w)}}x2e.exports=P2e});var Q2e=U((FZt,b2e)=>{"use strict";var Fk;function Fh(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o2t=kk(),Rh=Symbol("lastResolve"),wm=Symbol("lastReject"),av=Symbol("error"),Rk=Symbol("ended"),Bm=Symbol("lastPromise"),qj=Symbol("handlePromise"),vm=Symbol("stream");function Th(t,e){return{value:t,done:e}}function a2t(t){var e=t[Rh];if(e!==null){var r=t[vm].read();r!==null&&(t[Bm]=null,t[Rh]=null,t[wm]=null,e(Th(r,!1)))}}function l2t(t){process.nextTick(a2t,t)}function c2t(t,e){return function(r,o){t.then(function(){if(e[Rk]){r(Th(void 0,!0));return}e[qj](r,o)},o)}}var u2t=Object.getPrototypeOf(function(){}),A2t=Object.setPrototypeOf((Fk={get stream(){return this[vm]},next:function(){var e=this,r=this[av];if(r!==null)return Promise.reject(r);if(this[Rk])return Promise.resolve(Th(void 0,!0));if(this[vm].destroyed)return new Promise(function(u,A){process.nextTick(function(){e[av]?A(e[av]):u(Th(void 0,!0))})});var o=this[Bm],a;if(o)a=new Promise(c2t(o,this));else{var n=this[vm].read();if(n!==null)return Promise.resolve(Th(n,!1));a=new Promise(this[qj])}return this[Bm]=a,a}},Fh(Fk,Symbol.asyncIterator,function(){return this}),Fh(Fk,"return",function(){var e=this;return new Promise(function(r,o){e[vm].destroy(null,function(a){if(a){o(a);return}r(Th(void 0,!0))})})}),Fk),u2t),f2t=function(e){var r,o=Object.create(A2t,(r={},Fh(r,vm,{value:e,writable:!0}),Fh(r,Rh,{value:null,writable:!0}),Fh(r,wm,{value:null,writable:!0}),Fh(r,av,{value:null,writable:!0}),Fh(r,Rk,{value:e._readableState.endEmitted,writable:!0}),Fh(r,qj,{value:function(n,u){var A=o[vm].read();A?(o[Bm]=null,o[Rh]=null,o[wm]=null,n(Th(A,!1))):(o[Rh]=n,o[wm]=u)},writable:!0}),r));return o[Bm]=null,o2t(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=o[wm];n!==null&&(o[Bm]=null,o[Rh]=null,o[wm]=null,n(a)),o[av]=a;return}var u=o[Rh];u!==null&&(o[Bm]=null,o[Rh]=null,o[wm]=null,u(Th(void 0,!0))),o[Rk]=!0}),e.on("readable",l2t.bind(null,o)),o};b2e.exports=f2t});var T2e=U((RZt,R2e)=>{"use strict";function k2e(t,e,r,o,a,n,u){try{var A=t[n](u),p=A.value}catch(h){r(h);return}A.done?e(p):Promise.resolve(p).then(o,a)}function p2t(t){return function(){var e=this,r=arguments;return new Promise(function(o,a){var n=t.apply(e,r);function u(p){k2e(n,o,a,u,A,"next",p)}function A(p){k2e(n,o,a,u,A,"throw",p)}u(void 0)})}}function F2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function h2t(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?F2e(Object(r),!0).forEach(function(o){g2t(t,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):F2e(Object(r)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(r,o))})}return t}function g2t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var d2t=bh().codes.ERR_INVALID_ARG_TYPE;function m2t(t,e,r){var o;if(e&&typeof e.next=="function")o=e;else if(e&&e[Symbol.asyncIterator])o=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])o=e[Symbol.iterator]();else throw new d2t("iterable",["Iterable"],e);var a=new t(h2t({objectMode:!0},r)),n=!1;a._read=function(){n||(n=!0,u())};function u(){return A.apply(this,arguments)}function A(){return A=p2t(function*(){try{var p=yield o.next(),h=p.value,C=p.done;C?a.push(null):a.push(yield h)?u():n=!1}catch(w){a.destroy(w)}}),A.apply(this,arguments)}return a}R2e.exports=m2t});var Oj=U((NZt,G2e)=>{"use strict";G2e.exports=pn;var WC;pn.ReadableState=M2e;var TZt=Ie("events").EventEmitter,O2e=function(e,r){return e.listeners(r).length},cv=vj(),Tk=Ie("buffer").Buffer,y2t=global.Uint8Array||function(){};function E2t(t){return Tk.from(t)}function C2t(t){return Tk.isBuffer(t)||t instanceof y2t}var jj=Ie("util"),zr;jj&&jj.debuglog?zr=jj.debuglog("stream"):zr=function(){};var I2t=n2e(),zj=Pj(),w2t=xj(),B2t=w2t.getHighWaterMark,Nk=bh().codes,v2t=Nk.ERR_INVALID_ARG_TYPE,D2t=Nk.ERR_STREAM_PUSH_AFTER_EOF,S2t=Nk.ERR_METHOD_NOT_IMPLEMENTED,P2t=Nk.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,YC,Gj,Wj;Qh()(pn,cv);var lv=zj.errorOrDestroy,Yj=["error","close","destroy","pause","resume"];function x2t(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function M2e(t,e,r){WC=WC||Im(),t=t||{},typeof r!="boolean"&&(r=e instanceof WC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=B2t(this,t,"readableHighWaterMark",r),this.buffer=new I2t,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(YC||(YC=Hj().StringDecoder),this.decoder=new YC(t.encoding),this.encoding=t.encoding)}function pn(t){if(WC=WC||Im(),!(this instanceof pn))return new pn(t);var e=this instanceof WC;this._readableState=new M2e(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),cv.call(this)}Object.defineProperty(pn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});pn.prototype.destroy=zj.destroy;pn.prototype._undestroy=zj.undestroy;pn.prototype._destroy=function(t,e){e(t)};pn.prototype.push=function(t,e){var r=this._readableState,o;return r.objectMode?o=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=Tk.from(t,e),e=""),o=!0),U2e(this,t,e,!1,o)};pn.prototype.unshift=function(t){return U2e(this,t,null,!0,!1)};function U2e(t,e,r,o,a){zr("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,k2t(t,n);else{var u;if(a||(u=b2t(n,e)),u)lv(t,u);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==Tk.prototype&&(e=E2t(e)),o)n.endEmitted?lv(t,new P2t):Kj(t,n,e,!0);else if(n.ended)lv(t,new D2t);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?Kj(t,n,e,!1):Jj(t,n)):Kj(t,n,e,!1)}else o||(n.reading=!1,Jj(t,n))}return!n.ended&&(n.length<n.highWaterMark||n.length===0)}function Kj(t,e,r,o){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,t.emit("data",r)):(e.length+=e.objectMode?1:r.length,o?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&Lk(t)),Jj(t,e)}function b2t(t,e){var r;return!C2t(e)&&typeof e!="string"&&e!==void 0&&!t.objectMode&&(r=new v2t("chunk",["string","Buffer","Uint8Array"],e)),r}pn.prototype.isPaused=function(){return this._readableState.flowing===!1};pn.prototype.setEncoding=function(t){YC||(YC=Hj().StringDecoder);var e=new YC(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,o="";r!==null;)o+=e.write(r.data),r=r.next;return this._readableState.buffer.clear(),o!==""&&this._readableState.buffer.push(o),this._readableState.length=o.length,this};var N2e=1073741824;function Q2t(t){return t>=N2e?t=N2e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function L2e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=Q2t(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}pn.prototype.read=function(t){zr("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return zr("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Vj(this):Lk(this),null;if(t=L2e(t,e),t===0&&e.ended)return e.length===0&&Vj(this),null;var o=e.needReadable;zr("need readable",o),(e.length===0||e.length-t<e.highWaterMark)&&(o=!0,zr("length less than watermark",o)),e.ended||e.reading?(o=!1,zr("reading or ended",o)):o&&(zr("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=L2e(r,e)));var a;return t>0?a=q2e(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Vj(this)),a!==null&&this.emit("data",a),a};function k2t(t,e){if(zr("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?Lk(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,_2e(t)))}}function Lk(t){var e=t._readableState;zr("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(zr("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(_2e,t))}function _2e(t){var e=t._readableState;zr("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,Xj(t)}function Jj(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(F2t,t,e))}function F2t(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var r=e.length;if(zr("maybeReadMore read 0"),t.read(0),r===e.length)break}e.readingMore=!1}pn.prototype._read=function(t){lv(this,new S2t("_read()"))};pn.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t);break}o.pipesCount+=1,zr("pipe count=%d opts=%j",o.pipesCount,e);var a=(!e||e.end!==!1)&&t!==process.stdout&&t!==process.stderr,n=a?A:R;o.endEmitted?process.nextTick(n):r.once("end",n),t.on("unpipe",u);function u(L,_){zr("onunpipe"),L===r&&_&&_.hasUnpiped===!1&&(_.hasUnpiped=!0,C())}function A(){zr("onend"),t.end()}var p=R2t(r);t.on("drain",p);var h=!1;function C(){zr("cleanup"),t.removeListener("close",b),t.removeListener("finish",E),t.removeListener("drain",p),t.removeListener("error",v),t.removeListener("unpipe",u),r.removeListener("end",A),r.removeListener("end",R),r.removeListener("data",w),h=!0,o.awaitDrain&&(!t._writableState||t._writableState.needDrain)&&p()}r.on("data",w);function w(L){zr("ondata");var _=t.write(L);zr("dest.write",_),_===!1&&((o.pipesCount===1&&o.pipes===t||o.pipesCount>1&&j2e(o.pipes,t)!==-1)&&!h&&(zr("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function v(L){zr("onerror",L),R(),t.removeListener("error",v),O2e(t,"error")===0&&lv(t,L)}x2t(t,"error",v);function b(){t.removeListener("finish",E),R()}t.once("close",b);function E(){zr("onfinish"),t.removeListener("close",b),R()}t.once("finish",E);function R(){zr("unpipe"),r.unpipe(t)}return t.emit("pipe",r),o.flowing||(zr("pipe resume"),r.resume()),t};function R2t(t){return function(){var r=t._readableState;zr("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&O2e(t,"data")&&(r.flowing=!0,Xj(t))}}pn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var o=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n<a;n++)o[n].emit("unpipe",this,{hasUnpiped:!1});return this}var u=j2e(e.pipes,t);return u===-1?this:(e.pipes.splice(u,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,r),this)};pn.prototype.on=function(t,e){var r=cv.prototype.on.call(this,t,e),o=this._readableState;return t==="data"?(o.readableListening=this.listenerCount("readable")>0,o.flowing!==!1&&this.resume()):t==="readable"&&!o.endEmitted&&!o.readableListening&&(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,zr("on readable",o.length,o.reading),o.length?Lk(this):o.reading||process.nextTick(T2t,this)),r};pn.prototype.addListener=pn.prototype.on;pn.prototype.removeListener=function(t,e){var r=cv.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(H2e,this),r};pn.prototype.removeAllListeners=function(t){var e=cv.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(H2e,this),e};function H2e(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function T2t(t){zr("readable nexttick read 0"),t.read(0)}pn.prototype.resume=function(){var t=this._readableState;return t.flowing||(zr("resume"),t.flowing=!t.readableListening,N2t(this,t)),t.paused=!1,this};function N2t(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(L2t,t,e))}function L2t(t,e){zr("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),Xj(t),e.flowing&&!e.reading&&t.read(0)}pn.prototype.pause=function(){return zr("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(zr("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Xj(t){var e=t._readableState;for(zr("flow",e.flowing);e.flowing&&t.read()!==null;);}pn.prototype.wrap=function(t){var e=this,r=this._readableState,o=!1;t.on("end",function(){if(zr("wrapped end"),r.decoder&&!r.ended){var u=r.decoder.end();u&&u.length&&e.push(u)}e.push(null)}),t.on("data",function(u){if(zr("wrapped data"),r.decoder&&(u=r.decoder.write(u)),!(r.objectMode&&u==null)&&!(!r.objectMode&&(!u||!u.length))){var A=e.push(u);A||(o=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(A){return function(){return t[A].apply(t,arguments)}}(a));for(var n=0;n<Yj.length;n++)t.on(Yj[n],this.emit.bind(this,Yj[n]));return this._read=function(u){zr("wrapped _read",u),o&&(o=!1,t.resume())},this};typeof Symbol=="function"&&(pn.prototype[Symbol.asyncIterator]=function(){return Gj===void 0&&(Gj=Q2e()),Gj(this)});Object.defineProperty(pn.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(pn.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(pn.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});pn._fromList=q2e;Object.defineProperty(pn.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function q2e(t,e){if(e.length===0)return null;var r;return e.objectMode?r=e.buffer.shift():!t||t>=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function Vj(t){var e=t._readableState;zr("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(O2t,e,t))}function O2t(t,e){if(zr("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(pn.from=function(t,e){return Wj===void 0&&(Wj=T2e()),Wj(pn,t,e)});function j2e(t,e){for(var r=0,o=t.length;r<o;r++)if(t[r]===e)return r;return-1}});var Zj=U((LZt,Y2e)=>{"use strict";Y2e.exports=ap;var Ok=bh().codes,M2t=Ok.ERR_METHOD_NOT_IMPLEMENTED,U2t=Ok.ERR_MULTIPLE_CALLBACK,_2t=Ok.ERR_TRANSFORM_ALREADY_TRANSFORMING,H2t=Ok.ERR_TRANSFORM_WITH_LENGTH_0,Mk=Im();Qh()(ap,Mk);function q2t(t,e){var r=this._transformState;r.transforming=!1;var o=r.writecb;if(o===null)return this.emit("error",new U2t);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),o(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function ap(t){if(!(this instanceof ap))return new ap(t);Mk.call(this,t),this._transformState={afterTransform:q2t.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(typeof t.transform=="function"&&(this._transform=t.transform),typeof t.flush=="function"&&(this._flush=t.flush)),this.on("prefinish",j2t)}function j2t(){var t=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,r){W2e(t,e,r)}):W2e(this,null,null)}ap.prototype.push=function(t,e){return this._transformState.needTransform=!1,Mk.prototype.push.call(this,t,e)};ap.prototype._transform=function(t,e,r){r(new M2t("_transform()"))};ap.prototype._write=function(t,e,r){var o=this._transformState;if(o.writecb=r,o.writechunk=t,o.writeencoding=e,!o.transforming){var a=this._readableState;(o.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};ap.prototype._read=function(t){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};ap.prototype._destroy=function(t,e){Mk.prototype._destroy.call(this,t,function(r){e(r)})};function W2e(t,e,r){if(e)return t.emit("error",e);if(r!=null&&t.push(r),t._writableState.length)throw new H2t;if(t._transformState.transforming)throw new _2t;return t.push(null)}});var J2e=U((OZt,V2e)=>{"use strict";V2e.exports=uv;var K2e=Zj();Qh()(uv,K2e);function uv(t){if(!(this instanceof uv))return new uv(t);K2e.call(this,t)}uv.prototype._transform=function(t,e,r){r(null,t)}});var eBe=U((MZt,$2e)=>{"use strict";var $j;function G2t(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var Z2e=bh().codes,W2t=Z2e.ERR_MISSING_ARGS,Y2t=Z2e.ERR_STREAM_DESTROYED;function z2e(t){if(t)throw t}function K2t(t){return t.setHeader&&typeof t.abort=="function"}function V2t(t,e,r,o){o=G2t(o);var a=!1;t.on("close",function(){a=!0}),$j===void 0&&($j=kk()),$j(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,K2t(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();o(u||new Y2t("pipe"))}}}function X2e(t){t()}function J2t(t,e){return t.pipe(e)}function z2t(t){return!t.length||typeof t[t.length-1]!="function"?z2e:t.pop()}function X2t(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var o=z2t(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new W2t("streams");var a,n=e.map(function(u,A){var p=A<e.length-1,h=A>0;return V2t(u,p,h,function(C){a||(a=C),C&&n.forEach(X2e),!p&&(n.forEach(X2e),o(a))})});return e.reduce(J2t)}$2e.exports=X2t});var KC=U((pc,fv)=>{var Av=Ie("stream");process.env.READABLE_STREAM==="disable"&&Av?(fv.exports=Av.Readable,Object.assign(fv.exports,Av),fv.exports.Stream=Av):(pc=fv.exports=Oj(),pc.Stream=Av||pc,pc.Readable=pc,pc.Writable=Tj(),pc.Duplex=Im(),pc.Transform=Zj(),pc.PassThrough=J2e(),pc.finished=kk(),pc.pipeline=eBe())});var nBe=U((UZt,rBe)=>{"use strict";var{Buffer:hu}=Ie("buffer"),tBe=Symbol.for("BufferList");function Zn(t){if(!(this instanceof Zn))return new Zn(t);Zn._init.call(this,t)}Zn._init=function(e){Object.defineProperty(this,tBe,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};Zn.prototype._new=function(e){return new Zn(e)};Zn.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let o=0;o<this._bufs.length;o++){let a=r+this._bufs[o].length;if(e<a||o===this._bufs.length-1)return[o,e-r];r=a}};Zn.prototype._reverseOffset=function(t){let e=t[0],r=t[1];for(let o=0;o<e;o++)r+=this._bufs[o].length;return r};Zn.prototype.get=function(e){if(e>this.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};Zn.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};Zn.prototype.copy=function(e,r,o,a){if((typeof o!="number"||o<0)&&(o=0),(typeof a!="number"||a>this.length)&&(a=this.length),o>=this.length||a<=0)return e||hu.alloc(0);let n=!!e,u=this._offset(o),A=a-o,p=A,h=n&&r||0,C=u[1];if(o===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:hu.concat(this._bufs,this.length);for(let w=0;w<this._bufs.length;w++)this._bufs[w].copy(e,h),h+=this._bufs[w].length;return e}if(p<=this._bufs[u[0]].length-C)return n?this._bufs[u[0]].copy(e,r,C,C+p):this._bufs[u[0]].slice(C,C+p);n||(e=hu.allocUnsafe(A));for(let w=u[0];w<this._bufs.length;w++){let v=this._bufs[w].length-C;if(p>v)this._bufs[w].copy(e,h,C),h+=v;else{this._bufs[w].copy(e,h,C,C+p),h+=v;break}p-=v,C&&(C=0)}return e.length>h?e.slice(0,h):e};Zn.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let o=this._offset(e),a=this._offset(r),n=this._bufs.slice(o[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),o[1]!==0&&(n[0]=n[0].slice(o[1])),this._new(n)};Zn.prototype.toString=function(e,r,o){return this.slice(r,o).toString(e)};Zn.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};Zn.prototype.duplicate=function(){let e=this._new();for(let r=0;r<this._bufs.length;r++)e.append(this._bufs[r]);return e};Zn.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(hu.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let r=0;r<e.length;r++)this.append(e[r]);else if(this._isBufferList(e))for(let r=0;r<e._bufs.length;r++)this.append(e._bufs[r]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(hu.from(e));return this};Zn.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};Zn.prototype.indexOf=function(t,e,r){if(r===void 0&&typeof e=="string"&&(r=e,e=void 0),typeof t=="function"||Array.isArray(t))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof t=="number"?t=hu.from([t]):typeof t=="string"?t=hu.from(t,r):this._isBufferList(t)?t=t.slice():Array.isArray(t.buffer)?t=hu.from(t.buffer,t.byteOffset,t.byteLength):hu.isBuffer(t)||(t=hu.from(t)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=this._offset(e),a=o[0],n=o[1];for(;a<this._bufs.length;a++){let u=this._bufs[a];for(;n<u.length;)if(u.length-n>=t.length){let p=u.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=u.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};Zn.prototype._match=function(t,e){if(this.length-t<e.length)return!1;for(let r=0;r<e.length;r++)if(this.get(t+r)!==e[r])return!1;return!0};(function(){let t={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in t)(function(r){t[r]===null?Zn.prototype[r]=function(o,a){return this.slice(o,o+a)[r](0,a)}:Zn.prototype[r]=function(o=0){return this.slice(o,o+t[r])[r](0)}})(e)})();Zn.prototype._isBufferList=function(e){return e instanceof Zn||Zn.isBufferList(e)};Zn.isBufferList=function(e){return e!=null&&e[tBe]};rBe.exports=Zn});var iBe=U((_Zt,Uk)=>{"use strict";var eG=KC().Duplex,Z2t=Qh(),pv=nBe();function Oo(t){if(!(this instanceof Oo))return new Oo(t);if(typeof t=="function"){this._callback=t;let e=function(o){this._callback&&(this._callback(o),this._callback=null)}.bind(this);this.on("pipe",function(o){o.on("error",e)}),this.on("unpipe",function(o){o.removeListener("error",e)}),t=null}pv._init.call(this,t),eG.call(this)}Z2t(Oo,eG);Object.assign(Oo.prototype,pv.prototype);Oo.prototype._new=function(e){return new Oo(e)};Oo.prototype._write=function(e,r,o){this._appendBuffer(e),typeof o=="function"&&o()};Oo.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Oo.prototype.end=function(e){eG.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Oo.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Oo.prototype._isBufferList=function(e){return e instanceof Oo||e instanceof pv||Oo.isBufferList(e)};Oo.isBufferList=pv.isBufferList;Uk.exports=Oo;Uk.exports.BufferListStream=Oo;Uk.exports.BufferList=pv});var nG=U(JC=>{var $2t=Buffer.alloc,eBt="0000000000000000000",tBt="7777777777777777777",sBe="0".charCodeAt(0),oBe=Buffer.from("ustar\0","binary"),rBt=Buffer.from("00","binary"),nBt=Buffer.from("ustar ","binary"),iBt=Buffer.from(" \0","binary"),sBt=parseInt("7777",8),hv=257,rG=263,oBt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},aBt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},lBt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},aBe=function(t,e,r,o){for(;r<o;r++)if(t[r]===e)return r;return o},lBe=function(t){for(var e=256,r=0;r<148;r++)e+=t[r];for(var o=156;o<512;o++)e+=t[o];return e},Nh=function(t,e){return t=t.toString(8),t.length>e?tBt.slice(0,e)+" ":eBt.slice(0,e-t.length)+t+" "};function cBt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],o=t.length-1;o>0;o--){var a=t[o];e?r.push(a):r.push(255-a)}var n=0,u=r.length;for(o=0;o<u;o++)n+=r[o]*Math.pow(256,o);return e?n:-1*n}var Lh=function(t,e,r){if(t=t.slice(e,e+r),e=0,t[e]&128)return cBt(t);for(;e<t.length&&t[e]===32;)e++;for(var o=oBt(aBe(t,32,e,t.length),t.length,t.length);e<o&&t[e]===0;)e++;return o===e?0:parseInt(t.slice(e,o).toString(),8)},VC=function(t,e,r,o){return t.slice(e,aBe(t,0,e,e+r)).toString(o)},tG=function(t){var e=Buffer.byteLength(t),r=Math.floor(Math.log(e)/Math.log(10))+1;return e+r>=Math.pow(10,r)&&r++,e+r+t};JC.decodeLongPath=function(t,e){return VC(t,0,t.length,e)};JC.encodePax=function(t){var e="";t.name&&(e+=tG(" path="+t.name+`
380`)),t.linkname&&(e+=$j(" linkpath="+t.linkname+` 380`)),t.linkname&&(e+=tG(" linkpath="+t.linkname+`
381`));var r=t.pax;if(r)for(var o in r)e+=$j(" "+o+"="+r[o]+` 381`));var r=t.pax;if(r)for(var o in r)e+=tG(" "+o+"="+r[o]+`
382`);return Buffer.from(e)};JE.decodePax=function(t){for(var e={};t.length;){for(var r=0;r<t.length&&t[r]!==32;)r++;var o=parseInt(t.slice(0,r).toString(),10);if(!o)return e;var a=t.slice(r+1,o-1).toString(),n=a.indexOf("=");if(n===-1)return e;e[a.slice(0,n)]=a.slice(n+1),t=t.slice(o)}return e};JE.encode=function(t){var e=V2t(512),r=t.name,o="";if(t.typeflag===5&&r[r.length-1]!=="/"&&(r+="/"),Buffer.byteLength(r)!==r.length)return null;for(;Buffer.byteLength(r)>100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(Th(t.mode&eBt,6),100),e.write(Th(t.uid,6),108),e.write(Th(t.gid,6),116),e.write(Th(t.size,11),124),e.write(Th(t.mtime.getTime()/1e3|0,11),136),e[156]=nBe+nBt(t.type),t.linkname&&e.write(t.linkname,157),iBe.copy(e,fv),X2t.copy(e,eG),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(Th(t.devmajor||0,6),329),e.write(Th(t.devminor||0,6),337),o&&e.write(o,345),e.write(Th(oBe(e),6),148),e)};JE.decode=function(t,e,r){var o=t[156]===0?0:t[156]-nBe,a=VE(t,0,100,e),n=Nh(t,100,8),u=Nh(t,108,8),A=Nh(t,116,8),p=Nh(t,124,12),h=Nh(t,136,12),E=rBt(o),w=t[157]===0?null:VE(t,157,100,e),v=VE(t,265,32),b=VE(t,297,32),C=Nh(t,329,8),R=Nh(t,337,8),L=oBe(t);if(L===8*32)return null;if(L!==Nh(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(iBe.compare(t,fv,fv+6)===0)t[345]&&(a=VE(t,345,155,e)+"/"+a);else if(!(Z2t.compare(t,fv,fv+6)===0&&$2t.compare(t,eG,eG+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:E,linkname:w,uname:v,gname:b,devmajor:C,devminor:R}}});var pBe=U((RZt,fBe)=>{var lBe=Ie("util"),sBt=rBe(),pv=tG(),cBe=KE().Writable,uBe=KE().PassThrough,ABe=function(){},aBe=function(t){return t&=511,t&&512-t},oBt=function(t,e){var r=new Ok(t,e);return r.end(),r},aBt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},Ok=function(t,e){this._parent=t,this.offset=e,uBe.call(this,{autoDestroy:!1})};lBe.inherits(Ok,uBe);Ok.prototype.destroy=function(t){this._parent.destroy(t)};var op=function(t){if(!(this instanceof op))return new op(t);cBe.call(this,t),t=t||{},this._offset=0,this._buffer=sBt(),this._missing=0,this._partial=!1,this._onparse=ABe,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,o=function(){e._continue()},a=function(v){if(e._locked=!1,v)return e.destroy(v);e._stream||o()},n=function(){e._stream=null;var v=aBe(e._header.size);v?e._parse(v,u):e._parse(512,w),e._locked||o()},u=function(){e._buffer.consume(aBe(e._header.size)),e._parse(512,w),o()},A=function(){var v=e._header.size;e._paxGlobal=pv.decodePax(r.slice(0,v)),r.consume(v),n()},p=function(){var v=e._header.size;e._pax=pv.decodePax(r.slice(0,v)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(v),n()},h=function(){var v=e._header.size;this._gnuLongPath=pv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},E=function(){var v=e._header.size;this._gnuLongLinkPath=pv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},w=function(){var v=e._offset,b;try{b=e._header=pv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(C){e.emit("error",C)}if(r.consume(512),!b){e._parse(512,w),o();return}if(b.type==="gnu-long-path"){e._parse(b.size,h),o();return}if(b.type==="gnu-long-link-path"){e._parse(b.size,E),o();return}if(b.type==="pax-global-header"){e._parse(b.size,A),o();return}if(b.type==="pax-header"){e._parse(b.size,p),o();return}if(e._gnuLongPath&&(b.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(b.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=b=aBt(b,e._pax),e._pax=null),e._locked=!0,!b.size||b.type==="directory"){e._parse(512,w),e.emit("entry",b,oBt(e,v),a);return}e._stream=new Ok(e,v),e.emit("entry",b,e._stream,a),e._parse(b.size,n),o()};this._onheader=w,this._parse(512,w)};lBe.inherits(op,cBe);op.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};op.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};op.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=ABe,this._overflow?this._write(this._overflow,void 0,t):t()}};op.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.length<n)return this._missing-=t.length,this._overflow=null,o?o.write(t,r):(a.append(t),r());this._cb=r,this._missing=0;var u=null;t.length>n&&(u=t.slice(n),t=t.slice(0,n)),o?o.end(t):a.append(t),this._overflow=u,this._onparse()}};op.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};fBe.exports=op});var gBe=U((TZt,hBe)=>{hBe.exports=Ie("fs").constants||Ie("constants")});var EBe=U((NZt,CBe)=>{var zE=gBe(),dBe=WM(),Uk=bh(),lBt=Buffer.alloc,mBe=KE().Readable,XE=KE().Writable,cBt=Ie("string_decoder").StringDecoder,Mk=tG(),uBt=parseInt("755",8),ABt=parseInt("644",8),yBe=lBt(1024),nG=function(){},rG=function(t,e){e&=511,e&&t.push(yBe.slice(0,512-e))};function fBt(t){switch(t&zE.S_IFMT){case zE.S_IFBLK:return"block-device";case zE.S_IFCHR:return"character-device";case zE.S_IFDIR:return"directory";case zE.S_IFIFO:return"fifo";case zE.S_IFLNK:return"symlink"}return"file"}var _k=function(t){XE.call(this),this.written=0,this._to=t,this._destroyed=!1};Uk(_k,XE);_k.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};_k.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Hk=function(){XE.call(this),this.linkname="",this._decoder=new cBt("utf-8"),this._destroyed=!1};Uk(Hk,XE);Hk.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};Hk.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var hv=function(){XE.call(this),this._destroyed=!1};Uk(hv,XE);hv.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};hv.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var wA=function(t){if(!(this instanceof wA))return new wA(t);mBe.call(this,t),this._drain=nG,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Uk(wA,mBe);wA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=nG);var o=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=fBt(t.mode)),t.mode||(t.mode=t.type==="directory"?uBt:ABt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return rG(o,t.size),a?process.nextTick(r):this._drain=r,new hv}if(t.type==="symlink"&&!t.linkname){var n=new Hk;return dBe(n,function(A){if(A)return o.destroy(),r(A);t.linkname=n.linkname,o._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new hv;var u=new _k(this);return this._stream=u,dBe(u,function(A){if(o._stream=null,A)return o.destroy(),r(A);if(u.written!==t.size)return o.destroy(),r(new Error("size mismatch"));rG(o,t.size),o._finalizing&&o.finalize(),r()}),u}};wA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(yBe),this.push(null))};wA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};wA.prototype._encode=function(t){if(!t.pax){var e=Mk.encode(t);if(e){this.push(e);return}}this._encodePax(t)};wA.prototype._encodePax=function(t){var e=Mk.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(Mk.encode(r)),this.push(e),rG(this,e.length),r.size=t.size,r.type=t.type,this.push(Mk.encode(r))};wA.prototype._read=function(t){var e=this._drain;this._drain=nG,e()};CBe.exports=wA});var IBe=U(iG=>{iG.extract=pBe();iG.pack=EBe()});var RBe=U((r$t,FBe)=>{"use strict";var Dm=class{constructor(e,r,o){this.__specs=e||{},Object.keys(this.__specs).forEach(a=>{if(typeof this.__specs[a]=="string"){let n=this.__specs[a],u=this.__specs[n];if(u){let A=u.aliases||[];A.push(a,n),u.aliases=[...new Set(A)],this.__specs[a]=u}else throw new Error(`Alias refers to invalid key: ${n} -> ${a}`)}}),this.__opts=r||{},this.__providers=QBe(o.filter(a=>a!=null&&typeof a=="object")),this.__isFiggyPudding=!0}get(e){return uG(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[o,a]of this.entries())e.call(r,a,o,this)}toJSON(){let e={};return this.forEach((r,o)=>{e[o]=r}),e}*entries(e){for(let o of Object.keys(this.__specs))yield[o,this.get(o)];let r=e||this.__opts.other;if(r){let o=new Set;for(let a of this.__providers){let n=a.entries?a.entries(r):PBt(a);for(let[u,A]of n)r(u)&&!o.has(u)&&(o.add(u),yield[u,A])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new Dm(this.__specs,this.__opts,QBe(this.__providers).concat(e)),kBe)}};try{let t=Ie("util");Dm.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch{}function DBt(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function uG(t,e,r){let o=t.__specs[e];if(r&&!o&&(!t.__opts.other||!t.__opts.other(e)))DBt(e);else{o||(o={});let a;for(let n of t.__providers){if(a=bBe(e,n),a===void 0&&o.aliases&&o.aliases.length){for(let u of o.aliases)if(u!==e&&(a=bBe(u,n),a!==void 0))break}if(a!==void 0)break}return a===void 0&&o.default!==void 0?typeof o.default=="function"?o.default(t):o.default:a}}function bBe(t,e){let r;return e.__isFiggyPudding?r=uG(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var kBe={has(t,e){return e in t.__specs&&uG(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Dm.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};FBe.exports=SBt;function SBt(t,e){function r(...o){return new Proxy(new Dm(t,e,o),kBe)}return r}function QBe(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function PBt(t){return Object.keys(t).map(e=>[e,t[e]])}});var LBe=U((n$t,DA)=>{"use strict";var dv=Ie("crypto"),xBt=RBe(),bBt=Ie("stream").Transform,TBe=["sha256","sha384","sha512"],QBt=/^[a-z0-9+/]+(?:=?=?)$/i,kBt=/^([^-]+)-([^?]+)([?\S*]*)$/,FBt=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,RBt=/^[\x21-\x7E]+$/,ta=xBt({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>HBt},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Oh=class{get isHash(){return!0}constructor(e,r){r=ta(r);let o=!!r.strict;this.source=e.trim();let a=this.source.match(o?FBt:kBt);if(!a||o&&!TBe.some(u=>u===a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];this.options=n?n.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=ta(e),e.strict&&!(TBe.some(o=>o===this.algorithm)&&this.digest.match(QBt)&&(this.options||[]).every(o=>o.match(RBt))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},Sm=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=ta(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(o=>this[o].map(a=>Oh.prototype.toString.call(a,e)).filter(a=>a.length).join(r)).filter(o=>o.length).join(r)}concat(e,r){r=ta(r);let o=typeof e=="string"?e:gv(e,r);return vA(`${this.toString(r)} ${o}`,r)}hexDigest(){return vA(this,{single:!0}).hexDigest()}match(e,r){r=ta(r);let o=vA(e,r),a=o.pickAlgorithm(r);return this[a]&&o[a]&&this[a].find(n=>o[a].find(u=>n.digest===u.digest))||!1}pickAlgorithm(e){e=ta(e);let r=e.pickAlgorithm,o=Object.keys(this);if(!o.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return o.reduce((a,n)=>r(a,n)||a)}};DA.exports.parse=vA;function vA(t,e){if(e=ta(e),typeof t=="string")return AG(t,e);if(t.algorithm&&t.digest){let r=new Sm;return r[t.algorithm]=[t],AG(gv(r,e),e)}else return AG(gv(t,e),e)}function AG(t,e){return e.single?new Oh(t,e):t.trim().split(/\s+/).reduce((r,o)=>{let a=new Oh(o,e);if(a.algorithm&&a.digest){let n=a.algorithm;r[n]||(r[n]=[]),r[n].push(a)}return r},new Sm)}DA.exports.stringify=gv;function gv(t,e){return e=ta(e),t.algorithm&&t.digest?Oh.prototype.toString.call(t,e):typeof t=="string"?gv(vA(t,e),e):Sm.prototype.toString.call(t,e)}DA.exports.fromHex=TBt;function TBt(t,e,r){r=ta(r);let o=r.options&&r.options.length?`?${r.options.join("?")}`:"";return vA(`${e}-${Buffer.from(t,"hex").toString("base64")}${o}`,r)}DA.exports.fromData=NBt;function NBt(t,e){e=ta(e);let r=e.algorithms,o=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((a,n)=>{let u=dv.createHash(n).update(t).digest("base64"),A=new Oh(`${n}-${u}${o}`,e);if(A.algorithm&&A.digest){let p=A.algorithm;a[p]||(a[p]=[]),a[p].push(A)}return a},new Sm)}DA.exports.fromStream=LBt;function LBt(t,e){e=ta(e);let r=e.Promise||Promise,o=fG(e);return new r((a,n)=>{t.pipe(o),t.on("error",n),o.on("error",n);let u;o.on("integrity",A=>{u=A}),o.on("end",()=>a(u)),o.on("data",()=>{})})}DA.exports.checkData=OBt;function OBt(t,e,r){if(r=ta(r),e=vA(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let o=e.pickAlgorithm(r),a=dv.createHash(o).update(t).digest("base64"),n=vA({algorithm:o,digest:a}),u=n.match(e,r);if(u||!r.error)return u;if(typeof r.size=="number"&&t.length!==r.size){let A=new Error(`data size mismatch when checking ${e}. 382`);return Buffer.from(e)};JC.decodePax=function(t){for(var e={};t.length;){for(var r=0;r<t.length&&t[r]!==32;)r++;var o=parseInt(t.slice(0,r).toString(),10);if(!o)return e;var a=t.slice(r+1,o-1).toString(),n=a.indexOf("=");if(n===-1)return e;e[a.slice(0,n)]=a.slice(n+1),t=t.slice(o)}return e};JC.encode=function(t){var e=$2t(512),r=t.name,o="";if(t.typeflag===5&&r[r.length-1]!=="/"&&(r+="/"),Buffer.byteLength(r)!==r.length)return null;for(;Buffer.byteLength(r)>100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(Nh(t.mode&sBt,6),100),e.write(Nh(t.uid,6),108),e.write(Nh(t.gid,6),116),e.write(Nh(t.size,11),124),e.write(Nh(t.mtime.getTime()/1e3|0,11),136),e[156]=sBe+lBt(t.type),t.linkname&&e.write(t.linkname,157),oBe.copy(e,hv),rBt.copy(e,rG),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(Nh(t.devmajor||0,6),329),e.write(Nh(t.devminor||0,6),337),o&&e.write(o,345),e.write(Nh(lBe(e),6),148),e)};JC.decode=function(t,e,r){var o=t[156]===0?0:t[156]-sBe,a=VC(t,0,100,e),n=Lh(t,100,8),u=Lh(t,108,8),A=Lh(t,116,8),p=Lh(t,124,12),h=Lh(t,136,12),C=aBt(o),w=t[157]===0?null:VC(t,157,100,e),v=VC(t,265,32),b=VC(t,297,32),E=Lh(t,329,8),R=Lh(t,337,8),L=lBe(t);if(L===8*32)return null;if(L!==Lh(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(oBe.compare(t,hv,hv+6)===0)t[345]&&(a=VC(t,345,155,e)+"/"+a);else if(!(nBt.compare(t,hv,hv+6)===0&&iBt.compare(t,rG,rG+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:C,linkname:w,uname:v,gname:b,devmajor:E,devminor:R}}});var gBe=U((qZt,hBe)=>{var uBe=Ie("util"),uBt=iBe(),gv=nG(),ABe=KC().Writable,fBe=KC().PassThrough,pBe=function(){},cBe=function(t){return t&=511,t&&512-t},ABt=function(t,e){var r=new _k(t,e);return r.end(),r},fBt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},_k=function(t,e){this._parent=t,this.offset=e,fBe.call(this,{autoDestroy:!1})};uBe.inherits(_k,fBe);_k.prototype.destroy=function(t){this._parent.destroy(t)};var lp=function(t){if(!(this instanceof lp))return new lp(t);ABe.call(this,t),t=t||{},this._offset=0,this._buffer=uBt(),this._missing=0,this._partial=!1,this._onparse=pBe,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,o=function(){e._continue()},a=function(v){if(e._locked=!1,v)return e.destroy(v);e._stream||o()},n=function(){e._stream=null;var v=cBe(e._header.size);v?e._parse(v,u):e._parse(512,w),e._locked||o()},u=function(){e._buffer.consume(cBe(e._header.size)),e._parse(512,w),o()},A=function(){var v=e._header.size;e._paxGlobal=gv.decodePax(r.slice(0,v)),r.consume(v),n()},p=function(){var v=e._header.size;e._pax=gv.decodePax(r.slice(0,v)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(v),n()},h=function(){var v=e._header.size;this._gnuLongPath=gv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},C=function(){var v=e._header.size;this._gnuLongLinkPath=gv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},w=function(){var v=e._offset,b;try{b=e._header=gv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(E){e.emit("error",E)}if(r.consume(512),!b){e._parse(512,w),o();return}if(b.type==="gnu-long-path"){e._parse(b.size,h),o();return}if(b.type==="gnu-long-link-path"){e._parse(b.size,C),o();return}if(b.type==="pax-global-header"){e._parse(b.size,A),o();return}if(b.type==="pax-header"){e._parse(b.size,p),o();return}if(e._gnuLongPath&&(b.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(b.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=b=fBt(b,e._pax),e._pax=null),e._locked=!0,!b.size||b.type==="directory"){e._parse(512,w),e.emit("entry",b,ABt(e,v),a);return}e._stream=new _k(e,v),e.emit("entry",b,e._stream,a),e._parse(b.size,n),o()};this._onheader=w,this._parse(512,w)};uBe.inherits(lp,ABe);lp.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};lp.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};lp.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=pBe,this._overflow?this._write(this._overflow,void 0,t):t()}};lp.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.length<n)return this._missing-=t.length,this._overflow=null,o?o.write(t,r):(a.append(t),r());this._cb=r,this._missing=0;var u=null;t.length>n&&(u=t.slice(n),t=t.slice(0,n)),o?o.end(t):a.append(t),this._overflow=u,this._onparse()}};lp.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};hBe.exports=lp});var mBe=U((jZt,dBe)=>{dBe.exports=Ie("fs").constants||Ie("constants")});var wBe=U((GZt,IBe)=>{var zC=mBe(),yBe=KM(),qk=Qh(),pBt=Buffer.alloc,EBe=KC().Readable,XC=KC().Writable,hBt=Ie("string_decoder").StringDecoder,Hk=nG(),gBt=parseInt("755",8),dBt=parseInt("644",8),CBe=pBt(1024),sG=function(){},iG=function(t,e){e&=511,e&&t.push(CBe.slice(0,512-e))};function mBt(t){switch(t&zC.S_IFMT){case zC.S_IFBLK:return"block-device";case zC.S_IFCHR:return"character-device";case zC.S_IFDIR:return"directory";case zC.S_IFIFO:return"fifo";case zC.S_IFLNK:return"symlink"}return"file"}var jk=function(t){XC.call(this),this.written=0,this._to=t,this._destroyed=!1};qk(jk,XC);jk.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};jk.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Gk=function(){XC.call(this),this.linkname="",this._decoder=new hBt("utf-8"),this._destroyed=!1};qk(Gk,XC);Gk.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};Gk.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var dv=function(){XC.call(this),this._destroyed=!1};qk(dv,XC);dv.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};dv.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var BA=function(t){if(!(this instanceof BA))return new BA(t);EBe.call(this,t),this._drain=sG,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};qk(BA,EBe);BA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=sG);var o=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=mBt(t.mode)),t.mode||(t.mode=t.type==="directory"?gBt:dBt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return iG(o,t.size),a?process.nextTick(r):this._drain=r,new dv}if(t.type==="symlink"&&!t.linkname){var n=new Gk;return yBe(n,function(A){if(A)return o.destroy(),r(A);t.linkname=n.linkname,o._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new dv;var u=new jk(this);return this._stream=u,yBe(u,function(A){if(o._stream=null,A)return o.destroy(),r(A);if(u.written!==t.size)return o.destroy(),r(new Error("size mismatch"));iG(o,t.size),o._finalizing&&o.finalize(),r()}),u}};BA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(CBe),this.push(null))};BA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};BA.prototype._encode=function(t){if(!t.pax){var e=Hk.encode(t);if(e){this.push(e);return}}this._encodePax(t)};BA.prototype._encodePax=function(t){var e=Hk.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(Hk.encode(r)),this.push(e),iG(this,e.length),r.size=t.size,r.type=t.type,this.push(Hk.encode(r))};BA.prototype._read=function(t){var e=this._drain;this._drain=sG,e()};IBe.exports=BA});var BBe=U(oG=>{oG.extract=gBe();oG.pack=wBe()});var NBe=U((A$t,TBe)=>{"use strict";var Dm=class{constructor(e,r,o){this.__specs=e||{},Object.keys(this.__specs).forEach(a=>{if(typeof this.__specs[a]=="string"){let n=this.__specs[a],u=this.__specs[n];if(u){let A=u.aliases||[];A.push(a,n),u.aliases=[...new Set(A)],this.__specs[a]=u}else throw new Error(`Alias refers to invalid key: ${n} -> ${a}`)}}),this.__opts=r||{},this.__providers=FBe(o.filter(a=>a!=null&&typeof a=="object")),this.__isFiggyPudding=!0}get(e){return fG(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[o,a]of this.entries())e.call(r,a,o,this)}toJSON(){let e={};return this.forEach((r,o)=>{e[o]=r}),e}*entries(e){for(let o of Object.keys(this.__specs))yield[o,this.get(o)];let r=e||this.__opts.other;if(r){let o=new Set;for(let a of this.__providers){let n=a.entries?a.entries(r):FBt(a);for(let[u,A]of n)r(u)&&!o.has(u)&&(o.add(u),yield[u,A])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new Dm(this.__specs,this.__opts,FBe(this.__providers).concat(e)),RBe)}};try{let t=Ie("util");Dm.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch{}function QBt(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function fG(t,e,r){let o=t.__specs[e];if(r&&!o&&(!t.__opts.other||!t.__opts.other(e)))QBt(e);else{o||(o={});let a;for(let n of t.__providers){if(a=kBe(e,n),a===void 0&&o.aliases&&o.aliases.length){for(let u of o.aliases)if(u!==e&&(a=kBe(u,n),a!==void 0))break}if(a!==void 0)break}return a===void 0&&o.default!==void 0?typeof o.default=="function"?o.default(t):o.default:a}}function kBe(t,e){let r;return e.__isFiggyPudding?r=fG(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var RBe={has(t,e){return e in t.__specs&&fG(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Dm.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};TBe.exports=kBt;function kBt(t,e){function r(...o){return new Proxy(new Dm(t,e,o),RBe)}return r}function FBe(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function FBt(t){return Object.keys(t).map(e=>[e,t[e]])}});var MBe=U((f$t,SA)=>{"use strict";var yv=Ie("crypto"),RBt=NBe(),TBt=Ie("stream").Transform,LBe=["sha256","sha384","sha512"],NBt=/^[a-z0-9+/]+(?:=?=?)$/i,LBt=/^([^-]+)-([^?]+)([?\S*]*)$/,OBt=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,MBt=/^[\x21-\x7E]+$/,ra=RBt({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>YBt},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Mh=class{get isHash(){return!0}constructor(e,r){r=ra(r);let o=!!r.strict;this.source=e.trim();let a=this.source.match(o?OBt:LBt);if(!a||o&&!LBe.some(u=>u===a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];this.options=n?n.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=ra(e),e.strict&&!(LBe.some(o=>o===this.algorithm)&&this.digest.match(NBt)&&(this.options||[]).every(o=>o.match(MBt))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},Sm=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=ra(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(o=>this[o].map(a=>Mh.prototype.toString.call(a,e)).filter(a=>a.length).join(r)).filter(o=>o.length).join(r)}concat(e,r){r=ra(r);let o=typeof e=="string"?e:mv(e,r);return DA(`${this.toString(r)} ${o}`,r)}hexDigest(){return DA(this,{single:!0}).hexDigest()}match(e,r){r=ra(r);let o=DA(e,r),a=o.pickAlgorithm(r);return this[a]&&o[a]&&this[a].find(n=>o[a].find(u=>n.digest===u.digest))||!1}pickAlgorithm(e){e=ra(e);let r=e.pickAlgorithm,o=Object.keys(this);if(!o.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return o.reduce((a,n)=>r(a,n)||a)}};SA.exports.parse=DA;function DA(t,e){if(e=ra(e),typeof t=="string")return pG(t,e);if(t.algorithm&&t.digest){let r=new Sm;return r[t.algorithm]=[t],pG(mv(r,e),e)}else return pG(mv(t,e),e)}function pG(t,e){return e.single?new Mh(t,e):t.trim().split(/\s+/).reduce((r,o)=>{let a=new Mh(o,e);if(a.algorithm&&a.digest){let n=a.algorithm;r[n]||(r[n]=[]),r[n].push(a)}return r},new Sm)}SA.exports.stringify=mv;function mv(t,e){return e=ra(e),t.algorithm&&t.digest?Mh.prototype.toString.call(t,e):typeof t=="string"?mv(DA(t,e),e):Sm.prototype.toString.call(t,e)}SA.exports.fromHex=UBt;function UBt(t,e,r){r=ra(r);let o=r.options&&r.options.length?`?${r.options.join("?")}`:"";return DA(`${e}-${Buffer.from(t,"hex").toString("base64")}${o}`,r)}SA.exports.fromData=_Bt;function _Bt(t,e){e=ra(e);let r=e.algorithms,o=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((a,n)=>{let u=yv.createHash(n).update(t).digest("base64"),A=new Mh(`${n}-${u}${o}`,e);if(A.algorithm&&A.digest){let p=A.algorithm;a[p]||(a[p]=[]),a[p].push(A)}return a},new Sm)}SA.exports.fromStream=HBt;function HBt(t,e){e=ra(e);let r=e.Promise||Promise,o=hG(e);return new r((a,n)=>{t.pipe(o),t.on("error",n),o.on("error",n);let u;o.on("integrity",A=>{u=A}),o.on("end",()=>a(u)),o.on("data",()=>{})})}SA.exports.checkData=qBt;function qBt(t,e,r){if(r=ra(r),e=DA(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let o=e.pickAlgorithm(r),a=yv.createHash(o).update(t).digest("base64"),n=DA({algorithm:o,digest:a}),u=n.match(e,r);if(u||!r.error)return u;if(typeof r.size=="number"&&t.length!==r.size){let A=new Error(`data size mismatch when checking ${e}.
383 Wanted: ${r.size} 383 Wanted: ${r.size}
384 Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}DA.exports.checkStream=MBt;function MBt(t,e,r){r=ta(r);let o=r.Promise||Promise,a=fG(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}DA.exports.integrityStream=fG;function fG(t){t=ta(t);let e=t.integrity&&vA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(dv.createHash),A=0,p=new bBt({transform(h,E,w){A+=h.length,u.forEach(v=>v.update(h,E)),w(null,h,E)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",E=vA(u.map((v,b)=>`${n[b]}-${v.digest("base64")}${h}`).join(" "),t),w=r&&E.match(e,t);if(typeof t.size=="number"&&A!==t.size){let v=new Error(`stream size mismatch when checking ${e}. 384 Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}SA.exports.checkStream=jBt;function jBt(t,e,r){r=ra(r);let o=r.Promise||Promise,a=hG(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}SA.exports.integrityStream=hG;function hG(t){t=ra(t);let e=t.integrity&&DA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(yv.createHash),A=0,p=new TBt({transform(h,C,w){A+=h.length,u.forEach(v=>v.update(h,C)),w(null,h,C)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",C=DA(u.map((v,b)=>`${n[b]}-${v.digest("base64")}${h}`).join(" "),t),w=r&&C.match(e,t);if(typeof t.size=="number"&&A!==t.size){let v=new Error(`stream size mismatch when checking ${e}.
385 Wanted: ${t.size} 385 Wanted: ${t.size}
386 Found: ${A}`);v.code="EBADSIZE",v.found=A,v.expected=t.size,v.sri=e,p.emit("error",v)}else if(t.integrity&&!w){let v=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${E}. (${A} bytes)`);v.code="EINTEGRITY",v.found=E,v.expected=a,v.algorithm=o,v.sri=e,p.emit("error",v)}else p.emit("size",A),p.emit("integrity",E),w&&p.emit("verified",w)});return p}DA.exports.create=UBt;function UBt(t){t=ta(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(dv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new Oh(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let E=h.algorithm;u[E]||(u[E]=[]),u[E].push(h)}return u},new Sm)}}}var _Bt=new Set(dv.getHashes()),NBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>_Bt.has(t));function HBt(t,e){return NBe.indexOf(t.toLowerCase())>=NBe.indexOf(e.toLowerCase())?t:e}});var hve=U((tnr,pve)=>{var jvt=rL();function Gvt(t){return jvt(t)?void 0:t}pve.exports=Gvt});var dve=U((rnr,gve)=>{var Wvt=Fx(),Yvt=P8(),Kvt=k8(),Vvt=Wd(),Jvt=gd(),zvt=hve(),Xvt=I_(),Zvt=S8(),$vt=1,eDt=2,tDt=4,rDt=Xvt(function(t,e){var r={};if(t==null)return r;var o=!1;e=Wvt(e,function(n){return n=Vvt(n,t),o||(o=n.length>1),n}),Jvt(t,Zvt(t),r),o&&(r=Yvt(r,$vt|eDt|tDt,zvt));for(var a=e.length;a--;)Kvt(r,e[a]);return r});gve.exports=rDt});Ke();Ke();bt();var x_=Ie("child_process"),E0e=tt(Xg());_t();var b_=Ie("fs");var lE=new Map([]);function Xut(t){let e=ue.fromPortablePath(t);process.on("SIGINT",()=>{}),e?(0,x_.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,x_.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function Vb({binaryVersion:t,pluginConfiguration:e}){async function r(){let a=new vo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:t});try{await o(a)}catch(n){process.stdout.write(a.error(n)),process.exitCode=1}}async function o(a){var R,L,_,V;let n=process.versions.node,u=">=14.15.0";if(!Ye.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Tr.satisfiesWithPrereleases(n,u))throw new ot(`This tool requires a Node version compatible with ${u} (got ${n}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let p=await Xe.find(ue.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),h=p.get("yarnPath"),E=p.get("ignorePath"),w=p.get("ignoreCwd"),v=ue.toPortablePath(ue.resolve(process.argv[1])),b=re=>ae.readFilePromise(re).catch(()=>Buffer.of());if(!E&&!w&&await(async()=>h&&(h===v||Buffer.compare(...await Promise.all([b(h),b(v)]))===0))()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await o(a);return}else if(h!==null&&!E)if(!ae.existsSync(h))process.stdout.write(a.error(new Error(`The "yarn-path" option has been set (in ${p.sources.get("yarnPath")}), but the specified location doesn't exist (${h}).`))),process.exitCode=1;else try{Xut(h)}catch(re){process.exitCode=re.code||1}else{E&&delete process.env.YARN_IGNORE_PATH,p.get("enableTelemetry")&&!E0e.isCI&&process.stdout.isTTY&&(Xe.telemetry=new aE(p,"puba9cdc10ec5790a2cf4969dd413a47270")),(R=Xe.telemetry)==null||R.reportVersion(t);for(let[ve,ge]of p.plugins.entries()){lE.has(((L=ve.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:L[1])??"")&&((_=Xe.telemetry)==null||_.reportPluginName(ve));for(let le of ge.commands||[])a.register(le)}let oe={cwd:ue.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr},pe=a.process(process.argv.slice(2),oe);pe.help||(V=Xe.telemetry)==null||V.reportCommandName(pe.path.join(" "));let he=pe.cwd;if(typeof he<"u"&&!w){let ve=(0,b_.realpathSync)(process.cwd()),ge=(0,b_.realpathSync)(he);if(ve!==ge){process.chdir(he),await r();return}}await a.runExit(pe,oe)}}return r().catch(a=>{process.stdout.write(a.stack||a.message),process.exitCode=1}).finally(()=>ae.rmtempPromise())}var W1={};Yt(W1,{BaseCommand:()=>ct,WorkspaceRequiredError:()=>er,getDynamicLibs:()=>I0e,getPluginConfiguration:()=>Jb,main:()=>Vb,openWorkspace:()=>cE,pluginCommands:()=>lE});_t();var ct=class extends it{constructor(){super(...arguments);this.cwd=fe.String("--cwd",{hidden:!0})}};Ke();bt();_t();var er=class extends ot{constructor(e,r){let o=z.relative(e,r),a=z.join(e,Nt.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ke();bt();_c();_l();C1();_t();var Zut=tt(si());tl();var I0e=()=>new Map([["@yarnpkg/cli",W1],["@yarnpkg/core",G1],["@yarnpkg/fslib",MI],["@yarnpkg/libzip",_I],["@yarnpkg/parsers",VI],["@yarnpkg/shell",B1],["clipanion",nw],["semver",Zut],["typanion",Wo]]);Ke();async function cE(t,e){let{project:r,workspace:o}=await St.find(t,e);if(!o)throw new er(r.cwd,e);return o}Ke();bt();_c();_l();C1();_t();var ADt=tt(si());tl();var Z8={};Yt(Z8,{AddCommand:()=>P0,BinCommand:()=>x0,CacheCleanCommand:()=>b0,ClipanionCommand:()=>Jd,ConfigCommand:()=>R0,ConfigGetCommand:()=>Q0,ConfigSetCommand:()=>k0,ConfigUnsetCommand:()=>F0,DedupeCommand:()=>T0,EntryCommand:()=>pE,ExecCommand:()=>N0,ExplainCommand:()=>M0,ExplainPeerRequirementsCommand:()=>L0,HelpCommand:()=>zd,InfoCommand:()=>U0,LinkCommand:()=>H0,NodeCommand:()=>q0,PluginCheckCommand:()=>j0,PluginImportCommand:()=>Y0,PluginImportSourcesCommand:()=>K0,PluginListCommand:()=>G0,PluginRemoveCommand:()=>V0,PluginRuntimeCommand:()=>J0,RebuildCommand:()=>z0,RemoveCommand:()=>X0,RunCommand:()=>Z0,RunIndexCommand:()=>$d,SetResolutionCommand:()=>$0,SetVersionCommand:()=>O0,SetVersionSourcesCommand:()=>W0,UnlinkCommand:()=>eh,UpCommand:()=>Vf,VersionCommand:()=>Xd,WhyCommand:()=>th,WorkspaceCommand:()=>ih,WorkspacesListCommand:()=>nh,YarnCommand:()=>_0,dedupeUtils:()=>iQ,default:()=>Hht,suggestUtils:()=>eu});var $de=tt(Xg());Ke();Ke();Ke();_t();var lge=tt(z1());tl();var eu={};Yt(eu,{Modifier:()=>I8,Strategy:()=>rQ,Target:()=>X1,WorkspaceModifier:()=>nge,applyModifier:()=>yft,extractDescriptorFromPath:()=>w8,extractRangeModifier:()=>ige,fetchDescriptorFrom:()=>B8,findProjectDescriptors:()=>age,getModifier:()=>Z1,getSuggestedDescriptors:()=>$1,makeWorkspaceDescriptor:()=>oge,toWorkspaceModifier:()=>sge});Ke();Ke();bt();var E8=tt(si()),dft="workspace:",X1=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))(X1||{}),I8=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(I8||{}),nge=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(nge||{}),rQ=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))(rQ||{});function Z1(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var mft=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function ige(t,{project:e}){let r=t.match(mft);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function yft(t,e){let{protocol:r,source:o,params:a,selector:n}=Y.parseRange(t.range);return E8.default.valid(n)&&(n=`${e}${t.range}`),Y.makeDescriptor(t,Y.makeRange({protocol:r,source:o,params:a,selector:n}))}function sge(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function oge(t,e){return Y.makeDescriptor(t.anchoredDescriptor,`${dft}${sge(e)}`)}async function age(t,{project:e,target:r}){let o=new Map,a=n=>{let u=o.get(n.descriptorHash);return u||o.set(n.descriptorHash,u={descriptor:n,locators:[]}),u};for(let n of e.workspaces)if(r==="peerDependencies"){let u=n.manifest.peerDependencies.get(t.identHash);u!==void 0&&a(u).locators.push(n.anchoredLocator)}else{let u=n.manifest.dependencies.get(t.identHash),A=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?A!==void 0?a(A).locators.push(n.anchoredLocator):u!==void 0&&a(u).locators.push(n.anchoredLocator):u!==void 0?a(u).locators.push(n.anchoredLocator):A!==void 0&&a(A).locators.push(n.anchoredLocator)}return o}async function w8(t,{cwd:e,workspace:r}){return await Cft(async o=>{z.isAbsolute(t)||(t=z.relative(r.cwd,z.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await B8(Y.makeIdent(null,"archive"),t,{project:r.project,cache:o,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let u=new xi,A=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:o,fetcher:p,report:u,resolver:A},E=A.bindDescriptor(n,r.anchoredLocator,h),w=Y.convertDescriptorToLocator(E),v=await p.fetch(w,h),b=await Nt.find(v.prefixPath,{baseFs:v.packageFs});if(!b.name)throw new Error("Target path doesn't have a name");return Y.makeDescriptor(b.name,t)})}async function $1(t,{project:e,workspace:r,cache:o,target:a,fixed:n,modifier:u,strategies:A,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let[h,E]=t.range!=="unknown"?n||Tr.validRange(t.range)||!t.range.match(/^[a-z0-9._-]+$/i)?[t.range,"latest"]:["unknown",t.range]:["unknown","latest"];if(h!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${Y.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let w=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,v=[],b=[],C=async R=>{try{await R()}catch(L){b.push(L)}};for(let R of A){if(v.length>=p)break;switch(R){case"keep":await C(async()=>{w&&v.push({descriptor:w,name:`Keep ${Y.prettyDescriptor(e.configuration,w)}`,reason:"(no changes)"})});break;case"reuse":await C(async()=>{for(let{descriptor:L,locators:_}of(await age(t,{project:e,target:a})).values()){if(_.length===1&&_[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes("keep"))continue;let V=`(originally used by ${Y.prettyLocator(e.configuration,_[0])}`;V+=_.length>1?` and ${_.length-1} other${_.length>2?"s":""})`:")",v.push({descriptor:L,name:`Reuse ${Y.prettyDescriptor(e.configuration,L)}`,reason:V})}});break;case"cache":await C(async()=>{for(let L of e.storedDescriptors.values())L.identHash===t.identHash&&v.push({descriptor:L,name:`Reuse ${Y.prettyDescriptor(e.configuration,L)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await C(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let L=e.tryWorkspaceByIdent(t);if(L===null)return;let _=oge(L,u);v.push({descriptor:_,name:`Attach ${Y.prettyDescriptor(e.configuration,_)}`,reason:`(local workspace at ${ye.pretty(e.configuration,L.relativeCwd,ye.Type.PATH)})`})});break;case"latest":await C(async()=>{if(a==="peerDependencies")v.push({descriptor:Y.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))v.push({descriptor:null,name:"Resolve from latest",reason:ye.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let L=await B8(t,E,{project:e,cache:o,workspace:r,modifier:u});L&&v.push({descriptor:L,name:`Use ${Y.prettyDescriptor(e.configuration,L)}`,reason:"(resolved from latest)"})}});break}}return{suggestions:v.slice(0,p),rejections:b.slice(0,p)}}async function B8(t,e,{project:r,cache:o,workspace:a,preserveModifier:n=!0,modifier:u}){let A=r.configuration.normalizeDependency(Y.makeDescriptor(t,e)),p=new xi,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),w={project:r,fetcher:h,cache:o,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},v={...w,resolver:E,fetchOptions:w},b=E.bindDescriptor(A,a.anchoredLocator,v),C=await E.getCandidates(b,{},v);if(C.length===0)return null;let R=C[0],{protocol:L,source:_,params:V,selector:re}=Y.parseRange(Y.convertToManifestRange(R.reference));if(L===r.configuration.get("defaultProtocol")&&(L=null),E8.default.valid(re)){let oe=re;if(typeof u<"u")re=u+re;else if(n!==!1){let ve=typeof n=="string"?n:A.range;re=ige(ve,{project:r})+re}let pe=Y.makeDescriptor(R,Y.makeRange({protocol:L,source:_,params:V,selector:re}));(await E.getCandidates(r.configuration.normalizeDependency(pe),{},v)).length!==1&&(re=oe)}return Y.makeDescriptor(R,Y.makeRange({protocol:L,source:_,params:V,selector:re}))}async function Cft(t){return await ae.mktempPromise(async e=>{let r=Xe.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Ur(e,{configuration:r,check:!1,immutable:!1}))})}var P0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=fe.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=fe.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=fe.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=fe.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=fe.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=fe.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=fe.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=fe.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=fe.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=fe.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(gl)});this.silent=fe.Boolean("--silent",{hidden:!0});this.packages=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=this.interactive??r.get("preferInteractive"),p=A||r.get("preferReuse"),h=Z1(this,o),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(V=>typeof V<"u"),w=A?1/0:1,v=await Promise.all(this.packages.map(async V=>{let re=V.match(/^\.{0,2}\//)?await w8(V,{cwd:this.context.cwd,workspace:a}):Y.tryParseDescriptor(V),oe=V.match(/^(https?:|git@github)/);if(oe)throw new ot(`It seems you are trying to add a package using a ${ye.pretty(r,`${oe[0]}...`,ye.Type.RANGE)} url; we now require package names to be explicitly specified. 386 Found: ${A}`);v.code="EBADSIZE",v.found=A,v.expected=t.size,v.sri=e,p.emit("error",v)}else if(t.integrity&&!w){let v=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${C}. (${A} bytes)`);v.code="EINTEGRITY",v.found=C,v.expected=a,v.algorithm=o,v.sri=e,p.emit("error",v)}else p.emit("size",A),p.emit("integrity",C),w&&p.emit("verified",w)});return p}SA.exports.create=GBt;function GBt(t){t=ra(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(yv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new Mh(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let C=h.algorithm;u[C]||(u[C]=[]),u[C].push(h)}return u},new Sm)}}}var WBt=new Set(yv.getHashes()),OBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>WBt.has(t));function YBt(t,e){return OBe.indexOf(t.toLowerCase())>=OBe.indexOf(e.toLowerCase())?t:e}});var yve=U((pnr,mve)=>{var Vvt=iL();function Jvt(t){return Vvt(t)?void 0:t}mve.exports=Jvt});var Cve=U((hnr,Eve)=>{var zvt=Tx(),Xvt=b8(),Zvt=R8(),$vt=Yd(),eDt=dd(),tDt=yve(),rDt=B_(),nDt=x8(),iDt=1,sDt=2,oDt=4,aDt=rDt(function(t,e){var r={};if(t==null)return r;var o=!1;e=zvt(e,function(n){return n=$vt(n,t),o||(o=n.length>1),n}),eDt(t,nDt(t),r),o&&(r=Xvt(r,iDt|sDt|oDt,tDt));for(var a=e.length;a--;)Zvt(r,e[a]);return r});Eve.exports=aDt});Ke();Ke();St();var Q_=Ie("child_process"),I0e=tt(Zg());_t();var k_=Ie("fs");var lC=new Map([]);function tAt(t){let e=ue.fromPortablePath(t);process.on("SIGINT",()=>{}),e?(0,Q_.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,Q_.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function Xb({binaryVersion:t,pluginConfiguration:e}){async function r(){let a=new vo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:t});try{await o(a)}catch(n){process.stdout.write(a.error(n)),process.exitCode=1}}async function o(a){var R,L,_,V;let n=process.versions.node,u=">=14.15.0";if(!We.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Tr.satisfiesWithPrereleases(n,u))throw new ot(`This tool requires a Node version compatible with ${u} (got ${n}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let p=await Xe.find(ue.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),h=p.get("yarnPath"),C=p.get("ignorePath"),w=p.get("ignoreCwd"),v=ue.toPortablePath(ue.resolve(process.argv[1])),b=re=>oe.readFilePromise(re).catch(()=>Buffer.of());if(!C&&!w&&await(async()=>h&&(h===v||Buffer.compare(...await Promise.all([b(h),b(v)]))===0))()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await o(a);return}else if(h!==null&&!C)if(!oe.existsSync(h))process.stdout.write(a.error(new Error(`The "yarn-path" option has been set (in ${p.sources.get("yarnPath")}), but the specified location doesn't exist (${h}).`))),process.exitCode=1;else try{tAt(h)}catch(re){process.exitCode=re.code||1}else{C&&delete process.env.YARN_IGNORE_PATH,p.get("enableTelemetry")&&!I0e.isCI&&process.stdout.isTTY&&(Xe.telemetry=new aC(p,"puba9cdc10ec5790a2cf4969dd413a47270")),(R=Xe.telemetry)==null||R.reportVersion(t);for(let[De,ge]of p.plugins.entries()){lC.has(((L=De.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:L[1])??"")&&((_=Xe.telemetry)==null||_.reportPluginName(De));for(let le of ge.commands||[])a.register(le)}let ae={cwd:ue.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr},he=a.process(process.argv.slice(2),ae);he.help||(V=Xe.telemetry)==null||V.reportCommandName(he.path.join(" "));let pe=he.cwd;if(typeof pe<"u"&&!w){let De=(0,k_.realpathSync)(process.cwd()),ge=(0,k_.realpathSync)(pe);if(De!==ge){process.chdir(pe),await r();return}}await a.runExit(he,ae)}}return r().catch(a=>{process.stdout.write(a.stack||a.message),process.exitCode=1}).finally(()=>oe.rmtempPromise())}var K1={};Yt(K1,{BaseCommand:()=>ct,WorkspaceRequiredError:()=>er,getDynamicLibs:()=>w0e,getPluginConfiguration:()=>Zb,main:()=>Xb,openWorkspace:()=>cC,pluginCommands:()=>lC});_t();var ct=class extends it{constructor(){super(...arguments);this.cwd=fe.String("--cwd",{hidden:!0})}};Ke();St();_t();var er=class extends ot{constructor(e,r){let o=J.relative(e,r),a=J.join(e,Nt.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ke();St();Hc();Hl();I1();_t();var rAt=tt(si());rl();var w0e=()=>new Map([["@yarnpkg/cli",K1],["@yarnpkg/core",Y1],["@yarnpkg/fslib",UI],["@yarnpkg/libzip",HI],["@yarnpkg/parsers",JI],["@yarnpkg/shell",D1],["clipanion",iw],["semver",rAt],["typanion",Yo]]);Ke();async function cC(t,e){let{project:r,workspace:o}=await Pt.find(t,e);if(!o)throw new er(r.cwd,e);return o}Ke();St();Hc();Hl();I1();_t();var dDt=tt(si());rl();var eH={};Yt(eH,{AddCommand:()=>x0,BinCommand:()=>b0,CacheCleanCommand:()=>Q0,ClipanionCommand:()=>zd,ConfigCommand:()=>T0,ConfigGetCommand:()=>k0,ConfigSetCommand:()=>F0,ConfigUnsetCommand:()=>R0,DedupeCommand:()=>N0,EntryCommand:()=>pC,ExecCommand:()=>L0,ExplainCommand:()=>U0,ExplainPeerRequirementsCommand:()=>O0,HelpCommand:()=>Xd,InfoCommand:()=>_0,LinkCommand:()=>q0,NodeCommand:()=>j0,PluginCheckCommand:()=>G0,PluginImportCommand:()=>K0,PluginImportSourcesCommand:()=>V0,PluginListCommand:()=>W0,PluginRemoveCommand:()=>J0,PluginRuntimeCommand:()=>z0,RebuildCommand:()=>X0,RemoveCommand:()=>Z0,RunCommand:()=>$0,RunIndexCommand:()=>em,SetResolutionCommand:()=>eh,SetVersionCommand:()=>M0,SetVersionSourcesCommand:()=>Y0,UnlinkCommand:()=>th,UpCommand:()=>zf,VersionCommand:()=>Zd,WhyCommand:()=>rh,WorkspaceCommand:()=>sh,WorkspacesListCommand:()=>ih,YarnCommand:()=>H0,dedupeUtils:()=>aQ,default:()=>Yht,suggestUtils:()=>tu});var eme=tt(Zg());Ke();Ke();Ke();_t();var cge=tt(Z1());rl();var tu={};Yt(tu,{Modifier:()=>B8,Strategy:()=>sQ,Target:()=>$1,WorkspaceModifier:()=>ige,applyModifier:()=>wft,extractDescriptorFromPath:()=>v8,extractRangeModifier:()=>sge,fetchDescriptorFrom:()=>D8,findProjectDescriptors:()=>lge,getModifier:()=>e2,getSuggestedDescriptors:()=>t2,makeWorkspaceDescriptor:()=>age,toWorkspaceModifier:()=>oge});Ke();Ke();St();var w8=tt(si()),Cft="workspace:",$1=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))($1||{}),B8=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(B8||{}),ige=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(ige||{}),sQ=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))(sQ||{});function e2(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Ift=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function sge(t,{project:e}){let r=t.match(Ift);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function wft(t,e){let{protocol:r,source:o,params:a,selector:n}=Y.parseRange(t.range);return w8.default.valid(n)&&(n=`${e}${t.range}`),Y.makeDescriptor(t,Y.makeRange({protocol:r,source:o,params:a,selector:n}))}function oge(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function age(t,e){return Y.makeDescriptor(t.anchoredDescriptor,`${Cft}${oge(e)}`)}async function lge(t,{project:e,target:r}){let o=new Map,a=n=>{let u=o.get(n.descriptorHash);return u||o.set(n.descriptorHash,u={descriptor:n,locators:[]}),u};for(let n of e.workspaces)if(r==="peerDependencies"){let u=n.manifest.peerDependencies.get(t.identHash);u!==void 0&&a(u).locators.push(n.anchoredLocator)}else{let u=n.manifest.dependencies.get(t.identHash),A=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?A!==void 0?a(A).locators.push(n.anchoredLocator):u!==void 0&&a(u).locators.push(n.anchoredLocator):u!==void 0?a(u).locators.push(n.anchoredLocator):A!==void 0&&a(A).locators.push(n.anchoredLocator)}return o}async function v8(t,{cwd:e,workspace:r}){return await Bft(async o=>{J.isAbsolute(t)||(t=J.relative(r.cwd,J.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await D8(Y.makeIdent(null,"archive"),t,{project:r.project,cache:o,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let u=new xi,A=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:o,fetcher:p,report:u,resolver:A},C=A.bindDescriptor(n,r.anchoredLocator,h),w=Y.convertDescriptorToLocator(C),v=await p.fetch(w,h),b=await Nt.find(v.prefixPath,{baseFs:v.packageFs});if(!b.name)throw new Error("Target path doesn't have a name");return Y.makeDescriptor(b.name,t)})}async function t2(t,{project:e,workspace:r,cache:o,target:a,fixed:n,modifier:u,strategies:A,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let[h,C]=t.range!=="unknown"?n||Tr.validRange(t.range)||!t.range.match(/^[a-z0-9._-]+$/i)?[t.range,"latest"]:["unknown",t.range]:["unknown","latest"];if(h!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${Y.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let w=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,v=[],b=[],E=async R=>{try{await R()}catch(L){b.push(L)}};for(let R of A){if(v.length>=p)break;switch(R){case"keep":await E(async()=>{w&&v.push({descriptor:w,name:`Keep ${Y.prettyDescriptor(e.configuration,w)}`,reason:"(no changes)"})});break;case"reuse":await E(async()=>{for(let{descriptor:L,locators:_}of(await lge(t,{project:e,target:a})).values()){if(_.length===1&&_[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes("keep"))continue;let V=`(originally used by ${Y.prettyLocator(e.configuration,_[0])}`;V+=_.length>1?` and ${_.length-1} other${_.length>2?"s":""})`:")",v.push({descriptor:L,name:`Reuse ${Y.prettyDescriptor(e.configuration,L)}`,reason:V})}});break;case"cache":await E(async()=>{for(let L of e.storedDescriptors.values())L.identHash===t.identHash&&v.push({descriptor:L,name:`Reuse ${Y.prettyDescriptor(e.configuration,L)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await E(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let L=e.tryWorkspaceByIdent(t);if(L===null)return;let _=age(L,u);v.push({descriptor:_,name:`Attach ${Y.prettyDescriptor(e.configuration,_)}`,reason:`(local workspace at ${ye.pretty(e.configuration,L.relativeCwd,ye.Type.PATH)})`})});break;case"latest":await E(async()=>{if(a==="peerDependencies")v.push({descriptor:Y.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))v.push({descriptor:null,name:"Resolve from latest",reason:ye.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let L=await D8(t,C,{project:e,cache:o,workspace:r,modifier:u});L&&v.push({descriptor:L,name:`Use ${Y.prettyDescriptor(e.configuration,L)}`,reason:"(resolved from latest)"})}});break}}return{suggestions:v.slice(0,p),rejections:b.slice(0,p)}}async function D8(t,e,{project:r,cache:o,workspace:a,preserveModifier:n=!0,modifier:u}){let A=r.configuration.normalizeDependency(Y.makeDescriptor(t,e)),p=new xi,h=r.configuration.makeFetcher(),C=r.configuration.makeResolver(),w={project:r,fetcher:h,cache:o,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},v={...w,resolver:C,fetchOptions:w},b=C.bindDescriptor(A,a.anchoredLocator,v),E=await C.getCandidates(b,{},v);if(E.length===0)return null;let R=E[0],{protocol:L,source:_,params:V,selector:re}=Y.parseRange(Y.convertToManifestRange(R.reference));if(L===r.configuration.get("defaultProtocol")&&(L=null),w8.default.valid(re)){let ae=re;if(typeof u<"u")re=u+re;else if(n!==!1){let De=typeof n=="string"?n:A.range;re=sge(De,{project:r})+re}let he=Y.makeDescriptor(R,Y.makeRange({protocol:L,source:_,params:V,selector:re}));(await C.getCandidates(r.configuration.normalizeDependency(he),{},v)).length!==1&&(re=ae)}return Y.makeDescriptor(R,Y.makeRange({protocol:L,source:_,params:V,selector:re}))}async function Bft(t){return await oe.mktempPromise(async e=>{let r=Xe.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Ur(e,{configuration:r,check:!1,immutable:!1}))})}var x0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=fe.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=fe.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=fe.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=fe.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=fe.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=fe.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=fe.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=fe.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=fe.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=fe.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(dl)});this.silent=fe.Boolean("--silent",{hidden:!0});this.packages=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=this.interactive??r.get("preferInteractive"),p=A||r.get("preferReuse"),h=e2(this,o),C=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(V=>typeof V<"u"),w=A?1/0:1,v=await Promise.all(this.packages.map(async V=>{let re=V.match(/^\.{0,2}\//)?await v8(V,{cwd:this.context.cwd,workspace:a}):Y.tryParseDescriptor(V),ae=V.match(/^(https?:|git@github)/);if(ae)throw new ot(`It seems you are trying to add a package using a ${ye.pretty(r,`${ae[0]}...`,ye.Type.RANGE)} url; we now require package names to be explicitly specified.
387Try running the command again with the package name prefixed: ${ye.pretty(r,"yarn add",ye.Type.CODE)} ${ye.pretty(r,Y.makeDescriptor(Y.makeIdent(null,"my-package"),`${oe[0]}...`),ye.Type.DESCRIPTOR)}`);if(!re)throw new ot(`The ${ye.pretty(r,V,ye.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let pe=Eft(a,re,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(pe.map(async ve=>{let ge=await $1(re,{project:o,workspace:a,cache:n,fixed:u,target:ve,modifier:h,strategies:E,maxResults:w});return{request:re,suggestedDescriptors:ge,target:ve}}))})).then(V=>V.flat()),b=await pA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async V=>{for(let{request:re,suggestedDescriptors:{suggestions:oe,rejections:pe}}of v)if(oe.filter(ve=>ve.descriptor!==null).length===0){let[ve]=pe;if(typeof ve>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?V.reportError(27,`${Y.prettyDescriptor(r,re)} can't be resolved to a satisfying range`):V.reportError(27,`${Y.prettyDescriptor(r,re)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),V.reportSeparator(),V.reportExceptionOnce(ve)}});if(b.hasErrors())return b.exitCode();let C=!1,R=[],L=[];for(let{suggestedDescriptors:{suggestions:V},target:re}of v){let oe,pe=V.filter(le=>le.descriptor!==null),he=pe[0].descriptor,ve=pe.every(le=>Y.areDescriptorsEqual(le.descriptor,he));pe.length===1||ve?oe=he:(C=!0,{answer:oe}=await(0,lge.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:V.map(({descriptor:le,name:Pe,reason:g})=>le?{name:Pe,hint:g,descriptor:le}:{name:Pe,hint:g,disabled:!0}),onCancel:()=>process.exit(130),result(le){return this.find(le,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ge=a.manifest[re].get(oe.identHash);(typeof ge>"u"||ge.descriptorHash!==oe.descriptorHash)&&(a.manifest[re].set(oe.identHash,oe),this.optional&&(re==="dependencies"?a.manifest.ensureDependencyMeta({...oe,range:"unknown"}).optional=!0:re==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...oe,range:"unknown"}).optional=!0)),typeof ge>"u"?R.push([a,re,oe,E]):L.push([a,re,ge,oe]))}return await r.triggerMultipleHooks(V=>V.afterWorkspaceDependencyAddition,R),await r.triggerMultipleHooks(V=>V.afterWorkspaceDependencyReplacement,L),C&&this.context.stdout.write(` 387Try running the command again with the package name prefixed: ${ye.pretty(r,"yarn add",ye.Type.CODE)} ${ye.pretty(r,Y.makeDescriptor(Y.makeIdent(null,"my-package"),`${ae[0]}...`),ye.Type.DESCRIPTOR)}`);if(!re)throw new ot(`The ${ye.pretty(r,V,ye.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let he=vft(a,re,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(he.map(async De=>{let ge=await t2(re,{project:o,workspace:a,cache:n,fixed:u,target:De,modifier:h,strategies:C,maxResults:w});return{request:re,suggestedDescriptors:ge,target:De}}))})).then(V=>V.flat()),b=await pA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async V=>{for(let{request:re,suggestedDescriptors:{suggestions:ae,rejections:he}}of v)if(ae.filter(De=>De.descriptor!==null).length===0){let[De]=he;if(typeof De>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?V.reportError(27,`${Y.prettyDescriptor(r,re)} can't be resolved to a satisfying range`):V.reportError(27,`${Y.prettyDescriptor(r,re)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),V.reportSeparator(),V.reportExceptionOnce(De)}});if(b.hasErrors())return b.exitCode();let E=!1,R=[],L=[];for(let{suggestedDescriptors:{suggestions:V},target:re}of v){let ae,he=V.filter(le=>le.descriptor!==null),pe=he[0].descriptor,De=he.every(le=>Y.areDescriptorsEqual(le.descriptor,pe));he.length===1||De?ae=pe:(E=!0,{answer:ae}=await(0,cge.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:V.map(({descriptor:le,name:Pe,reason:g})=>le?{name:Pe,hint:g,descriptor:le}:{name:Pe,hint:g,disabled:!0}),onCancel:()=>process.exit(130),result(le){return this.find(le,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ge=a.manifest[re].get(ae.identHash);(typeof ge>"u"||ge.descriptorHash!==ae.descriptorHash)&&(a.manifest[re].set(ae.identHash,ae),this.optional&&(re==="dependencies"?a.manifest.ensureDependencyMeta({...ae,range:"unknown"}).optional=!0:re==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...ae,range:"unknown"}).optional=!0)),typeof ge>"u"?R.push([a,re,ae,C]):L.push([a,re,ge,ae]))}return await r.triggerMultipleHooks(V=>V.afterWorkspaceDependencyAddition,R),await r.triggerMultipleHooks(V=>V.afterWorkspaceDependencyReplacement,L),E&&this.context.stdout.write(`
388`),(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async V=>{await o.install({cache:n,report:V,mode:this.mode})})).exitCode()}};P0.paths=[["add"]],P0.usage=it.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function Eft(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest["dependencies"].has(e.identHash),A=t.manifest["devDependencies"].has(e.identHash),p=t.manifest["peerDependencies"].has(e.identHash);if((r||o)&&u)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&A)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ke();Ke();_t();var x0=class extends ct{constructor(){super(...arguments);this.verbose=fe.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=fe.String({required:!1})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await St.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await sn.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new ot(`Couldn't find a binary named "${this.name}" for package "${Y.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p} 388`),(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async V=>{await o.install({cache:n,report:V,mode:this.mode})})).exitCode()}};x0.paths=[["add"]],x0.usage=it.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function vft(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest["dependencies"].has(e.identHash),A=t.manifest["devDependencies"].has(e.identHash),p=t.manifest["peerDependencies"].has(e.identHash);if((r||o)&&u)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&A)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new ot(`Package "${Y.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ke();Ke();_t();var b0=class extends ct{constructor(){super(...arguments);this.verbose=fe.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=fe.String({required:!1})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Pt.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await sn.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new ot(`Couldn't find a binary named "${this.name}" for package "${Y.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p}
389`),0}return(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await sn.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((E,w)=>Math.max(E,w.length),0);for(let[E,[w,v]]of A)u.reportJson({name:E,source:Y.stringifyIdent(w),path:v});if(this.verbose)for(let[E,[w]]of A)u.reportInfo(null,`${E.padEnd(h," ")} ${Y.prettyLocator(r,w)}`);else for(let E of A.keys())u.reportInfo(null,E)})).exitCode()}};x0.paths=[["bin"]],x0.usage=it.Usage({description:"get the path to a binary script",details:` 389`),0}return(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await sn.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((C,w)=>Math.max(C,w.length),0);for(let[C,[w,v]]of A)u.reportJson({name:C,source:Y.stringifyIdent(w),path:v});if(this.verbose)for(let[C,[w]]of A)u.reportInfo(null,`${C.padEnd(h," ")} ${Y.prettyLocator(r,w)}`);else for(let C of A.keys())u.reportInfo(null,C)})).exitCode()}};b0.paths=[["bin"]],b0.usage=it.Usage({description:"get the path to a binary script",details:`
390 When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. 390 When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.
391 391
392 When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. 392 When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.
393 `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});Ke();bt();_t();var b0=class extends ct{constructor(){super(...arguments);this.mirror=fe.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=fe.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=await Ur.find(r);return(await Et.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await ae.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await ae.removePromise(o.cwd)})).exitCode()}};b0.paths=[["cache","clean"],["cache","clear"]],b0.usage=it.Usage({description:"remove the shared cache files",details:` 393 `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});Ke();St();_t();var Q0=class extends ct{constructor(){super(...arguments);this.mirror=fe.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=fe.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=await Ur.find(r);return(await Ct.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await oe.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await oe.removePromise(o.cwd)})).exitCode()}};Q0.paths=[["cache","clean"],["cache","clear"]],Q0.usage=it.Usage({description:"remove the shared cache files",details:`
394 This command will remove all the files from the cache. 394 This command will remove all the files from the cache.
395 `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});Ke();_t();var uge=tt(e2()),v8=Ie("util"),Q0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=fe.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new ot(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=Ye.convertMapsToIndexableObjects(u),p=a?(0,uge.default)(A,a):A,h=await Et.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} 395 `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});Ke();_t();var Age=tt(r2()),S8=Ie("util"),k0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=fe.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new ot(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=We.convertMapsToIndexableObjects(u),p=a?(0,Age.default)(A,a):A,h=await Ct.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async C=>{C.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p}
396`),h.exitCode();v8.inspect.styles.name="cyan",this.context.stdout.write(`${(0,v8.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} 396`),h.exitCode();S8.inspect.styles.name="cyan",this.context.stdout.write(`${(0,S8.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})}
397`)}return h.exitCode()}};Q0.paths=[["config","get"]],Q0.usage=it.Usage({description:"read a configuration settings",details:` 397`)}return h.exitCode()}};k0.paths=[["config","get"]],k0.usage=it.Usage({description:"read a configuration settings",details:`
398 This command will print a configuration setting. 398 This command will print a configuration setting.
399 399
400 Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. 400 Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value.
401 `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});Ke();_t();var ede=tt(x8()),tde=tt(e2()),rde=tt(b8()),Q8=Ie("util"),k0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=fe.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=fe.String();this.value=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new ot("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new ot(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new ot("This setting only affects the file it's in, and thus cannot be set from the CLI");let A=this.json?JSON.parse(this.value):this.value;await(this.home?C=>Xe.updateHomeConfiguration(C):C=>Xe.updateConfiguration(o(),C))(C=>{if(n){let R=(0,ede.default)(C);return(0,rde.default)(R,this.name,A),R}else return{...C,[a]:A}});let E=(await Xe.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),w=Ye.convertMapsToIndexableObjects(E),v=n?(0,tde.default)(w,n):w;return(await Et.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async C=>{Q8.inspect.styles.name="cyan",C.reportInfo(0,`Successfully set ${this.name} to ${(0,Q8.inspect)(v,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};k0.paths=[["config","set"]],k0.usage=it.Usage({description:"change a configuration settings",details:` 401 `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});Ke();_t();var tde=tt(Q8()),rde=tt(r2()),nde=tt(k8()),F8=Ie("util"),F0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=fe.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=fe.String();this.value=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new ot("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new ot(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new ot("This setting only affects the file it's in, and thus cannot be set from the CLI");let A=this.json?JSON.parse(this.value):this.value;await(this.home?E=>Xe.updateHomeConfiguration(E):E=>Xe.updateConfiguration(o(),E))(E=>{if(n){let R=(0,tde.default)(E);return(0,nde.default)(R,this.name,A),R}else return{...E,[a]:A}});let C=(await Xe.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),w=We.convertMapsToIndexableObjects(C),v=n?(0,rde.default)(w,n):w;return(await Ct.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async E=>{F8.inspect.styles.name="cyan",E.reportInfo(0,`Successfully set ${this.name} to ${(0,F8.inspect)(v,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};F0.paths=[["config","set"]],F0.usage=it.Usage({description:"change a configuration settings",details:`
402 This command will set a configuration setting. 402 This command will set a configuration setting.
403 403
404 When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). 404 When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean).
405 405
406 When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. 406 When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects.
407 `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});Ke();_t();var pde=tt(x8()),hde=tt(ode()),gde=tt(F8()),F0=class extends ct{constructor(){super(...arguments);this.home=fe.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new ot("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new ot(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>Xe.updateHomeConfiguration(h):h=>Xe.updateConfiguration(o(),h);return(await Et.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await A(w=>{if(!(0,hde.default)(w,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,w;let v=n?(0,pde.default)(w):{...w};return(0,gde.default)(v,this.name),v}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};F0.paths=[["config","unset"]],F0.usage=it.Usage({description:"unset a configuration setting",details:` 407 `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});Ke();_t();var hde=tt(Q8()),gde=tt(ade()),dde=tt(T8()),R0=class extends ct{constructor(){super(...arguments);this.home=fe.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new ot("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new ot(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>Xe.updateHomeConfiguration(h):h=>Xe.updateConfiguration(o(),h);return(await Ct.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let C=!1;await A(w=>{if(!(0,gde.default)(w,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),C=!0,w;let v=n?(0,hde.default)(w):{...w};return(0,dde.default)(v,this.name),v}),C||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};R0.paths=[["config","unset"]],R0.usage=it.Usage({description:"unset a configuration setting",details:`
408 This command will unset a configuration setting. 408 This command will unset a configuration setting.
409 `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});Ke();Ke();_t();var R8=Ie("util"),R0=class extends ct{constructor(){super(...arguments);this.verbose=fe.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=fe.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{if(r.invalid.size>0&&!this.json){for(let[n,u]of r.invalid)a.reportError(34,`Invalid configuration key "${n}" in ${u}`);a.reportSeparator()}if(this.json){let n=Ye.sortMap(r.settings.keys(),u=>u);for(let u of n){let A=r.settings.get(u),p=r.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),h=r.sources.get(u);this.verbose?a.reportJson({key:u,effective:p,source:h}):a.reportJson({key:u,effective:p,source:h,...A})}}else{let n=Ye.sortMap(r.settings.keys(),p=>p),u=n.reduce((p,h)=>Math.max(p,h.length),0),A={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let p=n.map(E=>{let w=r.settings.get(E);if(!w)throw new Error(`Assertion failed: This settings ("${E}") should have been registered`);let v=this.why?r.sources.get(E)||"<default>":w.description;return[E,v]}),h=p.reduce((E,[,w])=>Math.max(E,w.length),0);for(let[E,w]of p)a.reportInfo(null,`${E.padEnd(u," ")} ${w.padEnd(h," ")} ${(0,R8.inspect)(r.getSpecial(E,{hideSecrets:!0,getNativePaths:!0}),A)}`)}else for(let p of n)a.reportInfo(null,`${p.padEnd(u," ")} ${(0,R8.inspect)(r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),A)}`)}})).exitCode()}};R0.paths=[["config"]],R0.usage=it.Usage({description:"display the current configuration",details:` 409 `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});Ke();Ke();_t();var N8=Ie("util"),T0=class extends ct{constructor(){super(...arguments);this.verbose=fe.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=fe.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{if(r.invalid.size>0&&!this.json){for(let[n,u]of r.invalid)a.reportError(34,`Invalid configuration key "${n}" in ${u}`);a.reportSeparator()}if(this.json){let n=We.sortMap(r.settings.keys(),u=>u);for(let u of n){let A=r.settings.get(u),p=r.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),h=r.sources.get(u);this.verbose?a.reportJson({key:u,effective:p,source:h}):a.reportJson({key:u,effective:p,source:h,...A})}}else{let n=We.sortMap(r.settings.keys(),p=>p),u=n.reduce((p,h)=>Math.max(p,h.length),0),A={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let p=n.map(C=>{let w=r.settings.get(C);if(!w)throw new Error(`Assertion failed: This settings ("${C}") should have been registered`);let v=this.why?r.sources.get(C)||"<default>":w.description;return[C,v]}),h=p.reduce((C,[,w])=>Math.max(C,w.length),0);for(let[C,w]of p)a.reportInfo(null,`${C.padEnd(u," ")} ${w.padEnd(h," ")} ${(0,N8.inspect)(r.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),A)}`)}else for(let p of n)a.reportInfo(null,`${p.padEnd(u," ")} ${(0,N8.inspect)(r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),A)}`)}})).exitCode()}};T0.paths=[["config"]],T0.usage=it.Usage({description:"display the current configuration",details:`
410 This command prints the current active configuration settings. 410 This command prints the current active configuration settings.
411 `,examples:[["Print the active configuration settings","$0 config"]]});Ke();_t();tl();var iQ={};Yt(iQ,{Strategy:()=>t2,acceptedStrategies:()=>rht,dedupe:()=>T8});Ke();Ke();var dde=tt(Jo()),t2=(e=>(e.HIGHEST="highest",e))(t2||{}),rht=new Set(Object.values(t2)),nht={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);Ye.getSetWithDefault(u,E.identHash).add(h)}let A=new Map(Ye.mapAndFilter(t.storedDescriptors.values(),p=>Y.isVirtualDescriptor(p)?Ye.mapAndFilter.skip:[p.descriptorHash,Ye.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let w=t.originalPackages.get(E);if(typeof w>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{var re;let v=r.getResolutionDependencies(p,a),b=Object.fromEntries(await Ye.allSettledSafe(Object.entries(v).map(async([oe,pe])=>{let he=A.get(pe.descriptorHash);if(typeof he>"u")throw new Error(`Assertion failed: The descriptor (${pe.descriptorHash}) should have been registered`);let ve=await he.promise;if(!ve)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[oe,ve.updatedPackage]})));if(e.length&&!dde.default.isMatch(Y.stringifyIdent(p),e)||!r.shouldPersistResolution(w,a))return w;let C=u.get(p.identHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(C.size===1)return w;let R=[...C].map(oe=>{let pe=t.originalPackages.get(oe);if(typeof pe>"u")throw new Error(`Assertion failed: The package (${oe}) should have been registered`);return pe}),L=await r.getSatisfying(p,b,R,a),_=(re=L.locators)==null?void 0:re[0];if(typeof _>"u"||!L.sorted)return w;let V=t.originalPackages.get(_.locatorHash);if(typeof V>"u")throw new Error(`Assertion failed: The package (${_.locatorHash}) should have been registered`);return V}).then(async v=>{let b=await t.preparePackage(v,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:w,updatedPackage:v,resolvedPackage:b})}).catch(v=>{h.reject(v)})}return[...A.values()].map(p=>p.promise)}};async function T8(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new xi,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let w=nht[e],v=await w(t,r,{resolver:A,resolveOptions:E,fetcher:p,fetchOptions:h}),b=Js.progressViaCounter(v.length);await a.reportProgress(b);let C=0;await Promise.all(v.map(_=>_.then(V=>{if(V===null||V.currentPackage.locatorHash===V.updatedPackage.locatorHash)return;C++;let{descriptor:re,currentPackage:oe,updatedPackage:pe}=V;a.reportInfo(0,`${Y.prettyDescriptor(n,re)} can be deduped from ${Y.prettyLocator(n,oe)} to ${Y.prettyLocator(n,pe)}`),a.reportJson({descriptor:Y.stringifyDescriptor(re),currentResolution:Y.stringifyLocator(oe),updatedResolution:Y.stringifyLocator(pe)}),t.storedResolutions.set(re.descriptorHash,pe.locatorHash)}).finally(()=>b.tick())));let R;switch(C){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${C} packages`}let L=ye.pretty(n,e,ye.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${L} strategy`),C})}var T0=class extends ct{constructor(){super(...arguments);this.strategy=fe.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Gs(t2)});this.check=fe.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(gl)});this.patterns=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await St.find(r,this.context.cwd),a=await Ur.find(r);await o.restoreInstallState({restoreResolutions:!1});let n=0,u=await Et.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async A=>{n=await T8(o,{strategy:this.strategy,patterns:this.patterns,cache:a,report:A})});return u.hasErrors()?u.exitCode():this.check?n?1:0:(await Et.start({configuration:r,stdout:this.context.stdout,json:this.json},async p=>{await o.install({cache:a,report:p,mode:this.mode})})).exitCode()}};T0.paths=[["dedupe"]],T0.usage=it.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});Ke();_t();var Jd=class extends ct{async execute(){let{plugins:e}=await Xe.find(this.context.cwd,this.context.plugins),r=[];for(let u of e){let{commands:A}=u[1];if(A){let h=vo.from(A).definitions();r.push([u[0],h])}}let o=this.cli.definitions(),a=(u,A)=>u.split(" ").slice(1).join()===A.split(" ").slice(1).join(),n=mde()["@yarnpkg/builder"].bundles.standard;for(let u of r){let A=u[1];for(let p of A)o.find(h=>a(h.path,p.path)).plugin={name:u[0],isDefault:n.includes(u[0])}}this.context.stdout.write(`${JSON.stringify(o,null,2)} 411 `,examples:[["Print the active configuration settings","$0 config"]]});Ke();_t();rl();var aQ={};Yt(aQ,{Strategy:()=>n2,acceptedStrategies:()=>oht,dedupe:()=>L8});Ke();Ke();var mde=tt(zo()),n2=(e=>(e.HIGHEST="highest",e))(n2||{}),oht=new Set(Object.values(n2)),aht={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let C=t.storedDescriptors.get(p);if(typeof C>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);We.getSetWithDefault(u,C.identHash).add(h)}let A=new Map(We.mapAndFilter(t.storedDescriptors.values(),p=>Y.isVirtualDescriptor(p)?We.mapAndFilter.skip:[p.descriptorHash,We.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let C=t.storedResolutions.get(p.descriptorHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let w=t.originalPackages.get(C);if(typeof w>"u")throw new Error(`Assertion failed: The package (${C}) should have been registered`);Promise.resolve().then(async()=>{var re;let v=r.getResolutionDependencies(p,a),b=Object.fromEntries(await We.allSettledSafe(Object.entries(v).map(async([ae,he])=>{let pe=A.get(he.descriptorHash);if(typeof pe>"u")throw new Error(`Assertion failed: The descriptor (${he.descriptorHash}) should have been registered`);let De=await pe.promise;if(!De)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[ae,De.updatedPackage]})));if(e.length&&!mde.default.isMatch(Y.stringifyIdent(p),e)||!r.shouldPersistResolution(w,a))return w;let E=u.get(p.identHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(E.size===1)return w;let R=[...E].map(ae=>{let he=t.originalPackages.get(ae);if(typeof he>"u")throw new Error(`Assertion failed: The package (${ae}) should have been registered`);return he}),L=await r.getSatisfying(p,b,R,a),_=(re=L.locators)==null?void 0:re[0];if(typeof _>"u"||!L.sorted)return w;let V=t.originalPackages.get(_.locatorHash);if(typeof V>"u")throw new Error(`Assertion failed: The package (${_.locatorHash}) should have been registered`);return V}).then(async v=>{let b=await t.preparePackage(v,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:w,updatedPackage:v,resolvedPackage:b})}).catch(v=>{h.reject(v)})}return[...A.values()].map(p=>p.promise)}};async function L8(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new xi,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},C={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let w=aht[e],v=await w(t,r,{resolver:A,resolveOptions:C,fetcher:p,fetchOptions:h}),b=Js.progressViaCounter(v.length);await a.reportProgress(b);let E=0;await Promise.all(v.map(_=>_.then(V=>{if(V===null||V.currentPackage.locatorHash===V.updatedPackage.locatorHash)return;E++;let{descriptor:re,currentPackage:ae,updatedPackage:he}=V;a.reportInfo(0,`${Y.prettyDescriptor(n,re)} can be deduped from ${Y.prettyLocator(n,ae)} to ${Y.prettyLocator(n,he)}`),a.reportJson({descriptor:Y.stringifyDescriptor(re),currentResolution:Y.stringifyLocator(ae),updatedResolution:Y.stringifyLocator(he)}),t.storedResolutions.set(re.descriptorHash,he.locatorHash)}).finally(()=>b.tick())));let R;switch(E){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${E} packages`}let L=ye.pretty(n,e,ye.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${L} strategy`),E})}var N0=class extends ct{constructor(){super(...arguments);this.strategy=fe.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Gs(n2)});this.check=fe.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(dl)});this.patterns=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=await Ur.find(r);await o.restoreInstallState({restoreResolutions:!1});let n=0,u=await Ct.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async A=>{n=await L8(o,{strategy:this.strategy,patterns:this.patterns,cache:a,report:A})});return u.hasErrors()?u.exitCode():this.check?n?1:0:(await Ct.start({configuration:r,stdout:this.context.stdout,json:this.json},async p=>{await o.install({cache:a,report:p,mode:this.mode})})).exitCode()}};N0.paths=[["dedupe"]],N0.usage=it.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});Ke();_t();var zd=class extends ct{async execute(){let{plugins:e}=await Xe.find(this.context.cwd,this.context.plugins),r=[];for(let u of e){let{commands:A}=u[1];if(A){let h=vo.from(A).definitions();r.push([u[0],h])}}let o=this.cli.definitions(),a=(u,A)=>u.split(" ").slice(1).join()===A.split(" ").slice(1).join(),n=yde()["@yarnpkg/builder"].bundles.standard;for(let u of r){let A=u[1];for(let p of A)o.find(h=>a(h.path,p.path)).plugin={name:u[0],isDefault:n.includes(u[0])}}this.context.stdout.write(`${JSON.stringify(o,null,2)}
412`)}};Jd.paths=[["--clipanion=definitions"]];var zd=class extends ct{async execute(){this.context.stdout.write(this.cli.usage(null))}};zd.paths=[["help"],["--help"],["-h"]];Ke();bt();_t();var pE=class extends ct{constructor(){super(...arguments);this.leadingArgument=fe.String();this.args=fe.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!Y.tryParseIdent(this.leadingArgument)){let r=z.resolve(this.context.cwd,ue.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ke();var Xd=class extends ct{async execute(){this.context.stdout.write(`${On||"<unknown>"} 412`)}};zd.paths=[["--clipanion=definitions"]];var Xd=class extends ct{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xd.paths=[["help"],["--help"],["-h"]];Ke();St();_t();var pC=class extends ct{constructor(){super(...arguments);this.leadingArgument=fe.String();this.args=fe.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!Y.tryParseIdent(this.leadingArgument)){let r=J.resolve(this.context.cwd,ue.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ke();var Zd=class extends ct{async execute(){this.context.stdout.write(`${On||"<unknown>"}
413`)}};Xd.paths=[["-v"],["--version"]];Ke();Ke();_t();var N0=class extends ct{constructor(){super(...arguments);this.commandName=fe.String();this.args=fe.Proxy()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await St.find(r,this.context.cwd);return await o.restoreInstallState(),await sn.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};N0.paths=[["exec"]],N0.usage=it.Usage({description:"execute a shell script",details:` 413`)}};Zd.paths=[["-v"],["--version"]];Ke();Ke();_t();var L0=class extends ct{constructor(){super(...arguments);this.commandName=fe.String();this.args=fe.Proxy()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Pt.find(r,this.context.cwd);return await o.restoreInstallState(),await sn.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};L0.paths=[["exec"]],L0.usage=it.Usage({description:"execute a shell script",details:`
414 This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. 414 This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell.
415 415
416 It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). 416 It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).
417 `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});Ke();_t();tl();var L0=class extends ct{constructor(){super(...arguments);this.hash=fe.String({required:!1,validator:ed(ZI(),[$I(/^p[0-9a-f]{5}$/)])})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await St.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),typeof this.hash<"u"?await sht(this.hash,o,{stdout:this.context.stdout}):(await Et.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=[([,A])=>Y.stringifyLocator(o.storedPackages.get(A.subject)),([,A])=>Y.stringifyIdent(A.requested)];for(let[A,p]of Ye.sortMap(o.peerRequirements,u)){let h=o.storedPackages.get(p.subject);if(typeof h>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let E=o.storedPackages.get(p.rootRequester);if(typeof E>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let w=h.dependencies.get(p.requested.identHash)??null,v=ye.pretty(r,A,ye.Type.CODE),b=Y.prettyLocator(r,h),C=Y.prettyIdent(r,p.requested),R=Y.prettyIdent(r,E),L=p.allRequesters.length-1,_=`descendant${L===1?"":"s"}`,V=L>0?` and ${L} ${_}`:"",re=w!==null?"provides":"doesn't provide";n.reportInfo(null,`${v} \u2192 ${b} ${re} ${C} to ${R}${V}`)}})).exitCode()}};L0.paths=[["explain","peer-requirements"]],L0.usage=it.Usage({description:"explain a set of peer requirements",details:` 417 `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});Ke();_t();rl();var O0=class extends ct{constructor(){super(...arguments);this.hash=fe.String({required:!1,validator:td($I(),[ew(/^p[0-9a-f]{5}$/)])})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),typeof this.hash<"u"?await cht(this.hash,o,{stdout:this.context.stdout}):(await Ct.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=[([,A])=>Y.stringifyLocator(o.storedPackages.get(A.subject)),([,A])=>Y.stringifyIdent(A.requested)];for(let[A,p]of We.sortMap(o.peerRequirements,u)){let h=o.storedPackages.get(p.subject);if(typeof h>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let C=o.storedPackages.get(p.rootRequester);if(typeof C>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let w=h.dependencies.get(p.requested.identHash)??null,v=ye.pretty(r,A,ye.Type.CODE),b=Y.prettyLocator(r,h),E=Y.prettyIdent(r,p.requested),R=Y.prettyIdent(r,C),L=p.allRequesters.length-1,_=`descendant${L===1?"":"s"}`,V=L>0?` and ${L} ${_}`:"",re=w!==null?"provides":"doesn't provide";n.reportInfo(null,`${v} \u2192 ${b} ${re} ${E} to ${R}${V}`)}})).exitCode()}};O0.paths=[["explain","peer-requirements"]],O0.usage=it.Usage({description:"explain a set of peer requirements",details:`
418 A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. 418 A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants.
419 419
420 When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. 420 When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not.
@@ -422,9 +422,9 @@ Try running the command again with the package name prefixed: ${ye.pretty(r,"yar
422 When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. 422 When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set.
423 423
424 **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). 424 **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`).
425 `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function sht(t,e,r){let{configuration:o}=e,a=e.peerRequirements.get(t);if(typeof a>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);return(await Et.start({configuration:o,stdout:r.stdout,includeFooter:!1},async u=>{let A=e.storedPackages.get(a.subject);if(typeof A>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let p=e.storedPackages.get(a.rootRequester);if(typeof p>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=A.dependencies.get(a.requested.identHash)??null,E=h!==null?e.storedResolutions.get(h.descriptorHash):null;if(typeof E>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let w=E!==null?e.storedPackages.get(E):null;if(typeof w>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let v=[...a.allRequesters.values()].map(_=>{let V=e.storedPackages.get(_);if(typeof V>"u")throw new Error("Assertion failed: Expected the package to be registered");let re=Y.devirtualizeLocator(V),oe=e.storedPackages.get(re.locatorHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the package to be registered");let pe=oe.peerDependencies.get(a.requested.identHash);if(typeof pe>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:V,peerDependency:pe}});if(w!==null){let _=v.every(({peerDependency:V})=>Tr.satisfiesWithPrereleases(w.version,V.range));u.reportInfo(0,`${Y.prettyLocator(o,A)} provides ${Y.prettyLocator(o,w)} with version ${Y.prettyReference(o,w.version??"<missing>")}, which ${_?"satisfies":"doesn't satisfy"} the following requirements:`)}else u.reportInfo(0,`${Y.prettyLocator(o,A)} doesn't provide ${Y.prettyIdent(o,a.requested)}, breaking the following requirements:`);u.reportSeparator();let b=ye.mark(o),C=[];for(let{pkg:_,peerDependency:V}of Ye.sortMap(v,re=>Y.stringifyLocator(re.pkg))){let oe=(w!==null?Tr.satisfiesWithPrereleases(w.version,V.range):!1)?b.Check:b.Cross;C.push({stringifiedLocator:Y.stringifyLocator(_),prettyLocator:Y.prettyLocator(o,_),prettyRange:Y.prettyRange(o,V.range),mark:oe})}let R=Math.max(...C.map(({stringifiedLocator:_})=>_.length)),L=Math.max(...C.map(({prettyRange:_})=>_.length));for(let{stringifiedLocator:_,prettyLocator:V,prettyRange:re,mark:oe}of Ye.sortMap(C,({stringifiedLocator:pe})=>pe))u.reportInfo(null,`${V.padEnd(R+(V.length-_.length)," ")} \u2192 ${re.padEnd(L," ")} ${oe}`);C.length>1&&(u.reportSeparator(),u.reportInfo(0,`Note: these requirements start with ${Y.prettyLocator(e.configuration,p)}`))})).exitCode()}Ke();_t();tl();Ke();Ke();bt();_t();var yde=tt(si()),O0=class extends ct{constructor(){super(...arguments);this.useYarnPath=fe.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=fe.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let A=r.sources.get("yarnPath");if(!A)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(z.contains(p,A))return 0}let o=()=>{if(typeof On>"u")throw new ot("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(A,p)=>({version:p,url:A.replace(/\{\}/g,p)});if(this.version==="self")a={url:o(),version:On??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await r2(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await r2(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.version))a={url:`file://${z.resolve(ue.toPortablePath(this.version))}`,version:"file"};else if(Tr.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(Tr.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(Tr.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await oht(r,this.version));else throw new ot(`Invalid version descriptor "${this.version}"`);return(await Et.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async A=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(A.reportInfo(0,`Retrieving ${ye.pretty(r,a.url,ye.Type.PATH)}`),await ae.readFilePromise(a.url.slice(h.length))):(A.reportInfo(0,`Downloading ${ye.pretty(r,a.url,ye.Type.URL)}`),await ln.get(a.url,{configuration:r}))};await N8(r,a.version,p,{report:A,useYarnPath:this.useYarnPath})})).exitCode()}};O0.paths=[["set","version"]],O0.usage=it.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function oht(t,e){let o=(await ln.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>Tr.satisfiesWithPrereleases(a,e));if(o.length===0)throw new ot(`No matching release found for range ${ye.pretty(t,e,ye.Type.RANGE)}.`);return o[0]}async function r2(t,e){let r=await ln.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new ot(`Tag ${ye.pretty(t,e,ye.Type.RANGE)} not found`);return r.latest[e]}async function N8(t,e,r,{report:o,useYarnPath:a}){let n,u=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let re=await u();await ae.mktempPromise(async oe=>{let pe=z.join(oe,"yarn.cjs");await ae.writeFilePromise(pe,re);let{stdout:he}=await Mr.execvp(process.execPath,[ue.fromPortablePath(pe),"--version"],{cwd:oe,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=he.trim(),!yde.default.valid(e))throw new Error(`Invalid semver version. ${ye.pretty(t,"yarn --version",ye.Type.CODE)} returned: 425 `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function cht(t,e,r){let{configuration:o}=e,a=e.peerRequirements.get(t);if(typeof a>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);return(await Ct.start({configuration:o,stdout:r.stdout,includeFooter:!1},async u=>{let A=e.storedPackages.get(a.subject);if(typeof A>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let p=e.storedPackages.get(a.rootRequester);if(typeof p>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=A.dependencies.get(a.requested.identHash)??null,C=h!==null?e.storedResolutions.get(h.descriptorHash):null;if(typeof C>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let w=C!==null?e.storedPackages.get(C):null;if(typeof w>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let v=[...a.allRequesters.values()].map(_=>{let V=e.storedPackages.get(_);if(typeof V>"u")throw new Error("Assertion failed: Expected the package to be registered");let re=Y.devirtualizeLocator(V),ae=e.storedPackages.get(re.locatorHash);if(typeof ae>"u")throw new Error("Assertion failed: Expected the package to be registered");let he=ae.peerDependencies.get(a.requested.identHash);if(typeof he>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:V,peerDependency:he}});if(w!==null){let _=v.every(({peerDependency:V})=>Tr.satisfiesWithPrereleases(w.version,V.range));u.reportInfo(0,`${Y.prettyLocator(o,A)} provides ${Y.prettyLocator(o,w)} with version ${Y.prettyReference(o,w.version??"<missing>")}, which ${_?"satisfies":"doesn't satisfy"} the following requirements:`)}else u.reportInfo(0,`${Y.prettyLocator(o,A)} doesn't provide ${Y.prettyIdent(o,a.requested)}, breaking the following requirements:`);u.reportSeparator();let b=ye.mark(o),E=[];for(let{pkg:_,peerDependency:V}of We.sortMap(v,re=>Y.stringifyLocator(re.pkg))){let ae=(w!==null?Tr.satisfiesWithPrereleases(w.version,V.range):!1)?b.Check:b.Cross;E.push({stringifiedLocator:Y.stringifyLocator(_),prettyLocator:Y.prettyLocator(o,_),prettyRange:Y.prettyRange(o,V.range),mark:ae})}let R=Math.max(...E.map(({stringifiedLocator:_})=>_.length)),L=Math.max(...E.map(({prettyRange:_})=>_.length));for(let{stringifiedLocator:_,prettyLocator:V,prettyRange:re,mark:ae}of We.sortMap(E,({stringifiedLocator:he})=>he))u.reportInfo(null,`${V.padEnd(R+(V.length-_.length)," ")} \u2192 ${re.padEnd(L," ")} ${ae}`);E.length>1&&(u.reportSeparator(),u.reportInfo(0,`Note: these requirements start with ${Y.prettyLocator(e.configuration,p)}`))})).exitCode()}Ke();_t();rl();Ke();Ke();St();_t();var Ede=tt(si()),M0=class extends ct{constructor(){super(...arguments);this.useYarnPath=fe.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=fe.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let A=r.sources.get("yarnPath");if(!A)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(J.contains(p,A))return 0}let o=()=>{if(typeof On>"u")throw new ot("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(A,p)=>({version:p,url:A.replace(/\{\}/g,p)});if(this.version==="self")a={url:o(),version:On??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await i2(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await i2(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.version))a={url:`file://${J.resolve(ue.toPortablePath(this.version))}`,version:"file"};else if(Tr.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(Tr.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(Tr.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await uht(r,this.version));else throw new ot(`Invalid version descriptor "${this.version}"`);return(await Ct.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async A=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(A.reportInfo(0,`Retrieving ${ye.pretty(r,a.url,ye.Type.PATH)}`),await oe.readFilePromise(a.url.slice(h.length))):(A.reportInfo(0,`Downloading ${ye.pretty(r,a.url,ye.Type.URL)}`),await ln.get(a.url,{configuration:r}))};await O8(r,a.version,p,{report:A,useYarnPath:this.useYarnPath})})).exitCode()}};M0.paths=[["set","version"]],M0.usage=it.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function uht(t,e){let o=(await ln.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>Tr.satisfiesWithPrereleases(a,e));if(o.length===0)throw new ot(`No matching release found for range ${ye.pretty(t,e,ye.Type.RANGE)}.`);return o[0]}async function i2(t,e){let r=await ln.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new ot(`Tag ${ye.pretty(t,e,ye.Type.RANGE)} not found`);return r.latest[e]}async function O8(t,e,r,{report:o,useYarnPath:a}){let n,u=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let re=await u();await oe.mktempPromise(async ae=>{let he=J.join(ae,"yarn.cjs");await oe.writeFilePromise(he,re);let{stdout:pe}=await Mr.execvp(process.execPath,[ue.fromPortablePath(he),"--version"],{cwd:ae,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=pe.trim(),!Ede.default.valid(e))throw new Error(`Invalid semver version. ${ye.pretty(t,"yarn --version",ye.Type.CODE)} returned:
426${e}`)})}let A=t.projectCwd??t.startingCwd,p=z.resolve(A,".yarn/releases"),h=z.resolve(p,`yarn-${e}.cjs`),E=z.relative(t.startingCwd,h),w=Ye.isTaggedYarnVersion(e),v=t.get("yarnPath"),b=!w,C=b||!!v||!!a;if(a===!1){if(b)throw new Vt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");C=!1}else!C&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${ye.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${ye.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),C=!0);if(C){let re=await u();o.reportInfo(0,`Saving the new release in ${ye.pretty(t,E,"magenta")}`),await ae.removePromise(z.dirname(h)),await ae.mkdirPromise(z.dirname(h),{recursive:!0}),await ae.writeFilePromise(h,re,{mode:493}),await Xe.updateConfiguration(A,{yarnPath:z.relative(A,h)})}else await ae.removePromise(z.dirname(h)),await Xe.updateConfiguration(A,{yarnPath:Xe.deleteProperty});let R=await Nt.tryFind(A)||new Nt;R.packageManager=`yarn@${w?e:await r2(t,"stable")}`;let L={};R.exportTo(L);let _=z.join(A,Nt.fileName),V=`${JSON.stringify(L,null,R.indent)} 426${e}`)})}let A=t.projectCwd??t.startingCwd,p=J.resolve(A,".yarn/releases"),h=J.resolve(p,`yarn-${e}.cjs`),C=J.relative(t.startingCwd,h),w=We.isTaggedYarnVersion(e),v=t.get("yarnPath"),b=!w,E=b||!!v||!!a;if(a===!1){if(b)throw new Vt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");E=!1}else!E&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${ye.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${ye.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),E=!0);if(E){let re=await u();o.reportInfo(0,`Saving the new release in ${ye.pretty(t,C,"magenta")}`),await oe.removePromise(J.dirname(h)),await oe.mkdirPromise(J.dirname(h),{recursive:!0}),await oe.writeFilePromise(h,re,{mode:493}),await Xe.updateConfiguration(A,{yarnPath:J.relative(A,h)})}else await oe.removePromise(J.dirname(h)),await Xe.updateConfiguration(A,{yarnPath:Xe.deleteProperty});let R=await Nt.tryFind(A)||new Nt;R.packageManager=`yarn@${w?e:await i2(t,"stable")}`;let L={};R.exportTo(L);let _=J.join(A,Nt.fileName),V=`${JSON.stringify(L,null,R.indent)}
427`;return await ae.changeFilePromise(_,V,{automaticNewlines:!0}),{bundleVersion:e}}function Cde(t){return dr[$D(t)]}var aht=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function lht(t){let r=`https://repo.yarnpkg.com/${Ye.isTaggedYarnVersion(On)?On:await r2(t,"canary")}/packages/gatsby/content/advanced/error-codes.md`,o=await ln.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(aht),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=Cde(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var M0=class extends ct{constructor(){super(...arguments);this.code=fe.String({required:!1,validator:ed(ZI(),[$I(/^YN[0-9]{4}$/)])});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=Cde(this.code),a=ye.pretty(r,o,ye.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await lht(r)).get(this.code),p=typeof A<"u"?ye.jsonOrPretty(this.json,r,ye.tuple(ye.Type.MARKDOWN,{text:A,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. 427`;return await oe.changeFilePromise(_,V,{automaticNewlines:!0}),{bundleVersion:e}}function Cde(t){return dr[tS(t)]}var Aht=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function fht(t){let r=`https://repo.yarnpkg.com/${We.isTaggedYarnVersion(On)?On:await i2(t,"canary")}/packages/gatsby/content/advanced/error-codes.md`,o=await ln.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(Aht),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=Cde(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var U0=class extends ct{constructor(){super(...arguments);this.code=fe.String({required:!1,validator:td($I(),[ew(/^YN[0-9]{4}$/)])});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=Cde(this.code),a=ye.pretty(r,o,ye.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await fht(r)).get(this.code),p=typeof A<"u"?ye.jsonOrPretty(this.json,r,ye.tuple(ye.Type.MARKDOWN,{text:A,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description.
428 428
429You can help us by editing this page on GitHub \u{1F642}: 429You can help us by editing this page on GitHub \u{1F642}:
430${ye.jsonOrPretty(this.json,r,ye.tuple(ye.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} 430${ye.jsonOrPretty(this.json,r,ye.tuple(ye.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))}
@@ -432,25 +432,25 @@ ${ye.jsonOrPretty(this.json,r,ye.tuple(ye.Type.URL,"https://github.com/yarnpkg/b
432`):this.context.stdout.write(`${n} 432`):this.context.stdout.write(`${n}
433 433
434${p} 434${p}
435`)}else{let o={children:Ye.mapAndFilter(Object.entries(dr),([a,n])=>Number.isNaN(Number(a))?Ye.mapAndFilter.skip:{label:Vu(Number(a)),value:ye.tuple(ye.Type.CODE,n)})};Zo.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};M0.paths=[["explain"]],M0.usage=it.Usage({description:"explain an error code",details:` 435`)}else{let o={children:We.mapAndFilter(Object.entries(dr),([a,n])=>Number.isNaN(Number(a))?We.mapAndFilter.skip:{label:Vu(Number(a)),value:ye.tuple(ye.Type.CODE,n)})};$o.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};U0.paths=[["explain"]],U0.usage=it.Usage({description:"explain an error code",details:`
436 When the code argument is specified, this command prints its name and its details. 436 When the code argument is specified, this command prints its name and its details.
437 437
438 When used without arguments, this command lists all error codes and their names. 438 When used without arguments, this command lists all error codes and their names.
439 `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});Ke();bt();_t();var Ede=tt(Jo()),U0=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=fe.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=fe.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=fe.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=fe.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=fe.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=fe.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a&&!this.all)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(oe,{recursive:pe})=>{let he=oe.anchoredLocator.locatorHash,ve=new Map,ge=[he];for(;ge.length>0;){let le=ge.shift();if(ve.has(le))continue;let Pe=o.storedPackages.get(le);if(typeof Pe>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ve.set(le,Pe),Y.isVirtualLocator(Pe)&&ge.push(Y.devirtualizeLocator(Pe).locatorHash),!(!pe&&le!==he))for(let g of Pe.dependencies.values()){let De=o.storedResolutions.get(g.descriptorHash);if(typeof De>"u")throw new Error("Assertion failed: Expected the resolution to be registered");ge.push(De)}}return ve.values()},p=({recursive:oe})=>{let pe=new Map;for(let he of o.workspaces)for(let ve of A(he,{recursive:oe}))pe.set(ve.locatorHash,ve);return pe.values()},h=({all:oe,recursive:pe})=>oe&&pe?o.storedPackages.values():oe?p({recursive:pe}):A(a,{recursive:pe}),E=({all:oe,recursive:pe})=>{let he=h({all:oe,recursive:pe}),ve=this.patterns.map(Pe=>{let g=Y.parseLocator(Pe),De=Ede.default.makeRe(Y.stringifyIdent(g)),Ce=Y.isVirtualLocator(g),de=Ce?Y.devirtualizeLocator(g):g;return ne=>{let Z=Y.stringifyIdent(ne);if(!De.test(Z))return!1;if(g.reference==="unknown")return!0;let me=Y.isVirtualLocator(ne),be=me?Y.devirtualizeLocator(ne):ne;return!(Ce&&me&&g.reference!==ne.reference||de.reference!==be.reference)}}),ge=Ye.sortMap([...he],Pe=>Y.stringifyLocator(Pe));return{selection:ge.filter(Pe=>ve.length===0||ve.some(g=>g(Pe))),sortedLookup:ge}},{selection:w,sortedLookup:v}=E({all:this.all,recursive:this.recursive});if(w.length===0)throw new ot("No package matched your request");let b=new Map;if(this.dependents)for(let oe of v)for(let pe of oe.dependencies.values()){let he=o.storedResolutions.get(pe.descriptorHash);if(typeof he>"u")throw new Error("Assertion failed: Expected the resolution to be registered");Ye.getArrayWithDefault(b,he).push(oe)}let C=new Map;for(let oe of v){if(!Y.isVirtualLocator(oe))continue;let pe=Y.devirtualizeLocator(oe);Ye.getArrayWithDefault(C,pe.locatorHash).push(oe)}let R={},L={children:R},_=r.makeFetcher(),V={project:o,fetcher:_,cache:n,checksums:o.storedChecksums,report:new xi,cacheOptions:{skipIntegrityCheck:!0}},re=[async(oe,pe,he)=>{var le;if(!pe.has("manifest"))return;let ve=await _.fetch(oe,V),ge;try{ge=await Nt.find(ve.prefixPath,{baseFs:ve.packageFs})}finally{(le=ve.releaseFs)==null||le.call(ve)}he("Manifest",{License:ye.tuple(ye.Type.NO_HINT,ge.license),Homepage:ye.tuple(ye.Type.URL,ge.raw.homepage??null)})},async(oe,pe,he)=>{if(!pe.has("cache"))return;let ve={mockedPackages:o.disabledLocators,unstablePackages:o.conditionalLocators},ge=o.storedChecksums.get(oe.locatorHash)??null,le=n.getLocatorPath(oe,ge,ve),Pe;if(le!==null)try{Pe=ae.statSync(le)}catch{}let g=typeof Pe<"u"?[Pe.size,ye.Type.SIZE]:void 0;he("Cache",{Checksum:ye.tuple(ye.Type.NO_HINT,ge),Path:ye.tuple(ye.Type.PATH,le),Size:g})}];for(let oe of w){let pe=Y.isVirtualLocator(oe);if(!this.virtuals&&pe)continue;let he={},ve={value:[oe,ye.Type.LOCATOR],children:he};if(R[Y.stringifyLocator(oe)]=ve,this.nameOnly){delete ve.children;continue}let ge=C.get(oe.locatorHash);typeof ge<"u"&&(he.Instances={label:"Instances",value:ye.tuple(ye.Type.NUMBER,ge.length)}),he.Version={label:"Version",value:ye.tuple(ye.Type.NO_HINT,oe.version)};let le=(g,De)=>{let Ce={};if(he[g]=Ce,Array.isArray(De))Ce.children=De.map(de=>({value:de}));else{let de={};Ce.children=de;for(let[ne,Z]of Object.entries(De))typeof Z>"u"||(de[ne]={label:ne,value:Z})}};if(!pe){for(let g of re)await g(oe,u,le);await r.triggerHook(g=>g.fetchPackageInfo,oe,u,le)}oe.bin.size>0&&!pe&&le("Exported Binaries",[...oe.bin.keys()].map(g=>ye.tuple(ye.Type.PATH,g)));let Pe=b.get(oe.locatorHash);typeof Pe<"u"&&Pe.length>0&&le("Dependents",Pe.map(g=>ye.tuple(ye.Type.LOCATOR,g))),oe.dependencies.size>0&&!pe&&le("Dependencies",[...oe.dependencies.values()].map(g=>{let De=o.storedResolutions.get(g.descriptorHash),Ce=typeof De<"u"?o.storedPackages.get(De)??null:null;return ye.tuple(ye.Type.RESOLUTION,{descriptor:g,locator:Ce})})),oe.peerDependencies.size>0&&pe&&le("Peer dependencies",[...oe.peerDependencies.values()].map(g=>{let De=oe.dependencies.get(g.identHash),Ce=typeof De<"u"?o.storedResolutions.get(De.descriptorHash)??null:null,de=Ce!==null?o.storedPackages.get(Ce)??null:null;return ye.tuple(ye.Type.RESOLUTION,{descriptor:g,locator:de})}))}Zo.emitTree(L,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};U0.paths=[["info"]],U0.usage=it.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});Ke();bt();_l();var sQ=tt(Xg());_t();tl();var _0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=fe.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=fe.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=fe.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=fe.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=fe.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=fe.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(gl)});this.cacheFolder=fe.String("--cache-folder",{hidden:!0});this.frozenLockfile=fe.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=fe.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=fe.Boolean("--non-interactive",{hidden:!0});this.preferOffline=fe.Boolean("--prefer-offline",{hidden:!0});this.production=fe.Boolean("--production",{hidden:!0});this.registry=fe.String("--registry",{hidden:!0});this.silent=fe.Boolean("--silent",{hidden:!0});this.networkTimeout=fe.String("--network-timeout",{hidden:!0})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=async(C,{error:R})=>{let L=await Et.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async _=>{R?_.reportError(50,C):_.reportWarning(50,C)});return L.hasErrors()?L.exitCode():null};if(typeof this.ignoreEngines<"u"){let C=await a("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!sQ.default.VERCEL});if(C!==null)return C}if(typeof this.registry<"u"){let C=await a("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(C!==null)return C}if(typeof this.preferOffline<"u"){let C=await a("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!sQ.default.VERCEL});if(C!==null)return C}if(typeof this.production<"u"){let C=await a("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(C!==null)return C}if(typeof this.nonInteractive<"u"){let C=await a("The --non-interactive option is deprecated",{error:!o});if(C!==null)return C}if(typeof this.frozenLockfile<"u"&&(await a("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let C=await a("The cache-folder option has been deprecated; use rc settings instead",{error:!sQ.default.NETLIFY});if(C!==null)return C}let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new ot(`${ye.pretty(r,"--immutable",ye.Type.CODE)} and ${ye.pretty(r,"--immutable-cache",ye.Type.CODE)} cannot be used with ${ye.pretty(r,"--mode=update-lockfile",ye.Type.CODE)}`);let u=(this.immutable??r.get("enableImmutableInstalls"))&&!n,A=this.immutableCache&&!n;if(r.projectCwd!==null){let C=await Et.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{await uht(r,u)&&(R.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),R.reportSeparator())});if(C.hasErrors())return C.exitCode()}if(r.projectCwd!==null&&typeof r.sources.get("nodeLinker")>"u"){let C=r.projectCwd,R;try{R=await ae.readFilePromise(z.join(C,Lr.lockfile),"utf8")}catch{}if(R!=null&&R.includes("yarn lockfile v1")){let L=await Et.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async _=>{_.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),_.reportSeparator(),r.use("<compat>",{nodeLinker:"node-modules"},C,{overwrite:!0}),await Xe.updateConfiguration(C,{nodeLinker:"node-modules"})});if(L.hasErrors())return L.exitCode()}}if(r.projectCwd!==null){let C=await Et.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{var L;(L=Xe.telemetry)!=null&&L.isNew&&(R.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),R.reportInfo(65,`Run ${ye.pretty(r,"yarn config set --home enableTelemetry 0",ye.Type.CODE)} to disable`),R.reportSeparator())});if(C.hasErrors())return C.exitCode()}let{project:p,workspace:h}=await St.find(r,this.context.cwd),E=await Ur.find(r,{immutable:A,check:this.checkCache});if(!h)throw new er(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let w=r.get("enableHardenedMode");(this.refreshLockfile??w)&&(p.lockfileNeedsRefresh=!0);let v=this.checkResolutions??w;return(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout,includeLogs:!0},async C=>{await p.install({cache:E,report:C,immutable:u,checkResolutions:v,mode:this.mode})})).exitCode()}};_0.paths=[["install"],it.Default],_0.usage=it.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var cht="<<<<<<<";async function uht(t,e){if(!t.projectCwd)return!1;let r=z.join(t.projectCwd,t.get("lockfileFilename"));if(!await ae.existsPromise(r)||!(await ae.readFilePromise(r,"utf8")).includes(cht))return!1;if(e)throw new Vt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Mr.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Mr.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Mr.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new Vt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let p=await Mr.execvp("git",["show",`${A}:./${Lr.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new Vt(83,`Git returned an error when trying to access the lockfile content in ${A}`);try{return Yi(p.stdout)}catch{throw new Vt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(A=>!!A.__metadata);for(let A of n)if(A.__metadata.version<7)for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=Y.parseDescriptor(p,!0),E=t.normalizeDependency(h),w=Y.stringifyDescriptor(E);w!==p&&(A[w]=A[p],delete A[p])}let u=Object.assign({},...n);u.__metadata.version=Math.min(0,...n.map(A=>A.__metadata.version??1/0)),u.__metadata.cacheKey=Math.min(0,...n.map(A=>A.__metadata.cacheKey??0));for(let[A,p]of Object.entries(u))typeof p=="string"&&delete u[A];return await ae.changeFilePromise(r,wa(u),{automaticNewlines:!0}),!0}Ke();bt();_t();var H0=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=fe.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=fe.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=o.topLevelWorkspace,A=[];for(let h of this.destinations){let E=z.resolve(this.context.cwd,ue.toPortablePath(h)),w=await Xe.find(E,this.context.plugins,{useRc:!1,strict:!1}),{project:v,workspace:b}=await St.find(w,E);if(o.cwd===v.cwd)throw new ot(`Invalid destination '${h}'; Can't link the project to itself`);if(!b)throw new er(v.cwd,E);if(this.all){let C=!1;for(let R of v.workspaces)R.manifest.name&&(!R.manifest.private||this.private)&&(A.push(R),C=!0);if(!C)throw new ot(`No workspace found to be linked in the target project: ${h}`)}else{if(!b.manifest.name)throw new ot(`The target workspace at '${h}' doesn't have a name and thus cannot be linked`);if(b.manifest.private&&!this.private)throw new ot(`The target workspace at '${h}' is marked private - use the --private flag to link it anyway`);A.push(b)}}for(let h of A){let E=Y.stringifyIdent(h.locator),w=this.relative?z.relative(o.cwd,h.cwd):h.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:E}},reference:`portal:${w}`})}return(await Et.start({configuration:r,stdout:this.context.stdout},async h=>{await o.install({cache:n,report:h})})).exitCode()}};H0.paths=[["link"]],H0.usage=it.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});_t();var q0=class extends ct{constructor(){super(...arguments);this.args=fe.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};q0.paths=[["node"]],q0.usage=it.Usage({description:"run node with the hook already setup",details:` 439 `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});Ke();St();_t();var Ide=tt(zo()),_0=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=fe.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=fe.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=fe.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=fe.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=fe.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=fe.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a&&!this.all)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(ae,{recursive:he})=>{let pe=ae.anchoredLocator.locatorHash,De=new Map,ge=[pe];for(;ge.length>0;){let le=ge.shift();if(De.has(le))continue;let Pe=o.storedPackages.get(le);if(typeof Pe>"u")throw new Error("Assertion failed: Expected the package to be registered");if(De.set(le,Pe),Y.isVirtualLocator(Pe)&&ge.push(Y.devirtualizeLocator(Pe).locatorHash),!(!he&&le!==pe))for(let g of Pe.dependencies.values()){let ve=o.storedResolutions.get(g.descriptorHash);if(typeof ve>"u")throw new Error("Assertion failed: Expected the resolution to be registered");ge.push(ve)}}return De.values()},p=({recursive:ae})=>{let he=new Map;for(let pe of o.workspaces)for(let De of A(pe,{recursive:ae}))he.set(De.locatorHash,De);return he.values()},h=({all:ae,recursive:he})=>ae&&he?o.storedPackages.values():ae?p({recursive:he}):A(a,{recursive:he}),C=({all:ae,recursive:he})=>{let pe=h({all:ae,recursive:he}),De=this.patterns.map(Pe=>{let g=Y.parseLocator(Pe),ve=Ide.default.makeRe(Y.stringifyIdent(g)),Ee=Y.isVirtualLocator(g),de=Ee?Y.devirtualizeLocator(g):g;return ne=>{let Z=Y.stringifyIdent(ne);if(!ve.test(Z))return!1;if(g.reference==="unknown")return!0;let me=Y.isVirtualLocator(ne),be=me?Y.devirtualizeLocator(ne):ne;return!(Ee&&me&&g.reference!==ne.reference||de.reference!==be.reference)}}),ge=We.sortMap([...pe],Pe=>Y.stringifyLocator(Pe));return{selection:ge.filter(Pe=>De.length===0||De.some(g=>g(Pe))),sortedLookup:ge}},{selection:w,sortedLookup:v}=C({all:this.all,recursive:this.recursive});if(w.length===0)throw new ot("No package matched your request");let b=new Map;if(this.dependents)for(let ae of v)for(let he of ae.dependencies.values()){let pe=o.storedResolutions.get(he.descriptorHash);if(typeof pe>"u")throw new Error("Assertion failed: Expected the resolution to be registered");We.getArrayWithDefault(b,pe).push(ae)}let E=new Map;for(let ae of v){if(!Y.isVirtualLocator(ae))continue;let he=Y.devirtualizeLocator(ae);We.getArrayWithDefault(E,he.locatorHash).push(ae)}let R={},L={children:R},_=r.makeFetcher(),V={project:o,fetcher:_,cache:n,checksums:o.storedChecksums,report:new xi,cacheOptions:{skipIntegrityCheck:!0}},re=[async(ae,he,pe)=>{var le;if(!he.has("manifest"))return;let De=await _.fetch(ae,V),ge;try{ge=await Nt.find(De.prefixPath,{baseFs:De.packageFs})}finally{(le=De.releaseFs)==null||le.call(De)}pe("Manifest",{License:ye.tuple(ye.Type.NO_HINT,ge.license),Homepage:ye.tuple(ye.Type.URL,ge.raw.homepage??null)})},async(ae,he,pe)=>{if(!he.has("cache"))return;let De={mockedPackages:o.disabledLocators,unstablePackages:o.conditionalLocators},ge=o.storedChecksums.get(ae.locatorHash)??null,le=n.getLocatorPath(ae,ge,De),Pe;if(le!==null)try{Pe=oe.statSync(le)}catch{}let g=typeof Pe<"u"?[Pe.size,ye.Type.SIZE]:void 0;pe("Cache",{Checksum:ye.tuple(ye.Type.NO_HINT,ge),Path:ye.tuple(ye.Type.PATH,le),Size:g})}];for(let ae of w){let he=Y.isVirtualLocator(ae);if(!this.virtuals&&he)continue;let pe={},De={value:[ae,ye.Type.LOCATOR],children:pe};if(R[Y.stringifyLocator(ae)]=De,this.nameOnly){delete De.children;continue}let ge=E.get(ae.locatorHash);typeof ge<"u"&&(pe.Instances={label:"Instances",value:ye.tuple(ye.Type.NUMBER,ge.length)}),pe.Version={label:"Version",value:ye.tuple(ye.Type.NO_HINT,ae.version)};let le=(g,ve)=>{let Ee={};if(pe[g]=Ee,Array.isArray(ve))Ee.children=ve.map(de=>({value:de}));else{let de={};Ee.children=de;for(let[ne,Z]of Object.entries(ve))typeof Z>"u"||(de[ne]={label:ne,value:Z})}};if(!he){for(let g of re)await g(ae,u,le);await r.triggerHook(g=>g.fetchPackageInfo,ae,u,le)}ae.bin.size>0&&!he&&le("Exported Binaries",[...ae.bin.keys()].map(g=>ye.tuple(ye.Type.PATH,g)));let Pe=b.get(ae.locatorHash);typeof Pe<"u"&&Pe.length>0&&le("Dependents",Pe.map(g=>ye.tuple(ye.Type.LOCATOR,g))),ae.dependencies.size>0&&!he&&le("Dependencies",[...ae.dependencies.values()].map(g=>{let ve=o.storedResolutions.get(g.descriptorHash),Ee=typeof ve<"u"?o.storedPackages.get(ve)??null:null;return ye.tuple(ye.Type.RESOLUTION,{descriptor:g,locator:Ee})})),ae.peerDependencies.size>0&&he&&le("Peer dependencies",[...ae.peerDependencies.values()].map(g=>{let ve=ae.dependencies.get(g.identHash),Ee=typeof ve<"u"?o.storedResolutions.get(ve.descriptorHash)??null:null,de=Ee!==null?o.storedPackages.get(Ee)??null:null;return ye.tuple(ye.Type.RESOLUTION,{descriptor:g,locator:de})}))}$o.emitTree(L,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};_0.paths=[["info"]],_0.usage=it.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});Ke();St();Hl();var lQ=tt(Zg());_t();rl();var H0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=fe.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=fe.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=fe.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=fe.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=fe.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=fe.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(dl)});this.cacheFolder=fe.String("--cache-folder",{hidden:!0});this.frozenLockfile=fe.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=fe.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=fe.Boolean("--non-interactive",{hidden:!0});this.preferOffline=fe.Boolean("--prefer-offline",{hidden:!0});this.production=fe.Boolean("--production",{hidden:!0});this.registry=fe.String("--registry",{hidden:!0});this.silent=fe.Boolean("--silent",{hidden:!0});this.networkTimeout=fe.String("--network-timeout",{hidden:!0})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=async(E,{error:R})=>{let L=await Ct.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async _=>{R?_.reportError(50,E):_.reportWarning(50,E)});return L.hasErrors()?L.exitCode():null};if(typeof this.ignoreEngines<"u"){let E=await a("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!lQ.default.VERCEL});if(E!==null)return E}if(typeof this.registry<"u"){let E=await a("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(E!==null)return E}if(typeof this.preferOffline<"u"){let E=await a("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!lQ.default.VERCEL});if(E!==null)return E}if(typeof this.production<"u"){let E=await a("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(E!==null)return E}if(typeof this.nonInteractive<"u"){let E=await a("The --non-interactive option is deprecated",{error:!o});if(E!==null)return E}if(typeof this.frozenLockfile<"u"&&(await a("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let E=await a("The cache-folder option has been deprecated; use rc settings instead",{error:!lQ.default.NETLIFY});if(E!==null)return E}let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new ot(`${ye.pretty(r,"--immutable",ye.Type.CODE)} and ${ye.pretty(r,"--immutable-cache",ye.Type.CODE)} cannot be used with ${ye.pretty(r,"--mode=update-lockfile",ye.Type.CODE)}`);let u=(this.immutable??r.get("enableImmutableInstalls"))&&!n,A=this.immutableCache&&!n;if(r.projectCwd!==null){let E=await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{let L=!1;await ght(r,u)&&(R.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),L=!0),await hht(r,u)&&(R.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),L=!0),L&&R.reportSeparator()});if(E.hasErrors())return E.exitCode()}if(r.projectCwd!==null&&typeof r.sources.get("nodeLinker")>"u"){let E=r.projectCwd,R;try{R=await oe.readFilePromise(J.join(E,Lr.lockfile),"utf8")}catch{}if(R!=null&&R.includes("yarn lockfile v1")){let L=await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async _=>{_.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),_.reportSeparator(),r.use("<compat>",{nodeLinker:"node-modules"},E,{overwrite:!0}),await Xe.updateConfiguration(E,{nodeLinker:"node-modules"})});if(L.hasErrors())return L.exitCode()}}if(r.projectCwd!==null){let E=await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{var L;(L=Xe.telemetry)!=null&&L.isNew&&(R.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),R.reportInfo(65,`Run ${ye.pretty(r,"yarn config set --home enableTelemetry 0",ye.Type.CODE)} to disable`),R.reportSeparator())});if(E.hasErrors())return E.exitCode()}let{project:p,workspace:h}=await Pt.find(r,this.context.cwd),C=await Ur.find(r,{immutable:A,check:this.checkCache});if(!h)throw new er(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let w=r.get("enableHardenedMode");(this.refreshLockfile??w)&&(p.lockfileNeedsRefresh=!0);let v=this.checkResolutions??w;return(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout,includeLogs:!0},async E=>{await p.install({cache:C,report:E,immutable:u,checkResolutions:v,mode:this.mode})})).exitCode()}};H0.paths=[["install"],it.Default],H0.usage=it.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var pht="<<<<<<<";async function hht(t,e){if(!t.projectCwd)return!1;let r=J.join(t.projectCwd,t.get("lockfileFilename"));if(!await oe.existsPromise(r)||!(await oe.readFilePromise(r,"utf8")).includes(pht))return!1;if(e)throw new Vt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Mr.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Mr.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Mr.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new Vt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let p=await Mr.execvp("git",["show",`${A}:./${Lr.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new Vt(83,`Git returned an error when trying to access the lockfile content in ${A}`);try{return Yi(p.stdout)}catch{throw new Vt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(A=>!!A.__metadata);for(let A of n)if(A.__metadata.version<7)for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=Y.parseDescriptor(p,!0),C=t.normalizeDependency(h),w=Y.stringifyDescriptor(C);w!==p&&(A[w]=A[p],delete A[p])}let u=Object.assign({},...n);u.__metadata.version=Math.min(0,...n.map(A=>A.__metadata.version??1/0)),u.__metadata.cacheKey=Math.min(0,...n.map(A=>A.__metadata.cacheKey??0));for(let[A,p]of Object.entries(u))typeof p=="string"&&delete u[A];return await oe.changeFilePromise(r,Ba(u),{automaticNewlines:!0}),!0}async function ght(t,e){if(!t.projectCwd)return!1;let r=[],o=J.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await Xe.updateConfiguration(t.projectCwd,n=>{if(!Array.isArray(n.plugins))return n;let u=n.plugins.filter(A=>{if(!A.path)return!0;let p=J.resolve(t.projectCwd,A.path),h=m1.has(A.spec)&&J.contains(o,p);return h&&r.push(p),!h});return n.plugins.length===u.length?n:{...n,plugins:u}},{immutable:e})?(await Promise.all(r.map(async n=>{await oe.removePromise(n)})),!0):!1}Ke();St();_t();var q0=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=fe.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=fe.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=o.topLevelWorkspace,A=[];for(let h of this.destinations){let C=J.resolve(this.context.cwd,ue.toPortablePath(h)),w=await Xe.find(C,this.context.plugins,{useRc:!1,strict:!1}),{project:v,workspace:b}=await Pt.find(w,C);if(o.cwd===v.cwd)throw new ot(`Invalid destination '${h}'; Can't link the project to itself`);if(!b)throw new er(v.cwd,C);if(this.all){let E=!1;for(let R of v.workspaces)R.manifest.name&&(!R.manifest.private||this.private)&&(A.push(R),E=!0);if(!E)throw new ot(`No workspace found to be linked in the target project: ${h}`)}else{if(!b.manifest.name)throw new ot(`The target workspace at '${h}' doesn't have a name and thus cannot be linked`);if(b.manifest.private&&!this.private)throw new ot(`The target workspace at '${h}' is marked private - use the --private flag to link it anyway`);A.push(b)}}for(let h of A){let C=Y.stringifyIdent(h.locator),w=this.relative?J.relative(o.cwd,h.cwd):h.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:C}},reference:`portal:${w}`})}return(await Ct.start({configuration:r,stdout:this.context.stdout},async h=>{await o.install({cache:n,report:h})})).exitCode()}};q0.paths=[["link"]],q0.usage=it.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});_t();var j0=class extends ct{constructor(){super(...arguments);this.args=fe.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};j0.paths=[["node"]],j0.usage=it.Usage({description:"run node with the hook already setup",details:`
440 This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). 440 This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).
441 441
442 The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. 442 The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.
443 `,examples:[["Run a Node script","$0 node ./my-script.js"]]});Ke();_t();var j0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=await Xe.findRcFiles(this.context.cwd);return(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{var u;for(let A of o)if(!!((u=A.data)!=null&&u.plugins))for(let p of A.data.plugins){if(!p.checksum||!p.spec.match(/^https?:/))continue;let h=await ln.get(p.spec,{configuration:r}),E=bn.makeHash(h);if(p.checksum===E)continue;let w=ye.pretty(r,p.path,ye.Type.PATH),v=ye.pretty(r,p.spec,ye.Type.URL),b=`${w} is different from the file provided by ${v}`;n.reportJson({...p,newChecksum:E}),n.reportError(0,b)}})).exitCode()}};j0.paths=[["plugin","check"]],j0.usage=it.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` 443 `,examples:[["Run a Node script","$0 node ./my-script.js"]]});Ke();_t();var G0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=await Xe.findRcFiles(this.context.cwd);return(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{var u;for(let A of o)if(!!((u=A.data)!=null&&u.plugins))for(let p of A.data.plugins){if(!p.checksum||!p.spec.match(/^https?:/))continue;let h=await ln.get(p.spec,{configuration:r}),C=bn.makeHash(h);if(p.checksum===C)continue;let w=ye.pretty(r,p.path,ye.Type.PATH),v=ye.pretty(r,p.spec,ye.Type.URL),b=`${w} is different from the file provided by ${v}`;n.reportJson({...p,newChecksum:C}),n.reportError(0,b)}})).exitCode()}};G0.paths=[["plugin","check"]],G0.usage=it.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:`
444 Check only the plugins from https. 444 Check only the plugins from https.
445 445
446 If this command detects any plugin differences in the CI environment, it will throw an error. 446 If this command detects any plugin differences in the CI environment, it will throw an error.
447 `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]});Ke();Ke();bt();_t();var Sde=Ie("os");Ke();bt();_t();var Ide=Ie("os");Ke();_l();_t();var Aht="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Zd(t,e){let r=await ln.get(Aht,{configuration:t}),o=Yi(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||Tr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var G0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);return(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Zd(r,On);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};G0.paths=[["plugin","list"]],G0.usage=it.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var fht=/^[0-9]+$/;function wde(t){return fht.test(t)?`pull/${t}/head`:t}var pht=({repository:t,branch:e},r)=>[["git","init",ue.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",wde(e)],["git","reset","--hard","FETCH_HEAD"]],hht=({branch:t})=>[["git","fetch","origin","--depth=1",wde(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],ght=({plugins:t,noMinify:e},r)=>[["yarn","build:cli",...new Array().concat(...t.map(o=>["--plugin",z.resolve(r,o)])),...e?["--no-minify"]:[],"|"]],W0=class extends ct{constructor(){super(...arguments);this.installPath=fe.String("--path",{description:"The path where the repository should be cloned to"});this.repository=fe.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=fe.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=fe.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=fe.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=fe.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=fe.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await St.find(r,this.context.cwd),a=typeof this.installPath<"u"?z.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):z.resolve(ue.toPortablePath((0,Ide.tmpdir)()),"yarnpkg-sources",bn.makeHash(this.repository).slice(0,6));return(await Et.start({configuration:r,stdout:this.context.stdout},async u=>{await L8(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator(),await n2(ght(this,a),{configuration:r,context:this.context,target:a}),u.reportSeparator();let A=z.resolve(a,"packages/yarnpkg-cli/bundles/yarn.js"),p=await ae.readFilePromise(A),{bundleVersion:h}=await N8(r,null,async()=>p,{report:u});this.skipPlugins||await dht(this,h,{project:o,report:u,target:a})})).exitCode()}};W0.paths=[["set","version","from","sources"]],W0.usage=it.Usage({description:"build Yarn from master",details:` 447 `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]});Ke();Ke();St();_t();var Pde=Ie("os");Ke();St();_t();var wde=Ie("os");Ke();Hl();_t();var dht="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function $d(t,e){let r=await ln.get(dht,{configuration:t}),o=Yi(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||Tr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var W0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);return(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await $d(r,On);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};W0.paths=[["plugin","list"]],W0.usage=it.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var mht=/^[0-9]+$/;function Bde(t){return mht.test(t)?`pull/${t}/head`:t}var yht=({repository:t,branch:e},r)=>[["git","init",ue.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",Bde(e)],["git","reset","--hard","FETCH_HEAD"]],Eht=({branch:t})=>[["git","fetch","origin","--depth=1",Bde(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],Cht=({plugins:t,noMinify:e},r)=>[["yarn","build:cli",...new Array().concat(...t.map(o=>["--plugin",J.resolve(r,o)])),...e?["--no-minify"]:[],"|"]],Y0=class extends ct{constructor(){super(...arguments);this.installPath=fe.String("--path",{description:"The path where the repository should be cloned to"});this.repository=fe.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=fe.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=fe.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=fe.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=fe.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=fe.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=typeof this.installPath<"u"?J.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):J.resolve(ue.toPortablePath((0,wde.tmpdir)()),"yarnpkg-sources",bn.makeHash(this.repository).slice(0,6));return(await Ct.start({configuration:r,stdout:this.context.stdout},async u=>{await M8(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator(),await s2(Cht(this,a),{configuration:r,context:this.context,target:a}),u.reportSeparator();let A=J.resolve(a,"packages/yarnpkg-cli/bundles/yarn.js"),p=await oe.readFilePromise(A),{bundleVersion:h}=await O8(r,null,async()=>p,{report:u});this.skipPlugins||await Iht(this,h,{project:o,report:u,target:a})})).exitCode()}};Y0.paths=[["set","version","from","sources"]],Y0.usage=it.Usage({description:"build Yarn from master",details:`
448 This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. 448 This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.
449 449
450 By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. 450 By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag.
451 `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function n2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Mr.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${ye.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} 451 `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function s2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Mr.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${ye.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")}
452`);try{await Mr.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function L8(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&ae.existsSync(z.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await n2(hht(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await ae.removePromise(o),await ae.mkdirPromise(o,{recursive:!0}),await n2(pht(t,o),{configuration:e,context:t.context,target:o}))}async function dht(t,e,{project:r,report:o,target:a}){let n=await Zd(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())!u.has(A)||await O8(A,t,{project:r,report:o,target:a})}Ke();Ke();bt();_t();var Bde=tt(si()),vde=Ie("url"),Dde=Ie("vm");var Y0=class extends ct{constructor(){super(...arguments);this.name=fe.String();this.checksum=fe.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);return(await Et.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await St.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.name)){let p=z.resolve(this.context.cwd,ue.toPortablePath(this.name));a.reportInfo(0,`Reading ${ye.pretty(r,p,ye.Type.PATH)}`),u=z.relative(n.cwd,p),A=await ae.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new vde.URL(this.name)}catch{throw new Vt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=Y.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!Bde.default.valid(h.reference))throw new Vt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=Y.stringifyIdent(h),w=await Zd(r,On);if(!Object.prototype.hasOwnProperty.call(w,E)){let v=`Couldn't find a plugin named ${Y.prettyIdent(r,h)} on the remote registry. 452`);try{await Mr.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function M8(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&oe.existsSync(J.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await s2(Eht(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await oe.removePromise(o),await oe.mkdirPromise(o,{recursive:!0}),await s2(yht(t,o),{configuration:e,context:t.context,target:o}))}async function Iht(t,e,{project:r,report:o,target:a}){let n=await $d(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())!u.has(A)||await U8(A,t,{project:r,report:o,target:a})}Ke();Ke();St();_t();var vde=tt(si()),Dde=Ie("url"),Sde=Ie("vm");var K0=class extends ct{constructor(){super(...arguments);this.name=fe.String();this.checksum=fe.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);return(await Ct.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Pt.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.name)){let p=J.resolve(this.context.cwd,ue.toPortablePath(this.name));a.reportInfo(0,`Reading ${ye.pretty(r,p,ye.Type.PATH)}`),u=J.relative(n.cwd,p),A=await oe.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new Dde.URL(this.name)}catch{throw new Vt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=Y.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!vde.default.valid(h.reference))throw new Vt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let C=Y.stringifyIdent(h),w=await $d(r,On);if(!Object.prototype.hasOwnProperty.call(w,C)){let v=`Couldn't find a plugin named ${Y.prettyIdent(r,h)} on the remote registry.
453`;throw r.plugins.has(E)?v+=`A plugin named ${Y.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:v+=`Note that only the plugins referenced on our website (${ye.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",ye.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${ye.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",ye.Type.URL)}).`,new Vt(51,v)}u=E,p=w[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):On!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${On}/`))}a.reportInfo(0,`Downloading ${ye.pretty(r,p,"green")}`),A=await ln.get(p,{configuration:r})}await M8(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};Y0.paths=[["plugin","import"]],Y0.usage=it.Usage({category:"Plugin-related commands",description:"download a plugin",details:` 453`;throw r.plugins.has(C)?v+=`A plugin named ${Y.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:v+=`Note that only the plugins referenced on our website (${ye.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",ye.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${ye.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",ye.Type.URL)}).`,new Vt(51,v)}u=C,p=w[C].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${C}/${h.reference}/`):On!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${On}/`))}a.reportInfo(0,`Downloading ${ye.pretty(r,p,"green")}`),A=await ln.get(p,{configuration:r})}await _8(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};K0.paths=[["plugin","import"]],K0.usage=it.Usage({category:"Plugin-related commands",description:"download a plugin",details:`
454 This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. 454 This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.
455 455
456 Three types of plugin references are accepted: 456 Three types of plugin references are accepted:
@@ -462,23 +462,23 @@ ${p}
462 If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. 462 If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified.
463 463
464 Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). 464 Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package).
465 `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function M8(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,Dde.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,E=z.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${ye.pretty(n,h,"magenta")}`),await ae.mkdirPromise(z.dirname(E),{recursive:!0}),await ae.writeFilePromise(E,e);let w={path:h,spec:t};r&&(w.checksum=bn.makeHash(e)),await Xe.addPlugin(o.cwd,[w])}var mht=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],K0=class extends ct{constructor(){super(...arguments);this.installPath=fe.String("--path",{description:"The path where the repository should be cloned to"});this.repository=fe.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=fe.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=fe.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=fe.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?z.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):z.resolve(ue.toPortablePath((0,Sde.tmpdir)()),"yarnpkg-sources",bn.makeHash(this.repository).slice(0,6));return(await Et.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await St.find(r,this.context.cwd),A=Y.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=Y.stringifyIdent(A),h=await Zd(r,On);if(!Object.prototype.hasOwnProperty.call(h,p))throw new Vt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await L8(this,{configuration:r,report:n,target:o}),await O8(E,this,{project:u,report:n,target:o})})).exitCode()}};K0.paths=[["plugin","import","from","sources"]],K0.usage=it.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` 465 `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function _8(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,Sde.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,C=J.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${ye.pretty(n,h,"magenta")}`),await oe.mkdirPromise(J.dirname(C),{recursive:!0}),await oe.writeFilePromise(C,e);let w={path:h,spec:t};r&&(w.checksum=bn.makeHash(e)),await Xe.addPlugin(o.cwd,[w])}var wht=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],V0=class extends ct{constructor(){super(...arguments);this.installPath=fe.String("--path",{description:"The path where the repository should be cloned to"});this.repository=fe.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=fe.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=fe.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=fe.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?J.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):J.resolve(ue.toPortablePath((0,Pde.tmpdir)()),"yarnpkg-sources",bn.makeHash(this.repository).slice(0,6));return(await Ct.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await Pt.find(r,this.context.cwd),A=Y.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=Y.stringifyIdent(A),h=await $d(r,On);if(!Object.prototype.hasOwnProperty.call(h,p))throw new Vt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let C=p;await M8(this,{configuration:r,report:n,target:o}),await U8(C,this,{project:u,report:n,target:o})})).exitCode()}};V0.paths=[["plugin","import","from","sources"]],V0.usage=it.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:`
466 This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. 466 This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.
467 467
468 The plugins can be referenced by their short name if sourced from the official Yarn repository. 468 The plugins can be referenced by their short name if sourced from the official Yarn repository.
469 `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function O8(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await n2(mht({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=z.resolve(n,`packages/${u}/bundles/${t}.js`),h=await ae.readFilePromise(p);await M8(t,h,{project:o,report:a})}Ke();bt();_t();var V0=class extends ct{constructor(){super(...arguments);this.name=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await St.find(r,this.context.cwd);return(await Et.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=Y.parseIdent(u);if(!r.plugins.has(u))throw new ot(`${Y.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=z.resolve(o.cwd,p);ae.existsSync(h)&&(n.reportInfo(0,`Removing ${ye.pretty(r,p,ye.Type.PATH)}...`),await ae.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await Xe.updateConfiguration(o.cwd,E=>{if(!Array.isArray(E.plugins))return E;let w=E.plugins.filter(v=>v.path!==p);return E.plugins.length===w.length?E:{...E,plugins:w}})})).exitCode()}};V0.paths=[["plugin","remove"]],V0.usage=it.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` 469 `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function U8(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await s2(wht({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=J.resolve(n,`packages/${u}/bundles/${t}.js`),h=await oe.readFilePromise(p);await _8(t,h,{project:o,report:a})}Ke();St();_t();var J0=class extends ct{constructor(){super(...arguments);this.name=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return(await Ct.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=Y.parseIdent(u);if(!r.plugins.has(u))throw new ot(`${Y.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=J.resolve(o.cwd,p);oe.existsSync(h)&&(n.reportInfo(0,`Removing ${ye.pretty(r,p,ye.Type.PATH)}...`),await oe.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await Xe.updateConfiguration(o.cwd,C=>{if(!Array.isArray(C.plugins))return C;let w=C.plugins.filter(v=>v.path!==p);return C.plugins.length===w.length?C:{...C,plugins:w}})})).exitCode()}};J0.paths=[["plugin","remove"]],J0.usage=it.Usage({category:"Plugin-related commands",description:"remove a plugin",details:`
470 This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. 470 This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.
471 471
472 **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. 472 **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed.
473 `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});Ke();_t();var J0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);return(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};J0.paths=[["plugin","runtime"]],J0.usage=it.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` 473 `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});Ke();_t();var z0=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins);return(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};z0.paths=[["plugin","runtime"]],z0.usage=it.Usage({category:"Plugin-related commands",description:"list the active plugins",details:`
474 This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. 474 This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.
475 `,examples:[["List the currently active plugins","$0 plugin runtime"]]});Ke();Ke();_t();var z0=class extends ct{constructor(){super(...arguments);this.idents=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);let u=new Set;for(let p of this.idents)u.add(Y.parseIdent(p).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new xi}),u.size>0)for(let p of o.storedPackages.values())u.has(p.identHash)&&o.storedBuildState.delete(p.locatorHash);else o.storedBuildState.clear();return(await Et.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async p=>{await o.install({cache:n,report:p})})).exitCode()}};z0.paths=[["rebuild"]],z0.usage=it.Usage({description:"rebuild the project's native packages",details:` 475 `,examples:[["List the currently active plugins","$0 plugin runtime"]]});Ke();Ke();_t();var X0=class extends ct{constructor(){super(...arguments);this.idents=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);let u=new Set;for(let p of this.idents)u.add(Y.parseIdent(p).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new xi}),u.size>0)for(let p of o.storedPackages.values())u.has(p.identHash)&&o.storedBuildState.delete(p.locatorHash);else o.storedBuildState.clear();return(await Ct.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async p=>{await o.install({cache:n,report:p})})).exitCode()}};X0.paths=[["rebuild"]],X0.usage=it.Usage({description:"rebuild the project's native packages",details:`
476 This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. 476 This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.
477 477
478 Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). 478 Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).
479 479
480 By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. 480 By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.
481 `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});Ke();Ke();Ke();_t();var U8=tt(Jo());tl();var X0=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(gl)});this.patterns=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let C of this.patterns){let R=!1,L=Y.parseIdent(C);for(let _ of u){let V=[..._.manifest.peerDependenciesMeta.keys()];for(let re of(0,U8.default)(V,C))_.manifest.peerDependenciesMeta.delete(re),h=!0,R=!0;for(let re of A){let oe=_.manifest.getForScope(re),pe=[...oe.values()].map(he=>Y.stringifyIdent(he));for(let he of(0,U8.default)(pe,Y.stringifyIdent(L))){let{identHash:ve}=Y.parseIdent(he),ge=oe.get(ve);if(typeof ge>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");_.manifest[re].delete(ve),E.push([_,re,ge]),h=!0,R=!0}}}R||p.push(C)}let w=p.length>1?"Patterns":"Pattern",v=p.length>1?"don't":"doesn't",b=this.all?"any":"this";if(p.length>0)throw new ot(`${w} ${ye.prettyList(r,p,ye.Type.CODE)} ${v} match any packages referenced by ${b} workspace`);return h?(await r.triggerMultipleHooks(R=>R.afterWorkspaceDependencyRemoval,E),(await Et.start({configuration:r,stdout:this.context.stdout},async R=>{await o.install({cache:n,report:R,mode:this.mode})})).exitCode()):0}};X0.paths=[["remove"]],X0.usage=it.Usage({description:"remove dependencies from the project",details:` 481 `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});Ke();Ke();Ke();_t();var H8=tt(zo());rl();var Z0=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(dl)});this.patterns=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,C=[];for(let E of this.patterns){let R=!1,L=Y.parseIdent(E);for(let _ of u){let V=[..._.manifest.peerDependenciesMeta.keys()];for(let re of(0,H8.default)(V,E))_.manifest.peerDependenciesMeta.delete(re),h=!0,R=!0;for(let re of A){let ae=_.manifest.getForScope(re),he=[...ae.values()].map(pe=>Y.stringifyIdent(pe));for(let pe of(0,H8.default)(he,Y.stringifyIdent(L))){let{identHash:De}=Y.parseIdent(pe),ge=ae.get(De);if(typeof ge>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");_.manifest[re].delete(De),C.push([_,re,ge]),h=!0,R=!0}}}R||p.push(E)}let w=p.length>1?"Patterns":"Pattern",v=p.length>1?"don't":"doesn't",b=this.all?"any":"this";if(p.length>0)throw new ot(`${w} ${ye.prettyList(r,p,ye.Type.CODE)} ${v} match any packages referenced by ${b} workspace`);return h?(await r.triggerMultipleHooks(R=>R.afterWorkspaceDependencyRemoval,C),(await Ct.start({configuration:r,stdout:this.context.stdout},async R=>{await o.install({cache:n,report:R,mode:this.mode})})).exitCode()):0}};Z0.paths=[["remove"]],Z0.usage=it.Usage({description:"remove dependencies from the project",details:`
482 This command will remove the packages matching the specified patterns from the current workspace. 482 This command will remove the packages matching the specified patterns from the current workspace.
483 483
484 If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: 484 If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:
@@ -488,7 +488,7 @@ ${p}
488 - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. 488 - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.
489 489
490 This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. 490 This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.
491 `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});Ke();Ke();var Pde=Ie("util"),$d=class extends ct{async execute(){let e=await Xe.find(this.context.cwd,this.context.plugins),{project:r,workspace:o}=await St.find(e,this.context.cwd);if(!o)throw new er(r.cwd,this.context.cwd);return(await Et.start({configuration:e,stdout:this.context.stdout},async n=>{let u=o.manifest.scripts,A=Ye.sortMap(u.keys(),E=>E),p={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},h=A.reduce((E,w)=>Math.max(E,w.length),0);for(let[E,w]of u.entries())n.reportInfo(null,`${E.padEnd(h," ")} ${(0,Pde.inspect)(w,p)}`)})).exitCode()}};$d.paths=[["run"]];Ke();Ke();_t();var Z0=class extends ct{constructor(){super(...arguments);this.inspect=fe.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=fe.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=fe.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=fe.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=fe.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=fe.Boolean("--silent",{hidden:!0});this.scriptName=fe.String();this.args=fe.Proxy()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await St.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await sn.hasPackageScript(u,this.scriptName,{project:o}))return await sn.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await sn.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await sn.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(o.workspaces.map(async w=>w.manifest.scripts.has(this.scriptName)?w:null))).filter(w=>w!==null);if(E.length===1)return await sn.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new ot(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${Y.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new ot(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${Y.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new ot("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,w]of lE)for(let v of w)if(h.length>=v.length&&JSON.stringify(h.slice(0,v.length))===JSON.stringify(v))throw new ot(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new ot(`Couldn't find a script named "${this.scriptName}".`)}}};Z0.paths=[["run"]],Z0.usage=it.Usage({description:"run a script defined in the package.json",details:` 491 `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});Ke();Ke();var xde=Ie("util"),em=class extends ct{async execute(){let e=await Xe.find(this.context.cwd,this.context.plugins),{project:r,workspace:o}=await Pt.find(e,this.context.cwd);if(!o)throw new er(r.cwd,this.context.cwd);return(await Ct.start({configuration:e,stdout:this.context.stdout},async n=>{let u=o.manifest.scripts,A=We.sortMap(u.keys(),C=>C),p={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},h=A.reduce((C,w)=>Math.max(C,w.length),0);for(let[C,w]of u.entries())n.reportInfo(null,`${C.padEnd(h," ")} ${(0,xde.inspect)(w,p)}`)})).exitCode()}};em.paths=[["run"]];Ke();Ke();_t();var $0=class extends ct{constructor(){super(...arguments);this.inspect=fe.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=fe.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=fe.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=fe.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=fe.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=fe.Boolean("--silent",{hidden:!0});this.scriptName=fe.String();this.args=fe.Proxy()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await Pt.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await sn.hasPackageScript(u,this.scriptName,{project:o}))return await sn.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await sn.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await sn.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let C=(await Promise.all(o.workspaces.map(async w=>w.manifest.scripts.has(this.scriptName)?w:null))).filter(w=>w!==null);if(C.length===1)return await sn.executeWorkspaceScript(C[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new ot(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${Y.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new ot(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${Y.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new ot("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[C,w]of lC)for(let v of w)if(h.length>=v.length&&JSON.stringify(h.slice(0,v.length))===JSON.stringify(v))throw new ot(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${C} plugin. You can install it with "yarn plugin import ${C}".`);throw new ot(`Couldn't find a script named "${this.scriptName}".`)}}};$0.paths=[["run"]],$0.usage=it.Usage({description:"run a script defined in the package.json",details:`
492 This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: 492 This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:
493 493
494 - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. 494 - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed.
@@ -498,32 +498,32 @@ ${p}
498 - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. 498 - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.
499 499
500 Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). 500 Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).
501 `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});Ke();Ke();_t();var $0=class extends ct{constructor(){super(...arguments);this.save=fe.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=fe.String();this.resolution=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new er(o.cwd,this.context.cwd);let u=Y.parseDescriptor(this.descriptor,!0),A=Y.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),(await Et.start({configuration:r,stdout:this.context.stdout},async h=>{await o.install({cache:n,report:h})})).exitCode()}};$0.paths=[["set","resolution"]],$0.usage=it.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});Ke();bt();_t();var xde=tt(Jo()),eh=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:h,reference:E}of u.manifest.resolutions)E.startsWith("portal:")&&A.add(h.descriptor.fullName);if(this.leadingArguments.length>0)for(let h of this.leadingArguments){let E=z.resolve(this.context.cwd,ue.toPortablePath(h));if(Ye.isPathLike(h)){let w=await Xe.find(E,this.context.plugins,{useRc:!1,strict:!1}),{project:v,workspace:b}=await St.find(w,E);if(!b)throw new er(v.cwd,E);if(this.all){for(let C of v.workspaces)C.manifest.name&&A.add(Y.stringifyIdent(C.locator));if(A.size===0)throw new ot("No workspace found to be unlinked in the target project")}else{if(!b.manifest.name)throw new ot("The target workspace doesn't have a name and thus cannot be unlinked");A.add(Y.stringifyIdent(b.locator))}}else{let w=[...u.manifest.resolutions.map(({pattern:v})=>v.descriptor.fullName)];for(let v of(0,xde.default)(w,h))A.add(v)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:h})=>!A.has(h.descriptor.fullName)),(await Et.start({configuration:r,stdout:this.context.stdout},async h=>{await o.install({cache:n,report:h})})).exitCode()}};eh.paths=[["unlink"]],eh.usage=it.Usage({description:"disconnect the local project from another one",details:` 501 `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});Ke();Ke();_t();var eh=class extends ct{constructor(){super(...arguments);this.save=fe.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=fe.String();this.resolution=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new er(o.cwd,this.context.cwd);let u=Y.parseDescriptor(this.descriptor,!0),A=Y.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),(await Ct.start({configuration:r,stdout:this.context.stdout},async h=>{await o.install({cache:n,report:h})})).exitCode()}};eh.paths=[["set","resolution"]],eh.usage=it.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});Ke();St();_t();var bde=tt(zo()),th=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:h,reference:C}of u.manifest.resolutions)C.startsWith("portal:")&&A.add(h.descriptor.fullName);if(this.leadingArguments.length>0)for(let h of this.leadingArguments){let C=J.resolve(this.context.cwd,ue.toPortablePath(h));if(We.isPathLike(h)){let w=await Xe.find(C,this.context.plugins,{useRc:!1,strict:!1}),{project:v,workspace:b}=await Pt.find(w,C);if(!b)throw new er(v.cwd,C);if(this.all){for(let E of v.workspaces)E.manifest.name&&A.add(Y.stringifyIdent(E.locator));if(A.size===0)throw new ot("No workspace found to be unlinked in the target project")}else{if(!b.manifest.name)throw new ot("The target workspace doesn't have a name and thus cannot be unlinked");A.add(Y.stringifyIdent(b.locator))}}else{let w=[...u.manifest.resolutions.map(({pattern:v})=>v.descriptor.fullName)];for(let v of(0,bde.default)(w,h))A.add(v)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:h})=>!A.has(h.descriptor.fullName)),(await Ct.start({configuration:r,stdout:this.context.stdout},async h=>{await o.install({cache:n,report:h})})).exitCode()}};th.paths=[["unlink"]],th.usage=it.Usage({description:"disconnect the local project from another one",details:`
502 This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. 502 This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments.
503 `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});Ke();Ke();Ke();_t();var bde=tt(z1()),_8=tt(Jo());tl();var Vf=class extends ct{constructor(){super(...arguments);this.interactive=fe.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=fe.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=fe.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=fe.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=fe.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(gl)});this.patterns=fe.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=[...o.storedDescriptors.values()],A=u.map(w=>Y.stringifyIdent(w)),p=new Set;for(let w of this.patterns){if(Y.parseDescriptor(w).range!=="unknown")throw new ot("Ranges aren't allowed when using --recursive");for(let v of(0,_8.default)(A,w)){let b=Y.parseIdent(v);p.add(b.identHash)}}let h=u.filter(w=>p.has(w.identHash));for(let w of h)o.storedDescriptors.delete(w.descriptorHash),o.storedResolutions.delete(w.descriptorHash);return(await Et.start({configuration:r,stdout:this.context.stdout},async w=>{await o.install({cache:n,report:w})})).exitCode()}async executeUpClassic(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=this.interactive??r.get("preferInteractive"),p=Z1(this,o),h=A?["keep","reuse","project","latest"]:["project","latest"],E=[],w=[];for(let _ of this.patterns){let V=!1,re=Y.parseDescriptor(_);for(let oe of o.workspaces)for(let pe of["dependencies","devDependencies"]){let ve=[...oe.manifest.getForScope(pe).values()].map(ge=>Y.stringifyIdent(ge));for(let ge of(0,_8.default)(ve,Y.stringifyIdent(re))){let le=Y.parseIdent(ge),Pe=oe.manifest[pe].get(le.identHash);if(typeof Pe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let g=Y.makeDescriptor(le,re.range);E.push(Promise.resolve().then(async()=>[oe,pe,Pe,await $1(g,{project:o,workspace:oe,cache:n,target:pe,fixed:u,modifier:p,strategies:h})])),V=!0}}V||w.push(_)}if(w.length>1)throw new ot(`Patterns ${ye.prettyList(r,w,ye.Type.CODE)} don't match any packages referenced by any workspace`);if(w.length>0)throw new ot(`Pattern ${ye.prettyList(r,w,ye.Type.CODE)} doesn't match any packages referenced by any workspace`);let v=await Promise.all(E),b=await pA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async _=>{for(let[,,V,{suggestions:re,rejections:oe}]of v){let pe=re.filter(he=>he.descriptor!==null);if(pe.length===0){let[he]=oe;if(typeof he>"u")throw new Error("Assertion failed: Expected an error to have been set");let ve=this.cli.error(he);o.configuration.get("enableNetwork")?_.reportError(27,`${Y.prettyDescriptor(r,V)} can't be resolved to a satisfying range 503 `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});Ke();Ke();Ke();_t();var Qde=tt(Z1()),q8=tt(zo());rl();var zf=class extends ct{constructor(){super(...arguments);this.interactive=fe.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=fe.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=fe.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=fe.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=fe.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=fe.String("--mode",{description:"Change what artifacts installs generate",validator:Gs(dl)});this.patterns=fe.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=[...o.storedDescriptors.values()],A=u.map(w=>Y.stringifyIdent(w)),p=new Set;for(let w of this.patterns){if(Y.parseDescriptor(w).range!=="unknown")throw new ot("Ranges aren't allowed when using --recursive");for(let v of(0,q8.default)(A,w)){let b=Y.parseIdent(v);p.add(b.identHash)}}let h=u.filter(w=>p.has(w.identHash));for(let w of h)o.storedDescriptors.delete(w.descriptorHash),o.storedResolutions.delete(w.descriptorHash);return(await Ct.start({configuration:r,stdout:this.context.stdout},async w=>{await o.install({cache:n,report:w})})).exitCode()}async executeUpClassic(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=this.interactive??r.get("preferInteractive"),p=e2(this,o),h=A?["keep","reuse","project","latest"]:["project","latest"],C=[],w=[];for(let _ of this.patterns){let V=!1,re=Y.parseDescriptor(_),ae=Y.stringifyIdent(re);for(let he of o.workspaces)for(let pe of["dependencies","devDependencies"]){let ge=[...he.manifest.getForScope(pe).values()].map(Pe=>Y.stringifyIdent(Pe)),le=ae==="*"?ge:(0,q8.default)(ge,ae);for(let Pe of le){let g=Y.parseIdent(Pe),ve=he.manifest[pe].get(g.identHash);if(typeof ve>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let Ee=Y.makeDescriptor(g,re.range);C.push(Promise.resolve().then(async()=>[he,pe,ve,await t2(Ee,{project:o,workspace:he,cache:n,target:pe,fixed:u,modifier:p,strategies:h})])),V=!0}}V||w.push(_)}if(w.length>1)throw new ot(`Patterns ${ye.prettyList(r,w,ye.Type.CODE)} don't match any packages referenced by any workspace`);if(w.length>0)throw new ot(`Pattern ${ye.prettyList(r,w,ye.Type.CODE)} doesn't match any packages referenced by any workspace`);let v=await Promise.all(C),b=await pA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async _=>{for(let[,,V,{suggestions:re,rejections:ae}]of v){let he=re.filter(pe=>pe.descriptor!==null);if(he.length===0){let[pe]=ae;if(typeof pe>"u")throw new Error("Assertion failed: Expected an error to have been set");let De=this.cli.error(pe);o.configuration.get("enableNetwork")?_.reportError(27,`${Y.prettyDescriptor(r,V)} can't be resolved to a satisfying range
504 504
505${ve}`):_.reportError(27,`${Y.prettyDescriptor(r,V)} can't be resolved to a satisfying range (note: network resolution has been disabled) 505${De}`):_.reportError(27,`${Y.prettyDescriptor(r,V)} can't be resolved to a satisfying range (note: network resolution has been disabled)
506 506
507${ve}`)}else pe.length>1&&!A&&_.reportError(27,`${Y.prettyDescriptor(r,V)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(b.hasErrors())return b.exitCode();let C=!1,R=[];for(let[_,V,,{suggestions:re}]of v){let oe,pe=re.filter(le=>le.descriptor!==null),he=pe[0].descriptor,ve=pe.every(le=>Y.areDescriptorsEqual(le.descriptor,he));pe.length===1||ve?oe=he:(C=!0,{answer:oe}=await(0,bde.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${Y.prettyWorkspace(r,_)} \u276F ${V}?`,choices:re.map(({descriptor:le,name:Pe,reason:g})=>le?{name:Pe,hint:g,descriptor:le}:{name:Pe,hint:g,disabled:!0}),onCancel:()=>process.exit(130),result(le){return this.find(le,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ge=_.manifest[V].get(oe.identHash);if(typeof ge>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(ge.descriptorHash!==oe.descriptorHash)_.manifest[V].set(oe.identHash,oe),R.push([_,V,ge,oe]);else{let le=r.makeResolver(),Pe={project:o,resolver:le},g=r.normalizeDependency(ge),De=le.bindDescriptor(g,_.anchoredLocator,Pe);o.forgetResolution(De)}}return await r.triggerMultipleHooks(_=>_.afterWorkspaceDependencyReplacement,R),C&&this.context.stdout.write(` 507${De}`)}else he.length>1&&!A&&_.reportError(27,`${Y.prettyDescriptor(r,V)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(b.hasErrors())return b.exitCode();let E=!1,R=[];for(let[_,V,,{suggestions:re}]of v){let ae,he=re.filter(le=>le.descriptor!==null),pe=he[0].descriptor,De=he.every(le=>Y.areDescriptorsEqual(le.descriptor,pe));he.length===1||De?ae=pe:(E=!0,{answer:ae}=await(0,Qde.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${Y.prettyWorkspace(r,_)} \u276F ${V}?`,choices:re.map(({descriptor:le,name:Pe,reason:g})=>le?{name:Pe,hint:g,descriptor:le}:{name:Pe,hint:g,disabled:!0}),onCancel:()=>process.exit(130),result(le){return this.find(le,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ge=_.manifest[V].get(ae.identHash);if(typeof ge>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(ge.descriptorHash!==ae.descriptorHash)_.manifest[V].set(ae.identHash,ae),R.push([_,V,ge,ae]);else{let le=r.makeResolver(),Pe={project:o,resolver:le},g=r.normalizeDependency(ge),ve=le.bindDescriptor(g,_.anchoredLocator,Pe);o.forgetResolution(ve)}}return await r.triggerMultipleHooks(_=>_.afterWorkspaceDependencyReplacement,R),E&&this.context.stdout.write(`
508`),(await Et.start({configuration:r,stdout:this.context.stdout},async _=>{await o.install({cache:n,report:_,mode:this.mode})})).exitCode()}};Vf.paths=[["up"]],Vf.usage=it.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),Vf.schema=[UT("recursive",Zg.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];Ke();Ke();Ke();_t();var th=class extends ct{constructor(){super(...arguments);this.recursive=fe.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=fe.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let n=Y.parseIdent(this.package).identHash,u=this.recursive?Cht(o,n,{configuration:r,peers:this.peers}):yht(o,n,{configuration:r,peers:this.peers});Zo.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};th.paths=[["why"]],th.usage=it.Usage({description:"display the reason why a package is needed",details:` 508`),(await Ct.start({configuration:r,stdout:this.context.stdout},async _=>{await o.install({cache:n,report:_,mode:this.mode})})).exitCode()}};zf.paths=[["up"]],zf.usage=it.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),zf.schema=[HT("recursive",$g.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];Ke();Ke();Ke();_t();var rh=class extends ct{constructor(){super(...arguments);this.recursive=fe.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=fe.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let n=Y.parseIdent(this.package).identHash,u=this.recursive?vht(o,n,{configuration:r,peers:this.peers}):Bht(o,n,{configuration:r,peers:this.peers});$o.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};rh.paths=[["why"]],rh.usage=it.Usage({description:"display the reason why a package is needed",details:`
509 This command prints the exact reasons why a package appears in the dependency tree. 509 This command prints the exact reasons why a package appears in the dependency tree.
510 510
511 If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. 511 If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree.
512 `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function yht(t,e,{configuration:r,peers:o}){let a=Ye.sortMap(t.storedPackages.values(),A=>Y.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let E of A.dependencies.values()){if(!o&&A.peerDependencies.has(E.identHash))continue;let w=t.storedResolutions.get(E.descriptorHash);if(!w)throw new Error("Assertion failed: The resolution should have been registered");let v=t.storedPackages.get(w);if(!v)throw new Error("Assertion failed: The package should have been registered");if(v.identHash!==e)continue;{let C=Y.stringifyLocator(A);n[C]={value:[A,ye.Type.LOCATOR],children:p}}let b=Y.stringifyLocator(v);p[b]={value:[{descriptor:E,locator:v},ye.Type.DEPENDENT]}}}return u}function Cht(t,e,{configuration:r,peers:o}){let a=Ye.sortMap(t.workspaces,v=>Y.stringifyLocator(v.anchoredLocator)),n=new Set,u=new Set,A=v=>{if(n.has(v.locatorHash))return u.has(v.locatorHash);if(n.add(v.locatorHash),v.identHash===e)return u.add(v.locatorHash),!0;let b=!1;v.identHash===e&&(b=!0);for(let C of v.dependencies.values()){if(!o&&v.peerDependencies.has(C.identHash))continue;let R=t.storedResolutions.get(C.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(R);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(b=!0)}return b&&u.add(v.locatorHash),b};for(let v of a)A(v.anchoredPackage);let p=new Set,h={},E={children:h},w=(v,b,C)=>{if(!u.has(v.locatorHash))return;let R=C!==null?ye.tuple(ye.Type.DEPENDENT,{locator:v,descriptor:C}):ye.tuple(ye.Type.LOCATOR,v),L={},_={value:R,children:L},V=Y.stringifyLocator(v);if(b[V]=_,!p.has(v.locatorHash)&&(p.add(v.locatorHash),!(C!==null&&t.tryWorkspaceByLocator(v))))for(let re of v.dependencies.values()){if(!o&&v.peerDependencies.has(re.identHash))continue;let oe=t.storedResolutions.get(re.descriptorHash);if(!oe)throw new Error("Assertion failed: The resolution should have been registered");let pe=t.storedPackages.get(oe);if(!pe)throw new Error("Assertion failed: The package should have been registered");w(pe,L,re)}};for(let v of a)w(v.anchoredPackage,h,null);return E}Ke();var X8={};Yt(X8,{GitFetcher:()=>s2,GitResolver:()=>o2,default:()=>Uht,gitUtils:()=>$o});Ke();bt();var $o={};Yt($o,{TreeishProtocols:()=>i2,clone:()=>z8,fetchBase:()=>Xde,fetchChangedFiles:()=>Zde,fetchChangedWorkspaces:()=>Oht,fetchRoot:()=>zde,isGitUrl:()=>gE,lsRemote:()=>Jde,normalizeLocator:()=>K8,normalizeRepoUrl:()=>oQ,resolveUrl:()=>J8,splitRepoUrl:()=>rh,validateRepoUrl:()=>V8});Ke();bt();_t();var Yde=tt(jde()),Kde=tt(EU()),hE=tt(Ie("querystring")),W8=tt(si());function G8(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function Gde(t){try{return new URL(t)}catch{return}}function Nht(t){let e=G8(t,"@","#"),r=G8(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),G8(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function Wde(t){return Gde(t)||Gde(Nht(t))}function Vde(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Lht=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],i2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(i2||{});function gE(t){return t?Lht.some(e=>!!t.match(e)):!1}function rh(t){t=oQ(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=hE.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(i2).find(p=>Object.prototype.hasOwnProperty.call(a,p)),[u,A]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(i2))delete a[p];return{repo:r,treeish:{protocol:u,request:A},extra:a}}else{let a=o.indexOf(":"),[n,u]=a===-1?[null,o]:[o.slice(0,a),o.slice(a+1)];return{repo:r,treeish:{protocol:n,request:u},extra:{}}}}function oQ(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=Wde(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function K8(t){return Y.makeLocator(t,oQ(t.reference))}function V8(t,{configuration:e}){let r=oQ(t,{git:!0});if(!ln.getNetworkSettings(`https://${(0,Yde.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Vt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function Jde(t,e){let r=V8(t,{configuration:e}),o=await Y8("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:Vde()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,u;for(;(u=n.exec(o.stdout))!==null;)a.set(u[2],u[1]);return a}async function J8(t,e){let{repo:r,treeish:{protocol:o,request:a},extra:n}=rh(t),u=await Jde(r,e),A=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return hE.default.stringify({...n,commit:E})}case"head":{let w=u.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof w>"u")throw new Error(`Unknown head ("${E}")`);return hE.default.stringify({...n,commit:w})}case"tag":{let w=u.get(`refs/tags/${E}`);if(typeof w>"u")throw new Error(`Unknown tag ("${E}")`);return hE.default.stringify({...n,commit:w})}case"semver":{let w=Tr.validRange(E);if(!w)throw new Error(`Invalid range ("${E}")`);let v=new Map([...u.entries()].filter(([C])=>C.startsWith("refs/tags/")).map(([C,R])=>[W8.default.parse(C.slice(10)),R]).filter(C=>C[0]!==null)),b=W8.default.maxSatisfying([...v.keys()],w);if(b===null)throw new Error(`No matching range ("${E}")`);return hE.default.stringify({...n,commit:v.get(b)})}case null:{let w;if((w=p("commit",E))!==null||(w=p("tag",E))!==null||(w=p("head",E))!==null)return w;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return A(h,E)}catch{return null}};return`${r}#${A(o,a)}`}async function z8(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:o,request:a}}=rh(t);if(o!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=V8(r,{configuration:e}),u=await ae.mktempPromise(),A={cwd:u,env:Vde()};return await Y8("cloning the repository",["clone","-c core.autocrlf=false",n,ue.fromPortablePath(u)],A,{configuration:e,normalizedRepoUrl:n}),await Y8("switching branch",["checkout",`${a}`],A,{configuration:e,normalizedRepoUrl:n}),u})}async function zde(t){let e,r=t;do{if(e=r,await ae.existsPromise(z.join(e,".git")))return e;r=z.dirname(e)}while(r!==e);return null}async function Xde(t,{baseRefs:e}){if(e.length===0)throw new ot("Can't run this command with zero base refs specified.");let r=[];for(let A of e){let{code:p}=await Mr.execvp("git",["merge-base",A,"HEAD"],{cwd:t});p===0&&r.push(A)}if(r.length===0)throw new ot(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:o}=await Mr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=o.trim(),{stdout:n}=await Mr.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),u=n.trim();return{hash:a,title:u}}async function Zde(t,{base:e,project:r}){let o=Ye.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Mr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>z.resolve(t,ue.toPortablePath(h))),{stdout:u}=await Mr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),A=u.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>z.resolve(t,ue.toPortablePath(h))),p=[...new Set([...n,...A].sort())];return o?p.filter(h=>!z.relative(r.cwd,h).match(o)):p}async function Oht({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new ot("This command can only be run from within a Yarn project");let r=[z.resolve(e.cwd,e.configuration.get("cacheFolder")),z.resolve(e.cwd,e.configuration.get("installStatePath")),z.resolve(e.cwd,e.configuration.get("lockfileFilename")),z.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(u=>u.populateYarnPaths,e,u=>{u!=null&&r.push(u)});let o=await zde(e.configuration.projectCwd);if(o==null)throw new ot("This command can only be run on Git repositories");let a=await Xde(o,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await Zde(o,{base:a.hash,project:e});return new Set(Ye.mapAndFilter(n,u=>{let A=e.tryWorkspaceByFilePath(u);return A===null?Ye.mapAndFilter.skip:r.some(p=>u.startsWith(p))?Ye.mapAndFilter.skip:A}))}async function Y8(t,e,r,{configuration:o,normalizedRepoUrl:a}){try{return await Mr.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Mr.ExecError))throw n;let u=n.reportExtra,A=n.stderr.toString();throw new Vt(1,`Failed ${t}`,p=>{p.reportError(1,` ${ye.prettyField(o,{label:"Repository URL",value:ye.tuple(ye.Type.URL,a)})}`);for(let h of A.matchAll(/^(.+?): (.*)$/gm)){let[,E,w]=h;E=E.toLowerCase();let v=E==="error"?"Error":`${(0,Kde.default)(E)} Error`;p.reportError(1,` ${ye.prettyField(o,{label:v,value:ye.tuple(ye.Type.NO_HINT,w)})}`)}u==null||u(p)})}}var s2=class{supports(e,r){return gE(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,a=K8(e),n=new Map(r.checksums);n.set(a.locatorHash,o);let u={...r,checksums:n},A=await this.downloadHosted(a,u);if(A!==null)return A;let[p,h,E]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(a,u),...r.cacheOptions});return{packageFs:p,releaseFs:h,prefixPath:Y.getIdentVendorPath(e),checksum:E}}async downloadHosted(e,r){return r.project.configuration.reduceHook(o=>o.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let o=await z8(e.reference,r.project.configuration),a=rh(e.reference),n=z.join(o,"package.tgz");await sn.prepareExternalProject(o,n,{configuration:r.project.configuration,report:r.report,workspace:a.extra.workspace,locator:e});let u=await ae.readFilePromise(n);return await Ye.releaseAfterUseAsync(async()=>await Ji.convertToZip(u,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1}))}};Ke();Ke();var o2=class{supportsDescriptor(e,r){return gE(e.range)}supportsLocator(e,r){return gE(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=await J8(e.range,o.project.configuration);return[Y.makeLocator(e,a)]}async getSatisfying(e,r,o,a){let n=rh(e.range);return{locators:o.filter(A=>{if(A.identHash!==e.identHash)return!1;let p=rh(A.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await Ye.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Mht={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[s2],resolvers:[o2]};var Uht=Mht;_t();var nh=class extends ct{constructor(){super(...arguments);this.since=fe.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=fe.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=fe.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await St.find(r,this.context.cwd);return(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let u=this.since?await $o.fetchChangedWorkspaces({ref:this.since,project:o}):o.workspaces,A=new Set(u);if(this.recursive)for(let p of[...u].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)A.add(h);for(let p of A){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let w=new Set,v=new Set;for(let b of Nt.hardDependencies)for(let[C,R]of h.getForScope(b)){let L=o.tryWorkspaceByDescriptor(R);L===null?o.workspacesByIdent.has(C)&&v.add(R):w.add(L)}E={workspaceDependencies:Array.from(w).map(b=>b.relativeCwd),mismatchedWorkspaceDependencies:Array.from(v).map(b=>Y.stringifyDescriptor(b))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?Y.stringifyIdent(h.name):null,...E})}})).exitCode()}};nh.paths=[["workspaces","list"]],nh.usage=it.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});Ke();Ke();_t();var ih=class extends ct{constructor(){super(...arguments);this.workspaceName=fe.String();this.commandName=fe.String();this.args=fe.Proxy()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[Y.stringifyIdent(p.locator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new ot(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: 512 `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function Bht(t,e,{configuration:r,peers:o}){let a=We.sortMap(t.storedPackages.values(),A=>Y.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let C of A.dependencies.values()){if(!o&&A.peerDependencies.has(C.identHash))continue;let w=t.storedResolutions.get(C.descriptorHash);if(!w)throw new Error("Assertion failed: The resolution should have been registered");let v=t.storedPackages.get(w);if(!v)throw new Error("Assertion failed: The package should have been registered");if(v.identHash!==e)continue;{let E=Y.stringifyLocator(A);n[E]={value:[A,ye.Type.LOCATOR],children:p}}let b=Y.stringifyLocator(v);p[b]={value:[{descriptor:C,locator:v},ye.Type.DEPENDENT]}}}return u}function vht(t,e,{configuration:r,peers:o}){let a=We.sortMap(t.workspaces,v=>Y.stringifyLocator(v.anchoredLocator)),n=new Set,u=new Set,A=v=>{if(n.has(v.locatorHash))return u.has(v.locatorHash);if(n.add(v.locatorHash),v.identHash===e)return u.add(v.locatorHash),!0;let b=!1;v.identHash===e&&(b=!0);for(let E of v.dependencies.values()){if(!o&&v.peerDependencies.has(E.identHash))continue;let R=t.storedResolutions.get(E.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(R);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(b=!0)}return b&&u.add(v.locatorHash),b};for(let v of a)A(v.anchoredPackage);let p=new Set,h={},C={children:h},w=(v,b,E)=>{if(!u.has(v.locatorHash))return;let R=E!==null?ye.tuple(ye.Type.DEPENDENT,{locator:v,descriptor:E}):ye.tuple(ye.Type.LOCATOR,v),L={},_={value:R,children:L},V=Y.stringifyLocator(v);if(b[V]=_,!p.has(v.locatorHash)&&(p.add(v.locatorHash),!(E!==null&&t.tryWorkspaceByLocator(v))))for(let re of v.dependencies.values()){if(!o&&v.peerDependencies.has(re.identHash))continue;let ae=t.storedResolutions.get(re.descriptorHash);if(!ae)throw new Error("Assertion failed: The resolution should have been registered");let he=t.storedPackages.get(ae);if(!he)throw new Error("Assertion failed: The package should have been registered");w(he,L,re)}};for(let v of a)w(v.anchoredPackage,h,null);return C}Ke();var $8={};Yt($8,{GitFetcher:()=>a2,GitResolver:()=>l2,default:()=>Ght,gitUtils:()=>ea});Ke();St();var ea={};Yt(ea,{TreeishProtocols:()=>o2,clone:()=>Z8,fetchBase:()=>Zde,fetchChangedFiles:()=>$de,fetchChangedWorkspaces:()=>qht,fetchRoot:()=>Xde,isGitUrl:()=>gC,lsRemote:()=>zde,normalizeLocator:()=>J8,normalizeRepoUrl:()=>cQ,resolveUrl:()=>X8,splitRepoUrl:()=>nh,validateRepoUrl:()=>z8});Ke();St();_t();var Kde=tt(Gde()),Vde=tt(wU()),hC=tt(Ie("querystring")),K8=tt(si());function Y8(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function Wde(t){try{return new URL(t)}catch{return}}function _ht(t){let e=Y8(t,"@","#"),r=Y8(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),Y8(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function Yde(t){return Wde(t)||Wde(_ht(t))}function Jde(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Hht=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],o2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(o2||{});function gC(t){return t?Hht.some(e=>!!t.match(e)):!1}function nh(t){t=cQ(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=hC.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(o2).find(p=>Object.prototype.hasOwnProperty.call(a,p)),[u,A]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(o2))delete a[p];return{repo:r,treeish:{protocol:u,request:A},extra:a}}else{let a=o.indexOf(":"),[n,u]=a===-1?[null,o]:[o.slice(0,a),o.slice(a+1)];return{repo:r,treeish:{protocol:n,request:u},extra:{}}}}function cQ(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=Yde(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function J8(t){return Y.makeLocator(t,cQ(t.reference))}function z8(t,{configuration:e}){let r=cQ(t,{git:!0});if(!ln.getNetworkSettings(`https://${(0,Kde.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Vt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function zde(t,e){let r=z8(t,{configuration:e}),o=await V8("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:Jde()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,u;for(;(u=n.exec(o.stdout))!==null;)a.set(u[2],u[1]);return a}async function X8(t,e){let{repo:r,treeish:{protocol:o,request:a},extra:n}=nh(t),u=await zde(r,e),A=(h,C)=>{switch(h){case"commit":{if(!C.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return hC.default.stringify({...n,commit:C})}case"head":{let w=u.get(C==="HEAD"?C:`refs/heads/${C}`);if(typeof w>"u")throw new Error(`Unknown head ("${C}")`);return hC.default.stringify({...n,commit:w})}case"tag":{let w=u.get(`refs/tags/${C}`);if(typeof w>"u")throw new Error(`Unknown tag ("${C}")`);return hC.default.stringify({...n,commit:w})}case"semver":{let w=Tr.validRange(C);if(!w)throw new Error(`Invalid range ("${C}")`);let v=new Map([...u.entries()].filter(([E])=>E.startsWith("refs/tags/")).map(([E,R])=>[K8.default.parse(E.slice(10)),R]).filter(E=>E[0]!==null)),b=K8.default.maxSatisfying([...v.keys()],w);if(b===null)throw new Error(`No matching range ("${C}")`);return hC.default.stringify({...n,commit:v.get(b)})}case null:{let w;if((w=p("commit",C))!==null||(w=p("tag",C))!==null||(w=p("head",C))!==null)return w;throw C.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,C)=>{try{return A(h,C)}catch{return null}};return`${r}#${A(o,a)}`}async function Z8(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:o,request:a}}=nh(t);if(o!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=z8(r,{configuration:e}),u=await oe.mktempPromise(),A={cwd:u,env:Jde()};return await V8("cloning the repository",["clone","-c core.autocrlf=false",n,ue.fromPortablePath(u)],A,{configuration:e,normalizedRepoUrl:n}),await V8("switching branch",["checkout",`${a}`],A,{configuration:e,normalizedRepoUrl:n}),u})}async function Xde(t){let e,r=t;do{if(e=r,await oe.existsPromise(J.join(e,".git")))return e;r=J.dirname(e)}while(r!==e);return null}async function Zde(t,{baseRefs:e}){if(e.length===0)throw new ot("Can't run this command with zero base refs specified.");let r=[];for(let A of e){let{code:p}=await Mr.execvp("git",["merge-base",A,"HEAD"],{cwd:t});p===0&&r.push(A)}if(r.length===0)throw new ot(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:o}=await Mr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=o.trim(),{stdout:n}=await Mr.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),u=n.trim();return{hash:a,title:u}}async function $de(t,{base:e,project:r}){let o=We.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Mr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>J.resolve(t,ue.toPortablePath(h))),{stdout:u}=await Mr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),A=u.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>J.resolve(t,ue.toPortablePath(h))),p=[...new Set([...n,...A].sort())];return o?p.filter(h=>!J.relative(r.cwd,h).match(o)):p}async function qht({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new ot("This command can only be run from within a Yarn project");let r=[J.resolve(e.cwd,e.configuration.get("cacheFolder")),J.resolve(e.cwd,e.configuration.get("installStatePath")),J.resolve(e.cwd,e.configuration.get("lockfileFilename")),J.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(u=>u.populateYarnPaths,e,u=>{u!=null&&r.push(u)});let o=await Xde(e.configuration.projectCwd);if(o==null)throw new ot("This command can only be run on Git repositories");let a=await Zde(o,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await $de(o,{base:a.hash,project:e});return new Set(We.mapAndFilter(n,u=>{let A=e.tryWorkspaceByFilePath(u);return A===null?We.mapAndFilter.skip:r.some(p=>u.startsWith(p))?We.mapAndFilter.skip:A}))}async function V8(t,e,r,{configuration:o,normalizedRepoUrl:a}){try{return await Mr.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Mr.ExecError))throw n;let u=n.reportExtra,A=n.stderr.toString();throw new Vt(1,`Failed ${t}`,p=>{p.reportError(1,` ${ye.prettyField(o,{label:"Repository URL",value:ye.tuple(ye.Type.URL,a)})}`);for(let h of A.matchAll(/^(.+?): (.*)$/gm)){let[,C,w]=h;C=C.toLowerCase();let v=C==="error"?"Error":`${(0,Vde.default)(C)} Error`;p.reportError(1,` ${ye.prettyField(o,{label:v,value:ye.tuple(ye.Type.NO_HINT,w)})}`)}u==null||u(p)})}}var a2=class{supports(e,r){return gC(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,a=J8(e),n=new Map(r.checksums);n.set(a.locatorHash,o);let u={...r,checksums:n},A=await this.downloadHosted(a,u);if(A!==null)return A;let[p,h,C]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(a,u),...r.cacheOptions});return{packageFs:p,releaseFs:h,prefixPath:Y.getIdentVendorPath(e),checksum:C}}async downloadHosted(e,r){return r.project.configuration.reduceHook(o=>o.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let o=await Z8(e.reference,r.project.configuration),a=nh(e.reference),n=J.join(o,"package.tgz");await sn.prepareExternalProject(o,n,{configuration:r.project.configuration,report:r.report,workspace:a.extra.workspace,locator:e});let u=await oe.readFilePromise(n);return await We.releaseAfterUseAsync(async()=>await Ji.convertToZip(u,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1}))}};Ke();Ke();var l2=class{supportsDescriptor(e,r){return gC(e.range)}supportsLocator(e,r){return gC(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=await X8(e.range,o.project.configuration);return[Y.makeLocator(e,a)]}async getSatisfying(e,r,o,a){let n=nh(e.range);return{locators:o.filter(A=>{if(A.identHash!==e.identHash)return!1;let p=nh(A.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await We.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var jht={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[a2],resolvers:[l2]};var Ght=jht;_t();var ih=class extends ct{constructor(){super(...arguments);this.since=fe.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=fe.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=fe.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let u=this.since?await ea.fetchChangedWorkspaces({ref:this.since,project:o}):o.workspaces,A=new Set(u);if(this.recursive)for(let p of[...u].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)A.add(h);for(let p of A){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let C;if(this.verbose){let w=new Set,v=new Set;for(let b of Nt.hardDependencies)for(let[E,R]of h.getForScope(b)){let L=o.tryWorkspaceByDescriptor(R);L===null?o.workspacesByIdent.has(E)&&v.add(R):w.add(L)}C={workspaceDependencies:Array.from(w).map(b=>b.relativeCwd),mismatchedWorkspaceDependencies:Array.from(v).map(b=>Y.stringifyDescriptor(b))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?Y.stringifyIdent(h.name):null,...C})}})).exitCode()}};ih.paths=[["workspaces","list"]],ih.usage=it.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});Ke();Ke();_t();var sh=class extends ct{constructor(){super(...arguments);this.workspaceName=fe.String();this.commandName=fe.String();this.args=fe.Proxy()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[Y.stringifyIdent(p.locator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new ot(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:
513 - ${p.join(` 513 - ${p.join(`
514 - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};ih.paths=[["workspace"]],ih.usage=it.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` 514 - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};sh.paths=[["workspace"]],sh.usage=it.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:`
515 This command will run a given sub-command on a single workspace. 515 This command will run a given sub-command on a single workspace.
516 `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var _ht={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:$de.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[b0,Q0,k0,F0,$0,W0,O0,nh,Jd,zd,pE,Xd,P0,x0,R0,T0,N0,L0,M0,U0,_0,H0,eh,q0,j0,K0,Y0,V0,G0,J0,z0,X0,$d,Z0,Vf,th,ih]},Hht=_ht;var nH={};Yt(nH,{default:()=>jht});Ke();var Qt={optional:!0},$8=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Qt}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Qt,["postcss-jsx"]:Qt,["postcss-less"]:Qt,["postcss-markdown"]:Qt,["postcss-scss"]:Qt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Qt}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Qt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Qt,"vue-template-compiler":Qt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Qt,"utf-8-validate":Qt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Qt,"vuetify-loader":Qt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Qt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Qt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Qt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Qt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Qt,tinyliquid:Qt,"liquid-node":Qt,jade:Qt,"then-jade":Qt,dust:Qt,"dustjs-helpers":Qt,"dustjs-linkedin":Qt,swig:Qt,"swig-templates":Qt,"razor-tmpl":Qt,atpl:Qt,liquor:Qt,twig:Qt,ejs:Qt,eco:Qt,jazz:Qt,jqtpl:Qt,hamljs:Qt,hamlet:Qt,whiskers:Qt,"haml-coffee":Qt,"hogan.js":Qt,templayed:Qt,handlebars:Qt,underscore:Qt,lodash:Qt,pug:Qt,"then-pug":Qt,qejs:Qt,walrus:Qt,mustache:Qt,just:Qt,ect:Qt,mote:Qt,toffee:Qt,dot:Qt,"bracket-template":Qt,ractive:Qt,nunjucks:Qt,htmling:Qt,"babel-core":Qt,plates:Qt,"react-dom":Qt,react:Qt,"arc-templates":Qt,vash:Qt,slm:Qt,marko:Qt,teacup:Qt,"coffee-script":Qt,squirrelly:Qt,twing:Qt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Qt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Qt,vue:Qt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Qt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Qt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Qt,"webpack-command":Qt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Qt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Qt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Qt,jimp:Qt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Qt,"eslint-import-resolver-typescript":Qt,"eslint-import-resolver-webpack":Qt,"@typescript-eslint/parser":Qt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Qt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Qt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.0"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Qt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Qt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Qt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@*",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Qt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Qt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Qt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Qt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}]];var eH;function eme(){return typeof eH>"u"&&(eH=Ie("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),eH}var tH;function tme(){return typeof tH>"u"&&(tH=Ie("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),tH}var rH;function rme(){return typeof rH>"u"&&(rH=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),rH}var nme=new Map([[Y.makeIdent(null,"fsevents").identHash,eme],[Y.makeIdent(null,"resolve").identHash,tme],[Y.makeIdent(null,"typescript").identHash,rme]]),qht={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,o]of $8)e(Y.parseDescriptor(r,!0),o)},getBuiltinPatch:async(t,e)=>{var n;let r="compat/";if(!e.startsWith(r))return;let o=Y.parseIdent(e.slice(r.length)),a=(n=nme.get(o.identHash))==null?void 0:n();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,o)=>typeof nme.get(t.identHash)>"u"?t:Y.makeDescriptor(t,Y.makeRange({protocol:"patch:",source:Y.stringifyDescriptor(t),selector:`optional!builtin<compat/${Y.stringifyIdent(t)}>`,params:null}))}},jht=qht;var EH={};Yt(EH,{ConstraintsCheckCommand:()=>Ah,ConstraintsQueryCommand:()=>ch,ConstraintsSourceCommand:()=>uh,default:()=>dgt});Ke();Ke();c2();var dE=class{constructor(e){this.project=e}createEnvironment(){let e=new a2(["cwd","ident"]),r=new a2(["type","ident"]),o={manifestUpdates:new Map,reportedErrors:new Map};for(let a of this.project.workspaces){let n=Y.stringifyIdent(a.anchoredLocator),u=a.manifest.exportTo({}),A=(w,v,{caller:b=As.getCaller()}={})=>{let C=l2(w),R=Ye.getMapWithDefault(o.manifestUpdates,a.cwd),L=Ye.getMapWithDefault(R,C),_=Ye.getSetWithDefault(L,v);b!==null&&_.add(b)},p=w=>A(w,void 0,{caller:As.getCaller()}),h=w=>{Ye.getArrayWithDefault(o.reportedErrors,a.cwd).push(w)},E=e.insert({cwd:a.cwd,ident:n,manifest:u,set:A,unset:p,error:h});for(let w of Nt.allDependencies)for(let v of a.manifest[w].values()){let b=Y.stringifyIdent(v),C=()=>{A([w,b],void 0,{caller:As.getCaller()})},R=L=>{A([w,b],L,{caller:As.getCaller()})};r.insert({workspace:E,ident:b,range:v.range,type:w,update:R,delete:C,error:h})}}return{workspaces:e,dependencies:r,result:o}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependencies:a=>e.dependencies.find(a)}},o=await this.project.loadUserConfig();return o!=null&&o.constraints?(await o.constraints(r),e.result):null}};Ke();Ke();_t();var ch=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=fe.String()}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(h2(),p2)),o=await Xe.find(this.context.cwd,this.context.plugins),{project:a}=await St.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Et.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let E=Array.from(Object.entries(h)),w=E.length,v=E.reduce((b,[C])=>Math.max(b,C.length),0);for(let b=0;b<w;b++){let[C,R]=E[b];p.reportInfo(null,`${hgt(b,w)}${C.padEnd(v," ")} = ${pgt(R)}`)}p.reportJson(h)}})).exitCode()}};ch.paths=[["constraints","query"]],ch.usage=it.Usage({category:"Constraints-related commands",description:"query the constraints fact database",details:` 516 `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var Wht={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:eme.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[Q0,k0,F0,R0,eh,Y0,M0,ih,zd,Xd,pC,Zd,x0,b0,T0,N0,L0,O0,U0,_0,H0,q0,th,j0,G0,V0,K0,J0,W0,z0,X0,Z0,em,$0,zf,rh,sh]},Yht=Wht;var sH={};Yt(sH,{default:()=>Vht});Ke();var Qt={optional:!0},tH=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Qt}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Qt,["postcss-jsx"]:Qt,["postcss-less"]:Qt,["postcss-markdown"]:Qt,["postcss-scss"]:Qt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Qt}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Qt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Qt,"vue-template-compiler":Qt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Qt,"utf-8-validate":Qt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Qt,"vuetify-loader":Qt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Qt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Qt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Qt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Qt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Qt,tinyliquid:Qt,"liquid-node":Qt,jade:Qt,"then-jade":Qt,dust:Qt,"dustjs-helpers":Qt,"dustjs-linkedin":Qt,swig:Qt,"swig-templates":Qt,"razor-tmpl":Qt,atpl:Qt,liquor:Qt,twig:Qt,ejs:Qt,eco:Qt,jazz:Qt,jqtpl:Qt,hamljs:Qt,hamlet:Qt,whiskers:Qt,"haml-coffee":Qt,"hogan.js":Qt,templayed:Qt,handlebars:Qt,underscore:Qt,lodash:Qt,pug:Qt,"then-pug":Qt,qejs:Qt,walrus:Qt,mustache:Qt,just:Qt,ect:Qt,mote:Qt,toffee:Qt,dot:Qt,"bracket-template":Qt,ractive:Qt,nunjucks:Qt,htmling:Qt,"babel-core":Qt,plates:Qt,"react-dom":Qt,react:Qt,"arc-templates":Qt,vash:Qt,slm:Qt,marko:Qt,teacup:Qt,"coffee-script":Qt,squirrelly:Qt,twing:Qt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Qt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Qt,vue:Qt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Qt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Qt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Qt,"webpack-command":Qt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Qt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Qt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Qt,jimp:Qt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Qt,"eslint-import-resolver-typescript":Qt,"eslint-import-resolver-webpack":Qt,"@typescript-eslint/parser":Qt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Qt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Qt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.0"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Qt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Qt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Qt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@*",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Qt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Qt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Qt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Qt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}]];var rH;function tme(){return typeof rH>"u"&&(rH=Ie("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),rH}var nH;function rme(){return typeof nH>"u"&&(nH=Ie("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),nH}var iH;function nme(){return typeof iH>"u"&&(iH=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),iH}var ime=new Map([[Y.makeIdent(null,"fsevents").identHash,tme],[Y.makeIdent(null,"resolve").identHash,rme],[Y.makeIdent(null,"typescript").identHash,nme]]),Kht={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,o]of tH)e(Y.parseDescriptor(r,!0),o)},getBuiltinPatch:async(t,e)=>{var n;let r="compat/";if(!e.startsWith(r))return;let o=Y.parseIdent(e.slice(r.length)),a=(n=ime.get(o.identHash))==null?void 0:n();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,o)=>typeof ime.get(t.identHash)>"u"?t:Y.makeDescriptor(t,Y.makeRange({protocol:"patch:",source:Y.stringifyDescriptor(t),selector:`optional!builtin<compat/${Y.stringifyIdent(t)}>`,params:null}))}},Vht=Kht;var wH={};Yt(wH,{ConstraintsCheckCommand:()=>fh,ConstraintsQueryCommand:()=>uh,ConstraintsSourceCommand:()=>Ah,default:()=>Igt});Ke();Ke();A2();var dC=class{constructor(e){this.project=e}createEnvironment(){let e=new c2(["cwd","ident"]),r=new c2(["type","ident"]),o={manifestUpdates:new Map,reportedErrors:new Map};for(let a of this.project.workspaces){let n=Y.stringifyIdent(a.anchoredLocator),u=a.manifest.exportTo({}),A=(w,v,{caller:b=As.getCaller()}={})=>{let E=u2(w),R=We.getMapWithDefault(o.manifestUpdates,a.cwd),L=We.getMapWithDefault(R,E),_=We.getSetWithDefault(L,v);b!==null&&_.add(b)},p=w=>A(w,void 0,{caller:As.getCaller()}),h=w=>{We.getArrayWithDefault(o.reportedErrors,a.cwd).push(w)},C=e.insert({cwd:a.cwd,ident:n,manifest:u,set:A,unset:p,error:h});for(let w of Nt.allDependencies)for(let v of a.manifest[w].values()){let b=Y.stringifyIdent(v),E=()=>{A([w,b],void 0,{caller:As.getCaller()})},R=L=>{A([w,b],L,{caller:As.getCaller()})};r.insert({workspace:C,ident:b,range:v.range,type:w,update:R,delete:E,error:h})}}return{workspaces:e,dependencies:r,result:o}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependencies:a=>e.dependencies.find(a)}},o=await this.project.loadUserConfig();return o!=null&&o.constraints?(await o.constraints(r),e.result):null}};Ke();Ke();_t();var uh=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=fe.String()}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(d2(),g2)),o=await Xe.find(this.context.cwd,this.context.plugins),{project:a}=await Pt.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Ct.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let C=Array.from(Object.entries(h)),w=C.length,v=C.reduce((b,[E])=>Math.max(b,E.length),0);for(let b=0;b<w;b++){let[E,R]=C[b];p.reportInfo(null,`${Egt(b,w)}${E.padEnd(v," ")} = ${ygt(R)}`)}p.reportJson(h)}})).exitCode()}};uh.paths=[["constraints","query"]],uh.usage=it.Usage({category:"Constraints-related commands",description:"query the constraints fact database",details:`
517 This command will output all matches to the given prolog query. 517 This command will output all matches to the given prolog query.
518 `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]});function pgt(t){return typeof t!="string"?`${t}`:t.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?t:`'${t}'`}function hgt(t,e){let r=t===0,o=t===e-1;return r&&o?"":r?"\u250C ":o?"\u2514 ":"\u2502 "}Ke();_t();var uh=class extends ct{constructor(){super(...arguments);this.verbose=fe.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(h2(),p2)),o=await Xe.find(this.context.cwd,this.context.plugins),{project:a}=await St.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};uh.paths=[["constraints","source"]],uh.usage=it.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]});Ke();Ke();_t();c2();var Ah=class extends ct{constructor(){super(...arguments);this.fix=fe.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await St.find(r,this.context.cwd),a=await o.loadUserConfig(),n;if(a!=null&&a.constraints)n=new dE(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(h2(),p2));n=await h.find(o)}let u={children:[]},A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:w,remainingErrors:v}=aQ(o,E,{fix:this.fix}),b=[];for(let[C,R]of w){let L=C.manifest.indent;C.manifest=new Nt,C.manifest.indent=L,C.manifest.load(R),b.push(C.persistManifest())}if(!(w.size>0&&h>1)){A=!1,p=!0;for(let[C,R]of v){let L=[];for(let V of R){let re=V.text.split(/\n/);V.fixable?(re[0]=`${ye.pretty(r,"\u2699","gray")} ${re[0]}`,A=!0):p=!1,L.push({value:ye.tuple(ye.Type.NO_HINT,re[0]),children:re.slice(1).map(oe=>({value:ye.tuple(ye.Type.NO_HINT,oe)}))})}let _={value:ye.tuple(ye.Type.LOCATOR,C.anchoredLocator),children:Ye.sortMap(L,V=>V.value[1])};u.children.push(_)}}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${ye.pretty(r,"yarn constraints --fix",ye.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${ye.pretty(r,"yarn constraints --fix",ye.Type.CODE)}`;await Et.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return u.children=Ye.sortMap(u.children,h=>h.value[1]),Zo.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};Ah.paths=[["constraints"]],Ah.usage=it.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` 518 `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]});function ygt(t){return typeof t!="string"?`${t}`:t.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?t:`'${t}'`}function Egt(t,e){let r=t===0,o=t===e-1;return r&&o?"":r?"\u250C ":o?"\u2514 ":"\u2502 "}Ke();_t();var Ah=class extends ct{constructor(){super(...arguments);this.verbose=fe.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(d2(),g2)),o=await Xe.find(this.context.cwd,this.context.plugins),{project:a}=await Pt.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ah.paths=[["constraints","source"]],Ah.usage=it.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]});Ke();Ke();_t();A2();var fh=class extends ct{constructor(){super(...arguments);this.fix=fe.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=await o.loadUserConfig(),n;if(a!=null&&a.constraints)n=new dC(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(d2(),g2));n=await h.find(o)}let u,A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let C=await n.process();if(!C)break;let{changedWorkspaces:w,remainingErrors:v}=uQ(o,C,{fix:this.fix}),b=[];for(let[E,R]of w){let L=E.manifest.indent;E.manifest=new Nt,E.manifest.indent=L,E.manifest.load(R),b.push(E.persistManifest())}if(!(w.size>0&&h>1)){u=Ame(v,{configuration:r}),A=!1,p=!0;for(let[,E]of v)for(let R of E)R.fixable?A=!0:p=!1}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${ye.pretty(r,"yarn constraints --fix",ye.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${ye.pretty(r,"yarn constraints --fix",ye.Type.CODE)}`;await Ct.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async C=>{C.reportInfo(0,h),C.reportSeparator()})}return u.children=We.sortMap(u.children,h=>h.value[1]),$o.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};fh.paths=[["constraints"]],fh.usage=it.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:`
519 This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. 519 This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code.
520 520
521 If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. 521 If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution.
522 522
523 For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. 523 For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints.
524 `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]});c2();var ggt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[ch,uh,Ah],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r!=null&&r.constraints)o=new dE(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(h2(),p2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=aQ(t,a);n.size!==0&&e(84,`Constraint check failed; run ${ye.pretty(t.configuration,"yarn constraints",ye.Type.CODE)} for more details`)}}},dgt=ggt;var IH={};Yt(IH,{CreateCommand:()=>nm,DlxCommand:()=>fh,default:()=>ygt});Ke();_t();var nm=class extends ct{constructor(){super(...arguments);this.pkg=fe.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=fe.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=fe.String();this.args=fe.Proxy()}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=Y.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?Y.makeIdent(a.scope,`create-${a.name}`):Y.makeIdent(null,`create-${a.name}`),u=Y.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};nm.paths=[["create"]];Ke();Ke();bt();_t();var fh=class extends ct{constructor(){super(...arguments);this.packages=fe.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=fe.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=fe.String();this.args=fe.Proxy()}async execute(){return Xe.telemetry=null,await ae.mktempPromise(async r=>{let o=z.join(r,`dlx-${process.pid}`);await ae.mkdirPromise(o),await ae.writeFilePromise(z.join(o,"package.json"),`{} 524 `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]});A2();var Cgt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[uh,Ah,fh],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r!=null&&r.constraints)o=new dC(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(d2(),g2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=uQ(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[u,A]of n)for(let p of A)e(84,`${ye.pretty(t.configuration,u.locator,ye.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${ye.pretty(t.configuration,"yarn constraints",ye.Type.CODE)} for more details`)}}},Igt=Cgt;var BH={};Yt(BH,{CreateCommand:()=>im,DlxCommand:()=>ph,default:()=>Bgt});Ke();_t();var im=class extends ct{constructor(){super(...arguments);this.pkg=fe.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=fe.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=fe.String();this.args=fe.Proxy()}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=Y.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?Y.makeIdent(a.scope,`create-${a.name}`):Y.makeIdent(null,`create-${a.name}`),u=Y.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};im.paths=[["create"]];Ke();Ke();St();_t();var ph=class extends ct{constructor(){super(...arguments);this.packages=fe.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=fe.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=fe.String();this.args=fe.Proxy()}async execute(){return Xe.telemetry=null,await oe.mktempPromise(async r=>{let o=J.join(r,`dlx-${process.pid}`);await oe.mkdirPromise(o),await oe.writeFilePromise(J.join(o,"package.json"),`{}
525`),await ae.writeFilePromise(z.join(o,"yarn.lock"),"");let a=z.join(o,".yarnrc.yml"),n=await Xe.findProjectCwd(this.context.cwd,Lr.lockfile),A={enableGlobalCache:!(await Xe.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Vu(68),level:ye.LogLevel.Discard}]},p=n!==null?z.join(n,".yarnrc.yml"):null;p!==null&&ae.existsSync(p)?(await ae.copyFilePromise(p,a),await Xe.updateConfiguration(o,L=>{let _=Ye.toMerged(L,A);return Array.isArray(L.plugins)&&(_.plugins=L.plugins.map(V=>{let re=typeof V=="string"?V:V.path,oe=ue.isAbsolute(re)?re:ue.resolve(ue.fromPortablePath(n),re);return typeof V=="string"?oe:{path:oe,spec:V.spec}})),_})):await ae.writeJsonPromise(a,A);let h=this.packages??[this.command],E=Y.parseDescriptor(this.command).name,w=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(w!==0)return w;this.quiet||this.context.stdout.write(` 525`),await oe.writeFilePromise(J.join(o,"yarn.lock"),"");let a=J.join(o,".yarnrc.yml"),n=await Xe.findProjectCwd(this.context.cwd,Lr.lockfile),A={enableGlobalCache:!(await Xe.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Vu(68),level:ye.LogLevel.Discard}]},p=n!==null?J.join(n,".yarnrc.yml"):null;p!==null&&oe.existsSync(p)?(await oe.copyFilePromise(p,a),await Xe.updateConfiguration(o,L=>{let _=We.toMerged(L,A);return Array.isArray(L.plugins)&&(_.plugins=L.plugins.map(V=>{let re=typeof V=="string"?V:V.path,ae=ue.isAbsolute(re)?re:ue.resolve(ue.fromPortablePath(n),re);return typeof V=="string"?ae:{path:ae,spec:V.spec}})),_})):await oe.writeJsonPromise(a,A);let h=this.packages??[this.command],C=Y.parseDescriptor(this.command).name,w=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(w!==0)return w;this.quiet||this.context.stdout.write(`
526`);let v=await Xe.find(o,this.context.plugins),{project:b,workspace:C}=await St.find(v,o);if(C===null)throw new er(b.cwd,o);await b.restoreInstallState();let R=await sn.getWorkspaceAccessibleBinaries(C);return R.has(E)===!1&&R.size===1&&typeof this.packages>"u"&&(E=Array.from(R)[0][0]),await sn.executeWorkspaceAccessibleBinary(C,E,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};fh.paths=[["dlx"]],fh.usage=it.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var mgt={commands:[nm,fh]},ygt=mgt;var vH={};Yt(vH,{ExecFetcher:()=>d2,ExecResolver:()=>m2,default:()=>Igt,execUtils:()=>AQ});Ke();Ke();bt();var hA="exec:";var AQ={};Yt(AQ,{loadGeneratorFile:()=>g2,makeLocator:()=>BH,makeSpec:()=>Nme,parseSpec:()=>wH});Ke();bt();function wH(t){let{params:e,selector:r}=Y.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?Y.parseLocator(e.locator):null,path:o}}function Nme({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:Y.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return Y.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function BH(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return Y.makeLocator(t,Nme({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function g2(t,e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(t,{protocol:e}),n=z.isAbsolute(a)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new An(wt.root),prefixPath:z.relative(wt.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=z.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var d2=class{supports(e,r){return!!e.reference.startsWith(hA)}getLocalPath(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:hA});if(z.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:z.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await g2(e.reference,hA,r);return ae.mktempPromise(async a=>{let n=z.join(a,"generator.js");return await ae.writeFilePromise(n,o),ae.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!ae.existsSync(z.join(u,"build")))throw new Error("The script should have generated a build directory");return await Ji.makeArchiveFromDirectory(z.join(u,"build"),{prefixPath:Y.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await ae.mktempPromise(async n=>{let u=await sn.makeScriptEnv({project:a.project,binFolder:n}),A=z.join(e,"runtime.js");return await ae.mktempPromise(async p=>{let h=z.join(p,"buildfile.log"),E=z.join(e,"generator"),w=z.join(e,"build");await ae.mkdirPromise(E),await ae.mkdirPromise(w);let v={tempDir:ue.fromPortablePath(E),buildDir:ue.fromPortablePath(w),locator:Y.stringifyLocator(r)};await ae.writeFilePromise(A,` 526`);let v=await Xe.find(o,this.context.plugins),{project:b,workspace:E}=await Pt.find(v,o);if(E===null)throw new er(b.cwd,o);await b.restoreInstallState();let R=await sn.getWorkspaceAccessibleBinaries(E);return R.has(C)===!1&&R.size===1&&typeof this.packages>"u"&&(C=Array.from(R)[0][0]),await sn.executeWorkspaceAccessibleBinary(E,C,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};ph.paths=[["dlx"]],ph.usage=it.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var wgt={commands:[im,ph]},Bgt=wgt;var SH={};Yt(SH,{ExecFetcher:()=>y2,ExecResolver:()=>E2,default:()=>Sgt,execUtils:()=>hQ});Ke();Ke();St();var hA="exec:";var hQ={};Yt(hQ,{loadGeneratorFile:()=>m2,makeLocator:()=>DH,makeSpec:()=>Ome,parseSpec:()=>vH});Ke();St();function vH(t){let{params:e,selector:r}=Y.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?Y.parseLocator(e.locator):null,path:o}}function Ome({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:Y.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return Y.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function DH(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return Y.makeLocator(t,Ome({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function m2(t,e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(t,{protocol:e}),n=J.isAbsolute(a)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new An(wt.root),prefixPath:J.relative(wt.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=J.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var y2=class{supports(e,r){return!!e.reference.startsWith(hA)}getLocalPath(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:hA});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await m2(e.reference,hA,r);return oe.mktempPromise(async a=>{let n=J.join(a,"generator.js");return await oe.writeFilePromise(n,o),oe.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!oe.existsSync(J.join(u,"build")))throw new Error("The script should have generated a build directory");return await Ji.makeArchiveFromDirectory(J.join(u,"build"),{prefixPath:Y.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await oe.mktempPromise(async n=>{let u=await sn.makeScriptEnv({project:a.project,binFolder:n}),A=J.join(e,"runtime.js");return await oe.mktempPromise(async p=>{let h=J.join(p,"buildfile.log"),C=J.join(e,"generator"),w=J.join(e,"build");await oe.mkdirPromise(C),await oe.mkdirPromise(w);let v={tempDir:ue.fromPortablePath(C),buildDir:ue.fromPortablePath(w),locator:Y.stringifyLocator(r)};await oe.writeFilePromise(A,`
527 // Expose 'Module' as a global variable 527 // Expose 'Module' as a global variable
528 Object.defineProperty(global, 'Module', { 528 Object.defineProperty(global, 'Module', {
529 get: () => require('module'), 529 get: () => require('module'),
@@ -547,62 +547,62 @@ ${ve}`)}else pe.length>1&&!A&&_.reportError(27,`${Y.prettyDescriptor(r,V)} has m
547 }, 547 },
548 enumerable: true, 548 enumerable: true,
549 }); 549 });
550 `);let b=u.NODE_OPTIONS||"",C=/\s*--require\s+\S*\.pnp\.c?js\s*/g;b=b.replace(C," ").trim(),u.NODE_OPTIONS=b;let{stdout:R,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${Y.stringifyLocator(r)}) 550 `);let b=u.NODE_OPTIONS||"",E=/\s*--require\s+\S*\.pnp\.c?js\s*/g;b=b.replace(E," ").trim(),u.NODE_OPTIONS=b;let{stdout:R,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${Y.stringifyLocator(r)})
551`,prefix:Y.prettyLocator(a.project.configuration,r),report:a.report}),{code:_}=await Mr.pipevp(process.execPath,["--require",ue.fromPortablePath(A),ue.fromPortablePath(o),Y.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:R,stderr:L});if(_!==0)throw ae.detachTemp(p),new Error(`Package generation failed (exit code ${_}, logs can be found here: ${ye.pretty(a.project.configuration,h,ye.Type.PATH)})`)})})}};Ke();Ke();var Cgt=2,m2=class{supportsDescriptor(e,r){return!!e.range.startsWith(hA)}supportsLocator(e,r){return!!e.reference.startsWith(hA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=wH(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await g2(Y.makeRange({protocol:hA,source:a,selector:a,params:{locator:Y.stringifyLocator(n)}}),hA,o.fetchOptions),A=bn.makeHash(`${Cgt}`,u).slice(0,6);return[BH(e,{parentLocator:n,path:a,generatorHash:A,protocol:hA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await Ye.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Egt={fetchers:[d2],resolvers:[m2]},Igt=Egt;var SH={};Yt(SH,{FileFetcher:()=>I2,FileResolver:()=>w2,TarballFileFetcher:()=>B2,TarballFileResolver:()=>v2,default:()=>vgt,fileUtils:()=>im});Ke();bt();var EE=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,y2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Mi="file:";var im={};Yt(im,{fetchArchiveFromLocator:()=>E2,makeArchiveFromLocator:()=>fQ,makeBufferFromLocator:()=>DH,makeLocator:()=>IE,makeSpec:()=>Lme,parseSpec:()=>C2});Ke();bt();function C2(t){let{params:e,selector:r}=Y.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?Y.parseLocator(e.locator):null,path:o}}function Lme({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:Y.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return Y.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function IE(t,{parentLocator:e,path:r,hash:o,protocol:a}){return Y.makeLocator(t,Lme({parentLocator:e,path:r,hash:o,protocol:a}))}async function E2(t,e){let{parentLocator:r,path:o}=Y.parseFileStyleRange(t.reference,{protocol:Mi}),a=z.isAbsolute(o)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new An(wt.root),prefixPath:z.relative(wt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=z.join(n.prefixPath,o);return await Ye.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function fQ(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=Y.parseFileStyleRange(t.reference,{protocol:e}),u=z.isAbsolute(n)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new An(wt.root),prefixPath:z.relative(wt.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=z.join(A.prefixPath,n);return await Ye.releaseAfterUseAsync(async()=>await Ji.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:Y.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function DH(t,{protocol:e,fetchOptions:r}){return(await fQ(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var I2=class{supports(e,r){return!!e.reference.startsWith(Mi)}getLocalPath(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:Mi});if(z.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:z.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return fQ(e,{protocol:Mi,fetchOptions:r})}};Ke();Ke();var wgt=2,w2=class{supportsDescriptor(e,r){return e.range.match(EE)?!0:!!e.range.startsWith(Mi)}supportsLocator(e,r){return!!e.reference.startsWith(Mi)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return EE.test(e.range)&&(e=Y.makeDescriptor(e,`${Mi}${e.range}`)),Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=C2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await DH(Y.makeLocator(e,Y.makeRange({protocol:Mi,source:a,selector:a,params:{locator:Y.stringifyLocator(n)}})),{protocol:Mi,fetchOptions:o.fetchOptions}),A=bn.makeHash(`${wgt}`,u).slice(0,6);return[IE(e,{parentLocator:n,path:a,hash:A,protocol:Mi})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await Ye.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ke();var B2=class{supports(e,r){return y2.test(e.reference)?!!e.reference.startsWith(Mi):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromDisk(e,r){let o=await E2(e,r);return await Ji.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})}};Ke();Ke();Ke();var v2=class{supportsDescriptor(e,r){return y2.test(e.range)?!!(e.range.startsWith(Mi)||EE.test(e.range)):!1}supportsLocator(e,r){return y2.test(e.reference)?!!e.reference.startsWith(Mi):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return EE.test(e.range)&&(e=Y.makeDescriptor(e,`${Mi}${e.range}`)),Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=C2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=IE(e,{parentLocator:n,path:a,hash:"",protocol:Mi}),A=await E2(u,o.fetchOptions),p=bn.makeHash(A).slice(0,6);return[IE(e,{parentLocator:n,path:a,hash:p,protocol:Mi})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await Ye.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Bgt={fetchers:[B2,I2],resolvers:[v2,w2]},vgt=Bgt;var bH={};Yt(bH,{GithubFetcher:()=>D2,default:()=>Sgt,githubUtils:()=>pQ});Ke();bt();var pQ={};Yt(pQ,{invalidGithubUrlMessage:()=>Ume,isGithubUrl:()=>PH,parseGithubUrl:()=>xH});var Ome=tt(Ie("querystring")),Mme=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function PH(t){return t?Mme.some(e=>!!t.match(e)):!1}function xH(t){let e;for(let A of Mme)if(e=t.match(A),e)break;if(!e)throw new Error(Ume(t));let[,r,o,a,n="master"]=e,{commit:u}=Ome.default.parse(n);return n=u||n.replace(/[^:]*:/,""),{auth:r,username:o,reponame:a,treeish:n}}function Ume(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var D2=class{supports(e,r){return!!PH(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await ln.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await ae.mktempPromise(async a=>{let n=new An(a);await Ji.extractArchiveTo(o,n,{stripComponents:1});let u=$o.splitRepoUrl(e.reference),A=z.join(a,"package.tgz");await sn.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:u.extra.workspace,locator:e});let p=await ae.readFilePromise(A);return await Ji.convertToZip(p,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:o,username:a,reponame:n,treeish:u}=xH(e.reference);return`https://${o?`${o}@`:""}github.com/${a}/${n}/archive/${u}.tar.gz`}};var Dgt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let o=new D2;if(!o.supports(e,r))return null;try{return await o.fetch(e,r)}catch{return null}}}},Sgt=Dgt;var QH={};Yt(QH,{TarballHttpFetcher:()=>x2,TarballHttpResolver:()=>b2,default:()=>xgt});Ke();var S2=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,P2=/^https?:/;var x2=class{supports(e,r){return S2.test(e.reference)?!!P2.test(e.reference):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await ln.get(e.reference,{configuration:r.project.configuration});return await Ji.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})}};Ke();Ke();var b2=class{supportsDescriptor(e,r){return S2.test(e.range)?!!P2.test(e.range):!1}supportsLocator(e,r){return S2.test(e.reference)?!!P2.test(e.reference):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[Y.convertDescriptorToLocator(e)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await Ye.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Pgt={fetchers:[x2],resolvers:[b2]},xgt=Pgt;var kH={};Yt(kH,{InitCommand:()=>ph,default:()=>Qgt});Ke();Ke();bt();_t();var ph=class extends ct{constructor(){super(...arguments);this.private=fe.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=fe.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=fe.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=fe.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=fe.Boolean("-2",!1,{hidden:!0});this.yes=fe.Boolean("-y,--yes",{hidden:!0})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return o!==null?await this.executeProxy(r,o):await this.executeRegular(r)}async executeProxy(r,o){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new ot("Cannot use the --install flag from within a project subdirectory");ae.existsSync(this.context.cwd)||await ae.mkdirPromise(this.context.cwd,{recursive:!0});let a=z.join(this.context.cwd,r.get("lockfileFilename"));ae.existsSync(a)||await ae.writeFilePromise(a,"");let n=await this.cli.run(["set","version",o],{quiet:!0});if(n!==0)return n;let u=[];return this.private&&u.push("-p"),this.workspace&&u.push("-w"),this.name&&u.push(`-n=${this.name}`),this.yes&&u.push("-y"),await ae.mktempPromise(async A=>{let{code:p}=await Mr.pipevp("yarn",["init",...u],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await sn.makeScriptEnv({binFolder:A})});return p})}async executeRegular(r){let o=null;try{o=(await St.find(r,this.context.cwd)).project}catch{o=null}ae.existsSync(this.context.cwd)||await ae.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Nt.tryFind(this.context.cwd),n=a??new Nt,u=Object.fromEntries(r.get("initFields").entries());n.load(u),n.name=n.name??Y.makeIdent(r.get("initScope"),this.name??z.basename(this.context.cwd)),n.packageManager=On&&Ye.isTaggedYarnVersion(On)?`yarn@${On}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await ae.mkdirPromise(z.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let A={};n.exportTo(A);let p=z.join(this.context.cwd,Nt.fileName);await ae.changeFilePromise(p,`${JSON.stringify(A,null,2)} 551`,prefix:Y.prettyLocator(a.project.configuration,r),report:a.report}),{code:_}=await Mr.pipevp(process.execPath,["--require",ue.fromPortablePath(A),ue.fromPortablePath(o),Y.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:R,stderr:L});if(_!==0)throw oe.detachTemp(p),new Error(`Package generation failed (exit code ${_}, logs can be found here: ${ye.pretty(a.project.configuration,h,ye.Type.PATH)})`)})})}};Ke();Ke();var vgt=2,E2=class{supportsDescriptor(e,r){return!!e.range.startsWith(hA)}supportsLocator(e,r){return!!e.reference.startsWith(hA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=vH(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await m2(Y.makeRange({protocol:hA,source:a,selector:a,params:{locator:Y.stringifyLocator(n)}}),hA,o.fetchOptions),A=bn.makeHash(`${vgt}`,u).slice(0,6);return[DH(e,{parentLocator:n,path:a,generatorHash:A,protocol:hA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await We.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Dgt={fetchers:[y2],resolvers:[E2]},Sgt=Dgt;var xH={};Yt(xH,{FileFetcher:()=>B2,FileResolver:()=>v2,TarballFileFetcher:()=>D2,TarballFileResolver:()=>S2,default:()=>bgt,fileUtils:()=>sm});Ke();St();var CC=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,C2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Mi="file:";var sm={};Yt(sm,{fetchArchiveFromLocator:()=>w2,makeArchiveFromLocator:()=>gQ,makeBufferFromLocator:()=>PH,makeLocator:()=>IC,makeSpec:()=>Mme,parseSpec:()=>I2});Ke();St();function I2(t){let{params:e,selector:r}=Y.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?Y.parseLocator(e.locator):null,path:o}}function Mme({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:Y.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return Y.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function IC(t,{parentLocator:e,path:r,hash:o,protocol:a}){return Y.makeLocator(t,Mme({parentLocator:e,path:r,hash:o,protocol:a}))}async function w2(t,e){let{parentLocator:r,path:o}=Y.parseFileStyleRange(t.reference,{protocol:Mi}),a=J.isAbsolute(o)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new An(wt.root),prefixPath:J.relative(wt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=J.join(n.prefixPath,o);return await We.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function gQ(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=Y.parseFileStyleRange(t.reference,{protocol:e}),u=J.isAbsolute(n)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new An(wt.root),prefixPath:J.relative(wt.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=J.join(A.prefixPath,n);return await We.releaseAfterUseAsync(async()=>await Ji.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:Y.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function PH(t,{protocol:e,fetchOptions:r}){return(await gQ(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var B2=class{supports(e,r){return!!e.reference.startsWith(Mi)}getLocalPath(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:Mi});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return gQ(e,{protocol:Mi,fetchOptions:r})}};Ke();Ke();var Pgt=2,v2=class{supportsDescriptor(e,r){return e.range.match(CC)?!0:!!e.range.startsWith(Mi)}supportsLocator(e,r){return!!e.reference.startsWith(Mi)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return CC.test(e.range)&&(e=Y.makeDescriptor(e,`${Mi}${e.range}`)),Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=I2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await PH(Y.makeLocator(e,Y.makeRange({protocol:Mi,source:a,selector:a,params:{locator:Y.stringifyLocator(n)}})),{protocol:Mi,fetchOptions:o.fetchOptions}),A=bn.makeHash(`${Pgt}`,u).slice(0,6);return[IC(e,{parentLocator:n,path:a,hash:A,protocol:Mi})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await We.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ke();var D2=class{supports(e,r){return C2.test(e.reference)?!!e.reference.startsWith(Mi):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromDisk(e,r){let o=await w2(e,r);return await Ji.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})}};Ke();Ke();Ke();var S2=class{supportsDescriptor(e,r){return C2.test(e.range)?!!(e.range.startsWith(Mi)||CC.test(e.range)):!1}supportsLocator(e,r){return C2.test(e.reference)?!!e.reference.startsWith(Mi):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return CC.test(e.range)&&(e=Y.makeDescriptor(e,`${Mi}${e.range}`)),Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=I2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=IC(e,{parentLocator:n,path:a,hash:"",protocol:Mi}),A=await w2(u,o.fetchOptions),p=bn.makeHash(A).slice(0,6);return[IC(e,{parentLocator:n,path:a,hash:p,protocol:Mi})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await We.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var xgt={fetchers:[D2,B2],resolvers:[S2,v2]},bgt=xgt;var kH={};Yt(kH,{GithubFetcher:()=>P2,default:()=>kgt,githubUtils:()=>dQ});Ke();St();var dQ={};Yt(dQ,{invalidGithubUrlMessage:()=>Hme,isGithubUrl:()=>bH,parseGithubUrl:()=>QH});var Ume=tt(Ie("querystring")),_me=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function bH(t){return t?_me.some(e=>!!t.match(e)):!1}function QH(t){let e;for(let A of _me)if(e=t.match(A),e)break;if(!e)throw new Error(Hme(t));let[,r,o,a,n="master"]=e,{commit:u}=Ume.default.parse(n);return n=u||n.replace(/[^:]*:/,""),{auth:r,username:o,reponame:a,treeish:n}}function Hme(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var P2=class{supports(e,r){return!!bH(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await ln.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await oe.mktempPromise(async a=>{let n=new An(a);await Ji.extractArchiveTo(o,n,{stripComponents:1});let u=ea.splitRepoUrl(e.reference),A=J.join(a,"package.tgz");await sn.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:u.extra.workspace,locator:e});let p=await oe.readFilePromise(A);return await Ji.convertToZip(p,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:o,username:a,reponame:n,treeish:u}=QH(e.reference);return`https://${o?`${o}@`:""}github.com/${a}/${n}/archive/${u}.tar.gz`}};var Qgt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let o=new P2;if(!o.supports(e,r))return null;try{return await o.fetch(e,r)}catch{return null}}}},kgt=Qgt;var FH={};Yt(FH,{TarballHttpFetcher:()=>Q2,TarballHttpResolver:()=>k2,default:()=>Rgt});Ke();var x2=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,b2=/^https?:/;var Q2=class{supports(e,r){return x2.test(e.reference)?!!b2.test(e.reference):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await ln.get(e.reference,{configuration:r.project.configuration});return await Ji.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})}};Ke();Ke();var k2=class{supportsDescriptor(e,r){return x2.test(e.range)?!!b2.test(e.range):!1}supportsLocator(e,r){return x2.test(e.reference)?!!b2.test(e.reference):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[Y.convertDescriptorToLocator(e)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await We.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Fgt={fetchers:[Q2],resolvers:[k2]},Rgt=Fgt;var RH={};Yt(RH,{InitCommand:()=>hh,default:()=>Ngt});Ke();Ke();St();_t();var hh=class extends ct{constructor(){super(...arguments);this.private=fe.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=fe.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=fe.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=fe.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=fe.Boolean("-2",!1,{hidden:!0});this.yes=fe.Boolean("-y,--yes",{hidden:!0})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return o!==null?await this.executeProxy(r,o):await this.executeRegular(r)}async executeProxy(r,o){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new ot("Cannot use the --install flag from within a project subdirectory");oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=J.join(this.context.cwd,r.get("lockfileFilename"));oe.existsSync(a)||await oe.writeFilePromise(a,"");let n=await this.cli.run(["set","version",o],{quiet:!0});if(n!==0)return n;let u=[];return this.private&&u.push("-p"),this.workspace&&u.push("-w"),this.name&&u.push(`-n=${this.name}`),this.yes&&u.push("-y"),await oe.mktempPromise(async A=>{let{code:p}=await Mr.pipevp("yarn",["init",...u],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await sn.makeScriptEnv({binFolder:A})});return p})}async executeRegular(r){let o=null;try{o=(await Pt.find(r,this.context.cwd)).project}catch{o=null}oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Nt.tryFind(this.context.cwd),n=a??new Nt,u=Object.fromEntries(r.get("initFields").entries());n.load(u),n.name=n.name??Y.makeIdent(r.get("initScope"),this.name??J.basename(this.context.cwd)),n.packageManager=On&&We.isTaggedYarnVersion(On)?`yarn@${On}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await oe.mkdirPromise(J.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let A={};n.exportTo(A);let p=J.join(this.context.cwd,Nt.fileName);await oe.changeFilePromise(p,`${JSON.stringify(A,null,2)}
552`,{automaticNewlines:!0});let h=[p],E=z.join(this.context.cwd,"README.md");if(ae.existsSync(E)||(await ae.writeFilePromise(E,`# ${Y.stringifyIdent(n.name)} 552`,{automaticNewlines:!0});let h=[p],C=J.join(this.context.cwd,"README.md");if(oe.existsSync(C)||(await oe.writeFilePromise(C,`# ${Y.stringifyIdent(n.name)}
553`),h.push(E)),!o||o.cwd===this.context.cwd){let w=z.join(this.context.cwd,Lr.lockfile);ae.existsSync(w)||(await ae.writeFilePromise(w,""),h.push(w));let b=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/zero-installs","","#!.yarn/cache",".pnp.*"].map(pe=>`${pe} 553`),h.push(C)),!o||o.cwd===this.context.cwd){let w=J.join(this.context.cwd,Lr.lockfile);oe.existsSync(w)||(await oe.writeFilePromise(w,""),h.push(w));let b=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/zero-installs","","#!.yarn/cache",".pnp.*"].map(he=>`${he}
554`).join(""),C=z.join(this.context.cwd,".gitignore");ae.existsSync(C)||(await ae.writeFilePromise(C,b),h.push(C));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(pe=>`${pe} 554`).join(""),E=J.join(this.context.cwd,".gitignore");oe.existsSync(E)||(await oe.writeFilePromise(E,b),h.push(E));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(he=>`${he}
555`).join(""),_=z.join(this.context.cwd,".gitattributes");ae.existsSync(_)||(await ae.writeFilePromise(_,L),h.push(_));let V={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};Ye.mergeIntoTarget(V,r.get("initEditorConfig"));let re=`root = true 555`).join(""),_=J.join(this.context.cwd,".gitattributes");oe.existsSync(_)||(await oe.writeFilePromise(_,L),h.push(_));let V={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};We.mergeIntoTarget(V,r.get("initEditorConfig"));let re=`root = true
556`;for(let[pe,he]of Object.entries(V)){re+=` 556`;for(let[he,pe]of Object.entries(V)){re+=`
557[${pe}] 557[${he}]
558`;for(let[ve,ge]of Object.entries(he)){let le=ve.replace(/[A-Z]/g,Pe=>`_${Pe.toLowerCase()}`);re+=`${le} = ${ge} 558`;for(let[De,ge]of Object.entries(pe)){let le=De.replace(/[A-Z]/g,Pe=>`_${Pe.toLowerCase()}`);re+=`${le} = ${ge}
559`}}let oe=z.join(this.context.cwd,".editorconfig");ae.existsSync(oe)||(await ae.writeFilePromise(oe,re),h.push(oe)),await this.cli.run(["install"],{quiet:!0}),ae.existsSync(z.join(this.context.cwd,".git"))||(await Mr.execvp("git",["init"],{cwd:this.context.cwd}),await Mr.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Mr.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};ph.paths=[["init"]],ph.usage=it.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var bgt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ph]},Qgt=bgt;var Rq={};Yt(Rq,{SearchCommand:()=>yh,UpgradeInteractiveCommand:()=>Eh,default:()=>yIt});Ke();var _me=tt(Ie("os"));function wE({stdout:t}){if(_me.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}_t();var Zye=tt(JH()),zH={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},Pmt=(0,Zye.default)(zH.appId,zH.apiKey).initIndex(zH.indexName),XH=async(t,e=0)=>await Pmt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var xB=["regular","dev","peer"],yh=class extends ct{async execute(){wE(this.context);let{Gem:e}=await Promise.resolve().then(()=>(tk(),wq)),{ScrollableItems:r}=await Promise.resolve().then(()=>(sk(),ik)),{useKeypress:o}=await Promise.resolve().then(()=>(DB(),pwe)),{useMinistore:a}=await Promise.resolve().then(()=>(xq(),Pq)),{renderForm:n}=await Promise.resolve().then(()=>(ck(),lk)),{default:u}=await Promise.resolve().then(()=>tt(Bwe())),{Box:A,Text:p}=await Promise.resolve().then(()=>tt(cc())),{default:h,useEffect:E,useState:w}=await Promise.resolve().then(()=>tt(en())),v=await Xe.find(this.context.cwd,this.context.plugins),b=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),C=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:ge,active:le})=>{let[Pe,g]=a(ge.name,null);o({active:le},(de,ne)=>{if(ne.name!=="space")return;if(!Pe){g(xB[0]);return}let Z=xB.indexOf(Pe)+1;Z===xB.length?g(null):g(xB[Z])},[Pe,g]);let De=Y.parseIdent(ge.name),Ce=Y.prettyIdent(v,De);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},Ce)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},ge.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},ge.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,ge.humanDownloadsLast30Days)))},_=({name:ge,active:le})=>{let[Pe]=a(ge,null),g=Y.parseIdent(ge);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",Y.prettyIdent(v,g))),xB.map(De=>h.createElement(A,{key:De,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Pe===De})," ",h.createElement(p,{bold:!0},De)))))},V=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),oe=await n(({useSubmit:ge})=>{let le=a();ge(le);let Pe=Array.from(le.keys()).filter(H=>le.get(H)!==null),[g,De]=w(""),[Ce,de]=w(0),[ne,Z]=w([]),me=H=>{H.match(/\t| /)||De(H)},be=async()=>{de(0);let H=await XH(g);H.query===g&&Z(H.hits)},ut=async()=>{let H=await XH(g,Ce+1);H.query===g&&H.page-1===Ce&&(de(H.page),Z([...ne,...H.hits]))};return E(()=>{g?be():Z([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(b,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:me,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(C,null)),ne.length?h.createElement(r,{radius:2,loop:!1,children:ne.map(H=>h.createElement(L,{key:H.name,hit:H,active:!1})),willReachEnd:ut}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(R,null)),Pe.length?Pe.map(H=>h.createElement(_,{key:H,name:H,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(V,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof oe>"u")return 1;let pe=Array.from(oe.keys()).filter(ge=>oe.get(ge)==="regular"),he=Array.from(oe.keys()).filter(ge=>oe.get(ge)==="dev"),ve=Array.from(oe.keys()).filter(ge=>oe.get(ge)==="peer");return pe.length&&await this.cli.run(["add",...pe]),he.length&&await this.cli.run(["add","--dev",...he]),ve&&await this.cli.run(["add","--peer",...ve]),0}};yh.paths=[["search"]],yh.usage=it.Usage({category:"Interactive commands",description:"open the search interface",details:` 559`}}let ae=J.join(this.context.cwd,".editorconfig");oe.existsSync(ae)||(await oe.writeFilePromise(ae,re),h.push(ae)),await this.cli.run(["install"],{quiet:!0}),oe.existsSync(J.join(this.context.cwd,".git"))||(await Mr.execvp("git",["init"],{cwd:this.context.cwd}),await Mr.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Mr.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};hh.paths=[["init"]],hh.usage=it.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var Tgt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[hh]},Ngt=Tgt;var Nq={};Yt(Nq,{SearchCommand:()=>Eh,UpgradeInteractiveCommand:()=>Ih,default:()=>BIt});Ke();var qme=tt(Ie("os"));function wC({stdout:t}){if(qme.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}_t();var eEe=tt(XH()),ZH={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},Fmt=(0,eEe.default)(ZH.appId,ZH.apiKey).initIndex(ZH.indexName),$H=async(t,e=0)=>await Fmt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var QB=["regular","dev","peer"],Eh=class extends ct{async execute(){wC(this.context);let{Gem:e}=await Promise.resolve().then(()=>(ik(),vq)),{ScrollableItems:r}=await Promise.resolve().then(()=>(lk(),ak)),{useKeypress:o}=await Promise.resolve().then(()=>(PB(),gwe)),{useMinistore:a}=await Promise.resolve().then(()=>(Qq(),bq)),{renderForm:n}=await Promise.resolve().then(()=>(fk(),Ak)),{default:u}=await Promise.resolve().then(()=>tt(Dwe())),{Box:A,Text:p}=await Promise.resolve().then(()=>tt(uc())),{default:h,useEffect:C,useState:w}=await Promise.resolve().then(()=>tt(en())),v=await Xe.find(this.context.cwd,this.context.plugins),b=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),E=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:ge,active:le})=>{let[Pe,g]=a(ge.name,null);o({active:le},(de,ne)=>{if(ne.name!=="space")return;if(!Pe){g(QB[0]);return}let Z=QB.indexOf(Pe)+1;Z===QB.length?g(null):g(QB[Z])},[Pe,g]);let ve=Y.parseIdent(ge.name),Ee=Y.prettyIdent(v,ve);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},Ee)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},ge.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},ge.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,ge.humanDownloadsLast30Days)))},_=({name:ge,active:le})=>{let[Pe]=a(ge,null),g=Y.parseIdent(ge);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",Y.prettyIdent(v,g))),QB.map(ve=>h.createElement(A,{key:ve,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Pe===ve})," ",h.createElement(p,{bold:!0},ve)))))},V=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ae=await n(({useSubmit:ge})=>{let le=a();ge(le);let Pe=Array.from(le.keys()).filter(H=>le.get(H)!==null),[g,ve]=w(""),[Ee,de]=w(0),[ne,Z]=w([]),me=H=>{H.match(/\t| /)||ve(H)},be=async()=>{de(0);let H=await $H(g);H.query===g&&Z(H.hits)},ut=async()=>{let H=await $H(g,Ee+1);H.query===g&&H.page-1===Ee&&(de(H.page),Z([...ne,...H.hits]))};return C(()=>{g?be():Z([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(b,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:me,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(E,null)),ne.length?h.createElement(r,{radius:2,loop:!1,children:ne.map(H=>h.createElement(L,{key:H.name,hit:H,active:!1})),willReachEnd:ut}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(R,null)),Pe.length?Pe.map(H=>h.createElement(_,{key:H,name:H,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(V,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ae>"u")return 1;let he=Array.from(ae.keys()).filter(ge=>ae.get(ge)==="regular"),pe=Array.from(ae.keys()).filter(ge=>ae.get(ge)==="dev"),De=Array.from(ae.keys()).filter(ge=>ae.get(ge)==="peer");return he.length&&await this.cli.run(["add",...he]),pe.length&&await this.cli.run(["add","--dev",...pe]),De&&await this.cli.run(["add","--peer",...De]),0}};Eh.paths=[["search"]],Eh.usage=it.Usage({category:"Interactive commands",description:"open the search interface",details:`
560 This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. 560 This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry.
561 `,examples:[["Open the search window","yarn search"]]});Ke();_t();d_();var Qwe=tt(si()),bwe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,kwe=(t,e)=>t.length>0?[t.slice(0,e)].concat(kwe(t.slice(e),e)):[],Eh=class extends ct{async execute(){wE(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(xwe(),Pwe)),{Pad:r}=await Promise.resolve().then(()=>(Fq(),Swe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(sk(),ik)),{useMinistore:a}=await Promise.resolve().then(()=>(xq(),Pq)),{renderForm:n}=await Promise.resolve().then(()=>(ck(),lk)),{Box:u,Text:A}=await Promise.resolve().then(()=>tt(cc())),{default:p,useEffect:h,useRef:E,useState:w}=await Promise.resolve().then(()=>tt(en())),v=await Xe.find(this.context.cwd,this.context.plugins),{project:b,workspace:C}=await St.find(v,this.context.cwd),R=await Ur.find(v);if(!C)throw new er(b.cwd,this.context.cwd);await b.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,_=(Ce,de)=>{let ne=bpe(Ce,de),Z="";for(let me of ne)me.added?Z+=ye.pretty(v,me.value,"green"):me.removed||(Z+=me.value);return Z},V=(Ce,de)=>{if(Ce===de)return de;let ne=Y.parseRange(Ce),Z=Y.parseRange(de),me=ne.selector.match(bwe),be=Z.selector.match(bwe);if(!me||!be)return _(Ce,de);let ut=["gray","red","yellow","green","magenta"],H=null,yt="";for(let Me=1;Me<ut.length;++Me)H!==null||me[Me]!==be[Me]?(H===null&&(H=ut[Me-1]),yt+=ye.pretty(v,be[Me],H)):yt+=be[Me];return yt},re=async(Ce,de,ne)=>{let Z=await eu.fetchDescriptorFrom(Ce,ne,{project:b,cache:R,preserveModifier:de,workspace:C});return Z!==null?Z.range:Ce.range},oe=async Ce=>{let de=Qwe.default.valid(Ce.range)?`^${Ce.range}`:Ce.range,[ne,Z]=await Promise.all([re(Ce,Ce.range,de).catch(()=>null),re(Ce,Ce.range,"latest").catch(()=>null)]),me=[{value:null,label:Ce.range}];return ne&&ne!==Ce.range?me.push({value:ne,label:V(Ce.range,ne)}):me.push({value:null,label:""}),Z&&Z!==ne&&Z!==Ce.range?me.push({value:Z,label:V(Ce.range,Z)}):me.push({value:null,label:""}),me},pe=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<up>"),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"<down>")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<left>"),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"<right>")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<enter>")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),he=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),ve=({active:Ce,descriptor:de,suggestions:ne})=>{let[Z,me]=a(de.descriptorHash,null),be=Y.stringifyIdent(de),ut=Math.max(0,45-be.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},Y.prettyIdent(v,de)),p.createElement(r,{active:Ce,length:ut})),p.createElement(e,{active:Ce,options:ne,value:Z,skewer:!0,onChange:me,sizes:[17,17,17]})))},ge=({dependencies:Ce})=>{let[de,ne]=w(Ce.map(()=>null)),Z=E(!0),me=async be=>{let ut=await oe(be);return ut.filter(H=>H.label!=="").length<=1?null:{descriptor:be,suggestions:ut}};return h(()=>()=>{Z.current=!1},[]),h(()=>{let be=Math.trunc(L*1.75),ut=Ce.slice(0,be),H=Ce.slice(be),yt=kwe(H,L),Me=ut.map(me).reduce(async(Te,Qe)=>{await Te;let _e=await Qe;_e!==null&&(!Z.current||ne(qe=>{let At=qe.findIndex(x=>x===null),Oe=[...qe];return Oe[At]=_e,Oe}))},Promise.resolve());yt.reduce((Te,Qe)=>Promise.all(Qe.map(_e=>Promise.resolve().then(()=>me(_e)))).then(async _e=>{_e=_e.filter(qe=>qe!==null),await Te,Z.current&&ne(qe=>{let At=qe.findIndex(Oe=>Oe===null);return qe.slice(0,At).concat(_e).concat(qe.slice(At+_e.length))})}),Me).then(()=>{Z.current&&ne(Te=>Te.filter(Qe=>Qe!==null))})},[]),de.length?p.createElement(o,{radius:L>>1,children:de.map((be,ut)=>be!==null?p.createElement(ve,{key:ut,active:!1,descriptor:be.descriptor,suggestions:be.suggestions}):p.createElement(A,{key:ut},"Loading..."))}):p.createElement(A,null,"No upgrades found")},Pe=await n(({useSubmit:Ce})=>{Ce(a());let de=new Map;for(let Z of b.workspaces)for(let me of["dependencies","devDependencies"])for(let be of Z.manifest[me].values())b.tryWorkspaceByDescriptor(be)===null&&de.set(be.descriptorHash,be);let ne=Ye.sortMap(de.values(),Z=>Y.stringifyDescriptor(Z));return p.createElement(u,{flexDirection:"column"},p.createElement(pe,null),p.createElement(he,null),p.createElement(ge,{dependencies:ne}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Pe>"u")return 1;let g=!1;for(let Ce of b.workspaces)for(let de of["dependencies","devDependencies"]){let ne=Ce.manifest[de];for(let Z of ne.values()){let me=Pe.get(Z.descriptorHash);typeof me<"u"&&me!==null&&(ne.set(Z.identHash,Y.makeDescriptor(Z,me)),g=!0)}}return g?(await Et.start({configuration:v,stdout:this.context.stdout,includeLogs:!this.context.quiet},async Ce=>{await b.install({cache:R,report:Ce})})).exitCode():0}};Eh.paths=[["upgrade-interactive"]],Eh.usage=it.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` 561 `,examples:[["Open the search window","yarn search"]]});Ke();_t();y_();var Fwe=tt(si()),kwe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,Rwe=(t,e)=>t.length>0?[t.slice(0,e)].concat(Rwe(t.slice(e),e)):[],Ih=class extends ct{async execute(){wC(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(Qwe(),bwe)),{Pad:r}=await Promise.resolve().then(()=>(Tq(),xwe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(lk(),ak)),{useMinistore:a}=await Promise.resolve().then(()=>(Qq(),bq)),{renderForm:n}=await Promise.resolve().then(()=>(fk(),Ak)),{Box:u,Text:A}=await Promise.resolve().then(()=>tt(uc())),{default:p,useEffect:h,useRef:C,useState:w}=await Promise.resolve().then(()=>tt(en())),v=await Xe.find(this.context.cwd,this.context.plugins),{project:b,workspace:E}=await Pt.find(v,this.context.cwd),R=await Ur.find(v);if(!E)throw new er(b.cwd,this.context.cwd);await b.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,_=(Ee,de)=>{let ne=kpe(Ee,de),Z="";for(let me of ne)me.added?Z+=ye.pretty(v,me.value,"green"):me.removed||(Z+=me.value);return Z},V=(Ee,de)=>{if(Ee===de)return de;let ne=Y.parseRange(Ee),Z=Y.parseRange(de),me=ne.selector.match(kwe),be=Z.selector.match(kwe);if(!me||!be)return _(Ee,de);let ut=["gray","red","yellow","green","magenta"],H=null,yt="";for(let Me=1;Me<ut.length;++Me)H!==null||me[Me]!==be[Me]?(H===null&&(H=ut[Me-1]),yt+=ye.pretty(v,be[Me],H)):yt+=be[Me];return yt},re=async(Ee,de,ne)=>{let Z=await tu.fetchDescriptorFrom(Ee,ne,{project:b,cache:R,preserveModifier:de,workspace:E});return Z!==null?Z.range:Ee.range},ae=async Ee=>{let de=Fwe.default.valid(Ee.range)?`^${Ee.range}`:Ee.range,[ne,Z]=await Promise.all([re(Ee,Ee.range,de).catch(()=>null),re(Ee,Ee.range,"latest").catch(()=>null)]),me=[{value:null,label:Ee.range}];return ne&&ne!==Ee.range?me.push({value:ne,label:V(Ee.range,ne)}):me.push({value:null,label:""}),Z&&Z!==ne&&Z!==Ee.range?me.push({value:Z,label:V(Ee.range,Z)}):me.push({value:null,label:""}),me},he=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<up>"),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"<down>")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<left>"),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"<right>")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<enter>")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),pe=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),De=({active:Ee,descriptor:de,suggestions:ne})=>{let[Z,me]=a(de.descriptorHash,null),be=Y.stringifyIdent(de),ut=Math.max(0,45-be.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},Y.prettyIdent(v,de)),p.createElement(r,{active:Ee,length:ut})),p.createElement(e,{active:Ee,options:ne,value:Z,skewer:!0,onChange:me,sizes:[17,17,17]})))},ge=({dependencies:Ee})=>{let[de,ne]=w(Ee.map(()=>null)),Z=C(!0),me=async be=>{let ut=await ae(be);return ut.filter(H=>H.label!=="").length<=1?null:{descriptor:be,suggestions:ut}};return h(()=>()=>{Z.current=!1},[]),h(()=>{let be=Math.trunc(L*1.75),ut=Ee.slice(0,be),H=Ee.slice(be),yt=Rwe(H,L),Me=ut.map(me).reduce(async(Te,Qe)=>{await Te;let _e=await Qe;_e!==null&&(!Z.current||ne(qe=>{let At=qe.findIndex(x=>x===null),Oe=[...qe];return Oe[At]=_e,Oe}))},Promise.resolve());yt.reduce((Te,Qe)=>Promise.all(Qe.map(_e=>Promise.resolve().then(()=>me(_e)))).then(async _e=>{_e=_e.filter(qe=>qe!==null),await Te,Z.current&&ne(qe=>{let At=qe.findIndex(Oe=>Oe===null);return qe.slice(0,At).concat(_e).concat(qe.slice(At+_e.length))})}),Me).then(()=>{Z.current&&ne(Te=>Te.filter(Qe=>Qe!==null))})},[]),de.length?p.createElement(o,{radius:L>>1,children:de.map((be,ut)=>be!==null?p.createElement(De,{key:ut,active:!1,descriptor:be.descriptor,suggestions:be.suggestions}):p.createElement(A,{key:ut},"Loading..."))}):p.createElement(A,null,"No upgrades found")},Pe=await n(({useSubmit:Ee})=>{Ee(a());let de=new Map;for(let Z of b.workspaces)for(let me of["dependencies","devDependencies"])for(let be of Z.manifest[me].values())b.tryWorkspaceByDescriptor(be)===null&&(be.range.startsWith("link:")||de.set(be.descriptorHash,be));let ne=We.sortMap(de.values(),Z=>Y.stringifyDescriptor(Z));return p.createElement(u,{flexDirection:"column"},p.createElement(he,null),p.createElement(pe,null),p.createElement(ge,{dependencies:ne}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Pe>"u")return 1;let g=!1;for(let Ee of b.workspaces)for(let de of["dependencies","devDependencies"]){let ne=Ee.manifest[de];for(let Z of ne.values()){let me=Pe.get(Z.descriptorHash);typeof me<"u"&&me!==null&&(ne.set(Z.identHash,Y.makeDescriptor(Z,me)),g=!0)}}return g?(await Ct.start({configuration:v,stdout:this.context.stdout,includeLogs:!this.context.quiet},async Ee=>{await b.install({cache:R,report:Ee})})).exitCode():0}};Ih.paths=[["upgrade-interactive"]],Ih.usage=it.Usage({category:"Interactive commands",description:"open the upgrade interface",details:`
562 This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. 562 This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade.
563 `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]});var mIt={commands:[yh,Eh]},yIt=mIt;var Tq={};Yt(Tq,{LinkFetcher:()=>QB,LinkResolver:()=>kB,PortalFetcher:()=>FB,PortalResolver:()=>RB,default:()=>EIt});Ke();bt();var ep="portal:",tp="link:";var QB=class{supports(e,r){return!!e.reference.startsWith(tp)}getLocalPath(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:tp});if(z.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:z.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:tp}),n=z.isAbsolute(a)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new An(wt.root),prefixPath:z.relative(wt.root,n.localPath),localPath:wt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=z.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new An(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:wt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new Gu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:wt.dot,discardFromLookup:!0}}};Ke();bt();var kB=class{supportsDescriptor(e,r){return!!e.range.startsWith(tp)}supportsLocator(e,r){return!!e.reference.startsWith(tp)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(tp.length);return[Y.makeLocator(e,`${tp}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ke();bt();var FB=class{supports(e,r){return!!e.reference.startsWith(ep)}getLocalPath(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:ep});if(z.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:z.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:ep}),n=z.isAbsolute(a)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new An(wt.root),prefixPath:z.relative(wt.root,n.localPath),localPath:wt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=z.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new An(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:wt.dot,localPath:p}:{packageFs:new Gu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:wt.dot}}};Ke();Ke();bt();var RB=class{supportsDescriptor(e,r){return!!e.range.startsWith(ep)}supportsLocator(e,r){return!!e.reference.startsWith(ep)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(ep.length);return[Y.makeLocator(e,`${ep}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await Ye.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var CIt={fetchers:[QB,FB],resolvers:[kB,RB]},EIt=CIt;var mj={};Yt(mj,{NodeModulesLinker:()=>JB,NodeModulesMode:()=>pj,PnpLooseLinker:()=>zB,default:()=>Owt});bt();Ke();bt();bt();var Lq=(t,e)=>`${t}@${e}`,Fwe=(t,e)=>{let r=e.indexOf("#"),o=r>=0?e.substring(r+1):e;return Lq(t,o)};var Nwe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),o=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:o,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},u;n.debugLevel>=0&&(u=Date.now());let A=PIt(t,n),p=!1,h=0;do p=Oq(A,[A],new Set([A.locator]),new Map,n).anotherRoundNeeded,n.fastLookupPossible=!1,h++;while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-u}ms, rounds: ${h}`),n.debugLevel>=1){let E=TB(A);if(Oq(A,[A],new Set([A.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: 563 `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]});var wIt={commands:[Eh,Ih]},BIt=wIt;var Lq={};Yt(Lq,{LinkFetcher:()=>FB,LinkResolver:()=>RB,PortalFetcher:()=>TB,PortalResolver:()=>NB,default:()=>DIt});Ke();St();var rp="portal:",np="link:";var FB=class{supports(e,r){return!!e.reference.startsWith(np)}getLocalPath(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:np});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:np}),n=J.isAbsolute(a)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new An(wt.root),prefixPath:J.relative(wt.root,n.localPath),localPath:wt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=J.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new An(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:wt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new Gu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:wt.dot,discardFromLookup:!0}}};Ke();St();var RB=class{supportsDescriptor(e,r){return!!e.range.startsWith(np)}supportsLocator(e,r){return!!e.reference.startsWith(np)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(np.length);return[Y.makeLocator(e,`${np}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ke();St();var TB=class{supports(e,r){return!!e.reference.startsWith(rp)}getLocalPath(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:rp});if(J.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:J.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=Y.parseFileStyleRange(e.reference,{protocol:rp}),n=J.isAbsolute(a)?{packageFs:new An(wt.root),prefixPath:wt.dot,localPath:wt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new An(wt.root),prefixPath:J.relative(wt.root,n.localPath),localPath:wt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=J.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new An(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:wt.dot,localPath:p}:{packageFs:new Gu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:wt.dot}}};Ke();Ke();St();var NB=class{supportsDescriptor(e,r){return!!e.range.startsWith(rp)}supportsLocator(e,r){return!!e.reference.startsWith(rp)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(rp.length);return[Y.makeLocator(e,`${rp}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await We.releaseAfterUseAsync(async()=>await Nt.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var vIt={fetchers:[FB,TB],resolvers:[RB,NB]},DIt=vIt;var Ej={};Yt(Ej,{NodeModulesLinker:()=>XB,NodeModulesMode:()=>gj,PnpLooseLinker:()=>ZB,default:()=>qwt});St();Ke();St();St();var Mq=(t,e)=>`${t}@${e}`,Twe=(t,e)=>{let r=e.indexOf("#"),o=r>=0?e.substring(r+1):e;return Mq(t,o)};var Owe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),o=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:o,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},u;n.debugLevel>=0&&(u=Date.now());let A=FIt(t,n),p=!1,h=0;do p=Uq(A,[A],new Set([A.locator]),new Map,n).anotherRoundNeeded,n.fastLookupPossible=!1,h++;while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-u}ms, rounds: ${h}`),n.debugLevel>=1){let C=LB(A);if(Uq(A,[A],new Set([A.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree:
564${E}, next tree: 564${C}, next tree:
565${TB(A)}`);let v=Lwe(A);if(v)throw new Error(`${v}, after hoisting finished: 565${LB(A)}`);let v=Mwe(A);if(v)throw new Error(`${v}, after hoisting finished:
566${TB(A)}`)}return n.debugLevel>=2&&console.log(TB(A)),xIt(A)},IIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},wIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let E;for(let w of t)E=w.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},Rwe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:w,hoistPriority:v,dependencyKind:b,hoistedFrom:C,hoistedTo:R}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:w,hoistPriority:v,dependencyKind:b,hoistedFrom:new Map(C),hoistedTo:new Map(R)},_=L.dependencies.get(r);return _&&_.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},BIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);return A.hoistPriority!==u.hoistPriority?A.hoistPriority-u.hoistPriority:A.peerDependents.size!==u.peerDependents.size?A.peerDependents.size-u.peerDependents.size:A.dependents.size-u.dependents.size});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Nq=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Oq=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=bIt(u),p=BIt(u,A),h=t==u?new Map:a.fastLookupPossible?IIt(e):wIt(e),E,w=!1,v=!1,b=new Map(Array.from(p.entries()).map(([R,L])=>[R,L[0]])),C=new Map;do{let R=SIt(t,e,r,h,b,p,o,C,a);R.isGraphChanged&&(v=!0),R.anotherRoundNeeded&&(w=!0),E=!1;for(let[L,_]of p)_.length>1&&!u.dependencies.has(L)&&(b.delete(L),_.shift(),b.set(L,_[0]),E=!0)}while(E);for(let R of u.dependencies.values())if(!u.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let L=Oq(t,[...e,R],r,C,a);L.isGraphChanged&&(v=!0),L.anotherRoundNeeded&&(w=!0),r.delete(R.locator)}return{anotherRoundNeeded:w,isGraphChanged:v}},vIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},DIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let E,w=null,v=new Set;p&&(E=`${Array.from(e).map(L=>eo(L)).join("\u2192")}`);let b=r[r.length-1],R=!(o.ident===b.ident);if(p&&!R&&(w="- self-reference"),R&&(R=o.dependencyKind!==1,p&&!R&&(w="- workspace")),R&&o.dependencyKind===2&&(R=!vIt(o),p&&!R&&(w="- external soft link with unhoisted dependencies")),R&&(R=b.dependencyKind!==1||b.hoistedFrom.has(o.name)||e.size===1,p&&!R&&(w=b.reasons.get(o.name))),R&&(R=!t.peerNames.has(o.name),p&&!R&&(w=`- cannot shadow peer: ${eo(t.originalDependencies.get(o.name).locator)} at ${E}`)),R){let L=!1,_=a.get(o.name);if(L=!_||_.ident===o.ident,p&&!L&&(w=`- filled by: ${eo(_.locator)} at ${E}`),L)for(let V=r.length-1;V>=1;V--){let oe=r[V].dependencies.get(o.name);if(oe&&oe.ident!==o.ident){L=!1;let pe=A.get(b);pe||(pe=new Set,A.set(b,pe)),pe.add(o.name),p&&(w=`- filled by ${eo(oe.locator)} at ${r.slice(0,V).map(he=>eo(he.locator)).join("\u2192")}`);break}}R=L}if(R&&(R=n.get(o.name)===o.ident,p&&!R&&(w=`- filled by: ${eo(u.get(o.name)[0])} at ${E}`)),R){let L=!0,_=new Set(o.peerNames);for(let V=r.length-1;V>=1;V--){let re=r[V];for(let oe of _){if(re.peerNames.has(oe)&&re.originalDependencies.has(oe))continue;let pe=re.dependencies.get(oe);pe&&t.dependencies.get(oe)!==pe&&(V===r.length-1?v.add(pe):(v=null,L=!1,p&&(w=`- peer dependency ${eo(pe.locator)} from parent ${eo(re.locator)} was not hoisted to ${E}`))),_.delete(oe)}if(!L)break}R=L}if(R&&!h)for(let L of o.hoistedDependencies.values()){let _=a.get(L.name)||t.dependencies.get(L.name);if(!_||L.ident!==_.ident){R=!1,p&&(w=`- previously hoisted dependency mismatch, needed: ${eo(L.locator)}, available: ${eo(_==null?void 0:_.locator)}`);break}}return v!==null&&v.size>0?{isHoistable:2,dependsOn:v,reason:w}:{isHoistable:R?0:1,reason:w}},uk=t=>`${t.name}@${t.locator}`,SIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],E=new Set,w=!1,v=!1,b=(_,V,re,oe,pe)=>{if(E.has(oe))return;let he=[...V,uk(oe)],ve=[...re,uk(oe)],ge=new Map,le=new Map;for(let de of Nq(oe)){let ne=DIt(h,r,[h,..._,oe],de,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(le.set(de,ne),ne.isHoistable===2)for(let Z of ne.dependsOn){let me=ge.get(Z.name)||new Set;me.add(de.name),ge.set(Z.name,me)}}let Pe=new Set,g=(de,ne,Z)=>{if(!Pe.has(de)){Pe.add(de),le.set(de,{isHoistable:1,reason:Z});for(let me of ge.get(de.name)||[])g(oe.dependencies.get(me),ne,p.debugLevel>=2?`- peer dependency ${eo(de.locator)} from parent ${eo(oe.locator)} was not hoisted`:"")}};for(let[de,ne]of le)ne.isHoistable===1&&g(de,ne,ne.reason);let De=!1;for(let de of le.keys())if(!Pe.has(de)){v=!0;let ne=u.get(oe);ne&&ne.has(de.name)&&(w=!0),De=!0,oe.dependencies.delete(de.name),oe.hoistedDependencies.set(de.name,de),oe.reasons.delete(de.name);let Z=h.dependencies.get(de.name);if(p.debugLevel>=2){let me=Array.from(V).concat([oe.locator]).map(ut=>eo(ut)).join("\u2192"),be=h.hoistedFrom.get(de.name);be||(be=[],h.hoistedFrom.set(de.name,be)),be.push(me),oe.hoistedTo.set(de.name,Array.from(e).map(ut=>eo(ut.locator)).join("\u2192"))}if(!Z)h.ident!==de.ident&&(h.dependencies.set(de.name,de),pe.add(de));else for(let me of de.references)Z.references.add(me)}if(oe.dependencyKind===2&&De&&(w=!0),p.check){let de=Lwe(t);if(de)throw new Error(`${de}, after hoisting dependencies of ${[h,..._,oe].map(ne=>eo(ne.locator)).join("\u2192")}: 566${LB(A)}`)}return n.debugLevel>=2&&console.log(LB(A)),RIt(A)},SIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},PIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let C;for(let w of t)C=w.dependencies.get(h.name),C&&r.set(C.name,C)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},Nwe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:C,isHoistBorder:w,hoistPriority:v,dependencyKind:b,hoistedFrom:E,hoistedTo:R}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(C),decoupled:!0,isHoistBorder:w,hoistPriority:v,dependencyKind:b,hoistedFrom:new Map(E),hoistedTo:new Map(R)},_=L.dependencies.get(r);return _&&_.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},xIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);return A.hoistPriority!==u.hoistPriority?A.hoistPriority-u.hoistPriority:A.peerDependents.size!==u.peerDependents.size?A.peerDependents.size-u.peerDependents.size:A.dependents.size-u.dependents.size});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Oq=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Uq=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=TIt(u),p=xIt(u,A),h=t==u?new Map:a.fastLookupPossible?SIt(e):PIt(e),C,w=!1,v=!1,b=new Map(Array.from(p.entries()).map(([R,L])=>[R,L[0]])),E=new Map;do{let R=kIt(t,e,r,h,b,p,o,E,a);R.isGraphChanged&&(v=!0),R.anotherRoundNeeded&&(w=!0),C=!1;for(let[L,_]of p)_.length>1&&!u.dependencies.has(L)&&(b.delete(L),_.shift(),b.set(L,_[0]),C=!0)}while(C);for(let R of u.dependencies.values())if(!u.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let L=Uq(t,[...e,R],r,E,a);L.isGraphChanged&&(v=!0),L.anotherRoundNeeded&&(w=!0),r.delete(R.locator)}return{anotherRoundNeeded:w,isGraphChanged:v}},bIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},QIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let C,w=null,v=new Set;p&&(C=`${Array.from(e).map(L=>eo(L)).join("\u2192")}`);let b=r[r.length-1],R=!(o.ident===b.ident);if(p&&!R&&(w="- self-reference"),R&&(R=o.dependencyKind!==1,p&&!R&&(w="- workspace")),R&&o.dependencyKind===2&&(R=!bIt(o),p&&!R&&(w="- external soft link with unhoisted dependencies")),R&&(R=b.dependencyKind!==1||b.hoistedFrom.has(o.name)||e.size===1,p&&!R&&(w=b.reasons.get(o.name))),R&&(R=!t.peerNames.has(o.name),p&&!R&&(w=`- cannot shadow peer: ${eo(t.originalDependencies.get(o.name).locator)} at ${C}`)),R){let L=!1,_=a.get(o.name);if(L=!_||_.ident===o.ident,p&&!L&&(w=`- filled by: ${eo(_.locator)} at ${C}`),L)for(let V=r.length-1;V>=1;V--){let ae=r[V].dependencies.get(o.name);if(ae&&ae.ident!==o.ident){L=!1;let he=A.get(b);he||(he=new Set,A.set(b,he)),he.add(o.name),p&&(w=`- filled by ${eo(ae.locator)} at ${r.slice(0,V).map(pe=>eo(pe.locator)).join("\u2192")}`);break}}R=L}if(R&&(R=n.get(o.name)===o.ident,p&&!R&&(w=`- filled by: ${eo(u.get(o.name)[0])} at ${C}`)),R){let L=!0,_=new Set(o.peerNames);for(let V=r.length-1;V>=1;V--){let re=r[V];for(let ae of _){if(re.peerNames.has(ae)&&re.originalDependencies.has(ae))continue;let he=re.dependencies.get(ae);he&&t.dependencies.get(ae)!==he&&(V===r.length-1?v.add(he):(v=null,L=!1,p&&(w=`- peer dependency ${eo(he.locator)} from parent ${eo(re.locator)} was not hoisted to ${C}`))),_.delete(ae)}if(!L)break}R=L}if(R&&!h)for(let L of o.hoistedDependencies.values()){let _=a.get(L.name)||t.dependencies.get(L.name);if(!_||L.ident!==_.ident){R=!1,p&&(w=`- previously hoisted dependency mismatch, needed: ${eo(L.locator)}, available: ${eo(_==null?void 0:_.locator)}`);break}}return v!==null&&v.size>0?{isHoistable:2,dependsOn:v,reason:w}:{isHoistable:R?0:1,reason:w}},pk=t=>`${t.name}@${t.locator}`,kIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],C=new Set,w=!1,v=!1,b=(_,V,re,ae,he)=>{if(C.has(ae))return;let pe=[...V,pk(ae)],De=[...re,pk(ae)],ge=new Map,le=new Map;for(let de of Oq(ae)){let ne=QIt(h,r,[h,..._,ae],de,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(le.set(de,ne),ne.isHoistable===2)for(let Z of ne.dependsOn){let me=ge.get(Z.name)||new Set;me.add(de.name),ge.set(Z.name,me)}}let Pe=new Set,g=(de,ne,Z)=>{if(!Pe.has(de)){Pe.add(de),le.set(de,{isHoistable:1,reason:Z});for(let me of ge.get(de.name)||[])g(ae.dependencies.get(me),ne,p.debugLevel>=2?`- peer dependency ${eo(de.locator)} from parent ${eo(ae.locator)} was not hoisted`:"")}};for(let[de,ne]of le)ne.isHoistable===1&&g(de,ne,ne.reason);let ve=!1;for(let de of le.keys())if(!Pe.has(de)){v=!0;let ne=u.get(ae);ne&&ne.has(de.name)&&(w=!0),ve=!0,ae.dependencies.delete(de.name),ae.hoistedDependencies.set(de.name,de),ae.reasons.delete(de.name);let Z=h.dependencies.get(de.name);if(p.debugLevel>=2){let me=Array.from(V).concat([ae.locator]).map(ut=>eo(ut)).join("\u2192"),be=h.hoistedFrom.get(de.name);be||(be=[],h.hoistedFrom.set(de.name,be)),be.push(me),ae.hoistedTo.set(de.name,Array.from(e).map(ut=>eo(ut.locator)).join("\u2192"))}if(!Z)h.ident!==de.ident&&(h.dependencies.set(de.name,de),he.add(de));else for(let me of de.references)Z.references.add(me)}if(ae.dependencyKind===2&&ve&&(w=!0),p.check){let de=Mwe(t);if(de)throw new Error(`${de}, after hoisting dependencies of ${[h,..._,ae].map(ne=>eo(ne.locator)).join("\u2192")}:
567${TB(t)}`)}let Ce=Nq(oe);for(let de of Ce)if(Pe.has(de)){let ne=le.get(de);if((a.get(de.name)===de.ident||!oe.reasons.has(de.name))&&ne.isHoistable!==0&&oe.reasons.set(de.name,ne.reason),!de.isHoistBorder&&ve.indexOf(uk(de))<0){E.add(oe);let me=Rwe(oe,de);b([..._,oe],he,ve,me,R),E.delete(oe)}}},C,R=new Set(Nq(h)),L=Array.from(e).map(_=>uk(_));do{C=R,R=new Set;for(let _ of C){if(_.locator===h.locator||_.isHoistBorder)continue;let V=Rwe(h,_);b([],Array.from(r),L,V,R)}}while(R.size>0);return{anotherRoundNeeded:w,isGraphChanged:v}},Lwe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),w=()=>`${Array.from(o).concat([n]).map(v=>eo(v.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let v=u.get(h.name);(v!==E||!v||v.ident!==h.ident)&&e.push(`${w()} - broken peer promise: expected ${h.ident} but found ${v&&v.ident}`)}else{let v=A.hoistedFrom.get(n.name),b=n.hoistedTo.get(h.name),C=`${v?` hoisted from ${v.join(", ")}`:""}`,R=`${b?` hoisted to ${b}`:""}`,L=`${w()}${C}`;E?E.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${R}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${R} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(` 567${LB(t)}`)}let Ee=Oq(ae);for(let de of Ee)if(Pe.has(de)){let ne=le.get(de);if((a.get(de.name)===de.ident||!ae.reasons.has(de.name))&&ne.isHoistable!==0&&ae.reasons.set(de.name,ne.reason),!de.isHoistBorder&&De.indexOf(pk(de))<0){C.add(ae);let me=Nwe(ae,de);b([..._,ae],pe,De,me,R),C.delete(ae)}}},E,R=new Set(Oq(h)),L=Array.from(e).map(_=>pk(_));do{E=R,R=new Set;for(let _ of E){if(_.locator===h.locator||_.isHoistBorder)continue;let V=Nwe(h,_);b([],Array.from(r),L,V,R)}}while(R.size>0);return{anotherRoundNeeded:w,isGraphChanged:v}},Mwe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let C=p.get(h.name),w=()=>`${Array.from(o).concat([n]).map(v=>eo(v.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let v=u.get(h.name);(v!==C||!v||v.ident!==h.ident)&&e.push(`${w()} - broken peer promise: expected ${h.ident} but found ${v&&v.ident}`)}else{let v=A.hoistedFrom.get(n.name),b=n.hoistedTo.get(h.name),E=`${v?` hoisted from ${v.join(", ")}`:""}`,R=`${b?` hoisted to ${b}`:""}`,L=`${w()}${E}`;C?C.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${R}: expected ${h.ident}, but found: ${C.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${R} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(`
568`)},PIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Lq(r,a),ident:Fwe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,E)=>{let w=A.get(h),v=!!w;if(!w){let{name:b,identName:C,reference:R,peerNames:L,hoistPriority:_,dependencyKind:V}=h,re=e.hoistingLimits.get(E.locator);w={name:b,references:new Set([R]),locator:Lq(C,R),ident:Fwe(C,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:re?re.has(b):!1,hoistPriority:_||0,dependencyKind:V||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,w)}if(E.dependencies.set(h.name,w),E.originalDependencies.set(h.name,w),v){let b=new Set,C=R=>{if(!b.has(R)){b.add(R),R.decoupled=!1;for(let L of R.dependencies.values())R.peerNames.has(L.name)||C(L)}};C(w)}else for(let b of h.dependencies)p(b,w)};for(let h of t.dependencies)p(h,u);return u},Mq=t=>t.substring(0,t.indexOf("@",1)),xIt=t=>{let e={name:t.name,identName:Mq(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:E,locator:w}=a;p={name:h,identName:Mq(w),references:E,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},bIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let E of A.dependencies.values()){let w=a(E);w.hoistPriority=Math.max(w.hoistPriority,E.hoistPriority),A.peerNames.has(E.name)?w.peerDependents.add(A.ident):n(A,E)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},eo=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`},Twe=5e4,TB=t=>{let e=0,r=(a,n,u="")=>{if(e>Twe||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h<A.length;h++){let E=A[h];if(!a.peerNames.has(E.name)&&E!==a){let w=a.reasons.get(E.name),v=Mq(E.locator);p+=`${u}${h<A.length-1?"\u251C\u2500":"\u2514\u2500"}${(n.has(E)?">":"")+(v!==E.name?`a:${E.name}:`:"")+eo(E.locator)+(w?` ${w}`:"")} 568`)},FIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Mq(r,a),ident:Twe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,C)=>{let w=A.get(h),v=!!w;if(!w){let{name:b,identName:E,reference:R,peerNames:L,hoistPriority:_,dependencyKind:V}=h,re=e.hoistingLimits.get(C.locator);w={name:b,references:new Set([R]),locator:Mq(E,R),ident:Twe(E,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:re?re.has(b):!1,hoistPriority:_||0,dependencyKind:V||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,w)}if(C.dependencies.set(h.name,w),C.originalDependencies.set(h.name,w),v){let b=new Set,E=R=>{if(!b.has(R)){b.add(R),R.decoupled=!1;for(let L of R.dependencies.values())R.peerNames.has(L.name)||E(L)}};E(w)}else for(let b of h.dependencies)p(b,w)};for(let h of t.dependencies)p(h,u);return u},_q=t=>t.substring(0,t.indexOf("@",1)),RIt=t=>{let e={name:t.name,identName:_q(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:C,locator:w}=a;p={name:h,identName:_q(w),references:C,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},TIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let C of A.dependencies.values()){let w=a(C);w.hoistPriority=Math.max(w.hoistPriority,C.hoistPriority),A.peerNames.has(C.name)?w.peerDependents.add(A.ident):n(A,C)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},eo=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`},Lwe=5e4,LB=t=>{let e=0,r=(a,n,u="")=>{if(e>Lwe||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,C)=>h.name===C.name?0:h.name>C.name?1:-1),p="";n.add(a);for(let h=0;h<A.length;h++){let C=A[h];if(!a.peerNames.has(C.name)&&C!==a){let w=a.reasons.get(C.name),v=_q(C.locator);p+=`${u}${h<A.length-1?"\u251C\u2500":"\u2514\u2500"}${(n.has(C)?">":"")+(v!==C.name?`a:${C.name}:`:"")+eo(C.locator)+(w?` ${w}`:"")}
569`,p+=r(E,n,`${u}${h<A.length-1?"\u2502 ":" "}`)}}return n.delete(a),p};return r(t,new Set)+(e>Twe?` 569`,p+=r(C,n,`${u}${h<A.length-1?"\u2502 ":" "}`)}}return n.delete(a),p};return r(t,new Set)+(e>Lwe?`
570Tree is too large, part of the tree has been dunped 570Tree is too large, part of the tree has been dunped
571`:"")};var NB=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(NB||{}),Owe="node_modules",dm="$wsroot$";var LB=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=kIt(t,e),u=null;if(a.length===0){let A=Nwe(r,{hoistingLimits:o});u=RIt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},mA=t=>`${t.name}@${t.reference}`,_q=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(z.delimiter).length,u=a.split(z.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},Mwe=(t,e)=>{let r=Y.isVirtualLocator(t)?Y.devirtualizeLocator(t):t,o=Y.isVirtualLocator(e)?Y.devirtualizeLocator(e):e;return Y.areLocatorsEqual(r,o)},Uq=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=ue.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return z.contains(o,a)===null},QIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=ue.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(v,b)=>{let C=mA(v);if(p.has(C))return;p.add(C);let R=t.getPackageInformation(v);if(R){let L=b?mA(b):"";if(mA(v)!==L&&R.linkType==="SOFT"&&!Uq(R,v,t,o)){let _=Uwe(R,v,t);(!A.get(_)||v.reference.startsWith("workspace:"))&&A.set(_,v)}for(let[_,V]of R.packageDependencies)V!==null&&(R.packagePeers.has(_)||h(t.getLocator(_,V),v))}};for(let v of u)h(v,null);let E=o.split(z.sep);for(let v of A.values()){let b=t.getPackageInformation(v),R=ue.toPortablePath(b.packageLocation.slice(0,-1)).split(z.sep).slice(E.length),L=n;for(let _ of R){let V=L.children.get(_);V||(V={children:new Map},L.children.set(_,V)),L=V}L.workspaceLocator=v}let w=(v,b)=>{if(v.workspaceLocator){let C=mA(b),R=a.get(C);R||(R=new Set,a.set(C,R)),R.add(v.workspaceLocator)}for(let C of v.children.values())w(C,v.workspaceLocator||b)};for(let v of n.children.values())w(v,n.workspaceLocator);return a},kIt=(t,e)=>{let r=[],o=!1,a=new Map,n=QIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=ue.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,w=(b,C)=>`${mA(C)}:${b}`,v=(b,C,R,L,_,V,re,oe)=>{var de,ne;let pe=w(b,R),he=E.get(pe),ve=!!he;!ve&&R.name===A.name&&R.reference===A.reference&&(he=h,E.set(pe,h));let ge=Uq(C,R,t,p);if(!he){let Z=0;ge?Z=2:C.linkType==="SOFT"&&R.name.endsWith(dm)&&(Z=1),he={name:b,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:Z===1?new Set:C.packagePeers,dependencyKind:Z},E.set(pe,he)}let le;if(ge?le=2:_.linkType==="SOFT"?le=1:le=0,he.hoistPriority=Math.max(he.hoistPriority||0,le),oe&&!ge){let Z=mA({name:L.identName,reference:L.reference}),me=a.get(Z)||new Set;a.set(Z,me),me.add(he.name)}let Pe=new Map(C.packageDependencies);if(e.project){let Z=e.project.workspacesByCwd.get(ue.toPortablePath(C.packageLocation.slice(0,-1)));if(Z){let me=new Set([...Array.from(Z.manifest.peerDependencies.values(),be=>Y.stringifyIdent(be)),...Array.from(Z.manifest.peerDependenciesMeta.keys())]);for(let be of me)Pe.has(be)||(Pe.set(be,V.get(be)||null),he.peerNames.add(be))}}let g=mA({name:R.name.replace(dm,""),reference:R.reference}),De=n.get(g);if(De)for(let Z of De)Pe.set(`${Z.name}${dm}`,Z.reference);(C!==_||C.linkType!=="SOFT"||!ge&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(re)))&&L.dependencies.add(he);let Ce=R!==A&&C.linkType==="SOFT"&&!R.name.endsWith(dm)&&!ge;if(!ve&&!Ce){let Z=new Map;for(let[me,be]of Pe)if(be!==null){let ut=t.getLocator(me,be),H=t.getLocator(me.replace(dm,""),be),yt=t.getPackageInformation(H);if(yt===null)throw new Error("Assertion failed: Expected the package to have been registered");let Me=Uq(yt,ut,t,p);if(e.validateExternalSoftLinks&&e.project&&Me){yt.packageDependencies.size>0&&(o=!0);for(let[At,Oe]of yt.packageDependencies)if(Oe!==null){let x=Y.parseLocator(Array.isArray(Oe)?`${Oe[0]}@${Oe[1]}`:`${At}@${Oe}`);if(mA(x)!==mA(ut)){let I=Pe.get(At);if(I){let P=Y.parseLocator(Array.isArray(I)?`${I[0]}@${I[1]}`:`${At}@${I}`);Mwe(P,x)||r.push({messageName:71,text:`Cannot link ${Y.prettyIdent(e.project.configuration,Y.parseIdent(ut.name))} into ${Y.prettyLocator(e.project.configuration,Y.parseLocator(`${R.name}@${R.reference}`))} dependency ${Y.prettyLocator(e.project.configuration,x)} conflicts with parent dependency ${Y.prettyLocator(e.project.configuration,P)}`})}else{let P=Z.get(At);if(P){let y=P.target,F=Y.parseLocator(Array.isArray(y)?`${y[0]}@${y[1]}`:`${At}@${y}`);Mwe(F,x)||r.push({messageName:71,text:`Cannot link ${Y.prettyIdent(e.project.configuration,Y.parseIdent(ut.name))} into ${Y.prettyLocator(e.project.configuration,Y.parseLocator(`${R.name}@${R.reference}`))} dependency ${Y.prettyLocator(e.project.configuration,x)} conflicts with dependency ${Y.prettyLocator(e.project.configuration,F)} from sibling portal ${Y.prettyIdent(e.project.configuration,Y.parseIdent(P.portal.name))}`})}else Z.set(At,{target:x.reference,portal:ut})}}}}let Te=(de=e.hoistingLimitsByCwd)==null?void 0:de.get(re),Qe=Me?re:z.relative(p,ue.toPortablePath(yt.packageLocation))||wt.dot,_e=(ne=e.hoistingLimitsByCwd)==null?void 0:ne.get(Qe);v(me,yt,ut,he,C,Pe,Qe,Te==="dependencies"||_e==="dependencies"||_e==="workspaces")}}};return v(A.name,u,A,h,u,u.packageDependencies,wt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:o}};function Uwe(t,e,r){let o=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return ue.toPortablePath(o||t.packageLocation)}function FIt(t,e,r){let o=e.getLocator(t.name.replace(dm,""),t.reference),a=e.getPackageInformation(o);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:ue.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:Uwe(a,t,e)}}var RIt=(t,e,r)=>{let o=new Map,a=(E,w,v)=>{let{linkType:b,target:C}=FIt(E,t,r);return{locator:mA(E),nodePath:w,target:C,linkType:b,aliases:v}},n=E=>{let[w,v]=E.split("/");return v?{scope:Li(w),name:Li(v)}:{scope:null,name:Li(w)}},u=new Set,A=(E,w,v)=>{if(u.has(E))return;u.add(E);let b=Array.from(E.references).sort().join("#");for(let C of E.dependencies){let R=Array.from(C.references).sort().join("#");if(C.identName===E.identName&&R===b)continue;let L=Array.from(C.references).sort(),_={name:C.identName,reference:L[0]},{name:V,scope:re}=n(C.name),oe=re?[re,V]:[V],pe=z.join(w,Owe),he=z.join(pe,...oe),ve=`${v}/${_.name}`,ge=a(_,v,L.slice(1)),le=!1;if(ge.linkType==="SOFT"&&r.project){let g=r.project.workspacesByCwd.get(ge.target.slice(0,-1));le=!!(g&&!g.manifest.name)}let Pe=ge.linkType==="SOFT"&&he.startsWith(ge.target);if(!C.name.endsWith(dm)&&!le&&!Pe){let g=o.get(he);if(g){if(g.dirList)throw new Error(`Assertion failed: ${he} cannot merge dir node with leaf node`);{let de=Y.parseLocator(g.locator),ne=Y.parseLocator(ge.locator);if(g.linkType!==ge.linkType)throw new Error(`Assertion failed: ${he} cannot merge nodes with different link types ${g.nodePath}/${Y.stringifyLocator(de)} and ${v}/${Y.stringifyLocator(ne)}`);if(de.identHash!==ne.identHash)throw new Error(`Assertion failed: ${he} cannot merge nodes with different idents ${g.nodePath}/${Y.stringifyLocator(de)} and ${v}/s${Y.stringifyLocator(ne)}`);ge.aliases=[...ge.aliases,...g.aliases,Y.parseLocator(g.locator).reference]}}o.set(he,ge);let De=he.split("/"),Ce=De.indexOf(Owe);for(let de=De.length-1;Ce>=0&&de>Ce;de--){let ne=ue.toPortablePath(De.slice(0,de).join(z.sep)),Z=Li(De[de]),me=o.get(ne);if(!me)o.set(ne,{dirList:new Set([Z])});else if(me.dirList){if(me.dirList.has(Z))break;me.dirList.add(Z)}}}A(C,ge.linkType==="SOFT"?ge.target:he,ve)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return o.set(h,p),A(e,h,""),o};Ke();Ke();bt();bt();_c();_l();var sj={};Yt(sj,{PnpInstaller:()=>Em,PnpLinker:()=>Bh,UnplugCommand:()=>Dh,default:()=>uwt,getPnpPath:()=>vh,jsInstallUtils:()=>CA,pnpUtils:()=>VB,quotePathIfNeeded:()=>S1e});bt();var v1e=tt(si()),D1e=Ie("url");Ke();Ke();bt();bt();var _we={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function TIt(t,e,r){let o="";o+="[";for(let a=0,n=t.length;a<n;++a)o+=Ak(String(a),t[a],e,r).replace(/^ +/g,""),a+1<n&&(o+=", ");return o+="]",o}function NIt(t,e,r){let o=`${r} `,a="";a+=r,a+=`[ 571`:"")};var OB=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(OB||{}),Uwe="node_modules",mm="$wsroot$";var MB=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=LIt(t,e),u=null;if(a.length===0){let A=Owe(r,{hoistingLimits:o});u=MIt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},mA=t=>`${t.name}@${t.reference}`,qq=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(J.delimiter).length,u=a.split(J.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},_we=(t,e)=>{let r=Y.isVirtualLocator(t)?Y.devirtualizeLocator(t):t,o=Y.isVirtualLocator(e)?Y.devirtualizeLocator(e):e;return Y.areLocatorsEqual(r,o)},Hq=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=ue.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return J.contains(o,a)===null},NIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=ue.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(v,b)=>{let E=mA(v);if(p.has(E))return;p.add(E);let R=t.getPackageInformation(v);if(R){let L=b?mA(b):"";if(mA(v)!==L&&R.linkType==="SOFT"&&!Hq(R,v,t,o)){let _=Hwe(R,v,t);(!A.get(_)||v.reference.startsWith("workspace:"))&&A.set(_,v)}for(let[_,V]of R.packageDependencies)V!==null&&(R.packagePeers.has(_)||h(t.getLocator(_,V),v))}};for(let v of u)h(v,null);let C=o.split(J.sep);for(let v of A.values()){let b=t.getPackageInformation(v),R=ue.toPortablePath(b.packageLocation.slice(0,-1)).split(J.sep).slice(C.length),L=n;for(let _ of R){let V=L.children.get(_);V||(V={children:new Map},L.children.set(_,V)),L=V}L.workspaceLocator=v}let w=(v,b)=>{if(v.workspaceLocator){let E=mA(b),R=a.get(E);R||(R=new Set,a.set(E,R)),R.add(v.workspaceLocator)}for(let E of v.children.values())w(E,v.workspaceLocator||b)};for(let v of n.children.values())w(v,n.workspaceLocator);return a},LIt=(t,e)=>{let r=[],o=!1,a=new Map,n=NIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=ue.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},C=new Map,w=(b,E)=>`${mA(E)}:${b}`,v=(b,E,R,L,_,V,re,ae)=>{var de,ne;let he=w(b,R),pe=C.get(he),De=!!pe;!De&&R.name===A.name&&R.reference===A.reference&&(pe=h,C.set(he,h));let ge=Hq(E,R,t,p);if(!pe){let Z=0;ge?Z=2:E.linkType==="SOFT"&&R.name.endsWith(mm)&&(Z=1),pe={name:b,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:Z===1?new Set:E.packagePeers,dependencyKind:Z},C.set(he,pe)}let le;if(ge?le=2:_.linkType==="SOFT"?le=1:le=0,pe.hoistPriority=Math.max(pe.hoistPriority||0,le),ae&&!ge){let Z=mA({name:L.identName,reference:L.reference}),me=a.get(Z)||new Set;a.set(Z,me),me.add(pe.name)}let Pe=new Map(E.packageDependencies);if(e.project){let Z=e.project.workspacesByCwd.get(ue.toPortablePath(E.packageLocation.slice(0,-1)));if(Z){let me=new Set([...Array.from(Z.manifest.peerDependencies.values(),be=>Y.stringifyIdent(be)),...Array.from(Z.manifest.peerDependenciesMeta.keys())]);for(let be of me)Pe.has(be)||(Pe.set(be,V.get(be)||null),pe.peerNames.add(be))}}let g=mA({name:R.name.replace(mm,""),reference:R.reference}),ve=n.get(g);if(ve)for(let Z of ve)Pe.set(`${Z.name}${mm}`,Z.reference);(E!==_||E.linkType!=="SOFT"||!ge&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(re)))&&L.dependencies.add(pe);let Ee=R!==A&&E.linkType==="SOFT"&&!R.name.endsWith(mm)&&!ge;if(!De&&!Ee){let Z=new Map;for(let[me,be]of Pe)if(be!==null){let ut=t.getLocator(me,be),H=t.getLocator(me.replace(mm,""),be),yt=t.getPackageInformation(H);if(yt===null)throw new Error("Assertion failed: Expected the package to have been registered");let Me=Hq(yt,ut,t,p);if(e.validateExternalSoftLinks&&e.project&&Me){yt.packageDependencies.size>0&&(o=!0);for(let[At,Oe]of yt.packageDependencies)if(Oe!==null){let x=Y.parseLocator(Array.isArray(Oe)?`${Oe[0]}@${Oe[1]}`:`${At}@${Oe}`);if(mA(x)!==mA(ut)){let I=Pe.get(At);if(I){let P=Y.parseLocator(Array.isArray(I)?`${I[0]}@${I[1]}`:`${At}@${I}`);_we(P,x)||r.push({messageName:71,text:`Cannot link ${Y.prettyIdent(e.project.configuration,Y.parseIdent(ut.name))} into ${Y.prettyLocator(e.project.configuration,Y.parseLocator(`${R.name}@${R.reference}`))} dependency ${Y.prettyLocator(e.project.configuration,x)} conflicts with parent dependency ${Y.prettyLocator(e.project.configuration,P)}`})}else{let P=Z.get(At);if(P){let y=P.target,F=Y.parseLocator(Array.isArray(y)?`${y[0]}@${y[1]}`:`${At}@${y}`);_we(F,x)||r.push({messageName:71,text:`Cannot link ${Y.prettyIdent(e.project.configuration,Y.parseIdent(ut.name))} into ${Y.prettyLocator(e.project.configuration,Y.parseLocator(`${R.name}@${R.reference}`))} dependency ${Y.prettyLocator(e.project.configuration,x)} conflicts with dependency ${Y.prettyLocator(e.project.configuration,F)} from sibling portal ${Y.prettyIdent(e.project.configuration,Y.parseIdent(P.portal.name))}`})}else Z.set(At,{target:x.reference,portal:ut})}}}}let Te=(de=e.hoistingLimitsByCwd)==null?void 0:de.get(re),Qe=Me?re:J.relative(p,ue.toPortablePath(yt.packageLocation))||wt.dot,_e=(ne=e.hoistingLimitsByCwd)==null?void 0:ne.get(Qe);v(me,yt,ut,pe,E,Pe,Qe,Te==="dependencies"||_e==="dependencies"||_e==="workspaces")}}};return v(A.name,u,A,h,u,u.packageDependencies,wt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:o}};function Hwe(t,e,r){let o=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return ue.toPortablePath(o||t.packageLocation)}function OIt(t,e,r){let o=e.getLocator(t.name.replace(mm,""),t.reference),a=e.getPackageInformation(o);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:ue.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:Hwe(a,t,e)}}var MIt=(t,e,r)=>{let o=new Map,a=(C,w,v)=>{let{linkType:b,target:E}=OIt(C,t,r);return{locator:mA(C),nodePath:w,target:E,linkType:b,aliases:v}},n=C=>{let[w,v]=C.split("/");return v?{scope:Li(w),name:Li(v)}:{scope:null,name:Li(w)}},u=new Set,A=(C,w,v)=>{if(u.has(C))return;u.add(C);let b=Array.from(C.references).sort().join("#");for(let E of C.dependencies){let R=Array.from(E.references).sort().join("#");if(E.identName===C.identName&&R===b)continue;let L=Array.from(E.references).sort(),_={name:E.identName,reference:L[0]},{name:V,scope:re}=n(E.name),ae=re?[re,V]:[V],he=J.join(w,Uwe),pe=J.join(he,...ae),De=`${v}/${_.name}`,ge=a(_,v,L.slice(1)),le=!1;if(ge.linkType==="SOFT"&&r.project){let g=r.project.workspacesByCwd.get(ge.target.slice(0,-1));le=!!(g&&!g.manifest.name)}let Pe=ge.linkType==="SOFT"&&pe.startsWith(ge.target);if(!E.name.endsWith(mm)&&!le&&!Pe){let g=o.get(pe);if(g){if(g.dirList)throw new Error(`Assertion failed: ${pe} cannot merge dir node with leaf node`);{let de=Y.parseLocator(g.locator),ne=Y.parseLocator(ge.locator);if(g.linkType!==ge.linkType)throw new Error(`Assertion failed: ${pe} cannot merge nodes with different link types ${g.nodePath}/${Y.stringifyLocator(de)} and ${v}/${Y.stringifyLocator(ne)}`);if(de.identHash!==ne.identHash)throw new Error(`Assertion failed: ${pe} cannot merge nodes with different idents ${g.nodePath}/${Y.stringifyLocator(de)} and ${v}/s${Y.stringifyLocator(ne)}`);ge.aliases=[...ge.aliases,...g.aliases,Y.parseLocator(g.locator).reference]}}o.set(pe,ge);let ve=pe.split("/"),Ee=ve.indexOf(Uwe);for(let de=ve.length-1;Ee>=0&&de>Ee;de--){let ne=ue.toPortablePath(ve.slice(0,de).join(J.sep)),Z=Li(ve[de]),me=o.get(ne);if(!me)o.set(ne,{dirList:new Set([Z])});else if(me.dirList){if(me.dirList.has(Z))break;me.dirList.add(Z)}}}A(E,ge.linkType==="SOFT"?ge.target:pe,De)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return o.set(h,p),A(e,h,""),o};Ke();Ke();St();St();Hc();Hl();var aj={};Yt(aj,{PnpInstaller:()=>Cm,PnpLinker:()=>vh,UnplugCommand:()=>Sh,default:()=>gwt,getPnpPath:()=>Dh,jsInstallUtils:()=>CA,pnpUtils:()=>zB,quotePathIfNeeded:()=>x1e});St();var S1e=tt(si()),P1e=Ie("url");Ke();Ke();St();St();var qwe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function UIt(t,e,r){let o="";o+="[";for(let a=0,n=t.length;a<n;++a)o+=hk(String(a),t[a],e,r).replace(/^ +/g,""),a+1<n&&(o+=", ");return o+="]",o}function _It(t,e,r){let o=`${r} `,a="";a+=r,a+=`[
572`;for(let n=0,u=t.length;n<u;++n)a+=o+Ak(String(n),t[n],e,o).replace(/^ +/,""),n+1<u&&(a+=","),a+=` 572`;for(let n=0,u=t.length;n<u;++n)a+=o+hk(String(n),t[n],e,o).replace(/^ +/,""),n+1<u&&(a+=","),a+=`
573`;return a+=r,a+="]",a}function LIt(t,e,r){let o=Object.keys(t),a="";a+="{";for(let n=0,u=o.length,A=0;n<u;++n){let p=o[n],h=t[p];typeof h>"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=Ak(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function OIt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ 573`;return a+=r,a+="]",a}function HIt(t,e,r){let o=Object.keys(t),a="";a+="{";for(let n=0,u=o.length,A=0;n<u;++n){let p=o[n],h=t[p];typeof h>"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=hk(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function qIt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{
574`;let u=0;for(let A=0,p=o.length;A<p;++A){let h=o[A],E=t[h];typeof E>"u"||(u!==0&&(n+=",",n+=` 574`;let u=0;for(let A=0,p=o.length;A<p;++A){let h=o[A],C=t[h];typeof C>"u"||(u!==0&&(n+=",",n+=`
575`),n+=a,n+=JSON.stringify(h),n+=": ",n+=Ak(h,E,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=` 575`),n+=a,n+=JSON.stringify(h),n+=": ",n+=hk(h,C,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=`
576`),n+=r,n+="}",n}function Ak(t,e,r,o){let{next:a}=_we[r],n=a[t]||a["*"];return Hwe(e,n,o)}function Hwe(t,e,r){let{collapsed:o}=_we[e];return Array.isArray(t)?o?TIt(t,e,r):NIt(t,e,r):typeof t=="object"&&t!==null?o?LIt(t,e,r):OIt(t,e,r):JSON.stringify(t)}function qwe(t){return Hwe(t,"TOP_LEVEL","")}function OB(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]<A[u]?-1:A[n]>A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function MIt(t){let e=new Map,r=OB(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function UIt(t){return OB(t.fallbackPool||[],([e])=>e)}function _It(t){let e=[];for(let[r,o]of OB(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:E}]of OB(o,([w])=>w===null?"0":`1${w}`)){let w=[];r!==null&&n!==null&&!A.has(r)&&w.push([r,n]);for(let[C,R]of OB(A.entries(),([L])=>L))w.push([C,R]);let v=p&&p.size>0?Array.from(p):void 0,b=E||void 0;a.push([n,{packageLocation:u,packageDependencies:w,packagePeers:v,linkType:h,discardFromLookup:b}])}}return e}function MB(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:MIt(t),fallbackPool:UIt(t),packageRegistryData:_It(t)}}var Wwe=tt(Gwe());function Ywe(t,e){return[t?`${t} 576`),n+=r,n+="}",n}function hk(t,e,r,o){let{next:a}=qwe[r],n=a[t]||a["*"];return jwe(e,n,o)}function jwe(t,e,r){let{collapsed:o}=qwe[e];return Array.isArray(t)?o?UIt(t,e,r):_It(t,e,r):typeof t=="object"&&t!==null?o?HIt(t,e,r):qIt(t,e,r):JSON.stringify(t)}function Gwe(t){return jwe(t,"TOP_LEVEL","")}function UB(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]<A[u]?-1:A[n]>A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function jIt(t){let e=new Map,r=UB(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function GIt(t){return UB(t.fallbackPool||[],([e])=>e)}function WIt(t){let e=[];for(let[r,o]of UB(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:C}]of UB(o,([w])=>w===null?"0":`1${w}`)){let w=[];r!==null&&n!==null&&!A.has(r)&&w.push([r,n]);for(let[E,R]of UB(A.entries(),([L])=>L))w.push([E,R]);let v=p&&p.size>0?Array.from(p):void 0,b=C||void 0;a.push([n,{packageLocation:u,packageDependencies:w,packagePeers:v,linkType:h,discardFromLookup:b}])}}return e}function _B(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:jIt(t),fallbackPool:GIt(t),packageRegistryData:WIt(t)}}var Kwe=tt(Ywe());function Vwe(t,e){return[t?`${t}
577`:"",`/* eslint-disable */ 577`:"",`/* eslint-disable */
578`,`"use strict"; 578`,`"use strict";
579`,` 579`,`
580`,e,` 580`,e,`
581`,(0,Wwe.default)()].join("")}function HIt(t){return JSON.stringify(t,null,2)}function qIt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ 581`,(0,Kwe.default)()].join("")}function YIt(t){return JSON.stringify(t,null,2)}function KIt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\
582`)}'`}function jIt(t){return[`const RAW_RUNTIME_STATE = 582`)}'`}function VIt(t){return[`const RAW_RUNTIME_STATE =
583`,`${qIt(qwe(t))}; 583`,`${KIt(Gwe(t))};
584 584
585`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { 585`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
586`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); 586`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname});
587`,`} 587`,`}
588`].join("")}function GIt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { 588`].join("")}function JIt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
589`,` return hydrateRuntimeState(require(${JSON.stringify(`./${Lr.pnpData}`)}), {basePath: basePath || __dirname}); 589`,` return hydrateRuntimeState(require(${JSON.stringify(`./${Lr.pnpData}`)}), {basePath: basePath || __dirname});
590`,`} 590`,`}
591`].join("")}function Kwe(t){let e=MB(t),r=jIt(e);return Ywe(t.shebang,r)}function Vwe(t){let e=MB(t),r=GIt(),o=Ywe(t.shebang,r);return{dataFile:HIt(e),loaderFile:o}}bt();function qq(t,{basePath:e}){let r=ue.toPortablePath(e),o=z.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([w,v])=>[w,new Map(v.map(([b,C])=>{if(w===null!=(b===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=C.discardFromLookup??!1,L={name:w,reference:b},_=n.get(C.packageLocation);_?(_.discardFromLookup=_.discardFromLookup&&R,R||(_.locator=L)):n.set(C.packageLocation,{locator:L,discardFromLookup:R});let V=null;return[b,{packageDependencies:new Map(C.packageDependencies),packagePeers:new Set(C.packagePeers),linkType:C.linkType,discardFromLookup:R,get packageLocation(){return V||(V=z.join(o,C.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([w,v])=>[w,new Set(v)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}bt();bt();var YB=Ie("module"),Cm=Ie("url"),Zq=Ie("util");var No=Ie("url");var Zwe=tt(Ie("assert"));var jq=Array.isArray,UB=JSON.stringify,_B=Object.getOwnPropertyNames,mm=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Gq=(t,e)=>RegExp.prototype.exec.call(t,e),Wq=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),Ih=(t,...e)=>String.prototype.endsWith.apply(t,e),Yq=(t,...e)=>String.prototype.includes.apply(t,e),Kq=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),HB=(t,...e)=>String.prototype.indexOf.apply(t,e),Jwe=(t,...e)=>String.prototype.replace.apply(t,e),wh=(t,...e)=>String.prototype.slice.apply(t,e),yA=(t,...e)=>String.prototype.startsWith.apply(t,e),zwe=Map,Xwe=JSON.parse;function qB(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var $we=qB("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),Vq=qB("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),e1e=qB("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!yA(r,"./");return e==="."?((0,Zwe.default)(o===!1),`Invalid "exports" main target ${UB(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${UB(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),jB=qB("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),t1e=qB("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var pk=Ie("url");function r1e(t,e){let r=Object.create(null);for(let o=0;o<e.length;o++){let a=e[o];mm(t,a)&&(r[a]=t[a])}return r}var fk=new zwe;function WIt(t,e,r,o){let a=fk.get(t);if(a!==void 0)return a;let n=o(t);if(n===void 0){let b={pjsonPath:t,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return fk.set(t,b),b}let u;try{u=Xwe(n)}catch(b){throw new jB(t,(r?`"${e}" from `:"")+(0,pk.fileURLToPath)(r||e),b.message)}let{imports:A,main:p,name:h,type:E}=r1e(u,["imports","main","name","type"]),w=mm(u,"exports")?u.exports:void 0;(typeof A!="object"||A===null)&&(A=void 0),typeof p!="string"&&(p=void 0),typeof h!="string"&&(h=void 0),E!=="module"&&E!=="commonjs"&&(E="none");let v={pjsonPath:t,exists:!0,main:p,name:h,type:E,exports:w,imports:A};return fk.set(t,v),v}function n1e(t,e){let r=new URL("./package.json",t);for(;;){let n=r.pathname;if(Ih(n,"node_modules/package.json"))break;let u=WIt((0,pk.fileURLToPath)(r),t,void 0,e);if(u.exists)return u;let A=r;if(r=new URL("../package.json",r),r.pathname===A.pathname)break}let o=(0,pk.fileURLToPath)(r),a={pjsonPath:o,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return fk.set(o,a),a}function YIt(t,e,r){throw new $we(t,e&&(0,No.fileURLToPath)(new URL(".",e)),(0,No.fileURLToPath)(r))}function KIt(t,e,r,o){let a=`request is not a valid subpath for the "${r?"imports":"exports"}" resolution of ${(0,No.fileURLToPath)(e)}`;throw new Vq(t,a,o&&(0,No.fileURLToPath)(o))}function GB(t,e,r,o,a){throw typeof e=="object"&&e!==null?e=UB(e,null,""):e=`${e}`,new e1e((0,No.fileURLToPath)(new URL(".",r)),t,e,o,a&&(0,No.fileURLToPath)(a))}var i1e=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,s1e=/\*/g;function VIt(t,e,r,o,a,n,u,A){if(e!==""&&!n&&t[t.length-1]!=="/"&&GB(r,t,o,u,a),!yA(t,"./")){if(u&&!yA(t,"../")&&!yA(t,"/")){let w=!1;try{new URL(t),w=!0}catch{}if(!w)return n?Wq(s1e,t,()=>e):t+e}GB(r,t,o,u,a)}Gq(i1e,wh(t,2))!==null&&GB(r,t,o,u,a);let p=new URL(t,o),h=p.pathname,E=new URL(".",o).pathname;if(yA(h,E)||GB(r,t,o,u,a),e==="")return p;if(Gq(i1e,e)!==null){let w=n?Jwe(r,"*",()=>e):r+e;KIt(w,o,u,a)}return n?new URL(Wq(s1e,p.href,()=>e)):new URL(e,p)}function JIt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function ME(t,e,r,o,a,n,u,A){if(typeof e=="string")return VIt(e,r,o,t,a,n,u,A);if(jq(e)){if(e.length===0)return null;let p;for(let h=0;h<e.length;h++){let E=e[h],w;try{w=ME(t,E,r,o,a,n,u,A)}catch(v){if(p=v,v.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw v}if(w!==void 0){if(w===null){p=null;continue}return w}}if(p==null)return p;throw p}else if(typeof e=="object"&&e!==null){let p=_B(e);for(let h=0;h<p.length;h++){let E=p[h];if(JIt(E))throw new jB((0,No.fileURLToPath)(t),a,'"exports" cannot contain numeric property keys.')}for(let h=0;h<p.length;h++){let E=p[h];if(E==="default"||A.has(E)){let w=e[E],v=ME(t,w,r,o,a,n,u,A);if(v===void 0)continue;return v}}return}else if(e===null)return null;GB(o,e,t,u,a)}function a1e(t,e){let r=HB(t,"*"),o=HB(e,"*"),a=r===-1?t.length:r+1,n=o===-1?e.length:o+1;return a>n?-1:n>a||r===-1?1:o===-1||t.length>e.length?-1:e.length>t.length?1:0}function zIt(t,e,r){if(typeof t=="string"||jq(t))return!0;if(typeof t!="object"||t===null)return!1;let o=_B(t),a=!1,n=0;for(let u=0;u<o.length;u++){let A=o[u],p=A===""||A[0]!==".";if(n++===0)a=p;else if(a!==p)throw new jB((0,No.fileURLToPath)(e),r,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return a}function Jq(t,e,r){throw new t1e((0,No.fileURLToPath)(new URL(".",e)),t,r&&(0,No.fileURLToPath)(r))}var o1e=new Set;function XIt(t,e,r){let o=(0,No.fileURLToPath)(e);o1e.has(o+"|"+t)||(o1e.add(o+"|"+t),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${t}" in the "exports" field module resolution of the package at ${o}${r?` imported from ${(0,No.fileURLToPath)(r)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function l1e({packageJSONUrl:t,packageSubpath:e,exports:r,base:o,conditions:a}){if(zIt(r,t,o)&&(r={".":r}),mm(r,e)&&!Yq(e,"*")&&!Ih(e,"/")){let p=r[e],h=ME(t,p,"",e,o,!1,!1,a);return h==null&&Jq(e,t,o),h}let n="",u,A=_B(r);for(let p=0;p<A.length;p++){let h=A[p],E=HB(h,"*");if(E!==-1&&yA(e,wh(h,0,E))){Ih(e,"/")&&XIt(e,t,o);let w=wh(h,E+1);e.length>=h.length&&Ih(e,w)&&a1e(n,h)===1&&Kq(h,"*")===E&&(n=h,u=wh(e,E,e.length-w.length))}}if(n){let p=r[n],h=ME(t,p,u,n,o,!0,!1,a);return h==null&&Jq(e,t,o),h}Jq(e,t,o)}function c1e({name:t,base:e,conditions:r,readFileSyncFn:o}){if(t==="#"||yA(t,"#/")||Ih(t,"/")){let u="is not a valid internal imports specifier name";throw new Vq(t,u,(0,No.fileURLToPath)(e))}let a,n=n1e(e,o);if(n.exists){a=(0,No.pathToFileURL)(n.pjsonPath);let u=n.imports;if(u)if(mm(u,t)&&!Yq(t,"*")){let A=ME(a,u[t],"",t,e,!1,!0,r);if(A!=null)return A}else{let A="",p,h=_B(u);for(let E=0;E<h.length;E++){let w=h[E],v=HB(w,"*");if(v!==-1&&yA(t,wh(w,0,v))){let b=wh(w,v+1);t.length>=w.length&&Ih(t,b)&&a1e(A,w)===1&&Kq(w,"*")===v&&(A=w,p=wh(t,v,t.length-b.length))}}if(A){let E=u[A],w=ME(a,E,p,A,e,!0,!0,r);if(w!=null)return w}}}YIt(t,a,e)}bt();var ZIt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function Xi(t,e,r={},o){o??(o=ZIt.has(t)?"MODULE_NOT_FOUND":t);let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:o},pnpCode:{...a,value:t},data:{...a,value:r}})}function Au(t){return ue.normalize(ue.fromPortablePath(t))}var p1e=tt(A1e());function h1e(t){return $It(),Xq[t]}var Xq;function $It(){Xq||(Xq={"--conditions":[],...f1e(ewt()),...f1e(process.execArgv)})}function f1e(t){return(0,p1e.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function ewt(){let t=[],e=twt(process.env.NODE_OPTIONS||"",t);return t.length,e}function twt(t,e){let r=[],o=!1,a=!0;for(let n=0;n<t.length;++n){let u=t[n];if(u==="\\"&&o){if(n+1===t.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape) 591`].join("")}function Jwe(t){let e=_B(t),r=VIt(e);return Vwe(t.shebang,r)}function zwe(t){let e=_B(t),r=JIt(),o=Vwe(t.shebang,r);return{dataFile:YIt(e),loaderFile:o}}St();function Gq(t,{basePath:e}){let r=ue.toPortablePath(e),o=J.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([w,v])=>[w,new Map(v.map(([b,E])=>{if(w===null!=(b===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=E.discardFromLookup??!1,L={name:w,reference:b},_=n.get(E.packageLocation);_?(_.discardFromLookup=_.discardFromLookup&&R,R||(_.locator=L)):n.set(E.packageLocation,{locator:L,discardFromLookup:R});let V=null;return[b,{packageDependencies:new Map(E.packageDependencies),packagePeers:new Set(E.packagePeers),linkType:E.linkType,discardFromLookup:R,get packageLocation(){return V||(V=J.join(o,E.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([w,v])=>[w,new Set(v)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,C=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:C,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}St();St();var VB=Ie("module"),Em=Ie("url"),ej=Ie("util");var No=Ie("url");var e1e=tt(Ie("assert"));var Wq=Array.isArray,HB=JSON.stringify,qB=Object.getOwnPropertyNames,ym=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Yq=(t,e)=>RegExp.prototype.exec.call(t,e),Kq=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),wh=(t,...e)=>String.prototype.endsWith.apply(t,e),Vq=(t,...e)=>String.prototype.includes.apply(t,e),Jq=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),jB=(t,...e)=>String.prototype.indexOf.apply(t,e),Xwe=(t,...e)=>String.prototype.replace.apply(t,e),Bh=(t,...e)=>String.prototype.slice.apply(t,e),yA=(t,...e)=>String.prototype.startsWith.apply(t,e),Zwe=Map,$we=JSON.parse;function GB(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var t1e=GB("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),zq=GB("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),r1e=GB("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!yA(r,"./");return e==="."?((0,e1e.default)(o===!1),`Invalid "exports" main target ${HB(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${HB(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),WB=GB("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),n1e=GB("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var dk=Ie("url");function i1e(t,e){let r=Object.create(null);for(let o=0;o<e.length;o++){let a=e[o];ym(t,a)&&(r[a]=t[a])}return r}var gk=new Zwe;function zIt(t,e,r,o){let a=gk.get(t);if(a!==void 0)return a;let n=o(t);if(n===void 0){let b={pjsonPath:t,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return gk.set(t,b),b}let u;try{u=$we(n)}catch(b){throw new WB(t,(r?`"${e}" from `:"")+(0,dk.fileURLToPath)(r||e),b.message)}let{imports:A,main:p,name:h,type:C}=i1e(u,["imports","main","name","type"]),w=ym(u,"exports")?u.exports:void 0;(typeof A!="object"||A===null)&&(A=void 0),typeof p!="string"&&(p=void 0),typeof h!="string"&&(h=void 0),C!=="module"&&C!=="commonjs"&&(C="none");let v={pjsonPath:t,exists:!0,main:p,name:h,type:C,exports:w,imports:A};return gk.set(t,v),v}function s1e(t,e){let r=new URL("./package.json",t);for(;;){let n=r.pathname;if(wh(n,"node_modules/package.json"))break;let u=zIt((0,dk.fileURLToPath)(r),t,void 0,e);if(u.exists)return u;let A=r;if(r=new URL("../package.json",r),r.pathname===A.pathname)break}let o=(0,dk.fileURLToPath)(r),a={pjsonPath:o,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return gk.set(o,a),a}function XIt(t,e,r){throw new t1e(t,e&&(0,No.fileURLToPath)(new URL(".",e)),(0,No.fileURLToPath)(r))}function ZIt(t,e,r,o){let a=`request is not a valid subpath for the "${r?"imports":"exports"}" resolution of ${(0,No.fileURLToPath)(e)}`;throw new zq(t,a,o&&(0,No.fileURLToPath)(o))}function YB(t,e,r,o,a){throw typeof e=="object"&&e!==null?e=HB(e,null,""):e=`${e}`,new r1e((0,No.fileURLToPath)(new URL(".",r)),t,e,o,a&&(0,No.fileURLToPath)(a))}var o1e=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,a1e=/\*/g;function $It(t,e,r,o,a,n,u,A){if(e!==""&&!n&&t[t.length-1]!=="/"&&YB(r,t,o,u,a),!yA(t,"./")){if(u&&!yA(t,"../")&&!yA(t,"/")){let w=!1;try{new URL(t),w=!0}catch{}if(!w)return n?Kq(a1e,t,()=>e):t+e}YB(r,t,o,u,a)}Yq(o1e,Bh(t,2))!==null&&YB(r,t,o,u,a);let p=new URL(t,o),h=p.pathname,C=new URL(".",o).pathname;if(yA(h,C)||YB(r,t,o,u,a),e==="")return p;if(Yq(o1e,e)!==null){let w=n?Xwe(r,"*",()=>e):r+e;ZIt(w,o,u,a)}return n?new URL(Kq(a1e,p.href,()=>e)):new URL(e,p)}function ewt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function MC(t,e,r,o,a,n,u,A){if(typeof e=="string")return $It(e,r,o,t,a,n,u,A);if(Wq(e)){if(e.length===0)return null;let p;for(let h=0;h<e.length;h++){let C=e[h],w;try{w=MC(t,C,r,o,a,n,u,A)}catch(v){if(p=v,v.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw v}if(w!==void 0){if(w===null){p=null;continue}return w}}if(p==null)return p;throw p}else if(typeof e=="object"&&e!==null){let p=qB(e);for(let h=0;h<p.length;h++){let C=p[h];if(ewt(C))throw new WB((0,No.fileURLToPath)(t),a,'"exports" cannot contain numeric property keys.')}for(let h=0;h<p.length;h++){let C=p[h];if(C==="default"||A.has(C)){let w=e[C],v=MC(t,w,r,o,a,n,u,A);if(v===void 0)continue;return v}}return}else if(e===null)return null;YB(o,e,t,u,a)}function c1e(t,e){let r=jB(t,"*"),o=jB(e,"*"),a=r===-1?t.length:r+1,n=o===-1?e.length:o+1;return a>n?-1:n>a||r===-1?1:o===-1||t.length>e.length?-1:e.length>t.length?1:0}function twt(t,e,r){if(typeof t=="string"||Wq(t))return!0;if(typeof t!="object"||t===null)return!1;let o=qB(t),a=!1,n=0;for(let u=0;u<o.length;u++){let A=o[u],p=A===""||A[0]!==".";if(n++===0)a=p;else if(a!==p)throw new WB((0,No.fileURLToPath)(e),r,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return a}function Xq(t,e,r){throw new n1e((0,No.fileURLToPath)(new URL(".",e)),t,r&&(0,No.fileURLToPath)(r))}var l1e=new Set;function rwt(t,e,r){let o=(0,No.fileURLToPath)(e);l1e.has(o+"|"+t)||(l1e.add(o+"|"+t),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${t}" in the "exports" field module resolution of the package at ${o}${r?` imported from ${(0,No.fileURLToPath)(r)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function u1e({packageJSONUrl:t,packageSubpath:e,exports:r,base:o,conditions:a}){if(twt(r,t,o)&&(r={".":r}),ym(r,e)&&!Vq(e,"*")&&!wh(e,"/")){let p=r[e],h=MC(t,p,"",e,o,!1,!1,a);return h==null&&Xq(e,t,o),h}let n="",u,A=qB(r);for(let p=0;p<A.length;p++){let h=A[p],C=jB(h,"*");if(C!==-1&&yA(e,Bh(h,0,C))){wh(e,"/")&&rwt(e,t,o);let w=Bh(h,C+1);e.length>=h.length&&wh(e,w)&&c1e(n,h)===1&&Jq(h,"*")===C&&(n=h,u=Bh(e,C,e.length-w.length))}}if(n){let p=r[n],h=MC(t,p,u,n,o,!0,!1,a);return h==null&&Xq(e,t,o),h}Xq(e,t,o)}function A1e({name:t,base:e,conditions:r,readFileSyncFn:o}){if(t==="#"||yA(t,"#/")||wh(t,"/")){let u="is not a valid internal imports specifier name";throw new zq(t,u,(0,No.fileURLToPath)(e))}let a,n=s1e(e,o);if(n.exists){a=(0,No.pathToFileURL)(n.pjsonPath);let u=n.imports;if(u)if(ym(u,t)&&!Vq(t,"*")){let A=MC(a,u[t],"",t,e,!1,!0,r);if(A!=null)return A}else{let A="",p,h=qB(u);for(let C=0;C<h.length;C++){let w=h[C],v=jB(w,"*");if(v!==-1&&yA(t,Bh(w,0,v))){let b=Bh(w,v+1);t.length>=w.length&&wh(t,b)&&c1e(A,w)===1&&Jq(w,"*")===v&&(A=w,p=Bh(t,v,t.length-b.length))}}if(A){let C=u[A],w=MC(a,C,p,A,e,!0,!0,r);if(w!=null)return w}}}XIt(t,a,e)}St();var nwt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function Xi(t,e,r={},o){o??(o=nwt.has(t)?"MODULE_NOT_FOUND":t);let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:o},pnpCode:{...a,value:t},data:{...a,value:r}})}function fu(t){return ue.normalize(ue.fromPortablePath(t))}var g1e=tt(p1e());function d1e(t){return iwt(),$q[t]}var $q;function iwt(){$q||($q={"--conditions":[],...h1e(swt()),...h1e(process.execArgv)})}function h1e(t){return(0,g1e.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function swt(){let t=[],e=owt(process.env.NODE_OPTIONS||"",t);return t.length,e}function owt(t,e){let r=[],o=!1,a=!0;for(let n=0;n<t.length;++n){let u=t[n];if(u==="\\"&&o){if(n+1===t.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape)
592`),r;u=t[++n]}else if(u===" "&&!o){a=!0;continue}else if(u==='"'){o=!o;continue}a?(r.push(u),a=!1):r[r.length-1]+=u}return o&&e.push(`invalid value for NODE_OPTIONS (unterminated string) 592`),r;u=t[++n]}else if(u===" "&&!o){a=!0;continue}else if(u==='"'){o=!o;continue}a?(r.push(u),a=!1):r[r.length-1]+=u}return o&&e.push(`invalid value for NODE_OPTIONS (unterminated string)
593`),r}bt();var d1e=Ie("module");var[fu,ym]=process.versions.node.split(".").map(t=>parseInt(t,10)),DJt=fu>16||fu===16&&ym>=12,SJt=fu>17||fu===17&&ym>=5||fu===16&&ym>=15,PJt=fu>17||fu===17&&ym>=1||fu===16&&ym>14,g1e=fu>19||fu===19&&ym>=2||fu===18&&ym>=13;var rwt=new Set(d1e.Module.builtinModules||Object.keys(process.binding("natives"))),hk=t=>t.startsWith("node:")||rwt.has(t);function m1e(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>ue.fromPortablePath(pi.resolveVirtual(ue.toPortablePath(e)))),g1e)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function $q(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Me of["react-scripts","gatsby"]){let Te=t.packageRegistry.get(Me);if(Te)for(let Qe of Te.keys()){if(Qe===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Me,reference:Qe})}}let{ignorePattern:w,packageRegistry:v,packageLocatorsByLocations:b}=t;function C(Me,Te){return{fn:Me,args:Te,error:null,result:null}}function R(Me){var At,Oe,x,I;let Te=((Oe=(At=process.stderr)==null?void 0:At.hasColors)==null?void 0:Oe.call(At))??process.stdout.isTTY,Qe=(P,y)=>`\x1B[${P}m${y}\x1B[0m`,_e=Me.error;console.error(_e?Qe("31;1",`\u2716 ${(x=Me.error)==null?void 0:x.message.replace(/\n.*/s,"")}`):Qe("33;1","\u203C Resolution")),Me.args.length>0&&console.error();for(let P of Me.args)console.error(` ${Qe("37;1","In \u2190")} ${(0,Zq.inspect)(P,{colors:Te,compact:!0})}`);Me.result&&(console.error(),console.error(` ${Qe("37;1","Out \u2192")} ${(0,Zq.inspect)(Me.result,{colors:Te,compact:!0})}`));let qe=((I=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:I.slice(2))??[];if(qe.length>0){console.error();for(let P of qe)console.error(` ${Qe("38;5;244",P)}`)}console.error()}function L(Me,Te){if(e.allowDebug===!1)return Te;if(Number.isFinite(o)){if(o>=2)return(...Qe)=>{let _e=C(Me,Qe);try{return _e.result=Te(...Qe)}catch(qe){throw _e.error=qe}finally{R(_e)}};if(o>=1)return(...Qe)=>{try{return Te(...Qe)}catch(_e){let qe=C(Me,Qe);throw qe.error=_e,R(qe),_e}}}return Te}function _(Me){let Te=g(Me);if(!Te)throw Xi("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Te}function V(Me){if(Me.name===null)return!0;for(let Te of t.dependencyTreeRoots)if(Te.name===Me.name&&Te.reference===Me.reference)return!0;return!1}let re=new Set(["node","require",...h1e("--conditions")]);function oe(Me,Te=re,Qe){let _e=de(z.join(Me,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(_e===null)throw Xi("INTERNAL",`The locator that owns the "${Me}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:qe}=_(_e),At=z.join(qe,Lr.manifest);if(!e.fakeFs.existsSync(At))return null;let Oe=JSON.parse(e.fakeFs.readFileSync(At,"utf8"));if(Oe.exports==null)return null;let x=z.contains(qe,Me);if(x===null)throw Xi("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");x!=="."&&!A.test(x)&&(x=`./${x}`);try{let I=l1e({packageJSONUrl:(0,Cm.pathToFileURL)(ue.fromPortablePath(At)),packageSubpath:x,exports:Oe.exports,base:Qe?(0,Cm.pathToFileURL)(ue.fromPortablePath(Qe)):null,conditions:Te});return ue.toPortablePath((0,Cm.fileURLToPath)(I))}catch(I){throw Xi("EXPORTS_RESOLUTION_FAILED",I.message,{unqualifiedPath:Au(Me),locator:_e,pkgJson:Oe,subpath:Au(x),conditions:Te},I.code)}}function pe(Me,Te,{extensions:Qe}){let _e;try{Te.push(Me),_e=e.fakeFs.statSync(Me)}catch{}if(_e&&!_e.isDirectory())return e.fakeFs.realpathSync(Me);if(_e&&_e.isDirectory()){let qe;try{qe=JSON.parse(e.fakeFs.readFileSync(z.join(Me,Lr.manifest),"utf8"))}catch{}let At;if(qe&&qe.main&&(At=z.resolve(Me,qe.main)),At&&At!==Me){let Oe=pe(At,Te,{extensions:Qe});if(Oe!==null)return Oe}}for(let qe=0,At=Qe.length;qe<At;qe++){let Oe=`${Me}${Qe[qe]}`;if(Te.push(Oe),e.fakeFs.existsSync(Oe))return Oe}if(_e&&_e.isDirectory())for(let qe=0,At=Qe.length;qe<At;qe++){let Oe=z.format({dir:Me,name:"index",ext:Qe[qe]});if(Te.push(Oe),e.fakeFs.existsSync(Oe))return Oe}return null}function he(Me){let Te=new YB.Module(Me,null);return Te.filename=Me,Te.paths=YB.Module._nodeModulePaths(Me),Te}function ve(Me,Te){return Te.endsWith("/")&&(Te=z.join(Te,"internal.js")),YB.Module._resolveFilename(ue.fromPortablePath(Me),he(ue.fromPortablePath(Te)),!1,{plugnplay:!1})}function ge(Me){if(w===null)return!1;let Te=z.contains(t.basePath,Me);return Te===null?!1:!!w.test(Te.replace(/\/$/,""))}let le={std:3,resolveVirtual:1,getAllLocators:1},Pe=p;function g({name:Me,reference:Te}){let Qe=v.get(Me);if(!Qe)return null;let _e=Qe.get(Te);return _e||null}function De({name:Me,reference:Te}){let Qe=[];for(let[_e,qe]of v)if(_e!==null)for(let[At,Oe]of qe)At===null||Oe.packageDependencies.get(Me)!==Te||_e===Me&&At===Te||Qe.push({name:_e,reference:At});return Qe}function Ce(Me,Te){let Qe=new Map,_e=new Set,qe=Oe=>{let x=JSON.stringify(Oe.name);if(_e.has(x))return;_e.add(x);let I=De(Oe);for(let P of I)if(_(P).packagePeers.has(Me))qe(P);else{let F=Qe.get(P.name);typeof F>"u"&&Qe.set(P.name,F=new Set),F.add(P.reference)}};qe(Te);let At=[];for(let Oe of[...Qe.keys()].sort())for(let x of[...Qe.get(Oe)].sort())At.push({name:Oe,reference:x});return At}function de(Me,{resolveIgnored:Te=!1,includeDiscardFromLookup:Qe=!1}={}){if(ge(Me)&&!Te)return null;let _e=z.relative(t.basePath,Me);_e.match(n)||(_e=`./${_e}`),_e.endsWith("/")||(_e=`${_e}/`);do{let qe=b.get(_e);if(typeof qe>"u"||qe.discardFromLookup&&!Qe){_e=_e.substring(0,_e.lastIndexOf("/",_e.length-2)+1);continue}return qe.locator}while(_e!=="");return null}function ne(Me){try{return e.fakeFs.readFileSync(ue.toPortablePath(Me),"utf8")}catch(Te){if(Te.code==="ENOENT")return;throw Te}}function Z(Me,Te,{considerBuiltins:Qe=!0}={}){if(Me.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Me==="pnpapi")return ue.toPortablePath(e.pnpapiResolution);if(Qe&&hk(Me))return null;let _e=Au(Me),qe=Te&&Au(Te);if(Te&&ge(Te)&&(!z.isAbsolute(Me)||de(Me)===null)){let x=ve(Me,Te);if(x===!1)throw Xi("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) 593`),r}St();var y1e=Ie("module");var[Lo,EA]=process.versions.node.split(".").map(t=>parseInt(t,10)),FJt=Lo>16||Lo===16&&EA>=12,RJt=Lo>17||Lo===17&&EA>=5||Lo===16&&EA>=15,TJt=Lo>17||Lo===17&&EA>=1||Lo===16&&EA>14,m1e=Lo>19||Lo===19&&EA>=2||Lo===18&&EA>=13,NJt=Lo>19||Lo===19&&EA>=3,LJt=Lo>18||Lo===18&&EA>=1||Lo===16&&EA>=17;var awt=new Set(y1e.Module.builtinModules||Object.keys(process.binding("natives"))),mk=t=>t.startsWith("node:")||awt.has(t);function E1e(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>ue.fromPortablePath(pi.resolveVirtual(ue.toPortablePath(e)))),m1e)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function tj(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],C=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Me of["react-scripts","gatsby"]){let Te=t.packageRegistry.get(Me);if(Te)for(let Qe of Te.keys()){if(Qe===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Me,reference:Qe})}}let{ignorePattern:w,packageRegistry:v,packageLocatorsByLocations:b}=t;function E(Me,Te){return{fn:Me,args:Te,error:null,result:null}}function R(Me){var At,Oe,x,I;let Te=((Oe=(At=process.stderr)==null?void 0:At.hasColors)==null?void 0:Oe.call(At))??process.stdout.isTTY,Qe=(P,y)=>`\x1B[${P}m${y}\x1B[0m`,_e=Me.error;console.error(_e?Qe("31;1",`\u2716 ${(x=Me.error)==null?void 0:x.message.replace(/\n.*/s,"")}`):Qe("33;1","\u203C Resolution")),Me.args.length>0&&console.error();for(let P of Me.args)console.error(` ${Qe("37;1","In \u2190")} ${(0,ej.inspect)(P,{colors:Te,compact:!0})}`);Me.result&&(console.error(),console.error(` ${Qe("37;1","Out \u2192")} ${(0,ej.inspect)(Me.result,{colors:Te,compact:!0})}`));let qe=((I=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:I.slice(2))??[];if(qe.length>0){console.error();for(let P of qe)console.error(` ${Qe("38;5;244",P)}`)}console.error()}function L(Me,Te){if(e.allowDebug===!1)return Te;if(Number.isFinite(o)){if(o>=2)return(...Qe)=>{let _e=E(Me,Qe);try{return _e.result=Te(...Qe)}catch(qe){throw _e.error=qe}finally{R(_e)}};if(o>=1)return(...Qe)=>{try{return Te(...Qe)}catch(_e){let qe=E(Me,Qe);throw qe.error=_e,R(qe),_e}}}return Te}function _(Me){let Te=g(Me);if(!Te)throw Xi("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Te}function V(Me){if(Me.name===null)return!0;for(let Te of t.dependencyTreeRoots)if(Te.name===Me.name&&Te.reference===Me.reference)return!0;return!1}let re=new Set(["node","require",...d1e("--conditions")]);function ae(Me,Te=re,Qe){let _e=de(J.join(Me,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(_e===null)throw Xi("INTERNAL",`The locator that owns the "${Me}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:qe}=_(_e),At=J.join(qe,Lr.manifest);if(!e.fakeFs.existsSync(At))return null;let Oe=JSON.parse(e.fakeFs.readFileSync(At,"utf8"));if(Oe.exports==null)return null;let x=J.contains(qe,Me);if(x===null)throw Xi("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");x!=="."&&!A.test(x)&&(x=`./${x}`);try{let I=u1e({packageJSONUrl:(0,Em.pathToFileURL)(ue.fromPortablePath(At)),packageSubpath:x,exports:Oe.exports,base:Qe?(0,Em.pathToFileURL)(ue.fromPortablePath(Qe)):null,conditions:Te});return ue.toPortablePath((0,Em.fileURLToPath)(I))}catch(I){throw Xi("EXPORTS_RESOLUTION_FAILED",I.message,{unqualifiedPath:fu(Me),locator:_e,pkgJson:Oe,subpath:fu(x),conditions:Te},I.code)}}function he(Me,Te,{extensions:Qe}){let _e;try{Te.push(Me),_e=e.fakeFs.statSync(Me)}catch{}if(_e&&!_e.isDirectory())return e.fakeFs.realpathSync(Me);if(_e&&_e.isDirectory()){let qe;try{qe=JSON.parse(e.fakeFs.readFileSync(J.join(Me,Lr.manifest),"utf8"))}catch{}let At;if(qe&&qe.main&&(At=J.resolve(Me,qe.main)),At&&At!==Me){let Oe=he(At,Te,{extensions:Qe});if(Oe!==null)return Oe}}for(let qe=0,At=Qe.length;qe<At;qe++){let Oe=`${Me}${Qe[qe]}`;if(Te.push(Oe),e.fakeFs.existsSync(Oe))return Oe}if(_e&&_e.isDirectory())for(let qe=0,At=Qe.length;qe<At;qe++){let Oe=J.format({dir:Me,name:"index",ext:Qe[qe]});if(Te.push(Oe),e.fakeFs.existsSync(Oe))return Oe}return null}function pe(Me){let Te=new VB.Module(Me,null);return Te.filename=Me,Te.paths=VB.Module._nodeModulePaths(Me),Te}function De(Me,Te){return Te.endsWith("/")&&(Te=J.join(Te,"internal.js")),VB.Module._resolveFilename(ue.fromPortablePath(Me),pe(ue.fromPortablePath(Te)),!1,{plugnplay:!1})}function ge(Me){if(w===null)return!1;let Te=J.contains(t.basePath,Me);return Te===null?!1:!!w.test(Te.replace(/\/$/,""))}let le={std:3,resolveVirtual:1,getAllLocators:1},Pe=p;function g({name:Me,reference:Te}){let Qe=v.get(Me);if(!Qe)return null;let _e=Qe.get(Te);return _e||null}function ve({name:Me,reference:Te}){let Qe=[];for(let[_e,qe]of v)if(_e!==null)for(let[At,Oe]of qe)At===null||Oe.packageDependencies.get(Me)!==Te||_e===Me&&At===Te||Qe.push({name:_e,reference:At});return Qe}function Ee(Me,Te){let Qe=new Map,_e=new Set,qe=Oe=>{let x=JSON.stringify(Oe.name);if(_e.has(x))return;_e.add(x);let I=ve(Oe);for(let P of I)if(_(P).packagePeers.has(Me))qe(P);else{let F=Qe.get(P.name);typeof F>"u"&&Qe.set(P.name,F=new Set),F.add(P.reference)}};qe(Te);let At=[];for(let Oe of[...Qe.keys()].sort())for(let x of[...Qe.get(Oe)].sort())At.push({name:Oe,reference:x});return At}function de(Me,{resolveIgnored:Te=!1,includeDiscardFromLookup:Qe=!1}={}){if(ge(Me)&&!Te)return null;let _e=J.relative(t.basePath,Me);_e.match(n)||(_e=`./${_e}`),_e.endsWith("/")||(_e=`${_e}/`);do{let qe=b.get(_e);if(typeof qe>"u"||qe.discardFromLookup&&!Qe){_e=_e.substring(0,_e.lastIndexOf("/",_e.length-2)+1);continue}return qe.locator}while(_e!=="");return null}function ne(Me){try{return e.fakeFs.readFileSync(ue.toPortablePath(Me),"utf8")}catch(Te){if(Te.code==="ENOENT")return;throw Te}}function Z(Me,Te,{considerBuiltins:Qe=!0}={}){if(Me.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Me==="pnpapi")return ue.toPortablePath(e.pnpapiResolution);if(Qe&&mk(Me))return null;let _e=fu(Me),qe=Te&&fu(Te);if(Te&&ge(Te)&&(!J.isAbsolute(Me)||de(Me)===null)){let x=De(Me,Te);if(x===!1)throw Xi("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)
594 594
595Require request: "${_e}" 595Require request: "${_e}"
596Required by: ${qe} 596Required by: ${qe}
597`,{request:_e,issuer:qe});return ue.toPortablePath(x)}let At,Oe=Me.match(a);if(Oe){if(!Te)throw Xi("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:_e,issuer:qe});let[,x,I]=Oe,P=de(Te);if(!P){let Ne=ve(Me,Te);if(Ne===!1)throw Xi("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). 597`,{request:_e,issuer:qe});return ue.toPortablePath(x)}let At,Oe=Me.match(a);if(Oe){if(!Te)throw Xi("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:_e,issuer:qe});let[,x,I]=Oe,P=de(Te);if(!P){let Ne=De(Me,Te);if(Ne===!1)throw Xi("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).
598 598
599Require path: "${_e}" 599Require path: "${_e}"
600Required by: ${qe} 600Required by: ${qe}
601`,{request:_e,issuer:qe});return ue.toPortablePath(Ne)}let F=_(P).packageDependencies.get(x),J=null;if(F==null&&P.name!==null){let Ne=t.fallbackExclusionList.get(P.name);if(!Ne||!Ne.has(P.reference)){for(let ht=0,Ut=h.length;ht<Ut;++ht){let Pt=_(h[ht]).packageDependencies.get(x);if(Pt!=null){r?J=Pt:F=Pt;break}}if(t.enableTopLevelFallback&&F==null&&J===null){let ht=t.fallbackPool.get(x);ht!=null&&(J=ht)}}}let X=null;if(F===null)if(V(P))X=Xi("MISSING_PEER_DEPENDENCY",`Your application tried to access ${x} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. 601`,{request:_e,issuer:qe});return ue.toPortablePath(Ne)}let F=_(P).packageDependencies.get(x),z=null;if(F==null&&P.name!==null){let Ne=t.fallbackExclusionList.get(P.name);if(!Ne||!Ne.has(P.reference)){for(let ht=0,Ut=h.length;ht<Ut;++ht){let xt=_(h[ht]).packageDependencies.get(x);if(xt!=null){r?z=xt:F=xt;break}}if(t.enableTopLevelFallback&&F==null&&z===null){let ht=t.fallbackPool.get(x);ht!=null&&(z=ht)}}}let X=null;if(F===null)if(V(P))X=Xi("MISSING_PEER_DEPENDENCY",`Your application tried to access ${x} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.
602 602
603Required package: ${x}${x!==_e?` (via "${_e}")`:""} 603Required package: ${x}${x!==_e?` (via "${_e}")`:""}
604Required by: ${qe} 604Required by: ${qe}
605`,{request:_e,issuer:qe,dependencyName:x});else{let Ne=Ce(x,P);Ne.every(st=>V(st))?X=Xi("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${x} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. 605`,{request:_e,issuer:qe,dependencyName:x});else{let Ne=Ee(x,P);Ne.every(st=>V(st))?X=Xi("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${x} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.
606 606
607Required package: ${x}${x!==_e?` (via "${_e}")`:""} 607Required package: ${x}${x!==_e?` (via "${_e}")`:""}
608Required by: ${P.name}@${P.reference} (via ${qe}) 608Required by: ${P.name}@${P.reference} (via ${qe})
@@ -615,7 +615,7 @@ Required by: ${P.name}@${P.reference} (via ${qe})
615 615
616${Ne.map(st=>`Ancestor breaking the chain: ${st.name}@${st.reference} 616${Ne.map(st=>`Ancestor breaking the chain: ${st.name}@${st.reference}
617`).join("")} 617`).join("")}
618`,{request:_e,issuer:qe,issuerLocator:Object.assign({},P),dependencyName:x,brokenAncestors:Ne})}else F===void 0&&(!Qe&&hk(Me)?V(P)?X=Xi("UNDECLARED_DEPENDENCY",`Your application tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. 618`,{request:_e,issuer:qe,issuerLocator:Object.assign({},P),dependencyName:x,brokenAncestors:Ne})}else F===void 0&&(!Qe&&mk(Me)?V(P)?X=Xi("UNDECLARED_DEPENDENCY",`Your application tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.
619 619
620Required package: ${x}${x!==_e?` (via "${_e}")`:""} 620Required package: ${x}${x!==_e?` (via "${_e}")`:""}
621Required by: ${qe} 621Required by: ${qe}
@@ -631,45 +631,46 @@ Required by: ${qe}
631 631
632Required package: ${x}${x!==_e?` (via "${_e}")`:""} 632Required package: ${x}${x!==_e?` (via "${_e}")`:""}
633Required by: ${P.name}@${P.reference} (via ${qe}) 633Required by: ${P.name}@${P.reference} (via ${qe})
634`,{request:_e,issuer:qe,issuerLocator:Object.assign({},P),dependencyName:x}));if(F==null){if(J===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=J;let Ne=X.message.replace(/\n.*/g,"");X.message=Ne,!E.has(Ne)&&o!==0&&(E.add(Ne),process.emitWarning(X))}let $=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:x,reference:F},ie=_($);if(!ie.packageLocation)throw Xi("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. 634`,{request:_e,issuer:qe,issuerLocator:Object.assign({},P),dependencyName:x}));if(F==null){if(z===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=z;let Ne=X.message.replace(/\n.*/g,"");X.message=Ne,!C.has(Ne)&&o!==0&&(C.add(Ne),process.emitWarning(X))}let $=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:x,reference:F},ie=_($);if(!ie.packageLocation)throw Xi("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.
635 635
636Required package: ${$.name}@${$.reference}${$.name!==_e?` (via "${_e}")`:""} 636Required package: ${$.name}@${$.reference}${$.name!==_e?` (via "${_e}")`:""}
637Required by: ${P.name}@${P.reference} (via ${qe}) 637Required by: ${P.name}@${P.reference} (via ${qe})
638`,{request:_e,issuer:qe,dependencyLocator:Object.assign({},$)});let ke=ie.packageLocation;I?At=z.join(ke,I):At=ke}else if(z.isAbsolute(Me))At=z.normalize(Me);else{if(!Te)throw Xi("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:_e,issuer:qe});let x=z.resolve(Te);Te.match(u)?At=z.normalize(z.join(x,Me)):At=z.normalize(z.join(z.dirname(x),Me))}return z.normalize(At)}function me(Me,Te,Qe=re,_e){if(n.test(Me))return Te;let qe=oe(Te,Qe,_e);return qe?z.normalize(qe):Te}function be(Me,{extensions:Te=Object.keys(YB.Module._extensions)}={}){let Qe=[],_e=pe(Me,Qe,{extensions:Te});if(_e)return z.normalize(_e);{m1e(Qe.map(Oe=>ue.fromPortablePath(Oe)));let qe=Au(Me),At=de(Me);if(At){let{packageLocation:Oe}=_(At),x=!0;try{e.fakeFs.accessSync(Oe)}catch(I){if((I==null?void 0:I.code)==="ENOENT")x=!1;else{let P=((I==null?void 0:I.message)??I??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw Xi("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${P}). 638`,{request:_e,issuer:qe,dependencyLocator:Object.assign({},$)});let ke=ie.packageLocation;I?At=J.join(ke,I):At=ke}else if(J.isAbsolute(Me))At=J.normalize(Me);else{if(!Te)throw Xi("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:_e,issuer:qe});let x=J.resolve(Te);Te.match(u)?At=J.normalize(J.join(x,Me)):At=J.normalize(J.join(J.dirname(x),Me))}return J.normalize(At)}function me(Me,Te,Qe=re,_e){if(n.test(Me))return Te;let qe=ae(Te,Qe,_e);return qe?J.normalize(qe):Te}function be(Me,{extensions:Te=Object.keys(VB.Module._extensions)}={}){let Qe=[],_e=he(Me,Qe,{extensions:Te});if(_e)return J.normalize(_e);{E1e(Qe.map(Oe=>ue.fromPortablePath(Oe)));let qe=fu(Me),At=de(Me);if(At){let{packageLocation:Oe}=_(At),x=!0;try{e.fakeFs.accessSync(Oe)}catch(I){if((I==null?void 0:I.code)==="ENOENT")x=!1;else{let P=((I==null?void 0:I.message)??I??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw Xi("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${P}).
639 639
640Missing package: ${At.name}@${At.reference} 640Missing package: ${At.name}@${At.reference}
641Expected package location: ${Au(Oe)} 641Expected package location: ${fu(Oe)}
642`,{unqualifiedPath:qe,extensions:Te})}}if(!x){let I=Oe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw Xi("QUALIFIED_PATH_RESOLUTION_FAILED",`${I} 642`,{unqualifiedPath:qe,extensions:Te})}}if(!x){let I=Oe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw Xi("QUALIFIED_PATH_RESOLUTION_FAILED",`${I}
643 643
644Missing package: ${At.name}@${At.reference} 644Missing package: ${At.name}@${At.reference}
645Expected package location: ${Au(Oe)} 645Expected package location: ${fu(Oe)}
646`,{unqualifiedPath:qe,extensions:Te})}}throw Xi("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. 646`,{unqualifiedPath:qe,extensions:Te})}}throw Xi("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.
647 647
648Source path: ${qe} 648Source path: ${qe}
649${Qe.map(Oe=>`Not found: ${Au(Oe)} 649${Qe.map(Oe=>`Not found: ${fu(Oe)}
650`).join("")}`,{unqualifiedPath:qe,extensions:Te})}}function ut(Me,Te,Qe){if(!Te)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let _e=c1e({name:Me,base:(0,Cm.pathToFileURL)(ue.fromPortablePath(Te)),conditions:Qe.conditions??re,readFileSyncFn:ne});if(_e instanceof URL)return be(ue.toPortablePath((0,Cm.fileURLToPath)(_e)),{extensions:Qe.extensions});if(_e.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return H(_e,Te,Qe)}function H(Me,Te,Qe={}){try{if(Me.startsWith("#"))return ut(Me,Te,Qe);let{considerBuiltins:_e,extensions:qe,conditions:At}=Qe,Oe=Z(Me,Te,{considerBuiltins:_e});if(Me==="pnpapi")return Oe;if(Oe===null)return null;let x=()=>Te!==null?ge(Te):!1,I=(!_e||!hk(Me))&&!x()?me(Me,Oe,At,Te):Oe;return be(I,{extensions:qe})}catch(_e){throw Object.prototype.hasOwnProperty.call(_e,"pnpCode")&&Object.assign(_e.data,{request:Au(Me),issuer:Te&&Au(Te)}),_e}}function yt(Me){let Te=z.normalize(Me),Qe=pi.resolveVirtual(Te);return Qe!==Te?Qe:null}return{VERSIONS:le,topLevel:Pe,getLocator:(Me,Te)=>Array.isArray(Te)?{name:Te[0],reference:Te[1]}:{name:Me,reference:Te},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Me=[];for(let[Te,Qe]of v)for(let _e of Qe.keys())Te!==null&&_e!==null&&Me.push({name:Te,reference:_e});return Me},getPackageInformation:Me=>{let Te=g(Me);if(Te===null)return null;let Qe=ue.fromPortablePath(Te.packageLocation);return{...Te,packageLocation:Qe}},findPackageLocator:Me=>de(ue.toPortablePath(Me)),resolveToUnqualified:L("resolveToUnqualified",(Me,Te,Qe)=>{let _e=Te!==null?ue.toPortablePath(Te):null,qe=Z(ue.toPortablePath(Me),_e,Qe);return qe===null?null:ue.fromPortablePath(qe)}),resolveUnqualified:L("resolveUnqualified",(Me,Te)=>ue.fromPortablePath(be(ue.toPortablePath(Me),Te))),resolveRequest:L("resolveRequest",(Me,Te,Qe)=>{let _e=Te!==null?ue.toPortablePath(Te):null,qe=H(ue.toPortablePath(Me),_e,Qe);return qe===null?null:ue.fromPortablePath(qe)}),resolveVirtual:L("resolveVirtual",Me=>{let Te=yt(ue.toPortablePath(Me));return Te!==null?ue.fromPortablePath(Te):null})}}bt();var y1e=(t,e,r)=>{let o=MB(t),a=qq(o,{basePath:e}),n=ue.join(e,Lr.pnpCjs);return $q(a,{fakeFs:r,pnpapiResolution:n})};var tj=tt(E1e());_t();var CA={};Yt(CA,{checkAndReportManifestCompatibility:()=>w1e,checkManifestCompatibility:()=>I1e,extractBuildScripts:()=>gk,getExtractHint:()=>rj,hasBindingGyp:()=>nj});Ke();bt();function I1e(t){return Y.isPackageCompatible(t,As.getArchitectureSet())}function w1e(t,e,{configuration:r,report:o}){return I1e(t)?!0:(o==null||o.reportWarningOnce(76,`${Y.prettyLocator(r,t)} The ${As.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function gk(t,e,r,{configuration:o,report:a}){let n=[];for(let A of["preinstall","install","postinstall"])e.manifest.scripts.has(A)&&n.push([0,A]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&n.push([1,"node-gyp rebuild"]),n.length===0?[]:t.linkType!=="HARD"?(a==null||a.reportWarningOnce(6,`${Y.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):r&&r.built===!1?(a==null||a.reportInfoOnce(5,`${Y.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!o.get("enableScripts")&&!r.built?(a==null||a.reportWarningOnce(4,`${Y.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`),[]):w1e(t,"build",{configuration:o,report:a})?n:[]}var iwt=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rj(t){return t.packageFs.getExtractHint({relevantExtensions:iwt})}function nj(t){let e=z.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var VB={};Yt(VB,{getUnpluggedPath:()=>KB});Ke();bt();function KB(t,{configuration:e}){return z.resolve(e.get("pnpUnpluggedFolder"),Y.slugifyLocator(t))}var swt=new Set([Y.makeIdent(null,"open").identHash,Y.makeIdent(null,"opn").identHash]),Bh=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=vh(r.project).cjs;if(!ae.existsSync(o))throw new ot(`The project in ${ye.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ye.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=Ye.getFactoryWithDefault(this.pnpCache,o,()=>Ye.dynamicRequire(o,{cachingStrategy:Ye.CachingStrategy.FsTime})),n={name:Y.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new ot(`Couldn't find ${Y.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return ue.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=vh(r.project).cjs;if(!ae.existsSync(o))return null;let n=Ye.getFactoryWithDefault(this.pnpCache,o,()=>Ye.dynamicRequire(o,{cachingStrategy:Ye.CachingStrategy.FsTime})).findPackageLocator(ue.fromPortablePath(e));return n?Y.makeLocator(Y.parseIdent(n.name),n.reference):null}makeInstaller(e){return new Em(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},Em=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new Ye.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,o){let a=Y.stringifyIdent(e),n=e.reference,u=!!this.opts.project.tryWorkspaceByLocator(e),A=Y.isVirtualLocator(e),p=e.peerDependencies.size>0&&!A,h=!p&&!u,E=!p&&e.linkType!=="SOFT",w,v;if(h||E){let re=A?Y.devirtualizeLocator(e):e;w=this.customData.store.get(re.locatorHash),typeof w>"u"&&(w=await owt(r),e.linkType==="HARD"&&this.customData.store.set(re.locatorHash,w)),w.manifest.type==="module"&&(this.isESMLoaderRequired=!0),v=this.opts.project.getDependencyMeta(re,e.version)}let b=h?gk(e,w,v,{configuration:this.opts.project.configuration,report:this.opts.report}):[],C=E?await this.unplugPackageIfNeeded(e,w,r,v,o):r.packageFs;if(z.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let R=z.resolve(C.getRealPath(),r.prefixPath),L=ij(this.opts.project.cwd,R),_=new Map,V=new Set;if(A){for(let re of e.peerDependencies.values())_.set(Y.stringifyIdent(re),null),V.add(Y.stringifyIdent(re));if(!u){let re=Y.devirtualizeLocator(e);this.virtualTemplates.set(re.locatorHash,{location:ij(this.opts.project.cwd,pi.resolveVirtual(R)),locator:re})}}return Ye.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:L,packageDependencies:_,packagePeers:V,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:R,buildDirective:b.length>0?b:null}}async attachInternalDependencies(e,r){let o=this.getPackageInformation(e);for(let[a,n]of r){let u=Y.areIdentsEqual(a,n)?n.reference:[Y.stringifyIdent(n),n.reference];o.packageDependencies.set(Y.stringifyIdent(a),u)}}async attachExternalDependents(e,r){for(let o of r)this.getDiskInformation(o).packageDependencies.set(Y.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=vh(this.opts.project);if(this.isEsmEnabled()||await ae.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await ae.removePromise(e.cjs),await ae.removePromise(e.data),await ae.removePromise(e.esmLoader),await ae.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:E,location:w}of this.virtualTemplates.values())Ye.getMapWithDefault(this.packageRegistry,Y.stringifyIdent(E)).set(E.reference,{packageLocation:w,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),o=this.opts.project.workspaces.map(({anchoredLocator:E})=>({name:Y.stringifyIdent(E),reference:E.reference})),a=r!=="none",n=[],u=new Map,A=Ye.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let E of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(E)&&n.push({name:Y.stringifyIdent(E),reference:E.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:o,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:u,ignorePattern:A,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=vh(this.opts.project),o=await this.locateNodeModules(e.ignorePattern);if(o.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of o)await ae.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=Kwe(e);await ae.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await ae.removePromise(r.data)}else{let{dataFile:n,loaderFile:u}=Vwe(e);await ae.changeFilePromise(r.cjs,u,{automaticNewlines:!0,mode:493}),await ae.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await ae.changeFilePromise(r.esmLoader,(0,tj.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await ae.removePromise(a);else for(let n of await ae.readdirPromise(a)){let u=z.resolve(a,n);this.unpluggedPaths.has(u)||await ae.removePromise(u)}}async locateNodeModules(e){let r=[],o=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=z.join(a.cwd,"node_modules");if(o&&o.test(z.relative(this.opts.project.cwd,a.cwd))||!ae.existsSync(n))continue;let u=await ae.readdirPromise(n,{withFileTypes:!0}),A=u.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(A.length===u.length)r.push(n);else for(let p of A)r.push(z.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,o,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,o,n):o.packageFs}shouldBeUnplugged(e,r,o){return typeof o.unplugged<"u"?o.unplugged:swt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(gk(e,r,o,{configuration:this.opts.project.configuration}).length>0||r.misc.extractHint)}async unplugPackage(e,r,o){let a=KB(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new ju(a,{baseFs:r.packageFs,pathUtils:z}):(this.unpluggedPaths.add(a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=z.join(a,r.prefixPath,".ready");await ae.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await ae.mkdirPromise(a,{recursive:!0}),await ae.copyPromise(a,wt.dot,{baseFs:r.packageFs,overwrite:!1}),await ae.writeFilePromise(n,""))})),new An(a))}getPackageInformation(e){let r=Y.stringifyIdent(e),o=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${Y.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(o);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${Y.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=Ye.getMapWithDefault(this.packageRegistry,"@@disk"),o=ij(this.opts.project.cwd,e);return Ye.getFactoryWithDefault(r,o,()=>({packageLocation:o,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function ij(t,e){let r=z.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function owt(t){let e=await Nt.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Nt,r=new Set(["preinstall","install","postinstall"]);for(let o of e.scripts.keys())r.has(o)||e.scripts.delete(o);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rj(t),hasBindingGyp:nj(t)}}}Ke();Ke();_t();var B1e=tt(Jo());var Dh=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new ot("This command can only be used if the `nodeLinker` option is set to `pnp`");await o.restoreInstallState();let u=new Set(this.patterns),A=this.patterns.map(b=>{let C=Y.parseDescriptor(b),R=C.range!=="unknown"?C:Y.makeDescriptor(C,"*");if(!Tr.validRange(R.range))throw new ot(`The range of the descriptor patterns must be a valid semver range (${Y.prettyDescriptor(r,R)})`);return L=>{let _=Y.stringifyIdent(L);return!B1e.default.isMatch(_,Y.stringifyIdent(R))||L.version&&!Tr.satisfiesWithPrereleases(L.version,R.range)?!1:(u.delete(b),!0)}}),p=()=>{let b=[];for(let C of o.storedPackages.values())!o.tryWorkspaceByLocator(C)&&!Y.isVirtualLocator(C)&&A.some(R=>R(C))&&b.push(C);return b},h=b=>{let C=new Set,R=[],L=(_,V)=>{if(!C.has(_.locatorHash)&&(C.add(_.locatorHash),!o.tryWorkspaceByLocator(_)&&A.some(re=>re(_))&&R.push(_),!(V>0&&!this.recursive)))for(let re of _.dependencies.values()){let oe=o.storedResolutions.get(re.descriptorHash);if(!oe)throw new Error("Assertion failed: The resolution should have been registered");let pe=o.storedPackages.get(oe);if(!pe)throw new Error("Assertion failed: The package should have been registered");L(pe,V+1)}};for(let _ of b)L(_.anchoredPackage,0);return R},E,w;if(this.all&&this.recursive?(E=p(),w="the project"):this.all?(E=h(o.workspaces),w="any workspace"):(E=h([a]),w="this workspace"),u.size>1)throw new ot(`Patterns ${ye.prettyList(r,u,ye.Type.CODE)} don't match any packages referenced by ${w}`);if(u.size>0)throw new ot(`Pattern ${ye.prettyList(r,u,ye.Type.CODE)} doesn't match any packages referenced by ${w}`);return E=Ye.sortMap(E,b=>Y.stringifyLocator(b)),(await Et.start({configuration:r,stdout:this.context.stdout,json:this.json},async b=>{for(let C of E){let R=C.version??"unknown",L=o.topLevelWorkspace.manifest.ensureDependencyMeta(Y.makeDescriptor(C,R));L.unplugged=!0,b.reportInfo(0,`Will unpack ${Y.prettyLocator(r,C)} to ${ye.pretty(r,KB(C,{configuration:r}),ye.Type.PATH)}`),b.reportJson({locator:Y.stringifyLocator(C),version:R})}await o.topLevelWorkspace.persistManifest(),b.reportSeparator(),await o.install({cache:n,report:b})})).exitCode()}};Dh.paths=[["unplug"]],Dh.usage=it.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var vh=t=>({cjs:z.join(t.cwd,Lr.pnpCjs),data:z.join(t.cwd,Lr.pnpData),esmLoader:z.join(t.cwd,Lr.pnpEsmLoader)}),S1e=t=>/\s/.test(t)?JSON.stringify(t):t;async function awt(t,e,r){let o=vh(t),a=`--require ${S1e(ue.fromPortablePath(o.cjs))}`;if(ae.existsSync(o.esmLoader)&&(a=`${a} --experimental-loader ${(0,D1e.pathToFileURL)(ue.fromPortablePath(o.esmLoader)).href}`),o.cjs.includes(" ")&&v1e.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(ae.existsSync(o.cjs)){let n=e.NODE_OPTIONS||"",u=/\s*--require\s+\S*\.pnp\.c?js\s*/g,A=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;n=n.replace(u," ").replace(A," ").trim(),n=n?`${a} ${n}`:a,e.NODE_OPTIONS=n}}async function lwt(t,e){let r=vh(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var cwt={hooks:{populateYarnPaths:lwt,setupScriptEnvironment:awt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[Bh],commands:[Dh]},uwt=cwt;var T1e=tt(k1e());_t();var fj=tt(Ie("crypto")),N1e=tt(Ie("fs")),L1e=1,vi="node_modules",dk=".bin",O1e=".yarn-state.yml",Pwt=1e3,pj=(o=>(o.CLASSIC="classic",o.HARDLINKS_LOCAL="hardlinks-local",o.HARDLINKS_GLOBAL="hardlinks-global",o))(pj||{}),JB=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let o=r.project.tryWorkspaceByLocator(e);if(o)return o.cwd;let a=await Ye.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await Aj(r.project,{unrollAliases:!0}));if(a===null)throw new ot("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(Y.stringifyLocator(e));if(!n){let p=new ot(`Couldn't find ${Y.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let u=n.locations.sort((p,h)=>p.split(z.sep).length-h.split(z.sep).length),A=z.join(r.project.configuration.startingCwd,vi);return u.find(p=>z.contains(A,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=await Ye.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await Aj(r.project,{unrollAliases:!0}));if(o===null)return null;let{locationRoot:a,segments:n}=mk(z.resolve(e),{skipPrefix:r.project.cwd}),u=o.locationTree.get(a);if(!u)return null;let A=u.locator;for(let p of n){if(u=u.children.get(p),!u)break;A=u.locator||A}return Y.parseLocator(A)}makeInstaller(e){return new uj(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},uj=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let o=z.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await xwt(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!Y.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let n=new Map,u=new Set;n.has(Y.stringifyIdent(e))||n.set(Y.stringifyIdent(e),e.reference);let A=e;if(Y.isVirtualLocator(e)){A=Y.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(Y.stringifyIdent(E),null),u.add(Y.stringifyIdent(E))}let p={packageLocation:`${ue.fromPortablePath(o)}/`,packageDependencies:n,packagePeers:u,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,h),{packageLocation:o,buildDirective:null}}async attachInternalDependencies(e,r){let o=this.localStore.get(e.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let u=Y.areIdentsEqual(a,n)?n.reference:[Y.stringifyIdent(n),n.reference];o.pnpNode.packageDependencies.set(Y.stringifyIdent(a),u)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new pi({baseFs:new Ul({maxOpenFiles:80,readOnlyArchives:!0})}),r=await Aj(this.opts.project),o=this.opts.project.configuration.get("nmMode");(r===null||o!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:o,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(v=>{var C;let b=this.opts.project.configuration.get("nmHoistingLimits");try{b=Ye.validateEnum(NB,((C=v.manifest.installConfig)==null?void 0:C.hoistingLimits)??b)}catch{let L=Y.prettyWorkspace(this.opts.project.configuration,v);this.opts.report.reportWarning(57,`${L}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(NB).join(", ")}, using default: "${b}"`)}return[v.relativeCwd,b]})),n=new Map(this.opts.project.workspaces.map(v=>{var C;let b=this.opts.project.configuration.get("nmSelfReferences");return b=((C=v.manifest.installConfig)==null?void 0:C.selfReferences)??b,[v.relativeCwd,b]})),u={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(v,b)=>Array.isArray(b)?{name:b[0],reference:b[1]}:{name:v,reference:b},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(v=>{let b=v.anchoredLocator;return{name:Y.stringifyIdent(v.locator),reference:b.reference}}),getPackageInformation:v=>{let b=v.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:Y.makeLocator(Y.parseIdent(v.name),v.reference),C=this.localStore.get(b.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return C.pnpNode},findPackageLocator:v=>{let b=this.opts.project.tryWorkspaceByCwd(ue.toPortablePath(v));if(b!==null){let C=b.anchoredLocator;return{name:Y.stringifyIdent(C),reference:C.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:v=>ue.fromPortablePath(pi.resolveVirtual(ue.toPortablePath(v)))},{tree:A,errors:p,preserveSymlinksRequired:h}=LB(u,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!A){for(let{messageName:v,text:b}of p)this.opts.report.reportError(v,b);return}let E=_q(A);await Twt(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async v=>{let b=Y.parseLocator(v),C=this.localStore.get(b.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");return C.customPackageData.manifest}});let w=[];for(let[v,b]of E.entries()){if(H1e(v))continue;let C=Y.parseLocator(v),R=this.localStore.get(C.locatorHash);if(typeof R>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(R.pkg))continue;let L=CA.extractBuildScripts(R.pkg,R.customPackageData,R.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});L.length!==0&&w.push({buildLocations:b.locations,locatorHash:C.locatorHash,buildDirective:L})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${ye.pretty(this.opts.project.configuration,"--preserve-symlinks",ye.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:w}}};async function xwt(t,e){let r=await Nt.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Nt,o=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())o.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:CA.hasBindingGyp(e)}}}async function bwt(t,e,r,o,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will 650`).join("")}`,{unqualifiedPath:qe,extensions:Te})}}function ut(Me,Te,Qe){if(!Te)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let _e=A1e({name:Me,base:(0,Em.pathToFileURL)(ue.fromPortablePath(Te)),conditions:Qe.conditions??re,readFileSyncFn:ne});if(_e instanceof URL)return be(ue.toPortablePath((0,Em.fileURLToPath)(_e)),{extensions:Qe.extensions});if(_e.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return H(_e,Te,Qe)}function H(Me,Te,Qe={}){try{if(Me.startsWith("#"))return ut(Me,Te,Qe);let{considerBuiltins:_e,extensions:qe,conditions:At}=Qe,Oe=Z(Me,Te,{considerBuiltins:_e});if(Me==="pnpapi")return Oe;if(Oe===null)return null;let x=()=>Te!==null?ge(Te):!1,I=(!_e||!mk(Me))&&!x()?me(Me,Oe,At,Te):Oe;return be(I,{extensions:qe})}catch(_e){throw Object.prototype.hasOwnProperty.call(_e,"pnpCode")&&Object.assign(_e.data,{request:fu(Me),issuer:Te&&fu(Te)}),_e}}function yt(Me){let Te=J.normalize(Me),Qe=pi.resolveVirtual(Te);return Qe!==Te?Qe:null}return{VERSIONS:le,topLevel:Pe,getLocator:(Me,Te)=>Array.isArray(Te)?{name:Te[0],reference:Te[1]}:{name:Me,reference:Te},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Me=[];for(let[Te,Qe]of v)for(let _e of Qe.keys())Te!==null&&_e!==null&&Me.push({name:Te,reference:_e});return Me},getPackageInformation:Me=>{let Te=g(Me);if(Te===null)return null;let Qe=ue.fromPortablePath(Te.packageLocation);return{...Te,packageLocation:Qe}},findPackageLocator:Me=>de(ue.toPortablePath(Me)),resolveToUnqualified:L("resolveToUnqualified",(Me,Te,Qe)=>{let _e=Te!==null?ue.toPortablePath(Te):null,qe=Z(ue.toPortablePath(Me),_e,Qe);return qe===null?null:ue.fromPortablePath(qe)}),resolveUnqualified:L("resolveUnqualified",(Me,Te)=>ue.fromPortablePath(be(ue.toPortablePath(Me),Te))),resolveRequest:L("resolveRequest",(Me,Te,Qe)=>{let _e=Te!==null?ue.toPortablePath(Te):null,qe=H(ue.toPortablePath(Me),_e,Qe);return qe===null?null:ue.fromPortablePath(qe)}),resolveVirtual:L("resolveVirtual",Me=>{let Te=yt(ue.toPortablePath(Me));return Te!==null?ue.fromPortablePath(Te):null})}}St();var C1e=(t,e,r)=>{let o=_B(t),a=Gq(o,{basePath:e}),n=ue.join(e,Lr.pnpCjs);return tj(a,{fakeFs:r,pnpapiResolution:n})};var nj=tt(w1e());_t();var CA={};Yt(CA,{checkAndReportManifestCompatibility:()=>v1e,checkManifestCompatibility:()=>B1e,extractBuildScripts:()=>yk,getExtractHint:()=>ij,hasBindingGyp:()=>sj});Ke();St();function B1e(t){return Y.isPackageCompatible(t,As.getArchitectureSet())}function v1e(t,e,{configuration:r,report:o}){return B1e(t)?!0:(o==null||o.reportWarningOnce(76,`${Y.prettyLocator(r,t)} The ${As.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function yk(t,e,r,{configuration:o,report:a}){let n=[];for(let A of["preinstall","install","postinstall"])e.manifest.scripts.has(A)&&n.push([0,A]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&n.push([1,"node-gyp rebuild"]),n.length===0?[]:t.linkType!=="HARD"?(a==null||a.reportWarningOnce(6,`${Y.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):r&&r.built===!1?(a==null||a.reportInfoOnce(5,`${Y.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!o.get("enableScripts")&&!r.built?(a==null||a.reportWarningOnce(4,`${Y.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`),[]):v1e(t,"build",{configuration:o,report:a})?n:[]}var cwt=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function ij(t){return t.packageFs.getExtractHint({relevantExtensions:cwt})}function sj(t){let e=J.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var zB={};Yt(zB,{getUnpluggedPath:()=>JB});Ke();St();function JB(t,{configuration:e}){return J.resolve(e.get("pnpUnpluggedFolder"),Y.slugifyLocator(t))}var uwt=new Set([Y.makeIdent(null,"open").identHash,Y.makeIdent(null,"opn").identHash]),vh=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=Dh(r.project).cjs;if(!oe.existsSync(o))throw new ot(`The project in ${ye.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ye.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=We.getFactoryWithDefault(this.pnpCache,o,()=>We.dynamicRequire(o,{cachingStrategy:We.CachingStrategy.FsTime})),n={name:Y.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new ot(`Couldn't find ${Y.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return ue.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=Dh(r.project).cjs;if(!oe.existsSync(o))return null;let n=We.getFactoryWithDefault(this.pnpCache,o,()=>We.dynamicRequire(o,{cachingStrategy:We.CachingStrategy.FsTime})).findPackageLocator(ue.fromPortablePath(e));return n?Y.makeLocator(Y.parseIdent(n.name),n.reference):null}makeInstaller(e){return new Cm(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},Cm=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new We.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,o){let a=Y.stringifyIdent(e),n=e.reference,u=!!this.opts.project.tryWorkspaceByLocator(e),A=Y.isVirtualLocator(e),p=e.peerDependencies.size>0&&!A,h=!p&&!u,C=!p&&e.linkType!=="SOFT",w,v;if(h||C){let re=A?Y.devirtualizeLocator(e):e;w=this.customData.store.get(re.locatorHash),typeof w>"u"&&(w=await Awt(r),e.linkType==="HARD"&&this.customData.store.set(re.locatorHash,w)),w.manifest.type==="module"&&(this.isESMLoaderRequired=!0),v=this.opts.project.getDependencyMeta(re,e.version)}let b=h?yk(e,w,v,{configuration:this.opts.project.configuration,report:this.opts.report}):[],E=C?await this.unplugPackageIfNeeded(e,w,r,v,o):r.packageFs;if(J.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let R=J.resolve(E.getRealPath(),r.prefixPath),L=oj(this.opts.project.cwd,R),_=new Map,V=new Set;if(A){for(let re of e.peerDependencies.values())_.set(Y.stringifyIdent(re),null),V.add(Y.stringifyIdent(re));if(!u){let re=Y.devirtualizeLocator(e);this.virtualTemplates.set(re.locatorHash,{location:oj(this.opts.project.cwd,pi.resolveVirtual(R)),locator:re})}}return We.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:L,packageDependencies:_,packagePeers:V,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:R,buildDirective:b.length>0?b:null}}async attachInternalDependencies(e,r){let o=this.getPackageInformation(e);for(let[a,n]of r){let u=Y.areIdentsEqual(a,n)?n.reference:[Y.stringifyIdent(n),n.reference];o.packageDependencies.set(Y.stringifyIdent(a),u)}}async attachExternalDependents(e,r){for(let o of r)this.getDiskInformation(o).packageDependencies.set(Y.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Dh(this.opts.project);if(this.isEsmEnabled()||await oe.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await oe.removePromise(e.cjs),await oe.removePromise(e.data),await oe.removePromise(e.esmLoader),await oe.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:C,location:w}of this.virtualTemplates.values())We.getMapWithDefault(this.packageRegistry,Y.stringifyIdent(C)).set(C.reference,{packageLocation:w,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),o=this.opts.project.workspaces.map(({anchoredLocator:C})=>({name:Y.stringifyIdent(C),reference:C.reference})),a=r!=="none",n=[],u=new Map,A=We.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let C of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(C)&&n.push({name:Y.stringifyIdent(C),reference:C.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:o,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:u,ignorePattern:A,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=Dh(this.opts.project),o=await this.locateNodeModules(e.ignorePattern);if(o.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of o)await oe.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=Jwe(e);await oe.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await oe.removePromise(r.data)}else{let{dataFile:n,loaderFile:u}=zwe(e);await oe.changeFilePromise(r.cjs,u,{automaticNewlines:!0,mode:493}),await oe.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await oe.changeFilePromise(r.esmLoader,(0,nj.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await oe.removePromise(a);else for(let n of await oe.readdirPromise(a)){let u=J.resolve(a,n);this.unpluggedPaths.has(u)||await oe.removePromise(u)}}async locateNodeModules(e){let r=[],o=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=J.join(a.cwd,"node_modules");if(o&&o.test(J.relative(this.opts.project.cwd,a.cwd))||!oe.existsSync(n))continue;let u=await oe.readdirPromise(n,{withFileTypes:!0}),A=u.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(A.length===u.length)r.push(n);else for(let p of A)r.push(J.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,o,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,o,n):o.packageFs}shouldBeUnplugged(e,r,o){return typeof o.unplugged<"u"?o.unplugged:uwt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(yk(e,r,o,{configuration:this.opts.project.configuration}).length>0||r.misc.extractHint)}async unplugPackage(e,r,o){let a=JB(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new ju(a,{baseFs:r.packageFs,pathUtils:J}):(this.unpluggedPaths.add(a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=J.join(a,r.prefixPath,".ready");await oe.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await oe.mkdirPromise(a,{recursive:!0}),await oe.copyPromise(a,wt.dot,{baseFs:r.packageFs,overwrite:!1}),await oe.writeFilePromise(n,""))})),new An(a))}getPackageInformation(e){let r=Y.stringifyIdent(e),o=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${Y.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(o);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${Y.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=We.getMapWithDefault(this.packageRegistry,"@@disk"),o=oj(this.opts.project.cwd,e);return We.getFactoryWithDefault(r,o,()=>({packageLocation:o,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function oj(t,e){let r=J.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function Awt(t){let e=await Nt.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Nt,r=new Set(["preinstall","install","postinstall"]);for(let o of e.scripts.keys())r.has(o)||e.scripts.delete(o);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:ij(t),hasBindingGyp:sj(t)}}}Ke();Ke();_t();var D1e=tt(zo());var Sh=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new ot("This command can only be used if the `nodeLinker` option is set to `pnp`");await o.restoreInstallState();let u=new Set(this.patterns),A=this.patterns.map(b=>{let E=Y.parseDescriptor(b),R=E.range!=="unknown"?E:Y.makeDescriptor(E,"*");if(!Tr.validRange(R.range))throw new ot(`The range of the descriptor patterns must be a valid semver range (${Y.prettyDescriptor(r,R)})`);return L=>{let _=Y.stringifyIdent(L);return!D1e.default.isMatch(_,Y.stringifyIdent(R))||L.version&&!Tr.satisfiesWithPrereleases(L.version,R.range)?!1:(u.delete(b),!0)}}),p=()=>{let b=[];for(let E of o.storedPackages.values())!o.tryWorkspaceByLocator(E)&&!Y.isVirtualLocator(E)&&A.some(R=>R(E))&&b.push(E);return b},h=b=>{let E=new Set,R=[],L=(_,V)=>{if(!E.has(_.locatorHash)&&(E.add(_.locatorHash),!o.tryWorkspaceByLocator(_)&&A.some(re=>re(_))&&R.push(_),!(V>0&&!this.recursive)))for(let re of _.dependencies.values()){let ae=o.storedResolutions.get(re.descriptorHash);if(!ae)throw new Error("Assertion failed: The resolution should have been registered");let he=o.storedPackages.get(ae);if(!he)throw new Error("Assertion failed: The package should have been registered");L(he,V+1)}};for(let _ of b)L(_.anchoredPackage,0);return R},C,w;if(this.all&&this.recursive?(C=p(),w="the project"):this.all?(C=h(o.workspaces),w="any workspace"):(C=h([a]),w="this workspace"),u.size>1)throw new ot(`Patterns ${ye.prettyList(r,u,ye.Type.CODE)} don't match any packages referenced by ${w}`);if(u.size>0)throw new ot(`Pattern ${ye.prettyList(r,u,ye.Type.CODE)} doesn't match any packages referenced by ${w}`);return C=We.sortMap(C,b=>Y.stringifyLocator(b)),(await Ct.start({configuration:r,stdout:this.context.stdout,json:this.json},async b=>{for(let E of C){let R=E.version??"unknown",L=o.topLevelWorkspace.manifest.ensureDependencyMeta(Y.makeDescriptor(E,R));L.unplugged=!0,b.reportInfo(0,`Will unpack ${Y.prettyLocator(r,E)} to ${ye.pretty(r,JB(E,{configuration:r}),ye.Type.PATH)}`),b.reportJson({locator:Y.stringifyLocator(E),version:R})}await o.topLevelWorkspace.persistManifest(),b.reportSeparator(),await o.install({cache:n,report:b})})).exitCode()}};Sh.paths=[["unplug"]],Sh.usage=it.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var Dh=t=>({cjs:J.join(t.cwd,Lr.pnpCjs),data:J.join(t.cwd,Lr.pnpData),esmLoader:J.join(t.cwd,Lr.pnpEsmLoader)}),x1e=t=>/\s/.test(t)?JSON.stringify(t):t;async function fwt(t,e,r){let o=Dh(t),a=`--require ${x1e(ue.fromPortablePath(o.cjs))}`;if(oe.existsSync(o.esmLoader)&&(a=`${a} --experimental-loader ${(0,P1e.pathToFileURL)(ue.fromPortablePath(o.esmLoader)).href}`),o.cjs.includes(" ")&&S1e.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(oe.existsSync(o.cjs)){let n=e.NODE_OPTIONS||"",u=/\s*--require\s+\S*\.pnp\.c?js\s*/g,A=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;n=n.replace(u," ").replace(A," ").trim(),n=n?`${a} ${n}`:a,e.NODE_OPTIONS=n}}async function pwt(t,e){let r=Dh(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var hwt={hooks:{populateYarnPaths:pwt,setupScriptEnvironment:fwt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[vh],commands:[Sh]},gwt=hwt;var L1e=tt(R1e());_t();var hj=tt(Ie("crypto")),O1e=tt(Ie("fs")),M1e=1,vi="node_modules",Ek=".bin",U1e=".yarn-state.yml",Fwt=1e3,gj=(o=>(o.CLASSIC="classic",o.HARDLINKS_LOCAL="hardlinks-local",o.HARDLINKS_GLOBAL="hardlinks-global",o))(gj||{}),XB=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let o=r.project.tryWorkspaceByLocator(e);if(o)return o.cwd;let a=await We.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await pj(r.project,{unrollAliases:!0}));if(a===null)throw new ot("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(Y.stringifyLocator(e));if(!n){let p=new ot(`Couldn't find ${Y.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let u=n.locations.sort((p,h)=>p.split(J.sep).length-h.split(J.sep).length),A=J.join(r.project.configuration.startingCwd,vi);return u.find(p=>J.contains(A,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=await We.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await pj(r.project,{unrollAliases:!0}));if(o===null)return null;let{locationRoot:a,segments:n}=Ck(J.resolve(e),{skipPrefix:r.project.cwd}),u=o.locationTree.get(a);if(!u)return null;let A=u.locator;for(let p of n){if(u=u.children.get(p),!u)break;A=u.locator||A}return Y.parseLocator(A)}makeInstaller(e){return new fj(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},fj=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let o=J.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await Rwt(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!Y.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let n=new Map,u=new Set;n.has(Y.stringifyIdent(e))||n.set(Y.stringifyIdent(e),e.reference);let A=e;if(Y.isVirtualLocator(e)){A=Y.devirtualizeLocator(e);for(let C of e.peerDependencies.values())n.set(Y.stringifyIdent(C),null),u.add(Y.stringifyIdent(C))}let p={packageLocation:`${ue.fromPortablePath(o)}/`,packageDependencies:n,packagePeers:u,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,h),{packageLocation:o,buildDirective:null}}async attachInternalDependencies(e,r){let o=this.localStore.get(e.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let u=Y.areIdentsEqual(a,n)?n.reference:[Y.stringifyIdent(n),n.reference];o.pnpNode.packageDependencies.set(Y.stringifyIdent(a),u)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new pi({baseFs:new _l({maxOpenFiles:80,readOnlyArchives:!0})}),r=await pj(this.opts.project),o=this.opts.project.configuration.get("nmMode");(r===null||o!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:o,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(v=>{var E;let b=this.opts.project.configuration.get("nmHoistingLimits");try{b=We.validateEnum(OB,((E=v.manifest.installConfig)==null?void 0:E.hoistingLimits)??b)}catch{let L=Y.prettyWorkspace(this.opts.project.configuration,v);this.opts.report.reportWarning(57,`${L}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(OB).join(", ")}, using default: "${b}"`)}return[v.relativeCwd,b]})),n=new Map(this.opts.project.workspaces.map(v=>{var E;let b=this.opts.project.configuration.get("nmSelfReferences");return b=((E=v.manifest.installConfig)==null?void 0:E.selfReferences)??b,[v.relativeCwd,b]})),u={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(v,b)=>Array.isArray(b)?{name:b[0],reference:b[1]}:{name:v,reference:b},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(v=>{let b=v.anchoredLocator;return{name:Y.stringifyIdent(v.locator),reference:b.reference}}),getPackageInformation:v=>{let b=v.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:Y.makeLocator(Y.parseIdent(v.name),v.reference),E=this.localStore.get(b.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return E.pnpNode},findPackageLocator:v=>{let b=this.opts.project.tryWorkspaceByCwd(ue.toPortablePath(v));if(b!==null){let E=b.anchoredLocator;return{name:Y.stringifyIdent(E),reference:E.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:v=>ue.fromPortablePath(pi.resolveVirtual(ue.toPortablePath(v)))},{tree:A,errors:p,preserveSymlinksRequired:h}=MB(u,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!A){for(let{messageName:v,text:b}of p)this.opts.report.reportError(v,b);return}let C=qq(A);await Uwt(r,C,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async v=>{let b=Y.parseLocator(v),E=this.localStore.get(b.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: Expected the slot to exist");return E.customPackageData.manifest}});let w=[];for(let[v,b]of C.entries()){if(j1e(v))continue;let E=Y.parseLocator(v),R=this.localStore.get(E.locatorHash);if(typeof R>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(R.pkg))continue;let L=CA.extractBuildScripts(R.pkg,R.customPackageData,R.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});L.length!==0&&w.push({buildLocations:b.locations,locatorHash:E.locatorHash,buildDirective:L})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${ye.pretty(this.opts.project.configuration,"--preserve-symlinks",ye.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:w}}};async function Rwt(t,e){let r=await Nt.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Nt,o=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())o.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:CA.hasBindingGyp(e)}}}async function Twt(t,e,r,o,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will
651`,n+=`# cause your node_modules installation to become invalidated. 651`,n+=`# cause your node_modules installation to become invalidated.
652`,n+=` 652`,n+=`
653`,n+=`__metadata: 653`,n+=`__metadata:
654`,n+=` version: ${L1e} 654`,n+=` version: ${M1e}
655`,n+=` nmMode: ${o.value} 655`,n+=` nmMode: ${o.value}
656`;let u=Array.from(e.keys()).sort(),A=Y.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of u){let w=e.get(E);n+=` 656`;let u=Array.from(e.keys()).sort(),A=Y.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let C of u){let w=e.get(C);n+=`
657`,n+=`${JSON.stringify(E)}: 657`,n+=`${JSON.stringify(C)}:
658`,n+=` locations: 658`,n+=` locations:
659`;for(let v of w.locations){let b=z.contains(t.cwd,v);if(b===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` - ${JSON.stringify(b)} 659`;for(let v of w.locations){let b=J.contains(t.cwd,v);if(b===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` - ${JSON.stringify(b)}
660`}if(w.aliases.length>0){n+=` aliases: 660`}if(w.aliases.length>0){n+=` aliases:
661`;for(let v of w.aliases)n+=` - ${JSON.stringify(v)} 661`;for(let v of w.aliases)n+=` - ${JSON.stringify(v)}
662`}if(E===A&&r.size>0){n+=` bin: 662`}if(C===A&&r.size>0){n+=` bin:
663`;for(let[v,b]of r){let C=z.contains(t.cwd,v);if(C===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` ${JSON.stringify(C)}: 663`;for(let[v,b]of r){let E=J.contains(t.cwd,v);if(E===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` ${JSON.stringify(E)}:
664`;for(let[R,L]of b){let _=z.relative(z.join(v,vi),L);n+=` ${JSON.stringify(R)}: ${JSON.stringify(_)} 664`;for(let[R,L]of b){let _=J.relative(J.join(v,vi),L);n+=` ${JSON.stringify(R)}: ${JSON.stringify(_)}
665`}}}}let p=t.cwd,h=z.join(p,vi,O1e);a&&await ae.removePromise(h),await ae.changeFilePromise(h,n,{automaticNewlines:!0})}async function Aj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=z.join(r,vi,O1e),a;try{a=await ae.statPromise(o)}catch{}if(!a)return null;let n=Yi(await ae.readFilePromise(o,"utf8"));if(n.__metadata.version>L1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let w=E.locations.map(b=>z.join(r,b)),v=E.bin;if(v)for(let[b,C]of Object.entries(v)){let R=z.join(r,ue.toPortablePath(b)),L=Ye.getMapWithDefault(p,R);for(let[_,V]of Object.entries(C))L.set(Li(_),ue.toPortablePath([R,vi,V].join(z.sep)))}if(A.set(h,{target:wt.dot,linkType:"HARD",locations:w,aliases:E.aliases||[]}),e&&E.aliases)for(let b of E.aliases){let{scope:C,name:R}=Y.parseLocator(h),L=Y.makeLocator(Y.makeIdent(C,R),b),_=Y.stringifyLocator(L);A.set(_,{target:wt.dot,linkType:"HARD",locations:w,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:M1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var _E=async(t,e)=>{if(t.split(z.sep).indexOf(vi)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop){let o=e.allowSymlink?await ae.statPromise(t):await ae.lstatPromise(t);if(e.allowSymlink&&!o.isDirectory()||!e.allowSymlink&&o.isSymbolicLink()){await ae.unlinkPromise(t);return}}let r=await ae.readdirPromise(t,{withFileTypes:!0});for(let o of r){let a=z.join(t,Li(o.name));o.isDirectory()?(o.name!==vi||e&&e.innerLoop)&&await _E(a,{innerLoop:!0,contentsOnly:!1}):await ae.unlinkPromise(a)}e.contentsOnly||await ae.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},F1e=4,mk=(t,{skipPrefix:e})=>{let r=z.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(z.sep).filter(p=>p!==""),a=o.indexOf(vi),n=o.slice(0,a).join(z.sep),u=z.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},M1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&z.contains(e,n.target)!==null){let A=Ye.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=mk(u,{skipPrefix:e}),h=Ye.getFactoryWithDefault(r,A,o);for(let E=0;E<p.length;++E){let w=p[E];if(w!=="."){let v=Ye.getFactoryWithDefault(h.children,w,o);h.children.set(w,v),h=v}E===p.length-1&&(h.locator=a,h.linkType=n.linkType)}}}return r},hj=async(t,e,r)=>{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await ae.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await ae.symlinkPromise(t,e,"junction");return}}await ae.symlinkPromise(z.relative(z.dirname(e),t),e)};async function U1e(t,e,r){let o=z.join(t,Li(`${fj.default.randomBytes(16).toString("hex")}.tmp`));try{await ae.writeFilePromise(o,r);try{await ae.linkPromise(o,e)}catch{}}finally{await ae.unlinkPromise(o)}}async function Qwt({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind===_1e.FILE){if(n.value==="hardlinks-global"&&o&&r.digest){let A=z.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await ae.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs<r.mtimeMs-Pwt))if(await bn.checksumFile(A,{baseFs:ae,algorithm:"sha1"})!==r.digest){let w=z.join(o,Li(`${fj.default.randomBytes(16).toString("hex")}.tmp`));await ae.renamePromise(A,w);let v=await a.readFilePromise(t);await ae.writeFilePromise(w,v);try{await ae.linkPromise(w,A),r.mtimeMs=new Date().getTime(),await ae.unlinkPromise(w)}catch{}}else r.mtimeMs||(r.mtimeMs=Math.ceil(h.mtimeMs));await ae.linkPromise(A,e),p=!0}catch{p=!1}if(!p){let h=await a.readFilePromise(t);await U1e(o,A,h),r.mtimeMs=new Date().getTime();try{await ae.linkPromise(A,e)}catch(E){E&&E.code&&E.code=="EXDEV"&&(n.value="hardlinks-local",await a.copyFilePromise(t,e))}}}else await a.copyFilePromise(t,e);let u=r.mode&511;u!==420&&await ae.chmodPromise(e,u)}}var _1e=(o=>(o.FILE="file",o.DIRECTORY="directory",o.SYMLINK="symlink",o))(_1e||{}),kwt=async(t,e,{baseFs:r,globalHardlinksStore:o,nmMode:a,windowsLinkType:n,packageChecksum:u})=>{await ae.mkdirPromise(t,{recursive:!0});let A=async(E=wt.dot)=>{let w=z.join(e,E),v=await r.readdirPromise(w,{withFileTypes:!0}),b=new Map;for(let C of v){let R=z.join(E,C.name),L,_=z.join(w,C.name);if(C.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(_)).mode},a.value==="hardlinks-global"){let V=await bn.checksumFile(_,{baseFs:r,algorithm:"sha1"});L.digest=V}}else if(C.isDirectory())L={kind:"directory"};else if(C.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(_)};else throw new Error(`Unsupported file type (file: ${_}, mode: 0o${await r.statSync(_).mode.toString(8).padStart(6,"0")})`);if(b.set(R,L),C.isDirectory()&&R!==vi){let V=await A(R);for(let[re,oe]of V)b.set(re,oe)}}return b},p;if(a.value==="hardlinks-global"&&o&&u){let E=z.join(o,u.substring(0,2),`${u.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await ae.readFilePromise(E,"utf8"))))}catch{p=await A()}}else p=await A();let h=!1;for(let[E,w]of p){let v=z.join(e,E),b=z.join(t,E);if(w.kind==="directory")await ae.mkdirPromise(b,{recursive:!0});else if(w.kind==="file"){let C=w.mtimeMs;await Qwt({srcPath:v,dstPath:b,entry:w,nmMode:a,baseFs:r,globalHardlinksStore:o}),w.mtimeMs!==C&&(h=!0)}else w.kind==="symlink"&&await hj(z.resolve(z.dirname(b),w.symlinkTo),b,n)}if(a.value==="hardlinks-global"&&o&&h&&u){let E=z.join(o,u.substring(0,2),`${u.substring(2)}.json`);await ae.removePromise(E),await U1e(o,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function Fwt(t,e,r,o){let a=new Map,n=new Map,u=new Map,A=!1,p=(h,E,w,v,b)=>{let C=!0,R=z.join(h,E),L=new Set;if(E===vi||E.startsWith("@")){let V;try{V=ae.statSync(R)}catch{}C=!!V,V?V.mtimeMs>r?(A=!0,L=new Set(ae.readdirSync(R))):L=new Set(w.children.get(E).children.keys()):A=!0;let re=e.get(h);if(re){let oe=z.join(h,vi,dk),pe;try{pe=ae.statSync(oe)}catch{}if(!pe)A=!0;else if(pe.mtimeMs>r){A=!0;let he=new Set(ae.readdirSync(oe)),ve=new Map;n.set(h,ve);for(let[ge,le]of re)he.has(ge)&&ve.set(ge,le)}else n.set(h,re)}}else C=b.has(E);let _=w.children.get(E);if(C){let{linkType:V,locator:re}=_,oe={children:new Map,linkType:V,locator:re};if(v.children.set(E,oe),re){let pe=Ye.getSetWithDefault(u,re);pe.add(R),u.set(re,pe)}for(let pe of _.children.keys())p(R,pe,_,oe,L)}else _.locator&&o.storedBuildState.delete(Y.parseLocator(_.locator).locatorHash)};for(let[h,E]of t){let{linkType:w,locator:v}=E,b={children:new Map,linkType:w,locator:v};if(a.set(h,b),v){let C=Ye.getSetWithDefault(u,E.locator);C.add(h),u.set(E.locator,C)}E.children.has(vi)&&p(h,vi,E,b,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:u,installChangedByUser:A}}function H1e(t){let e=Y.parseDescriptor(t);return Y.isVirtualDescriptor(e)&&(e=Y.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Rwt(t,e,r,{loadManifest:o}){let a=new Map;for(let[A,{locations:p}]of t){let h=H1e(A)?null:await o(A,p[0]),E=new Map;if(h)for(let[w,v]of h.bin){let b=z.join(p[0],v);v!==""&&ae.existsSync(b)&&E.set(w,v)}a.set(A,E)}let n=new Map,u=(A,p,h)=>{let E=new Map,w=z.contains(r,A);if(h.locator&&w!==null){let v=a.get(h.locator);for(let[b,C]of v){let R=z.join(A,ue.toPortablePath(C));E.set(Li(b),R)}for(let[b,C]of h.children){let R=z.join(A,b),L=u(R,R,C);L.size>0&&n.set(A,new Map([...n.get(A)||new Map,...L]))}}else for(let[v,b]of h.children){let C=u(z.join(A,v),p,b);for(let[R,L]of C)E.set(R,L)}return E};for(let[A,p]of e){let h=u(A,A,p);h.size>0&&n.set(A,new Map([...n.get(A)||new Map,...h]))}return n}var R1e=(t,e)=>{if(!t||!e)return t===e;let r=Y.parseLocator(t);Y.isVirtualLocator(r)&&(r=Y.devirtualizeLocator(r));let o=Y.parseLocator(e);return Y.isVirtualLocator(o)&&(o=Y.devirtualizeLocator(o)),Y.areLocatorsEqual(r,o)};function gj(t){return z.join(t.get("globalFolder"),"store")}async function Twt(t,e,{baseFs:r,project:o,report:a,loadManifest:n,realLocatorChecksums:u}){let A=z.join(o.cwd,vi),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:w}=Fwt(t.locationTree,t.binSymlinks,t.mtimeMs,o),v=M1e(e,{skipPrefix:o.cwd}),b=[],C=async({srcDir:le,dstDir:Pe,linkType:g,globalHardlinksStore:De,nmMode:Ce,windowsLinkType:de,packageChecksum:ne})=>{let Z=(async()=>{try{g==="SOFT"?(await ae.mkdirPromise(z.dirname(Pe),{recursive:!0}),await hj(z.resolve(le),Pe,de)):await kwt(Pe,le,{baseFs:r,globalHardlinksStore:De,nmMode:Ce,windowsLinkType:de,packageChecksum:ne})}catch(me){throw me.message=`While persisting ${le} -> ${Pe} ${me.message}`,me}finally{oe.tick()}})().then(()=>b.splice(b.indexOf(Z),1));b.push(Z),b.length>F1e&&await Promise.race(b)},R=async(le,Pe,g)=>{let De=(async()=>{let Ce=async(de,ne,Z)=>{try{Z.innerLoop||await ae.mkdirPromise(ne,{recursive:!0});let me=await ae.readdirPromise(de,{withFileTypes:!0});for(let be of me){if(!Z.innerLoop&&be.name===dk)continue;let ut=z.join(de,be.name),H=z.join(ne,be.name);be.isDirectory()?(be.name!==vi||Z&&Z.innerLoop)&&(await ae.mkdirPromise(H,{recursive:!0}),await Ce(ut,H,{...Z,innerLoop:!0})):ve.value==="hardlinks-local"||ve.value==="hardlinks-global"?await ae.linkPromise(ut,H):await ae.copyFilePromise(ut,H,N1e.default.constants.COPYFILE_FICLONE)}}catch(me){throw Z.innerLoop||(me.message=`While cloning ${de} -> ${ne} ${me.message}`),me}finally{Z.innerLoop||oe.tick()}};await Ce(le,Pe,g)})().then(()=>b.splice(b.indexOf(De),1));b.push(De),b.length>F1e&&await Promise.race(b)},L=async(le,Pe,g)=>{if(g)for(let[De,Ce]of Pe.children){let de=g.children.get(De);await L(z.join(le,De),Ce,de)}else{Pe.children.has(vi)&&await _E(z.join(le,vi),{contentsOnly:!1});let De=z.basename(le)===vi&&v.has(z.join(z.dirname(le),z.sep));await _E(le,{contentsOnly:le===A,allowSymlink:De})}};for(let[le,Pe]of p){let g=v.get(le);for(let[De,Ce]of Pe.children){if(De===".")continue;let de=g&&g.children.get(De),ne=z.join(le,De);await L(ne,Ce,de)}}let _=async(le,Pe,g)=>{if(g){R1e(Pe.locator,g.locator)||await _E(le,{contentsOnly:Pe.linkType==="HARD"});for(let[De,Ce]of Pe.children){let de=g.children.get(De);await _(z.join(le,De),Ce,de)}}else{Pe.children.has(vi)&&await _E(z.join(le,vi),{contentsOnly:!0});let De=z.basename(le)===vi&&v.has(z.join(z.dirname(le),z.sep));await _E(le,{contentsOnly:Pe.linkType==="HARD",allowSymlink:De})}};for(let[le,Pe]of v){let g=p.get(le);for(let[De,Ce]of Pe.children){if(De===".")continue;let de=g&&g.children.get(De);await _(z.join(le,De),Ce,de)}}let V=new Map,re=[];for(let[le,Pe]of E)for(let g of Pe){let{locationRoot:De,segments:Ce}=mk(g,{skipPrefix:o.cwd}),de=v.get(De),ne=De;if(de){for(let Z of Ce)if(ne=z.join(ne,Z),de=de.children.get(Z),!de)break;if(de){let Z=R1e(de.locator,le),me=e.get(de.locator),be=me.target,ut=ne,H=me.linkType;if(Z)V.has(be)||V.set(be,ut);else if(be!==ut){let yt=Y.parseLocator(de.locator);Y.isVirtualLocator(yt)&&(yt=Y.devirtualizeLocator(yt)),re.push({srcDir:be,dstDir:ut,linkType:H,realLocatorHash:yt.locatorHash})}}}}for(let[le,{locations:Pe}]of e.entries())for(let g of Pe){let{locationRoot:De,segments:Ce}=mk(g,{skipPrefix:o.cwd}),de=p.get(De),ne=v.get(De),Z=De,me=e.get(le),be=Y.parseLocator(le);Y.isVirtualLocator(be)&&(be=Y.devirtualizeLocator(be));let ut=be.locatorHash,H=me.target,yt=g;if(H===yt)continue;let Me=me.linkType;for(let Te of Ce)ne=ne.children.get(Te);if(!de)re.push({srcDir:H,dstDir:yt,linkType:Me,realLocatorHash:ut});else for(let Te of Ce)if(Z=z.join(Z,Te),de=de.children.get(Te),!de){re.push({srcDir:H,dstDir:yt,linkType:Me,realLocatorHash:ut});break}}let oe=Js.progressViaCounter(re.length),pe=a.reportProgress(oe),he=o.configuration.get("nmMode"),ve={value:he},ge=o.configuration.get("winLinkType");try{let le=ve.value==="hardlinks-global"?`${gj(o.configuration)}/v1`:null;if(le&&!await ae.existsPromise(le)){await ae.mkdirpPromise(le);for(let g=0;g<256;g++)await ae.mkdirPromise(z.join(le,g.toString(16).padStart(2,"0")))}for(let g of re)(g.linkType==="SOFT"||!V.has(g.srcDir))&&(V.set(g.srcDir,g.dstDir),await C({...g,globalHardlinksStore:le,nmMode:ve,windowsLinkType:ge,packageChecksum:u.get(g.realLocatorHash)||null}));await Promise.all(b),b.length=0;for(let g of re){let De=V.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==De&&await R(De,g.dstDir,{nmMode:ve})}await Promise.all(b),await ae.mkdirPromise(A,{recursive:!0});let Pe=await Rwt(e,v,o.cwd,{loadManifest:n});await Nwt(h,Pe,o.cwd,ge),await bwt(o,e,Pe,ve,{installChangedByUser:w}),he=="hardlinks-global"&&ve.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{pe.stop()}}async function Nwt(t,e,r,o){for(let a of t.keys()){if(z.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=z.join(a,vi,dk);await ae.removePromise(n)}}for(let[a,n]of e){if(z.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let u=z.join(a,vi,dk),A=t.get(a)||new Map;await ae.mkdirPromise(u,{recursive:!0});for(let p of A.keys())n.has(p)||(await ae.removePromise(z.join(u,p)),process.platform==="win32"&&await ae.removePromise(z.join(u,Li(`${p}.cmd`))));for(let[p,h]of n){let E=A.get(p),w=z.join(u,p);E!==h&&(process.platform==="win32"?await(0,T1e.default)(ue.fromPortablePath(h),ue.fromPortablePath(w),{createPwshFile:!1}):(await ae.removePromise(w),await hj(h,w,o),z.contains(r,await ae.realpathPromise(h))!==null&&await ae.chmodPromise(h,493)))}}}Ke();bt();_c();var zB=class extends Bh{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new dj(r)}},dj=class extends Em{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let o=new pi({baseFs:new Ul({maxOpenFiles:80,readOnlyArchives:!0})}),a=y1e(r,this.opts.project.cwd,o),{tree:n,errors:u}=LB(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:w,text:v}of u)this.opts.report.reportError(w,v);return}let A=new Map;r.fallbackPool=A;let p=(w,v)=>{let b=Y.parseLocator(v.locator),C=Y.stringifyIdent(b);C===w?A.set(w,b.reference):A.set(w,[C,b.reference])},h=z.join(this.opts.project.cwd,Lr.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let w of E.dirList){let v=z.join(h,w),b=n.get(v);if(typeof b>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in b)p(w,b);else for(let C of b.dirList){let R=z.join(v,C),L=n.get(R);if(typeof L>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in L)p(`${w}/${C}`,L);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var Lwt={hooks:{cleanGlobalArtifacts:async t=>{let e=gj(t);await ae.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[JB,zB]},Owt=Lwt;var hG={};Yt(hG,{NpmHttpFetcher:()=>ZB,NpmRemapResolver:()=>$B,NpmSemverFetcher:()=>yl,NpmSemverResolver:()=>ev,NpmTagResolver:()=>tv,default:()=>WBt,npmConfigUtils:()=>Wn,npmHttpUtils:()=>an,npmPublishUtils:()=>ZE});Ke();var Y1e=tt(si());var _n="npm:";var an={};Yt(an,{AuthType:()=>W1e,customPackageError:()=>np,del:()=>qwt,get:()=>pu,getIdentUrl:()=>Ph,handleInvalidAuthenticationError:()=>Sh,post:()=>_wt,put:()=>Hwt});Ke();Ke();var Ej=tt(z1()),G1e=Ie("url");var Wn={};Yt(Wn,{RegistryType:()=>q1e,getAuditRegistry:()=>Mwt,getAuthConfiguration:()=>Cj,getDefaultRegistry:()=>XB,getPublishRegistry:()=>Uwt,getRegistryConfiguration:()=>j1e,getScopeConfiguration:()=>yj,getScopeRegistry:()=>rp,normalizeRegistry:()=>EA});var q1e=(o=>(o.AUDIT_REGISTRY="npmAuditRegistry",o.FETCH_REGISTRY="npmRegistryServer",o.PUBLISH_REGISTRY="npmPublishRegistry",o))(q1e||{});function EA(t){return t.replace(/\/$/,"")}function Mwt({configuration:t}){return XB({configuration:t,type:"npmAuditRegistry"})}function Uwt(t,{configuration:e}){var r;return(r=t.publishConfig)!=null&&r.registry?EA(t.publishConfig.registry):t.name?rp(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):XB({configuration:e,type:"npmPublishRegistry"})}function rp(t,{configuration:e,type:r="npmRegistryServer"}){let o=yj(t,{configuration:e});if(o===null)return XB({configuration:e,type:r});let a=o.get(r);return a===null?XB({configuration:e,type:r}):EA(a)}function XB({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return EA(r!==null?r:t.get("npmRegistryServer"))}function j1e(t,{configuration:e}){let r=e.get("npmRegistries"),o=EA(t),a=r.get(o);if(typeof a<"u")return a;let n=r.get(o.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}function yj(t,{configuration:e}){if(t===null)return null;let o=e.get("npmScopes").get(t);return o||null}function Cj(t,{configuration:e,ident:r}){let o=r&&yj(r.scope,{configuration:e});return(o==null?void 0:o.get("npmAuthIdent"))||(o==null?void 0:o.get("npmAuthToken"))?o:j1e(t,{configuration:e})||e}var W1e=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(W1e||{});async function Sh(t,{attemptedAs:e,registry:r,headers:o,configuration:a}){var n,u;if(Ck(t))throw new Vt(41,"Invalid OTP token");if(((n=t.originalError)==null?void 0:n.name)==="HTTPError"&&((u=t.originalError)==null?void 0:u.response.statusCode)===401)throw new Vt(41,`Invalid authentication (${typeof e!="string"?`as ${await Gwt(r,o,{configuration:a})}`:`attempted as ${e}`})`)}function np(t,e){var o;let r=(o=t.response)==null?void 0:o.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${ye.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function Ph(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}async function pu(t,{configuration:e,headers:r,ident:o,authType:a,registry:n,...u}){if(o&&typeof n>"u"&&(n=rp(o.scope,{configuration:e})),o&&o.scope&&typeof a>"u"&&(a=1),typeof n!="string")throw new Error("Assertion failed: The registry should be a string");let A=await yk(n,{authType:a,configuration:e,ident:o});A&&(r={...r,authorization:A});try{return await ln.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...u})}catch(p){throw await Sh(p,{registry:n,configuration:e,headers:r}),p}}async function _wt(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){if(n&&typeof A>"u"&&(A=rp(n.scope,{configuration:o})),typeof A!="string")throw new Error("Assertion failed: The registry should be a string");let E=await yk(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...HE(p)});try{return await ln.post(A+t,e,{configuration:o,headers:a,...h})}catch(w){if(!Ck(w)||p)throw await Sh(w,{attemptedAs:r,registry:A,configuration:o,headers:a}),w;p=await Ij(w,{configuration:o});let v={...a,...HE(p)};try{return await ln.post(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(b){throw await Sh(b,{attemptedAs:r,registry:A,configuration:o,headers:a}),b}}}async function Hwt(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){if(n&&typeof A>"u"&&(A=rp(n.scope,{configuration:o})),typeof A!="string")throw new Error("Assertion failed: The registry should be a string");let E=await yk(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...HE(p)});try{return await ln.put(A+t,e,{configuration:o,headers:a,...h})}catch(w){if(!Ck(w))throw await Sh(w,{attemptedAs:r,registry:A,configuration:o,headers:a}),w;p=await Ij(w,{configuration:o});let v={...a,...HE(p)};try{return await ln.put(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(b){throw await Sh(b,{attemptedAs:r,registry:A,configuration:o,headers:a}),b}}}async function qwt(t,{attemptedAs:e,configuration:r,headers:o,ident:a,authType:n=3,registry:u,otp:A,...p}){if(a&&typeof u>"u"&&(u=rp(a.scope,{configuration:r})),typeof u!="string")throw new Error("Assertion failed: The registry should be a string");let h=await yk(u,{authType:n,configuration:r,ident:a});h&&(o={...o,authorization:h}),A&&(o={...o,...HE(A)});try{return await ln.del(u+t,{configuration:r,headers:o,...p})}catch(E){if(!Ck(E)||A)throw await Sh(E,{attemptedAs:e,registry:u,configuration:r,headers:o}),E;A=await Ij(E,{configuration:r});let w={...o,...HE(A)};try{return await ln.del(`${u}${t}`,{configuration:r,headers:w,...p})}catch(v){throw await Sh(v,{attemptedAs:e,registry:u,configuration:r,headers:o}),v}}}async function yk(t,{authType:e=2,configuration:r,ident:o}){let a=Cj(t,{configuration:r,ident:o}),n=jwt(a,e);if(!n)return null;let u=await r.reduceHook(A=>A.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:o});if(u)return u;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let A=a.get("npmAuthIdent");return A.includes(":")?`Basic ${Buffer.from(A).toString("base64")}`:`Basic ${A}`}if(n&&e!==1)throw new Vt(33,"No authentication configured for request");return null}function jwt(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function Gwt(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await ln.get(new G1e.URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function Ij(t,{configuration:e}){var a;let r=(a=t.originalError)==null?void 0:a.response.headers["npm-notice"];if(r&&(await Et.start({configuration:e,stdout:process.stdout,includeFooter:!1},async n=>{if(n.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,ye.pretty(e,"$1",ye.Type.URL))),!process.env.YARN_IS_TEST_ENV){let u=r.match(/open (https?:\/\/\S+)/i);if(u&&As.openUrl){let{openNow:A}=await(0,Ej.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});A&&(await As.openUrl(u[1])||(n.reportSeparator(),n.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` 665`}}}}let p=t.cwd,h=J.join(p,vi,U1e);a&&await oe.removePromise(h),await oe.changeFilePromise(h,n,{automaticNewlines:!0})}async function pj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=J.join(r,vi,U1e),a;try{a=await oe.statPromise(o)}catch{}if(!a)return null;let n=Yi(await oe.readFilePromise(o,"utf8"));if(n.__metadata.version>M1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,C]of Object.entries(n)){let w=C.locations.map(b=>J.join(r,b)),v=C.bin;if(v)for(let[b,E]of Object.entries(v)){let R=J.join(r,ue.toPortablePath(b)),L=We.getMapWithDefault(p,R);for(let[_,V]of Object.entries(E))L.set(Li(_),ue.toPortablePath([R,vi,V].join(J.sep)))}if(A.set(h,{target:wt.dot,linkType:"HARD",locations:w,aliases:C.aliases||[]}),e&&C.aliases)for(let b of C.aliases){let{scope:E,name:R}=Y.parseLocator(h),L=Y.makeLocator(Y.makeIdent(E,R),b),_=Y.stringifyLocator(L);A.set(_,{target:wt.dot,linkType:"HARD",locations:w,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:_1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var _C=async(t,e)=>{if(t.split(J.sep).indexOf(vi)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop){let o=e.allowSymlink?await oe.statPromise(t):await oe.lstatPromise(t);if(e.allowSymlink&&!o.isDirectory()||!e.allowSymlink&&o.isSymbolicLink()){await oe.unlinkPromise(t);return}}let r=await oe.readdirPromise(t,{withFileTypes:!0});for(let o of r){let a=J.join(t,Li(o.name));o.isDirectory()?(o.name!==vi||e&&e.innerLoop)&&await _C(a,{innerLoop:!0,contentsOnly:!1}):await oe.unlinkPromise(a)}e.contentsOnly||await oe.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},T1e=4,Ck=(t,{skipPrefix:e})=>{let r=J.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(J.sep).filter(p=>p!==""),a=o.indexOf(vi),n=o.slice(0,a).join(J.sep),u=J.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},_1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&J.contains(e,n.target)!==null){let A=We.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=Ck(u,{skipPrefix:e}),h=We.getFactoryWithDefault(r,A,o);for(let C=0;C<p.length;++C){let w=p[C];if(w!=="."){let v=We.getFactoryWithDefault(h.children,w,o);h.children.set(w,v),h=v}C===p.length-1&&(h.locator=a,h.linkType=n.linkType)}}}return r},dj=async(t,e,r)=>{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await oe.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await oe.symlinkPromise(t,e,"junction");return}}await oe.symlinkPromise(J.relative(J.dirname(e),t),e)};async function H1e(t,e,r){let o=J.join(t,Li(`${hj.default.randomBytes(16).toString("hex")}.tmp`));try{await oe.writeFilePromise(o,r);try{await oe.linkPromise(o,e)}catch{}}finally{await oe.unlinkPromise(o)}}async function Nwt({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind===q1e.FILE){if(n.value==="hardlinks-global"&&o&&r.digest){let A=J.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await oe.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs<r.mtimeMs-Fwt))if(await bn.checksumFile(A,{baseFs:oe,algorithm:"sha1"})!==r.digest){let w=J.join(o,Li(`${hj.default.randomBytes(16).toString("hex")}.tmp`));await oe.renamePromise(A,w);let v=await a.readFilePromise(t);await oe.writeFilePromise(w,v);try{await oe.linkPromise(w,A),r.mtimeMs=new Date().getTime(),await oe.unlinkPromise(w)}catch{}}else r.mtimeMs||(r.mtimeMs=Math.ceil(h.mtimeMs));await oe.linkPromise(A,e),p=!0}catch{p=!1}if(!p){let h=await a.readFilePromise(t);await H1e(o,A,h),r.mtimeMs=new Date().getTime();try{await oe.linkPromise(A,e)}catch(C){C&&C.code&&C.code=="EXDEV"&&(n.value="hardlinks-local",await a.copyFilePromise(t,e))}}}else await a.copyFilePromise(t,e);let u=r.mode&511;u!==420&&await oe.chmodPromise(e,u)}}var q1e=(o=>(o.FILE="file",o.DIRECTORY="directory",o.SYMLINK="symlink",o))(q1e||{}),Lwt=async(t,e,{baseFs:r,globalHardlinksStore:o,nmMode:a,windowsLinkType:n,packageChecksum:u})=>{await oe.mkdirPromise(t,{recursive:!0});let A=async(C=wt.dot)=>{let w=J.join(e,C),v=await r.readdirPromise(w,{withFileTypes:!0}),b=new Map;for(let E of v){let R=J.join(C,E.name),L,_=J.join(w,E.name);if(E.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(_)).mode},a.value==="hardlinks-global"){let V=await bn.checksumFile(_,{baseFs:r,algorithm:"sha1"});L.digest=V}}else if(E.isDirectory())L={kind:"directory"};else if(E.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(_)};else throw new Error(`Unsupported file type (file: ${_}, mode: 0o${await r.statSync(_).mode.toString(8).padStart(6,"0")})`);if(b.set(R,L),E.isDirectory()&&R!==vi){let V=await A(R);for(let[re,ae]of V)b.set(re,ae)}}return b},p;if(a.value==="hardlinks-global"&&o&&u){let C=J.join(o,u.substring(0,2),`${u.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await oe.readFilePromise(C,"utf8"))))}catch{p=await A()}}else p=await A();let h=!1;for(let[C,w]of p){let v=J.join(e,C),b=J.join(t,C);if(w.kind==="directory")await oe.mkdirPromise(b,{recursive:!0});else if(w.kind==="file"){let E=w.mtimeMs;await Nwt({srcPath:v,dstPath:b,entry:w,nmMode:a,baseFs:r,globalHardlinksStore:o}),w.mtimeMs!==E&&(h=!0)}else w.kind==="symlink"&&await dj(J.resolve(J.dirname(b),w.symlinkTo),b,n)}if(a.value==="hardlinks-global"&&o&&h&&u){let C=J.join(o,u.substring(0,2),`${u.substring(2)}.json`);await oe.removePromise(C),await H1e(o,C,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function Owt(t,e,r,o){let a=new Map,n=new Map,u=new Map,A=!1,p=(h,C,w,v,b)=>{let E=!0,R=J.join(h,C),L=new Set;if(C===vi||C.startsWith("@")){let V;try{V=oe.statSync(R)}catch{}E=!!V,V?V.mtimeMs>r?(A=!0,L=new Set(oe.readdirSync(R))):L=new Set(w.children.get(C).children.keys()):A=!0;let re=e.get(h);if(re){let ae=J.join(h,vi,Ek),he;try{he=oe.statSync(ae)}catch{}if(!he)A=!0;else if(he.mtimeMs>r){A=!0;let pe=new Set(oe.readdirSync(ae)),De=new Map;n.set(h,De);for(let[ge,le]of re)pe.has(ge)&&De.set(ge,le)}else n.set(h,re)}}else E=b.has(C);let _=w.children.get(C);if(E){let{linkType:V,locator:re}=_,ae={children:new Map,linkType:V,locator:re};if(v.children.set(C,ae),re){let he=We.getSetWithDefault(u,re);he.add(R),u.set(re,he)}for(let he of _.children.keys())p(R,he,_,ae,L)}else _.locator&&o.storedBuildState.delete(Y.parseLocator(_.locator).locatorHash)};for(let[h,C]of t){let{linkType:w,locator:v}=C,b={children:new Map,linkType:w,locator:v};if(a.set(h,b),v){let E=We.getSetWithDefault(u,C.locator);E.add(h),u.set(C.locator,E)}C.children.has(vi)&&p(h,vi,C,b,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:u,installChangedByUser:A}}function j1e(t){let e=Y.parseDescriptor(t);return Y.isVirtualDescriptor(e)&&(e=Y.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Mwt(t,e,r,{loadManifest:o}){let a=new Map;for(let[A,{locations:p}]of t){let h=j1e(A)?null:await o(A,p[0]),C=new Map;if(h)for(let[w,v]of h.bin){let b=J.join(p[0],v);v!==""&&oe.existsSync(b)&&C.set(w,v)}a.set(A,C)}let n=new Map,u=(A,p,h)=>{let C=new Map,w=J.contains(r,A);if(h.locator&&w!==null){let v=a.get(h.locator);for(let[b,E]of v){let R=J.join(A,ue.toPortablePath(E));C.set(Li(b),R)}for(let[b,E]of h.children){let R=J.join(A,b),L=u(R,R,E);L.size>0&&n.set(A,new Map([...n.get(A)||new Map,...L]))}}else for(let[v,b]of h.children){let E=u(J.join(A,v),p,b);for(let[R,L]of E)C.set(R,L)}return C};for(let[A,p]of e){let h=u(A,A,p);h.size>0&&n.set(A,new Map([...n.get(A)||new Map,...h]))}return n}var N1e=(t,e)=>{if(!t||!e)return t===e;let r=Y.parseLocator(t);Y.isVirtualLocator(r)&&(r=Y.devirtualizeLocator(r));let o=Y.parseLocator(e);return Y.isVirtualLocator(o)&&(o=Y.devirtualizeLocator(o)),Y.areLocatorsEqual(r,o)};function mj(t){return J.join(t.get("globalFolder"),"store")}async function Uwt(t,e,{baseFs:r,project:o,report:a,loadManifest:n,realLocatorChecksums:u}){let A=J.join(o.cwd,vi),{locationTree:p,binSymlinks:h,locatorLocations:C,installChangedByUser:w}=Owt(t.locationTree,t.binSymlinks,t.mtimeMs,o),v=_1e(e,{skipPrefix:o.cwd}),b=[],E=async({srcDir:le,dstDir:Pe,linkType:g,globalHardlinksStore:ve,nmMode:Ee,windowsLinkType:de,packageChecksum:ne})=>{let Z=(async()=>{try{g==="SOFT"?(await oe.mkdirPromise(J.dirname(Pe),{recursive:!0}),await dj(J.resolve(le),Pe,de)):await Lwt(Pe,le,{baseFs:r,globalHardlinksStore:ve,nmMode:Ee,windowsLinkType:de,packageChecksum:ne})}catch(me){throw me.message=`While persisting ${le} -> ${Pe} ${me.message}`,me}finally{ae.tick()}})().then(()=>b.splice(b.indexOf(Z),1));b.push(Z),b.length>T1e&&await Promise.race(b)},R=async(le,Pe,g)=>{let ve=(async()=>{let Ee=async(de,ne,Z)=>{try{Z.innerLoop||await oe.mkdirPromise(ne,{recursive:!0});let me=await oe.readdirPromise(de,{withFileTypes:!0});for(let be of me){if(!Z.innerLoop&&be.name===Ek)continue;let ut=J.join(de,be.name),H=J.join(ne,be.name);be.isDirectory()?(be.name!==vi||Z&&Z.innerLoop)&&(await oe.mkdirPromise(H,{recursive:!0}),await Ee(ut,H,{...Z,innerLoop:!0})):De.value==="hardlinks-local"||De.value==="hardlinks-global"?await oe.linkPromise(ut,H):await oe.copyFilePromise(ut,H,O1e.default.constants.COPYFILE_FICLONE)}}catch(me){throw Z.innerLoop||(me.message=`While cloning ${de} -> ${ne} ${me.message}`),me}finally{Z.innerLoop||ae.tick()}};await Ee(le,Pe,g)})().then(()=>b.splice(b.indexOf(ve),1));b.push(ve),b.length>T1e&&await Promise.race(b)},L=async(le,Pe,g)=>{if(g)for(let[ve,Ee]of Pe.children){let de=g.children.get(ve);await L(J.join(le,ve),Ee,de)}else{Pe.children.has(vi)&&await _C(J.join(le,vi),{contentsOnly:!1});let ve=J.basename(le)===vi&&v.has(J.join(J.dirname(le),J.sep));await _C(le,{contentsOnly:le===A,allowSymlink:ve})}};for(let[le,Pe]of p){let g=v.get(le);for(let[ve,Ee]of Pe.children){if(ve===".")continue;let de=g&&g.children.get(ve),ne=J.join(le,ve);await L(ne,Ee,de)}}let _=async(le,Pe,g)=>{if(g){N1e(Pe.locator,g.locator)||await _C(le,{contentsOnly:Pe.linkType==="HARD"});for(let[ve,Ee]of Pe.children){let de=g.children.get(ve);await _(J.join(le,ve),Ee,de)}}else{Pe.children.has(vi)&&await _C(J.join(le,vi),{contentsOnly:!0});let ve=J.basename(le)===vi&&v.has(J.join(J.dirname(le),J.sep));await _C(le,{contentsOnly:Pe.linkType==="HARD",allowSymlink:ve})}};for(let[le,Pe]of v){let g=p.get(le);for(let[ve,Ee]of Pe.children){if(ve===".")continue;let de=g&&g.children.get(ve);await _(J.join(le,ve),Ee,de)}}let V=new Map,re=[];for(let[le,Pe]of C)for(let g of Pe){let{locationRoot:ve,segments:Ee}=Ck(g,{skipPrefix:o.cwd}),de=v.get(ve),ne=ve;if(de){for(let Z of Ee)if(ne=J.join(ne,Z),de=de.children.get(Z),!de)break;if(de){let Z=N1e(de.locator,le),me=e.get(de.locator),be=me.target,ut=ne,H=me.linkType;if(Z)V.has(be)||V.set(be,ut);else if(be!==ut){let yt=Y.parseLocator(de.locator);Y.isVirtualLocator(yt)&&(yt=Y.devirtualizeLocator(yt)),re.push({srcDir:be,dstDir:ut,linkType:H,realLocatorHash:yt.locatorHash})}}}}for(let[le,{locations:Pe}]of e.entries())for(let g of Pe){let{locationRoot:ve,segments:Ee}=Ck(g,{skipPrefix:o.cwd}),de=p.get(ve),ne=v.get(ve),Z=ve,me=e.get(le),be=Y.parseLocator(le);Y.isVirtualLocator(be)&&(be=Y.devirtualizeLocator(be));let ut=be.locatorHash,H=me.target,yt=g;if(H===yt)continue;let Me=me.linkType;for(let Te of Ee)ne=ne.children.get(Te);if(!de)re.push({srcDir:H,dstDir:yt,linkType:Me,realLocatorHash:ut});else for(let Te of Ee)if(Z=J.join(Z,Te),de=de.children.get(Te),!de){re.push({srcDir:H,dstDir:yt,linkType:Me,realLocatorHash:ut});break}}let ae=Js.progressViaCounter(re.length),he=a.reportProgress(ae),pe=o.configuration.get("nmMode"),De={value:pe},ge=o.configuration.get("winLinkType");try{let le=De.value==="hardlinks-global"?`${mj(o.configuration)}/v1`:null;if(le&&!await oe.existsPromise(le)){await oe.mkdirpPromise(le);for(let g=0;g<256;g++)await oe.mkdirPromise(J.join(le,g.toString(16).padStart(2,"0")))}for(let g of re)(g.linkType==="SOFT"||!V.has(g.srcDir))&&(V.set(g.srcDir,g.dstDir),await E({...g,globalHardlinksStore:le,nmMode:De,windowsLinkType:ge,packageChecksum:u.get(g.realLocatorHash)||null}));await Promise.all(b),b.length=0;for(let g of re){let ve=V.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==ve&&await R(ve,g.dstDir,{nmMode:De})}await Promise.all(b),await oe.mkdirPromise(A,{recursive:!0});let Pe=await Mwt(e,v,o.cwd,{loadManifest:n});await _wt(h,Pe,o.cwd,ge),await Twt(o,e,Pe,De,{installChangedByUser:w}),pe=="hardlinks-global"&&De.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{he.stop()}}async function _wt(t,e,r,o){for(let a of t.keys()){if(J.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=J.join(a,vi,Ek);await oe.removePromise(n)}}for(let[a,n]of e){if(J.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let u=J.join(a,vi,Ek),A=t.get(a)||new Map;await oe.mkdirPromise(u,{recursive:!0});for(let p of A.keys())n.has(p)||(await oe.removePromise(J.join(u,p)),process.platform==="win32"&&await oe.removePromise(J.join(u,Li(`${p}.cmd`))));for(let[p,h]of n){let C=A.get(p),w=J.join(u,p);C!==h&&(process.platform==="win32"?await(0,L1e.default)(ue.fromPortablePath(h),ue.fromPortablePath(w),{createPwshFile:!1}):(await oe.removePromise(w),await dj(h,w,o),J.contains(r,await oe.realpathPromise(h))!==null&&await oe.chmodPromise(h,493)))}}}Ke();St();Hc();var ZB=class extends vh{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new yj(r)}},yj=class extends Cm{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let o=new pi({baseFs:new _l({maxOpenFiles:80,readOnlyArchives:!0})}),a=C1e(r,this.opts.project.cwd,o),{tree:n,errors:u}=MB(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:w,text:v}of u)this.opts.report.reportError(w,v);return}let A=new Map;r.fallbackPool=A;let p=(w,v)=>{let b=Y.parseLocator(v.locator),E=Y.stringifyIdent(b);E===w?A.set(w,b.reference):A.set(w,[E,b.reference])},h=J.join(this.opts.project.cwd,Lr.nodeModules),C=n.get(h);if(!(typeof C>"u")){if("target"in C)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let w of C.dirList){let v=J.join(h,w),b=n.get(v);if(typeof b>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in b)p(w,b);else for(let E of b.dirList){let R=J.join(v,E),L=n.get(R);if(typeof L>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in L)p(`${w}/${E}`,L);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var Hwt={hooks:{cleanGlobalArtifacts:async t=>{let e=mj(t);await oe.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[XB,ZB]},qwt=Hwt;var dG={};Yt(dG,{NpmHttpFetcher:()=>ev,NpmRemapResolver:()=>tv,NpmSemverFetcher:()=>El,NpmSemverResolver:()=>rv,NpmTagResolver:()=>nv,default:()=>zBt,npmConfigUtils:()=>Wn,npmHttpUtils:()=>an,npmPublishUtils:()=>ZC});Ke();var V1e=tt(si());var _n="npm:";var an={};Yt(an,{AuthType:()=>K1e,customPackageError:()=>sp,del:()=>Kwt,get:()=>pu,getIdentUrl:()=>xh,handleInvalidAuthenticationError:()=>Ph,post:()=>Wwt,put:()=>Ywt});Ke();Ke();var wj=tt(Z1()),Y1e=Ie("url");var Wn={};Yt(Wn,{RegistryType:()=>G1e,getAuditRegistry:()=>jwt,getAuthConfiguration:()=>Ij,getDefaultRegistry:()=>$B,getPublishRegistry:()=>Gwt,getRegistryConfiguration:()=>W1e,getScopeConfiguration:()=>Cj,getScopeRegistry:()=>ip,normalizeRegistry:()=>IA});var G1e=(o=>(o.AUDIT_REGISTRY="npmAuditRegistry",o.FETCH_REGISTRY="npmRegistryServer",o.PUBLISH_REGISTRY="npmPublishRegistry",o))(G1e||{});function IA(t){return t.replace(/\/$/,"")}function jwt({configuration:t}){return $B({configuration:t,type:"npmAuditRegistry"})}function Gwt(t,{configuration:e}){var r;return(r=t.publishConfig)!=null&&r.registry?IA(t.publishConfig.registry):t.name?ip(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):$B({configuration:e,type:"npmPublishRegistry"})}function ip(t,{configuration:e,type:r="npmRegistryServer"}){let o=Cj(t,{configuration:e});if(o===null)return $B({configuration:e,type:r});let a=o.get(r);return a===null?$B({configuration:e,type:r}):IA(a)}function $B({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return IA(r!==null?r:t.get("npmRegistryServer"))}function W1e(t,{configuration:e}){let r=e.get("npmRegistries"),o=IA(t),a=r.get(o);if(typeof a<"u")return a;let n=r.get(o.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}function Cj(t,{configuration:e}){if(t===null)return null;let o=e.get("npmScopes").get(t);return o||null}function Ij(t,{configuration:e,ident:r}){let o=r&&Cj(r.scope,{configuration:e});return(o==null?void 0:o.get("npmAuthIdent"))||(o==null?void 0:o.get("npmAuthToken"))?o:W1e(t,{configuration:e})||e}var K1e=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(K1e||{});async function Ph(t,{attemptedAs:e,registry:r,headers:o,configuration:a}){var n,u;if(wk(t))throw new Vt(41,"Invalid OTP token");if(((n=t.originalError)==null?void 0:n.name)==="HTTPError"&&((u=t.originalError)==null?void 0:u.response.statusCode)===401)throw new Vt(41,`Invalid authentication (${typeof e!="string"?`as ${await Jwt(r,o,{configuration:a})}`:`attempted as ${e}`})`)}function sp(t,e){var o;let r=(o=t.response)==null?void 0:o.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${ye.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function xh(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}async function pu(t,{configuration:e,headers:r,ident:o,authType:a,registry:n,...u}){if(o&&typeof n>"u"&&(n=ip(o.scope,{configuration:e})),o&&o.scope&&typeof a>"u"&&(a=1),typeof n!="string")throw new Error("Assertion failed: The registry should be a string");let A=await Ik(n,{authType:a,configuration:e,ident:o});A&&(r={...r,authorization:A});try{return await ln.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...u})}catch(p){throw await Ph(p,{registry:n,configuration:e,headers:r}),p}}async function Wwt(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){if(n&&typeof A>"u"&&(A=ip(n.scope,{configuration:o})),typeof A!="string")throw new Error("Assertion failed: The registry should be a string");let C=await Ik(A,{authType:u,configuration:o,ident:n});C&&(a={...a,authorization:C}),p&&(a={...a,...HC(p)});try{return await ln.post(A+t,e,{configuration:o,headers:a,...h})}catch(w){if(!wk(w)||p)throw await Ph(w,{attemptedAs:r,registry:A,configuration:o,headers:a}),w;p=await Bj(w,{configuration:o});let v={...a,...HC(p)};try{return await ln.post(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(b){throw await Ph(b,{attemptedAs:r,registry:A,configuration:o,headers:a}),b}}}async function Ywt(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){if(n&&typeof A>"u"&&(A=ip(n.scope,{configuration:o})),typeof A!="string")throw new Error("Assertion failed: The registry should be a string");let C=await Ik(A,{authType:u,configuration:o,ident:n});C&&(a={...a,authorization:C}),p&&(a={...a,...HC(p)});try{return await ln.put(A+t,e,{configuration:o,headers:a,...h})}catch(w){if(!wk(w))throw await Ph(w,{attemptedAs:r,registry:A,configuration:o,headers:a}),w;p=await Bj(w,{configuration:o});let v={...a,...HC(p)};try{return await ln.put(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(b){throw await Ph(b,{attemptedAs:r,registry:A,configuration:o,headers:a}),b}}}async function Kwt(t,{attemptedAs:e,configuration:r,headers:o,ident:a,authType:n=3,registry:u,otp:A,...p}){if(a&&typeof u>"u"&&(u=ip(a.scope,{configuration:r})),typeof u!="string")throw new Error("Assertion failed: The registry should be a string");let h=await Ik(u,{authType:n,configuration:r,ident:a});h&&(o={...o,authorization:h}),A&&(o={...o,...HC(A)});try{return await ln.del(u+t,{configuration:r,headers:o,...p})}catch(C){if(!wk(C)||A)throw await Ph(C,{attemptedAs:e,registry:u,configuration:r,headers:o}),C;A=await Bj(C,{configuration:r});let w={...o,...HC(A)};try{return await ln.del(`${u}${t}`,{configuration:r,headers:w,...p})}catch(v){throw await Ph(v,{attemptedAs:e,registry:u,configuration:r,headers:o}),v}}}async function Ik(t,{authType:e=2,configuration:r,ident:o}){let a=Ij(t,{configuration:r,ident:o}),n=Vwt(a,e);if(!n)return null;let u=await r.reduceHook(A=>A.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:o});if(u)return u;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let A=a.get("npmAuthIdent");return A.includes(":")?`Basic ${Buffer.from(A).toString("base64")}`:`Basic ${A}`}if(n&&e!==1)throw new Vt(33,"No authentication configured for request");return null}function Vwt(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function Jwt(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await ln.get(new Y1e.URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function Bj(t,{configuration:e}){var a;let r=(a=t.originalError)==null?void 0:a.response.headers["npm-notice"];if(r&&(await Ct.start({configuration:e,stdout:process.stdout,includeFooter:!1},async n=>{if(n.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,ye.pretty(e,"$1",ye.Type.URL))),!process.env.YARN_IS_TEST_ENV){let u=r.match(/open (https?:\/\/\S+)/i);if(u&&As.openUrl){let{openNow:A}=await(0,wj.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});A&&(await As.openUrl(u[1])||(n.reportSeparator(),n.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(`
666`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,Ej.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` 666`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,wj.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`
667`),o}function Ck(t){var e,r;if(((e=t.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((r=t.originalError)==null?void 0:r.response.headers["www-authenticate"].split(/,\s*/).map(a=>a.toLowerCase())).includes("otp")}catch{return!1}}function HE(t){return{["npm-otp"]:t}}var ZB=class{supports(e,r){if(!e.reference.startsWith(_n))return!1;let{selector:o,params:a}=Y.parseRange(e.reference);return!(!Y1e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=Y.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await pu(o.__archiveUrl,{customErrorMessage:np,configuration:r.project.configuration,ident:e});return await Ji.convertToZip(a,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})}};Ke();var $B=class{supportsDescriptor(e,r){return!(!e.range.startsWith(_n)||!Y.tryParseDescriptor(e.range.slice(_n.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(Y.parseDescriptor(e.range.slice(_n.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(Y.parseDescriptor(e.range.slice(_n.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(Y.parseDescriptor(e.range.slice(_n.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ke();Ke();var K1e=tt(si()),V1e=Ie("url");var yl=class{supports(e,r){if(!e.reference.startsWith(_n))return!1;let o=new V1e.URL(e.reference);return!(!K1e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await pu(yl.getLocatorUrl(e),{customErrorMessage:np,configuration:r.project.configuration,ident:e})}catch{o=await pu(yl.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:np,configuration:r.project.configuration,ident:e})}return await Ji.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=rp(e.scope,{configuration:o}),n=yl.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Tr.clean(e.reference.slice(_n.length));if(r===null)throw new Vt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ph(e)}/-/${e.name}-${r}.tgz`}};Ke();Ke();Ke();var J1e=tt(si());var Ek=Y.makeIdent(null,"node-gyp"),Wwt=/\b(node-gyp|prebuild-install)\b/,ev=class{supportsDescriptor(e,r){return e.range.startsWith(_n)?!!Tr.validRange(e.range.slice(_n.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(_n))return!1;let{selector:o}=Y.parseRange(e.reference);return!!J1e.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=Tr.validRange(e.range.slice(_n.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(_n.length)}`);let n=await pu(Ph(e),{customErrorMessage:np,configuration:o.project.configuration,ident:e,jsonResponse:!0}),u=Ye.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Tr.SemVer(h);if(a.test(E))return E}catch{}return Ye.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=Y.makeLocator(e,`${_n}${h.raw}`),w=n.versions[h.raw].dist.tarball;return yl.isConventionalTarballUrl(E,w,{configuration:o.project.configuration})?E:Y.bindLocator(E,{__archiveUrl:w})})}async getSatisfying(e,r,o,a){let n=Tr.validRange(e.range.slice(_n.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(_n.length)}`);return{locators:Ye.mapAndFilter(o,p=>{if(p.identHash!==e.identHash)return Ye.mapAndFilter.skip;let h=Y.tryParseRange(p.reference,{requireProtocol:_n});if(!h)return Ye.mapAndFilter.skip;let E=new Tr.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:Ye.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:o}=Y.parseRange(e.reference),a=Tr.clean(o);if(a===null)throw new Vt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await pu(Ph(e),{customErrorMessage:np,configuration:r.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(n,"versions"))throw new Vt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(n.versions,a))throw new Vt(16,`Registry failed to return reference "${a}"`);let u=new Nt;if(u.load(n.versions[a]),!u.dependencies.has(Ek.identHash)&&!u.peerDependencies.has(Ek.identHash)){for(let A of u.scripts.values())if(A.match(Wwt)){u.dependencies.set(Ek.identHash,Y.makeDescriptor(Ek,"latest")),r.report.reportWarningOnce(32,`${Y.prettyLocator(r.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof u.raw.deprecated=="string"&&u.raw.deprecated!==""){let A=Y.prettyLocator(r.project.configuration,e),p=u.raw.deprecated.match(/\S/)?`${A} is deprecated: ${u.raw.deprecated}`:`${A} is deprecated`;r.report.reportWarningOnce(61,p)}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:u.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(u.dependencies),peerDependencies:u.peerDependencies,dependenciesMeta:u.dependenciesMeta,peerDependenciesMeta:u.peerDependenciesMeta,bin:u.bin}}};Ke();Ke();var z1e=tt(si());var tv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(_n)||!QC.test(e.range.slice(_n.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(_n.length),n=await pu(Ph(e),{configuration:o.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(n,"dist-tags"))throw new Vt(15,'Registry returned invalid data - missing "dist-tags" field');let u=n["dist-tags"];if(!Object.prototype.hasOwnProperty.call(u,a))throw new Vt(16,`Registry failed to return tag "${a}"`);let A=u[a],p=Y.makeLocator(e,`${_n}${A}`),h=n.versions[A].dist.tarball;return yl.isConventionalTarballUrl(p,h,{configuration:o.project.configuration})?[p]:[Y.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,o,a){var u;let n=[];for(let A of o){if(A.identHash!==e.identHash)continue;let p=Y.tryParseRange(A.reference,{requireProtocol:_n});if(!(!p||!z1e.default.valid(p.selector))){if((u=p.params)!=null&&u.__archiveUrl){let h=Y.makeRange({protocol:_n,selector:p.selector,source:null,params:null}),[E]=await this.getCandidates(Y.makeDescriptor(e,h),r,a);if(A.reference!==E.reference)continue}n.push(A)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var ZE={};Yt(ZE,{getGitHead:()=>jBt,makePublishBody:()=>qBt});Ke();Ke();var cG={};Yt(cG,{PackCommand:()=>Lh,default:()=>vBt,packUtils:()=>BA});Ke();Ke();Ke();bt();_t();var BA={};Yt(BA,{genPackList:()=>jk,genPackStream:()=>lG,genPackageManifest:()=>PBe,hasPackScripts:()=>oG,prepareForPack:()=>aG});Ke();bt();var sG=tt(Jo()),DBe=tt(IBe()),SBe=Ie("zlib"),pBt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],hBt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function oG(t){return!!(sn.hasWorkspaceScript(t,"prepack")||sn.hasWorkspaceScript(t,"postpack"))}async function aG(t,{report:e},r){await sn.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let o=z.join(t.cwd,Nt.fileName);await ae.existsPromise(o)&&await t.manifest.loadFile(o,{baseFs:ae}),await r()}finally{await sn.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function lG(t,e){var n;typeof e>"u"&&(e=await jk(t));let r=new Set;for(let u of((n=t.manifest.publishConfig)==null?void 0:n.executableFiles)??new Set)r.add(z.normalize(u));for(let u of t.manifest.bin.values())r.add(z.normalize(u));let o=DBe.default.pack();process.nextTick(async()=>{for(let u of e){let A=z.normalize(u),p=z.resolve(t.cwd,A),h=z.join("package",A),E=await ae.lstatPromise(p),w={name:h,mtime:new Date(Ii.SAFE_TIME*1e3)},v=r.has(A)?493:420,b,C,R=new Promise((_,V)=>{b=_,C=V}),L=_=>{_?C(_):b()};if(E.isFile()){let _;A==="package.json"?_=Buffer.from(JSON.stringify(await PBe(t),null,2)):_=await ae.readFilePromise(p),o.entry({...w,mode:v,type:"file"},_,L)}else E.isSymbolicLink()?o.entry({...w,mode:v,type:"symlink",linkname:await ae.readlinkPromise(p)},L):L(new Error(`Unsupported file type ${E.mode} for ${ue.fromPortablePath(A)}`));await R}o.finalize()});let a=(0,SBe.createGzip)();return o.pipe(a),a}async function PBe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function jk(t){var w,v,b,C;let e=t.project,r=e.configuration,o={accept:[],reject:[]};for(let R of hBt)o.reject.push(R);for(let R of pBt)o.accept.push(R);o.reject.push(r.get("rcFilename"));let a=R=>{if(R===null||!R.startsWith(`${t.cwd}/`))return;let L=z.relative(t.cwd,R),_=z.resolve(wt.root,L);o.reject.push(_)};a(z.resolve(e.cwd,r.get("lockfileFilename"))),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(R=>R.populateYarnPaths,e,R=>{a(R)});for(let R of e.workspaces){let L=z.relative(t.cwd,R.cwd);L!==""&&!L.match(/^(\.\.)?\//)&&o.reject.push(`/${L}`)}let n={accept:[],reject:[]},u=((w=t.manifest.publishConfig)==null?void 0:w.main)??t.manifest.main,A=((v=t.manifest.publishConfig)==null?void 0:v.module)??t.manifest.module,p=((b=t.manifest.publishConfig)==null?void 0:b.browser)??t.manifest.browser,h=((C=t.manifest.publishConfig)==null?void 0:C.bin)??t.manifest.bin;u!=null&&n.accept.push(z.resolve(wt.root,u)),A!=null&&n.accept.push(z.resolve(wt.root,A)),typeof p=="string"&&n.accept.push(z.resolve(wt.root,p));for(let R of h.values())n.accept.push(z.resolve(wt.root,R));if(p instanceof Map)for(let[R,L]of p.entries())n.accept.push(z.resolve(wt.root,R)),typeof L=="string"&&n.accept.push(z.resolve(wt.root,L));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let R of t.manifest.files)xBe(n.accept,R,{cwd:wt.root})}return await gBt(t.cwd,{hasExplicitFileList:E,globalList:o,ignoreList:n})}async function gBt(t,{hasExplicitFileList:e,globalList:r,ignoreList:o}){let a=[],n=new Gu(t),u=[[wt.root,[o]]];for(;u.length>0;){let[A,p]=u.pop(),h=await n.lstatPromise(A);if(!BBe(A,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(A),w=!1,v=!1;if(!e||A!==wt.root)for(let R of E)w=w||R===".gitignore",v=v||R===".npmignore";let b=v?await wBe(n,A,".npmignore"):w?await wBe(n,A,".gitignore"):null,C=b!==null?[b].concat(p):p;BBe(A,{globalList:r,ignoreLists:p})&&(C=[...p,{accept:[],reject:["**/*"]}]);for(let R of E)u.push([z.resolve(A,R),C])}else(h.isFile()||h.isSymbolicLink())&&a.push(z.relative(wt.root,A))}return a.sort()}async function wBe(t,e,r){let o={accept:[],reject:[]},a=await t.readFilePromise(z.join(e,r),"utf8");for(let n of a.split(/\n/g))xBe(o.reject,n,{cwd:e});return o}function dBt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=z.resolve(e,t)),r&&(t=`!${t}`),t}function xBe(t,e,{cwd:r}){let o=e.trim();o===""||o[0]==="#"||t.push(dBt(o,{cwd:r}))}function BBe(t,{globalList:e,ignoreLists:r}){let o=qk(t,e.accept);if(o!==0)return o===2;let a=qk(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let u=qk(t,n.accept);if(u!==0)return u===2;let A=qk(t,n.reject);if(A!==0)return A===1}return!1}function qk(t,e){let r=e,o=[];for(let a=0;a<e.length;++a)e[a][0]!=="!"?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),o.push(e[a].slice(1)));return vBe(t,o)?2:vBe(t,r)?1:0}function vBe(t,e){let r=e,o=[];for(let a=0;a<e.length;++a)e[a].includes("/")?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),o.push(e[a]));return!!(sG.default.isMatch(t,r,{dot:!0,nocase:!0})||sG.default.isMatch(t,o,{dot:!0,basename:!0,nocase:!0}))}var Lh=class extends ct{constructor(){super(...arguments);this.installIfNeeded=fe.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=fe.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=fe.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=fe.String("--filename",{hidden:!0})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);await oG(a)&&(this.installIfNeeded?await o.install({cache:await Ur.find(r),report:new xi}):await o.restoreInstallState());let n=this.out??this.filename,u=typeof n<"u"?z.resolve(this.context.cwd,mBt(n,{workspace:a})):z.resolve(a.cwd,"package.tgz");return(await Et.start({configuration:r,stdout:this.context.stdout,json:this.json},async p=>{await aG(a,{report:p},async()=>{p.reportJson({base:ue.fromPortablePath(a.cwd)});let h=await jk(a);for(let E of h)p.reportInfo(null,ue.fromPortablePath(E)),p.reportJson({location:ue.fromPortablePath(E)});if(!this.dryRun){let E=await lG(a,h),w=ae.createWriteStream(u);E.pipe(w),await new Promise(v=>{w.on("finish",v)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${ye.pretty(r,u,ye.Type.PATH)}`),p.reportJson({output:ue.fromPortablePath(u)}))})).exitCode()}};Lh.paths=[["pack"]],Lh.usage=it.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function mBt(t,{workspace:e}){let r=t.replace("%s",yBt(e)).replace("%v",CBt(e));return ue.toPortablePath(r)}function yBt(t){return t.manifest.name!==null?Y.slugifyIdent(t.manifest.name):"package"}function CBt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var EBt=["dependencies","devDependencies","peerDependencies"],IBt="workspace:",wBt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let o of EBt)for(let a of t.manifest.getForScope(o).values()){let n=r.tryWorkspaceByDescriptor(a),u=Y.parseRange(a.range);if(u.protocol===IBt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new Vt(21,`${Y.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;Y.areDescriptorsEqual(a,n.anchoredDescriptor)||u.selector==="*"?A=n.manifest.version??"0.0.0":u.selector==="~"||u.selector==="^"?A=`${u.selector}${n.manifest.version??"0.0.0"}`:A=u.selector;let p=o==="dependencies"?Y.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":o;e[h][Y.stringifyIdent(a)]=A}}},BBt={hooks:{beforeWorkspacePacking:wBt},commands:[Lh]},vBt=BBt;var OBe=Ie("crypto"),MBe=tt(LBe()),UBe=Ie("url");async function qBt(t,e,{access:r,tag:o,registry:a,gitHead:n}){let u=t.project.configuration,A=t.manifest.name,p=t.manifest.version,h=Y.stringifyIdent(A),E=(0,OBe.createHash)("sha1").update(e).digest("hex"),w=MBe.default.fromData(e).toString();typeof r>"u"&&(t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?r=t.manifest.publishConfig.access:u.get("npmPublishAccess")!==null?r=u.get("npmPublishAccess"):A.scope?r="restricted":r="public");let v=await BA.genPackageManifest(t),b=`${h}-${p}.tgz`,C=new UBe.URL(`${EA(a)}/${h}/-/${b}`);return{_id:h,_attachments:{[b]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:h,access:r,["dist-tags"]:{[o]:p},versions:{[p]:{...v,_id:`${h}@${p}`,name:h,version:p,gitHead:n,dist:{shasum:E,integrity:w,tarball:C.toString()}}}}}async function jBt(t){try{let{stdout:e}=await Mr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}var pG={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},_Be={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},GBt={configuration:{...pG,..._Be,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...pG,..._Be}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:EA,valueDefinition:{description:"",type:"SHAPE",properties:{...pG}}}},fetchers:[ZB,yl],resolvers:[$B,ev,tv]},WBt=GBt;var wG={};Yt(wG,{NpmAuditCommand:()=>Mh,NpmInfoCommand:()=>Uh,NpmLoginCommand:()=>_h,NpmLogoutCommand:()=>Hh,NpmPublishCommand:()=>qh,NpmTagAddCommand:()=>Gh,NpmTagListCommand:()=>jh,NpmTagRemoveCommand:()=>Wh,NpmWhoamiCommand:()=>Yh,default:()=>evt,npmAuditUtils:()=>Yk});Ke();_t();var mv=tt(Jo());tl();var Gk=(o=>(o.All="all",o.Production="production",o.Development="development",o))(Gk||{}),Wk=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(Wk||{});var Yk={};Yt(Yk,{allSeverities:()=>$E,getDependencies:()=>yG,getReportTree:()=>dG,getRequires:()=>mG,isError:()=>gG});Ke();var $E=["info","low","moderate","high","critical"];function qBe(t,e){let r=[],o=new Set,a=u=>{o.has(u)||(o.add(u),r.push(u))};for(let u of e)a(u);let n=new Set;for(;r.length>0;){let u=r.shift(),A=t.storedResolutions.get(u);if(typeof A>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let p=t.storedPackages.get(A);if(!!p){n.add(u);for(let h of p.dependencies.values())a(h.descriptorHash)}}return n}function YBt(t,e){return new Set([...t].filter(r=>!e.has(r)))}function KBt(t,e,{all:r}){let o=r?t.workspaces:[e],a=o.map(v=>v.manifest),n=new Set(a.map(v=>[...v.dependencies].map(([b,C])=>b)).flat()),u=new Set(a.map(v=>[...v.devDependencies].map(([b,C])=>b)).flat()),A=o.map(v=>[...v.anchoredPackage.dependencies.values()]).flat(),p=A.filter(v=>n.has(v.identHash)).map(v=>v.descriptorHash),h=A.filter(v=>u.has(v.identHash)).map(v=>v.descriptorHash),E=qBe(t,p),w=qBe(t,h);return YBt(w,E)}function jBe(t){let e={};for(let r of t)e[Y.stringifyIdent(r)]=Y.parseRange(r.range).selector;return e}function GBe(t){if(typeof t>"u")return new Set($E);let e=$E.indexOf(t),r=$E.slice(e);return new Set(r)}function VBt(t,e){let r=GBe(e),o={};for(let a of r)o[a]=t[a];return o}function gG(t,e){let r=VBt(t,e);for(let o of Object.keys(r))if(r[o]??0>0)return!0;return!1}function dG(t,e){var n;let r={},o={children:r},a=Object.values(t.advisories);if(e!=null){let u=GBe(e);a=a.filter(A=>u.has(A.severity))}for(let u of Ye.sortMap(a,A=>A.module_name))r[u.module_name]={label:u.module_name,value:ye.tuple(ye.Type.RANGE,u.findings.map(A=>A.version).join(", ")),children:{ID:{label:"ID",value:ye.tuple(ye.Type.NUMBER,u.id)},Issue:{label:"Issue",value:ye.tuple(ye.Type.NO_HINT,u.title)},URL:{label:"URL",value:ye.tuple(ye.Type.URL,u.url)},Severity:{label:"Severity",value:ye.tuple(ye.Type.NO_HINT,u.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ye.tuple(ye.Type.RANGE,u.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ye.tuple(ye.Type.RANGE,u.patched_versions)},Via:{label:"Via",value:ye.tuple(ye.Type.NO_HINT,Array.from(new Set(u.findings.map(A=>A.paths).flat().map(A=>A.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ye.tuple(ye.Type.NO_HINT,(n=u.recommendation)==null?void 0:n.replace(/\n/g," "))}}};return o}function mG(t,e,{all:r,environment:o}){let a=r?t.workspaces:[e],n=["all","production"].includes(o),u=[];if(n)for(let h of a)for(let E of h.manifest.dependencies.values())u.push(E);let A=["all","development"].includes(o),p=[];if(A)for(let h of a)for(let E of h.manifest.devDependencies.values())p.push(E);return jBe([...u,...p].filter(h=>Y.parseRange(h.range).protocol===null))}function yG(t,e,{all:r}){let o=KBt(t,e,{all:r}),a={};for(let n of t.storedPackages.values())a[Y.stringifyIdent(n)]={version:n.version??"0.0.0",integrity:n.identHash,requires:jBe(n.dependencies.values()),dev:o.has(Y.convertLocatorToDescriptor(n).descriptorHash)};return a}var Mh=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=fe.String("--environment","all",{description:"Which environments to cover",validator:Gs(Gk)});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=fe.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Gs(Wk)});this.excludes=fe.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=fe.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let n=mG(o,a,{all:this.all,environment:this.environment}),u=yG(o,a,{all:this.all});if(!this.recursive)for(let C of Object.keys(u))Object.prototype.hasOwnProperty.call(n,C)?u[C].requires={}:delete u[C];let A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes]));if(A){for(let C of Object.keys(n))mv.default.isMatch(C,A)&&delete n[C];for(let C of Object.keys(u))mv.default.isMatch(C,A)&&delete u[C];for(let C of Object.keys(u))for(let R of Object.keys(u[C].requires))mv.default.isMatch(R,A)&&delete u[C].requires[R]}let p={requires:n,dependencies:u},h=Wn.getAuditRegistry({configuration:r}),E,w=await pA.start({configuration:r,stdout:this.context.stdout},async()=>{E=await an.post("/-/npm/v1/security/audits/quick",p,{authType:an.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h})});if(w.hasErrors())return w.exitCode();let v=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(v){for(let C of Object.keys(E.advisories))if(mv.default.isMatch(C,v)){let R=E.advisories[C],L=0;R.findings.forEach(_=>L+=_.paths.length),E.metadata.vulnerabilities[R.severity]-=L,delete E.advisories[C]}}let b=gG(E.metadata.vulnerabilities,this.severity);return!this.json&&b?(Zo.emitTree(dG(E,this.severity),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Et.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async C=>{C.reportJson(E),b||C.reportInfo(1,"No audit suggestions")}),b?1:0)}};Mh.paths=[["npm","audit"]],Mh.usage=it.Usage({description:"perform a vulnerability audit against the installed packages",details:` 667`),o}function wk(t){var e,r;if(((e=t.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((r=t.originalError)==null?void 0:r.response.headers["www-authenticate"].split(/,\s*/).map(a=>a.toLowerCase())).includes("otp")}catch{return!1}}function HC(t){return{["npm-otp"]:t}}var ev=class{supports(e,r){if(!e.reference.startsWith(_n))return!1;let{selector:o,params:a}=Y.parseRange(e.reference);return!(!V1e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=Y.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await pu(o.__archiveUrl,{customErrorMessage:sp,configuration:r.project.configuration,ident:e});return await Ji.convertToZip(a,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})}};Ke();var tv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(_n)||!Y.tryParseDescriptor(e.range.slice(_n.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(Y.parseDescriptor(e.range.slice(_n.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(Y.parseDescriptor(e.range.slice(_n.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(Y.parseDescriptor(e.range.slice(_n.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ke();Ke();var J1e=tt(si()),z1e=Ie("url");var El=class{supports(e,r){if(!e.reference.startsWith(_n))return!1;let o=new z1e.URL(e.reference);return!(!J1e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await pu(El.getLocatorUrl(e),{customErrorMessage:sp,configuration:r.project.configuration,ident:e})}catch{o=await pu(El.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:sp,configuration:r.project.configuration,ident:e})}return await Ji.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:Y.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=ip(e.scope,{configuration:o}),n=El.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Tr.clean(e.reference.slice(_n.length));if(r===null)throw new Vt(10,"The npm semver resolver got selected, but the version isn't semver");return`${xh(e)}/-/${e.name}-${r}.tgz`}};Ke();Ke();Ke();var X1e=tt(si());var Bk=Y.makeIdent(null,"node-gyp"),zwt=/\b(node-gyp|prebuild-install)\b/,rv=class{supportsDescriptor(e,r){return e.range.startsWith(_n)?!!Tr.validRange(e.range.slice(_n.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(_n))return!1;let{selector:o}=Y.parseRange(e.reference);return!!X1e.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=Tr.validRange(e.range.slice(_n.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(_n.length)}`);let n=await pu(xh(e),{customErrorMessage:sp,configuration:o.project.configuration,ident:e,jsonResponse:!0}),u=We.mapAndFilter(Object.keys(n.versions),h=>{try{let C=new Tr.SemVer(h);if(a.test(C))return C}catch{}return We.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,C)=>-h.compare(C)),p.map(h=>{let C=Y.makeLocator(e,`${_n}${h.raw}`),w=n.versions[h.raw].dist.tarball;return El.isConventionalTarballUrl(C,w,{configuration:o.project.configuration})?C:Y.bindLocator(C,{__archiveUrl:w})})}async getSatisfying(e,r,o,a){let n=Tr.validRange(e.range.slice(_n.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(_n.length)}`);return{locators:We.mapAndFilter(o,p=>{if(p.identHash!==e.identHash)return We.mapAndFilter.skip;let h=Y.tryParseRange(p.reference,{requireProtocol:_n});if(!h)return We.mapAndFilter.skip;let C=new Tr.SemVer(h.selector);return n.test(C)?{locator:p,version:C}:We.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:o}=Y.parseRange(e.reference),a=Tr.clean(o);if(a===null)throw new Vt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await pu(xh(e),{customErrorMessage:sp,configuration:r.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(n,"versions"))throw new Vt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(n.versions,a))throw new Vt(16,`Registry failed to return reference "${a}"`);let u=new Nt;if(u.load(n.versions[a]),!u.dependencies.has(Bk.identHash)&&!u.peerDependencies.has(Bk.identHash)){for(let A of u.scripts.values())if(A.match(zwt)){u.dependencies.set(Bk.identHash,Y.makeDescriptor(Bk,"latest")),r.report.reportWarningOnce(32,`${Y.prettyLocator(r.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof u.raw.deprecated=="string"&&u.raw.deprecated!==""){let A=Y.prettyLocator(r.project.configuration,e),p=u.raw.deprecated.match(/\S/)?`${A} is deprecated: ${u.raw.deprecated}`:`${A} is deprecated`;r.report.reportWarningOnce(61,p)}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:u.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(u.dependencies),peerDependencies:u.peerDependencies,dependenciesMeta:u.dependenciesMeta,peerDependenciesMeta:u.peerDependenciesMeta,bin:u.bin}}};Ke();Ke();var Z1e=tt(si());var nv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(_n)||!QE.test(e.range.slice(_n.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(_n.length),n=await pu(xh(e),{configuration:o.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(n,"dist-tags"))throw new Vt(15,'Registry returned invalid data - missing "dist-tags" field');let u=n["dist-tags"];if(!Object.prototype.hasOwnProperty.call(u,a))throw new Vt(16,`Registry failed to return tag "${a}"`);let A=u[a],p=Y.makeLocator(e,`${_n}${A}`),h=n.versions[A].dist.tarball;return El.isConventionalTarballUrl(p,h,{configuration:o.project.configuration})?[p]:[Y.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,o,a){var u;let n=[];for(let A of o){if(A.identHash!==e.identHash)continue;let p=Y.tryParseRange(A.reference,{requireProtocol:_n});if(!(!p||!Z1e.default.valid(p.selector))){if((u=p.params)!=null&&u.__archiveUrl){let h=Y.makeRange({protocol:_n,selector:p.selector,source:null,params:null}),[C]=await this.getCandidates(Y.makeDescriptor(e,h),r,a);if(A.reference!==C.reference)continue}n.push(A)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var ZC={};Yt(ZC,{getGitHead:()=>VBt,getPublishAccess:()=>qBe,getReadmeContent:()=>jBe,makePublishBody:()=>KBt});Ke();Ke();St();var AG={};Yt(AG,{PackCommand:()=>Oh,default:()=>bBt,packUtils:()=>vA});Ke();Ke();Ke();St();_t();var vA={};Yt(vA,{genPackList:()=>Yk,genPackStream:()=>uG,genPackageManifest:()=>bBe,hasPackScripts:()=>lG,prepareForPack:()=>cG});Ke();St();var aG=tt(zo()),PBe=tt(BBe()),xBe=Ie("zlib"),yBt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],EBt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function lG(t){return!!(sn.hasWorkspaceScript(t,"prepack")||sn.hasWorkspaceScript(t,"postpack"))}async function cG(t,{report:e},r){await sn.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let o=J.join(t.cwd,Nt.fileName);await oe.existsPromise(o)&&await t.manifest.loadFile(o,{baseFs:oe}),await r()}finally{await sn.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function uG(t,e){var n;typeof e>"u"&&(e=await Yk(t));let r=new Set;for(let u of((n=t.manifest.publishConfig)==null?void 0:n.executableFiles)??new Set)r.add(J.normalize(u));for(let u of t.manifest.bin.values())r.add(J.normalize(u));let o=PBe.default.pack();process.nextTick(async()=>{for(let u of e){let A=J.normalize(u),p=J.resolve(t.cwd,A),h=J.join("package",A),C=await oe.lstatPromise(p),w={name:h,mtime:new Date(Ii.SAFE_TIME*1e3)},v=r.has(A)?493:420,b,E,R=new Promise((_,V)=>{b=_,E=V}),L=_=>{_?E(_):b()};if(C.isFile()){let _;A==="package.json"?_=Buffer.from(JSON.stringify(await bBe(t),null,2)):_=await oe.readFilePromise(p),o.entry({...w,mode:v,type:"file"},_,L)}else C.isSymbolicLink()?o.entry({...w,mode:v,type:"symlink",linkname:await oe.readlinkPromise(p)},L):L(new Error(`Unsupported file type ${C.mode} for ${ue.fromPortablePath(A)}`));await R}o.finalize()});let a=(0,xBe.createGzip)();return o.pipe(a),a}async function bBe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function Yk(t){var w,v,b,E;let e=t.project,r=e.configuration,o={accept:[],reject:[]};for(let R of EBt)o.reject.push(R);for(let R of yBt)o.accept.push(R);o.reject.push(r.get("rcFilename"));let a=R=>{if(R===null||!R.startsWith(`${t.cwd}/`))return;let L=J.relative(t.cwd,R),_=J.resolve(wt.root,L);o.reject.push(_)};a(J.resolve(e.cwd,r.get("lockfileFilename"))),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(R=>R.populateYarnPaths,e,R=>{a(R)});for(let R of e.workspaces){let L=J.relative(t.cwd,R.cwd);L!==""&&!L.match(/^(\.\.)?\//)&&o.reject.push(`/${L}`)}let n={accept:[],reject:[]},u=((w=t.manifest.publishConfig)==null?void 0:w.main)??t.manifest.main,A=((v=t.manifest.publishConfig)==null?void 0:v.module)??t.manifest.module,p=((b=t.manifest.publishConfig)==null?void 0:b.browser)??t.manifest.browser,h=((E=t.manifest.publishConfig)==null?void 0:E.bin)??t.manifest.bin;u!=null&&n.accept.push(J.resolve(wt.root,u)),A!=null&&n.accept.push(J.resolve(wt.root,A)),typeof p=="string"&&n.accept.push(J.resolve(wt.root,p));for(let R of h.values())n.accept.push(J.resolve(wt.root,R));if(p instanceof Map)for(let[R,L]of p.entries())n.accept.push(J.resolve(wt.root,R)),typeof L=="string"&&n.accept.push(J.resolve(wt.root,L));let C=t.manifest.files!==null;if(C){n.reject.push("/*");for(let R of t.manifest.files)QBe(n.accept,R,{cwd:wt.root})}return await CBt(t.cwd,{hasExplicitFileList:C,globalList:o,ignoreList:n})}async function CBt(t,{hasExplicitFileList:e,globalList:r,ignoreList:o}){let a=[],n=new Gu(t),u=[[wt.root,[o]]];for(;u.length>0;){let[A,p]=u.pop(),h=await n.lstatPromise(A);if(!DBe(A,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let C=await n.readdirPromise(A),w=!1,v=!1;if(!e||A!==wt.root)for(let R of C)w=w||R===".gitignore",v=v||R===".npmignore";let b=v?await vBe(n,A,".npmignore"):w?await vBe(n,A,".gitignore"):null,E=b!==null?[b].concat(p):p;DBe(A,{globalList:r,ignoreLists:p})&&(E=[...p,{accept:[],reject:["**/*"]}]);for(let R of C)u.push([J.resolve(A,R),E])}else(h.isFile()||h.isSymbolicLink())&&a.push(J.relative(wt.root,A))}return a.sort()}async function vBe(t,e,r){let o={accept:[],reject:[]},a=await t.readFilePromise(J.join(e,r),"utf8");for(let n of a.split(/\n/g))QBe(o.reject,n,{cwd:e});return o}function IBt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=J.resolve(e,t)),r&&(t=`!${t}`),t}function QBe(t,e,{cwd:r}){let o=e.trim();o===""||o[0]==="#"||t.push(IBt(o,{cwd:r}))}function DBe(t,{globalList:e,ignoreLists:r}){let o=Wk(t,e.accept);if(o!==0)return o===2;let a=Wk(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let u=Wk(t,n.accept);if(u!==0)return u===2;let A=Wk(t,n.reject);if(A!==0)return A===1}return!1}function Wk(t,e){let r=e,o=[];for(let a=0;a<e.length;++a)e[a][0]!=="!"?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),o.push(e[a].slice(1)));return SBe(t,o)?2:SBe(t,r)?1:0}function SBe(t,e){let r=e,o=[];for(let a=0;a<e.length;++a)e[a].includes("/")?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),o.push(e[a]));return!!(aG.default.isMatch(t,r,{dot:!0,nocase:!0})||aG.default.isMatch(t,o,{dot:!0,basename:!0,nocase:!0}))}var Oh=class extends ct{constructor(){super(...arguments);this.installIfNeeded=fe.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=fe.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=fe.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=fe.String("--filename",{hidden:!0})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);await lG(a)&&(this.installIfNeeded?await o.install({cache:await Ur.find(r),report:new xi}):await o.restoreInstallState());let n=this.out??this.filename,u=typeof n<"u"?J.resolve(this.context.cwd,wBt(n,{workspace:a})):J.resolve(a.cwd,"package.tgz");return(await Ct.start({configuration:r,stdout:this.context.stdout,json:this.json},async p=>{await cG(a,{report:p},async()=>{p.reportJson({base:ue.fromPortablePath(a.cwd)});let h=await Yk(a);for(let C of h)p.reportInfo(null,ue.fromPortablePath(C)),p.reportJson({location:ue.fromPortablePath(C)});if(!this.dryRun){let C=await uG(a,h),w=oe.createWriteStream(u);C.pipe(w),await new Promise(v=>{w.on("finish",v)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${ye.pretty(r,u,ye.Type.PATH)}`),p.reportJson({output:ue.fromPortablePath(u)}))})).exitCode()}};Oh.paths=[["pack"]],Oh.usage=it.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function wBt(t,{workspace:e}){let r=t.replace("%s",BBt(e)).replace("%v",vBt(e));return ue.toPortablePath(r)}function BBt(t){return t.manifest.name!==null?Y.slugifyIdent(t.manifest.name):"package"}function vBt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var DBt=["dependencies","devDependencies","peerDependencies"],SBt="workspace:",PBt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let o of DBt)for(let a of t.manifest.getForScope(o).values()){let n=r.tryWorkspaceByDescriptor(a),u=Y.parseRange(a.range);if(u.protocol===SBt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new Vt(21,`${Y.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;Y.areDescriptorsEqual(a,n.anchoredDescriptor)||u.selector==="*"?A=n.manifest.version??"0.0.0":u.selector==="~"||u.selector==="^"?A=`${u.selector}${n.manifest.version??"0.0.0"}`:A=u.selector;let p=o==="dependencies"?Y.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":o;e[h][Y.stringifyIdent(a)]=A}}},xBt={hooks:{beforeWorkspacePacking:PBt},commands:[Oh]},bBt=xBt;var UBe=Ie("crypto"),_Be=tt(MBe()),HBe=Ie("url");async function KBt(t,e,{access:r,tag:o,registry:a,gitHead:n}){let u=t.manifest.name,A=t.manifest.version,p=Y.stringifyIdent(u),h=(0,UBe.createHash)("sha1").update(e).digest("hex"),C=_Be.default.fromData(e).toString(),w=r??qBe(t,u),v=await jBe(t),b=await vA.genPackageManifest(t),E=`${p}-${A}.tgz`,R=new HBe.URL(`${IA(a)}/${p}/-/${E}`);return{_id:p,_attachments:{[E]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:p,access:w,["dist-tags"]:{[o]:A},versions:{[A]:{...b,_id:`${p}@${A}`,name:p,version:A,gitHead:n,dist:{shasum:h,integrity:C,tarball:R.toString()}}},readme:v}}async function VBt(t){try{let{stdout:e}=await Mr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function qBe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function jBe(t){let e=ue.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${Y.stringifyIdent(r)}
668`;try{a=await oe.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var gG={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},GBe={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},JBt={configuration:{...gG,...GBe,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...gG,...GBe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:IA,valueDefinition:{description:"",type:"SHAPE",properties:{...gG}}}},fetchers:[ev,El],resolvers:[tv,rv,nv]},zBt=JBt;var vG={};Yt(vG,{NpmAuditCommand:()=>Uh,NpmInfoCommand:()=>_h,NpmLoginCommand:()=>Hh,NpmLogoutCommand:()=>qh,NpmPublishCommand:()=>jh,NpmTagAddCommand:()=>Wh,NpmTagListCommand:()=>Gh,NpmTagRemoveCommand:()=>Yh,NpmWhoamiCommand:()=>Kh,default:()=>svt,npmAuditUtils:()=>Jk});Ke();_t();var Ev=tt(zo());rl();var Kk=(o=>(o.All="all",o.Production="production",o.Development="development",o))(Kk||{}),Vk=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(Vk||{});var Jk={};Yt(Jk,{allSeverities:()=>$C,getDependencies:()=>CG,getReportTree:()=>yG,getRequires:()=>EG,isError:()=>mG});Ke();var $C=["info","low","moderate","high","critical"];function YBe(t,e){let r=[],o=new Set,a=u=>{o.has(u)||(o.add(u),r.push(u))};for(let u of e)a(u);let n=new Set;for(;r.length>0;){let u=r.shift(),A=t.storedResolutions.get(u);if(typeof A>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let p=t.storedPackages.get(A);if(!!p){n.add(u);for(let h of p.dependencies.values())a(h.descriptorHash)}}return n}function XBt(t,e){return new Set([...t].filter(r=>!e.has(r)))}function ZBt(t,e,{all:r}){let o=r?t.workspaces:[e],a=o.map(v=>v.manifest),n=new Set(a.map(v=>[...v.dependencies].map(([b,E])=>b)).flat()),u=new Set(a.map(v=>[...v.devDependencies].map(([b,E])=>b)).flat()),A=o.map(v=>[...v.anchoredPackage.dependencies.values()]).flat(),p=A.filter(v=>n.has(v.identHash)).map(v=>v.descriptorHash),h=A.filter(v=>u.has(v.identHash)).map(v=>v.descriptorHash),C=YBe(t,p),w=YBe(t,h);return XBt(w,C)}function KBe(t){let e={};for(let r of t)e[Y.stringifyIdent(r)]=Y.parseRange(r.range).selector;return e}function VBe(t){if(typeof t>"u")return new Set($C);let e=$C.indexOf(t),r=$C.slice(e);return new Set(r)}function $Bt(t,e){let r=VBe(e),o={};for(let a of r)o[a]=t[a];return o}function mG(t,e){let r=$Bt(t,e);for(let o of Object.keys(r))if(r[o]??0>0)return!0;return!1}function yG(t,e){var n;let r={},o={children:r},a=Object.values(t.advisories);if(e!=null){let u=VBe(e);a=a.filter(A=>u.has(A.severity))}for(let u of We.sortMap(a,A=>A.module_name))r[u.module_name]={label:u.module_name,value:ye.tuple(ye.Type.RANGE,u.findings.map(A=>A.version).join(", ")),children:{ID:{label:"ID",value:ye.tuple(ye.Type.NUMBER,u.id)},Issue:{label:"Issue",value:ye.tuple(ye.Type.NO_HINT,u.title)},URL:{label:"URL",value:ye.tuple(ye.Type.URL,u.url)},Severity:{label:"Severity",value:ye.tuple(ye.Type.NO_HINT,u.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ye.tuple(ye.Type.RANGE,u.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ye.tuple(ye.Type.RANGE,u.patched_versions)},Via:{label:"Via",value:ye.tuple(ye.Type.NO_HINT,Array.from(new Set(u.findings.map(A=>A.paths).flat().map(A=>A.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ye.tuple(ye.Type.NO_HINT,(n=u.recommendation)==null?void 0:n.replace(/\n/g," "))}}};return o}function EG(t,e,{all:r,environment:o}){let a=r?t.workspaces:[e],n=["all","production"].includes(o),u=[];if(n)for(let h of a)for(let C of h.manifest.dependencies.values())u.push(C);let A=["all","development"].includes(o),p=[];if(A)for(let h of a)for(let C of h.manifest.devDependencies.values())p.push(C);return KBe([...u,...p].filter(h=>Y.parseRange(h.range).protocol===null))}function CG(t,e,{all:r}){let o=ZBt(t,e,{all:r}),a={};for(let n of t.storedPackages.values())a[Y.stringifyIdent(n)]={version:n.version??"0.0.0",integrity:n.identHash,requires:KBe(n.dependencies.values()),dev:o.has(Y.convertLocatorToDescriptor(n).descriptorHash)};return a}var Uh=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=fe.String("--environment","all",{description:"Which environments to cover",validator:Gs(Kk)});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=fe.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Gs(Vk)});this.excludes=fe.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=fe.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let n=EG(o,a,{all:this.all,environment:this.environment}),u=CG(o,a,{all:this.all});if(!this.recursive)for(let E of Object.keys(u))Object.prototype.hasOwnProperty.call(n,E)?u[E].requires={}:delete u[E];let A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes]));if(A){for(let E of Object.keys(n))Ev.default.isMatch(E,A)&&delete n[E];for(let E of Object.keys(u))Ev.default.isMatch(E,A)&&delete u[E];for(let E of Object.keys(u))for(let R of Object.keys(u[E].requires))Ev.default.isMatch(R,A)&&delete u[E].requires[R]}let p={requires:n,dependencies:u},h=Wn.getAuditRegistry({configuration:r}),C,w=await pA.start({configuration:r,stdout:this.context.stdout},async()=>{C=await an.post("/-/npm/v1/security/audits/quick",p,{authType:an.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h})});if(w.hasErrors())return w.exitCode();let v=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(v){for(let E of Object.keys(C.advisories))if(Ev.default.isMatch(E,v)){let R=C.advisories[E],L=0;R.findings.forEach(_=>L+=_.paths.length),C.metadata.vulnerabilities[R.severity]-=L,delete C.advisories[E]}}let b=mG(C.metadata.vulnerabilities,this.severity);return!this.json&&b?($o.emitTree(yG(C,this.severity),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Ct.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(C),b||E.reportInfo(1,"No audit suggestions")}),b?1:0)}};Uh.paths=[["npm","audit"]],Uh.usage=it.Usage({description:"perform a vulnerability audit against the installed packages",details:`
668 This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). 669 This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths).
669 670
670 For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. 671 For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`.
671 672
672 Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${$E.map(r=>`\`${r}\``).join(", ")}. 673 Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${$C.map(r=>`\`${r}\``).join(", ")}.
673 674
674 If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. 675 If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages.
675 676
@@ -678,32 +679,32 @@ ${Qe.map(Oe=>`Not found: ${Au(Oe)}
678 If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. 679 If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option.
679 680
680 To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why <package>\` to get more information as to who depends on them. 681 To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why <package>\` to get more information as to who depends on them.
681 `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});Ke();Ke();bt();_t();var CG=tt(si()),EG=Ie("util"),Uh=class extends ct{constructor(){super(...arguments);this.fields=fe.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await St.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],u=!1,A=await Et.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let oe=o.topLevelWorkspace;if(!oe.manifest.name)throw new ot(`Missing ${ye.pretty(r,"name",ye.Type.CODE)} field in ${ue.fromPortablePath(z.join(oe.cwd,Lr.manifest))}`);E=Y.makeDescriptor(oe.manifest.name,"unknown")}else E=Y.parseDescriptor(h);let w=an.getIdentUrl(E),v=IG(await an.get(w,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:an.customPackageError})),b=Object.keys(v.versions).sort(CG.default.compareLoose),R=v["dist-tags"].latest||b[b.length-1],L=Tr.validRange(E.range);if(L){let oe=CG.default.maxSatisfying(b,L);oe!==null?R=oe:(p.reportWarning(0,`Unmet range ${Y.prettyRange(r,E.range)}; falling back to the latest version`),u=!0)}else Object.prototype.hasOwnProperty.call(v["dist-tags"],E.range)?R=v["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${Y.prettyRange(r,E.range)}; falling back to the latest version`),u=!0);let _=v.versions[R],V={...v,..._,version:R,versions:b},re;if(a!==null){re={};for(let oe of a){let pe=V[oe];if(typeof pe<"u")re[oe]=pe;else{p.reportWarning(1,`The ${ye.pretty(r,oe,ye.Type.CODE)} field doesn't exist inside ${Y.prettyIdent(r,E)}'s information`),u=!0;continue}}}else this.json||(delete V.dist,delete V.readme,delete V.users),re=V;p.reportJson(re),this.json||n.push(re)}});EG.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||u)&&this.context.stdout.write(` 682 `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});Ke();Ke();St();_t();var IG=tt(si()),wG=Ie("util"),_h=class extends ct{constructor(){super(...arguments);this.fields=fe.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],u=!1,A=await Ct.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let C;if(h==="."){let ae=o.topLevelWorkspace;if(!ae.manifest.name)throw new ot(`Missing ${ye.pretty(r,"name",ye.Type.CODE)} field in ${ue.fromPortablePath(J.join(ae.cwd,Lr.manifest))}`);C=Y.makeDescriptor(ae.manifest.name,"unknown")}else C=Y.parseDescriptor(h);let w=an.getIdentUrl(C),v=BG(await an.get(w,{configuration:r,ident:C,jsonResponse:!0,customErrorMessage:an.customPackageError})),b=Object.keys(v.versions).sort(IG.default.compareLoose),R=v["dist-tags"].latest||b[b.length-1],L=Tr.validRange(C.range);if(L){let ae=IG.default.maxSatisfying(b,L);ae!==null?R=ae:(p.reportWarning(0,`Unmet range ${Y.prettyRange(r,C.range)}; falling back to the latest version`),u=!0)}else Object.prototype.hasOwnProperty.call(v["dist-tags"],C.range)?R=v["dist-tags"][C.range]:C.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${Y.prettyRange(r,C.range)}; falling back to the latest version`),u=!0);let _=v.versions[R],V={...v,..._,version:R,versions:b},re;if(a!==null){re={};for(let ae of a){let he=V[ae];if(typeof he<"u")re[ae]=he;else{p.reportWarning(1,`The ${ye.pretty(r,ae,ye.Type.CODE)} field doesn't exist inside ${Y.prettyIdent(r,C)}'s information`),u=!0;continue}}}else this.json||(delete V.dist,delete V.readme,delete V.users),re=V;p.reportJson(re),this.json||n.push(re)}});wG.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||u)&&this.context.stdout.write(`
682`),this.context.stdout.write(`${(0,EG.inspect)(p,{depth:1/0,colors:!0,compact:!1})} 683`),this.context.stdout.write(`${(0,wG.inspect)(p,{depth:1/0,colors:!0,compact:!1})}
683`);return A.exitCode()}};Uh.paths=[["npm","info"]],Uh.usage=it.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function IG(t){if(Array.isArray(t)){let e=[];for(let r of t)r=IG(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=IG(t[r]);o&&(e[r]=o)}return e}else return t||null}Ke();Ke();_t();var WBe=tt(z1()),_h=class extends ct{constructor(){super(...arguments);this.scope=fe.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=fe.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=await Kk({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Et.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await zBt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=`/-/user/org.couchdb.user:${encodeURIComponent(u.name)}`,p=await an.put(A,u,{attemptedAs:u.name,configuration:r,registry:o,jsonResponse:!0,authType:an.AuthType.NO_AUTH});return await JBt(o,p.token,{configuration:r,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};_h.paths=[["npm","login"]],_h.usage=it.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function Kk({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?Wn.getScopeRegistry(t,{configuration:r,type:Wn.RegistryType.PUBLISH_REGISTRY}):t?Wn.getScopeRegistry(t,{configuration:r}):e?Wn.getPublishRegistry((await cE(r,o)).manifest,{configuration:r}):Wn.getDefaultRegistry({configuration:r})}async function JBt(t,e,{configuration:r,scope:o}){let a=u=>A=>{let p=Ye.isIndexableObject(A)?A:{},h=p[u],E=Ye.isIndexableObject(h)?h:{};return{...p,[u]:{...E,npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await Xe.updateHomeConfiguration(n)}async function zBt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${ye.pretty(t,e,ye.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let{username:u,password:A}=await(0,WBe.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),{name:u,password:A}}Ke();Ke();_t();var eI=new Set(["npmAuthIdent","npmAuthToken"]),Hh=class extends ct{constructor(){super(...arguments);this.scope=fe.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=fe.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=fe.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=async()=>{let n=await Kk({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),u=await Xe.find(this.context.cwd,this.context.plugins),A=Y.makeIdent(this.scope??null,"pkg");return!Wn.getAuthConfiguration(n,{configuration:u,ident:A}).get("npmAuthToken")};return(await Et.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await ZBt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await YBe("npmScopes",this.scope),await o()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let u=await Kk({configuration:r,cwd:this.context.cwd,publish:this.publish});await YBe("npmRegistries",u),await o()?n.reportInfo(0,`Successfully logged out from ${u}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};Hh.paths=[["npm","logout"]],Hh.usage=it.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function XBt(t,e){let r=t[e];if(!Ye.isIndexableObject(r))return!1;let o=new Set(Object.keys(r));if([...eI].every(n=>!o.has(n)))return!1;for(let n of eI)o.delete(n);if(o.size===0)return t[e]=void 0,!0;let a={...r};for(let n of eI)delete a[n];return t[e]=a,!0}async function ZBt(){let t=e=>{let r=!1,o=Ye.isIndexableObject(e)?{...e}:{};o.npmAuthToken&&(delete o.npmAuthToken,r=!0);for(let a of Object.keys(o))XBt(o,a)&&(r=!0);if(Object.keys(o).length!==0)return r?o:e};return await Xe.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function YBe(t,e){return await Xe.updateHomeConfiguration({[t]:r=>{let o=Ye.isIndexableObject(r)?r:{};if(!Object.prototype.hasOwnProperty.call(o,e))return r;let a=o[e],n=Ye.isIndexableObject(a)?a:{},u=new Set(Object.keys(n));if([...eI].every(p=>!u.has(p)))return r;for(let p of eI)u.delete(p);if(u.size===0)return Object.keys(o).length===1?void 0:{...o,[e]:void 0};let A={};for(let p of eI)A[p]=void 0;return{...o,[e]:{...n,...A}}}})}Ke();_t();var qh=class extends ct{constructor(){super(...arguments);this.access=fe.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=fe.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=fe.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=fe.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);if(a.manifest.private)throw new ot("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new ot("Workspaces must have valid names and versions to be published on an external registry");await o.restoreInstallState();let n=a.manifest.name,u=a.manifest.version,A=Wn.getPublishRegistry(a.manifest,{configuration:r});return(await Et.start({configuration:r,stdout:this.context.stdout},async h=>{var E,w;if(this.tolerateRepublish)try{let v=await an.get(an.getIdentUrl(n),{configuration:r,registry:A,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(v,"versions"))throw new Vt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(v.versions,u)){h.reportWarning(0,`Registry already knows about version ${u}; skipping.`);return}}catch(v){if(((w=(E=v.originalError)==null?void 0:E.response)==null?void 0:w.statusCode)!==404)throw v}await sn.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await BA.prepareForPack(a,{report:h},async()=>{let v=await BA.genPackList(a);for(let _ of v)h.reportInfo(null,_);let b=await BA.genPackStream(a,v),C=await Ye.bufferStream(b),R=await ZE.getGitHead(a.cwd),L=await ZE.makePublishBody(a,C,{access:this.access,tag:this.tag,registry:A,gitHead:R});await an.put(an.getIdentUrl(n),L,{configuration:r,registry:A,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};qh.paths=[["npm","publish"]],qh.usage=it.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});Ke();_t();var KBe=tt(si());Ke();bt();_t();var jh=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=fe.String({required:!1})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n;if(typeof this.package<"u")n=Y.parseIdent(this.package);else{if(!a)throw new er(o.cwd,this.context.cwd);if(!a.manifest.name)throw new ot(`Missing 'name' field in ${ue.fromPortablePath(z.join(a.cwd,Lr.manifest))}`);n=a.manifest.name}let u=await yv(n,r),p={children:Ye.sortMap(Object.entries(u),([h])=>h).map(([h,E])=>({value:ye.tuple(ye.Type.RESOLUTION,{descriptor:Y.makeDescriptor(n,h),locator:Y.makeLocator(n,E)})}))};return Zo.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};jh.paths=[["npm","tag","list"]],jh.usage=it.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` 684`);return A.exitCode()}};_h.paths=[["npm","info"]],_h.usage=it.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function BG(t){if(Array.isArray(t)){let e=[];for(let r of t)r=BG(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=BG(t[r]);o&&(e[r]=o)}return e}else return t||null}Ke();Ke();_t();var JBe=tt(Z1()),Hh=class extends ct{constructor(){super(...arguments);this.scope=fe.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=fe.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=fe.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=await zk({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ct.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await tvt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=`/-/user/org.couchdb.user:${encodeURIComponent(u.name)}`,p=await an.put(A,u,{attemptedAs:u.name,configuration:r,registry:o,jsonResponse:!0,authType:an.AuthType.NO_AUTH});return await evt(o,p.token,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};Hh.paths=[["npm","login"]],Hh.usage=it.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function zk({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?Wn.getScopeRegistry(t,{configuration:r,type:Wn.RegistryType.PUBLISH_REGISTRY}):t?Wn.getScopeRegistry(t,{configuration:r}):e?Wn.getPublishRegistry((await cC(r,o)).manifest,{configuration:r}):Wn.getDefaultRegistry({configuration:r})}async function evt(t,e,{alwaysAuth:r,scope:o}){let a=u=>A=>{let p=We.isIndexableObject(A)?A:{},h=p[u],C=We.isIndexableObject(h)?h:{};return{...p,[u]:{...C,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await Xe.updateHomeConfiguration(n)}async function tvt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${ye.pretty(t,e,ye.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let{username:u,password:A}=await(0,JBe.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),{name:u,password:A}}Ke();Ke();_t();var eI=new Set(["npmAuthIdent","npmAuthToken"]),qh=class extends ct{constructor(){super(...arguments);this.scope=fe.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=fe.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=fe.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o=async()=>{let n=await zk({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),u=await Xe.find(this.context.cwd,this.context.plugins),A=Y.makeIdent(this.scope??null,"pkg");return!Wn.getAuthConfiguration(n,{configuration:u,ident:A}).get("npmAuthToken")};return(await Ct.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await nvt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await zBe("npmScopes",this.scope),await o()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let u=await zk({configuration:r,cwd:this.context.cwd,publish:this.publish});await zBe("npmRegistries",u),await o()?n.reportInfo(0,`Successfully logged out from ${u}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};qh.paths=[["npm","logout"]],qh.usage=it.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function rvt(t,e){let r=t[e];if(!We.isIndexableObject(r))return!1;let o=new Set(Object.keys(r));if([...eI].every(n=>!o.has(n)))return!1;for(let n of eI)o.delete(n);if(o.size===0)return t[e]=void 0,!0;let a={...r};for(let n of eI)delete a[n];return t[e]=a,!0}async function nvt(){let t=e=>{let r=!1,o=We.isIndexableObject(e)?{...e}:{};o.npmAuthToken&&(delete o.npmAuthToken,r=!0);for(let a of Object.keys(o))rvt(o,a)&&(r=!0);if(Object.keys(o).length!==0)return r?o:e};return await Xe.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function zBe(t,e){return await Xe.updateHomeConfiguration({[t]:r=>{let o=We.isIndexableObject(r)?r:{};if(!Object.prototype.hasOwnProperty.call(o,e))return r;let a=o[e],n=We.isIndexableObject(a)?a:{},u=new Set(Object.keys(n));if([...eI].every(p=>!u.has(p)))return r;for(let p of eI)u.delete(p);if(u.size===0)return Object.keys(o).length===1?void 0:{...o,[e]:void 0};let A={};for(let p of eI)A[p]=void 0;return{...o,[e]:{...n,...A}}}})}Ke();_t();var jh=class extends ct{constructor(){super(...arguments);this.access=fe.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=fe.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=fe.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=fe.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);if(a.manifest.private)throw new ot("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new ot("Workspaces must have valid names and versions to be published on an external registry");await o.restoreInstallState();let n=a.manifest.name,u=a.manifest.version,A=Wn.getPublishRegistry(a.manifest,{configuration:r});return(await Ct.start({configuration:r,stdout:this.context.stdout},async h=>{var C,w;if(this.tolerateRepublish)try{let v=await an.get(an.getIdentUrl(n),{configuration:r,registry:A,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(v,"versions"))throw new Vt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(v.versions,u)){h.reportWarning(0,`Registry already knows about version ${u}; skipping.`);return}}catch(v){if(((w=(C=v.originalError)==null?void 0:C.response)==null?void 0:w.statusCode)!==404)throw v}await sn.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await vA.prepareForPack(a,{report:h},async()=>{let v=await vA.genPackList(a);for(let _ of v)h.reportInfo(null,_);let b=await vA.genPackStream(a,v),E=await We.bufferStream(b),R=await ZC.getGitHead(a.cwd),L=await ZC.makePublishBody(a,E,{access:this.access,tag:this.tag,registry:A,gitHead:R});await an.put(an.getIdentUrl(n),L,{configuration:r,registry:A,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};jh.paths=[["npm","publish"]],jh.usage=it.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});Ke();_t();var XBe=tt(si());Ke();St();_t();var Gh=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=fe.String({required:!1})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=Y.parseIdent(this.package);else{if(!a)throw new er(o.cwd,this.context.cwd);if(!a.manifest.name)throw new ot(`Missing 'name' field in ${ue.fromPortablePath(J.join(a.cwd,Lr.manifest))}`);n=a.manifest.name}let u=await Cv(n,r),p={children:We.sortMap(Object.entries(u),([h])=>h).map(([h,C])=>({value:ye.tuple(ye.Type.RESOLUTION,{descriptor:Y.makeDescriptor(n,h),locator:Y.makeLocator(n,C)})}))};return $o.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};Gh.paths=[["npm","tag","list"]],Gh.usage=it.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:`
684 This command will list all tags of a package from the npm registry. 685 This command will list all tags of a package from the npm registry.
685 686
686 If the package is not specified, Yarn will default to the current workspace. 687 If the package is not specified, Yarn will default to the current workspace.
687 `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function yv(t,e){let r=`/-/package${an.getIdentUrl(t)}/dist-tags`;return an.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:an.customPackageError})}var Gh=class extends ct{constructor(){super(...arguments);this.package=fe.String();this.tag=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);let n=Y.parseDescriptor(this.package,!0),u=n.range;if(!KBe.default.valid(u))throw new ot(`The range ${ye.pretty(r,n.range,ye.Type.RANGE)} must be a valid semver version`);let A=Wn.getPublishRegistry(a.manifest,{configuration:r}),p=ye.pretty(r,n,ye.Type.IDENT),h=ye.pretty(r,u,ye.Type.RANGE),E=ye.pretty(r,this.tag,ye.Type.CODE);return(await Et.start({configuration:r,stdout:this.context.stdout},async v=>{let b=await yv(n,r);Object.prototype.hasOwnProperty.call(b,this.tag)&&b[this.tag]===u&&v.reportWarning(0,`Tag ${E} is already set to version ${h}`);let C=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.put(C,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),v.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Gh.paths=[["npm","tag","add"]],Gh.usage=it.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` 688 `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function Cv(t,e){let r=`/-/package${an.getIdentUrl(t)}/dist-tags`;return an.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:an.customPackageError})}var Wh=class extends ct{constructor(){super(...arguments);this.package=fe.String();this.tag=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);let n=Y.parseDescriptor(this.package,!0),u=n.range;if(!XBe.default.valid(u))throw new ot(`The range ${ye.pretty(r,n.range,ye.Type.RANGE)} must be a valid semver version`);let A=Wn.getPublishRegistry(a.manifest,{configuration:r}),p=ye.pretty(r,n,ye.Type.IDENT),h=ye.pretty(r,u,ye.Type.RANGE),C=ye.pretty(r,this.tag,ye.Type.CODE);return(await Ct.start({configuration:r,stdout:this.context.stdout},async v=>{let b=await Cv(n,r);Object.prototype.hasOwnProperty.call(b,this.tag)&&b[this.tag]===u&&v.reportWarning(0,`Tag ${C} is already set to version ${h}`);let E=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.put(E,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),v.reportInfo(0,`Tag ${C} added to version ${h} of package ${p}`)})).exitCode()}};Wh.paths=[["npm","tag","add"]],Wh.usage=it.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:`
688 This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. 689 This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten.
689 `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});Ke();_t();var Wh=class extends ct{constructor(){super(...arguments);this.package=fe.String();this.tag=fe.String()}async execute(){if(this.tag==="latest")throw new ot("The 'latest' tag cannot be removed.");let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);let n=Y.parseIdent(this.package),u=Wn.getPublishRegistry(a.manifest,{configuration:r}),A=ye.pretty(r,this.tag,ye.Type.CODE),p=ye.pretty(r,n,ye.Type.IDENT),h=await yv(n,r);if(!Object.prototype.hasOwnProperty.call(h,this.tag))throw new ot(`${A} is not a tag of package ${p}`);return(await Et.start({configuration:r,stdout:this.context.stdout},async w=>{let v=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.del(v,{configuration:r,registry:u,ident:n,jsonResponse:!0}),w.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};Wh.paths=[["npm","tag","remove"]],Wh.usage=it.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` 690 `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});Ke();_t();var Yh=class extends ct{constructor(){super(...arguments);this.package=fe.String();this.tag=fe.String()}async execute(){if(this.tag==="latest")throw new ot("The 'latest' tag cannot be removed.");let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);let n=Y.parseIdent(this.package),u=Wn.getPublishRegistry(a.manifest,{configuration:r}),A=ye.pretty(r,this.tag,ye.Type.CODE),p=ye.pretty(r,n,ye.Type.IDENT),h=await Cv(n,r);if(!Object.prototype.hasOwnProperty.call(h,this.tag))throw new ot(`${A} is not a tag of package ${p}`);return(await Ct.start({configuration:r,stdout:this.context.stdout},async w=>{let v=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.del(v,{configuration:r,registry:u,ident:n,jsonResponse:!0}),w.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};Yh.paths=[["npm","tag","remove"]],Yh.usage=it.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:`
690 This command will remove a tag from a package from the npm registry. 691 This command will remove a tag from a package from the npm registry.
691 `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});Ke();Ke();_t();var Yh=class extends ct{constructor(){super(...arguments);this.scope=fe.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=fe.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=Wn.getScopeRegistry(this.scope,{configuration:r,type:Wn.RegistryType.PUBLISH_REGISTRY}):this.scope?o=Wn.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=Wn.getPublishRegistry((await cE(r,this.context.cwd)).manifest,{configuration:r}):o=Wn.getDefaultRegistry({configuration:r}),(await Et.start({configuration:r,stdout:this.context.stdout},async n=>{var A,p;let u;try{u=await an.get("/-/whoami",{configuration:r,registry:o,authType:an.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?Y.makeIdent(this.scope,""):void 0})}catch(h){if(((A=h.response)==null?void 0:A.statusCode)===401||((p=h.response)==null?void 0:p.statusCode)===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw h}n.reportInfo(0,u.username)})).exitCode()}};Yh.paths=[["npm","whoami"]],Yh.usage=it.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var $Bt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[Mh,Uh,_h,Hh,qh,Gh,jh,Wh,Yh]},evt=$Bt;var bG={};Yt(bG,{PatchCommand:()=>Jh,PatchCommitCommand:()=>Vh,PatchFetcher:()=>Bv,PatchResolver:()=>vv,default:()=>yvt,patchUtils:()=>Pm});Ke();Ke();bt();_c();var Pm={};Yt(Pm,{applyPatchFile:()=>Jk,diffFolders:()=>PG,ensureUnpatchedDescriptor:()=>BG,ensureUnpatchedLocator:()=>Xk,extractPackageToDisk:()=>SG,extractPatchFlags:()=>eve,isParentRequired:()=>DG,isPatchDescriptor:()=>zk,isPatchLocator:()=>Kh,loadPatchFiles:()=>wv,makeDescriptor:()=>Zk,makeLocator:()=>vG,makePatchHash:()=>xG,parseDescriptor:()=>Ev,parseLocator:()=>Iv,parsePatchFile:()=>Cv,unpatchDescriptor:()=>gvt,unpatchLocator:()=>dvt});Ke();bt();Ke();bt();var tvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function tI(t){return z.relative(wt.root,z.resolve(wt.root,ue.toPortablePath(t)))}function rvt(t){let e=t.trim().match(tvt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var nvt=420,ivt=493;var VBe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),svt=t=>({header:rvt(t),parts:[]}),ovt={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function avt(t){let e=[],r=VBe(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){u(),e.push(r),r=VBe()}for(let p=0;p<t.length;p++){let h=t[p];if(o==="parsing header")if(h.startsWith("@@"))o="parsing hunks",r.hunks=[],p-=1;else if(h.startsWith("diff --git ")){r&&r.diffLineFromPath&&A();let E=h.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!E)throw new Error(`Bad diff line: ${h}`);r.diffLineFromPath=E[1],r.diffLineToPath=E[2]}else if(h.startsWith("old mode "))r.oldMode=h.slice(9).trim();else if(h.startsWith("new mode "))r.newMode=h.slice(9).trim();else if(h.startsWith("deleted file mode "))r.deletedFileMode=h.slice(18).trim();else if(h.startsWith("new file mode "))r.newFileMode=h.slice(14).trim();else if(h.startsWith("rename from "))r.renameFrom=h.slice(12).trim();else if(h.startsWith("rename to "))r.renameTo=h.slice(10).trim();else if(h.startsWith("index ")){let E=h.match(/(\w+)\.\.(\w+)/);if(!E)continue;r.beforeHash=E[1],r.afterHash=E[2]}else h.startsWith("semver exclusivity ")?r.semverExclusivity=h.slice(19).trim():h.startsWith("--- ")?r.fromPath=h.slice(6).trim():h.startsWith("+++ ")&&(r.toPath=h.slice(6).trim());else{let E=ovt[h[0]]||null;switch(E){case"header":u(),a=svt(h);break;case null:o="parsing header",A(),p-=1;break;case"pragma":{if(!h.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${h}`);if(!n)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");n.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!a)throw new Error("Bad parser state: Hunk lines encountered before hunk header");n&&n.type!==E&&(a.parts.push(n),n=null),n||(n={type:E,lines:[],noNewlineAtEndOfFile:!1}),n.lines.push(h.slice(1))}break;default:Ye.assertNever(E);break}}}A();for(let{hunks:p}of e)if(p)for(let h of p)cvt(h);return e}function lvt(t){let e=[];for(let r of t){let{semverExclusivity:o,diffLineFromPath:a,diffLineToPath:n,oldMode:u,newMode:A,deletedFileMode:p,newFileMode:h,renameFrom:E,renameTo:w,beforeHash:v,afterHash:b,fromPath:C,toPath:R,hunks:L}=r,_=E?"rename":p?"file deletion":h?"file creation":L&&L.length>0?"patch":"mode change",V=null;switch(_){case"rename":{if(!E||!w)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:o,fromPath:tI(E),toPath:tI(w)}),V=w}break;case"file deletion":{let re=a||C;if(!re)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:o,hunk:L&&L[0]||null,path:tI(re),mode:Vk(p),hash:v})}break;case"file creation":{let re=n||R;if(!re)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:o,hunk:L&&L[0]||null,path:tI(re),mode:Vk(h),hash:b})}break;case"patch":case"mode change":V=R||n;break;default:Ye.assertNever(_);break}V&&u&&A&&u!==A&&e.push({type:"mode change",semverExclusivity:o,path:tI(V),oldMode:Vk(u),newMode:Vk(A)}),V&&L&&L.length&&e.push({type:"patch",semverExclusivity:o,path:tI(V),hunks:L,beforeHash:v,afterHash:b})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Vk(t){let e=parseInt(t,8)&511;if(e!==nvt&&e!==ivt)throw new Error(`Unexpected file mode string: ${t}`);return e}function Cv(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),lvt(avt(e))}function cvt(t){let e=0,r=0;for(let{type:o,lines:a}of t.parts)switch(o){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:Ye.assertNever(o);break}if(e!==t.header.original.length||r!==t.header.patched.length){let o=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${o(t.header.original.length)} ${o(t.header.patched.length)} @@, got @@ ${o(e)} ${o(r)} @@)`)}}Ke();bt();var rI=class extends Error{constructor(r,o){super(`Cannot apply hunk #${r+1}`);this.hunk=o}};async function nI(t,e,r){let o=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,o.atime,o.mtime)}async function Jk(t,{baseFs:e=new xn,dryRun:r=!1,version:o=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&o!==null&&!Tr.satisfiesWithPrereleases(o,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await nI(e,z.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await nI(e,z.dirname(a.fromPath),async()=>{await nI(e,z.dirname(a.toPath),async()=>{await nI(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` 692 `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});Ke();Ke();_t();var Kh=class extends ct{constructor(){super(...arguments);this.scope=fe.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=fe.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=Wn.getScopeRegistry(this.scope,{configuration:r,type:Wn.RegistryType.PUBLISH_REGISTRY}):this.scope?o=Wn.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=Wn.getPublishRegistry((await cC(r,this.context.cwd)).manifest,{configuration:r}):o=Wn.getDefaultRegistry({configuration:r}),(await Ct.start({configuration:r,stdout:this.context.stdout},async n=>{var A,p;let u;try{u=await an.get("/-/whoami",{configuration:r,registry:o,authType:an.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?Y.makeIdent(this.scope,""):void 0})}catch(h){if(((A=h.response)==null?void 0:A.statusCode)===401||((p=h.response)==null?void 0:p.statusCode)===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw h}n.reportInfo(0,u.username)})).exitCode()}};Kh.paths=[["npm","whoami"]],Kh.usage=it.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var ivt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[Uh,_h,Hh,qh,jh,Wh,Gh,Yh,Kh]},svt=ivt;var kG={};Yt(kG,{PatchCommand:()=>zh,PatchCommitCommand:()=>Jh,PatchFetcher:()=>Dv,PatchResolver:()=>Sv,default:()=>Bvt,patchUtils:()=>Pm});Ke();Ke();St();Hc();var Pm={};Yt(Pm,{applyPatchFile:()=>Zk,diffFolders:()=>bG,ensureUnpatchedDescriptor:()=>DG,ensureUnpatchedLocator:()=>eF,extractPackageToDisk:()=>xG,extractPatchFlags:()=>ive,isParentRequired:()=>PG,isPatchDescriptor:()=>$k,isPatchLocator:()=>Vh,loadPatchFiles:()=>vv,makeDescriptor:()=>tF,makeLocator:()=>SG,makePatchHash:()=>QG,parseDescriptor:()=>wv,parseLocator:()=>Bv,parsePatchFile:()=>Iv,unpatchDescriptor:()=>Cvt,unpatchLocator:()=>Ivt});Ke();St();Ke();St();var ovt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function tI(t){return J.relative(wt.root,J.resolve(wt.root,ue.toPortablePath(t)))}function avt(t){let e=t.trim().match(ovt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var lvt=420,cvt=493;var ZBe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),uvt=t=>({header:avt(t),parts:[]}),Avt={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function fvt(t){let e=[],r=ZBe(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){u(),e.push(r),r=ZBe()}for(let p=0;p<t.length;p++){let h=t[p];if(o==="parsing header")if(h.startsWith("@@"))o="parsing hunks",r.hunks=[],p-=1;else if(h.startsWith("diff --git ")){r&&r.diffLineFromPath&&A();let C=h.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!C)throw new Error(`Bad diff line: ${h}`);r.diffLineFromPath=C[1],r.diffLineToPath=C[2]}else if(h.startsWith("old mode "))r.oldMode=h.slice(9).trim();else if(h.startsWith("new mode "))r.newMode=h.slice(9).trim();else if(h.startsWith("deleted file mode "))r.deletedFileMode=h.slice(18).trim();else if(h.startsWith("new file mode "))r.newFileMode=h.slice(14).trim();else if(h.startsWith("rename from "))r.renameFrom=h.slice(12).trim();else if(h.startsWith("rename to "))r.renameTo=h.slice(10).trim();else if(h.startsWith("index ")){let C=h.match(/(\w+)\.\.(\w+)/);if(!C)continue;r.beforeHash=C[1],r.afterHash=C[2]}else h.startsWith("semver exclusivity ")?r.semverExclusivity=h.slice(19).trim():h.startsWith("--- ")?r.fromPath=h.slice(6).trim():h.startsWith("+++ ")&&(r.toPath=h.slice(6).trim());else{let C=Avt[h[0]]||null;switch(C){case"header":u(),a=uvt(h);break;case null:o="parsing header",A(),p-=1;break;case"pragma":{if(!h.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${h}`);if(!n)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");n.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!a)throw new Error("Bad parser state: Hunk lines encountered before hunk header");n&&n.type!==C&&(a.parts.push(n),n=null),n||(n={type:C,lines:[],noNewlineAtEndOfFile:!1}),n.lines.push(h.slice(1))}break;default:We.assertNever(C);break}}}A();for(let{hunks:p}of e)if(p)for(let h of p)hvt(h);return e}function pvt(t){let e=[];for(let r of t){let{semverExclusivity:o,diffLineFromPath:a,diffLineToPath:n,oldMode:u,newMode:A,deletedFileMode:p,newFileMode:h,renameFrom:C,renameTo:w,beforeHash:v,afterHash:b,fromPath:E,toPath:R,hunks:L}=r,_=C?"rename":p?"file deletion":h?"file creation":L&&L.length>0?"patch":"mode change",V=null;switch(_){case"rename":{if(!C||!w)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:o,fromPath:tI(C),toPath:tI(w)}),V=w}break;case"file deletion":{let re=a||E;if(!re)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:o,hunk:L&&L[0]||null,path:tI(re),mode:Xk(p),hash:v})}break;case"file creation":{let re=n||R;if(!re)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:o,hunk:L&&L[0]||null,path:tI(re),mode:Xk(h),hash:b})}break;case"patch":case"mode change":V=R||n;break;default:We.assertNever(_);break}V&&u&&A&&u!==A&&e.push({type:"mode change",semverExclusivity:o,path:tI(V),oldMode:Xk(u),newMode:Xk(A)}),V&&L&&L.length&&e.push({type:"patch",semverExclusivity:o,path:tI(V),hunks:L,beforeHash:v,afterHash:b})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Xk(t){let e=parseInt(t,8)&511;if(e!==lvt&&e!==cvt)throw new Error(`Unexpected file mode string: ${t}`);return e}function Iv(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),pvt(fvt(e))}function hvt(t){let e=0,r=0;for(let{type:o,lines:a}of t.parts)switch(o){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:We.assertNever(o);break}if(e!==t.header.original.length||r!==t.header.patched.length){let o=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${o(t.header.original.length)} ${o(t.header.patched.length)} @@, got @@ ${o(e)} ${o(r)} @@)`)}}Ke();St();var rI=class extends Error{constructor(r,o){super(`Cannot apply hunk #${r+1}`);this.hunk=o}};async function nI(t,e,r){let o=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,o.atime,o.mtime)}async function Zk(t,{baseFs:e=new xn,dryRun:r=!1,version:o=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&o!==null&&!Tr.satisfiesWithPrereleases(o,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await nI(e,J.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await nI(e,J.dirname(a.fromPath),async()=>{await nI(e,J.dirname(a.toPath),async()=>{await nI(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(`
692`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` 693`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":`
693`):"";await e.mkdirpPromise(z.dirname(a.path),{chmod:493,utimes:[Ii.SAFE_TIME,Ii.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,Ii.SAFE_TIME,Ii.SAFE_TIME)}break;case"patch":await nI(e,a.path,async()=>{await fvt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if(JBe(a.newMode)!==JBe(u))continue;await nI(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:Ye.assertNever(a);break}}function JBe(t){return(t&64)>0}function zBe(t){return t.replace(/\s+$/,"")}function Avt(t,e){return zBe(t)===zBe(e)}async function fvt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let w of t){let v=Math.max(h,w.header.patched.start+p),b=Math.max(0,v-h),C=Math.max(0,u.length-v-w.header.original.length),R=Math.max(b,C),L=0,_=0,V=null;for(;L<=R;){if(L<=b&&(_=v-L,V=XBe(w,u,_),V!==null)){L=-L;break}if(L<=C&&(_=v+L,V=XBe(w,u,_),V!==null))break;L+=1}if(V===null)throw new rI(t.indexOf(w),w);A.push(V),p+=L,h=_+w.header.original.length}if(o)return;let E=0;for(let w of A)for(let v of w)switch(v.type){case"splice":{let b=v.index+E;u.splice(b,v.numToDelete,...v.linesToInsert),E+=v.linesToInsert.length-v.numToDelete}break;case"pop":u.pop();break;case"push":u.push(v.line);break;default:Ye.assertNever(v);break}await r.writeFilePromise(e,u.join(` 694`):"";await e.mkdirpPromise(J.dirname(a.path),{chmod:493,utimes:[Ii.SAFE_TIME,Ii.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,Ii.SAFE_TIME,Ii.SAFE_TIME)}break;case"patch":await nI(e,a.path,async()=>{await mvt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if($Be(a.newMode)!==$Be(u))continue;await nI(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:We.assertNever(a);break}}function $Be(t){return(t&64)>0}function eve(t){return t.replace(/\s+$/,"")}function dvt(t,e){return eve(t)===eve(e)}async function mvt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let w of t){let v=Math.max(h,w.header.patched.start+p),b=Math.max(0,v-h),E=Math.max(0,u.length-v-w.header.original.length),R=Math.max(b,E),L=0,_=0,V=null;for(;L<=R;){if(L<=b&&(_=v-L,V=tve(w,u,_),V!==null)){L=-L;break}if(L<=E&&(_=v+L,V=tve(w,u,_),V!==null))break;L+=1}if(V===null)throw new rI(t.indexOf(w),w);A.push(V),p+=L,h=_+w.header.original.length}if(o)return;let C=0;for(let w of A)for(let v of w)switch(v.type){case"splice":{let b=v.index+C;u.splice(b,v.numToDelete,...v.linesToInsert),C+=v.linesToInsert.length-v.numToDelete}break;case"pop":u.pop();break;case"push":u.push(v.line);break;default:We.assertNever(v);break}await r.writeFilePromise(e,u.join(`
694`),{mode:a})}function XBe(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!Avt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:Ye.assertNever(a.type);break}return o}var hvt=/^builtin<([^>]+)>$/;function iI(t,e){let{protocol:r,source:o,selector:a,params:n}=Y.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(E=>ue.toPortablePath(E)):[],A=n&&typeof n.locator=="string"?Y.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function zk(t){return t.range.startsWith("patch:")}function Kh(t){return t.reference.startsWith("patch:")}function Ev(t){let{sourceItem:e,...r}=iI(t.range,Y.parseDescriptor);return{...r,sourceDescriptor:e}}function Iv(t){let{sourceItem:e,...r}=iI(t.reference,Y.parseLocator);return{...r,sourceLocator:e}}function gvt(t){let{sourceItem:e}=iI(t.range,Y.parseDescriptor);return e}function dvt(t){let{sourceItem:e}=iI(t.reference,Y.parseLocator);return e}function BG(t){if(!zk(t))return t;let{sourceItem:e}=iI(t.range,Y.parseDescriptor);return e}function Xk(t){if(!Kh(t))return t;let{sourceItem:e}=iI(t.reference,Y.parseLocator);return e}function ZBe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:Y.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return Y.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function Zk(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return Y.makeDescriptor(t,ZBe({parentLocator:e,sourceItem:r,patchPaths:o},Y.stringifyDescriptor))}function vG(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return Y.makeLocator(t,ZBe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},Y.stringifyLocator))}function $Be({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(hvt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):z.isAbsolute(a)?t(a):e(a)}function eve(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function DG(t){return $Be({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function wv(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new An(wt.root),prefixPath:z.relative(wt.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await Ye.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=eve(u),p=await $Be({onAbsolute:async h=>await ae.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(z.join(a.prefixPath,h),"utf8")},onProject:async h=>await ae.readFilePromise(z.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,` 695`),{mode:a})}function tve(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!dvt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:We.assertNever(a.type);break}return o}var Evt=/^builtin<([^>]+)>$/;function iI(t,e){let{protocol:r,source:o,selector:a,params:n}=Y.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(C=>ue.toPortablePath(C)):[],A=n&&typeof n.locator=="string"?Y.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function $k(t){return t.range.startsWith("patch:")}function Vh(t){return t.reference.startsWith("patch:")}function wv(t){let{sourceItem:e,...r}=iI(t.range,Y.parseDescriptor);return{...r,sourceDescriptor:e}}function Bv(t){let{sourceItem:e,...r}=iI(t.reference,Y.parseLocator);return{...r,sourceLocator:e}}function Cvt(t){let{sourceItem:e}=iI(t.range,Y.parseDescriptor);return e}function Ivt(t){let{sourceItem:e}=iI(t.reference,Y.parseLocator);return e}function DG(t){if(!$k(t))return t;let{sourceItem:e}=iI(t.range,Y.parseDescriptor);return e}function eF(t){if(!Vh(t))return t;let{sourceItem:e}=iI(t.reference,Y.parseLocator);return e}function rve({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:Y.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return Y.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function tF(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return Y.makeDescriptor(t,rve({parentLocator:e,sourceItem:r,patchPaths:o},Y.stringifyDescriptor))}function SG(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return Y.makeLocator(t,rve({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},Y.stringifyLocator))}function nve({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(Evt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):J.isAbsolute(a)?t(a):e(a)}function ive(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function PG(t){return nve({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function vv(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new An(wt.root),prefixPath:J.relative(wt.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await We.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=ive(u),p=await nve({onAbsolute:async h=>await oe.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(J.join(a.prefixPath,h),"utf8")},onProject:async h=>await oe.readFilePromise(J.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(C=>C.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,`
695`));return n}async function SG(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=Xk(t),n=r.storedChecksums,u=new xi,A=await ae.mktempPromise(),p=z.join(A,"source"),h=z.join(A,"user"),E=z.join(A,".yarn-patch.json"),w=r.configuration.makeFetcher(),v=[];try{let b,C;if(t.locatorHash===a.locatorHash){let R=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u});v.push(()=>{var L;return(L=R.releaseFs)==null?void 0:L.call(R)}),b=R,C=R}else b=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u}),v.push(()=>{var R;return(R=b.releaseFs)==null?void 0:R.call(b)}),C=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u}),v.push(()=>{var R;return(R=C.releaseFs)==null?void 0:R.call(C)});await Promise.all([ae.copyPromise(p,b.prefixPath,{baseFs:b.packageFs}),ae.copyPromise(h,C.prefixPath,{baseFs:C.packageFs}),ae.writeJsonPromise(E,{locator:Y.stringifyLocator(t),version:o.version})])}finally{for(let b of v)b()}return ae.detachTemp(A),h}async function PG(t,e){let r=ue.fromPortablePath(t).replace(/\\/g,"/"),o=ue.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Mr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:ue.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. 696`));return n}async function xG(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=eF(t),n=r.storedChecksums,u=new xi,A=await oe.mktempPromise(),p=J.join(A,"source"),h=J.join(A,"user"),C=J.join(A,".yarn-patch.json"),w=r.configuration.makeFetcher(),v=[];try{let b,E;if(t.locatorHash===a.locatorHash){let R=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u});v.push(()=>{var L;return(L=R.releaseFs)==null?void 0:L.call(R)}),b=R,E=R}else b=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u}),v.push(()=>{var R;return(R=b.releaseFs)==null?void 0:R.call(b)}),E=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u}),v.push(()=>{var R;return(R=E.releaseFs)==null?void 0:R.call(E)});await Promise.all([oe.copyPromise(p,b.prefixPath,{baseFs:b.packageFs}),oe.copyPromise(h,E.prefixPath,{baseFs:E.packageFs}),oe.writeJsonPromise(C,{locator:Y.stringifyLocator(t),version:o.version})])}finally{for(let b of v)b()}return oe.detachTemp(A),h}async function bG(t,e){let r=ue.fromPortablePath(t).replace(/\\/g,"/"),o=ue.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Mr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:ue.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH.
696The following error was reported by 'git': 697The following error was reported by 'git':
697${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${Ye.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${Ye.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(Ye.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(Ye.escapeRegExp(`${o}/`),"g"),"")}function xG(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=Cv(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!Tr.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return bn.makeHash(`${3}`,...r).slice(0,6)}Ke();function tve(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${ye.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${ye.pretty(e,a,ye.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${ye.pretty(e,a,ye.Type.ADDED)}`);break;default:Ye.assertNever(o.type)}}var Bv=class{supports(e,r){return!!Kh(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=Iv(e),A=await wv(o,u,r),p=await ae.mktempPromise(),h=z.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),w=Y.getIdentVendorPath(e),v=new os(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await Ye.releaseAfterUseAsync(async()=>{await v.copyPromise(w,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),v.saveAndClose();for(let{source:b,optional:C}of A){if(b===null)continue;let R=new os(h,{level:r.project.configuration.get("compressionLevel")}),L=new An(z.resolve(wt.root,w),{baseFs:R});try{await Jk(Cv(b),{baseFs:L,version:n})}catch(_){if(!(_ instanceof rI))throw _;let V=r.project.configuration.get("enableInlineHunks"),re=!V&&!C?" (set enableInlineHunks for details)":"",oe=`${Y.prettyLocator(r.project.configuration,e)}: ${_.message}${re}`,pe=he=>{!V||tve(_.hunk,{configuration:r.project.configuration,report:he})};if(R.discardAndClose(),C){r.report.reportWarningOnce(66,oe,{reportExtra:pe});continue}else throw new Vt(66,oe,pe)}R.saveAndClose()}return new os(h,{level:r.project.configuration.get("compressionLevel")})}};Ke();var vv=class{supportsDescriptor(e,r){return!!zk(e)}supportsLocator(e,r){return!!Kh(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=Ev(e);return a.every(n=>!DG(n))?e:Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=Ev(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=Ev(e),u=await wv(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=xG(u,A.version);return[vG(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=Iv(e);return{...await r.resolver.resolve(o,r),...e}}};Ke();bt();_t();var Vh=class extends ct{constructor(){super(...arguments);this.save=fe.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let n=z.resolve(this.context.cwd,ue.toPortablePath(this.patchFolder)),u=z.join(n,"../source"),A=z.join(n,"../.yarn-patch.json");if(!ae.existsSync(u))throw new ot("The argument folder didn't get created by 'yarn patch'");let p=await PG(u,n),h=await ae.readJsonPromise(A),E=Y.parseLocator(h.locator,!0);if(!o.storedPackages.has(E.locatorHash))throw new ot("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let w=r.get("patchFolder"),v=z.join(w,`${Y.slugifyLocator(E)}.patch`);await ae.mkdirPromise(w,{recursive:!0}),await ae.writeFilePromise(v,p);let b=[],C=new Map;for(let R of o.storedPackages.values()){if(Y.isVirtualLocator(R))continue;let L=R.dependencies.get(E.identHash);if(!L)continue;let _=Y.ensureDevirtualizedDescriptor(L),V=BG(_),re=o.storedResolutions.get(V.descriptorHash);if(!re)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!o.storedPackages.get(re))throw new Error("Assertion failed: Expected the package to have been registered");let pe=o.tryWorkspaceByLocator(R);if(pe)b.push(pe);else{let he=o.originalPackages.get(R.locatorHash);if(!he)throw new Error("Assertion failed: Expected the original package to have been registered");let ve=he.dependencies.get(L.identHash);if(!ve)throw new Error("Assertion failed: Expected the original dependency to have been registered");C.set(ve.descriptorHash,ve)}}for(let R of b)for(let L of Nt.hardDependencies){let _=R.manifest[L].get(E.identHash);if(!_)continue;let V=Zk(_,{parentLocator:null,sourceDescriptor:Y.convertLocatorToDescriptor(E),patchPaths:[z.join(Lr.home,z.relative(o.cwd,v))]});R.manifest[L].set(_.identHash,V)}for(let R of C.values()){let L=Zk(R,{parentLocator:null,sourceDescriptor:Y.convertLocatorToDescriptor(E),patchPaths:[z.join(Lr.home,z.relative(o.cwd,v))]});o.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:Y.stringifyIdent(L),description:R.range}},reference:L.range})}await o.persist()}};Vh.paths=[["patch-commit"]],Vh.usage=it.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});Ke();bt();_t();var Jh=class extends ct{constructor(){super(...arguments);this.update=fe.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let u=Y.parseLocator(this.package);if(u.reference==="unknown"){let A=Ye.mapAndFilter([...o.storedPackages.values()],p=>p.identHash!==u.identHash?Ye.mapAndFilter.skip:Y.isVirtualLocator(p)?Ye.mapAndFilter.skip:Kh(p)!==this.update?Ye.mapAndFilter.skip:p);if(A.length===0)throw new ot("No package found in the project for the given locator");if(A.length>1)throw new ot(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them): 698${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${We.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${We.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(We.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(We.escapeRegExp(`${o}/`),"g"),"")}function QG(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=Iv(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!Tr.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return bn.makeHash(`${3}`,...r).slice(0,6)}Ke();function sve(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${ye.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${ye.pretty(e,a,ye.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${ye.pretty(e,a,ye.Type.ADDED)}`);break;default:We.assertNever(o.type)}}var Dv=class{supports(e,r){return!!Vh(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${Y.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:Y.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=Bv(e),A=await vv(o,u,r),p=await oe.mktempPromise(),h=J.join(p,"current.zip"),C=await r.fetcher.fetch(a,r),w=Y.getIdentVendorPath(e),v=new os(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await We.releaseAfterUseAsync(async()=>{await v.copyPromise(w,C.prefixPath,{baseFs:C.packageFs,stableSort:!0})},C.releaseFs),v.saveAndClose();for(let{source:b,optional:E}of A){if(b===null)continue;let R=new os(h,{level:r.project.configuration.get("compressionLevel")}),L=new An(J.resolve(wt.root,w),{baseFs:R});try{await Zk(Iv(b),{baseFs:L,version:n})}catch(_){if(!(_ instanceof rI))throw _;let V=r.project.configuration.get("enableInlineHunks"),re=!V&&!E?" (set enableInlineHunks for details)":"",ae=`${Y.prettyLocator(r.project.configuration,e)}: ${_.message}${re}`,he=pe=>{!V||sve(_.hunk,{configuration:r.project.configuration,report:pe})};if(R.discardAndClose(),E){r.report.reportWarningOnce(66,ae,{reportExtra:he});continue}else throw new Vt(66,ae,he)}R.saveAndClose()}return new os(h,{level:r.project.configuration.get("compressionLevel")})}};Ke();var Sv=class{supportsDescriptor(e,r){return!!$k(e)}supportsLocator(e,r){return!!Vh(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=wv(e);return a.every(n=>!PG(n))?e:Y.bindDescriptor(e,{locator:Y.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=wv(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=wv(e),u=await vv(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=QG(u,A.version);return[SG(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=Bv(e);return{...await r.resolver.resolve(o,r),...e}}};Ke();St();_t();var Jh=class extends ct{constructor(){super(...arguments);this.save=fe.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let n=J.resolve(this.context.cwd,ue.toPortablePath(this.patchFolder)),u=J.join(n,"../source"),A=J.join(n,"../.yarn-patch.json");if(!oe.existsSync(u))throw new ot("The argument folder didn't get created by 'yarn patch'");let p=await bG(u,n),h=await oe.readJsonPromise(A),C=Y.parseLocator(h.locator,!0);if(!o.storedPackages.has(C.locatorHash))throw new ot("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let w=r.get("patchFolder"),v=J.join(w,`${Y.slugifyLocator(C)}.patch`);await oe.mkdirPromise(w,{recursive:!0}),await oe.writeFilePromise(v,p);let b=[],E=new Map;for(let R of o.storedPackages.values()){if(Y.isVirtualLocator(R))continue;let L=R.dependencies.get(C.identHash);if(!L)continue;let _=Y.ensureDevirtualizedDescriptor(L),V=DG(_),re=o.storedResolutions.get(V.descriptorHash);if(!re)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!o.storedPackages.get(re))throw new Error("Assertion failed: Expected the package to have been registered");let he=o.tryWorkspaceByLocator(R);if(he)b.push(he);else{let pe=o.originalPackages.get(R.locatorHash);if(!pe)throw new Error("Assertion failed: Expected the original package to have been registered");let De=pe.dependencies.get(L.identHash);if(!De)throw new Error("Assertion failed: Expected the original dependency to have been registered");E.set(De.descriptorHash,De)}}for(let R of b)for(let L of Nt.hardDependencies){let _=R.manifest[L].get(C.identHash);if(!_)continue;let V=tF(_,{parentLocator:null,sourceDescriptor:Y.convertLocatorToDescriptor(C),patchPaths:[J.join(Lr.home,J.relative(o.cwd,v))]});R.manifest[L].set(_.identHash,V)}for(let R of E.values()){let L=tF(R,{parentLocator:null,sourceDescriptor:Y.convertLocatorToDescriptor(C),patchPaths:[J.join(Lr.home,J.relative(o.cwd,v))]});o.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:Y.stringifyIdent(L),description:R.range}},reference:L.range})}await o.persist()}};Jh.paths=[["patch-commit"]],Jh.usage=it.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});Ke();St();_t();var zh=class extends ct{constructor(){super(...arguments);this.update=fe.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let u=Y.parseLocator(this.package);if(u.reference==="unknown"){let A=We.mapAndFilter([...o.storedPackages.values()],p=>p.identHash!==u.identHash?We.mapAndFilter.skip:Y.isVirtualLocator(p)?We.mapAndFilter.skip:Vh(p)!==this.update?We.mapAndFilter.skip:p);if(A.length===0)throw new ot("No package found in the project for the given locator");if(A.length>1)throw new ot(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them):
698${A.map(p=>` 699${A.map(p=>`
699- ${Y.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new ot("No package found in the project for the given locator");await Et.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=Xk(u),h=await SG(u,{cache:n,project:o});A.reportJson({locator:Y.stringifyLocator(p),path:ue.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${Y.prettyLocator(r,p)} got extracted with success${E}!`),A.reportInfo(0,`You can now edit the following folder: ${ye.pretty(r,ue.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${ye.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${ue.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};Jh.paths=[["patch"]],Jh.usage=it.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "});var mvt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[Vh,Jh],fetchers:[Bv],resolvers:[vv]},yvt=mvt;var FG={};Yt(FG,{PnpmLinker:()=>Dv,default:()=>Bvt});Ke();bt();_t();var Dv=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new ot(`The project in ${ye.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ye.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new ot(`Couldn't find ${Y.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new ot(`The project in ${ye.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ye.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=z.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new QG(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},QG=class{constructor(e){this.opts=e;this.asyncActions=new Ye.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=fD(ae,{indexPath:z.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=z.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?z.join(a,Lr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildDirective:null}}async installPackageHard(e,r,o){let a=Cvt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,Y.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await ae.mkdirPromise(n,{recursive:!0}),await ae.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=Y.isVirtualLocator(e)?Y.devirtualizeLocator(e):e,p={manifest:await Nt.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Nt,misc:{hasBindingGyp:CA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),E=CA.extractBuildScripts(e,p,h,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!rve(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${Y.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;!a||this.asyncActions.reduce(e.locatorHash,async n=>{await ae.mkdirPromise(a,{recursive:!0});let u=await Evt(a),A=new Map(u),p=[n],h=(w,v)=>{let b=v;rve(v,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),b=Y.devirtualizeLocator(v));let C=this.customData.pathsByLocator.get(b.locatorHash);if(typeof C>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${Y.stringifyLocator(v)})`);let R=Y.stringifyIdent(w),L=z.join(a,R),_=z.relative(z.dirname(L),C.packageLocation),V=A.get(R);A.delete(R),p.push(Promise.resolve().then(async()=>{if(V){if(V.isSymbolicLink()&&await ae.readlinkPromise(L)===_)return;await ae.removePromise(L)}await ae.mkdirpPromise(z.dirname(L)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await ae.symlinkPromise(C.packageLocation,L,"junction"):await ae.symlinkPromise(_,L)}))},E=!1;for(let[w,v]of r)w.identHash===e.identHash&&(E=!0),h(w,v);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(Y.convertLocatorToDescriptor(e),e),p.push(Ivt(a,A)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=ive(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await ae.removePromise(e);else{let r;try{r=new Set(await ae.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:o}of this.customData.pathsByLocator.values()){if(!o)continue;let a=z.contains(e,o);if(a===null)continue;let[n]=a.split(z.sep);r.delete(n)}await Promise.all([...r].map(async o=>{await ae.removePromise(z.join(e,o))}))}return await this.asyncActions.wait(),await kG(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await kG(nve(this.opts.project)),{customData:this.customData}}};function nve(t){return z.join(t.cwd,Lr.nodeModules)}function ive(t){return z.join(nve(t),".store")}function Cvt(t,{project:e}){let r=Y.slugifyLocator(t),o=ive(e),a=z.join(o,r,"package"),n=z.join(o,r,Lr.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function rve(t,{project:e}){return!Y.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Evt(t){let e=new Map,r=[];try{r=await ae.readdirPromise(t,{withFileTypes:!0})}catch(o){if(o.code!=="ENOENT")throw o}try{for(let o of r)if(!o.name.startsWith("."))if(o.name.startsWith("@")){let a=await ae.readdirPromise(z.join(t,o.name),{withFileTypes:!0});if(a.length===0)e.set(o.name,o);else for(let n of a)e.set(`${o.name}/${n.name}`,n)}else e.set(o.name,o)}catch(o){if(o.code!=="ENOENT")throw o}return e}async function Ivt(t,e){var a;let r=[],o=new Set;for(let n of e.keys()){r.push(ae.removePromise(z.join(t,n)));let u=(a=Y.tryParseIdent(n))==null?void 0:a.scope;u&&o.add(`@${u}`)}return Promise.all(r).then(()=>Promise.all([...o].map(n=>kG(z.join(t,n)))))}async function kG(t){try{await ae.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var wvt={linkers:[Dv]},Bvt=wvt;var MG={};Yt(MG,{StageCommand:()=>zh,default:()=>Tvt,stageUtils:()=>Pv});Ke();bt();_t();Ke();bt();var Pv={};Yt(Pv,{ActionType:()=>RG,checkConsensus:()=>$k,expandDirectory:()=>NG,findConsensus:()=>LG,findVcsRoot:()=>Sv,genCommitMessage:()=>OG,getCommitPrefix:()=>sve,isYarnFile:()=>TG});bt();var RG=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(RG||{});async function Sv(t,{marker:e}){do if(!ae.existsSync(z.join(t,e)))t=z.dirname(t);else return t;while(t!=="/");return null}function TG(t,{roots:e,names:r}){if(r.has(z.basename(t)))return!0;do if(!e.has(t))t=z.dirname(t);else return!0;while(t!=="/");return!1}function NG(t){let e=[],r=[t];for(;r.length>0;){let o=r.pop(),a=ae.readdirSync(o);for(let n of a){let u=z.resolve(o,n);ae.lstatSync(u).isDirectory()?r.push(u):e.push(u)}}return e}function $k(t,e){let r=0,o=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:o+=1);return r>=o}function LG(t){let e=$k(t,/^(\w\(\w+\):\s*)?\w+s/),r=$k(t,/^(\w\(\w+\):\s*)?[A-Z]/),o=$k(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:o}}function sve(t){return t.useComponent?"chore(yarn): ":""}var vvt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function OG(t,e){let r=sve(t),o=[],a=e.slice().sort((n,u)=>n[0]-u[0]);for(;a.length>0;){let[n,u]=a.shift(),A=vvt.get(n);t.useUpperCase&&o.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),t.useThirdPerson&&(A+="s");let p=[u];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),o.push(`${A} ${h}`)}return`${r}${o.join(", ")}`}var Dvt="Commit generated via `yarn stage`",Svt=11;async function ove(t){let{code:e,stdout:r}=await Mr.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function Pvt(t,e){let r=[],o=e.filter(h=>z.basename(h.path)==="package.json");for(let{action:h,path:E}of o){let w=z.relative(t,E);if(h===4){let v=await ove(t),{stdout:b}=await Mr.execvp("git",["show",`${v}:${w}`],{cwd:t,strict:!0}),C=await Nt.fromText(b),R=await Nt.fromFile(E),L=new Map([...R.dependencies,...R.devDependencies]),_=new Map([...C.dependencies,...C.devDependencies]);for(let[V,re]of _){let oe=Y.stringifyIdent(re),pe=L.get(V);pe?pe.range!==re.range&&r.push([4,`${oe} to ${pe.range}`]):r.push([3,oe])}for(let[V,re]of L)_.has(V)||r.push([2,Y.stringifyIdent(re)])}else if(h===0){let v=await Nt.fromFile(E);v.name?r.push([0,Y.stringifyIdent(v.name)]):r.push([0,"a package"])}else if(h===1){let v=await ove(t),{stdout:b}=await Mr.execvp("git",["show",`${v}:${w}`],{cwd:t,strict:!0}),C=await Nt.fromText(b);C.name?r.push([1,Y.stringifyIdent(C.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Mr.execvp("git",["log",`-${Svt}`,"--pretty=format:%s"],{cwd:t}),u=a===0?n.split(/\n/g).filter(h=>h!==""):[],A=LG(u);return OG(A,r)}var xvt={[0]:[" A ","?? "],[4]:[" M "],[1]:[" D "]},bvt={[0]:["A "],[4]:["M "],[1]:["D "]},ave={async findRoot(t){return await Sv(t,{marker:".git"})},async filterChanges(t,e,r,o){let{stdout:a}=await Mr.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),u=o!=null&&o.staged?bvt:xvt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=z.resolve(t,p.slice(3));if(!(o!=null&&o.staged)&&h==="?? "&&p.endsWith("/"))return NG(E).map(w=>({action:0,path:w}));{let v=[0,4,1].find(b=>u[b].includes(h));return v!==void 0?[{action:v,path:E}]:[]}})).filter(p=>TG(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await Pvt(t,e)},async makeStage(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Mr.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let o=e.map(a=>ue.fromPortablePath(a.path));await Mr.execvp("git",["add","-N","--",...o],{cwd:t,strict:!0}),await Mr.execvp("git",["commit","-m",`${r} 700- ${Y.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new ot("No package found in the project for the given locator");await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=eF(u),h=await xG(u,{cache:n,project:o});A.reportJson({locator:Y.stringifyLocator(p),path:ue.fromPortablePath(h)});let C=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${Y.prettyLocator(r,p)} got extracted with success${C}!`),A.reportInfo(0,`You can now edit the following folder: ${ye.pretty(r,ue.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${ye.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${ue.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};zh.paths=[["patch"]],zh.usage=it.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "});var wvt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[Jh,zh],fetchers:[Dv],resolvers:[Sv]},Bvt=wvt;var TG={};Yt(TG,{PnpmLinker:()=>Pv,default:()=>xvt});Ke();St();_t();var Pv=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new ot(`The project in ${ye.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ye.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new ot(`Couldn't find ${Y.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new ot(`The project in ${ye.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ye.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=J.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new FG(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},FG=class{constructor(e){this.opts=e;this.asyncActions=new We.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=hD(oe,{indexPath:J.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=J.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?J.join(a,Lr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildDirective:null}}async installPackageHard(e,r,o){let a=vvt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,Y.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await oe.mkdirPromise(n,{recursive:!0}),await oe.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=Y.isVirtualLocator(e)?Y.devirtualizeLocator(e):e,p={manifest:await Nt.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Nt,misc:{hasBindingGyp:CA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),C=CA.extractBuildScripts(e,p,h,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:C}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!ove(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${Y.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;!a||this.asyncActions.reduce(e.locatorHash,async n=>{await oe.mkdirPromise(a,{recursive:!0});let u=await Dvt(a),A=new Map(u),p=[n],h=(w,v)=>{let b=v;ove(v,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),b=Y.devirtualizeLocator(v));let E=this.customData.pathsByLocator.get(b.locatorHash);if(typeof E>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${Y.stringifyLocator(v)})`);let R=Y.stringifyIdent(w),L=J.join(a,R),_=J.relative(J.dirname(L),E.packageLocation),V=A.get(R);A.delete(R),p.push(Promise.resolve().then(async()=>{if(V){if(V.isSymbolicLink()&&await oe.readlinkPromise(L)===_)return;await oe.removePromise(L)}await oe.mkdirpPromise(J.dirname(L)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await oe.symlinkPromise(E.packageLocation,L,"junction"):await oe.symlinkPromise(_,L)}))},C=!1;for(let[w,v]of r)w.identHash===e.identHash&&(C=!0),h(w,v);!C&&!this.opts.project.tryWorkspaceByLocator(e)&&h(Y.convertLocatorToDescriptor(e),e),p.push(Svt(a,A)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=lve(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await oe.removePromise(e);else{let r;try{r=new Set(await oe.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:o}of this.customData.pathsByLocator.values()){if(!o)continue;let a=J.contains(e,o);if(a===null)continue;let[n]=a.split(J.sep);r.delete(n)}await Promise.all([...r].map(async o=>{await oe.removePromise(J.join(e,o))}))}return await this.asyncActions.wait(),await RG(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await RG(ave(this.opts.project)),{customData:this.customData}}};function ave(t){return J.join(t.cwd,Lr.nodeModules)}function lve(t){return J.join(ave(t),".store")}function vvt(t,{project:e}){let r=Y.slugifyLocator(t),o=lve(e),a=J.join(o,r,"package"),n=J.join(o,r,Lr.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function ove(t,{project:e}){return!Y.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Dvt(t){let e=new Map,r=[];try{r=await oe.readdirPromise(t,{withFileTypes:!0})}catch(o){if(o.code!=="ENOENT")throw o}try{for(let o of r)if(!o.name.startsWith("."))if(o.name.startsWith("@")){let a=await oe.readdirPromise(J.join(t,o.name),{withFileTypes:!0});if(a.length===0)e.set(o.name,o);else for(let n of a)e.set(`${o.name}/${n.name}`,n)}else e.set(o.name,o)}catch(o){if(o.code!=="ENOENT")throw o}return e}async function Svt(t,e){var a;let r=[],o=new Set;for(let n of e.keys()){r.push(oe.removePromise(J.join(t,n)));let u=(a=Y.tryParseIdent(n))==null?void 0:a.scope;u&&o.add(`@${u}`)}return Promise.all(r).then(()=>Promise.all([...o].map(n=>RG(J.join(t,n)))))}async function RG(t){try{await oe.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var Pvt={linkers:[Pv]},xvt=Pvt;var _G={};Yt(_G,{StageCommand:()=>Xh,default:()=>Uvt,stageUtils:()=>bv});Ke();St();_t();Ke();St();var bv={};Yt(bv,{ActionType:()=>NG,checkConsensus:()=>rF,expandDirectory:()=>OG,findConsensus:()=>MG,findVcsRoot:()=>xv,genCommitMessage:()=>UG,getCommitPrefix:()=>cve,isYarnFile:()=>LG});St();var NG=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(NG||{});async function xv(t,{marker:e}){do if(!oe.existsSync(J.join(t,e)))t=J.dirname(t);else return t;while(t!=="/");return null}function LG(t,{roots:e,names:r}){if(r.has(J.basename(t)))return!0;do if(!e.has(t))t=J.dirname(t);else return!0;while(t!=="/");return!1}function OG(t){let e=[],r=[t];for(;r.length>0;){let o=r.pop(),a=oe.readdirSync(o);for(let n of a){let u=J.resolve(o,n);oe.lstatSync(u).isDirectory()?r.push(u):e.push(u)}}return e}function rF(t,e){let r=0,o=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:o+=1);return r>=o}function MG(t){let e=rF(t,/^(\w\(\w+\):\s*)?\w+s/),r=rF(t,/^(\w\(\w+\):\s*)?[A-Z]/),o=rF(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:o}}function cve(t){return t.useComponent?"chore(yarn): ":""}var bvt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function UG(t,e){let r=cve(t),o=[],a=e.slice().sort((n,u)=>n[0]-u[0]);for(;a.length>0;){let[n,u]=a.shift(),A=bvt.get(n);t.useUpperCase&&o.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),t.useThirdPerson&&(A+="s");let p=[u];for(;a.length>0&&a[0][0]===n;){let[,C]=a.shift();p.push(C)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),o.push(`${A} ${h}`)}return`${r}${o.join(", ")}`}var Qvt="Commit generated via `yarn stage`",kvt=11;async function uve(t){let{code:e,stdout:r}=await Mr.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function Fvt(t,e){let r=[],o=e.filter(h=>J.basename(h.path)==="package.json");for(let{action:h,path:C}of o){let w=J.relative(t,C);if(h===4){let v=await uve(t),{stdout:b}=await Mr.execvp("git",["show",`${v}:${w}`],{cwd:t,strict:!0}),E=await Nt.fromText(b),R=await Nt.fromFile(C),L=new Map([...R.dependencies,...R.devDependencies]),_=new Map([...E.dependencies,...E.devDependencies]);for(let[V,re]of _){let ae=Y.stringifyIdent(re),he=L.get(V);he?he.range!==re.range&&r.push([4,`${ae} to ${he.range}`]):r.push([3,ae])}for(let[V,re]of L)_.has(V)||r.push([2,Y.stringifyIdent(re)])}else if(h===0){let v=await Nt.fromFile(C);v.name?r.push([0,Y.stringifyIdent(v.name)]):r.push([0,"a package"])}else if(h===1){let v=await uve(t),{stdout:b}=await Mr.execvp("git",["show",`${v}:${w}`],{cwd:t,strict:!0}),E=await Nt.fromText(b);E.name?r.push([1,Y.stringifyIdent(E.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Mr.execvp("git",["log",`-${kvt}`,"--pretty=format:%s"],{cwd:t}),u=a===0?n.split(/\n/g).filter(h=>h!==""):[],A=MG(u);return UG(A,r)}var Rvt={[0]:[" A ","?? "],[4]:[" M "],[1]:[" D "]},Tvt={[0]:["A "],[4]:["M "],[1]:["D "]},Ave={async findRoot(t){return await xv(t,{marker:".git"})},async filterChanges(t,e,r,o){let{stdout:a}=await Mr.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),u=o!=null&&o.staged?Tvt:Rvt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),C=J.resolve(t,p.slice(3));if(!(o!=null&&o.staged)&&h==="?? "&&p.endsWith("/"))return OG(C).map(w=>({action:0,path:w}));{let v=[0,4,1].find(b=>u[b].includes(h));return v!==void 0?[{action:v,path:C}]:[]}})).filter(p=>LG(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await Fvt(t,e)},async makeStage(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Mr.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let o=e.map(a=>ue.fromPortablePath(a.path));await Mr.execvp("git",["add","-N","--",...o],{cwd:t,strict:!0}),await Mr.execvp("git",["commit","-m",`${r}
700 701
701${Dvt} 702${Qvt}
702`,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Mr.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var lve={async findRoot(t){return await Sv(t,{marker:".hg"})},async filterChanges(t,e,r){return[]},async genCommitMessage(t,e){return""},async makeStage(t,e){},async makeCommit(t,e,r){},async makeReset(t,e){},async makeUpdate(t,e){}};var Qvt=[ave,lve],zh=class extends ct{constructor(){super(...arguments);this.commit=fe.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=fe.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=fe.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=fe.Boolean("-u,--update",!1,{hidden:!0})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await St.find(r,this.context.cwd),{driver:a,root:n}=await kvt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(w=>w.populateYarnPaths,o,w=>{u.push(w)});let A=new Set;for(let w of u)for(let v of Fvt(n,w))A.add(v);let p=new Set([r.get("rcFilename"),r.get("lockfileFilename"),"package.json"]),h=await a.filterChanges(n,A,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} 703`,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Mr.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var fve={async findRoot(t){return await xv(t,{marker:".hg"})},async filterChanges(t,e,r){return[]},async genCommitMessage(t,e){return""},async makeStage(t,e){},async makeCommit(t,e,r){},async makeReset(t,e){},async makeUpdate(t,e){}};var Nvt=[Ave,fve],Xh=class extends ct{constructor(){super(...arguments);this.commit=fe.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=fe.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=fe.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=fe.Boolean("-u,--update",!1,{hidden:!0})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),{driver:a,root:n}=await Lvt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(w=>w.populateYarnPaths,o,w=>{u.push(w)});let A=new Set;for(let w of u)for(let v of Ovt(n,w))A.add(v);let p=new Set([r.get("rcFilename"),r.get("lockfileFilename"),"package.json"]),h=await a.filterChanges(n,A,p),C=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${C}
703`);else for(let w of h)this.context.stdout.write(`${ue.fromPortablePath(w.path)} 704`);else for(let w of h)this.context.stdout.write(`${ue.fromPortablePath(w.path)}
704`);else if(this.reset){let w=await a.filterChanges(n,A,p,{staged:!0});w.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,w)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};zh.paths=[["stage"]],zh.usage=it.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]});async function kvt(t){let e=null,r=null;for(let o of Qvt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new ot("No stage driver has been found for your current project");return{driver:e,root:r}}function Fvt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=ae.statSync(e)}catch{break}if(o.isSymbolicLink())e=z.resolve(z.dirname(e),ae.readlinkSync(e));else break}return r}var Rvt={commands:[zh]},Tvt=Rvt;var UG={};Yt(UG,{default:()=>qvt});Ke();Ke();bt();var Ave=tt(si());Ke();var cve=tt(JH()),Nvt="e8e1bd300d860104bb8c58453ffa1eb4",Lvt="OFCNCOG2CU",uve=async(t,e)=>{var n;let r=Y.stringifyIdent(t),a=Ovt(e).initIndex("npm-search");try{return((n=(await a.getObject(r,{attributesToRetrieve:["types"]})).types)==null?void 0:n.ts)==="definitely-typed"}catch{return!1}},Ovt=t=>(0,cve.default)(Lvt,Nvt,{requester:{async send(r){try{let o=await ln.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var fve=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,Mvt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??ae.existsSync(z.join(a.cwd,"tsconfig.json"))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new xi};if(!await uve(r,n))return;let E=fve(r),w=Y.parseRange(r.range).selector;if(!Tr.validRange(w)){let L=n.normalizeDependency(r),_=await A.getCandidates(L,{},p);w=Y.parseRange(_[0].reference).selector}let v=Ave.default.coerce(w);if(v===null)return;let b=`${eu.Modifier.CARET}${v.major}`,C=Y.makeDescriptor(Y.makeIdent("types",E),b),R=Ye.mapAndFind(a.workspaces,L=>{var oe,pe;let _=(oe=L.manifest.dependencies.get(r.identHash))==null?void 0:oe.descriptorHash,V=(pe=L.manifest.devDependencies.get(r.identHash))==null?void 0:pe.descriptorHash;if(_!==r.descriptorHash&&V!==r.descriptorHash)return Ye.mapAndFind.skip;let re=[];for(let he of Nt.allDependencies){let ve=L.manifest[he].get(C.identHash);typeof ve>"u"||re.push([he,ve])}return re.length===0?Ye.mapAndFind.skip:re});if(typeof R<"u")for(let[L,_]of R)t.manifest[L].set(_.identHash,_);else{try{let L=n.normalizeDependency(C);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[eu.Target.DEVELOPMENT].set(C.identHash,C)}},Uvt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??ae.existsSync(z.join(o.cwd,"tsconfig.json"))))return;let u=fve(r),A=Y.makeIdent("types",u);for(let p of Nt.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},_vt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},Hvt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:Mvt,afterWorkspaceDependencyRemoval:Uvt,beforeWorkspacePacking:_vt}},qvt=Hvt;var GG={};Yt(GG,{VersionApplyCommand:()=>Xh,VersionCheckCommand:()=>Zh,VersionCommand:()=>$h,default:()=>aDt,versionUtils:()=>lI});Ke();Ke();_t();var lI={};Yt(lI,{Decision:()=>oI,applyPrerelease:()=>yve,applyReleases:()=>jG,applyStrategy:()=>tF,clearVersionFiles:()=>_G,getUndecidedDependentWorkspaces:()=>bv,getUndecidedWorkspaces:()=>eF,openVersionFile:()=>aI,requireMoreDecisions:()=>iDt,resolveVersionFiles:()=>xv,suggestStrategy:()=>qG,updateVersionFiles:()=>HG,validateReleaseDecision:()=>sI});Ke();bt();_l();_t();var mve=tt(dve()),SA=tt(si()),nDt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,oI=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(oI||{});function sI(t){let e=SA.default.valid(t);return e||Ye.validateEnum((0,mve.default)(oI,"UNDECIDED"),t)}async function xv(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!ae.existsSync(o))return r;let a=await ae.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=z.join(o,n),A=await ae.readFilePromise(u,"utf8"),p=Yi(A);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let w=Y.parseIdent(h),v=t.tryWorkspaceByIdent(w);if(v===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${z.basename(u)} references ${h})`);if(v.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${Y.prettyLocator(t.configuration,v.anchoredLocator)})`);let b=v.manifest.raw.stableVersion??v.manifest.version,C=r.get(v),R=tF(b,sI(E));if(R===null)throw new Error(`Assertion failed: Expected ${b} to support being bumped via strategy ${E}`);let L=typeof C<"u"?SA.default.gt(R,C)?R:C:R;r.set(v,L)}}return e&&(r=new Map([...r].map(([n,u])=>[n,yve(u,{current:n.manifest.version,prerelease:e})]))),r}async function _G(t){let e=t.configuration.get("deferredVersionFolder");!ae.existsSync(e)||await ae.removePromise(e)}async function HG(t,e){let r=new Set(e),o=t.configuration.get("deferredVersionFolder");if(!ae.existsSync(o))return;let a=await ae.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=z.join(o,n),A=await ae.readFilePromise(u,"utf8"),p=Yi(A),h=p==null?void 0:p.releases;if(!!h){for(let E of Object.keys(h)){let w=Y.parseIdent(E),v=t.tryWorkspaceByIdent(w);(v===null||r.has(v))&&delete p.releases[E]}Object.keys(p.releases).length>0?await ae.changeFilePromise(u,wa(new wa.PreserveOrdering(p))):await ae.unlinkPromise(u)}}}async function aI(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new ot("This command can only be run from within a Yarn project");let o=await $o.fetchRoot(r.projectCwd),a=o!==null?await $o.fetchBase(o,{baseRefs:r.get("changesetBaseRefs")}):null,n=o!==null?await $o.fetchChangedFiles(o,{base:a.hash,project:t}):[],u=r.get("deferredVersionFolder"),A=n.filter(b=>z.contains(u,b)!==null);if(A.length>1)throw new ot(`Your current branch contains multiple versioning files; this isn't supported: 705`);else if(this.reset){let w=await a.filterChanges(n,A,p,{staged:!0});w.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,w)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,C):(await a.makeStage(n,h),this.context.stdout.write(C))}};Xh.paths=[["stage"]],Xh.usage=it.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]});async function Lvt(t){let e=null,r=null;for(let o of Nvt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new ot("No stage driver has been found for your current project");return{driver:e,root:r}}function Ovt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=oe.statSync(e)}catch{break}if(o.isSymbolicLink())e=J.resolve(J.dirname(e),oe.readlinkSync(e));else break}return r}var Mvt={commands:[Xh]},Uvt=Mvt;var HG={};Yt(HG,{default:()=>Kvt});Ke();Ke();St();var gve=tt(si());Ke();var pve=tt(XH()),_vt="e8e1bd300d860104bb8c58453ffa1eb4",Hvt="OFCNCOG2CU",hve=async(t,e)=>{var n;let r=Y.stringifyIdent(t),a=qvt(e).initIndex("npm-search");try{return((n=(await a.getObject(r,{attributesToRetrieve:["types"]})).types)==null?void 0:n.ts)==="definitely-typed"}catch{return!1}},qvt=t=>(0,pve.default)(Hvt,_vt,{requester:{async send(r){try{let o=await ln.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var dve=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,jvt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??oe.existsSync(J.join(a.cwd,"tsconfig.json"))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new xi};if(!await hve(r,n))return;let C=dve(r),w=Y.parseRange(r.range).selector;if(!Tr.validRange(w)){let L=n.normalizeDependency(r),_=await A.getCandidates(L,{},p);w=Y.parseRange(_[0].reference).selector}let v=gve.default.coerce(w);if(v===null)return;let b=`${tu.Modifier.CARET}${v.major}`,E=Y.makeDescriptor(Y.makeIdent("types",C),b),R=We.mapAndFind(a.workspaces,L=>{var ae,he;let _=(ae=L.manifest.dependencies.get(r.identHash))==null?void 0:ae.descriptorHash,V=(he=L.manifest.devDependencies.get(r.identHash))==null?void 0:he.descriptorHash;if(_!==r.descriptorHash&&V!==r.descriptorHash)return We.mapAndFind.skip;let re=[];for(let pe of Nt.allDependencies){let De=L.manifest[pe].get(E.identHash);typeof De>"u"||re.push([pe,De])}return re.length===0?We.mapAndFind.skip:re});if(typeof R<"u")for(let[L,_]of R)t.manifest[L].set(_.identHash,_);else{try{let L=n.normalizeDependency(E);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[tu.Target.DEVELOPMENT].set(E.identHash,E)}},Gvt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??oe.existsSync(J.join(o.cwd,"tsconfig.json"))))return;let u=dve(r),A=Y.makeIdent("types",u);for(let p of Nt.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},Wvt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},Yvt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:jvt,afterWorkspaceDependencyRemoval:Gvt,beforeWorkspacePacking:Wvt}},Kvt=Yvt;var YG={};Yt(YG,{VersionApplyCommand:()=>Zh,VersionCheckCommand:()=>$h,VersionCommand:()=>eg,default:()=>fDt,versionUtils:()=>lI});Ke();Ke();_t();var lI={};Yt(lI,{Decision:()=>oI,applyPrerelease:()=>wve,applyReleases:()=>WG,applyStrategy:()=>iF,clearVersionFiles:()=>qG,getUndecidedDependentWorkspaces:()=>kv,getUndecidedWorkspaces:()=>nF,openVersionFile:()=>aI,requireMoreDecisions:()=>cDt,resolveVersionFiles:()=>Qv,suggestStrategy:()=>GG,updateVersionFiles:()=>jG,validateReleaseDecision:()=>sI});Ke();St();Hl();_t();var Ive=tt(Cve()),PA=tt(si()),lDt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,oI=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(oI||{});function sI(t){let e=PA.default.valid(t);return e||We.validateEnum((0,Ive.default)(oI,"UNDECIDED"),t)}async function Qv(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return r;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=J.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Yi(A);for(let[h,C]of Object.entries(p.releases||{})){if(C==="decline")continue;let w=Y.parseIdent(h),v=t.tryWorkspaceByIdent(w);if(v===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${J.basename(u)} references ${h})`);if(v.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${Y.prettyLocator(t.configuration,v.anchoredLocator)})`);let b=v.manifest.raw.stableVersion??v.manifest.version,E=r.get(v),R=iF(b,sI(C));if(R===null)throw new Error(`Assertion failed: Expected ${b} to support being bumped via strategy ${C}`);let L=typeof E<"u"?PA.default.gt(R,E)?R:E:R;r.set(v,L)}}return e&&(r=new Map([...r].map(([n,u])=>[n,wve(u,{current:n.manifest.version,prerelease:e})]))),r}async function qG(t){let e=t.configuration.get("deferredVersionFolder");!oe.existsSync(e)||await oe.removePromise(e)}async function jG(t,e){let r=new Set(e),o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=J.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Yi(A),h=p==null?void 0:p.releases;if(!!h){for(let C of Object.keys(h)){let w=Y.parseIdent(C),v=t.tryWorkspaceByIdent(w);(v===null||r.has(v))&&delete p.releases[C]}Object.keys(p.releases).length>0?await oe.changeFilePromise(u,Ba(new Ba.PreserveOrdering(p))):await oe.unlinkPromise(u)}}}async function aI(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new ot("This command can only be run from within a Yarn project");let o=await ea.fetchRoot(r.projectCwd),a=o!==null?await ea.fetchBase(o,{baseRefs:r.get("changesetBaseRefs")}):null,n=o!==null?await ea.fetchChangedFiles(o,{base:a.hash,project:t}):[],u=r.get("deferredVersionFolder"),A=n.filter(b=>J.contains(u,b)!==null);if(A.length>1)throw new ot(`Your current branch contains multiple versioning files; this isn't supported:
705- ${A.map(b=>ue.fromPortablePath(b)).join(` 706- ${A.map(b=>ue.fromPortablePath(b)).join(`
706- `)}`);let p=new Set(Ye.mapAndFilter(n,b=>{let C=t.tryWorkspaceByFilePath(b);return C===null?Ye.mapAndFilter.skip:C}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:z.join(u,`${bn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=ae.existsSync(h)?await ae.readFilePromise(h,"utf8"):"{}",w=Yi(E),v=new Map;for(let b of w.declined||[]){let C=Y.parseIdent(b),R=t.getWorkspaceByIdent(C);v.set(R,"decline")}for(let[b,C]of Object.entries(w.releases||{})){let R=Y.parseIdent(b),L=t.getWorkspaceByIdent(R);v.set(L,sI(C))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(b=>b.manifest.version!==null)),releases:v,async saveAll(){let b={},C=[],R=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let _=Y.stringifyIdent(L.locator),V=v.get(L);V==="decline"?C.push(_):typeof V<"u"?b[_]=sI(V):p.has(L)&&R.push(_)}await ae.mkdirPromise(z.dirname(h),{recursive:!0}),await ae.changeFilePromise(h,wa(new wa.PreserveOrdering({releases:Object.keys(b).length>0?b:void 0,declined:C.length>0?C:void 0,undecided:R.length>0?R:void 0})))}}}function iDt(t){return eF(t).size>0||bv(t).length>0}function eF(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function bv(t,{include:e=new Set}={}){let r=[],o=new Map(Ye.mapAndFilter([...t.releases],([n,u])=>u==="decline"?Ye.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(Ye.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?Ye.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of Nt.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function qG(t,e){let r=SA.default.clean(e);for(let o of Object.values(oI))if(o!=="undecided"&&o!=="decline"&&SA.default.inc(t,o)===r)return o;return null}function tF(t,e){if(SA.default.valid(e))return e;if(t===null)throw new ot(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!SA.default.valid(t))throw new ot(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=SA.default.inc(t,e);if(r===null)throw new ot(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function jG(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of Nt.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;Ye.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,SA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?Y.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${Y.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:ue.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,E,w]of p){let v=h.manifest[E].get(w);if(typeof v>"u")throw new Error("Assertion failed: The dependency should have existed");let b=v.range,C=!1;if(b.startsWith(Gn.protocol)&&(b=b.slice(Gn.protocol.length),C=!0,b===a.relativeCwd))continue;let R=b.match(nDt);if(!R){r.reportWarning(0,`Couldn't auto-upgrade range ${b} (in ${Y.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${R[1]}${n}`;C&&(L=`${Gn.protocol}${L}`);let _=Y.makeDescriptor(v,L);h.manifest[E].set(w,_)}}}var sDt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function yve(t,{current:e,prerelease:r}){let o=new SA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=sDt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let E=u?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var Xh=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=fe.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=fe.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=fe.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await xv(o,{prerelease:p}),E=new Map;if(this.all)E=h;else{let w=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let v of w){let b=h.get(v);typeof b<"u"&&E.set(v,b)}}if(E.size===0){let w=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${w}`);return}jG(o,E,{report:A}),this.dryRun||(p||(this.all?await _G(o):await HG(o,[...E.keys()])),A.reportSeparator(),await o.install({cache:n,report:A}))})).exitCode()}};Xh.paths=[["version","apply"]],Xh.usage=it.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` 707- `)}`);let p=new Set(We.mapAndFilter(n,b=>{let E=t.tryWorkspaceByFilePath(b);return E===null?We.mapAndFilter.skip:E}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:J.join(u,`${bn.makeHash(Math.random().toString()).slice(0,8)}.yml`),C=oe.existsSync(h)?await oe.readFilePromise(h,"utf8"):"{}",w=Yi(C),v=new Map;for(let b of w.declined||[]){let E=Y.parseIdent(b),R=t.getWorkspaceByIdent(E);v.set(R,"decline")}for(let[b,E]of Object.entries(w.releases||{})){let R=Y.parseIdent(b),L=t.getWorkspaceByIdent(R);v.set(L,sI(E))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(b=>b.manifest.version!==null)),releases:v,async saveAll(){let b={},E=[],R=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let _=Y.stringifyIdent(L.locator),V=v.get(L);V==="decline"?E.push(_):typeof V<"u"?b[_]=sI(V):p.has(L)&&R.push(_)}await oe.mkdirPromise(J.dirname(h),{recursive:!0}),await oe.changeFilePromise(h,Ba(new Ba.PreserveOrdering({releases:Object.keys(b).length>0?b:void 0,declined:E.length>0?E:void 0,undecided:R.length>0?R:void 0})))}}}function cDt(t){return nF(t).size>0||kv(t).length>0}function nF(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function kv(t,{include:e=new Set}={}){let r=[],o=new Map(We.mapAndFilter([...t.releases],([n,u])=>u==="decline"?We.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(We.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?We.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of Nt.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function GG(t,e){let r=PA.default.clean(e);for(let o of Object.values(oI))if(o!=="undecided"&&o!=="decline"&&PA.default.inc(t,o)===r)return o;return null}function iF(t,e){if(PA.default.valid(e))return e;if(t===null)throw new ot(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!PA.default.valid(t))throw new ot(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=PA.default.inc(t,e);if(r===null)throw new ot(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function WG(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of Nt.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;We.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,PA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?Y.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${Y.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:ue.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,C,w]of p){let v=h.manifest[C].get(w);if(typeof v>"u")throw new Error("Assertion failed: The dependency should have existed");let b=v.range,E=!1;if(b.startsWith(Gn.protocol)&&(b=b.slice(Gn.protocol.length),E=!0,b===a.relativeCwd))continue;let R=b.match(lDt);if(!R){r.reportWarning(0,`Couldn't auto-upgrade range ${b} (in ${Y.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${R[1]}${n}`;E&&(L=`${Gn.protocol}${L}`);let _=Y.makeDescriptor(v,L);h.manifest[C].set(w,_)}}}var uDt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function wve(t,{current:e,prerelease:r}){let o=new PA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=uDt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let C=u?h.extract(a):null;C!==null&&typeof C[0]=="number"?(n.push(h.generate(C[0])),a=C[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var Zh=class extends ct{constructor(){super(...arguments);this.all=fe.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=fe.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=fe.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=fe.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);if(!a)throw new er(o.cwd,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await Qv(o,{prerelease:p}),C=new Map;if(this.all)C=h;else{let w=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let v of w){let b=h.get(v);typeof b<"u"&&C.set(v,b)}}if(C.size===0){let w=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${w}`);return}WG(o,C,{report:A}),this.dryRun||(p||(this.all?await qG(o):await jG(o,[...C.keys()])),A.reportSeparator(),await o.install({cache:n,report:A}))})).exitCode()}};Zh.paths=[["version","apply"]],Zh.usage=it.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:`
707 This command will apply the deferred version changes and remove their definitions from the repository. 708 This command will apply the deferred version changes and remove their definitions from the repository.
708 709
709 Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%d\`) will be used on all new versions and the version definitions will be kept as-is. 710 Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%d\`) will be used on all new versions and the version definitions will be kept as-is.
@@ -714,7 +715,7 @@ ${Dvt}
714 - \`--all\` to apply the version bump on all packages in the repository 715 - \`--all\` to apply the version bump on all packages in the repository
715 716
716 Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. 717 Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump.
717 `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});Ke();bt();_t();var rF=tt(si());var Zh=class extends ct{constructor(){super(...arguments);this.interactive=fe.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){wE(this.context);let{Gem:r}=await Promise.resolve().then(()=>(tk(),wq)),{ScrollableItems:o}=await Promise.resolve().then(()=>(sk(),ik)),{FocusRequest:a}=await Promise.resolve().then(()=>(vq(),gwe)),{useListInput:n}=await Promise.resolve().then(()=>(nk(),dwe)),{renderForm:u}=await Promise.resolve().then(()=>(ck(),lk)),{Box:A,Text:p}=await Promise.resolve().then(()=>tt(cc())),{default:h,useCallback:E,useState:w}=await Promise.resolve().then(()=>tt(en())),v=await Xe.find(this.context.cwd,this.context.plugins),{project:b,workspace:C}=await St.find(v,this.context.cwd);if(!C)throw new er(b.cwd,this.context.cwd);await b.restoreInstallState();let R=await aI(b);if(R===null||R.releaseRoots.size===0)return 0;if(R.root===null)throw new ot("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<left>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<right>")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),_=({workspace:ve,active:ge,decision:le,setDecision:Pe})=>{let g=ve.manifest.raw.stableVersion??ve.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${Y.prettyLocator(v,ve.anchoredLocator)})`);if(rF.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let De=["undecided","decline","patch","minor","major"];n(le,De,{active:ge,minus:"left",plus:"right",set:Pe});let Ce=le==="undecided"?h.createElement(p,{color:"yellow"},g):le==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},rF.default.valid(le)?le:rF.default.inc(g,le)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,Y.prettyLocator(v,ve.anchoredLocator)," - ",Ce)),h.createElement(A,null,De.map(de=>h.createElement(A,{key:de,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:de===le})," ",de)))))},V=ve=>{let ge=new Set(R.releaseRoots),le=new Map([...ve].filter(([Pe])=>ge.has(Pe)));for(;;){let Pe=bv({project:R.project,releases:le}),g=!1;if(Pe.length>0){for(let[De]of Pe)if(!ge.has(De)){ge.add(De),g=!0;let Ce=ve.get(De);typeof Ce<"u"&&le.set(De,Ce)}}if(!g)break}return{relevantWorkspaces:ge,relevantReleases:le}},re=()=>{let[ve,ge]=w(()=>new Map(R.releases)),le=E((Pe,g)=>{let De=new Map(ve);g!=="undecided"?De.set(Pe,g):De.delete(Pe);let{relevantReleases:Ce}=V(De);ge(Ce)},[ve,ge]);return[ve,le]},oe=({workspaces:ve,releases:ge})=>{let le=[];le.push(`${ve.size} total`);let Pe=0,g=0;for(let De of ve){let Ce=ge.get(De);typeof Ce>"u"?g+=1:Ce!=="decline"&&(Pe+=1)}return le.push(`${Pe} release${Pe===1?"":"s"}`),le.push(`${g} remaining`),h.createElement(p,{color:"yellow"},le.join(", "))},he=await u(({useSubmit:ve})=>{let[ge,le]=re();ve(ge);let{relevantWorkspaces:Pe}=V(ge),g=new Set([...Pe].filter(ne=>!R.releaseRoots.has(ne))),[De,Ce]=w(0),de=E(ne=>{switch(ne){case a.BEFORE:Ce(De-1);break;case a.AFTER:Ce(De+1);break}},[De,Ce]);return h.createElement(A,{flexDirection:"column"},h.createElement(L,null),h.createElement(A,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(A,{flexDirection:"column",marginTop:1,paddingLeft:2},[...R.changedFiles].map(ne=>h.createElement(A,{key:ne},h.createElement(p,null,h.createElement(p,{color:"grey"},ue.fromPortablePath(R.root)),ue.sep,ue.relative(ue.fromPortablePath(R.root),ue.fromPortablePath(ne)))))),R.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(A,{marginTop:1},h.createElement(oe,{workspaces:R.releaseRoots,releases:ge})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:De%2===0,radius:1,size:2,onFocusRequest:de},[...R.releaseRoots].map(ne=>h.createElement(_,{key:ne.cwd,workspace:ne,decision:ge.get(ne)||"undecided",setDecision:Z=>le(ne,Z)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(A,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<tab>")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(A,{marginTop:1},h.createElement(oe,{workspaces:g,releases:ge})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:De%2===1,radius:2,size:2,onFocusRequest:de},[...g].map(ne=>h.createElement(_,{key:ne.cwd,workspace:ne,decision:ge.get(ne)||"undecided",setDecision:Z=>le(ne,Z)}))))):null)},{versionFile:R},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof he>"u")return 1;R.releases.clear();for(let[ve,ge]of he)R.releases.set(ve,ge);await R.saveAll()}async executeStandard(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);return await o.restoreInstallState(),(await Et.start({configuration:r,stdout:this.context.stdout},async u=>{let A=await aI(o);if(A===null||A.releaseRoots.size===0)return;if(A.root===null)throw new ot("This command can only be run on Git repositories");if(u.reportInfo(0,`Your PR was started right after ${ye.pretty(r,A.baseHash.slice(0,7),"yellow")} ${ye.pretty(r,A.baseTitle,"magenta")}`),A.changedFiles.size>0){u.reportInfo(0,"You have changed the following files since then:"),u.reportSeparator();for(let v of A.changedFiles)u.reportInfo(null,`${ye.pretty(r,ue.fromPortablePath(A.root),"gray")}${ue.sep}${ue.relative(ue.fromPortablePath(A.root),ue.fromPortablePath(v))}`)}let p=!1,h=!1,E=eF(A);if(E.size>0){p||u.reportSeparator();for(let v of E)u.reportError(0,`${Y.prettyLocator(r,v.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let w=bv(A);for(let[v,b]of w)h||u.reportSeparator(),u.reportError(0,`${Y.prettyLocator(r,v.anchoredLocator)} doesn't have a release strategy attached, but depends on ${Y.prettyWorkspace(r,b)} which is planned for release.`),h=!0;(p||h)&&(u.reportSeparator(),u.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),u.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};Zh.paths=[["version","check"]],Zh.usage=it.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});Ke();_t();var nF=tt(si());var $h=class extends ct{constructor(){super(...arguments);this.deferred=fe.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=fe.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let u=nF.default.valid(this.strategy),A=this.strategy==="decline",p;if(u)if(a.manifest.version!==null){let E=qG(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!A){if(E===null)throw new ot("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!nF.default.valid(E))throw new ot(`Can't bump the version (${E}) if it's not valid semver`)}p=sI(this.strategy)}if(!n){let w=(await xv(o)).get(a);if(typeof w<"u"&&p!=="decline"){let v=tF(a.manifest.version,p);if(nF.default.lt(v,w))throw new ot(`Can't bump the version to one that would be lower than the current deferred one (${w})`)}}let h=await aI(o,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};$h.paths=[["version"]],$h.usage=it.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});var oDt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[Xh,Zh,$h]},aDt=oDt;var WG={};Yt(WG,{WorkspacesFocusCommand:()=>eg,WorkspacesForeachCommand:()=>tg,default:()=>uDt});Ke();Ke();_t();var eg=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=fe.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=fe.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd),n=await Ur.find(r);await o.restoreInstallState({restoreResolutions:!1});let u;if(this.all)u=new Set(o.workspaces);else if(this.workspaces.length===0){if(!a)throw new er(o.cwd,this.context.cwd);u=new Set([a])}else u=new Set(this.workspaces.map(p=>o.getWorkspaceByIdent(Y.parseIdent(p))));for(let p of u)for(let h of this.production?["dependencies"]:Nt.hardDependencies)for(let E of p.manifest.getForScope(h).values()){let w=o.tryWorkspaceByDescriptor(E);w!==null&&u.add(w)}for(let p of o.workspaces)u.has(p)?this.production&&p.manifest.devDependencies.clear():(p.manifest.installConfig=p.manifest.installConfig||{},p.manifest.installConfig.selfReferences=!1,p.manifest.dependencies.clear(),p.manifest.devDependencies.clear(),p.manifest.peerDependencies.clear(),p.manifest.scripts.clear());return(await Et.start({configuration:r,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await o.install({cache:n,report:p,persistProject:!1})})).exitCode()}};eg.paths=[["workspaces","focus"]],eg.usage=it.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});Ke();Ke();Ke();_t();var xm=tt(Jo()),Eve=tt(rd());tl();var tg=class extends ct{constructor(){super(...arguments);this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.from=fe.Array("--from",[],{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=fe.Boolean("-A,--all",!1,{description:"Run the command on all workspaces of a project"});this.verbose=fe.Boolean("-v,--verbose",{description:"Prefix each output line with the name of the originating workspace"});this.parallel=fe.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=fe.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=fe.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:LT([Gs(["unlimited"]),ed(NT(),[MT(),OT(1)])])});this.topological=fe.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=fe.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=fe.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=fe.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=fe.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=fe.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.commandName=fe.String();this.args=fe.Proxy()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await St.find(r,this.context.cwd);if(!this.all&&!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),u=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new ot("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let A=this.all?o.topLevelWorkspace:a,p=this.since?Array.from(await $o.fetchChangedWorkspaces({ref:this.since,project:o})):[A,...this.from.length>0?A.getRecursiveWorkspaceChildren():[]],h=le=>xm.default.isMatch(Y.stringifyIdent(le.locator),this.from)||xm.default.isMatch(le.relativeCwd,this.from),E=this.from.length>0?p.filter(h):p,w=new Set([...E,...E.map(le=>[...this.recursive?this.since?le.getRecursiveWorkspaceDependents():le.getRecursiveWorkspaceDependencies():le.getRecursiveWorkspaceChildren()]).flat()]),v=[],b=!1;if(u!=null&&u.includes(":")){for(let le of o.workspaces)if(le.manifest.scripts.has(u)&&(b=!b,b===!1))break}for(let le of w)u&&!le.manifest.scripts.has(u)&&!b&&!(await sn.getWorkspaceAccessibleBinaries(le)).has(u)||u===process.env.npm_lifecycle_event&&le.cwd===a.cwd||this.include.length>0&&!xm.default.isMatch(Y.stringifyIdent(le.locator),this.include)&&!xm.default.isMatch(le.relativeCwd,this.include)||this.exclude.length>0&&(xm.default.isMatch(Y.stringifyIdent(le.locator),this.exclude)||xm.default.isMatch(le.relativeCwd,this.exclude))||this.publicOnly&&le.manifest.private===!0||v.push(le);let C=this.verbose??this.context.stdout.isTTY,R=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(As.availableParallelism()/2):1,L=R===1?!1:this.parallel,_=L?this.interlaced:!0,V=(0,Eve.default)(R),re=new Map,oe=new Set,pe=0,he=null,ve=!1,ge=await Et.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async le=>{let Pe=async(g,{commandIndex:De})=>{if(ve)return-1;!L&&C&&De>1&&le.reportSeparator();let Ce=lDt(g,{configuration:r,verbose:C,commandIndex:De}),[de,ne]=Cve(le,{prefix:Ce,interlaced:_}),[Z,me]=Cve(le,{prefix:Ce,interlaced:_});try{C&&le.reportInfo(null,`${Ce} Process started`);let be=Date.now(),ut=await this.cli.run([this.commandName,...this.args],{cwd:g.cwd,stdout:de,stderr:Z})||0;de.end(),Z.end(),await ne,await me;let H=Date.now();if(C){let yt=r.get("enableTimers")?`, completed in ${ye.pretty(r,H-be,ye.Type.DURATION)}`:"";le.reportInfo(null,`${Ce} Process exited (exit code ${ut})${yt}`)}return ut===130&&(ve=!0,he=ut),ut}catch(be){throw de.end(),Z.end(),await ne,await me,be}};for(let g of v)re.set(g.anchoredLocator.locatorHash,g);for(;re.size>0&&!le.hasErrors();){let g=[];for(let[de,ne]of re){if(oe.has(ne.anchoredDescriptor.descriptorHash))continue;let Z=!0;if(this.topological||this.topologicalDev){let me=this.topologicalDev?new Map([...ne.manifest.dependencies,...ne.manifest.devDependencies]):ne.manifest.dependencies;for(let be of me.values()){let ut=o.tryWorkspaceByDescriptor(be);if(Z=ut===null||!re.has(ut.anchoredLocator.locatorHash),!Z)break}}if(!!Z&&(oe.add(ne.anchoredDescriptor.descriptorHash),g.push(V(async()=>{let me=await Pe(ne,{commandIndex:++pe});return re.delete(de),oe.delete(ne.anchoredDescriptor.descriptorHash),me})),!L))break}if(g.length===0){let de=Array.from(re.values()).map(ne=>Y.prettyLocator(r,ne.anchoredLocator)).join(", ");le.reportError(3,`Dependency cycle detected (${de})`);return}let Ce=(await Promise.all(g)).find(de=>de!==0);he===null&&(he=typeof Ce<"u"?1:he),(this.topological||this.topologicalDev)&&typeof Ce<"u"&&le.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return he!==null?he:ge.exitCode()}};tg.paths=[["workspaces","foreach"]],tg.usage=it.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag (automatically enabled in interactive terminal environments) will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -pt run build"],["Run build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build"]]});function Cve(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new Ye.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new Ye.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function lDt(t,{configuration:e,commandIndex:r,verbose:o}){if(!o)return null;let n=`[${Y.stringifyIdent(t.locator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return ye.pretty(e,n,A)}var cDt={commands:[eg,tg]},uDt=cDt;var Jb=()=>({modules:new Map([["@yarnpkg/cli",W1],["@yarnpkg/core",G1],["@yarnpkg/fslib",MI],["@yarnpkg/libzip",_I],["@yarnpkg/parsers",VI],["@yarnpkg/shell",B1],["clipanion",nw],["semver",ADt],["typanion",Wo],["@yarnpkg/plugin-essentials",Z8],["@yarnpkg/plugin-compat",nH],["@yarnpkg/plugin-constraints",EH],["@yarnpkg/plugin-dlx",IH],["@yarnpkg/plugin-exec",vH],["@yarnpkg/plugin-file",SH],["@yarnpkg/plugin-git",X8],["@yarnpkg/plugin-github",bH],["@yarnpkg/plugin-http",QH],["@yarnpkg/plugin-init",kH],["@yarnpkg/plugin-interactive-tools",Rq],["@yarnpkg/plugin-link",Tq],["@yarnpkg/plugin-nm",mj],["@yarnpkg/plugin-npm",hG],["@yarnpkg/plugin-npm-cli",wG],["@yarnpkg/plugin-pack",cG],["@yarnpkg/plugin-patch",bG],["@yarnpkg/plugin-pnp",sj],["@yarnpkg/plugin-pnpm",FG],["@yarnpkg/plugin-stage",MG],["@yarnpkg/plugin-typescript",UG],["@yarnpkg/plugin-version",GG],["@yarnpkg/plugin-workspace-tools",WG]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});Vb({binaryVersion:On||"<unknown>",pluginConfiguration:Jb()});})(); 718 `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});Ke();St();_t();var sF=tt(si());var $h=class extends ct{constructor(){super(...arguments);this.interactive=fe.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){wC(this.context);let{Gem:r}=await Promise.resolve().then(()=>(ik(),vq)),{ScrollableItems:o}=await Promise.resolve().then(()=>(lk(),ak)),{FocusRequest:a}=await Promise.resolve().then(()=>(Sq(),mwe)),{useListInput:n}=await Promise.resolve().then(()=>(ok(),ywe)),{renderForm:u}=await Promise.resolve().then(()=>(fk(),Ak)),{Box:A,Text:p}=await Promise.resolve().then(()=>tt(uc())),{default:h,useCallback:C,useState:w}=await Promise.resolve().then(()=>tt(en())),v=await Xe.find(this.context.cwd,this.context.plugins),{project:b,workspace:E}=await Pt.find(v,this.context.cwd);if(!E)throw new er(b.cwd,this.context.cwd);await b.restoreInstallState();let R=await aI(b);if(R===null||R.releaseRoots.size===0)return 0;if(R.root===null)throw new ot("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<left>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<right>")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),_=({workspace:De,active:ge,decision:le,setDecision:Pe})=>{let g=De.manifest.raw.stableVersion??De.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${Y.prettyLocator(v,De.anchoredLocator)})`);if(sF.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let ve=["undecided","decline","patch","minor","major"];n(le,ve,{active:ge,minus:"left",plus:"right",set:Pe});let Ee=le==="undecided"?h.createElement(p,{color:"yellow"},g):le==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},sF.default.valid(le)?le:sF.default.inc(g,le)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,Y.prettyLocator(v,De.anchoredLocator)," - ",Ee)),h.createElement(A,null,ve.map(de=>h.createElement(A,{key:de,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:de===le})," ",de)))))},V=De=>{let ge=new Set(R.releaseRoots),le=new Map([...De].filter(([Pe])=>ge.has(Pe)));for(;;){let Pe=kv({project:R.project,releases:le}),g=!1;if(Pe.length>0){for(let[ve]of Pe)if(!ge.has(ve)){ge.add(ve),g=!0;let Ee=De.get(ve);typeof Ee<"u"&&le.set(ve,Ee)}}if(!g)break}return{relevantWorkspaces:ge,relevantReleases:le}},re=()=>{let[De,ge]=w(()=>new Map(R.releases)),le=C((Pe,g)=>{let ve=new Map(De);g!=="undecided"?ve.set(Pe,g):ve.delete(Pe);let{relevantReleases:Ee}=V(ve);ge(Ee)},[De,ge]);return[De,le]},ae=({workspaces:De,releases:ge})=>{let le=[];le.push(`${De.size} total`);let Pe=0,g=0;for(let ve of De){let Ee=ge.get(ve);typeof Ee>"u"?g+=1:Ee!=="decline"&&(Pe+=1)}return le.push(`${Pe} release${Pe===1?"":"s"}`),le.push(`${g} remaining`),h.createElement(p,{color:"yellow"},le.join(", "))},pe=await u(({useSubmit:De})=>{let[ge,le]=re();De(ge);let{relevantWorkspaces:Pe}=V(ge),g=new Set([...Pe].filter(ne=>!R.releaseRoots.has(ne))),[ve,Ee]=w(0),de=C(ne=>{switch(ne){case a.BEFORE:Ee(ve-1);break;case a.AFTER:Ee(ve+1);break}},[ve,Ee]);return h.createElement(A,{flexDirection:"column"},h.createElement(L,null),h.createElement(A,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(A,{flexDirection:"column",marginTop:1,paddingLeft:2},[...R.changedFiles].map(ne=>h.createElement(A,{key:ne},h.createElement(p,null,h.createElement(p,{color:"grey"},ue.fromPortablePath(R.root)),ue.sep,ue.relative(ue.fromPortablePath(R.root),ue.fromPortablePath(ne)))))),R.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:R.releaseRoots,releases:ge})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:ve%2===0,radius:1,size:2,onFocusRequest:de},[...R.releaseRoots].map(ne=>h.createElement(_,{key:ne.cwd,workspace:ne,decision:ge.get(ne)||"undecided",setDecision:Z=>le(ne,Z)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(A,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<tab>")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:g,releases:ge})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:ve%2===1,radius:2,size:2,onFocusRequest:de},[...g].map(ne=>h.createElement(_,{key:ne.cwd,workspace:ne,decision:ge.get(ne)||"undecided",setDecision:Z=>le(ne,Z)}))))):null)},{versionFile:R},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof pe>"u")return 1;R.releases.clear();for(let[De,ge]of pe)R.releases.set(De,ge);await R.saveAll()}async executeStandard(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);return await o.restoreInstallState(),(await Ct.start({configuration:r,stdout:this.context.stdout},async u=>{let A=await aI(o);if(A===null||A.releaseRoots.size===0)return;if(A.root===null)throw new ot("This command can only be run on Git repositories");if(u.reportInfo(0,`Your PR was started right after ${ye.pretty(r,A.baseHash.slice(0,7),"yellow")} ${ye.pretty(r,A.baseTitle,"magenta")}`),A.changedFiles.size>0){u.reportInfo(0,"You have changed the following files since then:"),u.reportSeparator();for(let v of A.changedFiles)u.reportInfo(null,`${ye.pretty(r,ue.fromPortablePath(A.root),"gray")}${ue.sep}${ue.relative(ue.fromPortablePath(A.root),ue.fromPortablePath(v))}`)}let p=!1,h=!1,C=nF(A);if(C.size>0){p||u.reportSeparator();for(let v of C)u.reportError(0,`${Y.prettyLocator(r,v.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let w=kv(A);for(let[v,b]of w)h||u.reportSeparator(),u.reportError(0,`${Y.prettyLocator(r,v.anchoredLocator)} doesn't have a release strategy attached, but depends on ${Y.prettyWorkspace(r,b)} which is planned for release.`),h=!0;(p||h)&&(u.reportSeparator(),u.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),u.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};$h.paths=[["version","check"]],$h.usage=it.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});Ke();_t();var oF=tt(si());var eg=class extends ct{constructor(){super(...arguments);this.deferred=fe.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=fe.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=fe.String()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new er(o.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let u=oF.default.valid(this.strategy),A=this.strategy==="decline",p;if(u)if(a.manifest.version!==null){let C=GG(a.manifest.version,this.strategy);C!==null?p=C:p=this.strategy}else p=this.strategy;else{let C=a.manifest.version;if(!A){if(C===null)throw new ot("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof C!="string"||!oF.default.valid(C))throw new ot(`Can't bump the version (${C}) if it's not valid semver`)}p=sI(this.strategy)}if(!n){let w=(await Qv(o)).get(a);if(typeof w<"u"&&p!=="decline"){let v=iF(a.manifest.version,p);if(oF.default.lt(v,w))throw new ot(`Can't bump the version to one that would be lower than the current deferred one (${w})`)}}let h=await aI(o,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};eg.paths=[["version"]],eg.usage=it.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});var ADt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[Zh,$h,eg]},fDt=ADt;var KG={};Yt(KG,{WorkspacesFocusCommand:()=>tg,WorkspacesForeachCommand:()=>rg,default:()=>gDt});Ke();Ke();_t();var tg=class extends ct{constructor(){super(...arguments);this.json=fe.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=fe.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=fe.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=fe.Rest()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Ur.find(r);await o.restoreInstallState({restoreResolutions:!1});let u;if(this.all)u=new Set(o.workspaces);else if(this.workspaces.length===0){if(!a)throw new er(o.cwd,this.context.cwd);u=new Set([a])}else u=new Set(this.workspaces.map(p=>o.getWorkspaceByIdent(Y.parseIdent(p))));for(let p of u)for(let h of this.production?["dependencies"]:Nt.hardDependencies)for(let C of p.manifest.getForScope(h).values()){let w=o.tryWorkspaceByDescriptor(C);w!==null&&u.add(w)}for(let p of o.workspaces)u.has(p)?this.production&&p.manifest.devDependencies.clear():(p.manifest.installConfig=p.manifest.installConfig||{},p.manifest.installConfig.selfReferences=!1,p.manifest.dependencies.clear(),p.manifest.devDependencies.clear(),p.manifest.peerDependencies.clear(),p.manifest.scripts.clear());return(await Ct.start({configuration:r,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await o.install({cache:n,report:p,persistProject:!1})})).exitCode()}};tg.paths=[["workspaces","focus"]],tg.usage=it.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});Ke();Ke();Ke();_t();var xm=tt(zo()),vve=tt(nd());rl();var rg=class extends ct{constructor(){super(...arguments);this.recursive=fe.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.from=fe.Array("--from",[],{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=fe.Boolean("-A,--all",!1,{description:"Run the command on all workspaces of a project"});this.verbose=fe.Boolean("-v,--verbose",{description:"Prefix each output line with the name of the originating workspace"});this.parallel=fe.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=fe.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=fe.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:MT([Gs(["unlimited"]),td(OT(),[_T(),UT(1)])])});this.topological=fe.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=fe.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=fe.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=fe.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=fe.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=fe.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.commandName=fe.String();this.args=fe.Proxy()}async execute(){let r=await Xe.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!this.all&&!a)throw new er(o.cwd,this.context.cwd);await o.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),u=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new ot("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let A=this.all?o.topLevelWorkspace:a,p=this.since?Array.from(await ea.fetchChangedWorkspaces({ref:this.since,project:o})):[A,...this.from.length>0?A.getRecursiveWorkspaceChildren():[]],h=le=>xm.default.isMatch(Y.stringifyIdent(le.locator),this.from)||xm.default.isMatch(le.relativeCwd,this.from),C=this.from.length>0?p.filter(h):p,w=new Set([...C,...C.map(le=>[...this.recursive?this.since?le.getRecursiveWorkspaceDependents():le.getRecursiveWorkspaceDependencies():le.getRecursiveWorkspaceChildren()]).flat()]),v=[],b=!1;if(u!=null&&u.includes(":")){for(let le of o.workspaces)if(le.manifest.scripts.has(u)&&(b=!b,b===!1))break}for(let le of w)u&&!le.manifest.scripts.has(u)&&!b&&!(await sn.getWorkspaceAccessibleBinaries(le)).has(u)||u===process.env.npm_lifecycle_event&&le.cwd===a.cwd||this.include.length>0&&!xm.default.isMatch(Y.stringifyIdent(le.locator),this.include)&&!xm.default.isMatch(le.relativeCwd,this.include)||this.exclude.length>0&&(xm.default.isMatch(Y.stringifyIdent(le.locator),this.exclude)||xm.default.isMatch(le.relativeCwd,this.exclude))||this.publicOnly&&le.manifest.private===!0||v.push(le);let E=this.verbose??this.context.stdout.isTTY,R=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(As.availableParallelism()/2):1,L=R===1?!1:this.parallel,_=L?this.interlaced:!0,V=(0,vve.default)(R),re=new Map,ae=new Set,he=0,pe=null,De=!1,ge=await Ct.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async le=>{let Pe=async(g,{commandIndex:ve})=>{if(De)return-1;!L&&E&&ve>1&&le.reportSeparator();let Ee=pDt(g,{configuration:r,verbose:E,commandIndex:ve}),[de,ne]=Bve(le,{prefix:Ee,interlaced:_}),[Z,me]=Bve(le,{prefix:Ee,interlaced:_});try{E&&le.reportInfo(null,`${Ee} Process started`);let be=Date.now(),ut=await this.cli.run([this.commandName,...this.args],{cwd:g.cwd,stdout:de,stderr:Z})||0;de.end(),Z.end(),await ne,await me;let H=Date.now();if(E){let yt=r.get("enableTimers")?`, completed in ${ye.pretty(r,H-be,ye.Type.DURATION)}`:"";le.reportInfo(null,`${Ee} Process exited (exit code ${ut})${yt}`)}return ut===130&&(De=!0,pe=ut),ut}catch(be){throw de.end(),Z.end(),await ne,await me,be}};for(let g of v)re.set(g.anchoredLocator.locatorHash,g);for(;re.size>0&&!le.hasErrors();){let g=[];for(let[de,ne]of re){if(ae.has(ne.anchoredDescriptor.descriptorHash))continue;let Z=!0;if(this.topological||this.topologicalDev){let me=this.topologicalDev?new Map([...ne.manifest.dependencies,...ne.manifest.devDependencies]):ne.manifest.dependencies;for(let be of me.values()){let ut=o.tryWorkspaceByDescriptor(be);if(Z=ut===null||!re.has(ut.anchoredLocator.locatorHash),!Z)break}}if(!!Z&&(ae.add(ne.anchoredDescriptor.descriptorHash),g.push(V(async()=>{let me=await Pe(ne,{commandIndex:++he});return re.delete(de),ae.delete(ne.anchoredDescriptor.descriptorHash),me})),!L))break}if(g.length===0){let de=Array.from(re.values()).map(ne=>Y.prettyLocator(r,ne.anchoredLocator)).join(", ");le.reportError(3,`Dependency cycle detected (${de})`);return}let Ee=(await Promise.all(g)).find(de=>de!==0);pe===null&&(pe=typeof Ee<"u"?1:pe),(this.topological||this.topologicalDev)&&typeof Ee<"u"&&le.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return pe!==null?pe:ge.exitCode()}};rg.paths=[["workspaces","foreach"]],rg.usage=it.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag (automatically enabled in interactive terminal environments) will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -pt run build"],["Run build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build"]]});function Bve(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new We.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new We.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function pDt(t,{configuration:e,commandIndex:r,verbose:o}){if(!o)return null;let n=`[${Y.stringifyIdent(t.locator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return ye.pretty(e,n,A)}var hDt={commands:[tg,rg]},gDt=hDt;var Zb=()=>({modules:new Map([["@yarnpkg/cli",K1],["@yarnpkg/core",Y1],["@yarnpkg/fslib",UI],["@yarnpkg/libzip",HI],["@yarnpkg/parsers",JI],["@yarnpkg/shell",D1],["clipanion",iw],["semver",dDt],["typanion",Yo],["@yarnpkg/plugin-essentials",eH],["@yarnpkg/plugin-compat",sH],["@yarnpkg/plugin-constraints",wH],["@yarnpkg/plugin-dlx",BH],["@yarnpkg/plugin-exec",SH],["@yarnpkg/plugin-file",xH],["@yarnpkg/plugin-git",$8],["@yarnpkg/plugin-github",kH],["@yarnpkg/plugin-http",FH],["@yarnpkg/plugin-init",RH],["@yarnpkg/plugin-interactive-tools",Nq],["@yarnpkg/plugin-link",Lq],["@yarnpkg/plugin-nm",Ej],["@yarnpkg/plugin-npm",dG],["@yarnpkg/plugin-npm-cli",vG],["@yarnpkg/plugin-pack",AG],["@yarnpkg/plugin-patch",kG],["@yarnpkg/plugin-pnp",aj],["@yarnpkg/plugin-pnpm",TG],["@yarnpkg/plugin-stage",_G],["@yarnpkg/plugin-typescript",HG],["@yarnpkg/plugin-version",YG],["@yarnpkg/plugin-workspace-tools",KG]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});Xb({binaryVersion:On||"<unknown>",pluginConfiguration:Zb()});})();
718/* 719/*
719object-assign 720object-assign
720(c) Sindre Sorhus 721(c) Sindre Sorhus
diff --git a/.yarn/sdks/eslint/package.json b/.yarn/sdks/eslint/package.json
index a244033a..3910b861 100644
--- a/.yarn/sdks/eslint/package.json
+++ b/.yarn/sdks/eslint/package.json
@@ -1,6 +1,6 @@
1{ 1{
2 "name": "eslint", 2 "name": "eslint",
3 "version": "8.37.0-sdk", 3 "version": "8.38.0-sdk",
4 "main": "./lib/api.js", 4 "main": "./lib/api.js",
5 "type": "commonjs" 5 "type": "commonjs"
6} 6}
diff --git a/.yarn/sdks/integrations.yml.license b/.yarn/sdks/integrations.yml.license
new file mode 100644
index 00000000..08673e9c
--- /dev/null
+++ b/.yarn/sdks/integrations.yml.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
2
3SPDX-License-Identifier: CC0-1.0
diff --git a/.yarn/sdks/typescript/package.json b/.yarn/sdks/typescript/package.json
index f1d7ffa4..925b839e 100644
--- a/.yarn/sdks/typescript/package.json
+++ b/.yarn/sdks/typescript/package.json
@@ -1,6 +1,6 @@
1{ 1{
2 "name": "typescript", 2 "name": "typescript",
3 "version": "5.0.3-sdk", 3 "version": "5.0.4-sdk",
4 "main": "./lib/typescript.js", 4 "main": "./lib/typescript.js",
5 "type": "commonjs" 5 "type": "commonjs"
6} 6}
diff --git a/.yarnrc.yml b/.yarnrc.yml
index 37765fad..84755cc2 100644
--- a/.yarnrc.yml
+++ b/.yarnrc.yml
@@ -1,18 +1,18 @@
1enableGlobalCache: false 1enableGlobalCache: false
2 2
3enableTelemetry: 0 3enableTelemetry: false
4 4
5nodeLinker: pnp 5nodeLinker: pnp
6 6
7packageExtensions: 7packageExtensions:
8 "notistack@*":
9 peerDependencies:
10 "csstype": "*"
11 "@xstate/cli@*": 8 "@xstate/cli@*":
12 peerDependencies: 9 peerDependencies:
13 prettier: "*" 10 prettier: "*"
14 "@xstate/tools-shared@*": 11 "@xstate/tools-shared@*":
15 peerDependencies: 12 peerDependencies:
16 "@babel/core": "*" 13 "@babel/core": "*"
14 notistack@*:
15 peerDependencies:
16 csstype: "*"
17 17
18yarnPath: .yarn/releases/yarn-4.0.0-rc.42.cjs 18yarnPath: .yarn/releases/yarn-4.0.0-rc.45.cjs
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
new file mode 100644
index 00000000..a408945b
--- /dev/null
+++ b/CONTRIBUTORS.md
@@ -0,0 +1,28 @@
1<!--
2 SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3
4 SPDX-License-Identifier: EPL-2.0
5-->
6
7# Contributors
8
9## The Refinery Authors
10
11**Project leader:** [Prof. Dániel Varró](https://liu.se/en/employee/danva91) &lt;daniel.varro@liu.se&gt;
12
13Other contributors (in alphabetical order):
14
15* Ficsor, Attila &lt;ficsorattila96@gmail.com&gt;
16* Garami, Bence &lt;85867500+garamibence@users.noreply.github.com&gt;
17* Golej, Márton Marcell &lt;golejmarci@gmail.com&gt;
18* Marussy, Kristóf &lt;marussy@mit.bme.hu&gt;
19* Semeráth, Oszkár &lt;semerath@mit.bme.hu&gt;
20
21## Support
22
23Refinery was also supported by
24
25* [Budapest University of Technology and Economics (BME)](https://www.bme.hu/?language=en), [Department of Measurement and Information Systems (MIT)](https://mit.bme.hu/eng/), [Critical Systems Research Group (FTSRG)](https://ftsrg.mit.bme.hu/en/)
26* [Department of Electrical and Computer Engineering](https://www.mcgill.ca/ece/), [McGill University](https://www.mcgill.ca/)
27* [2022 Amazon Research Awards](https://www.amazon.science/research-awards/recipients/daniel-varro-fall-2021)
28* [Linköping University](https://liu.se/en), [Department of Computer and Information Science (IDA)](https://liu.se/en/organisation/liu/ida), [Software and Systems (SAS)](https://liu.se/en/organisation/liu/ida/sas)
diff --git a/LICENSE b/LICENSE
index c43ced49..78756b5e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,278 +1,80 @@
1Eclipse Public License - v 2.0 1Eclipse Public License - v 2.0
2 2THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
3 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
4 PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
5 OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
6 3
71. DEFINITIONS 41. DEFINITIONS
5“Contribution” means:
8 6
9"Contribution" means: 7a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and
10 8b) in the case of each subsequent Contributor:
11 a) in the case of the initial Contributor, the initial content 9i) changes to the Program, and
12 Distributed under this Agreement, and 10ii) additions to the Program;
13 11where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution “originates” from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works.
14 b) in the case of each subsequent Contributor: 12“Contributor” means any person or entity that Distributes the Program.
15 i) changes to the Program, and
16 ii) additions to the Program;
17 where such changes and/or additions to the Program originate from
18 and are Distributed by that particular Contributor. A Contribution
19 "originates" from a Contributor if it was added to the Program by
20 such Contributor itself or anyone acting on such Contributor's behalf.
21 Contributions do not include changes or additions to the Program that
22 are not Modified Works.
23 13
24"Contributor" means any person or entity that Distributes the Program. 14“Licensed Patents” mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
25 15
26"Licensed Patents" mean patent claims licensable by a Contributor which 16“Program” means the Contributions Distributed in accordance with this Agreement.
27are necessarily infringed by the use or sale of its Contribution alone
28or when combined with the Program.
29 17
30"Program" means the Contributions Distributed in accordance with this 18“Recipient” means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors.
31Agreement.
32 19
33"Recipient" means anyone who receives the Program under this Agreement 20“Derivative Works” shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.
34or any Secondary License (as applicable), including Contributors.
35 21
36"Derivative Works" shall mean any work, whether in Source Code or other 22“Modified Works” shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof.
37form, that is based on (or derived from) the Program and for which the
38editorial revisions, annotations, elaborations, or other modifications
39represent, as a whole, an original work of authorship.
40 23
41"Modified Works" shall mean any work in Source Code or other form that 24“Distribute” means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy.
42results from an addition to, deletion from, or modification of the
43contents of the Program, including, for purposes of clarity any new file
44in Source Code form that contains any contents of the Program. Modified
45Works shall not include works that contain only declarations,
46interfaces, types, classes, structures, or files of the Program solely
47in each case in order to link to, bind by name, or subclass the Program
48or Modified Works thereof.
49 25
50"Distribute" means the acts of a) distributing or b) making available 26“Source Code” means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files.
51in any manner that enables the transfer of a copy.
52 27
53"Source Code" means the form of a Program preferred for making 28“Secondary License” means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor.
54modifications, including but not limited to software source code,
55documentation source, and configuration files.
56
57"Secondary License" means either the GNU General Public License,
58Version 2.0, or any later versions of that license, including any
59exceptions or additional permissions as identified by the initial
60Contributor.
61 29
622. GRANT OF RIGHTS 302. GRANT OF RIGHTS
63 31a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works.
64 a) Subject to the terms of this Agreement, each Contributor hereby 32b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
65 grants Recipient a non-exclusive, worldwide, royalty-free copyright 33c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
66 license to reproduce, prepare Derivative Works of, publicly display, 34d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
67 publicly perform, Distribute and sublicense the Contribution of such 35e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3).
68 Contributor, if any, and such Derivative Works.
69
70 b) Subject to the terms of this Agreement, each Contributor hereby
71 grants Recipient a non-exclusive, worldwide, royalty-free patent
72 license under Licensed Patents to make, use, sell, offer to sell,
73 import and otherwise transfer the Contribution of such Contributor,
74 if any, in Source Code or other form. This patent license shall
75 apply to the combination of the Contribution and the Program if, at
76 the time the Contribution is added by the Contributor, such addition
77 of the Contribution causes such combination to be covered by the
78 Licensed Patents. The patent license shall not apply to any other
79 combinations which include the Contribution. No hardware per se is
80 licensed hereunder.
81
82 c) Recipient understands that although each Contributor grants the
83 licenses to its Contributions set forth herein, no assurances are
84 provided by any Contributor that the Program does not infringe the
85 patent or other intellectual property rights of any other entity.
86 Each Contributor disclaims any liability to Recipient for claims
87 brought by any other entity based on infringement of intellectual
88 property rights or otherwise. As a condition to exercising the
89 rights and licenses granted hereunder, each Recipient hereby
90 assumes sole responsibility to secure any other intellectual
91 property rights needed, if any. For example, if a third party
92 patent license is required to allow Recipient to Distribute the
93 Program, it is Recipient's responsibility to acquire that license
94 before distributing the Program.
95
96 d) Each Contributor represents that to its knowledge it has
97 sufficient copyright rights in its Contribution, if any, to grant
98 the copyright license set forth in this Agreement.
99
100 e) Notwithstanding the terms of any Secondary License, no
101 Contributor makes additional grants to any Recipient (other than
102 those set forth in this Agreement) as a result of such Recipient's
103 receipt of the Program under the terms of a Secondary License
104 (if permitted under the terms of Section 3).
105
1063. REQUIREMENTS 363. REQUIREMENTS
107
1083.1 If a Contributor Distributes the Program in any form, then: 373.1 If a Contributor Distributes the Program in any form, then:
109 38
110 a) the Program must also be made available as Source Code, in 39a) the Program must also be made available as Source Code, in accordance with section 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and
111 accordance with section 3.2, and the Contributor must accompany 40b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license:
112 the Program with a statement that the Source Code for the Program 41i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
113 is available under this Agreement, and informs Recipients how to 42ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
114 obtain it in a reasonable manner on or through a medium customarily 43iii) does not attempt to limit or alter the recipients' rights in the Source Code under section 3.2; and
115 used for software exchange; and 44iv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this section 3.
116
117 b) the Contributor may Distribute the Program under a license
118 different than this Agreement, provided that such license:
119 i) effectively disclaims on behalf of all other Contributors all
120 warranties and conditions, express and implied, including
121 warranties or conditions of title and non-infringement, and
122 implied warranties or conditions of merchantability and fitness
123 for a particular purpose;
124
125 ii) effectively excludes on behalf of all other Contributors all
126 liability for damages, including direct, indirect, special,
127 incidental and consequential damages, such as lost profits;
128
129 iii) does not attempt to limit or alter the recipients' rights
130 in the Source Code under section 3.2; and
131
132 iv) requires any subsequent distribution of the Program by any
133 party to be under a license that satisfies the requirements
134 of this section 3.
135
1363.2 When the Program is Distributed as Source Code: 453.2 When the Program is Distributed as Source Code:
137 46
138 a) it must be made available under this Agreement, or if the 47a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and
139 Program (i) is combined with other material in a separate file or 48b) a copy of this Agreement must be included with each copy of the Program.
140 files made available under a Secondary License, and (ii) the initial 493.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability (‘notices’) contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices.
141 Contributor attached to the Source Code the notice described in
142 Exhibit A of this Agreement, then the Program may be made available
143 under the terms of such Secondary Licenses, and
144
145 b) a copy of this Agreement must be included with each copy of
146 the Program.
147
1483.3 Contributors may not remove or alter any copyright, patent,
149trademark, attribution notices, disclaimers of warranty, or limitations
150of liability ("notices") contained within the Program from any copy of
151the Program which they Distribute, provided that Contributors may add
152their own appropriate notices.
153 50
1544. COMMERCIAL DISTRIBUTION 514. COMMERCIAL DISTRIBUTION
52Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor (“Commercial Contributor”) hereby agrees to defend and indemnify every other Contributor (“Indemnified Contributor”) against any losses, damages and costs (collectively “Losses”) arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
155 53
156Commercial distributors of software may accept certain responsibilities 54For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
157with respect to end users, business partners and the like. While this
158license is intended to facilitate the commercial use of the Program,
159the Contributor who includes the Program in a commercial product
160offering should do so in a manner which does not create potential
161liability for other Contributors. Therefore, if a Contributor includes
162the Program in a commercial product offering, such Contributor
163("Commercial Contributor") hereby agrees to defend and indemnify every
164other Contributor ("Indemnified Contributor") against any losses,
165damages and costs (collectively "Losses") arising from claims, lawsuits
166and other legal actions brought by a third party against the Indemnified
167Contributor to the extent caused by the acts or omissions of such
168Commercial Contributor in connection with its distribution of the Program
169in a commercial product offering. The obligations in this section do not
170apply to any claims or Losses relating to any actual or alleged
171intellectual property infringement. In order to qualify, an Indemnified
172Contributor must: a) promptly notify the Commercial Contributor in
173writing of such claim, and b) allow the Commercial Contributor to control,
174and cooperate with the Commercial Contributor in, the defense and any
175related settlement negotiations. The Indemnified Contributor may
176participate in any such claim at its own expense.
177
178For example, a Contributor might include the Program in a commercial
179product offering, Product X. That Contributor is then a Commercial
180Contributor. If that Commercial Contributor then makes performance
181claims, or offers warranties related to Product X, those performance
182claims and warranties are such Commercial Contributor's responsibility
183alone. Under this section, the Commercial Contributor would have to
184defend claims against the other Contributors related to those performance
185claims and warranties, and if a court requires any other Contributor to
186pay any damages as a result, the Commercial Contributor must pay
187those damages.
188 55
1895. NO WARRANTY 565. NO WARRANTY
190 57EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
191EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
192PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
193BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
194IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
195TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
196PURPOSE. Each Recipient is solely responsible for determining the
197appropriateness of using and distributing the Program and assumes all
198risks associated with its exercise of rights under this Agreement,
199including but not limited to the risks and costs of program errors,
200compliance with applicable laws, damage to or loss of data, programs
201or equipment, and unavailability or interruption of operations.
202 58
2036. DISCLAIMER OF LIABILITY 596. DISCLAIMER OF LIABILITY
204 60EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
205EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
206PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
207SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
208EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
209PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
210CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
211ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
212EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
213POSSIBILITY OF SUCH DAMAGES.
214 61
2157. GENERAL 627. GENERAL
63If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
216 64
217If any provision of this Agreement is invalid or unenforceable under 65If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
218applicable law, it shall not affect the validity or enforceability of
219the remainder of the terms of this Agreement, and without further
220action by the parties hereto, such provision shall be reformed to the
221minimum extent necessary to make such provision valid and enforceable.
222
223If Recipient institutes patent litigation against any entity
224(including a cross-claim or counterclaim in a lawsuit) alleging that the
225Program itself (excluding combinations of the Program with other software
226or hardware) infringes such Recipient's patent(s), then such Recipient's
227rights granted under Section 2(b) shall terminate as of the date such
228litigation is filed.
229
230All Recipient's rights under this Agreement shall terminate if it
231fails to comply with any of the material terms or conditions of this
232Agreement and does not cure such failure in a reasonable period of
233time after becoming aware of such noncompliance. If all Recipient's
234rights under this Agreement terminate, Recipient agrees to cease use
235and distribution of the Program as soon as reasonably practicable.
236However, Recipient's obligations under this Agreement and any licenses
237granted by Recipient relating to the Program shall continue and survive.
238
239Everyone is permitted to copy and distribute copies of this Agreement,
240but in order to avoid inconsistency the Agreement is copyrighted and
241may only be modified in the following manner. The Agreement Steward
242reserves the right to publish new versions (including revisions) of
243this Agreement from time to time. No one other than the Agreement
244Steward has the right to modify this Agreement. The Eclipse Foundation
245is the initial Agreement Steward. The Eclipse Foundation may assign the
246responsibility to serve as the Agreement Steward to a suitable separate
247entity. Each new version of the Agreement will be given a distinguishing
248version number. The Program (including Contributions) may always be
249Distributed subject to the version of the Agreement under which it was
250received. In addition, after a new version of the Agreement is published,
251Contributor may elect to Distribute the Program (including its
252Contributions) under the new version.
253 66
254Except as expressly stated in Sections 2(a) and 2(b) above, Recipient 67All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
255receives no rights or licenses to the intellectual property of any
256Contributor under this Agreement, whether expressly, by implication,
257estoppel or otherwise. All rights in the Program not expressly granted
258under this Agreement are reserved. Nothing in this Agreement is intended
259to be enforceable by any entity that is not a Contributor or Recipient.
260No third-party beneficiary rights are created under this Agreement.
261 68
262Exhibit A - Form of Secondary Licenses Notice 69Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version.
263 70
264"This Source Code may also be made available under the following 71Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement.
265Secondary Licenses when the conditions for such availability set forth
266in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
267version(s), and exceptions or additional permissions here}."
268 72
269 Simply including a copy of this Agreement, including this Exhibit A 73Exhibit A – Form of Secondary Licenses Notice
270 is not sufficient to license the Source Code under Secondary Licenses. 74“This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), version(s), and exceptions or additional permissions here}.”
271 75
272 If it is not possible or desirable to put the notice in a particular 76Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses.
273 file, then You may include the notice in a location (such as a LICENSE
274 file in a relevant directory) where a recipient would be likely to
275 look for such a notice.
276 77
277 You may add additional accurate notices of copyright ownership. 78If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.
278 79
80You may add additional accurate notices of copyright ownership.
diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt
new file mode 100644
index 00000000..137069b8
--- /dev/null
+++ b/LICENSES/Apache-2.0.txt
@@ -0,0 +1,73 @@
1Apache License
2Version 2.0, January 2004
3http://www.apache.org/licenses/
4
5TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
71. Definitions.
8
9"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
10
11"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
12
13"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
14
15"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
16
17"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
18
19"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
20
21"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
22
23"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
24
25"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
26
27"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
28
292. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
30
313. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
32
334. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
34
35 (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
36
37 (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
38
39 (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
40
41 (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
42
43 You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
44
455. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
46
476. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
48
497. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
50
518. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
52
539. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
54
55END OF TERMS AND CONDITIONS
56
57APPENDIX: How to apply the Apache License to your work.
58
59To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
60
61Copyright [yyyy] [name of copyright owner]
62
63Licensed under the Apache License, Version 2.0 (the "License");
64you may not use this file except in compliance with the License.
65You may obtain a copy of the License at
66
67http://www.apache.org/licenses/LICENSE-2.0
68
69Unless required by applicable law or agreed to in writing, software
70distributed under the License is distributed on an "AS IS" BASIS,
71WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
72See the License for the specific language governing permissions and
73limitations under the License.
diff --git a/LICENSES/BSD-2-Clause.txt b/LICENSES/BSD-2-Clause.txt
new file mode 100644
index 00000000..5f662b35
--- /dev/null
+++ b/LICENSES/BSD-2-Clause.txt
@@ -0,0 +1,9 @@
1Copyright (c) <year> <owner>
2
3Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
51. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
72. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
9THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt
new file mode 100644
index 00000000..0e259d42
--- /dev/null
+++ b/LICENSES/CC0-1.0.txt
@@ -0,0 +1,121 @@
1Creative Commons Legal Code
2
3CC0 1.0 Universal
4
5 CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 HEREUNDER.
13
14Statement of Purpose
15
16The laws of most jurisdictions throughout the world automatically confer
17exclusive Copyright and Related Rights (defined below) upon the creator
18and subsequent owner(s) (each and all, an "owner") of an original work of
19authorship and/or a database (each, a "Work").
20
21Certain owners wish to permanently relinquish those rights to a Work for
22the purpose of contributing to a commons of creative, cultural and
23scientific works ("Commons") that the public can reliably and without fear
24of later claims of infringement build upon, modify, incorporate in other
25works, reuse and redistribute as freely as possible in any form whatsoever
26and for any purposes, including without limitation commercial purposes.
27These owners may contribute to the Commons to promote the ideal of a free
28culture and the further production of creative, cultural and scientific
29works, or to gain reputation or greater distribution for their Work in
30part through the use and efforts of others.
31
32For these and/or other purposes and motivations, and without any
33expectation of additional consideration or compensation, the person
34associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35is an owner of Copyright and Related Rights in the Work, voluntarily
36elects to apply CC0 to the Work and publicly distribute the Work under its
37terms, with knowledge of his or her Copyright and Related Rights in the
38Work and the meaning and intended legal effect of CC0 on those rights.
39
401. Copyright and Related Rights. A Work made available under CC0 may be
41protected by copyright and related or neighboring rights ("Copyright and
42Related Rights"). Copyright and Related Rights include, but are not
43limited to, the following:
44
45 i. the right to reproduce, adapt, distribute, perform, display,
46 communicate, and translate a Work;
47 ii. moral rights retained by the original author(s) and/or performer(s);
48iii. publicity and privacy rights pertaining to a person's image or
49 likeness depicted in a Work;
50 iv. rights protecting against unfair competition in regards to a Work,
51 subject to the limitations in paragraph 4(a), below;
52 v. rights protecting the extraction, dissemination, use and reuse of data
53 in a Work;
54 vi. database rights (such as those arising under Directive 96/9/EC of the
55 European Parliament and of the Council of 11 March 1996 on the legal
56 protection of databases, and under any national implementation
57 thereof, including any amended or successor version of such
58 directive); and
59vii. other similar, equivalent or corresponding rights throughout the
60 world based on applicable law or treaty, and any national
61 implementations thereof.
62
632. Waiver. To the greatest extent permitted by, but not in contravention
64of, applicable law, Affirmer hereby overtly, fully, permanently,
65irrevocably and unconditionally waives, abandons, and surrenders all of
66Affirmer's Copyright and Related Rights and associated claims and causes
67of action, whether now known or unknown (including existing as well as
68future claims and causes of action), in the Work (i) in all territories
69worldwide, (ii) for the maximum duration provided by applicable law or
70treaty (including future time extensions), (iii) in any current or future
71medium and for any number of copies, and (iv) for any purpose whatsoever,
72including without limitation commercial, advertising or promotional
73purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74member of the public at large and to the detriment of Affirmer's heirs and
75successors, fully intending that such Waiver shall not be subject to
76revocation, rescission, cancellation, termination, or any other legal or
77equitable action to disrupt the quiet enjoyment of the Work by the public
78as contemplated by Affirmer's express Statement of Purpose.
79
803. Public License Fallback. Should any part of the Waiver for any reason
81be judged legally invalid or ineffective under applicable law, then the
82Waiver shall be preserved to the maximum extent permitted taking into
83account Affirmer's express Statement of Purpose. In addition, to the
84extent the Waiver is so judged Affirmer hereby grants to each affected
85person a royalty-free, non transferable, non sublicensable, non exclusive,
86irrevocable and unconditional license to exercise Affirmer's Copyright and
87Related Rights in the Work (i) in all territories worldwide, (ii) for the
88maximum duration provided by applicable law or treaty (including future
89time extensions), (iii) in any current or future medium and for any number
90of copies, and (iv) for any purpose whatsoever, including without
91limitation commercial, advertising or promotional purposes (the
92"License"). The License shall be deemed effective as of the date CC0 was
93applied by Affirmer to the Work. Should any part of the License for any
94reason be judged legally invalid or ineffective under applicable law, such
95partial invalidity or ineffectiveness shall not invalidate the remainder
96of the License, and in such case Affirmer hereby affirms that he or she
97will not (i) exercise any of his or her remaining Copyright and Related
98Rights in the Work or (ii) assert any associated claims and causes of
99action with respect to the Work, in either case contrary to Affirmer's
100express Statement of Purpose.
101
1024. Limitations and Disclaimers.
103
104 a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 surrendered, licensed or otherwise affected by this document.
106 b. Affirmer offers the Work as-is and makes no representations or
107 warranties of any kind concerning the Work, express, implied,
108 statutory or otherwise, including without limitation warranties of
109 title, merchantability, fitness for a particular purpose, non
110 infringement, or the absence of latent or other defects, accuracy, or
111 the present or absence of errors, whether or not discoverable, all to
112 the greatest extent permissible under applicable law.
113 c. Affirmer disclaims responsibility for clearing rights of other persons
114 that may apply to the Work or any use thereof, including without
115 limitation any person's Copyright and Related Rights in the Work.
116 Further, Affirmer disclaims responsibility for obtaining any necessary
117 consents, permissions or other rights required for any use of the
118 Work.
119 d. Affirmer understands and acknowledges that Creative Commons is not a
120 party to this document and has no duty or obligation with respect to
121 this CC0 or use of the Work.
diff --git a/LICENSES/EPL-2.0.txt b/LICENSES/EPL-2.0.txt
new file mode 100644
index 00000000..78756b5e
--- /dev/null
+++ b/LICENSES/EPL-2.0.txt
@@ -0,0 +1,80 @@
1Eclipse Public License - v 2.0
2THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
3
41. DEFINITIONS
5“Contribution” means:
6
7a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and
8b) in the case of each subsequent Contributor:
9i) changes to the Program, and
10ii) additions to the Program;
11where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution “originates” from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works.
12“Contributor” means any person or entity that Distributes the Program.
13
14“Licensed Patents” mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
15
16“Program” means the Contributions Distributed in accordance with this Agreement.
17
18“Recipient” means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors.
19
20“Derivative Works” shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.
21
22“Modified Works” shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof.
23
24“Distribute” means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy.
25
26“Source Code” means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files.
27
28“Secondary License” means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor.
29
302. GRANT OF RIGHTS
31a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works.
32b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
33c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
34d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
35e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3).
363. REQUIREMENTS
373.1 If a Contributor Distributes the Program in any form, then:
38
39a) the Program must also be made available as Source Code, in accordance with section 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and
40b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license:
41i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
42ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
43iii) does not attempt to limit or alter the recipients' rights in the Source Code under section 3.2; and
44iv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this section 3.
453.2 When the Program is Distributed as Source Code:
46
47a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and
48b) a copy of this Agreement must be included with each copy of the Program.
493.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability (‘notices’) contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices.
50
514. COMMERCIAL DISTRIBUTION
52Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor (“Commercial Contributor”) hereby agrees to defend and indemnify every other Contributor (“Indemnified Contributor”) against any losses, damages and costs (collectively “Losses”) arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
53
54For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
55
565. NO WARRANTY
57EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
58
596. DISCLAIMER OF LIABILITY
60EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
61
627. GENERAL
63If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
64
65If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
66
67All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
68
69Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version.
70
71Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement.
72
73Exhibit A – Form of Secondary Licenses Notice
74“This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), version(s), and exceptions or additional permissions here}.”
75
76Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses.
77
78If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.
79
80You may add additional accurate notices of copyright ownership.
diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt
new file mode 100644
index 00000000..2071b23b
--- /dev/null
+++ b/LICENSES/MIT.txt
@@ -0,0 +1,9 @@
1MIT License
2
3Copyright (c) <year> <copyright holders>
4
5Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
7The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
9THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
index 33d89786..f6e36e74 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,9 @@
1<!--
2 SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3
4 SPDX-License-Identifier: EPL-2.0
5-->
6
1# Refinery 7# Refinery
2 8
3[![Build](https://github.com/graphs4value/refinery/actions/workflows/build.yml/badge.svg)](https://github.com/graphs4value/refinery/actions/workflows/build.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=graphs4value_refinery&metric=alert_status)](https://sonarcloud.io/dashboard?id=graphs4value_refinery) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=graphs4value_refinery&metric=coverage)](https://sonarcloud.io/dashboard?id=graphs4value_refinery) 9[![Build](https://github.com/graphs4value/refinery/actions/workflows/build.yml/badge.svg)](https://github.com/graphs4value/refinery/actions/workflows/build.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=graphs4value_refinery&metric=alert_status)](https://sonarcloud.io/dashboard?id=graphs4value_refinery) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=graphs4value_refinery&metric=coverage)](https://sonarcloud.io/dashboard?id=graphs4value_refinery)
@@ -6,7 +12,7 @@
6 12
7### With Eclipse IDE 13### With Eclipse IDE
8 14
91. Download and install a _Java 19_ compatible JDK. For Windows, prefer OpenJDK builds from [Adoptium](https://adoptium.net/). 151. Download and install a _Java 17_ compatible JDK. For Windows, prefer OpenJDK builds from [Adoptium](https://adoptium.net/).
10 16
112. Download and extract the [Eclipse IDE for Java and DSL Developers 2022-09](https://www.eclipse.org/downloads/packages/release/2022-09/r/eclipse-ide-java-and-dsl-developers) package. 172. Download and extract the [Eclipse IDE for Java and DSL Developers 2022-09](https://www.eclipse.org/downloads/packages/release/2022-09/r/eclipse-ide-java-and-dsl-developers) package.
12 18
@@ -17,16 +23,15 @@
17 23
185. Open _Help > Eclipse Marketplace_ and install the following software: 245. Open _Help > Eclipse Marketplace_ and install the following software:
19 * _EclEmma Java Code Coverage_ 25 * _EclEmma Java Code Coverage_
20 * _Java 19 Support for Eclipse 2022-09 (4.25)_
21 * _SonarLint_ 26 * _SonarLint_
22 27
236. Open _Window > Preferences_ and set the following preferences: 286. Open _Window > Preferences_ and set the following preferences:
24 * _General > Workspace > Text file encoding_ should be _UTF-8_. 29 * _General > Workspace > Text file encoding_ should be _UTF-8_.
25 * _General > Workspace > New text file line delimiter_ should be _Unix_. 30 * _General > Workspace > New text file line delimiter_ should be _Unix_.
26 * Add the JDK 19 to _Java > Installed JREs_. 31 * Add the JDK 17 to _Java > Installed JREs_.
27 * Make sure JDK 19 is selected for _JavaSE-19_ at _Java > Installed JREs > Execution Environments_. 32 * Make sure JDK 17 is selected for _JavaSE-17_ at _Java > Installed JREs > Execution Environments_.
28 * Set _Gradle > Java home_ to the `JAVA_HOME` directory (the directory which contains the `bin` directory) of JDK 17. Here, Buildship will show a yellow warning sign, which can be safely ignored. 33 * Set _Gradle > Java home_ to the `JAVA_HOME` directory (the directory which contains the `bin` directory) of JDK 17. Here, Buildship will show a yellow warning sign, which can be safely ignored.
29 * Set _Java > Compiler > JDK Compliance > Compiler compliance level_ to _19_. The warning about using Java 16 system libraries during compilation should disappear. 34 * Set _Java > Compiler > JDK Compliance > Compiler compliance level_ to _17_.
30 35
317. Clone the project Git repository but do not import it into Eclipse yet. 367. Clone the project Git repository but do not import it into Eclipse yet.
32 37
@@ -45,4 +50,9 @@ It is possible to import the project into IntelliJ IDEA, but it gives no editing
45 50
46## License 51## License
47 52
48All code in this repository is available under the [Eclipse Public License - v 2.0](https://www.eclipse.org/legal/epl-2.0/). 53Copyright (c) 2021-2023 [The Refinery Authors](CONTRIBUTORS.md)
54
55Refinery is available under the [Eclipse Public License - v 2.0](https://www.eclipse.org/legal/epl-2.0/).
56
57Refinery complies with the [REUSE Specification – Version 3.0](https://reuse.software/) to provide copyright and licensing information to each file, including files available under other licenses.
58For more information, see the comments headers in each file and the license texts in the [LICENSES](LICENSES/) directory.
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index a632b457..00000000
--- a/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
1plugins {
2 alias libs.plugins.versions
3 id 'refinery-eclipse'
4 id 'refinery-frontend-worktree'
5 id 'refinery-sonarqube'
6}
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 00000000..46fc8c37
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,12 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 alias(libs.plugins.versions)
9 id("tools.refinery.gradle.eclipse")
10 id("tools.refinery.gradle.frontend-worktree")
11 id("tools.refinery.gradle.sonarqube")
12}
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
deleted file mode 100644
index cd3101be..00000000
--- a/buildSrc/build.gradle
+++ /dev/null
@@ -1,14 +0,0 @@
1plugins {
2 id 'groovy-gradle-plugin'
3 alias libs.plugins.versions
4}
5
6repositories {
7 gradlePluginPortal()
8}
9
10dependencies {
11 implementation libs.gradlePlugin.frontend
12 implementation libs.gradlePlugin.shadow
13 implementation libs.gradlePlugin.sonarqube
14}
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
new file mode 100644
index 00000000..2326e7a4
--- /dev/null
+++ b/buildSrc/build.gradle.kts
@@ -0,0 +1,23 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 `kotlin-dsl`
9 alias(libs.plugins.versions)
10}
11
12repositories {
13 gradlePluginPortal()
14 mavenCentral()
15}
16
17dependencies {
18 implementation(libs.gradlePlugin.frontend)
19 implementation(libs.gradlePlugin.shadow)
20 implementation(libs.gradlePlugin.sonarqube)
21 // https://github.com/gradle/gradle/issues/15383
22 implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
23}
diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle
deleted file mode 100644
index b54c8e5d..00000000
--- a/buildSrc/settings.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
1dependencyResolutionManagement {
2 versionCatalogs {
3 libs {
4 from files('../gradle/libs.versions.toml')
5 }
6 }
7}
diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts
new file mode 100644
index 00000000..1daa9bbd
--- /dev/null
+++ b/buildSrc/settings.gradle.kts
@@ -0,0 +1,13 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7dependencyResolutionManagement {
8 versionCatalogs {
9 create("libs") {
10 from(files("../gradle/libs.versions.toml"))
11 }
12 }
13}
diff --git a/buildSrc/src/main/groovy/refinery-eclipse.gradle b/buildSrc/src/main/groovy/refinery-eclipse.gradle
deleted file mode 100644
index 15dcb5ce..00000000
--- a/buildSrc/src/main/groovy/refinery-eclipse.gradle
+++ /dev/null
@@ -1,28 +0,0 @@
1plugins {
2 id 'eclipse'
3}
4
5// Workaround from https://github.com/gradle/gradle/issues/898#issuecomment-885765821
6def eclipseResourceEncoding = tasks.register('eclipseResourceEncoding') {
7 ext.outputFile = file('.settings/org.eclipse.core.resources.prefs')
8 def compileTask = tasks.findByName('compileJava')
9 ext.encoding = provider({ compileTask?.options?.encoding }).orElse(providers.systemProperty('file.encoding'))
10
11 inputs.property('file.encoding', encoding)
12 outputs.file(outputFile).withPropertyName('outputFile')
13
14 doLast {
15 Properties eclipseEncodingProperties =
16 new Properties(Collections.singletonMap('eclipse.preferences.version', '1'))
17 eclipseEncodingProperties.put('encoding/<project>', encoding.get())
18 outputFile.withOutputStream {
19 eclipseEncodingProperties.store(it, 'generated by ' + name)
20 }
21 }
22}
23
24tasks.named('eclipse') {
25 dependsOn(eclipseResourceEncoding)
26}
27
28eclipse.synchronizationTasks(eclipseResourceEncoding)
diff --git a/buildSrc/src/main/groovy/refinery-frontend-conventions.gradle b/buildSrc/src/main/groovy/refinery-frontend-conventions.gradle
deleted file mode 100644
index da9370fe..00000000
--- a/buildSrc/src/main/groovy/refinery-frontend-conventions.gradle
+++ /dev/null
@@ -1,14 +0,0 @@
1plugins {
2 id 'org.siouan.frontend-jdk11'
3}
4
5frontend {
6 nodeVersion = project.ext['frontend.nodeVersion']
7 nodeInstallDirectory = file("${rootDir}/.node")
8 yarnEnabled = true
9 yarnVersion = project.ext['frontend.yarnVersion']
10}
11
12tasks.named('enableYarnBerry') {
13 enabled = false
14}
diff --git a/buildSrc/src/main/groovy/refinery-frontend-workspace.gradle b/buildSrc/src/main/groovy/refinery-frontend-workspace.gradle
deleted file mode 100644
index 9c6d7b13..00000000
--- a/buildSrc/src/main/groovy/refinery-frontend-workspace.gradle
+++ /dev/null
@@ -1,29 +0,0 @@
1plugins {
2 id 'refinery-eclipse'
3 id 'refinery-frontend-conventions'
4}
5
6tasks.named('installNode') {
7 dependsOn rootProject.tasks.named('installNode')
8 enabled = false
9}
10
11tasks.named('installYarnGlobally') {
12 dependsOn rootProject.tasks.named('installYarnGlobally')
13 enabled = false
14}
15
16tasks.named('installYarn') {
17 dependsOn rootProject.tasks.named('installYarn')
18 enabled = false
19}
20
21def rootInstallFrontend = rootProject.tasks.named('installFrontend')
22rootInstallFrontend.configure {
23 inputs.file "${projectDir}/package.json"
24}
25
26tasks.named('installFrontend') {
27 dependsOn rootInstallFrontend
28 enabled = false
29}
diff --git a/buildSrc/src/main/groovy/refinery-frontend-worktree.gradle b/buildSrc/src/main/groovy/refinery-frontend-worktree.gradle
deleted file mode 100644
index 1d239fd5..00000000
--- a/buildSrc/src/main/groovy/refinery-frontend-worktree.gradle
+++ /dev/null
@@ -1,95 +0,0 @@
1plugins {
2 id 'refinery-frontend-conventions'
3}
4
5frontend {
6 yarnGlobalInstallScript = "install -g yarn@${project.ext['frontend.yarn1Version']}"
7 yarnInstallScript = "set version ${frontend.yarnVersion.get()} --only-if-needed"
8 if (project.hasProperty('ci')) {
9 installScript = 'install --immutable --inline-builds'
10 } else {
11 installScript = 'install'
12 }
13}
14
15ext.frontedPropertiesFile = "${frontend.nodeInstallDirectory.get()}/frontend.properties"
16
17String getFrontendProperty(String propertyName) {
18 FileInputStream inputStream = null
19 Properties props = new Properties()
20 try {
21 inputStream = new FileInputStream(frontedPropertiesFile)
22 props.load(inputStream)
23 } catch (IOException ignored) {
24 return null
25 } finally {
26 if (inputStream != null) {
27 inputStream.close()
28 }
29 }
30 return props.get(propertyName)
31}
32
33void putFrontedProperty(String propertyName, String propertyValue) {
34 FileInputStream inputStream = null
35 Properties props = new Properties()
36 try {
37 inputStream = new FileInputStream(frontedPropertiesFile)
38 props.load(inputStream)
39 } catch (FileNotFoundException ignored) {
40 // Use an empty Properties object instead
41 } finally {
42 if (inputStream != null) {
43 inputStream.close()
44 }
45 }
46 props.put(propertyName, propertyValue)
47 FileOutputStream outputStream = null
48 try {
49 outputStream = new FileOutputStream(frontedPropertiesFile)
50 props.store(outputStream, null)
51 } catch (IOException ignored) {
52 } finally {
53 if (outputStream != null) {
54 outputStream.close()
55 }
56 }
57}
58
59tasks.named('installNode') {
60 onlyIf {
61 getFrontendProperty('installedNodeVersion') != frontend.nodeVersion.get()
62 }
63 doLast {
64 putFrontedProperty('installedNodeVersion', frontend.nodeVersion.get())
65 }
66}
67
68tasks.named('installYarnGlobally') {
69 onlyIf {
70 getFrontendProperty('installedYarn1Version') != project.ext['frontend.yarn1Version']
71 }
72 doLast {
73 putFrontedProperty('installedYarn1Version', project.ext['frontend.yarn1Version'])
74 }
75 outputs.dir "${frontend.nodeInstallDirectory.get()}/lib/node_modules/yarn"
76}
77
78tasks.named('installYarn') {
79 outputs.file ".yarn/releases/yarn-${frontend.yarnVersion.get()}.cjs"
80}
81
82tasks.named('installFrontend') {
83 inputs.files('package.json', 'yarn.lock')
84 outputs.files('.pnp.cjs', '.pnp.loader.mjs')
85}
86
87tasks.register('clobberFrontend', Delete) {
88 delete frontend.nodeInstallDirectory.get()
89 delete '.yarn/cache'
90 delete '.yarn/install-state.gz'
91 delete '.yarn/sdks'
92 delete '.yarn/unplugged'
93 delete '.pnp.cjs'
94 delete '.pnp.loader.mjs'
95}
diff --git a/buildSrc/src/main/groovy/refinery-java-application.gradle b/buildSrc/src/main/groovy/refinery-java-application.gradle
deleted file mode 100644
index c38ccdb3..00000000
--- a/buildSrc/src/main/groovy/refinery-java-application.gradle
+++ /dev/null
@@ -1,11 +0,0 @@
1plugins {
2 id 'application'
3 id 'com.github.johnrengelman.shadow'
4 id 'refinery-java-conventions'
5}
6
7for (taskName in ['distTar', 'distZip', 'shadowDistTar', 'shadowDistZip']) {
8 tasks.named(taskName) {
9 enabled = false
10 }
11}
diff --git a/buildSrc/src/main/groovy/refinery-java-conventions.gradle b/buildSrc/src/main/groovy/refinery-java-conventions.gradle
deleted file mode 100644
index fdf5818a..00000000
--- a/buildSrc/src/main/groovy/refinery-java-conventions.gradle
+++ /dev/null
@@ -1,93 +0,0 @@
1plugins {
2 id 'jacoco'
3 id 'java'
4 id 'refinery-eclipse'
5}
6
7repositories {
8 mavenCentral()
9 maven {
10 url 'https://repo.eclipse.org/content/groups/releases/'
11 }
12}
13
14dependencies {
15 compileOnly libs.jetbrainsAnnotations
16 testCompileOnly libs.jetbrainsAnnotations
17 testImplementation libs.hamcrest
18 testImplementation libs.junit.api
19 testRuntimeOnly libs.junit.engine
20 testImplementation libs.junit.params
21 testImplementation libs.mockito.core
22 testImplementation libs.mockito.junit
23}
24
25java.toolchain {
26 languageVersion = JavaLanguageVersion.of(19)
27}
28
29tasks.withType(JavaCompile) {
30 options.release.set(17)
31}
32
33def jacocoTestReport = tasks.named('jacocoTestReport')
34jacocoTestReport.configure {
35 dependsOn test
36 reports {
37 xml.required = true
38 }
39}
40
41tasks.named('test') {
42 useJUnitPlatform {
43 excludeTags 'slow'
44 }
45 finalizedBy jacocoTestReport
46}
47
48tasks.register('slowTest', Test) {
49 useJUnitPlatform()
50 finalizedBy jacocoTestReport
51}
52
53tasks.named('jar') {
54 manifest {
55 attributes(
56 'Bundle-SymbolicName': "${project.group}.${project.name}",
57 'Bundle-Version': project.version
58 )
59 }
60}
61
62def generateEclipseSourceFolders = tasks.register('generateEclipseSourceFolders')
63
64tasks.register('prepareEclipse') {
65 dependsOn generateEclipseSourceFolders
66 dependsOn tasks.named('eclipseJdt')
67}
68
69tasks.named('eclipseClasspath') {
70 dependsOn generateEclipseSourceFolders
71}
72
73eclipse {
74 classpath.file.whenMerged {
75 for (entry in entries) {
76 if (entry.path.endsWith('-gen')) {
77 entry.entryAttributes['ignore_optional_problems'] = true
78 }
79 // If a project has a main dependency on a project and an test dependency on the testFixtures of a project,
80 // it will be erroneously added as a test-only dependency to Eclipse.
81 // As a workaround, we add all project dependencies as main dependencies
82 // (we do not deliberately use test-only project dependencies).
83 if (entry in org.gradle.plugins.ide.eclipse.model.ProjectDependency) {
84 entry.entryAttributes.remove('test')
85 }
86 }
87 }
88
89 jdt.file.withProperties { properties ->
90 // Allow @SuppressWarnings to suppress SonarLint warnings
91 properties['org.eclipse.jdt.core.compiler.problem.unhandledWarningToken'] = 'ignore'
92 }
93}
diff --git a/buildSrc/src/main/groovy/refinery-java-library.gradle b/buildSrc/src/main/groovy/refinery-java-library.gradle
deleted file mode 100644
index daa80f17..00000000
--- a/buildSrc/src/main/groovy/refinery-java-library.gradle
+++ /dev/null
@@ -1,4 +0,0 @@
1plugins {
2 id 'java-library'
3 id 'refinery-java-conventions'
4}
diff --git a/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle b/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle
deleted file mode 100644
index 02568abd..00000000
--- a/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
1import org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry
2
3plugins {
4 id 'java-test-fixtures'
5 id 'refinery-java-conventions'
6}
7
8eclipse.classpath {
9 containsTestFixtures = true
10
11 file.whenMerged { classpath ->
12 def hasTest = classpath.entries.any { entry ->
13 entry in AbstractClasspathEntry &&
14 entry.entryAttributes['gradle_scope'] == 'test'
15 }
16 for (entry in classpath.entries) {
17 // Workaround https://github.com/gradle/gradle/issues/11845 based on
18 // https://discuss.gradle.org/t/gradle-used-by-scope-not-correctly-generated-when-the-java-test-fixtures-plugin-is-used/39935/2
19 if (entry in AbstractClasspathEntry) {
20 def usedBy = new LinkedHashSet(
21 Arrays.asList((entry.entryAttributes['gradle_used_by_scope'] ?: '').split(','))
22 )
23 if (usedBy.contains('main')) {
24 usedBy += 'testFixtures'
25 }
26 if (hasTest && usedBy.contains('testFixtures')) {
27 usedBy += 'test'
28 }
29 if (!usedBy.empty) {
30 entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',')
31 }
32 }
33 }
34 }
35}
diff --git a/buildSrc/src/main/groovy/refinery-jmh.gradle b/buildSrc/src/main/groovy/refinery-jmh.gradle
deleted file mode 100644
index 1ab9edc3..00000000
--- a/buildSrc/src/main/groovy/refinery-jmh.gradle
+++ /dev/null
@@ -1,64 +0,0 @@
1import org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry
2
3plugins {
4 id 'refinery-java-conventions'
5 id 'refinery-sonarqube'
6}
7
8configurations {
9 jmh {
10 extendsFrom implementation
11 }
12}
13
14sourceSets {
15 jmh {
16 java.srcDirs = ['src/jmh/java']
17 resources.srcDirs = ['src/jmh/resources']
18 compileClasspath += sourceSets.main.runtimeClasspath
19 compileClasspath += sourceSets.test.runtimeClasspath
20 }
21}
22
23dependencies {
24 jmhImplementation libs.jmh.core
25 jmhAnnotationProcessor libs.jmh.annprocess
26}
27
28tasks.register('jmh', JavaExec) {
29 dependsOn tasks.named('jmhClasses')
30 mainClass = 'org.openjdk.jmh.Main'
31 classpath = sourceSets.jmh.compileClasspath + sourceSets.jmh.runtimeClasspath
32}
33
34eclipse.classpath.file.whenMerged { classpath ->
35 for (entry in classpath.entries) {
36 if (entry in AbstractClasspathEntry) {
37 // Workaround from https://github.com/gradle/gradle/issues/4802#issuecomment-407902081
38 if (entry.entryAttributes['gradle_scope'] == 'jmh') {
39 // Allow test helper classes to be used in benchmarks from Eclipse
40 // and do not expose JMH dependencies to the main source code.
41 entry.entryAttributes['test'] = true
42 } else {
43 // Workaround based on
44 // https://discuss.gradle.org/t/gradle-used-by-scope-not-correctly-generated-when-the-java-test-fixtures-plugin-is-used/39935/2
45 def usedBy = new LinkedHashSet(
46 Arrays.asList((entry.entryAttributes['gradle_used_by_scope'] ?: '').split(','))
47 )
48 if (['main', 'test', 'testFixtures'].any { e -> usedBy.contains(e) }) {
49 // main and test sources are also used by jmh sources.
50 usedBy += 'jmh'
51 }
52 if (!usedBy.empty) {
53 entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',')
54 }
55 }
56 }
57 }
58}
59
60sonarqube.properties {
61 properties['sonar.tests'] += [
62 'src/jmh/java',
63 ]
64}
diff --git a/buildSrc/src/main/groovy/refinery-mwe2.gradle b/buildSrc/src/main/groovy/refinery-mwe2.gradle
deleted file mode 100644
index c7f15e82..00000000
--- a/buildSrc/src/main/groovy/refinery-mwe2.gradle
+++ /dev/null
@@ -1,16 +0,0 @@
1plugins {
2 id 'eclipse'
3 id 'refinery-java-conventions'
4}
5
6configurations {
7 mwe2 {
8 extendsFrom implementation
9 }
10}
11
12dependencies {
13 mwe2 libs.mwe2.launch
14}
15
16eclipse.classpath.plusConfigurations += [configurations.mwe2]
diff --git a/buildSrc/src/main/groovy/refinery-sonarqube.gradle b/buildSrc/src/main/groovy/refinery-sonarqube.gradle
deleted file mode 100644
index d84f4ada..00000000
--- a/buildSrc/src/main/groovy/refinery-sonarqube.gradle
+++ /dev/null
@@ -1,8 +0,0 @@
1plugins {
2 id 'org.sonarqube'
3}
4
5sonarqube.properties {
6 // Make sure `exclusions` is a List in every subproject
7 property 'sonar.exclusions', []
8}
diff --git a/buildSrc/src/main/groovy/refinery-xtext-conventions.gradle b/buildSrc/src/main/groovy/refinery-xtext-conventions.gradle
deleted file mode 100644
index 0c7c82f0..00000000
--- a/buildSrc/src/main/groovy/refinery-xtext-conventions.gradle
+++ /dev/null
@@ -1,21 +0,0 @@
1plugins {
2 id 'refinery-java-conventions'
3 id 'refinery-sonarqube'
4}
5
6sourceSets {
7 main {
8 java.srcDirs += ['src/main/xtext-gen']
9 resources.srcDirs += ['src/main/xtext-gen']
10 }
11}
12
13tasks.named('clean') {
14 delete 'src/main/xtext-gen'
15}
16
17sonarqube.properties {
18 properties['sonar.exclusions'] += [
19 'src/main/xtext-gen/**',
20 ]
21}
diff --git a/buildSrc/src/main/java/tools/refinery/gradle/utils/EclipseUtils.java b/buildSrc/src/main/java/tools/refinery/gradle/utils/EclipseUtils.java
new file mode 100644
index 00000000..ac7ba3f4
--- /dev/null
+++ b/buildSrc/src/main/java/tools/refinery/gradle/utils/EclipseUtils.java
@@ -0,0 +1,77 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle.utils;
7
8import groovy.lang.Closure;
9import org.gradle.api.Action;
10import org.gradle.plugins.ide.api.XmlFileContentMerger;
11import org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry;
12import org.gradle.plugins.ide.eclipse.model.Classpath;
13import org.gradle.plugins.ide.eclipse.model.EclipseModel;
14
15import java.util.LinkedHashSet;
16import java.util.List;
17import java.util.Set;
18import java.util.function.Consumer;
19
20public final class EclipseUtils {
21 private static final String GRADLE_USED_BY_SCOPE_ATTRIBUTE = "gradle_used_by_scope";
22 private static final String GRADLE_USED_BY_SCOPE_SEPARATOR = ",";
23
24 private EclipseUtils() {
25 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
26 }
27
28 public static void patchClasspathEntries(EclipseModel eclipseModel, Consumer<AbstractClasspathEntry> consumer) {
29 whenClasspathFileMerged(eclipseModel.getClasspath().getFile(),
30 classpath -> patchClasspathEntries(classpath, consumer));
31 }
32
33 public static void patchClasspathEntries(Classpath eclipseClasspath, Consumer<AbstractClasspathEntry> consumer) {
34 for (var entry : eclipseClasspath.getEntries()) {
35 if (entry instanceof AbstractClasspathEntry abstractClasspathEntry) {
36 consumer.accept(abstractClasspathEntry);
37 }
38 }
39 }
40
41 /**
42 * Avoids ambiguous call to ({@link XmlFileContentMerger#whenMerged(Closure)} versus
43 * {@link XmlFileContentMerger#whenMerged(Action)}) in Kotlin build scripts.
44 * <p>
45 * The {@code Closure} variant will use the build script itself as {@code this}, and Kotlin will consider any
46 * type ascription as a cast of {@code this} (instead of the argument of the {@code Action<?>}). This results in
47 * a mysterious {@link ClassCastException}, since the class generated from the build script doesn't extend from
48 * {@link Classpath}. Using this helper method selects the correct call and applies the cast properly.
49 *
50 * @param file The Eclipse classpath file.
51 * @param consumer The lambda to run on when the classpath file is merged.
52 */
53 public static void whenClasspathFileMerged(XmlFileContentMerger file, Consumer<Classpath> consumer) {
54 file.whenMerged(untypedClasspath -> {
55 var classpath = (Classpath) untypedClasspath;
56 consumer.accept(classpath);
57 });
58 }
59
60 public static void patchGradleUsedByScope(AbstractClasspathEntry entry, Consumer<Set<String>> consumer) {
61 var entryAttributes = entry.getEntryAttributes();
62 var usedByValue = entryAttributes.get(GRADLE_USED_BY_SCOPE_ATTRIBUTE);
63 Set<String> usedBySet;
64 if (usedByValue instanceof String usedByString) {
65 usedBySet = new LinkedHashSet<>(List.of(usedByString.split(GRADLE_USED_BY_SCOPE_SEPARATOR)));
66 } else {
67 usedBySet = new LinkedHashSet<>();
68 }
69 consumer.accept(usedBySet);
70 if (usedBySet.isEmpty()) {
71 entryAttributes.remove(GRADLE_USED_BY_SCOPE_ATTRIBUTE);
72 } else {
73 var newUsedByString = String.join(GRADLE_USED_BY_SCOPE_SEPARATOR, usedBySet);
74 entryAttributes.put(GRADLE_USED_BY_SCOPE_ATTRIBUTE, newUsedByString);
75 }
76 }
77}
diff --git a/buildSrc/src/main/java/tools/refinery/gradle/utils/SonarPropertiesUtils.java b/buildSrc/src/main/java/tools/refinery/gradle/utils/SonarPropertiesUtils.java
new file mode 100644
index 00000000..183cd56a
--- /dev/null
+++ b/buildSrc/src/main/java/tools/refinery/gradle/utils/SonarPropertiesUtils.java
@@ -0,0 +1,49 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle.utils;
7
8import java.util.ArrayList;
9import java.util.Collections;
10import java.util.Map;
11
12public final class SonarPropertiesUtils {
13 private SonarPropertiesUtils() {
14 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
15 }
16
17 /**
18 * Adds the entries to a Sonar property of list type.
19 * <p>
20 * According to the Sonar Gradle documentation for {@link org.sonarqube.gradle.SonarProperties}, property values
21 * are converted to Strings as follows:
22 * <ul>
23 * <li>{@code Iterable}s are recursively converted and joined into a comma-separated String.</li>
24 * <li>All other values are converted to Strings by calling their {@code toString()} method.</li>
25 * </ul>
26 * Therefore, we use {@link ArrayList} to retain lists entries, which will be recursively converted later.
27 *
28 * @param properties The sonar properties map returned by
29 * {@link org.sonarqube.gradle.SonarProperties#getProperties()}.
30 * @param propertyName The name of the property to append to.
31 * @param entries The entries to append.
32 */
33 public static void addToList(Map<String, Object> properties, String propertyName, String... entries) {
34 ArrayList<Object> newValue;
35 var currentValue = properties.get(propertyName);
36 if (currentValue instanceof ArrayList<?> currentList) {
37 @SuppressWarnings("unchecked")
38 var objectList = (ArrayList<Object>) currentList;
39 newValue = objectList;
40 } else if (currentValue == null) {
41 newValue = new ArrayList<>(entries.length);
42 } else {
43 newValue = new ArrayList<>(entries.length + 1);
44 newValue.add(currentValue);
45 }
46 Collections.addAll(newValue, entries);
47 properties.put(propertyName, newValue);
48 }
49}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts
new file mode 100644
index 00000000..8bab1d2b
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts
@@ -0,0 +1,43 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8import java.util.Properties
9
10plugins {
11 eclipse
12}
13
14// Workaround from https://github.com/gradle/gradle/issues/898#issuecomment-885765821
15val eclipseResourceEncoding by tasks.registering {
16 val outputFile = file(".settings/org.eclipse.core.resources.prefs")
17 val encoding = providers.systemProperty("file.encoding")
18
19 inputs.property("file.encoding", encoding)
20 outputs.file(outputFile)
21
22 doLast {
23 val eclipseEncodingProperties = Properties(2)
24 eclipseEncodingProperties["eclipse.preferences.version"] = "1"
25 eclipseEncodingProperties["encoding/<project>"] = encoding.get()
26 outputFile.outputStream().use { outputStream ->
27 eclipseEncodingProperties.store(outputStream, "generated by $name")
28 }
29 }
30}
31
32tasks.eclipse {
33 dependsOn(eclipseResourceEncoding)
34}
35
36eclipse.synchronizationTasks(eclipseResourceEncoding)
37
38tasks.register<Delete>("clobberEclipse") {
39 mustRunAfter(tasks.eclipse)
40 delete(".classpath")
41 delete(".project")
42 delete(".settings")
43}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts
new file mode 100644
index 00000000..f1f6d952
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-workspace.gradle.kts
@@ -0,0 +1,39 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8plugins {
9 id("tools.refinery.gradle.eclipse")
10 id("tools.refinery.gradle.internal.frontend-conventions")
11}
12
13tasks {
14 installNode {
15 dependsOn(rootProject.tasks.named("installNode"))
16 enabled = false
17 }
18
19 installYarnGlobally {
20 dependsOn(rootProject.tasks.named("installYarnGlobally"))
21 enabled = false
22 }
23
24 installYarn {
25 dependsOn(rootProject.tasks.named("installYarn"))
26 enabled = false
27 }
28
29 val rootInstallFrontend = rootProject.tasks.named("installFrontend")
30
31 rootInstallFrontend.configure {
32 inputs.file("$projectDir/package.json")
33 }
34
35 installFrontend {
36 dependsOn(rootInstallFrontend)
37 enabled = false
38 }
39}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-worktree.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-worktree.gradle.kts
new file mode 100644
index 00000000..609e6f24
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/frontend-worktree.gradle.kts
@@ -0,0 +1,92 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8import java.io.FileInputStream
9import java.io.FileNotFoundException
10import java.io.FileOutputStream
11import java.util.Properties
12
13plugins {
14 id("tools.refinery.gradle.internal.frontend-conventions")
15}
16
17val yarn1Version = providers.gradleProperty("frontend.yarn1Version")
18
19frontend {
20 yarnGlobalInstallScript.set(yarn1Version.map { version -> "install -g yarn@$version" })
21 yarnInstallScript.set(frontend.yarnVersion.map { version -> "set version $version --only-if-needed" })
22 installScript.set(provider {
23 if (project.hasProperty("ci")) "install --immutable --inline-builds" else "install"
24 })
25}
26
27val frontendPropertiesFile: Provider<String> = frontend.nodeInstallDirectory.map { dir -> "$dir/frontend.properties" }
28
29fun readFrontendProperties(): Properties {
30 val props = Properties()
31 try {
32 FileInputStream(frontendPropertiesFile.get()).use { inputStream ->
33 props.load(inputStream)
34 }
35 } catch (ignored: FileNotFoundException) {
36 // Ignore missing file.
37 }
38 return props
39}
40
41fun getFrontendProperty(propertyName: String): String? {
42 val props = readFrontendProperties()
43 return props[propertyName]?.toString()
44}
45
46fun putFrontedProperty(propertyName: String, propertyValue: String) {
47 val props = readFrontendProperties()
48 props[propertyName] = propertyValue
49 FileOutputStream(frontendPropertiesFile.get()).use { outputStream ->
50 props.store(outputStream, "generated by refinery-frontend-worktree")
51 }
52}
53
54tasks {
55 installNode {
56 onlyIf {
57 getFrontendProperty("installedNodeVersion") != frontend.nodeVersion.get()
58 }
59 doLast {
60 putFrontedProperty("installedNodeVersion", frontend.nodeVersion.get())
61 }
62 }
63
64 installYarnGlobally {
65 onlyIf {
66 getFrontendProperty("installedYarn1Version") != yarn1Version.get()
67 }
68 doLast {
69 putFrontedProperty("installedYarn1Version", yarn1Version.get())
70 }
71 outputs.dir(frontend.nodeInstallDirectory.map { dir -> "$dir/lib/node_modules/yarn" })
72 }
73
74 installYarn {
75 outputs.file(frontend.yarnVersion.map { version -> ".yarn/releases/yarn-$version.cjs" })
76 }
77
78 installFrontend {
79 inputs.files("package.json", "yarn.lock")
80 outputs.files(".pnp.cjs", ".pnp.loader.mjs")
81 }
82
83 register("clobberFrontend", Delete::class) {
84 delete(frontend.nodeInstallDirectory)
85 delete(".yarn/cache")
86 delete(".yarn/install-state.gz")
87 delete(".yarn/sdks")
88 delete(".yarn/unplugged")
89 delete(".pnp.cjs")
90 delete(".pnp.loader.mjs")
91 }
92}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/internal/frontend-conventions.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/internal/frontend-conventions.gradle.kts
new file mode 100644
index 00000000..bd5d0197
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/internal/frontend-conventions.gradle.kts
@@ -0,0 +1,22 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle.internal
7
8plugins {
9 id("org.siouan.frontend-jdk11")
10}
11
12frontend {
13 nodeVersion.set(providers.gradleProperty("frontend.nodeVersion"))
14 nodeInstallDirectory.set(file("$rootDir/.node"))
15 yarnEnabled.set(true)
16 yarnVersion.set(providers.gradleProperty("frontend.yarnVersion"))
17}
18
19tasks.enableYarnBerry {
20 // There is no need to enable berry manually, because berry files are already committed to the repo.
21 enabled = false
22}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/internal/java-conventions.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/internal/java-conventions.gradle.kts
new file mode 100644
index 00000000..7c7cbabd
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/internal/java-conventions.gradle.kts
@@ -0,0 +1,102 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle.internal
7
8import org.gradle.accessors.dm.LibrariesForLibs
9import org.gradle.plugins.ide.eclipse.model.ProjectDependency
10import tools.refinery.gradle.utils.EclipseUtils
11
12plugins {
13 jacoco
14 java
15 id("tools.refinery.gradle.eclipse")
16}
17
18repositories {
19 mavenCentral()
20 maven {
21 url = uri("https://repo.eclipse.org/content/groups/releases/")
22 }
23}
24
25// Use log4j-over-slf4j instead of log4j 1.x in the tests.
26configurations.testRuntimeClasspath {
27 exclude(group = "log4j", module = "log4j")
28}
29
30val libs = the<LibrariesForLibs>()
31
32dependencies {
33 compileOnly(libs.jetbrainsAnnotations)
34 testCompileOnly(libs.jetbrainsAnnotations)
35 testImplementation(libs.hamcrest)
36 testImplementation(libs.junit.api)
37 testRuntimeOnly(libs.junit.engine)
38 testImplementation(libs.junit.params)
39 testImplementation(libs.mockito.core)
40 testImplementation(libs.mockito.junit)
41 testImplementation(libs.slf4j.simple)
42 testImplementation(libs.slf4j.log4j)
43}
44
45java.toolchain {
46 languageVersion.set(JavaLanguageVersion.of(17))
47}
48
49tasks {
50 test {
51 useJUnitPlatform {
52 excludeTags("slow")
53 }
54 finalizedBy(tasks.jacocoTestReport)
55 }
56
57 jacocoTestReport {
58 dependsOn(tasks.test)
59 reports {
60 xml.required.set(true)
61 }
62 }
63
64 jar {
65 manifest {
66 attributes(
67 "Bundle-SymbolicName" to "${project.group}.${project.name}",
68 "Bundle-Version" to project.version
69 )
70 }
71 }
72
73 val generateEclipseSourceFolders by tasks.registering
74
75 register("prepareEclipse") {
76 dependsOn(generateEclipseSourceFolders)
77 dependsOn(tasks.named("eclipseJdt"))
78 }
79
80 eclipseClasspath {
81 dependsOn(generateEclipseSourceFolders)
82 }
83}
84
85eclipse {
86 EclipseUtils.patchClasspathEntries(this) { entry ->
87 if (entry.path.endsWith("-gen")) {
88 entry.entryAttributes["ignore_optional_problems"] = true
89 }
90 // If a project has a main dependency on a project and a test dependency on the testFixtures of a project,
91 // it will be erroneously added as a test-only dependency to Eclipse. As a workaround, we add all project
92 // dependencies as main dependencies (we do not deliberately use test-only project dependencies).
93 if (entry is ProjectDependency) {
94 entry.entryAttributes.remove("test")
95 }
96 }
97
98 jdt.file.withProperties {
99 // Allow @SuppressWarnings to suppress SonarLint warnings
100 this["org.eclipse.jdt.core.compiler.problem.unhandledWarningToken"] = "ignore"
101 }
102}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/java-application.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/java-application.gradle.kts
new file mode 100644
index 00000000..0924311b
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/java-application.gradle.kts
@@ -0,0 +1,32 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8import org.gradle.accessors.dm.LibrariesForLibs
9
10plugins {
11 application
12 id("com.github.johnrengelman.shadow")
13 id("tools.refinery.gradle.internal.java-conventions")
14}
15
16// Use log4j-over-slf4j instead of log4j 1.x when running the application.
17configurations.runtimeClasspath {
18 exclude(group = "log4j", module = "log4j")
19}
20
21val libs = the<LibrariesForLibs>()
22
23dependencies {
24 implementation(libs.slf4j.simple)
25 implementation(libs.slf4j.log4j)
26}
27
28for (taskName in listOf("distTar", "distZip", "shadowDistTar", "shadowDistZip")) {
29 tasks.named(taskName) {
30 enabled = false
31 }
32}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/java-library.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/java-library.gradle.kts
new file mode 100644
index 00000000..3aff3833
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/java-library.gradle.kts
@@ -0,0 +1,11 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8plugins {
9 `java-library`
10 id("tools.refinery.gradle.internal.java-conventions")
11}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/java-test-fixtures.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/java-test-fixtures.gradle.kts
new file mode 100644
index 00000000..a28484d4
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/java-test-fixtures.gradle.kts
@@ -0,0 +1,36 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8import org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry
9import tools.refinery.gradle.utils.EclipseUtils
10
11plugins {
12 `java-test-fixtures`
13 id("tools.refinery.gradle.internal.java-conventions")
14}
15
16eclipse.classpath {
17 containsTestFixtures.set(true)
18
19 EclipseUtils.whenClasspathFileMerged(file) { eclipseClasspath ->
20 val hasTest = eclipseClasspath.entries.any { entry ->
21 entry is AbstractClasspathEntry && entry.entryAttributes["gradle_scope"] == "test"
22 }
23 EclipseUtils.patchClasspathEntries(eclipseClasspath) { entry ->
24 // Workaround https://github.com/gradle/gradle/issues/11845 based on
25 // https://discuss.gradle.org/t/gradle-used-by-scope-not-correctly-generated-when-the-java-test-fixtures-plugin-is-used/39935/2
26 EclipseUtils.patchGradleUsedByScope(entry) { usedBy ->
27 if (usedBy.contains("main")) {
28 usedBy += "testFixtures"
29 }
30 if (hasTest && usedBy.contains("testFixtures")) {
31 usedBy += "test"
32 }
33 }
34 }
35 }
36}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/jmh.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/jmh.gradle.kts
new file mode 100644
index 00000000..6fb8fbac
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/jmh.gradle.kts
@@ -0,0 +1,66 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8import org.gradle.accessors.dm.LibrariesForLibs
9import tools.refinery.gradle.utils.EclipseUtils
10import tools.refinery.gradle.utils.SonarPropertiesUtils
11
12plugins {
13 id("tools.refinery.gradle.internal.java-conventions")
14 id("tools.refinery.gradle.sonarqube")
15}
16
17val sourceSets = the<SourceSetContainer>()
18
19val jmh: SourceSet by sourceSets.creating {
20 compileClasspath += sourceSets.main.get().output
21 runtimeClasspath += sourceSets.main.get().output
22 // Allow using test classes in benchmarks for now.
23 compileClasspath += sourceSets.test.get().output
24 runtimeClasspath += sourceSets.test.get().output
25}
26
27val jmhImplementation: Configuration by configurations.getting {
28 extendsFrom(configurations.implementation.get(), configurations.testImplementation.get())
29}
30
31val jmhAnnotationProcessor: Configuration by configurations.getting
32
33configurations["jmhRuntimeOnly"].extendsFrom(configurations.runtimeOnly.get(), configurations.testRuntimeOnly.get())
34
35val libs = the<LibrariesForLibs>()
36
37dependencies {
38 jmhImplementation(libs.jmh.core)
39 jmhAnnotationProcessor(libs.jmh.annprocess)
40}
41
42tasks.register<JavaExec>("jmh") {
43 dependsOn(tasks.named("jmhClasses"))
44 mainClass.set("org.openjdk.jmh.Main")
45 classpath = jmh.runtimeClasspath
46}
47
48EclipseUtils.patchClasspathEntries(eclipse) { entry ->
49 // Workaround from https://github.com/gradle/gradle/issues/4802#issuecomment-407902081
50 if (entry.entryAttributes["gradle_scope"] == "jmh") {
51 // Allow test helper classes to be used in benchmarks from Eclipse
52 // and do not expose JMH dependencies to the main source code.
53 entry.entryAttributes["test"] = true
54 } else {
55 EclipseUtils.patchGradleUsedByScope(entry) { usedBy ->
56 if (listOf("main", "test", "testFixtures").any { e -> usedBy.contains(e) }) {
57 // main and test sources are also used by jmh sources.
58 usedBy += "jmh"
59 }
60 }
61 }
62}
63
64sonarqube.properties {
65 SonarPropertiesUtils.addToList(properties, "sonar.tests", "src/jmh/java")
66}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/mwe2.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/mwe2.gradle.kts
new file mode 100644
index 00000000..f4381434
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/mwe2.gradle.kts
@@ -0,0 +1,26 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8import org.gradle.accessors.dm.LibrariesForLibs
9
10plugins {
11 id("tools.refinery.gradle.internal.java-conventions")
12}
13
14val mwe2: Configuration by configurations.creating {
15 isCanBeConsumed = false
16 isCanBeResolved = true
17 extendsFrom(configurations.implementation.get())
18}
19
20val libs = the<LibrariesForLibs>()
21
22dependencies {
23 mwe2(libs.mwe2.launch)
24}
25
26eclipse.classpath.plusConfigurations += mwe2
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/sonarqube.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/sonarqube.gradle.kts
new file mode 100644
index 00000000..93406492
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/sonarqube.gradle.kts
@@ -0,0 +1,10 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8plugins {
9 id("org.sonarqube")
10}
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/xtext-generated.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/xtext-generated.gradle.kts
new file mode 100644
index 00000000..6cb1d7b5
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/xtext-generated.gradle.kts
@@ -0,0 +1,49 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.gradle
7
8import tools.refinery.gradle.utils.SonarPropertiesUtils
9
10plugins {
11 id("tools.refinery.gradle.internal.java-conventions")
12 id("tools.refinery.gradle.sonarqube")
13}
14
15val xtextGenPath = "src/main/xtext-gen"
16
17val xtextGenerated: Configuration by configurations.creating {
18 isCanBeConsumed = false
19 isCanBeResolved = true
20}
21
22sourceSets.main {
23 java.srcDir(xtextGenPath)
24 resources.srcDir(xtextGenPath)
25}
26
27tasks {
28 // Based on the idea from https://stackoverflow.com/a/57788355 to safely consume generated sources in sibling
29 // projects.
30 val syncXtextGeneratedSources by tasks.creating(Sync::class) {
31 from(xtextGenerated)
32 into(xtextGenPath)
33 }
34
35 for (taskName in listOf("compileJava", "processResources", "generateEclipseSourceFolders")) {
36 tasks.named(taskName) {
37 dependsOn(syncXtextGeneratedSources)
38 }
39 }
40
41 clean {
42 delete(xtextGenPath)
43 }
44}
45
46
47sonarqube.properties {
48 SonarPropertiesUtils.addToList(properties, "sonar.exclusions", "$xtextGenPath/**")
49}
diff --git a/gradle.properties b/gradle.properties
index 8faaa0eb..535c14df 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,8 +1,15 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2#
3# SPDX-License-Identifier: EPL-2.0
4
1file.encoding=UTF-8 5file.encoding=UTF-8
2frontend.nodeVersion=18.15.0 6frontend.nodeVersion=18.16.0
3frontend.yarnVersion=4.0.0-rc.42 7frontend.yarnVersion=4.0.0-rc.45
4frontend.yarn1Version=1.22.19 8frontend.yarn1Version=1.22.19
5group=tools.refinery 9group=tools.refinery
10# Set to true once tools.refinery.gradle.frontend-worktree supports the cache.
11org.gradle.configuration-cache=false
12org.gradle.parallel=true
6systemProp.sonar.projectKey=graphs4value_refinery 13systemProp.sonar.projectKey=graphs4value_refinery
7systemProp.sonar.organization=graphs4value 14systemProp.sonar.organization=graphs4value
8systemProp.sonar.host.url=https://sonarcloud.io 15systemProp.sonar.host.url=https://sonarcloud.io
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index a797905b..c21d2718 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,27 +1,33 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2#
3# SPDX-License-Identifier: EPL-2.0
4
1[versions] 5[versions]
2eclipseCollections = "12.0.0.M1" 6eclipseCollections = "12.0.0.M1"
3jetty = "12.0.0.beta0" 7ecore = "2.34.0"
8jetty = "12.0.0.beta1"
4jmh = "1.36" 9jmh = "1.36"
5junit = "5.9.2" 10junit = "5.10.0-M1"
6mockito = "5.2.0" 11mockito = "5.4.0"
7mwe2 = "2.14.0" 12mwe2 = "2.15.0.M0"
8slf4j = "2.0.7" 13slf4j = "2.0.7"
9xtext = "2.30.0" 14xtext = "2.31.0"
10 15
11[libraries] 16[libraries]
12jetbrainsAnnotations = { group = "org.jetbrains", name = "annotations", version = "24.0.1"} 17jetbrainsAnnotations = { group = "org.jetbrains", name = "annotations", version = "24.0.1" }
13eclipseCollections = { group = "org.eclipse.collections", name = "eclipse-collections", version.ref = "eclipseCollections" } 18eclipseCollections = { group = "org.eclipse.collections", name = "eclipse-collections", version.ref = "eclipseCollections" }
14eclipseCollections-api = { group = "org.eclipse.collections", name = "eclipse-collections-api", version.ref = "eclipseCollections" } 19eclipseCollections-api = { group = "org.eclipse.collections", name = "eclipse-collections-api", version.ref = "eclipseCollections" }
15ecore = { group = "org.eclipse.emf", name = "org.eclipse.emf.ecore", version = "2.33.0" } 20ecore = { group = "org.eclipse.emf", name = "org.eclipse.emf.ecore", version.ref = "ecore" }
16ecore-xmi = { group = "org.eclipse.emf", name = "org.eclipse.emf.ecore.xmi", version = "2.18.0" } 21ecore-xmi = { group = "org.eclipse.emf", name = "org.eclipse.emf.ecore.xmi", version = "2.18.0" }
17ecore-codegen = { group = "org.eclipse.emf", name = "org.eclipse.emf.codegen.ecore", version = "2.33.0" } 22ecore-codegen = { group = "org.eclipse.emf", name = "org.eclipse.emf.codegen.ecore", version.ref = "ecore" }
18gradlePlugin-frontend = { group = "org.siouan", name = "frontend-gradle-plugin-jdk11", version = "6.0.0" } 23gradlePlugin-frontend = { group = "org.siouan", name = "frontend-gradle-plugin-jdk11", version = "6.0.0" }
19gradlePlugin-shadow = { group = "com.github.johnrengelman", name = "shadow", version = "8.1.1" } 24gradlePlugin-shadow = { group = "com.github.johnrengelman", name = "shadow", version = "8.1.1" }
20gradlePlugin-sonarqube = { group = "org.sonarsource.scanner.gradle", name = "sonarqube-gradle-plugin", version = "4.0.0.2929" } 25gradlePlugin-sonarqube = { group = "org.sonarsource.scanner.gradle", name = "sonarqube-gradle-plugin", version = "4.2.1.3168" }
21hamcrest = { group = "org.hamcrest", name = "hamcrest", version = "2.2" } 26hamcrest = { group = "org.hamcrest", name = "hamcrest", version = "2.2" }
22jetty-server = { group = "org.eclipse.jetty", name = "jetty-server", version.ref = "jetty" } 27jetty-server = { group = "org.eclipse.jetty", name = "jetty-server", version.ref = "jetty" }
23jetty-servlet = { group = "org.eclipse.jetty.ee10", name = "jetty-ee10-servlet", version.ref = "jetty" } 28jetty-servlet = { group = "org.eclipse.jetty.ee10", name = "jetty-ee10-servlet", version.ref = "jetty" }
24jetty-websocket-client = { group = "org.eclipse.jetty.ee10.websocket", name = "jetty-ee10-websocket-jetty-client", version.ref = "jetty" } 29jetty-websocket-api = { group = "org.eclipse.jetty.websocket", name = "jetty-websocket-jetty-api", version.ref = "jetty" }
30jetty-websocket-client = { group = "org.eclipse.jetty.websocket", name = "jetty-websocket-jetty-client", version.ref = "jetty" }
25jetty-websocket-server = { group = "org.eclipse.jetty.ee10.websocket", name = "jetty-ee10-websocket-jetty-server", version.ref = "jetty" } 31jetty-websocket-server = { group = "org.eclipse.jetty.ee10.websocket", name = "jetty-ee10-websocket-jetty-server", version.ref = "jetty" }
26jmh-core = { group = "org.openjdk.jmh", name = "jmh-core", version.ref = "jmh" } 32jmh-core = { group = "org.openjdk.jmh", name = "jmh-core", version.ref = "jmh" }
27jmh-annprocess = { group = "org.openjdk.jmh", name = "jmh-generator-annprocess", version.ref = "jmh" } 33jmh-annprocess = { group = "org.openjdk.jmh", name = "jmh-generator-annprocess", version.ref = "jmh" }
@@ -30,7 +36,7 @@ junit-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", ver
30junit-params = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" } 36junit-params = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
31mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" } 37mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" }
32mockito-junit = { group = "org.mockito", name = "mockito-junit-jupiter", version.ref = "mockito" } 38mockito-junit = { group = "org.mockito", name = "mockito-junit-jupiter", version.ref = "mockito" }
33mwe-utils = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe.utils", version = "1.8.0" } 39mwe-utils = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe.utils", version = "1.9.0.M0" }
34mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", version.ref = "mwe2" } 40mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", version.ref = "mwe2" }
35mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } 41mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" }
36slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" } 42slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" }
@@ -48,4 +54,4 @@ xtext-xbase = { group = "org.eclipse.xtext", name = "org.eclipse.xtext.xbase", v
48xtext-xbase-ide = { group = "org.eclipse.xtext", name = "org.eclipse.xtext.xbase.ide", version.ref = "xtext" } 54xtext-xbase-ide = { group = "org.eclipse.xtext", name = "org.eclipse.xtext.xbase.ide", version.ref = "xtext" }
49 55
50[plugins] 56[plugins]
51versions = { id = "com.github.ben-manes.versions", version = "0.46.0" } 57versions = { id = "com.github.ben-manes.versions", version = "0.47.0" }
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index ccebba77..c1962a79 100644
--- a/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.jar.license b/gradle/wrapper/gradle-wrapper.jar.license
new file mode 100644
index 00000000..13cd9906
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.jar.license
@@ -0,0 +1,3 @@
1Copyright © 2015-2021 the original authors.
2
3SPDX-License-Identifier: Apache-2.0
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index bdc9a83b..c2929f89 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
1distributionBase=GRADLE_USER_HOME 1distributionBase=GRADLE_USER_HOME
2distributionPath=wrapper/dists 2distributionPath=wrapper/dists
3distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip 3distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-rc-2-bin.zip
4networkTimeout=10000 4networkTimeout=10000
5zipStoreBase=GRADLE_USER_HOME 5zipStoreBase=GRADLE_USER_HOME
6zipStorePath=wrapper/dists 6zipStorePath=wrapper/dists
diff --git a/gradle/wrapper/gradle-wrapper.properties.license b/gradle/wrapper/gradle-wrapper.properties.license
new file mode 100644
index 00000000..13cd9906
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties.license
@@ -0,0 +1,3 @@
1Copyright © 2015-2021 the original authors.
2
3SPDX-License-Identifier: Apache-2.0
diff --git a/gradlew b/gradlew
index 79a61d42..aeb74cbb 100755
--- a/gradlew
+++ b/gradlew
@@ -85,9 +85,6 @@ done
85APP_BASE_NAME=${0##*/} 85APP_BASE_NAME=${0##*/}
86APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit 86APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
87 87
88# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
90
91# Use the maximum available, or set MAX_FD != -1 to use that value. 88# Use the maximum available, or set MAX_FD != -1 to use that value.
92MAX_FD=maximum 89MAX_FD=maximum
93 90
@@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then
197 done 194 done
198fi 195fi
199 196
197
198# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
199DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
200
200# Collect all arguments for the java command; 201# Collect all arguments for the java command;
201# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of 202# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
202# shell script including quotes and variable substitutions, so put them in 203# shell script including quotes and variable substitutions, so put them in
diff --git a/gradlew.bat.license b/gradlew.bat.license
new file mode 100644
index 00000000..0bcf26f6
--- /dev/null
+++ b/gradlew.bat.license
@@ -0,0 +1,3 @@
1Copyright 2015 the original author or authors.
2
3SPDX-License-Identifier: Apache-2.0
diff --git a/gradlew.license b/gradlew.license
new file mode 100644
index 00000000..13cd9906
--- /dev/null
+++ b/gradlew.license
@@ -0,0 +1,3 @@
1Copyright © 2015-2021 the original authors.
2
3SPDX-License-Identifier: Apache-2.0
diff --git a/package.json b/package.json
index e3443202..80ddacd3 100644
--- a/package.json
+++ b/package.json
@@ -1,16 +1,31 @@
1{ 1{
2 "//": [
3 "SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>",
4 "",
5 "SPDX-License-Identifier: EPL-2.0"
6 ],
2 "name": "@refinery/root", 7 "name": "@refinery/root",
3 "version": "0.0.0", 8 "version": "0.0.0",
4 "private": true, 9 "private": true,
10 "repository": {
11 "type": "git",
12 "url": "git+https://github.com/graphs4value/refinery.git"
13 },
14 "author": "The Refinery Authors <https://refinery.tools/>",
15 "license": "EPL-2.0",
16 "bugs": {
17 "url": "https://github.com/graphs4value/refinery/issues"
18 },
19 "homepage": "https://refinery.tools",
5 "workspaces": [ 20 "workspaces": [
6 "subprojects/frontend" 21 "subprojects/frontend"
7 ], 22 ],
8 "scripts": { 23 "scripts": {
9 "frontend": "yarn workspace @refinery/frontend" 24 "frontend": "yarn workspace @refinery/frontend"
10 }, 25 },
11 "packageManager": "yarn@4.0.0-rc.42", 26 "packageManager": "yarn@4.0.0-rc.45",
12 "devDependencies": { 27 "devDependencies": {
13 "eslint": "^8.37.0", 28 "eslint": "^8.43.0",
14 "typescript": "5.0.3" 29 "typescript": "5.1.3"
15 } 30 }
16} 31}
diff --git a/settings.gradle b/settings.gradle
deleted file mode 100644
index 81bcb53b..00000000
--- a/settings.gradle
+++ /dev/null
@@ -1,18 +0,0 @@
1rootProject.name = 'refinery'
2
3include 'frontend'
4include 'language'
5include 'language-ide'
6include 'language-model'
7include 'language-semantics'
8include 'language-web'
9include 'store'
10include 'store-query'
11include 'store-query-viatra'
12include 'store-reasoning'
13
14for (project in rootProject.children) {
15 def projectName = project.name
16 project.name = "${rootProject.name}-${projectName}"
17 project.projectDir = file("subprojects/${projectName}")
18}
diff --git a/settings.gradle.kts b/settings.gradle.kts
new file mode 100644
index 00000000..2b1c179d
--- /dev/null
+++ b/settings.gradle.kts
@@ -0,0 +1,26 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7rootProject.name = "refinery"
8
9include(
10 "frontend",
11 "language",
12 "language-ide",
13 "language-model",
14 "language-semantics",
15 "language-web",
16 "store",
17 "store-query",
18 "store-query-viatra",
19 "store-reasoning",
20)
21
22for (project in rootProject.children) {
23 val projectName = project.name
24 project.name = "${rootProject.name}-$projectName"
25 project.projectDir = file("subprojects/$projectName")
26}
diff --git a/subprojects/frontend/.eslintrc.cjs b/subprojects/frontend/.eslintrc.cjs
index 8a7b474a..25b86a83 100644
--- a/subprojects/frontend/.eslintrc.cjs
+++ b/subprojects/frontend/.eslintrc.cjs
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1const path = require('node:path'); 7const path = require('node:path');
2 8
3// Allow the Codium ESLint plugin to find `tsconfig.json` from the repository root. 9// Allow the Codium ESLint plugin to find `tsconfig.json` from the repository root.
@@ -43,6 +49,15 @@ module.exports = {
43 // In typescript, some class methods implementing an inderface do not use `this`: 49 // In typescript, some class methods implementing an inderface do not use `this`:
44 // https://github.com/typescript-eslint/typescript-eslint/issues/1103 50 // https://github.com/typescript-eslint/typescript-eslint/issues/1103
45 'class-methods-use-this': 'off', 51 'class-methods-use-this': 'off',
52 // Disable rules with a high performance cost.
53 // See https://typescript-eslint.io/linting/troubleshooting/performance-troubleshooting/
54 'import/default': 'off',
55 'import/extensions': 'off',
56 'import/named': 'off',
57 'import/namespace': 'off',
58 'import/no-named-as-default': 'off',
59 'import/no-named-as-default-member': 'off',
60 '@typescript-eslint/indent': 'off',
46 // Make sure every import can be resolved by `eslint-import-resolver-typescript`. 61 // Make sure every import can be resolved by `eslint-import-resolver-typescript`.
47 'import/no-unresolved': 'error', 62 'import/no-unresolved': 'error',
48 // Organize imports automatically. 63 // Organize imports automatically.
@@ -90,6 +105,7 @@ module.exports = {
90 files: [ 105 files: [
91 '.eslintrc.cjs', 106 '.eslintrc.cjs',
92 'config/*.ts', 107 'config/*.ts',
108 'config/*.cjs',
93 'prettier.config.cjs', 109 'prettier.config.cjs',
94 'vite.config.ts', 110 'vite.config.ts',
95 ], 111 ],
@@ -103,6 +119,8 @@ module.exports = {
103 'error', 119 'error',
104 { devDependencies: true }, 120 { devDependencies: true },
105 ], 121 ],
122 // Allow writing to the console in ad-hoc scripts.
123 'no-console': 'off',
106 // Access to the environment in configuration files. 124 // Access to the environment in configuration files.
107 'no-process-env': 'off', 125 'no-process-env': 'off',
108 }, 126 },
diff --git a/subprojects/frontend/assets-src/favicon.svg.license b/subprojects/frontend/assets-src/favicon.svg.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/assets-src/favicon.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/assets-src/icon.svg.license b/subprojects/frontend/assets-src/icon.svg.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/assets-src/icon.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/assets-src/mask-icon.svg.license b/subprojects/frontend/assets-src/mask-icon.svg.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/assets-src/mask-icon.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/build.gradle b/subprojects/frontend/build.gradle
deleted file mode 100644
index 4cc2c5d7..00000000
--- a/subprojects/frontend/build.gradle
+++ /dev/null
@@ -1,131 +0,0 @@
1plugins {
2 id 'refinery-frontend-workspace'
3 id 'refinery-sonarqube'
4}
5
6import org.siouan.frontendgradleplugin.infrastructure.gradle.RunYarn
7
8def viteOutputDir = "${buildDir}/vite"
9def productionResources = file("${viteOutputDir}/production")
10
11frontend {
12 assembleScript = 'run build'
13}
14
15configurations {
16 productionAssets {
17 canBeConsumed = true
18 canBeResolved = false
19 }
20}
21
22def installFrontend = tasks.named('installFrontend')
23
24def sourcesWithoutTypegen = fileTree('src') {
25 exclude '**/*.typegen.ts'
26}
27
28def assembleFrontend = tasks.named('assembleFrontend')
29assembleFrontend.configure {
30 dependsOn generateXStateTypes
31 inputs.dir 'public'
32 inputs.files sourcesWithoutTypegen
33 inputs.file 'index.html'
34 inputs.files('package.json', 'tsconfig.json', 'tsconfig.base.json', 'vite.config.ts')
35 inputs.file rootProject.file('yarn.lock')
36 outputs.dir productionResources
37}
38
39artifacts {
40 productionAssets(productionResources) {
41 builtBy assembleFrontend
42 }
43}
44
45def generateXStateTypes = tasks.register('generateXStateTypes', RunYarn) {
46 dependsOn installFrontend
47 inputs.files sourcesWithoutTypegen
48 inputs.file 'package.json'
49 inputs.file rootProject.file('yarn.lock')
50 outputs.dir 'src'
51 script = 'run typegen'
52 description = 'Generate TypeScript typings for XState state machines.'
53}
54
55def typecheckFrontend = tasks.register('typecheckFrontend', RunYarn) {
56 dependsOn installFrontend
57 dependsOn generateXStateTypes
58 inputs.dir 'src'
59 inputs.dir 'types'
60 inputs.files('package.json', 'tsconfig.json', 'tsconfig.base.json', 'tsconfig.node.json')
61 inputs.file rootProject.file('yarn.lock')
62 outputs.dir "${buildDir}/typescript"
63 script = 'run typecheck'
64 group = 'verification'
65 description = 'Check for TypeScript type errors.'
66}
67
68def lintFrontend = tasks.register('lintFrontend', RunYarn) {
69 dependsOn installFrontend
70 dependsOn generateXStateTypes
71 dependsOn typecheckFrontend
72 inputs.dir 'src'
73 inputs.dir 'types'
74 inputs.files('.eslintrc.cjs', 'prettier.config.cjs')
75 inputs.files('package.json', 'tsconfig.json', 'tsconfig.base.json', 'tsconfig.node.json')
76 inputs.file rootProject.file('yarn.lock')
77 if (project.hasProperty('ci')) {
78 outputs.file "${buildDir}/eslint.json"
79 script = 'run lint:ci'
80 } else {
81 script = 'run lint'
82 }
83 group = 'verification'
84 description = 'Check for TypeScript lint errors and warnings.'
85}
86
87def prettier = tasks.register('fixFrontend', RunYarn) {
88 dependsOn installFrontend
89 dependsOn generateXStateTypes
90 dependsOn typecheckFrontend
91 inputs.dir 'src'
92 inputs.dir 'types'
93 inputs.files('.eslintrc.cjs', 'prettier.config.cjs')
94 inputs.files('package.json', 'tsconfig.json', 'tsconfig.base.json', 'tsconfig.node.json')
95 inputs.file rootProject.file('yarn.lock')
96 script = 'run lint:fix'
97 group = 'verification'
98 description = 'Fix TypeScript lint errors and warnings.'
99}
100
101tasks.named('check') {
102 dependsOn(typecheckFrontend)
103 dependsOn(lintFrontend)
104}
105
106tasks.register('serveFrontend', RunYarn) {
107 dependsOn installFrontend
108 dependsOn generateXStateTypes
109 inputs.dir 'public'
110 inputs.files sourcesWithoutTypegen
111 inputs.file 'index.html'
112 inputs.files('package.json', 'tsconfig.json', 'tsconfig.base.json', 'vite.config.ts')
113 inputs.file rootProject.file('yarn.lock')
114 outputs.dir "${viteOutputDir}/development"
115 script = 'run serve'
116 group = 'run'
117 description = 'Start a Vite dev server with hot module replacement.'
118}
119
120tasks.named('clean') {
121 delete 'dev-dist'
122 delete fileTree('src') {
123 include '**/*.typegen.ts'
124 }
125}
126
127sonarqube.properties {
128 properties['sonar.sources'] = 'src'
129 property 'sonar.nodejs.executable', "${frontend.nodeInstallDirectory.get()}/bin/node"
130 property 'sonar.eslint.reportPaths', "${buildDir}/eslint.json"
131}
diff --git a/subprojects/frontend/build.gradle.kts b/subprojects/frontend/build.gradle.kts
new file mode 100644
index 00000000..d0839371
--- /dev/null
+++ b/subprojects/frontend/build.gradle.kts
@@ -0,0 +1,144 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import org.siouan.frontendgradleplugin.infrastructure.gradle.RunYarn
8import tools.refinery.gradle.utils.SonarPropertiesUtils
9
10plugins {
11 id("tools.refinery.gradle.frontend-workspace")
12 id("tools.refinery.gradle.sonarqube")
13}
14
15frontend {
16 assembleScript.set("run build")
17}
18
19val viteOutputDir = "$buildDir/vite"
20
21val productionResources = file("$viteOutputDir/production")
22
23val productionAssets: Configuration by configurations.creating {
24 isCanBeConsumed = true
25 isCanBeResolved = false
26}
27
28val sourcesWithoutTypes = fileTree("src") {
29 exclude("**/*.typegen.ts")
30}
31
32val sourcesWithTypes: FileCollection = fileTree("src") + fileTree("types")
33
34val buildScripts: FileCollection = fileTree("config") + files(
35 ".eslintrc.cjs",
36 "prettier.config.cjs",
37 "vite.config.ts",
38)
39
40val installationState = files(
41 rootProject.file("yarn.lock"),
42 rootProject.file("package.json"),
43 "package.json",
44)
45
46val sharedConfigFiles: FileCollection = installationState + files(
47 "tsconfig.json",
48 "tsconfig.base.json",
49 "tsconfig.node.json",
50 "tsconfig.shared.json",
51)
52
53val assembleConfigFiles = sharedConfigFiles + file("vite.config.ts") + fileTree("config") {
54 include("**/*.ts")
55}
56
57val assembleSources = sourcesWithTypes + fileTree("public") + file("index.html")
58
59val assembleFiles = assembleSources + assembleConfigFiles
60
61val lintingFiles: FileCollection = sourcesWithTypes + buildScripts + sharedConfigFiles
62
63tasks {
64 val generateXStateTypes by registering(RunYarn::class) {
65 dependsOn(installFrontend)
66 inputs.files(sourcesWithoutTypes)
67 inputs.files(installationState)
68 outputs.dir("src")
69 script.set("run typegen")
70 description = "Generate TypeScript typings for XState state machines."
71 }
72
73 assembleFrontend {
74 dependsOn(generateXStateTypes)
75 inputs.files(assembleFiles)
76 outputs.dir(productionResources)
77 }
78
79
80 val typeCheckFrontend by registering(RunYarn::class) {
81 dependsOn(installFrontend)
82 dependsOn(generateXStateTypes)
83 inputs.files(lintingFiles)
84 outputs.dir("$buildDir/typescript")
85 script.set("run typecheck")
86 group = "verification"
87 description = "Check for TypeScript type errors."
88 }
89
90 val lintFrontend by registering(RunYarn::class) {
91 dependsOn(installFrontend)
92 dependsOn(generateXStateTypes)
93 dependsOn(typeCheckFrontend)
94 inputs.files(lintingFiles)
95 outputs.file("$buildDir/eslint.json")
96 script.set("run lint")
97 group = "verification"
98 description = "Check for TypeScript lint errors and warnings."
99 }
100
101 register<RunYarn>("fixFrontend") {
102 dependsOn(installFrontend)
103 dependsOn(generateXStateTypes)
104 dependsOn(typeCheckFrontend)
105 inputs.files(lintingFiles)
106 script.set("run lint:fix")
107 group = "verification"
108 description = "Fix TypeScript lint errors and warnings."
109 }
110
111 check {
112 dependsOn(typeCheckFrontend)
113 dependsOn(lintFrontend)
114 }
115
116 register<RunYarn>("serveFrontend") {
117 dependsOn(installFrontend)
118 dependsOn(generateXStateTypes)
119 inputs.files(assembleFiles)
120 outputs.dir("$viteOutputDir/development")
121 script.set("run serve")
122 group = "run"
123 description = "Start a Vite dev server with hot module replacement."
124 }
125
126 clean {
127 delete("dev-dist")
128 delete(fileTree("src") {
129 include("**/*.typegen.ts")
130 })
131 }
132}
133
134artifacts {
135 add("productionAssets", productionResources) {
136 builtBy(tasks.assembleFrontend)
137 }
138}
139
140sonarqube.properties {
141 SonarPropertiesUtils.addToList(properties, "sonar.sources", "src")
142 property("sonar.nodejs.executable", "${frontend.nodeInstallDirectory.get()}/bin/node")
143 property("sonar.eslint.reportPaths", "$buildDir/eslint.json")
144}
diff --git a/subprojects/frontend/config/backendConfigVitePlugin.ts b/subprojects/frontend/config/backendConfigVitePlugin.ts
index 7a6bc3db..3bffce3a 100644
--- a/subprojects/frontend/config/backendConfigVitePlugin.ts
+++ b/subprojects/frontend/config/backendConfigVitePlugin.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { PluginOption } from 'vite'; 7import type { PluginOption } from 'vite';
2 8
3import type BackendConfig from '../src/xtext/BackendConfig'; 9import type BackendConfig from '../src/xtext/BackendConfig';
diff --git a/subprojects/frontend/config/detectDevModeOptions.ts b/subprojects/frontend/config/detectDevModeOptions.ts
index b3696241..665204dc 100644
--- a/subprojects/frontend/config/detectDevModeOptions.ts
+++ b/subprojects/frontend/config/detectDevModeOptions.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { PluginOption, ServerOptions } from 'vite'; 7import type { PluginOption, ServerOptions } from 'vite';
2 8
3import backendConfigVitePlugin, { 9import backendConfigVitePlugin, {
diff --git a/subprojects/frontend/config/eslintReport.cjs b/subprojects/frontend/config/eslintReport.cjs
new file mode 100644
index 00000000..7c4b7bd6
--- /dev/null
+++ b/subprojects/frontend/config/eslintReport.cjs
@@ -0,0 +1,58 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7const { writeFile } = require('node:fs/promises');
8const path = require('node:path');
9const { Readable } = require('node:stream');
10const { pipeline } = require('node:stream/promises');
11
12const { ESLint } = require('eslint');
13
14const rootDir = path.join(__dirname, '..');
15
16/**
17 * Write ESLint report to console.
18 *
19 * @param cli {import('eslint').ESLint} The ESLint CLI.
20 * @param report {import('eslint').ESLint.LintResult[]} The ESLint report.
21 * @return {Promise<void>} A promise that resolves when the report is finished.
22 */
23async function reportToConsole(cli, report) {
24 const stylishFormatter = await cli.loadFormatter('stylish');
25 const output = new Readable();
26 output.push(await stylishFormatter.format(report));
27 output.push(null);
28 return pipeline(output, process.stdout);
29}
30
31/**
32 * Write ESLint report to the <code>build</code> directory.
33 *
34 * @param cli {import('eslint').ESLint} The ESLint CLI.
35 * @param report {import('eslint').ESLint.LintResult[]} The ESLint report.
36 * @return {Promise<void>} A promise that resolves when the report is finished.
37 */
38async function reportToJson(cli, report) {
39 const jsonFormatter = await cli.loadFormatter('json');
40 const json = await jsonFormatter.format(report);
41 const reportPath = path.join(rootDir, 'build', 'eslint.json');
42 return writeFile(reportPath, json, 'utf-8');
43}
44
45async function createReport() {
46 const cli = new ESLint({
47 useEslintrc: true,
48 cwd: rootDir,
49 });
50 const report = await cli.lintFiles('.');
51 await Promise.all([reportToConsole(cli, report), reportToJson(cli, report)]);
52
53 if (report.some((entry) => entry.errorCount > 0)) {
54 process.exitCode = 1;
55 }
56}
57
58createReport().catch(console.error);
diff --git a/subprojects/frontend/config/fetchPackageMetadata.ts b/subprojects/frontend/config/fetchPackageMetadata.ts
index 50807b03..02e16d57 100644
--- a/subprojects/frontend/config/fetchPackageMetadata.ts
+++ b/subprojects/frontend/config/fetchPackageMetadata.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { readFile } from 'node:fs/promises'; 7import { readFile } from 'node:fs/promises';
2import path from 'node:path'; 8import path from 'node:path';
3 9
diff --git a/subprojects/frontend/config/manifest.ts b/subprojects/frontend/config/manifest.ts
index 3cec777c..1822dc7c 100644
--- a/subprojects/frontend/config/manifest.ts
+++ b/subprojects/frontend/config/manifest.ts
@@ -1,10 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { ManifestOptions } from 'vite-plugin-pwa'; 7import type { ManifestOptions } from 'vite-plugin-pwa';
2 8
3const manifest: Partial<ManifestOptions> = { 9const manifest: Partial<ManifestOptions> = {
4 lang: 'en-US', 10 lang: 'en-US',
5 name: 'Refinery', 11 name: 'Refinery',
6 short_name: 'Refinery', 12 short_name: 'Refinery',
7 description: 'An efficient graph sovler for generating well-formed models', 13 description: 'An efficient graph solver for generating well-formed models',
8 theme_color: '#f5f5f5', 14 theme_color: '#f5f5f5',
9 display_override: ['window-controls-overlay'], 15 display_override: ['window-controls-overlay'],
10 display: 'standalone', 16 display: 'standalone',
diff --git a/subprojects/frontend/config/minifyHTMLVitePlugin.ts b/subprojects/frontend/config/minifyHTMLVitePlugin.ts
index 18336d4d..7c08c488 100644
--- a/subprojects/frontend/config/minifyHTMLVitePlugin.ts
+++ b/subprojects/frontend/config/minifyHTMLVitePlugin.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { minify, type Options as TerserOptions } from 'html-minifier-terser'; 7import { minify, type Options as TerserOptions } from 'html-minifier-terser';
2import type { PluginOption } from 'vite'; 8import type { PluginOption } from 'vite';
3 9
diff --git a/subprojects/frontend/config/preloadFontsVitePlugin.ts b/subprojects/frontend/config/preloadFontsVitePlugin.ts
index bc6f8eaf..5c04477a 100644
--- a/subprojects/frontend/config/preloadFontsVitePlugin.ts
+++ b/subprojects/frontend/config/preloadFontsVitePlugin.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import micromatch from 'micromatch'; 7import micromatch from 'micromatch';
2import type { PluginOption } from 'vite'; 8import type { PluginOption } from 'vite';
3 9
diff --git a/subprojects/frontend/index.html b/subprojects/frontend/index.html
index 8b6814eb..1bf3472e 100644
--- a/subprojects/frontend/index.html
+++ b/subprojects/frontend/index.html
@@ -1,4 +1,9 @@
1<!DOCTYPE html> 1<!DOCTYPE html>
2<!--
3 SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
4
5 SPDX-License-Identifier: EPL-2.0
6-->
2<html lang="en-US"> 7<html lang="en-US">
3 <head> 8 <head>
4 <meta charset="utf-8"> 9 <meta charset="utf-8">
@@ -13,9 +18,9 @@
13 <meta name="theme-color" media="(prefers-color-scheme:light)" content="#f5f5f5"> 18 <meta name="theme-color" media="(prefers-color-scheme:light)" content="#f5f5f5">
14 <meta name="theme-color" media="(prefers-color-scheme:dark)" content="#21252b"> 19 <meta name="theme-color" media="(prefers-color-scheme:dark)" content="#21252b">
15 <style> 20 <style>
16 @import '@fontsource/inter/variable.css'; 21 @import '@fontsource-variable/inter/wght.css';
17 @import '@fontsource/jetbrains-mono/variable.css'; 22 @import '@fontsource-variable/jetbrains-mono/wght.css';
18 @import '@fontsource/jetbrains-mono/variable-italic.css'; 23 @import '@fontsource-variable/jetbrains-mono/wght-italic.css';
19 </style> 24 </style>
20 </head> 25 </head>
21 <body> 26 <body>
diff --git a/subprojects/frontend/package.json b/subprojects/frontend/package.json
index a761e74c..ba8a0a58 100644
--- a/subprojects/frontend/package.json
+++ b/subprojects/frontend/package.json
@@ -1,4 +1,9 @@
1{ 1{
2 "//": [
3 "SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>",
4 "",
5 "SPDX-License-Identifier: EPL-2.0"
6 ],
2 "name": "@refinery/frontend", 7 "name": "@refinery/frontend",
3 "version": "0.0.0", 8 "version": "0.0.0",
4 "description": "Web frontend for Refinery", 9 "description": "Web frontend for Refinery",
@@ -9,41 +14,40 @@
9 "serve": "cross-env MODE=development vite serve", 14 "serve": "cross-env MODE=development vite serve",
10 "typegen": "xstate typegen \"src/**/*.ts?(x)\"", 15 "typegen": "xstate typegen \"src/**/*.ts?(x)\"",
11 "typecheck": "tsc -p tsconfig.shared.json && tsc -p tsconfig.node.json && tsc -p tsconfig.json", 16 "typecheck": "tsc -p tsconfig.shared.json && tsc -p tsconfig.node.json && tsc -p tsconfig.json",
12 "lint": "eslint .", 17 "lint": "node config/eslintReport.cjs",
13 "lint:ci": "eslint -f json -o build/eslint.json .",
14 "lint:fix": "yarn run lint --fix" 18 "lint:fix": "yarn run lint --fix"
15 }, 19 },
16 "repository": { 20 "repository": {
17 "type": "git", 21 "type": "git",
18 "url": "git+https://github.com/graphs4value/refinery.git" 22 "url": "git+https://github.com/graphs4value/refinery.git"
19 }, 23 },
20 "author": "Refinery authors", 24 "author": "The Refinery Authors <https://refinery.tools/>",
21 "license": "EPL-2.0", 25 "license": "EPL-2.0",
22 "bugs": { 26 "bugs": {
23 "url": "https://github.com/graphs4value/issues" 27 "url": "https://github.com/graphs4value/refinery/issues"
24 }, 28 },
25 "homepage": "https://refinery.tools", 29 "homepage": "https://refinery.tools",
26 "dependencies": { 30 "dependencies": {
27 "@codemirror/autocomplete": "^6.4.2", 31 "@codemirror/autocomplete": "^6.8.0",
28 "@codemirror/commands": "^6.2.2", 32 "@codemirror/commands": "^6.2.4",
29 "@codemirror/language": "^6.6.0", 33 "@codemirror/language": "^6.8.0",
30 "@codemirror/lint": "^6.2.0", 34 "@codemirror/lint": "^6.2.2",
31 "@codemirror/search": "^6.3.0", 35 "@codemirror/search": "^6.5.0",
32 "@codemirror/state": "^6.2.0", 36 "@codemirror/state": "^6.2.1",
33 "@codemirror/view": "^6.9.3", 37 "@codemirror/view": "^6.13.2",
34 "@emotion/react": "^11.10.6", 38 "@emotion/react": "^11.11.1",
35 "@emotion/styled": "^11.10.6", 39 "@emotion/styled": "^11.11.0",
36 "@fontsource/inter": "^4.5.15", 40 "@fontsource-variable/inter": "^5.0.3",
37 "@fontsource/jetbrains-mono": "^4.5.12", 41 "@fontsource-variable/jetbrains-mono": "^5.0.3",
38 "@lezer/common": "^1.0.2", 42 "@lezer/common": "^1.0.3",
39 "@lezer/highlight": "^1.1.4", 43 "@lezer/highlight": "^1.1.6",
40 "@lezer/lr": "^1.3.3", 44 "@lezer/lr": "^1.3.6",
41 "@material-icons/svg": "^1.0.33", 45 "@material-icons/svg": "^1.0.33",
42 "@mui/icons-material": "5.11.11", 46 "@mui/icons-material": "5.11.16",
43 "@mui/material": "5.11.15", 47 "@mui/material": "5.13.5",
44 "@vitejs/plugin-react-swc": "^3.2.0", 48 "@vitejs/plugin-react-swc": "^3.3.2",
45 "ansi-styles": "^6.2.1", 49 "ansi-styles": "^6.2.1",
46 "csstype": "^3.1.1", 50 "csstype": "^3.1.2",
47 "escape-string-regexp": "^5.0.0", 51 "escape-string-regexp": "^5.0.0",
48 "lodash-es": "^4.17.21", 52 "lodash-es": "^4.17.21",
49 "loglevel": "^1.8.1", 53 "loglevel": "^1.8.1",
@@ -55,42 +59,41 @@
55 "notistack": "^3.0.1", 59 "notistack": "^3.0.1",
56 "react": "^18.2.0", 60 "react": "^18.2.0",
57 "react-dom": "^18.2.0", 61 "react-dom": "^18.2.0",
58 "xstate": "^4.37.1", 62 "xstate": "^4.37.2",
59 "zod": "^3.21.4" 63 "zod": "^3.21.4"
60 }, 64 },
61 "devDependencies": { 65 "devDependencies": {
62 "@lezer/generator": "^1.2.2", 66 "@lezer/generator": "^1.3.0",
63 "@tsconfig/strictest": "^2.0.0", 67 "@types/eslint": "^8.40.2",
64 "@types/eslint": "^8.37.0",
65 "@types/html-minifier-terser": "^7.0.0", 68 "@types/html-minifier-terser": "^7.0.0",
66 "@types/lodash-es": "^4.17.7", 69 "@types/lodash-es": "^4.17.7",
67 "@types/micromatch": "^4.0.2", 70 "@types/micromatch": "^4.0.2",
68 "@types/ms": "^0.7.31", 71 "@types/ms": "^0.7.31",
69 "@types/node": "^18.15.11", 72 "@types/node": "^18.16.18",
70 "@types/prettier": "^2.7.2", 73 "@types/prettier": "^2.7.3",
71 "@types/react": "^18.0.31", 74 "@types/react": "^18.2.12",
72 "@types/react-dom": "^18.0.11", 75 "@types/react-dom": "^18.2.5",
73 "@typescript-eslint/eslint-plugin": "^5.57.0", 76 "@typescript-eslint/eslint-plugin": "^5.59.11",
74 "@typescript-eslint/parser": "^5.57.0", 77 "@typescript-eslint/parser": "^5.59.11",
75 "@xstate/cli": "^0.4.2", 78 "@xstate/cli": "^0.5.1",
76 "cross-env": "^7.0.3", 79 "cross-env": "^7.0.3",
77 "eslint": "^8.37.0", 80 "eslint": "^8.43.0",
78 "eslint-config-airbnb": "^19.0.4", 81 "eslint-config-airbnb": "^19.0.4",
79 "eslint-config-airbnb-typescript": "^17.0.0", 82 "eslint-config-airbnb-typescript": "^17.0.0",
80 "eslint-config-prettier": "^8.8.0", 83 "eslint-config-prettier": "^8.8.0",
81 "eslint-import-resolver-typescript": "^3.5.4", 84 "eslint-import-resolver-typescript": "^3.5.5",
82 "eslint-plugin-import": "^2.27.5", 85 "eslint-plugin-import": "^2.27.5",
83 "eslint-plugin-jsx-a11y": "^6.7.1", 86 "eslint-plugin-jsx-a11y": "^6.7.1",
84 "eslint-plugin-mobx": "^0.0.9", 87 "eslint-plugin-mobx": "^0.0.9",
85 "eslint-plugin-prettier": "^4.2.1", 88 "eslint-plugin-prettier": "^4.2.1",
86 "eslint-plugin-react": "^7.32.2", 89 "eslint-plugin-react": "^7.32.2",
87 "eslint-plugin-react-hooks": "^4.6.0", 90 "eslint-plugin-react-hooks": "^4.6.0",
88 "html-minifier-terser": "^7.1.0", 91 "html-minifier-terser": "^7.2.0",
89 "micromatch": "^4.0.5", 92 "micromatch": "^4.0.5",
90 "prettier": "^2.8.7", 93 "prettier": "^2.8.8",
91 "typescript": "5.0.3", 94 "typescript": "5.1.3",
92 "vite": "^4.2.1", 95 "vite": "^4.3.9",
93 "vite-plugin-pwa": "^0.14.7", 96 "vite-plugin-pwa": "^0.16.4",
94 "workbox-window": "^6.5.4" 97 "workbox-window": "^7.0.0"
95 } 98 }
96} 99}
diff --git a/subprojects/frontend/prettier.config.cjs b/subprojects/frontend/prettier.config.cjs
index 75f5c54d..6f9ff7ad 100644
--- a/subprojects/frontend/prettier.config.cjs
+++ b/subprojects/frontend/prettier.config.cjs
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1/** @type {import('prettier').Config} */ 7/** @type {import('prettier').Config} */
2module.exports = { 8module.exports = {
3 singleQuote: true, 9 singleQuote: true,
diff --git a/subprojects/frontend/public/apple-touch-icon.png.license b/subprojects/frontend/public/apple-touch-icon.png.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/public/apple-touch-icon.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/public/favicon-96x96.png.license b/subprojects/frontend/public/favicon-96x96.png.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/public/favicon-96x96.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/public/favicon.png.license b/subprojects/frontend/public/favicon.png.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/public/favicon.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/public/favicon.svg.license b/subprojects/frontend/public/favicon.svg.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/public/favicon.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/public/icon-192x192.png.license b/subprojects/frontend/public/icon-192x192.png.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/public/icon-192x192.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/public/icon-512x512.png.license b/subprojects/frontend/public/icon-512x512.png.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/public/icon-512x512.png.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/public/icon-any.svg.license b/subprojects/frontend/public/icon-any.svg.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/public/icon-any.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/public/mask-icon.svg.license b/subprojects/frontend/public/mask-icon.svg.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/frontend/public/mask-icon.svg.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/frontend/public/robots.txt b/subprojects/frontend/public/robots.txt
index c2a49f4f..e7c73099 100644
--- a/subprojects/frontend/public/robots.txt
+++ b/subprojects/frontend/public/robots.txt
@@ -1,2 +1,6 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2#
3# SPDX-License-Identifier: CC0-1.0
4
1User-agent: * 5User-agent: *
2Allow: / 6Allow: /
diff --git a/subprojects/frontend/src/App.tsx b/subprojects/frontend/src/App.tsx
index cd394345..7f242529 100644
--- a/subprojects/frontend/src/App.tsx
+++ b/subprojects/frontend/src/App.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import Box from '@mui/material/Box'; 7import Box from '@mui/material/Box';
2import CssBaseline from '@mui/material/CssBaseline'; 8import CssBaseline from '@mui/material/CssBaseline';
3import { throttle } from 'lodash-es'; 9import { throttle } from 'lodash-es';
diff --git a/subprojects/frontend/src/Loading.tsx b/subprojects/frontend/src/Loading.tsx
index 489563e0..adee4f0e 100644
--- a/subprojects/frontend/src/Loading.tsx
+++ b/subprojects/frontend/src/Loading.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import CircularProgress from '@mui/material/CircularProgress'; 7import CircularProgress from '@mui/material/CircularProgress';
2import { styled } from '@mui/material/styles'; 8import { styled } from '@mui/material/styles';
3 9
diff --git a/subprojects/frontend/src/PWAStore.ts b/subprojects/frontend/src/PWAStore.ts
index e9f99e2a..a1b3ffd9 100644
--- a/subprojects/frontend/src/PWAStore.ts
+++ b/subprojects/frontend/src/PWAStore.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { makeAutoObservable, observable } from 'mobx'; 7import { makeAutoObservable, observable } from 'mobx';
2import ms from 'ms'; 8import ms from 'ms';
3// eslint-disable-next-line import/no-unresolved -- Importing virtual module. 9// eslint-disable-next-line import/no-unresolved -- Importing virtual module.
diff --git a/subprojects/frontend/src/Refinery.tsx b/subprojects/frontend/src/Refinery.tsx
index f0162349..b5ff94e1 100644
--- a/subprojects/frontend/src/Refinery.tsx
+++ b/subprojects/frontend/src/Refinery.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import Grow from '@mui/material/Grow'; 7import Grow from '@mui/material/Grow';
2import Stack from '@mui/material/Stack'; 8import Stack from '@mui/material/Stack';
3import { SnackbarProvider } from 'notistack'; 9import { SnackbarProvider } from 'notistack';
diff --git a/subprojects/frontend/src/RootStore.ts b/subprojects/frontend/src/RootStore.ts
index 2e76d66d..b84c0ce0 100644
--- a/subprojects/frontend/src/RootStore.ts
+++ b/subprojects/frontend/src/RootStore.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { getLogger } from 'loglevel'; 7import { getLogger } from 'loglevel';
2import { makeAutoObservable, runInAction } from 'mobx'; 8import { makeAutoObservable, runInAction } from 'mobx';
3 9
diff --git a/subprojects/frontend/src/RootStoreProvider.tsx b/subprojects/frontend/src/RootStoreProvider.tsx
index 2c11a0f9..7cb89af1 100644
--- a/subprojects/frontend/src/RootStoreProvider.tsx
+++ b/subprojects/frontend/src/RootStoreProvider.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { type ReactNode, createContext, useContext } from 'react'; 7import { type ReactNode, createContext, useContext } from 'react';
2 8
3import type RootStore from './RootStore'; 9import type RootStore from './RootStore';
diff --git a/subprojects/frontend/src/ToggleDarkModeButton.tsx b/subprojects/frontend/src/ToggleDarkModeButton.tsx
index 59714f20..7a835e61 100644
--- a/subprojects/frontend/src/ToggleDarkModeButton.tsx
+++ b/subprojects/frontend/src/ToggleDarkModeButton.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import DarkModeIcon from '@mui/icons-material/DarkMode'; 7import DarkModeIcon from '@mui/icons-material/DarkMode';
2import LightModeIcon from '@mui/icons-material/LightMode'; 8import LightModeIcon from '@mui/icons-material/LightMode';
3import IconButton from '@mui/material/IconButton'; 9import IconButton from '@mui/material/IconButton';
diff --git a/subprojects/frontend/src/TopBar.tsx b/subprojects/frontend/src/TopBar.tsx
index 5a825512..f2542b14 100644
--- a/subprojects/frontend/src/TopBar.tsx
+++ b/subprojects/frontend/src/TopBar.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import GitHubIcon from '@mui/icons-material/GitHub'; 7import GitHubIcon from '@mui/icons-material/GitHub';
2import AppBar from '@mui/material/AppBar'; 8import AppBar from '@mui/material/AppBar';
3import Button from '@mui/material/Button'; 9import Button from '@mui/material/Button';
diff --git a/subprojects/frontend/src/UpdateNotification.tsx b/subprojects/frontend/src/UpdateNotification.tsx
index 5c8c2d01..d86c0703 100644
--- a/subprojects/frontend/src/UpdateNotification.tsx
+++ b/subprojects/frontend/src/UpdateNotification.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import Button from '@mui/material/Button'; 7import Button from '@mui/material/Button';
2import { observer } from 'mobx-react-lite'; 8import { observer } from 'mobx-react-lite';
3import { useEffect } from 'react'; 9import { useEffect } from 'react';
diff --git a/subprojects/frontend/src/WindowControlsOverlayColor.tsx b/subprojects/frontend/src/WindowControlsOverlayColor.tsx
index 14eda566..cfa468ea 100644
--- a/subprojects/frontend/src/WindowControlsOverlayColor.tsx
+++ b/subprojects/frontend/src/WindowControlsOverlayColor.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { useTheme } from '@mui/material/styles'; 7import { useTheme } from '@mui/material/styles';
2import { useEffect } from 'react'; 8import { useEffect } from 'react';
3 9
diff --git a/subprojects/frontend/src/editor/AnimatedButton.tsx b/subprojects/frontend/src/editor/AnimatedButton.tsx
index f75d4617..dbbda618 100644
--- a/subprojects/frontend/src/editor/AnimatedButton.tsx
+++ b/subprojects/frontend/src/editor/AnimatedButton.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import Box from '@mui/material/Box'; 7import Box from '@mui/material/Box';
2import Button from '@mui/material/Button'; 8import Button from '@mui/material/Button';
3import { styled, type SxProps, type Theme } from '@mui/material/styles'; 9import { styled, type SxProps, type Theme } from '@mui/material/styles';
diff --git a/subprojects/frontend/src/editor/ConnectButton.tsx b/subprojects/frontend/src/editor/ConnectButton.tsx
index e2d251f3..eed6fbc7 100644
--- a/subprojects/frontend/src/editor/ConnectButton.tsx
+++ b/subprojects/frontend/src/editor/ConnectButton.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import CloudIcon from '@mui/icons-material/Cloud'; 7import CloudIcon from '@mui/icons-material/Cloud';
2import CloudOffIcon from '@mui/icons-material/CloudOff'; 8import CloudOffIcon from '@mui/icons-material/CloudOff';
3import SyncIcon from '@mui/icons-material/Sync'; 9import SyncIcon from '@mui/icons-material/Sync';
diff --git a/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx b/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
index 9b27f45c..b7b962ab 100644
--- a/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
+++ b/subprojects/frontend/src/editor/ConnectionStatusNotification.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import Button from '@mui/material/Button'; 7import Button from '@mui/material/Button';
2import { observer } from 'mobx-react-lite'; 8import { observer } from 'mobx-react-lite';
3import { useEffect } from 'react'; 9import { useEffect } from 'react';
diff --git a/subprojects/frontend/src/editor/DiagnosticValue.ts b/subprojects/frontend/src/editor/DiagnosticValue.ts
index b4e0b165..20478262 100644
--- a/subprojects/frontend/src/editor/DiagnosticValue.ts
+++ b/subprojects/frontend/src/editor/DiagnosticValue.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { Diagnostic } from '@codemirror/lint'; 7import type { Diagnostic } from '@codemirror/lint';
2import { RangeValue } from '@codemirror/state'; 8import { RangeValue } from '@codemirror/state';
3 9
diff --git a/subprojects/frontend/src/editor/EditorArea.tsx b/subprojects/frontend/src/editor/EditorArea.tsx
index cfb988b2..905fa2ec 100644
--- a/subprojects/frontend/src/editor/EditorArea.tsx
+++ b/subprojects/frontend/src/editor/EditorArea.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import Box from '@mui/material/Box'; 7import Box from '@mui/material/Box';
2import { useTheme } from '@mui/material/styles'; 8import { useTheme } from '@mui/material/styles';
3import { observer } from 'mobx-react-lite'; 9import { observer } from 'mobx-react-lite';
diff --git a/subprojects/frontend/src/editor/EditorButtons.tsx b/subprojects/frontend/src/editor/EditorButtons.tsx
index 53b06e23..9b187e5c 100644
--- a/subprojects/frontend/src/editor/EditorButtons.tsx
+++ b/subprojects/frontend/src/editor/EditorButtons.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { Diagnostic } from '@codemirror/lint'; 7import type { Diagnostic } from '@codemirror/lint';
2import CheckIcon from '@mui/icons-material/Check'; 8import CheckIcon from '@mui/icons-material/Check';
3import ErrorIcon from '@mui/icons-material/Error'; 9import ErrorIcon from '@mui/icons-material/Error';
diff --git a/subprojects/frontend/src/editor/EditorPane.tsx b/subprojects/frontend/src/editor/EditorPane.tsx
index f7f8241a..87f408fe 100644
--- a/subprojects/frontend/src/editor/EditorPane.tsx
+++ b/subprojects/frontend/src/editor/EditorPane.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import Box from '@mui/material/Box'; 7import Box from '@mui/material/Box';
2import Skeleton from '@mui/material/Skeleton'; 8import Skeleton from '@mui/material/Skeleton';
3import Stack from '@mui/material/Stack'; 9import Stack from '@mui/material/Stack';
diff --git a/subprojects/frontend/src/editor/EditorStore.ts b/subprojects/frontend/src/editor/EditorStore.ts
index 0a0d885d..b98f085e 100644
--- a/subprojects/frontend/src/editor/EditorStore.ts
+++ b/subprojects/frontend/src/editor/EditorStore.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { 7import type {
2 CompletionContext, 8 CompletionContext,
3 CompletionResult, 9 CompletionResult,
diff --git a/subprojects/frontend/src/editor/EditorTheme.ts b/subprojects/frontend/src/editor/EditorTheme.ts
index 01b65a7e..e057ce18 100644
--- a/subprojects/frontend/src/editor/EditorTheme.ts
+++ b/subprojects/frontend/src/editor/EditorTheme.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import errorSVG from '@material-icons/svg/svg/error/baseline.svg?raw'; 7import errorSVG from '@material-icons/svg/svg/error/baseline.svg?raw';
2import expandMoreSVG from '@material-icons/svg/svg/expand_more/baseline.svg?raw'; 8import expandMoreSVG from '@material-icons/svg/svg/expand_more/baseline.svg?raw';
3import infoSVG from '@material-icons/svg/svg/info/baseline.svg?raw'; 9import infoSVG from '@material-icons/svg/svg/info/baseline.svg?raw';
@@ -8,32 +14,6 @@ function svgURL(svg: string): string {
8 return `url('data:image/svg+xml;utf8,${svg}')`; 14 return `url('data:image/svg+xml;utf8,${svg}')`;
9} 15}
10 16
11function radialShadowTheme(
12 origin: string,
13 scaleX: boolean,
14 scaleY: boolean,
15): CSSObject {
16 function radialGradient(opacity: number, scale: string): string {
17 return `radial-gradient(
18 farthest-side at ${origin},
19 rgba(0, 0, 0, ${opacity}),
20 rgba(0, 0, 0, 0)
21 )
22 ${origin} /
23 ${scaleX ? scale : '100%'}
24 ${scaleY ? scale : '100%'}
25 no-repeat`;
26 }
27
28 return {
29 background: `
30 ${radialGradient(0.2, '40%')},
31 ${radialGradient(0.14, '50%')},
32 ${radialGradient(0.12, '100%')}
33 `,
34 };
35}
36
37export default styled('div', { 17export default styled('div', {
38 name: 'EditorTheme', 18 name: 'EditorTheme',
39 shouldForwardProp: (propName) => 19 shouldForwardProp: (propName) =>
@@ -52,98 +32,13 @@ export default styled('div', {
52 }, 32 },
53 }; 33 };
54 34
55 const scrollerThumbOpacity = theme.palette.mode === 'dark' ? 0.16 : 0.28;
56
57 const generalStyle: CSSObject = { 35 const generalStyle: CSSObject = {
58 background: theme.palette.background.default, 36 background: theme.palette.background.default,
59 '&, .cm-editor': { 37 '&, .cm-editor': {
60 height: '100%', 38 height: '100%',
61 }, 39 },
62 '.cm-scroller-holder': {
63 display: 'flex',
64 position: 'relative',
65 flexDirection: 'column',
66 overflow: 'hidden',
67 flex: '1 1',
68 },
69 '.cm-scroller-spacer': {
70 position: 'sticky',
71 flexShrink: 0,
72 zIndex: 300,
73 width: 1,
74 marginRight: -1,
75 pointerEvents: 'none',
76 },
77 '.cm-scroller': { 40 '.cm-scroller': {
78 color: theme.palette.text.secondary, 41 color: theme.palette.text.secondary,
79 scrollbarWidth: 'none',
80 MsOverflowStyle: 'none',
81 '&::-webkit-scrollbar': {
82 width: 0,
83 height: 0,
84 background: 'transparent',
85 },
86 },
87 '.cm-scroller-track': {
88 position: 'absolute',
89 zIndex: 300,
90 touchAction: 'none',
91 },
92 '.cm-scroller-thumb': {
93 position: 'absolute',
94 background: theme.palette.text.secondary,
95 opacity: scrollerThumbOpacity,
96 transition: theme.transitions.create('opacity', {
97 duration: theme.transitions.duration.shortest,
98 }),
99 touchAction: 'none',
100 WebkitTapHighlightColor: 'transparent',
101 '&:hover': {
102 opacity: 0.75,
103 '@media (hover: none)': {
104 opacity: scrollerThumbOpacity,
105 },
106 },
107 '&.active': {
108 opacity: 1,
109 pointerEvents: 'none',
110 userSelect: 'none',
111 },
112 },
113 '.cm-scroller-track-y, .cm-scroller-thumb-y': {
114 top: 0,
115 right: 0,
116 width: 12,
117 },
118 '.cm-scroller-track-x, .cm-scroller-thumb-x': {
119 left: 0,
120 bottom: 0,
121 height: 12,
122 },
123 '.cm-scroller-track-x': {
124 right: 12,
125 },
126 '.cm-scroller-gutter-decoration': {
127 position: 'absolute',
128 top: 0,
129 bottom: 0,
130 left: 0,
131 width: 0,
132 transition: theme.transitions.create('width', {
133 duration: theme.transitions.duration.shortest,
134 }),
135 ...radialShadowTheme('0 50%', true, false),
136 },
137 '.cm-scroller-top-decoration': {
138 position: 'absolute',
139 top: 0,
140 left: 0,
141 right: 0,
142 height: 0,
143 transition: theme.transitions.create('height', {
144 duration: theme.transitions.duration.shortest,
145 }),
146 ...radialShadowTheme('50% 0', false, true),
147 }, 42 },
148 '.cm-gutters': { 43 '.cm-gutters': {
149 background: theme.palette.background.default, 44 background: theme.palette.background.default,
@@ -162,7 +57,6 @@ export default styled('div', {
162 background: 'transparent', 57 background: 'transparent',
163 }, 58 },
164 '.cm-cursor, .cm-cursor-primary': { 59 '.cm-cursor, .cm-cursor-primary': {
165 marginLeft: -1,
166 borderLeft: `2px solid ${theme.palette.info.main}`, 60 borderLeft: `2px solid ${theme.palette.info.main}`,
167 }, 61 },
168 '.cm-selectionBackground': { 62 '.cm-selectionBackground': {
@@ -175,7 +69,6 @@ export default styled('div', {
175 }, 69 },
176 }, 70 },
177 '.cm-line': { 71 '.cm-line': {
178 position: 'relative', // For indentation highlights
179 padding: '0 12px 0 0px', 72 padding: '0 12px 0 0px',
180 }, 73 },
181 }; 74 };
@@ -265,13 +158,6 @@ export default styled('div', {
265 '.cm-searchMatch-selected': { 158 '.cm-searchMatch-selected': {
266 background: theme.palette.highlight.search.selected, 159 background: theme.palette.highlight.search.selected,
267 }, 160 },
268 '.cm-indentation-marker': {
269 display: 'inline-block',
270 boxShadow: `1px 0 0 ${theme.palette.text.disabled} inset`,
271 '&.active': {
272 boxShadow: `1px 0 0 ${theme.palette.text.primary} inset`,
273 },
274 },
275 '.cm-scroller-selection': { 161 '.cm-scroller-selection': {
276 position: 'absolute', 162 position: 'absolute',
277 right: 0, 163 right: 0,
@@ -452,11 +338,11 @@ export default styled('div', {
452 338
453 const foldStyle = { 339 const foldStyle = {
454 '.cm-foldGutter': { 340 '.cm-foldGutter': {
455 width: 17, 341 width: 16,
456 }, 342 },
457 '.problem-editor-foldMarker': { 343 '.problem-editor-foldMarker': {
458 display: 'block', 344 display: 'block',
459 margin: '4px 1px 4px 0', 345 margin: '4px 0 4px 0',
460 padding: 0, 346 padding: 0,
461 maskImage: svgURL(expandMoreSVG), 347 maskImage: svgURL(expandMoreSVG),
462 maskSize: '16px 16px', 348 maskSize: '16px 16px',
@@ -467,7 +353,7 @@ export default styled('div', {
467 cursor: 'pointer', 353 cursor: 'pointer',
468 WebkitTapHighlightColor: 'transparent', 354 WebkitTapHighlightColor: 'transparent',
469 [theme.breakpoints.down('sm')]: { 355 [theme.breakpoints.down('sm')]: {
470 margin: '2px 1px 2px 0', 356 margin: '2px 0 2px 0',
471 }, 357 },
472 }, 358 },
473 '.problem-editor-foldMarker-open': { 359 '.problem-editor-foldMarker-open': {
diff --git a/subprojects/frontend/src/editor/GenerateButton.tsx b/subprojects/frontend/src/editor/GenerateButton.tsx
index 2036fc28..3837ef8e 100644
--- a/subprojects/frontend/src/editor/GenerateButton.tsx
+++ b/subprojects/frontend/src/editor/GenerateButton.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import DangerousOutlinedIcon from '@mui/icons-material/DangerousOutlined'; 7import DangerousOutlinedIcon from '@mui/icons-material/DangerousOutlined';
2import PlayArrowIcon from '@mui/icons-material/PlayArrow'; 8import PlayArrowIcon from '@mui/icons-material/PlayArrow';
3import Button from '@mui/material/Button'; 9import Button from '@mui/material/Button';
diff --git a/subprojects/frontend/src/editor/LintPanelStore.ts b/subprojects/frontend/src/editor/LintPanelStore.ts
index 502f9c59..f81587fa 100644
--- a/subprojects/frontend/src/editor/LintPanelStore.ts
+++ b/subprojects/frontend/src/editor/LintPanelStore.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { closeLintPanel, openLintPanel } from '@codemirror/lint'; 7import { closeLintPanel, openLintPanel } from '@codemirror/lint';
2 8
3import type EditorStore from './EditorStore'; 9import type EditorStore from './EditorStore';
diff --git a/subprojects/frontend/src/editor/PanelStore.ts b/subprojects/frontend/src/editor/PanelStore.ts
index 4f827280..25ef8b6c 100644
--- a/subprojects/frontend/src/editor/PanelStore.ts
+++ b/subprojects/frontend/src/editor/PanelStore.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { Command } from '@codemirror/view'; 7import type { Command } from '@codemirror/view';
2import { action, makeObservable, observable } from 'mobx'; 8import { action, makeObservable, observable } from 'mobx';
3 9
diff --git a/subprojects/frontend/src/editor/SearchPanel.ts b/subprojects/frontend/src/editor/SearchPanel.ts
index c9df41b7..b63d5eed 100644
--- a/subprojects/frontend/src/editor/SearchPanel.ts
+++ b/subprojects/frontend/src/editor/SearchPanel.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { 7import {
2 type EditorView, 8 type EditorView,
3 type Panel, 9 type Panel,
diff --git a/subprojects/frontend/src/editor/SearchPanelPortal.tsx b/subprojects/frontend/src/editor/SearchPanelPortal.tsx
index 5cf1c90e..b4b07c74 100644
--- a/subprojects/frontend/src/editor/SearchPanelPortal.tsx
+++ b/subprojects/frontend/src/editor/SearchPanelPortal.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import Portal from '@mui/material/Portal'; 7import Portal from '@mui/material/Portal';
2import { observer } from 'mobx-react-lite'; 8import { observer } from 'mobx-react-lite';
3 9
diff --git a/subprojects/frontend/src/editor/SearchPanelStore.ts b/subprojects/frontend/src/editor/SearchPanelStore.ts
index 65d595a8..6a97baf1 100644
--- a/subprojects/frontend/src/editor/SearchPanelStore.ts
+++ b/subprojects/frontend/src/editor/SearchPanelStore.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { 7import {
2 closeSearchPanel, 8 closeSearchPanel,
3 findNext, 9 findNext,
diff --git a/subprojects/frontend/src/editor/SearchToolbar.tsx b/subprojects/frontend/src/editor/SearchToolbar.tsx
index 54f3dba7..4ae7e893 100644
--- a/subprojects/frontend/src/editor/SearchToolbar.tsx
+++ b/subprojects/frontend/src/editor/SearchToolbar.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import CloseIcon from '@mui/icons-material/Close'; 7import CloseIcon from '@mui/icons-material/Close';
2import FindReplaceIcon from '@mui/icons-material/FindReplace'; 8import FindReplaceIcon from '@mui/icons-material/FindReplace';
3import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; 9import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
diff --git a/subprojects/frontend/src/editor/createEditorState.ts b/subprojects/frontend/src/editor/createEditorState.ts
index ce1efa4f..67b8fb9e 100644
--- a/subprojects/frontend/src/editor/createEditorState.ts
+++ b/subprojects/frontend/src/editor/createEditorState.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { 7import {
2 closeBrackets, 8 closeBrackets,
3 closeBracketsKeymap, 9 closeBracketsKeymap,
@@ -38,8 +44,6 @@ import type EditorStore from './EditorStore';
38import SearchPanel from './SearchPanel'; 44import SearchPanel from './SearchPanel';
39import exposeDiagnostics from './exposeDiagnostics'; 45import exposeDiagnostics from './exposeDiagnostics';
40import findOccurrences from './findOccurrences'; 46import findOccurrences from './findOccurrences';
41import indentationMarkerViewPlugin from './indentationMarkerViewPlugin';
42import scrollbarViewPlugin from './scrollbarViewPlugin';
43import semanticHighlighting from './semanticHighlighting'; 47import semanticHighlighting from './semanticHighlighting';
44 48
45export default function createEditorState( 49export default function createEditorState(
@@ -64,7 +68,6 @@ export default function createEditorState(
64 highlightSpecialChars(), 68 highlightSpecialChars(),
65 history(), 69 history(),
66 indentOnInput(), 70 indentOnInput(),
67 indentationMarkerViewPlugin(),
68 rectangularSelection(), 71 rectangularSelection(),
69 search({ 72 search({
70 createPanel(view) { 73 createPanel(view) {
@@ -123,7 +126,6 @@ export default function createEditorState(
123 ...defaultKeymap, 126 ...defaultKeymap,
124 ]), 127 ]),
125 problemLanguageSupport(), 128 problemLanguageSupport(),
126 scrollbarViewPlugin(store),
127 ], 129 ],
128 }); 130 });
129} 131}
diff --git a/subprojects/frontend/src/editor/defineDecorationSetExtension.ts b/subprojects/frontend/src/editor/defineDecorationSetExtension.ts
index d9c7bc7d..0887c92e 100644
--- a/subprojects/frontend/src/editor/defineDecorationSetExtension.ts
+++ b/subprojects/frontend/src/editor/defineDecorationSetExtension.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { StateEffect, StateField, TransactionSpec } from '@codemirror/state'; 7import { StateEffect, StateField, TransactionSpec } from '@codemirror/state';
2import { EditorView, Decoration, DecorationSet } from '@codemirror/view'; 8import { EditorView, Decoration, DecorationSet } from '@codemirror/view';
3 9
diff --git a/subprojects/frontend/src/editor/exposeDiagnostics.ts b/subprojects/frontend/src/editor/exposeDiagnostics.ts
index 82f24c93..c4dcbb87 100644
--- a/subprojects/frontend/src/editor/exposeDiagnostics.ts
+++ b/subprojects/frontend/src/editor/exposeDiagnostics.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { setDiagnosticsEffect } from '@codemirror/lint'; 7import { setDiagnosticsEffect } from '@codemirror/lint';
2import { 8import {
3 StateField, 9 StateField,
diff --git a/subprojects/frontend/src/editor/findOccurrences.ts b/subprojects/frontend/src/editor/findOccurrences.ts
index 08c078c2..00dffc96 100644
--- a/subprojects/frontend/src/editor/findOccurrences.ts
+++ b/subprojects/frontend/src/editor/findOccurrences.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { 7import {
2 type Range, 8 type Range,
3 RangeSet, 9 RangeSet,
diff --git a/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts b/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts
deleted file mode 100644
index 730fa6e3..00000000
--- a/subprojects/frontend/src/editor/indentationMarkerViewPlugin.ts
+++ /dev/null
@@ -1,341 +0,0 @@
1/**
2 * @file CodeMirror plugin to highlight indentation
3 *
4 * This file is based on the
5 * [@replit/codemirror-indentation-markers](https://github.com/replit/codemirror-indentation-markers)
6 * package, which is available under the
7 * [MIT License](https://github.com/replit/codemirror-indentation-markers/blob/543cc508ca5cef5d8350af23973eb1425e31525c/LICENSE).
8 *
9 * The highlighting heuristics were adjusted to make them more suitable
10 * for logic programming.
11 *
12 * @see https://github.com/replit/codemirror-indentation-markers/blob/543cc508ca5cef5d8350af23973eb1425e31525c/src/index.ts
13 */
14
15import { getIndentUnit } from '@codemirror/language';
16import { Text, RangeSet, EditorState } from '@codemirror/state';
17import {
18 ViewPlugin,
19 Decoration,
20 EditorView,
21 WidgetType,
22 PluginValue,
23} from '@codemirror/view';
24
25export const INDENTATION_MARKER_CLASS = 'cm-indentation-marker';
26
27export const INDENTATION_MARKER_ACTIVE_CLASS = 'active';
28
29const indentationMark = Decoration.mark({
30 class: INDENTATION_MARKER_CLASS,
31 tagName: 'span',
32});
33
34const activeIndentationMark = Decoration.mark({
35 class: `${INDENTATION_MARKER_CLASS} ${INDENTATION_MARKER_ACTIVE_CLASS}`,
36 tagName: 'span',
37});
38
39/**
40 * Widget used to simulate N indentation markers on empty lines.
41 */
42class IndentationWidget extends WidgetType {
43 constructor(
44 readonly numIndent: number,
45 readonly indentSize: number,
46 readonly activeIndent?: number,
47 ) {
48 super();
49 }
50
51 override eq(other: IndentationWidget) {
52 return (
53 this.numIndent === other.numIndent &&
54 this.indentSize === other.indentSize &&
55 this.activeIndent === other.activeIndent
56 );
57 }
58
59 override toDOM(view: EditorView) {
60 const indentSize = getIndentUnit(view.state);
61
62 const wrapper = document.createElement('span');
63 wrapper.style.top = '0';
64 wrapper.style.left = '0';
65 wrapper.style.position = 'absolute';
66 wrapper.style.pointerEvents = 'none';
67
68 for (let indent = 0; indent < this.numIndent; indent += 1) {
69 const element = document.createElement('span');
70 element.className = INDENTATION_MARKER_CLASS;
71 element.classList.toggle(
72 INDENTATION_MARKER_ACTIVE_CLASS,
73 indent === this.activeIndent,
74 );
75 element.innerHTML = ' '.repeat(indentSize);
76 wrapper.appendChild(element);
77 }
78
79 return wrapper;
80 }
81}
82
83/**
84 * Returns the number of indentation markers a non-empty line should have
85 * based on the text in the line and the size of the indent.
86 */
87function getNumIndentMarkersForNonEmptyLine(
88 text: string,
89 indentSize: number,
90 onIndentMarker?: (pos: number) => void,
91) {
92 let numIndents = 0;
93 let numConsecutiveSpaces = 0;
94 let prevChar: string | undefined;
95
96 for (let char = 0; char < text.length; char += 1) {
97 // Bail if we encounter a non-whitespace character
98 if (text[char] !== ' ' && text[char] !== '\t') {
99 // We still increment the indentation level if we would
100 // have added a marker here had this been a space or tab.
101 if (numConsecutiveSpaces % indentSize === 0 && char !== 0) {
102 numIndents += 1;
103 }
104
105 return numIndents;
106 }
107
108 // Every tab and N space has an indentation marker
109 const shouldAddIndent =
110 prevChar === '\t' || numConsecutiveSpaces % indentSize === 0;
111
112 if (shouldAddIndent) {
113 numIndents += 1;
114
115 if (onIndentMarker) {
116 onIndentMarker(char);
117 }
118 }
119
120 if (text[char] === ' ') {
121 numConsecutiveSpaces += 1;
122 } else {
123 numConsecutiveSpaces = 0;
124 }
125
126 prevChar = text[char];
127 }
128
129 return numIndents;
130}
131
132/**
133 * Returns the number of indent markers an empty line should have
134 * based on the number of indent markers of the previous
135 * and next non-empty lines.
136 */
137function getNumIndentMarkersForEmptyLine(prev: number, next: number) {
138 const min = Math.min(prev, next);
139 const max = Math.max(prev, next);
140
141 // If only one side is non-zero, we omit markers,
142 // because in logic programming, a block often ends with an empty line.
143 if (min === 0 && max > 0) {
144 return 0;
145 }
146
147 // Else, default to the minimum of the two
148 return min;
149}
150
151/**
152 * Returns the next non-empty line and its indent level.
153 */
154function findNextNonEmptyLineAndIndentLevel(
155 doc: Text,
156 startLine: number,
157 indentSize: number,
158): [number, number] {
159 const numLines = doc.lines;
160 let lineNo = startLine;
161
162 while (lineNo <= numLines) {
163 const { text } = doc.line(lineNo);
164
165 if (text.trim().length === 0) {
166 lineNo += 1;
167 } else {
168 const indent = getNumIndentMarkersForNonEmptyLine(text, indentSize);
169 return [lineNo, indent];
170 }
171 }
172
173 // Reached the end of the doc
174 return [numLines + 1, 0];
175}
176
177interface IndentationMarkerDesc {
178 lineNumber: number;
179 from: number;
180 to: number;
181 create(activeIndentIndex?: number): Decoration;
182}
183
184/**
185 * Returns a range of lines with an active indent marker.
186 */
187function getLinesWithActiveIndentMarker(
188 state: EditorState,
189 indentMap: Map<number, number>,
190): { start: number; end: number; activeIndent: number } {
191 const currentLine = state.doc.lineAt(state.selection.main.head);
192 const currentIndent = indentMap.get(currentLine.number);
193 const currentLineNo = currentLine.number;
194
195 if (!currentIndent) {
196 return { start: -1, end: -1, activeIndent: NaN };
197 }
198
199 let start: number;
200 let end: number;
201
202 for (start = currentLineNo; start >= 0; start -= 1) {
203 const indent = indentMap.get(start - 1);
204 if (!indent || indent < currentIndent) {
205 break;
206 }
207 }
208
209 for (end = currentLineNo; ; end += 1) {
210 const indent = indentMap.get(end + 1);
211 if (!indent || indent < currentIndent) {
212 break;
213 }
214 }
215
216 return { start, end, activeIndent: currentIndent };
217}
218/**
219 * Adds indentation markers to all lines within view.
220 */
221function addIndentationMarkers(view: EditorView) {
222 const indentSize = getIndentUnit(view.state);
223 const indentSizeMap = new Map</* lineNumber */ number, number>();
224 const decorations: Array<IndentationMarkerDesc> = [];
225
226 view.visibleRanges.forEach(({ from, to }) => {
227 let pos = from;
228
229 let prevIndentMarkers = 0;
230 let nextIndentMarkers = 0;
231 let nextNonEmptyLine = 0;
232
233 while (pos <= to) {
234 const line = view.state.doc.lineAt(pos);
235 const { text } = line;
236
237 // If a line is empty, we match the indentation according
238 // to a heuristic based on the indentations of the
239 // previous and next non-empty lines.
240 if (text.trim().length === 0) {
241 // To retrieve the next non-empty indentation level,
242 // we perform a lookahead and cache the result.
243 if (nextNonEmptyLine < line.number) {
244 const [nextLine, nextIndent] = findNextNonEmptyLineAndIndentLevel(
245 view.state.doc,
246 line.number + 1,
247 indentSize,
248 );
249
250 nextNonEmptyLine = nextLine;
251 nextIndentMarkers = nextIndent;
252 }
253
254 const numIndentMarkers = getNumIndentMarkersForEmptyLine(
255 prevIndentMarkers,
256 nextIndentMarkers,
257 );
258
259 // Add the indent widget and move on to next line
260 indentSizeMap.set(line.number, numIndentMarkers);
261 decorations.push({
262 from: pos,
263 to: pos,
264 lineNumber: line.number,
265 create: (activeIndentIndex) =>
266 Decoration.widget({
267 widget: new IndentationWidget(
268 numIndentMarkers,
269 indentSize,
270 activeIndentIndex,
271 ),
272 }),
273 });
274 } else {
275 const indices: Array<number> = [];
276
277 prevIndentMarkers = getNumIndentMarkersForNonEmptyLine(
278 text,
279 indentSize,
280 (char) => indices.push(char),
281 );
282
283 indentSizeMap.set(line.number, indices.length);
284 decorations.push(
285 ...indices.map(
286 (char, i): IndentationMarkerDesc => ({
287 from: line.from + char,
288 to: line.from + char + 1,
289 lineNumber: line.number,
290 create: (activeIndentIndex) =>
291 activeIndentIndex === i
292 ? activeIndentationMark
293 : indentationMark,
294 }),
295 ),
296 );
297 }
298
299 // Move on to the next line
300 pos = line.to + 1;
301 }
302 });
303
304 const activeBlockRange = getLinesWithActiveIndentMarker(
305 view.state,
306 indentSizeMap,
307 );
308
309 return RangeSet.of<Decoration>(
310 Array.from(decorations).map(({ lineNumber, from, to, create }) => {
311 const activeIndent =
312 lineNumber >= activeBlockRange.start &&
313 lineNumber <= activeBlockRange.end
314 ? activeBlockRange.activeIndent - 1
315 : undefined;
316
317 return { from, to, value: create(activeIndent) };
318 }),
319 true,
320 );
321}
322
323export default function indentationMarkerViewPlugin() {
324 return ViewPlugin.define<PluginValue & { decorations: RangeSet<Decoration> }>(
325 (view) => ({
326 decorations: addIndentationMarkers(view),
327 update(update) {
328 if (
329 update.docChanged ||
330 update.viewportChanged ||
331 update.selectionSet
332 ) {
333 this.decorations = addIndentationMarkers(update.view);
334 }
335 },
336 }),
337 {
338 decorations: (v) => v.decorations,
339 },
340 );
341}
diff --git a/subprojects/frontend/src/editor/scrollbarViewPlugin.ts b/subprojects/frontend/src/editor/scrollbarViewPlugin.ts
deleted file mode 100644
index f44034fd..00000000
--- a/subprojects/frontend/src/editor/scrollbarViewPlugin.ts
+++ /dev/null
@@ -1,357 +0,0 @@
1import { EditorSelection } from '@codemirror/state';
2import {
3 type EditorView,
4 type PluginValue,
5 ViewPlugin,
6} from '@codemirror/view';
7import { reaction } from 'mobx';
8
9import type EditorStore from './EditorStore';
10import { getDiagnostics } from './exposeDiagnostics';
11import findOccurrences from './findOccurrences';
12
13export const HOLDER_CLASS = 'cm-scroller-holder';
14export const SPACER_CLASS = 'cm-scroller-spacer';
15export const TRACK_CLASS = 'cm-scroller-track';
16export const THUMB_CLASS = 'cm-scroller-thumb';
17export const THUMB_ACTIVE_CLASS = 'active';
18export const GUTTER_DECORATION_CLASS = 'cm-scroller-gutter-decoration';
19export const TOP_DECORATION_CLASS = 'cm-scroller-top-decoration';
20export const ANNOTATION_SELECTION_CLASS = 'cm-scroller-selection';
21export const ANNOTATION_DIAGNOSTIC_CLASS = 'cm-scroller-diagnostic';
22export const ANNOTATION_OCCURRENCE_CLASS = 'cm-scroller-occurrence';
23export const SHADOW_WIDTH = 10;
24export const SCROLLBAR_WIDTH = 12;
25export const ANNOTATION_WIDTH = SCROLLBAR_WIDTH / 2;
26export const MIN_ANNOTATION_HEIGHT = 1;
27
28function createScrollbar(
29 holder: HTMLElement,
30 direction: 'x' | 'y',
31 touchCallback: (offsetX: number, offsetY: number) => void,
32 moveCallback: (movementX: number, movementY: number) => void,
33): { track: HTMLElement; thumb: HTMLElement } {
34 const track = holder.ownerDocument.createElement('div');
35 track.className = `${TRACK_CLASS} ${TRACK_CLASS}-${direction}`;
36 holder.appendChild(track);
37
38 const thumb = holder.ownerDocument.createElement('div');
39 thumb.className = `${THUMB_CLASS} ${THUMB_CLASS}-${direction}`;
40 track.appendChild(thumb);
41
42 let pointerId: number | undefined;
43 track.addEventListener('pointerdown', (event) => {
44 if (pointerId !== undefined) {
45 event.preventDefault();
46 return;
47 }
48 ({ pointerId } = event);
49 thumb.classList.add(THUMB_ACTIVE_CLASS);
50 if (event.target === thumb) {
51 // Prevent implicit pointer capture on mobile.
52 thumb.releasePointerCapture(pointerId);
53 } else {
54 touchCallback(event.offsetX, event.offsetY);
55 }
56 track.setPointerCapture(pointerId);
57 });
58
59 track.addEventListener('pointermove', (event) => {
60 if (event.pointerId !== pointerId) {
61 return;
62 }
63 moveCallback(event.movementX, event.movementY);
64 event.preventDefault();
65 });
66
67 function scrollEnd(event: PointerEvent) {
68 if (event.pointerId !== pointerId) {
69 return;
70 }
71 pointerId = undefined;
72 thumb.classList.remove(THUMB_ACTIVE_CLASS);
73 }
74
75 track.addEventListener('pointerup', scrollEnd, { passive: true });
76 track.addEventListener('pointercancel', scrollEnd, { passive: true });
77
78 return { track, thumb };
79}
80
81function rebuildAnnotations(
82 view: EditorView,
83 scrollHeight: number,
84 trackYHeight: number,
85 holder: HTMLElement,
86 annotations: HTMLDivElement[],
87) {
88 const { state } = view;
89 const overlayAnnotationsHeight =
90 (view.contentHeight / scrollHeight) * trackYHeight;
91 const lineHeight = overlayAnnotationsHeight / state.doc.lines;
92
93 let i = 0;
94
95 function getOrCreateAnnotation(from: number, to?: number): HTMLDivElement {
96 const startLine = state.doc.lineAt(from).number;
97 const endLine = to === undefined ? startLine : state.doc.lineAt(to).number;
98 const top = (startLine - 1) * lineHeight;
99 const height = Math.max(
100 MIN_ANNOTATION_HEIGHT,
101 Math.max(1, endLine - startLine) * lineHeight,
102 );
103
104 let annotation: HTMLDivElement | undefined;
105 if (i < annotations.length) {
106 annotation = annotations[i];
107 }
108 if (annotation === undefined) {
109 annotation = holder.ownerDocument.createElement('div');
110 annotations.push(annotation);
111 holder.appendChild(annotation);
112 }
113 i += 1;
114
115 annotation.style.top = `${top}px`;
116 annotation.style.height = `${height}px`;
117
118 return annotation;
119 }
120
121 state.selection.ranges.forEach(({ head }) => {
122 const selectionAnnotation = getOrCreateAnnotation(head);
123 selectionAnnotation.className = ANNOTATION_SELECTION_CLASS;
124 selectionAnnotation.style.width = `${SCROLLBAR_WIDTH}px`;
125 });
126
127 const diagnosticsIter = getDiagnostics(state).iter();
128 while (diagnosticsIter.value !== null) {
129 const diagnosticAnnotation = getOrCreateAnnotation(
130 diagnosticsIter.from,
131 diagnosticsIter.to,
132 );
133 diagnosticAnnotation.className = `${ANNOTATION_DIAGNOSTIC_CLASS} ${ANNOTATION_DIAGNOSTIC_CLASS}-${diagnosticsIter.value.severity}`;
134 diagnosticAnnotation.style.width = `${ANNOTATION_WIDTH}px`;
135 diagnosticsIter.next();
136 }
137
138 const occurrences = view.state.field(findOccurrences);
139 const occurrencesIter = occurrences.iter();
140 while (occurrencesIter.value !== null) {
141 const occurrenceAnnotation = getOrCreateAnnotation(
142 occurrencesIter.from,
143 occurrencesIter.to,
144 );
145 occurrenceAnnotation.className = ANNOTATION_OCCURRENCE_CLASS;
146 occurrenceAnnotation.style.width = `${ANNOTATION_WIDTH}px`;
147 occurrenceAnnotation.style.right = `${ANNOTATION_WIDTH}px`;
148 occurrencesIter.next();
149 }
150
151 annotations
152 .splice(i)
153 .forEach((staleAnnotation) => holder.removeChild(staleAnnotation));
154}
155
156export default function scrollbarViewPlugin(
157 editorStore: EditorStore,
158): ViewPlugin<PluginValue> {
159 return ViewPlugin.define((view) => {
160 const { scrollDOM } = view;
161 const { ownerDocument, parentElement: parentDOM } = scrollDOM;
162 if (parentDOM === null) {
163 return {};
164 }
165
166 const holder = ownerDocument.createElement('div');
167 holder.className = HOLDER_CLASS;
168 parentDOM.replaceChild(holder, scrollDOM);
169 holder.appendChild(scrollDOM);
170
171 const spacer = ownerDocument.createElement('div');
172 spacer.className = SPACER_CLASS;
173 scrollDOM.insertBefore(spacer, scrollDOM.firstChild);
174
175 let gutterWidth = 0;
176
177 scrollDOM.addEventListener('click', (event) => {
178 const scrollX = scrollDOM.scrollLeft + event.offsetX;
179 const scrollY = scrollDOM.scrollTop + event.offsetY;
180 if (scrollX > gutterWidth && scrollY > view.contentHeight) {
181 event.preventDefault();
182 view.focus();
183 editorStore.dispatch({
184 scrollIntoView: true,
185 selection: EditorSelection.create([
186 EditorSelection.cursor(view.state.doc.length),
187 ]),
188 });
189 }
190 });
191
192 let factorY = 1;
193 let factorX = 1;
194
195 const { track: trackY, thumb: thumbY } = createScrollbar(
196 holder,
197 'y',
198 (_offsetX, offsetY) => {
199 const scaledOffset = offsetY / factorY;
200 const { height: scrollerHeight } = scrollDOM.getBoundingClientRect();
201 const target = Math.max(0, scaledOffset - scrollerHeight / 2);
202 scrollDOM.scrollTo({ top: target });
203 },
204 (_movementX, movementY) => {
205 scrollDOM.scrollBy({ top: movementY / factorY });
206 },
207 );
208
209 const { track: trackX, thumb: thumbX } = createScrollbar(
210 holder,
211 'x',
212 (offsetX) => {
213 const scaledOffset = offsetX / factorX;
214 const { width: scrollerWidth } = scrollDOM.getBoundingClientRect();
215 const target = Math.max(0, scaledOffset - scrollerWidth / 2);
216 scrollDOM.scrollTo({ left: target });
217 },
218 (movementX) => {
219 scrollDOM.scrollBy({ left: movementX / factorX });
220 },
221 );
222
223 const gutterDecoration = ownerDocument.createElement('div');
224 gutterDecoration.className = GUTTER_DECORATION_CLASS;
225 holder.appendChild(gutterDecoration);
226
227 const topDecoration = ownerDocument.createElement('div');
228 topDecoration.className = TOP_DECORATION_CLASS;
229 holder.appendChild(topDecoration);
230
231 const disposePanelReaction = reaction(
232 () => editorStore.searchPanel.state,
233 (panelOpen) => {
234 topDecoration.style.display = panelOpen ? 'none' : 'block';
235 },
236 { fireImmediately: true },
237 );
238
239 let gutters: Element | undefined;
240
241 let firstRun = true;
242 let firstRunTimeout: number | undefined;
243 let requested = false;
244 let rebuildRequested = false;
245
246 const annotations: HTMLDivElement[] = [];
247
248 let observer: ResizeObserver | undefined;
249
250 function update() {
251 requested = false;
252
253 if (gutters === undefined) {
254 gutters = scrollDOM.querySelector('.cm-gutters') ?? undefined;
255 if (gutters !== undefined && observer !== undefined) {
256 observer.observe(gutters);
257 }
258 }
259
260 const { height: scrollerHeight, width: scrollerWidth } =
261 scrollDOM.getBoundingClientRect();
262 const { scrollTop, scrollLeft, scrollWidth } = scrollDOM;
263 const scrollHeight =
264 view.contentHeight + scrollerHeight - view.defaultLineHeight;
265 if (firstRun) {
266 if (firstRunTimeout !== undefined) {
267 clearTimeout(firstRunTimeout);
268 }
269 firstRunTimeout = setTimeout(() => {
270 spacer.style.minHeight = `${scrollHeight}px`;
271 firstRun = false;
272 }, 0);
273 } else {
274 spacer.style.minHeight = `${scrollHeight}px`;
275 }
276 gutterWidth = gutters?.clientWidth ?? 0;
277 let trackYHeight = scrollerHeight;
278
279 // Prevent spurious horizontal scrollbar by rounding up to the nearest pixel.
280 if (scrollWidth > Math.ceil(scrollerWidth)) {
281 // Leave space for horizontal scrollbar.
282 trackYHeight -= SCROLLBAR_WIDTH;
283 // Alwalys leave space for annotation in the vertical scrollbar.
284 const trackXWidth = scrollerWidth - gutterWidth - SCROLLBAR_WIDTH;
285 const thumbWidth = trackXWidth * (scrollerWidth / scrollWidth);
286 factorX = (trackXWidth - thumbWidth) / (scrollWidth - scrollerWidth);
287 trackY.style.bottom = `${SCROLLBAR_WIDTH}px`;
288 trackX.style.display = 'block';
289 trackX.style.left = `${gutterWidth}px`;
290 thumbX.style.width = `${thumbWidth}px`;
291 thumbX.style.left = `${scrollLeft * factorX}px`;
292 scrollDOM.style.overflowX = 'scroll';
293 } else {
294 trackY.style.bottom = '0px';
295 trackX.style.display = 'none';
296 scrollDOM.style.overflowX = 'hidden';
297 }
298
299 const thumbHeight = trackYHeight * (scrollerHeight / scrollHeight);
300 factorY = (trackYHeight - thumbHeight) / (scrollHeight - scrollerHeight);
301 thumbY.style.display = 'block';
302 thumbY.style.height = `${thumbHeight}px`;
303 thumbY.style.top = `${scrollTop * factorY}px`;
304
305 gutterDecoration.style.left = `${gutterWidth}px`;
306 gutterDecoration.style.width = `${Math.max(
307 0,
308 Math.min(scrollLeft, SHADOW_WIDTH),
309 )}px`;
310
311 topDecoration.style.height = `${Math.max(
312 0,
313 Math.min(scrollTop, SHADOW_WIDTH),
314 )}px`;
315
316 if (rebuildRequested) {
317 rebuildAnnotations(
318 view,
319 scrollHeight,
320 trackYHeight,
321 holder,
322 annotations,
323 );
324 rebuildRequested = false;
325 }
326 }
327
328 function requestUpdate() {
329 if (!requested) {
330 requested = true;
331 view.requestMeasure({ read: update });
332 }
333 }
334
335 function requestRebuild() {
336 requestUpdate();
337 rebuildRequested = true;
338 }
339
340 observer = new ResizeObserver(requestRebuild);
341 observer.observe(holder);
342
343 scrollDOM.addEventListener('scroll', requestUpdate);
344
345 requestRebuild();
346
347 return {
348 update: requestRebuild,
349 destroy() {
350 disposePanelReaction();
351 observer?.disconnect();
352 scrollDOM.removeEventListener('scroll', requestUpdate);
353 parentDOM.replaceChild(holder, holder);
354 },
355 };
356 });
357}
diff --git a/subprojects/frontend/src/editor/semanticHighlighting.ts b/subprojects/frontend/src/editor/semanticHighlighting.ts
index 2c1bd67d..1f2e564c 100644
--- a/subprojects/frontend/src/editor/semanticHighlighting.ts
+++ b/subprojects/frontend/src/editor/semanticHighlighting.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { RangeSet, type TransactionSpec } from '@codemirror/state'; 7import { RangeSet, type TransactionSpec } from '@codemirror/state';
2import { Decoration } from '@codemirror/view'; 8import { Decoration } from '@codemirror/view';
3 9
diff --git a/subprojects/frontend/src/index.tsx b/subprojects/frontend/src/index.tsx
index 29b2b196..cb11e6c3 100644
--- a/subprojects/frontend/src/index.tsx
+++ b/subprojects/frontend/src/index.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { configure } from 'mobx'; 7import { configure } from 'mobx';
2import { type Root, createRoot } from 'react-dom/client'; 8import { type Root, createRoot } from 'react-dom/client';
3 9
diff --git a/subprojects/frontend/src/language/folding.ts b/subprojects/frontend/src/language/folding.ts
index 4dabfa27..b4d4ca22 100644
--- a/subprojects/frontend/src/language/folding.ts
+++ b/subprojects/frontend/src/language/folding.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { EditorState } from '@codemirror/state'; 7import type { EditorState } from '@codemirror/state';
2import type { SyntaxNode } from '@lezer/common'; 8import type { SyntaxNode } from '@lezer/common';
3 9
diff --git a/subprojects/frontend/src/language/indentation.ts b/subprojects/frontend/src/language/indentation.ts
index a0f7032d..8446d7fa 100644
--- a/subprojects/frontend/src/language/indentation.ts
+++ b/subprojects/frontend/src/language/indentation.ts
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2018-2021 by Marijn Haverbeke <marijnh@gmail.com> and others
3 * Copyright (C) 2021-2023 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: MIT OR EPL-2.0
6 */
7
1import type { TreeIndentContext } from '@codemirror/language'; 8import type { TreeIndentContext } from '@codemirror/language';
2 9
3/** 10/**
diff --git a/subprojects/frontend/src/language/problem.grammar b/subprojects/frontend/src/language/problem.grammar
index 704badab..a7b1fb0a 100644
--- a/subprojects/frontend/src/language/problem.grammar
+++ b/subprojects/frontend/src/language/problem.grammar
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1@detectDelim 7@detectDelim
2 8
3@external prop implicitCompletion from './props' 9@external prop implicitCompletion from './props'
diff --git a/subprojects/frontend/src/language/problemLanguageSupport.ts b/subprojects/frontend/src/language/problemLanguageSupport.ts
index c3ae7ed9..2121e05f 100644
--- a/subprojects/frontend/src/language/problemLanguageSupport.ts
+++ b/subprojects/frontend/src/language/problemLanguageSupport.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { 7import {
2 foldInside, 8 foldInside,
3 foldNodeProp, 9 foldNodeProp,
diff --git a/subprojects/frontend/src/language/props.ts b/subprojects/frontend/src/language/props.ts
index 65392e75..aa67145a 100644
--- a/subprojects/frontend/src/language/props.ts
+++ b/subprojects/frontend/src/language/props.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1/* eslint-disable import/prefer-default-export -- Lezer needs non-default exports */ 7/* eslint-disable import/prefer-default-export -- Lezer needs non-default exports */
2 8
3import { NodeProp } from '@lezer/common'; 9import { NodeProp } from '@lezer/common';
diff --git a/subprojects/frontend/src/theme/ThemeProvider.tsx b/subprojects/frontend/src/theme/ThemeProvider.tsx
index ff97d524..78146f25 100644
--- a/subprojects/frontend/src/theme/ThemeProvider.tsx
+++ b/subprojects/frontend/src/theme/ThemeProvider.tsx
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { 7import {
2 alpha, 8 alpha,
3 createTheme, 9 createTheme,
@@ -69,7 +75,7 @@ function createResponsiveTheme(
69 ...options, 75 ...options,
70 typography: { 76 typography: {
71 fontFamily: 77 fontFamily:
72 '"InterVariable", "Inter", "Roboto", "Helvetica", "Arial", sans-serif', 78 '"Inter Variable", "Inter", "Roboto", "Helvetica", "Arial", sans-serif',
73 fontWeightMedium: 600, 79 fontWeightMedium: 600,
74 fontWeightEditorNormal: 400, 80 fontWeightEditorNormal: 400,
75 fontWeightEditorBold: 700, 81 fontWeightEditorBold: 700,
@@ -79,7 +85,7 @@ function createResponsiveTheme(
79 }, 85 },
80 editor: { 86 editor: {
81 fontFamily: 87 fontFamily:
82 '"JetBrains MonoVariable", "JetBrains Mono", "Cascadia Code", "Fira Code", monospace', 88 '"JetBrains Mono Variable", "JetBrains Mono", "Cascadia Code", "Fira Code", monospace',
83 fontFeatureSettings: '"liga", "calt"', 89 fontFeatureSettings: '"liga", "calt"',
84 // `rem` for JetBrains MonoVariable make the text too large in Safari. 90 // `rem` for JetBrains MonoVariable make the text too large in Safari.
85 fontSize: '16px', 91 fontSize: '16px',
diff --git a/subprojects/frontend/src/theme/ThemeStore.ts b/subprojects/frontend/src/theme/ThemeStore.ts
index e09d8d99..7c657449 100644
--- a/subprojects/frontend/src/theme/ThemeStore.ts
+++ b/subprojects/frontend/src/theme/ThemeStore.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { makeAutoObservable } from 'mobx'; 7import { makeAutoObservable } from 'mobx';
2 8
3export enum ThemePreference { 9export enum ThemePreference {
diff --git a/subprojects/frontend/src/utils/CancelledError.ts b/subprojects/frontend/src/utils/CancelledError.ts
index ee23676f..96b67af7 100644
--- a/subprojects/frontend/src/utils/CancelledError.ts
+++ b/subprojects/frontend/src/utils/CancelledError.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1export default class CancelledError extends Error { 7export default class CancelledError extends Error {
2 constructor(message = 'Operation cancelled') { 8 constructor(message = 'Operation cancelled') {
3 super(message); 9 super(message);
diff --git a/subprojects/frontend/src/utils/PendingTask.ts b/subprojects/frontend/src/utils/PendingTask.ts
index d0b24c1f..80d1a346 100644
--- a/subprojects/frontend/src/utils/PendingTask.ts
+++ b/subprojects/frontend/src/utils/PendingTask.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import TimeoutError from './TimeoutError'; 7import TimeoutError from './TimeoutError';
2import getLogger from './getLogger'; 8import getLogger from './getLogger';
3 9
diff --git a/subprojects/frontend/src/utils/PriorityMutex.ts b/subprojects/frontend/src/utils/PriorityMutex.ts
index 78736141..c1215c76 100644
--- a/subprojects/frontend/src/utils/PriorityMutex.ts
+++ b/subprojects/frontend/src/utils/PriorityMutex.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import CancelledError from './CancelledError'; 7import CancelledError from './CancelledError';
2import PendingTask from './PendingTask'; 8import PendingTask from './PendingTask';
3import getLogger from './getLogger'; 9import getLogger from './getLogger';
diff --git a/subprojects/frontend/src/utils/TimeoutError.ts b/subprojects/frontend/src/utils/TimeoutError.ts
index eb800f40..21365502 100644
--- a/subprojects/frontend/src/utils/TimeoutError.ts
+++ b/subprojects/frontend/src/utils/TimeoutError.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1export default class TimeoutError extends Error { 7export default class TimeoutError extends Error {
2 constructor() { 8 constructor() {
3 super('Operation timed out'); 9 super('Operation timed out');
diff --git a/subprojects/frontend/src/utils/getLogger.ts b/subprojects/frontend/src/utils/getLogger.ts
index 301fd76d..09b0b17f 100644
--- a/subprojects/frontend/src/utils/getLogger.ts
+++ b/subprojects/frontend/src/utils/getLogger.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import styles, { type CSPair } from 'ansi-styles'; 7import styles, { type CSPair } from 'ansi-styles';
2import log from 'loglevel'; 8import log from 'loglevel';
3import prefix from 'loglevel-plugin-prefix'; 9import prefix from 'loglevel-plugin-prefix';
diff --git a/subprojects/frontend/src/utils/useDelayedSnackbar.ts b/subprojects/frontend/src/utils/useDelayedSnackbar.ts
index 03ad6caa..3d6df3e3 100644
--- a/subprojects/frontend/src/utils/useDelayedSnackbar.ts
+++ b/subprojects/frontend/src/utils/useDelayedSnackbar.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { 7import {
2 useSnackbar, 8 useSnackbar,
3 type SnackbarKey, 9 type SnackbarKey,
diff --git a/subprojects/frontend/src/xtext/BackendConfig.ts b/subprojects/frontend/src/xtext/BackendConfig.ts
index 41737c0b..4c7eac5f 100644
--- a/subprojects/frontend/src/xtext/BackendConfig.ts
+++ b/subprojects/frontend/src/xtext/BackendConfig.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1/* eslint-disable @typescript-eslint/no-redeclare -- Declare types with their companion objects */ 7/* eslint-disable @typescript-eslint/no-redeclare -- Declare types with their companion objects */
2 8
3import { z } from 'zod'; 9import { z } from 'zod';
diff --git a/subprojects/frontend/src/xtext/ContentAssistService.ts b/subprojects/frontend/src/xtext/ContentAssistService.ts
index 78f61c06..fd30c4f9 100644
--- a/subprojects/frontend/src/xtext/ContentAssistService.ts
+++ b/subprojects/frontend/src/xtext/ContentAssistService.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { 7import type {
2 Completion, 8 Completion,
3 CompletionContext, 9 CompletionContext,
diff --git a/subprojects/frontend/src/xtext/HighlightingService.ts b/subprojects/frontend/src/xtext/HighlightingService.ts
index a126ee40..447f1401 100644
--- a/subprojects/frontend/src/xtext/HighlightingService.ts
+++ b/subprojects/frontend/src/xtext/HighlightingService.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type EditorStore from '../editor/EditorStore'; 7import type EditorStore from '../editor/EditorStore';
2import type { IHighlightRange } from '../editor/semanticHighlighting'; 8import type { IHighlightRange } from '../editor/semanticHighlighting';
3 9
diff --git a/subprojects/frontend/src/xtext/OccurrencesService.ts b/subprojects/frontend/src/xtext/OccurrencesService.ts
index fc72ead2..c9c6c699 100644
--- a/subprojects/frontend/src/xtext/OccurrencesService.ts
+++ b/subprojects/frontend/src/xtext/OccurrencesService.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { Transaction } from '@codemirror/state'; 7import type { Transaction } from '@codemirror/state';
2import { debounce } from 'lodash-es'; 8import { debounce } from 'lodash-es';
3import ms from 'ms'; 9import ms from 'ms';
diff --git a/subprojects/frontend/src/xtext/UpdateService.ts b/subprojects/frontend/src/xtext/UpdateService.ts
index 63e28652..ee5ebde2 100644
--- a/subprojects/frontend/src/xtext/UpdateService.ts
+++ b/subprojects/frontend/src/xtext/UpdateService.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { ChangeDesc, Transaction } from '@codemirror/state'; 7import type { ChangeDesc, Transaction } from '@codemirror/state';
2import { debounce } from 'lodash-es'; 8import { debounce } from 'lodash-es';
3import { nanoid } from 'nanoid'; 9import { nanoid } from 'nanoid';
diff --git a/subprojects/frontend/src/xtext/UpdateStateTracker.ts b/subprojects/frontend/src/xtext/UpdateStateTracker.ts
index 5d4ce49e..4ce93ed6 100644
--- a/subprojects/frontend/src/xtext/UpdateStateTracker.ts
+++ b/subprojects/frontend/src/xtext/UpdateStateTracker.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { 7import {
2 type ChangeDesc, 8 type ChangeDesc,
3 ChangeSet, 9 ChangeSet,
diff --git a/subprojects/frontend/src/xtext/ValidationService.ts b/subprojects/frontend/src/xtext/ValidationService.ts
index 72414590..64fb63eb 100644
--- a/subprojects/frontend/src/xtext/ValidationService.ts
+++ b/subprojects/frontend/src/xtext/ValidationService.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { Diagnostic } from '@codemirror/lint'; 7import type { Diagnostic } from '@codemirror/lint';
2 8
3import type EditorStore from '../editor/EditorStore'; 9import type EditorStore from '../editor/EditorStore';
diff --git a/subprojects/frontend/src/xtext/XtextClient.ts b/subprojects/frontend/src/xtext/XtextClient.ts
index 14fb2430..e8181af0 100644
--- a/subprojects/frontend/src/xtext/XtextClient.ts
+++ b/subprojects/frontend/src/xtext/XtextClient.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import type { 7import type {
2 CompletionContext, 8 CompletionContext,
3 CompletionResult, 9 CompletionResult,
diff --git a/subprojects/frontend/src/xtext/XtextWebSocketClient.ts b/subprojects/frontend/src/xtext/XtextWebSocketClient.ts
index 6b734546..6bb7eec8 100644
--- a/subprojects/frontend/src/xtext/XtextWebSocketClient.ts
+++ b/subprojects/frontend/src/xtext/XtextWebSocketClient.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import { createAtom, makeAutoObservable, observable } from 'mobx'; 7import { createAtom, makeAutoObservable, observable } from 'mobx';
2import ms from 'ms'; 8import ms from 'ms';
3import { nanoid } from 'nanoid'; 9import { nanoid } from 'nanoid';
diff --git a/subprojects/frontend/src/xtext/fetchBackendConfig.ts b/subprojects/frontend/src/xtext/fetchBackendConfig.ts
index 15e976d8..71ff2e63 100644
--- a/subprojects/frontend/src/xtext/fetchBackendConfig.ts
+++ b/subprojects/frontend/src/xtext/fetchBackendConfig.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import BackendConfig, { ENDPOINT } from './BackendConfig'; 7import BackendConfig, { ENDPOINT } from './BackendConfig';
2 8
3export default async function fetchBackendConfig(): Promise<BackendConfig> { 9export default async function fetchBackendConfig(): Promise<BackendConfig> {
diff --git a/subprojects/frontend/src/xtext/webSocketMachine.ts b/subprojects/frontend/src/xtext/webSocketMachine.ts
index fc53fef3..2fb1f52f 100644
--- a/subprojects/frontend/src/xtext/webSocketMachine.ts
+++ b/subprojects/frontend/src/xtext/webSocketMachine.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import ms from 'ms'; 7import ms from 'ms';
2import { actions, assign, createMachine } from 'xstate'; 8import { actions, assign, createMachine } from 'xstate';
3 9
diff --git a/subprojects/frontend/src/xtext/xtextMessages.ts b/subprojects/frontend/src/xtext/xtextMessages.ts
index ec7a2a31..bbbff064 100644
--- a/subprojects/frontend/src/xtext/xtextMessages.ts
+++ b/subprojects/frontend/src/xtext/xtextMessages.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1/* eslint-disable @typescript-eslint/no-redeclare -- Declare types with their companion objects */ 7/* eslint-disable @typescript-eslint/no-redeclare -- Declare types with their companion objects */
2 8
3import { z } from 'zod'; 9import { z } from 'zod';
diff --git a/subprojects/frontend/src/xtext/xtextServiceResults.ts b/subprojects/frontend/src/xtext/xtextServiceResults.ts
index e93c6714..d3b467ad 100644
--- a/subprojects/frontend/src/xtext/xtextServiceResults.ts
+++ b/subprojects/frontend/src/xtext/xtextServiceResults.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1/* eslint-disable @typescript-eslint/no-redeclare -- Declare types with their companion objects */ 7/* eslint-disable @typescript-eslint/no-redeclare -- Declare types with their companion objects */
2 8
3import { z } from 'zod'; 9import { z } from 'zod';
diff --git a/subprojects/frontend/tsconfig.base.json b/subprojects/frontend/tsconfig.base.json
index b960e93c..5ef50b5e 100644
--- a/subprojects/frontend/tsconfig.base.json
+++ b/subprojects/frontend/tsconfig.base.json
@@ -1,10 +1,41 @@
1/*
2 * Copyright (c) Microsoft Corporation.
3 * Copyright (c) 2023 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: MIT OR EPL-2.0
6 *
7 * This file is based on
8 * https://github.com/tsconfig/bases/blob/7db25a41bc5a9c0f66d91f6f3aa28438afcb2f18/bases/strictest.json
9 * but we moved it inside the project for better tooling support.
10 */
1{ 11{
2 "extends": "@tsconfig/strictest",
3 "compilerOptions": { 12 "compilerOptions": {
4 "useDefineForClassFields": true, 13 "strict": true,
5 "verbatimModuleSyntax": false, 14 "allowUnusedLabels": false,
15 "allowUnreachableCode": false,
16 "exactOptionalPropertyTypes": true,
17 "noFallthroughCasesInSwitch": true,
18 "noImplicitOverride": true,
19 "noImplicitReturns": true,
20 "noPropertyAccessFromIndexSignature": true,
21 "noUncheckedIndexedAccess": true,
22 "noUnusedLocals": true,
23 "noUnusedParameters": true,
24 // "verbatimModuleSyntax" is incompatible with `import` syntax in modules
25 // with CommonJS import resolution, so we use "isolatedModules" only.
26 // "verbatimModuleSyntax": false,
6 "isolatedModules": true, 27 "isolatedModules": true,
28 "checkJs": true,
29 "esModuleInterop": true,
30 "skipLibCheck": true,
31 "forceConsistentCasingInFileNames": true,
32 "useDefineForClassFields": true,
33 // Project-specific configuration below.
7 "module": "es2022", 34 "module": "es2022",
8 "moduleResolution": "node" 35 "moduleResolution": "node",
36 "incremental": true,
37 "declaration": true,
38 "emitDeclarationOnly": true,
39 "outDir": "build/typescript"
9 } 40 }
10} 41}
diff --git a/subprojects/frontend/tsconfig.json b/subprojects/frontend/tsconfig.json
index 35abd789..06f6d8fe 100644
--- a/subprojects/frontend/tsconfig.json
+++ b/subprojects/frontend/tsconfig.json
@@ -1,8 +1,12 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1{ 6{
2 "extends": "./tsconfig.base.json", 7 "extends": "./tsconfig.base.json",
3 "compilerOptions": { 8 "compilerOptions": {
4 "jsx": "react-jsx", 9 "jsx": "react-jsx",
5 "noEmit": true,
6 "lib": ["DOM", "DOM.Iterable", "ES2022"], 10 "lib": ["DOM", "DOM.Iterable", "ES2022"],
7 "types": ["vite/client", "vite-plugin-pwa/client"] 11 "types": ["vite/client", "vite-plugin-pwa/client"]
8 }, 12 },
diff --git a/subprojects/frontend/tsconfig.node.json b/subprojects/frontend/tsconfig.node.json
index f4908bcb..47feaf97 100644
--- a/subprojects/frontend/tsconfig.node.json
+++ b/subprojects/frontend/tsconfig.node.json
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1{ 6{
2 "extends": "./tsconfig.base.json", 7 "extends": "./tsconfig.base.json",
3 "compilerOptions": { 8 "compilerOptions": {
@@ -10,6 +15,7 @@
10 "include": [ 15 "include": [
11 ".eslintrc.cjs", 16 ".eslintrc.cjs",
12 "config/*.ts", 17 "config/*.ts",
18 "config/*.cjs",
13 "prettier.config.cjs", 19 "prettier.config.cjs",
14 "types/node", 20 "types/node",
15 "vite.config.ts" 21 "vite.config.ts"
diff --git a/subprojects/frontend/tsconfig.shared.json b/subprojects/frontend/tsconfig.shared.json
index b7e1de55..154fe122 100644
--- a/subprojects/frontend/tsconfig.shared.json
+++ b/subprojects/frontend/tsconfig.shared.json
@@ -1,13 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1{ 6{
2 "extends": "./tsconfig.base.json", 7 "extends": "./tsconfig.base.json",
3 "compilerOptions": { 8 "compilerOptions": {
4 "composite": true, 9 "composite": true,
5 "lib": ["ES2022"], 10 "lib": ["ES2022"],
6 "types": [], 11 "types": [],
7 "emitDeclarationOnly": true,
8 "outDir": "build/typescript"
9 }, 12 },
10 "include": [ 13 "include": [
11 "src/xtext/BackendConfig.ts", 14 "src/xtext/BackendConfig.ts"
12 ] 15 ]
13} 16}
diff --git a/subprojects/frontend/types/ImportMeta.d.ts b/subprojects/frontend/types/ImportMeta.d.ts
index c32b48f5..f5a32ef1 100644
--- a/subprojects/frontend/types/ImportMeta.d.ts
+++ b/subprojects/frontend/types/ImportMeta.d.ts
@@ -1,3 +1,10 @@
1/*
2 * Copyright (c) 2019-present, Yuxi (Evan) You and Vite contributors
3 * Copyright (c) 2021-2023 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: MIT OR EPL-2.0
6 */
7
1interface ImportMeta { 8interface ImportMeta {
2 env: { 9 env: {
3 BASE_URL: string; 10 BASE_URL: string;
diff --git a/subprojects/frontend/types/grammar.d.ts b/subprojects/frontend/types/grammar.d.ts
index 1480085b..e7a7eebf 100644
--- a/subprojects/frontend/types/grammar.d.ts
+++ b/subprojects/frontend/types/grammar.d.ts
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
3 * Copyright (C) 2021-2023 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: MIT OR EPL-2.0
6 */
7
1declare module '*.grammar' { 8declare module '*.grammar' {
2 import type { LRParser } from '@lezer/lr'; 9 import type { LRParser } from '@lezer/lr';
3 10
diff --git a/subprojects/frontend/types/node/@lezer-generator-rollup.d.ts b/subprojects/frontend/types/node/@lezer-generator-rollup.d.ts
index 9c1ff03e..4ef9f4e3 100644
--- a/subprojects/frontend/types/node/@lezer-generator-rollup.d.ts
+++ b/subprojects/frontend/types/node/@lezer-generator-rollup.d.ts
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2018 by Marijn Haverbeke <marijn@haverbeke.berlin> and others
3 * Copyright (C) 2021-2023 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: MIT OR EPL-2.0
6 */
7
1// We have to explicitly redeclare the type of the `./rollup` ESM export of `@lezer/generator`, 8// We have to explicitly redeclare the type of the `./rollup` ESM export of `@lezer/generator`,
2// because TypeScript can't find it on its own even with `"moduleResolution": "Node16"`. 9// because TypeScript can't find it on its own even with `"moduleResolution": "Node16"`.
3declare module '@lezer/generator/rollup' { 10declare module '@lezer/generator/rollup' {
diff --git a/subprojects/frontend/types/windowControlsOverlay.d.ts b/subprojects/frontend/types/windowControlsOverlay.d.ts
index d8f3182f..2513d620 100644
--- a/subprojects/frontend/types/windowControlsOverlay.d.ts
+++ b/subprojects/frontend/types/windowControlsOverlay.d.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1interface WindowControlsOverlayGeometryChangeEvent extends Event { 7interface WindowControlsOverlayGeometryChangeEvent extends Event {
2 titlebarAreaRect: DOMRect; 8 titlebarAreaRect: DOMRect;
3 9
diff --git a/subprojects/frontend/vite.config.ts b/subprojects/frontend/vite.config.ts
index cd9993cc..9e08ccc4 100644
--- a/subprojects/frontend/vite.config.ts
+++ b/subprojects/frontend/vite.config.ts
@@ -1,3 +1,9 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
1import path from 'node:path'; 7import path from 'node:path';
2import { fileURLToPath } from 'node:url'; 8import { fileURLToPath } from 'node:url';
3 9
diff --git a/subprojects/language-ide/build.gradle b/subprojects/language-ide/build.gradle
deleted file mode 100644
index 3786762b..00000000
--- a/subprojects/language-ide/build.gradle
+++ /dev/null
@@ -1,18 +0,0 @@
1plugins {
2 id 'refinery-java-library'
3 id 'refinery-xtext-conventions'
4}
5
6dependencies {
7 api project(':refinery-language')
8 api libs.xtext.ide
9 api libs.xtext.xbase.ide
10}
11
12def generateXtextLanguage = project(':refinery-language').tasks.named('generateXtextLanguage')
13
14for (taskName in ['compileJava', 'processResources']) {
15 tasks.named(taskName) {
16 dependsOn generateXtextLanguage
17 }
18}
diff --git a/subprojects/language-ide/build.gradle.kts b/subprojects/language-ide/build.gradle.kts
new file mode 100644
index 00000000..1259cd67
--- /dev/null
+++ b/subprojects/language-ide/build.gradle.kts
@@ -0,0 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 id("tools.refinery.gradle.java-library")
9 id("tools.refinery.gradle.xtext-generated")
10}
11
12dependencies {
13 api(project(":refinery-language"))
14 api(libs.xtext.ide)
15 api(libs.xtext.xbase.ide)
16 xtextGenerated(project(":refinery-language", "generatedIdeSources"))
17}
18
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeModule.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeModule.java
index fb620065..122fe874 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeModule.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeModule.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language.ide; 10package tools.refinery.language.ide;
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeSetup.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeSetup.java
index 5b88d41f..9d77e022 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeSetup.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/ProblemIdeSetup.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language.ide; 10package tools.refinery.language.ide;
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/FuzzyMatcher.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/FuzzyMatcher.java
index fe722ca1..4511223b 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/FuzzyMatcher.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/FuzzyMatcher.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.ide.contentassist; 6package tools.refinery.language.ide.contentassist;
2 7
3import org.eclipse.xtext.ide.editor.contentassist.IPrefixMatcher; 8import org.eclipse.xtext.ide.editor.contentassist.IPrefixMatcher;
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/ProblemCrossrefProposalProvider.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/ProblemCrossrefProposalProvider.java
index 8f04ed00..e194ee31 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/ProblemCrossrefProposalProvider.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/ProblemCrossrefProposalProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.ide.contentassist; 6package tools.refinery.language.ide.contentassist;
2 7
3import java.util.Objects; 8import java.util.Objects;
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingPartialProblemContentAssistParser.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingPartialProblemContentAssistParser.java
index 3ece6f67..146bd8da 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingPartialProblemContentAssistParser.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingPartialProblemContentAssistParser.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.ide.contentassist; 6package tools.refinery.language.ide.contentassist;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingProblemParser.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingProblemParser.java
index 80dfee5c..f906d881 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingProblemParser.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/TokenSourceInjectingProblemParser.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.ide.contentassist; 6package tools.refinery.language.ide.contentassist;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/antlr/ProblemTokenSource.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/antlr/ProblemTokenSource.java
index c6c7f41f..fdc17c4f 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/antlr/ProblemTokenSource.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/contentassist/antlr/ProblemTokenSource.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.29.0.M2 8 * generated by Xtext 2.29.0.M2
3 */ 9 */
4package tools.refinery.language.ide.contentassist.antlr; 10package tools.refinery.language.ide.contentassist.antlr;
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
index 7703e4e3..e8f97d51 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.ide.syntaxcoloring; 6package tools.refinery.language.ide.syntaxcoloring;
2 7
3import com.google.common.collect.ImmutableList; 8import com.google.common.collect.ImmutableList;
diff --git a/subprojects/language-model/META-INF/MANIFEST.MF.license b/subprojects/language-model/META-INF/MANIFEST.MF.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/language-model/META-INF/MANIFEST.MF.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/language-model/build.gradle b/subprojects/language-model/build.gradle
deleted file mode 100644
index 275db188..00000000
--- a/subprojects/language-model/build.gradle
+++ /dev/null
@@ -1,55 +0,0 @@
1plugins {
2 id 'refinery-java-library'
3 id 'refinery-mwe2'
4 id 'refinery-sonarqube'
5}
6
7dependencies {
8 api libs.ecore
9 api libs.ecore.xmi
10 mwe2 libs.ecore.codegen
11 mwe2 libs.mwe.utils
12 mwe2 libs.mwe2.lib
13 mwe2 libs.xtext.core
14 mwe2 libs.xtext.xbase
15}
16
17sourceSets {
18 main {
19 java.srcDirs += ['src/main/emf-gen']
20 }
21}
22
23def generateEPackage = tasks.register('generateEPackage', JavaExec) {
24 mainClass = 'org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher'
25 classpath = configurations.mwe2
26 inputs.file 'src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2'
27 inputs.file 'src/main/resources/model/problem.ecore'
28 inputs.file 'src/main/resources/model/problem.genmodel'
29 outputs.dir 'src/main/emf-gen'
30 args += 'src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2'
31 args += '-p'
32 args += "rootPath=/${projectDir}"
33}
34
35for (taskName in ['compileJava', 'processResources', 'generateEclipseSourceFolders']) {
36 tasks.named(taskName) {
37 dependsOn generateEPackage
38 }
39}
40
41tasks.named('clean') {
42 delete 'src/main/emf-gen'
43}
44
45sonarqube.properties {
46 properties['sonar.exclusions'] += [
47 'src/main/emf-gen/**',
48 ]
49}
50
51eclipse.project.natures += [
52 'org.eclipse.sirius.nature.modelingproject',
53 'org.eclipse.pde.PluginNature',
54 'org.eclipse.xtext.ui.shared.xtextNature'
55]
diff --git a/subprojects/language-model/build.gradle.kts b/subprojects/language-model/build.gradle.kts
new file mode 100644
index 00000000..59ff9046
--- /dev/null
+++ b/subprojects/language-model/build.gradle.kts
@@ -0,0 +1,65 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import tools.refinery.gradle.utils.SonarPropertiesUtils
8
9plugins {
10 id("tools.refinery.gradle.java-library")
11 id("tools.refinery.gradle.mwe2")
12 id("tools.refinery.gradle.sonarqube")
13}
14
15dependencies {
16 api(libs.ecore)
17 api(libs.ecore.xmi)
18 mwe2(libs.ecore.codegen)
19 mwe2(libs.mwe.utils)
20 mwe2(libs.mwe2.lib)
21 mwe2(libs.xtext.core)
22 mwe2(libs.xtext.xbase)
23}
24
25sourceSets {
26 main {
27 java.srcDir("src/main/emf-gen")
28 }
29}
30
31tasks {
32 val generateEPackage by registering(JavaExec::class) {
33 mainClass.set("org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher")
34 classpath(configurations.mwe2)
35 inputs.file("src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2")
36 inputs.file("src/main/resources/model/problem.ecore")
37 inputs.file("src/main/resources/model/problem.genmodel")
38 outputs.file("build.properties")
39 outputs.file("META-INF/MANIFEST.MF")
40 outputs.file("plugin.xml")
41 outputs.file("plugin.properties")
42 outputs.dir("src/main/emf-gen")
43 args("src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2", "-p", "rootPath=/$projectDir")
44 }
45
46 for (taskName in listOf("compileJava", "processResources", "generateEclipseSourceFolders")) {
47 named(taskName) {
48 dependsOn(generateEPackage)
49 }
50 }
51
52 clean {
53 delete("src/main/emf-gen")
54 }
55}
56
57sonarqube.properties {
58 SonarPropertiesUtils.addToList(properties, "sonar.exclusions", "src/main/emf-gen/**")
59}
60
61eclipse.project.natures.plusAssign(listOf(
62 "org.eclipse.sirius.nature.modelingproject",
63 "org.eclipse.pde.PluginNature",
64 "org.eclipse.xtext.ui.shared.xtextNature",
65))
diff --git a/subprojects/language-model/build.properties b/subprojects/language-model/build.properties
index 65dfc7c4..9b9859ff 100644
--- a/subprojects/language-model/build.properties
+++ b/subprojects/language-model/build.properties
@@ -1,4 +1,6 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
1# 2#
3# SPDX-License-Identifier: EPL-2.0
2 4
3bin.includes = .,\ 5bin.includes = .,\
4 src/main/resources/model/,\ 6 src/main/resources/model/,\
diff --git a/subprojects/language-model/plugin.properties b/subprojects/language-model/plugin.properties
index c4fb7e23..c410feb7 100644
--- a/subprojects/language-model/plugin.properties
+++ b/subprojects/language-model/plugin.properties
@@ -1,4 +1,6 @@
1# SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
1# 2#
3# SPDX-License-Identifier: EPL-2.0
2 4
3pluginName = tools.refinery.language.model 5pluginName = tools.refinery.language.model
4providerName = refinery.tools 6providerName = refinery.tools
diff --git a/subprojects/language-model/plugin.xml b/subprojects/language-model/plugin.xml
index 4ca005a8..ef1e21f4 100644
--- a/subprojects/language-model/plugin.xml
+++ b/subprojects/language-model/plugin.xml
@@ -2,6 +2,9 @@
2<?eclipse version="3.0"?> 2<?eclipse version="3.0"?>
3 3
4<!-- 4<!--
5 SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
6
7 SPDX-License-Identifier: EPL-2.0
5--> 8-->
6 9
7<plugin> 10<plugin>
diff --git a/subprojects/language-model/problem.aird.license b/subprojects/language-model/problem.aird.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/language-model/problem.aird.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/language-model/src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2 b/subprojects/language-model/src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2
index 15198d69..074b6b71 100644
--- a/subprojects/language-model/src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2
+++ b/subprojects/language-model/src/main/java/tools/refinery/language/model/GenerateProblemModel.mwe2
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1module tools.refinery.language.model.GenerateProblemModel 6module tools.refinery.language.model.GenerateProblemModel
2 7
3Workflow { 8Workflow {
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore.license b/subprojects/language-model/src/main/resources/model/problem.ecore.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/language-model/src/main/resources/model/problem.ecore.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/language-model/src/main/resources/model/problem.genmodel.license b/subprojects/language-model/src/main/resources/model/problem.genmodel.license
new file mode 100644
index 00000000..e5db6ccd
--- /dev/null
+++ b/subprojects/language-model/src/main/resources/model/problem.genmodel.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: EPL-2.0
diff --git a/subprojects/language-semantics/build.gradle b/subprojects/language-semantics/build.gradle
deleted file mode 100644
index 4f43ad24..00000000
--- a/subprojects/language-semantics/build.gradle
+++ /dev/null
@@ -1,11 +0,0 @@
1plugins {
2 id 'refinery-java-library'
3}
4
5dependencies {
6 implementation libs.eclipseCollections
7 implementation libs.eclipseCollections.api
8 api project(':refinery-language')
9 api project(':refinery-store')
10 testImplementation testFixtures(project(':refinery-language'))
11}
diff --git a/subprojects/language-semantics/build.gradle.kts b/subprojects/language-semantics/build.gradle.kts
new file mode 100644
index 00000000..38cd9e0d
--- /dev/null
+++ b/subprojects/language-semantics/build.gradle.kts
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 id("tools.refinery.gradle.java-library")
9}
10
11dependencies {
12 implementation(libs.eclipseCollections)
13 implementation(libs.eclipseCollections.api)
14 api(project(":refinery-language"))
15 api(project(":refinery-store"))
16 testImplementation(testFixtures(project(":refinery-language")))
17}
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java
index a6712a89..06b8ad77 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.semantics.model; 6package tools.refinery.language.semantics.model;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
@@ -39,8 +44,8 @@ public class ModelInitializer {
39 var isEqualsRelation = relation == builtinSymbols.equals(); 44 var isEqualsRelation = relation == builtinSymbols.equals();
40 var decisionTree = mergeAssertions(relationInfo, isEqualsRelation); 45 var decisionTree = mergeAssertions(relationInfo, isEqualsRelation);
41 var defaultValue = isEqualsRelation ? TruthValue.FALSE : TruthValue.UNKNOWN; 46 var defaultValue = isEqualsRelation ? TruthValue.FALSE : TruthValue.UNKNOWN;
42 relationTrace.put(relation, new Symbol<>(relationInfo.name(), relationInfo.arity(), TruthValue.class, defaultValue 47 relationTrace.put(relation, Symbol.of(
43 )); 48 relationInfo.name(), relationInfo.arity(), TruthValue.class, defaultValue));
44 } 49 }
45 } 50 }
46 51
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTree.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTree.java
index 55edee6d..c1afecf9 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTree.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTree.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.semantics.model.internal; 6package tools.refinery.language.semantics.model.internal;
2 7
3import org.eclipse.collections.api.factory.primitive.IntObjectMaps; 8import org.eclipse.collections.api.factory.primitive.IntObjectMaps;
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeCursor.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeCursor.java
index fdf8e452..9a1e15a3 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeCursor.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeCursor.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.semantics.model.internal; 6package tools.refinery.language.semantics.model.internal;
2 7
3import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeNode.java
index b81ea3fe..3c54e3c5 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeNode.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeNode.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.semantics.model.internal; 6package tools.refinery.language.semantics.model.internal;
2 7
3import org.eclipse.collections.api.LazyIntIterable; 8import org.eclipse.collections.api.LazyIntIterable;
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeValue.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeValue.java
index 495a53dd..915ae2bf 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeValue.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/DecisionTreeValue.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.semantics.model.internal; 6package tools.refinery.language.semantics.model.internal;
2 7
3import tools.refinery.store.representation.TruthValue; 8import tools.refinery.store.representation.TruthValue;
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/IntermediateNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/IntermediateNode.java
index c4200509..e6f01d48 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/IntermediateNode.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/IntermediateNode.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.semantics.model.internal; 6package tools.refinery.language.semantics.model.internal;
2 7
3import org.eclipse.collections.api.LazyIntIterable; 8import org.eclipse.collections.api.LazyIntIterable;
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/TerminalNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/TerminalNode.java
index 4af836ff..ce49aa62 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/TerminalNode.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/internal/TerminalNode.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.semantics.model.internal; 6package tools.refinery.language.semantics.model.internal;
2 7
3import org.eclipse.collections.api.LazyIntIterable; 8import org.eclipse.collections.api.LazyIntIterable;
diff --git a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/model/tests/DecisionTreeTests.java b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/model/tests/DecisionTreeTests.java
index 4630bf53..b3fcbabb 100644
--- a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/model/tests/DecisionTreeTests.java
+++ b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/model/tests/DecisionTreeTests.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.semantics.model.tests; 6package tools.refinery.language.semantics.model.tests;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/language-web/build.gradle b/subprojects/language-web/build.gradle
deleted file mode 100644
index 8d277a5b..00000000
--- a/subprojects/language-web/build.gradle
+++ /dev/null
@@ -1,87 +0,0 @@
1plugins {
2 id 'refinery-java-application'
3 id 'refinery-xtext-conventions'
4}
5
6configurations {
7 webapp {
8 canBeConsumed = false
9 canBeResolved = true
10 }
11
12 all {
13 // Use log4j-over-slf4j instead of log4j 1.x
14 exclude group: 'log4j', module: 'log4j'
15 }
16}
17
18dependencies {
19 implementation project(':refinery-language')
20 implementation project(':refinery-language-ide')
21 implementation libs.jetty.server
22 implementation libs.jetty.servlet
23 implementation libs.jetty.websocket.server
24 implementation libs.slf4j.api
25 implementation libs.slf4j.simple
26 implementation libs.slf4j.log4j
27 implementation libs.xtext.web
28 webapp project(path: ':refinery-frontend', configuration: 'productionAssets')
29 testImplementation testFixtures(project(':refinery-language'))
30 testImplementation libs.jetty.websocket.client
31}
32
33def generateXtextLanguage = project(':refinery-language').tasks.named('generateXtextLanguage')
34
35for (taskName in ['compileJava', 'processResources']) {
36 tasks.named(taskName) {
37 dependsOn generateXtextLanguage
38 }
39}
40
41mainClassName = 'tools.refinery.language.web.ServerLauncher'
42
43// Enable JDK 19 preview features for virtual thread support.
44application {
45 applicationDefaultJvmArgs += '--enable-preview'
46}
47tasks.withType(JavaCompile) {
48 options.release = 19
49 options.compilerArgs += '--enable-preview'
50}
51tasks.withType(Test) {
52 jvmArgs += '--enable-preview'
53}
54
55tasks.named('jar') {
56 dependsOn project.configurations.webapp
57 from(project.configurations.webapp) {
58 into 'webapp'
59 }
60}
61
62tasks.named('shadowJar') {
63 dependsOn project.configurations.webapp
64 from(project.sourceSets.main.output)
65 configurations = [project.configurations.runtimeClasspath]
66 exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA','schema/*',
67 '.options', '.api_description', '*.profile', 'about.*', 'about_*.html', 'about_files/*',
68 'plugin.xml', 'systembundle.properties', 'profile.list', 'META-INF/resources/xtext/**')
69 append('plugin.properties')
70 from(project.configurations.webapp) {
71 into 'webapp'
72 }
73}
74
75tasks.register('serveBackend', JavaExec) {
76 dependsOn project.configurations.webapp
77 dependsOn sourceSets.main.runtimeClasspath
78 classpath = sourceSets.main.runtimeClasspath
79 mainClass = mainClassName
80 // Enable JDK 19 preview features for virtual thread support.
81 jvmArgs += '--enable-preview'
82 standardInput = System.in
83 def baseResource = project.configurations.webapp.incoming.artifacts.artifactFiles.first()
84 environment BASE_RESOURCE: baseResource
85 group = 'run'
86 description = 'Start a Jetty web server serving the Xtex API and assets.'
87}
diff --git a/subprojects/language-web/build.gradle.kts b/subprojects/language-web/build.gradle.kts
new file mode 100644
index 00000000..562a1bd9
--- /dev/null
+++ b/subprojects/language-web/build.gradle.kts
@@ -0,0 +1,68 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 id("tools.refinery.gradle.java-application")
9 id("tools.refinery.gradle.xtext-generated")
10}
11
12val webapp: Configuration by configurations.creating {
13 isCanBeConsumed = false
14 isCanBeResolved = true
15}
16
17dependencies {
18 implementation(project(":refinery-language"))
19 implementation(project(":refinery-language-ide"))
20 implementation(libs.jetty.server)
21 implementation(libs.jetty.servlet)
22 implementation(libs.jetty.websocket.api)
23 implementation(libs.jetty.websocket.server)
24 implementation(libs.slf4j.api)
25 implementation(libs.xtext.web)
26 xtextGenerated(project(":refinery-language", "generatedWebSources"))
27 webapp(project(":refinery-frontend", "productionAssets"))
28 testImplementation(testFixtures(project(":refinery-language")))
29 testImplementation(libs.jetty.websocket.client)
30}
31
32application {
33 mainClass.set("tools.refinery.language.web.ServerLauncher")
34}
35
36tasks {
37 jar {
38 dependsOn(webapp)
39 from(webapp) {
40 into("webapp")
41 }
42 }
43
44 shadowJar {
45 dependsOn(webapp)
46 from(project.sourceSets.main.map { it.output })
47 exclude("META-INF/INDEX.LIST", "META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", "schema/*",
48 ".options", ".api_description", "*.profile", "about.*", "about_*.html", "about_files/*",
49 "plugin.xml", "systembundle.properties", "profile.list", "META-INF/resources/xtext/**")
50 append("plugin.properties")
51 from(webapp) {
52 into("webapp")
53 }
54 }
55
56 register<JavaExec>("serveBackend") {
57 dependsOn(webapp)
58 val mainRuntimeClasspath = sourceSets.main.map { it.runtimeClasspath }
59 dependsOn(mainRuntimeClasspath)
60 classpath(mainRuntimeClasspath)
61 mainClass.set(application.mainClass)
62 standardInput = System.`in`
63 val baseResource = webapp.incoming.artifacts.artifactFiles.first()
64 environment("BASE_RESOURCE", baseResource)
65 group = "run"
66 description = "Start a Jetty web server serving the Xtex API and assets."
67 }
68}
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/CacheControlFilter.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/CacheControlFilter.java
index fd2af1b2..53f78c3c 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/CacheControlFilter.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/CacheControlFilter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web; 6package tools.refinery.language.web;
2 7
3import jakarta.servlet.*; 8import jakarta.servlet.*;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java
index 706413a9..b0197c01 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebModule.java
@@ -1,15 +1,19 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language.web; 10package tools.refinery.language.web;
5 11
6import org.eclipse.xtext.ide.ExecutorServiceProvider;
7import org.eclipse.xtext.web.server.XtextServiceDispatcher; 12import org.eclipse.xtext.web.server.XtextServiceDispatcher;
8import org.eclipse.xtext.web.server.model.IWebDocumentProvider; 13import org.eclipse.xtext.web.server.model.IWebDocumentProvider;
9import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess; 14import org.eclipse.xtext.web.server.model.XtextWebDocumentAccess;
10import org.eclipse.xtext.web.server.occurrences.OccurrencesService; 15import org.eclipse.xtext.web.server.occurrences.OccurrencesService;
11import tools.refinery.language.web.occurrences.ProblemOccurrencesService; 16import tools.refinery.language.web.occurrences.ProblemOccurrencesService;
12import tools.refinery.language.web.xtext.VirtualThreadExecutorServiceProvider;
13import tools.refinery.language.web.xtext.server.push.PushServiceDispatcher; 17import tools.refinery.language.web.xtext.server.push.PushServiceDispatcher;
14import tools.refinery.language.web.xtext.server.push.PushWebDocumentAccess; 18import tools.refinery.language.web.xtext.server.push.PushWebDocumentAccess;
15import tools.refinery.language.web.xtext.server.push.PushWebDocumentProvider; 19import tools.refinery.language.web.xtext.server.push.PushWebDocumentProvider;
@@ -33,8 +37,4 @@ public class ProblemWebModule extends AbstractProblemWebModule {
33 public Class<? extends OccurrencesService> bindOccurrencesService() { 37 public Class<? extends OccurrencesService> bindOccurrencesService() {
34 return ProblemOccurrencesService.class; 38 return ProblemOccurrencesService.class;
35 } 39 }
36
37 public Class<? extends ExecutorServiceProvider> bindExecutorServiceProvider() {
38 return VirtualThreadExecutorServiceProvider.class;
39 }
40} 40}
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSetup.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSetup.java
index 4738bc80..53a394d8 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSetup.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSetup.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language.web; 10package tools.refinery.language.web;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSocketServlet.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSocketServlet.java
index df67b521..7b48cde8 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSocketServlet.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/ProblemWebSocketServlet.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web; 6package tools.refinery.language.web;
2 7
3import org.eclipse.xtext.util.DisposableRegistry; 8import org.eclipse.xtext.util.DisposableRegistry;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java
index c41db799..7b094fde 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web; 6package tools.refinery.language.web;
2 7
3import jakarta.servlet.*; 8import jakarta.servlet.*;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/ServerLauncher.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/ServerLauncher.java
index f49f46ee..ad19e77d 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/ServerLauncher.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/ServerLauncher.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language.web; 10package tools.refinery.language.web;
@@ -13,6 +19,7 @@ import org.eclipse.jetty.ee10.websocket.server.config.JettyWebSocketServletConta
13import org.eclipse.jetty.server.Server; 19import org.eclipse.jetty.server.Server;
14import org.eclipse.jetty.util.resource.Resource; 20import org.eclipse.jetty.util.resource.Resource;
15import org.eclipse.jetty.util.resource.ResourceFactory; 21import org.eclipse.jetty.util.resource.ResourceFactory;
22import org.eclipse.jetty.util.thread.QueuedThreadPool;
16import org.slf4j.Logger; 23import org.slf4j.Logger;
17import org.slf4j.LoggerFactory; 24import org.slf4j.LoggerFactory;
18import tools.refinery.language.web.config.BackendConfigServlet; 25import tools.refinery.language.web.config.BackendConfigServlet;
@@ -43,7 +50,8 @@ public class ServerLauncher {
43 private final Server server; 50 private final Server server;
44 51
45 public ServerLauncher(InetSocketAddress bindAddress, String[] allowedOrigins, String webSocketUrl) { 52 public ServerLauncher(InetSocketAddress bindAddress, String[] allowedOrigins, String webSocketUrl) {
46 server = VirtualThreadUtils.newServerWithVirtualThreadsThreadPool("jetty", bindAddress); 53 server = new Server(bindAddress);
54 ((QueuedThreadPool) server.getThreadPool()).setName("jetty");
47 var handler = new ServletContextHandler(); 55 var handler = new ServletContextHandler();
48 addSessionHandler(handler); 56 addSessionHandler(handler);
49 addProblemServlet(handler, allowedOrigins); 57 addProblemServlet(handler, allowedOrigins);
@@ -105,7 +113,7 @@ public class ServerLauncher {
105 var indexUrlInJar = ServerLauncher.class.getResource("/webapp/index.html"); 113 var indexUrlInJar = ServerLauncher.class.getResource("/webapp/index.html");
106 if (indexUrlInJar != null) { 114 if (indexUrlInJar != null) {
107 // If the app is packaged in the jar, serve it. 115 // If the app is packaged in the jar, serve it.
108 URI webRootUri = null; 116 URI webRootUri;
109 try { 117 try {
110 webRootUri = URI.create(indexUrlInJar.toURI().toASCIIString().replaceFirst("/index.html$", "/")); 118 webRootUri = URI.create(indexUrlInJar.toURI().toASCIIString().replaceFirst("/index.html$", "/"));
111 } catch (URISyntaxException e) { 119 } catch (URISyntaxException e) {
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/VirtualThreadUtils.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/VirtualThreadUtils.java
deleted file mode 100644
index a055e755..00000000
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/VirtualThreadUtils.java
+++ /dev/null
@@ -1,52 +0,0 @@
1package tools.refinery.language.web;
2
3import org.eclipse.jetty.server.Server;
4import org.eclipse.jetty.server.ServerConnector;
5import org.eclipse.jetty.util.thread.QueuedThreadPool;
6import org.eclipse.jetty.util.thread.ThreadPool;
7
8import java.net.InetSocketAddress;
9import java.time.Duration;
10import java.util.concurrent.ExecutorService;
11import java.util.concurrent.Executors;
12
13public final class VirtualThreadUtils {
14 private VirtualThreadUtils() {
15 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
16 }
17
18 public static ExecutorService newNamedVirtualThreadsExecutor(String name) {
19 // Based on
20 // https://github.com/eclipse/jetty.project/blob/83154b4ffe4767ef44981598d6c26e6a5d32e57c/jetty-server/src/main/config/etc/jetty-threadpool-virtual-preview.xml
21 return Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
22 .allowSetThreadLocals(true)
23 .inheritInheritableThreadLocals(false)
24 .name(name + "-virtual-", 0)
25 .factory());
26 }
27
28 public static ThreadPool newThreadPoolWithVirtualThreadsExecutor(String name) {
29 // Based on
30 // https://github.com/eclipse/jetty.project/blob/83154b4ffe4767ef44981598d6c26e6a5d32e57c/jetty-server/src/main/config/etc/jetty-threadpool-virtual-preview.xml
31 int timeout = (int) Duration.ofMinutes(1).toMillis();
32 var threadPool = new QueuedThreadPool(200, 10, timeout, -1, null, null);
33 threadPool.setName(name);
34 threadPool.setDetailedDump(false);
35 threadPool.setVirtualThreadsExecutor(newNamedVirtualThreadsExecutor(name));
36 return threadPool;
37 }
38
39 public static Server newServerWithVirtualThreadsThreadPool(String name, InetSocketAddress listenAddress) {
40 var server = new Server(newThreadPoolWithVirtualThreadsExecutor(name));
41 var connector = new ServerConnector(server);
42 try {
43 connector.setHost(listenAddress.getHostName());
44 connector.setPort(listenAddress.getPort());
45 server.addConnector(connector);
46 } catch (Exception e) {
47 connector.close();
48 throw e;
49 }
50 return server;
51 }
52}
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfig.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfig.java
index 2e864998..807b789c 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfig.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfig.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.config; 6package tools.refinery.language.web.config;
2 7
3import com.google.gson.annotations.SerializedName; 8import com.google.gson.annotations.SerializedName;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfigServlet.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfigServlet.java
index f314a9fa..a2f04e34 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfigServlet.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/config/BackendConfigServlet.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.config; 6package tools.refinery.language.web.config;
2 7
3import com.google.gson.Gson; 8import com.google.gson.Gson;
@@ -29,7 +34,7 @@ public class BackendConfigServlet extends HttpServlet {
29 } 34 }
30 35
31 @Override 36 @Override
32 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 37 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
33 resp.setStatus(HttpStatus.OK_200); 38 resp.setStatus(HttpStatus.OK_200);
34 resp.setContentType("application/json"); 39 resp.setContentType("application/json");
35 var writer = resp.getWriter(); 40 var writer = resp.getWriter();
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java
index d32bbb54..34117384 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/occurrences/ProblemOccurrencesService.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.occurrences; 6package tools.refinery.language.web.occurrences;
2 7
3import org.eclipse.emf.ecore.EObject; 8import org.eclipse.emf.ecore.EObject;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/VirtualThreadExecutorServiceProvider.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/VirtualThreadExecutorServiceProvider.java
deleted file mode 100644
index abbcbd53..00000000
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/VirtualThreadExecutorServiceProvider.java
+++ /dev/null
@@ -1,16 +0,0 @@
1package tools.refinery.language.web.xtext;
2
3import org.eclipse.xtext.ide.ExecutorServiceProvider;
4import tools.refinery.language.web.VirtualThreadUtils;
5
6import java.util.concurrent.ExecutorService;
7
8public class VirtualThreadExecutorServiceProvider extends ExecutorServiceProvider {
9 private static final String THREAD_POOL_NAME = "xtextWeb";
10
11 @Override
12 protected ExecutorService createInstance(String key) {
13 var name = key == null ? THREAD_POOL_NAME : THREAD_POOL_NAME + "-" + key;
14 return VirtualThreadUtils.newNamedVirtualThreadsExecutor(name);
15 }
16}
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/PongResult.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/PongResult.java
index fe510f51..27b2e04e 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/PongResult.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/PongResult.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server; 6package tools.refinery.language.web.xtext.server;
2 7
3import java.util.Objects; 8import java.util.Objects;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandler.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandler.java
index 2a85afe3..3069c2dd 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandler.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandler.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server; 6package tools.refinery.language.web.xtext.server;
2 7
3import tools.refinery.language.web.xtext.server.message.XtextWebResponse; 8import tools.refinery.language.web.xtext.server.message.XtextWebResponse;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandlerException.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandlerException.java
index b686d33a..366ef0a7 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandlerException.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/ResponseHandlerException.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server; 6package tools.refinery.language.web.xtext.server;
2 7
3import java.io.Serial; 8import java.io.Serial;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/SubscribingServiceContext.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/SubscribingServiceContext.java
index 78e00a9e..04212b84 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/SubscribingServiceContext.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/SubscribingServiceContext.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server; 6package tools.refinery.language.web.xtext.server;
2 7
3import java.util.Set; 8import java.util.Set;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/TransactionExecutor.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/TransactionExecutor.java
index 7bb11d2e..0135d8f5 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/TransactionExecutor.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/TransactionExecutor.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server; 6package tools.refinery.language.web.xtext.server;
2 7
3import com.google.common.base.Strings; 8import com.google.common.base.Strings;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorKind.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorKind.java
index f74bae74..6f4f265c 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorKind.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorKind.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.message; 6package tools.refinery.language.web.xtext.server.message;
2 7
3import com.google.gson.annotations.SerializedName; 8import com.google.gson.annotations.SerializedName;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorResponse.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorResponse.java
index 01d78c31..af38ad70 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorResponse.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebErrorResponse.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.message; 6package tools.refinery.language.web.xtext.server.message;
2 7
3import java.util.Objects; 8import java.util.Objects;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebOkResponse.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebOkResponse.java
index 8af27247..73527ee5 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebOkResponse.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebOkResponse.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.message; 6package tools.refinery.language.web.xtext.server.message;
2 7
3import java.util.Objects; 8import java.util.Objects;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebPushMessage.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebPushMessage.java
index c9432e1c..e9ff87c4 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebPushMessage.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebPushMessage.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.message; 6package tools.refinery.language.web.xtext.server.message;
2 7
3import java.util.Objects; 8import java.util.Objects;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebRequest.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebRequest.java
index 959749f8..ff788e94 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebRequest.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebRequest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.message; 6package tools.refinery.language.web.xtext.server.message;
2 7
3import java.util.Map; 8import java.util.Map;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebResponse.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebResponse.java
index 3bd13047..61444c99 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebResponse.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/message/XtextWebResponse.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.message; 6package tools.refinery.language.web.xtext.server.message;
2 7
3public sealed interface XtextWebResponse permits XtextWebOkResponse,XtextWebErrorResponse,XtextWebPushMessage { 8public sealed interface XtextWebResponse permits XtextWebOkResponse,XtextWebErrorResponse,XtextWebPushMessage {
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PrecomputationListener.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PrecomputationListener.java
index 79a284db..110c8f52 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PrecomputationListener.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PrecomputationListener.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.push; 6package tools.refinery.language.web.xtext.server.push;
2 7
3import org.eclipse.xtext.web.server.IServiceResult; 8import org.eclipse.xtext.web.server.IServiceResult;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushServiceDispatcher.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushServiceDispatcher.java
index c7b8108d..4c9135c8 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushServiceDispatcher.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushServiceDispatcher.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.push; 6package tools.refinery.language.web.xtext.server.push;
2 7
3import org.eclipse.xtext.web.server.IServiceContext; 8import org.eclipse.xtext.web.server.IServiceContext;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocument.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocument.java
index 906b9e30..56fd12c9 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocument.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocument.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.push; 6package tools.refinery.language.web.xtext.server.push;
2 7
3import java.util.ArrayList; 8import java.util.ArrayList;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentAccess.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentAccess.java
index b3666a86..d9e548cd 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentAccess.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentAccess.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.push; 6package tools.refinery.language.web.xtext.server.push;
2 7
3import org.eclipse.xtext.service.OperationCanceledManager; 8import org.eclipse.xtext.service.OperationCanceledManager;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentProvider.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentProvider.java
index b6f04748..b6f4fb43 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentProvider.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/server/push/PushWebDocumentProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.server.push; 6package tools.refinery.language.web.xtext.server.push;
2 7
3import org.eclipse.xtext.web.server.IServiceContext; 8import org.eclipse.xtext.web.server.IServiceContext;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleServiceContext.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleServiceContext.java
index 43e37160..fee1141d 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleServiceContext.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleServiceContext.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.servlet; 6package tools.refinery.language.web.xtext.servlet;
2 7
3import java.util.Map; 8import java.util.Map;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleSession.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleSession.java
index 09c055a2..bc60c282 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleSession.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/SimpleSession.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.servlet; 6package tools.refinery.language.web.xtext.servlet;
2 7
3import java.util.HashMap; 8import java.util.HashMap;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextStatusCode.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextStatusCode.java
index 0cd229e8..caa98e84 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextStatusCode.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextStatusCode.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.servlet; 6package tools.refinery.language.web.xtext.servlet;
2 7
3public final class XtextStatusCode { 8public final class XtextStatusCode {
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocket.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocket.java
index 1d9e0463..043d318c 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocket.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocket.java
@@ -1,12 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.servlet; 6package tools.refinery.language.web.xtext.servlet;
2 7
3import com.google.gson.Gson; 8import com.google.gson.Gson;
4import com.google.gson.JsonIOException; 9import com.google.gson.JsonIOException;
5import com.google.gson.JsonParseException; 10import com.google.gson.JsonParseException;
6import org.eclipse.jetty.ee10.websocket.api.Session; 11import org.eclipse.jetty.websocket.api.Callback;
7import org.eclipse.jetty.ee10.websocket.api.StatusCode; 12import org.eclipse.jetty.websocket.api.Session;
8import org.eclipse.jetty.ee10.websocket.api.WriteCallback; 13import org.eclipse.jetty.websocket.api.StatusCode;
9import org.eclipse.jetty.ee10.websocket.api.annotations.*; 14import org.eclipse.jetty.websocket.api.annotations.*;
10import org.eclipse.xtext.resource.IResourceServiceProvider; 15import org.eclipse.xtext.resource.IResourceServiceProvider;
11import org.eclipse.xtext.web.server.ISession; 16import org.eclipse.xtext.web.server.ISession;
12import org.slf4j.Logger; 17import org.slf4j.Logger;
@@ -20,7 +25,7 @@ import tools.refinery.language.web.xtext.server.message.XtextWebResponse;
20import java.io.Reader; 25import java.io.Reader;
21 26
22@WebSocket 27@WebSocket
23public class XtextWebSocket implements WriteCallback, ResponseHandler { 28public class XtextWebSocket implements ResponseHandler {
24 private static final Logger LOG = LoggerFactory.getLogger(XtextWebSocket.class); 29 private static final Logger LOG = LoggerFactory.getLogger(XtextWebSocket.class);
25 30
26 private final Gson gson = new Gson(); 31 private final Gson gson = new Gson();
@@ -38,13 +43,13 @@ public class XtextWebSocket implements WriteCallback, ResponseHandler {
38 this(new TransactionExecutor(session, resourceServiceProviderRegistry)); 43 this(new TransactionExecutor(session, resourceServiceProviderRegistry));
39 } 44 }
40 45
41 @OnWebSocketConnect 46 @OnWebSocketOpen
42 public void onConnect(Session webSocketSession) { 47 public void onOpen(Session webSocketSession) {
43 if (this.webSocketSession != null) { 48 if (this.webSocketSession != null) {
44 LOG.error("Websocket session onConnect when already connected"); 49 LOG.error("Websocket session onConnect when already connected");
45 return; 50 return;
46 } 51 }
47 LOG.debug("New websocket connection from {}", webSocketSession.getRemoteAddress()); 52 LOG.debug("New websocket connection from {}", webSocketSession.getRemoteSocketAddress());
48 this.webSocketSession = webSocketSession; 53 this.webSocketSession = webSocketSession;
49 } 54 }
50 55
@@ -55,10 +60,10 @@ public class XtextWebSocket implements WriteCallback, ResponseHandler {
55 return; 60 return;
56 } 61 }
57 if (statusCode == StatusCode.NORMAL || statusCode == StatusCode.SHUTDOWN) { 62 if (statusCode == StatusCode.NORMAL || statusCode == StatusCode.SHUTDOWN) {
58 LOG.debug("{} closed connection normally: {}", webSocketSession.getRemoteAddress(), reason); 63 LOG.debug("{} closed connection normally: {}", webSocketSession.getRemoteSocketAddress(), reason);
59 } else { 64 } else {
60 LOG.warn("{} closed connection with status code {}: {}", webSocketSession.getRemoteAddress(), statusCode, 65 LOG.warn("{} closed connection with status code {}: {}", webSocketSession.getRemoteSocketAddress(),
61 reason); 66 statusCode, reason);
62 } 67 }
63 webSocketSession = null; 68 webSocketSession = null;
64 } 69 }
@@ -68,7 +73,7 @@ public class XtextWebSocket implements WriteCallback, ResponseHandler {
68 if (webSocketSession == null) { 73 if (webSocketSession == null) {
69 return; 74 return;
70 } 75 }
71 LOG.error("Internal websocket error in connection from" + webSocketSession.getRemoteAddress(), error); 76 LOG.error("Internal websocket error in connection from" + webSocketSession.getRemoteSocketAddress(), error);
72 } 77 }
73 78
74 @OnWebSocketMessage 79 @OnWebSocketMessage
@@ -81,14 +86,14 @@ public class XtextWebSocket implements WriteCallback, ResponseHandler {
81 try { 86 try {
82 request = gson.fromJson(reader, XtextWebRequest.class); 87 request = gson.fromJson(reader, XtextWebRequest.class);
83 } catch (JsonIOException e) { 88 } catch (JsonIOException e) {
84 LOG.error("Cannot read from websocket from" + webSocketSession.getRemoteAddress(), e); 89 LOG.error("Cannot read from websocket from" + webSocketSession.getRemoteSocketAddress(), e);
85 if (webSocketSession.isOpen()) { 90 if (webSocketSession.isOpen()) {
86 webSocketSession.close(StatusCode.SERVER_ERROR, "Cannot read payload"); 91 webSocketSession.close(StatusCode.SERVER_ERROR, "Cannot read payload", Callback.NOOP);
87 } 92 }
88 return; 93 return;
89 } catch (JsonParseException e) { 94 } catch (JsonParseException e) {
90 LOG.warn("Malformed websocket request from" + webSocketSession.getRemoteAddress(), e); 95 LOG.warn("Malformed websocket request from" + webSocketSession.getRemoteSocketAddress(), e);
91 webSocketSession.close(XtextStatusCode.INVALID_JSON, "Invalid JSON payload"); 96 webSocketSession.close(XtextStatusCode.INVALID_JSON, "Invalid JSON payload", Callback.NOOP);
92 return; 97 return;
93 } 98 }
94 try { 99 try {
@@ -96,7 +101,7 @@ public class XtextWebSocket implements WriteCallback, ResponseHandler {
96 } catch (ResponseHandlerException e) { 101 } catch (ResponseHandlerException e) {
97 LOG.warn("Cannot write websocket response", e); 102 LOG.warn("Cannot write websocket response", e);
98 if (webSocketSession.isOpen()) { 103 if (webSocketSession.isOpen()) {
99 webSocketSession.close(StatusCode.SERVER_ERROR, "Cannot write response"); 104 webSocketSession.close(StatusCode.SERVER_ERROR, "Cannot write response", Callback.NOOP);
100 } 105 }
101 } 106 }
102 } 107 }
@@ -107,15 +112,14 @@ public class XtextWebSocket implements WriteCallback, ResponseHandler {
107 throw new ResponseHandlerException("Trying to send message when websocket is disconnected"); 112 throw new ResponseHandlerException("Trying to send message when websocket is disconnected");
108 } 113 }
109 var responseString = gson.toJson(response); 114 var responseString = gson.toJson(response);
110 webSocketSession.getRemote().sendPartialString(responseString, true, this); 115 webSocketSession.sendText(responseString, Callback.from(() -> {}, this::writeFailed));
111 } 116 }
112 117
113 @Override
114 public void writeFailed(Throwable x) { 118 public void writeFailed(Throwable x) {
115 if (webSocketSession == null) { 119 if (webSocketSession == null) {
116 LOG.error("Cannot complete async write to disconnected websocket", x); 120 LOG.error("Cannot complete async write to disconnected websocket", x);
117 return; 121 return;
118 } 122 }
119 LOG.warn("Cannot complete async write to websocket " + webSocketSession.getRemoteAddress(), x); 123 LOG.warn("Cannot complete async write to websocket " + webSocketSession.getRemoteSocketAddress(), x);
120 } 124 }
121} 125}
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocketServlet.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocketServlet.java
index 9a32b937..5e4fb0ce 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocketServlet.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/xtext/servlet/XtextWebSocketServlet.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.servlet; 6package tools.refinery.language.web.xtext.servlet;
2 7
3import jakarta.servlet.ServletConfig; 8import jakarta.servlet.ServletConfig;
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
index ecbefc4f..927eeab1 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/ProblemWebSocketServletIntegrationTest.java
@@ -1,20 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web; 6package tools.refinery.language.web;
2 7
3import org.eclipse.jetty.ee10.servlet.ServletContextHandler; 8import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
4import org.eclipse.jetty.ee10.servlet.ServletHolder; 9import org.eclipse.jetty.ee10.servlet.ServletHolder;
5import org.eclipse.jetty.ee10.websocket.api.Session;
6import org.eclipse.jetty.ee10.websocket.api.StatusCode;
7import org.eclipse.jetty.ee10.websocket.api.annotations.WebSocket;
8import org.eclipse.jetty.ee10.websocket.api.exceptions.UpgradeException;
9import org.eclipse.jetty.ee10.websocket.client.ClientUpgradeRequest;
10import org.eclipse.jetty.ee10.websocket.client.WebSocketClient;
11import org.eclipse.jetty.ee10.websocket.server.config.JettyWebSocketServletContainerInitializer; 10import org.eclipse.jetty.ee10.websocket.server.config.JettyWebSocketServletContainerInitializer;
12import org.eclipse.jetty.http.HttpHeader; 11import org.eclipse.jetty.http.HttpHeader;
13import org.eclipse.jetty.http.HttpStatus; 12import org.eclipse.jetty.http.HttpStatus;
14import org.eclipse.jetty.server.Server; 13import org.eclipse.jetty.server.Server;
14import org.eclipse.jetty.util.thread.QueuedThreadPool;
15import org.eclipse.jetty.websocket.api.Callback;
16import org.eclipse.jetty.websocket.api.Session;
17import org.eclipse.jetty.websocket.api.StatusCode;
18import org.eclipse.jetty.websocket.api.annotations.WebSocket;
19import org.eclipse.jetty.websocket.api.exceptions.UpgradeException;
20import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
21import org.eclipse.jetty.websocket.client.WebSocketClient;
15import org.eclipse.xtext.testing.GlobalRegistries; 22import org.eclipse.xtext.testing.GlobalRegistries;
16import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento; 23import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento;
17import org.junit.jupiter.api.*; 24import org.junit.jupiter.api.AfterEach;
25import org.junit.jupiter.api.BeforeEach;
26import org.junit.jupiter.api.Test;
27import org.junit.jupiter.api.TestInfo;
18import org.junit.jupiter.params.ParameterizedTest; 28import org.junit.jupiter.params.ParameterizedTest;
19import org.junit.jupiter.params.provider.ValueSource; 29import org.junit.jupiter.params.provider.ValueSource;
20import tools.refinery.language.web.tests.WebSocketIntegrationTestClient; 30import tools.refinery.language.web.tests.WebSocketIntegrationTestClient;
@@ -86,23 +96,34 @@ class ProblemWebSocketServletIntegrationTest {
86 assertThat(responses, hasSize(5)); 96 assertThat(responses, hasSize(5));
87 assertThat(responses.get(0), equalTo("{\"id\":\"foo\",\"response\":{\"stateId\":\"-80000000\"}}")); 97 assertThat(responses.get(0), equalTo("{\"id\":\"foo\",\"response\":{\"stateId\":\"-80000000\"}}"));
88 assertThat(responses.get(1), startsWith( 98 assertThat(responses.get(1), startsWith(
89 "{\"resource\":\"test.problem\",\"stateId\":\"-80000000\",\"service\":\"highlight\",\"push\":{\"regions\":[")); 99 "{\"resource\":\"test.problem\",\"stateId\":\"-80000000\",\"service\":\"highlight\"," +
100 "\"push\":{\"regions\":["));
90 assertThat(responses.get(2), equalTo( 101 assertThat(responses.get(2), equalTo(
91 "{\"resource\":\"test.problem\",\"stateId\":\"-80000000\",\"service\":\"validate\",\"push\":{\"issues\":[]}}")); 102 "{\"resource\":\"test.problem\",\"stateId\":\"-80000000\",\"service\":\"validate\"," +
103 "\"push\":{\"issues\":[]}}"));
92 assertThat(responses.get(3), equalTo("{\"id\":\"bar\",\"response\":{\"stateId\":\"-7fffffff\"}}")); 104 assertThat(responses.get(3), equalTo("{\"id\":\"bar\",\"response\":{\"stateId\":\"-7fffffff\"}}"));
93 assertThat(responses.get(4), startsWith( 105 assertThat(responses.get(4), startsWith(
94 "{\"resource\":\"test.problem\",\"stateId\":\"-7fffffff\",\"service\":\"highlight\",\"push\":{\"regions\":[")); 106 "{\"resource\":\"test.problem\",\"stateId\":\"-7fffffff\",\"service\":\"highlight\"," +
107 "\"push\":{\"regions\":["));
95 } 108 }
96 109
97 @WebSocket 110 @WebSocket
98 public static class UpdateTestClient extends WebSocketIntegrationTestClient { 111 public static class UpdateTestClient extends WebSocketIntegrationTestClient {
99 @Override 112 @Override
100 protected void arrange(Session session, int responsesReceived) throws IOException { 113 protected void arrange(Session session, int responsesReceived) {
101 switch (responsesReceived) { 114 switch (responsesReceived) {
102 case 0 -> session.getRemote().sendString( 115 case 0 -> session.sendText(
103 "{\"id\":\"foo\",\"request\":{\"resource\":\"test.problem\",\"serviceType\":\"update\",\"fullText\":\"class Person.\n\"}}"); 116 "{\"id\":\"foo\",\"request\":{\"resource\":\"test.problem\",\"serviceType\":\"update\"," +
104 case 3 -> session.getRemote().sendString( 117 "\"fullText\":\"class Person.\n\"}}",
105 "{\"id\":\"bar\",\"request\":{\"resource\":\"test.problem\",\"serviceType\":\"update\",\"requiredStateId\":\"-80000000\",\"deltaText\":\"indiv q.\nnode(q).\n\",\"deltaOffset\":\"0\",\"deltaReplaceLength\":\"0\"}}"); 118 Callback.NOOP
119 );
120 case 3 -> //noinspection TextBlockMigration
121 session.sendText(
122 "{\"id\":\"bar\",\"request\":{\"resource\":\"test.problem\",\"serviceType\":\"update\"," +
123 "\"requiredStateId\":\"-80000000\",\"deltaText\":\"indiv q.\nnode(q).\n\"," +
124 "\"deltaOffset\":\"0\",\"deltaReplaceLength\":\"0\"}}",
125 Callback.NOOP
126 );
106 case 5 -> session.close(); 127 case 5 -> session.close();
107 } 128 }
108 } 129 }
@@ -152,13 +173,13 @@ class ProblemWebSocketServletIntegrationTest {
152 @WebSocket 173 @WebSocket
153 public static class InvalidJsonTestClient extends WebSocketIntegrationTestClient { 174 public static class InvalidJsonTestClient extends WebSocketIntegrationTestClient {
154 @Override 175 @Override
155 protected void arrange(Session session, int responsesReceived) throws IOException { 176 protected void arrange(Session session, int responsesReceived) {
156 session.getRemote().sendString("<invalid json>"); 177 session.sendText("<invalid json>", Callback.NOOP);
157 } 178 }
158 } 179 }
159 180
160 @ParameterizedTest(name = "validOriginTest(\"{0}\")") 181 @ParameterizedTest(name = "validOriginTest(\"{0}\")")
161 @ValueSource(strings = { "https://refinery.example", "https://refinery.example:443", "HTTPS://REFINERY.EXAMPLE" }) 182 @ValueSource(strings = {"https://refinery.example", "https://refinery.example:443", "HTTPS://REFINERY.EXAMPLE"})
162 void validOriginTest(String origin) { 183 void validOriginTest(String origin) {
163 startServer("https://refinery.example,https://refinery.example:443"); 184 startServer("https://refinery.example,https://refinery.example:443");
164 var clientSocket = new CloseImmediatelyTestClient(); 185 var clientSocket = new CloseImmediatelyTestClient();
@@ -188,7 +209,8 @@ class ProblemWebSocketServletIntegrationTest {
188 private void startServer(String allowedOrigins) { 209 private void startServer(String allowedOrigins) {
189 var testName = getClass().getSimpleName() + "-" + testInfo.getDisplayName(); 210 var testName = getClass().getSimpleName() + "-" + testInfo.getDisplayName();
190 var listenAddress = new InetSocketAddress(HOSTNAME, serverPort); 211 var listenAddress = new InetSocketAddress(HOSTNAME, serverPort);
191 server = VirtualThreadUtils.newServerWithVirtualThreadsThreadPool(testName, listenAddress); 212 server = new Server(listenAddress);
213 ((QueuedThreadPool) server.getThreadPool()).setName(testName);
192 var handler = new ServletContextHandler(); 214 var handler = new ServletContextHandler();
193 var holder = new ServletHolder(ProblemWebSocketServlet.class); 215 var holder = new ServletHolder(ProblemWebSocketServlet.class);
194 if (allowedOrigins != null) { 216 if (allowedOrigins != null) {
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java
index c634e8fc..52acee6d 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/AwaitTerminationExecutorServiceProvider.java
@@ -1,14 +1,19 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.tests; 6package tools.refinery.language.web.tests;
2 7
3import com.google.inject.Singleton; 8import com.google.inject.Singleton;
4import tools.refinery.language.web.xtext.VirtualThreadExecutorServiceProvider; 9import org.eclipse.xtext.ide.ExecutorServiceProvider;
5 10
6import java.util.ArrayList; 11import java.util.ArrayList;
7import java.util.List; 12import java.util.List;
8import java.util.concurrent.ExecutorService; 13import java.util.concurrent.ExecutorService;
9 14
10@Singleton 15@Singleton
11public class AwaitTerminationExecutorServiceProvider extends VirtualThreadExecutorServiceProvider { 16public class AwaitTerminationExecutorServiceProvider extends ExecutorServiceProvider {
12 private final List<RestartableCachedThreadPool> servicesToShutDown = new ArrayList<>(); 17 private final List<RestartableCachedThreadPool> servicesToShutDown = new ArrayList<>();
13 18
14 @Override 19 @Override
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/ProblemWebInjectorProvider.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/ProblemWebInjectorProvider.java
index 43c12faa..4a5eed95 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/ProblemWebInjectorProvider.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/ProblemWebInjectorProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.tests; 6package tools.refinery.language.web.tests;
2 7
3import org.eclipse.xtext.ide.ExecutorServiceProvider; 8import org.eclipse.xtext.ide.ExecutorServiceProvider;
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java
index cf805eda..09079aa8 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/RestartableCachedThreadPool.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.tests; 6package tools.refinery.language.web.tests;
2 7
3import com.google.inject.Provider; 8import com.google.inject.Provider;
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
index f19c10ca..6ccf1760 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/tests/WebSocketIntegrationTestClient.java
@@ -1,12 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.tests; 6package tools.refinery.language.web.tests;
2 7
3import org.eclipse.jetty.ee10.websocket.api.Session; 8import org.eclipse.jetty.websocket.api.Session;
4import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketClose; 9import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
5import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketConnect; 10import org.eclipse.jetty.websocket.api.annotations.OnWebSocketError;
6import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketError; 11import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage;
7import org.eclipse.jetty.ee10.websocket.api.annotations.OnWebSocketMessage; 12import org.eclipse.jetty.websocket.api.annotations.OnWebSocketOpen;
8 13
9import java.io.IOException;
10import java.time.Duration; 14import java.time.Duration;
11import java.util.ArrayList; 15import java.util.ArrayList;
12import java.util.List; 16import java.util.List;
@@ -14,7 +18,7 @@ import java.util.List;
14import static org.junit.jupiter.api.Assertions.fail; 18import static org.junit.jupiter.api.Assertions.fail;
15 19
16public abstract class WebSocketIntegrationTestClient { 20public abstract class WebSocketIntegrationTestClient {
17 private static final long TIMEOUT_MILLIS = Duration.ofSeconds(1).toMillis(); 21 private static final long TIMEOUT_MILLIS = Duration.ofSeconds(10).toMillis();
18 22
19 private boolean finished = false; 23 private boolean finished = false;
20 24
@@ -34,8 +38,8 @@ public abstract class WebSocketIntegrationTestClient {
34 return responses; 38 return responses;
35 } 39 }
36 40
37 @OnWebSocketConnect 41 @OnWebSocketOpen
38 public void onConnect(Session session) { 42 public void onOpen(Session session) {
39 arrangeAndCatchErrors(session); 43 arrangeAndCatchErrors(session);
40 } 44 }
41 45
@@ -47,7 +51,7 @@ public abstract class WebSocketIntegrationTestClient {
47 } 51 }
48 } 52 }
49 53
50 protected abstract void arrange(Session session, int responsesReceived) throws IOException; 54 protected abstract void arrange(Session session, int responsesReceived);
51 55
52 @OnWebSocketClose 56 @OnWebSocketClose
53 public void onClose(int statusCode, String reason) { 57 public void onClose(int statusCode, String reason) {
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java
index 17f1ff5c..841bacd3 100644
--- a/subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java
+++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.web.xtext.servlet; 6package tools.refinery.language.web.xtext.servlet;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/build.gradle b/subprojects/language/build.gradle
deleted file mode 100644
index 654558e3..00000000
--- a/subprojects/language/build.gradle
+++ /dev/null
@@ -1,73 +0,0 @@
1plugins {
2 id 'refinery-java-library'
3 id 'refinery-java-test-fixtures'
4 id 'refinery-mwe2'
5 id 'refinery-sonarqube'
6 id 'refinery-xtext-conventions'
7}
8
9dependencies {
10 api platform(libs.xtext.bom)
11 api libs.ecore
12 api libs.xtext.core
13 api libs.xtext.xbase
14 api project(':refinery-language-model')
15 testFixturesApi libs.xtext.testing
16 mwe2 libs.xtext.generator
17 mwe2 libs.xtext.generator.antlr
18}
19
20sourceSets {
21 testFixtures {
22 java.srcDirs += ['src/testFixtures/xtext-gen']
23 resources.srcDirs += ['src/testFixtures/xtext-gen']
24 }
25}
26
27tasks.named('jar') {
28 from(sourceSets.main.allSource) {
29 include '**/*.xtext'
30 }
31}
32
33def generateXtextLanguage = tasks.register('generateXtextLanguage', JavaExec) {
34 mainClass = 'org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher'
35 classpath = configurations.mwe2
36 inputs.file 'src/main/java/tools/refinery/language/GenerateProblem.mwe2'
37 inputs.file 'src/main/java/tools/refinery/language/Problem.xtext'
38 outputs.dir 'src/main/xtext-gen'
39 outputs.dir 'src/testFixtures/xtext-gen'
40 outputs.dir '../language-ide/src/main/xtext-gen'
41 outputs.dir '../language-web/src/main/xtext-gen'
42 args += 'src/main/java/tools/refinery/language/GenerateProblem.mwe2'
43 args += '-p'
44 args += "rootPath=/${projectDir}/.."
45}
46
47for (taskName in [
48 'compileJava',
49 'processResources',
50 'processTestFixturesResources',
51 'generateEclipseSourceFolders'
52 ]) {
53 tasks.named(taskName) {
54 dependsOn generateXtextLanguage
55 }
56}
57
58tasks.named('clean') {
59 delete 'src/main/xtext-gen'
60 delete 'src/testFixtures/xtext-gen'
61 delete '../language-ide/src/main/xtext-gen'
62 delete '../language-web/src/main/xtext-gen'
63}
64
65sonarqube.properties {
66 properties['sonar.exclusions'] += [
67 'src/testFixtures/xtext-gen/**',
68 ]
69}
70
71eclipse.project.natures += [
72 'org.eclipse.xtext.ui.shared.xtextNature'
73]
diff --git a/subprojects/language/build.gradle.kts b/subprojects/language/build.gradle.kts
new file mode 100644
index 00000000..bac1e586
--- /dev/null
+++ b/subprojects/language/build.gradle.kts
@@ -0,0 +1,101 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import tools.refinery.gradle.utils.SonarPropertiesUtils
8
9plugins {
10 id("tools.refinery.gradle.java-library")
11 id("tools.refinery.gradle.java-test-fixtures")
12 id("tools.refinery.gradle.mwe2")
13 id("tools.refinery.gradle.sonarqube")
14 id("tools.refinery.gradle.xtext-generated")
15}
16
17val generatedIdeSources: Configuration by configurations.creating {
18 isCanBeConsumed = true
19 isCanBeResolved = false
20}
21
22val generatedWebSources: Configuration by configurations.creating {
23 isCanBeConsumed = true
24 isCanBeResolved = false
25}
26
27dependencies {
28 api(platform(libs.xtext.bom))
29 api(libs.ecore)
30 api(libs.xtext.core)
31 api(libs.xtext.xbase)
32 api(project(":refinery-language-model"))
33 testFixturesApi(libs.xtext.testing)
34 mwe2(libs.xtext.generator)
35 mwe2(libs.xtext.generator.antlr)
36}
37
38sourceSets {
39 testFixtures {
40 java.srcDir("src/testFixtures/xtext-gen")
41 resources.srcDir("src/testFixtures/xtext-gen")
42 }
43}
44
45val generateXtextLanguage by tasks.registering(JavaExec::class) {
46 mainClass.set("org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher")
47 classpath(configurations.mwe2)
48 inputs.file("src/main/java/tools/refinery/language/GenerateProblem.mwe2")
49 inputs.file("src/main/java/tools/refinery/language/Problem.xtext")
50 inputs.file("../language-model/src/main/resources/model/problem.ecore")
51 inputs.file("../language-model/src/main/resources/model/problem.genmodel")
52 outputs.dir("src/main/xtext-gen")
53 outputs.dir("src/testFixtures/xtext-gen")
54 outputs.dir("$buildDir/generated/sources/xtext/ide")
55 outputs.dir("$buildDir/generated/sources/xtext/web")
56 args("src/main/java/tools/refinery/language/GenerateProblem.mwe2", "-p", "rootPath=/$projectDir/..")
57}
58
59tasks {
60 jar {
61 from(sourceSets.main.map { it.allSource }) {
62 include("**/*.xtext")
63 }
64 }
65
66 syncXtextGeneratedSources {
67 // We generate Xtext runtime sources directly to {@code src/main/xtext-gen}, so there is no need to copy them
68 // from an artifact. We expose the {@code generatedIdeSources} and {@code generatedWebSources} artifacts to
69 // sibling IDE and web projects which can use this task to consume them and copy the appropriate sources to
70 // their own {@code src/main/xtext-gen} directory.
71 enabled = false
72 }
73
74 for (taskName in listOf("compileJava", "processResources", "compileTestFixturesJava",
75 "processTestFixturesResources", "generateEclipseSourceFolders")) {
76 named(taskName) {
77 dependsOn(generateXtextLanguage)
78 }
79 }
80
81 clean {
82 delete("src/main/xtext-gen")
83 delete("src/testFixtures/xtext-gen")
84 }
85}
86
87artifacts {
88 add(generatedIdeSources.name, file("$buildDir/generated/sources/xtext/ide")) {
89 builtBy(generateXtextLanguage)
90 }
91
92 add(generatedWebSources.name, file("$buildDir/generated/sources/xtext/web")) {
93 builtBy(generateXtextLanguage)
94 }
95}
96
97sonarqube.properties {
98 SonarPropertiesUtils.addToList(properties, "sonar.exclusions", "src/textFixtures/xtext-gen/**")
99}
100
101eclipse.project.natures.plusAssign("org.eclipse.xtext.ui.shared.xtextNature")
diff --git a/subprojects/language/src/main/java/tools/refinery/language/GenerateProblem.mwe2 b/subprojects/language/src/main/java/tools/refinery/language/GenerateProblem.mwe2
index 21ff456e..59eba8f7 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/GenerateProblem.mwe2
+++ b/subprojects/language/src/main/java/tools/refinery/language/GenerateProblem.mwe2
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1module tools.refinery.language.GenerateProblem 6module tools.refinery.language.GenerateProblem
2 7
3import org.eclipse.xtext.xtext.generator.* 8import org.eclipse.xtext.xtext.generator.*
@@ -11,16 +16,28 @@ Workflow {
11 project = StandardProjectConfig { 16 project = StandardProjectConfig {
12 baseName = 'language' 17 baseName = 'language'
13 rootPath = rootPath 18 rootPath = rootPath
19 runtime = {
20 // Do not generate new files into src/main/java
21 src = null
22 }
14 runtimeTest = { 23 runtimeTest = {
15 enabled = true 24 enabled = true
16 srcGen = 'src/testFixtures/xtext-gen' 25 // Only generate the xtext-gen files and leave the rest of the project alone
26 root = null
27 srcGen = '${rootPath}/language/src/testFixtures/xtext-gen'
17 } 28 }
18 genericIde = { 29 genericIde = {
19 name = 'language-ide' 30 name = 'language-ide'
31 // Only generate the xtext-gen files and leave the rest of the project alone
32 root = null
33 srcGen = "${rootPath}/language/build/generated/sources/xtext/ide"
20 } 34 }
21 web = { 35 web = {
22 enabled = true 36 enabled = true
23 name = 'language-web' 37 name = 'language-web'
38 // Only generate the xtext-gen files and leave the rest of the project alone
39 root = null
40 srcGen = "${rootPath}/language/build/generated/sources/xtext/web"
24 } 41 }
25 mavenLayout = true 42 mavenLayout = true
26 } 43 }
@@ -55,7 +72,7 @@ Workflow {
55 } 72 }
56 webSupport = { 73 webSupport = {
57 // We only generate the {@code AbstractProblemWebModule}, 74 // We only generate the {@code AbstractProblemWebModule},
58 // because we write our own integration code for CodeMirror 6. 75 // because we write our own integration code for CodeMirror 6.
59 framework = 'codemirror' 76 framework = 'codemirror'
60 generateHtmlExample = false 77 generateHtmlExample = false
61 generateJettyLauncher = false 78 generateJettyLauncher = false
diff --git a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
index 187ebf1f..9e330347 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
+++ b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1grammar tools.refinery.language.Problem with org.eclipse.xtext.common.Terminals 6grammar tools.refinery.language.Problem with org.eclipse.xtext.common.Terminals
2 7
3import "http://www.eclipse.org/emf/2002/Ecore" as ecore 8import "http://www.eclipse.org/emf/2002/Ecore" as ecore
diff --git a/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java b/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
index 5efcdc81..2636a8ee 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language; 10package tools.refinery.language;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/ProblemStandaloneSetup.java b/subprojects/language/src/main/java/tools/refinery/language/ProblemStandaloneSetup.java
index 41c96114..639d6778 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/ProblemStandaloneSetup.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/ProblemStandaloneSetup.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language; 10package tools.refinery.language;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/conversion/ProblemValueConverterService.java b/subprojects/language/src/main/java/tools/refinery/language/conversion/ProblemValueConverterService.java
index 508688ed..afbc367e 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/conversion/ProblemValueConverterService.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/conversion/ProblemValueConverterService.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.conversion; 6package tools.refinery.language.conversion;
2 7
3import org.eclipse.xtext.common.services.DefaultTerminalConverters; 8import org.eclipse.xtext.common.services.DefaultTerminalConverters;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/conversion/UpperBoundValueConverter.java b/subprojects/language/src/main/java/tools/refinery/language/conversion/UpperBoundValueConverter.java
index be0d15ad..4886757d 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/conversion/UpperBoundValueConverter.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/conversion/UpperBoundValueConverter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.conversion; 6package tools.refinery.language.conversion;
2 7
3import org.eclipse.xtext.conversion.ValueConverterException; 8import org.eclipse.xtext.conversion.ValueConverterException;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java b/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java
index 797535ea..55a5ac20 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.26.0.M2 8 * generated by Xtext 2.26.0.M2
3 */ 9 */
4package tools.refinery.language.formatting2; 10package tools.refinery.language.formatting2;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/naming/NamingUtil.java b/subprojects/language/src/main/java/tools/refinery/language/naming/NamingUtil.java
index e959be74..1647d4e7 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/naming/NamingUtil.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/naming/NamingUtil.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.naming; 6package tools.refinery.language.naming;
2 7
3import java.util.regex.Pattern; 8import java.util.regex.Pattern;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/naming/ProblemQualifiedNameConverter.java b/subprojects/language/src/main/java/tools/refinery/language/naming/ProblemQualifiedNameConverter.java
index 5453906f..74b4e208 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/naming/ProblemQualifiedNameConverter.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/naming/ProblemQualifiedNameConverter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.naming; 6package tools.refinery.language.naming;
2 7
3import org.eclipse.xtext.naming.IQualifiedNameConverter; 8import org.eclipse.xtext.naming.IQualifiedNameConverter;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java b/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java
index ab133a90..306a86fc 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/IdentifierTokenProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.parser.antlr; 6package tools.refinery.language.parser.antlr;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/ProblemTokenSource.java b/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/ProblemTokenSource.java
index 0b4e7185..5b91a6cc 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/ProblemTokenSource.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/ProblemTokenSource.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.29.0.M2 8 * generated by Xtext 2.29.0.M2
3 */ 9 */
4package tools.refinery.language.parser.antlr; 10package tools.refinery.language.parser.antlr;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/TokenSourceInjectingProblemParser.java b/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/TokenSourceInjectingProblemParser.java
index 0cdd38d8..fe4c0bc7 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/TokenSourceInjectingProblemParser.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/parser/antlr/TokenSourceInjectingProblemParser.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.parser.antlr; 6package tools.refinery.language.parser.antlr;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/DerivedVariableComputer.java b/subprojects/language/src/main/java/tools/refinery/language/resource/DerivedVariableComputer.java
index 6176b0c4..07c5da41 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/DerivedVariableComputer.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/DerivedVariableComputer.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.resource; 6package tools.refinery.language.resource;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/ImplicitVariableScope.java b/subprojects/language/src/main/java/tools/refinery/language/resource/ImplicitVariableScope.java
index b0ac2ab6..e97c8287 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/ImplicitVariableScope.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/ImplicitVariableScope.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.resource; 6package tools.refinery.language.resource;
2 7
3import org.eclipse.emf.ecore.EObject; 8import org.eclipse.emf.ecore.EObject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java b/subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java
index 419be0d3..e5deca4d 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.resource; 6package tools.refinery.language.resource;
2 7
3import com.google.common.collect.ImmutableSet; 8import com.google.common.collect.ImmutableSet;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java
index 8d3a552a..b145ef27 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.resource; 6package tools.refinery.language.resource;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java
index df822987..1fe2df89 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemLocationInFileProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.resource; 6package tools.refinery.language.resource;
2 7
3import org.eclipse.emf.ecore.EObject; 8import org.eclipse.emf.ecore.EObject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java
index 1a0b73a8..630be379 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemResourceDescriptionStrategy.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.resource; 6package tools.refinery.language.resource;
2 7
3import org.eclipse.emf.ecore.EObject; 8import org.eclipse.emf.ecore.EObject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/ReferenceCounter.java b/subprojects/language/src/main/java/tools/refinery/language/resource/ReferenceCounter.java
index ca20325e..f1be55ee 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/ReferenceCounter.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/ReferenceCounter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.resource; 6package tools.refinery.language.resource;
2 7
3import java.util.HashMap; 8import java.util.HashMap;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemGlobalScopeProvider.java b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemGlobalScopeProvider.java
index b749154c..4d2dd772 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemGlobalScopeProvider.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemGlobalScopeProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.scoping; 6package tools.refinery.language.scoping;
2 7
3import java.util.LinkedHashSet; 8import java.util.LinkedHashSet;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemLocalScopeProvider.java b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemLocalScopeProvider.java
index 61883f0e..229960a0 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemLocalScopeProvider.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemLocalScopeProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.scoping; 6package tools.refinery.language.scoping;
2 7
3import java.util.List; 8import java.util.List;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java
index 3ab07496..cf099aba 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language.scoping; 10package tools.refinery.language.scoping;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java b/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java
index 27ce1521..b9cafbc2 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.serializer; 6package tools.refinery.language.serializer;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java b/subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java
index d3777cd3..c8c7fd4a 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.utils; 6package tools.refinery.language.utils;
2 7
3import tools.refinery.language.model.problem.*; 8import tools.refinery.language.model.problem.*;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/CollectedSymbols.java b/subprojects/language/src/main/java/tools/refinery/language/utils/CollectedSymbols.java
index b5682f32..e4e4d07a 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/CollectedSymbols.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/CollectedSymbols.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.utils; 6package tools.refinery.language.utils;
2 7
3import java.util.Map; 8import java.util.Map;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/ContainmentRole.java b/subprojects/language/src/main/java/tools/refinery/language/utils/ContainmentRole.java
index 708e10a9..a43c7dfe 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/ContainmentRole.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/ContainmentRole.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.utils; 6package tools.refinery.language.utils;
2 7
3import tools.refinery.language.model.problem.PredicateKind; 8import tools.refinery.language.model.problem.PredicateKind;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java b/subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java
index c8f47653..0fa7a454 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.utils; 6package tools.refinery.language.utils;
2 7
3public record NodeInfo(String name, boolean individual) { 8public record NodeInfo(String name, boolean individual) {
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java b/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java
index b8200919..738a0896 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.utils; 6package tools.refinery.language.utils;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemUtil.java b/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemUtil.java
index 1e5164d3..9486dc2a 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemUtil.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemUtil.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.utils; 6package tools.refinery.language.utils;
2 7
3import org.eclipse.emf.common.util.URI; 8import org.eclipse.emf.common.util.URI;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/RelationInfo.java b/subprojects/language/src/main/java/tools/refinery/language/utils/RelationInfo.java
index 2253d257..1c46fe72 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/RelationInfo.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/RelationInfo.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.utils; 6package tools.refinery.language.utils;
2 7
3import tools.refinery.language.model.problem.*; 8import tools.refinery.language.model.problem.*;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java b/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java
index 65167ed6..a4ea1113 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.utils; 6package tools.refinery.language.utils;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java b/subprojects/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java
index 659d882c..88d50c5b 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/validation/ProblemValidator.java
@@ -1,4 +1,10 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7/*
2 * generated by Xtext 2.25.0 8 * generated by Xtext 2.25.0
3 */ 9 */
4package tools.refinery.language.validation; 10package tools.refinery.language.validation;
diff --git a/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem b/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
index 06b6da1d..9c1d7669 100644
--- a/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
+++ b/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
@@ -1,3 +1,6 @@
1% SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2%
3% SPDX-License-Identifier: EPL-2.0
1problem builtin. 4problem builtin.
2 5
3abstract class node { 6abstract class node {
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
index 58daa365..c7952369 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests; 6package tools.refinery.language.tests;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java
index 6e0802ca..f688d970 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests.formatting2; 6package tools.refinery.language.tests.formatting2;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/IdentifierTokenProviderTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/IdentifierTokenProviderTest.java
index abff8d9c..37d38dd9 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/IdentifierTokenProviderTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/IdentifierTokenProviderTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests.parser.antlr; 6package tools.refinery.language.tests.parser.antlr;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/ProblemTokenSourceTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/ProblemTokenSourceTest.java
index cb42d5d0..644744a0 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/ProblemTokenSourceTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/ProblemTokenSourceTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests.parser.antlr; 6package tools.refinery.language.tests.parser.antlr;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java
index 65ceb45f..1180d131 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests.parser.antlr; 6package tools.refinery.language.tests.parser.antlr;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java
index 72e5e18a..68514bfa 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests.rules; 6package tools.refinery.language.tests.rules;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
index fa462691..734bfcd1 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests.scoping; 6package tools.refinery.language.tests.scoping;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
index 4a18704a..3f3a081f 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests.serializer; 6package tools.refinery.language.tests.serializer;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java
index af6de37f..d200eeff 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.tests.utils; 6package tools.refinery.language.tests.utils;
2 7
3import com.google.inject.Inject; 8import com.google.inject.Inject;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemNavigationUtil.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemNavigationUtil.java
index 5761935b..d92011a9 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemNavigationUtil.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemNavigationUtil.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import java.util.List; 8import java.util.List;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemParseHelper.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemParseHelper.java
index 5e044a94..6f6a87f7 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemParseHelper.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/ProblemParseHelper.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import org.eclipse.xtext.testing.util.ParseHelper; 8import org.eclipse.xtext.testing.util.ParseHelper;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAction.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAction.java
index d176727b..3a49a0b9 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAction.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAction.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.Action; 8import tools.refinery.language.model.problem.Action;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java
index 9e4c59f5..ed749fed 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedArgument.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.*; 8import tools.refinery.language.model.problem.*;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertion.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertion.java
index 2c38639d..b2ef6e48 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertion.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertion.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.Assertion; 8import tools.refinery.language.model.problem.Assertion;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java
index 840c1f74..b36f2506 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.AssertionArgument; 8import tools.refinery.language.model.problem.AssertionArgument;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAtom.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAtom.java
index 498991f8..c02f447b 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAtom.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAtom.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.Atom; 8import tools.refinery.language.model.problem.Atom;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java
index 41b2ea62..a228137c 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.ClassDeclaration; 8import tools.refinery.language.model.problem.ClassDeclaration;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConjunction.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConjunction.java
index 88ff71ab..b126b1ce 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConjunction.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConjunction.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.Conjunction; 8import tools.refinery.language.model.problem.Conjunction;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConsequent.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConsequent.java
index 46faa7da..8d6a92f8 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConsequent.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedConsequent.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.Consequent; 8import tools.refinery.language.model.problem.Consequent;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedEnumDeclaration.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedEnumDeclaration.java
index 74dcf01b..229a8c0a 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedEnumDeclaration.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedEnumDeclaration.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.EnumDeclaration; 8import tools.refinery.language.model.problem.EnumDeclaration;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedLiteral.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedLiteral.java
index 4aa71b99..160e5dd8 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedLiteral.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedLiteral.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.Atom; 8import tools.refinery.language.model.problem.Atom;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedParametricDefinition.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedParametricDefinition.java
index c2f18a60..d44b79ed 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedParametricDefinition.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedParametricDefinition.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.Parameter; 8import tools.refinery.language.model.problem.Parameter;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedPredicateDefinition.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedPredicateDefinition.java
index 7b95ecc1..2cf5fd89 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedPredicateDefinition.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedPredicateDefinition.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.PredicateDefinition; 8import tools.refinery.language.model.problem.PredicateDefinition;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java
index 78ca95c7..e5aa0043 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import org.eclipse.emf.ecore.resource.Resource.Diagnostic; 8import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedRuleDefinition.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedRuleDefinition.java
index a4cf2eaf..326d8ec3 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedRuleDefinition.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedRuleDefinition.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.language.model.tests.utils; 6package tools.refinery.language.model.tests.utils;
2 7
3import tools.refinery.language.model.problem.RuleDefinition; 8import tools.refinery.language.model.problem.RuleDefinition;
diff --git a/subprojects/store-query-viatra/NOTICE.md b/subprojects/store-query-viatra/NOTICE.md
new file mode 100644
index 00000000..7c21726a
--- /dev/null
+++ b/subprojects/store-query-viatra/NOTICE.md
@@ -0,0 +1,87 @@
1<!--
2 Copyright (c) 2018-2019, Zoltan Ujhelyi, IncQuery Labs Ltd.
3 Copyright (c) 2023 The Refinery Authors <https://refinery.tools/>
4
5 SPDX-License-Identifier: EPL-2.0
6-->
7
8This module contains source code from the [Eclipse VIATRA project](https://projects.eclipse.org/projects/modeling.viatra), which is available under the terms of the [Eclipse Public License v 2.0](http://www.eclipse.org/legal/epl-v20.html).
9
10We reproduce the [accompanying notices](https://github.com/viatra/org.eclipse.viatra/blob/d422bcc626a99c4640c0d13931f393ccea0d2326/NOTICE.md) in full below:
11
12# Notices for Eclipse VIATRA
13
14This content is produced and maintained by the Eclipse VIATRA project.
15
16* Project home: https://projects.eclipse.org/projects/modeling.viatra
17
18## Trademarks
19
20Eclipse VIATRA, and VIATRA are trademarks of the Eclipse Foundation.
21
22## Copyright
23
24All content is the property of the respective authors or their employers. For
25more information regarding authorship of content, please consult the listed
26source code repository logs.
27
28## Declared Project Licenses
29
30This program and the accompanying materials are made available under the terms
31of the Eclipse Public License v. 2.0 which is available at
32http://www.eclipse.org/legal/epl-v20.html.
33
34SPDX-License-Identifier: EPL-2.0
35
36## Source Code
37
38The project maintains the following source code repositories:
39
40* http://git.eclipse.org/c/viatra/org.eclipse.viatra.git
41* http://git.eclipse.org/c/viatra/org.eclipse.viatra.modelobfuscator.git
42* http://git.eclipse.org/c/viatra/org.eclipse.viatra.examples.git
43* http://git.eclipse.org/c/viatra/org.eclipse.viatra2.vpm.git
44
45## Third-party Content
46
47This project leverages the following third party content.
48
49ANTLR Runtime only: (3.2)
50
51* License: New BSD license
52
53Apache Commons Language Library (2.1)
54
55* License: Apache License, 2.0
56
57Google Guice / Inject Core API (3.0.0)
58
59* License: Apache License, 2.0
60
61Google Guice / Inject Core API (3.0.0)
62
63* License: Apache License 2.0
64
65Guava (10.0.1)
66
67* License: Apache License, 2.0
68
69Guice (2.0)
70
71* License: Apache License, 2.0
72
73guice-multibindings (3.0.0)
74
75* License: Apache License, 2.0
76
77log4j (1.2.15)
78
79* License: Apache License 2.0
80
81LPG Java Runtime (lpgjavaruntime.jar) (1.1)
82
83* License: Eclipse Public License
84
85mockito (1.9.5)
86
87* License: Apache License, 2.0, New BSD license, MIT license
diff --git a/subprojects/store-query-viatra/build.gradle b/subprojects/store-query-viatra/build.gradle
deleted file mode 100644
index 13a7544f..00000000
--- a/subprojects/store-query-viatra/build.gradle
+++ /dev/null
@@ -1,16 +0,0 @@
1plugins {
2 id 'refinery-java-library'
3}
4
5configurations.testRuntimeClasspath {
6 // VIATRA requires log4j 1.x, but we use log4j-over-slf4j instead
7 exclude group: 'log4j', module: 'log4j'
8}
9
10dependencies {
11 implementation libs.ecore
12 api libs.viatra
13 api project(':refinery-store-query')
14 testImplementation libs.slf4j.simple
15 testImplementation libs.slf4j.log4j
16}
diff --git a/subprojects/store-query-viatra/build.gradle.kts b/subprojects/store-query-viatra/build.gradle.kts
new file mode 100644
index 00000000..e3a22145
--- /dev/null
+++ b/subprojects/store-query-viatra/build.gradle.kts
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 id("tools.refinery.gradle.java-library")
9}
10
11dependencies {
12 implementation(libs.ecore)
13 api(libs.viatra)
14 api(project(":refinery-store-query"))
15}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQuery.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQuery.java
deleted file mode 100644
index 677e3c7d..00000000
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQuery.java
+++ /dev/null
@@ -1,21 +0,0 @@
1package tools.refinery.store.query.viatra;
2
3import tools.refinery.store.adapter.ModelAdapterBuilderFactory;
4import tools.refinery.store.model.ModelStoreBuilder;
5import tools.refinery.store.query.ModelQuery;
6import tools.refinery.store.query.viatra.internal.ViatraModelQueryBuilderImpl;
7
8public final class ViatraModelQuery extends ModelAdapterBuilderFactory<ViatraModelQueryAdapter,
9 ViatraModelQueryStoreAdapter, ViatraModelQueryBuilder> {
10 public static final ViatraModelQuery ADAPTER = new ViatraModelQuery();
11
12 private ViatraModelQuery() {
13 super(ViatraModelQueryAdapter.class, ViatraModelQueryStoreAdapter.class, ViatraModelQueryBuilder.class);
14 extendsAdapter(ModelQuery.ADAPTER);
15 }
16
17 @Override
18 public ViatraModelQueryBuilder createBuilder(ModelStoreBuilder storeBuilder) {
19 return new ViatraModelQueryBuilderImpl(storeBuilder);
20 }
21}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryAdapter.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryAdapter.java
index 7e21476b..12c93f62 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryAdapter.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryAdapter.java
@@ -1,8 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra; 6package tools.refinery.store.query.viatra;
2 7
3import tools.refinery.store.query.ModelQueryAdapter; 8import tools.refinery.store.query.ModelQueryAdapter;
9import tools.refinery.store.query.viatra.internal.ViatraModelQueryBuilderImpl;
4 10
5public interface ViatraModelQueryAdapter extends ModelQueryAdapter { 11public interface ViatraModelQueryAdapter extends ModelQueryAdapter {
6 @Override 12 @Override
7 ViatraModelQueryStoreAdapter getStoreAdapter(); 13 ViatraModelQueryStoreAdapter getStoreAdapter();
14
15 static ViatraModelQueryBuilder builder() {
16 return new ViatraModelQueryBuilderImpl();
17 }
8} 18}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryBuilder.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryBuilder.java
index 7ae86f9f..931a07aa 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryBuilder.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryBuilder.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra; 6package tools.refinery.store.query.viatra;
2 7
3import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions; 8import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions;
@@ -45,5 +50,5 @@ public interface ViatraModelQueryBuilder extends ModelQueryBuilder {
45 ViatraModelQueryBuilder hint(Dnf dnf, QueryEvaluationHint queryEvaluationHint); 50 ViatraModelQueryBuilder hint(Dnf dnf, QueryEvaluationHint queryEvaluationHint);
46 51
47 @Override 52 @Override
48 ViatraModelQueryStoreAdapter createStoreAdapter(ModelStore store); 53 ViatraModelQueryStoreAdapter build(ModelStore store);
49} 54}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryStoreAdapter.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryStoreAdapter.java
index 1ee02f12..da6d7bd5 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryStoreAdapter.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/ViatraModelQueryStoreAdapter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra; 6package tools.refinery.store.query.viatra;
2 7
3import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions; 8import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/RelationalScope.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/RelationalScope.java
index 8328e759..d1a65a89 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/RelationalScope.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/RelationalScope.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal; 6package tools.refinery.store.query.viatra.internal;
2 7
3import org.apache.log4j.Logger; 8import org.apache.log4j.Logger;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryAdapterImpl.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryAdapterImpl.java
index 8be30fee..7103a561 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryAdapterImpl.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryAdapterImpl.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal; 6package tools.refinery.store.query.viatra.internal;
2 7
3import org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine; 8import org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryBuilderImpl.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryBuilderImpl.java
index bfabf26e..ce2467b4 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryBuilderImpl.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryBuilderImpl.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal; 6package tools.refinery.store.query.viatra.internal;
2 7
3import org.eclipse.viatra.query.runtime.api.IQuerySpecification; 8import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
@@ -20,7 +25,8 @@ import tools.refinery.store.query.viatra.internal.pquery.Dnf2PQuery;
20import java.util.*; 25import java.util.*;
21import java.util.function.Function; 26import java.util.function.Function;
22 27
23public class ViatraModelQueryBuilderImpl extends AbstractModelAdapterBuilder implements ViatraModelQueryBuilder { 28public class ViatraModelQueryBuilderImpl extends AbstractModelAdapterBuilder<ViatraModelQueryStoreAdapterImpl>
29 implements ViatraModelQueryBuilder {
24 private ViatraQueryEngineOptions.Builder engineOptionsBuilder; 30 private ViatraQueryEngineOptions.Builder engineOptionsBuilder;
25 private QueryEvaluationHint defaultHint = new QueryEvaluationHint(Map.of( 31 private QueryEvaluationHint defaultHint = new QueryEvaluationHint(Map.of(
26 // Use a cost function that ignores the initial (empty) model but allows higher arity input keys. 32 // Use a cost function that ignores the initial (empty) model but allows higher arity input keys.
@@ -30,8 +36,7 @@ public class ViatraModelQueryBuilderImpl extends AbstractModelAdapterBuilder imp
30 private final Set<AnyQuery> vacuousQueries = new LinkedHashSet<>(); 36 private final Set<AnyQuery> vacuousQueries = new LinkedHashSet<>();
31 private final Map<AnyQuery, IQuerySpecification<RawPatternMatcher>> querySpecifications = new LinkedHashMap<>(); 37 private final Map<AnyQuery, IQuerySpecification<RawPatternMatcher>> querySpecifications = new LinkedHashMap<>();
32 38
33 public ViatraModelQueryBuilderImpl(ModelStoreBuilder storeBuilder) { 39 public ViatraModelQueryBuilderImpl() {
34 super(storeBuilder);
35 engineOptionsBuilder = new ViatraQueryEngineOptions.Builder() 40 engineOptionsBuilder = new ViatraQueryEngineOptions.Builder()
36 .withDefaultBackend(ReteBackendFactory.INSTANCE) 41 .withDefaultBackend(ReteBackendFactory.INSTANCE)
37 .withDefaultCachingBackend(ReteBackendFactory.INSTANCE) 42 .withDefaultCachingBackend(ReteBackendFactory.INSTANCE)
@@ -40,36 +45,42 @@ public class ViatraModelQueryBuilderImpl extends AbstractModelAdapterBuilder imp
40 45
41 @Override 46 @Override
42 public ViatraModelQueryBuilder engineOptions(ViatraQueryEngineOptions engineOptions) { 47 public ViatraModelQueryBuilder engineOptions(ViatraQueryEngineOptions engineOptions) {
48 checkNotConfigured();
43 engineOptionsBuilder = new ViatraQueryEngineOptions.Builder(engineOptions); 49 engineOptionsBuilder = new ViatraQueryEngineOptions.Builder(engineOptions);
44 return this; 50 return this;
45 } 51 }
46 52
47 @Override 53 @Override
48 public ViatraModelQueryBuilder defaultHint(QueryEvaluationHint queryEvaluationHint) { 54 public ViatraModelQueryBuilder defaultHint(QueryEvaluationHint queryEvaluationHint) {
55 checkNotConfigured();
49 defaultHint = defaultHint.overrideBy(queryEvaluationHint); 56 defaultHint = defaultHint.overrideBy(queryEvaluationHint);
50 return this; 57 return this;
51 } 58 }
52 59
53 @Override 60 @Override
54 public ViatraModelQueryBuilder backend(IQueryBackendFactory queryBackendFactory) { 61 public ViatraModelQueryBuilder backend(IQueryBackendFactory queryBackendFactory) {
62 checkNotConfigured();
55 engineOptionsBuilder.withDefaultBackend(queryBackendFactory); 63 engineOptionsBuilder.withDefaultBackend(queryBackendFactory);
56 return this; 64 return this;
57 } 65 }
58 66
59 @Override 67 @Override
60 public ViatraModelQueryBuilder cachingBackend(IQueryBackendFactory queryBackendFactory) { 68 public ViatraModelQueryBuilder cachingBackend(IQueryBackendFactory queryBackendFactory) {
69 checkNotConfigured();
61 engineOptionsBuilder.withDefaultCachingBackend(queryBackendFactory); 70 engineOptionsBuilder.withDefaultCachingBackend(queryBackendFactory);
62 return this; 71 return this;
63 } 72 }
64 73
65 @Override 74 @Override
66 public ViatraModelQueryBuilder searchBackend(IQueryBackendFactory queryBackendFactory) { 75 public ViatraModelQueryBuilder searchBackend(IQueryBackendFactory queryBackendFactory) {
76 checkNotConfigured();
67 engineOptionsBuilder.withDefaultSearchBackend(queryBackendFactory); 77 engineOptionsBuilder.withDefaultSearchBackend(queryBackendFactory);
68 return this; 78 return this;
69 } 79 }
70 80
71 @Override 81 @Override
72 public ViatraModelQueryBuilder query(AnyQuery query) { 82 public ViatraModelQueryBuilder query(AnyQuery query) {
83 checkNotConfigured();
73 if (querySpecifications.containsKey(query) || vacuousQueries.contains(query)) { 84 if (querySpecifications.containsKey(query) || vacuousQueries.contains(query)) {
74 // Ignore duplicate queries. 85 // Ignore duplicate queries.
75 return this; 86 return this;
@@ -98,21 +109,27 @@ public class ViatraModelQueryBuilderImpl extends AbstractModelAdapterBuilder imp
98 109
99 @Override 110 @Override
100 public ViatraModelQueryBuilder computeHint(Function<Dnf, QueryEvaluationHint> computeHint) { 111 public ViatraModelQueryBuilder computeHint(Function<Dnf, QueryEvaluationHint> computeHint) {
112 checkNotConfigured();
101 dnf2PQuery.setComputeHint(computeHint); 113 dnf2PQuery.setComputeHint(computeHint);
102 return this; 114 return this;
103 } 115 }
104 116
105 @Override 117 @Override
106 public ViatraModelQueryBuilder hint(Dnf dnf, QueryEvaluationHint queryEvaluationHint) { 118 public ViatraModelQueryBuilder hint(Dnf dnf, QueryEvaluationHint queryEvaluationHint) {
119 checkNotConfigured();
107 dnf2PQuery.hint(dnf, queryEvaluationHint); 120 dnf2PQuery.hint(dnf, queryEvaluationHint);
108 return this; 121 return this;
109 } 122 }
110 123
111 @Override 124 @Override
112 public ViatraModelQueryStoreAdapterImpl createStoreAdapter(ModelStore store) { 125 public void doConfigure(ModelStoreBuilder storeBuilder) {
113 validateSymbols(store);
114 dnf2PQuery.assertNoUnusedHints(); 126 dnf2PQuery.assertNoUnusedHints();
115 return new ViatraModelQueryStoreAdapterImpl(store, buildEngineOptions(), dnf2PQuery.getRelationViews(), 127 }
128
129 @Override
130 public ViatraModelQueryStoreAdapterImpl doBuild(ModelStore store) {
131 validateSymbols(store);
132 return new ViatraModelQueryStoreAdapterImpl(store, buildEngineOptions(), dnf2PQuery.getSymbolViews(),
116 Collections.unmodifiableMap(querySpecifications), Collections.unmodifiableSet(vacuousQueries)); 133 Collections.unmodifiableMap(querySpecifications), Collections.unmodifiableSet(vacuousQueries));
117 } 134 }
118 135
@@ -135,11 +152,11 @@ public class ViatraModelQueryBuilderImpl extends AbstractModelAdapterBuilder imp
135 152
136 private void validateSymbols(ModelStore store) { 153 private void validateSymbols(ModelStore store) {
137 var symbols = store.getSymbols(); 154 var symbols = store.getSymbols();
138 for (var relationView : dnf2PQuery.getRelationViews().keySet()) { 155 for (var symbolView : dnf2PQuery.getSymbolViews().keySet()) {
139 var symbol = relationView.getSymbol(); 156 var symbol = symbolView.getSymbol();
140 if (!symbols.contains(symbol)) { 157 if (!symbols.contains(symbol)) {
141 throw new IllegalArgumentException("Cannot query relation view %s: symbol %s is not in the model" 158 throw new IllegalArgumentException("Cannot query view %s: symbol %s is not in the model"
142 .formatted(relationView, symbol)); 159 .formatted(symbolView, symbol));
143 } 160 }
144 } 161 }
145 } 162 }
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryStoreAdapterImpl.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryStoreAdapterImpl.java
index 04c48c43..11a3c7fd 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryStoreAdapterImpl.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/ViatraModelQueryStoreAdapterImpl.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal; 6package tools.refinery.store.query.viatra.internal;
2 7
3import org.eclipse.viatra.query.runtime.api.IQuerySpecification; 8import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
@@ -8,20 +13,20 @@ import tools.refinery.store.model.ModelStore;
8import tools.refinery.store.query.dnf.AnyQuery; 13import tools.refinery.store.query.dnf.AnyQuery;
9import tools.refinery.store.query.viatra.ViatraModelQueryStoreAdapter; 14import tools.refinery.store.query.viatra.ViatraModelQueryStoreAdapter;
10import tools.refinery.store.query.viatra.internal.matcher.RawPatternMatcher; 15import tools.refinery.store.query.viatra.internal.matcher.RawPatternMatcher;
11import tools.refinery.store.query.view.AnyRelationView; 16import tools.refinery.store.query.view.AnySymbolView;
12 17
13import java.util.*; 18import java.util.*;
14 19
15public class ViatraModelQueryStoreAdapterImpl implements ViatraModelQueryStoreAdapter { 20public class ViatraModelQueryStoreAdapterImpl implements ViatraModelQueryStoreAdapter {
16 private final ModelStore store; 21 private final ModelStore store;
17 private final ViatraQueryEngineOptions engineOptions; 22 private final ViatraQueryEngineOptions engineOptions;
18 private final Map<AnyRelationView, IInputKey> inputKeys; 23 private final Map<AnySymbolView, IInputKey> inputKeys;
19 private final Map<AnyQuery, IQuerySpecification<RawPatternMatcher>> querySpecifications; 24 private final Map<AnyQuery, IQuerySpecification<RawPatternMatcher>> querySpecifications;
20 private final Set<AnyQuery> vacuousQueries; 25 private final Set<AnyQuery> vacuousQueries;
21 private final Set<AnyQuery> allQueries; 26 private final Set<AnyQuery> allQueries;
22 27
23 ViatraModelQueryStoreAdapterImpl(ModelStore store, ViatraQueryEngineOptions engineOptions, 28 ViatraModelQueryStoreAdapterImpl(ModelStore store, ViatraQueryEngineOptions engineOptions,
24 Map<AnyRelationView, IInputKey> inputKeys, 29 Map<AnySymbolView, IInputKey> inputKeys,
25 Map<AnyQuery, IQuerySpecification<RawPatternMatcher>> querySpecifications, 30 Map<AnyQuery, IQuerySpecification<RawPatternMatcher>> querySpecifications,
26 Set<AnyQuery> vacuousQueries) { 31 Set<AnyQuery> vacuousQueries) {
27 this.store = store; 32 this.store = store;
@@ -40,11 +45,11 @@ public class ViatraModelQueryStoreAdapterImpl implements ViatraModelQueryStoreAd
40 return store; 45 return store;
41 } 46 }
42 47
43 public Collection<AnyRelationView> getRelationViews() { 48 public Collection<AnySymbolView> getSymbolViews() {
44 return inputKeys.keySet(); 49 return inputKeys.keySet();
45 } 50 }
46 51
47 public Map<AnyRelationView, IInputKey> getInputKeys() { 52 public Map<AnySymbolView, IInputKey> getInputKeys() {
48 return inputKeys; 53 return inputKeys;
49 } 54 }
50 55
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperator.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperator.java
deleted file mode 100644
index e0bca9e0..00000000
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperator.java
+++ /dev/null
@@ -1,97 +0,0 @@
1package tools.refinery.store.query.viatra.internal.cardinality;
2
3import org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.BoundAggregator;
4import org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.IMultisetAggregationOperator;
5import tools.refinery.store.representation.cardinality.FiniteUpperCardinality;
6import tools.refinery.store.representation.cardinality.UnboundedUpperCardinality;
7import tools.refinery.store.representation.cardinality.UpperCardinalities;
8import tools.refinery.store.representation.cardinality.UpperCardinality;
9
10import java.util.stream.Stream;
11
12public class UpperCardinalitySumAggregationOperator implements IMultisetAggregationOperator<UpperCardinality,
13 UpperCardinalitySumAggregationOperator.Accumulator, UpperCardinality> {
14 public static final UpperCardinalitySumAggregationOperator INSTANCE = new UpperCardinalitySumAggregationOperator();
15
16 public static final BoundAggregator BOUND_AGGREGATOR = new BoundAggregator(INSTANCE, UpperCardinality.class,
17 UpperCardinality.class);
18
19 private UpperCardinalitySumAggregationOperator() {
20 // Singleton constructor.
21 }
22
23 @Override
24 public String getName() {
25 return "sum<UpperCardinality>";
26 }
27
28 @Override
29 public String getShortDescription() {
30 return "%s computes the sum of finite or unbounded upper cardinalities".formatted(getName());
31 }
32
33 @Override
34 public Accumulator createNeutral() {
35 return new Accumulator();
36 }
37
38 @Override
39 public boolean isNeutral(Accumulator result) {
40 return result.sumFiniteUpperBounds == 0 && result.countUnbounded == 0;
41 }
42
43 @Override
44 public Accumulator update(Accumulator oldResult, UpperCardinality updateValue, boolean isInsertion) {
45 if (updateValue instanceof FiniteUpperCardinality finiteUpperCardinality) {
46 int finiteUpperBound = finiteUpperCardinality.finiteUpperBound();
47 if (isInsertion) {
48 oldResult.sumFiniteUpperBounds += finiteUpperBound;
49 } else {
50 oldResult.sumFiniteUpperBounds -= finiteUpperBound;
51 }
52 } else if (updateValue instanceof UnboundedUpperCardinality) {
53 if (isInsertion) {
54 oldResult.countUnbounded += 1;
55 } else {
56 oldResult.countUnbounded -= 1;
57 }
58 } else {
59 throw new IllegalArgumentException("Unknown UpperCardinality: " + updateValue);
60 }
61 return oldResult;
62 }
63
64 @Override
65 public UpperCardinality getAggregate(Accumulator result) {
66 return result.countUnbounded > 0 ? UpperCardinalities.UNBOUNDED :
67 UpperCardinalities.valueOf(result.sumFiniteUpperBounds);
68 }
69
70 @Override
71 public UpperCardinality aggregateStream(Stream<UpperCardinality> stream) {
72 var result = stream.collect(this::createNeutral, (accumulator, value) -> update(accumulator, value, true),
73 (left, right) -> new Accumulator(left.sumFiniteUpperBounds + right.sumFiniteUpperBounds,
74 left.countUnbounded + right.countUnbounded));
75 return getAggregate(result);
76 }
77
78 @Override
79 public Accumulator clone(Accumulator original) {
80 return new Accumulator(original.sumFiniteUpperBounds, original.countUnbounded);
81 }
82
83 public static class Accumulator {
84 private int sumFiniteUpperBounds;
85
86 private int countUnbounded;
87
88 private Accumulator(int sumFiniteUpperBounds, int countUnbounded) {
89 this.sumFiniteUpperBounds = sumFiniteUpperBounds;
90 this.countUnbounded = countUnbounded;
91 }
92
93 private Accumulator() {
94 this(0, 0);
95 }
96 }
97}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/DummyBaseIndexer.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/DummyBaseIndexer.java
index 2a24b67c..8cb199d2 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/DummyBaseIndexer.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/DummyBaseIndexer.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.context; 6package tools.refinery.store.query.viatra.internal.context;
2 7
3import org.eclipse.viatra.query.runtime.api.scope.IBaseIndex; 8import org.eclipse.viatra.query.runtime.api.scope.IBaseIndex;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalEngineContext.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalEngineContext.java
index 28bc69d0..7220f8ca 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalEngineContext.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalEngineContext.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.context; 6package tools.refinery.store.query.viatra.internal.context;
2 7
3import org.eclipse.viatra.query.runtime.api.scope.IBaseIndex; 8import org.eclipse.viatra.query.runtime.api.scope.IBaseIndex;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalQueryMetaContext.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalQueryMetaContext.java
index d2c6beb4..211eacb4 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalQueryMetaContext.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalQueryMetaContext.java
@@ -1,12 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.context; 6package tools.refinery.store.query.viatra.internal.context;
2 7
3import org.eclipse.viatra.query.runtime.matchers.context.AbstractQueryMetaContext; 8import org.eclipse.viatra.query.runtime.matchers.context.AbstractQueryMetaContext;
4import org.eclipse.viatra.query.runtime.matchers.context.IInputKey; 9import org.eclipse.viatra.query.runtime.matchers.context.IInputKey;
5import org.eclipse.viatra.query.runtime.matchers.context.InputKeyImplication; 10import org.eclipse.viatra.query.runtime.matchers.context.InputKeyImplication;
6import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey; 11import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
7import tools.refinery.store.query.term.DataSort; 12import tools.refinery.store.query.viatra.internal.pquery.SymbolViewWrapper;
8import tools.refinery.store.query.viatra.internal.pquery.RelationViewWrapper; 13import tools.refinery.store.query.view.AnySymbolView;
9import tools.refinery.store.query.view.AnyRelationView;
10 14
11import java.util.*; 15import java.util.*;
12 16
@@ -14,9 +18,9 @@ import java.util.*;
14 * The meta context information for String scopes. 18 * The meta context information for String scopes.
15 */ 19 */
16public class RelationalQueryMetaContext extends AbstractQueryMetaContext { 20public class RelationalQueryMetaContext extends AbstractQueryMetaContext {
17 private final Map<AnyRelationView, IInputKey> inputKeys; 21 private final Map<AnySymbolView, IInputKey> inputKeys;
18 22
19 RelationalQueryMetaContext(Map<AnyRelationView, IInputKey> inputKeys) { 23 RelationalQueryMetaContext(Map<AnySymbolView, IInputKey> inputKeys) {
20 this.inputKeys = inputKeys; 24 this.inputKeys = inputKeys;
21 } 25 }
22 26
@@ -42,29 +46,29 @@ public class RelationalQueryMetaContext extends AbstractQueryMetaContext {
42 if (implyingKey instanceof JavaTransitiveInstancesKey) { 46 if (implyingKey instanceof JavaTransitiveInstancesKey) {
43 return List.of(); 47 return List.of();
44 } 48 }
45 var relationView = checkKey(implyingKey); 49 var symbolView = checkKey(implyingKey);
46 var relationViewImplications = relationView.getImpliedRelationViews(); 50 var relationViewImplications = symbolView.getImpliedRelationViews();
47 var inputKeyImplications = new HashSet<InputKeyImplication>(relationViewImplications.size()); 51 var inputKeyImplications = new HashSet<InputKeyImplication>(relationViewImplications.size());
48 for (var relationViewImplication : relationViewImplications) { 52 for (var relationViewImplication : relationViewImplications) {
49 if (!relationView.equals(relationViewImplication.implyingRelationView())) { 53 if (!symbolView.equals(relationViewImplication.implyingView())) {
50 throw new IllegalArgumentException("Relation view %s returned unrelated implication %s".formatted( 54 throw new IllegalArgumentException("Relation view %s returned unrelated implication %s".formatted(
51 relationView, relationViewImplication)); 55 symbolView, relationViewImplication));
52 } 56 }
53 var impliedInputKey = inputKeys.get(relationViewImplication.impliedRelationView()); 57 var impliedInputKey = inputKeys.get(relationViewImplication.impliedView());
54 // Ignore implications not relevant for any queries included in the model. 58 // Ignore implications not relevant for any queries included in the model.
55 if (impliedInputKey != null) { 59 if (impliedInputKey != null) {
56 inputKeyImplications.add(new InputKeyImplication(implyingKey, impliedInputKey, 60 inputKeyImplications.add(new InputKeyImplication(implyingKey, impliedInputKey,
57 relationViewImplication.impliedIndices())); 61 relationViewImplication.impliedIndices()));
58 } 62 }
59 } 63 }
60 var sorts = relationView.getSorts(); 64 var parameters = symbolView.getParameters();
61 int arity = relationView.arity(); 65 int arity = symbolView.arity();
62 for (int i = 0; i < arity; i++) { 66 for (int i = 0; i < arity; i++) {
63 var sort = sorts.get(i); 67 var parameter = parameters.get(i);
64 if (sort instanceof DataSort<?> dataSort) { 68 var parameterType = parameter.tryGetType();
65 var javaTransitiveInstancesKey = new JavaTransitiveInstancesKey(dataSort.type()); 69 if (parameterType.isPresent()) {
66 var javaImplication = new InputKeyImplication(implyingKey, javaTransitiveInstancesKey, 70 var javaTransitiveInstancesKey = new JavaTransitiveInstancesKey(parameterType.get());
67 List.of(i)); 71 var javaImplication = new InputKeyImplication(implyingKey, javaTransitiveInstancesKey, List.of(i));
68 inputKeyImplications.add(javaImplication); 72 inputKeyImplications.add(javaImplication);
69 } 73 }
70 } 74 }
@@ -94,20 +98,20 @@ public class RelationalQueryMetaContext extends AbstractQueryMetaContext {
94 return flattened; 98 return flattened;
95 } 99 }
96 100
97 private static void checkValidIndices(AnyRelationView relationView, Collection<Integer> indices) { 101 private static void checkValidIndices(AnySymbolView relationView, Collection<Integer> indices) {
98 indices.stream().filter(relationView::invalidIndex).findAny().ifPresent(i -> { 102 indices.stream().filter(relationView::invalidIndex).findAny().ifPresent(i -> {
99 throw new IllegalArgumentException("Index %d is invalid for %s".formatted(i, relationView)); 103 throw new IllegalArgumentException("Index %d is invalid for %s".formatted(i, relationView));
100 }); 104 });
101 } 105 }
102 106
103 public AnyRelationView checkKey(IInputKey key) { 107 public AnySymbolView checkKey(IInputKey key) {
104 if (!(key instanceof RelationViewWrapper wrapper)) { 108 if (!(key instanceof SymbolViewWrapper wrapper)) {
105 throw new IllegalArgumentException("The input key %s is not a valid input key".formatted(key)); 109 throw new IllegalArgumentException("The input key %s is not a valid input key".formatted(key));
106 } 110 }
107 var relationView = wrapper.getWrappedKey(); 111 var symbolView = wrapper.getWrappedKey();
108 if (!inputKeys.containsKey(relationView)) { 112 if (!inputKeys.containsKey(symbolView)) {
109 throw new IllegalArgumentException("The input key %s is not present in the model".formatted(key)); 113 throw new IllegalArgumentException("The input key %s is not present in the model".formatted(key));
110 } 114 }
111 return relationView; 115 return symbolView;
112 } 116 }
113} 117}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalRuntimeContext.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalRuntimeContext.java
index 854817b1..0f2daca8 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalRuntimeContext.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/context/RelationalRuntimeContext.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.context; 6package tools.refinery.store.query.viatra.internal.context;
2 7
3import org.eclipse.viatra.query.runtime.matchers.context.*; 8import org.eclipse.viatra.query.runtime.matchers.context.*;
@@ -8,9 +13,9 @@ import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
8import org.eclipse.viatra.query.runtime.matchers.util.Accuracy; 13import org.eclipse.viatra.query.runtime.matchers.util.Accuracy;
9import tools.refinery.store.model.Model; 14import tools.refinery.store.model.Model;
10import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl; 15import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl;
11import tools.refinery.store.query.viatra.internal.pquery.RelationViewWrapper; 16import tools.refinery.store.query.viatra.internal.pquery.SymbolViewWrapper;
12import tools.refinery.store.query.viatra.internal.update.ModelUpdateListener; 17import tools.refinery.store.query.viatra.internal.update.ModelUpdateListener;
13import tools.refinery.store.query.view.AnyRelationView; 18import tools.refinery.store.query.view.AnySymbolView;
14 19
15import java.lang.reflect.InvocationTargetException; 20import java.lang.reflect.InvocationTargetException;
16import java.util.Iterator; 21import java.util.Iterator;
@@ -54,9 +59,9 @@ public class RelationalRuntimeContext implements IQueryRuntimeContext {
54 59
55 @Override 60 @Override
56 public boolean isIndexed(IInputKey key, IndexingService service) { 61 public boolean isIndexed(IInputKey key, IndexingService service) {
57 if (key instanceof RelationViewWrapper wrapper) { 62 if (key instanceof SymbolViewWrapper wrapper) {
58 var relationalKey = wrapper.getWrappedKey(); 63 var symbolViewKey = wrapper.getWrappedKey();
59 return this.modelUpdateListener.containsRelationView(relationalKey); 64 return this.modelUpdateListener.containsSymbolView(symbolViewKey);
60 } else { 65 } else {
61 return false; 66 return false;
62 } 67 }
@@ -69,13 +74,13 @@ public class RelationalRuntimeContext implements IQueryRuntimeContext {
69 } 74 }
70 } 75 }
71 76
72 AnyRelationView checkKey(IInputKey key) { 77 AnySymbolView checkKey(IInputKey key) {
73 if (key instanceof RelationViewWrapper wrappedKey) { 78 if (key instanceof SymbolViewWrapper wrappedKey) {
74 var relationViewKey = wrappedKey.getWrappedKey(); 79 var symbolViewKey = wrappedKey.getWrappedKey();
75 if (modelUpdateListener.containsRelationView(relationViewKey)) { 80 if (modelUpdateListener.containsSymbolView(symbolViewKey)) {
76 return relationViewKey; 81 return symbolViewKey;
77 } else { 82 } else {
78 throw new IllegalStateException("Query is asking for non-indexed key %s".formatted(relationViewKey)); 83 throw new IllegalStateException("Query is asking for non-indexed key %s".formatted(symbolViewKey));
79 } 84 }
80 } else { 85 } else {
81 throw new IllegalStateException("Query is asking for non-relational key"); 86 throw new IllegalStateException("Query is asking for non-relational key");
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendOperationExecutor.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendOperationExecutor.java
index 2d3dd5a7..37177cbf 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendOperationExecutor.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendOperationExecutor.java
@@ -1,5 +1,6 @@
1/******************************************************************************* 1/*******************************************************************************
2 * Copyright (c) 2010-2013, Zoltan Ujhelyi, Akos Horvath, Istvan Rath and Daniel Varro 2 * Copyright (c) 2010-2013, Zoltan Ujhelyi, Akos Horvath, Istvan Rath and Daniel Varro
3 * Copyright (c) 2023 The Refinery Authors <https://refinery.tools/>
3 * This program and the accompanying materials are made available under the 4 * This program and the accompanying materials are made available under the
4 * terms of the Eclipse Public License v. 2.0 which is available at 5 * terms of the Eclipse Public License v. 2.0 which is available at
5 * http://www.eclipse.org/legal/epl-v20.html. 6 * http://www.eclipse.org/legal/epl-v20.html.
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendPositivePatternCall.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendPositivePatternCall.java
index aaaece80..9d48c785 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendPositivePatternCall.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/ExtendPositivePatternCall.java
@@ -1,5 +1,6 @@
1/******************************************************************************* 1/*******************************************************************************
2 * Copyright (c) 2010-2016, Grill Balázs, IncQueryLabs 2 * Copyright (c) 2010-2016, Grill Balázs, IncQueryLabs
3 * Copyright (c) 2023 The Refinery Authors <https://refinery.tools/>
3 * This program and the accompanying materials are made available under the 4 * This program and the accompanying materials are made available under the
4 * terms of the Eclipse Public License v. 2.0 which is available at 5 * terms of the Eclipse Public License v. 2.0 which is available at
5 * http://www.eclipse.org/legal/epl-v20.html. 6 * http://www.eclipse.org/legal/epl-v20.html.
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/FlatCostFunction.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/FlatCostFunction.java
index 84cab142..cc906f22 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/FlatCostFunction.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/FlatCostFunction.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.localsearch; 6package tools.refinery.store.query.viatra.internal.localsearch;
2 7
3import org.eclipse.viatra.query.runtime.localsearch.planner.cost.IConstraintEvaluationContext; 8import org.eclipse.viatra.query.runtime.localsearch.planner.cost.IConstraintEvaluationContext;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/GenericTypeExtend.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/GenericTypeExtend.java
index 64653658..96ac4a72 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/GenericTypeExtend.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/GenericTypeExtend.java
@@ -1,5 +1,6 @@
1/******************************************************************************* 1/*******************************************************************************
2 * Copyright (c) 2010-2017, Zoltan Ujhelyi, IncQuery Labs Ltd. 2 * Copyright (c) 2010-2017, Zoltan Ujhelyi, IncQuery Labs Ltd.
3 * Copyright (c) 2023 The Refinery Authors <https://refinery.tools/>
3 * This program and the accompanying materials are made available under the 4 * This program and the accompanying materials are made available under the
4 * terms of the Eclipse Public License v. 2.0 which is available at 5 * terms of the Eclipse Public License v. 2.0 which is available at
5 * http://www.eclipse.org/legal/epl-v20.html. 6 * http://www.eclipse.org/legal/epl-v20.html.
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchBackendFactory.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchBackendFactory.java
index 156eb313..0c77f587 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchBackendFactory.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchBackendFactory.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.localsearch; 6package tools.refinery.store.query.viatra.internal.localsearch;
2 7
3import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.AbstractLocalSearchResultProvider; 8import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.AbstractLocalSearchResultProvider;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchResultProvider.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchResultProvider.java
index be2a38ca..da37be14 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchResultProvider.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalLocalSearchResultProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.localsearch; 6package tools.refinery.store.query.viatra.internal.localsearch;
2 7
3import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.AbstractLocalSearchResultProvider; 8import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.AbstractLocalSearchResultProvider;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalOperationCompiler.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalOperationCompiler.java
index b6832b39..f76ef486 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalOperationCompiler.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/localsearch/RelationalOperationCompiler.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.localsearch; 6package tools.refinery.store.query.viatra.internal.localsearch;
2 7
3import org.eclipse.viatra.query.runtime.localsearch.operations.generic.GenericTypeExtendSingleValue; 8import org.eclipse.viatra.query.runtime.localsearch.operations.generic.GenericTypeExtendSingleValue;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalCursor.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalCursor.java
index 4daa14a1..47efb2aa 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalCursor.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalCursor.java
@@ -1,17 +1,21 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.matcher; 6package tools.refinery.store.query.viatra.internal.matcher;
2 7
3import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
4import org.eclipse.viatra.query.runtime.rete.index.IterableIndexer; 8import org.eclipse.viatra.query.runtime.rete.index.IterableIndexer;
5import tools.refinery.store.map.Cursor; 9import tools.refinery.store.map.Cursor;
6import tools.refinery.store.tuple.TupleLike; 10import tools.refinery.store.tuple.Tuple;
7 11
8import java.util.Iterator; 12import java.util.Iterator;
9 13
10class FunctionalCursor<T> implements Cursor<TupleLike, T> { 14class FunctionalCursor<T> implements Cursor<Tuple, T> {
11 private final IterableIndexer indexer; 15 private final IterableIndexer indexer;
12 private final Iterator<Tuple> iterator; 16 private final Iterator<org.eclipse.viatra.query.runtime.matchers.tuple.Tuple> iterator;
13 private boolean terminated; 17 private boolean terminated;
14 private TupleLike key; 18 private Tuple key;
15 private T value; 19 private T value;
16 20
17 public FunctionalCursor(IterableIndexer indexer) { 21 public FunctionalCursor(IterableIndexer indexer) {
@@ -20,7 +24,7 @@ class FunctionalCursor<T> implements Cursor<TupleLike, T> {
20 } 24 }
21 25
22 @Override 26 @Override
23 public TupleLike getKey() { 27 public Tuple getKey() {
24 return key; 28 return key;
25 } 29 }
26 30
@@ -38,7 +42,7 @@ class FunctionalCursor<T> implements Cursor<TupleLike, T> {
38 public boolean move() { 42 public boolean move() {
39 if (!terminated && iterator.hasNext()) { 43 if (!terminated && iterator.hasNext()) {
40 var match = iterator.next(); 44 var match = iterator.next();
41 key = new ViatraTupleLike(match); 45 key = MatcherUtils.toRefineryTuple(match);
42 value = MatcherUtils.getSingleValue(indexer.get(match)); 46 value = MatcherUtils.getSingleValue(indexer.get(match));
43 return true; 47 return true;
44 } 48 }
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalViatraMatcher.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalViatraMatcher.java
index 6aa45af2..f018288b 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalViatraMatcher.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/FunctionalViatraMatcher.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.matcher; 6package tools.refinery.store.query.viatra.internal.matcher;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.IQueryResultProvider; 8import org.eclipse.viatra.query.runtime.matchers.backend.IQueryResultProvider;
@@ -11,7 +16,7 @@ import tools.refinery.store.query.ResultSet;
11import tools.refinery.store.query.dnf.FunctionalQuery; 16import tools.refinery.store.query.dnf.FunctionalQuery;
12import tools.refinery.store.query.dnf.Query; 17import tools.refinery.store.query.dnf.Query;
13import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl; 18import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl;
14import tools.refinery.store.tuple.TupleLike; 19import tools.refinery.store.tuple.Tuple;
15 20
16/** 21/**
17 * Directly access the tuples inside a VIATRA pattern matcher.<p> 22 * Directly access the tuples inside a VIATRA pattern matcher.<p>
@@ -63,7 +68,7 @@ public class FunctionalViatraMatcher<T> implements ResultSet<T> {
63 } 68 }
64 69
65 @Override 70 @Override
66 public T get(TupleLike parameters) { 71 public T get(Tuple parameters) {
67 var tuple = MatcherUtils.toViatraTuple(parameters); 72 var tuple = MatcherUtils.toViatraTuple(parameters);
68 if (omitOutputIndexer == null) { 73 if (omitOutputIndexer == null) {
69 return MatcherUtils.getSingleValue(backend.getAllMatches(omitOutputMask, tuple).iterator()); 74 return MatcherUtils.getSingleValue(backend.getAllMatches(omitOutputMask, tuple).iterator());
@@ -73,7 +78,7 @@ public class FunctionalViatraMatcher<T> implements ResultSet<T> {
73 } 78 }
74 79
75 @Override 80 @Override
76 public Cursor<TupleLike, T> getAll() { 81 public Cursor<Tuple, T> getAll() {
77 if (omitOutputIndexer == null) { 82 if (omitOutputIndexer == null) {
78 var allMatches = backend.getAllMatches(emptyMask, Tuples.staticArityFlatTupleOf()); 83 var allMatches = backend.getAllMatches(emptyMask, Tuples.staticArityFlatTupleOf());
79 return new UnsafeFunctionalCursor<>(allMatches.iterator()); 84 return new UnsafeFunctionalCursor<>(allMatches.iterator());
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/IndexerUtils.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/IndexerUtils.java
index 55eb8c44..15f00b2d 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/IndexerUtils.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/IndexerUtils.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.matcher; 6package tools.refinery.store.query.viatra.internal.matcher;
2 7
3import org.eclipse.viatra.query.runtime.matchers.tuple.TupleMask; 8import org.eclipse.viatra.query.runtime.matchers.tuple.TupleMask;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtils.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtils.java
index 5d4be95d..1c784492 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtils.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtils.java
@@ -1,10 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.matcher; 6package tools.refinery.store.query.viatra.internal.matcher;
2 7
3import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple; 8import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple;
4import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; 9import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
5import org.jetbrains.annotations.Nullable; 10import org.jetbrains.annotations.Nullable;
6import tools.refinery.store.tuple.Tuple; 11import tools.refinery.store.tuple.*;
7import tools.refinery.store.tuple.TupleLike;
8 12
9import java.util.Iterator; 13import java.util.Iterator;
10 14
@@ -13,25 +17,80 @@ final class MatcherUtils {
13 throw new IllegalStateException("This is a static utility class and should not be instantiated directly"); 17 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
14 } 18 }
15 19
16 public static org.eclipse.viatra.query.runtime.matchers.tuple.Tuple toViatraTuple(TupleLike tuple) { 20 public static org.eclipse.viatra.query.runtime.matchers.tuple.Tuple toViatraTuple(Tuple refineryTuple) {
17 if (tuple instanceof ViatraTupleLike viatraTupleLike) { 21 if (refineryTuple instanceof Tuple0) {
18 return viatraTupleLike.wrappedTuple().toImmutable(); 22 return Tuples.staticArityFlatTupleOf();
23 } else if (refineryTuple instanceof Tuple1) {
24 return Tuples.staticArityFlatTupleOf(refineryTuple);
25 } else if (refineryTuple instanceof Tuple2 tuple2) {
26 return Tuples.staticArityFlatTupleOf(Tuple.of(tuple2.value0()), Tuple.of(tuple2.value1()));
27 } else if (refineryTuple instanceof Tuple3 tuple3) {
28 return Tuples.staticArityFlatTupleOf(Tuple.of(tuple3.value0()), Tuple.of(tuple3.value1()),
29 Tuple.of(tuple3.value2()));
30 } else if (refineryTuple instanceof Tuple4 tuple4) {
31 return Tuples.staticArityFlatTupleOf(Tuple.of(tuple4.value0()), Tuple.of(tuple4.value1()),
32 Tuple.of(tuple4.value2()), Tuple.of(tuple4.value3()));
33 } else {
34 int arity = refineryTuple.getSize();
35 var values = new Object[arity];
36 for (int i = 0; i < arity; i++) {
37 values[i] = Tuple.of(refineryTuple.get(i));
38 }
39 return Tuples.flatTupleOf(values);
19 } 40 }
20 int size = tuple.getSize(); 41 }
21 var array = new Object[size]; 42
22 for (int i = 0; i < size; i++) { 43 public static Tuple toRefineryTuple(ITuple viatraTuple) {
23 var value = tuple.get(i); 44 int arity = viatraTuple.getSize();
24 array[i] = Tuple.of(value); 45 if (arity == 1) {
46 return getWrapper(viatraTuple, 0);
25 } 47 }
26 return Tuples.flatTupleOf(array); 48 return prefixToRefineryTuple(viatraTuple, viatraTuple.getSize());
49 }
50
51 public static Tuple keyToRefineryTuple(ITuple viatraTuple) {
52 return prefixToRefineryTuple(viatraTuple, viatraTuple.getSize() - 1);
27 } 53 }
28 54
55 private static Tuple prefixToRefineryTuple(ITuple viatraTuple, int targetArity) {
56 if (targetArity < 0) {
57 throw new IllegalArgumentException("Requested negative prefix %d of %s"
58 .formatted(targetArity, viatraTuple));
59 }
60 return switch (targetArity) {
61 case 0 -> Tuple.of();
62 case 1 -> Tuple.of(unwrap(viatraTuple, 0));
63 case 2 -> Tuple.of(unwrap(viatraTuple, 0), unwrap(viatraTuple, 1));
64 case 3 -> Tuple.of(unwrap(viatraTuple, 0), unwrap(viatraTuple, 1), unwrap(viatraTuple, 2));
65 case 4 -> Tuple.of(unwrap(viatraTuple, 0), unwrap(viatraTuple, 1), unwrap(viatraTuple, 2),
66 unwrap(viatraTuple, 3));
67 default -> {
68 var entries = new int[targetArity];
69 for (int i = 0; i < targetArity; i++) {
70 entries[i] = unwrap(viatraTuple, i);
71 }
72 yield Tuple.of(entries);
73 }
74 };
75 }
76
77 private static Tuple1 getWrapper(ITuple viatraTuple, int index) {
78 if (!((viatraTuple.get(index)) instanceof Tuple1 wrappedObjectId)) {
79 throw new IllegalArgumentException("Element %d of tuple %s is not an object id"
80 .formatted(index, viatraTuple));
81 }
82 return wrappedObjectId;
83 }
84
85 private static int unwrap(ITuple viatraTuple, int index) {
86 return getWrapper(viatraTuple, index).value0();
87 }
29 88
30 public static <T> T getSingleValue(@Nullable Iterable<? extends ITuple> tuples) { 89 public static <T> T getSingleValue(@Nullable Iterable<? extends ITuple> viatraTuples) {
31 if (tuples == null) { 90 if (viatraTuples == null) {
32 return null; 91 return null;
33 } 92 }
34 return getSingleValue(tuples.iterator()); 93 return getSingleValue(viatraTuples.iterator());
35 } 94 }
36 95
37 public static <T> T getSingleValue(Iterator<? extends ITuple> iterator) { 96 public static <T> T getSingleValue(Iterator<? extends ITuple> iterator) {
@@ -42,7 +101,7 @@ final class MatcherUtils {
42 @SuppressWarnings("unchecked") 101 @SuppressWarnings("unchecked")
43 var result = (T) match.get(match.getSize() - 1); 102 var result = (T) match.get(match.getSize() - 1);
44 if (iterator.hasNext()) { 103 if (iterator.hasNext()) {
45 var input = new OmitOutputViatraTupleLike(match); 104 var input = keyToRefineryTuple(match);
46 throw new IllegalStateException("Query is not functional for input tuple: " + input); 105 throw new IllegalStateException("Query is not functional for input tuple: " + input);
47 } 106 }
48 return result; 107 return result;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/OmitOutputViatraTupleLike.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/OmitOutputViatraTupleLike.java
deleted file mode 100644
index bd9301ba..00000000
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/OmitOutputViatraTupleLike.java
+++ /dev/null
@@ -1,23 +0,0 @@
1package tools.refinery.store.query.viatra.internal.matcher;
2
3import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple;
4import tools.refinery.store.tuple.Tuple1;
5import tools.refinery.store.tuple.TupleLike;
6
7record OmitOutputViatraTupleLike(ITuple wrappedTuple) implements TupleLike {
8 @Override
9 public int getSize() {
10 return wrappedTuple.getSize() - 1;
11 }
12
13 @Override
14 public int get(int element) {
15 var wrappedValue = (Tuple1) wrappedTuple.get(element);
16 return wrappedValue.value0();
17 }
18
19 @Override
20 public String toString() {
21 return TupleLike.toString(this);
22 }
23}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RawPatternMatcher.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RawPatternMatcher.java
index b3d05967..5b82c4b7 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RawPatternMatcher.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RawPatternMatcher.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.matcher; 6package tools.refinery.store.query.viatra.internal.matcher;
2 7
3import org.eclipse.viatra.query.runtime.api.GenericPatternMatcher; 8import org.eclipse.viatra.query.runtime.api.GenericPatternMatcher;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalCursor.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalCursor.java
index c2dcc565..1dc8f5db 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalCursor.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalCursor.java
@@ -1,22 +1,27 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.matcher; 6package tools.refinery.store.query.viatra.internal.matcher;
2 7
3import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple; 8import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple;
4import tools.refinery.store.map.Cursor; 9import tools.refinery.store.map.Cursor;
5import tools.refinery.store.tuple.TupleLike; 10import tools.refinery.store.tuple.Tuple;
6 11
7import java.util.Iterator; 12import java.util.Iterator;
8 13
9class RelationalCursor implements Cursor<TupleLike, Boolean> { 14class RelationalCursor implements Cursor<Tuple, Boolean> {
10 private final Iterator<? extends ITuple> tuplesIterator; 15 private final Iterator<? extends ITuple> tuplesIterator;
11 private boolean terminated; 16 private boolean terminated;
12 private TupleLike key; 17 private Tuple key;
13 18
14 public RelationalCursor(Iterator<? extends ITuple> tuplesIterator) { 19 public RelationalCursor(Iterator<? extends ITuple> tuplesIterator) {
15 this.tuplesIterator = tuplesIterator; 20 this.tuplesIterator = tuplesIterator;
16 } 21 }
17 22
18 @Override 23 @Override
19 public TupleLike getKey() { 24 public Tuple getKey() {
20 return key; 25 return key;
21 } 26 }
22 27
@@ -33,7 +38,7 @@ class RelationalCursor implements Cursor<TupleLike, Boolean> {
33 @Override 38 @Override
34 public boolean move() { 39 public boolean move() {
35 if (!terminated && tuplesIterator.hasNext()) { 40 if (!terminated && tuplesIterator.hasNext()) {
36 key = new ViatraTupleLike(tuplesIterator.next()); 41 key = MatcherUtils.toRefineryTuple(tuplesIterator.next());
37 return true; 42 return true;
38 } 43 }
39 terminated = true; 44 terminated = true;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalViatraMatcher.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalViatraMatcher.java
index b9bc3f1e..d1476920 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalViatraMatcher.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/RelationalViatraMatcher.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.matcher; 6package tools.refinery.store.query.viatra.internal.matcher;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.IQueryResultProvider; 8import org.eclipse.viatra.query.runtime.matchers.backend.IQueryResultProvider;
@@ -12,7 +17,7 @@ import tools.refinery.store.query.ResultSet;
12import tools.refinery.store.query.dnf.Query; 17import tools.refinery.store.query.dnf.Query;
13import tools.refinery.store.query.dnf.RelationalQuery; 18import tools.refinery.store.query.dnf.RelationalQuery;
14import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl; 19import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl;
15import tools.refinery.store.tuple.TupleLike; 20import tools.refinery.store.tuple.Tuple;
16 21
17/** 22/**
18 * Directly access the tuples inside a VIATRA pattern matcher.<p> 23 * Directly access the tuples inside a VIATRA pattern matcher.<p>
@@ -58,7 +63,7 @@ public class RelationalViatraMatcher implements ResultSet<Boolean> {
58 } 63 }
59 64
60 @Override 65 @Override
61 public Boolean get(TupleLike parameters) { 66 public Boolean get(Tuple parameters) {
62 var tuple = MatcherUtils.toViatraTuple(parameters); 67 var tuple = MatcherUtils.toViatraTuple(parameters);
63 if (emptyMaskIndexer == null) { 68 if (emptyMaskIndexer == null) {
64 return backend.hasMatch(identityMask, tuple); 69 return backend.hasMatch(identityMask, tuple);
@@ -68,7 +73,7 @@ public class RelationalViatraMatcher implements ResultSet<Boolean> {
68 } 73 }
69 74
70 @Override 75 @Override
71 public Cursor<TupleLike, Boolean> getAll() { 76 public Cursor<Tuple, Boolean> getAll() {
72 if (emptyMaskIndexer == null) { 77 if (emptyMaskIndexer == null) {
73 var allMatches = backend.getAllMatches(emptyMask, Tuples.staticArityFlatTupleOf()); 78 var allMatches = backend.getAllMatches(emptyMask, Tuples.staticArityFlatTupleOf());
74 return new RelationalCursor(allMatches.iterator()); 79 return new RelationalCursor(allMatches.iterator());
@@ -85,5 +90,4 @@ public class RelationalViatraMatcher implements ResultSet<Boolean> {
85 var matches = emptyMaskIndexer.get(Tuples.staticArityFlatTupleOf()); 90 var matches = emptyMaskIndexer.get(Tuples.staticArityFlatTupleOf());
86 return matches == null ? 0 : matches.size(); 91 return matches == null ? 0 : matches.size();
87 } 92 }
88
89} 93}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/UnsafeFunctionalCursor.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/UnsafeFunctionalCursor.java
index 6c53fff1..4a41d724 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/UnsafeFunctionalCursor.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/UnsafeFunctionalCursor.java
@@ -1,8 +1,13 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.matcher; 6package tools.refinery.store.query.viatra.internal.matcher;
2 7
3import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple; 8import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple;
4import tools.refinery.store.map.Cursor; 9import tools.refinery.store.map.Cursor;
5import tools.refinery.store.tuple.TupleLike; 10import tools.refinery.store.tuple.Tuple;
6 11
7import java.util.Iterator; 12import java.util.Iterator;
8 13
@@ -11,10 +16,10 @@ import java.util.Iterator;
11 * functional dependency of the output on the inputs is obeyed. 16 * functional dependency of the output on the inputs is obeyed.
12 * @param <T> The output type. 17 * @param <T> The output type.
13 */ 18 */
14class UnsafeFunctionalCursor<T> implements Cursor<TupleLike, T> { 19class UnsafeFunctionalCursor<T> implements Cursor<Tuple, T> {
15 private final Iterator<? extends ITuple> tuplesIterator; 20 private final Iterator<? extends ITuple> tuplesIterator;
16 private boolean terminated; 21 private boolean terminated;
17 private TupleLike key; 22 private Tuple key;
18 private T value; 23 private T value;
19 24
20 public UnsafeFunctionalCursor(Iterator<? extends ITuple> tuplesIterator) { 25 public UnsafeFunctionalCursor(Iterator<? extends ITuple> tuplesIterator) {
@@ -22,7 +27,7 @@ class UnsafeFunctionalCursor<T> implements Cursor<TupleLike, T> {
22 } 27 }
23 28
24 @Override 29 @Override
25 public TupleLike getKey() { 30 public Tuple getKey() {
26 return key; 31 return key;
27 } 32 }
28 33
@@ -40,7 +45,7 @@ class UnsafeFunctionalCursor<T> implements Cursor<TupleLike, T> {
40 public boolean move() { 45 public boolean move() {
41 if (!terminated && tuplesIterator.hasNext()) { 46 if (!terminated && tuplesIterator.hasNext()) {
42 var match = tuplesIterator.next(); 47 var match = tuplesIterator.next();
43 key = new OmitOutputViatraTupleLike(match); 48 key = MatcherUtils.keyToRefineryTuple(match);
44 @SuppressWarnings("unchecked") 49 @SuppressWarnings("unchecked")
45 var typedValue = (T) match.get(match.getSize() - 1); 50 var typedValue = (T) match.get(match.getSize() - 1);
46 value = typedValue; 51 value = typedValue;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/ViatraTupleLike.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/ViatraTupleLike.java
deleted file mode 100644
index 76a3e40b..00000000
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/matcher/ViatraTupleLike.java
+++ /dev/null
@@ -1,23 +0,0 @@
1package tools.refinery.store.query.viatra.internal.matcher;
2
3import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple;
4import tools.refinery.store.tuple.Tuple1;
5import tools.refinery.store.tuple.TupleLike;
6
7record ViatraTupleLike(ITuple wrappedTuple) implements TupleLike {
8 @Override
9 public int getSize() {
10 return wrappedTuple.getSize();
11 }
12
13 @Override
14 public int get(int element) {
15 var wrappedValue = (Tuple1) wrappedTuple.get(element);
16 return wrappedValue.value0();
17 }
18
19 @Override
20 public String toString() {
21 return TupleLike.toString(this);
22 }
23}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/AssumptionEvaluator.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/AssumptionEvaluator.java
index a80b0f90..cf127291 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/AssumptionEvaluator.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/AssumptionEvaluator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider; 8import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/Dnf2PQuery.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/Dnf2PQuery.java
index 7afeb977..5b0ea61d 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/Dnf2PQuery.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/Dnf2PQuery.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.IQueryBackendFactory; 8import org.eclipse.viatra.query.runtime.matchers.backend.IQueryBackendFactory;
@@ -14,17 +19,19 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.Consta
14import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; 19import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
15import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; 20import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
16import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; 21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
22import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
17import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery; 23import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery;
18import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; 24import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
19import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; 25import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
20import tools.refinery.store.query.dnf.Dnf; 26import tools.refinery.store.query.dnf.Dnf;
21import tools.refinery.store.query.dnf.DnfClause; 27import tools.refinery.store.query.dnf.DnfClause;
28import tools.refinery.store.query.dnf.SymbolicParameter;
22import tools.refinery.store.query.literal.*; 29import tools.refinery.store.query.literal.*;
23import tools.refinery.store.query.term.ConstantTerm; 30import tools.refinery.store.query.term.ConstantTerm;
24import tools.refinery.store.query.term.StatefulAggregator; 31import tools.refinery.store.query.term.StatefulAggregator;
25import tools.refinery.store.query.term.StatelessAggregator; 32import tools.refinery.store.query.term.StatelessAggregator;
26import tools.refinery.store.query.term.Variable; 33import tools.refinery.store.query.term.Variable;
27import tools.refinery.store.query.view.AnyRelationView; 34import tools.refinery.store.query.view.AnySymbolView;
28import tools.refinery.store.util.CycleDetectingMapper; 35import tools.refinery.store.util.CycleDetectingMapper;
29 36
30import java.util.*; 37import java.util.*;
@@ -48,8 +55,8 @@ public class Dnf2PQuery {
48 return mapper.map(dnfQuery); 55 return mapper.map(dnfQuery);
49 } 56 }
50 57
51 public Map<AnyRelationView, IInputKey> getRelationViews() { 58 public Map<AnySymbolView, IInputKey> getSymbolViews() {
52 return wrapperFactory.getRelationViews(); 59 return wrapperFactory.getSymbolViews();
53 } 60 }
54 61
55 public void hint(Dnf dnf, QueryEvaluationHint hint) { 62 public void hint(Dnf dnf, QueryEvaluationHint hint) {
@@ -77,15 +84,19 @@ public class Dnf2PQuery {
77 var pQuery = new RawPQuery(dnfQuery.getUniqueName()); 84 var pQuery = new RawPQuery(dnfQuery.getUniqueName());
78 pQuery.setEvaluationHints(consumeHint(dnfQuery)); 85 pQuery.setEvaluationHints(consumeHint(dnfQuery));
79 86
80 Map<Variable, PParameter> parameters = new HashMap<>(); 87 Map<SymbolicParameter, PParameter> parameters = new HashMap<>();
81 for (Variable variable : dnfQuery.getParameters()) {
82 parameters.put(variable, new PParameter(variable.getUniqueName()));
83 }
84
85 List<PParameter> parameterList = new ArrayList<>(); 88 List<PParameter> parameterList = new ArrayList<>();
86 for (var param : dnfQuery.getParameters()) { 89 for (var parameter : dnfQuery.getSymbolicParameters()) {
87 parameterList.add(parameters.get(param)); 90 var direction = switch (parameter.getDirection()) {
91 case OUT -> parameter.isUnifiable() ? PParameterDirection.INOUT : PParameterDirection.OUT;
92 case IN -> throw new IllegalArgumentException("Query %s with input parameter %s is not supported"
93 .formatted(dnfQuery, parameter.getVariable()));
94 };
95 var pParameter = new PParameter(parameter.getVariable().getUniqueName(), null, null, direction);
96 parameters.put(parameter, pParameter);
97 parameterList.add(pParameter);
88 } 98 }
99
89 pQuery.setParameters(parameterList); 100 pQuery.setParameters(parameterList);
90 101
91 for (var functionalDependency : dnfQuery.getFunctionalDependencies()) { 102 for (var functionalDependency : dnfQuery.getFunctionalDependencies()) {
@@ -105,15 +116,15 @@ public class Dnf2PQuery {
105 synchronized (P_CONSTRAINT_LOCK) { 116 synchronized (P_CONSTRAINT_LOCK) {
106 for (DnfClause clause : dnfQuery.getClauses()) { 117 for (DnfClause clause : dnfQuery.getClauses()) {
107 PBody body = new PBody(pQuery); 118 PBody body = new PBody(pQuery);
108 List<ExportedParameter> symbolicParameters = new ArrayList<>(); 119 List<ExportedParameter> parameterExports = new ArrayList<>();
109 for (var param : dnfQuery.getParameters()) { 120 for (var parameter : dnfQuery.getSymbolicParameters()) {
110 PVariable pVar = body.getOrCreateVariableByName(param.getUniqueName()); 121 PVariable pVar = body.getOrCreateVariableByName(parameter.getVariable().getUniqueName());
111 symbolicParameters.add(new ExportedParameter(body, pVar, parameters.get(param))); 122 parameterExports.add(new ExportedParameter(body, pVar, parameters.get(parameter)));
112 } 123 }
113 body.setSymbolicParameters(symbolicParameters); 124 body.setSymbolicParameters(parameterExports);
114 pQuery.addBody(body); 125 pQuery.addBody(body);
115 for (Literal literal : clause.literals()) { 126 for (Literal literal : clause.literals()) {
116 translateLiteral(literal, clause, body); 127 translateLiteral(literal, body);
117 } 128 }
118 } 129 }
119 } 130 }
@@ -121,11 +132,11 @@ public class Dnf2PQuery {
121 return pQuery; 132 return pQuery;
122 } 133 }
123 134
124 private void translateLiteral(Literal literal, DnfClause clause, PBody body) { 135 private void translateLiteral(Literal literal, PBody body) {
125 if (literal instanceof EquivalenceLiteral equivalenceLiteral) { 136 if (literal instanceof EquivalenceLiteral equivalenceLiteral) {
126 translateEquivalenceLiteral(equivalenceLiteral, body); 137 translateEquivalenceLiteral(equivalenceLiteral, body);
127 } else if (literal instanceof CallLiteral callLiteral) { 138 } else if (literal instanceof CallLiteral callLiteral) {
128 translateCallLiteral(callLiteral, clause, body); 139 translateCallLiteral(callLiteral, body);
129 } else if (literal instanceof ConstantLiteral constantLiteral) { 140 } else if (literal instanceof ConstantLiteral constantLiteral) {
130 translateConstantLiteral(constantLiteral, body); 141 translateConstantLiteral(constantLiteral, body);
131 } else if (literal instanceof AssignLiteral<?> assignLiteral) { 142 } else if (literal instanceof AssignLiteral<?> assignLiteral) {
@@ -133,9 +144,9 @@ public class Dnf2PQuery {
133 } else if (literal instanceof AssumeLiteral assumeLiteral) { 144 } else if (literal instanceof AssumeLiteral assumeLiteral) {
134 translateAssumeLiteral(assumeLiteral, body); 145 translateAssumeLiteral(assumeLiteral, body);
135 } else if (literal instanceof CountLiteral countLiteral) { 146 } else if (literal instanceof CountLiteral countLiteral) {
136 translateCountLiteral(countLiteral, clause, body); 147 translateCountLiteral(countLiteral, body);
137 } else if (literal instanceof AggregationLiteral<?, ?> aggregationLiteral) { 148 } else if (literal instanceof AggregationLiteral<?, ?> aggregationLiteral) {
138 translateAggregationLiteral(aggregationLiteral, clause, body); 149 translateAggregationLiteral(aggregationLiteral, body);
139 } else { 150 } else {
140 throw new IllegalArgumentException("Unknown literal: " + literal.toString()); 151 throw new IllegalArgumentException("Unknown literal: " + literal.toString());
141 } 152 }
@@ -151,7 +162,7 @@ public class Dnf2PQuery {
151 } 162 }
152 } 163 }
153 164
154 private void translateCallLiteral(CallLiteral callLiteral, DnfClause clause, PBody body) { 165 private void translateCallLiteral(CallLiteral callLiteral, PBody body) {
155 var polarity = callLiteral.getPolarity(); 166 var polarity = callLiteral.getPolarity();
156 switch (polarity) { 167 switch (polarity) {
157 case POSITIVE -> { 168 case POSITIVE -> {
@@ -160,8 +171,8 @@ public class Dnf2PQuery {
160 if (constraint instanceof Dnf dnf) { 171 if (constraint instanceof Dnf dnf) {
161 var pattern = translate(dnf); 172 var pattern = translate(dnf);
162 new PositivePatternCall(body, substitution, pattern); 173 new PositivePatternCall(body, substitution, pattern);
163 } else if (constraint instanceof AnyRelationView relationView) { 174 } else if (constraint instanceof AnySymbolView symbolView) {
164 var inputKey = wrapperFactory.getInputKey(relationView); 175 var inputKey = wrapperFactory.getInputKey(symbolView);
165 new TypeConstraint(body, substitution, inputKey); 176 new TypeConstraint(body, substitution, inputKey);
166 } else { 177 } else {
167 throw new IllegalArgumentException("Unknown Constraint: " + constraint); 178 throw new IllegalArgumentException("Unknown Constraint: " + constraint);
@@ -173,15 +184,15 @@ public class Dnf2PQuery {
173 PQuery pattern; 184 PQuery pattern;
174 if (constraint instanceof Dnf dnf) { 185 if (constraint instanceof Dnf dnf) {
175 pattern = translate(dnf); 186 pattern = translate(dnf);
176 } else if (constraint instanceof AnyRelationView relationView) { 187 } else if (constraint instanceof AnySymbolView symbolView) {
177 pattern = wrapperFactory.wrapRelationViewIdentityArguments(relationView); 188 pattern = wrapperFactory.wrapSymbolViewIdentityArguments(symbolView);
178 } else { 189 } else {
179 throw new IllegalArgumentException("Unknown Constraint: " + constraint); 190 throw new IllegalArgumentException("Unknown Constraint: " + constraint);
180 } 191 }
181 new BinaryTransitiveClosure(body, substitution, pattern); 192 new BinaryTransitiveClosure(body, substitution, pattern);
182 } 193 }
183 case NEGATIVE -> { 194 case NEGATIVE -> {
184 var wrappedCall = wrapperFactory.maybeWrapConstraint(callLiteral, clause); 195 var wrappedCall = wrapperFactory.maybeWrapConstraint(callLiteral);
185 var substitution = translateSubstitution(wrappedCall.remappedArguments(), body); 196 var substitution = translateSubstitution(wrappedCall.remappedArguments(), body);
186 var pattern = wrappedCall.pattern(); 197 var pattern = wrappedCall.pattern();
187 new NegativePatternCall(body, substitution, pattern); 198 new NegativePatternCall(body, substitution, pattern);
@@ -221,15 +232,14 @@ public class Dnf2PQuery {
221 new ExpressionEvaluation(body, evaluator, null); 232 new ExpressionEvaluation(body, evaluator, null);
222 } 233 }
223 234
224 private void translateCountLiteral(CountLiteral countLiteral, DnfClause clause, PBody body) { 235 private void translateCountLiteral(CountLiteral countLiteral, PBody body) {
225 var wrappedCall = wrapperFactory.maybeWrapConstraint(countLiteral, clause); 236 var wrappedCall = wrapperFactory.maybeWrapConstraint(countLiteral);
226 var substitution = translateSubstitution(wrappedCall.remappedArguments(), body); 237 var substitution = translateSubstitution(wrappedCall.remappedArguments(), body);
227 var resultVariable = body.getOrCreateVariableByName(countLiteral.getResultVariable().getUniqueName()); 238 var resultVariable = body.getOrCreateVariableByName(countLiteral.getResultVariable().getUniqueName());
228 new PatternMatchCounter(body, substitution, wrappedCall.pattern(), resultVariable); 239 new PatternMatchCounter(body, substitution, wrappedCall.pattern(), resultVariable);
229 } 240 }
230 241
231 private <R, T> void translateAggregationLiteral(AggregationLiteral<R, T> aggregationLiteral, DnfClause clause, 242 private <R, T> void translateAggregationLiteral(AggregationLiteral<R, T> aggregationLiteral, PBody body) {
232 PBody body) {
233 var aggregator = aggregationLiteral.getAggregator(); 243 var aggregator = aggregationLiteral.getAggregator();
234 IMultisetAggregationOperator<T, ?, R> aggregationOperator; 244 IMultisetAggregationOperator<T, ?, R> aggregationOperator;
235 if (aggregator instanceof StatelessAggregator<R, T> statelessAggregator) { 245 if (aggregator instanceof StatelessAggregator<R, T> statelessAggregator) {
@@ -239,7 +249,7 @@ public class Dnf2PQuery {
239 } else { 249 } else {
240 throw new IllegalArgumentException("Unknown aggregator: " + aggregator); 250 throw new IllegalArgumentException("Unknown aggregator: " + aggregator);
241 } 251 }
242 var wrappedCall = wrapperFactory.maybeWrapConstraint(aggregationLiteral, clause); 252 var wrappedCall = wrapperFactory.maybeWrapConstraint(aggregationLiteral);
243 var substitution = translateSubstitution(wrappedCall.remappedArguments(), body); 253 var substitution = translateSubstitution(wrappedCall.remappedArguments(), body);
244 var inputVariable = body.getOrCreateVariableByName(aggregationLiteral.getInputVariable().getUniqueName()); 254 var inputVariable = body.getOrCreateVariableByName(aggregationLiteral.getInputVariable().getUniqueName());
245 var aggregatedColumn = substitution.invertIndex().get(inputVariable); 255 var aggregatedColumn = substitution.invertIndex().get(inputVariable);
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/QueryWrapperFactory.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/QueryWrapperFactory.java
index 24ae5196..2b7280f2 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/QueryWrapperFactory.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/QueryWrapperFactory.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.matchers.context.IInputKey; 8import org.eclipse.viatra.query.runtime.matchers.context.IInputKey;
@@ -9,15 +14,16 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeCo
9import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; 14import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
10import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery; 15import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery;
11import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; 16import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
17import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
12import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; 18import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
13import tools.refinery.store.query.Constraint; 19import tools.refinery.store.query.Constraint;
14import tools.refinery.store.query.dnf.Dnf; 20import tools.refinery.store.query.dnf.Dnf;
15import tools.refinery.store.query.dnf.DnfClause;
16import tools.refinery.store.query.dnf.DnfUtils; 21import tools.refinery.store.query.dnf.DnfUtils;
17import tools.refinery.store.query.literal.AbstractCallLiteral; 22import tools.refinery.store.query.literal.AbstractCallLiteral;
23import tools.refinery.store.query.term.ParameterDirection;
18import tools.refinery.store.query.term.Variable; 24import tools.refinery.store.query.term.Variable;
19import tools.refinery.store.query.view.AnyRelationView; 25import tools.refinery.store.query.view.AnySymbolView;
20import tools.refinery.store.query.view.RelationView; 26import tools.refinery.store.query.view.SymbolView;
21import tools.refinery.store.util.CycleDetectingMapper; 27import tools.refinery.store.util.CycleDetectingMapper;
22 28
23import java.util.*; 29import java.util.*;
@@ -25,7 +31,7 @@ import java.util.function.ToIntFunction;
25 31
26class QueryWrapperFactory { 32class QueryWrapperFactory {
27 private final Dnf2PQuery dnf2PQuery; 33 private final Dnf2PQuery dnf2PQuery;
28 private final Map<AnyRelationView, RelationViewWrapper> view2WrapperMap = new LinkedHashMap<>(); 34 private final Map<AnySymbolView, SymbolViewWrapper> view2WrapperMap = new LinkedHashMap<>();
29 private final CycleDetectingMapper<RemappedConstraint, RawPQuery> wrapConstraint = new CycleDetectingMapper<>( 35 private final CycleDetectingMapper<RemappedConstraint, RawPQuery> wrapConstraint = new CycleDetectingMapper<>(
30 RemappedConstraint::toString, this::doWrapConstraint); 36 RemappedConstraint::toString, this::doWrapConstraint);
31 37
@@ -33,28 +39,24 @@ class QueryWrapperFactory {
33 this.dnf2PQuery = dnf2PQuery; 39 this.dnf2PQuery = dnf2PQuery;
34 } 40 }
35 41
36 public PQuery wrapRelationViewIdentityArguments(AnyRelationView relationView) { 42 public PQuery wrapSymbolViewIdentityArguments(AnySymbolView symbolView) {
37 var identity = new int[relationView.arity()]; 43 var identity = new int[symbolView.arity()];
38 for (int i = 0; i < identity.length; i++) { 44 for (int i = 0; i < identity.length; i++) {
39 identity[i] = i; 45 identity[i] = i;
40 } 46 }
41 return maybeWrapConstraint(relationView, identity); 47 return maybeWrapConstraint(symbolView, identity);
42 } 48 }
43 public WrappedCall maybeWrapConstraint(AbstractCallLiteral callLiteral, DnfClause clause) { 49
50 public WrappedCall maybeWrapConstraint(AbstractCallLiteral callLiteral) {
44 var arguments = callLiteral.getArguments(); 51 var arguments = callLiteral.getArguments();
45 int arity = arguments.size(); 52 int arity = arguments.size();
46 var remappedParameters = new int[arity]; 53 var remappedParameters = new int[arity];
47 var boundVariables = clause.boundVariables();
48 var unboundVariableIndices = new HashMap<Variable, Integer>(); 54 var unboundVariableIndices = new HashMap<Variable, Integer>();
49 var appendVariable = new VariableAppender(); 55 var appendVariable = new VariableAppender();
50 for (int i = 0; i < arity; i++) { 56 for (int i = 0; i < arity; i++) {
51 var variable = arguments.get(i); 57 var variable = arguments.get(i);
52 if (boundVariables.contains(variable)) { 58 // Unify all variables to avoid VIATRA bugs, even if they're bound in the containing clause.
53 // Do not join bound variable to make sure that the embedded pattern stays as general as possible. 59 remappedParameters[i] = unboundVariableIndices.computeIfAbsent(variable, appendVariable::applyAsInt);
54 remappedParameters[i] = appendVariable.applyAsInt(variable);
55 } else {
56 remappedParameters[i] = unboundVariableIndices.computeIfAbsent(variable, appendVariable::applyAsInt);
57 }
58 } 60 }
59 var pattern = maybeWrapConstraint(callLiteral.getTarget(), remappedParameters); 61 var pattern = maybeWrapConstraint(callLiteral.getTarget(), remappedParameters);
60 return new WrappedCall(pattern, appendVariable.getRemappedArguments()); 62 return new WrappedCall(pattern, appendVariable.getRemappedArguments());
@@ -84,6 +86,8 @@ class QueryWrapperFactory {
84 var constraint = remappedConstraint.constraint(); 86 var constraint = remappedConstraint.constraint();
85 var remappedParameters = remappedConstraint.remappedParameters(); 87 var remappedParameters = remappedConstraint.remappedParameters();
86 88
89 checkNoInputParameters(constraint);
90
87 var embeddedPQuery = new RawPQuery(DnfUtils.generateUniqueName(constraint.name()), PVisibility.EMBEDDED); 91 var embeddedPQuery = new RawPQuery(DnfUtils.generateUniqueName(constraint.name()), PVisibility.EMBEDDED);
88 var body = new PBody(embeddedPQuery); 92 var body = new PBody(embeddedPQuery);
89 int arity = Arrays.stream(remappedParameters).max().orElse(-1) + 1; 93 int arity = Arrays.stream(remappedParameters).max().orElse(-1) + 1;
@@ -107,24 +111,36 @@ class QueryWrapperFactory {
107 } 111 }
108 var argumentTuple = Tuples.flatTupleOf(arguments); 112 var argumentTuple = Tuples.flatTupleOf(arguments);
109 113
110 if (constraint instanceof RelationView<?> relationView) { 114 addPositiveConstraint(constraint, body, argumentTuple);
111 new TypeConstraint(body, argumentTuple, getInputKey(relationView)); 115 embeddedPQuery.addBody(body);
116 return embeddedPQuery;
117 }
118
119 private static void checkNoInputParameters(Constraint constraint) {
120 for (var constraintParameter : constraint.getParameters()) {
121 if (constraintParameter.getDirection() == ParameterDirection.IN) {
122 throw new IllegalArgumentException("Input parameter %s of %s is not supported"
123 .formatted(constraintParameter, constraint));
124 }
125 }
126 }
127
128 private void addPositiveConstraint(Constraint constraint, PBody body, Tuple argumentTuple) {
129 if (constraint instanceof SymbolView<?> view) {
130 new TypeConstraint(body, argumentTuple, getInputKey(view));
112 } else if (constraint instanceof Dnf dnf) { 131 } else if (constraint instanceof Dnf dnf) {
113 var calledPQuery = dnf2PQuery.translate(dnf); 132 var calledPQuery = dnf2PQuery.translate(dnf);
114 new PositivePatternCall(body, argumentTuple, calledPQuery); 133 new PositivePatternCall(body, argumentTuple, calledPQuery);
115 } else { 134 } else {
116 throw new IllegalArgumentException("Unknown Constraint: " + constraint); 135 throw new IllegalArgumentException("Unknown Constraint: " + constraint);
117 } 136 }
118
119 embeddedPQuery.addBody(body);
120 return embeddedPQuery;
121 } 137 }
122 138
123 public IInputKey getInputKey(AnyRelationView relationView) { 139 public IInputKey getInputKey(AnySymbolView symbolView) {
124 return view2WrapperMap.computeIfAbsent(relationView, RelationViewWrapper::new); 140 return view2WrapperMap.computeIfAbsent(symbolView, SymbolViewWrapper::new);
125 } 141 }
126 142
127 public Map<AnyRelationView, IInputKey> getRelationViews() { 143 public Map<AnySymbolView, IInputKey> getSymbolViews() {
128 return Collections.unmodifiableMap(view2WrapperMap); 144 return Collections.unmodifiableMap(view2WrapperMap);
129 } 145 }
130 146
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/RawPQuery.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/RawPQuery.java
index aad4ba3c..255738c5 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/RawPQuery.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/RawPQuery.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.api.GenericQuerySpecification; 8import org.eclipse.viatra.query.runtime.api.GenericQuerySpecification;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatefulMultisetAggregator.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatefulMultisetAggregator.java
index 2798a252..461416f7 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatefulMultisetAggregator.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatefulMultisetAggregator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.IMultisetAggregationOperator; 8import org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.IMultisetAggregationOperator;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatelessMultisetAggregator.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatelessMultisetAggregator.java
index 7cc71ee9..49175d75 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatelessMultisetAggregator.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/StatelessMultisetAggregator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.IMultisetAggregationOperator; 8import org.eclipse.viatra.query.runtime.matchers.psystem.aggregations.IMultisetAggregationOperator;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/RelationViewWrapper.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/SymbolViewWrapper.java
index 48bf558d..a777613e 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/RelationViewWrapper.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/SymbolViewWrapper.java
@@ -1,10 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.matchers.context.common.BaseInputKeyWrapper; 8import org.eclipse.viatra.query.runtime.matchers.context.common.BaseInputKeyWrapper;
4import tools.refinery.store.query.view.AnyRelationView; 9import tools.refinery.store.query.view.AnySymbolView;
5 10
6public class RelationViewWrapper extends BaseInputKeyWrapper<AnyRelationView> { 11public class SymbolViewWrapper extends BaseInputKeyWrapper<AnySymbolView> {
7 public RelationViewWrapper(AnyRelationView wrappedKey) { 12 public SymbolViewWrapper(AnySymbolView wrappedKey) {
8 super(wrappedKey); 13 super(wrappedKey);
9 } 14 }
10 15
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/TermEvaluator.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/TermEvaluator.java
index ab123c50..1187f57a 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/TermEvaluator.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/TermEvaluator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator; 8import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/ValueProviderBasedValuation.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/ValueProviderBasedValuation.java
index 30c2fce7..62cb8b3a 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/ValueProviderBasedValuation.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/pquery/ValueProviderBasedValuation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.pquery; 6package tools.refinery.store.query.viatra.internal.pquery;
2 7
3import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider; 8import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/ModelUpdateListener.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/ModelUpdateListener.java
index fc935aa6..986bb0b1 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/ModelUpdateListener.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/ModelUpdateListener.java
@@ -1,46 +1,51 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.update; 6package tools.refinery.store.query.viatra.internal.update;
2 7
3import org.eclipse.viatra.query.runtime.matchers.context.IInputKey; 8import org.eclipse.viatra.query.runtime.matchers.context.IInputKey;
4import org.eclipse.viatra.query.runtime.matchers.context.IQueryRuntimeContextListener; 9import org.eclipse.viatra.query.runtime.matchers.context.IQueryRuntimeContextListener;
5import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple; 10import org.eclipse.viatra.query.runtime.matchers.tuple.ITuple;
6import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl; 11import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl;
7import tools.refinery.store.query.view.AnyRelationView; 12import tools.refinery.store.query.view.AnySymbolView;
8import tools.refinery.store.query.view.RelationView; 13import tools.refinery.store.query.view.SymbolView;
9 14
10import java.util.HashMap; 15import java.util.HashMap;
11import java.util.Map; 16import java.util.Map;
12 17
13public class ModelUpdateListener { 18public class ModelUpdateListener {
14 private final Map<AnyRelationView, RelationViewUpdateListener<?>> relationViewUpdateListeners; 19 private final Map<AnySymbolView, SymbolViewUpdateListener<?>> symbolViewUpdateListeners;
15 20
16 public ModelUpdateListener(ViatraModelQueryAdapterImpl adapter) { 21 public ModelUpdateListener(ViatraModelQueryAdapterImpl adapter) {
17 var relationViews = adapter.getStoreAdapter().getInputKeys().keySet(); 22 var symbolViews = adapter.getStoreAdapter().getInputKeys().keySet();
18 relationViewUpdateListeners = new HashMap<>(relationViews.size()); 23 symbolViewUpdateListeners = new HashMap<>(symbolViews.size());
19 for (var relationView : relationViews) { 24 for (var symbolView : symbolViews) {
20 registerView(adapter, (RelationView<?>) relationView); 25 registerView(adapter, (SymbolView<?>) symbolView);
21 } 26 }
22 } 27 }
23 28
24 private <T> void registerView(ViatraModelQueryAdapterImpl adapter, RelationView<T> relationView) { 29 private <T> void registerView(ViatraModelQueryAdapterImpl adapter, SymbolView<T> view) {
25 var model = adapter.getModel(); 30 var model = adapter.getModel();
26 var interpretation = model.getInterpretation(relationView.getSymbol()); 31 var interpretation = model.getInterpretation(view.getSymbol());
27 var listener = RelationViewUpdateListener.of(adapter, relationView, interpretation); 32 var listener = SymbolViewUpdateListener.of(adapter, view, interpretation);
28 relationViewUpdateListeners.put(relationView, listener); 33 symbolViewUpdateListeners.put(view, listener);
29 } 34 }
30 35
31 public boolean containsRelationView(AnyRelationView relationView) { 36 public boolean containsSymbolView(AnySymbolView relationView) {
32 return relationViewUpdateListeners.containsKey(relationView); 37 return symbolViewUpdateListeners.containsKey(relationView);
33 } 38 }
34 39
35 public void addListener(IInputKey key, AnyRelationView relationView, ITuple seed, 40 public void addListener(IInputKey key, AnySymbolView symbolView, ITuple seed,
36 IQueryRuntimeContextListener listener) { 41 IQueryRuntimeContextListener listener) {
37 var relationViewUpdateListener = relationViewUpdateListeners.get(relationView); 42 var symbolViewUpdateListener = symbolViewUpdateListeners.get(symbolView);
38 relationViewUpdateListener.addFilter(key, seed, listener); 43 symbolViewUpdateListener.addFilter(key, seed, listener);
39 } 44 }
40 45
41 public void removeListener(IInputKey key, AnyRelationView relationView, ITuple seed, 46 public void removeListener(IInputKey key, AnySymbolView symbolView, ITuple seed,
42 IQueryRuntimeContextListener listener) { 47 IQueryRuntimeContextListener listener) {
43 var relationViewUpdateListener = relationViewUpdateListeners.get(relationView); 48 var symbolViewUpdateListener = symbolViewUpdateListeners.get(symbolView);
44 relationViewUpdateListener.removeFilter(key, seed, listener); 49 symbolViewUpdateListener.removeFilter(key, seed, listener);
45 } 50 }
46} 51}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/RelationViewFilter.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/RelationViewFilter.java
index 221f1b4a..efdbfcbe 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/RelationViewFilter.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/RelationViewFilter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.update; 6package tools.refinery.store.query.viatra.internal.update;
2 7
3import org.eclipse.viatra.query.runtime.matchers.context.IInputKey; 8import org.eclipse.viatra.query.runtime.matchers.context.IInputKey;
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/RelationViewUpdateListener.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/SymbolViewUpdateListener.java
index 5e5f60e3..f1a2ac7c 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/RelationViewUpdateListener.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/SymbolViewUpdateListener.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.update; 6package tools.refinery.store.query.viatra.internal.update;
2 7
3import org.eclipse.viatra.query.runtime.matchers.context.IInputKey; 8import org.eclipse.viatra.query.runtime.matchers.context.IInputKey;
@@ -7,18 +12,18 @@ import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
7import tools.refinery.store.model.Interpretation; 12import tools.refinery.store.model.Interpretation;
8import tools.refinery.store.model.InterpretationListener; 13import tools.refinery.store.model.InterpretationListener;
9import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl; 14import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl;
10import tools.refinery.store.query.view.RelationView; 15import tools.refinery.store.query.view.SymbolView;
11import tools.refinery.store.query.view.TuplePreservingRelationView; 16import tools.refinery.store.query.view.TuplePreservingView;
12 17
13import java.util.ArrayList; 18import java.util.ArrayList;
14import java.util.List; 19import java.util.List;
15 20
16public abstract class RelationViewUpdateListener<T> implements InterpretationListener<T> { 21public abstract class SymbolViewUpdateListener<T> implements InterpretationListener<T> {
17 private final ViatraModelQueryAdapterImpl adapter; 22 private final ViatraModelQueryAdapterImpl adapter;
18 private final Interpretation<T> interpretation; 23 private final Interpretation<T> interpretation;
19 private final List<RelationViewFilter> filters = new ArrayList<>(); 24 private final List<RelationViewFilter> filters = new ArrayList<>();
20 25
21 protected RelationViewUpdateListener(ViatraModelQueryAdapterImpl adapter, Interpretation<T> interpretation) { 26 protected SymbolViewUpdateListener(ViatraModelQueryAdapterImpl adapter, Interpretation<T> interpretation) {
22 this.adapter = adapter; 27 this.adapter = adapter;
23 this.interpretation = interpretation; 28 this.interpretation = interpretation;
24 } 29 }
@@ -48,13 +53,13 @@ public abstract class RelationViewUpdateListener<T> implements InterpretationLis
48 } 53 }
49 } 54 }
50 55
51 public static <T> RelationViewUpdateListener<T> of(ViatraModelQueryAdapterImpl adapter, 56 public static <T> SymbolViewUpdateListener<T> of(ViatraModelQueryAdapterImpl adapter,
52 RelationView<T> relationView, 57 SymbolView<T> view,
53 Interpretation<T> interpretation) { 58 Interpretation<T> interpretation) {
54 if (relationView instanceof TuplePreservingRelationView<T> tuplePreservingRelationView) { 59 if (view instanceof TuplePreservingView<T> tuplePreservingRelationView) {
55 return new TuplePreservingRelationViewUpdateListener<>(adapter, tuplePreservingRelationView, 60 return new TuplePreservingViewUpdateListener<>(adapter, tuplePreservingRelationView,
56 interpretation); 61 interpretation);
57 } 62 }
58 return new TupleChangingRelationViewUpdateListener<>(adapter, relationView, interpretation); 63 return new TupleChangingViewUpdateListener<>(adapter, view, interpretation);
59 } 64 }
60} 65}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TupleChangingRelationViewUpdateListener.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TupleChangingRelationViewUpdateListener.java
deleted file mode 100644
index 0f6ed3b3..00000000
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TupleChangingRelationViewUpdateListener.java
+++ /dev/null
@@ -1,39 +0,0 @@
1package tools.refinery.store.query.viatra.internal.update;
2
3import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
4import tools.refinery.store.model.Interpretation;
5import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl;
6import tools.refinery.store.query.view.RelationView;
7import tools.refinery.store.tuple.Tuple;
8
9import java.util.Arrays;
10
11public class TupleChangingRelationViewUpdateListener<T> extends RelationViewUpdateListener<T> {
12 private final RelationView<T> relationView;
13
14 TupleChangingRelationViewUpdateListener(ViatraModelQueryAdapterImpl adapter, RelationView<T> relationView,
15 Interpretation<T> interpretation) {
16 super(adapter, interpretation);
17 this.relationView = relationView;
18 }
19
20 @Override
21 public void put(Tuple key, T fromValue, T toValue, boolean restoring) {
22 boolean fromPresent = relationView.filter(key, fromValue);
23 boolean toPresent = relationView.filter(key, toValue);
24 if (fromPresent) {
25 if (toPresent) { // value change
26 var fromArray = relationView.forwardMap(key, fromValue);
27 var toArray = relationView.forwardMap(key, toValue);
28 if (!Arrays.equals(fromArray, toArray)) {
29 processUpdate(Tuples.flatTupleOf(fromArray), false);
30 processUpdate(Tuples.flatTupleOf(toArray), true);
31 }
32 } else { // fromValue disappears
33 processUpdate(Tuples.flatTupleOf(relationView.forwardMap(key, fromValue)), false);
34 }
35 } else if (toPresent) { // toValue appears
36 processUpdate(Tuples.flatTupleOf(relationView.forwardMap(key, toValue)), true);
37 }
38 }
39}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TupleChangingViewUpdateListener.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TupleChangingViewUpdateListener.java
new file mode 100644
index 00000000..45d35571
--- /dev/null
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TupleChangingViewUpdateListener.java
@@ -0,0 +1,44 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.viatra.internal.update;
7
8import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
9import tools.refinery.store.model.Interpretation;
10import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl;
11import tools.refinery.store.query.view.SymbolView;
12import tools.refinery.store.tuple.Tuple;
13
14import java.util.Arrays;
15
16public class TupleChangingViewUpdateListener<T> extends SymbolViewUpdateListener<T> {
17 private final SymbolView<T> view;
18
19 TupleChangingViewUpdateListener(ViatraModelQueryAdapterImpl adapter, SymbolView<T> view,
20 Interpretation<T> interpretation) {
21 super(adapter, interpretation);
22 this.view = view;
23 }
24
25 @Override
26 public void put(Tuple key, T fromValue, T toValue, boolean restoring) {
27 boolean fromPresent = view.filter(key, fromValue);
28 boolean toPresent = view.filter(key, toValue);
29 if (fromPresent) {
30 if (toPresent) { // value change
31 var fromArray = view.forwardMap(key, fromValue);
32 var toArray = view.forwardMap(key, toValue);
33 if (!Arrays.equals(fromArray, toArray)) {
34 processUpdate(Tuples.flatTupleOf(fromArray), false);
35 processUpdate(Tuples.flatTupleOf(toArray), true);
36 }
37 } else { // fromValue disappears
38 processUpdate(Tuples.flatTupleOf(view.forwardMap(key, fromValue)), false);
39 }
40 } else if (toPresent) { // toValue appears
41 processUpdate(Tuples.flatTupleOf(view.forwardMap(key, toValue)), true);
42 }
43 }
44}
diff --git a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TuplePreservingRelationViewUpdateListener.java b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TuplePreservingViewUpdateListener.java
index 91e9371b..c18dbafb 100644
--- a/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TuplePreservingRelationViewUpdateListener.java
+++ b/subprojects/store-query-viatra/src/main/java/tools/refinery/store/query/viatra/internal/update/TuplePreservingViewUpdateListener.java
@@ -1,16 +1,21 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.internal.update; 6package tools.refinery.store.query.viatra.internal.update;
2 7
3import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; 8import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
4import tools.refinery.store.model.Interpretation; 9import tools.refinery.store.model.Interpretation;
5import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl; 10import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl;
6import tools.refinery.store.query.view.TuplePreservingRelationView; 11import tools.refinery.store.query.view.TuplePreservingView;
7import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
8 13
9public class TuplePreservingRelationViewUpdateListener<T> extends RelationViewUpdateListener<T> { 14public class TuplePreservingViewUpdateListener<T> extends SymbolViewUpdateListener<T> {
10 private final TuplePreservingRelationView<T> view; 15 private final TuplePreservingView<T> view;
11 16
12 TuplePreservingRelationViewUpdateListener(ViatraModelQueryAdapterImpl adapter, 17 TuplePreservingViewUpdateListener(ViatraModelQueryAdapterImpl adapter, TuplePreservingView<T> view,
13 TuplePreservingRelationView<T> view, Interpretation<T> interpretation) { 18 Interpretation<T> interpretation) {
14 super(adapter, interpretation); 19 super(adapter, interpretation);
15 this.view = view; 20 this.view = view;
16 } 21 }
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/DiagonalQueryTest.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/DiagonalQueryTest.java
index 90229b73..6aae2ebe 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/DiagonalQueryTest.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/DiagonalQueryTest.java
@@ -1,17 +1,23 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra; 6package tools.refinery.store.query.viatra;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 8import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
4import tools.refinery.store.model.ModelStore; 9import tools.refinery.store.model.ModelStore;
5import tools.refinery.store.query.ModelQuery; 10import tools.refinery.store.query.ModelQueryAdapter;
6import tools.refinery.store.query.dnf.Dnf; 11import tools.refinery.store.query.dnf.Dnf;
7import tools.refinery.store.query.dnf.Query; 12import tools.refinery.store.query.dnf.Query;
8import tools.refinery.store.query.term.Variable;
9import tools.refinery.store.query.viatra.tests.QueryEngineTest; 13import tools.refinery.store.query.viatra.tests.QueryEngineTest;
10import tools.refinery.store.query.view.FunctionalRelationView; 14import tools.refinery.store.query.view.AnySymbolView;
11import tools.refinery.store.query.view.KeyOnlyRelationView; 15import tools.refinery.store.query.view.FunctionView;
16import tools.refinery.store.query.view.KeyOnlyView;
12import tools.refinery.store.representation.Symbol; 17import tools.refinery.store.representation.Symbol;
13import tools.refinery.store.tuple.Tuple; 18import tools.refinery.store.tuple.Tuple;
14 19
20import java.util.List;
15import java.util.Map; 21import java.util.Map;
16import java.util.Optional; 22import java.util.Optional;
17 23
@@ -21,34 +27,33 @@ import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertNull
21import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertResults; 27import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertResults;
22 28
23class DiagonalQueryTest { 29class DiagonalQueryTest {
30 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
31 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
32 private static final Symbol<Boolean> symbol = Symbol.of("symbol", 4);
33 private static final Symbol<Integer> intSymbol = Symbol.of("intSymbol", 4, Integer.class);
34 private static final AnySymbolView personView = new KeyOnlyView<>(person);
35 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
36 private static final AnySymbolView symbolView = new KeyOnlyView<>(symbol);
37 private static final FunctionView<Integer> intSymbolView = new FunctionView<>(intSymbol);
38
24 @QueryEngineTest 39 @QueryEngineTest
25 void inputKeyNegationTest(QueryEvaluationHint hint) { 40 void inputKeyNegationTest(QueryEvaluationHint hint) {
26 var person = new Symbol<>("Person", 1, Boolean.class, false); 41 var query = Query.of("Diagonal", (builder, p1) -> builder.clause(p2 -> List.of(
27 var symbol = new Symbol<>("symbol", 4, Boolean.class, false); 42 personView.call(p1),
28 var personView = new KeyOnlyRelationView<>(person); 43 not(symbolView.call(p1, p1, p2, p2))
29 var symbolView = new KeyOnlyRelationView<>(symbol); 44 )));
30
31 var p1 = Variable.of("p1");
32 var p2 = Variable.of("p2");
33 var query = Query.builder("Diagonal")
34 .parameter(p1)
35 .clause(
36 personView.call(p1),
37 not(symbolView.call(p1, p1, p2, p2))
38 )
39 .build();
40 45
41 var store = ModelStore.builder() 46 var store = ModelStore.builder()
42 .symbols(person, symbol) 47 .symbols(person, symbol)
43 .with(ViatraModelQuery.ADAPTER) 48 .with(ViatraModelQueryAdapter.builder()
44 .defaultHint(hint) 49 .defaultHint(hint)
45 .queries(query) 50 .queries(query))
46 .build(); 51 .build();
47 52
48 var model = store.createEmptyModel(); 53 var model = store.createEmptyModel();
49 var personInterpretation = model.getInterpretation(person); 54 var personInterpretation = model.getInterpretation(person);
50 var symbolInterpretation = model.getInterpretation(symbol); 55 var symbolInterpretation = model.getInterpretation(symbol);
51 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 56 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
52 var queryResultSet = queryEngine.getResultSet(query); 57 var queryResultSet = queryEngine.getResultSet(query);
53 58
54 personInterpretation.put(Tuple.of(0), true); 59 personInterpretation.put(Tuple.of(0), true);
@@ -71,17 +76,7 @@ class DiagonalQueryTest {
71 76
72 @QueryEngineTest 77 @QueryEngineTest
73 void subQueryNegationTest(QueryEvaluationHint hint) { 78 void subQueryNegationTest(QueryEvaluationHint hint) {
74 var person = new Symbol<>("Person", 1, Boolean.class, false); 79 var subQuery = Query.of("SubQuery", (builder, p1, p2, p3, p4) -> builder
75 var symbol = new Symbol<>("symbol", 4, Boolean.class, false);
76 var personView = new KeyOnlyRelationView<>(person);
77 var symbolView = new KeyOnlyRelationView<>(symbol);
78
79 var p1 = Variable.of("p1");
80 var p2 = Variable.of("p2");
81 var p3 = Variable.of("p3");
82 var p4 = Variable.of("p4");
83 var subQuery = Dnf.builder("SubQuery")
84 .parameters(p1, p2, p3, p4)
85 .clause( 80 .clause(
86 personView.call(p1), 81 personView.call(p1),
87 symbolView.call(p1, p2, p3, p4) 82 symbolView.call(p1, p2, p3, p4)
@@ -89,27 +84,23 @@ class DiagonalQueryTest {
89 .clause( 84 .clause(
90 personView.call(p2), 85 personView.call(p2),
91 symbolView.call(p1, p2, p3, p4) 86 symbolView.call(p1, p2, p3, p4)
92 ) 87 ));
93 .build(); 88 var query = Query.of("Diagonal", (builder, p1) -> builder.clause(p2 -> List.of(
94 var query = Query.builder("Diagonal") 89 personView.call(p1),
95 .parameter(p1) 90 not(subQuery.call(p1, p1, p2, p2))
96 .clause( 91 )));
97 personView.call(p1),
98 not(subQuery.call(p1, p1, p2, p2))
99 )
100 .build();
101 92
102 var store = ModelStore.builder() 93 var store = ModelStore.builder()
103 .symbols(person, symbol) 94 .symbols(person, symbol)
104 .with(ViatraModelQuery.ADAPTER) 95 .with(ViatraModelQueryAdapter.builder()
105 .defaultHint(hint) 96 .defaultHint(hint)
106 .queries(query) 97 .queries(query))
107 .build(); 98 .build();
108 99
109 var model = store.createEmptyModel(); 100 var model = store.createEmptyModel();
110 var personInterpretation = model.getInterpretation(person); 101 var personInterpretation = model.getInterpretation(person);
111 var symbolInterpretation = model.getInterpretation(symbol); 102 var symbolInterpretation = model.getInterpretation(symbol);
112 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 103 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
113 var queryResultSet = queryEngine.getResultSet(query); 104 var queryResultSet = queryEngine.getResultSet(query);
114 105
115 personInterpretation.put(Tuple.of(0), true); 106 personInterpretation.put(Tuple.of(0), true);
@@ -132,34 +123,22 @@ class DiagonalQueryTest {
132 123
133 @QueryEngineTest 124 @QueryEngineTest
134 void inputKeyCountTest(QueryEvaluationHint hint) { 125 void inputKeyCountTest(QueryEvaluationHint hint) {
135 var person = new Symbol<>("Person", 1, Boolean.class, false); 126 var query = Query.of("Diagonal", Integer.class, (builder, p1, output) -> builder.clause(p2 -> List.of(
136 var symbol = new Symbol<>("symbol", 4, Boolean.class, false); 127 personView.call(p1),
137 var personView = new KeyOnlyRelationView<>(person); 128 output.assign(symbolView.count(p1, p1, p2, p2))
138 var symbolView = new KeyOnlyRelationView<>(symbol); 129 )));
139
140 var p1 = Variable.of("p1");
141 var p2 = Variable.of("p2");
142 var x = Variable.of("x", Integer.class);
143 var query = Query.builder("Diagonal")
144 .parameter(p1)
145 .output(x)
146 .clause(
147 personView.call(p1),
148 x.assign(symbolView.count(p1, p1, p2, p2))
149 )
150 .build();
151 130
152 var store = ModelStore.builder() 131 var store = ModelStore.builder()
153 .symbols(person, symbol) 132 .symbols(person, symbol)
154 .with(ViatraModelQuery.ADAPTER) 133 .with(ViatraModelQueryAdapter.builder()
155 .defaultHint(hint) 134 .defaultHint(hint)
156 .queries(query) 135 .queries(query))
157 .build(); 136 .build();
158 137
159 var model = store.createEmptyModel(); 138 var model = store.createEmptyModel();
160 var personInterpretation = model.getInterpretation(person); 139 var personInterpretation = model.getInterpretation(person);
161 var symbolInterpretation = model.getInterpretation(symbol); 140 var symbolInterpretation = model.getInterpretation(symbol);
162 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 141 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
163 var queryResultSet = queryEngine.getResultSet(query); 142 var queryResultSet = queryEngine.getResultSet(query);
164 143
165 personInterpretation.put(Tuple.of(0), true); 144 personInterpretation.put(Tuple.of(0), true);
@@ -183,47 +162,30 @@ class DiagonalQueryTest {
183 162
184 @QueryEngineTest 163 @QueryEngineTest
185 void subQueryCountTest(QueryEvaluationHint hint) { 164 void subQueryCountTest(QueryEvaluationHint hint) {
186 var person = new Symbol<>("Person", 1, Boolean.class, false); 165 var subQuery = Query.of("SubQuery", (builder, p1, p2, p3, p4) -> builder.clause(
187 var symbol = new Symbol<>("symbol", 4, Boolean.class, false);
188 var personView = new KeyOnlyRelationView<>(person);
189 var symbolView = new KeyOnlyRelationView<>(symbol);
190
191 var p1 = Variable.of("p1");
192 var p2 = Variable.of("p2");
193 var p3 = Variable.of("p3");
194 var p4 = Variable.of("p4");
195 var x = Variable.of("x", Integer.class);
196 var subQuery = Dnf.builder("SubQuery")
197 .parameters(p1, p2, p3, p4)
198 .clause(
199 personView.call(p1), 166 personView.call(p1),
200 symbolView.call(p1, p2, p3, p4) 167 symbolView.call(p1, p2, p3, p4)
201 ) 168 )
202 .clause( 169 .clause(
203 personView.call(p2), 170 personView.call(p2),
204 symbolView.call(p1, p2, p3, p4) 171 symbolView.call(p1, p2, p3, p4)
205 ) 172 ));
206 .build(); 173 var query = Query.of("Diagonal", Integer.class, (builder, p1, output) -> builder.clause(p2 -> List.of(
207 var query = Query.builder("Diagonal") 174 personView.call(p1),
208 .parameter(p1) 175 output.assign(subQuery.count(p1, p1, p2, p2))
209 .output(x) 176 )));
210 .clause(
211 personView.call(p1),
212 x.assign(subQuery.count(p1, p1, p2, p2))
213 )
214 .build();
215 177
216 var store = ModelStore.builder() 178 var store = ModelStore.builder()
217 .symbols(person, symbol) 179 .symbols(person, symbol)
218 .with(ViatraModelQuery.ADAPTER) 180 .with(ViatraModelQueryAdapter.builder()
219 .defaultHint(hint) 181 .defaultHint(hint)
220 .queries(query) 182 .queries(query))
221 .build(); 183 .build();
222 184
223 var model = store.createEmptyModel(); 185 var model = store.createEmptyModel();
224 var personInterpretation = model.getInterpretation(person); 186 var personInterpretation = model.getInterpretation(person);
225 var symbolInterpretation = model.getInterpretation(symbol); 187 var symbolInterpretation = model.getInterpretation(symbol);
226 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 188 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
227 var queryResultSet = queryEngine.getResultSet(query); 189 var queryResultSet = queryEngine.getResultSet(query);
228 190
229 personInterpretation.put(Tuple.of(0), true); 191 personInterpretation.put(Tuple.of(0), true);
@@ -247,46 +209,34 @@ class DiagonalQueryTest {
247 209
248 @QueryEngineTest 210 @QueryEngineTest
249 void inputKeyAggregationTest(QueryEvaluationHint hint) { 211 void inputKeyAggregationTest(QueryEvaluationHint hint) {
250 var person = new Symbol<>("Person", 1, Boolean.class, false); 212 var query = Query.of("Diagonal", Integer.class, (builder, p1, output) -> builder
251 var symbol = new Symbol<>("symbol", 4, Integer.class, null); 213 .clause((p2) -> List.of(
252 var personView = new KeyOnlyRelationView<>(person);
253 var symbolView = new FunctionalRelationView<>(symbol);
254
255 var p1 = Variable.of("p1");
256 var p2 = Variable.of("p2");
257 var x = Variable.of("x", Integer.class);
258 var y = Variable.of("y", Integer.class);
259 var query = Query.builder("Diagonal")
260 .parameter(p1)
261 .output(x)
262 .clause(
263 personView.call(p1), 214 personView.call(p1),
264 x.assign(symbolView.aggregate(y, INT_SUM, p1, p1, p2, p2, y)) 215 output.assign(intSymbolView.aggregate(INT_SUM, p1, p1, p2, p2))
265 ) 216 )));
266 .build();
267 217
268 var store = ModelStore.builder() 218 var store = ModelStore.builder()
269 .symbols(person, symbol) 219 .symbols(person, intSymbol)
270 .with(ViatraModelQuery.ADAPTER) 220 .with(ViatraModelQueryAdapter.builder()
271 .defaultHint(hint) 221 .defaultHint(hint)
272 .queries(query) 222 .queries(query))
273 .build(); 223 .build();
274 224
275 var model = store.createEmptyModel(); 225 var model = store.createEmptyModel();
276 var personInterpretation = model.getInterpretation(person); 226 var personInterpretation = model.getInterpretation(person);
277 var symbolInterpretation = model.getInterpretation(symbol); 227 var intSymbolInterpretation = model.getInterpretation(intSymbol);
278 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 228 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
279 var queryResultSet = queryEngine.getResultSet(query); 229 var queryResultSet = queryEngine.getResultSet(query);
280 230
281 personInterpretation.put(Tuple.of(0), true); 231 personInterpretation.put(Tuple.of(0), true);
282 personInterpretation.put(Tuple.of(1), true); 232 personInterpretation.put(Tuple.of(1), true);
283 personInterpretation.put(Tuple.of(2), true); 233 personInterpretation.put(Tuple.of(2), true);
284 234
285 symbolInterpretation.put(Tuple.of(0, 0, 1, 1), 1); 235 intSymbolInterpretation.put(Tuple.of(0, 0, 1, 1), 1);
286 symbolInterpretation.put(Tuple.of(0, 0, 2, 2), 2); 236 intSymbolInterpretation.put(Tuple.of(0, 0, 2, 2), 2);
287 symbolInterpretation.put(Tuple.of(0, 0, 1, 2), 10); 237 intSymbolInterpretation.put(Tuple.of(0, 0, 1, 2), 10);
288 symbolInterpretation.put(Tuple.of(1, 1, 0, 1), 11); 238 intSymbolInterpretation.put(Tuple.of(1, 1, 0, 1), 11);
289 symbolInterpretation.put(Tuple.of(1, 2, 1, 1), 12); 239 intSymbolInterpretation.put(Tuple.of(1, 2, 1, 1), 12);
290 240
291 queryEngine.flushChanges(); 241 queryEngine.flushChanges();
292 assertNullableResults(Map.of( 242 assertNullableResults(Map.of(
@@ -299,62 +249,52 @@ class DiagonalQueryTest {
299 249
300 @QueryEngineTest 250 @QueryEngineTest
301 void subQueryAggregationTest(QueryEvaluationHint hint) { 251 void subQueryAggregationTest(QueryEvaluationHint hint) {
302 var person = new Symbol<>("Person", 1, Boolean.class, false); 252 var subQuery = Dnf.of("SubQuery", builder -> {
303 var symbol = new Symbol<>("symbol", 4, Integer.class, null); 253 var p1 = builder.parameter("p1");
304 var personView = new KeyOnlyRelationView<>(person); 254 var p2 = builder.parameter("p2");
305 var symbolView = new FunctionalRelationView<>(symbol); 255 var p3 = builder.parameter("p3");
306 256 var p4 = builder.parameter("p4");
307 var p1 = Variable.of("p1"); 257 var x = builder.parameter("x", Integer.class);
308 var p2 = Variable.of("p2"); 258 var y = builder.parameter("y", Integer.class);
309 var p3 = Variable.of("p3"); 259 builder.clause(
310 var p4 = Variable.of("p4"); 260 personView.call(p1),
311 var x = Variable.of("x", Integer.class); 261 intSymbolView.call(p1, p2, p3, p4, x),
312 var y = Variable.of("y", Integer.class); 262 y.assign(x)
313 var z = Variable.of("z", Integer.class); 263 );
314 var subQuery = Dnf.builder("SubQuery") 264 builder.clause(
315 .parameters(p1, p2, p3, p4, x, y) 265 personView.call(p2),
316 .clause( 266 intSymbolView.call(p1, p2, p3, p4, x),
267 y.assign(x)
268 );
269 });
270 var query = Query.of("Diagonal", Integer.class, (builder, p1, output) -> builder
271 .clause(Integer.class, Integer.class, (p2, y, z) -> List.of(
317 personView.call(p1), 272 personView.call(p1),
318 symbolView.call(p1, p2, p3, p4, x), 273 output.assign(subQuery.aggregateBy(y, INT_SUM, p1, p1, p2, p2, y, z))
319 y.assign(x) 274 )));
320 )
321 .clause(
322 personView.call(p2),
323 symbolView.call(p1, p2, p3, p4, x),
324 y.assign(x)
325 )
326 .build();
327 var query = Query.builder("Diagonal")
328 .parameter(p1)
329 .output(x)
330 .clause(
331 personView.call(p1),
332 x.assign(subQuery.aggregate(z, INT_SUM, p1, p1, p2, p2, z, z))
333 )
334 .build();
335 275
336 var store = ModelStore.builder() 276 var store = ModelStore.builder()
337 .symbols(person, symbol) 277 .symbols(person, intSymbol)
338 .with(ViatraModelQuery.ADAPTER) 278 .with(ViatraModelQueryAdapter.builder()
339 .defaultHint(hint) 279 .defaultHint(hint)
340 .queries(query) 280 .queries(query))
341 .build(); 281 .build();
342 282
343 var model = store.createEmptyModel(); 283 var model = store.createEmptyModel();
344 var personInterpretation = model.getInterpretation(person); 284 var personInterpretation = model.getInterpretation(person);
345 var symbolInterpretation = model.getInterpretation(symbol); 285 var intSymbolInterpretation = model.getInterpretation(intSymbol);
346 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 286 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
347 var queryResultSet = queryEngine.getResultSet(query); 287 var queryResultSet = queryEngine.getResultSet(query);
348 288
349 personInterpretation.put(Tuple.of(0), true); 289 personInterpretation.put(Tuple.of(0), true);
350 personInterpretation.put(Tuple.of(1), true); 290 personInterpretation.put(Tuple.of(1), true);
351 personInterpretation.put(Tuple.of(2), true); 291 personInterpretation.put(Tuple.of(2), true);
352 292
353 symbolInterpretation.put(Tuple.of(0, 0, 1, 1), 1); 293 intSymbolInterpretation.put(Tuple.of(0, 0, 1, 1), 1);
354 symbolInterpretation.put(Tuple.of(0, 0, 2, 2), 2); 294 intSymbolInterpretation.put(Tuple.of(0, 0, 2, 2), 2);
355 symbolInterpretation.put(Tuple.of(0, 0, 1, 2), 10); 295 intSymbolInterpretation.put(Tuple.of(0, 0, 1, 2), 10);
356 symbolInterpretation.put(Tuple.of(1, 1, 0, 1), 11); 296 intSymbolInterpretation.put(Tuple.of(1, 1, 0, 1), 11);
357 symbolInterpretation.put(Tuple.of(1, 2, 1, 1), 12); 297 intSymbolInterpretation.put(Tuple.of(1, 2, 1, 1), 12);
358 298
359 queryEngine.flushChanges(); 299 queryEngine.flushChanges();
360 assertNullableResults(Map.of( 300 assertNullableResults(Map.of(
@@ -367,40 +307,31 @@ class DiagonalQueryTest {
367 307
368 @QueryEngineTest 308 @QueryEngineTest
369 void inputKeyTransitiveTest(QueryEvaluationHint hint) { 309 void inputKeyTransitiveTest(QueryEvaluationHint hint) {
370 var person = new Symbol<>("Person", 1, Boolean.class, false); 310 var query = Query.of("Diagonal", (builder, p1) -> builder.clause(
371 var symbol = new Symbol<>("symbol", 2, Boolean.class, false); 311 personView.call(p1),
372 var personView = new KeyOnlyRelationView<>(person); 312 friendView.callTransitive(p1, p1)
373 var symbolView = new KeyOnlyRelationView<>(symbol); 313 ));
374
375 var p1 = Variable.of("p1");
376 var query = Query.builder("Diagonal")
377 .parameter(p1)
378 .clause(
379 personView.call(p1),
380 symbolView.callTransitive(p1, p1)
381 )
382 .build();
383 314
384 var store = ModelStore.builder() 315 var store = ModelStore.builder()
385 .symbols(person, symbol) 316 .symbols(person, friend)
386 .with(ViatraModelQuery.ADAPTER) 317 .with(ViatraModelQueryAdapter.builder()
387 .defaultHint(hint) 318 .defaultHint(hint)
388 .queries(query) 319 .queries(query))
389 .build(); 320 .build();
390 321
391 var model = store.createEmptyModel(); 322 var model = store.createEmptyModel();
392 var personInterpretation = model.getInterpretation(person); 323 var personInterpretation = model.getInterpretation(person);
393 var symbolInterpretation = model.getInterpretation(symbol); 324 var friendInterpretation = model.getInterpretation(friend);
394 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 325 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
395 var queryResultSet = queryEngine.getResultSet(query); 326 var queryResultSet = queryEngine.getResultSet(query);
396 327
397 personInterpretation.put(Tuple.of(0), true); 328 personInterpretation.put(Tuple.of(0), true);
398 personInterpretation.put(Tuple.of(1), true); 329 personInterpretation.put(Tuple.of(1), true);
399 personInterpretation.put(Tuple.of(2), true); 330 personInterpretation.put(Tuple.of(2), true);
400 331
401 symbolInterpretation.put(Tuple.of(0, 0), true); 332 friendInterpretation.put(Tuple.of(0, 0), true);
402 symbolInterpretation.put(Tuple.of(0, 1), true); 333 friendInterpretation.put(Tuple.of(0, 1), true);
403 symbolInterpretation.put(Tuple.of(1, 2), true); 334 friendInterpretation.put(Tuple.of(1, 2), true);
404 335
405 queryEngine.flushChanges(); 336 queryEngine.flushChanges();
406 assertResults(Map.of( 337 assertResults(Map.of(
@@ -413,52 +344,40 @@ class DiagonalQueryTest {
413 344
414 @QueryEngineTest 345 @QueryEngineTest
415 void subQueryTransitiveTest(QueryEvaluationHint hint) { 346 void subQueryTransitiveTest(QueryEvaluationHint hint) {
416 var person = new Symbol<>("Person", 1, Boolean.class, false); 347 var subQuery = Query.of("SubQuery", (builder, p1, p2) -> builder
417 var symbol = new Symbol<>("symbol", 2, Boolean.class, false);
418 var personView = new KeyOnlyRelationView<>(person);
419 var symbolView = new KeyOnlyRelationView<>(symbol);
420
421 var p1 = Variable.of("p1");
422 var p2 = Variable.of("p2");
423 var subQuery = Dnf.builder("SubQuery")
424 .parameters(p1, p2)
425 .clause( 348 .clause(
426 personView.call(p1), 349 personView.call(p1),
427 symbolView.call(p1, p2) 350 friendView.call(p1, p2)
428 ) 351 )
429 .clause( 352 .clause(
430 personView.call(p2), 353 personView.call(p2),
431 symbolView.call(p1, p2) 354 friendView.call(p1, p2)
432 ) 355 ));
433 .build(); 356 var query = Query.of("Diagonal", (builder, p1) -> builder.clause(
434 var query = Query.builder("Diagonal") 357 personView.call(p1),
435 .parameter(p1) 358 subQuery.callTransitive(p1, p1)
436 .clause( 359 ));
437 personView.call(p1),
438 subQuery.callTransitive(p1, p1)
439 )
440 .build();
441 360
442 var store = ModelStore.builder() 361 var store = ModelStore.builder()
443 .symbols(person, symbol) 362 .symbols(person, friend)
444 .with(ViatraModelQuery.ADAPTER) 363 .with(ViatraModelQueryAdapter.builder()
445 .defaultHint(hint) 364 .defaultHint(hint)
446 .queries(query) 365 .queries(query))
447 .build(); 366 .build();
448 367
449 var model = store.createEmptyModel(); 368 var model = store.createEmptyModel();
450 var personInterpretation = model.getInterpretation(person); 369 var personInterpretation = model.getInterpretation(person);
451 var symbolInterpretation = model.getInterpretation(symbol); 370 var friendInterpretation = model.getInterpretation(friend);
452 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 371 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
453 var queryResultSet = queryEngine.getResultSet(query); 372 var queryResultSet = queryEngine.getResultSet(query);
454 373
455 personInterpretation.put(Tuple.of(0), true); 374 personInterpretation.put(Tuple.of(0), true);
456 personInterpretation.put(Tuple.of(1), true); 375 personInterpretation.put(Tuple.of(1), true);
457 personInterpretation.put(Tuple.of(2), true); 376 personInterpretation.put(Tuple.of(2), true);
458 377
459 symbolInterpretation.put(Tuple.of(0, 0), true); 378 friendInterpretation.put(Tuple.of(0, 0), true);
460 symbolInterpretation.put(Tuple.of(0, 1), true); 379 friendInterpretation.put(Tuple.of(0, 1), true);
461 symbolInterpretation.put(Tuple.of(1, 2), true); 380 friendInterpretation.put(Tuple.of(1, 2), true);
462 381
463 queryEngine.flushChanges(); 382 queryEngine.flushChanges();
464 assertResults(Map.of( 383 assertResults(Map.of(
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/FunctionalQueryTest.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/FunctionalQueryTest.java
index fa2a008f..258127e7 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/FunctionalQueryTest.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/FunctionalQueryTest.java
@@ -1,20 +1,26 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra; 6package tools.refinery.store.query.viatra;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 8import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
4import tools.refinery.store.map.Cursor; 9import tools.refinery.store.map.Cursor;
5import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
6import tools.refinery.store.query.ModelQuery; 11import tools.refinery.store.query.ModelQueryAdapter;
7import tools.refinery.store.query.dnf.Dnf;
8import tools.refinery.store.query.dnf.Query; 12import tools.refinery.store.query.dnf.Query;
9import tools.refinery.store.query.term.Variable; 13import tools.refinery.store.query.term.Variable;
10import tools.refinery.store.query.viatra.tests.QueryEngineTest; 14import tools.refinery.store.query.viatra.tests.QueryEngineTest;
11import tools.refinery.store.query.view.FilteredRelationView; 15import tools.refinery.store.query.view.AnySymbolView;
12import tools.refinery.store.query.view.FunctionalRelationView; 16import tools.refinery.store.query.view.FilteredView;
13import tools.refinery.store.query.view.KeyOnlyRelationView; 17import tools.refinery.store.query.view.FunctionView;
18import tools.refinery.store.query.view.KeyOnlyView;
14import tools.refinery.store.representation.Symbol; 19import tools.refinery.store.representation.Symbol;
15import tools.refinery.store.representation.TruthValue; 20import tools.refinery.store.representation.TruthValue;
16import tools.refinery.store.tuple.Tuple; 21import tools.refinery.store.tuple.Tuple;
17 22
23import java.util.List;
18import java.util.Map; 24import java.util.Map;
19import java.util.Optional; 25import java.util.Optional;
20 26
@@ -29,35 +35,31 @@ import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertNull
29import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertResults; 35import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertResults;
30 36
31class FunctionalQueryTest { 37class FunctionalQueryTest {
38 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
39 private static final Symbol<Integer> age = Symbol.of("age", 1, Integer.class);
40 private static final Symbol<TruthValue> friend = Symbol.of("friend", 2, TruthValue.class, TruthValue.FALSE);
41 private static final AnySymbolView personView = new KeyOnlyView<>(person);
42 private static final FunctionView<Integer> ageView = new FunctionView<>(age);
43 private static final AnySymbolView friendMustView = new FilteredView<>(friend, "must", TruthValue::must);
44
32 @QueryEngineTest 45 @QueryEngineTest
33 void inputKeyTest(QueryEvaluationHint hint) { 46 void inputKeyTest(QueryEvaluationHint hint) {
34 var person = new Symbol<>("Person", 1, Boolean.class, false); 47 var query = Query.of("InputKey", Integer.class, (builder, p1, output) -> builder.clause(
35 var age = new Symbol<>("age", 1, Integer.class, null); 48 personView.call(p1),
36 var personView = new KeyOnlyRelationView<>(person); 49 ageView.call(p1, output)
37 var ageView = new FunctionalRelationView<>(age); 50 ));
38
39 var p1 = Variable.of("p1");
40 var x = Variable.of("x", Integer.class);
41 var query = Query.builder("InputKey")
42 .parameter(p1)
43 .output(x)
44 .clause(
45 personView.call(p1),
46 ageView.call(p1, x)
47 )
48 .build();
49 51
50 var store = ModelStore.builder() 52 var store = ModelStore.builder()
51 .symbols(person, age) 53 .symbols(person, age)
52 .with(ViatraModelQuery.ADAPTER) 54 .with(ViatraModelQueryAdapter.builder()
53 .defaultHint(hint) 55 .defaultHint(hint)
54 .queries(query) 56 .queries(query))
55 .build(); 57 .build();
56 58
57 var model = store.createEmptyModel(); 59 var model = store.createEmptyModel();
58 var personInterpretation = model.getInterpretation(person); 60 var personInterpretation = model.getInterpretation(person);
59 var ageInterpretation = model.getInterpretation(age); 61 var ageInterpretation = model.getInterpretation(age);
60 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 62 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
61 var queryResultSet = queryEngine.getResultSet(query); 63 var queryResultSet = queryEngine.getResultSet(query);
62 64
63 personInterpretation.put(Tuple.of(0), true); 65 personInterpretation.put(Tuple.of(0), true);
@@ -77,40 +79,26 @@ class FunctionalQueryTest {
77 79
78 @QueryEngineTest 80 @QueryEngineTest
79 void predicateTest(QueryEvaluationHint hint) { 81 void predicateTest(QueryEvaluationHint hint) {
80 var person = new Symbol<>("Person", 1, Boolean.class, false); 82 var subQuery = Query.of("SubQuery", Integer.class, (builder, p1, x) -> builder.clause(
81 var age = new Symbol<>("age", 1, Integer.class, null); 83 personView.call(p1),
82 var personView = new KeyOnlyRelationView<>(person); 84 ageView.call(p1, x)
83 var ageView = new FunctionalRelationView<>(age); 85 ));
84 86 var query = Query.of("Predicate", Integer.class, (builder, p1, output) -> builder.clause(
85 var p1 = Variable.of("p1"); 87 personView.call(p1),
86 var x = Variable.of("x", Integer.class); 88 output.assign(subQuery.call(p1))
87 var subQuery = Dnf.builder("SubQuery") 89 ));
88 .parameters(p1, x)
89 .clause(
90 personView.call(p1),
91 ageView.call(p1, x)
92 )
93 .build();
94 var query = Query.builder("Predicate")
95 .parameter(p1)
96 .output(x)
97 .clause(
98 personView.call(p1),
99 subQuery.call(p1, x)
100 )
101 .build();
102 90
103 var store = ModelStore.builder() 91 var store = ModelStore.builder()
104 .symbols(person, age) 92 .symbols(person, age)
105 .with(ViatraModelQuery.ADAPTER) 93 .with(ViatraModelQueryAdapter.builder()
106 .defaultHint(hint) 94 .defaultHint(hint)
107 .queries(query) 95 .queries(query))
108 .build(); 96 .build();
109 97
110 var model = store.createEmptyModel(); 98 var model = store.createEmptyModel();
111 var personInterpretation = model.getInterpretation(person); 99 var personInterpretation = model.getInterpretation(person);
112 var ageInterpretation = model.getInterpretation(age); 100 var ageInterpretation = model.getInterpretation(age);
113 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 101 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
114 var queryResultSet = queryEngine.getResultSet(query); 102 var queryResultSet = queryEngine.getResultSet(query);
115 103
116 personInterpretation.put(Tuple.of(0), true); 104 personInterpretation.put(Tuple.of(0), true);
@@ -130,35 +118,26 @@ class FunctionalQueryTest {
130 118
131 @QueryEngineTest 119 @QueryEngineTest
132 void computationTest(QueryEvaluationHint hint) { 120 void computationTest(QueryEvaluationHint hint) {
133 var person = new Symbol<>("Person", 1, Boolean.class, false); 121 var query = Query.of("Computation", Integer.class, (builder, p1, output) -> builder.clause(() -> {
134 var age = new Symbol<>("age", 1, Integer.class, null); 122 var x = Variable.of("x", Integer.class);
135 var personView = new KeyOnlyRelationView<>(person); 123 return List.of(
136 var ageView = new FunctionalRelationView<>(age); 124 personView.call(p1),
137 125 ageView.call(p1, x),
138 var p1 = Variable.of("p1"); 126 output.assign(mul(x, constant(7)))
139 var x = Variable.of("x", Integer.class); 127 );
140 var y = Variable.of("y", Integer.class); 128 }));
141 var query = Query.builder("Computation")
142 .parameter(p1)
143 .output(y)
144 .clause(
145 personView.call(p1),
146 ageView.call(p1, x),
147 y.assign(mul(x, constant(7)))
148 )
149 .build();
150 129
151 var store = ModelStore.builder() 130 var store = ModelStore.builder()
152 .symbols(person, age) 131 .symbols(person, age)
153 .with(ViatraModelQuery.ADAPTER) 132 .with(ViatraModelQueryAdapter.builder()
154 .defaultHint(hint) 133 .defaultHint(hint)
155 .queries(query) 134 .queries(query))
156 .build(); 135 .build();
157 136
158 var model = store.createEmptyModel(); 137 var model = store.createEmptyModel();
159 var personInterpretation = model.getInterpretation(person); 138 var personInterpretation = model.getInterpretation(person);
160 var ageInterpretation = model.getInterpretation(age); 139 var ageInterpretation = model.getInterpretation(age);
161 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 140 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
162 var queryResultSet = queryEngine.getResultSet(query); 141 var queryResultSet = queryEngine.getResultSet(query);
163 142
164 personInterpretation.put(Tuple.of(0), true); 143 personInterpretation.put(Tuple.of(0), true);
@@ -177,34 +156,22 @@ class FunctionalQueryTest {
177 156
178 @QueryEngineTest 157 @QueryEngineTest
179 void inputKeyCountTest(QueryEvaluationHint hint) { 158 void inputKeyCountTest(QueryEvaluationHint hint) {
180 var person = new Symbol<>("Person", 1, Boolean.class, false); 159 var query = Query.of("Count", Integer.class, (builder, p1, output) -> builder.clause(
181 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 160 personView.call(p1),
182 var personView = new KeyOnlyRelationView<>(person); 161 output.assign(friendMustView.count(p1, Variable.of()))
183 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 162 ));
184
185 var p1 = Variable.of("p1");
186 var p2 = Variable.of("p2");
187 var x = Variable.of("x", Integer.class);
188 var query = Query.builder("Count")
189 .parameter(p1)
190 .output(x)
191 .clause(
192 personView.call(p1),
193 x.assign(friendMustView.count(p1, p2))
194 )
195 .build();
196 163
197 var store = ModelStore.builder() 164 var store = ModelStore.builder()
198 .symbols(person, friend) 165 .symbols(person, friend)
199 .with(ViatraModelQuery.ADAPTER) 166 .with(ViatraModelQueryAdapter.builder()
200 .defaultHint(hint) 167 .defaultHint(hint)
201 .queries(query) 168 .queries(query))
202 .build(); 169 .build();
203 170
204 var model = store.createEmptyModel(); 171 var model = store.createEmptyModel();
205 var personInterpretation = model.getInterpretation(person); 172 var personInterpretation = model.getInterpretation(person);
206 var friendInterpretation = model.getInterpretation(friend); 173 var friendInterpretation = model.getInterpretation(friend);
207 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 174 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
208 var queryResultSet = queryEngine.getResultSet(query); 175 var queryResultSet = queryEngine.getResultSet(query);
209 176
210 personInterpretation.put(Tuple.of(0), true); 177 personInterpretation.put(Tuple.of(0), true);
@@ -226,42 +193,27 @@ class FunctionalQueryTest {
226 193
227 @QueryEngineTest 194 @QueryEngineTest
228 void predicateCountTest(QueryEvaluationHint hint) { 195 void predicateCountTest(QueryEvaluationHint hint) {
229 var person = new Symbol<>("Person", 1, Boolean.class, false); 196 var subQuery = Query.of("SubQuery", (builder, p1, p2) -> builder.clause(
230 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 197 personView.call(p1),
231 var personView = new KeyOnlyRelationView<>(person); 198 personView.call(p2),
232 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 199 friendMustView.call(p1, p2)
233 200 ));
234 var p1 = Variable.of("p1"); 201 var query = Query.of("Count", Integer.class, (builder, p1, output) -> builder.clause(
235 var p2 = Variable.of("p2"); 202 personView.call(p1),
236 var x = Variable.of("x", Integer.class); 203 output.assign(subQuery.count(p1, Variable.of()))
237 var subQuery = Dnf.builder("SubQuery") 204 ));
238 .parameters(p1, p2)
239 .clause(
240 personView.call(p1),
241 personView.call(p2),
242 friendMustView.call(p1, p2)
243 )
244 .build();
245 var query = Query.builder("Count")
246 .parameter(p1)
247 .output(x)
248 .clause(
249 personView.call(p1),
250 x.assign(subQuery.count(p1, p2))
251 )
252 .build();
253 205
254 var store = ModelStore.builder() 206 var store = ModelStore.builder()
255 .symbols(person, friend) 207 .symbols(person, friend)
256 .with(ViatraModelQuery.ADAPTER) 208 .with(ViatraModelQueryAdapter.builder()
257 .defaultHint(hint) 209 .defaultHint(hint)
258 .queries(query) 210 .queries(query))
259 .build(); 211 .build();
260 212
261 var model = store.createEmptyModel(); 213 var model = store.createEmptyModel();
262 var personInterpretation = model.getInterpretation(person); 214 var personInterpretation = model.getInterpretation(person);
263 var friendInterpretation = model.getInterpretation(friend); 215 var friendInterpretation = model.getInterpretation(friend);
264 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 216 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
265 var queryResultSet = queryEngine.getResultSet(query); 217 var queryResultSet = queryEngine.getResultSet(query);
266 218
267 personInterpretation.put(Tuple.of(0), true); 219 personInterpretation.put(Tuple.of(0), true);
@@ -283,29 +235,20 @@ class FunctionalQueryTest {
283 235
284 @QueryEngineTest 236 @QueryEngineTest
285 void inputKeyAggregationTest(QueryEvaluationHint hint) { 237 void inputKeyAggregationTest(QueryEvaluationHint hint) {
286 var age = new Symbol<>("age", 1, Integer.class, null); 238 var query = Query.of("Aggregate", Integer.class, (builder, output) -> builder.clause(
287 var ageView = new FunctionalRelationView<>(age); 239 output.assign(ageView.aggregate(INT_SUM, Variable.of()))
288 240 ));
289 var p1 = Variable.of("p1");
290 var x = Variable.of("x", Integer.class);
291 var y = Variable.of("y", Integer.class);
292 var query = Query.builder("Aggregate")
293 .output(x)
294 .clause(
295 x.assign(ageView.aggregate(y, INT_SUM, p1, y))
296 )
297 .build();
298 241
299 var store = ModelStore.builder() 242 var store = ModelStore.builder()
300 .symbols(age) 243 .symbols(age)
301 .with(ViatraModelQuery.ADAPTER) 244 .with(ViatraModelQueryAdapter.builder()
302 .defaultHint(hint) 245 .defaultHint(hint)
303 .queries(query) 246 .queries(query))
304 .build(); 247 .build();
305 248
306 var model = store.createEmptyModel(); 249 var model = store.createEmptyModel();
307 var ageInterpretation = model.getInterpretation(age); 250 var ageInterpretation = model.getInterpretation(age);
308 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 251 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
309 var queryResultSet = queryEngine.getResultSet(query); 252 var queryResultSet = queryEngine.getResultSet(query);
310 253
311 ageInterpretation.put(Tuple.of(0), 12); 254 ageInterpretation.put(Tuple.of(0), 12);
@@ -317,39 +260,25 @@ class FunctionalQueryTest {
317 260
318 @QueryEngineTest 261 @QueryEngineTest
319 void predicateAggregationTest(QueryEvaluationHint hint) { 262 void predicateAggregationTest(QueryEvaluationHint hint) {
320 var person = new Symbol<>("Person", 1, Boolean.class, false); 263 var subQuery = Query.of("SubQuery", Integer.class, (builder, p1, x) -> builder.clause(
321 var age = new Symbol<>("age", 1, Integer.class, null); 264 personView.call(p1),
322 var personView = new KeyOnlyRelationView<>(person); 265 ageView.call(p1, x)
323 var ageView = new FunctionalRelationView<>(age); 266 ));
324 267 var query = Query.of("Aggregate", Integer.class, (builder, output) -> builder.clause(
325 var p1 = Variable.of("p1"); 268 output.assign(subQuery.aggregate(INT_SUM, Variable.of()))
326 var x = Variable.of("x", Integer.class); 269 ));
327 var y = Variable.of("y", Integer.class);
328 var subQuery = Dnf.builder("SubQuery")
329 .parameters(p1, x)
330 .clause(
331 personView.call(p1),
332 ageView.call(p1, x)
333 )
334 .build();
335 var query = Query.builder("Aggregate")
336 .output(x)
337 .clause(
338 x.assign(subQuery.aggregate(y, INT_SUM, p1, y))
339 )
340 .build();
341 270
342 var store = ModelStore.builder() 271 var store = ModelStore.builder()
343 .symbols(person, age) 272 .symbols(person, age)
344 .with(ViatraModelQuery.ADAPTER) 273 .with(ViatraModelQueryAdapter.builder()
345 .defaultHint(hint) 274 .defaultHint(hint)
346 .queries(query) 275 .queries(query))
347 .build(); 276 .build();
348 277
349 var model = store.createEmptyModel(); 278 var model = store.createEmptyModel();
350 var personInterpretation = model.getInterpretation(person); 279 var personInterpretation = model.getInterpretation(person);
351 var ageInterpretation = model.getInterpretation(age); 280 var ageInterpretation = model.getInterpretation(age);
352 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 281 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
353 var queryResultSet = queryEngine.getResultSet(query); 282 var queryResultSet = queryEngine.getResultSet(query);
354 283
355 personInterpretation.put(Tuple.of(0), true); 284 personInterpretation.put(Tuple.of(0), true);
@@ -364,46 +293,28 @@ class FunctionalQueryTest {
364 293
365 @QueryEngineTest 294 @QueryEngineTest
366 void extremeValueTest(QueryEvaluationHint hint) { 295 void extremeValueTest(QueryEvaluationHint hint) {
367 var person = new Symbol<>("Person", 1, Boolean.class, false); 296 var subQuery = Query.of("SubQuery", Integer.class, (builder, p1, x) -> builder.clause(
368 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 297 personView.call(p1),
369 var personView = new KeyOnlyRelationView<>(person); 298 x.assign(friendMustView.count(p1, Variable.of()))
370 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 299 ));
371 300 var minQuery = Query.of("Min", Integer.class, (builder, output) -> builder.clause(
372 var p1 = Variable.of("p1"); 301 output.assign(subQuery.aggregate(INT_MIN, Variable.of()))
373 var p2 = Variable.of("p2"); 302 ));
374 var x = Variable.of("x", Integer.class); 303 var maxQuery = Query.of("Max", Integer.class, (builder, output) -> builder.clause(
375 var y = Variable.of("y", Integer.class); 304 output.assign(subQuery.aggregate(INT_MAX, Variable.of()))
376 var subQuery = Dnf.builder("SubQuery") 305 ));
377 .parameters(p1, x)
378 .clause(
379 personView.call(p1),
380 x.assign(friendMustView.count(p1, p2))
381 )
382 .build();
383 var minQuery = Query.builder("Min")
384 .output(x)
385 .clause(
386 x.assign(subQuery.aggregate(y, INT_MIN, p1, y))
387 )
388 .build();
389 var maxQuery = Query.builder("Max")
390 .output(x)
391 .clause(
392 x.assign(subQuery.aggregate(y, INT_MAX, p1, y))
393 )
394 .build();
395 306
396 var store = ModelStore.builder() 307 var store = ModelStore.builder()
397 .symbols(person, friend) 308 .symbols(person, friend)
398 .with(ViatraModelQuery.ADAPTER) 309 .with(ViatraModelQueryAdapter.builder()
399 .defaultHint(hint) 310 .defaultHint(hint)
400 .queries(minQuery, maxQuery) 311 .queries(minQuery, maxQuery))
401 .build(); 312 .build();
402 313
403 var model = store.createEmptyModel(); 314 var model = store.createEmptyModel();
404 var personInterpretation = model.getInterpretation(person); 315 var personInterpretation = model.getInterpretation(person);
405 var friendInterpretation = model.getInterpretation(friend); 316 var friendInterpretation = model.getInterpretation(friend);
406 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 317 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
407 var minResultSet = queryEngine.getResultSet(minQuery); 318 var minResultSet = queryEngine.getResultSet(minQuery);
408 var maxResultSet = queryEngine.getResultSet(maxQuery); 319 var maxResultSet = queryEngine.getResultSet(maxQuery);
409 320
@@ -440,35 +351,24 @@ class FunctionalQueryTest {
440 351
441 @QueryEngineTest 352 @QueryEngineTest
442 void invalidComputationTest(QueryEvaluationHint hint) { 353 void invalidComputationTest(QueryEvaluationHint hint) {
443 var person = new Symbol<>("Person", 1, Boolean.class, false); 354 var query = Query.of("InvalidComputation", Integer.class,
444 var age = new Symbol<>("age", 1, Integer.class, null); 355 (builder, p1, output) -> builder.clause(Integer.class, (x) -> List.of(
445 var personView = new KeyOnlyRelationView<>(person);
446 var ageView = new FunctionalRelationView<>(age);
447
448 var p1 = Variable.of("p1");
449 var x = Variable.of("x", Integer.class);
450 var y = Variable.of("y", Integer.class);
451 var query = Query.builder("InvalidComputation")
452 .parameter(p1)
453 .output(y)
454 .clause(
455 personView.call(p1), 356 personView.call(p1),
456 ageView.call(p1, x), 357 ageView.call(p1, x),
457 y.assign(div(constant(120), x)) 358 output.assign(div(constant(120), x))
458 ) 359 )));
459 .build();
460 360
461 var store = ModelStore.builder() 361 var store = ModelStore.builder()
462 .symbols(person, age) 362 .symbols(person, age)
463 .with(ViatraModelQuery.ADAPTER) 363 .with(ViatraModelQueryAdapter.builder()
464 .defaultHint(hint) 364 .defaultHint(hint)
465 .queries(query) 365 .queries(query))
466 .build(); 366 .build();
467 367
468 var model = store.createEmptyModel(); 368 var model = store.createEmptyModel();
469 var personInterpretation = model.getInterpretation(person); 369 var personInterpretation = model.getInterpretation(person);
470 var ageInterpretation = model.getInterpretation(age); 370 var ageInterpretation = model.getInterpretation(age);
471 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 371 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
472 var queryResultSet = queryEngine.getResultSet(query); 372 var queryResultSet = queryEngine.getResultSet(query);
473 373
474 personInterpretation.put(Tuple.of(0), true); 374 personInterpretation.put(Tuple.of(0), true);
@@ -487,33 +387,23 @@ class FunctionalQueryTest {
487 387
488 @QueryEngineTest 388 @QueryEngineTest
489 void invalidAssumeTest(QueryEvaluationHint hint) { 389 void invalidAssumeTest(QueryEvaluationHint hint) {
490 var person = new Symbol<>("Person", 1, Boolean.class, false); 390 var query = Query.of("InvalidAssume", (builder, p1) -> builder.clause(Integer.class, (x) -> List.of(
491 var age = new Symbol<>("age", 1, Integer.class, null); 391 personView.call(p1),
492 var personView = new KeyOnlyRelationView<>(person); 392 ageView.call(p1, x),
493 var ageView = new FunctionalRelationView<>(age); 393 assume(lessEq(div(constant(120), x), constant(5)))
494 394 )));
495 var p1 = Variable.of("p1");
496 var x = Variable.of("x", Integer.class);
497 var query = Query.builder("InvalidComputation")
498 .parameter(p1)
499 .clause(
500 personView.call(p1),
501 ageView.call(p1, x),
502 assume(lessEq(div(constant(120), x), constant(5)))
503 )
504 .build();
505 395
506 var store = ModelStore.builder() 396 var store = ModelStore.builder()
507 .symbols(person, age) 397 .symbols(person, age)
508 .with(ViatraModelQuery.ADAPTER) 398 .with(ViatraModelQueryAdapter.builder()
509 .defaultHint(hint) 399 .defaultHint(hint)
510 .queries(query) 400 .queries(query))
511 .build(); 401 .build();
512 402
513 var model = store.createEmptyModel(); 403 var model = store.createEmptyModel();
514 var personInterpretation = model.getInterpretation(person); 404 var personInterpretation = model.getInterpretation(person);
515 var ageInterpretation = model.getInterpretation(age); 405 var ageInterpretation = model.getInterpretation(age);
516 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 406 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
517 var queryResultSet = queryEngine.getResultSet(query); 407 var queryResultSet = queryEngine.getResultSet(query);
518 408
519 personInterpretation.put(Tuple.of(0), true); 409 personInterpretation.put(Tuple.of(0), true);
@@ -535,38 +425,24 @@ class FunctionalQueryTest {
535 425
536 @QueryEngineTest 426 @QueryEngineTest
537 void notFunctionalTest(QueryEvaluationHint hint) { 427 void notFunctionalTest(QueryEvaluationHint hint) {
538 var person = new Symbol<>("Person", 1, Boolean.class, false); 428 var query = Query.of("NotFunctional", Integer.class, (builder, p1, output) -> builder.clause((p2) -> List.of(
539 var age = new Symbol<>("age", 1, Integer.class, null); 429 personView.call(p1),
540 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 430 friendMustView.call(p1, p2),
541 var personView = new KeyOnlyRelationView<>(person); 431 ageView.call(p2, output)
542 var ageView = new FunctionalRelationView<>(age); 432 )));
543 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must);
544
545 var p1 = Variable.of("p1");
546 var p2 = Variable.of("p2");
547 var x = Variable.of("x", Integer.class);
548 var query = Query.builder("NotFunctional")
549 .parameter(p1)
550 .output(x)
551 .clause(
552 personView.call(p1),
553 friendMustView.call(p1, p2),
554 ageView.call(p2, x)
555 )
556 .build();
557 433
558 var store = ModelStore.builder() 434 var store = ModelStore.builder()
559 .symbols(person, age, friend) 435 .symbols(person, age, friend)
560 .with(ViatraModelQuery.ADAPTER) 436 .with(ViatraModelQueryAdapter.builder()
561 .defaultHint(hint) 437 .defaultHint(hint)
562 .query(query) 438 .queries(query))
563 .build(); 439 .build();
564 440
565 var model = store.createEmptyModel(); 441 var model = store.createEmptyModel();
566 var personInterpretation = model.getInterpretation(person); 442 var personInterpretation = model.getInterpretation(person);
567 var ageInterpretation = model.getInterpretation(age); 443 var ageInterpretation = model.getInterpretation(age);
568 var friendInterpretation = model.getInterpretation(friend); 444 var friendInterpretation = model.getInterpretation(friend);
569 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 445 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
570 var queryResultSet = queryEngine.getResultSet(query); 446 var queryResultSet = queryEngine.getResultSet(query);
571 447
572 personInterpretation.put(Tuple.of(0), true); 448 personInterpretation.put(Tuple.of(0), true);
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java
index 8a3f9d88..297cdf04 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java
@@ -1,23 +1,28 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra; 6package tools.refinery.store.query.viatra;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 8import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
4import org.junit.jupiter.api.Test; 9import org.junit.jupiter.api.Test;
5import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
6import tools.refinery.store.query.ModelQuery; 11import tools.refinery.store.query.ModelQueryAdapter;
7import tools.refinery.store.query.dnf.Dnf;
8import tools.refinery.store.query.dnf.Query; 12import tools.refinery.store.query.dnf.Query;
9import tools.refinery.store.query.term.Variable; 13import tools.refinery.store.query.term.Variable;
10import tools.refinery.store.query.viatra.tests.QueryEngineTest; 14import tools.refinery.store.query.viatra.tests.QueryEngineTest;
11import tools.refinery.store.query.view.FilteredRelationView; 15import tools.refinery.store.query.view.AnySymbolView;
12import tools.refinery.store.query.view.FunctionalRelationView; 16import tools.refinery.store.query.view.FilteredView;
13import tools.refinery.store.query.view.KeyOnlyRelationView; 17import tools.refinery.store.query.view.FunctionView;
18import tools.refinery.store.query.view.KeyOnlyView;
14import tools.refinery.store.representation.Symbol; 19import tools.refinery.store.representation.Symbol;
15import tools.refinery.store.representation.TruthValue; 20import tools.refinery.store.representation.TruthValue;
16import tools.refinery.store.tuple.Tuple; 21import tools.refinery.store.tuple.Tuple;
17 22
23import java.util.List;
18import java.util.Map; 24import java.util.Map;
19 25
20import static org.junit.jupiter.api.Assertions.assertThrows;
21import static tools.refinery.store.query.literal.Literals.assume; 26import static tools.refinery.store.query.literal.Literals.assume;
22import static tools.refinery.store.query.literal.Literals.not; 27import static tools.refinery.store.query.literal.Literals.not;
23import static tools.refinery.store.query.term.int_.IntTerms.constant; 28import static tools.refinery.store.query.term.int_.IntTerms.constant;
@@ -25,29 +30,28 @@ import static tools.refinery.store.query.term.int_.IntTerms.greaterEq;
25import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertResults; 30import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertResults;
26 31
27class QueryTest { 32class QueryTest {
33 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
34 private static final Symbol<TruthValue> friend = Symbol.of("friend", 2, TruthValue.class, TruthValue.FALSE);
35 private static final AnySymbolView personView = new KeyOnlyView<>(person);
36 private static final AnySymbolView friendMustView = new FilteredView<>(friend, "must", TruthValue::must);
37
28 @QueryEngineTest 38 @QueryEngineTest
29 void typeConstraintTest(QueryEvaluationHint hint) { 39 void typeConstraintTest(QueryEvaluationHint hint) {
30 var person = new Symbol<>("Person", 1, Boolean.class, false); 40 var asset = Symbol.of("Asset", 1);
31 var asset = new Symbol<>("Asset", 1, Boolean.class, false); 41
32 var personView = new KeyOnlyRelationView<>(person); 42 var predicate = Query.of("TypeConstraint", (builder, p1) -> builder.clause(personView.call(p1)));
33
34 var p1 = Variable.of("p1");
35 var predicate = Query.builder("TypeConstraint")
36 .parameters(p1)
37 .clause(personView.call(p1))
38 .build();
39 43
40 var store = ModelStore.builder() 44 var store = ModelStore.builder()
41 .symbols(person, asset) 45 .symbols(person, asset)
42 .with(ViatraModelQuery.ADAPTER) 46 .with(ViatraModelQueryAdapter.builder()
43 .defaultHint(hint) 47 .defaultHint(hint)
44 .query(predicate) 48 .queries(predicate))
45 .build(); 49 .build();
46 50
47 var model = store.createEmptyModel(); 51 var model = store.createEmptyModel();
48 var personInterpretation = model.getInterpretation(person); 52 var personInterpretation = model.getInterpretation(person);
49 var assetInterpretation = model.getInterpretation(asset); 53 var assetInterpretation = model.getInterpretation(asset);
50 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 54 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
51 var predicateResultSet = queryEngine.getResultSet(predicate); 55 var predicateResultSet = queryEngine.getResultSet(predicate);
52 56
53 personInterpretation.put(Tuple.of(0), true); 57 personInterpretation.put(Tuple.of(0), true);
@@ -66,33 +70,23 @@ class QueryTest {
66 70
67 @QueryEngineTest 71 @QueryEngineTest
68 void relationConstraintTest(QueryEvaluationHint hint) { 72 void relationConstraintTest(QueryEvaluationHint hint) {
69 var person = new Symbol<>("Person", 1, Boolean.class, false); 73 var predicate = Query.of("RelationConstraint", (builder, p1, p2) -> builder.clause(
70 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 74 personView.call(p1),
71 var personView = new KeyOnlyRelationView<>(person); 75 personView.call(p2),
72 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 76 friendMustView.call(p1, p2)
73 77 ));
74 var p1 = Variable.of("p1");
75 var p2 = Variable.of("p2");
76 var predicate = Query.builder("RelationConstraint")
77 .parameters(p1, p2)
78 .clause(
79 personView.call(p1),
80 personView.call(p2),
81 friendMustView.call(p1, p2)
82 )
83 .build();
84 78
85 var store = ModelStore.builder() 79 var store = ModelStore.builder()
86 .symbols(person, friend) 80 .symbols(person, friend)
87 .with(ViatraModelQuery.ADAPTER) 81 .with(ViatraModelQueryAdapter.builder()
88 .defaultHint(hint) 82 .defaultHint(hint)
89 .queries(predicate) 83 .queries(predicate))
90 .build(); 84 .build();
91 85
92 var model = store.createEmptyModel(); 86 var model = store.createEmptyModel();
93 var personInterpretation = model.getInterpretation(person); 87 var personInterpretation = model.getInterpretation(person);
94 var friendInterpretation = model.getInterpretation(friend); 88 var friendInterpretation = model.getInterpretation(friend);
95 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 89 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
96 var predicateResultSet = queryEngine.getResultSet(predicate); 90 var predicateResultSet = queryEngine.getResultSet(predicate);
97 91
98 personInterpretation.put(Tuple.of(0), true); 92 personInterpretation.put(Tuple.of(0), true);
@@ -115,33 +109,23 @@ class QueryTest {
115 109
116 @QueryEngineTest 110 @QueryEngineTest
117 void existTest(QueryEvaluationHint hint) { 111 void existTest(QueryEvaluationHint hint) {
118 var person = new Symbol<>("Person", 1, Boolean.class, false); 112 var predicate = Query.of("Exists", (builder, p1) -> builder.clause((p2) -> List.of(
119 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 113 personView.call(p1),
120 var personView = new KeyOnlyRelationView<>(person); 114 personView.call(p2),
121 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 115 friendMustView.call(p1, p2)
122 116 )));
123 var p1 = Variable.of("p1");
124 var p2 = Variable.of("p2");
125 var predicate = Query.builder("RelationConstraint")
126 .parameters(p1)
127 .clause(
128 personView.call(p1),
129 personView.call(p2),
130 friendMustView.call(p1, p2)
131 )
132 .build();
133 117
134 var store = ModelStore.builder() 118 var store = ModelStore.builder()
135 .symbols(person, friend) 119 .symbols(person, friend)
136 .with(ViatraModelQuery.ADAPTER) 120 .with(ViatraModelQueryAdapter.builder()
137 .defaultHint(hint) 121 .defaultHint(hint)
138 .queries(predicate) 122 .queries(predicate))
139 .build(); 123 .build();
140 124
141 var model = store.createEmptyModel(); 125 var model = store.createEmptyModel();
142 var personInterpretation = model.getInterpretation(person); 126 var personInterpretation = model.getInterpretation(person);
143 var friendInterpretation = model.getInterpretation(friend); 127 var friendInterpretation = model.getInterpretation(friend);
144 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 128 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
145 var predicateResultSet = queryEngine.getResultSet(predicate); 129 var predicateResultSet = queryEngine.getResultSet(predicate);
146 130
147 personInterpretation.put(Tuple.of(0), true); 131 personInterpretation.put(Tuple.of(0), true);
@@ -164,41 +148,31 @@ class QueryTest {
164 148
165 @QueryEngineTest 149 @QueryEngineTest
166 void orTest(QueryEvaluationHint hint) { 150 void orTest(QueryEvaluationHint hint) {
167 var person = new Symbol<>("Person", 1, Boolean.class, false); 151 var animal = Symbol.of("Animal", 1);
168 var animal = new Symbol<>("Animal", 1, Boolean.class, false); 152 var animalView = new KeyOnlyView<>(animal);
169 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 153
170 var personView = new KeyOnlyRelationView<>(person); 154 var predicate = Query.of("Or", (builder, p1, p2) -> builder.clause(
171 var animalView = new KeyOnlyRelationView<>(animal); 155 personView.call(p1),
172 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 156 personView.call(p2),
173 157 friendMustView.call(p1, p2)
174 var p1 = Variable.of("p1"); 158 ).clause(
175 var p2 = Variable.of("p2"); 159 animalView.call(p1),
176 var predicate = Query.builder("Or") 160 animalView.call(p2),
177 .parameters(p1, p2) 161 friendMustView.call(p1, p2)
178 .clause( 162 ));
179 personView.call(p1),
180 personView.call(p2),
181 friendMustView.call(p1, p2)
182 )
183 .clause(
184 animalView.call(p1),
185 animalView.call(p2),
186 friendMustView.call(p1, p2)
187 )
188 .build();
189 163
190 var store = ModelStore.builder() 164 var store = ModelStore.builder()
191 .symbols(person, animal, friend) 165 .symbols(person, animal, friend)
192 .with(ViatraModelQuery.ADAPTER) 166 .with(ViatraModelQueryAdapter.builder()
193 .defaultHint(hint) 167 .defaultHint(hint)
194 .queries(predicate) 168 .queries(predicate))
195 .build(); 169 .build();
196 170
197 var model = store.createEmptyModel(); 171 var model = store.createEmptyModel();
198 var personInterpretation = model.getInterpretation(person); 172 var personInterpretation = model.getInterpretation(person);
199 var animalInterpretation = model.getInterpretation(animal); 173 var animalInterpretation = model.getInterpretation(animal);
200 var friendInterpretation = model.getInterpretation(friend); 174 var friendInterpretation = model.getInterpretation(friend);
201 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 175 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
202 var predicateResultSet = queryEngine.getResultSet(predicate); 176 var predicateResultSet = queryEngine.getResultSet(predicate);
203 177
204 personInterpretation.put(Tuple.of(0), true); 178 personInterpretation.put(Tuple.of(0), true);
@@ -224,30 +198,22 @@ class QueryTest {
224 198
225 @QueryEngineTest 199 @QueryEngineTest
226 void equalityTest(QueryEvaluationHint hint) { 200 void equalityTest(QueryEvaluationHint hint) {
227 var person = new Symbol<>("Person", 1, Boolean.class, false); 201 var predicate = Query.of("Equality", (builder, p1, p2) -> builder.clause(
228 var personView = new KeyOnlyRelationView<>(person); 202 personView.call(p1),
229 203 personView.call(p2),
230 var p1 = Variable.of("p1"); 204 p1.isEquivalent(p2)
231 var p2 = Variable.of("p2"); 205 ));
232 var predicate = Query.builder("Equality")
233 .parameters(p1, p2)
234 .clause(
235 personView.call(p1),
236 personView.call(p2),
237 p1.isEquivalent(p2)
238 )
239 .build();
240 206
241 var store = ModelStore.builder() 207 var store = ModelStore.builder()
242 .symbols(person) 208 .symbols(person)
243 .with(ViatraModelQuery.ADAPTER) 209 .with(ViatraModelQueryAdapter.builder()
244 .defaultHint(hint) 210 .defaultHint(hint)
245 .queries(predicate) 211 .queries(predicate))
246 .build(); 212 .build();
247 213
248 var model = store.createEmptyModel(); 214 var model = store.createEmptyModel();
249 var personInterpretation = model.getInterpretation(person); 215 var personInterpretation = model.getInterpretation(person);
250 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 216 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
251 var predicateResultSet = queryEngine.getResultSet(predicate); 217 var predicateResultSet = queryEngine.getResultSet(predicate);
252 218
253 personInterpretation.put(Tuple.of(0), true); 219 personInterpretation.put(Tuple.of(0), true);
@@ -266,36 +232,25 @@ class QueryTest {
266 232
267 @QueryEngineTest 233 @QueryEngineTest
268 void inequalityTest(QueryEvaluationHint hint) { 234 void inequalityTest(QueryEvaluationHint hint) {
269 var person = new Symbol<>("Person", 1, Boolean.class, false); 235 var predicate = Query.of("Inequality", (builder, p1, p2, p3) -> builder.clause(
270 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 236 personView.call(p1),
271 var personView = new KeyOnlyRelationView<>(person); 237 personView.call(p2),
272 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 238 friendMustView.call(p1, p3),
273 239 friendMustView.call(p2, p3),
274 var p1 = Variable.of("p1"); 240 p1.notEquivalent(p2)
275 var p2 = Variable.of("p2"); 241 ));
276 var p3 = Variable.of("p3");
277 var predicate = Query.builder("Inequality")
278 .parameters(p1, p2, p3)
279 .clause(
280 personView.call(p1),
281 personView.call(p2),
282 friendMustView.call(p1, p3),
283 friendMustView.call(p2, p3),
284 p1.notEquivalent(p2)
285 )
286 .build();
287 242
288 var store = ModelStore.builder() 243 var store = ModelStore.builder()
289 .symbols(person, friend) 244 .symbols(person, friend)
290 .with(ViatraModelQuery.ADAPTER) 245 .with(ViatraModelQueryAdapter.builder()
291 .defaultHint(hint) 246 .defaultHint(hint)
292 .queries(predicate) 247 .queries(predicate))
293 .build(); 248 .build();
294 249
295 var model = store.createEmptyModel(); 250 var model = store.createEmptyModel();
296 var personInterpretation = model.getInterpretation(person); 251 var personInterpretation = model.getInterpretation(person);
297 var friendInterpretation = model.getInterpretation(friend); 252 var friendInterpretation = model.getInterpretation(friend);
298 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 253 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
299 var predicateResultSet = queryEngine.getResultSet(predicate); 254 var predicateResultSet = queryEngine.getResultSet(predicate);
300 255
301 personInterpretation.put(Tuple.of(0), true); 256 personInterpretation.put(Tuple.of(0), true);
@@ -315,44 +270,28 @@ class QueryTest {
315 270
316 @QueryEngineTest 271 @QueryEngineTest
317 void patternCallTest(QueryEvaluationHint hint) { 272 void patternCallTest(QueryEvaluationHint hint) {
318 var person = new Symbol<>("Person", 1, Boolean.class, false); 273 var friendPredicate = Query.of("Friend", (builder, p1, p2) -> builder.clause(
319 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 274 personView.call(p1),
320 var personView = new KeyOnlyRelationView<>(person); 275 personView.call(p2),
321 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 276 friendMustView.call(p1, p2)
322 277 ));
323 var p1 = Variable.of("p1"); 278 var predicate = Query.of("PositivePatternCall", (builder, p3, p4) -> builder.clause(
324 var p2 = Variable.of("p2"); 279 personView.call(p3),
325 var friendPredicate = Dnf.builder("RelationConstraint") 280 personView.call(p4),
326 .parameters(p1, p2) 281 friendPredicate.call(p3, p4)
327 .clause( 282 ));
328 personView.call(p1),
329 personView.call(p2),
330 friendMustView.call(p1, p2)
331 )
332 .build();
333
334 var p3 = Variable.of("p3");
335 var p4 = Variable.of("p4");
336 var predicate = Query.builder("PositivePatternCall")
337 .parameters(p3, p4)
338 .clause(
339 personView.call(p3),
340 personView.call(p4),
341 friendPredicate.call(p3, p4)
342 )
343 .build();
344 283
345 var store = ModelStore.builder() 284 var store = ModelStore.builder()
346 .symbols(person, friend) 285 .symbols(person, friend)
347 .with(ViatraModelQuery.ADAPTER) 286 .with(ViatraModelQueryAdapter.builder()
348 .defaultHint(hint) 287 .defaultHint(hint)
349 .queries(predicate) 288 .queries(predicate))
350 .build(); 289 .build();
351 290
352 var model = store.createEmptyModel(); 291 var model = store.createEmptyModel();
353 var personInterpretation = model.getInterpretation(person); 292 var personInterpretation = model.getInterpretation(person);
354 var friendInterpretation = model.getInterpretation(friend); 293 var friendInterpretation = model.getInterpretation(friend);
355 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 294 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
356 var predicateResultSet = queryEngine.getResultSet(predicate); 295 var predicateResultSet = queryEngine.getResultSet(predicate);
357 296
358 personInterpretation.put(Tuple.of(0), true); 297 personInterpretation.put(Tuple.of(0), true);
@@ -374,33 +313,23 @@ class QueryTest {
374 313
375 @QueryEngineTest 314 @QueryEngineTest
376 void negativeRelationViewTest(QueryEvaluationHint hint) { 315 void negativeRelationViewTest(QueryEvaluationHint hint) {
377 var person = new Symbol<>("Person", 1, Boolean.class, false); 316 var predicate = Query.of("NegativePatternCall", (builder, p1, p2) -> builder.clause(
378 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 317 personView.call(p1),
379 var personView = new KeyOnlyRelationView<>(person); 318 personView.call(p2),
380 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 319 not(friendMustView.call(p1, p2))
381 320 ));
382 var p1 = Variable.of("p1");
383 var p2 = Variable.of("p2");
384 var predicate = Query.builder("NegativePatternCall")
385 .parameters(p1, p2)
386 .clause(
387 personView.call(p1),
388 personView.call(p2),
389 not(friendMustView.call(p1, p2))
390 )
391 .build();
392 321
393 var store = ModelStore.builder() 322 var store = ModelStore.builder()
394 .symbols(person, friend) 323 .symbols(person, friend)
395 .with(ViatraModelQuery.ADAPTER) 324 .with(ViatraModelQueryAdapter.builder()
396 .defaultHint(hint) 325 .defaultHint(hint)
397 .queries(predicate) 326 .queries(predicate))
398 .build(); 327 .build();
399 328
400 var model = store.createEmptyModel(); 329 var model = store.createEmptyModel();
401 var personInterpretation = model.getInterpretation(person); 330 var personInterpretation = model.getInterpretation(person);
402 var friendInterpretation = model.getInterpretation(friend); 331 var friendInterpretation = model.getInterpretation(friend);
403 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 332 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
404 var predicateResultSet = queryEngine.getResultSet(predicate); 333 var predicateResultSet = queryEngine.getResultSet(predicate);
405 334
406 personInterpretation.put(Tuple.of(0), true); 335 personInterpretation.put(Tuple.of(0), true);
@@ -428,44 +357,28 @@ class QueryTest {
428 357
429 @QueryEngineTest 358 @QueryEngineTest
430 void negativePatternCallTest(QueryEvaluationHint hint) { 359 void negativePatternCallTest(QueryEvaluationHint hint) {
431 var person = new Symbol<>("Person", 1, Boolean.class, false); 360 var friendPredicate = Query.of("Friend", (builder, p1, p2) -> builder.clause(
432 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 361 personView.call(p1),
433 var personView = new KeyOnlyRelationView<>(person); 362 personView.call(p2),
434 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 363 friendMustView.call(p1, p2)
435 364 ));
436 var p1 = Variable.of("p1"); 365 var predicate = Query.of("NegativePatternCall", (builder, p3, p4) -> builder.clause(
437 var p2 = Variable.of("p2"); 366 personView.call(p3),
438 var friendPredicate = Dnf.builder("RelationConstraint") 367 personView.call(p4),
439 .parameters(p1, p2) 368 not(friendPredicate.call(p3, p4))
440 .clause( 369 ));
441 personView.call(p1),
442 personView.call(p2),
443 friendMustView.call(p1, p2)
444 )
445 .build();
446
447 var p3 = Variable.of("p3");
448 var p4 = Variable.of("p4");
449 var predicate = Query.builder("NegativePatternCall")
450 .parameters(p3, p4)
451 .clause(
452 personView.call(p3),
453 personView.call(p4),
454 not(friendPredicate.call(p3, p4))
455 )
456 .build();
457 370
458 var store = ModelStore.builder() 371 var store = ModelStore.builder()
459 .symbols(person, friend) 372 .symbols(person, friend)
460 .with(ViatraModelQuery.ADAPTER) 373 .with(ViatraModelQueryAdapter.builder()
461 .defaultHint(hint) 374 .defaultHint(hint)
462 .queries(predicate) 375 .queries(predicate))
463 .build(); 376 .build();
464 377
465 var model = store.createEmptyModel(); 378 var model = store.createEmptyModel();
466 var personInterpretation = model.getInterpretation(person); 379 var personInterpretation = model.getInterpretation(person);
467 var friendInterpretation = model.getInterpretation(friend); 380 var friendInterpretation = model.getInterpretation(friend);
468 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 381 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
469 var predicateResultSet = queryEngine.getResultSet(predicate); 382 var predicateResultSet = queryEngine.getResultSet(predicate);
470 383
471 personInterpretation.put(Tuple.of(0), true); 384 personInterpretation.put(Tuple.of(0), true);
@@ -493,33 +406,22 @@ class QueryTest {
493 406
494 @QueryEngineTest 407 @QueryEngineTest
495 void negativeRelationViewWithQuantificationTest(QueryEvaluationHint hint) { 408 void negativeRelationViewWithQuantificationTest(QueryEvaluationHint hint) {
496 var person = new Symbol<>("Person", 1, Boolean.class, false); 409 var predicate = Query.of("Negative", (builder, p1) -> builder.clause(
497 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 410 personView.call(p1),
498 var personView = new KeyOnlyRelationView<>(person); 411 not(friendMustView.call(p1, Variable.of()))
499 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 412 ));
500
501 var p1 = Variable.of("p1");
502 var p2 = Variable.of("p2");
503
504 var predicate = Query.builder("Count")
505 .parameters(p1)
506 .clause(
507 personView.call(p1),
508 not(friendMustView.call(p1, p2))
509 )
510 .build();
511 413
512 var store = ModelStore.builder() 414 var store = ModelStore.builder()
513 .symbols(person, friend) 415 .symbols(person, friend)
514 .with(ViatraModelQuery.ADAPTER) 416 .with(ViatraModelQueryAdapter.builder()
515 .defaultHint(hint) 417 .defaultHint(hint)
516 .queries(predicate) 418 .queries(predicate))
517 .build(); 419 .build();
518 420
519 var model = store.createEmptyModel(); 421 var model = store.createEmptyModel();
520 var personInterpretation = model.getInterpretation(person); 422 var personInterpretation = model.getInterpretation(person);
521 var friendInterpretation = model.getInterpretation(friend); 423 var friendInterpretation = model.getInterpretation(friend);
522 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 424 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
523 var predicateResultSet = queryEngine.getResultSet(predicate); 425 var predicateResultSet = queryEngine.getResultSet(predicate);
524 426
525 personInterpretation.put(Tuple.of(0), true); 427 personInterpretation.put(Tuple.of(0), true);
@@ -540,42 +442,27 @@ class QueryTest {
540 442
541 @QueryEngineTest 443 @QueryEngineTest
542 void negativeWithQuantificationTest(QueryEvaluationHint hint) { 444 void negativeWithQuantificationTest(QueryEvaluationHint hint) {
543 var person = new Symbol<>("Person", 1, Boolean.class, false); 445 var called = Query.of("Called", (builder, p1, p2) -> builder.clause(
544 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 446 personView.call(p1),
545 var personView = new KeyOnlyRelationView<>(person); 447 personView.call(p2),
546 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 448 friendMustView.call(p1, p2)
547 449 ));
548 var p1 = Variable.of("p1"); 450 var predicate = Query.of("Negative", (builder, p1) -> builder.clause(
549 var p2 = Variable.of("p2"); 451 personView.call(p1),
550 452 not(called.call(p1, Variable.of()))
551 var called = Dnf.builder("Called") 453 ));
552 .parameters(p1, p2)
553 .clause(
554 personView.call(p1),
555 personView.call(p2),
556 friendMustView.call(p1, p2)
557 )
558 .build();
559
560 var predicate = Query.builder("Count")
561 .parameters(p1)
562 .clause(
563 personView.call(p1),
564 not(called.call(p1, p2))
565 )
566 .build();
567 454
568 var store = ModelStore.builder() 455 var store = ModelStore.builder()
569 .symbols(person, friend) 456 .symbols(person, friend)
570 .with(ViatraModelQuery.ADAPTER) 457 .with(ViatraModelQueryAdapter.builder()
571 .defaultHint(hint) 458 .defaultHint(hint)
572 .queries(predicate) 459 .queries(predicate))
573 .build(); 460 .build();
574 461
575 var model = store.createEmptyModel(); 462 var model = store.createEmptyModel();
576 var personInterpretation = model.getInterpretation(person); 463 var personInterpretation = model.getInterpretation(person);
577 var friendInterpretation = model.getInterpretation(friend); 464 var friendInterpretation = model.getInterpretation(friend);
578 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 465 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
579 var predicateResultSet = queryEngine.getResultSet(predicate); 466 var predicateResultSet = queryEngine.getResultSet(predicate);
580 467
581 personInterpretation.put(Tuple.of(0), true); 468 personInterpretation.put(Tuple.of(0), true);
@@ -596,33 +483,23 @@ class QueryTest {
596 483
597 @QueryEngineTest 484 @QueryEngineTest
598 void transitiveRelationViewTest(QueryEvaluationHint hint) { 485 void transitiveRelationViewTest(QueryEvaluationHint hint) {
599 var person = new Symbol<>("Person", 1, Boolean.class, false); 486 var predicate = Query.of("Transitive", (builder, p1, p2) -> builder.clause(
600 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 487 personView.call(p1),
601 var personView = new KeyOnlyRelationView<>(person); 488 personView.call(p2),
602 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 489 friendMustView.callTransitive(p1, p2)
603 490 ));
604 var p1 = Variable.of("p1");
605 var p2 = Variable.of("p2");
606 var predicate = Query.builder("TransitivePatternCall")
607 .parameters(p1, p2)
608 .clause(
609 personView.call(p1),
610 personView.call(p2),
611 friendMustView.callTransitive(p1, p2)
612 )
613 .build();
614 491
615 var store = ModelStore.builder() 492 var store = ModelStore.builder()
616 .symbols(person, friend) 493 .symbols(person, friend)
617 .with(ViatraModelQuery.ADAPTER) 494 .with(ViatraModelQueryAdapter.builder()
618 .defaultHint(hint) 495 .defaultHint(hint)
619 .queries(predicate) 496 .queries(predicate))
620 .build(); 497 .build();
621 498
622 var model = store.createEmptyModel(); 499 var model = store.createEmptyModel();
623 var personInterpretation = model.getInterpretation(person); 500 var personInterpretation = model.getInterpretation(person);
624 var friendInterpretation = model.getInterpretation(friend); 501 var friendInterpretation = model.getInterpretation(friend);
625 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 502 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
626 var predicateResultSet = queryEngine.getResultSet(predicate); 503 var predicateResultSet = queryEngine.getResultSet(predicate);
627 504
628 personInterpretation.put(Tuple.of(0), true); 505 personInterpretation.put(Tuple.of(0), true);
@@ -649,44 +526,28 @@ class QueryTest {
649 526
650 @QueryEngineTest 527 @QueryEngineTest
651 void transitivePatternCallTest(QueryEvaluationHint hint) { 528 void transitivePatternCallTest(QueryEvaluationHint hint) {
652 var person = new Symbol<>("Person", 1, Boolean.class, false); 529 var called = Query.of("Called", (builder, p1, p2) -> builder.clause(
653 var friend = new Symbol<>("friend", 2, TruthValue.class, TruthValue.FALSE); 530 personView.call(p1),
654 var personView = new KeyOnlyRelationView<>(person); 531 personView.call(p2),
655 var friendMustView = new FilteredRelationView<>(friend, "must", TruthValue::must); 532 friendMustView.call(p1, p2)
656 533 ));
657 var p1 = Variable.of("p1"); 534 var predicate = Query.of("Transitive", (builder, p1, p2) -> builder.clause(
658 var p2 = Variable.of("p2"); 535 personView.call(p1),
659 var friendPredicate = Dnf.builder("RelationConstraint") 536 personView.call(p2),
660 .parameters(p1, p2) 537 called.callTransitive(p1, p2)
661 .clause( 538 ));
662 personView.call(p1),
663 personView.call(p2),
664 friendMustView.call(p1, p2)
665 )
666 .build();
667
668 var p3 = Variable.of("p3");
669 var p4 = Variable.of("p4");
670 var predicate = Query.builder("TransitivePatternCall")
671 .parameters(p3, p4)
672 .clause(
673 personView.call(p3),
674 personView.call(p4),
675 friendPredicate.callTransitive(p3, p4)
676 )
677 .build();
678 539
679 var store = ModelStore.builder() 540 var store = ModelStore.builder()
680 .symbols(person, friend) 541 .symbols(person, friend)
681 .with(ViatraModelQuery.ADAPTER) 542 .with(ViatraModelQueryAdapter.builder()
682 .defaultHint(hint) 543 .defaultHint(hint)
683 .queries(predicate) 544 .queries(predicate))
684 .build(); 545 .build();
685 546
686 var model = store.createEmptyModel(); 547 var model = store.createEmptyModel();
687 var personInterpretation = model.getInterpretation(person); 548 var personInterpretation = model.getInterpretation(person);
688 var friendInterpretation = model.getInterpretation(friend); 549 var friendInterpretation = model.getInterpretation(friend);
689 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 550 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
690 var predicateResultSet = queryEngine.getResultSet(predicate); 551 var predicateResultSet = queryEngine.getResultSet(predicate);
691 552
692 personInterpretation.put(Tuple.of(0), true); 553 personInterpretation.put(Tuple.of(0), true);
@@ -713,33 +574,26 @@ class QueryTest {
713 574
714 @QueryEngineTest 575 @QueryEngineTest
715 void assumeTest(QueryEvaluationHint hint) { 576 void assumeTest(QueryEvaluationHint hint) {
716 var person = new Symbol<>("Person", 1, Boolean.class, false); 577 var age = Symbol.of("age", 1, Integer.class);
717 var age = new Symbol<>("age", 1, Integer.class, null); 578 var ageView = new FunctionView<>(age);
718 var personView = new KeyOnlyRelationView<>(person); 579
719 var ageView = new FunctionalRelationView<>(age); 580 var query = Query.of("Constraint", (builder, p1) -> builder.clause(Integer.class, (x) -> List.of(
720 581 personView.call(p1),
721 var p1 = Variable.of("p1"); 582 ageView.call(p1, x),
722 var x = Variable.of("x", Integer.class); 583 assume(greaterEq(x, constant(18)))
723 var query = Query.builder("Constraint") 584 )));
724 .parameter(p1)
725 .clause(
726 personView.call(p1),
727 ageView.call(p1, x),
728 assume(greaterEq(x, constant(18)))
729 )
730 .build();
731 585
732 var store = ModelStore.builder() 586 var store = ModelStore.builder()
733 .symbols(person, age) 587 .symbols(person, age)
734 .with(ViatraModelQuery.ADAPTER) 588 .with(ViatraModelQueryAdapter.builder()
735 .defaultHint(hint) 589 .defaultHint(hint)
736 .queries(query) 590 .queries(query))
737 .build(); 591 .build();
738 592
739 var model = store.createEmptyModel(); 593 var model = store.createEmptyModel();
740 var personInterpretation = model.getInterpretation(person); 594 var personInterpretation = model.getInterpretation(person);
741 var ageInterpretation = model.getInterpretation(age); 595 var ageInterpretation = model.getInterpretation(age);
742 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 596 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
743 var queryResultSet = queryEngine.getResultSet(query); 597 var queryResultSet = queryEngine.getResultSet(query);
744 598
745 personInterpretation.put(Tuple.of(0), true); 599 personInterpretation.put(Tuple.of(0), true);
@@ -758,20 +612,17 @@ class QueryTest {
758 612
759 @Test 613 @Test
760 void alwaysFalseTest() { 614 void alwaysFalseTest() {
761 var person = new Symbol<>("Person", 1, Boolean.class, false); 615 var predicate = Query.of("AlwaysFalse", builder -> builder.parameter("p1"));
762
763 var p1 = Variable.of("p1");
764 var predicate = Query.builder("AlwaysFalse").parameters(p1).build();
765 616
766 var store = ModelStore.builder() 617 var store = ModelStore.builder()
767 .symbols(person) 618 .symbols(person)
768 .with(ViatraModelQuery.ADAPTER) 619 .with(ViatraModelQueryAdapter.builder()
769 .queries(predicate) 620 .queries(predicate))
770 .build(); 621 .build();
771 622
772 var model = store.createEmptyModel(); 623 var model = store.createEmptyModel();
773 var personInterpretation = model.getInterpretation(person); 624 var personInterpretation = model.getInterpretation(person);
774 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 625 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
775 var predicateResultSet = queryEngine.getResultSet(predicate); 626 var predicateResultSet = queryEngine.getResultSet(predicate);
776 627
777 personInterpretation.put(Tuple.of(0), true); 628 personInterpretation.put(Tuple.of(0), true);
@@ -781,17 +632,4 @@ class QueryTest {
781 queryEngine.flushChanges(); 632 queryEngine.flushChanges();
782 assertResults(Map.of(), predicateResultSet); 633 assertResults(Map.of(), predicateResultSet);
783 } 634 }
784
785 @Test
786 void alwaysTrueTest() {
787 var person = new Symbol<>("Person", 1, Boolean.class, false);
788
789 var p1 = Variable.of("p1");
790 var predicate = Query.builder("AlwaysTrue").parameters(p1).clause().build();
791
792 var storeBuilder = ModelStore.builder().symbols(person);
793 var queryBuilder = storeBuilder.with(ViatraModelQuery.ADAPTER);
794
795 assertThrows(IllegalArgumentException.class, () -> queryBuilder.queries(predicate));
796 }
797} 635}
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTransactionTest.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTransactionTest.java
index abd49341..66f043c6 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTransactionTest.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTransactionTest.java
@@ -1,15 +1,21 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra; 6package tools.refinery.store.query.viatra;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 8import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
4import org.junit.jupiter.api.Disabled; 9import org.junit.jupiter.api.Disabled;
5import org.junit.jupiter.api.Test; 10import org.junit.jupiter.api.Test;
6import tools.refinery.store.model.ModelStore; 11import tools.refinery.store.model.ModelStore;
7import tools.refinery.store.query.ModelQuery; 12import tools.refinery.store.query.ModelQueryAdapter;
8import tools.refinery.store.query.dnf.Query; 13import tools.refinery.store.query.dnf.Query;
9import tools.refinery.store.query.term.Variable; 14import tools.refinery.store.query.dnf.RelationalQuery;
10import tools.refinery.store.query.view.FilteredRelationView; 15import tools.refinery.store.query.view.AnySymbolView;
11import tools.refinery.store.query.view.FunctionalRelationView; 16import tools.refinery.store.query.view.FilteredView;
12import tools.refinery.store.query.view.KeyOnlyRelationView; 17import tools.refinery.store.query.view.FunctionView;
18import tools.refinery.store.query.view.KeyOnlyView;
13import tools.refinery.store.representation.Symbol; 19import tools.refinery.store.representation.Symbol;
14import tools.refinery.store.tuple.Tuple; 20import tools.refinery.store.tuple.Tuple;
15 21
@@ -22,26 +28,24 @@ import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertNull
22import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertResults; 28import static tools.refinery.store.query.viatra.tests.QueryAssertions.assertResults;
23 29
24class QueryTransactionTest { 30class QueryTransactionTest {
31 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
32 private static final Symbol<Integer> age = Symbol.of("age", 1, Integer.class);
33 private static final AnySymbolView personView = new KeyOnlyView<>(person);
34 private static final AnySymbolView ageView = new FunctionView<>(age);
35 private static final RelationalQuery predicate = Query.of("TypeConstraint", (builder, p1) ->
36 builder.clause(personView.call(p1)));
37
25 @Test 38 @Test
26 void flushTest() { 39 void flushTest() {
27 var person = new Symbol<>("Person", 1, Boolean.class, false);
28 var personView = new KeyOnlyRelationView<>(person);
29
30 var p1 = Variable.of("p1");
31 var predicate = Query.builder("TypeConstraint")
32 .parameters(p1)
33 .clause(personView.call(p1))
34 .build();
35
36 var store = ModelStore.builder() 40 var store = ModelStore.builder()
37 .symbols(person) 41 .symbols(person)
38 .with(ViatraModelQuery.ADAPTER) 42 .with(ViatraModelQueryAdapter.builder()
39 .queries(predicate) 43 .queries(predicate))
40 .build(); 44 .build();
41 45
42 var model = store.createEmptyModel(); 46 var model = store.createEmptyModel();
43 var personInterpretation = model.getInterpretation(person); 47 var personInterpretation = model.getInterpretation(person);
44 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 48 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
45 var predicateResultSet = queryEngine.getResultSet(predicate); 49 var predicateResultSet = queryEngine.getResultSet(predicate);
46 50
47 assertResults(Map.of( 51 assertResults(Map.of(
@@ -95,25 +99,16 @@ class QueryTransactionTest {
95 99
96 @Test 100 @Test
97 void localSearchTest() { 101 void localSearchTest() {
98 var person = new Symbol<>("Person", 1, Boolean.class, false);
99 var personView = new KeyOnlyRelationView<>(person);
100
101 var p1 = Variable.of("p1");
102 var predicate = Query.builder("TypeConstraint")
103 .parameters(p1)
104 .clause(personView.call(p1))
105 .build();
106
107 var store = ModelStore.builder() 102 var store = ModelStore.builder()
108 .symbols(person) 103 .symbols(person)
109 .with(ViatraModelQuery.ADAPTER) 104 .with(ViatraModelQueryAdapter.builder()
110 .defaultHint(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.DEFAULT_SEARCH)) 105 .defaultHint(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.DEFAULT_SEARCH))
111 .queries(predicate) 106 .queries(predicate))
112 .build(); 107 .build();
113 108
114 var model = store.createEmptyModel(); 109 var model = store.createEmptyModel();
115 var personInterpretation = model.getInterpretation(person); 110 var personInterpretation = model.getInterpretation(person);
116 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 111 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
117 var predicateResultSet = queryEngine.getResultSet(predicate); 112 var predicateResultSet = queryEngine.getResultSet(predicate);
118 113
119 assertResults(Map.of( 114 assertResults(Map.of(
@@ -149,26 +144,18 @@ class QueryTransactionTest {
149 144
150 @Test 145 @Test
151 void unrelatedChangesTest() { 146 void unrelatedChangesTest() {
152 var person = new Symbol<>("Person", 1, Boolean.class, false); 147 var asset = Symbol.of("Asset", 1);
153 var asset = new Symbol<>("Asset", 1, Boolean.class, false);
154 var personView = new KeyOnlyRelationView<>(person);
155
156 var p1 = Variable.of("p1");
157 var predicate = Query.builder("TypeConstraint")
158 .parameters(p1)
159 .clause(personView.call(p1))
160 .build();
161 148
162 var store = ModelStore.builder() 149 var store = ModelStore.builder()
163 .symbols(person, asset) 150 .symbols(person, asset)
164 .with(ViatraModelQuery.ADAPTER) 151 .with(ViatraModelQueryAdapter.builder()
165 .queries(predicate) 152 .queries(predicate))
166 .build(); 153 .build();
167 154
168 var model = store.createEmptyModel(); 155 var model = store.createEmptyModel();
169 var personInterpretation = model.getInterpretation(person); 156 var personInterpretation = model.getInterpretation(person);
170 var assetInterpretation = model.getInterpretation(asset); 157 var assetInterpretation = model.getInterpretation(asset);
171 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 158 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
172 var predicateResultSet = queryEngine.getResultSet(predicate); 159 var predicateResultSet = queryEngine.getResultSet(predicate);
173 160
174 assertFalse(queryEngine.hasPendingChanges()); 161 assertFalse(queryEngine.hasPendingChanges());
@@ -222,32 +209,21 @@ class QueryTransactionTest {
222 209
223 @Test 210 @Test
224 void tupleChangingChangeTest() { 211 void tupleChangingChangeTest() {
225 var person = new Symbol<>("Person", 1, Boolean.class, false); 212 var query = Query.of("TypeConstraint", Integer.class, (builder, p1, output) -> builder.clause(
226 var age = new Symbol<>("age", 1, Integer.class, null); 213 personView.call(p1),
227 var personView = new KeyOnlyRelationView<>(person); 214 ageView.call(p1, output)
228 var ageView = new FunctionalRelationView<>(age); 215 ));
229
230 var p1 = Variable.of("p1");
231 var x = Variable.of("x", Integer.class);
232 var query = Query.builder()
233 .parameter(p1)
234 .output(x)
235 .clause(
236 personView.call(p1),
237 ageView.call(p1, x)
238 )
239 .build();
240 216
241 var store = ModelStore.builder() 217 var store = ModelStore.builder()
242 .symbols(person, age) 218 .symbols(person, age)
243 .with(ViatraModelQuery.ADAPTER) 219 .with(ViatraModelQueryAdapter.builder()
244 .query(query) 220 .queries(query))
245 .build(); 221 .build();
246 222
247 var model = store.createEmptyModel(); 223 var model = store.createEmptyModel();
248 var personInterpretation = model.getInterpretation(person); 224 var personInterpretation = model.getInterpretation(person);
249 var ageInterpretation = model.getInterpretation(age); 225 var ageInterpretation = model.getInterpretation(age);
250 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 226 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
251 var queryResultSet = queryEngine.getResultSet(query); 227 var queryResultSet = queryEngine.getResultSet(query);
252 228
253 personInterpretation.put(Tuple.of(0), true); 229 personInterpretation.put(Tuple.of(0), true);
@@ -270,31 +246,23 @@ class QueryTransactionTest {
270 246
271 @Test 247 @Test
272 void tuplePreservingUnchangedTest() { 248 void tuplePreservingUnchangedTest() {
273 var person = new Symbol<>("Person", 1, Boolean.class, false); 249 var adultView = new FilteredView<>(age, "adult", n -> n != null && n >= 18);
274 var age = new Symbol<>("age", 1, Integer.class, null); 250
275 var personView = new KeyOnlyRelationView<>(person); 251 var query = Query.of("TypeConstraint", (builder, p1) -> builder.clause(
276 var adultView = new FilteredRelationView<>(age, "adult", n -> n != null && n >= 18); 252 personView.call(p1),
277 253 adultView.call(p1)
278 var p1 = Variable.of("p1"); 254 ));
279 var x = Variable.of("x", Integer.class);
280 var query = Query.builder()
281 .parameter(p1)
282 .clause(
283 personView.call(p1),
284 adultView.call(p1)
285 )
286 .build();
287 255
288 var store = ModelStore.builder() 256 var store = ModelStore.builder()
289 .symbols(person, age) 257 .symbols(person, age)
290 .with(ViatraModelQuery.ADAPTER) 258 .with(ViatraModelQueryAdapter.builder()
291 .query(query) 259 .queries(query))
292 .build(); 260 .build();
293 261
294 var model = store.createEmptyModel(); 262 var model = store.createEmptyModel();
295 var personInterpretation = model.getInterpretation(person); 263 var personInterpretation = model.getInterpretation(person);
296 var ageInterpretation = model.getInterpretation(age); 264 var ageInterpretation = model.getInterpretation(age);
297 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 265 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
298 var queryResultSet = queryEngine.getResultSet(query); 266 var queryResultSet = queryEngine.getResultSet(query);
299 267
300 personInterpretation.put(Tuple.of(0), true); 268 personInterpretation.put(Tuple.of(0), true);
@@ -318,24 +286,15 @@ class QueryTransactionTest {
318 @Disabled("TODO Fix DiffCursor") 286 @Disabled("TODO Fix DiffCursor")
319 @Test 287 @Test
320 void commitAfterFlushTest() { 288 void commitAfterFlushTest() {
321 var person = new Symbol<>("Person", 1, Boolean.class, false);
322 var personView = new KeyOnlyRelationView<>(person);
323
324 var p1 = Variable.of("p1");
325 var predicate = Query.builder("TypeConstraint")
326 .parameters(p1)
327 .clause(personView.call(p1))
328 .build();
329
330 var store = ModelStore.builder() 289 var store = ModelStore.builder()
331 .symbols(person) 290 .symbols(person)
332 .with(ViatraModelQuery.ADAPTER) 291 .with(ViatraModelQueryAdapter.builder()
333 .queries(predicate) 292 .queries(predicate))
334 .build(); 293 .build();
335 294
336 var model = store.createEmptyModel(); 295 var model = store.createEmptyModel();
337 var personInterpretation = model.getInterpretation(person); 296 var personInterpretation = model.getInterpretation(person);
338 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 297 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
339 var predicateResultSet = queryEngine.getResultSet(predicate); 298 var predicateResultSet = queryEngine.getResultSet(predicate);
340 299
341 personInterpretation.put(Tuple.of(0), true); 300 personInterpretation.put(Tuple.of(0), true);
@@ -376,24 +335,15 @@ class QueryTransactionTest {
376 @Disabled("TODO Fix DiffCursor") 335 @Disabled("TODO Fix DiffCursor")
377 @Test 336 @Test
378 void commitWithoutFlushTest() { 337 void commitWithoutFlushTest() {
379 var person = new Symbol<>("Person", 1, Boolean.class, false);
380 var personView = new KeyOnlyRelationView<>(person);
381
382 var p1 = Variable.of("p1");
383 var predicate = Query.builder("TypeConstraint")
384 .parameters(p1)
385 .clause(personView.call(p1))
386 .build();
387
388 var store = ModelStore.builder() 338 var store = ModelStore.builder()
389 .symbols(person) 339 .symbols(person)
390 .with(ViatraModelQuery.ADAPTER) 340 .with(ViatraModelQueryAdapter.builder()
391 .queries(predicate) 341 .queries(predicate))
392 .build(); 342 .build();
393 343
394 var model = store.createEmptyModel(); 344 var model = store.createEmptyModel();
395 var personInterpretation = model.getInterpretation(person); 345 var personInterpretation = model.getInterpretation(person);
396 var queryEngine = model.getAdapter(ModelQuery.ADAPTER); 346 var queryEngine = model.getAdapter(ModelQueryAdapter.class);
397 var predicateResultSet = queryEngine.getResultSet(predicate); 347 var predicateResultSet = queryEngine.getResultSet(predicate);
398 348
399 personInterpretation.put(Tuple.of(0), true); 349 personInterpretation.put(Tuple.of(0), true);
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperatorTest.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperatorTest.java
deleted file mode 100644
index 20dad543..00000000
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperatorTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
1package tools.refinery.store.query.viatra.internal.cardinality;
2
3import org.junit.jupiter.api.BeforeEach;
4import org.junit.jupiter.api.Test;
5import tools.refinery.store.representation.cardinality.UpperCardinalities;
6import tools.refinery.store.representation.cardinality.UpperCardinality;
7
8import static org.hamcrest.MatcherAssert.assertThat;
9import static org.hamcrest.Matchers.equalTo;
10
11class UpperCardinalitySumAggregationOperatorTest {
12 private UpperCardinalitySumAggregationOperator.Accumulator accumulator;
13
14 @BeforeEach
15 void beforeEach() {
16 accumulator = UpperCardinalitySumAggregationOperator.INSTANCE.createNeutral();
17 }
18
19 @Test
20 void emptyAggregationTest() {
21 assertResult(UpperCardinality.of(0));
22 }
23
24 @Test
25 void singleBoundedTest() {
26 insert(UpperCardinality.of(3));
27 assertResult(UpperCardinality.of(3));
28 }
29
30 @Test
31 void multipleBoundedTest() {
32 insert(UpperCardinality.of(2));
33 insert(UpperCardinality.of(3));
34 assertResult(UpperCardinality.of(5));
35 }
36
37 @Test
38 void singleUnboundedTest() {
39 insert(UpperCardinalities.UNBOUNDED);
40 assertResult(UpperCardinalities.UNBOUNDED);
41 }
42
43 @Test
44 void multipleUnboundedTest() {
45 insert(UpperCardinalities.UNBOUNDED);
46 insert(UpperCardinalities.UNBOUNDED);
47 assertResult(UpperCardinalities.UNBOUNDED);
48 }
49
50 @Test
51 void removeBoundedTest() {
52 insert(UpperCardinality.of(2));
53 insert(UpperCardinality.of(3));
54 remove(UpperCardinality.of(2));
55 assertResult(UpperCardinality.of(3));
56 }
57
58 @Test
59 void removeAllUnboundedTest() {
60 insert(UpperCardinalities.UNBOUNDED);
61 insert(UpperCardinality.of(3));
62 remove(UpperCardinalities.UNBOUNDED);
63 assertResult(UpperCardinality.of(3));
64 }
65
66 @Test
67 void removeSomeUnboundedTest() {
68 insert(UpperCardinalities.UNBOUNDED);
69 insert(UpperCardinalities.UNBOUNDED);
70 insert(UpperCardinality.of(3));
71 remove(UpperCardinalities.UNBOUNDED);
72 assertResult(UpperCardinalities.UNBOUNDED);
73 }
74
75 private void insert(UpperCardinality value) {
76 accumulator = UpperCardinalitySumAggregationOperator.INSTANCE.update(accumulator, value, true);
77 }
78
79 private void remove(UpperCardinality value) {
80 accumulator = UpperCardinalitySumAggregationOperator.INSTANCE.update(accumulator, value, false);
81 }
82
83 private void assertResult(UpperCardinality expected) {
84 var result = UpperCardinalitySumAggregationOperator.INSTANCE.getAggregate(accumulator);
85 assertThat(result, equalTo(expected));
86 }
87}
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtilsTest.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtilsTest.java
new file mode 100644
index 00000000..968c6c5e
--- /dev/null
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/matcher/MatcherUtilsTest.java
@@ -0,0 +1,239 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.viatra.internal.matcher;
7
8import org.eclipse.viatra.query.runtime.matchers.tuple.*;
9import org.junit.jupiter.api.Test;
10import tools.refinery.store.tuple.Tuple;
11import tools.refinery.store.tuple.*;
12
13import java.util.List;
14
15import static org.hamcrest.MatcherAssert.assertThat;
16import static org.hamcrest.Matchers.*;
17import static org.junit.jupiter.api.Assertions.assertThrows;
18
19class MatcherUtilsTest {
20 @Test
21 void toViatra0Test() {
22 var viatraTuple = MatcherUtils.toViatraTuple(Tuple.of());
23 assertThat(viatraTuple.getSize(), is(0));
24 assertThat(viatraTuple, instanceOf(FlatTuple0.class));
25 }
26
27 @Test
28 void toViatra1Test() {
29 var viatraTuple = MatcherUtils.toViatraTuple(Tuple.of(2));
30 assertThat(viatraTuple.getSize(), is(1));
31 assertThat(viatraTuple.get(0), is(Tuple.of(2)));
32 assertThat(viatraTuple, instanceOf(FlatTuple1.class));
33 }
34
35 @Test
36 void toViatra2Test() {
37 var viatraTuple = MatcherUtils.toViatraTuple(Tuple.of(2, 3));
38 assertThat(viatraTuple.getSize(), is(2));
39 assertThat(viatraTuple.get(0), is(Tuple.of(2)));
40 assertThat(viatraTuple.get(1), is(Tuple.of(3)));
41 assertThat(viatraTuple, instanceOf(FlatTuple2.class));
42 }
43
44 @Test
45 void toViatra3Test() {
46 var viatraTuple = MatcherUtils.toViatraTuple(Tuple.of(2, 3, 5));
47 assertThat(viatraTuple.getSize(), is(3));
48 assertThat(viatraTuple.get(0), is(Tuple.of(2)));
49 assertThat(viatraTuple.get(1), is(Tuple.of(3)));
50 assertThat(viatraTuple.get(2), is(Tuple.of(5)));
51 assertThat(viatraTuple, instanceOf(FlatTuple3.class));
52 }
53
54 @Test
55 void toViatra4Test() {
56 var viatraTuple = MatcherUtils.toViatraTuple(Tuple.of(2, 3, 5, 8));
57 assertThat(viatraTuple.getSize(), is(4));
58 assertThat(viatraTuple.get(0), is(Tuple.of(2)));
59 assertThat(viatraTuple.get(1), is(Tuple.of(3)));
60 assertThat(viatraTuple.get(2), is(Tuple.of(5)));
61 assertThat(viatraTuple.get(3), is(Tuple.of(8)));
62 assertThat(viatraTuple, instanceOf(FlatTuple4.class));
63 }
64
65 @Test
66 void toViatra5Test() {
67 var viatraTuple = MatcherUtils.toViatraTuple(Tuple.of(2, 3, 5, 8, 13));
68 assertThat(viatraTuple.getSize(), is(5));
69 assertThat(viatraTuple.get(0), is(Tuple.of(2)));
70 assertThat(viatraTuple.get(1), is(Tuple.of(3)));
71 assertThat(viatraTuple.get(2), is(Tuple.of(5)));
72 assertThat(viatraTuple.get(3), is(Tuple.of(8)));
73 assertThat(viatraTuple.get(4), is(Tuple.of(13)));
74 assertThat(viatraTuple, instanceOf(FlatTuple.class));
75 }
76
77 @Test
78 void toRefinery0Test() {
79 var refineryTuple = MatcherUtils.toRefineryTuple(Tuples.flatTupleOf());
80 assertThat(refineryTuple.getSize(), is(0));
81 assertThat(refineryTuple, instanceOf(Tuple0.class));
82 }
83
84 @Test
85 void toRefinery1Test() {
86 var refineryTuple = MatcherUtils.toRefineryTuple(Tuples.flatTupleOf(Tuple.of(2)));
87 assertThat(refineryTuple.getSize(), is(1));
88 assertThat(refineryTuple.get(0), is(2));
89 assertThat(refineryTuple, instanceOf(Tuple1.class));
90 }
91
92 @Test
93 void toRefinery2Test() {
94 var refineryTuple = MatcherUtils.toRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), Tuple.of(3)));
95 assertThat(refineryTuple.getSize(), is(2));
96 assertThat(refineryTuple.get(0), is(2));
97 assertThat(refineryTuple.get(1), is(3));
98 assertThat(refineryTuple, instanceOf(Tuple2.class));
99 }
100
101 @Test
102 void toRefinery3Test() {
103 var refineryTuple = MatcherUtils.toRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), Tuple.of(3), Tuple.of(5)));
104 assertThat(refineryTuple.getSize(), is(3));
105 assertThat(refineryTuple.get(0), is(2));
106 assertThat(refineryTuple.get(1), is(3));
107 assertThat(refineryTuple.get(2), is(5));
108 assertThat(refineryTuple, instanceOf(Tuple3.class));
109 }
110
111 @Test
112 void toRefinery4Test() {
113 var refineryTuple = MatcherUtils.toRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), Tuple.of(3), Tuple.of(5),
114 Tuple.of(8)));
115 assertThat(refineryTuple.getSize(), is(4));
116 assertThat(refineryTuple.get(0), is(2));
117 assertThat(refineryTuple.get(1), is(3));
118 assertThat(refineryTuple.get(2), is(5));
119 assertThat(refineryTuple.get(3), is(8));
120 assertThat(refineryTuple, instanceOf(Tuple4.class));
121 }
122
123 @Test
124 void toRefinery5Test() {
125 var refineryTuple = MatcherUtils.toRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), Tuple.of(3), Tuple.of(5),
126 Tuple.of(8), Tuple.of(13)));
127 assertThat(refineryTuple.getSize(), is(5));
128 assertThat(refineryTuple.get(0), is(2));
129 assertThat(refineryTuple.get(1), is(3));
130 assertThat(refineryTuple.get(2), is(5));
131 assertThat(refineryTuple.get(3), is(8));
132 assertThat(refineryTuple.get(4), is(13));
133 assertThat(refineryTuple, instanceOf(TupleN.class));
134 }
135
136 @Test
137 void toRefineryInvalidValueTest() {
138 var viatraTuple = Tuples.flatTupleOf(Tuple.of(2), -98);
139 assertThrows(IllegalArgumentException.class, () -> MatcherUtils.toRefineryTuple(viatraTuple));
140 }
141
142 @Test
143 void keyToRefinery0Test() {
144 var refineryTuple = MatcherUtils.keyToRefineryTuple(Tuples.flatTupleOf(-99));
145 assertThat(refineryTuple.getSize(), is(0));
146 assertThat(refineryTuple, instanceOf(Tuple0.class));
147 }
148
149 @Test
150 void keyToRefinery1Test() {
151 var refineryTuple = MatcherUtils.keyToRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), -99));
152 assertThat(refineryTuple.getSize(), is(1));
153 assertThat(refineryTuple.get(0), is(2));
154 assertThat(refineryTuple, instanceOf(Tuple1.class));
155 }
156
157 @Test
158 void keyToRefinery2Test() {
159 var refineryTuple = MatcherUtils.keyToRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), Tuple.of(3), -99));
160 assertThat(refineryTuple.getSize(), is(2));
161 assertThat(refineryTuple.get(0), is(2));
162 assertThat(refineryTuple.get(1), is(3));
163 assertThat(refineryTuple, instanceOf(Tuple2.class));
164 }
165
166 @Test
167 void keyToRefinery3Test() {
168 var refineryTuple = MatcherUtils.keyToRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), Tuple.of(3), Tuple.of(5),
169 -99));
170 assertThat(refineryTuple.getSize(), is(3));
171 assertThat(refineryTuple.get(0), is(2));
172 assertThat(refineryTuple.get(1), is(3));
173 assertThat(refineryTuple.get(2), is(5));
174 assertThat(refineryTuple, instanceOf(Tuple3.class));
175 }
176
177 @Test
178 void keyToRefinery4Test() {
179 var refineryTuple = MatcherUtils.keyToRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), Tuple.of(3), Tuple.of(5),
180 Tuple.of(8), -99));
181 assertThat(refineryTuple.getSize(), is(4));
182 assertThat(refineryTuple.get(0), is(2));
183 assertThat(refineryTuple.get(1), is(3));
184 assertThat(refineryTuple.get(2), is(5));
185 assertThat(refineryTuple.get(3), is(8));
186 assertThat(refineryTuple, instanceOf(Tuple4.class));
187 }
188
189 @Test
190 void keyToRefinery5Test() {
191 var refineryTuple = MatcherUtils.keyToRefineryTuple(Tuples.flatTupleOf(Tuple.of(2), Tuple.of(3), Tuple.of(5),
192 Tuple.of(8), Tuple.of(13), -99));
193 assertThat(refineryTuple.getSize(), is(5));
194 assertThat(refineryTuple.get(0), is(2));
195 assertThat(refineryTuple.get(1), is(3));
196 assertThat(refineryTuple.get(2), is(5));
197 assertThat(refineryTuple.get(3), is(8));
198 assertThat(refineryTuple.get(4), is(13));
199 assertThat(refineryTuple, instanceOf(TupleN.class));
200 }
201
202 @Test
203 void keyToRefineryTooShortTest() {
204 var viatraTuple = Tuples.flatTupleOf();
205 assertThrows(IllegalArgumentException.class, () -> MatcherUtils.keyToRefineryTuple(viatraTuple));
206 }
207
208 @Test
209 void keyToRefineryInvalidValueTest() {
210 var viatraTuple = Tuples.flatTupleOf(Tuple.of(2), -98, -99);
211 assertThrows(IllegalArgumentException.class, () -> MatcherUtils.keyToRefineryTuple(viatraTuple));
212 }
213
214 @Test
215 void getSingleValueTest() {
216 var value = MatcherUtils.getSingleValue(List.of(Tuples.flatTupleOf(Tuple.of(2), -99)));
217 assertThat(value, is(-99));
218 }
219
220 // Static analysis accurately determines that the result is always {@code null}, but we check anyways.
221 @SuppressWarnings("ConstantValue")
222 @Test
223 void getSingleValueNullTest() {
224 var value = MatcherUtils.getSingleValue((Iterable<? extends ITuple>) null);
225 assertThat(value, nullValue());
226 }
227
228 @Test
229 void getSingleValueEmptyTest() {
230 var value = MatcherUtils.getSingleValue(List.of());
231 assertThat(value, nullValue());
232 }
233
234 @Test
235 void getSingleValueMultipleTest() {
236 var viatraTuples = List.of(Tuples.flatTupleOf(Tuple.of(2), -98), Tuples.flatTupleOf(Tuple.of(2), -99));
237 assertThrows(IllegalStateException.class, () -> MatcherUtils.getSingleValue(viatraTuples));
238 }
239}
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryAssertions.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryAssertions.java
index 6f50ec73..7a25cfdc 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryAssertions.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryAssertions.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.tests; 6package tools.refinery.store.query.viatra.tests;
2 7
3import org.junit.jupiter.api.function.Executable; 8import org.junit.jupiter.api.function.Executable;
@@ -42,7 +47,7 @@ public final class QueryAssertions {
42 var cursor = resultSet.getAll(); 47 var cursor = resultSet.getAll();
43 while (cursor.move()) { 48 while (cursor.move()) {
44 var key = cursor.getKey(); 49 var key = cursor.getKey();
45 var previous = actual.put(key.toTuple(), cursor.getValue()); 50 var previous = actual.put(key, cursor.getValue());
46 assertThat("duplicate value for key " + key, previous, nullValue()); 51 assertThat("duplicate value for key " + key, previous, nullValue());
47 } 52 }
48 executables.add(() -> assertThat("results cursor", actual, is(filteredExpected))); 53 executables.add(() -> assertThat("results cursor", actual, is(filteredExpected)));
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryBackendHint.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryBackendHint.java
index b1818a17..dc0e92c8 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryBackendHint.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryBackendHint.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.tests; 6package tools.refinery.store.query.viatra.tests;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 8import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEngineTest.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEngineTest.java
index f129520c..d4f16da7 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEngineTest.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEngineTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.tests; 6package tools.refinery.store.query.viatra.tests;
2 7
3import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEvaluationHintSource.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEvaluationHintSource.java
index a55762e2..9e75d5f3 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEvaluationHintSource.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/tests/QueryEvaluationHintSource.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.viatra.tests; 6package tools.refinery.store.query.viatra.tests;
2 7
3import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; 8import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
diff --git a/subprojects/store-query/build.gradle b/subprojects/store-query/build.gradle
deleted file mode 100644
index 97761936..00000000
--- a/subprojects/store-query/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
1plugins {
2 id 'refinery-java-library'
3 id 'refinery-java-test-fixtures'
4}
5
6dependencies {
7 api project(':refinery-store')
8 testFixturesApi libs.hamcrest
9}
diff --git a/subprojects/store-query/build.gradle.kts b/subprojects/store-query/build.gradle.kts
new file mode 100644
index 00000000..4d8e2605
--- /dev/null
+++ b/subprojects/store-query/build.gradle.kts
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 id("tools.refinery.gradle.java-library")
9 id("tools.refinery.gradle.java-test-fixtures")
10}
11
12dependencies {
13 api(project(":refinery-store"))
14 testFixturesApi(libs.hamcrest)
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/AnyResultSet.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/AnyResultSet.java
index 6d411212..f29bb278 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/AnyResultSet.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/AnyResultSet.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query; 6package tools.refinery.store.query;
2 7
3import tools.refinery.store.query.dnf.AnyQuery; 8import tools.refinery.store.query.dnf.AnyQuery;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/Constraint.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/Constraint.java
index cec4c19f..916fb35c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/Constraint.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/Constraint.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query; 6package tools.refinery.store.query;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
@@ -9,25 +14,27 @@ import java.util.List;
9public interface Constraint { 14public interface Constraint {
10 String name(); 15 String name();
11 16
12 List<Sort> getSorts(); 17 List<Parameter> getParameters();
13 18
14 default int arity() { 19 default int arity() {
15 return getSorts().size(); 20 return getParameters().size();
16 } 21 }
17 22
18 default boolean invalidIndex(int i) { 23 default boolean invalidIndex(int i) {
19 return i < 0 || i >= arity(); 24 return i < 0 || i >= arity();
20 } 25 }
21 26
22 default LiteralReduction getReduction() { 27 default Reduction getReduction() {
23 return LiteralReduction.NOT_REDUCIBLE; 28 return Reduction.NOT_REDUCIBLE;
24 } 29 }
25 30
26 default boolean equals(LiteralEqualityHelper helper, Constraint other) { 31 default boolean equals(LiteralEqualityHelper helper, Constraint other) {
27 return equals(other); 32 return equals(other);
28 } 33 }
29 34
30 String toReferenceString(); 35 default String toReferenceString() {
36 return name();
37 }
31 38
32 default CallLiteral call(CallPolarity polarity, List<Variable> arguments) { 39 default CallLiteral call(CallPolarity polarity, List<Variable> arguments) {
33 return new CallLiteral(polarity, this, arguments); 40 return new CallLiteral(polarity, this, arguments);
@@ -53,13 +60,13 @@ public interface Constraint {
53 return count(List.of(arguments)); 60 return count(List.of(arguments));
54 } 61 }
55 62
56 default <R, T> AssignedValue<R> aggregate(DataVariable<T> inputVariable, Aggregator<R, T> aggregator, 63 default <R, T> AssignedValue<R> aggregateBy(DataVariable<T> inputVariable, Aggregator<R, T> aggregator,
57 List<Variable> arguments) { 64 List<Variable> arguments) {
58 return targetVariable -> new AggregationLiteral<>(targetVariable, aggregator, inputVariable, this, arguments); 65 return targetVariable -> new AggregationLiteral<>(targetVariable, aggregator, inputVariable, this, arguments);
59 } 66 }
60 67
61 default <R, T> AssignedValue<R> aggregate(DataVariable<T> inputVariable, Aggregator<R, T> aggregator, 68 default <R, T> AssignedValue<R> aggregateBy(DataVariable<T> inputVariable, Aggregator<R, T> aggregator,
62 Variable... arguments) { 69 Variable... arguments) {
63 return aggregate(inputVariable, aggregator, List.of(arguments)); 70 return aggregateBy(inputVariable, aggregator, List.of(arguments));
64 } 71 }
65} 72}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/EmptyResultSet.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/EmptyResultSet.java
index 9af73bdd..5361f645 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/EmptyResultSet.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/EmptyResultSet.java
@@ -1,9 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query; 6package tools.refinery.store.query;
2 7
3import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
4import tools.refinery.store.map.Cursors; 9import tools.refinery.store.map.Cursors;
5import tools.refinery.store.query.dnf.Query; 10import tools.refinery.store.query.dnf.Query;
6import tools.refinery.store.tuple.TupleLike; 11import tools.refinery.store.tuple.Tuple;
7 12
8public record EmptyResultSet<T>(ModelQueryAdapter adapter, Query<T> query) implements ResultSet<T> { 13public record EmptyResultSet<T>(ModelQueryAdapter adapter, Query<T> query) implements ResultSet<T> {
9 @Override 14 @Override
@@ -17,13 +22,12 @@ public record EmptyResultSet<T>(ModelQueryAdapter adapter, Query<T> query) imple
17 } 22 }
18 23
19 @Override 24 @Override
20 public T get(TupleLike parameters) { 25 public T get(Tuple parameters) {
21 return query.defaultValue(); 26 return query.defaultValue();
22 } 27 }
23 28
24
25 @Override 29 @Override
26 public Cursor<TupleLike, T> getAll() { 30 public Cursor<Tuple, T> getAll() {
27 return Cursors.empty(); 31 return Cursors.empty();
28 } 32 }
29 33
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQuery.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQuery.java
deleted file mode 100644
index 6a1aeabb..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQuery.java
+++ /dev/null
@@ -1,11 +0,0 @@
1package tools.refinery.store.query;
2
3import tools.refinery.store.adapter.ModelAdapterType;
4
5public final class ModelQuery extends ModelAdapterType<ModelQueryAdapter, ModelQueryStoreAdapter, ModelQueryBuilder> {
6 public static final ModelQuery ADAPTER = new ModelQuery();
7
8 private ModelQuery() {
9 super(ModelQueryAdapter.class, ModelQueryStoreAdapter.class, ModelQueryBuilder.class);
10 }
11}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java
index 2e30fec4..ae3bbcbb 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query; 6package tools.refinery.store.query;
2 7
3import tools.refinery.store.adapter.ModelAdapter; 8import tools.refinery.store.adapter.ModelAdapter;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java
index 4fdc9210..c62a95b5 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query; 6package tools.refinery.store.query;
2 7
3import tools.refinery.store.adapter.ModelAdapterBuilder; 8import tools.refinery.store.adapter.ModelAdapterBuilder;
@@ -21,5 +26,5 @@ public interface ModelQueryBuilder extends ModelAdapterBuilder {
21 ModelQueryBuilder query(AnyQuery query); 26 ModelQueryBuilder query(AnyQuery query);
22 27
23 @Override 28 @Override
24 ModelQueryStoreAdapter createStoreAdapter(ModelStore store); 29 ModelQueryStoreAdapter build(ModelStore store);
25} 30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java
index 514e582b..f0a950a6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java
@@ -1,14 +1,19 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query; 6package tools.refinery.store.query;
2 7
3import tools.refinery.store.adapter.ModelStoreAdapter; 8import tools.refinery.store.adapter.ModelStoreAdapter;
4import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
5import tools.refinery.store.query.dnf.AnyQuery; 10import tools.refinery.store.query.dnf.AnyQuery;
6import tools.refinery.store.query.view.AnyRelationView; 11import tools.refinery.store.query.view.AnySymbolView;
7 12
8import java.util.Collection; 13import java.util.Collection;
9 14
10public interface ModelQueryStoreAdapter extends ModelStoreAdapter { 15public interface ModelQueryStoreAdapter extends ModelStoreAdapter {
11 Collection<AnyRelationView> getRelationViews(); 16 Collection<AnySymbolView> getSymbolViews();
12 17
13 Collection<AnyQuery> getQueries(); 18 Collection<AnyQuery> getQueries();
14 19
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/LiteralReduction.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/Reduction.java
index 146089f6..82c52b04 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/LiteralReduction.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/Reduction.java
@@ -1,6 +1,11 @@
1package tools.refinery.store.query.literal; 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query;
2 7
3public enum LiteralReduction { 8public enum Reduction {
4 /** 9 /**
5 * Signifies that a literal should be preserved in the clause. 10 * Signifies that a literal should be preserved in the clause.
6 */ 11 */
@@ -16,7 +21,7 @@ public enum LiteralReduction {
16 */ 21 */
17 ALWAYS_FALSE; 22 ALWAYS_FALSE;
18 23
19 public LiteralReduction negate() { 24 public Reduction negate() {
20 return switch (this) { 25 return switch (this) {
21 case NOT_REDUCIBLE -> NOT_REDUCIBLE; 26 case NOT_REDUCIBLE -> NOT_REDUCIBLE;
22 case ALWAYS_TRUE -> ALWAYS_FALSE; 27 case ALWAYS_TRUE -> ALWAYS_FALSE;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/ResultSet.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/ResultSet.java
index 3f6bc06f..9ab83172 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/ResultSet.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/ResultSet.java
@@ -1,13 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query; 6package tools.refinery.store.query;
2 7
3import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
4import tools.refinery.store.query.dnf.Query; 9import tools.refinery.store.query.dnf.Query;
5import tools.refinery.store.tuple.TupleLike; 10import tools.refinery.store.tuple.Tuple;
6 11
7public non-sealed interface ResultSet<T> extends AnyResultSet { 12public non-sealed interface ResultSet<T> extends AnyResultSet {
8 Query<T> getQuery(); 13 Query<T> getQuery();
9 14
10 T get(TupleLike parameters); 15 T get(Tuple parameters);
11 16
12 Cursor<TupleLike, T> getAll(); 17 Cursor<Tuple, T> getAll();
13} 18}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AbstractQueryBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AbstractQueryBuilder.java
new file mode 100644
index 00000000..2a3e3ce0
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AbstractQueryBuilder.java
@@ -0,0 +1,175 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf;
7
8import tools.refinery.store.query.dnf.callback.*;
9import tools.refinery.store.query.literal.Literal;
10import tools.refinery.store.query.term.NodeVariable;
11import tools.refinery.store.query.term.ParameterDirection;
12import tools.refinery.store.query.term.Variable;
13
14import java.util.Collection;
15import java.util.List;
16import java.util.Set;
17
18public abstract class AbstractQueryBuilder<T extends AbstractQueryBuilder<T>> {
19 protected final DnfBuilder dnfBuilder;
20
21 protected AbstractQueryBuilder(DnfBuilder dnfBuilder) {
22 this.dnfBuilder = dnfBuilder;
23 }
24
25 protected abstract T self();
26
27 public NodeVariable parameter() {
28 return dnfBuilder.parameter();
29 }
30
31 public NodeVariable parameter(String name) {
32 return dnfBuilder.parameter(name);
33 }
34
35 public NodeVariable parameter(ParameterDirection direction) {
36 return dnfBuilder.parameter(direction);
37 }
38
39 public NodeVariable parameter(String name, ParameterDirection direction) {
40 return dnfBuilder.parameter(name, direction);
41 }
42
43 public T parameter(NodeVariable variable) {
44 dnfBuilder.parameter(variable);
45 return self();
46 }
47
48 public T parameter(NodeVariable variable, ParameterDirection direction) {
49 dnfBuilder.parameter(variable, direction);
50 return self();
51 }
52
53 public T parameters(NodeVariable... variables) {
54 dnfBuilder.parameters(variables);
55 return self();
56 }
57
58 public T parameters(List<NodeVariable> variables) {
59 dnfBuilder.parameters(variables);
60 return self();
61 }
62
63 public T parameters(List<NodeVariable> variables, ParameterDirection direction) {
64 dnfBuilder.parameters(variables, direction);
65 return self();
66 }
67
68 public T symbolicParameters(List<SymbolicParameter> parameters) {
69 dnfBuilder.symbolicParameters(parameters);
70 return self();
71 }
72
73 public T functionalDependencies(Collection<FunctionalDependency<Variable>> functionalDependencies) {
74 dnfBuilder.functionalDependencies(functionalDependencies);
75 return self();
76 }
77
78 public T functionalDependency(FunctionalDependency<Variable> functionalDependency) {
79 dnfBuilder.functionalDependency(functionalDependency);
80 return self();
81 }
82
83 public T functionalDependency(Set<? extends Variable> forEach, Set<? extends Variable> unique) {
84 dnfBuilder.functionalDependency(forEach, unique);
85 return self();
86 }
87
88 public T clause(ClauseCallback0 callback) {
89 dnfBuilder.clause(callback);
90 return self();
91 }
92
93 public T clause(ClauseCallback1Data0 callback) {
94 dnfBuilder.clause(callback);
95 return self();
96 }
97
98 public <U1> T clause(Class<U1> type1, ClauseCallback1Data1<U1> callback) {
99 dnfBuilder.clause(type1, callback);
100 return self();
101 }
102
103 public T clause(ClauseCallback2Data0 callback) {
104 dnfBuilder.clause(callback);
105 return self();
106 }
107
108 public <U1> T clause(Class<U1> type1, ClauseCallback2Data1<U1> callback) {
109 dnfBuilder.clause(type1, callback);
110 return self();
111 }
112
113 public <U1, U2> T clause(Class<U1> type1, Class<U2> type2, ClauseCallback2Data2<U1, U2> callback) {
114 dnfBuilder.clause(type1, type2, callback);
115 return self();
116 }
117
118 public T clause(ClauseCallback3Data0 callback) {
119 dnfBuilder.clause(callback);
120 return self();
121 }
122
123 public <U1> T clause(Class<U1> type1, ClauseCallback3Data1<U1> callback) {
124 dnfBuilder.clause(type1, callback);
125 return self();
126 }
127
128 public <U1, U2> T clause(Class<U1> type1, Class<U2> type2, ClauseCallback3Data2<U1, U2> callback) {
129 dnfBuilder.clause(type1, type2, callback);
130 return self();
131 }
132
133 public <U1, U2, U3> T clause(Class<U1> type1, Class<U2> type2, Class<U3> type3,
134 ClauseCallback3Data3<U1, U2, U3> callback) {
135 dnfBuilder.clause(type1, type2, type3, callback);
136 return self();
137 }
138
139 public T clause(ClauseCallback4Data0 callback) {
140 dnfBuilder.clause(callback);
141 return self();
142 }
143
144 public <U1> T clause(Class<U1> type1, ClauseCallback4Data1<U1> callback) {
145 dnfBuilder.clause(type1, callback);
146 return self();
147 }
148
149 public <U1, U2> T clause(Class<U1> type1, Class<U2> type2, ClauseCallback4Data2<U1, U2> callback) {
150 dnfBuilder.clause(type1, type2, callback);
151 return self();
152 }
153
154 public <U1, U2, U3> T clause(Class<U1> type1, Class<U2> type2, Class<U3> type3,
155 ClauseCallback4Data3<U1, U2, U3> callback) {
156 dnfBuilder.clause(type1, type2, type3, callback);
157 return self();
158 }
159
160 public <U1, U2, U3, U4> T clause(Class<U1> type1, Class<U2> type2, Class<U3> type3, Class<U4> type4,
161 ClauseCallback4Data4<U1, U2, U3, U4> callback) {
162 dnfBuilder.clause(type1, type2, type3, type4, callback);
163 return self();
164 }
165
166 public T clause(Literal... literals) {
167 dnfBuilder.clause(literals);
168 return self();
169 }
170
171 public T clause(Collection<? extends Literal> literals) {
172 dnfBuilder.clause(literals);
173 return self();
174 }
175}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AnyQuery.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AnyQuery.java
index d0a2367f..5e28af68 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AnyQuery.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AnyQuery.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3public sealed interface AnyQuery permits Query { 8public sealed interface AnyQuery permits Query {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/ClausePostProcessor.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/ClausePostProcessor.java
new file mode 100644
index 00000000..b5e7092b
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/ClausePostProcessor.java
@@ -0,0 +1,324 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf;
7
8import org.jetbrains.annotations.NotNull;
9import tools.refinery.store.query.literal.BooleanLiteral;
10import tools.refinery.store.query.literal.EquivalenceLiteral;
11import tools.refinery.store.query.literal.Literal;
12import tools.refinery.store.query.substitution.MapBasedSubstitution;
13import tools.refinery.store.query.substitution.StatelessSubstitution;
14import tools.refinery.store.query.substitution.Substitution;
15import tools.refinery.store.query.term.NodeVariable;
16import tools.refinery.store.query.term.ParameterDirection;
17import tools.refinery.store.query.term.Variable;
18
19import java.util.*;
20import java.util.function.Function;
21
22class ClausePostProcessor {
23 private final Map<Variable, ParameterInfo> parameters;
24 private final List<Literal> literals;
25 private final Map<NodeVariable, NodeVariable> representatives = new LinkedHashMap<>();
26 private final Map<NodeVariable, Set<NodeVariable>> equivalencePartition = new HashMap<>();
27 private List<Literal> substitutedLiterals;
28 private final Set<Variable> existentiallyQuantifiedVariables = new LinkedHashSet<>();
29 private Set<Variable> positiveVariables;
30 private Map<Variable, Set<SortableLiteral>> variableToLiteralInputMap;
31 private PriorityQueue<SortableLiteral> literalsWithAllInputsBound;
32 private LinkedHashSet<Literal> topologicallySortedLiterals;
33
34 public ClausePostProcessor(Map<Variable, ParameterInfo> parameters, List<Literal> literals) {
35 this.parameters = parameters;
36 this.literals = literals;
37 }
38
39 public Result postProcessClause() {
40 mergeEquivalentNodeVariables();
41 substitutedLiterals = new ArrayList<>(literals.size());
42 keepParameterEquivalences();
43 substituteLiterals();
44 computeExistentiallyQuantifiedVariables();
45 computePositiveVariables();
46 validatePositiveRepresentatives();
47 validatePrivateVariables();
48 topologicallySortLiterals();
49 var filteredLiterals = new ArrayList<Literal>(topologicallySortedLiterals.size());
50 for (var literal : topologicallySortedLiterals) {
51 var reducedLiteral = literal.reduce();
52 if (BooleanLiteral.FALSE.equals(reducedLiteral)) {
53 return ConstantResult.ALWAYS_FALSE;
54 } else if (!BooleanLiteral.TRUE.equals(reducedLiteral)) {
55 filteredLiterals.add(reducedLiteral);
56 }
57 }
58 if (filteredLiterals.isEmpty()) {
59 return ConstantResult.ALWAYS_TRUE;
60 }
61 var clause = new DnfClause(Collections.unmodifiableSet(positiveVariables),
62 Collections.unmodifiableList(filteredLiterals));
63 return new ClauseResult(clause);
64 }
65
66 private void mergeEquivalentNodeVariables() {
67 for (var literal : literals) {
68 if (isPositiveEquivalence(literal)) {
69 var equivalenceLiteral = (EquivalenceLiteral) literal;
70 mergeVariables(equivalenceLiteral.left(), equivalenceLiteral.right());
71 }
72 }
73 }
74
75 private static boolean isPositiveEquivalence(Literal literal) {
76 return literal instanceof EquivalenceLiteral equivalenceLiteral && equivalenceLiteral.positive();
77 }
78
79 private void mergeVariables(NodeVariable left, NodeVariable right) {
80 var leftRepresentative = getRepresentative(left);
81 var rightRepresentative = getRepresentative(right);
82 var leftInfo = parameters.get(leftRepresentative);
83 var rightInfo = parameters.get(rightRepresentative);
84 if (leftInfo != null && (rightInfo == null || leftInfo.index() <= rightInfo.index())) {
85 // Prefer the variable occurring earlier in the parameter list as a representative.
86 doMergeVariables(leftRepresentative, rightRepresentative);
87 } else {
88 doMergeVariables(rightRepresentative, leftRepresentative);
89 }
90 }
91
92 private void doMergeVariables(NodeVariable parentRepresentative, NodeVariable newChildRepresentative) {
93 var parentSet = getEquivalentVariables(parentRepresentative);
94 var childSet = getEquivalentVariables(newChildRepresentative);
95 parentSet.addAll(childSet);
96 equivalencePartition.remove(newChildRepresentative);
97 for (var childEquivalentNodeVariable : childSet) {
98 representatives.put(childEquivalentNodeVariable, parentRepresentative);
99 }
100 }
101
102 private NodeVariable getRepresentative(NodeVariable variable) {
103 return representatives.computeIfAbsent(variable, Function.identity());
104 }
105
106 private Set<NodeVariable> getEquivalentVariables(NodeVariable variable) {
107 var representative = getRepresentative(variable);
108 if (!representative.equals(variable)) {
109 throw new AssertionError("NodeVariable %s already has a representative %s"
110 .formatted(variable, representative));
111 }
112 return equivalencePartition.computeIfAbsent(variable, key -> {
113 var set = new HashSet<NodeVariable>(1);
114 set.add(key);
115 return set;
116 });
117 }
118
119 private void keepParameterEquivalences() {
120 for (var pair : representatives.entrySet()) {
121 var left = pair.getKey();
122 var right = pair.getValue();
123 if (!left.equals(right) && parameters.containsKey(left) && parameters.containsKey(right)) {
124 substitutedLiterals.add(left.isEquivalent(right));
125 }
126 }
127 }
128
129 private void substituteLiterals() {
130 Substitution substitution;
131 if (representatives.isEmpty()) {
132 substitution = null;
133 } else {
134 substitution = new MapBasedSubstitution(Collections.unmodifiableMap(representatives),
135 StatelessSubstitution.IDENTITY);
136 }
137 for (var literal : literals) {
138 if (isPositiveEquivalence(literal)) {
139 // We already retained all equivalences that cannot be replaced with substitutions in
140 // {@link#keepParameterEquivalences()}.
141 continue;
142 }
143 var substitutedLiteral = substitution == null ? literal : literal.substitute(substitution);
144 substitutedLiterals.add(substitutedLiteral);
145 }
146 }
147
148 private void computeExistentiallyQuantifiedVariables() {
149 for (var literal : substitutedLiterals) {
150 for (var variable : literal.getOutputVariables()) {
151 boolean added = existentiallyQuantifiedVariables.add(variable);
152 if (!variable.isUnifiable()) {
153 var parameterInfo = parameters.get(variable);
154 if (parameterInfo != null && parameterInfo.direction() == ParameterDirection.IN) {
155 throw new IllegalArgumentException("Trying to bind %s parameter %s"
156 .formatted(ParameterDirection.IN, variable));
157 }
158 if (!added) {
159 throw new IllegalArgumentException("Variable %s has multiple assigned values"
160 .formatted(variable));
161 }
162 }
163 }
164 }
165 }
166
167 private void computePositiveVariables() {
168 positiveVariables = new LinkedHashSet<>();
169 for (var pair : parameters.entrySet()) {
170 var variable = pair.getKey();
171 if (pair.getValue().direction() == ParameterDirection.IN) {
172 // Inputs count as positive, because they are already bound when we evaluate literals.
173 positiveVariables.add(variable);
174 } else if (!existentiallyQuantifiedVariables.contains(variable)) {
175 throw new IllegalArgumentException("Unbound %s parameter %s"
176 .formatted(ParameterDirection.OUT, variable));
177 }
178 }
179 positiveVariables.addAll(existentiallyQuantifiedVariables);
180 }
181
182 private void validatePositiveRepresentatives() {
183 for (var pair : equivalencePartition.entrySet()) {
184 var representative = pair.getKey();
185 if (!positiveVariables.contains(representative)) {
186 var variableSet = pair.getValue();
187 throw new IllegalArgumentException("Variables %s were merged by equivalence but are not bound"
188 .formatted(variableSet));
189 }
190 }
191 }
192
193 private void validatePrivateVariables() {
194 var negativeVariablesMap = new HashMap<Variable, Literal>();
195 for (var literal : substitutedLiterals) {
196 for (var variable : literal.getPrivateVariables(positiveVariables)) {
197 var oldLiteral = negativeVariablesMap.put(variable, literal);
198 if (oldLiteral != null) {
199 throw new IllegalArgumentException("Unbound variable %s appears in multiple literals %s and %s"
200 .formatted(variable, oldLiteral, literal));
201 }
202 }
203 }
204 }
205
206 private void topologicallySortLiterals() {
207 topologicallySortedLiterals = new LinkedHashSet<>(substitutedLiterals.size());
208 variableToLiteralInputMap = new HashMap<>();
209 literalsWithAllInputsBound = new PriorityQueue<>();
210 int size = substitutedLiterals.size();
211 for (int i = 0; i < size; i++) {
212 var literal = substitutedLiterals.get(i);
213 var sortableLiteral = new SortableLiteral(i, literal);
214 sortableLiteral.enqueue();
215 }
216 while (!literalsWithAllInputsBound.isEmpty()) {
217 var variable = literalsWithAllInputsBound.remove();
218 variable.addToSortedLiterals();
219 }
220 if (!variableToLiteralInputMap.isEmpty()) {
221 throw new IllegalArgumentException("Unbound input variables %s"
222 .formatted(variableToLiteralInputMap.keySet()));
223 }
224 }
225
226 private class SortableLiteral implements Comparable<SortableLiteral> {
227 private final int index;
228 private final Literal literal;
229 private final Set<Variable> remainingInputs;
230
231 private SortableLiteral(int index, Literal literal) {
232 this.index = index;
233 this.literal = literal;
234 remainingInputs = new HashSet<>(literal.getInputVariables(positiveVariables));
235 for (var pair : parameters.entrySet()) {
236 if (pair.getValue().direction() == ParameterDirection.IN) {
237 remainingInputs.remove(pair.getKey());
238 }
239 }
240 }
241
242 public void enqueue() {
243 if (allInputsBound()) {
244 addToAllInputsBoundQueue();
245 } else {
246 addToVariableToLiteralInputMap();
247 }
248 }
249
250 private void bindVariable(Variable input) {
251 if (!remainingInputs.remove(input)) {
252 throw new AssertionError("Already processed input %s of literal %s".formatted(input, literal));
253 }
254 if (allInputsBound()) {
255 addToAllInputsBoundQueue();
256 }
257 }
258
259 private boolean allInputsBound() {
260 return remainingInputs.isEmpty();
261 }
262
263 private void addToVariableToLiteralInputMap() {
264 for (var inputVariable : remainingInputs) {
265 var literalSetForInput = variableToLiteralInputMap.computeIfAbsent(
266 inputVariable, key -> new HashSet<>());
267 literalSetForInput.add(this);
268 }
269 }
270
271 private void addToAllInputsBoundQueue() {
272 literalsWithAllInputsBound.add(this);
273 }
274
275 public void addToSortedLiterals() {
276 if (!allInputsBound()) {
277 throw new AssertionError("Inputs %s of %s are not yet bound".formatted(remainingInputs, literal));
278 }
279 // Add literal if we haven't yet added a duplicate of this literal.
280 topologicallySortedLiterals.add(literal);
281 for (var variable : literal.getOutputVariables()) {
282 var literalSetForInput = variableToLiteralInputMap.remove(variable);
283 if (literalSetForInput == null) {
284 continue;
285 }
286 for (var targetSortableLiteral : literalSetForInput) {
287 targetSortableLiteral.bindVariable(variable);
288 }
289 }
290 }
291
292 @Override
293 public int compareTo(@NotNull ClausePostProcessor.SortableLiteral other) {
294 return Integer.compare(index, other.index);
295 }
296
297 @Override
298 public boolean equals(Object o) {
299 if (this == o) return true;
300 if (o == null || getClass() != o.getClass()) return false;
301 SortableLiteral that = (SortableLiteral) o;
302 return index == that.index && Objects.equals(literal, that.literal);
303 }
304
305 @Override
306 public int hashCode() {
307 return Objects.hash(index, literal);
308 }
309 }
310
311 public sealed interface Result permits ClauseResult, ConstantResult {
312 }
313
314 public record ClauseResult(DnfClause clause) implements Result {
315 }
316
317 public enum ConstantResult implements Result {
318 ALWAYS_TRUE,
319 ALWAYS_FALSE
320 }
321
322 public record ParameterInfo(ParameterDirection direction, int index) {
323 }
324}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Dnf.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Dnf.java
index 1b7759c7..c5b51b81 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Dnf.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Dnf.java
@@ -1,57 +1,61 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
8import tools.refinery.store.query.Constraint;
9import tools.refinery.store.query.Reduction;
3import tools.refinery.store.query.equality.DnfEqualityChecker; 10import tools.refinery.store.query.equality.DnfEqualityChecker;
4import tools.refinery.store.query.equality.LiteralEqualityHelper; 11import tools.refinery.store.query.equality.LiteralEqualityHelper;
5import tools.refinery.store.query.Constraint; 12import tools.refinery.store.query.term.Parameter;
6import tools.refinery.store.query.literal.LiteralReduction;
7import tools.refinery.store.query.term.Sort;
8import tools.refinery.store.query.term.Variable; 13import tools.refinery.store.query.term.Variable;
9 14
10import java.util.Collection; 15import java.util.Collection;
11import java.util.HashSet; 16import java.util.Collections;
12import java.util.List; 17import java.util.List;
13import java.util.Set; 18import java.util.Set;
19import java.util.function.Consumer;
20import java.util.stream.Collectors;
14 21
15public final class Dnf implements Constraint { 22public final class Dnf implements Constraint {
16 private static final String INDENTATION = " "; 23 private static final String INDENTATION = " ";
17 24
18 private final String name; 25 private final String name;
19
20 private final String uniqueName; 26 private final String uniqueName;
21 27 private final List<SymbolicParameter> symbolicParameters;
22 private final List<Variable> parameters;
23
24 private final List<FunctionalDependency<Variable>> functionalDependencies; 28 private final List<FunctionalDependency<Variable>> functionalDependencies;
25
26 private final List<DnfClause> clauses; 29 private final List<DnfClause> clauses;
27 30
28 Dnf(String name, List<Variable> parameters, List<FunctionalDependency<Variable>> functionalDependencies, 31 Dnf(String name, List<SymbolicParameter> symbolicParameters,
29 List<DnfClause> clauses) { 32 List<FunctionalDependency<Variable>> functionalDependencies, List<DnfClause> clauses) {
30 validateFunctionalDependencies(parameters, functionalDependencies); 33 validateFunctionalDependencies(symbolicParameters, functionalDependencies);
31 this.name = name; 34 this.name = name;
32 this.uniqueName = DnfUtils.generateUniqueName(name); 35 this.uniqueName = DnfUtils.generateUniqueName(name);
33 this.parameters = parameters; 36 this.symbolicParameters = symbolicParameters;
34 this.functionalDependencies = functionalDependencies; 37 this.functionalDependencies = functionalDependencies;
35 this.clauses = clauses; 38 this.clauses = clauses;
36 } 39 }
37 40
38 private static void validateFunctionalDependencies( 41 private static void validateFunctionalDependencies(
39 Collection<Variable> parameters, Collection<FunctionalDependency<Variable>> functionalDependencies) { 42 Collection<SymbolicParameter> symbolicParameters,
40 var parameterSet = new HashSet<>(parameters); 43 Collection<FunctionalDependency<Variable>> functionalDependencies) {
44 var parameterSet = symbolicParameters.stream().map(SymbolicParameter::getVariable).collect(Collectors.toSet());
41 for (var functionalDependency : functionalDependencies) { 45 for (var functionalDependency : functionalDependencies) {
42 validateParameters(parameters, parameterSet, functionalDependency.forEach(), functionalDependency); 46 validateParameters(symbolicParameters, parameterSet, functionalDependency.forEach(), functionalDependency);
43 validateParameters(parameters, parameterSet, functionalDependency.unique(), functionalDependency); 47 validateParameters(symbolicParameters, parameterSet, functionalDependency.unique(), functionalDependency);
44 } 48 }
45 } 49 }
46 50
47 private static void validateParameters(Collection<Variable> parameters, Set<Variable> parameterSet, 51 private static void validateParameters(Collection<SymbolicParameter> symbolicParameters,
48 Collection<Variable> toValidate, 52 Set<Variable> parameterSet, Collection<Variable> toValidate,
49 FunctionalDependency<Variable> functionalDependency) { 53 FunctionalDependency<Variable> functionalDependency) {
50 for (var variable : toValidate) { 54 for (var variable : toValidate) {
51 if (!parameterSet.contains(variable)) { 55 if (!parameterSet.contains(variable)) {
52 throw new IllegalArgumentException( 56 throw new IllegalArgumentException(
53 "Variable %s of functional dependency %s does not appear in the parameter list %s" 57 "Variable %s of functional dependency %s does not appear in the parameter list %s"
54 .formatted(variable, functionalDependency, parameters)); 58 .formatted(variable, functionalDependency, symbolicParameters));
55 } 59 }
56 } 60 }
57 } 61 }
@@ -69,13 +73,12 @@ public final class Dnf implements Constraint {
69 return uniqueName; 73 return uniqueName;
70 } 74 }
71 75
72 public List<Variable> getParameters() { 76 public List<SymbolicParameter> getSymbolicParameters() {
73 return parameters; 77 return symbolicParameters;
74 } 78 }
75 79
76 @Override 80 public List<Parameter> getParameters() {
77 public List<Sort> getSorts() { 81 return Collections.unmodifiableList(symbolicParameters);
78 return parameters.stream().map(Variable::getSort).toList();
79 } 82 }
80 83
81 public List<FunctionalDependency<Variable>> getFunctionalDependencies() { 84 public List<FunctionalDependency<Variable>> getFunctionalDependencies() {
@@ -84,7 +87,7 @@ public final class Dnf implements Constraint {
84 87
85 @Override 88 @Override
86 public int arity() { 89 public int arity() {
87 return parameters.size(); 90 return symbolicParameters.size();
88 } 91 }
89 92
90 public List<DnfClause> getClauses() { 93 public List<DnfClause> getClauses() {
@@ -100,28 +103,34 @@ public final class Dnf implements Constraint {
100 } 103 }
101 104
102 @Override 105 @Override
103 public LiteralReduction getReduction() { 106 public Reduction getReduction() {
104 if (clauses.isEmpty()) { 107 if (clauses.isEmpty()) {
105 return LiteralReduction.ALWAYS_FALSE; 108 return Reduction.ALWAYS_FALSE;
106 } 109 }
107 for (var clause : clauses) { 110 for (var clause : clauses) {
108 if (clause.literals().isEmpty()) { 111 if (clause.literals().isEmpty()) {
109 return LiteralReduction.ALWAYS_TRUE; 112 return Reduction.ALWAYS_TRUE;
110 } 113 }
111 } 114 }
112 return LiteralReduction.NOT_REDUCIBLE; 115 return Reduction.NOT_REDUCIBLE;
113 } 116 }
114 117
115 public boolean equalsWithSubstitution(DnfEqualityChecker callEqualityChecker, Dnf other) { 118 public boolean equalsWithSubstitution(DnfEqualityChecker callEqualityChecker, Dnf other) {
116 if (arity() != other.arity()) { 119 if (arity() != other.arity()) {
117 return false; 120 return false;
118 } 121 }
122 for (int i = 0; i < arity(); i++) {
123 if (!symbolicParameters.get(i).getDirection().equals(other.getSymbolicParameters().get(i).getDirection())) {
124 return false;
125 }
126 }
119 int numClauses = clauses.size(); 127 int numClauses = clauses.size();
120 if (numClauses != other.clauses.size()) { 128 if (numClauses != other.clauses.size()) {
121 return false; 129 return false;
122 } 130 }
123 for (int i = 0; i < numClauses; i++) { 131 for (int i = 0; i < numClauses; i++) {
124 var literalEqualityHelper = new LiteralEqualityHelper(callEqualityChecker, parameters, other.parameters); 132 var literalEqualityHelper = new LiteralEqualityHelper(callEqualityChecker, symbolicParameters,
133 other.symbolicParameters);
125 if (!clauses.get(i).equalsWithSubstitution(literalEqualityHelper, other.clauses.get(i))) { 134 if (!clauses.get(i).equalsWithSubstitution(literalEqualityHelper, other.clauses.get(i))) {
126 return false; 135 return false;
127 } 136 }
@@ -139,18 +148,18 @@ public final class Dnf implements Constraint {
139 148
140 @Override 149 @Override
141 public String toString() { 150 public String toString() {
142 return "%s/%d".formatted(name, arity()); 151 return "%s/%d".formatted(name(), arity());
143 } 152 }
144 153
145 @Override 154 @Override
146 public String toReferenceString() { 155 public String toReferenceString() {
147 return "@Dnf " + name; 156 return "@Dnf " + name();
148 } 157 }
149 158
150 public String toDefinitionString() { 159 public String toDefinitionString() {
151 var builder = new StringBuilder(); 160 var builder = new StringBuilder();
152 builder.append("pred ").append(name()).append("("); 161 builder.append("pred ").append(name()).append("(");
153 var parameterIterator = parameters.iterator(); 162 var parameterIterator = symbolicParameters.iterator();
154 if (parameterIterator.hasNext()) { 163 if (parameterIterator.hasNext()) {
155 builder.append(parameterIterator.next()); 164 builder.append(parameterIterator.next());
156 while (parameterIterator.hasNext()) { 165 while (parameterIterator.hasNext()) {
@@ -191,4 +200,14 @@ public final class Dnf implements Constraint {
191 public static DnfBuilder builder(String name) { 200 public static DnfBuilder builder(String name) {
192 return new DnfBuilder(name); 201 return new DnfBuilder(name);
193 } 202 }
203
204 public static Dnf of(Consumer<DnfBuilder> callback) {
205 return of(null, callback);
206 }
207
208 public static Dnf of(String name, Consumer<DnfBuilder> callback) {
209 var builder = builder(name);
210 callback.accept(builder);
211 return builder.build();
212 }
194} 213}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java
index aad5a85f..8e38ca6b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java
@@ -1,7 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
8import tools.refinery.store.query.dnf.callback.*;
3import tools.refinery.store.query.literal.Literal; 9import tools.refinery.store.query.literal.Literal;
4import tools.refinery.store.query.term.DataVariable; 10import tools.refinery.store.query.term.DataVariable;
11import tools.refinery.store.query.term.NodeVariable;
12import tools.refinery.store.query.term.ParameterDirection;
5import tools.refinery.store.query.term.Variable; 13import tools.refinery.store.query.term.Variable;
6 14
7import java.util.*; 15import java.util.*;
@@ -9,23 +17,57 @@ import java.util.*;
9@SuppressWarnings("UnusedReturnValue") 17@SuppressWarnings("UnusedReturnValue")
10public final class DnfBuilder { 18public final class DnfBuilder {
11 private final String name; 19 private final String name;
12 20 private final Set<Variable> parameterVariables = new LinkedHashSet<>();
13 private final List<Variable> parameters = new ArrayList<>(); 21 private final List<SymbolicParameter> parameters = new ArrayList<>();
14
15 private final List<FunctionalDependency<Variable>> functionalDependencies = new ArrayList<>(); 22 private final List<FunctionalDependency<Variable>> functionalDependencies = new ArrayList<>();
16
17 private final List<List<Literal>> clauses = new ArrayList<>(); 23 private final List<List<Literal>> clauses = new ArrayList<>();
18 24
19 DnfBuilder(String name) { 25 DnfBuilder(String name) {
20 this.name = name; 26 this.name = name;
21 } 27 }
22 28
29 public NodeVariable parameter() {
30 return parameter((String) null);
31 }
32
33 public NodeVariable parameter(String name) {
34 return parameter(name, ParameterDirection.OUT);
35 }
36
37 public NodeVariable parameter(ParameterDirection direction) {
38 return parameter((String) null, direction);
39 }
40
41 public NodeVariable parameter(String name, ParameterDirection direction) {
42 var variable = Variable.of(name);
43 parameter(variable, direction);
44 return variable;
45 }
46
47 public <T> DataVariable<T> parameter(Class<T> type) {
48 return parameter(null, type);
49 }
50
51 public <T> DataVariable<T> parameter(String name, Class<T> type) {
52 return parameter(name, type, ParameterDirection.OUT);
53 }
54
55 public <T> DataVariable<T> parameter(Class<T> type, ParameterDirection direction) {
56 return parameter(null, type, direction);
57 }
58
59 public <T> DataVariable<T> parameter(String name, Class<T> type, ParameterDirection direction) {
60 var variable = Variable.of(name, type);
61 parameter(variable, direction);
62 return variable;
63 }
64
23 public DnfBuilder parameter(Variable variable) { 65 public DnfBuilder parameter(Variable variable) {
24 if (parameters.contains(variable)) { 66 return parameter(variable, ParameterDirection.OUT);
25 throw new IllegalArgumentException("Duplicate parameter: " + variable); 67 }
26 } 68
27 parameters.add(variable); 69 public DnfBuilder parameter(Variable variable, ParameterDirection direction) {
28 return this; 70 return symbolicParameter(new SymbolicParameter(variable, direction));
29 } 71 }
30 72
31 public DnfBuilder parameters(Variable... variables) { 73 public DnfBuilder parameters(Variable... variables) {
@@ -33,7 +75,34 @@ public final class DnfBuilder {
33 } 75 }
34 76
35 public DnfBuilder parameters(Collection<? extends Variable> variables) { 77 public DnfBuilder parameters(Collection<? extends Variable> variables) {
36 parameters.addAll(variables); 78 return parameters(variables, ParameterDirection.OUT);
79 }
80
81 public DnfBuilder parameters(Collection<? extends Variable> variables, ParameterDirection direction) {
82 for (var variable : variables) {
83 parameter(variable, direction);
84 }
85 return this;
86 }
87
88 public DnfBuilder symbolicParameter(SymbolicParameter symbolicParameter) {
89 var variable = symbolicParameter.getVariable();
90 if (!parameterVariables.add(variable)) {
91 throw new IllegalArgumentException("Variable %s is already on the parameter list %s"
92 .formatted(variable, parameters));
93 }
94 parameters.add(symbolicParameter);
95 return this;
96 }
97
98 public DnfBuilder symbolicParameters(SymbolicParameter... symbolicParameters) {
99 return symbolicParameters(List.of(symbolicParameters));
100 }
101
102 public DnfBuilder symbolicParameters(Collection<SymbolicParameter> symbolicParameters) {
103 for (var symbolicParameter : symbolicParameters) {
104 symbolicParameter(symbolicParameter);
105 }
37 return this; 106 return this;
38 } 107 }
39 108
@@ -51,33 +120,91 @@ public final class DnfBuilder {
51 return functionalDependency(new FunctionalDependency<>(Set.copyOf(forEach), Set.copyOf(unique))); 120 return functionalDependency(new FunctionalDependency<>(Set.copyOf(forEach), Set.copyOf(unique)));
52 } 121 }
53 122
123 public DnfBuilder clause(ClauseCallback0 callback) {
124 return clause(callback.toLiterals());
125 }
126
127 public DnfBuilder clause(ClauseCallback1Data0 callback) {
128 return clause(callback.toLiterals(Variable.of("v1")));
129 }
130
131 public <T> DnfBuilder clause(Class<T> type1, ClauseCallback1Data1<T> callback) {
132 return clause(callback.toLiterals(Variable.of("v1", type1)));
133 }
134
135 public DnfBuilder clause(ClauseCallback2Data0 callback) {
136 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("v2")));
137 }
138
139 public <T> DnfBuilder clause(Class<T> type1, ClauseCallback2Data1<T> callback) {
140 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("d1", type1)));
141 }
142
143 public <T1, T2> DnfBuilder clause(Class<T1> type1, Class<T2> type2, ClauseCallback2Data2<T1, T2> callback) {
144 return clause(callback.toLiterals(Variable.of("d1", type1), Variable.of("d2", type2)));
145 }
146
147 public DnfBuilder clause(ClauseCallback3Data0 callback) {
148 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("v2"), Variable.of("v3")));
149 }
150
151 public <T> DnfBuilder clause(Class<T> type1, ClauseCallback3Data1<T> callback) {
152 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("v2"), Variable.of("d1", type1)));
153 }
154
155 public <T1, T2> DnfBuilder clause(Class<T1> type1, Class<T2> type2, ClauseCallback3Data2<T1, T2> callback) {
156 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("d1", type1), Variable.of("d2", type2)));
157 }
158
159 public <T1, T2, T3> DnfBuilder clause(Class<T1> type1, Class<T2> type2, Class<T3> type3,
160 ClauseCallback3Data3<T1, T2, T3> callback) {
161 return clause(callback.toLiterals(Variable.of("d1", type1), Variable.of("d2", type2),
162 Variable.of("d3", type3)));
163 }
164
165 public DnfBuilder clause(ClauseCallback4Data0 callback) {
166 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("v2"), Variable.of("v3"), Variable.of("v4")));
167 }
168
169 public <T> DnfBuilder clause(Class<T> type1, ClauseCallback4Data1<T> callback) {
170 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("v2"), Variable.of("v3"), Variable.of("d1",
171 type1)));
172 }
173
174 public <T1, T2> DnfBuilder clause(Class<T1> type1, Class<T2> type2, ClauseCallback4Data2<T1, T2> callback) {
175 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("v2"), Variable.of("d1", type1),
176 Variable.of("d2", type2)));
177 }
178
179 public <T1, T2, T3> DnfBuilder clause(Class<T1> type1, Class<T2> type2, Class<T3> type3,
180 ClauseCallback4Data3<T1, T2, T3> callback) {
181 return clause(callback.toLiterals(Variable.of("v1"), Variable.of("d1", type1), Variable.of("d2", type2),
182 Variable.of("d3", type3)));
183 }
184
185 public <T1, T2, T3, T4> DnfBuilder clause(Class<T1> type1, Class<T2> type2, Class<T3> type3, Class<T4> type4,
186 ClauseCallback4Data4<T1, T2, T3, T4> callback) {
187 return clause(callback.toLiterals(Variable.of("d1", type1), Variable.of("d2", type2),
188 Variable.of("d3", type3), Variable.of("d4", type4)));
189 }
190
54 public DnfBuilder clause(Literal... literals) { 191 public DnfBuilder clause(Literal... literals) {
55 clause(List.of(literals)); 192 clause(List.of(literals));
56 return this; 193 return this;
57 } 194 }
58 195
59 public DnfBuilder clause(Collection<? extends Literal> literals) { 196 public DnfBuilder clause(Collection<? extends Literal> literals) {
60 // Remove duplicates by using a hashed data structure. 197 clauses.add(List.copyOf(literals));
61 var filteredLiterals = new LinkedHashSet<Literal>(literals.size());
62 for (var literal : literals) {
63 var reduction = literal.getReduction();
64 switch (reduction) {
65 case NOT_REDUCIBLE -> filteredLiterals.add(literal);
66 case ALWAYS_TRUE -> {
67 // Literals reducible to {@code true} can be omitted, because the model is always assumed to have at
68 // least on object.
69 }
70 case ALWAYS_FALSE -> {
71 // Clauses with {@code false} literals can be omitted entirely.
72 return this;
73 }
74 default -> throw new IllegalArgumentException("Invalid reduction: " + reduction);
75 }
76 }
77 clauses.add(List.copyOf(filteredLiterals));
78 return this; 198 return this;
79 } 199 }
80 200
201 <T> void output(DataVariable<T> outputVariable) {
202 // Copy parameter variables to exclude the newly added {@code outputVariable}.
203 var fromParameters = Set.copyOf(parameterVariables);
204 parameter(outputVariable, ParameterDirection.OUT);
205 functionalDependency(fromParameters, Set.of(outputVariable));
206 }
207
81 public Dnf build() { 208 public Dnf build() {
82 var postProcessedClauses = postProcessClauses(); 209 var postProcessedClauses = postProcessClauses();
83 return new Dnf(name, Collections.unmodifiableList(parameters), 210 return new Dnf(name, Collections.unmodifiableList(parameters),
@@ -85,26 +212,51 @@ public final class DnfBuilder {
85 Collections.unmodifiableList(postProcessedClauses)); 212 Collections.unmodifiableList(postProcessedClauses));
86 } 213 }
87 214
88 <T> void output(DataVariable<T> outputVariable) {
89 functionalDependency(Set.copyOf(parameters), Set.of(outputVariable));
90 parameter(outputVariable);
91 }
92
93 private List<DnfClause> postProcessClauses() { 215 private List<DnfClause> postProcessClauses() {
216 var parameterInfoMap = getParameterInfoMap();
94 var postProcessedClauses = new ArrayList<DnfClause>(clauses.size()); 217 var postProcessedClauses = new ArrayList<DnfClause>(clauses.size());
95 for (var literals : clauses) { 218 for (var literals : clauses) {
96 if (literals.isEmpty()) { 219 var postProcessor = new ClausePostProcessor(parameterInfoMap, literals);
97 // Predicate will always match, the other clauses are irrelevant. 220 var result = postProcessor.postProcessClause();
98 return List.of(new DnfClause(Set.of(), List.of())); 221 if (result instanceof ClausePostProcessor.ClauseResult clauseResult) {
99 } 222 postProcessedClauses.add(clauseResult.clause());
100 var variables = new HashSet<Variable>(); 223 } else if (result instanceof ClausePostProcessor.ConstantResult constantResult) {
101 for (var literal : literals) { 224 switch (constantResult) {
102 variables.addAll(literal.getBoundVariables()); 225 case ALWAYS_TRUE -> {
226 var inputVariables = getInputVariables();
227 return List.of(new DnfClause(inputVariables, List.of()));
228 }
229 case ALWAYS_FALSE -> {
230 // Skip this clause because it can never match.
231 }
232 default -> throw new IllegalStateException("Unexpected ClausePostProcessor.ConstantResult: " +
233 constantResult);
234 }
235 } else {
236 throw new IllegalStateException("Unexpected ClausePostProcessor.Result: " + result);
103 } 237 }
104 parameters.forEach(variables::remove);
105 postProcessedClauses.add(new DnfClause(Collections.unmodifiableSet(variables),
106 Collections.unmodifiableList(literals)));
107 } 238 }
108 return postProcessedClauses; 239 return postProcessedClauses;
109 } 240 }
241
242 private Map<Variable, ClausePostProcessor.ParameterInfo> getParameterInfoMap() {
243 var mutableParameterInfoMap = new LinkedHashMap<Variable, ClausePostProcessor.ParameterInfo>();
244 int arity = parameters.size();
245 for (int i = 0; i < arity; i++) {
246 var parameter = parameters.get(i);
247 mutableParameterInfoMap.put(parameter.getVariable(),
248 new ClausePostProcessor.ParameterInfo(parameter.getDirection(), i));
249 }
250 return Collections.unmodifiableMap(mutableParameterInfoMap);
251 }
252
253 private Set<Variable> getInputVariables() {
254 var inputParameters = new LinkedHashSet<Variable>();
255 for (var parameter : parameters) {
256 if (parameter.getDirection() == ParameterDirection.IN) {
257 inputParameters.add(parameter.getVariable());
258 }
259 }
260 return Collections.unmodifiableSet(inputParameters);
261 }
110} 262}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfClause.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfClause.java
index 01830af1..fdd0d47c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfClause.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfClause.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
@@ -7,7 +12,7 @@ import tools.refinery.store.query.term.Variable;
7import java.util.List; 12import java.util.List;
8import java.util.Set; 13import java.util.Set;
9 14
10public record DnfClause(Set<Variable> boundVariables, List<Literal> literals) { 15public record DnfClause(Set<Variable> positiveVariables, List<Literal> literals) {
11 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, DnfClause other) { 16 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, DnfClause other) {
12 int size = literals.size(); 17 int size = literals.size();
13 if (size != other.literals.size()) { 18 if (size != other.literals.size()) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfUtils.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfUtils.java
index 9bcf944c..65ab3634 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfUtils.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfUtils.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3import java.util.UUID; 8import java.util.UUID;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalDependency.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalDependency.java
index f4cd109f..b00b2cb7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalDependency.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalDependency.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3import java.util.HashSet; 8import java.util.HashSet;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQuery.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQuery.java
index 5bf6f8c5..5a32b1ba 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQuery.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQuery.java
@@ -1,44 +1,47 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3import tools.refinery.store.query.literal.CallPolarity; 8import tools.refinery.store.query.literal.CallPolarity;
4import tools.refinery.store.query.term.*; 9import tools.refinery.store.query.term.Aggregator;
10import tools.refinery.store.query.term.AssignedValue;
11import tools.refinery.store.query.term.NodeVariable;
12import tools.refinery.store.query.term.Variable;
5 13
6import java.util.ArrayList; 14import java.util.ArrayList;
7import java.util.List; 15import java.util.List;
8import java.util.Objects; 16import java.util.Objects;
9 17
10public final class FunctionalQuery<T> implements Query<T> { 18public final class FunctionalQuery<T> extends Query<T> {
11 private final Dnf dnf;
12 private final Class<T> type; 19 private final Class<T> type;
13 20
14 FunctionalQuery(Dnf dnf, Class<T> type) { 21 FunctionalQuery(Dnf dnf, Class<T> type) {
15 var parameters = dnf.getParameters(); 22 super(dnf);
23 var parameters = dnf.getSymbolicParameters();
16 int outputIndex = dnf.arity() - 1; 24 int outputIndex = dnf.arity() - 1;
17 for (int i = 0; i < outputIndex; i++) { 25 for (int i = 0; i < outputIndex; i++) {
18 var parameter = parameters.get(i); 26 var parameter = parameters.get(i);
19 if (!(parameter instanceof NodeVariable)) { 27 var parameterType = parameter.tryGetType();
20 throw new IllegalArgumentException("Expected parameter %s of %s to be of sort %s, but got %s instead" 28 if (parameterType.isPresent()) {
21 .formatted(parameter, dnf, NodeSort.INSTANCE, parameter.getSort())); 29 throw new IllegalArgumentException("Expected parameter %s of %s to be a node variable, got %s instead"
30 .formatted(parameter, dnf, parameterType.get().getName()));
22 } 31 }
23 } 32 }
24 var outputParameter = parameters.get(outputIndex); 33 var outputParameter = parameters.get(outputIndex);
25 if (!(outputParameter instanceof DataVariable<?> dataOutputParameter) || 34 var outputParameterType = outputParameter.tryGetType();
26 !dataOutputParameter.getType().equals(type)) { 35 if (outputParameterType.isEmpty() || !outputParameterType.get().equals(type)) {
27 throw new IllegalArgumentException("Expected parameter %s of %s to be of sort %s, but got %s instead" 36 throw new IllegalArgumentException("Expected parameter %s of %s to be %s, but got %s instead".formatted(
28 .formatted(outputParameter, dnf, type, outputParameter.getSort())); 37 outputParameter, dnf, type, outputParameterType.map(Class::getName).orElse("node")));
29 } 38 }
30 this.dnf = dnf;
31 this.type = type; 39 this.type = type;
32 } 40 }
33 41
34 @Override 42 @Override
35 public String name() {
36 return dnf.name();
37 }
38
39 @Override
40 public int arity() { 43 public int arity() {
41 return dnf.arity() - 1; 44 return getDnf().arity() - 1;
42 } 45 }
43 46
44 @Override 47 @Override
@@ -51,17 +54,12 @@ public final class FunctionalQuery<T> implements Query<T> {
51 return null; 54 return null;
52 } 55 }
53 56
54 @Override
55 public Dnf getDnf() {
56 return dnf;
57 }
58
59 public AssignedValue<T> call(List<NodeVariable> arguments) { 57 public AssignedValue<T> call(List<NodeVariable> arguments) {
60 return targetVariable -> { 58 return targetVariable -> {
61 var argumentsWithTarget = new ArrayList<Variable>(arguments.size() + 1); 59 var argumentsWithTarget = new ArrayList<Variable>(arguments.size() + 1);
62 argumentsWithTarget.addAll(arguments); 60 argumentsWithTarget.addAll(arguments);
63 argumentsWithTarget.add(targetVariable); 61 argumentsWithTarget.add(targetVariable);
64 return dnf.call(CallPolarity.POSITIVE, argumentsWithTarget); 62 return getDnf().call(CallPolarity.POSITIVE, argumentsWithTarget);
65 }; 63 };
66 } 64 }
67 65
@@ -75,7 +73,9 @@ public final class FunctionalQuery<T> implements Query<T> {
75 var argumentsWithPlaceholder = new ArrayList<Variable>(arguments.size() + 1); 73 var argumentsWithPlaceholder = new ArrayList<Variable>(arguments.size() + 1);
76 argumentsWithPlaceholder.addAll(arguments); 74 argumentsWithPlaceholder.addAll(arguments);
77 argumentsWithPlaceholder.add(placeholderVariable); 75 argumentsWithPlaceholder.add(placeholderVariable);
78 return dnf.aggregate(placeholderVariable, aggregator, argumentsWithPlaceholder).toLiteral(targetVariable); 76 return getDnf()
77 .aggregateBy(placeholderVariable, aggregator, argumentsWithPlaceholder)
78 .toLiteral(targetVariable);
79 }; 79 };
80 } 80 }
81 81
@@ -87,17 +87,13 @@ public final class FunctionalQuery<T> implements Query<T> {
87 public boolean equals(Object o) { 87 public boolean equals(Object o) {
88 if (this == o) return true; 88 if (this == o) return true;
89 if (o == null || getClass() != o.getClass()) return false; 89 if (o == null || getClass() != o.getClass()) return false;
90 if (!super.equals(o)) return false;
90 FunctionalQuery<?> that = (FunctionalQuery<?>) o; 91 FunctionalQuery<?> that = (FunctionalQuery<?>) o;
91 return dnf.equals(that.dnf) && type.equals(that.type); 92 return Objects.equals(type, that.type);
92 } 93 }
93 94
94 @Override 95 @Override
95 public int hashCode() { 96 public int hashCode() {
96 return Objects.hash(dnf, type); 97 return Objects.hash(super.hashCode(), type);
97 }
98
99 @Override
100 public String toString() {
101 return dnf.toString();
102 } 98 }
103} 99}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQueryBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQueryBuilder.java
index ca2bc006..d1cd7ba8 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQueryBuilder.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQueryBuilder.java
@@ -1,46 +1,29 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3import tools.refinery.store.query.literal.Literal; 8import tools.refinery.store.query.term.DataVariable;
4import tools.refinery.store.query.term.Variable;
5 9
6import java.util.Collection; 10public final class FunctionalQueryBuilder<T> extends AbstractQueryBuilder<FunctionalQueryBuilder<T>> {
7import java.util.Set; 11 private final DataVariable<T> outputVariable;
8
9public final class FunctionalQueryBuilder<T> {
10 private final DnfBuilder dnfBuilder;
11 private final Class<T> type; 12 private final Class<T> type;
12 13
13 FunctionalQueryBuilder(DnfBuilder dnfBuilder, Class<T> type) { 14 FunctionalQueryBuilder(DataVariable<T> outputVariable, DnfBuilder dnfBuilder, Class<T> type) {
14 this.dnfBuilder = dnfBuilder; 15 super(dnfBuilder);
16 this.outputVariable = outputVariable;
15 this.type = type; 17 this.type = type;
16 } 18 }
17 19
18 public FunctionalQueryBuilder<T> functionalDependencies(Collection<FunctionalDependency<Variable>> functionalDependencies) { 20 @Override
19 dnfBuilder.functionalDependencies(functionalDependencies); 21 protected FunctionalQueryBuilder<T> self() {
20 return this;
21 }
22
23 public FunctionalQueryBuilder<T> functionalDependency(FunctionalDependency<Variable> functionalDependency) {
24 dnfBuilder.functionalDependency(functionalDependency);
25 return this;
26 }
27
28 public FunctionalQueryBuilder<T> functionalDependency(Set<? extends Variable> forEach, Set<? extends Variable> unique) {
29 dnfBuilder.functionalDependency(forEach, unique);
30 return this;
31 }
32
33 public FunctionalQueryBuilder<T> clause(Literal... literals) {
34 dnfBuilder.clause(literals);
35 return this;
36 }
37
38 public FunctionalQueryBuilder<T> clause(Collection<? extends Literal> literals) {
39 dnfBuilder.clause(literals);
40 return this; 22 return this;
41 } 23 }
42 24
43 public FunctionalQuery<T> build() { 25 public FunctionalQuery<T> build() {
26 dnfBuilder.output(outputVariable);
44 return dnfBuilder.build().asFunction(type); 27 return dnfBuilder.build().asFunction(type);
45 } 28 }
46} 29}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Query.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Query.java
index 32e33052..aaa52ce6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Query.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Query.java
@@ -1,16 +1,179 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3public sealed interface Query<T> extends AnyQuery permits RelationalQuery, FunctionalQuery { 8import tools.refinery.store.query.dnf.callback.*;
9import tools.refinery.store.query.term.ParameterDirection;
10import tools.refinery.store.query.term.Variable;
11
12import java.util.Objects;
13
14public abstract sealed class Query<T> implements AnyQuery permits FunctionalQuery, RelationalQuery {
15 private static final String OUTPUT_VARIABLE_NAME = "output";
16
17 private final Dnf dnf;
18
19 protected Query(Dnf dnf) {
20 for (var parameter : dnf.getSymbolicParameters()) {
21 if (parameter.getDirection() != ParameterDirection.OUT) {
22 throw new IllegalArgumentException("Query parameter %s with direction %s is not allowed"
23 .formatted(parameter.getVariable(), parameter.getDirection()));
24 }
25 }
26 this.dnf = dnf;
27 }
28
29 @Override
30 public String name() {
31 return dnf.name();
32 }
33
34 @Override
35 public Dnf getDnf() {
36 return dnf;
37 }
38
39 // Allow redeclaration of the method with refined return type.
40 @SuppressWarnings("squid:S3038")
4 @Override 41 @Override
5 Class<T> valueType(); 42 public abstract Class<T> valueType();
6 43
7 T defaultValue(); 44 public abstract T defaultValue();
8 45
9 static QueryBuilder builder() { 46 @Override
10 return new QueryBuilder(); 47 public boolean equals(Object o) {
48 if (this == o) return true;
49 if (o == null || getClass() != o.getClass()) return false;
50 Query<?> that = (Query<?>) o;
51 return Objects.equals(dnf, that.dnf);
52 }
53
54 @Override
55 public int hashCode() {
56 return Objects.hash(dnf);
11 } 57 }
12 58
13 static QueryBuilder builder(String name) { 59 @Override
60 public String toString() {
61 return dnf.toString();
62 }
63
64 public static QueryBuilder builder() {
65 return builder(null);
66 }
67
68 public static QueryBuilder builder(String name) {
14 return new QueryBuilder(name); 69 return new QueryBuilder(name);
15 } 70 }
71
72 public static RelationalQuery of(QueryCallback0 callback) {
73 return of(null, callback);
74 }
75
76 public static RelationalQuery of(String name, QueryCallback0 callback) {
77 var builder = builder(name);
78 callback.accept(builder);
79 return builder.build();
80 }
81
82 public static RelationalQuery of(QueryCallback1 callback) {
83 return of(null, callback);
84 }
85
86 public static RelationalQuery of(String name, QueryCallback1 callback) {
87 var builder = builder(name);
88 callback.accept(builder, builder.parameter("p1"));
89 return builder.build();
90 }
91
92 public static RelationalQuery of(QueryCallback2 callback) {
93 return of(null, callback);
94 }
95
96 public static RelationalQuery of(String name, QueryCallback2 callback) {
97 var builder = builder(name);
98 callback.accept(builder, builder.parameter("p1"), builder.parameter("p2"));
99 return builder.build();
100 }
101
102 public static RelationalQuery of(QueryCallback3 callback) {
103 return of(null, callback);
104 }
105
106 public static RelationalQuery of(String name, QueryCallback3 callback) {
107 var builder = builder(name);
108 callback.accept(builder, builder.parameter("p1"), builder.parameter("p2"), builder.parameter("p3"));
109 return builder.build();
110 }
111
112 public static RelationalQuery of(QueryCallback4 callback) {
113 return of(null, callback);
114 }
115
116 public static RelationalQuery of(String name, QueryCallback4 callback) {
117 var builder = builder(name);
118 callback.accept(builder, builder.parameter("p1"), builder.parameter("p2"), builder.parameter("p3"),
119 builder.parameter("p4"));
120 return builder.build();
121 }
122
123 public static <T> FunctionalQuery<T> of(Class<T> type, FunctionalQueryCallback0<T> callback) {
124 return of(null, type, callback);
125 }
126
127 public static <T> FunctionalQuery<T> of(String name, Class<T> type, FunctionalQueryCallback0<T> callback) {
128 var outputVariable = Variable.of(OUTPUT_VARIABLE_NAME, type);
129 var builder = builder(name).output(outputVariable);
130 callback.accept(builder, outputVariable);
131 return builder.build();
132 }
133
134 public static <T> FunctionalQuery<T> of(Class<T> type, FunctionalQueryCallback1<T> callback) {
135 return of(null, type, callback);
136 }
137
138 public static <T> FunctionalQuery<T> of(String name, Class<T> type, FunctionalQueryCallback1<T> callback) {
139 var outputVariable = Variable.of(OUTPUT_VARIABLE_NAME, type);
140 var builder = builder(name).output(outputVariable);
141 callback.accept(builder, builder.parameter("p1"), outputVariable);
142 return builder.build();
143 }
144
145 public static <T> FunctionalQuery<T> of(Class<T> type, FunctionalQueryCallback2<T> callback) {
146 return of(null, type, callback);
147 }
148
149 public static <T> FunctionalQuery<T> of(String name, Class<T> type, FunctionalQueryCallback2<T> callback) {
150 var outputVariable = Variable.of(OUTPUT_VARIABLE_NAME, type);
151 var builder = builder(name).output(outputVariable);
152 callback.accept(builder, builder.parameter("p1"), builder.parameter("p2"), outputVariable);
153 return builder.build();
154 }
155
156 public static <T> FunctionalQuery<T> of(Class<T> type, FunctionalQueryCallback3<T> callback) {
157 return of(null, type, callback);
158 }
159
160 public static <T> FunctionalQuery<T> of(String name, Class<T> type, FunctionalQueryCallback3<T> callback) {
161 var outputVariable = Variable.of(OUTPUT_VARIABLE_NAME, type);
162 var builder = builder(name).output(outputVariable);
163 callback.accept(builder, builder.parameter("p1"), builder.parameter("p2"), builder.parameter("p3"),
164 outputVariable);
165 return builder.build();
166 }
167
168 public static <T> FunctionalQuery<T> of(Class<T> type, FunctionalQueryCallback4<T> callback) {
169 return of(null, type, callback);
170 }
171
172 public static <T> FunctionalQuery<T> of(String name, Class<T> type, FunctionalQueryCallback4<T> callback) {
173 var outputVariable = Variable.of(OUTPUT_VARIABLE_NAME, type);
174 var builder = builder(name).output(outputVariable);
175 callback.accept(builder, builder.parameter("p1"), builder.parameter("p2"), builder.parameter("p3"),
176 builder.parameter("p4"), outputVariable);
177 return builder.build();
178 }
16} 179}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/QueryBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/QueryBuilder.java
index ed253cc9..138911bc 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/QueryBuilder.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/QueryBuilder.java
@@ -1,68 +1,24 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3import tools.refinery.store.query.literal.Literal;
4import tools.refinery.store.query.term.DataVariable; 8import tools.refinery.store.query.term.DataVariable;
5import tools.refinery.store.query.term.NodeVariable;
6import tools.refinery.store.query.term.Variable;
7
8import java.util.Collection;
9import java.util.List;
10import java.util.Set;
11
12public final class QueryBuilder {
13 private final DnfBuilder dnfBuilder;
14 9
10public final class QueryBuilder extends AbstractQueryBuilder<QueryBuilder> {
15 QueryBuilder(String name) { 11 QueryBuilder(String name) {
16 dnfBuilder = Dnf.builder(name); 12 super(Dnf.builder(name));
17 }
18
19 QueryBuilder() {
20 dnfBuilder = Dnf.builder();
21 }
22
23 public QueryBuilder parameter(NodeVariable variable) {
24 dnfBuilder.parameter(variable);
25 return this;
26 } 13 }
27 14
28 public QueryBuilder parameters(NodeVariable... variables) { 15 @Override
29 dnfBuilder.parameters(variables); 16 protected QueryBuilder self() {
30 return this;
31 }
32
33 public QueryBuilder parameters(List<NodeVariable> variables) {
34 dnfBuilder.parameters(variables);
35 return this; 17 return this;
36 } 18 }
37 19
38 public <T> FunctionalQueryBuilder<T> output(DataVariable<T> outputVariable) { 20 public <T> FunctionalQueryBuilder<T> output(DataVariable<T> outputVariable) {
39 dnfBuilder.output(outputVariable); 21 return new FunctionalQueryBuilder<>(outputVariable, dnfBuilder, outputVariable.getType());
40 return new FunctionalQueryBuilder<>(dnfBuilder, outputVariable.getType());
41 }
42
43 public QueryBuilder functionalDependencies(Collection<FunctionalDependency<Variable>> functionalDependencies) {
44 dnfBuilder.functionalDependencies(functionalDependencies);
45 return this;
46 }
47
48 public QueryBuilder functionalDependency(FunctionalDependency<Variable> functionalDependency) {
49 dnfBuilder.functionalDependency(functionalDependency);
50 return this;
51 }
52
53 public QueryBuilder functionalDependency(Set<? extends Variable> forEach, Set<? extends Variable> unique) {
54 dnfBuilder.functionalDependency(forEach, unique);
55 return this;
56 }
57
58 public QueryBuilder clause(Literal... literals) {
59 dnfBuilder.clause(literals);
60 return this;
61 }
62
63 public QueryBuilder clause(Collection<? extends Literal> literals) {
64 dnfBuilder.clause(literals);
65 return this;
66 } 22 }
67 23
68 public RelationalQuery build() { 24 public RelationalQuery build() {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/RelationalQuery.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/RelationalQuery.java
index 5307e509..d34a7ace 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/RelationalQuery.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/RelationalQuery.java
@@ -1,36 +1,33 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.dnf; 6package tools.refinery.store.query.dnf;
2 7
3import tools.refinery.store.query.literal.CallLiteral; 8import tools.refinery.store.query.literal.CallLiteral;
4import tools.refinery.store.query.literal.CallPolarity; 9import tools.refinery.store.query.literal.CallPolarity;
5import tools.refinery.store.query.term.AssignedValue; 10import tools.refinery.store.query.term.AssignedValue;
6import tools.refinery.store.query.term.NodeSort;
7import tools.refinery.store.query.term.NodeVariable; 11import tools.refinery.store.query.term.NodeVariable;
8 12
9import java.util.Collections; 13import java.util.Collections;
10import java.util.List; 14import java.util.List;
11import java.util.Objects;
12
13public final class RelationalQuery implements Query<Boolean> {
14 private final Dnf dnf;
15 15
16public final class RelationalQuery extends Query<Boolean> {
16 RelationalQuery(Dnf dnf) { 17 RelationalQuery(Dnf dnf) {
17 for (var parameter : dnf.getParameters()) { 18 super(dnf);
18 if (!(parameter instanceof NodeVariable)) { 19 for (var parameter : dnf.getSymbolicParameters()) {
19 throw new IllegalArgumentException("Expected parameter %s of %s to be of sort %s, but got %s instead" 20 var parameterType = parameter.tryGetType();
20 .formatted(parameter, dnf, NodeSort.INSTANCE, parameter.getSort())); 21 if (parameterType.isPresent()) {
22 throw new IllegalArgumentException("Expected parameter %s of %s to be a node variable, got %s instead"
23 .formatted(parameter, dnf, parameterType.get().getName()));
21 } 24 }
22 } 25 }
23 this.dnf = dnf;
24 }
25
26 @Override
27 public String name() {
28 return dnf.name();
29 } 26 }
30 27
31 @Override 28 @Override
32 public int arity() { 29 public int arity() {
33 return dnf.arity(); 30 return getDnf().arity();
34 } 31 }
35 32
36 @Override 33 @Override
@@ -43,51 +40,27 @@ public final class RelationalQuery implements Query<Boolean> {
43 return false; 40 return false;
44 } 41 }
45 42
46 @Override
47 public Dnf getDnf() {
48 return dnf;
49 }
50
51 public CallLiteral call(CallPolarity polarity, List<NodeVariable> arguments) { 43 public CallLiteral call(CallPolarity polarity, List<NodeVariable> arguments) {
52 return dnf.call(polarity, Collections.unmodifiableList(arguments)); 44 return getDnf().call(polarity, Collections.unmodifiableList(arguments));
53 } 45 }
54 46
55 public CallLiteral call(CallPolarity polarity, NodeVariable... arguments) { 47 public CallLiteral call(CallPolarity polarity, NodeVariable... arguments) {
56 return dnf.call(polarity, arguments); 48 return getDnf().call(polarity, arguments);
57 } 49 }
58 50
59 public CallLiteral call(NodeVariable... arguments) { 51 public CallLiteral call(NodeVariable... arguments) {
60 return dnf.call(arguments); 52 return getDnf().call(arguments);
61 } 53 }
62 54
63 public CallLiteral callTransitive(NodeVariable left, NodeVariable right) { 55 public CallLiteral callTransitive(NodeVariable left, NodeVariable right) {
64 return dnf.callTransitive(left, right); 56 return getDnf().callTransitive(left, right);
65 } 57 }
66 58
67 public AssignedValue<Integer> count(List<NodeVariable> arguments) { 59 public AssignedValue<Integer> count(List<NodeVariable> arguments) {
68 return dnf.count(Collections.unmodifiableList(arguments)); 60 return getDnf().count(Collections.unmodifiableList(arguments));
69 } 61 }
70 62
71 public AssignedValue<Integer> count(NodeVariable... arguments) { 63 public AssignedValue<Integer> count(NodeVariable... arguments) {
72 return dnf.count(arguments); 64 return getDnf().count(arguments);
73 }
74
75
76 @Override
77 public boolean equals(Object o) {
78 if (this == o) return true;
79 if (o == null || getClass() != o.getClass()) return false;
80 RelationalQuery that = (RelationalQuery) o;
81 return dnf.equals(that.dnf);
82 }
83
84 @Override
85 public int hashCode() {
86 return Objects.hash(dnf);
87 }
88
89 @Override
90 public String toString() {
91 return dnf.toString();
92 } 65 }
93} 66}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/SymbolicParameter.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/SymbolicParameter.java
new file mode 100644
index 00000000..e0d3ba1f
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/SymbolicParameter.java
@@ -0,0 +1,52 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf;
7
8import tools.refinery.store.query.term.Parameter;
9import tools.refinery.store.query.term.ParameterDirection;
10import tools.refinery.store.query.term.Variable;
11
12import java.util.Objects;
13
14public final class SymbolicParameter extends Parameter {
15 private final Variable variable;
16
17 public SymbolicParameter(Variable variable, ParameterDirection direction) {
18 super(variable.tryGetType().orElse(null), direction);
19 this.variable = variable;
20 }
21
22 public Variable getVariable() {
23 return variable;
24 }
25
26 public boolean isUnifiable() {
27 return variable.isUnifiable();
28 }
29
30 @Override
31 public String toString() {
32 var direction = getDirection();
33 if (direction == ParameterDirection.OUT) {
34 return variable.toString();
35 }
36 return "%s %s".formatted(getDirection(), variable);
37 }
38
39 @Override
40 public boolean equals(Object o) {
41 if (this == o) return true;
42 if (o == null || getClass() != o.getClass()) return false;
43 if (!super.equals(o)) return false;
44 SymbolicParameter that = (SymbolicParameter) o;
45 return Objects.equals(variable, that.variable);
46 }
47
48 @Override
49 public int hashCode() {
50 return Objects.hash(super.hashCode(), variable);
51 }
52}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback0.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback0.java
new file mode 100644
index 00000000..d98dda2e
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback0.java
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9
10import java.util.Collection;
11
12@FunctionalInterface
13public interface ClauseCallback0 {
14 Collection<Literal> toLiterals();
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data0.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data0.java
new file mode 100644
index 00000000..4c01a527
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data0.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.NodeVariable;
10
11import java.util.Collection;
12
13@FunctionalInterface
14public interface ClauseCallback1Data0 {
15 Collection<Literal> toLiterals(NodeVariable v1);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data1.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data1.java
new file mode 100644
index 00000000..2c0cb6eb
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data1.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10
11import java.util.Collection;
12
13@FunctionalInterface
14public interface ClauseCallback1Data1<T> {
15 Collection<Literal> toLiterals(DataVariable<T> d1);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data0.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data0.java
new file mode 100644
index 00000000..d764bdba
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data0.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.NodeVariable;
10
11import java.util.Collection;
12
13@FunctionalInterface
14public interface ClauseCallback2Data0 {
15 Collection<Literal> toLiterals(NodeVariable v1, NodeVariable v2);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data1.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data1.java
new file mode 100644
index 00000000..140af03a
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data1.java
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12import java.util.Collection;
13
14@FunctionalInterface
15public interface ClauseCallback2Data1<T> {
16 Collection<Literal> toLiterals(NodeVariable v1, DataVariable<T> x1);
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data2.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data2.java
new file mode 100644
index 00000000..bfc8637c
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data2.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10
11import java.util.Collection;
12
13@FunctionalInterface
14public interface ClauseCallback2Data2<T1, T2> {
15 Collection<Literal> toLiterals(DataVariable<T1> x1, DataVariable<T2> x2);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data0.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data0.java
new file mode 100644
index 00000000..074df65b
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data0.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.NodeVariable;
10
11import java.util.Collection;
12
13@FunctionalInterface
14public interface ClauseCallback3Data0 {
15 Collection<Literal> toLiterals(NodeVariable v1, NodeVariable v2, NodeVariable v3);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data1.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data1.java
new file mode 100644
index 00000000..24ba5187
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data1.java
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12import java.util.Collection;
13
14@FunctionalInterface
15public interface ClauseCallback3Data1<T> {
16 Collection<Literal> toLiterals(NodeVariable v1, NodeVariable v2, DataVariable<T> d1);
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data2.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data2.java
new file mode 100644
index 00000000..2a2e837a
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data2.java
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12import java.util.Collection;
13
14@FunctionalInterface
15public interface ClauseCallback3Data2<T1, T2> {
16 Collection<Literal> toLiterals(NodeVariable v1, DataVariable<T1> d1, DataVariable<T2> d2);
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data3.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data3.java
new file mode 100644
index 00000000..8f4bdd01
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data3.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10
11import java.util.Collection;
12
13@FunctionalInterface
14public interface ClauseCallback3Data3<T1, T2, T3> {
15 Collection<Literal> toLiterals(DataVariable<T1> d1, DataVariable<T2> d2, DataVariable<T3> d3);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data0.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data0.java
new file mode 100644
index 00000000..ed0f87b2
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data0.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.NodeVariable;
10
11import java.util.Collection;
12
13@FunctionalInterface
14public interface ClauseCallback4Data0 {
15 Collection<Literal> toLiterals(NodeVariable v1, NodeVariable v2, NodeVariable v3, NodeVariable v4);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data1.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data1.java
new file mode 100644
index 00000000..9b27e2e1
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data1.java
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12import java.util.Collection;
13
14@FunctionalInterface
15public interface ClauseCallback4Data1<T> {
16 Collection<Literal> toLiterals(NodeVariable v1, NodeVariable v2, NodeVariable v3, DataVariable<T> d1);
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data2.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data2.java
new file mode 100644
index 00000000..cbc4808e
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data2.java
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12import java.util.Collection;
13
14@FunctionalInterface
15public interface ClauseCallback4Data2<T1, T2> {
16 Collection<Literal> toLiterals(NodeVariable v1, NodeVariable v2, DataVariable<T1> d1, DataVariable<T2> d2);
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data3.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data3.java
new file mode 100644
index 00000000..a6258f36
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data3.java
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12import java.util.Collection;
13
14@FunctionalInterface
15public interface ClauseCallback4Data3<T1, T2, T3> {
16 Collection<Literal> toLiterals(NodeVariable v1, DataVariable<T1> d1, DataVariable<T2> d2, DataVariable<T3> d3);
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data4.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data4.java
new file mode 100644
index 00000000..b52a911a
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data4.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.literal.Literal;
9import tools.refinery.store.query.term.DataVariable;
10
11import java.util.Collection;
12
13@FunctionalInterface
14public interface ClauseCallback4Data4<T1, T2, T3, T4> {
15 Collection<Literal> toLiterals(DataVariable<T1> d1, DataVariable<T2> d2, DataVariable<T3> d3, DataVariable<T4> d4);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback0.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback0.java
new file mode 100644
index 00000000..63b3eee6
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback0.java
@@ -0,0 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable;
10
11@FunctionalInterface
12public interface FunctionalQueryCallback0<T> {
13 void accept(FunctionalQueryBuilder<T> builder, DataVariable<T> output);
14}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback1.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback1.java
new file mode 100644
index 00000000..1295a118
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback1.java
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12@FunctionalInterface
13public interface FunctionalQueryCallback1<T> {
14 void accept(FunctionalQueryBuilder<T> builder, NodeVariable p1, DataVariable<T> output);
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback2.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback2.java
new file mode 100644
index 00000000..d5b7f9ff
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback2.java
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12@FunctionalInterface
13public interface FunctionalQueryCallback2<T> {
14 void accept(FunctionalQueryBuilder<T> builder, NodeVariable p1, NodeVariable p2, DataVariable<T> output);
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback3.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback3.java
new file mode 100644
index 00000000..dc8404a0
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback3.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12@FunctionalInterface
13public interface FunctionalQueryCallback3<T> {
14 void accept(FunctionalQueryBuilder<T> builder, NodeVariable p1, NodeVariable p2, NodeVariable p3,
15 DataVariable<T> output);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback4.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback4.java
new file mode 100644
index 00000000..b6d3ddb0
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback4.java
@@ -0,0 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable;
11
12@FunctionalInterface
13public interface FunctionalQueryCallback4<T> {
14 void accept(FunctionalQueryBuilder<T> builder, NodeVariable p1, NodeVariable p2, NodeVariable p3, NodeVariable p4,
15 DataVariable<T> output);
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback0.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback0.java
new file mode 100644
index 00000000..3cf1de48
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback0.java
@@ -0,0 +1,13 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.QueryBuilder;
9
10@FunctionalInterface
11public interface QueryCallback0 {
12 void accept(QueryBuilder builder);
13}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback1.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback1.java
new file mode 100644
index 00000000..0a150955
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback1.java
@@ -0,0 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.QueryBuilder;
9import tools.refinery.store.query.term.NodeVariable;
10
11@FunctionalInterface
12public interface QueryCallback1 {
13 void accept(QueryBuilder builder, NodeVariable p1);
14}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback2.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback2.java
new file mode 100644
index 00000000..9493a7b4
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback2.java
@@ -0,0 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.QueryBuilder;
9import tools.refinery.store.query.term.NodeVariable;
10
11@FunctionalInterface
12public interface QueryCallback2 {
13 void accept(QueryBuilder builder, NodeVariable p1, NodeVariable p2);
14}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback3.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback3.java
new file mode 100644
index 00000000..358c7da7
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback3.java
@@ -0,0 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.QueryBuilder;
9import tools.refinery.store.query.term.NodeVariable;
10
11@FunctionalInterface
12public interface QueryCallback3 {
13 void accept(QueryBuilder builder, NodeVariable p1, NodeVariable p2, NodeVariable p3);
14}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback4.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback4.java
new file mode 100644
index 00000000..890dda16
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback4.java
@@ -0,0 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf.callback;
7
8import tools.refinery.store.query.dnf.QueryBuilder;
9import tools.refinery.store.query.term.NodeVariable;
10
11@FunctionalInterface
12public interface QueryCallback4 {
13 void accept(QueryBuilder builder, NodeVariable p1, NodeVariable p2, NodeVariable p3, NodeVariable p4);
14}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DeepDnfEqualityChecker.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DeepDnfEqualityChecker.java
index c3bc3ea3..1eeb5723 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DeepDnfEqualityChecker.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DeepDnfEqualityChecker.java
@@ -1,6 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.equality; 6package tools.refinery.store.query.equality;
2 7
3import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.store.query.dnf.Dnf;
9import tools.refinery.store.query.dnf.DnfClause;
10import tools.refinery.store.query.dnf.SymbolicParameter;
11import tools.refinery.store.query.literal.Literal;
4import tools.refinery.store.util.CycleDetectingMapper; 12import tools.refinery.store.util.CycleDetectingMapper;
5 13
6import java.util.List; 14import java.util.List;
@@ -14,6 +22,45 @@ public class DeepDnfEqualityChecker implements DnfEqualityChecker {
14 return mapper.map(new Pair(left, right)); 22 return mapper.map(new Pair(left, right));
15 } 23 }
16 24
25 public boolean dnfEqualRaw(List<SymbolicParameter> symbolicParameters,
26 List<? extends List<? extends Literal>> clauses, Dnf other) {
27 int arity = symbolicParameters.size();
28 if (arity != other.arity()) {
29 return false;
30 }
31 for (int i = 0; i < arity; i++) {
32 if (!symbolicParameters.get(i).getDirection().equals(other.getSymbolicParameters().get(i).getDirection())) {
33 return false;
34 }
35 }
36 int numClauses = clauses.size();
37 if (numClauses != other.getClauses().size()) {
38 return false;
39 }
40 for (int i = 0; i < numClauses; i++) {
41 var literalEqualityHelper = new LiteralEqualityHelper(this, symbolicParameters,
42 other.getSymbolicParameters());
43 if (!equalsWithSubstitutionRaw(literalEqualityHelper, clauses.get(i), other.getClauses().get(i))) {
44 return false;
45 }
46 }
47 return true;
48 }
49
50 private boolean equalsWithSubstitutionRaw(LiteralEqualityHelper helper, List<? extends Literal> literals,
51 DnfClause other) {
52 int size = literals.size();
53 if (size != other.literals().size()) {
54 return false;
55 }
56 for (int i = 0; i < size; i++) {
57 if (!literals.get(i).equalsWithSubstitution(helper, other.literals().get(i))) {
58 return false;
59 }
60 }
61 return true;
62 }
63
17 protected boolean doCheckEqual(Pair pair) { 64 protected boolean doCheckEqual(Pair pair) {
18 return pair.left.equalsWithSubstitution(this, pair.right); 65 return pair.left.equalsWithSubstitution(this, pair.right);
19 } 66 }
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DnfEqualityChecker.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DnfEqualityChecker.java
index 6b1f2076..4a8bee3b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DnfEqualityChecker.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DnfEqualityChecker.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.equality; 6package tools.refinery.store.query.equality;
2 7
3import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.store.query.dnf.Dnf;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralEqualityHelper.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralEqualityHelper.java
index 07d261ea..9315fb30 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralEqualityHelper.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralEqualityHelper.java
@@ -1,6 +1,12 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.equality; 6package tools.refinery.store.query.equality;
2 7
3import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.store.query.dnf.Dnf;
9import tools.refinery.store.query.dnf.SymbolicParameter;
4import tools.refinery.store.query.term.Variable; 10import tools.refinery.store.query.term.Variable;
5 11
6import java.util.HashMap; 12import java.util.HashMap;
@@ -12,8 +18,8 @@ public class LiteralEqualityHelper {
12 private final Map<Variable, Variable> leftToRight; 18 private final Map<Variable, Variable> leftToRight;
13 private final Map<Variable, Variable> rightToLeft; 19 private final Map<Variable, Variable> rightToLeft;
14 20
15 public LiteralEqualityHelper(DnfEqualityChecker dnfEqualityChecker, List<Variable> leftParameters, 21 public LiteralEqualityHelper(DnfEqualityChecker dnfEqualityChecker, List<SymbolicParameter> leftParameters,
16 List<Variable> rightParameters) { 22 List<SymbolicParameter> rightParameters) {
17 this.dnfEqualityChecker = dnfEqualityChecker; 23 this.dnfEqualityChecker = dnfEqualityChecker;
18 var arity = leftParameters.size(); 24 var arity = leftParameters.size();
19 if (arity != rightParameters.size()) { 25 if (arity != rightParameters.size()) {
@@ -22,7 +28,7 @@ public class LiteralEqualityHelper {
22 leftToRight = new HashMap<>(arity); 28 leftToRight = new HashMap<>(arity);
23 rightToLeft = new HashMap<>(arity); 29 rightToLeft = new HashMap<>(arity);
24 for (int i = 0; i < arity; i++) { 30 for (int i = 0; i < arity; i++) {
25 if (!variableEqual(leftParameters.get(i), rightParameters.get(i))) { 31 if (!variableEqual(leftParameters.get(i).getVariable(), rightParameters.get(i).getVariable())) {
26 throw new IllegalArgumentException("Parameter lists cannot be unified: duplicate parameter " + i); 32 throw new IllegalArgumentException("Parameter lists cannot be unified: duplicate parameter " + i);
27 } 33 }
28 } 34 }
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCallLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCallLiteral.java
index 657ca26b..8ef8e8b4 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCallLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCallLiteral.java
@@ -1,17 +1,26 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.Constraint; 8import tools.refinery.store.query.Constraint;
4import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.store.query.equality.LiteralEqualityHelper;
5import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.store.query.substitution.Substitution;
11import tools.refinery.store.query.term.ParameterDirection;
6import tools.refinery.store.query.term.Variable; 12import tools.refinery.store.query.term.Variable;
7 13
8import java.util.List; 14import java.util.*;
9import java.util.Objects;
10 15
11public abstract class AbstractCallLiteral implements Literal { 16public abstract class AbstractCallLiteral implements Literal {
12 private final Constraint target; 17 private final Constraint target;
13 private final List<Variable> arguments; 18 private final List<Variable> arguments;
19 private final Set<Variable> inArguments;
20 private final Set<Variable> outArguments;
14 21
22 // Use exhaustive switch over enums.
23 @SuppressWarnings("squid:S1301")
15 protected AbstractCallLiteral(Constraint target, List<Variable> arguments) { 24 protected AbstractCallLiteral(Constraint target, List<Variable> arguments) {
16 int arity = target.arity(); 25 int arity = target.arity();
17 if (arguments.size() != arity) { 26 if (arguments.size() != arity) {
@@ -20,14 +29,46 @@ public abstract class AbstractCallLiteral implements Literal {
20 } 29 }
21 this.target = target; 30 this.target = target;
22 this.arguments = arguments; 31 this.arguments = arguments;
23 var sorts = target.getSorts(); 32 var mutableInArguments = new LinkedHashSet<Variable>();
33 var mutableOutArguments = new LinkedHashSet<Variable>();
34 var parameters = target.getParameters();
24 for (int i = 0; i < arity; i++) { 35 for (int i = 0; i < arity; i++) {
25 var argument = arguments.get(i); 36 var argument = arguments.get(i);
26 var sort = sorts.get(i); 37 var parameter = parameters.get(i);
27 if (!sort.isInstance(argument)) { 38 if (!parameter.isAssignable(argument)) {
28 throw new IllegalArgumentException("Required argument %d of %s to be of sort %s, but got %s instead" 39 throw new IllegalArgumentException("Argument %d of %s is not assignable to parameter %s"
29 .formatted(i, target, sort, argument.getSort())); 40 .formatted(i, target, parameter));
30 } 41 }
42 switch (parameter.getDirection()) {
43 case IN -> {
44 if (mutableOutArguments.remove(argument)) {
45 checkInOutUnifiable(argument);
46 }
47 mutableInArguments.add(argument);
48 }
49 case OUT -> {
50 if (mutableInArguments.contains(argument)) {
51 checkInOutUnifiable(argument);
52 } else if (!mutableOutArguments.add(argument)) {
53 checkDuplicateOutUnifiable(argument);
54 }
55 }
56 }
57 }
58 inArguments = Collections.unmodifiableSet(mutableInArguments);
59 outArguments = Collections.unmodifiableSet(mutableOutArguments);
60 }
61
62 private static void checkInOutUnifiable(Variable argument) {
63 if (!argument.isUnifiable()) {
64 throw new IllegalArgumentException("Argument %s cannot appear with both %s and %s direction"
65 .formatted(argument, ParameterDirection.IN, ParameterDirection.OUT));
66 }
67 }
68
69 private static void checkDuplicateOutUnifiable(Variable argument) {
70 if (!argument.isUnifiable()) {
71 throw new IllegalArgumentException("Argument %s cannot be bound multiple times".formatted(argument));
31 } 72 }
32 } 73 }
33 74
@@ -39,6 +80,28 @@ public abstract class AbstractCallLiteral implements Literal {
39 return arguments; 80 return arguments;
40 } 81 }
41 82
83 protected Set<Variable> getArgumentsOfDirection(ParameterDirection direction) {
84 return switch (direction) {
85 case IN -> inArguments;
86 case OUT -> outArguments;
87 };
88 }
89
90 @Override
91 public Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause) {
92 var inputVariables = new LinkedHashSet<>(getArgumentsOfDirection(ParameterDirection.OUT));
93 inputVariables.retainAll(positiveVariablesInClause);
94 inputVariables.addAll(getArgumentsOfDirection(ParameterDirection.IN));
95 return Collections.unmodifiableSet(inputVariables);
96 }
97
98 @Override
99 public Set<Variable> getPrivateVariables(Set<? extends Variable> positiveVariablesInClause) {
100 var privateVariables = new LinkedHashSet<>(getArgumentsOfDirection(ParameterDirection.OUT));
101 privateVariables.removeAll(positiveVariablesInClause);
102 return Collections.unmodifiableSet(privateVariables);
103 }
104
42 @Override 105 @Override
43 public Literal substitute(Substitution substitution) { 106 public Literal substitute(Substitution substitution) {
44 var substitutedArguments = arguments.stream().map(substitution::getSubstitute).toList(); 107 var substitutedArguments = arguments.stream().map(substitution::getSubstitute).toList();
@@ -75,6 +138,6 @@ public abstract class AbstractCallLiteral implements Literal {
75 138
76 @Override 139 @Override
77 public int hashCode() { 140 public int hashCode() {
78 return Objects.hash(target, arguments); 141 return Objects.hash(getClass(), target, arguments);
79 } 142 }
80} 143}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AggregationLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AggregationLiteral.java
index df64839c..3a5eb5c7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AggregationLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AggregationLiteral.java
@@ -1,11 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.Constraint; 8import tools.refinery.store.query.Constraint;
4import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.store.query.equality.LiteralEqualityHelper;
5import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.store.query.substitution.Substitution;
6import tools.refinery.store.query.term.Aggregator; 11import tools.refinery.store.query.term.*;
7import tools.refinery.store.query.term.DataVariable;
8import tools.refinery.store.query.term.Variable;
9 12
10import java.util.List; 13import java.util.List;
11import java.util.Objects; 14import java.util.Objects;
@@ -23,14 +26,14 @@ public class AggregationLiteral<R, T> extends AbstractCallLiteral {
23 throw new IllegalArgumentException("Input variable %s must of type %s, got %s instead".formatted( 26 throw new IllegalArgumentException("Input variable %s must of type %s, got %s instead".formatted(
24 inputVariable, aggregator.getInputType().getName(), inputVariable.getType().getName())); 27 inputVariable, aggregator.getInputType().getName(), inputVariable.getType().getName()));
25 } 28 }
29 if (!getArgumentsOfDirection(ParameterDirection.OUT).contains(inputVariable)) {
30 throw new IllegalArgumentException("Input variable %s must be bound with direction %s in the argument list"
31 .formatted(inputVariable, ParameterDirection.OUT));
32 }
26 if (!resultVariable.getType().equals(aggregator.getResultType())) { 33 if (!resultVariable.getType().equals(aggregator.getResultType())) {
27 throw new IllegalArgumentException("Result variable %s must of type %s, got %s instead".formatted( 34 throw new IllegalArgumentException("Result variable %s must of type %s, got %s instead".formatted(
28 resultVariable, aggregator.getResultType().getName(), resultVariable.getType().getName())); 35 resultVariable, aggregator.getResultType().getName(), resultVariable.getType().getName()));
29 } 36 }
30 if (!arguments.contains(inputVariable)) {
31 throw new IllegalArgumentException("Input variable %s must appear in the argument list".formatted(
32 inputVariable));
33 }
34 if (arguments.contains(resultVariable)) { 37 if (arguments.contains(resultVariable)) {
35 throw new IllegalArgumentException("Result variable %s must not appear in the argument list".formatted( 38 throw new IllegalArgumentException("Result variable %s must not appear in the argument list".formatted(
36 resultVariable)); 39 resultVariable));
@@ -53,11 +56,33 @@ public class AggregationLiteral<R, T> extends AbstractCallLiteral {
53 } 56 }
54 57
55 @Override 58 @Override
56 public Set<Variable> getBoundVariables() { 59 public Set<Variable> getOutputVariables() {
57 return Set.of(resultVariable); 60 return Set.of(resultVariable);
58 } 61 }
59 62
60 @Override 63 @Override
64 public Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause) {
65 if (positiveVariablesInClause.contains(inputVariable)) {
66 throw new IllegalArgumentException("Aggregation variable %s must not be bound".formatted(inputVariable));
67 }
68 return super.getInputVariables(positiveVariablesInClause);
69 }
70
71 @Override
72 public Literal reduce() {
73 var reduction = getTarget().getReduction();
74 return switch (reduction) {
75 case ALWAYS_FALSE -> {
76 var emptyValue = aggregator.getEmptyResult();
77 yield emptyValue == null ? BooleanLiteral.FALSE :
78 resultVariable.assign(new ConstantTerm<>(resultVariable.getType(), emptyValue));
79 }
80 case ALWAYS_TRUE -> throw new IllegalArgumentException("Trying to aggregate over an infinite set");
81 case NOT_REDUCIBLE -> this;
82 };
83 }
84
85 @Override
61 protected Literal doSubstitute(Substitution substitution, List<Variable> substitutedArguments) { 86 protected Literal doSubstitute(Substitution substitution, List<Variable> substitutedArguments) {
62 return new AggregationLiteral<>(substitution.getTypeSafeSubstitute(resultVariable), aggregator, 87 return new AggregationLiteral<>(substitution.getTypeSafeSubstitute(resultVariable), aggregator,
63 substitution.getTypeSafeSubstitute(inputVariable), getTarget(), substitutedArguments); 88 substitution.getTypeSafeSubstitute(inputVariable), getTarget(), substitutedArguments);
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssignLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssignLiteral.java
index 52ac42d7..dbf999a2 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssignLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssignLiteral.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
@@ -6,6 +11,8 @@ import tools.refinery.store.query.term.DataVariable;
6import tools.refinery.store.query.term.Term; 11import tools.refinery.store.query.term.Term;
7import tools.refinery.store.query.term.Variable; 12import tools.refinery.store.query.term.Variable;
8 13
14import java.util.Collections;
15import java.util.Objects;
9import java.util.Set; 16import java.util.Set;
10 17
11public record AssignLiteral<T>(DataVariable<T> variable, Term<T> term) implements Literal { 18public record AssignLiteral<T>(DataVariable<T> variable, Term<T> term) implements Literal {
@@ -14,14 +21,29 @@ public record AssignLiteral<T>(DataVariable<T> variable, Term<T> term) implement
14 throw new IllegalArgumentException("Term %s must be of type %s, got %s instead".formatted( 21 throw new IllegalArgumentException("Term %s must be of type %s, got %s instead".formatted(
15 term, variable.getType().getName(), term.getType().getName())); 22 term, variable.getType().getName(), term.getType().getName()));
16 } 23 }
24 var inputVariables = term.getInputVariables();
25 if (inputVariables.contains(variable)) {
26 throw new IllegalArgumentException("Result variable %s must not appear in the term %s".formatted(
27 variable, term));
28 }
17 } 29 }
18 30
19 @Override 31 @Override
20 public Set<Variable> getBoundVariables() { 32 public Set<Variable> getOutputVariables() {
21 return Set.of(variable); 33 return Set.of(variable);
22 } 34 }
23 35
24 @Override 36 @Override
37 public Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause) {
38 return Collections.unmodifiableSet(term.getInputVariables());
39 }
40
41 @Override
42 public Set<Variable> getPrivateVariables(Set<? extends Variable> positiveVariablesInClause) {
43 return Set.of();
44 }
45
46 @Override
25 public Literal substitute(Substitution substitution) { 47 public Literal substitute(Substitution substitution) {
26 return new AssignLiteral<>(substitution.getTypeSafeSubstitute(variable), term.substitute(substitution)); 48 return new AssignLiteral<>(substitution.getTypeSafeSubstitute(variable), term.substitute(substitution));
27 } 49 }
@@ -36,9 +58,22 @@ public record AssignLiteral<T>(DataVariable<T> variable, Term<T> term) implement
36 otherLetLiteral.term); 58 otherLetLiteral.term);
37 } 59 }
38 60
39
40 @Override 61 @Override
41 public String toString() { 62 public String toString() {
42 return "%s is (%s)".formatted(variable, term); 63 return "%s is (%s)".formatted(variable, term);
43 } 64 }
65
66 @Override
67 public boolean equals(Object obj) {
68 if (obj == this) return true;
69 if (obj == null || obj.getClass() != this.getClass()) return false;
70 var that = (AssignLiteral<?>) obj;
71 return Objects.equals(this.variable, that.variable) &&
72 Objects.equals(this.term, that.term);
73 }
74
75 @Override
76 public int hashCode() {
77 return Objects.hash(getClass(), variable, term);
78 }
44} 79}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssumeLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssumeLiteral.java
index 0b4267b4..1ca04c77 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssumeLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssumeLiteral.java
@@ -1,11 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
4import tools.refinery.store.query.substitution.Substitution; 9import tools.refinery.store.query.substitution.Substitution;
10import tools.refinery.store.query.term.ConstantTerm;
5import tools.refinery.store.query.term.Term; 11import tools.refinery.store.query.term.Term;
6import tools.refinery.store.query.term.Variable; 12import tools.refinery.store.query.term.Variable;
7import tools.refinery.store.query.term.bool.BoolConstantTerm;
8 13
14import java.util.Collections;
15import java.util.Objects;
9import java.util.Set; 16import java.util.Set;
10 17
11public record AssumeLiteral(Term<Boolean> term) implements Literal { 18public record AssumeLiteral(Term<Boolean> term) implements Literal {
@@ -17,11 +24,22 @@ public record AssumeLiteral(Term<Boolean> term) implements Literal {
17 } 24 }
18 25
19 @Override 26 @Override
20 public Set<Variable> getBoundVariables() { 27 public Set<Variable> getOutputVariables() {
21 return Set.of(); 28 return Set.of();
22 } 29 }
23 30
24 @Override 31 @Override
32 public Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause) {
33 return Collections.unmodifiableSet(term.getInputVariables());
34 }
35
36 @Override
37 public Set<Variable> getPrivateVariables(Set<? extends Variable> positiveVariablesInClause) {
38 return Set.of();
39 }
40
41
42 @Override
25 public Literal substitute(Substitution substitution) { 43 public Literal substitute(Substitution substitution) {
26 return new AssumeLiteral(term.substitute(substitution)); 44 return new AssumeLiteral(term.substitute(substitution));
27 } 45 }
@@ -36,18 +54,30 @@ public record AssumeLiteral(Term<Boolean> term) implements Literal {
36 } 54 }
37 55
38 @Override 56 @Override
39 public LiteralReduction getReduction() { 57 public Literal reduce() {
40 if (BoolConstantTerm.TRUE.equals(term)) { 58 if (term instanceof ConstantTerm<Boolean> constantTerm) {
41 return LiteralReduction.ALWAYS_TRUE; 59 // Return {@link BooleanLiteral#FALSE} for {@code false} or {@code null} literals.
42 } else if (BoolConstantTerm.FALSE.equals(term)) { 60 return Boolean.TRUE.equals(constantTerm.getValue()) ? BooleanLiteral.TRUE :
43 return LiteralReduction.ALWAYS_FALSE; 61 BooleanLiteral.FALSE;
44 } else {
45 return LiteralReduction.NOT_REDUCIBLE;
46 } 62 }
63 return this;
47 } 64 }
48 65
49 @Override 66 @Override
50 public String toString() { 67 public String toString() {
51 return "(%s)".formatted(term); 68 return "(%s)".formatted(term);
52 } 69 }
70
71 @Override
72 public boolean equals(Object obj) {
73 if (obj == this) return true;
74 if (obj == null || obj.getClass() != this.getClass()) return false;
75 var that = (AssumeLiteral) obj;
76 return Objects.equals(this.term, that.term);
77 }
78
79 @Override
80 public int hashCode() {
81 return Objects.hash(getClass(), term);
82 }
53} 83}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/BooleanLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/BooleanLiteral.java
index 38be61a4..f312d202 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/BooleanLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/BooleanLiteral.java
@@ -1,8 +1,13 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.term.Variable;
4import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
5import tools.refinery.store.query.substitution.Substitution; 9import tools.refinery.store.query.substitution.Substitution;
10import tools.refinery.store.query.term.Variable;
6 11
7import java.util.Set; 12import java.util.Set;
8 13
@@ -17,19 +22,24 @@ public enum BooleanLiteral implements CanNegate<BooleanLiteral> {
17 } 22 }
18 23
19 @Override 24 @Override
20 public Set<Variable> getBoundVariables() { 25 public Set<Variable> getOutputVariables() {
21 return Set.of(); 26 return Set.of();
22 } 27 }
23 28
24 @Override 29 @Override
25 public Literal substitute(Substitution substitution) { 30 public Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause) {
26 // No variables to substitute. 31 return Set.of();
27 return this;
28 } 32 }
29 33
30 @Override 34 @Override
31 public LiteralReduction getReduction() { 35 public Set<Variable> getPrivateVariables(Set<? extends Variable> positiveVariablesInClause) {
32 return value ? LiteralReduction.ALWAYS_TRUE : LiteralReduction.ALWAYS_FALSE; 36 return Set.of();
37 }
38
39 @Override
40 public Literal substitute(Substitution substitution) {
41 // No variables to substitute.
42 return this;
33 } 43 }
34 44
35 @Override 45 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallLiteral.java
index 78fae7f5..29772aee 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallLiteral.java
@@ -1,26 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.Constraint; 8import tools.refinery.store.query.Constraint;
4import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.store.query.equality.LiteralEqualityHelper;
5import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.store.query.substitution.Substitution;
6import tools.refinery.store.query.term.NodeSort; 11import tools.refinery.store.query.term.ParameterDirection;
7import tools.refinery.store.query.term.Variable; 12import tools.refinery.store.query.term.Variable;
8 13
9import java.util.List; 14import java.util.*;
10import java.util.Objects;
11import java.util.Set;
12 15
13public final class CallLiteral extends AbstractCallLiteral implements CanNegate<CallLiteral> { 16public final class CallLiteral extends AbstractCallLiteral implements CanNegate<CallLiteral> {
14 private final CallPolarity polarity; 17 private final CallPolarity polarity;
15 18
16 public CallLiteral(CallPolarity polarity, Constraint target, List<Variable> arguments) { 19 public CallLiteral(CallPolarity polarity, Constraint target, List<Variable> arguments) {
17 super(target, arguments); 20 super(target, arguments);
21 var parameters = target.getParameters();
22 int arity = target.arity();
18 if (polarity.isTransitive()) { 23 if (polarity.isTransitive()) {
19 if (target.arity() != 2) { 24 if (arity != 2) {
20 throw new IllegalArgumentException("Transitive closures can only take binary relations"); 25 throw new IllegalArgumentException("Transitive closures can only take binary relations");
21 } 26 }
22 var sorts = target.getSorts(); 27 if (parameters.get(0).isDataVariable() || parameters.get(1).isDataVariable()) {
23 if (!sorts.get(0).equals(NodeSort.INSTANCE) || !sorts.get(1).equals(NodeSort.INSTANCE)) {
24 throw new IllegalArgumentException("Transitive closures can only be computed over nodes"); 28 throw new IllegalArgumentException("Transitive closures can only be computed over nodes");
25 } 29 }
26 } 30 }
@@ -32,19 +36,43 @@ public final class CallLiteral extends AbstractCallLiteral implements CanNegate<
32 } 36 }
33 37
34 @Override 38 @Override
35 public Set<Variable> getBoundVariables() { 39 protected Literal doSubstitute(Substitution substitution, List<Variable> substitutedArguments) {
36 return polarity.isPositive() ? Set.copyOf(getArguments()) : Set.of(); 40 return new CallLiteral(polarity, getTarget(), substitutedArguments);
37 } 41 }
38 42
39 @Override 43 @Override
40 protected Literal doSubstitute(Substitution substitution, List<Variable> substitutedArguments) { 44 public Set<Variable> getOutputVariables() {
41 return new CallLiteral(polarity, getTarget(), substitutedArguments); 45 if (polarity.isPositive()) {
46 return getArgumentsOfDirection(ParameterDirection.OUT);
47 }
48 return Set.of();
49 }
50
51 @Override
52 public Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause) {
53 if (polarity.isPositive()) {
54 return getArgumentsOfDirection(ParameterDirection.IN);
55 }
56 return super.getInputVariables(positiveVariablesInClause);
57 }
58
59 @Override
60 public Set<Variable> getPrivateVariables(Set<? extends Variable> positiveVariablesInClause) {
61 if (polarity.isPositive()) {
62 return Set.of();
63 }
64 return super.getPrivateVariables(positiveVariablesInClause);
42 } 65 }
43 66
44 @Override 67 @Override
45 public LiteralReduction getReduction() { 68 public Literal reduce() {
46 var reduction = getTarget().getReduction(); 69 var reduction = getTarget().getReduction();
47 return polarity.isPositive() ? reduction : reduction.negate(); 70 var negatedReduction = polarity.isPositive() ? reduction : reduction.negate();
71 return switch (negatedReduction) {
72 case ALWAYS_TRUE -> BooleanLiteral.TRUE;
73 case ALWAYS_FALSE -> BooleanLiteral.FALSE;
74 default -> this;
75 };
48 } 76 }
49 77
50 @Override 78 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallPolarity.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallPolarity.java
index 84b4b771..ca70b0fd 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallPolarity.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallPolarity.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3public enum CallPolarity { 8public enum CallPolarity {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CanNegate.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CanNegate.java
index 3e159c43..35dcb3fb 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CanNegate.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CanNegate.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3public interface CanNegate<T extends CanNegate<T>> extends Literal { 8public interface CanNegate<T extends CanNegate<T>> extends Literal {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java
index 93fa3df0..73545620 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
@@ -5,15 +10,26 @@ import tools.refinery.store.query.substitution.Substitution;
5import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.store.query.term.NodeVariable;
6import tools.refinery.store.query.term.Variable; 11import tools.refinery.store.query.term.Variable;
7 12
13import java.util.Objects;
8import java.util.Set; 14import java.util.Set;
9 15
10public record ConstantLiteral(NodeVariable variable, int nodeId) implements Literal { 16public record ConstantLiteral(NodeVariable variable, int nodeId) implements Literal {
11 @Override 17 @Override
12 public Set<Variable> getBoundVariables() { 18 public Set<Variable> getOutputVariables() {
13 return Set.of(variable); 19 return Set.of(variable);
14 } 20 }
15 21
16 @Override 22 @Override
23 public Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause) {
24 return Set.of();
25 }
26
27 @Override
28 public Set<Variable> getPrivateVariables(Set<? extends Variable> positiveVariablesInClause) {
29 return Set.of();
30 }
31
32 @Override
17 public ConstantLiteral substitute(Substitution substitution) { 33 public ConstantLiteral substitute(Substitution substitution) {
18 return new ConstantLiteral(substitution.getTypeSafeSubstitute(variable), nodeId); 34 return new ConstantLiteral(substitution.getTypeSafeSubstitute(variable), nodeId);
19 } 35 }
@@ -27,8 +43,23 @@ public record ConstantLiteral(NodeVariable variable, int nodeId) implements Lite
27 return helper.variableEqual(variable, otherConstantLiteral.variable) && nodeId == otherConstantLiteral.nodeId; 43 return helper.variableEqual(variable, otherConstantLiteral.variable) && nodeId == otherConstantLiteral.nodeId;
28 } 44 }
29 45
46
30 @Override 47 @Override
31 public String toString() { 48 public String toString() {
32 return "%s === @Constant %d".formatted(variable, nodeId); 49 return "%s === @Constant %d".formatted(variable, nodeId);
33 } 50 }
51
52 @Override
53 public boolean equals(Object obj) {
54 if (obj == this) return true;
55 if (obj == null || obj.getClass() != this.getClass()) return false;
56 var that = (ConstantLiteral) obj;
57 return Objects.equals(this.variable, that.variable) &&
58 this.nodeId == that.nodeId;
59 }
60
61 @Override
62 public int hashCode() {
63 return Objects.hash(getClass(), variable, nodeId);
64 }
34} 65}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CountLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CountLiteral.java
index 32e7ba3a..4d4749c8 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CountLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CountLiteral.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.Constraint; 8import tools.refinery.store.query.Constraint;
@@ -5,6 +10,7 @@ import tools.refinery.store.query.equality.LiteralEqualityHelper;
5import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.store.query.substitution.Substitution;
6import tools.refinery.store.query.term.DataVariable; 11import tools.refinery.store.query.term.DataVariable;
7import tools.refinery.store.query.term.Variable; 12import tools.refinery.store.query.term.Variable;
13import tools.refinery.store.query.term.int_.IntTerms;
8 14
9import java.util.List; 15import java.util.List;
10import java.util.Objects; 16import java.util.Objects;
@@ -31,11 +37,23 @@ public class CountLiteral extends AbstractCallLiteral {
31 } 37 }
32 38
33 @Override 39 @Override
34 public Set<Variable> getBoundVariables() { 40 public Set<Variable> getOutputVariables() {
35 return Set.of(resultVariable); 41 return Set.of(resultVariable);
36 } 42 }
37 43
38 @Override 44 @Override
45 public Literal reduce() {
46 var reduction = getTarget().getReduction();
47 return switch (reduction) {
48 case ALWAYS_FALSE -> getResultVariable().assign(IntTerms.constant(0));
49 // The only way a constant {@code true} predicate can be called in a negative position is to have all of
50 // its arguments bound as input variables. Thus, there will only be a single match.
51 case ALWAYS_TRUE -> getResultVariable().assign(IntTerms.constant(1));
52 case NOT_REDUCIBLE -> this;
53 };
54 }
55
56 @Override
39 protected Literal doSubstitute(Substitution substitution, List<Variable> substitutedArguments) { 57 protected Literal doSubstitute(Substitution substitution, List<Variable> substitutedArguments) {
40 return new CountLiteral(substitution.getTypeSafeSubstitute(resultVariable), getTarget(), substitutedArguments); 58 return new CountLiteral(substitution.getTypeSafeSubstitute(resultVariable), getTarget(), substitutedArguments);
41 } 59 }
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/EquivalenceLiteral.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/EquivalenceLiteral.java
index 4dc86b98..28ba7625 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/EquivalenceLiteral.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/EquivalenceLiteral.java
@@ -1,18 +1,32 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.term.NodeVariable;
4import tools.refinery.store.query.term.Variable;
5import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
6import tools.refinery.store.query.substitution.Substitution; 9import tools.refinery.store.query.substitution.Substitution;
10import tools.refinery.store.query.term.NodeVariable;
11import tools.refinery.store.query.term.Variable;
7 12
13import java.util.Objects;
8import java.util.Set; 14import java.util.Set;
9 15
10public record EquivalenceLiteral(boolean positive, NodeVariable left, NodeVariable right) 16public record EquivalenceLiteral(boolean positive, NodeVariable left, NodeVariable right)
11 implements CanNegate<EquivalenceLiteral> { 17 implements CanNegate<EquivalenceLiteral> {
12 @Override 18 @Override
13 public Set<Variable> getBoundVariables() { 19 public Set<Variable> getOutputVariables() {
14 // If one side of a {@code positive} equivalence is bound, it may bind its other side, but we under-approximate 20 return Set.of(left);
15 // this behavior by not binding any of the sides by default. 21 }
22
23 @Override
24 public Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause) {
25 return Set.of(right);
26 }
27
28 @Override
29 public Set<Variable> getPrivateVariables(Set<? extends Variable> positiveVariablesInClause) {
16 return Set.of(); 30 return Set.of();
17 } 31 }
18 32
@@ -28,11 +42,11 @@ public record EquivalenceLiteral(boolean positive, NodeVariable left, NodeVariab
28 } 42 }
29 43
30 @Override 44 @Override
31 public LiteralReduction getReduction() { 45 public Literal reduce() {
32 if (left.equals(right)) { 46 if (left.equals(right)) {
33 return positive ? LiteralReduction.ALWAYS_TRUE : LiteralReduction.ALWAYS_FALSE; 47 return positive ? BooleanLiteral.TRUE : BooleanLiteral.FALSE;
34 } 48 }
35 return LiteralReduction.NOT_REDUCIBLE; 49 return this;
36 } 50 }
37 51
38 @Override 52 @Override
@@ -49,4 +63,19 @@ public record EquivalenceLiteral(boolean positive, NodeVariable left, NodeVariab
49 public String toString() { 63 public String toString() {
50 return "%s %s %s".formatted(left, positive ? "===" : "!==", right); 64 return "%s %s %s".formatted(left, positive ? "===" : "!==", right);
51 } 65 }
66
67 @Override
68 public boolean equals(Object obj) {
69 if (obj == this) return true;
70 if (obj == null || obj.getClass() != this.getClass()) return false;
71 var that = (EquivalenceLiteral) obj;
72 return this.positive == that.positive &&
73 Objects.equals(this.left, that.left) &&
74 Objects.equals(this.right, that.right);
75 }
76
77 @Override
78 public int hashCode() {
79 return Objects.hash(getClass(), positive, left, right);
80 }
52} 81}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literal.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literal.java
index 6347410e..ce6c11fe 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literal.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literal.java
@@ -1,18 +1,27 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.term.Variable;
4import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
5import tools.refinery.store.query.substitution.Substitution; 9import tools.refinery.store.query.substitution.Substitution;
10import tools.refinery.store.query.term.Variable;
6 11
7import java.util.Set; 12import java.util.Set;
8 13
9public interface Literal { 14public interface Literal {
10 Set<Variable> getBoundVariables(); 15 Set<Variable> getOutputVariables();
16
17 Set<Variable> getInputVariables(Set<? extends Variable> positiveVariablesInClause);
18
19 Set<Variable> getPrivateVariables(Set<? extends Variable> positiveVariablesInClause);
11 20
12 Literal substitute(Substitution substitution); 21 Literal substitute(Substitution substitution);
13 22
14 default LiteralReduction getReduction() { 23 default Literal reduce() {
15 return LiteralReduction.NOT_REDUCIBLE; 24 return this;
16 } 25 }
17 26
18 @SuppressWarnings("BooleanMethodIsAlwaysInverted") 27 @SuppressWarnings("BooleanMethodIsAlwaysInverted")
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literals.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literals.java
index 89039352..b3a87811 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literals.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literals.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.literal; 6package tools.refinery.store.query.literal;
2 7
3import tools.refinery.store.query.term.Term; 8import tools.refinery.store.query.term.Term;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/CompositeSubstitution.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/CompositeSubstitution.java
deleted file mode 100644
index f8064ca2..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/CompositeSubstitution.java
+++ /dev/null
@@ -1,10 +0,0 @@
1package tools.refinery.store.query.substitution;
2
3import tools.refinery.store.query.term.Variable;
4
5public record CompositeSubstitution(Substitution first, Substitution second) implements Substitution {
6 @Override
7 public Variable getSubstitute(Variable variable) {
8 return second.getSubstitute(first.getSubstitute(variable));
9 }
10}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/MapBasedSubstitution.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/MapBasedSubstitution.java
index c7754619..a8201eef 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/MapBasedSubstitution.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/MapBasedSubstitution.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.substitution; 6package tools.refinery.store.query.substitution;
2 7
3import tools.refinery.store.query.term.Variable; 8import tools.refinery.store.query.term.Variable;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/RenewingSubstitution.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/RenewingSubstitution.java
index 7847e582..9b737ceb 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/RenewingSubstitution.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/RenewingSubstitution.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.substitution; 6package tools.refinery.store.query.substitution;
2 7
3import tools.refinery.store.query.term.Variable; 8import tools.refinery.store.query.term.Variable;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/StatelessSubstitution.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/StatelessSubstitution.java
index eed414d9..bb3803d3 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/StatelessSubstitution.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/StatelessSubstitution.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.substitution; 6package tools.refinery.store.query.substitution;
2 7
3import tools.refinery.store.query.term.Variable; 8import tools.refinery.store.query.term.Variable;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitution.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitution.java
index 99f84b9e..834fce12 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitution.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitution.java
@@ -1,6 +1,10 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.substitution; 6package tools.refinery.store.query.substitution;
2 7
3import tools.refinery.store.query.term.AnyDataVariable;
4import tools.refinery.store.query.term.DataVariable; 8import tools.refinery.store.query.term.DataVariable;
5import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.store.query.term.NodeVariable;
6import tools.refinery.store.query.term.Variable; 10import tools.refinery.store.query.term.Variable;
@@ -14,16 +18,12 @@ public interface Substitution {
14 return substitute.asNodeVariable(); 18 return substitute.asNodeVariable();
15 } 19 }
16 20
17 default AnyDataVariable getTypeSafeSubstitute(AnyDataVariable variable) {
18 return getTypeSafeSubstitute((DataVariable<?>) variable);
19 }
20
21 default <T> DataVariable<T> getTypeSafeSubstitute(DataVariable<T> variable) { 21 default <T> DataVariable<T> getTypeSafeSubstitute(DataVariable<T> variable) {
22 var substitute = getSubstitute(variable); 22 var substitute = getSubstitute(variable);
23 return substitute.asDataVariable(variable.getType()); 23 return substitute.asDataVariable(variable.getType());
24 } 24 }
25 25
26 default Substitution andThen(Substitution second) { 26 static SubstitutionBuilder builder() {
27 return new CompositeSubstitution(this, second); 27 return new SubstitutionBuilder();
28 } 28 }
29} 29}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/SubstitutionBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/SubstitutionBuilder.java
new file mode 100644
index 00000000..37fb6908
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/SubstitutionBuilder.java
@@ -0,0 +1,79 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.substitution;
7
8import tools.refinery.store.query.term.DataVariable;
9import tools.refinery.store.query.term.NodeVariable;
10import tools.refinery.store.query.term.Variable;
11
12import java.util.Collections;
13import java.util.HashMap;
14import java.util.List;
15import java.util.Map;
16
17@SuppressWarnings("UnusedReturnValue")
18public class SubstitutionBuilder {
19 private final Map<Variable, Variable> map = new HashMap<>();
20 private Substitution fallback;
21
22 SubstitutionBuilder() {
23 total();
24 }
25
26 public SubstitutionBuilder put(NodeVariable original, NodeVariable substitute) {
27 return putChecked(original, substitute);
28 }
29
30 public <T> SubstitutionBuilder put(DataVariable<T> original, DataVariable<T> substitute) {
31 return putChecked(original, substitute);
32 }
33
34 public SubstitutionBuilder putChecked(Variable original, Variable substitute) {
35 if (!original.tryGetType().equals(substitute.tryGetType())) {
36 throw new IllegalArgumentException("Cannot substitute variable %s of sort %s with variable %s of sort %s"
37 .formatted(original, original.tryGetType().map(Class::getName).orElse("node"), substitute,
38 substitute.tryGetType().map(Class::getName).orElse("node")));
39 }
40 if (map.containsKey(original)) {
41 throw new IllegalArgumentException("Already has substitution for variable %s".formatted(original));
42 }
43 map.put(original, substitute);
44 return this;
45 }
46
47 public SubstitutionBuilder putManyChecked(List<Variable> originals, List<Variable> substitutes) {
48 int size = originals.size();
49 if (size != substitutes.size()) {
50 throw new IllegalArgumentException("Cannot substitute %d variables %s with %d variables %s"
51 .formatted(size, originals, substitutes.size(), substitutes));
52 }
53 for (int i = 0; i < size; i++) {
54 putChecked(originals.get(i), substitutes.get(i));
55 }
56 return this;
57 }
58
59 public SubstitutionBuilder fallback(Substitution newFallback) {
60 fallback = newFallback;
61 return this;
62 }
63
64 public SubstitutionBuilder total() {
65 return fallback(StatelessSubstitution.FAILING);
66 }
67
68 public SubstitutionBuilder partial() {
69 return fallback(StatelessSubstitution.IDENTITY);
70 }
71
72 public SubstitutionBuilder renewing() {
73 return fallback(new RenewingSubstitution());
74 }
75
76 public Substitution build() {
77 return map.isEmpty() ? fallback : new MapBasedSubstitution(Collections.unmodifiableMap(map), fallback);
78 }
79}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitutions.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitutions.java
deleted file mode 100644
index 5d4654da..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitutions.java
+++ /dev/null
@@ -1,33 +0,0 @@
1package tools.refinery.store.query.substitution;
2
3import org.jetbrains.annotations.NotNull;
4import org.jetbrains.annotations.Nullable;
5import tools.refinery.store.query.term.Variable;
6
7import java.util.Map;
8
9public final class Substitutions {
10 private Substitutions() {
11 throw new IllegalStateException("This is a static utility class and should not be instantiate directly");
12 }
13
14 public static Substitution total(Map<Variable, Variable> map) {
15 return new MapBasedSubstitution(map, StatelessSubstitution.FAILING);
16 }
17
18 public static Substitution partial(Map<Variable, Variable> map) {
19 return new MapBasedSubstitution(map, StatelessSubstitution.IDENTITY);
20 }
21
22 public static Substitution renewing(Map<Variable, Variable> map) {
23 return new MapBasedSubstitution(map, renewing());
24 }
25
26 public static Substitution renewing() {
27 return new RenewingSubstitution();
28 }
29
30 public static Substitution compose(@Nullable Substitution first, @NotNull Substitution second) {
31 return first == null ? second : first.andThen(second);
32 }
33}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AbstractTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AbstractTerm.java
new file mode 100644
index 00000000..d0ae3c12
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AbstractTerm.java
@@ -0,0 +1,41 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term;
7
8import tools.refinery.store.query.equality.LiteralEqualityHelper;
9
10import java.util.Objects;
11
12public abstract class AbstractTerm<T> implements Term<T> {
13 private final Class<T> type;
14
15 protected AbstractTerm(Class<T> type) {
16 this.type = type;
17 }
18
19 @Override
20 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
21 return getClass().equals(other.getClass()) && type.equals(other.getType());
22 }
23
24 @Override
25 public Class<T> getType() {
26 return type;
27 }
28
29 @Override
30 public boolean equals(Object o) {
31 if (this == o) return true;
32 if (o == null || getClass() != o.getClass()) return false;
33 AbstractTerm<?> that = (AbstractTerm<?>) o;
34 return type.equals(that.type);
35 }
36
37 @Override
38 public int hashCode() {
39 return Objects.hash(getClass(), type);
40 }
41}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Aggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Aggregator.java
index 47421a94..0684a9d9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Aggregator.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Aggregator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import java.util.stream.Stream; 8import java.util.stream.Stream;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyDataVariable.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyDataVariable.java
index ecfefcf9..192c39c5 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyDataVariable.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyDataVariable.java
@@ -1,8 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
4import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.store.query.equality.LiteralEqualityHelper;
5 10
11import java.util.Optional;
6import java.util.Set; 12import java.util.Set;
7 13
8public abstract sealed class AnyDataVariable extends Variable implements AnyTerm permits DataVariable { 14public abstract sealed class AnyDataVariable extends Variable implements AnyTerm permits DataVariable {
@@ -11,6 +17,11 @@ public abstract sealed class AnyDataVariable extends Variable implements AnyTerm
11 } 17 }
12 18
13 @Override 19 @Override
20 public Optional<Class<?>> tryGetType() {
21 return Optional.of(getType());
22 }
23
24 @Override
14 public NodeVariable asNodeVariable() { 25 public NodeVariable asNodeVariable() {
15 throw new IllegalStateException("%s is a data variable".formatted(this)); 26 throw new IllegalStateException("%s is a data variable".formatted(this));
16 } 27 }
@@ -26,6 +37,11 @@ public abstract sealed class AnyDataVariable extends Variable implements AnyTerm
26 } 37 }
27 38
28 @Override 39 @Override
40 public boolean isUnifiable() {
41 return false;
42 }
43
44 @Override
29 public abstract AnyDataVariable renew(@Nullable String name); 45 public abstract AnyDataVariable renew(@Nullable String name);
30 46
31 @Override 47 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyTerm.java
index 8f998d45..c12c0166 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyTerm.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyTerm.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticBinaryOperator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticBinaryOperator.java
deleted file mode 100644
index 8706a046..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticBinaryOperator.java
+++ /dev/null
@@ -1,26 +0,0 @@
1package tools.refinery.store.query.term;
2
3public enum ArithmeticBinaryOperator {
4 ADD("+", true),
5 SUB("-", true),
6 MUL("*", true),
7 DIV("/", true),
8 POW("**", true),
9 MIN("min", false),
10 MAX("max", false);
11
12 private final String text;
13 private final boolean infix;
14
15 ArithmeticBinaryOperator(String text, boolean infix) {
16 this.text = text;
17 this.infix = infix;
18 }
19
20 public String formatString(String left, String right) {
21 if (infix) {
22 return "(%s) %s (%s)".formatted(left, text, right);
23 }
24 return "%s(%s, %s)".formatted(text, left, right);
25 }
26}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticBinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticBinaryTerm.java
deleted file mode 100644
index 887a1e6e..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticBinaryTerm.java
+++ /dev/null
@@ -1,56 +0,0 @@
1package tools.refinery.store.query.term;
2
3import tools.refinery.store.query.equality.LiteralEqualityHelper;
4
5import java.util.Objects;
6
7public abstract class ArithmeticBinaryTerm<T> extends BinaryTerm<T, T, T> {
8 private final ArithmeticBinaryOperator operator;
9
10 protected ArithmeticBinaryTerm(ArithmeticBinaryOperator operator, Term<T> left, Term<T> right) {
11 super(left, right);
12 this.operator = operator;
13 }
14
15 @Override
16 public Class<T> getLeftType() {
17 return getType();
18 }
19
20 @Override
21 public Class<T> getRightType() {
22 return getType();
23 }
24
25 public ArithmeticBinaryOperator getOperator() {
26 return operator;
27 }
28
29 @Override
30 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
31 if (!super.equalsWithSubstitution(helper, other)) {
32 return false;
33 }
34 var otherArithmeticBinaryTerm = (ArithmeticBinaryTerm<?>) other;
35 return operator == otherArithmeticBinaryTerm.operator;
36 }
37
38 @Override
39 public String toString() {
40 return operator.formatString(getLeft().toString(), getRight().toString());
41 }
42
43 @Override
44 public boolean equals(Object o) {
45 if (this == o) return true;
46 if (o == null || getClass() != o.getClass()) return false;
47 if (!super.equals(o)) return false;
48 ArithmeticBinaryTerm<?> that = (ArithmeticBinaryTerm<?>) o;
49 return operator == that.operator;
50 }
51
52 @Override
53 public int hashCode() {
54 return Objects.hash(super.hashCode(), operator);
55 }
56}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticUnaryOperator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticUnaryOperator.java
deleted file mode 100644
index 6a7c25db..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticUnaryOperator.java
+++ /dev/null
@@ -1,16 +0,0 @@
1package tools.refinery.store.query.term;
2
3public enum ArithmeticUnaryOperator {
4 PLUS("+"),
5 MINUS("-");
6
7 private final String prefix;
8
9 ArithmeticUnaryOperator(String prefix) {
10 this.prefix = prefix;
11 }
12
13 public String formatString(String body) {
14 return "%s(%s)".formatted(prefix, body);
15 }
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticUnaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticUnaryTerm.java
deleted file mode 100644
index b78239c7..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ArithmeticUnaryTerm.java
+++ /dev/null
@@ -1,51 +0,0 @@
1package tools.refinery.store.query.term;
2
3import tools.refinery.store.query.equality.LiteralEqualityHelper;
4
5import java.util.Objects;
6
7public abstract class ArithmeticUnaryTerm<T> extends UnaryTerm<T, T> {
8 private final ArithmeticUnaryOperator operator;
9
10 protected ArithmeticUnaryTerm(ArithmeticUnaryOperator operator, Term<T> body) {
11 super(body);
12 this.operator = operator;
13 }
14
15 @Override
16 public Class<T> getBodyType() {
17 return getType();
18 }
19
20 public ArithmeticUnaryOperator getOperator() {
21 return operator;
22 }
23
24 @Override
25 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
26 if (!super.equalsWithSubstitution(helper, other)) {
27 return false;
28 }
29 var otherArithmeticUnaryTerm = (ArithmeticUnaryTerm<?>) other;
30 return operator == otherArithmeticUnaryTerm.operator;
31 }
32
33 @Override
34 public String toString() {
35 return operator.formatString(getBody().toString());
36 }
37
38 @Override
39 public boolean equals(Object o) {
40 if (this == o) return true;
41 if (o == null || getClass() != o.getClass()) return false;
42 if (!super.equals(o)) return false;
43 ArithmeticUnaryTerm<?> that = (ArithmeticUnaryTerm<?>) o;
44 return operator == that.operator;
45 }
46
47 @Override
48 public int hashCode() {
49 return Objects.hash(super.hashCode(), operator);
50 }
51}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AssignedValue.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AssignedValue.java
index 465e690f..0cf30aa6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AssignedValue.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AssignedValue.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import tools.refinery.store.query.literal.Literal; 8import tools.refinery.store.query.literal.Literal;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/BinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/BinaryTerm.java
index 34f48ccc..8ad17839 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/BinaryTerm.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/BinaryTerm.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
@@ -9,26 +14,35 @@ import java.util.HashSet;
9import java.util.Objects; 14import java.util.Objects;
10import java.util.Set; 15import java.util.Set;
11 16
12public abstract class BinaryTerm<R, T1, T2> implements Term<R> { 17public abstract class BinaryTerm<R, T1, T2> extends AbstractTerm<R> {
18 private final Class<T1> leftType;
19 private final Class<T2> rightType;
13 private final Term<T1> left; 20 private final Term<T1> left;
14 private final Term<T2> right; 21 private final Term<T2> right;
15 22
16 protected BinaryTerm(Term<T1> left, Term<T2> right) { 23 protected BinaryTerm(Class<R> type, Class<T1> leftType, Class<T2> rightType, Term<T1> left, Term<T2> right) {
17 if (!left.getType().equals(getLeftType())) { 24 super(type);
18 throw new IllegalArgumentException("Expected left %s to be of type %s, got %s instead".formatted(left, 25 if (!left.getType().equals(leftType)) {
19 getLeftType().getName(), left.getType().getName())); 26 throw new IllegalArgumentException("Expected left %s to be of type %s, got %s instead".formatted(
27 left, leftType.getName(), left.getType().getName()));
20 } 28 }
21 if (!right.getType().equals(getRightType())) { 29 if (!right.getType().equals(rightType)) {
22 throw new IllegalArgumentException("Expected right %s to be of type %s, got %s instead".formatted(right, 30 throw new IllegalArgumentException("Expected right %s to be of type %s, got %s instead".formatted(
23 getRightType().getName(), right.getType().getName())); 31 right, rightType.getName(), right.getType().getName()));
24 } 32 }
33 this.leftType = leftType;
34 this.rightType = rightType;
25 this.left = left; 35 this.left = left;
26 this.right = right; 36 this.right = right;
27 } 37 }
28 38
29 public abstract Class<T1> getLeftType(); 39 public Class<T1> getLeftType() {
40 return leftType;
41 }
30 42
31 public abstract Class<T2> getRightType(); 43 public Class<T2> getRightType() {
44 return rightType;
45 }
32 46
33 public Term<T1> getLeft() { 47 public Term<T1> getLeft() {
34 return left; 48 return left;
@@ -55,12 +69,14 @@ public abstract class BinaryTerm<R, T1, T2> implements Term<R> {
55 69
56 @Override 70 @Override
57 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) { 71 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
58 if (getClass() != other.getClass()) { 72 if (!super.equalsWithSubstitution(helper, other)) {
59 return false; 73 return false;
60 } 74 }
61 var otherBinaryTerm = (BinaryTerm<?, ?, ?>) other; 75 var otherBinaryTerm = (BinaryTerm<?, ?, ?>) other;
62 return left.equalsWithSubstitution(helper, otherBinaryTerm.left) && right.equalsWithSubstitution(helper, 76 return leftType.equals(otherBinaryTerm.leftType) &&
63 otherBinaryTerm.right); 77 rightType.equals(otherBinaryTerm.rightType) &&
78 left.equalsWithSubstitution(helper, otherBinaryTerm.left) &&
79 right.equalsWithSubstitution(helper, otherBinaryTerm.right);
64 } 80 }
65 81
66 @Override 82 @Override
@@ -82,12 +98,16 @@ public abstract class BinaryTerm<R, T1, T2> implements Term<R> {
82 public boolean equals(Object o) { 98 public boolean equals(Object o) {
83 if (this == o) return true; 99 if (this == o) return true;
84 if (o == null || getClass() != o.getClass()) return false; 100 if (o == null || getClass() != o.getClass()) return false;
101 if (!super.equals(o)) return false;
85 BinaryTerm<?, ?, ?> that = (BinaryTerm<?, ?, ?>) o; 102 BinaryTerm<?, ?, ?> that = (BinaryTerm<?, ?, ?>) o;
86 return left.equals(that.left) && right.equals(that.right); 103 return Objects.equals(leftType, that.leftType) &&
104 Objects.equals(rightType, that.rightType) &&
105 Objects.equals(left, that.left) &&
106 Objects.equals(right, that.right);
87 } 107 }
88 108
89 @Override 109 @Override
90 public int hashCode() { 110 public int hashCode() {
91 return Objects.hash(getClass(), left, right); 111 return Objects.hash(super.hashCode(), leftType, rightType, left, right);
92 } 112 }
93} 113}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ComparisonOperator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ComparisonOperator.java
deleted file mode 100644
index 44dcce10..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ComparisonOperator.java
+++ /dev/null
@@ -1,20 +0,0 @@
1package tools.refinery.store.query.term;
2
3public enum ComparisonOperator {
4 EQ("=="),
5 NOT_EQ("!="),
6 LESS("<"),
7 LESS_EQ("<="),
8 GREATER(">"),
9 GREATER_EQ(">=");
10
11 private final String text;
12
13 ComparisonOperator(String text) {
14 this.text = text;
15 }
16
17 public String formatString(String left, String right) {
18 return "(%s) %s (%s)".formatted(left, text, right);
19 }
20}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ComparisonTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ComparisonTerm.java
deleted file mode 100644
index 320d42df..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ComparisonTerm.java
+++ /dev/null
@@ -1,63 +0,0 @@
1package tools.refinery.store.query.term;
2
3import tools.refinery.store.query.equality.LiteralEqualityHelper;
4
5import java.util.Objects;
6
7public abstract class ComparisonTerm<T> extends BinaryTerm<Boolean, T, T> {
8 private final ComparisonOperator operator;
9
10 protected ComparisonTerm(ComparisonOperator operator, Term<T> left, Term<T> right) {
11 super(left, right);
12 this.operator = operator;
13 }
14
15 @Override
16 public Class<Boolean> getType() {
17 return Boolean.class;
18 }
19
20 public abstract Class<T> getOperandType();
21
22 @Override
23 public Class<T> getLeftType() {
24 return getOperandType();
25 }
26
27 @Override
28 public Class<T> getRightType() {
29 return getOperandType();
30 }
31
32 public ComparisonOperator getOperator() {
33 return operator;
34 }
35
36 @Override
37 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
38 if (!super.equalsWithSubstitution(helper, other)) {
39 return false;
40 }
41 var otherComparisonTerm = (ComparisonTerm<?>) other;
42 return operator == otherComparisonTerm.operator;
43 }
44
45 @Override
46 public String toString() {
47 return operator.formatString(getLeft().toString(), getRight().toString());
48 }
49
50 @Override
51 public boolean equals(Object o) {
52 if (this == o) return true;
53 if (o == null || getClass() != o.getClass()) return false;
54 if (!super.equals(o)) return false;
55 ComparisonTerm<?> that = (ComparisonTerm<?>) o;
56 return operator == that.operator;
57 }
58
59 @Override
60 public int hashCode() {
61 return Objects.hash(super.hashCode(), operator);
62 }
63}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ConstantTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ConstantTerm.java
index 2185fe37..2f6c56d1 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ConstantTerm.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ConstantTerm.java
@@ -1,24 +1,26 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
4import tools.refinery.store.query.substitution.Substitution; 9import tools.refinery.store.query.substitution.Substitution;
5import tools.refinery.store.query.valuation.Valuation; 10import tools.refinery.store.query.valuation.Valuation;
6 11
12import java.util.Objects;
7import java.util.Set; 13import java.util.Set;
8 14
9public record ConstantTerm<T>(Class<T> type, T value) implements Term<T> { 15public final class ConstantTerm<T> extends AbstractTerm<T> {
10 public ConstantTerm { 16 private final T value;
11 if (value == null) {
12 throw new IllegalArgumentException("value should not be null");
13 }
14 if (!type.isInstance(value)) {
15 throw new IllegalArgumentException("value %s is not an instance of %s".formatted(value, type.getName()));
16 }
17 }
18 17
19 @Override 18 public ConstantTerm(Class<T> type, T value) {
20 public Class<T> getType() { 19 super(type);
21 return type; 20 if (value != null && !type.isInstance(value)) {
21 throw new IllegalArgumentException("Value %s is not an instance of %s".formatted(value, type.getName()));
22 }
23 this.value = value;
22 } 24 }
23 25
24 public T getValue() { 26 public T getValue() {
@@ -37,7 +39,11 @@ public record ConstantTerm<T>(Class<T> type, T value) implements Term<T> {
37 39
38 @Override 40 @Override
39 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) { 41 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
40 return equals(other); 42 if (!super.equalsWithSubstitution(helper, other)) {
43 return false;
44 }
45 var otherConstantTerm = (ConstantTerm<?>) other;
46 return Objects.equals(value, otherConstantTerm.value);
41 } 47 }
42 48
43 @Override 49 @Override
@@ -47,6 +53,19 @@ public record ConstantTerm<T>(Class<T> type, T value) implements Term<T> {
47 53
48 @Override 54 @Override
49 public String toString() { 55 public String toString() {
50 return getValue().toString(); 56 return value.toString();
57 }
58
59 @Override
60 public boolean equals(Object o) {
61 if (this == o) return true;
62 if (o == null || getClass() != o.getClass()) return false;
63 ConstantTerm<?> that = (ConstantTerm<?>) o;
64 return Objects.equals(value, that.value);
65 }
66
67 @Override
68 public int hashCode() {
69 return Objects.hash(value);
51 } 70 }
52} 71}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataSort.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataSort.java
deleted file mode 100644
index 4fb44492..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataSort.java
+++ /dev/null
@@ -1,29 +0,0 @@
1package tools.refinery.store.query.term;
2
3import org.jetbrains.annotations.Nullable;
4
5public record DataSort<T>(Class<T> type) implements Sort {
6 public static final DataSort<Integer> INT = new DataSort<>(Integer.class);
7
8 public static final DataSort<Boolean> BOOL = new DataSort<>(Boolean.class);
9
10 @Override
11 public boolean isInstance(Variable variable) {
12 return variable instanceof DataVariable<?> dataVariable && type.equals(dataVariable.getType());
13 }
14
15 @Override
16 public DataVariable<T> newInstance(@Nullable String name) {
17 return Variable.of(name, type);
18 }
19
20 @Override
21 public DataVariable<T> newInstance() {
22 return newInstance(null);
23 }
24
25 @Override
26 public String toString() {
27 return type.getName();
28 }
29}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataVariable.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataVariable.java
index af070ca7..00950360 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataVariable.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataVariable.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
@@ -17,11 +22,6 @@ public final class DataVariable<T> extends AnyDataVariable implements Term<T> {
17 } 22 }
18 23
19 @Override 24 @Override
20 public DataSort<T> getSort() {
21 return new DataSort<>(getType());
22 }
23
24 @Override
25 public Class<T> getType() { 25 public Class<T> getType() {
26 return type; 26 return type;
27 } 27 }
@@ -37,11 +37,6 @@ public final class DataVariable<T> extends AnyDataVariable implements Term<T> {
37 } 37 }
38 38
39 @Override 39 @Override
40 public NodeVariable asNodeVariable() {
41 throw new IllegalStateException("%s is a data variable".formatted(this));
42 }
43
44 @Override
45 public <U> DataVariable<U> asDataVariable(Class<U> newType) { 40 public <U> DataVariable<U> asDataVariable(Class<U> newType) {
46 if (!getType().equals(newType)) { 41 if (!getType().equals(newType)) {
47 throw new IllegalStateException("%s is not of type %s but of type %s".formatted(this, newType.getName(), 42 throw new IllegalStateException("%s is not of type %s but of type %s".formatted(this, newType.getName(),
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ExtremeValueAggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ExtremeValueAggregator.java
index 57ff597c..657cb631 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ExtremeValueAggregator.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ExtremeValueAggregator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import java.util.Comparator; 8import java.util.Comparator;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeSort.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeSort.java
deleted file mode 100644
index 1a4b2d4b..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeSort.java
+++ /dev/null
@@ -1,30 +0,0 @@
1package tools.refinery.store.query.term;
2
3import org.jetbrains.annotations.Nullable;
4
5public final class NodeSort implements Sort {
6 public static final NodeSort INSTANCE = new NodeSort();
7
8 private NodeSort() {
9 }
10
11 @Override
12 public boolean isInstance(Variable variable) {
13 return variable instanceof NodeVariable;
14 }
15
16 @Override
17 public NodeVariable newInstance(@Nullable String name) {
18 return new NodeVariable(name);
19 }
20
21 @Override
22 public NodeVariable newInstance() {
23 return newInstance(null);
24 }
25
26 @Override
27 public String toString() {
28 return "<node>";
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeVariable.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeVariable.java
index 7419aaad..a2f3261f 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeVariable.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeVariable.java
@@ -1,17 +1,29 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
4import tools.refinery.store.query.literal.ConstantLiteral; 9import tools.refinery.store.query.literal.ConstantLiteral;
5import tools.refinery.store.query.literal.EquivalenceLiteral; 10import tools.refinery.store.query.literal.EquivalenceLiteral;
6 11
12import java.util.Optional;
13
7public final class NodeVariable extends Variable { 14public final class NodeVariable extends Variable {
8 NodeVariable(@Nullable String name) { 15 NodeVariable(@Nullable String name) {
9 super(name); 16 super(name);
10 } 17 }
11 18
12 @Override 19 @Override
13 public NodeSort getSort() { 20 public Optional<Class<?>> tryGetType() {
14 return NodeSort.INSTANCE; 21 return Optional.empty();
22 }
23
24 @Override
25 public boolean isUnifiable() {
26 return true;
15 } 27 }
16 28
17 @Override 29 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/OpaqueTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/OpaqueTerm.java
deleted file mode 100644
index 8faa9c75..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/OpaqueTerm.java
+++ /dev/null
@@ -1,80 +0,0 @@
1package tools.refinery.store.query.term;
2
3import tools.refinery.store.query.equality.LiteralEqualityHelper;
4import tools.refinery.store.query.substitution.Substitution;
5import tools.refinery.store.query.substitution.Substitutions;
6import tools.refinery.store.query.valuation.Valuation;
7
8import java.util.Objects;
9import java.util.Set;
10import java.util.function.Function;
11import java.util.stream.Collectors;
12
13public final class OpaqueTerm<T> implements Term<T> {
14 private final Class<T> type;
15 private final Function<? super Valuation, ? extends T> evaluator;
16 private final Set<AnyDataVariable> variables;
17 private final Substitution substitution;
18
19 public OpaqueTerm(Class<T> type, Function<? super Valuation, ? extends T> evaluator,
20 Set<? extends AnyDataVariable> variables) {
21 this(type, evaluator, variables, null);
22 }
23
24 private OpaqueTerm(Class<T> type, Function<? super Valuation, ? extends T> evaluator,
25 Set<? extends AnyDataVariable> variables, Substitution substitution) {
26 this.type = type;
27 this.evaluator = evaluator;
28 this.variables = Set.copyOf(variables);
29 this.substitution = substitution;
30 }
31
32 @Override
33 public Class<T> getType() {
34 return type;
35 }
36
37 @Override
38 public Set<AnyDataVariable> getInputVariables() {
39 return variables;
40 }
41
42 @Override
43 public T evaluate(Valuation valuation) {
44 return evaluator.apply(valuation.substitute(substitution));
45 }
46
47 @Override
48 public Term<T> substitute(Substitution newSubstitution) {
49 var substitutedVariables = variables.stream()
50 .map(newSubstitution::getTypeSafeSubstitute)
51 .collect(Collectors.toUnmodifiableSet());
52 return new OpaqueTerm<>(type, evaluator, substitutedVariables,
53 Substitutions.compose(substitution, newSubstitution));
54 }
55
56 @Override
57 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
58 // Cannot inspect the opaque evaluator for deep equality.
59 return equals(other);
60 }
61
62 @Override
63 public String toString() {
64 return "<opaque>";
65 }
66
67 @Override
68 public boolean equals(Object o) {
69 if (this == o) return true;
70 if (o == null || getClass() != o.getClass()) return false;
71 OpaqueTerm<?> that = (OpaqueTerm<?>) o;
72 return type.equals(that.type) && evaluator.equals(that.evaluator) && Objects.equals(substitution,
73 that.substitution);
74 }
75
76 @Override
77 public int hashCode() {
78 return Objects.hash(type, evaluator, substitution);
79 }
80}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Parameter.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Parameter.java
new file mode 100644
index 00000000..e5a0cdf1
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Parameter.java
@@ -0,0 +1,60 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term;
7
8import java.util.Objects;
9import java.util.Optional;
10
11public class Parameter {
12 public static final Parameter NODE_OUT = new Parameter(null, ParameterDirection.OUT);
13
14 private final Class<?> dataType;
15 private final ParameterDirection direction;
16
17 public Parameter(Class<?> dataType, ParameterDirection direction) {
18 this.dataType = dataType;
19 this.direction = direction;
20 }
21
22 public boolean isNodeVariable() {
23 return dataType == null;
24 }
25
26 public boolean isDataVariable() {
27 return !isNodeVariable();
28 }
29
30 public Optional<Class<?>> tryGetType() {
31 return Optional.ofNullable(dataType);
32 }
33
34 public ParameterDirection getDirection() {
35 return direction;
36 }
37
38 public boolean isAssignable(Variable variable) {
39 if (variable instanceof AnyDataVariable dataVariable) {
40 return dataVariable.getType().equals(dataType);
41 } else if (variable instanceof NodeVariable) {
42 return !isDataVariable();
43 } else {
44 throw new IllegalArgumentException("Unknown variable " + variable);
45 }
46 }
47
48 @Override
49 public boolean equals(Object o) {
50 if (this == o) return true;
51 if (o == null || getClass() != o.getClass()) return false;
52 Parameter parameter = (Parameter) o;
53 return Objects.equals(dataType, parameter.dataType) && direction == parameter.direction;
54 }
55
56 @Override
57 public int hashCode() {
58 return Objects.hash(dataType, direction);
59 }
60}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ParameterDirection.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ParameterDirection.java
new file mode 100644
index 00000000..cd0739be
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ParameterDirection.java
@@ -0,0 +1,22 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term;
7
8public enum ParameterDirection {
9 OUT("@Out"),
10 IN("@In");
11
12 private final String name;
13
14 ParameterDirection(String name) {
15 this.name = name;
16 }
17
18 @Override
19 public String toString() {
20 return name;
21 }
22}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Sort.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Sort.java
deleted file mode 100644
index 622bcfce..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Sort.java
+++ /dev/null
@@ -1,11 +0,0 @@
1package tools.refinery.store.query.term;
2
3import org.jetbrains.annotations.Nullable;
4
5public sealed interface Sort permits DataSort, NodeSort {
6 boolean isInstance(Variable variable);
7
8 Variable newInstance(@Nullable String name);
9
10 Variable newInstance();
11}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregate.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregate.java
index 7ce91305..ab310556 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregate.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregate.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3public interface StatefulAggregate<R, T> { 8public interface StatefulAggregate<R, T> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregator.java
index c215a511..df746a90 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregator.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import java.util.stream.Stream; 8import java.util.stream.Stream;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatelessAggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatelessAggregator.java
index 74dbd335..a094919e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatelessAggregator.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatelessAggregator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import java.util.stream.Stream; 8import java.util.stream.Stream;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Term.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Term.java
index 95434db2..e6818b88 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Term.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Term.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import tools.refinery.store.query.literal.AssignLiteral; 8import tools.refinery.store.query.literal.AssignLiteral;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/UnaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/UnaryTerm.java
index 4083111a..a46ebe31 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/UnaryTerm.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/UnaryTerm.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.store.query.equality.LiteralEqualityHelper;
@@ -7,18 +12,23 @@ import tools.refinery.store.query.valuation.Valuation;
7import java.util.Objects; 12import java.util.Objects;
8import java.util.Set; 13import java.util.Set;
9 14
10public abstract class UnaryTerm<R, T> implements Term<R> { 15public abstract class UnaryTerm<R, T> extends AbstractTerm<R> {
16 private final Class<T> bodyType;
11 private final Term<T> body; 17 private final Term<T> body;
12 18
13 protected UnaryTerm(Term<T> body) { 19 protected UnaryTerm(Class<R> type, Class<T> bodyType, Term<T> body) {
14 if (!body.getType().equals(getBodyType())) { 20 super(type);
21 if (!body.getType().equals(bodyType)) {
15 throw new IllegalArgumentException("Expected body %s to be of type %s, got %s instead".formatted(body, 22 throw new IllegalArgumentException("Expected body %s to be of type %s, got %s instead".formatted(body,
16 getBodyType().getName(), body.getType().getName())); 23 bodyType.getName(), body.getType().getName()));
17 } 24 }
25 this.bodyType = bodyType;
18 this.body = body; 26 this.body = body;
19 } 27 }
20 28
21 public abstract Class<T> getBodyType(); 29 public Class<T> getBodyType() {
30 return bodyType;
31 }
22 32
23 public Term<T> getBody() { 33 public Term<T> getBody() {
24 return body; 34 return body;
@@ -34,11 +44,11 @@ public abstract class UnaryTerm<R, T> implements Term<R> {
34 44
35 @Override 45 @Override
36 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) { 46 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
37 if (getClass() != other.getClass()) { 47 if (!super.equalsWithSubstitution(helper, other)) {
38 return false; 48 return false;
39 } 49 }
40 var otherUnaryTerm = (UnaryTerm<?, ?>) other; 50 var otherUnaryTerm = (UnaryTerm<?, ?>) other;
41 return body.equalsWithSubstitution(helper, otherUnaryTerm.body); 51 return bodyType.equals(otherUnaryTerm.bodyType) && body.equalsWithSubstitution(helper, otherUnaryTerm.body);
42 } 52 }
43 53
44 @Override 54 @Override
@@ -57,12 +67,13 @@ public abstract class UnaryTerm<R, T> implements Term<R> {
57 public boolean equals(Object o) { 67 public boolean equals(Object o) {
58 if (this == o) return true; 68 if (this == o) return true;
59 if (o == null || getClass() != o.getClass()) return false; 69 if (o == null || getClass() != o.getClass()) return false;
70 if (!super.equals(o)) return false;
60 UnaryTerm<?, ?> unaryTerm = (UnaryTerm<?, ?>) o; 71 UnaryTerm<?, ?> unaryTerm = (UnaryTerm<?, ?>) o;
61 return body.equals(unaryTerm.body); 72 return Objects.equals(bodyType, unaryTerm.bodyType) && Objects.equals(body, unaryTerm.body);
62 } 73 }
63 74
64 @Override 75 @Override
65 public int hashCode() { 76 public int hashCode() {
66 return Objects.hash(getClass(), body); 77 return Objects.hash(super.hashCode(), bodyType, body);
67 } 78 }
68} 79}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Variable.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Variable.java
index 957e10f8..a0268c8e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Variable.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Variable.java
@@ -1,9 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term; 6package tools.refinery.store.query.term;
2 7
3import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
4import tools.refinery.store.query.dnf.DnfUtils; 9import tools.refinery.store.query.dnf.DnfUtils;
5 10
6import java.util.Objects; 11import java.util.Objects;
12import java.util.Optional;
7 13
8public abstract sealed class Variable permits AnyDataVariable, NodeVariable { 14public abstract sealed class Variable permits AnyDataVariable, NodeVariable {
9 private final String explicitName; 15 private final String explicitName;
@@ -14,7 +20,7 @@ public abstract sealed class Variable permits AnyDataVariable, NodeVariable {
14 uniqueName = DnfUtils.generateUniqueName(name); 20 uniqueName = DnfUtils.generateUniqueName(name);
15 } 21 }
16 22
17 public abstract Sort getSort(); 23 public abstract Optional<Class<?>> tryGetType();
18 24
19 public String getName() { 25 public String getName() {
20 return explicitName == null ? uniqueName : explicitName; 26 return explicitName == null ? uniqueName : explicitName;
@@ -32,6 +38,8 @@ public abstract sealed class Variable permits AnyDataVariable, NodeVariable {
32 return uniqueName; 38 return uniqueName;
33 } 39 }
34 40
41 public abstract boolean isUnifiable();
42
35 public abstract Variable renew(@Nullable String name); 43 public abstract Variable renew(@Nullable String name);
36 44
37 public abstract Variable renew(); 45 public abstract Variable renew();
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolAndTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolAndTerm.java
new file mode 100644
index 00000000..f9e1c06f
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolAndTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.bool;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class BoolAndTerm extends BoolBinaryTerm {
12 public BoolAndTerm(Term<Boolean> left, Term<Boolean> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Boolean> doSubstitute(Substitution substitution, Term<Boolean> substitutedLeft,
18 Term<Boolean> substitutedRight) {
19 return new BoolAndTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Boolean doEvaluate(Boolean leftValue, Boolean rightValue) {
24 return leftValue && rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s && %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolBinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolBinaryTerm.java
new file mode 100644
index 00000000..a85aa63a
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolBinaryTerm.java
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.bool;
7
8import tools.refinery.store.query.term.BinaryTerm;
9import tools.refinery.store.query.term.Term;
10
11public abstract class BoolBinaryTerm extends BinaryTerm<Boolean, Boolean, Boolean> {
12 protected BoolBinaryTerm(Term<Boolean> left, Term<Boolean> right) {
13 super(Boolean.class, Boolean.class, Boolean.class, left, right);
14 }
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolConstantTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolConstantTerm.java
deleted file mode 100644
index 5079f1ce..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolConstantTerm.java
+++ /dev/null
@@ -1,16 +0,0 @@
1package tools.refinery.store.query.term.bool;
2
3import tools.refinery.store.query.term.ConstantTerm;
4
5public final class BoolConstantTerm {
6 public static final ConstantTerm<Boolean> TRUE = new ConstantTerm<>(Boolean.class, true);
7 public static final ConstantTerm<Boolean> FALSE = new ConstantTerm<>(Boolean.class, false);
8
9 private BoolConstantTerm() {
10 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
11 }
12
13 public static ConstantTerm<Boolean> valueOf(boolean boolValue) {
14 return boolValue ? TRUE : FALSE;
15 }
16}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolLogicBinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolLogicBinaryTerm.java
deleted file mode 100644
index d85f864d..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolLogicBinaryTerm.java
+++ /dev/null
@@ -1,78 +0,0 @@
1package tools.refinery.store.query.term.bool;
2
3import tools.refinery.store.query.equality.LiteralEqualityHelper;
4import tools.refinery.store.query.substitution.Substitution;
5import tools.refinery.store.query.term.*;
6
7import java.util.Objects;
8
9public class BoolLogicBinaryTerm extends BinaryTerm<Boolean, Boolean, Boolean> {
10 private final LogicBinaryOperator operator;
11
12 protected BoolLogicBinaryTerm(LogicBinaryOperator operator, Term<Boolean> left, Term<Boolean> right) {
13 super(left, right);
14 this.operator = operator;
15 }
16
17 @Override
18 public Class<Boolean> getType() {
19 return Boolean.class;
20 }
21
22 @Override
23 public Class<Boolean> getLeftType() {
24 return getType();
25 }
26
27 @Override
28 public Class<Boolean> getRightType() {
29 return getType();
30 }
31
32 public LogicBinaryOperator getOperator() {
33 return operator;
34 }
35
36 @Override
37 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, AnyTerm other) {
38 if (!super.equalsWithSubstitution(helper, other)) {
39 return false;
40 }
41 var otherBoolLogicBinaryTerm = (BoolLogicBinaryTerm) other;
42 return operator == otherBoolLogicBinaryTerm.operator;
43 }
44
45 @Override
46 public Term<Boolean> doSubstitute(Substitution substitution, Term<Boolean> substitutedLeft,
47 Term<Boolean> substitutedRight) {
48 return new BoolLogicBinaryTerm(getOperator(), substitutedLeft, substitutedRight);
49 }
50
51 @Override
52 protected Boolean doEvaluate(Boolean leftValue, Boolean rightValue) {
53 return switch (getOperator()) {
54 case AND -> leftValue && rightValue;
55 case OR -> leftValue || rightValue;
56 case XOR -> leftValue ^ rightValue;
57 };
58 }
59
60 @Override
61 public String toString() {
62 return operator.formatString(getLeft().toString(), getRight().toString());
63 }
64
65 @Override
66 public boolean equals(Object o) {
67 if (this == o) return true;
68 if (o == null || getClass() != o.getClass()) return false;
69 if (!super.equals(o)) return false;
70 BoolLogicBinaryTerm that = (BoolLogicBinaryTerm) o;
71 return operator == that.operator;
72 }
73
74 @Override
75 public int hashCode() {
76 return Objects.hash(super.hashCode(), operator);
77 }
78}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolNotTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolNotTerm.java
index 855139b5..8d3382b3 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolNotTerm.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolNotTerm.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term.bool; 6package tools.refinery.store.query.term.bool;
2 7
3import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.store.query.substitution.Substitution;
@@ -6,17 +11,7 @@ import tools.refinery.store.query.term.UnaryTerm;
6 11
7public class BoolNotTerm extends UnaryTerm<Boolean, Boolean> { 12public class BoolNotTerm extends UnaryTerm<Boolean, Boolean> {
8 protected BoolNotTerm(Term<Boolean> body) { 13 protected BoolNotTerm(Term<Boolean> body) {
9 super(body); 14 super(Boolean.class, Boolean.class, body);
10 }
11
12 @Override
13 public Class<Boolean> getType() {
14 return Boolean.class;
15 }
16
17 @Override
18 public Class<Boolean> getBodyType() {
19 return getType();
20 } 15 }
21 16
22 @Override 17 @Override
@@ -31,6 +26,6 @@ public class BoolNotTerm extends UnaryTerm<Boolean, Boolean> {
31 26
32 @Override 27 @Override
33 public String toString() { 28 public String toString() {
34 return "!(%s)".formatted(getBody()); 29 return "(!%s)".formatted(getBody());
35 } 30 }
36} 31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolOrTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolOrTerm.java
new file mode 100644
index 00000000..b5195d52
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolOrTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.bool;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class BoolOrTerm extends BoolBinaryTerm {
12 public BoolOrTerm(Term<Boolean> left, Term<Boolean> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Boolean> doSubstitute(Substitution substitution, Term<Boolean> substitutedLeft,
18 Term<Boolean> substitutedRight) {
19 return new BoolOrTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Boolean doEvaluate(Boolean leftValue, Boolean rightValue) {
24 return leftValue || rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s || %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolTerms.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolTerms.java
index 3d6c8d9d..fa54f686 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolTerms.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolTerms.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term.bool; 6package tools.refinery.store.query.term.bool;
2 7
3import tools.refinery.store.query.term.ConstantTerm; 8import tools.refinery.store.query.term.ConstantTerm;
@@ -8,23 +13,23 @@ public final class BoolTerms {
8 throw new IllegalArgumentException("This is a static utility class and should not be instantiated directly"); 13 throw new IllegalArgumentException("This is a static utility class and should not be instantiated directly");
9 } 14 }
10 15
11 public static ConstantTerm<Boolean> constant(boolean value) { 16 public static Term<Boolean> constant(Boolean value) {
12 return BoolConstantTerm.valueOf(value); 17 return new ConstantTerm<>(Boolean.class, value);
13 } 18 }
14 19
15 public static BoolNotTerm not(Term<Boolean> body) { 20 public static Term<Boolean> not(Term<Boolean> body) {
16 return new BoolNotTerm(body); 21 return new BoolNotTerm(body);
17 } 22 }
18 23
19 public static BoolLogicBinaryTerm and(Term<Boolean> left, Term<Boolean> right) { 24 public static Term<Boolean> and(Term<Boolean> left, Term<Boolean> right) {
20 return new BoolLogicBinaryTerm(LogicBinaryOperator.AND, left, right); 25 return new BoolAndTerm(left, right);
21 } 26 }
22 27
23 public static BoolLogicBinaryTerm or(Term<Boolean> left, Term<Boolean> right) { 28 public static Term<Boolean> or(Term<Boolean> left, Term<Boolean> right) {
24 return new BoolLogicBinaryTerm(LogicBinaryOperator.OR, left, right); 29 return new BoolOrTerm(left, right);
25 } 30 }
26 31
27 public static BoolLogicBinaryTerm xor(Term<Boolean> left, Term<Boolean> right) { 32 public static Term<Boolean> xor(Term<Boolean> left, Term<Boolean> right) {
28 return new BoolLogicBinaryTerm(LogicBinaryOperator.XOR, left, right); 33 return new BoolXorTerm(left, right);
29 } 34 }
30} 35}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolXorTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolXorTerm.java
new file mode 100644
index 00000000..7478b8a5
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolXorTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.bool;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class BoolXorTerm extends BoolBinaryTerm {
12 public BoolXorTerm(Term<Boolean> left, Term<Boolean> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Boolean> doSubstitute(Substitution substitution, Term<Boolean> substitutedLeft,
18 Term<Boolean> substitutedRight) {
19 return new BoolXorTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Boolean doEvaluate(Boolean leftValue, Boolean rightValue) {
24 return leftValue ^ rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s ^^ %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/LogicBinaryOperator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/LogicBinaryOperator.java
deleted file mode 100644
index ca9ac66e..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/LogicBinaryOperator.java
+++ /dev/null
@@ -1,17 +0,0 @@
1package tools.refinery.store.query.term.bool;
2
3public enum LogicBinaryOperator {
4 AND("&&"),
5 OR("||"),
6 XOR("^^");
7
8 private final String text;
9
10 LogicBinaryOperator(String text) {
11 this.text = text;
12 }
13
14 public String formatString(String left, String right) {
15 return "(%s) %s (%s)".formatted(left, text, right);
16 }
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/ComparisonTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/ComparisonTerm.java
new file mode 100644
index 00000000..5ca5a0a1
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/ComparisonTerm.java
@@ -0,0 +1,19 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.comparable;
7
8import tools.refinery.store.query.term.BinaryTerm;
9import tools.refinery.store.query.term.Term;
10
11public abstract class ComparisonTerm<T> extends BinaryTerm<Boolean, T, T> {
12 protected ComparisonTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
13 super(Boolean.class, argumentType, argumentType, left, right);
14 }
15
16 public Class<T> getArgumentType() {
17 return getLeftType();
18 }
19}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/EqTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/EqTerm.java
new file mode 100644
index 00000000..b8cf36f8
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/EqTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.comparable;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class EqTerm<T> extends ComparisonTerm<T> {
12 public EqTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
13 super(argumentType, left, right);
14 }
15
16 @Override
17 protected Boolean doEvaluate(T leftValue, T rightValue) {
18 return leftValue.equals(rightValue);
19 }
20
21 @Override
22 public Term<Boolean> doSubstitute(Substitution substitution, Term<T> substitutedLeft, Term<T> substitutedRight) {
23 return new EqTerm<>(getArgumentType(), substitutedLeft, substitutedRight);
24 }
25
26 @Override
27 public String toString() {
28 return "(%s == %s)".formatted(getLeft(), getRight());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterEqTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterEqTerm.java
new file mode 100644
index 00000000..b109eb1a
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterEqTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.comparable;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class GreaterEqTerm<T extends Comparable<T>> extends ComparisonTerm<T> {
12 public GreaterEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
13 super(argumentType, left, right);
14 }
15
16 @Override
17 protected Boolean doEvaluate(T leftValue, T rightValue) {
18 return leftValue.compareTo(rightValue) >= 0;
19 }
20
21 @Override
22 public Term<Boolean> doSubstitute(Substitution substitution, Term<T> substitutedLeft, Term<T> substitutedRight) {
23 return new GreaterEqTerm<>(getArgumentType(), substitutedLeft, substitutedRight);
24 }
25
26 @Override
27 public String toString() {
28 return "(%s >= %s)".formatted(getLeft(), getRight());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterTerm.java
new file mode 100644
index 00000000..1b67f8b5
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.comparable;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class GreaterTerm<T extends Comparable<T>> extends ComparisonTerm<T> {
12 public GreaterTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
13 super(argumentType, left, right);
14 }
15
16 @Override
17 protected Boolean doEvaluate(T leftValue, T rightValue) {
18 return leftValue.compareTo(rightValue) > 0;
19 }
20
21 @Override
22 public Term<Boolean> doSubstitute(Substitution substitution, Term<T> substitutedLeft, Term<T> substitutedRight) {
23 return new GreaterTerm<>(getArgumentType(), substitutedLeft, substitutedRight);
24 }
25
26 @Override
27 public String toString() {
28 return "(%s > %s)".formatted(getLeft(), getRight());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessEqTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessEqTerm.java
new file mode 100644
index 00000000..1b34535f
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessEqTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.comparable;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class LessEqTerm<T extends Comparable<T>> extends ComparisonTerm<T> {
12 public LessEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
13 super(argumentType, left, right);
14 }
15
16 @Override
17 protected Boolean doEvaluate(T leftValue, T rightValue) {
18 return leftValue.compareTo(rightValue) <= 0;
19 }
20
21 @Override
22 public Term<Boolean> doSubstitute(Substitution substitution, Term<T> substitutedLeft, Term<T> substitutedRight) {
23 return new LessEqTerm<>(getArgumentType(), substitutedLeft, substitutedRight);
24 }
25
26 @Override
27 public String toString() {
28 return "(%s <= %s)".formatted(getLeft(), getRight());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessTerm.java
new file mode 100644
index 00000000..44e70902
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.comparable;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class LessTerm<T extends Comparable<T>> extends ComparisonTerm<T> {
12 public LessTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
13 super(argumentType, left, right);
14 }
15
16 @Override
17 protected Boolean doEvaluate(T leftValue, T rightValue) {
18 return leftValue.compareTo(rightValue) < 0;
19 }
20
21 @Override
22 public Term<Boolean> doSubstitute(Substitution substitution, Term<T> substitutedLeft, Term<T> substitutedRight) {
23 return new LessTerm<>(getArgumentType(), substitutedLeft, substitutedRight);
24 }
25
26 @Override
27 public String toString() {
28 return "(%s < %s)".formatted(getLeft(), getRight());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/NotEqTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/NotEqTerm.java
new file mode 100644
index 00000000..1f9734c4
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/NotEqTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.comparable;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class NotEqTerm<T> extends ComparisonTerm<T> {
12 public NotEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
13 super(argumentType, left, right);
14 }
15
16 @Override
17 protected Boolean doEvaluate(T leftValue, T rightValue) {
18 return !leftValue.equals(rightValue);
19 }
20
21 @Override
22 public Term<Boolean> doSubstitute(Substitution substitution, Term<T> substitutedLeft, Term<T> substitutedRight) {
23 return new NotEqTerm<>(getArgumentType(), substitutedLeft, substitutedRight);
24 }
25
26 @Override
27 public String toString() {
28 return "(%s != %s)".formatted(getLeft(), getRight());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntAddTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntAddTerm.java
new file mode 100644
index 00000000..dbea3efc
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntAddTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntAddTerm extends IntBinaryTerm {
12 public IntAddTerm(Term<Integer> left, Term<Integer> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) {
19 return new IntAddTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Integer doEvaluate(Integer leftValue, Integer rightValue) {
24 return leftValue + rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s + %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntArithmeticBinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntArithmeticBinaryTerm.java
deleted file mode 100644
index 32e41718..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntArithmeticBinaryTerm.java
+++ /dev/null
@@ -1,48 +0,0 @@
1package tools.refinery.store.query.term.int_;
2
3import tools.refinery.store.query.substitution.Substitution;
4import tools.refinery.store.query.term.ArithmeticBinaryOperator;
5import tools.refinery.store.query.term.ArithmeticBinaryTerm;
6import tools.refinery.store.query.term.Term;
7
8public class IntArithmeticBinaryTerm extends ArithmeticBinaryTerm<Integer> {
9 public IntArithmeticBinaryTerm(ArithmeticBinaryOperator operator, Term<Integer> left, Term<Integer> right) {
10 super(operator, left, right);
11 }
12
13 @Override
14 public Class<Integer> getType() {
15 return Integer.class;
16 }
17
18 @Override
19 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
20 Term<Integer> substitutedRight) {
21 return new IntArithmeticBinaryTerm(getOperator(), substitutedLeft, substitutedRight);
22 }
23
24 @Override
25 protected Integer doEvaluate(Integer leftValue, Integer rightValue) {
26 return switch (getOperator()) {
27 case ADD -> leftValue + rightValue;
28 case SUB -> leftValue - rightValue;
29 case MUL -> leftValue * rightValue;
30 case DIV -> rightValue == 0 ? null : leftValue / rightValue;
31 case POW -> rightValue < 0 ? null : power(leftValue, rightValue);
32 case MIN -> Math.min(leftValue, rightValue);
33 case MAX -> Math.max(leftValue, rightValue);
34 };
35 }
36
37 private static int power(int base, int exponent) {
38 int accum = 1;
39 while (exponent > 0) {
40 if (exponent % 2 == 1) {
41 accum = accum * base;
42 }
43 base = base * base;
44 exponent = exponent / 2;
45 }
46 return accum;
47 }
48}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntArithmeticUnaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntArithmeticUnaryTerm.java
deleted file mode 100644
index 1e769259..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntArithmeticUnaryTerm.java
+++ /dev/null
@@ -1,30 +0,0 @@
1package tools.refinery.store.query.term.int_;
2
3import tools.refinery.store.query.substitution.Substitution;
4import tools.refinery.store.query.term.Term;
5import tools.refinery.store.query.term.ArithmeticUnaryOperator;
6import tools.refinery.store.query.term.ArithmeticUnaryTerm;
7
8public class IntArithmeticUnaryTerm extends ArithmeticUnaryTerm<Integer> {
9 public IntArithmeticUnaryTerm(ArithmeticUnaryOperator operation, Term<Integer> body) {
10 super(operation, body);
11 }
12
13 @Override
14 public Class<Integer> getType() {
15 return Integer.class;
16 }
17
18 @Override
19 protected Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedBody) {
20 return new IntArithmeticUnaryTerm(getOperator(), substitutedBody);
21 }
22
23 @Override
24 protected Integer doEvaluate(Integer bodyValue) {
25 return switch(getOperator()) {
26 case PLUS -> bodyValue;
27 case MINUS -> -bodyValue;
28 };
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntBinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntBinaryTerm.java
new file mode 100644
index 00000000..27ced4e4
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntBinaryTerm.java
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.term.BinaryTerm;
9import tools.refinery.store.query.term.Term;
10
11public abstract class IntBinaryTerm extends BinaryTerm<Integer, Integer, Integer> {
12 protected IntBinaryTerm(Term<Integer> left, Term<Integer> right) {
13 super(Integer.class, Integer.class, Integer.class, left, right);
14 }
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntComparisonTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntComparisonTerm.java
deleted file mode 100644
index 322d2b80..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntComparisonTerm.java
+++ /dev/null
@@ -1,34 +0,0 @@
1package tools.refinery.store.query.term.int_;
2import tools.refinery.store.query.substitution.Substitution;
3import tools.refinery.store.query.term.ComparisonOperator;
4import tools.refinery.store.query.term.ComparisonTerm;
5import tools.refinery.store.query.term.Term;
6
7public class IntComparisonTerm extends ComparisonTerm<Integer> {
8 public IntComparisonTerm(ComparisonOperator operator, Term<Integer> left, Term<Integer> right) {
9 super(operator, left, right);
10 }
11
12 @Override
13 public Class<Integer> getOperandType() {
14 return Integer.class;
15 }
16
17 @Override
18 public Term<Boolean> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
19 Term<Integer> substitutedRight) {
20 return new IntComparisonTerm(getOperator(), substitutedLeft, substitutedRight);
21 }
22
23 @Override
24 protected Boolean doEvaluate(Integer leftValue, Integer rightValue) {
25 return switch (getOperator()) {
26 case EQ -> leftValue.equals(rightValue);
27 case NOT_EQ -> !leftValue.equals(rightValue);
28 case LESS -> leftValue < rightValue;
29 case LESS_EQ -> leftValue <= rightValue;
30 case GREATER -> leftValue > rightValue;
31 case GREATER_EQ -> leftValue >= rightValue;
32 };
33 }
34}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntDivTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntDivTerm.java
new file mode 100644
index 00000000..2a35058c
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntDivTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntDivTerm extends IntBinaryTerm {
12 public IntDivTerm(Term<Integer> left, Term<Integer> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) {
19 return new IntDivTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Integer doEvaluate(Integer leftValue, Integer rightValue) {
24 return rightValue == 0 ? null : leftValue / rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s / %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntExtremeValueAggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntExtremeValueAggregator.java
deleted file mode 100644
index d5a6add0..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntExtremeValueAggregator.java
+++ /dev/null
@@ -1,17 +0,0 @@
1package tools.refinery.store.query.term.int_;
2
3import tools.refinery.store.query.term.ExtremeValueAggregator;
4
5import java.util.Comparator;
6
7public final class IntExtremeValueAggregator {
8 public static final ExtremeValueAggregator<Integer> MINIMUM = new ExtremeValueAggregator<>(Integer.class,
9 Integer.MAX_VALUE);
10
11 public static final ExtremeValueAggregator<Integer> MAXIMUM = new ExtremeValueAggregator<>(Integer.class,
12 Integer.MIN_VALUE, Comparator.reverseOrder());
13
14 private IntExtremeValueAggregator() {
15 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
16 }
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMaxTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMaxTerm.java
new file mode 100644
index 00000000..f81fc509
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMaxTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntMaxTerm extends IntBinaryTerm {
12 public IntMaxTerm(Term<Integer> left, Term<Integer> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) {
19 return new IntMaxTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Integer doEvaluate(Integer leftValue, Integer rightValue) {
24 return Math.max(rightValue, leftValue);
25 }
26
27 @Override
28 public String toString() {
29 return "max(%s, %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinTerm.java
new file mode 100644
index 00000000..89182e26
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntMinTerm extends IntBinaryTerm {
12 public IntMinTerm(Term<Integer> left, Term<Integer> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) {
19 return new IntMinTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Integer doEvaluate(Integer leftValue, Integer rightValue) {
24 return Math.min(rightValue, leftValue);
25 }
26
27 @Override
28 public String toString() {
29 return "min(%s, %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinusTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinusTerm.java
new file mode 100644
index 00000000..709aa5ba
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinusTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntMinusTerm extends IntUnaryTerm {
12 public IntMinusTerm(Term<Integer> body) {
13 super(body);
14 }
15
16 @Override
17 protected Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedBody) {
18 return new IntMinusTerm(substitutedBody);
19 }
20
21 @Override
22 protected Integer doEvaluate(Integer bodyValue) {
23 return -bodyValue;
24 }
25
26 @Override
27 public String toString() {
28 return "(-%s)".formatted(getBody());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMulTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMulTerm.java
new file mode 100644
index 00000000..89d4c5f4
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMulTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntMulTerm extends IntBinaryTerm {
12 public IntMulTerm(Term<Integer> left, Term<Integer> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) {
19 return new IntMulTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Integer doEvaluate(Integer leftValue, Integer rightValue) {
24 return leftValue * rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s * %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPlusTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPlusTerm.java
new file mode 100644
index 00000000..aef83bb4
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPlusTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntPlusTerm extends IntUnaryTerm {
12 public IntPlusTerm(Term<Integer> body) {
13 super(body);
14 }
15
16 @Override
17 protected Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedBody) {
18 return new IntPlusTerm(substitutedBody);
19 }
20
21 @Override
22 protected Integer doEvaluate(Integer bodyValue) {
23 return bodyValue;
24 }
25
26 @Override
27 public String toString() {
28 return "(+%s)".formatted(getBody());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPowTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPowTerm.java
new file mode 100644
index 00000000..d5af97a1
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPowTerm.java
@@ -0,0 +1,43 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntPowTerm extends IntBinaryTerm {
12 public IntPowTerm(Term<Integer> left, Term<Integer> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) {
19 return new IntPowTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Integer doEvaluate(Integer leftValue, Integer rightValue) {
24 return rightValue < 0 ? null : power(leftValue, rightValue);
25 }
26
27 private static int power(int base, int exponent) {
28 int accum = 1;
29 while (exponent > 0) {
30 if (exponent % 2 == 1) {
31 accum = accum * base;
32 }
33 base = base * base;
34 exponent = exponent / 2;
35 }
36 return accum;
37 }
38
39 @Override
40 public String toString() {
41 return "(%s ** %s)".formatted(getLeft(), getRight());
42 }
43}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSubTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSubTerm.java
new file mode 100644
index 00000000..2c27afb1
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSubTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class IntSubTerm extends IntBinaryTerm {
12 public IntSubTerm(Term<Integer> left, Term<Integer> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) {
19 return new IntSubTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Integer doEvaluate(Integer leftValue, Integer rightValue) {
24 return leftValue - rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s - %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSumAggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSumAggregator.java
index 65024f52..cd718c53 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSumAggregator.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSumAggregator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term.int_; 6package tools.refinery.store.query.term.int_;
2 7
3import tools.refinery.store.query.term.StatelessAggregator; 8import tools.refinery.store.query.term.StatelessAggregator;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntTerms.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntTerms.java
index 86594deb..acb98b94 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntTerms.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntTerms.java
@@ -1,81 +1,94 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term.int_; 6package tools.refinery.store.query.term.int_;
2 7
3import tools.refinery.store.query.term.*; 8import tools.refinery.store.query.term.Aggregator;
9import tools.refinery.store.query.term.ConstantTerm;
10import tools.refinery.store.query.term.ExtremeValueAggregator;
11import tools.refinery.store.query.term.Term;
12import tools.refinery.store.query.term.comparable.*;
13
14import java.util.Comparator;
4 15
5public final class IntTerms { 16public final class IntTerms {
6 public static final Aggregator<Integer, Integer> INT_SUM = IntSumAggregator.INSTANCE; 17 public static final Aggregator<Integer, Integer> INT_SUM = IntSumAggregator.INSTANCE;
7 public static final Aggregator<Integer, Integer> INT_MIN = IntExtremeValueAggregator.MINIMUM; 18 public static final Aggregator<Integer, Integer> INT_MIN = new ExtremeValueAggregator<>(Integer.class,
8 public static final Aggregator<Integer, Integer> INT_MAX = IntExtremeValueAggregator.MAXIMUM; 19 Integer.MAX_VALUE);
20 public static final Aggregator<Integer, Integer> INT_MAX = new ExtremeValueAggregator<>(Integer.class,
21 Integer.MIN_VALUE, Comparator.reverseOrder());
9 22
10 private IntTerms() { 23 private IntTerms() {
11 throw new IllegalArgumentException("This is a static utility class and should not be instantiated directly"); 24 throw new IllegalArgumentException("This is a static utility class and should not be instantiated directly");
12 } 25 }
13 26
14 public static ConstantTerm<Integer> constant(int value) { 27 public static Term<Integer> constant(Integer value) {
15 return new ConstantTerm<>(Integer.class, value); 28 return new ConstantTerm<>(Integer.class, value);
16 } 29 }
17 30
18 public static IntArithmeticUnaryTerm plus(Term<Integer> body) { 31 public static Term<Integer> plus(Term<Integer> body) {
19 return new IntArithmeticUnaryTerm(ArithmeticUnaryOperator.PLUS, body); 32 return new IntPlusTerm(body);
20 } 33 }
21 34
22 public static IntArithmeticUnaryTerm minus(Term<Integer> body) { 35 public static Term<Integer> minus(Term<Integer> body) {
23 return new IntArithmeticUnaryTerm(ArithmeticUnaryOperator.MINUS, body); 36 return new IntMinusTerm(body);
24 } 37 }
25 38
26 public static IntArithmeticBinaryTerm add(Term<Integer> left, Term<Integer> right) { 39 public static Term<Integer> add(Term<Integer> left, Term<Integer> right) {
27 return new IntArithmeticBinaryTerm(ArithmeticBinaryOperator.ADD, left, right); 40 return new IntAddTerm(left, right);
28 } 41 }
29 42
30 public static IntArithmeticBinaryTerm sub(Term<Integer> left, Term<Integer> right) { 43 public static Term<Integer> sub(Term<Integer> left, Term<Integer> right) {
31 return new IntArithmeticBinaryTerm(ArithmeticBinaryOperator.SUB, left, right); 44 return new IntSubTerm(left, right);
32 } 45 }
33 46
34 public static IntArithmeticBinaryTerm mul(Term<Integer> left, Term<Integer> right) { 47 public static Term<Integer> mul(Term<Integer> left, Term<Integer> right) {
35 return new IntArithmeticBinaryTerm(ArithmeticBinaryOperator.MUL, left, right); 48 return new IntMulTerm(left, right);
36 } 49 }
37 50
38 public static IntArithmeticBinaryTerm div(Term<Integer> left, Term<Integer> right) { 51 public static Term<Integer> div(Term<Integer> left, Term<Integer> right) {
39 return new IntArithmeticBinaryTerm(ArithmeticBinaryOperator.DIV, left, right); 52 return new IntDivTerm(left, right);
40 } 53 }
41 54
42 public static IntArithmeticBinaryTerm pow(Term<Integer> left, Term<Integer> right) { 55 public static Term<Integer> pow(Term<Integer> left, Term<Integer> right) {
43 return new IntArithmeticBinaryTerm(ArithmeticBinaryOperator.POW, left, right); 56 return new IntPowTerm(left, right);
44 } 57 }
45 58
46 public static IntArithmeticBinaryTerm min(Term<Integer> left, Term<Integer> right) { 59 public static Term<Integer> min(Term<Integer> left, Term<Integer> right) {
47 return new IntArithmeticBinaryTerm(ArithmeticBinaryOperator.MIN, left, right); 60 return new IntMinTerm(left, right);
48 } 61 }
49 62
50 public static IntArithmeticBinaryTerm max(Term<Integer> left, Term<Integer> right) { 63 public static Term<Integer> max(Term<Integer> left, Term<Integer> right) {
51 return new IntArithmeticBinaryTerm(ArithmeticBinaryOperator.MAX, left, right); 64 return new IntMaxTerm(left, right);
52 } 65 }
53 66
54 public static IntComparisonTerm eq(Term<Integer> left, Term<Integer> right) { 67 public static Term<Boolean> eq(Term<Integer> left, Term<Integer> right) {
55 return new IntComparisonTerm(ComparisonOperator.EQ, left, right); 68 return new EqTerm<>(Integer.class, left, right);
56 } 69 }
57 70
58 public static IntComparisonTerm notEq(Term<Integer> left, Term<Integer> right) { 71 public static Term<Boolean> notEq(Term<Integer> left, Term<Integer> right) {
59 return new IntComparisonTerm(ComparisonOperator.NOT_EQ, left, right); 72 return new NotEqTerm<>(Integer.class, left, right);
60 } 73 }
61 74
62 public static IntComparisonTerm less(Term<Integer> left, Term<Integer> right) { 75 public static Term<Boolean> less(Term<Integer> left, Term<Integer> right) {
63 return new IntComparisonTerm(ComparisonOperator.LESS, left, right); 76 return new LessTerm<>(Integer.class, left, right);
64 } 77 }
65 78
66 public static IntComparisonTerm lessEq(Term<Integer> left, Term<Integer> right) { 79 public static Term<Boolean> lessEq(Term<Integer> left, Term<Integer> right) {
67 return new IntComparisonTerm(ComparisonOperator.LESS_EQ, left, right); 80 return new LessEqTerm<>(Integer.class, left, right);
68 } 81 }
69 82
70 public static IntComparisonTerm greater(Term<Integer> left, Term<Integer> right) { 83 public static Term<Boolean> greater(Term<Integer> left, Term<Integer> right) {
71 return new IntComparisonTerm(ComparisonOperator.GREATER, left, right); 84 return new GreaterTerm<>(Integer.class, left, right);
72 } 85 }
73 86
74 public static IntComparisonTerm greaterEq(Term<Integer> left, Term<Integer> right) { 87 public static Term<Boolean> greaterEq(Term<Integer> left, Term<Integer> right) {
75 return new IntComparisonTerm(ComparisonOperator.GREATER_EQ, left, right); 88 return new GreaterEqTerm<>(Integer.class, left, right);
76 } 89 }
77 90
78 public static RealToIntTerm asInt(Term<Double> body) { 91 public static Term<Integer> asInt(Term<Double> body) {
79 return new RealToIntTerm(body); 92 return new RealToIntTerm(body);
80 } 93 }
81} 94}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntUnaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntUnaryTerm.java
new file mode 100644
index 00000000..49b4c647
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntUnaryTerm.java
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import tools.refinery.store.query.term.Term;
9import tools.refinery.store.query.term.UnaryTerm;
10
11public abstract class IntUnaryTerm extends UnaryTerm<Integer, Integer> {
12 protected IntUnaryTerm(Term<Integer> body) {
13 super(Integer.class, Integer.class, body);
14 }
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/RealToIntTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/RealToIntTerm.java
index 53875ddc..7d383562 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/RealToIntTerm.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/RealToIntTerm.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term.int_; 6package tools.refinery.store.query.term.int_;
2 7
3import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.store.query.substitution.Substitution;
@@ -6,22 +11,12 @@ import tools.refinery.store.query.term.UnaryTerm;
6 11
7public class RealToIntTerm extends UnaryTerm<Integer, Double> { 12public class RealToIntTerm extends UnaryTerm<Integer, Double> {
8 protected RealToIntTerm(Term<Double> body) { 13 protected RealToIntTerm(Term<Double> body) {
9 super(body); 14 super(Integer.class, Double.class, body);
10 }
11
12 @Override
13 public Class<Integer> getType() {
14 return Integer.class;
15 }
16
17 @Override
18 public Class<Double> getBodyType() {
19 return Double.class;
20 } 15 }
21 16
22 @Override 17 @Override
23 protected Integer doEvaluate(Double bodyValue) { 18 protected Integer doEvaluate(Double bodyValue) {
24 return bodyValue.intValue(); 19 return bodyValue.isNaN() ? null : bodyValue.intValue();
25 } 20 }
26 21
27 @Override 22 @Override
@@ -31,6 +26,6 @@ public class RealToIntTerm extends UnaryTerm<Integer, Double> {
31 26
32 @Override 27 @Override
33 public String toString() { 28 public String toString() {
34 return "(%s) as int".formatted(getBody()); 29 return "(%s as int)".formatted(getBody());
35 } 30 }
36} 31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/IntToRealTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/IntToRealTerm.java
index 55590824..2f53117a 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/IntToRealTerm.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/IntToRealTerm.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term.real; 6package tools.refinery.store.query.term.real;
2 7
3import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.store.query.substitution.Substitution;
@@ -6,17 +11,7 @@ import tools.refinery.store.query.term.UnaryTerm;
6 11
7public class IntToRealTerm extends UnaryTerm<Double, Integer> { 12public class IntToRealTerm extends UnaryTerm<Double, Integer> {
8 protected IntToRealTerm(Term<Integer> body) { 13 protected IntToRealTerm(Term<Integer> body) {
9 super(body); 14 super(Double.class, Integer.class, body);
10 }
11
12 @Override
13 public Class<Double> getType() {
14 return Double.class;
15 }
16
17 @Override
18 public Class<Integer> getBodyType() {
19 return Integer.class;
20 } 15 }
21 16
22 @Override 17 @Override
@@ -31,6 +26,6 @@ public class IntToRealTerm extends UnaryTerm<Double, Integer> {
31 26
32 @Override 27 @Override
33 public String toString() { 28 public String toString() {
34 return "(%s) as real".formatted(getBody()); 29 return "(%s as real)".formatted(getBody());
35 } 30 }
36} 31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealAddTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealAddTerm.java
new file mode 100644
index 00000000..33fc9e41
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealAddTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealAddTerm extends RealBinaryTerm {
12 public RealAddTerm(Term<Double> left, Term<Double> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
18 Term<Double> substitutedRight) {
19 return new RealAddTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Double doEvaluate(Double leftValue, Double rightValue) {
24 return leftValue + rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s + %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealArithmeticBinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealArithmeticBinaryTerm.java
deleted file mode 100644
index 57bcbe5e..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealArithmeticBinaryTerm.java
+++ /dev/null
@@ -1,36 +0,0 @@
1package tools.refinery.store.query.term.real;
2
3import tools.refinery.store.query.substitution.Substitution;
4import tools.refinery.store.query.term.ArithmeticBinaryOperator;
5import tools.refinery.store.query.term.ArithmeticBinaryTerm;
6import tools.refinery.store.query.term.Term;
7
8public class RealArithmeticBinaryTerm extends ArithmeticBinaryTerm<Double> {
9 public RealArithmeticBinaryTerm(ArithmeticBinaryOperator operator, Term<Double> left, Term<Double> right) {
10 super(operator, left, right);
11 }
12
13 @Override
14 public Class<Double> getType() {
15 return Double.class;
16 }
17
18 @Override
19 public Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
20 Term<Double> substitutedRight) {
21 return new RealArithmeticBinaryTerm(getOperator(), substitutedLeft, substitutedRight);
22 }
23
24 @Override
25 protected Double doEvaluate(Double leftValue, Double rightValue) {
26 return switch (getOperator()) {
27 case ADD -> leftValue + rightValue;
28 case SUB -> leftValue - rightValue;
29 case MUL -> leftValue * rightValue;
30 case DIV -> leftValue / rightValue;
31 case POW -> Math.pow(leftValue, rightValue);
32 case MIN -> Math.min(leftValue, rightValue);
33 case MAX -> Math.max(leftValue, rightValue);
34 };
35 }
36}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealArithmeticUnaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealArithmeticUnaryTerm.java
deleted file mode 100644
index 632e68bf..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealArithmeticUnaryTerm.java
+++ /dev/null
@@ -1,30 +0,0 @@
1package tools.refinery.store.query.term.real;
2
3import tools.refinery.store.query.substitution.Substitution;
4import tools.refinery.store.query.term.ArithmeticUnaryOperator;
5import tools.refinery.store.query.term.ArithmeticUnaryTerm;
6import tools.refinery.store.query.term.Term;
7
8public class RealArithmeticUnaryTerm extends ArithmeticUnaryTerm<Double> {
9 public RealArithmeticUnaryTerm(ArithmeticUnaryOperator operation, Term<Double> body) {
10 super(operation, body);
11 }
12
13 @Override
14 public Class<Double> getType() {
15 return Double.class;
16 }
17
18 @Override
19 protected Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedBody) {
20 return new RealArithmeticUnaryTerm(getOperator(), substitutedBody);
21 }
22
23 @Override
24 protected Double doEvaluate(Double bodyValue) {
25 return switch(getOperator()) {
26 case PLUS -> bodyValue;
27 case MINUS -> -bodyValue;
28 };
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealBinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealBinaryTerm.java
new file mode 100644
index 00000000..000f3623
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealBinaryTerm.java
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.term.BinaryTerm;
9import tools.refinery.store.query.term.Term;
10
11public abstract class RealBinaryTerm extends BinaryTerm<Double, Double, Double> {
12 protected RealBinaryTerm(Term<Double> left, Term<Double> right) {
13 super(Double.class, Double.class, Double.class, left, right);
14 }
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealComparisonTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealComparisonTerm.java
deleted file mode 100644
index 75d97adb..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealComparisonTerm.java
+++ /dev/null
@@ -1,35 +0,0 @@
1package tools.refinery.store.query.term.real;
2
3import tools.refinery.store.query.substitution.Substitution;
4import tools.refinery.store.query.term.ComparisonOperator;
5import tools.refinery.store.query.term.ComparisonTerm;
6import tools.refinery.store.query.term.Term;
7
8public class RealComparisonTerm extends ComparisonTerm<Double> {
9 public RealComparisonTerm(ComparisonOperator operator, Term<Double> left, Term<Double> right) {
10 super(operator, left, right);
11 }
12
13 @Override
14 public Class<Double> getOperandType() {
15 return Double.class;
16 }
17
18 @Override
19 public Term<Boolean> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
20 Term<Double> substitutedRight) {
21 return new RealComparisonTerm(getOperator(), substitutedLeft, substitutedRight);
22 }
23
24 @Override
25 protected Boolean doEvaluate(Double leftValue, Double rightValue) {
26 return switch (getOperator()) {
27 case EQ -> leftValue.equals(rightValue);
28 case NOT_EQ -> !leftValue.equals(rightValue);
29 case LESS -> leftValue < rightValue;
30 case LESS_EQ -> leftValue <= rightValue;
31 case GREATER -> leftValue > rightValue;
32 case GREATER_EQ -> leftValue >= rightValue;
33 };
34 }
35}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealDivTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealDivTerm.java
new file mode 100644
index 00000000..1e55bf42
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealDivTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealDivTerm extends RealBinaryTerm {
12 public RealDivTerm(Term<Double> left, Term<Double> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
18 Term<Double> substitutedRight) {
19 return new RealDivTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Double doEvaluate(Double leftValue, Double rightValue) {
24 return leftValue / rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s / %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealExtremeValueAggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealExtremeValueAggregator.java
deleted file mode 100644
index 23384530..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealExtremeValueAggregator.java
+++ /dev/null
@@ -1,17 +0,0 @@
1package tools.refinery.store.query.term.real;
2
3import tools.refinery.store.query.term.ExtremeValueAggregator;
4
5import java.util.Comparator;
6
7public final class RealExtremeValueAggregator {
8 public static final ExtremeValueAggregator<Double> MINIMUM = new ExtremeValueAggregator<>(Double.class,
9 Double.POSITIVE_INFINITY);
10
11 public static final ExtremeValueAggregator<Double> MAXIMUM = new ExtremeValueAggregator<>(Double.class,
12 Double.NEGATIVE_INFINITY, Comparator.reverseOrder());
13
14 private RealExtremeValueAggregator() {
15 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
16 }
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMaxTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMaxTerm.java
new file mode 100644
index 00000000..2a249496
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMaxTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealMaxTerm extends RealBinaryTerm {
12 public RealMaxTerm(Term<Double> left, Term<Double> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
18 Term<Double> substitutedRight) {
19 return new RealMaxTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Double doEvaluate(Double leftValue, Double rightValue) {
24 return Math.max(leftValue, rightValue);
25 }
26
27 @Override
28 public String toString() {
29 return "max(%s, %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinTerm.java
new file mode 100644
index 00000000..2eb4cc1e
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealMinTerm extends RealBinaryTerm {
12 public RealMinTerm(Term<Double> left, Term<Double> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
18 Term<Double> substitutedRight) {
19 return new RealMinTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Double doEvaluate(Double leftValue, Double rightValue) {
24 return Math.min(leftValue, rightValue);
25 }
26
27 @Override
28 public String toString() {
29 return "min(%s, %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinusTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinusTerm.java
new file mode 100644
index 00000000..4afec7a1
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinusTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealMinusTerm extends RealUnaryTerm {
12 public RealMinusTerm(Term<Double> body) {
13 super(body);
14 }
15
16 @Override
17 protected Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedBody) {
18 return new RealMinusTerm(substitutedBody);
19 }
20
21 @Override
22 protected Double doEvaluate(Double bodyValue) {
23 return -bodyValue;
24 }
25
26 @Override
27 public String toString() {
28 return "(-%s)".formatted(getBody());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMulTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMulTerm.java
new file mode 100644
index 00000000..ec95ac6f
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMulTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealMulTerm extends RealBinaryTerm {
12 public RealMulTerm(Term<Double> left, Term<Double> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
18 Term<Double> substitutedRight) {
19 return new RealMulTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Double doEvaluate(Double leftValue, Double rightValue) {
24 return leftValue * rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s * %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPlusTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPlusTerm.java
new file mode 100644
index 00000000..64dd2e70
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPlusTerm.java
@@ -0,0 +1,30 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealPlusTerm extends RealUnaryTerm {
12 public RealPlusTerm(Term<Double> body) {
13 super(body);
14 }
15
16 @Override
17 protected Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedBody) {
18 return new RealPlusTerm(substitutedBody);
19 }
20
21 @Override
22 protected Double doEvaluate(Double bodyValue) {
23 return bodyValue;
24 }
25
26 @Override
27 public String toString() {
28 return "(+%s)".formatted(getBody());
29 }
30}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPowTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPowTerm.java
new file mode 100644
index 00000000..11c952ea
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPowTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealPowTerm extends RealBinaryTerm {
12 public RealPowTerm(Term<Double> left, Term<Double> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
18 Term<Double> substitutedRight) {
19 return new RealPowTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Double doEvaluate(Double leftValue, Double rightValue) {
24 return Math.pow(leftValue, rightValue);
25 }
26
27 @Override
28 public String toString() {
29 return "(%s ** %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSubTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSubTerm.java
new file mode 100644
index 00000000..8cc701ed
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSubTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10
11public class RealSubTerm extends RealBinaryTerm {
12 public RealSubTerm(Term<Double> left, Term<Double> right) {
13 super(left, right);
14 }
15
16 @Override
17 public Term<Double> doSubstitute(Substitution substitution, Term<Double> substitutedLeft,
18 Term<Double> substitutedRight) {
19 return new RealSubTerm(substitutedLeft, substitutedRight);
20 }
21
22 @Override
23 protected Double doEvaluate(Double leftValue, Double rightValue) {
24 return leftValue - rightValue;
25 }
26
27 @Override
28 public String toString() {
29 return "(%s - %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSumAggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSumAggregator.java
index d5888664..d21048e9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSumAggregator.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSumAggregator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term.real; 6package tools.refinery.store.query.term.real;
2 7
3import tools.refinery.store.query.term.StatefulAggregate; 8import tools.refinery.store.query.term.StatefulAggregate;
@@ -14,12 +19,12 @@ public final class RealSumAggregator implements StatefulAggregator<Double, Doubl
14 19
15 @Override 20 @Override
16 public Class<Double> getResultType() { 21 public Class<Double> getResultType() {
17 return null; 22 return Double.class;
18 } 23 }
19 24
20 @Override 25 @Override
21 public Class<Double> getInputType() { 26 public Class<Double> getInputType() {
22 return null; 27 return Double.class;
23 } 28 }
24 29
25 @Override 30 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealTerms.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealTerms.java
index a8117842..79220358 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealTerms.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealTerms.java
@@ -1,81 +1,94 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.term.real; 6package tools.refinery.store.query.term.real;
2 7
3import tools.refinery.store.query.term.*; 8import tools.refinery.store.query.term.Aggregator;
9import tools.refinery.store.query.term.ConstantTerm;
10import tools.refinery.store.query.term.ExtremeValueAggregator;
11import tools.refinery.store.query.term.Term;
12import tools.refinery.store.query.term.comparable.*;
13
14import java.util.Comparator;
4 15
5public final class RealTerms { 16public final class RealTerms {
6 public static final Aggregator<Double, Double> REAL_SUM = RealSumAggregator.INSTANCE; 17 public static final Aggregator<Double, Double> REAL_SUM = RealSumAggregator.INSTANCE;
7 public static final Aggregator<Double, Double> REAL_MIN = RealExtremeValueAggregator.MINIMUM; 18 public static final Aggregator<Double, Double> REAL_MIN = new ExtremeValueAggregator<>(Double.class,
8 public static final Aggregator<Double, Double> REAL_MAX = RealExtremeValueAggregator.MAXIMUM; 19 Double.POSITIVE_INFINITY);
20 public static final Aggregator<Double, Double> REAL_MAX = new ExtremeValueAggregator<>(Double.class,
21 Double.NEGATIVE_INFINITY, Comparator.reverseOrder());
9 22
10 private RealTerms() { 23 private RealTerms() {
11 throw new IllegalArgumentException("This is a static utility class and should not be instantiated directly"); 24 throw new IllegalArgumentException("This is a static utility class and should not be instantiated directly");
12 } 25 }
13 26
14 public static ConstantTerm<Double> constant(double value) { 27 public static Term<Double> constant(Double value) {
15 return new ConstantTerm<>(Double.class, value); 28 return new ConstantTerm<>(Double.class, value);
16 } 29 }
17 30
18 public static RealArithmeticUnaryTerm plus(Term<Double> body) { 31 public static Term<Double> plus(Term<Double> body) {
19 return new RealArithmeticUnaryTerm(ArithmeticUnaryOperator.PLUS, body); 32 return new RealPlusTerm(body);
20 } 33 }
21 34
22 public static RealArithmeticUnaryTerm minus(Term<Double> body) { 35 public static Term<Double> minus(Term<Double> body) {
23 return new RealArithmeticUnaryTerm(ArithmeticUnaryOperator.MINUS, body); 36 return new RealMinusTerm(body);
24 } 37 }
25 38
26 public static RealArithmeticBinaryTerm add(Term<Double> left, Term<Double> right) { 39 public static Term<Double> add(Term<Double> left, Term<Double> right) {
27 return new RealArithmeticBinaryTerm(ArithmeticBinaryOperator.ADD, left, right); 40 return new RealAddTerm(left, right);
28 } 41 }
29 42
30 public static RealArithmeticBinaryTerm sub(Term<Double> left, Term<Double> right) { 43 public static Term<Double> sub(Term<Double> left, Term<Double> right) {
31 return new RealArithmeticBinaryTerm(ArithmeticBinaryOperator.SUB, left, right); 44 return new RealSubTerm(left, right);
32 } 45 }
33 46
34 public static RealArithmeticBinaryTerm mul(Term<Double> left, Term<Double> right) { 47 public static Term<Double> mul(Term<Double> left, Term<Double> right) {
35 return new RealArithmeticBinaryTerm(ArithmeticBinaryOperator.MUL, left, right); 48 return new RealMulTerm(left, right);
36 } 49 }
37 50
38 public static RealArithmeticBinaryTerm div(Term<Double> left, Term<Double> right) { 51 public static Term<Double> div(Term<Double> left, Term<Double> right) {
39 return new RealArithmeticBinaryTerm(ArithmeticBinaryOperator.DIV, left, right); 52 return new RealDivTerm(left, right);
40 } 53 }
41 54
42 public static RealArithmeticBinaryTerm pow(Term<Double> left, Term<Double> right) { 55 public static Term<Double> pow(Term<Double> left, Term<Double> right) {
43 return new RealArithmeticBinaryTerm(ArithmeticBinaryOperator.POW, left, right); 56 return new RealPowTerm(left, right);
44 } 57 }
45 58
46 public static RealArithmeticBinaryTerm min(Term<Double> left, Term<Double> right) { 59 public static Term<Double> min(Term<Double> left, Term<Double> right) {
47 return new RealArithmeticBinaryTerm(ArithmeticBinaryOperator.MIN, left, right); 60 return new RealMinTerm(left, right);
48 } 61 }
49 62
50 public static RealArithmeticBinaryTerm max(Term<Double> left, Term<Double> right) { 63 public static Term<Double> max(Term<Double> left, Term<Double> right) {
51 return new RealArithmeticBinaryTerm(ArithmeticBinaryOperator.MAX, left, right); 64 return new RealMaxTerm(left, right);
52 } 65 }
53 66
54 public static RealComparisonTerm eq(Term<Double> left, Term<Double> right) { 67 public static Term<Boolean> eq(Term<Double> left, Term<Double> right) {
55 return new RealComparisonTerm(ComparisonOperator.EQ, left, right); 68 return new EqTerm<>(Double.class, left, right);
56 } 69 }
57 70
58 public static RealComparisonTerm notEq(Term<Double> left, Term<Double> right) { 71 public static Term<Boolean> notEq(Term<Double> left, Term<Double> right) {
59 return new RealComparisonTerm(ComparisonOperator.NOT_EQ, left, right); 72 return new NotEqTerm<>(Double.class, left, right);
60 } 73 }
61 74
62 public static RealComparisonTerm less(Term<Double> left, Term<Double> right) { 75 public static Term<Boolean> less(Term<Double> left, Term<Double> right) {
63 return new RealComparisonTerm(ComparisonOperator.LESS, left, right); 76 return new LessTerm<>(Double.class, left, right);
64 } 77 }
65 78
66 public static RealComparisonTerm lessEq(Term<Double> left, Term<Double> right) { 79 public static Term<Boolean> lessEq(Term<Double> left, Term<Double> right) {
67 return new RealComparisonTerm(ComparisonOperator.LESS_EQ, left, right); 80 return new LessEqTerm<>(Double.class, left, right);
68 } 81 }
69 82
70 public static RealComparisonTerm greater(Term<Double> left, Term<Double> right) { 83 public static Term<Boolean> greater(Term<Double> left, Term<Double> right) {
71 return new RealComparisonTerm(ComparisonOperator.GREATER, left, right); 84 return new GreaterTerm<>(Double.class, left, right);
72 } 85 }
73 86
74 public static RealComparisonTerm greaterEq(Term<Double> left, Term<Double> right) { 87 public static Term<Boolean> greaterEq(Term<Double> left, Term<Double> right) {
75 return new RealComparisonTerm(ComparisonOperator.GREATER_EQ, left, right); 88 return new GreaterEqTerm<>(Double.class, left, right);
76 } 89 }
77 90
78 public static IntToRealTerm asReal(Term<Integer> body) { 91 public static Term<Double> asReal(Term<Integer> body) {
79 return new IntToRealTerm(body); 92 return new IntToRealTerm(body);
80 } 93 }
81} 94}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealUnaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealUnaryTerm.java
new file mode 100644
index 00000000..d41c4ed9
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealUnaryTerm.java
@@ -0,0 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import tools.refinery.store.query.term.Term;
9import tools.refinery.store.query.term.UnaryTerm;
10
11public abstract class RealUnaryTerm extends UnaryTerm<Double, Double> {
12 protected RealUnaryTerm(Term<Double> body) {
13 super(Double.class, Double.class, body);
14 }
15}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityAddTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityAddTerm.java
new file mode 100644
index 00000000..68905f51
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityAddTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11
12public class UpperCardinalityAddTerm extends UpperCardinalityBinaryTerm {
13 protected UpperCardinalityAddTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
14 super(left, right);
15 }
16
17 @Override
18 protected UpperCardinality doEvaluate(UpperCardinality leftValue, UpperCardinality rightValue) {
19 return leftValue.add(rightValue);
20 }
21
22 @Override
23 public Term<UpperCardinality> doSubstitute(Substitution substitution, Term<UpperCardinality> substitutedLeft, Term<UpperCardinality> substitutedRight) {
24 return new UpperCardinalityAddTerm(substitutedLeft, substitutedRight);
25 }
26
27 @Override
28 public String toString() {
29 return "(%s + %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityBinaryTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityBinaryTerm.java
new file mode 100644
index 00000000..0cf8fe44
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityBinaryTerm.java
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import tools.refinery.store.query.term.BinaryTerm;
9import tools.refinery.store.query.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11
12public abstract class UpperCardinalityBinaryTerm extends BinaryTerm<UpperCardinality, UpperCardinality,
13 UpperCardinality> {
14 protected UpperCardinalityBinaryTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
15 super(UpperCardinality.class, UpperCardinality.class, UpperCardinality.class, left, right);
16 }
17}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMaxTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMaxTerm.java
new file mode 100644
index 00000000..ff75f64e
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMaxTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11
12public class UpperCardinalityMaxTerm extends UpperCardinalityBinaryTerm {
13 protected UpperCardinalityMaxTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
14 super(left, right);
15 }
16
17 @Override
18 protected UpperCardinality doEvaluate(UpperCardinality leftValue, UpperCardinality rightValue) {
19 return leftValue.max(rightValue);
20 }
21
22 @Override
23 public Term<UpperCardinality> doSubstitute(Substitution substitution, Term<UpperCardinality> substitutedLeft, Term<UpperCardinality> substitutedRight) {
24 return new UpperCardinalityMaxTerm(substitutedLeft, substitutedRight);
25 }
26
27 @Override
28 public String toString() {
29 return "max(%s, %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMinTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMinTerm.java
new file mode 100644
index 00000000..1e89e9f4
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMinTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11
12public class UpperCardinalityMinTerm extends UpperCardinalityBinaryTerm {
13 protected UpperCardinalityMinTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
14 super(left, right);
15 }
16
17 @Override
18 protected UpperCardinality doEvaluate(UpperCardinality leftValue, UpperCardinality rightValue) {
19 return leftValue.min(rightValue);
20 }
21
22 @Override
23 public Term<UpperCardinality> doSubstitute(Substitution substitution, Term<UpperCardinality> substitutedLeft, Term<UpperCardinality> substitutedRight) {
24 return new UpperCardinalityMinTerm(substitutedLeft, substitutedRight);
25 }
26
27 @Override
28 public String toString() {
29 return "min(%s, %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMulTerm.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMulTerm.java
new file mode 100644
index 00000000..3b4970f4
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMulTerm.java
@@ -0,0 +1,31 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import tools.refinery.store.query.substitution.Substitution;
9import tools.refinery.store.query.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11
12public class UpperCardinalityMulTerm extends UpperCardinalityBinaryTerm {
13 protected UpperCardinalityMulTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
14 super(left, right);
15 }
16
17 @Override
18 protected UpperCardinality doEvaluate(UpperCardinality leftValue, UpperCardinality rightValue) {
19 return leftValue.multiply(rightValue);
20 }
21
22 @Override
23 public Term<UpperCardinality> doSubstitute(Substitution substitution, Term<UpperCardinality> substitutedLeft, Term<UpperCardinality> substitutedRight) {
24 return new UpperCardinalityMulTerm(substitutedLeft, substitutedRight);
25 }
26
27 @Override
28 public String toString() {
29 return "(%s * %s)".formatted(getLeft(), getRight());
30 }
31}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregator.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregator.java
new file mode 100644
index 00000000..5bbd3081
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregator.java
@@ -0,0 +1,86 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import tools.refinery.store.query.term.StatefulAggregate;
9import tools.refinery.store.query.term.StatefulAggregator;
10import tools.refinery.store.representation.cardinality.FiniteUpperCardinality;
11import tools.refinery.store.representation.cardinality.UnboundedUpperCardinality;
12import tools.refinery.store.representation.cardinality.UpperCardinalities;
13import tools.refinery.store.representation.cardinality.UpperCardinality;
14
15public class UpperCardinalitySumAggregator implements StatefulAggregator<UpperCardinality, UpperCardinality> {
16 public static final UpperCardinalitySumAggregator INSTANCE = new UpperCardinalitySumAggregator();
17
18 private UpperCardinalitySumAggregator() {
19 }
20
21 @Override
22 public Class<UpperCardinality> getResultType() {
23 return UpperCardinality.class;
24 }
25
26 @Override
27 public Class<UpperCardinality> getInputType() {
28 return UpperCardinality.class;
29 }
30
31 @Override
32 public StatefulAggregate<UpperCardinality, UpperCardinality> createEmptyAggregate() {
33 return new Aggregate();
34 }
35
36 private static class Aggregate implements StatefulAggregate<UpperCardinality, UpperCardinality> {
37 private int sumFiniteUpperBounds;
38 private int countUnbounded;
39
40 public Aggregate() {
41 this(0, 0);
42 }
43
44 private Aggregate(int sumFiniteUpperBounds, int countUnbounded) {
45 this.sumFiniteUpperBounds = sumFiniteUpperBounds;
46 this.countUnbounded = countUnbounded;
47 }
48
49 @Override
50 public void add(UpperCardinality value) {
51 if (value instanceof FiniteUpperCardinality finiteUpperCardinality) {
52 sumFiniteUpperBounds += finiteUpperCardinality.finiteUpperBound();
53 } else if (value instanceof UnboundedUpperCardinality) {
54 countUnbounded += 1;
55 } else {
56 throw new IllegalArgumentException("Unknown UpperCardinality: " + value);
57 }
58 }
59
60 @Override
61 public void remove(UpperCardinality value) {
62 if (value instanceof FiniteUpperCardinality finiteUpperCardinality) {
63 sumFiniteUpperBounds -= finiteUpperCardinality.finiteUpperBound();
64 } else if (value instanceof UnboundedUpperCardinality) {
65 countUnbounded -= 1;
66 } else {
67 throw new IllegalArgumentException("Unknown UpperCardinality: " + value);
68 }
69 }
70
71 @Override
72 public UpperCardinality getResult() {
73 return countUnbounded > 0 ? UpperCardinalities.UNBOUNDED : UpperCardinalities.valueOf(sumFiniteUpperBounds);
74 }
75
76 @Override
77 public boolean isEmpty() {
78 return sumFiniteUpperBounds == 0 && countUnbounded == 0;
79 }
80
81 @Override
82 public StatefulAggregate<UpperCardinality, UpperCardinality> deepCopy() {
83 return new Aggregate(sumFiniteUpperBounds, countUnbounded);
84 }
85 }
86}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTerms.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTerms.java
new file mode 100644
index 00000000..13914f2d
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTerms.java
@@ -0,0 +1,73 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import tools.refinery.store.query.term.Aggregator;
9import tools.refinery.store.query.term.ConstantTerm;
10import tools.refinery.store.query.term.ExtremeValueAggregator;
11import tools.refinery.store.query.term.Term;
12import tools.refinery.store.query.term.comparable.*;
13import tools.refinery.store.representation.cardinality.UpperCardinalities;
14import tools.refinery.store.representation.cardinality.UpperCardinality;
15
16import java.util.Comparator;
17
18public final class UpperCardinalityTerms {
19 public static final Aggregator<UpperCardinality, UpperCardinality> UPPER_CARDINALITY_SUM =
20 UpperCardinalitySumAggregator.INSTANCE;
21 public static final Aggregator<UpperCardinality, UpperCardinality> UPPER_CARDINALITY_MIN =
22 new ExtremeValueAggregator<>(UpperCardinality.class, UpperCardinalities.UNBOUNDED);
23 public static final Aggregator<UpperCardinality, UpperCardinality> UPPER_CARDINALITY_MAX =
24 new ExtremeValueAggregator<>(UpperCardinality.class, UpperCardinalities.ZERO, Comparator.reverseOrder());
25
26 private UpperCardinalityTerms() {
27 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
28 }
29
30 public static Term<UpperCardinality> constant(UpperCardinality value) {
31 return new ConstantTerm<>(UpperCardinality.class, value);
32 }
33
34 public static Term<UpperCardinality> add(Term<UpperCardinality> left, Term<UpperCardinality> right) {
35 return new UpperCardinalityAddTerm(left, right);
36 }
37
38 public static Term<UpperCardinality> mul(Term<UpperCardinality> left, Term<UpperCardinality> right) {
39 return new UpperCardinalityMulTerm(left, right);
40 }
41
42 public static Term<UpperCardinality> min(Term<UpperCardinality> left, Term<UpperCardinality> right) {
43 return new UpperCardinalityMinTerm(left, right);
44 }
45
46 public static Term<UpperCardinality> max(Term<UpperCardinality> left, Term<UpperCardinality> right) {
47 return new UpperCardinalityMaxTerm(left, right);
48 }
49
50 public static Term<Boolean> eq(Term<UpperCardinality> left, Term<UpperCardinality> right) {
51 return new EqTerm<>(UpperCardinality.class, left, right);
52 }
53
54 public static Term<Boolean> notEq(Term<UpperCardinality> left, Term<UpperCardinality> right) {
55 return new NotEqTerm<>(UpperCardinality.class, left, right);
56 }
57
58 public static Term<Boolean> less(Term<UpperCardinality> left, Term<UpperCardinality> right) {
59 return new LessTerm<>(UpperCardinality.class, left, right);
60 }
61
62 public static Term<Boolean> lessEq(Term<UpperCardinality> left, Term<UpperCardinality> right) {
63 return new LessEqTerm<>(UpperCardinality.class, left, right);
64 }
65
66 public static Term<Boolean> greater(Term<UpperCardinality> left, Term<UpperCardinality> right) {
67 return new GreaterTerm<>(UpperCardinality.class, left, right);
68 }
69
70 public static Term<Boolean> greaterEq(Term<UpperCardinality> left, Term<UpperCardinality> right) {
71 return new GreaterEqTerm<>(UpperCardinality.class, left, right);
72 }
73}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/MapBasedValuation.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/MapBasedValuation.java
new file mode 100644
index 00000000..261ceaa5
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/MapBasedValuation.java
@@ -0,0 +1,22 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.valuation;
7
8import tools.refinery.store.query.term.AnyDataVariable;
9import tools.refinery.store.query.term.DataVariable;
10
11import java.util.Map;
12
13record MapBasedValuation(Map<AnyDataVariable, Object> values) implements Valuation {
14 @Override
15 public <T> T getValue(DataVariable<T> variable) {
16 if (!values.containsKey(variable)) {
17 throw new IllegalArgumentException("No value for variable %s".formatted(variable));
18 }
19 var value = values.get(variable);
20 return variable.getType().cast(value);
21 }
22}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/RestrictedValuation.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/RestrictedValuation.java
index fb512d88..fc8406aa 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/RestrictedValuation.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/RestrictedValuation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.valuation; 6package tools.refinery.store.query.valuation;
2 7
3import tools.refinery.store.query.term.AnyDataVariable; 8import tools.refinery.store.query.term.AnyDataVariable;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/SubstitutedValuation.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/SubstitutedValuation.java
index 8e79663c..1c14112c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/SubstitutedValuation.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/SubstitutedValuation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.valuation; 6package tools.refinery.store.query.valuation;
2 7
3import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.store.query.substitution.Substitution;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java
index 3ba9a6b8..1588e957 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.valuation; 6package tools.refinery.store.query.valuation;
2 7
3import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
@@ -5,6 +10,7 @@ import tools.refinery.store.query.substitution.Substitution;
5import tools.refinery.store.query.term.AnyDataVariable; 10import tools.refinery.store.query.term.AnyDataVariable;
6import tools.refinery.store.query.term.DataVariable; 11import tools.refinery.store.query.term.DataVariable;
7 12
13import java.util.Map;
8import java.util.Set; 14import java.util.Set;
9 15
10public interface Valuation { 16public interface Valuation {
@@ -20,4 +26,12 @@ public interface Valuation {
20 default Valuation restrict(Set<? extends AnyDataVariable> allowedVariables) { 26 default Valuation restrict(Set<? extends AnyDataVariable> allowedVariables) {
21 return new RestrictedValuation(this, Set.copyOf(allowedVariables)); 27 return new RestrictedValuation(this, Set.copyOf(allowedVariables));
22 } 28 }
29
30 static ValuationBuilder builder() {
31 return new ValuationBuilder();
32 }
33
34 static Valuation empty() {
35 return new MapBasedValuation(Map.of());
36 }
23} 37}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/ValuationBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/ValuationBuilder.java
new file mode 100644
index 00000000..7337dbc3
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/ValuationBuilder.java
@@ -0,0 +1,40 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.valuation;
7
8import tools.refinery.store.query.term.AnyDataVariable;
9import tools.refinery.store.query.term.DataVariable;
10
11import java.util.Collections;
12import java.util.HashMap;
13import java.util.Map;
14
15public class ValuationBuilder {
16 private final Map<AnyDataVariable, Object> values = new HashMap<>();
17
18 ValuationBuilder() {
19 }
20
21 public <T> ValuationBuilder put(DataVariable<T> variable, T value) {
22 return putChecked(variable, value);
23 }
24
25 public ValuationBuilder putChecked(AnyDataVariable variable, Object value) {
26 if (value != null && !variable.getType().isInstance(value)) {
27 throw new IllegalArgumentException("Value %s is not an instance of %s"
28 .formatted(value, variable.getType().getName()));
29 }
30 if (values.containsKey(variable)) {
31 throw new IllegalArgumentException("Already has value for variable %s".formatted(variable));
32 }
33 values.put(variable, value);
34 return this;
35 }
36
37 public Valuation build() {
38 return new MapBasedValuation(Collections.unmodifiableMap(values));
39 }
40}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java
new file mode 100644
index 00000000..c1f9d688
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java
@@ -0,0 +1,112 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.view;
7
8import tools.refinery.store.model.Model;
9import tools.refinery.store.query.dnf.FunctionalDependency;
10import tools.refinery.store.query.term.Parameter;
11import tools.refinery.store.representation.Symbol;
12import tools.refinery.store.tuple.Tuple;
13import tools.refinery.store.tuple.Tuple1;
14
15import java.util.Arrays;
16import java.util.List;
17import java.util.Objects;
18import java.util.Set;
19import java.util.stream.Collectors;
20import java.util.stream.IntStream;
21
22public abstract class AbstractFunctionView<T> extends SymbolView<T> {
23 private final T defaultValue;
24 private final List<Parameter> parameters;
25
26 protected AbstractFunctionView(Symbol<T> symbol, String name, Parameter outParameter) {
27 super(symbol, name);
28 defaultValue = symbol.defaultValue();
29 parameters = createParameters(symbol.arity(), outParameter);
30 }
31
32 @Override
33 public Set<FunctionalDependency<Integer>> getFunctionalDependencies() {
34 var arity = getSymbol().arity();
35 var forEach = IntStream.range(0, arity).boxed().collect(Collectors.toUnmodifiableSet());
36 var unique = Set.of(arity);
37 return Set.of(new FunctionalDependency<>(forEach, unique));
38 }
39
40 @Override
41 public Set<ViewImplication> getImpliedRelationViews() {
42 var symbol = getSymbol();
43 var impliedIndices = IntStream.range(0, symbol.arity()).boxed().toList();
44 var keysView = new KeyOnlyView<>(symbol);
45 return Set.of(new ViewImplication(this, keysView, impliedIndices));
46 }
47
48 @Override
49 public final boolean filter(Tuple key, T value) {
50 return !Objects.equals(defaultValue, value);
51 }
52
53 protected Object forwardMapValue(Tuple key, T value) {
54 return value;
55 }
56
57 protected boolean valueEquals(Tuple key, T value, Object otherForwardMappedValue) {
58 return Objects.equals(otherForwardMappedValue, forwardMapValue(key, value));
59 }
60
61 @Override
62 public Object[] forwardMap(Tuple key, T value) {
63 int size = key.getSize();
64 Object[] result = new Object[size + 1];
65 for (int i = 0; i < size; i++) {
66 result[i] = Tuple.of(key.get(i));
67 }
68 result[key.getSize()] = forwardMapValue(key, value);
69 return result;
70 }
71
72 @Override
73 public boolean get(Model model, Object[] tuple) {
74 int[] content = new int[tuple.length - 1];
75 for (int i = 0; i < tuple.length - 1; i++) {
76 if (!(tuple[i] instanceof Tuple1 wrapper)) {
77 return false;
78 }
79 content[i] = wrapper.value0();
80 }
81 Tuple key = Tuple.of(content);
82 var valueInTuple = tuple[tuple.length - 1];
83 T valueInMap = model.getInterpretation(getSymbol()).get(key);
84 return valueEquals(key, valueInMap, valueInTuple);
85 }
86
87 @Override
88 public List<Parameter> getParameters() {
89 return parameters;
90 }
91
92 @Override
93 public boolean equals(Object o) {
94 if (this == o) return true;
95 if (o == null || getClass() != o.getClass()) return false;
96 if (!super.equals(o)) return false;
97 AbstractFunctionView<?> that = (AbstractFunctionView<?>) o;
98 return Objects.equals(defaultValue, that.defaultValue) && Objects.equals(parameters, that.parameters);
99 }
100
101 @Override
102 public int hashCode() {
103 return Objects.hash(super.hashCode(), defaultValue, parameters);
104 }
105
106 private static List<Parameter> createParameters(int symbolArity, Parameter outParameter) {
107 var parameters = new Parameter[symbolArity + 1];
108 Arrays.fill(parameters, Parameter.NODE_OUT);
109 parameters[symbolArity] = outParameter;
110 return List.of(parameters);
111 }
112}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnyRelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnySymbolView.java
index 6ae410f2..90b27ebb 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnyRelationView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnySymbolView.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
@@ -7,7 +12,7 @@ import tools.refinery.store.query.Constraint;
7 12
8import java.util.Set; 13import java.util.Set;
9 14
10public sealed interface AnyRelationView extends Constraint permits RelationView { 15public sealed interface AnySymbolView extends Constraint permits SymbolView {
11 AnySymbol getSymbol(); 16 AnySymbol getSymbol();
12 17
13 String getViewName(); 18 String getViewName();
@@ -16,7 +21,7 @@ public sealed interface AnyRelationView extends Constraint permits RelationView
16 return Set.of(); 21 return Set.of();
17 } 22 }
18 23
19 default Set<RelationViewImplication> getImpliedRelationViews() { 24 default Set<ViewImplication> getImpliedRelationViews() {
20 return Set.of(); 25 return Set.of();
21 } 26 }
22 27
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredRelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredView.java
index 64c601bb..922c7355 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredRelationView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredView.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
2 7
3import tools.refinery.store.tuple.Tuple; 8import tools.refinery.store.tuple.Tuple;
@@ -7,24 +12,24 @@ import java.util.Objects;
7import java.util.function.BiPredicate; 12import java.util.function.BiPredicate;
8import java.util.function.Predicate; 13import java.util.function.Predicate;
9 14
10public class FilteredRelationView<T> extends TuplePreservingRelationView<T> { 15public class FilteredView<T> extends TuplePreservingView<T> {
11 private final BiPredicate<Tuple, T> predicate; 16 private final BiPredicate<Tuple, T> predicate;
12 17
13 public FilteredRelationView(Symbol<T> symbol, String name, BiPredicate<Tuple, T> predicate) { 18 public FilteredView(Symbol<T> symbol, String name, BiPredicate<Tuple, T> predicate) {
14 super(symbol, name); 19 super(symbol, name);
15 this.predicate = predicate; 20 this.predicate = predicate;
16 } 21 }
17 22
18 public FilteredRelationView(Symbol<T> symbol, BiPredicate<Tuple, T> predicate) { 23 public FilteredView(Symbol<T> symbol, BiPredicate<Tuple, T> predicate) {
19 super(symbol); 24 super(symbol);
20 this.predicate = predicate; 25 this.predicate = predicate;
21 } 26 }
22 27
23 public FilteredRelationView(Symbol<T> symbol, String name, Predicate<T> predicate) { 28 public FilteredView(Symbol<T> symbol, String name, Predicate<T> predicate) {
24 this(symbol, name, (k, v) -> predicate.test(v)); 29 this(symbol, name, (k, v) -> predicate.test(v));
25 } 30 }
26 31
27 public FilteredRelationView(Symbol<T> symbol, Predicate<T> predicate) { 32 public FilteredView(Symbol<T> symbol, Predicate<T> predicate) {
28 this(symbol, (k, v) -> predicate.test(v)); 33 this(symbol, (k, v) -> predicate.test(v));
29 } 34 }
30 35
@@ -38,7 +43,7 @@ public class FilteredRelationView<T> extends TuplePreservingRelationView<T> {
38 if (this == o) return true; 43 if (this == o) return true;
39 if (o == null || getClass() != o.getClass()) return false; 44 if (o == null || getClass() != o.getClass()) return false;
40 if (!super.equals(o)) return false; 45 if (!super.equals(o)) return false;
41 FilteredRelationView<?> that = (FilteredRelationView<?>) o; 46 FilteredView<?> that = (FilteredView<?>) o;
42 return Objects.equals(predicate, that.predicate); 47 return Objects.equals(predicate, that.predicate);
43 } 48 }
44 49
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenRelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenView.java
index 050b9496..26b717ee 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenRelationView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenView.java
@@ -1,11 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
2 7
3import tools.refinery.store.representation.Symbol; 8import tools.refinery.store.representation.Symbol;
4import tools.refinery.store.representation.TruthValue; 9import tools.refinery.store.representation.TruthValue;
5import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
6 11
7public class ForbiddenRelationView extends TuplePreservingRelationView<TruthValue> { 12public class ForbiddenView extends TuplePreservingView<TruthValue> {
8 public ForbiddenRelationView(Symbol<TruthValue> symbol) { 13 public ForbiddenView(Symbol<TruthValue> symbol) {
9 super(symbol, "forbidden"); 14 super(symbol, "forbidden");
10 } 15 }
11 16
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java
new file mode 100644
index 00000000..74a5be07
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java
@@ -0,0 +1,36 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.view;
7
8import tools.refinery.store.query.term.*;
9import tools.refinery.store.representation.Symbol;
10
11import java.util.ArrayList;
12import java.util.List;
13
14public final class FunctionView<T> extends AbstractFunctionView<T> {
15 public FunctionView(Symbol<T> symbol, String name) {
16 super(symbol, name, new Parameter(symbol.valueType(), ParameterDirection.OUT));
17 }
18
19 public FunctionView(Symbol<T> symbol) {
20 this(symbol, "function");
21 }
22
23 public <R> AssignedValue<R> aggregate(Aggregator<R, T> aggregator, List<NodeVariable> arguments) {
24 return targetVariable -> {
25 var placeholderVariable = Variable.of(getSymbol().valueType());
26 var argumentsWithPlaceholder = new ArrayList<Variable>(arguments.size() + 1);
27 argumentsWithPlaceholder.addAll(arguments);
28 argumentsWithPlaceholder.add(placeholderVariable);
29 return aggregateBy(placeholderVariable, aggregator, argumentsWithPlaceholder).toLiteral(targetVariable);
30 };
31 }
32
33 public <R> AssignedValue<R> aggregate(Aggregator<R, T> aggregator, NodeVariable... arguments) {
34 return aggregate(aggregator, List.of(arguments));
35 }
36}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionalRelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionalRelationView.java
deleted file mode 100644
index 7ec9e7ac..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionalRelationView.java
+++ /dev/null
@@ -1,105 +0,0 @@
1package tools.refinery.store.query.view;
2
3import tools.refinery.store.model.Model;
4import tools.refinery.store.query.dnf.FunctionalDependency;
5import tools.refinery.store.query.term.DataSort;
6import tools.refinery.store.query.term.NodeSort;
7import tools.refinery.store.query.term.Sort;
8import tools.refinery.store.representation.Symbol;
9import tools.refinery.store.tuple.Tuple;
10import tools.refinery.store.tuple.Tuple1;
11
12import java.util.List;
13import java.util.Objects;
14import java.util.Set;
15import java.util.stream.Collectors;
16import java.util.stream.IntStream;
17
18public final class FunctionalRelationView<T> extends RelationView<T> {
19 private final T defaultValue;
20
21 public FunctionalRelationView(Symbol<T> symbol, String name) {
22 super(symbol, name);
23 defaultValue = symbol.defaultValue();
24 }
25
26 public FunctionalRelationView(Symbol<T> symbol) {
27 super(symbol);
28 defaultValue = symbol.defaultValue();
29 }
30
31 @Override
32 public Set<FunctionalDependency<Integer>> getFunctionalDependencies() {
33 var arity = getSymbol().arity();
34 var forEach = IntStream.range(0, arity).boxed().collect(Collectors.toUnmodifiableSet());
35 var unique = Set.of(arity);
36 return Set.of(new FunctionalDependency<>(forEach, unique));
37 }
38
39 @Override
40 public Set<RelationViewImplication> getImpliedRelationViews() {
41 var symbol = getSymbol();
42 var impliedIndices = IntStream.range(0, symbol.arity()).boxed().toList();
43 var keyOnlyRelationView = new KeyOnlyRelationView<>(symbol);
44 return Set.of(new RelationViewImplication(this, keyOnlyRelationView, impliedIndices));
45 }
46
47 @Override
48 public boolean filter(Tuple key, T value) {
49 return !Objects.equals(defaultValue, value);
50 }
51
52 @Override
53 public Object[] forwardMap(Tuple key, T value) {
54 int size = key.getSize();
55 Object[] result = new Object[size + 1];
56 for (int i = 0; i < size; i++) {
57 result[i] = Tuple.of(key.get(i));
58 }
59 result[key.getSize()] = value;
60 return result;
61 }
62
63 @Override
64 public boolean get(Model model, Object[] tuple) {
65 int[] content = new int[tuple.length - 1];
66 for (int i = 0; i < tuple.length - 1; i++) {
67 content[i] = ((Tuple1) tuple[i]).value0();
68 }
69 Tuple key = Tuple.of(content);
70 @SuppressWarnings("unchecked")
71 T valueInTuple = (T) tuple[tuple.length - 1];
72 T valueInMap = model.getInterpretation(getSymbol()).get(key);
73 return valueInTuple.equals(valueInMap);
74 }
75
76 @Override
77 public int arity() {
78 return getSymbol().arity() + 1;
79 }
80
81 @Override
82 public List<Sort> getSorts() {
83 var sorts = new Sort[arity()];
84 int valueIndex = sorts.length - 1;
85 for (int i = 0; i < valueIndex; i++) {
86 sorts[i] = NodeSort.INSTANCE;
87 }
88 sorts[valueIndex] = new DataSort<>(getSymbol().valueType());
89 return List.of(sorts);
90 }
91
92 @Override
93 public boolean equals(Object o) {
94 if (this == o) return true;
95 if (o == null || getClass() != o.getClass()) return false;
96 if (!super.equals(o)) return false;
97 FunctionalRelationView<?> that = (FunctionalRelationView<?>) o;
98 return Objects.equals(defaultValue, that.defaultValue);
99 }
100
101 @Override
102 public int hashCode() {
103 return Objects.hash(super.hashCode(), defaultValue);
104 }
105}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/KeyOnlyRelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/KeyOnlyView.java
index e1b2e45b..7e86f6e4 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/KeyOnlyRelationView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/KeyOnlyView.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
2 7
3import tools.refinery.store.representation.Symbol; 8import tools.refinery.store.representation.Symbol;
@@ -5,12 +10,12 @@ import tools.refinery.store.tuple.Tuple;
5 10
6import java.util.Objects; 11import java.util.Objects;
7 12
8public final class KeyOnlyRelationView<T> extends TuplePreservingRelationView<T> { 13public final class KeyOnlyView<T> extends TuplePreservingView<T> {
9 public static final String VIEW_NAME = "key"; 14 public static final String VIEW_NAME = "key";
10 15
11 private final T defaultValue; 16 private final T defaultValue;
12 17
13 public KeyOnlyRelationView(Symbol<T> symbol) { 18 public KeyOnlyView(Symbol<T> symbol) {
14 super(symbol, VIEW_NAME); 19 super(symbol, VIEW_NAME);
15 defaultValue = symbol.defaultValue(); 20 defaultValue = symbol.defaultValue();
16 } 21 }
@@ -25,7 +30,7 @@ public final class KeyOnlyRelationView<T> extends TuplePreservingRelationView<T>
25 if (this == o) return true; 30 if (this == o) return true;
26 if (o == null || getClass() != o.getClass()) return false; 31 if (o == null || getClass() != o.getClass()) return false;
27 if (!super.equals(o)) return false; 32 if (!super.equals(o)) return false;
28 KeyOnlyRelationView<?> that = (KeyOnlyRelationView<?>) o; 33 KeyOnlyView<?> that = (KeyOnlyView<?>) o;
29 return Objects.equals(defaultValue, that.defaultValue); 34 return Objects.equals(defaultValue, that.defaultValue);
30 } 35 }
31 36
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayRelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayView.java
index a2a84b3c..e75a8171 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayRelationView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayView.java
@@ -1,11 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
2 7
3import tools.refinery.store.representation.Symbol; 8import tools.refinery.store.representation.Symbol;
4import tools.refinery.store.representation.TruthValue; 9import tools.refinery.store.representation.TruthValue;
5import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
6 11
7public class MayRelationView extends TuplePreservingRelationView<TruthValue> { 12public class MayView extends TuplePreservingView<TruthValue> {
8 public MayRelationView(Symbol<TruthValue> symbol) { 13 public MayView(Symbol<TruthValue> symbol) {
9 super(symbol, "may"); 14 super(symbol, "may");
10 } 15 }
11 16
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustRelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustView.java
index 72ac0ca3..a48f8045 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustRelationView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustView.java
@@ -1,11 +1,16 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
2 7
3import tools.refinery.store.representation.Symbol; 8import tools.refinery.store.representation.Symbol;
4import tools.refinery.store.representation.TruthValue; 9import tools.refinery.store.representation.TruthValue;
5import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
6 11
7public class MustRelationView extends TuplePreservingRelationView<TruthValue> { 12public class MustView extends TuplePreservingView<TruthValue> {
8 public MustRelationView(Symbol<TruthValue> symbol) { 13 public MustView(Symbol<TruthValue> symbol) {
9 super(symbol, "must"); 14 super(symbol, "must");
10 } 15 }
11 16
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java
new file mode 100644
index 00000000..fcf11506
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java
@@ -0,0 +1,20 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.view;
7
8import tools.refinery.store.query.term.Parameter;
9import tools.refinery.store.representation.Symbol;
10import tools.refinery.store.tuple.Tuple1;
11
12public final class NodeFunctionView extends AbstractFunctionView<Tuple1> {
13 public NodeFunctionView(Symbol<Tuple1> symbol, String name) {
14 super(symbol, name, Parameter.NODE_OUT);
15 }
16
17 public NodeFunctionView(Symbol<Tuple1> symbol) {
18 this(symbol, "function");
19 }
20}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/RelationViewImplication.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/RelationViewImplication.java
deleted file mode 100644
index 2ba1fcc4..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/RelationViewImplication.java
+++ /dev/null
@@ -1,19 +0,0 @@
1package tools.refinery.store.query.view;
2
3import java.util.List;
4
5public record RelationViewImplication(AnyRelationView implyingRelationView, AnyRelationView impliedRelationView,
6 List<Integer> impliedIndices) {
7 public RelationViewImplication {
8 if (impliedIndices.size() != impliedRelationView.arity()) {
9 throw new IllegalArgumentException("Expected %d implied indices for %s, but %d are provided"
10 .formatted(impliedRelationView.arity(), impliedRelationView, impliedIndices.size()));
11 }
12 for (var index : impliedIndices) {
13 if (impliedRelationView.invalidIndex(index)) {
14 throw new IllegalArgumentException("%d is not a valid index for %s".formatted(index,
15 implyingRelationView));
16 }
17 }
18 }
19}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/RelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/SymbolView.java
index d7164b3b..267a99d3 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/RelationView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/SymbolView.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
2 7
3import tools.refinery.store.map.CursorAsIterator; 8import tools.refinery.store.map.CursorAsIterator;
@@ -14,17 +19,17 @@ import java.util.UUID;
14 * @param <T> 19 * @param <T>
15 * @author Oszkar Semerath 20 * @author Oszkar Semerath
16 */ 21 */
17public abstract non-sealed class RelationView<T> implements AnyRelationView { 22public abstract non-sealed class SymbolView<T> implements AnySymbolView {
18 private final Symbol<T> symbol; 23 private final Symbol<T> symbol;
19 24
20 private final String viewName; 25 private final String viewName;
21 26
22 protected RelationView(Symbol<T> symbol, String viewName) { 27 protected SymbolView(Symbol<T> symbol, String viewName) {
23 this.symbol = symbol; 28 this.symbol = symbol;
24 this.viewName = viewName; 29 this.viewName = viewName;
25 } 30 }
26 31
27 protected RelationView(Symbol<T> representation) { 32 protected SymbolView(Symbol<T> representation) {
28 this(representation, UUID.randomUUID().toString()); 33 this(representation, UUID.randomUUID().toString());
29 } 34 }
30 35
@@ -66,7 +71,7 @@ public abstract non-sealed class RelationView<T> implements AnyRelationView {
66 public boolean equals(Object o) { 71 public boolean equals(Object o) {
67 if (this == o) return true; 72 if (this == o) return true;
68 if (o == null || getClass() != o.getClass()) return false; 73 if (o == null || getClass() != o.getClass()) return false;
69 RelationView<?> that = (RelationView<?>) o; 74 SymbolView<?> that = (SymbolView<?>) o;
70 return Objects.equals(symbol, that.symbol) && Objects.equals(viewName, that.viewName); 75 return Objects.equals(symbol, that.symbol) && Objects.equals(viewName, that.viewName);
71 } 76 }
72 77
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingRelationView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingRelationView.java
deleted file mode 100644
index 234b3a9a..00000000
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingRelationView.java
+++ /dev/null
@@ -1,57 +0,0 @@
1package tools.refinery.store.query.view;
2
3import tools.refinery.store.model.Model;
4import tools.refinery.store.query.term.NodeSort;
5import tools.refinery.store.query.term.Sort;
6import tools.refinery.store.tuple.Tuple;
7import tools.refinery.store.tuple.Tuple1;
8import tools.refinery.store.representation.Symbol;
9
10import java.util.Arrays;
11import java.util.List;
12
13public abstract class TuplePreservingRelationView<T> extends RelationView<T> {
14 protected TuplePreservingRelationView(Symbol<T> symbol, String name) {
15 super(symbol, name);
16 }
17
18 protected TuplePreservingRelationView(Symbol<T> symbol) {
19 super(symbol);
20 }
21
22 public Object[] forwardMap(Tuple key) {
23 Object[] result = new Object[key.getSize()];
24 for (int i = 0; i < key.getSize(); i++) {
25 result[i] = Tuple.of(key.get(i));
26 }
27 return result;
28 }
29
30 @Override
31 public Object[] forwardMap(Tuple key, T value) {
32 return forwardMap(key);
33 }
34
35 @Override
36 public boolean get(Model model, Object[] tuple) {
37 int[] content = new int[tuple.length];
38 for (int i = 0; i < tuple.length; i++) {
39 content[i] = ((Tuple1) tuple[i]).value0();
40 }
41 Tuple key = Tuple.of(content);
42 T value = model.getInterpretation(getSymbol()).get(key);
43 return filter(key, value);
44 }
45
46 @Override
47 public int arity() {
48 return this.getSymbol().arity();
49 }
50
51 @Override
52 public List<Sort> getSorts() {
53 var sorts = new Sort[arity()];
54 Arrays.fill(sorts, NodeSort.INSTANCE);
55 return List.of(sorts);
56 }
57}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java
new file mode 100644
index 00000000..6bc5a708
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java
@@ -0,0 +1,82 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.view;
7
8import tools.refinery.store.model.Model;
9import tools.refinery.store.query.term.Parameter;
10import tools.refinery.store.representation.Symbol;
11import tools.refinery.store.tuple.Tuple;
12import tools.refinery.store.tuple.Tuple1;
13
14import java.util.Arrays;
15import java.util.List;
16import java.util.Objects;
17
18public abstract class TuplePreservingView<T> extends SymbolView<T> {
19 private final List<Parameter> parameters;
20
21 protected TuplePreservingView(Symbol<T> symbol, String name) {
22 super(symbol, name);
23 this.parameters = createParameters(symbol.arity());
24 }
25
26 protected TuplePreservingView(Symbol<T> symbol) {
27 super(symbol);
28 this.parameters = createParameters(symbol.arity());
29 }
30
31 public Object[] forwardMap(Tuple key) {
32 Object[] result = new Object[key.getSize()];
33 for (int i = 0; i < key.getSize(); i++) {
34 result[i] = Tuple.of(key.get(i));
35 }
36 return result;
37 }
38
39 @Override
40 public Object[] forwardMap(Tuple key, T value) {
41 return forwardMap(key);
42 }
43
44 @Override
45 public boolean get(Model model, Object[] tuple) {
46 int[] content = new int[tuple.length];
47 for (int i = 0; i < tuple.length; i++) {
48 if (!(tuple[i] instanceof Tuple1 wrapper)) {
49 return false;
50 }
51 content[i] = wrapper.value0();
52 }
53 Tuple key = Tuple.of(content);
54 T value = model.getInterpretation(getSymbol()).get(key);
55 return filter(key, value);
56 }
57
58 @Override
59 public List<Parameter> getParameters() {
60 return parameters;
61 }
62
63 @Override
64 public boolean equals(Object o) {
65 if (this == o) return true;
66 if (o == null || getClass() != o.getClass()) return false;
67 if (!super.equals(o)) return false;
68 TuplePreservingView<?> that = (TuplePreservingView<?>) o;
69 return Objects.equals(parameters, that.parameters);
70 }
71
72 @Override
73 public int hashCode() {
74 return Objects.hash(super.hashCode(), parameters);
75 }
76
77 private static List<Parameter> createParameters(int arity) {
78 var parameters = new Parameter[arity];
79 Arrays.fill(parameters, Parameter.NODE_OUT);
80 return List.of(parameters);
81 }
82}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ViewImplication.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ViewImplication.java
new file mode 100644
index 00000000..fc2db9f2
--- /dev/null
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ViewImplication.java
@@ -0,0 +1,23 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.view;
7
8import java.util.List;
9
10public record ViewImplication(AnySymbolView implyingView, AnySymbolView impliedView, List<Integer> impliedIndices) {
11 public ViewImplication {
12 if (impliedIndices.size() != impliedView.arity()) {
13 throw new IllegalArgumentException("Expected %d implied indices for %s, but %d are provided"
14 .formatted(impliedView.arity(), impliedView, impliedIndices.size()));
15 }
16 for (var index : impliedIndices) {
17 if (impliedView.invalidIndex(index)) {
18 throw new IllegalArgumentException("%d is not a valid index for %s".formatted(index,
19 implyingView));
20 }
21 }
22 }
23}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/DnfBuilderTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java
index ceb46d6f..e17496e3 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/DnfBuilderTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java
@@ -1,24 +1,39 @@
1package tools.refinery.store.query; 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
4import tools.refinery.store.query.dnf.Dnf; 9import org.junit.jupiter.params.ParameterizedTest;
10import org.junit.jupiter.params.provider.CsvSource;
5import tools.refinery.store.query.literal.BooleanLiteral; 11import tools.refinery.store.query.literal.BooleanLiteral;
12import tools.refinery.store.query.term.NodeVariable;
13import tools.refinery.store.query.term.ParameterDirection;
6import tools.refinery.store.query.term.Variable; 14import tools.refinery.store.query.term.Variable;
7import tools.refinery.store.query.view.KeyOnlyRelationView; 15import tools.refinery.store.query.term.bool.BoolTerms;
16import tools.refinery.store.query.view.KeyOnlyView;
17import tools.refinery.store.query.view.SymbolView;
8import tools.refinery.store.representation.Symbol; 18import tools.refinery.store.representation.Symbol;
9 19
20import java.util.List;
21
10import static org.hamcrest.MatcherAssert.assertThat; 22import static org.hamcrest.MatcherAssert.assertThat;
23import static tools.refinery.store.query.literal.Literals.assume;
11import static tools.refinery.store.query.literal.Literals.not; 24import static tools.refinery.store.query.literal.Literals.not;
12import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 25import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
13 26
14class DnfBuilderTest { 27class DnfBuilderLiteralEliminationTest {
28 private final Symbol<Boolean> friend = Symbol.of("friend", 2);
29 private final SymbolView<Boolean> friendView = new KeyOnlyView<>(friend);
30 private final NodeVariable p = Variable.of("p");
31 private final NodeVariable q = Variable.of("q");
32 private final Dnf trueDnf = Dnf.builder().parameter(p, ParameterDirection.IN).clause().build();
33 private final Dnf falseDnf = Dnf.builder().parameter(p).build();
34
15 @Test 35 @Test
16 void eliminateTrueTest() { 36 void eliminateTrueTest() {
17 var p = Variable.of("p");
18 var q = Variable.of("q");
19 var friend = new Symbol<>("friend", 2, Boolean.class, false);
20 var friendView = new KeyOnlyRelationView<>(friend);
21
22 var actual = Dnf.builder() 37 var actual = Dnf.builder()
23 .parameters(p, q) 38 .parameters(p, q)
24 .clause(BooleanLiteral.TRUE, friendView.call(p, q)) 39 .clause(BooleanLiteral.TRUE, friendView.call(p, q))
@@ -29,12 +44,18 @@ class DnfBuilderTest {
29 } 44 }
30 45
31 @Test 46 @Test
32 void eliminateFalseTest() { 47 void eliminateTrueAssumptionTest() {
33 var p = Variable.of("p"); 48 var actual = Dnf.builder()
34 var q = Variable.of("q"); 49 .parameters(p, q)
35 var friend = new Symbol<>("friend", 2, Boolean.class, false); 50 .clause(assume(BoolTerms.constant(true)), friendView.call(p, q))
36 var friendView = new KeyOnlyRelationView<>(friend); 51 .build();
52 var expected = Dnf.builder().parameters(p, q).clause(friendView.call(p, q)).build();
53
54 assertThat(actual, structurallyEqualTo(expected));
55 }
37 56
57 @Test
58 void eliminateFalseTest() {
38 var actual = Dnf.builder() 59 var actual = Dnf.builder()
39 .parameters(p, q) 60 .parameters(p, q)
40 .clause(friendView.call(p, q)) 61 .clause(friendView.call(p, q))
@@ -45,30 +66,36 @@ class DnfBuilderTest {
45 assertThat(actual, structurallyEqualTo(expected)); 66 assertThat(actual, structurallyEqualTo(expected));
46 } 67 }
47 68
69 @ParameterizedTest
70 @CsvSource(value = {
71 "false",
72 "null"
73 }, nullValues = "null")
74 void eliminateFalseAssumptionTest(Boolean value) {
75 var actual = Dnf.builder()
76 .parameters(p, q)
77 .clause(friendView.call(p, q))
78 .clause(friendView.call(q, p), assume(BoolTerms.constant(value)))
79 .build();
80 var expected = Dnf.builder().parameters(p, q).clause(friendView.call(p, q)).build();
81
82 assertThat(actual, structurallyEqualTo(expected));
83 }
84
48 @Test 85 @Test
49 void alwaysTrueTest() { 86 void alwaysTrueTest() {
50 var p = Variable.of("p");
51 var q = Variable.of("q");
52 var friend = new Symbol<>("friend", 2, Boolean.class, false);
53 var friendView = new KeyOnlyRelationView<>(friend);
54
55 var actual = Dnf.builder() 87 var actual = Dnf.builder()
56 .parameters(p, q) 88 .parameters(List.of(p, q), ParameterDirection.IN)
57 .clause(friendView.call(p, q)) 89 .clause(friendView.call(p, q))
58 .clause(BooleanLiteral.TRUE) 90 .clause(BooleanLiteral.TRUE)
59 .build(); 91 .build();
60 var expected = Dnf.builder().parameters(p, q).clause().build(); 92 var expected = Dnf.builder().parameters(List.of(p, q), ParameterDirection.IN).clause().build();
61 93
62 assertThat(actual, structurallyEqualTo(expected)); 94 assertThat(actual, structurallyEqualTo(expected));
63 } 95 }
64 96
65 @Test 97 @Test
66 void alwaysFalseTest() { 98 void alwaysFalseTest() {
67 var p = Variable.of("p");
68 var q = Variable.of("q");
69 var friend = new Symbol<>("friend", 2, Boolean.class, false);
70 var friendView = new KeyOnlyRelationView<>(friend);
71
72 var actual = Dnf.builder() 99 var actual = Dnf.builder()
73 .parameters(p, q) 100 .parameters(p, q)
74 .clause(friendView.call(p, q), BooleanLiteral.FALSE) 101 .clause(friendView.call(p, q), BooleanLiteral.FALSE)
@@ -80,12 +107,6 @@ class DnfBuilderTest {
80 107
81 @Test 108 @Test
82 void eliminateTrueDnfTest() { 109 void eliminateTrueDnfTest() {
83 var p = Variable.of("p");
84 var q = Variable.of("q");
85 var friend = new Symbol<>("friend", 2, Boolean.class, false);
86 var friendView = new KeyOnlyRelationView<>(friend);
87 var trueDnf = Dnf.builder().parameter(p).clause().build();
88
89 var actual = Dnf.builder() 110 var actual = Dnf.builder()
90 .parameters(p, q) 111 .parameters(p, q)
91 .clause(trueDnf.call(q), friendView.call(p, q)) 112 .clause(trueDnf.call(q), friendView.call(p, q))
@@ -97,12 +118,6 @@ class DnfBuilderTest {
97 118
98 @Test 119 @Test
99 void eliminateFalseDnfTest() { 120 void eliminateFalseDnfTest() {
100 var p = Variable.of("p");
101 var q = Variable.of("q");
102 var friend = new Symbol<>("friend", 2, Boolean.class, false);
103 var friendView = new KeyOnlyRelationView<>(friend);
104 var falseDnf = Dnf.builder().parameter(p).build();
105
106 var actual = Dnf.builder() 121 var actual = Dnf.builder()
107 .parameters(p, q) 122 .parameters(p, q)
108 .clause(friendView.call(p, q)) 123 .clause(friendView.call(p, q))
@@ -115,30 +130,18 @@ class DnfBuilderTest {
115 130
116 @Test 131 @Test
117 void alwaysTrueDnfTest() { 132 void alwaysTrueDnfTest() {
118 var p = Variable.of("p");
119 var q = Variable.of("q");
120 var friend = new Symbol<>("friend", 2, Boolean.class, false);
121 var friendView = new KeyOnlyRelationView<>(friend);
122 var trueDnf = Dnf.builder().parameter(p).clause().build();
123
124 var actual = Dnf.builder() 133 var actual = Dnf.builder()
125 .parameters(p, q) 134 .parameters(List.of(p, q), ParameterDirection.IN)
126 .clause(friendView.call(p, q)) 135 .clause(friendView.call(p, q))
127 .clause(trueDnf.call(q)) 136 .clause(trueDnf.call(q))
128 .build(); 137 .build();
129 var expected = Dnf.builder().parameters(p, q).clause().build(); 138 var expected = Dnf.builder().parameters(List.of(p, q), ParameterDirection.IN).clause().build();
130 139
131 assertThat(actual, structurallyEqualTo(expected)); 140 assertThat(actual, structurallyEqualTo(expected));
132 } 141 }
133 142
134 @Test 143 @Test
135 void alwaysFalseDnfTest() { 144 void alwaysFalseDnfTest() {
136 var p = Variable.of("p");
137 var q = Variable.of("q");
138 var friend = new Symbol<>("friend", 2, Boolean.class, false);
139 var friendView = new KeyOnlyRelationView<>(friend);
140 var falseDnf = Dnf.builder().parameter(p).build();
141
142 var actual = Dnf.builder() 145 var actual = Dnf.builder()
143 .parameters(p, q) 146 .parameters(p, q)
144 .clause(friendView.call(p, q), falseDnf.call(q)) 147 .clause(friendView.call(p, q), falseDnf.call(q))
@@ -150,12 +153,6 @@ class DnfBuilderTest {
150 153
151 @Test 154 @Test
152 void eliminateNotFalseDnfTest() { 155 void eliminateNotFalseDnfTest() {
153 var p = Variable.of("p");
154 var q = Variable.of("q");
155 var friend = new Symbol<>("friend", 2, Boolean.class, false);
156 var friendView = new KeyOnlyRelationView<>(friend);
157 var falseDnf = Dnf.builder().parameter(p).build();
158
159 var actual = Dnf.builder() 156 var actual = Dnf.builder()
160 .parameters(p, q) 157 .parameters(p, q)
161 .clause(not(falseDnf.call(q)), friendView.call(p, q)) 158 .clause(not(falseDnf.call(q)), friendView.call(p, q))
@@ -167,12 +164,6 @@ class DnfBuilderTest {
167 164
168 @Test 165 @Test
169 void eliminateNotTrueDnfTest() { 166 void eliminateNotTrueDnfTest() {
170 var p = Variable.of("p");
171 var q = Variable.of("q");
172 var friend = new Symbol<>("friend", 2, Boolean.class, false);
173 var friendView = new KeyOnlyRelationView<>(friend);
174 var trueDnf = Dnf.builder().parameter(p).clause().build();
175
176 var actual = Dnf.builder() 167 var actual = Dnf.builder()
177 .parameters(p, q) 168 .parameters(p, q)
178 .clause(friendView.call(p, q)) 169 .clause(friendView.call(p, q))
@@ -185,30 +176,18 @@ class DnfBuilderTest {
185 176
186 @Test 177 @Test
187 void alwaysNotFalseDnfTest() { 178 void alwaysNotFalseDnfTest() {
188 var p = Variable.of("p");
189 var q = Variable.of("q");
190 var friend = new Symbol<>("friend", 2, Boolean.class, false);
191 var friendView = new KeyOnlyRelationView<>(friend);
192 var falseDnf = Dnf.builder().parameter(p).build();
193
194 var actual = Dnf.builder() 179 var actual = Dnf.builder()
195 .parameters(p, q) 180 .parameters(List.of(p, q), ParameterDirection.IN)
196 .clause(friendView.call(p, q)) 181 .clause(friendView.call(p, q))
197 .clause(not(falseDnf.call(q))) 182 .clause(not(falseDnf.call(q)))
198 .build(); 183 .build();
199 var expected = Dnf.builder().parameters(p, q).clause().build(); 184 var expected = Dnf.builder().parameters(List.of(p, q), ParameterDirection.IN).clause().build();
200 185
201 assertThat(actual, structurallyEqualTo(expected)); 186 assertThat(actual, structurallyEqualTo(expected));
202 } 187 }
203 188
204 @Test 189 @Test
205 void alwaysNotTrueDnfTest() { 190 void alwaysNotTrueDnfTest() {
206 var p = Variable.of("p");
207 var q = Variable.of("q");
208 var friend = new Symbol<>("friend", 2, Boolean.class, false);
209 var friendView = new KeyOnlyRelationView<>(friend);
210 var trueDnf = Dnf.builder().parameter(p).clause().build();
211
212 var actual = Dnf.builder() 191 var actual = Dnf.builder()
213 .parameters(p, q) 192 .parameters(p, q)
214 .clause(friendView.call(p, q), not(trueDnf.call(q))) 193 .clause(friendView.call(p, q), not(trueDnf.call(q)))
@@ -217,4 +196,15 @@ class DnfBuilderTest {
217 196
218 assertThat(actual, structurallyEqualTo(expected)); 197 assertThat(actual, structurallyEqualTo(expected));
219 } 198 }
199
200 @Test
201 void removeDuplicateTest() {
202 var actual = Dnf.of(builder -> builder.clause((p, q) -> List.of(
203 friendView.call(p, q),
204 friendView.call(p, q)
205 )));
206 var expected = Dnf.of(builder -> builder.clause((p, q) -> List.of(friendView.call(p, q))));
207
208 assertThat(actual, structurallyEqualTo(expected));
209 }
220} 210}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java
new file mode 100644
index 00000000..fc40c7b3
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java
@@ -0,0 +1,325 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.term.ParameterDirection;
10import tools.refinery.store.query.term.Variable;
11import tools.refinery.store.query.view.KeyOnlyView;
12import tools.refinery.store.query.view.SymbolView;
13import tools.refinery.store.representation.Symbol;
14
15import java.util.List;
16
17import static org.hamcrest.MatcherAssert.assertThat;
18import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
19
20class DnfBuilderVariableUnificationTest {
21 private final Symbol<Boolean> friend = Symbol.of("friend", 2);
22 private final Symbol<Boolean> children = Symbol.of("children", 2);
23 private final SymbolView<Boolean> friendView = new KeyOnlyView<>(friend);
24 private final SymbolView<Boolean> childrenView = new KeyOnlyView<>(children);
25
26 @Test
27 void equalToParameterTest() {
28 var actual = Dnf.of(builder -> {
29 var p = builder.parameter("p");
30 builder.clause(q -> List.of(
31 friendView.call(p, q),
32 p.isEquivalent(q)
33 ));
34 });
35
36 var expectedP = Variable.of("p");
37 assertThat(actual, structurallyEqualTo(
38 List.of(new SymbolicParameter(expectedP, ParameterDirection.OUT)),
39 List.of(
40 List.of(friendView.call(expectedP, expectedP))
41 )
42 ));
43 }
44
45 @Test
46 void equalToParameterReverseTest() {
47 var actual = Dnf.of(builder -> {
48 var p = builder.parameter("p");
49 builder.clause(q -> List.of(
50 friendView.call(p, q),
51 q.isEquivalent(p)
52 ));
53 });
54
55 var expectedP = Variable.of("p");
56 assertThat(actual, structurallyEqualTo(
57 List.of(new SymbolicParameter(expectedP, ParameterDirection.OUT)),
58 List.of(
59 List.of(friendView.call(expectedP, expectedP))
60 )
61 ));
62 }
63
64 @Test
65 void equalQuantifiedTest() {
66 var actual = Dnf.of(builder -> builder.clause((p, q) -> List.of(
67 friendView.call(p, q),
68 p.isEquivalent(q)
69 )));
70
71 var expectedP = Variable.of("p");
72 assertThat(actual, structurallyEqualTo(
73 List.of(),
74 List.of(
75 List.of(friendView.call(expectedP, expectedP))
76 )
77 ));
78 }
79
80 @Test
81 void equalQuantifiedTransitiveTest() {
82 var actual = Dnf.of(builder -> builder.clause((p, q, r) -> List.of(
83 friendView.call(p, q),
84 p.isEquivalent(q),
85 childrenView.call(p, r),
86 q.isEquivalent(r)
87 )));
88
89 var expectedP = Variable.of("p");
90 assertThat(actual, structurallyEqualTo(
91 List.of(),
92 List.of(
93 List.of(friendView.call(expectedP, expectedP), childrenView.call(expectedP, expectedP))
94 )
95 ));
96 }
97
98 @Test
99 void equalQuantifiedTransitiveRemoveDuplicateTest() {
100 var actual = Dnf.of(builder -> builder.clause((p, q, r) -> List.of(
101 friendView.call(p, q),
102 p.isEquivalent(q),
103 friendView.call(p, r),
104 q.isEquivalent(r)
105 )));
106
107 var expectedP = Variable.of("p");
108 assertThat(actual, structurallyEqualTo(
109 List.of(),
110 List.of(
111 List.of(friendView.call(expectedP, expectedP))
112 )
113 ));
114 }
115
116 @Test
117 void parametersEqualTest() {
118 var actual = Dnf.of(builder -> {
119 var p = builder.parameter("p");
120 var q = builder.parameter("q");
121 builder.clause(
122 friendView.call(p, q),
123 p.isEquivalent(q)
124 );
125 });
126
127 var expectedP = Variable.of("p");
128 var expectedQ = Variable.of("q");
129 assertThat(actual, structurallyEqualTo(
130 List.of(
131 new SymbolicParameter(expectedP, ParameterDirection.OUT),
132 new SymbolicParameter(expectedQ, ParameterDirection.OUT)
133 ),
134 List.of(
135 List.of(friendView.call(expectedP, expectedP), expectedQ.isEquivalent(expectedP))
136 )
137 ));
138 }
139
140 @Test
141 void parametersEqualTransitiveTest() {
142 var actual = Dnf.of(builder -> {
143 var p = builder.parameter("p");
144 var q = builder.parameter("q");
145 var r = builder.parameter("r");
146 builder.clause(
147 friendView.call(p, q),
148 childrenView.call(p, r),
149 p.isEquivalent(q),
150 r.isEquivalent(q)
151 );
152 });
153
154 var expectedP = Variable.of("p");
155 var expectedQ = Variable.of("q");
156 var expectedR = Variable.of("r");
157 assertThat(actual, structurallyEqualTo(
158 List.of(
159 new SymbolicParameter(expectedP, ParameterDirection.OUT),
160 new SymbolicParameter(expectedQ, ParameterDirection.OUT),
161 new SymbolicParameter(expectedR, ParameterDirection.OUT)
162 ),
163 List.of(
164 List.of(
165 friendView.call(expectedP, expectedP),
166 expectedQ.isEquivalent(expectedP),
167 expectedR.isEquivalent(expectedP),
168 childrenView.call(expectedP, expectedP)
169 )
170 )
171 ));
172 }
173
174 @Test
175 void parameterAndQuantifiedEqualsTest() {
176 var actual = Dnf.of(builder -> {
177 var p = builder.parameter("p");
178 var q = builder.parameter("q");
179 builder.clause((r) -> List.of(
180 friendView.call(p, r),
181 p.isEquivalent(r),
182 childrenView.call(q, r),
183 q.isEquivalent(r)
184 ));
185 });
186
187
188 var expectedP = Variable.of("p");
189 var expectedQ = Variable.of("q");
190 assertThat(actual, structurallyEqualTo(
191 List.of(
192 new SymbolicParameter(expectedP, ParameterDirection.OUT),
193 new SymbolicParameter(expectedQ, ParameterDirection.OUT)
194 ),
195 List.of(
196 List.of(
197 friendView.call(expectedP, expectedP),
198 expectedQ.isEquivalent(expectedP),
199 childrenView.call(expectedP, expectedP)
200 )
201 )
202 ));
203 }
204
205 @Test
206 void parameterAndQuantifiedEqualsReverseFirstTest() {
207 var actual = Dnf.of(builder -> {
208 var p = builder.parameter("p");
209 var q = builder.parameter("q");
210 builder.clause((r) -> List.of(
211 friendView.call(p, r),
212 r.isEquivalent(p),
213 childrenView.call(q, r),
214 q.isEquivalent(r)
215 ));
216 });
217
218 var expectedP = Variable.of("p");
219 var expectedQ = Variable.of("q");
220 assertThat(actual, structurallyEqualTo(
221 List.of(
222 new SymbolicParameter(expectedP, ParameterDirection.OUT),
223 new SymbolicParameter(expectedQ, ParameterDirection.OUT)
224 ),
225 List.of(
226 List.of(
227 friendView.call(expectedP, expectedP),
228 expectedQ.isEquivalent(expectedP),
229 childrenView.call(expectedP, expectedP)
230 )
231 )
232 ));
233 }
234
235 @Test
236 void parameterAndQuantifiedEqualsReverseSecondTest() {
237 var actual = Dnf.of(builder -> {
238 var p = builder.parameter("p");
239 var q = builder.parameter("q");
240 builder.clause((r) -> List.of(
241 friendView.call(p, r),
242 p.isEquivalent(r),
243 childrenView.call(q, r),
244 r.isEquivalent(q)
245 ));
246 });
247
248 var expectedP = Variable.of("p");
249 var expectedQ = Variable.of("q");
250 assertThat(actual, structurallyEqualTo(
251 List.of(
252 new SymbolicParameter(expectedP, ParameterDirection.OUT),
253 new SymbolicParameter(expectedQ, ParameterDirection.OUT)
254 ),
255 List.of(
256 List.of(
257 friendView.call(expectedP, expectedP),
258 expectedQ.isEquivalent(expectedP),
259 childrenView.call(expectedP, expectedP)
260 )
261 )
262 ));
263 }
264
265 @Test
266 void parameterAndQuantifiedEqualsReverseBoth() {
267 var actual = Dnf.of(builder -> {
268 var p = builder.parameter("p");
269 var q = builder.parameter("q");
270 builder.clause((r) -> List.of(
271 friendView.call(p, r),
272 p.isEquivalent(r),
273 childrenView.call(q, r),
274 r.isEquivalent(q)
275 ));
276 });
277
278 var expectedP = Variable.of("p");
279 var expectedQ = Variable.of("q");
280 assertThat(actual, structurallyEqualTo(
281 List.of(
282 new SymbolicParameter(expectedP, ParameterDirection.OUT),
283 new SymbolicParameter(expectedQ, ParameterDirection.OUT)
284 ),
285 List.of(
286 List.of(
287 friendView.call(expectedP, expectedP),
288 expectedQ.isEquivalent(expectedP),
289 childrenView.call(expectedP, expectedP)
290 )
291 )
292 ));
293 }
294
295 @Test
296 void parameterAndTwoQuantifiedEqualsTest() {
297 var actual = Dnf.of(builder -> {
298 var p = builder.parameter("p");
299 var q = builder.parameter("q");
300 builder.clause((r, s) -> List.of(
301 r.isEquivalent(s),
302 friendView.call(p, r),
303 p.isEquivalent(r),
304 childrenView.call(q, s),
305 q.isEquivalent(s)
306 ));
307 });
308
309 var expectedP = Variable.of("p");
310 var expectedQ = Variable.of("q");
311 assertThat(actual, structurallyEqualTo(
312 List.of(
313 new SymbolicParameter(expectedP, ParameterDirection.OUT),
314 new SymbolicParameter(expectedQ, ParameterDirection.OUT)
315 ),
316 List.of(
317 List.of(
318 friendView.call(expectedP, expectedP),
319 expectedQ.isEquivalent(expectedP),
320 childrenView.call(expectedP, expectedP)
321 )
322 )
323 ));
324 }
325}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/DnfToDefinitionStringTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java
index 9b469bb0..d75d7f17 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/DnfToDefinitionStringTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java
@@ -1,9 +1,16 @@
1package tools.refinery.store.query; 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
4import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.store.query.term.NodeVariable;
10import tools.refinery.store.query.term.ParameterDirection;
5import tools.refinery.store.query.term.Variable; 11import tools.refinery.store.query.term.Variable;
6import tools.refinery.store.query.view.KeyOnlyRelationView; 12import tools.refinery.store.query.view.AnySymbolView;
13import tools.refinery.store.query.view.KeyOnlyView;
7import tools.refinery.store.representation.Symbol; 14import tools.refinery.store.representation.Symbol;
8 15
9import static org.hamcrest.MatcherAssert.assertThat; 16import static org.hamcrest.MatcherAssert.assertThat;
@@ -11,9 +18,15 @@ import static org.hamcrest.Matchers.is;
11import static tools.refinery.store.query.literal.Literals.not; 18import static tools.refinery.store.query.literal.Literals.not;
12 19
13class DnfToDefinitionStringTest { 20class DnfToDefinitionStringTest {
21 private static final Symbol<Boolean> person = Symbol.of("person", 1);
22 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
23 private static final AnySymbolView personView = new KeyOnlyView<>(person);
24 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
25 private static final NodeVariable p = Variable.of("p");
26 private static final NodeVariable q = Variable.of("q");
27
14 @Test 28 @Test
15 void noClausesTest() { 29 void noClausesTest() {
16 var p = Variable.of("p");
17 var dnf = Dnf.builder("Example").parameter(p).build(); 30 var dnf = Dnf.builder("Example").parameter(p).build();
18 31
19 assertThat(dnf.toDefinitionString(), is(""" 32 assertThat(dnf.toDefinitionString(), is("""
@@ -34,21 +47,16 @@ class DnfToDefinitionStringTest {
34 47
35 @Test 48 @Test
36 void emptyClauseTest() { 49 void emptyClauseTest() {
37 var p = Variable.of("p"); 50 var dnf = Dnf.builder("Example").parameter(p, ParameterDirection.IN).clause().build();
38 var dnf = Dnf.builder("Example").parameter(p).clause().build();
39 51
40 assertThat(dnf.toDefinitionString(), is(""" 52 assertThat(dnf.toDefinitionString(), is("""
41 pred Example(p) <-> 53 pred Example(@In p) <->
42 <empty>. 54 <empty>.
43 """)); 55 """));
44 } 56 }
45 57
46 @Test 58 @Test
47 void relationViewPositiveTest() { 59 void relationViewPositiveTest() {
48 var p = Variable.of("p");
49 var q = Variable.of("q");
50 var friend = new Symbol<>("friend", 2, Boolean.class, false);
51 var friendView = new KeyOnlyRelationView<>(friend);
52 var dnf = Dnf.builder("Example").parameter(p).clause(friendView.call(p, q)).build(); 60 var dnf = Dnf.builder("Example").parameter(p).clause(friendView.call(p, q)).build();
53 61
54 assertThat(dnf.toDefinitionString(), is(""" 62 assertThat(dnf.toDefinitionString(), is("""
@@ -59,24 +67,19 @@ class DnfToDefinitionStringTest {
59 67
60 @Test 68 @Test
61 void relationViewNegativeTest() { 69 void relationViewNegativeTest() {
62 var p = Variable.of("p"); 70 var dnf = Dnf.builder("Example")
63 var q = Variable.of("q"); 71 .parameter(p, ParameterDirection.IN)
64 var friend = new Symbol<>("friend", 2, Boolean.class, false); 72 .clause(not(friendView.call(p, q)))
65 var friendView = new KeyOnlyRelationView<>(friend); 73 .build();
66 var dnf = Dnf.builder("Example").parameter(p).clause(not(friendView.call(p, q))).build();
67 74
68 assertThat(dnf.toDefinitionString(), is(""" 75 assertThat(dnf.toDefinitionString(), is("""
69 pred Example(p) <-> 76 pred Example(@In p) <->
70 !(@RelationView("key") friend(p, q)). 77 !(@RelationView("key") friend(p, q)).
71 """)); 78 """));
72 } 79 }
73 80
74 @Test 81 @Test
75 void relationViewTransitiveTest() { 82 void relationViewTransitiveTest() {
76 var p = Variable.of("p");
77 var q = Variable.of("q");
78 var friend = new Symbol<>("friend", 2, Boolean.class, false);
79 var friendView = new KeyOnlyRelationView<>(friend);
80 var dnf = Dnf.builder("Example").parameter(p).clause(friendView.callTransitive(p, q)).build(); 83 var dnf = Dnf.builder("Example").parameter(p).clause(friendView.callTransitive(p, q)).build();
81 84
82 assertThat(dnf.toDefinitionString(), is(""" 85 assertThat(dnf.toDefinitionString(), is("""
@@ -87,10 +90,6 @@ class DnfToDefinitionStringTest {
87 90
88 @Test 91 @Test
89 void multipleParametersTest() { 92 void multipleParametersTest() {
90 var p = Variable.of("p");
91 var q = Variable.of("q");
92 var friend = new Symbol<>("friend", 2, Boolean.class, false);
93 var friendView = new KeyOnlyRelationView<>(friend);
94 var dnf = Dnf.builder("Example").parameters(p, q).clause(friendView.call(p, q)).build(); 93 var dnf = Dnf.builder("Example").parameters(p, q).clause(friendView.call(p, q)).build();
95 94
96 assertThat(dnf.toDefinitionString(), is(""" 95 assertThat(dnf.toDefinitionString(), is("""
@@ -101,12 +100,6 @@ class DnfToDefinitionStringTest {
101 100
102 @Test 101 @Test
103 void multipleLiteralsTest() { 102 void multipleLiteralsTest() {
104 var p = Variable.of("p");
105 var q = Variable.of("q");
106 var person = new Symbol<>("person", 1, Boolean.class, false);
107 var personView = new KeyOnlyRelationView<>(person);
108 var friend = new Symbol<>("friend", 2, Boolean.class, false);
109 var friendView = new KeyOnlyRelationView<>(friend);
110 var dnf = Dnf.builder("Example") 103 var dnf = Dnf.builder("Example")
111 .parameter(p) 104 .parameter(p)
112 .clause( 105 .clause(
@@ -126,10 +119,6 @@ class DnfToDefinitionStringTest {
126 119
127 @Test 120 @Test
128 void multipleClausesTest() { 121 void multipleClausesTest() {
129 var p = Variable.of("p");
130 var q = Variable.of("q");
131 var friend = new Symbol<>("friend", 2, Boolean.class, false);
132 var friendView = new KeyOnlyRelationView<>(friend);
133 var dnf = Dnf.builder("Example") 122 var dnf = Dnf.builder("Example")
134 .parameter(p) 123 .parameter(p)
135 .clause(friendView.call(p, q)) 124 .clause(friendView.call(p, q))
@@ -146,14 +135,8 @@ class DnfToDefinitionStringTest {
146 135
147 @Test 136 @Test
148 void dnfTest() { 137 void dnfTest() {
149 var p = Variable.of("p");
150 var q = Variable.of("q");
151 var r = Variable.of("r"); 138 var r = Variable.of("r");
152 var s = Variable.of("s"); 139 var s = Variable.of("s");
153 var person = new Symbol<>("person", 1, Boolean.class, false);
154 var personView = new KeyOnlyRelationView<>(person);
155 var friend = new Symbol<>("friend", 2, Boolean.class, false);
156 var friendView = new KeyOnlyRelationView<>(friend);
157 var called = Dnf.builder("Called").parameters(r, s).clause(friendView.call(r, s)).build(); 140 var called = Dnf.builder("Called").parameters(r, s).clause(friendView.call(r, s)).build();
158 var dnf = Dnf.builder("Example") 141 var dnf = Dnf.builder("Example")
159 .parameter(p) 142 .parameter(p)
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java
new file mode 100644
index 00000000..e22dbb21
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java
@@ -0,0 +1,112 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.term.NodeVariable;
10import tools.refinery.store.query.term.ParameterDirection;
11import tools.refinery.store.query.term.Variable;
12import tools.refinery.store.query.view.AnySymbolView;
13import tools.refinery.store.query.view.KeyOnlyView;
14import tools.refinery.store.representation.Symbol;
15
16import java.util.List;
17
18import static org.hamcrest.MatcherAssert.assertThat;
19import static org.junit.jupiter.api.Assertions.assertThrows;
20import static tools.refinery.store.query.literal.Literals.not;
21import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
22
23class TopologicalSortTest {
24 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
25 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
26 private static final Dnf example = Dnf.of("example", builder -> {
27 var a = builder.parameter("a", ParameterDirection.IN);
28 var b = builder.parameter("b", ParameterDirection.IN);
29 var c = builder.parameter("c", ParameterDirection.OUT);
30 var d = builder.parameter("d", ParameterDirection.OUT);
31 builder.clause(
32 friendView.call(a, b),
33 friendView.call(b, c),
34 friendView.call(c, d)
35 );
36 });
37 private static final NodeVariable p = Variable.of("p");
38 private static final NodeVariable q = Variable.of("q");
39 private static final NodeVariable r = Variable.of("r");
40 private static final NodeVariable s = Variable.of("s");
41 private static final NodeVariable t = Variable.of("t");
42
43 @Test
44 void topologicalSortTest() {
45 var actual = Dnf.builder("Actual")
46 .parameter(p, ParameterDirection.IN)
47 .parameter(q, ParameterDirection.OUT)
48 .clause(
49 not(friendView.call(p, q)),
50 example.call(p, q, r, s),
51 example.call(r, t, q, s),
52 friendView.call(r, t)
53 )
54 .build();
55
56 assertThat(actual, structurallyEqualTo(
57 List.of(
58 new SymbolicParameter(p, ParameterDirection.IN),
59 new SymbolicParameter(q, ParameterDirection.OUT)
60 ),
61 List.of(
62 List.of(
63 friendView.call(r, t),
64 example.call(r, t, q, s),
65 not(friendView.call(p, q)),
66 example.call(p, q, r, s)
67 )
68 )
69 ));
70 }
71
72 @Test
73 void missingInputTest() {
74 var builder = Dnf.builder("Actual")
75 .parameter(p, ParameterDirection.OUT)
76 .parameter(q, ParameterDirection.OUT)
77 .clause(
78 not(friendView.call(p, q)),
79 example.call(p, q, r, s),
80 example.call(r, t, q, s),
81 friendView.call(r, t)
82 );
83 assertThrows(IllegalArgumentException.class, builder::build);
84 }
85
86 @Test
87 void missingVariableTest() {
88 var builder = Dnf.builder("Actual")
89 .parameter(p, ParameterDirection.IN)
90 .parameter(q, ParameterDirection.OUT)
91 .clause(
92 not(friendView.call(p, q)),
93 example.call(p, q, r, s),
94 example.call(r, t, q, s)
95 );
96 assertThrows(IllegalArgumentException.class, builder::build);
97 }
98
99 @Test
100 void circularDependencyTest() {
101 var builder = Dnf.builder("Actual")
102 .parameter(p, ParameterDirection.IN)
103 .parameter(q, ParameterDirection.OUT)
104 .clause(
105 not(friendView.call(p, q)),
106 example.call(p, q, r, s),
107 example.call(r, t, q, s),
108 example.call(p, q, r, t)
109 );
110 assertThrows(IllegalArgumentException.class, builder::build);
111 }
112}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java
new file mode 100644
index 00000000..c52d26b2
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java
@@ -0,0 +1,428 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.dnf;
7
8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.query.literal.BooleanLiteral;
12import tools.refinery.store.query.literal.Literal;
13import tools.refinery.store.query.term.DataVariable;
14import tools.refinery.store.query.term.NodeVariable;
15import tools.refinery.store.query.term.ParameterDirection;
16import tools.refinery.store.query.term.Variable;
17import tools.refinery.store.query.view.AnySymbolView;
18import tools.refinery.store.query.view.FunctionView;
19import tools.refinery.store.query.view.KeyOnlyView;
20import tools.refinery.store.representation.Symbol;
21
22import java.util.ArrayList;
23import java.util.List;
24import java.util.stream.Stream;
25
26import static org.hamcrest.MatcherAssert.assertThat;
27import static org.hamcrest.Matchers.hasItem;
28import static org.hamcrest.Matchers.not;
29import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
30import static org.junit.jupiter.api.Assertions.assertThrows;
31import static tools.refinery.store.query.literal.Literals.assume;
32import static tools.refinery.store.query.literal.Literals.not;
33import static tools.refinery.store.query.term.int_.IntTerms.*;
34
35class VariableDirectionTest {
36 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
37 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
38 private static final Symbol<Integer> age = Symbol.of("age", 1, Integer.class);
39 private static final AnySymbolView personView = new KeyOnlyView<>(person);
40 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
41 private static final FunctionView<Integer> ageView = new FunctionView<>(age);
42 private static final NodeVariable p = Variable.of("p");
43 private static final NodeVariable q = Variable.of("q");
44 private static final DataVariable<Integer> x = Variable.of("x", Integer.class);
45 private static final DataVariable<Integer> y = Variable.of("y", Integer.class);
46 private static final DataVariable<Integer> z = Variable.of("z", Integer.class);
47
48 @ParameterizedTest
49 @MethodSource("clausesWithVariableInput")
50 void unboundOutVariableTest(List<? extends Literal> clause) {
51 var builder = Dnf.builder().parameter(p, ParameterDirection.OUT).clause(clause);
52 assertThrows(IllegalArgumentException.class, builder::build);
53 }
54
55 @ParameterizedTest
56 @MethodSource("clausesWithVariableInput")
57 void unboundInVariableTest(List<? extends Literal> clause) {
58 var builder = Dnf.builder().parameter(p, ParameterDirection.IN).clause(clause);
59 var dnf = assertDoesNotThrow(builder::build);
60 var clauses = dnf.getClauses();
61 if (clauses.size() > 0) {
62 assertThat(clauses.get(0).positiveVariables(), hasItem(p));
63 }
64 }
65
66 @ParameterizedTest
67 @MethodSource("clausesWithVariableInput")
68 void boundPrivateVariableTest(List<? extends Literal> clause) {
69 var clauseWithBinding = new ArrayList<Literal>(clause);
70 clauseWithBinding.add(personView.call(p));
71 var builder = Dnf.builder().clause(clauseWithBinding);
72 var dnf = assertDoesNotThrow(builder::build);
73 var clauses = dnf.getClauses();
74 if (clauses.size() > 0) {
75 assertThat(clauses.get(0).positiveVariables(), hasItem(p));
76 }
77 }
78
79 static Stream<Arguments> clausesWithVariableInput() {
80 return Stream.concat(
81 clausesNotBindingVariable(),
82 literalToClauseArgumentStream(literalsWithRequiredVariableInput())
83 );
84 }
85
86 @ParameterizedTest
87 @MethodSource("clausesNotBindingVariable")
88 void unboundPrivateVariableTest(List<? extends Literal> clause) {
89 var builder = Dnf.builder().clause(clause);
90 var dnf = assertDoesNotThrow(builder::build);
91 var clauses = dnf.getClauses();
92 if (clauses.size() > 0) {
93 assertThat(clauses.get(0).positiveVariables(), not(hasItem(p)));
94 }
95 }
96
97 @ParameterizedTest
98 @MethodSource("clausesNotBindingVariable")
99 void unboundByEquivalencePrivateVariableTest(List<? extends Literal> clause) {
100 var r = Variable.of("r");
101 var clauseWithEquivalence = new ArrayList<Literal>(clause);
102 clauseWithEquivalence.add(r.isEquivalent(p));
103 var builder = Dnf.builder().clause(clauseWithEquivalence);
104 assertThrows(IllegalArgumentException.class, builder::build);
105 }
106
107 static Stream<Arguments> clausesNotBindingVariable() {
108 return Stream.concat(
109 Stream.of(
110 Arguments.of(List.of()),
111 Arguments.of(List.of(BooleanLiteral.TRUE)),
112 Arguments.of(List.of(BooleanLiteral.FALSE))
113 ),
114 literalToClauseArgumentStream(literalsWithPrivateVariable())
115 );
116 }
117
118 @ParameterizedTest
119 @MethodSource("literalsWithPrivateVariable")
120 void unboundTwicePrivateVariableTest(Literal literal) {
121 var builder = Dnf.builder().clause(not(personView.call(p)), literal);
122 assertThrows(IllegalArgumentException.class, builder::build);
123 }
124
125 @ParameterizedTest
126 @MethodSource("literalsWithPrivateVariable")
127 void unboundTwiceByEquivalencePrivateVariableTest(Literal literal) {
128 var r = Variable.of("r");
129 var builder = Dnf.builder().clause(not(personView.call(r)), r.isEquivalent(p), literal);
130 assertThrows(IllegalArgumentException.class, builder::build);
131 }
132
133 static Stream<Arguments> literalsWithPrivateVariable() {
134 var dnfWithOutput = Dnf.builder("WithOutput")
135 .parameter(p, ParameterDirection.OUT)
136 .parameter(q, ParameterDirection.OUT)
137 .clause(friendView.call(p, q))
138 .build();
139 var dnfWithOutputToAggregate = Dnf.builder("WithOutputToAggregate")
140 .parameter(p, ParameterDirection.OUT)
141 .parameter(q, ParameterDirection.OUT)
142 .parameter(x, ParameterDirection.OUT)
143 .clause(
144 friendView.call(p, q),
145 ageView.call(q, x)
146 )
147 .build();
148
149 return Stream.of(
150 Arguments.of(not(friendView.call(p, q))),
151 Arguments.of(y.assign(friendView.count(p, q))),
152 Arguments.of(y.assign(ageView.aggregate(INT_SUM, p))),
153 Arguments.of(not(dnfWithOutput.call(p, q))),
154 Arguments.of(y.assign(dnfWithOutput.count(p, q))),
155 Arguments.of(y.assign(dnfWithOutputToAggregate.aggregateBy(z, INT_SUM, p, q, z)))
156 );
157 }
158
159 @ParameterizedTest
160 @MethodSource("literalsWithRequiredVariableInput")
161 void unboundPrivateVariableTest(Literal literal) {
162 var builder = Dnf.builder().clause(literal);
163 assertThrows(IllegalArgumentException.class, builder::build);
164 }
165
166 @ParameterizedTest
167 @MethodSource("literalsWithRequiredVariableInput")
168 void boundPrivateVariableInputTest(Literal literal) {
169 var builder = Dnf.builder().clause(personView.call(p), literal);
170 var dnf = assertDoesNotThrow(builder::build);
171 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p));
172 }
173
174 static Stream<Arguments> literalsWithRequiredVariableInput() {
175 var dnfWithInput = Dnf.builder("WithInput")
176 .parameter(p, ParameterDirection.IN)
177 .parameter(q, ParameterDirection.OUT)
178 .clause(friendView.call(p, q)).build();
179 var dnfWithInputToAggregate = Dnf.builder("WithInputToAggregate")
180 .parameter(p, ParameterDirection.IN)
181 .parameter(q, ParameterDirection.OUT)
182 .parameter(x, ParameterDirection.OUT)
183 .clause(
184 friendView.call(p, q),
185 ageView.call(q, x)
186 ).build();
187
188 return Stream.of(
189 Arguments.of(dnfWithInput.call(p, q)),
190 Arguments.of(dnfWithInput.call(p, p)),
191 Arguments.of(not(dnfWithInput.call(p, q))),
192 Arguments.of(not(dnfWithInput.call(p, p))),
193 Arguments.of(y.assign(dnfWithInput.count(p, q))),
194 Arguments.of(y.assign(dnfWithInput.count(p, p))),
195 Arguments.of(y.assign(dnfWithInputToAggregate.aggregateBy(z, INT_SUM, p, q, z))),
196 Arguments.of(y.assign(dnfWithInputToAggregate.aggregateBy(z, INT_SUM, p, p, z)))
197 );
198 }
199
200 @ParameterizedTest
201 @MethodSource("literalsWithVariableOutput")
202 void boundParameterTest(Literal literal) {
203 var builder = Dnf.builder().parameter(p, ParameterDirection.OUT).clause(literal);
204 var dnf = assertDoesNotThrow(builder::build);
205 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p));
206 }
207
208 @ParameterizedTest
209 @MethodSource("literalsWithVariableOutput")
210 void boundTwiceParameterTest(Literal literal) {
211 var builder = Dnf.builder().parameter(p, ParameterDirection.IN).clause(literal);
212 var dnf = assertDoesNotThrow(builder::build);
213 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p));
214 }
215
216 @ParameterizedTest
217 @MethodSource("literalsWithVariableOutput")
218 void boundPrivateVariableOutputTest(Literal literal) {
219 var dnfWithInput = Dnf.builder("WithInput")
220 .parameter(p, ParameterDirection.IN)
221 .clause(personView.call(p))
222 .build();
223 var builder = Dnf.builder().clause(dnfWithInput.call(p), literal);
224 var dnf = assertDoesNotThrow(builder::build);
225 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p));
226 }
227
228 @ParameterizedTest
229 @MethodSource("literalsWithVariableOutput")
230 void boundTwicePrivateVariableOutputTest(Literal literal) {
231 var builder = Dnf.builder().clause(personView.call(p), literal);
232 var dnf = assertDoesNotThrow(builder::build);
233 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p));
234 }
235
236 static Stream<Arguments> literalsWithVariableOutput() {
237 var dnfWithOutput = Dnf.builder("WithOutput")
238 .parameter(p, ParameterDirection.OUT)
239 .parameter(q, ParameterDirection.OUT)
240 .clause(friendView.call(p, q))
241 .build();
242
243 return Stream.of(
244 Arguments.of(friendView.call(p, q)),
245 Arguments.of(dnfWithOutput.call(p, q))
246 );
247 }
248
249 @ParameterizedTest
250 @MethodSource("clausesWithDataVariableInput")
251 void unboundOutDataVariableTest(List<? extends Literal> clause) {
252 var builder = Dnf.builder().parameter(x, ParameterDirection.OUT).clause(clause);
253 assertThrows(IllegalArgumentException.class, builder::build);
254 }
255
256 @ParameterizedTest
257 @MethodSource("clausesWithDataVariableInput")
258 void unboundInDataVariableTest(List<? extends Literal> clause) {
259 var builder = Dnf.builder().parameter(x, ParameterDirection.IN).clause(clause);
260 var dnf = assertDoesNotThrow(builder::build);
261 var clauses = dnf.getClauses();
262 if (clauses.size() > 0) {
263 assertThat(clauses.get(0).positiveVariables(), hasItem(x));
264 }
265 }
266
267 @ParameterizedTest
268 @MethodSource("clausesWithDataVariableInput")
269 void boundPrivateDataVariableTest(List<? extends Literal> clause) {
270 var clauseWithBinding = new ArrayList<Literal>(clause);
271 clauseWithBinding.add(x.assign(constant(27)));
272 var builder = Dnf.builder().clause(clauseWithBinding);
273 var dnf = assertDoesNotThrow(builder::build);
274 var clauses = dnf.getClauses();
275 if (clauses.size() > 0) {
276 assertThat(clauses.get(0).positiveVariables(), hasItem(x));
277 }
278 }
279
280 static Stream<Arguments> clausesWithDataVariableInput() {
281 return Stream.concat(
282 clausesNotBindingDataVariable(),
283 literalToClauseArgumentStream(literalsWithRequiredDataVariableInput())
284 );
285 }
286
287 @ParameterizedTest
288 @MethodSource("clausesNotBindingDataVariable")
289 void unboundPrivateDataVariableTest(List<? extends Literal> clause) {
290 var builder = Dnf.builder().clause(clause);
291 var dnf = assertDoesNotThrow(builder::build);
292 var clauses = dnf.getClauses();
293 if (clauses.size() > 0) {
294 assertThat(clauses.get(0).positiveVariables(), not(hasItem(x)));
295 }
296 }
297
298 static Stream<Arguments> clausesNotBindingDataVariable() {
299 return Stream.concat(
300 Stream.of(
301 Arguments.of(List.of()),
302 Arguments.of(List.of(BooleanLiteral.TRUE)),
303 Arguments.of(List.of(BooleanLiteral.FALSE))
304 ),
305 literalToClauseArgumentStream(literalsWithPrivateDataVariable())
306 );
307 }
308
309 @ParameterizedTest
310 @MethodSource("literalsWithPrivateDataVariable")
311 void unboundTwicePrivateDataVariableTest(Literal literal) {
312 var builder = Dnf.builder().clause(not(ageView.call(p, x)), literal);
313 assertThrows(IllegalArgumentException.class, builder::build);
314 }
315
316 static Stream<Arguments> literalsWithPrivateDataVariable() {
317 var dnfWithOutput = Dnf.builder("WithDataOutput")
318 .parameter(y, ParameterDirection.OUT)
319 .parameter(q, ParameterDirection.OUT)
320 .clause(ageView.call(q, y))
321 .build();
322
323 return Stream.of(
324 Arguments.of(not(ageView.call(q, x))),
325 Arguments.of(y.assign(ageView.count(q, x))),
326 Arguments.of(not(dnfWithOutput.call(x, q)))
327 );
328 }
329
330 @ParameterizedTest
331 @MethodSource("literalsWithRequiredDataVariableInput")
332 void unboundPrivateDataVariableTest(Literal literal) {
333 var builder = Dnf.builder().clause(literal);
334 assertThrows(IllegalArgumentException.class, builder::build);
335 }
336
337 static Stream<Arguments> literalsWithRequiredDataVariableInput() {
338 var dnfWithInput = Dnf.builder("WithDataInput")
339 .parameter(y, ParameterDirection.IN)
340 .parameter(q, ParameterDirection.OUT)
341 .clause(ageView.call(q, x))
342 .build();
343 // We are passing {@code y} to the parameter named {@code right} of {@code greaterEq}.
344 @SuppressWarnings("SuspiciousNameCombination")
345 var dnfWithInputToAggregate = Dnf.builder("WithDataInputToAggregate")
346 .parameter(y, ParameterDirection.IN)
347 .parameter(q, ParameterDirection.OUT)
348 .parameter(x, ParameterDirection.OUT)
349 .clause(
350 friendView.call(p, q),
351 ageView.call(q, x),
352 assume(greaterEq(x, y))
353 )
354 .build();
355
356 return Stream.of(
357 Arguments.of(dnfWithInput.call(x, q)),
358 Arguments.of(not(dnfWithInput.call(x, q))),
359 Arguments.of(y.assign(dnfWithInput.count(x, q))),
360 Arguments.of(y.assign(dnfWithInputToAggregate.aggregateBy(z, INT_SUM, x, q, z)))
361 );
362 }
363
364 @ParameterizedTest
365 @MethodSource("literalsWithDataVariableOutput")
366 void boundDataParameterTest(Literal literal) {
367 var builder = Dnf.builder().parameter(x, ParameterDirection.OUT).clause(literal);
368 var dnf = assertDoesNotThrow(builder::build);
369 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(x));
370 }
371
372 @ParameterizedTest
373 @MethodSource("literalsWithDataVariableOutput")
374 void boundTwiceDataParameterTest(Literal literal) {
375 var builder = Dnf.builder().parameter(x, ParameterDirection.IN).clause(literal);
376 assertThrows(IllegalArgumentException.class, builder::build);
377 }
378
379 @ParameterizedTest
380 @MethodSource("literalsWithDataVariableOutput")
381 void boundPrivateDataVariableOutputTest(Literal literal) {
382 var dnfWithInput = Dnf.builder("WithInput")
383 .parameter(x, ParameterDirection.IN)
384 .clause(assume(greaterEq(x, constant(24))))
385 .build();
386 var builder = Dnf.builder().clause(dnfWithInput.call(x), literal);
387 var dnf = assertDoesNotThrow(builder::build);
388 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(x));
389 }
390
391 @ParameterizedTest
392 @MethodSource("literalsWithDataVariableOutput")
393 void boundTwicePrivateDataVariableOutputTest(Literal literal) {
394 var builder = Dnf.builder().clause(x.assign(constant(27)), literal);
395 assertThrows(IllegalArgumentException.class, builder::build);
396 }
397
398 static Stream<Arguments> literalsWithDataVariableOutput() {
399 var dnfWithOutput = Dnf.builder("WithOutput")
400 .parameter(q, ParameterDirection.OUT)
401 .clause(personView.call(q))
402 .build();
403 var dnfWithDataOutput = Dnf.builder("WithDataOutput")
404 .parameter(y, ParameterDirection.OUT)
405 .parameter(q, ParameterDirection.OUT)
406 .clause(ageView.call(q, y))
407 .build();
408 var dnfWithOutputToAggregate = Dnf.builder("WithDataOutputToAggregate")
409 .parameter(q, ParameterDirection.OUT)
410 .parameter(y, ParameterDirection.OUT)
411 .clause(ageView.call(q, y))
412 .build();
413
414 return Stream.of(
415 Arguments.of(x.assign(constant(24))),
416 Arguments.of(ageView.call(q, x)),
417 Arguments.of(x.assign(personView.count(q))),
418 Arguments.of(x.assign(ageView.aggregate(INT_SUM, q))),
419 Arguments.of(dnfWithDataOutput.call(x, q)),
420 Arguments.of(x.assign(dnfWithOutput.count(q))),
421 Arguments.of(x.assign(dnfWithOutputToAggregate.aggregateBy(z, INT_SUM, q, z)))
422 );
423 }
424
425 private static Stream<Arguments> literalToClauseArgumentStream(Stream<Arguments> literalArgumentsStream) {
426 return literalArgumentsStream.map(arguments -> Arguments.of(List.of(arguments.get()[0])));
427 }
428}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/AggregationLiteralTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/AggregationLiteralTest.java
new file mode 100644
index 00000000..35910e08
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/AggregationLiteralTest.java
@@ -0,0 +1,88 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.literal;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.Constraint;
10import tools.refinery.store.query.dnf.Dnf;
11import tools.refinery.store.query.term.*;
12
13import java.util.List;
14import java.util.Set;
15
16import static org.hamcrest.MatcherAssert.assertThat;
17import static org.hamcrest.Matchers.containsInAnyOrder;
18import static org.hamcrest.Matchers.empty;
19import static org.junit.jupiter.api.Assertions.assertAll;
20import static org.junit.jupiter.api.Assertions.assertThrows;
21import static tools.refinery.store.query.literal.Literals.not;
22import static tools.refinery.store.query.term.int_.IntTerms.INT_SUM;
23import static tools.refinery.store.query.term.int_.IntTerms.constant;
24
25class AggregationLiteralTest {
26 private static final NodeVariable p = Variable.of("p");
27 private static final DataVariable<Integer> x = Variable.of("x", Integer.class);
28 private static final DataVariable<Integer> y = Variable.of("y", Integer.class);
29 private static final DataVariable<Integer> z = Variable.of("z", Integer.class);
30 private static final Constraint fakeConstraint = new Constraint() {
31 @Override
32 public String name() {
33 return getClass().getName();
34 }
35
36 @Override
37 public List<Parameter> getParameters() {
38 return List.of(
39 new Parameter(null, ParameterDirection.OUT),
40 new Parameter(Integer.class, ParameterDirection.OUT)
41 );
42 }
43 };
44
45 @Test
46 void parameterDirectionTest() {
47 var literal = x.assign(fakeConstraint.aggregateBy(y, INT_SUM, p, y));
48 assertAll(
49 () -> assertThat(literal.getOutputVariables(), containsInAnyOrder(x)),
50 () -> assertThat(literal.getInputVariables(Set.of()), empty()),
51 () -> assertThat(literal.getInputVariables(Set.of(p)), containsInAnyOrder(p)),
52 () -> assertThat(literal.getPrivateVariables(Set.of()), containsInAnyOrder(p, y)),
53 () -> assertThat(literal.getPrivateVariables(Set.of(p)), containsInAnyOrder(y))
54 );
55 }
56
57 @Test
58 void missingAggregationVariableTest() {
59 var aggregation = fakeConstraint.aggregateBy(y, INT_SUM, p, z);
60 assertThrows(IllegalArgumentException.class, () -> x.assign(aggregation));
61 }
62
63 @Test
64 void circularAggregationVariableTest() {
65 var aggregation = fakeConstraint.aggregateBy(x, INT_SUM, p, x);
66 assertThrows(IllegalArgumentException.class, () -> x.assign(aggregation));
67 }
68
69 @Test
70 void unboundTwiceVariableTest() {
71 var builder = Dnf.builder()
72 .clause(
73 not(fakeConstraint.call(p, y)),
74 x.assign(fakeConstraint.aggregateBy(y, INT_SUM, p, y))
75 );
76 assertThrows(IllegalArgumentException.class, builder::build);
77 }
78
79 @Test
80 void unboundBoundVariableTest() {
81 var builder = Dnf.builder()
82 .clause(
83 y.assign(constant(27)),
84 x.assign(fakeConstraint.aggregateBy(y, INT_SUM, p, y))
85 );
86 assertThrows(IllegalArgumentException.class, builder::build);
87 }
88}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/CallLiteralTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/CallLiteralTest.java
new file mode 100644
index 00000000..a01c6586
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/CallLiteralTest.java
@@ -0,0 +1,94 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.literal;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.Constraint;
10import tools.refinery.store.query.term.NodeVariable;
11import tools.refinery.store.query.term.Parameter;
12import tools.refinery.store.query.term.ParameterDirection;
13import tools.refinery.store.query.term.Variable;
14
15import java.util.List;
16import java.util.Set;
17
18import static org.hamcrest.MatcherAssert.assertThat;
19import static org.hamcrest.Matchers.containsInAnyOrder;
20import static org.hamcrest.Matchers.empty;
21import static org.junit.jupiter.api.Assertions.assertAll;
22import static tools.refinery.store.query.literal.Literals.not;
23
24class CallLiteralTest {
25 private static final NodeVariable p = Variable.of("p");
26 private static final NodeVariable q = Variable.of("q");
27 private static final NodeVariable r = Variable.of("r");
28 private static final NodeVariable s = Variable.of("s");
29
30 private static final Constraint fakeConstraint = new Constraint() {
31 @Override
32 public String name() {
33 return getClass().getName();
34 }
35
36 @Override
37 public List<Parameter> getParameters() {
38 return List.of(
39 new Parameter(null, ParameterDirection.IN),
40 new Parameter(null, ParameterDirection.IN),
41 new Parameter(null, ParameterDirection.OUT),
42 new Parameter(null, ParameterDirection.OUT)
43 );
44 }
45 };
46
47 @Test
48 void notRepeatedPositiveDirectionTest() {
49 var literal = fakeConstraint.call(p, q, r, s);
50 assertAll(
51 () -> assertThat(literal.getOutputVariables(), containsInAnyOrder(r, s)),
52 () -> assertThat(literal.getInputVariables(Set.of()), containsInAnyOrder(p, q)),
53 () -> assertThat(literal.getInputVariables(Set.of(p, q, r)), containsInAnyOrder(p, q)),
54 () -> assertThat(literal.getPrivateVariables(Set.of()), empty()),
55 () -> assertThat(literal.getPrivateVariables(Set.of(p, q, r)), empty())
56 );
57 }
58
59 @Test
60 void notRepeatedNegativeDirectionTest() {
61 var literal = not(fakeConstraint.call(p, q, r, s));
62 assertAll(
63 () -> assertThat(literal.getOutputVariables(), empty()),
64 () -> assertThat(literal.getInputVariables(Set.of()), containsInAnyOrder(p, q)),
65 () -> assertThat(literal.getInputVariables(Set.of(p, q, r)), containsInAnyOrder(p, q, r)),
66 () -> assertThat(literal.getPrivateVariables(Set.of()), containsInAnyOrder(r, s)),
67 () -> assertThat(literal.getPrivateVariables(Set.of(p, q, r)), containsInAnyOrder(s))
68 );
69 }
70
71 @Test
72 void repeatedPositiveDirectionTest() {
73 var literal = fakeConstraint.call(p, p, q, q);
74 assertAll(
75 () -> assertThat(literal.getOutputVariables(), containsInAnyOrder(q)),
76 () -> assertThat(literal.getInputVariables(Set.of()), containsInAnyOrder(p)),
77 () -> assertThat(literal.getInputVariables(Set.of(p, q)), containsInAnyOrder(p)),
78 () -> assertThat(literal.getPrivateVariables(Set.of()), empty()),
79 () -> assertThat(literal.getPrivateVariables(Set.of(p, q)), empty())
80 );
81 }
82
83 @Test
84 void repeatedNegativeDirectionTest() {
85 var literal = not(fakeConstraint.call(p, p, q, q));
86 assertAll(
87 () -> assertThat(literal.getOutputVariables(), empty()),
88 () -> assertThat(literal.getInputVariables(Set.of()), containsInAnyOrder(p)),
89 () -> assertThat(literal.getInputVariables(Set.of(p, q)), containsInAnyOrder(p, q)),
90 () -> assertThat(literal.getPrivateVariables(Set.of()), containsInAnyOrder(q)),
91 () -> assertThat(literal.getPrivateVariables(Set.of(p, q)), empty())
92 );
93 }
94}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/TermSubstitutionTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/TermSubstitutionTest.java
new file mode 100644
index 00000000..1cbc101a
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/TermSubstitutionTest.java
@@ -0,0 +1,97 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term;
7
8import org.junit.jupiter.api.Assertions;
9import org.junit.jupiter.params.ParameterizedTest;
10import org.junit.jupiter.params.provider.Arguments;
11import org.junit.jupiter.params.provider.MethodSource;
12import tools.refinery.store.query.dnf.Dnf;
13import tools.refinery.store.query.equality.LiteralEqualityHelper;
14import tools.refinery.store.query.substitution.Substitution;
15import tools.refinery.store.query.term.bool.BoolTerms;
16import tools.refinery.store.query.term.int_.IntTerms;
17import tools.refinery.store.query.term.real.RealTerms;
18import tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms;
19import tools.refinery.store.representation.cardinality.UpperCardinality;
20
21import java.util.List;
22import java.util.stream.Stream;
23
24class TermSubstitutionTest {
25 private final static DataVariable<Integer> intA = Variable.of("intA", Integer.class);
26 private final static DataVariable<Integer> intB = Variable.of("intB", Integer.class);
27 private final static DataVariable<Double> realA = Variable.of("realA", Double.class);
28 private final static DataVariable<Double> realB = Variable.of("realB", Double.class);
29 private final static DataVariable<Boolean> boolA = Variable.of("boolA", Boolean.class);
30 private final static DataVariable<Boolean> boolB = Variable.of("boolB", Boolean.class);
31 private final static DataVariable<UpperCardinality> upperCardinalityA = Variable.of("upperCardinalityA",
32 UpperCardinality.class);
33 private final static DataVariable<UpperCardinality> upperCardinalityB = Variable.of("upperCardinalityB",
34 UpperCardinality.class);
35 private final static Substitution substitution = Substitution.builder()
36 .put(intA, intB)
37 .put(intB, intA)
38 .put(realA, realB)
39 .put(realB, realA)
40 .put(boolA, boolB)
41 .put(boolB, boolA)
42 .put(upperCardinalityA, upperCardinalityB)
43 .put(upperCardinalityB, upperCardinalityA)
44 .build();
45
46 @ParameterizedTest
47 @MethodSource
48 void substitutionTest(AnyTerm term) {
49 var substitutedTerm1 = term.substitute(substitution);
50 Assertions.assertNotEquals(term, substitutedTerm1, "Original term is not equal to substituted term");
51 var helper = new LiteralEqualityHelper(Dnf::equals, List.of(), List.of());
52 Assertions.assertTrue(term.equalsWithSubstitution(helper, substitutedTerm1), "Terms are equal by helper");
53 // The {@link #substitution} is its own inverse.
54 var substitutedTerm2 = substitutedTerm1.substitute(substitution);
55 Assertions.assertEquals(term, substitutedTerm2, "Original term is not equal to back-substituted term");
56 }
57
58 static Stream<Arguments> substitutionTest() {
59 return Stream.of(
60 Arguments.of(IntTerms.plus(intA)),
61 Arguments.of(IntTerms.minus(intA)),
62 Arguments.of(IntTerms.add(intA, intB)),
63 Arguments.of(IntTerms.sub(intA, intB)),
64 Arguments.of(IntTerms.mul(intA, intB)),
65 Arguments.of(IntTerms.div(intA, intB)),
66 Arguments.of(IntTerms.pow(intA, intB)),
67 Arguments.of(IntTerms.min(intA, intB)),
68 Arguments.of(IntTerms.max(intA, intB)),
69 Arguments.of(IntTerms.eq(intA, intB)),
70 Arguments.of(IntTerms.notEq(intA, intB)),
71 Arguments.of(IntTerms.less(intA, intB)),
72 Arguments.of(IntTerms.lessEq(intA, intB)),
73 Arguments.of(IntTerms.greater(intA, intB)),
74 Arguments.of(IntTerms.greaterEq(intA, intB)),
75 Arguments.of(IntTerms.asInt(realA)),
76 Arguments.of(RealTerms.plus(realA)),
77 Arguments.of(RealTerms.minus(realA)),
78 Arguments.of(RealTerms.add(realA, realB)),
79 Arguments.of(RealTerms.sub(realA, realB)),
80 Arguments.of(RealTerms.mul(realA, realB)),
81 Arguments.of(RealTerms.div(realA, realB)),
82 Arguments.of(RealTerms.pow(realA, realB)),
83 Arguments.of(RealTerms.min(realA, realB)),
84 Arguments.of(RealTerms.max(realA, realB)),
85 Arguments.of(RealTerms.asReal(intA)),
86 Arguments.of(BoolTerms.not(boolA)),
87 Arguments.of(BoolTerms.and(boolA, boolB)),
88 Arguments.of(BoolTerms.or(boolA, boolB)),
89 Arguments.of(BoolTerms.xor(boolA, boolB)),
90 Arguments.of(RealTerms.eq(realA, realB)),
91 Arguments.of(UpperCardinalityTerms.add(upperCardinalityA, upperCardinalityB)),
92 Arguments.of(UpperCardinalityTerms.mul(upperCardinalityA, upperCardinalityB)),
93 Arguments.of(UpperCardinalityTerms.min(upperCardinalityA, upperCardinalityB)),
94 Arguments.of(UpperCardinalityTerms.max(upperCardinalityA, upperCardinalityB))
95 );
96 }
97}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/bool/BoolTermsEvaluateTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/bool/BoolTermsEvaluateTest.java
new file mode 100644
index 00000000..beff705e
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/bool/BoolTermsEvaluateTest.java
@@ -0,0 +1,75 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.bool;
7
8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.CsvSource;
10import tools.refinery.store.query.valuation.Valuation;
11
12import static org.hamcrest.MatcherAssert.assertThat;
13import static org.hamcrest.Matchers.is;
14
15class BoolTermsEvaluateTest {
16 @ParameterizedTest(name = "!{0} == {1}")
17 @CsvSource(value = {
18 "false, true",
19 "true, false",
20 "null, null"
21 }, nullValues = "null")
22 void notTest(Boolean a, Boolean result) {
23 var term = BoolTerms.not(BoolTerms.constant(a));
24 assertThat(term.getType(), is(Boolean.class));
25 assertThat(term.evaluate(Valuation.empty()), is(result));
26 }
27
28 @ParameterizedTest(name = "{0} && {1} == {2}")
29 @CsvSource(value = {
30 "false, false, false",
31 "false, true, false",
32 "true, false, false",
33 "true, true, true",
34 "false, null, null",
35 "null, false, null",
36 "null, null, null"
37 }, nullValues = "null")
38 void andTest(Boolean a, Boolean b, Boolean result) {
39 var term = BoolTerms.and(BoolTerms.constant(a), BoolTerms.constant(b));
40 assertThat(term.getType(), is(Boolean.class));
41 assertThat(term.evaluate(Valuation.empty()), is(result));
42 }
43
44 @ParameterizedTest(name = "{0} || {1} == {2}")
45 @CsvSource(value = {
46 "false, false, false",
47 "false, true, true",
48 "true, false, true",
49 "true, true, true",
50 "true, null, null",
51 "null, true, null",
52 "null, null, null"
53 }, nullValues = "null")
54 void orTest(Boolean a, Boolean b, Boolean result) {
55 var term = BoolTerms.or(BoolTerms.constant(a), BoolTerms.constant(b));
56 assertThat(term.getType(), is(Boolean.class));
57 assertThat(term.evaluate(Valuation.empty()), is(result));
58 }
59
60 @ParameterizedTest(name = "{0} ^^ {1} == {2}")
61 @CsvSource(value = {
62 "false, false, false",
63 "false, true, true",
64 "true, false, true",
65 "true, true, false",
66 "false, null, null",
67 "null, false, null",
68 "null, null, null"
69 }, nullValues = "null")
70 void xorTest(Boolean a, Boolean b, Boolean result) {
71 var term = BoolTerms.xor(BoolTerms.constant(a), BoolTerms.constant(b));
72 assertThat(term.getType(), is(Boolean.class));
73 assertThat(term.evaluate(Valuation.empty()), is(result));
74 }
75}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/int_/IntTermsEvaluateTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/int_/IntTermsEvaluateTest.java
new file mode 100644
index 00000000..abe50d75
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/int_/IntTermsEvaluateTest.java
@@ -0,0 +1,259 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.int_;
7
8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.CsvSource;
11import org.junit.jupiter.params.provider.MethodSource;
12import tools.refinery.store.query.term.real.RealTerms;
13import tools.refinery.store.query.valuation.Valuation;
14
15import java.util.stream.Stream;
16
17import static org.hamcrest.Matchers.is;
18import static org.hamcrest.MatcherAssert.assertThat;
19
20class IntTermsEvaluateTest {
21 @ParameterizedTest(name = "+{0} == {1}")
22 @CsvSource(value = {
23 "2, 2",
24 "null, null"
25 }, nullValues = "null")
26 void plusTest(Integer a, Integer result) {
27 var term = IntTerms.plus(IntTerms.constant(a));
28 assertThat(term.getType(), is(Integer.class));
29 assertThat(term.evaluate(Valuation.empty()), is(result));
30 }
31
32 @ParameterizedTest(name = "-{0} == {1}")
33 @CsvSource(value = {
34 "2, -2",
35 "null, null"
36 }, nullValues = "null")
37 void minusTest(Integer a, Integer result) {
38 var term = IntTerms.minus(IntTerms.constant(a));
39 assertThat(term.getType(), is(Integer.class));
40 assertThat(term.evaluate(Valuation.empty()), is(result));
41 }
42
43 @ParameterizedTest(name = "{0} + {1} == {2}")
44 @CsvSource(value = {
45 "1, 2, 3",
46 "null, 2, null",
47 "1, null, null",
48 "null, null, null"
49 }, nullValues = "null")
50 void addTest(Integer a, Integer b, Integer result) {
51 var term = IntTerms.add(IntTerms.constant(a), IntTerms.constant(b));
52 assertThat(term.getType(), is(Integer.class));
53 assertThat(term.evaluate(Valuation.empty()), is(result));
54 }
55
56 @ParameterizedTest(name = "{0} - {1} == {2}")
57 @CsvSource(value = {
58 "1, 3, -2",
59 "null, 3, null",
60 "1, null, null",
61 "null, null, null"
62 }, nullValues = "null")
63 void subTest(Integer a, Integer b, Integer result) {
64 var term = IntTerms.sub(IntTerms.constant(a), IntTerms.constant(b));
65 assertThat(term.getType(), is(Integer.class));
66 assertThat(term.evaluate(Valuation.empty()), is(result));
67 }
68
69 @ParameterizedTest(name = "{0} * {1} == {2}")
70 @CsvSource(value = {
71 "2, 3, 6",
72 "null, 3, null",
73 "2, null, null",
74 "null, null, null"
75 }, nullValues = "null")
76 void mulTest(Integer a, Integer b, Integer result) {
77 var term = IntTerms.mul(IntTerms.constant(a), IntTerms.constant(b));
78 assertThat(term.getType(), is(Integer.class));
79 assertThat(term.evaluate(Valuation.empty()), is(result));
80 }
81
82 @ParameterizedTest(name = "{0} * {1} == {2}")
83 @CsvSource(value = {
84 "6, 3, 2",
85 "7, 3, 2",
86 "6, 0, null",
87 "null, 3, null",
88 "6, null, null",
89 "null, null, null"
90 }, nullValues = "null")
91 void divTest(Integer a, Integer b, Integer result) {
92 var term = IntTerms.div(IntTerms.constant(a), IntTerms.constant(b));
93 assertThat(term.getType(), is(Integer.class));
94 assertThat(term.evaluate(Valuation.empty()), is(result));
95 }
96
97 @ParameterizedTest(name = "{0} ** {1} == {2}")
98 @CsvSource(value = {
99 "1, 0, 1",
100 "1, 3, 1",
101 "1, -3, null",
102 "2, 0, 1",
103 "2, 2, 4",
104 "2, 3, 8",
105 "2, 4, 16",
106 "2, 5, 32",
107 "2, 6, 64",
108 "2, -3, null",
109 "null, 3, null",
110 "2, null, null",
111 "null, null, null"
112 }, nullValues = "null")
113 void powTest(Integer a, Integer b, Integer result) {
114 var term = IntTerms.pow(IntTerms.constant(a), IntTerms.constant(b));
115 assertThat(term.getType(), is(Integer.class));
116 assertThat(term.evaluate(Valuation.empty()), is(result));
117 }
118
119 @ParameterizedTest(name = "min({0}, {1}) == {2}")
120 @CsvSource(value = {
121 "1, 2, 1",
122 "2, 1, 1",
123 "null, 2, null",
124 "1, null, null",
125 "null, null, null"
126 }, nullValues = "null")
127 void minTest(Integer a, Integer b, Integer result) {
128 var term = IntTerms.min(IntTerms.constant(a), IntTerms.constant(b));
129 assertThat(term.getType(), is(Integer.class));
130 assertThat(term.evaluate(Valuation.empty()), is(result));
131 }
132
133 @ParameterizedTest(name = "max({0}, {1}) == {2}")
134 @CsvSource(value = {
135 "1, 2, 2",
136 "2, 1, 2",
137 "null, 2, null",
138 "1, null, null",
139 "null, null, null"
140 }, nullValues = "null")
141 void maxTest(Integer a, Integer b, Integer result) {
142 var term = IntTerms.max(IntTerms.constant(a), IntTerms.constant(b));
143 assertThat(term.getType(), is(Integer.class));
144 assertThat(term.evaluate(Valuation.empty()), is(result));
145 }
146
147 @ParameterizedTest(name = "({0} == {1}) == {2}")
148 @CsvSource(value = {
149 "1, 1, true",
150 "1, 2, false",
151 "null, 1, null",
152 "1, null, null",
153 "null, null, null"
154 }, nullValues = "null")
155 void eqTest(Integer a, Integer b, Boolean result) {
156 var term = IntTerms.eq(IntTerms.constant(a), IntTerms.constant(b));
157 assertThat(term.getType(), is(Boolean.class));
158 assertThat(term.evaluate(Valuation.empty()), is(result));
159 }
160
161 @ParameterizedTest(name = "({0} != {1}) == {2}")
162 @CsvSource(value = {
163 "1, 1, false",
164 "1, 2, true",
165 "null, 1, null",
166 "1, null, null",
167 "null, null, null"
168 }, nullValues = "null")
169 void notEqTest(Integer a, Integer b, Boolean result) {
170 var term = IntTerms.notEq(IntTerms.constant(a), IntTerms.constant(b));
171 assertThat(term.getType(), is(Boolean.class));
172 assertThat(term.evaluate(Valuation.empty()), is(result));
173 }
174
175 @ParameterizedTest(name = "({0} < {1}) == {2}")
176 @CsvSource(value = {
177 "1, -2, false",
178 "1, 1, false",
179 "1, 2, true",
180 "null, 1, null",
181 "1, null, null",
182 "null, null, null"
183 }, nullValues = "null")
184 void lessTest(Integer a, Integer b, Boolean result) {
185 var term = IntTerms.less(IntTerms.constant(a), IntTerms.constant(b));
186 assertThat(term.getType(), is(Boolean.class));
187 assertThat(term.evaluate(Valuation.empty()), is(result));
188 }
189
190 @ParameterizedTest(name = "({0} <= {1}) == {2}")
191 @CsvSource(value = {
192 "1, -2, false",
193 "1, 1, true",
194 "1, 2, true",
195 "null, 1, null",
196 "1, null, null",
197 "null, null, null"
198 }, nullValues = "null")
199 void lessEqTest(Integer a, Integer b, Boolean result) {
200 var term = IntTerms.lessEq(IntTerms.constant(a), IntTerms.constant(b));
201 assertThat(term.getType(), is(Boolean.class));
202 assertThat(term.evaluate(Valuation.empty()), is(result));
203 }
204
205 @ParameterizedTest(name = "({0} > {1}) == {2}")
206 @CsvSource(value = {
207 "1, -2, true",
208 "1, 1, false",
209 "1, 2, false",
210 "null, 1, null",
211 "1, null, null",
212 "null, null, null"
213 }, nullValues = "null")
214 void greaterTest(Integer a, Integer b, Boolean result) {
215 var term = IntTerms.greater(IntTerms.constant(a), IntTerms.constant(b));
216 assertThat(term.getType(), is(Boolean.class));
217 assertThat(term.evaluate(Valuation.empty()), is(result));
218 }
219
220 @ParameterizedTest(name = "({0} >= {1}) == {2}")
221 @CsvSource(value = {
222 "1, -2, true",
223 "1, 1, true",
224 "1, 2, false",
225 "null, 1, null",
226 "1, null, null",
227 "null, null, null"
228 }, nullValues = "null")
229 void greaterEqTest(Integer a, Integer b, Boolean result) {
230 var term = IntTerms.greaterEq(IntTerms.constant(a), IntTerms.constant(b));
231 assertThat(term.getType(), is(Boolean.class));
232 assertThat(term.evaluate(Valuation.empty()), is(result));
233 }
234
235 @ParameterizedTest(name = "{0} as int == {1}")
236 @MethodSource
237 void asIntTest(Double a, Integer result) {
238 var term = IntTerms.asInt(RealTerms.constant(a));
239 assertThat(term.getType(), is(Integer.class));
240 assertThat(term.evaluate(Valuation.empty()), is(result));
241 }
242
243 static Stream<Arguments> asIntTest() {
244 return Stream.of(
245 Arguments.of(2.0, 2),
246 Arguments.of(2.1, 2),
247 Arguments.of(2.9, 2),
248 Arguments.of(-2.0, -2),
249 Arguments.of(-2.1, -2),
250 Arguments.of(-2.9, -2),
251 Arguments.of(0.0, 0),
252 Arguments.of(-0.0, 0),
253 Arguments.of(Double.POSITIVE_INFINITY, Integer.MAX_VALUE),
254 Arguments.of(Double.NEGATIVE_INFINITY, Integer.MIN_VALUE),
255 Arguments.of(Double.NaN, null),
256 Arguments.of(null, null)
257 );
258 }
259}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/real/RealTermEvaluateTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/real/RealTermEvaluateTest.java
new file mode 100644
index 00000000..6a8eebf1
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/real/RealTermEvaluateTest.java
@@ -0,0 +1,238 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.real;
7
8import org.hamcrest.Matcher;
9import org.junit.jupiter.params.ParameterizedTest;
10import org.junit.jupiter.params.provider.CsvSource;
11import tools.refinery.store.query.term.int_.IntTerms;
12import tools.refinery.store.query.valuation.Valuation;
13
14import static org.hamcrest.MatcherAssert.assertThat;
15import static org.hamcrest.Matchers.*;
16
17class RealTermEvaluateTest {
18 public static final double TOLERANCE = 1e-6;
19
20 private static Matcher<Double> closeToOrNull(Double expected) {
21 return expected == null ? nullValue(Double.class) : closeTo(expected, TOLERANCE);
22 }
23
24 @ParameterizedTest(name = "+{0} == {1}")
25 @CsvSource(value = {
26 "2.5, 2.5",
27 "null, null"
28 }, nullValues = "null")
29 void plusTest(Double a, Double result) {
30 var term = RealTerms.plus(RealTerms.constant(a));
31 assertThat(term.getType(), is(Double.class));
32 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
33 }
34
35 @ParameterizedTest(name = "-{0} == {1}")
36 @CsvSource(value = {
37 "2.5, -2.5",
38 "null, null"
39 }, nullValues = "null")
40 void minusTest(Double a, Double result) {
41 var term = RealTerms.minus(RealTerms.constant(a));
42 assertThat(term.getType(), is(Double.class));
43 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
44 }
45
46 @ParameterizedTest(name = "{0} + {1} == {2}")
47 @CsvSource(value = {
48 "1.2, 2.3, 3.5",
49 "null, 2.3, null",
50 "1.2, null, null",
51 "null, null, null"
52 }, nullValues = "null")
53 void addTest(Double a, Double b, Double result) {
54 var term = RealTerms.add(RealTerms.constant(a), RealTerms.constant(b));
55 assertThat(term.getType(), is(Double.class));
56 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
57 }
58
59 @ParameterizedTest(name = "{0} - {1} == {2}")
60 @CsvSource(value = {
61 "1.2, 3.4, -2.2",
62 "null, 3.4, null",
63 "1.2, null, null",
64 "null, null, null"
65 }, nullValues = "null")
66 void subTest(Double a, Double b, Double result) {
67 var term = RealTerms.sub(RealTerms.constant(a), RealTerms.constant(b));
68 assertThat(term.getType(), is(Double.class));
69 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
70 }
71
72 @ParameterizedTest(name = "{0} * {1} == {2}")
73 @CsvSource(value = {
74 "2.3, 3.4, 7.82",
75 "null, 3.4, null",
76 "2.3, null, null",
77 "null, null, null"
78 }, nullValues = "null")
79 void mulTest(Double a, Double b, Double result) {
80 var term = RealTerms.mul(RealTerms.constant(a), RealTerms.constant(b));
81 assertThat(term.getType(), is(Double.class));
82 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
83 }
84
85 @ParameterizedTest(name = "{0} * {1} == {2}")
86 @CsvSource(value = {
87 "7.82, 3.4, 2.3",
88 "null, 3.4, null",
89 "7.82, null, null",
90 "null, null, null"
91 }, nullValues = "null")
92 void divTest(Double a, Double b, Double result) {
93 var term = RealTerms.div(RealTerms.constant(a), RealTerms.constant(b));
94 assertThat(term.getType(), is(Double.class));
95 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
96 }
97
98 @ParameterizedTest(name = "{0} ** {1} == {2}")
99 @CsvSource(value = {
100 "2.0, 6.0, 64.0",
101 "null, 6.0, null",
102 "2.0, null, null",
103 "null, null, null"
104 }, nullValues = "null")
105 void powTest(Double a, Double b, Double result) {
106 var term = RealTerms.pow(RealTerms.constant(a), RealTerms.constant(b));
107 assertThat(term.getType(), is(Double.class));
108 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
109 }
110
111 @ParameterizedTest(name = "min({0}, {1}) == {2}")
112 @CsvSource(value = {
113 "1.5, 2.7, 1.5",
114 "2.7, 1.5, 1.5",
115 "null, 2.7, null",
116 "1.5, null, null",
117 "null, null, null"
118 }, nullValues = "null")
119 void minTest(Double a, Double b, Double result) {
120 var term = RealTerms.min(RealTerms.constant(a), RealTerms.constant(b));
121 assertThat(term.getType(), is(Double.class));
122 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
123 }
124
125 @ParameterizedTest(name = "max({0}, {1}) == {2}")
126 @CsvSource(value = {
127 "1.5, 2.7, 2.7",
128 "2.7, 1.7, 2.7",
129 "null, 2.7, null",
130 "1.5, null, null",
131 "null, null, null"
132 }, nullValues = "null")
133 void maxTest(Double a, Double b, Double result) {
134 var term = RealTerms.max(RealTerms.constant(a), RealTerms.constant(b));
135 assertThat(term.getType(), is(Double.class));
136 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
137 }
138
139 @ParameterizedTest(name = "({0} == {1}) == {2}")
140 @CsvSource(value = {
141 "1.5, 1.5, true",
142 "1.5, 2.7, false",
143 "null, 1.5, null",
144 "1.5, null, null",
145 "null, null, null"
146 }, nullValues = "null")
147 void eqTest(Double a, Double b, Boolean result) {
148 var term = RealTerms.eq(RealTerms.constant(a), RealTerms.constant(b));
149 assertThat(term.getType(), is(Boolean.class));
150 assertThat(term.evaluate(Valuation.empty()), is(result));
151 }
152
153 @ParameterizedTest(name = "({0} != {1}) == {2}")
154 @CsvSource(value = {
155 "1.5, 1.5, false",
156 "1.5, 2.7, true",
157 "null, 1.5, null",
158 "1.5, null, null",
159 "null, null, null"
160 }, nullValues = "null")
161 void notEqTest(Double a, Double b, Boolean result) {
162 var term = RealTerms.notEq(RealTerms.constant(a), RealTerms.constant(b));
163 assertThat(term.getType(), is(Boolean.class));
164 assertThat(term.evaluate(Valuation.empty()), is(result));
165 }
166
167 @ParameterizedTest(name = "({0} < {1}) == {2}")
168 @CsvSource(value = {
169 "1.5, -2.7, false",
170 "1.5, 1.5, false",
171 "1.5, 2.7, true",
172 "null, 1.5, null",
173 "1.5, null, null",
174 "null, null, null"
175 }, nullValues = "null")
176 void lessTest(Double a, Double b, Boolean result) {
177 var term = RealTerms.less(RealTerms.constant(a), RealTerms.constant(b));
178 assertThat(term.getType(), is(Boolean.class));
179 assertThat(term.evaluate(Valuation.empty()), is(result));
180 }
181
182 @ParameterizedTest(name = "({0} <= {1}) == {2}")
183 @CsvSource(value = {
184 "1.5, -2.7, false",
185 "1.5, 1.5, true",
186 "1.5, 2.7, true",
187 "null, 1.5, null",
188 "1.5, null, null",
189 "null, null, null"
190 }, nullValues = "null")
191 void lessEqTest(Double a, Double b, Boolean result) {
192 var term = RealTerms.lessEq(RealTerms.constant(a), RealTerms.constant(b));
193 assertThat(term.getType(), is(Boolean.class));
194 assertThat(term.evaluate(Valuation.empty()), is(result));
195 }
196
197 @ParameterizedTest(name = "({0} > {1}) == {2}")
198 @CsvSource(value = {
199 "1.5, -2.7, true",
200 "1.5, 1.5, false",
201 "1.5, 2.7, false",
202 "null, 1.5, null",
203 "1.5, null, null",
204 "null, null, null"
205 }, nullValues = "null")
206 void greaterTest(Double a, Double b, Boolean result) {
207 var term = RealTerms.greater(RealTerms.constant(a), RealTerms.constant(b));
208 assertThat(term.getType(), is(Boolean.class));
209 assertThat(term.evaluate(Valuation.empty()), is(result));
210 }
211
212 @ParameterizedTest(name = "({0} >= {1}) == {2}")
213 @CsvSource(value = {
214 "1.5, -2.7, true",
215 "1.5, 1.5, true",
216 "1.5, 2.7, false",
217 "null, 1.5, null",
218 "1.5, null, null",
219 "null, null, null"
220 }, nullValues = "null")
221 void greaterEqTest(Double a, Double b, Boolean result) {
222 var term = RealTerms.greaterEq(RealTerms.constant(a), RealTerms.constant(b));
223 assertThat(term.getType(), is(Boolean.class));
224 assertThat(term.evaluate(Valuation.empty()), is(result));
225 }
226
227 @ParameterizedTest(name = "{0} as real == {1}")
228 @CsvSource(value = {
229 "0, 0.0",
230 "5, 5.0",
231 "null, null"
232 }, nullValues = "null")
233 void asRealTest(Integer a, Double result) {
234 var term = RealTerms.asReal(IntTerms.constant(a));
235 assertThat(term.getType(), is(Double.class));
236 assertThat(term.evaluate(Valuation.empty()), closeToOrNull(result));
237 }
238}
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperatorStreamTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java
index c529117e..31baf36e 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/internal/cardinality/UpperCardinalitySumAggregationOperatorStreamTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java
@@ -1,4 +1,9 @@
1package tools.refinery.store.query.viatra.internal.cardinality; 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
2 7
3import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
4import org.junit.jupiter.params.provider.Arguments; 9import org.junit.jupiter.params.provider.Arguments;
@@ -10,14 +15,14 @@ import java.util.List;
10import java.util.stream.Stream; 15import java.util.stream.Stream;
11 16
12import static org.hamcrest.MatcherAssert.assertThat; 17import static org.hamcrest.MatcherAssert.assertThat;
13import static org.hamcrest.Matchers.equalTo; 18import static org.hamcrest.Matchers.is;
14 19
15class UpperCardinalitySumAggregationOperatorStreamTest { 20class UpperCardinalitySumAggregatorStreamTest {
16 @ParameterizedTest 21 @ParameterizedTest
17 @MethodSource 22 @MethodSource
18 void testStream(List<UpperCardinality> list, UpperCardinality expected) { 23 void testStream(List<UpperCardinality> list, UpperCardinality expected) {
19 var result = UpperCardinalitySumAggregationOperator.INSTANCE.aggregateStream(list.stream()); 24 var result = UpperCardinalitySumAggregator.INSTANCE.aggregateStream(list.stream());
20 assertThat(result, equalTo(expected)); 25 assertThat(result, is(expected));
21 } 26 }
22 27
23 static Stream<Arguments> testStream() { 28 static Stream<Arguments> testStream() {
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorTest.java
new file mode 100644
index 00000000..780cd0ab
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorTest.java
@@ -0,0 +1,80 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import org.junit.jupiter.api.BeforeEach;
9import org.junit.jupiter.api.Test;
10import tools.refinery.store.query.term.StatefulAggregate;
11import tools.refinery.store.representation.cardinality.UpperCardinalities;
12import tools.refinery.store.representation.cardinality.UpperCardinality;
13
14import static org.hamcrest.MatcherAssert.assertThat;
15import static org.hamcrest.Matchers.is;
16
17class UpperCardinalitySumAggregatorTest {
18 private StatefulAggregate<UpperCardinality, UpperCardinality> accumulator;
19
20 @BeforeEach
21 void beforeEach() {
22 accumulator = UpperCardinalitySumAggregator.INSTANCE.createEmptyAggregate();
23 }
24
25 @Test
26 void emptyAggregationTest() {
27 assertThat(accumulator.getResult(), is(UpperCardinality.of(0)));
28 }
29
30 @Test
31 void singleBoundedTest() {
32 accumulator.add(UpperCardinality.of(3));
33 assertThat(accumulator.getResult(), is(UpperCardinality.of(3)));
34 }
35
36 @Test
37 void multipleBoundedTest() {
38 accumulator.add(UpperCardinality.of(2));
39 accumulator.add(UpperCardinality.of(3));
40 assertThat(accumulator.getResult(), is(UpperCardinality.of(5)));
41 }
42
43 @Test
44 void singleUnboundedTest() {
45 accumulator.add(UpperCardinalities.UNBOUNDED);
46 assertThat(accumulator.getResult(), is(UpperCardinalities.UNBOUNDED));
47 }
48
49 @Test
50 void multipleUnboundedTest() {
51 accumulator.add(UpperCardinalities.UNBOUNDED);
52 accumulator.add(UpperCardinalities.UNBOUNDED);
53 assertThat(accumulator.getResult(), is(UpperCardinalities.UNBOUNDED));
54 }
55
56 @Test
57 void removeBoundedTest() {
58 accumulator.add(UpperCardinality.of(2));
59 accumulator.add(UpperCardinality.of(3));
60 accumulator.remove(UpperCardinality.of(2));
61 assertThat(accumulator.getResult(), is(UpperCardinality.of(3)));
62 }
63
64 @Test
65 void removeAllUnboundedTest() {
66 accumulator.add(UpperCardinalities.UNBOUNDED);
67 accumulator.add(UpperCardinality.of(3));
68 accumulator.remove(UpperCardinalities.UNBOUNDED);
69 assertThat(accumulator.getResult(), is(UpperCardinality.of(3)));
70 }
71
72 @Test
73 void removeSomeUnboundedTest() {
74 accumulator.add(UpperCardinalities.UNBOUNDED);
75 accumulator.add(UpperCardinalities.UNBOUNDED);
76 accumulator.add(UpperCardinality.of(3));
77 accumulator.remove(UpperCardinalities.UNBOUNDED);
78 assertThat(accumulator.getResult(), is(UpperCardinalities.UNBOUNDED));
79 }
80}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java
new file mode 100644
index 00000000..9d0f3bde
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java
@@ -0,0 +1,104 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.term.uppercardinality;
7
8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.query.valuation.Valuation;
12import tools.refinery.store.representation.cardinality.UpperCardinalities;
13import tools.refinery.store.representation.cardinality.UpperCardinality;
14
15import java.util.stream.Stream;
16
17import static org.hamcrest.MatcherAssert.assertThat;
18import static org.hamcrest.Matchers.is;
19
20class UpperCardinalityTermsEvaluateTest {
21 @ParameterizedTest(name = "min({0}, {1}) == {2}")
22 @MethodSource
23 void minTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
24 var term = UpperCardinalityTerms.min(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b));
25 assertThat(term.getType(), is(UpperCardinality.class));
26 assertThat(term.evaluate(Valuation.empty()), is(expected));
27 }
28
29 static Stream<Arguments> minTest() {
30 return Stream.of(
31 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(0), UpperCardinality.of(0)),
32 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(1), UpperCardinality.of(0)),
33 Arguments.of(UpperCardinality.of(1), UpperCardinality.of(0), UpperCardinality.of(0)),
34 Arguments.of(UpperCardinality.of(0), UpperCardinalities.UNBOUNDED, UpperCardinality.of(0)),
35 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(0), UpperCardinality.of(0)),
36 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
37 Arguments.of(UpperCardinality.of(1), null, null),
38 Arguments.of(null, UpperCardinality.of(1), null),
39 Arguments.of(null, null, null)
40 );
41 }
42
43 @ParameterizedTest(name = "max({0}, {1}) == {2}")
44 @MethodSource
45 void maxTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
46 var term = UpperCardinalityTerms.max(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b));
47 assertThat(term.getType(), is(UpperCardinality.class));
48 assertThat(term.evaluate(Valuation.empty()), is(expected));
49 }
50
51 static Stream<Arguments> maxTest() {
52 return Stream.of(
53 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(0), UpperCardinality.of(0)),
54 Arguments.of(UpperCardinality.of(0), UpperCardinality.of(1), UpperCardinality.of(1)),
55 Arguments.of(UpperCardinality.of(1), UpperCardinality.of(0), UpperCardinality.of(1)),
56 Arguments.of(UpperCardinality.of(0), UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
57 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(0), UpperCardinalities.UNBOUNDED),
58 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
59 Arguments.of(UpperCardinality.of(1), null, null),
60 Arguments.of(null, UpperCardinality.of(1), null),
61 Arguments.of(null, null, null)
62 );
63 }
64
65 @ParameterizedTest(name = "{0} + {1} == {2}")
66 @MethodSource
67 void addTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
68 var term = UpperCardinalityTerms.add(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b));
69 assertThat(term.getType(), is(UpperCardinality.class));
70 assertThat(term.evaluate(Valuation.empty()), is(expected));
71 }
72
73 static Stream<Arguments> addTest() {
74 return Stream.of(
75 Arguments.of(UpperCardinality.of(2), UpperCardinality.of(3), UpperCardinality.of(5)),
76 Arguments.of(UpperCardinality.of(2), UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
77 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(2), UpperCardinalities.UNBOUNDED),
78 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
79 Arguments.of(UpperCardinality.of(1), null, null),
80 Arguments.of(null, UpperCardinality.of(1), null),
81 Arguments.of(null, null, null)
82 );
83 }
84
85 @ParameterizedTest(name = "{0} * {1} == {2}")
86 @MethodSource
87 void mulTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
88 var term = UpperCardinalityTerms.mul(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b));
89 assertThat(term.getType(), is(UpperCardinality.class));
90 assertThat(term.evaluate(Valuation.empty()), is(expected));
91 }
92
93 static Stream<Arguments> mulTest() {
94 return Stream.of(
95 Arguments.of(UpperCardinality.of(2), UpperCardinality.of(3), UpperCardinality.of(6)),
96 Arguments.of(UpperCardinality.of(2), UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
97 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinality.of(2), UpperCardinalities.UNBOUNDED),
98 Arguments.of(UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED, UpperCardinalities.UNBOUNDED),
99 Arguments.of(UpperCardinality.of(1), null, null),
100 Arguments.of(null, UpperCardinality.of(1), null),
101 Arguments.of(null, null, null)
102 );
103 }
104}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java
new file mode 100644
index 00000000..d447e99c
--- /dev/null
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java
@@ -0,0 +1,159 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.tests;
7
8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.dnf.Dnf;
10import tools.refinery.store.query.dnf.SymbolicParameter;
11import tools.refinery.store.query.term.NodeVariable;
12import tools.refinery.store.query.term.ParameterDirection;
13import tools.refinery.store.query.term.Variable;
14import tools.refinery.store.query.view.AnySymbolView;
15import tools.refinery.store.query.view.KeyOnlyView;
16import tools.refinery.store.representation.Symbol;
17
18import java.util.List;
19
20import static org.hamcrest.CoreMatchers.containsString;
21import static org.hamcrest.MatcherAssert.assertThat;
22import static org.hamcrest.Matchers.allOf;
23import static org.junit.jupiter.api.Assertions.assertThrows;
24import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
25
26class StructurallyEqualToRawTest {
27 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
28 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
29 private static final AnySymbolView personView = new KeyOnlyView<>(person);
30 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
31 private static final NodeVariable p = Variable.of("p");
32 private static final NodeVariable q = Variable.of("q");
33
34 @Test
35 void flatEqualsTest() {
36 var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build();
37
38 assertThat(actual, structurallyEqualTo(
39 List.of(new SymbolicParameter(q, ParameterDirection.OUT)),
40 List.of(List.of(personView.call(q)))
41 ));
42 }
43
44 @Test
45 void flatNotEqualsTest() {
46 var actual = Dnf.builder("Actual").parameters(p).clause(friendView.call(p, q)).build();
47
48 var assertion = structurallyEqualTo(
49 List.of(new SymbolicParameter(q, ParameterDirection.OUT)),
50 List.of(List.of(friendView.call(q, q)))
51 );
52 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
53 }
54
55 @Test
56 void deepEqualsTest() {
57 var actual = Dnf.builder("Actual").parameters(q).clause(
58 Dnf.builder("Actual2").parameters(p).clause(personView.call(p)).build().call(q)
59 ).build();
60
61 assertThat(actual, structurallyEqualTo(
62 List.of(new SymbolicParameter(q, ParameterDirection.OUT)),
63 List.of(
64 List.of(
65 Dnf.builder("Expected2").parameters(p).clause(personView.call(p)).build().call(q)
66 )
67 )
68 ));
69 }
70
71 @Test
72 void deepNotEqualsTest() {
73 var actual = Dnf.builder("Actual").parameter(q).clause(
74 Dnf.builder("Actual2").parameters(p).clause(friendView.call(p, q)).build().call(q)
75 ).build();
76
77 var assertion = structurallyEqualTo(
78 List.of(new SymbolicParameter(q, ParameterDirection.OUT)),
79 List.of(
80 List.of(
81 Dnf.builder("Expected2")
82 .parameters(p)
83 .clause(friendView.call(p, p))
84 .build()
85 .call(q)
86 )
87 )
88 );
89 var error = assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
90 assertThat(error.getMessage(), allOf(containsString("Expected2"), containsString("Actual2")));
91 }
92
93 @Test
94 void parameterListLengthMismatchTest() {
95 var actual = Dnf.builder("Actual").parameters(p, q).clause(
96 friendView.call(p, q)
97 ).build();
98
99 var assertion = structurallyEqualTo(
100 List.of(new SymbolicParameter(p, ParameterDirection.OUT)),
101 List.of(List.of(friendView.call(p, p)))
102 );
103
104 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
105 }
106
107 @Test
108 void parameterDirectionMismatchTest() {
109 var actual = Dnf.builder("Actual").parameter(p, ParameterDirection.IN).clause(
110 personView.call(p)
111 ).build();
112
113 var assertion = structurallyEqualTo(
114 List.of(new SymbolicParameter(p, ParameterDirection.OUT)),
115 List.of(List.of(personView.call(p)))
116 );
117
118 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
119 }
120
121 @Test
122 void clauseCountMismatchTest() {
123 var actual = Dnf.builder("Actual").parameters(p, q).clause(
124 friendView.call(p, q)
125 ).build();
126
127 var assertion = structurallyEqualTo(
128 List.of(
129 new SymbolicParameter(p, ParameterDirection.OUT),
130 new SymbolicParameter(q, ParameterDirection.OUT)
131 ),
132 List.of(
133 List.of(friendView.call(p, q)),
134 List.of(friendView.call(q, p))
135 )
136 );
137
138 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
139 }
140
141 @Test
142 void literalCountMismatchTest() {
143 var actual = Dnf.builder("Actual").parameters(p, q).clause(
144 friendView.call(p, q)
145 ).build();
146
147 var assertion = structurallyEqualTo(
148 List.of(
149 new SymbolicParameter(p, ParameterDirection.OUT),
150 new SymbolicParameter(q, ParameterDirection.OUT)
151 ),
152 List.of(
153 List.of(friendView.call(p, q), friendView.call(q, p))
154 )
155 );
156
157 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
158 }
159}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java b/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java
index a61e2b65..f716b805 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java
+++ b/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java
@@ -1,9 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.tests; 6package tools.refinery.store.query.tests;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
4import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.store.query.dnf.Dnf;
10import tools.refinery.store.query.term.NodeVariable;
11import tools.refinery.store.query.term.ParameterDirection;
5import tools.refinery.store.query.term.Variable; 12import tools.refinery.store.query.term.Variable;
6import tools.refinery.store.query.view.KeyOnlyRelationView; 13import tools.refinery.store.query.view.AnySymbolView;
14import tools.refinery.store.query.view.KeyOnlyView;
7import tools.refinery.store.representation.Symbol; 15import tools.refinery.store.representation.Symbol;
8 16
9import static org.hamcrest.CoreMatchers.containsString; 17import static org.hamcrest.CoreMatchers.containsString;
@@ -12,13 +20,15 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
12import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 20import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo;
13 21
14class StructurallyEqualToTest { 22class StructurallyEqualToTest {
23 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
24 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
25 private static final AnySymbolView personView = new KeyOnlyView<>(person);
26 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
27 private static final NodeVariable p = Variable.of("p");
28 private static final NodeVariable q = Variable.of("q");
29
15 @Test 30 @Test
16 void flatEqualsTest() { 31 void flatEqualsTest() {
17 var p = Variable.of("p");
18 var q = Variable.of("q");
19 var person = new Symbol<>("Person", 1, Boolean.class, false);
20 var personView = new KeyOnlyRelationView<>(person);
21
22 var expected = Dnf.builder("Expected").parameters(q).clause(personView.call(q)).build(); 32 var expected = Dnf.builder("Expected").parameters(q).clause(personView.call(q)).build();
23 var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build(); 33 var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(p)).build();
24 34
@@ -27,13 +37,8 @@ class StructurallyEqualToTest {
27 37
28 @Test 38 @Test
29 void flatNotEqualsTest() { 39 void flatNotEqualsTest() {
30 var p = Variable.of("p"); 40 var expected = Dnf.builder("Expected").parameters(q).clause(friendView.call(q, q)).build();
31 var q = Variable.of("q"); 41 var actual = Dnf.builder("Actual").parameters(p).clause(friendView.call(p, q)).build();
32 var person = new Symbol<>("Person", 1, Boolean.class, false);
33 var personView = new KeyOnlyRelationView<>(person);
34
35 var expected = Dnf.builder("Expected").parameters(q).clause(personView.call(q)).build();
36 var actual = Dnf.builder("Actual").parameters(p).clause(personView.call(q)).build();
37 42
38 var assertion = structurallyEqualTo(expected); 43 var assertion = structurallyEqualTo(expected);
39 assertThrows(AssertionError.class, () -> assertThat(actual, assertion)); 44 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
@@ -41,11 +46,6 @@ class StructurallyEqualToTest {
41 46
42 @Test 47 @Test
43 void deepEqualsTest() { 48 void deepEqualsTest() {
44 var p = Variable.of("p");
45 var q = Variable.of("q");
46 var person = new Symbol<>("Person", 1, Boolean.class, false);
47 var personView = new KeyOnlyRelationView<>(person);
48
49 var expected = Dnf.builder("Expected").parameters(q).clause( 49 var expected = Dnf.builder("Expected").parameters(q).clause(
50 Dnf.builder("Expected2").parameters(p).clause(personView.call(p)).build().call(q) 50 Dnf.builder("Expected2").parameters(p).clause(personView.call(p)).build().call(q)
51 ).build(); 51 ).build();
@@ -58,20 +58,70 @@ class StructurallyEqualToTest {
58 58
59 @Test 59 @Test
60 void deepNotEqualsTest() { 60 void deepNotEqualsTest() {
61 var p = Variable.of("p");
62 var q = Variable.of("q");
63 var person = new Symbol<>("Person", 1, Boolean.class, false);
64 var personView = new KeyOnlyRelationView<>(person);
65
66 var expected = Dnf.builder("Expected").parameters(q).clause( 61 var expected = Dnf.builder("Expected").parameters(q).clause(
67 Dnf.builder("Expected2").parameters(p).clause(personView.call(p)).build().call(q) 62 Dnf.builder("Expected2").parameters(p).clause(friendView.call(p, p)).build().call(q)
68 ).build(); 63 ).build();
69 var actual = Dnf.builder("Actual").parameters(q).clause( 64 var actual = Dnf.builder("Actual").parameter(q).clause(
70 Dnf.builder("Actual2").parameters(p).clause(personView.call(q)).build().call(q) 65 Dnf.builder("Actual2").parameters(p).clause(friendView.call(p, q)).build().call(q)
71 ).build(); 66 ).build();
72 67
73 var assertion = structurallyEqualTo(expected); 68 var assertion = structurallyEqualTo(expected);
74 var error = assertThrows(AssertionError.class, () -> assertThat(actual, assertion)); 69 var error = assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
75 assertThat(error.getMessage(), containsString(" called from Expected/1 ")); 70 assertThat(error.getMessage(), containsString(" called from Expected/1 "));
76 } 71 }
72
73 @Test
74 void parameterListLengthMismatchTest() {
75 var expected = Dnf.builder("Expected").parameter(p).clause(
76 friendView.call(p, p)
77 ).build();
78 var actual = Dnf.builder("Actual").parameters(p, q).clause(
79 friendView.call(p, q)
80 ).build();
81
82 var assertion = structurallyEqualTo(expected);
83 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
84 }
85
86 @Test
87 void parameterDirectionMismatchTest() {
88 var expected = Dnf.builder("Expected").parameter(p, ParameterDirection.OUT).clause(
89 personView.call(p)
90 ).build();
91 var actual = Dnf.builder("Actual").parameter(p, ParameterDirection.IN).clause(
92 personView.call(p)
93 ).build();
94
95 var assertion = structurallyEqualTo(expected);
96 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
97 }
98
99 @Test
100 void clauseCountMismatchTest() {
101 var expected = Dnf.builder("Expected")
102 .parameters(p, q)
103 .clause(friendView.call(p, q))
104 .clause(friendView.call(q, p))
105 .build();
106 var actual = Dnf.builder("Actual").parameters(p, q).clause(
107 friendView.call(p, q)
108 ).build();
109
110 var assertion = structurallyEqualTo(expected);
111 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
112 }
113
114 @Test
115 void literalCountMismatchTest() {
116 var expected = Dnf.builder("Expected").parameters(p, q).clause(
117 friendView.call(p, q),
118 friendView.call(q, p)
119 ).build();
120 var actual = Dnf.builder("Actual").parameters(p, q).clause(
121 friendView.call(p, q)
122 ).build();
123
124 var assertion = structurallyEqualTo(expected);
125 assertThrows(AssertionError.class, () -> assertThat(actual, assertion));
126 }
77} 127}
diff --git a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/MismatchDescribingDnfEqualityChecker.java b/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/MismatchDescribingDnfEqualityChecker.java
index 685957c9..6a3301b3 100644
--- a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/MismatchDescribingDnfEqualityChecker.java
+++ b/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/MismatchDescribingDnfEqualityChecker.java
@@ -1,27 +1,52 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.tests; 6package tools.refinery.store.query.tests;
2 7
3import org.hamcrest.Description; 8import org.hamcrest.Description;
9import tools.refinery.store.query.dnf.Dnf;
10import tools.refinery.store.query.dnf.SymbolicParameter;
4import tools.refinery.store.query.equality.DeepDnfEqualityChecker; 11import tools.refinery.store.query.equality.DeepDnfEqualityChecker;
12import tools.refinery.store.query.literal.Literal;
13
14import java.util.List;
5 15
6class MismatchDescribingDnfEqualityChecker extends DeepDnfEqualityChecker { 16class MismatchDescribingDnfEqualityChecker extends DeepDnfEqualityChecker {
7 private final Description description; 17 private final Description description;
8 private boolean described; 18 private boolean raw;
19 private boolean needsDescription = true;
9 20
10 MismatchDescribingDnfEqualityChecker(Description description) { 21 MismatchDescribingDnfEqualityChecker(Description description) {
11 this.description = description; 22 this.description = description;
12 } 23 }
13 24
14 public boolean isDescribed() { 25 public boolean needsDescription() {
15 return described; 26 return needsDescription;
27 }
28
29 @Override
30 public boolean dnfEqualRaw(List<SymbolicParameter> symbolicParameters, List<? extends List<? extends Literal>> clauses, Dnf other) {
31 try {
32 raw = true;
33 boolean result = super.dnfEqualRaw(symbolicParameters, clauses, other);
34 if (!result && needsDescription) {
35 description.appendText("was ").appendText(other.toDefinitionString());
36 }
37 return false;
38 } finally {
39 raw = false;
40 }
16 } 41 }
17 42
18 @Override 43 @Override
19 protected boolean doCheckEqual(Pair pair) { 44 protected boolean doCheckEqual(Pair pair) {
20 boolean result = super.doCheckEqual(pair); 45 boolean result = super.doCheckEqual(pair);
21 if (!result && !described) { 46 if (!result && needsDescription) {
22 describeMismatch(pair); 47 describeMismatch(pair);
23 // Only describe the first found (innermost) mismatch. 48 // Only describe the first found (innermost) mismatch.
24 described = true; 49 needsDescription = false;
25 } 50 }
26 return result; 51 return result;
27 } 52 }
@@ -29,12 +54,12 @@ class MismatchDescribingDnfEqualityChecker extends DeepDnfEqualityChecker {
29 private void describeMismatch(Pair pair) { 54 private void describeMismatch(Pair pair) {
30 var inProgress = getInProgress(); 55 var inProgress = getInProgress();
31 int size = inProgress.size(); 56 int size = inProgress.size();
32 if (size <= 1) { 57 if (size <= 1 && !raw) {
33 description.appendText("was ").appendText(pair.left().toDefinitionString()); 58 description.appendText("was ").appendText(pair.right().toDefinitionString());
34 return; 59 return;
35 } 60 }
36 var last = inProgress.get(size - 1); 61 var last = inProgress.get(size - 1);
37 description.appendText("expected ").appendText(last.right().toDefinitionString()); 62 description.appendText("expected ").appendText(last.left().toDefinitionString());
38 for (int i = size - 2; i >= 0; i--) { 63 for (int i = size - 2; i >= 0; i--) {
39 description.appendText(" called from ").appendText(inProgress.get(i).left().toString()); 64 description.appendText(" called from ").appendText(inProgress.get(i).left().toString());
40 } 65 }
diff --git a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/QueryMatchers.java b/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/QueryMatchers.java
index bf1c1b74..cd449a6a 100644
--- a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/QueryMatchers.java
+++ b/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/QueryMatchers.java
@@ -1,14 +1,46 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.tests; 6package tools.refinery.store.query.tests;
2 7
3import org.hamcrest.Matcher; 8import org.hamcrest.Matcher;
4import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.store.query.dnf.Dnf;
10import tools.refinery.store.query.dnf.SymbolicParameter;
11import tools.refinery.store.query.literal.Literal;
12
13import java.util.List;
5 14
6public final class QueryMatchers { 15public final class QueryMatchers {
7 private QueryMatchers() { 16 private QueryMatchers() {
8 throw new IllegalStateException("This is a static utility class and should not be instantiated directly"); 17 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
9 } 18 }
10 19
20 /**
21 * Compare two {@link Dnf} instances up to renaming of variables.
22 *
23 * @param expected The expected {@link Dnf} instance.
24 * @return A Hamcrest matcher for equality up to renaming of variables.
25 */
11 public static Matcher<Dnf> structurallyEqualTo(Dnf expected) { 26 public static Matcher<Dnf> structurallyEqualTo(Dnf expected) {
12 return new StructurallyEqualTo(expected); 27 return new StructurallyEqualTo(expected);
13 } 28 }
29
30 /**
31 * Compare a {@link Dnf} instance to another predicate in DNF form without constructing it.
32 * <p>
33 * This matcher should be used instead of {@link #structurallyEqualTo(Dnf)} when the validation and
34 * pre-processing associated with the {@link Dnf} constructor, i.e., validation of parameter directions,
35 * topological sorting of literals, and the reduction of trivial predicates is not desired. In particular, this
36 * matcher can be used to test for exact order of literal after pre-processing.
37 *
38 * @param expectedSymbolicParameters The expected list of symbolic parameters.
39 * @param expectedLiterals The expected clauses. Each clause is represented by a list of literals.
40 * @return A Hamcrest matcher for equality up to renaming of variables.
41 */
42 public static Matcher<Dnf> structurallyEqualTo(List<SymbolicParameter> expectedSymbolicParameters,
43 List<? extends List<? extends Literal>> expectedLiterals) {
44 return new StructurallyEqualToRaw(expectedSymbolicParameters, expectedLiterals);
45 }
14} 46}
diff --git a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualTo.java b/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualTo.java
index a9a78f88..86149141 100644
--- a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualTo.java
+++ b/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualTo.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.query.tests; 6package tools.refinery.store.query.tests;
2 7
3import org.hamcrest.Description; 8import org.hamcrest.Description;
@@ -24,7 +29,7 @@ public class StructurallyEqualTo extends TypeSafeMatcher<Dnf> {
24 if (describingChecker.dnfEqual(expected, item)) { 29 if (describingChecker.dnfEqual(expected, item)) {
25 throw new IllegalStateException("Mismatched Dnf was matching on repeated comparison"); 30 throw new IllegalStateException("Mismatched Dnf was matching on repeated comparison");
26 } 31 }
27 if (!describingChecker.isDescribed()) { 32 if (describingChecker.needsDescription()) {
28 super.describeMismatchSafely(item, mismatchDescription); 33 super.describeMismatchSafely(item, mismatchDescription);
29 } 34 }
30 } 35 }
diff --git a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualToRaw.java b/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualToRaw.java
new file mode 100644
index 00000000..2f8c2944
--- /dev/null
+++ b/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualToRaw.java
@@ -0,0 +1,51 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.query.tests;
7
8import org.hamcrest.Description;
9import org.hamcrest.TypeSafeMatcher;
10import tools.refinery.store.query.dnf.Dnf;
11import tools.refinery.store.query.dnf.SymbolicParameter;
12import tools.refinery.store.query.equality.DeepDnfEqualityChecker;
13import tools.refinery.store.query.literal.Literal;
14
15import java.util.List;
16
17public class StructurallyEqualToRaw extends TypeSafeMatcher<Dnf> {
18 private final List<SymbolicParameter> expectedSymbolicParameters;
19 private final List<? extends List<? extends Literal>> expectedClauses;
20
21 public StructurallyEqualToRaw(List<SymbolicParameter> expectedSymbolicParameters,
22 List<? extends List<? extends Literal>> expectedClauses) {
23 this.expectedSymbolicParameters = expectedSymbolicParameters;
24 this.expectedClauses = expectedClauses;
25 }
26
27 @Override
28 protected boolean matchesSafely(Dnf item) {
29 var checker = new DeepDnfEqualityChecker();
30 return checker.dnfEqualRaw(expectedSymbolicParameters, expectedClauses, item);
31 }
32
33 @Override
34 protected void describeMismatchSafely(Dnf item, Description mismatchDescription) {
35 var describingChecker = new MismatchDescribingDnfEqualityChecker(mismatchDescription);
36 if (describingChecker.dnfEqualRaw(expectedSymbolicParameters, expectedClauses, item)) {
37 throw new IllegalStateException("Mismatched Dnf was matching on repeated comparison");
38 }
39 if (describingChecker.needsDescription()) {
40 super.describeMismatchSafely(item, mismatchDescription);
41 }
42 }
43
44 @Override
45 public void describeTo(Description description) {
46 description.appendText("structurally equal to ")
47 .appendValueList("(", ", ", ")", expectedSymbolicParameters)
48 .appendText(" <-> ")
49 .appendValueList("", ", ", ".", expectedClauses);
50 }
51}
diff --git a/subprojects/store-reasoning/build.gradle b/subprojects/store-reasoning/build.gradle
deleted file mode 100644
index cb440d9f..00000000
--- a/subprojects/store-reasoning/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
1plugins {
2 id 'refinery-java-library'
3}
4
5dependencies {
6 api project(':refinery-store-query')
7}
diff --git a/subprojects/store-reasoning/build.gradle.kts b/subprojects/store-reasoning/build.gradle.kts
new file mode 100644
index 00000000..abad0491
--- /dev/null
+++ b/subprojects/store-reasoning/build.gradle.kts
@@ -0,0 +1,13 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 id("tools.refinery.gradle.java-library")
9}
10
11dependencies {
12 api(project(":refinery-store-query"))
13}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java
index ebe82c8b..000171a1 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning; 6package tools.refinery.store.reasoning;
2 7
3import tools.refinery.store.reasoning.representation.AnyPartialSymbol; 8import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/MergeResult.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/MergeResult.java
index 0d51598b..d3a216d8 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/MergeResult.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/MergeResult.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning; 6package tools.refinery.store.reasoning;
2 7
3public enum MergeResult { 8public enum MergeResult {
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/PartialInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/PartialInterpretation.java
index 4f195e97..4140d640 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/PartialInterpretation.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/PartialInterpretation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning; 6package tools.refinery.store.reasoning;
2 7
3import tools.refinery.store.reasoning.representation.PartialSymbol; 8import tools.refinery.store.reasoning.representation.PartialSymbol;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/Reasoning.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/Reasoning.java
deleted file mode 100644
index d7d0a999..00000000
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/Reasoning.java
+++ /dev/null
@@ -1,24 +0,0 @@
1package tools.refinery.store.reasoning;
2
3import tools.refinery.store.reasoning.internal.ReasoningBuilderImpl;
4import tools.refinery.store.adapter.ModelAdapterBuilderFactory;
5import tools.refinery.store.model.ModelStoreBuilder;
6import tools.refinery.store.reasoning.representation.PartialRelation;
7
8public final class Reasoning extends ModelAdapterBuilderFactory<ReasoningAdapter,
9 ReasoningStoreAdapter, ReasoningBuilder> {
10 public static final Reasoning ADAPTER = new Reasoning();
11
12 public static final PartialRelation EXISTS = new PartialRelation("exists", 1);
13
14 public static final PartialRelation EQUALS = new PartialRelation("equals", 1);
15
16 private Reasoning() {
17 super(ReasoningAdapter.class, ReasoningStoreAdapter.class, ReasoningBuilder.class);
18 }
19
20 @Override
21 public ReasoningBuilder createBuilder(ModelStoreBuilder storeBuilder) {
22 return new ReasoningBuilderImpl(storeBuilder);
23 }
24}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java
index de039dd9..8f319242 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java
@@ -1,12 +1,20 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning; 6package tools.refinery.store.reasoning;
2 7
3import tools.refinery.store.adapter.ModelAdapter; 8import tools.refinery.store.adapter.ModelAdapter;
9import tools.refinery.store.query.ResultSet;
10import tools.refinery.store.query.dnf.Dnf;
4import tools.refinery.store.reasoning.representation.AnyPartialSymbol; 11import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
12import tools.refinery.store.reasoning.representation.PartialRelation;
5import tools.refinery.store.reasoning.representation.PartialSymbol; 13import tools.refinery.store.reasoning.representation.PartialSymbol;
6import tools.refinery.store.query.dnf.Dnf;
7import tools.refinery.store.query.ResultSet;
8 14
9public interface ReasoningAdapter extends ModelAdapter { 15public interface ReasoningAdapter extends ModelAdapter {
16 PartialRelation EXISTS = new PartialRelation("exists", 1);
17
10 @Override 18 @Override
11 ReasoningStoreAdapter getStoreAdapter(); 19 ReasoningStoreAdapter getStoreAdapter();
12 20
@@ -18,5 +26,5 @@ public interface ReasoningAdapter extends ModelAdapter {
18 26
19 <A, C> PartialInterpretation<A, C> getPartialInterpretation(PartialSymbol<A, C> partialSymbol); 27 <A, C> PartialInterpretation<A, C> getPartialInterpretation(PartialSymbol<A, C> partialSymbol);
20 28
21 ResultSet getLiftedResultSet(Dnf query); 29 ResultSet<Boolean> getLiftedResultSet(Dnf query);
22} 30}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java
index 4030d296..d3a337e8 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning; 6package tools.refinery.store.reasoning;
2 7
3import tools.refinery.store.adapter.ModelAdapterBuilder; 8import tools.refinery.store.adapter.ModelAdapterBuilder;
@@ -24,5 +29,5 @@ public interface ReasoningBuilder extends ModelAdapterBuilder {
24 Dnf lift(Modality modality, Dnf query); 29 Dnf lift(Modality modality, Dnf query);
25 30
26 @Override 31 @Override
27 ReasoningStoreAdapter createStoreAdapter(ModelStore store); 32 ReasoningStoreAdapter build(ModelStore store);
28} 33}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningStoreAdapter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningStoreAdapter.java
index f6a6e414..c9795255 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningStoreAdapter.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningStoreAdapter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning; 6package tools.refinery.store.reasoning;
2 7
3import tools.refinery.store.adapter.ModelStoreAdapter; 8import tools.refinery.store.adapter.ModelStoreAdapter;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java
index 0acf0d49..33b6f3c6 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.internal; 6package tools.refinery.store.reasoning.internal;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
@@ -32,7 +37,7 @@ public class ReasoningAdapterImpl implements ReasoningAdapter {
32 } 37 }
33 38
34 @Override 39 @Override
35 public ResultSet getLiftedResultSet(Dnf query) { 40 public ResultSet<Boolean> getLiftedResultSet(Dnf query) {
36 return null; 41 return null;
37 } 42 }
38} 43}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java
index e11b14bf..aa71496c 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java
@@ -1,17 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.internal; 6package tools.refinery.store.reasoning.internal;
2 7
3import tools.refinery.store.adapter.AbstractModelAdapterBuilder; 8import tools.refinery.store.adapter.AbstractModelAdapterBuilder;
4import tools.refinery.store.model.ModelStore; 9import tools.refinery.store.model.ModelStore;
5import tools.refinery.store.model.ModelStoreBuilder; 10import tools.refinery.store.query.dnf.Dnf;
6import tools.refinery.store.reasoning.ReasoningBuilder; 11import tools.refinery.store.reasoning.ReasoningBuilder;
7import tools.refinery.store.reasoning.literal.Modality; 12import tools.refinery.store.reasoning.literal.Modality;
8import tools.refinery.store.query.dnf.Dnf;
9
10public class ReasoningBuilderImpl extends AbstractModelAdapterBuilder implements ReasoningBuilder {
11 public ReasoningBuilderImpl(ModelStoreBuilder storeBuilder) {
12 super(storeBuilder);
13 }
14 13
14public class ReasoningBuilderImpl extends AbstractModelAdapterBuilder<ReasoningStoreAdapterImpl>
15 implements ReasoningBuilder {
15 @Override 16 @Override
16 public ReasoningBuilder liftedQuery(Dnf liftedQuery) { 17 public ReasoningBuilder liftedQuery(Dnf liftedQuery) {
17 return null; 18 return null;
@@ -19,11 +20,12 @@ public class ReasoningBuilderImpl extends AbstractModelAdapterBuilder implements
19 20
20 @Override 21 @Override
21 public Dnf lift(Modality modality, Dnf query) { 22 public Dnf lift(Modality modality, Dnf query) {
23 checkNotConfigured();
22 return null; 24 return null;
23 } 25 }
24 26
25 @Override 27 @Override
26 public ReasoningStoreAdapterImpl createStoreAdapter(ModelStore store) { 28 public ReasoningStoreAdapterImpl doBuild(ModelStore store) {
27 return null; 29 return null;
28 } 30 }
29} 31}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java
index ac06e68b..cdddd8d6 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.internal; 6package tools.refinery.store.reasoning.internal;
2 7
3import tools.refinery.store.reasoning.ReasoningStoreAdapter; 8import tools.refinery.store.reasoning.ReasoningStoreAdapter;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java
index 2b0e0f08..ac41d170 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.lifting; 6package tools.refinery.store.reasoning.lifting;
2 7
3import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
@@ -7,16 +12,16 @@ import tools.refinery.store.query.dnf.DnfClause;
7import tools.refinery.store.query.literal.CallLiteral; 12import tools.refinery.store.query.literal.CallLiteral;
8import tools.refinery.store.query.literal.CallPolarity; 13import tools.refinery.store.query.literal.CallPolarity;
9import tools.refinery.store.query.literal.Literal; 14import tools.refinery.store.query.literal.Literal;
10import tools.refinery.store.query.term.DataVariable; 15import tools.refinery.store.query.term.NodeVariable;
11import tools.refinery.store.query.term.Variable; 16import tools.refinery.store.query.term.Variable;
12import tools.refinery.store.reasoning.Reasoning; 17import tools.refinery.store.reasoning.ReasoningAdapter;
13import tools.refinery.store.reasoning.literal.ModalConstraint; 18import tools.refinery.store.reasoning.literal.ModalConstraint;
14import tools.refinery.store.reasoning.literal.Modality; 19import tools.refinery.store.reasoning.literal.Modality;
15import tools.refinery.store.reasoning.literal.PartialLiterals; 20import tools.refinery.store.reasoning.literal.PartialLiterals;
16import tools.refinery.store.util.CycleDetectingMapper; 21import tools.refinery.store.util.CycleDetectingMapper;
17 22
18import java.util.ArrayList; 23import java.util.ArrayList;
19import java.util.HashSet; 24import java.util.LinkedHashSet;
20import java.util.List; 25import java.util.List;
21 26
22public class DnfLifter { 27public class DnfLifter {
@@ -31,10 +36,10 @@ public class DnfLifter {
31 var modality = modalDnf.modality(); 36 var modality = modalDnf.modality();
32 var dnf = modalDnf.dnf(); 37 var dnf = modalDnf.dnf();
33 var builder = Dnf.builder(); 38 var builder = Dnf.builder();
34 builder.parameters(dnf.getParameters()); 39 builder.symbolicParameters(dnf.getSymbolicParameters());
35 boolean changed = false; 40 boolean changed = false;
36 for (var clause : dnf.getClauses()) { 41 for (var clause : dnf.getClauses()) {
37 if (liftClause(modality, clause, builder)) { 42 if (liftClause(modality, dnf, clause, builder)) {
38 changed = true; 43 changed = true;
39 } 44 }
40 } 45 }
@@ -44,12 +49,9 @@ public class DnfLifter {
44 return dnf; 49 return dnf;
45 } 50 }
46 51
47 private boolean liftClause(Modality modality, DnfClause clause, DnfBuilder builder) { 52 private boolean liftClause(Modality modality, Dnf originalDnf, DnfClause clause, DnfBuilder builder) {
48 boolean changed = false; 53 boolean changed = false;
49 var quantifiedVariables = new HashSet<>(clause.boundVariables() 54 var quantifiedVariables = getQuantifiedDataVariables(originalDnf, clause);
50 .stream()
51 .filter(DataVariable.class::isInstance)
52 .toList());
53 var literals = clause.literals(); 55 var literals = clause.literals();
54 var liftedLiterals = new ArrayList<Literal>(literals.size()); 56 var liftedLiterals = new ArrayList<Literal>(literals.size());
55 for (var literal : literals) { 57 for (var literal : literals) {
@@ -69,20 +71,30 @@ public class DnfLifter {
69 } 71 }
70 for (var quantifiedVariable : quantifiedVariables) { 72 for (var quantifiedVariable : quantifiedVariables) {
71 // Quantify over data variables that are not already quantified with the expected modality. 73 // Quantify over data variables that are not already quantified with the expected modality.
72 liftedLiterals.add(new CallLiteral(CallPolarity.POSITIVE, new ModalConstraint(modality, Reasoning.EXISTS), 74 liftedLiterals.add(new CallLiteral(CallPolarity.POSITIVE,
73 List.of(quantifiedVariable))); 75 new ModalConstraint(modality, ReasoningAdapter.EXISTS), List.of(quantifiedVariable)));
74 } 76 }
75 builder.clause(liftedLiterals); 77 builder.clause(liftedLiterals);
76 return changed || !quantifiedVariables.isEmpty(); 78 return changed || !quantifiedVariables.isEmpty();
77 } 79 }
78 80
81 private static LinkedHashSet<Variable> getQuantifiedDataVariables(Dnf originalDnf, DnfClause clause) {
82 var quantifiedVariables = new LinkedHashSet<>(clause.positiveVariables());
83 for (var symbolicParameter : originalDnf.getSymbolicParameters()) {
84 // The existence of parameters will be checked outside this DNF.
85 quantifiedVariables.remove(symbolicParameter.getVariable());
86 }
87 quantifiedVariables.removeIf(variable -> !(variable instanceof NodeVariable));
88 return quantifiedVariables;
89 }
90
79 @Nullable 91 @Nullable
80 private Variable isExistsLiteralForVariable(Modality modality, Literal literal) { 92 private Variable isExistsLiteralForVariable(Modality modality, Literal literal) {
81 if (literal instanceof CallLiteral callLiteral && 93 if (literal instanceof CallLiteral callLiteral &&
82 callLiteral.getPolarity() == CallPolarity.POSITIVE && 94 callLiteral.getPolarity() == CallPolarity.POSITIVE &&
83 callLiteral.getTarget() instanceof ModalConstraint modalConstraint && 95 callLiteral.getTarget() instanceof ModalConstraint modalConstraint &&
84 modalConstraint.modality() == modality && 96 modalConstraint.modality() == modality &&
85 modalConstraint.constraint().equals(Reasoning.EXISTS)) { 97 modalConstraint.constraint().equals(ReasoningAdapter.EXISTS)) {
86 return callLiteral.getArguments().get(0); 98 return callLiteral.getArguments().get(0);
87 } 99 }
88 return null; 100 return null;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ModalDnf.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ModalDnf.java
index ec381bb8..16fb8fbf 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ModalDnf.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ModalDnf.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.lifting; 6package tools.refinery.store.reasoning.lifting;
2 7
3import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.store.query.dnf.Dnf;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java
index 2fbb4607..5ad1d5f8 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java
@@ -1,9 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
2 7
3import tools.refinery.store.query.Constraint; 8import tools.refinery.store.query.Constraint;
4import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.store.query.equality.LiteralEqualityHelper;
5import tools.refinery.store.query.literal.LiteralReduction; 10import tools.refinery.store.query.Reduction;
6import tools.refinery.store.query.term.Sort; 11import tools.refinery.store.query.term.Parameter;
7 12
8import java.util.List; 13import java.util.List;
9 14
@@ -16,12 +21,12 @@ public record ModalConstraint(Modality modality, Constraint constraint) implemen
16 } 21 }
17 22
18 @Override 23 @Override
19 public List<Sort> getSorts() { 24 public List<Parameter> getParameters() {
20 return constraint.getSorts(); 25 return constraint.getParameters();
21 } 26 }
22 27
23 @Override 28 @Override
24 public LiteralReduction getReduction() { 29 public Reduction getReduction() {
25 return constraint.getReduction(); 30 return constraint.getReduction();
26 } 31 }
27 32
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java
index f0cb59de..96466d5c 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
2 7
3import tools.refinery.store.query.literal.CallPolarity; 8import tools.refinery.store.query.literal.CallPolarity;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java
index f991f87f..0e46a795 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
2 7
3import tools.refinery.store.query.literal.CallLiteral; 8import tools.refinery.store.query.literal.CallLiteral;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialFunction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialFunction.java
index e74cd58b..8d2cb5cf 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialFunction.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialFunction.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
2 7
3public sealed interface AnyPartialFunction extends AnyPartialSymbol permits PartialFunction { 8public sealed interface AnyPartialFunction extends AnyPartialSymbol permits PartialFunction {
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java
index 6ff5031b..788eef73 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
2 7
3import tools.refinery.store.representation.AnyAbstractDomain; 8import tools.refinery.store.representation.AnyAbstractDomain;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java
index 59eeeefe..d58d026f 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
2 7
3import tools.refinery.store.representation.AbstractDomain; 8import tools.refinery.store.representation.AbstractDomain;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java
index 9bae53a9..6b2f050b 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java
@@ -1,8 +1,12 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
2 7
3import tools.refinery.store.query.Constraint; 8import tools.refinery.store.query.Constraint;
4import tools.refinery.store.query.term.NodeSort; 9import tools.refinery.store.query.term.Parameter;
5import tools.refinery.store.query.term.Sort;
6import tools.refinery.store.representation.AbstractDomain; 10import tools.refinery.store.representation.AbstractDomain;
7import tools.refinery.store.representation.TruthValue; 11import tools.refinery.store.representation.TruthValue;
8import tools.refinery.store.representation.TruthValueDomain; 12import tools.refinery.store.representation.TruthValueDomain;
@@ -27,10 +31,10 @@ public record PartialRelation(String name, int arity) implements PartialSymbol<T
27 } 31 }
28 32
29 @Override 33 @Override
30 public List<Sort> getSorts() { 34 public List<Parameter> getParameters() {
31 var sorts = new Sort[arity()]; 35 var parameters = new Parameter[arity];
32 Arrays.fill(sorts, NodeSort.INSTANCE); 36 Arrays.fill(parameters, Parameter.NODE_OUT);
33 return List.of(sorts); 37 return List.of(parameters);
34 } 38 }
35 39
36 @Override 40 @Override
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java
index 1af11f2e..3a08bdd8 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
2 7
3import tools.refinery.store.representation.AbstractDomain; 8import tools.refinery.store.representation.AbstractDomain;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RelationRefinementAction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RelationRefinementAction.java
index e8ed05a3..0beee248 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RelationRefinementAction.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RelationRefinementAction.java
@@ -1,6 +1,11 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.rule; 6package tools.refinery.store.reasoning.rule;
2 7
3import tools.refinery.store.reasoning.Reasoning; 8import tools.refinery.store.reasoning.ReasoningAdapter;
4import tools.refinery.store.reasoning.representation.PartialRelation; 9import tools.refinery.store.reasoning.representation.PartialRelation;
5import tools.refinery.store.model.Model; 10import tools.refinery.store.model.Model;
6import tools.refinery.store.query.term.Variable; 11import tools.refinery.store.query.term.Variable;
@@ -23,7 +28,7 @@ public record RelationRefinementAction(PartialRelation target, List<Variable> ar
23 28
24 @Override 29 @Override
25 public RuleActionExecutor createExecutor(int[] argumentIndices, Model model) { 30 public RuleActionExecutor createExecutor(int[] argumentIndices, Model model) {
26 var targetInterpretation = model.getAdapter(Reasoning.ADAPTER).getPartialInterpretation(target); 31 var targetInterpretation = model.getAdapter(ReasoningAdapter.class).getPartialInterpretation(target);
27 return activationTuple -> { 32 return activationTuple -> {
28 int arity = argumentIndices.length; 33 int arity = argumentIndices.length;
29 var arguments = new int[arity]; 34 var arguments = new int[arity];
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/Rule.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/Rule.java
index c7b16d47..45b0f02e 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/Rule.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/Rule.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.rule; 6package tools.refinery.store.reasoning.rule;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleAction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleAction.java
index 4753b8bc..97ea7313 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleAction.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleAction.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.rule; 6package tools.refinery.store.reasoning.rule;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java
index 80bfa6f8..5d743869 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java
@@ -1,9 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.rule; 6package tools.refinery.store.reasoning.rule;
2 7
3import tools.refinery.store.reasoning.MergeResult; 8import tools.refinery.store.reasoning.MergeResult;
4import tools.refinery.store.tuple.TupleLike; 9import tools.refinery.store.tuple.Tuple;
5 10
6@FunctionalInterface 11@FunctionalInterface
7public interface RuleActionExecutor { 12public interface RuleActionExecutor {
8 MergeResult execute(TupleLike activationTuple); 13 MergeResult execute(Tuple activationTuple);
9} 14}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java
index 1e5322b4..32cf13ea 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java
@@ -1,8 +1,13 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.rule; 6package tools.refinery.store.reasoning.rule;
2 7
3import tools.refinery.store.reasoning.MergeResult;
4import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
5import tools.refinery.store.tuple.TupleLike; 9import tools.refinery.store.reasoning.MergeResult;
10import tools.refinery.store.tuple.Tuple;
6 11
7import java.util.List; 12import java.util.List;
8 13
@@ -24,7 +29,8 @@ public final class RuleExecutor {
24 public Model getModel() { 29 public Model getModel() {
25 return model; 30 return model;
26 } 31 }
27 public MergeResult execute(TupleLike activationTuple) { 32
33 public MergeResult execute(Tuple activationTuple) {
28 MergeResult mergeResult = MergeResult.UNCHANGED; 34 MergeResult mergeResult = MergeResult.UNCHANGED;
29 for (var actionExecutor : actionExecutors) { 35 for (var actionExecutor : actionExecutors) {
30 mergeResult = mergeResult.andAlso(actionExecutor.execute(activationTuple)); 36 mergeResult = mergeResult.andAlso(actionExecutor.execute(activationTuple));
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java
index 90633495..08079f12 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.seed; 6package tools.refinery.store.reasoning.seed;
2 7
3import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/UniformSeed.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/UniformSeed.java
index a030f6ea..451d1513 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/UniformSeed.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/UniformSeed.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.seed; 6package tools.refinery.store.reasoning.seed;
2 7
3import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java
index 5cdfedf7..d6a9e02c 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java
@@ -1,10 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator; 6package tools.refinery.store.reasoning.translator;
2 7
8import tools.refinery.store.query.substitution.Substitution;
3import tools.refinery.store.reasoning.representation.AnyPartialSymbol; 9import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
4import tools.refinery.store.reasoning.representation.PartialRelation; 10import tools.refinery.store.reasoning.representation.PartialRelation;
5import tools.refinery.store.query.term.Variable; 11import tools.refinery.store.query.term.Variable;
6import tools.refinery.store.query.literal.Literal; 12import tools.refinery.store.query.literal.Literal;
7import tools.refinery.store.query.substitution.Substitutions;
8 13
9import java.util.*; 14import java.util.*;
10 15
@@ -61,14 +66,9 @@ public final class Advice {
61 public List<Literal> substitute(List<Variable> substituteParameters) { 66 public List<Literal> substitute(List<Variable> substituteParameters) {
62 checkArity(substituteParameters); 67 checkArity(substituteParameters);
63 markProcessed(); 68 markProcessed();
64 int arity = parameters.size();
65 var variableMap = new HashMap<Variable, Variable>(arity);
66 for (int i = 0; i < arity; i++) {
67 variableMap.put(parameters.get(i), substituteParameters.get(i));
68 }
69 // Use a renewing substitution to remove any non-parameter variables and avoid clashed between variables 69 // Use a renewing substitution to remove any non-parameter variables and avoid clashed between variables
70 // coming from different advice in the same clause. 70 // coming from different advice in the same clause.
71 var substitution = Substitutions.renewing(variableMap); 71 var substitution = Substitution.builder().putManyChecked(parameters, substituteParameters).renewing().build();
72 return literals.stream().map(literal -> literal.substitute(substitution)).toList(); 72 return literals.stream().map(literal -> literal.substitute(substitution)).toList();
73 } 73 }
74 74
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/AdviceSlot.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/AdviceSlot.java
index f3bd9c5e..bab20340 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/AdviceSlot.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/AdviceSlot.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator; 6package tools.refinery.store.reasoning.translator;
2 7
3import tools.refinery.store.representation.TruthValue; 8import tools.refinery.store.representation.TruthValue;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslatedRelation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslatedRelation.java
index 9bab80c9..4a5a8843 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslatedRelation.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslatedRelation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator; 6package tools.refinery.store.reasoning.translator;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java
index 24b93911..6e44a7d7 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java
@@ -1,7 +1,11 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator; 6package tools.refinery.store.reasoning.translator;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
4import tools.refinery.store.model.ModelStoreBuilder;
5import tools.refinery.store.reasoning.ReasoningBuilder; 9import tools.refinery.store.reasoning.ReasoningBuilder;
6 10
7import java.util.Collection; 11import java.util.Collection;
@@ -18,10 +22,6 @@ public abstract class TranslationUnit {
18 configureReasoningBuilder(); 22 configureReasoningBuilder();
19 } 23 }
20 24
21 protected ModelStoreBuilder getModelStoreBuilder() {
22 return reasoningBuilder.getStoreBuilder();
23 }
24
25 protected void configureReasoningBuilder() { 25 protected void configureReasoningBuilder() {
26 // Nothing to configure by default. 26 // Nothing to configure by default.
27 } 27 }
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java
index b703f142..e7b67ae4 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionInterpretation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.base; 6package tools.refinery.store.reasoning.translator.base;
2 7
3import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionTranslationUnit.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionTranslationUnit.java
index 36e2782a..a1e4b816 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionTranslationUnit.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/BaseDecisionTranslationUnit.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.base; 6package tools.refinery.store.reasoning.translator.base;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
@@ -24,7 +29,7 @@ public class BaseDecisionTranslationUnit extends TranslationUnit {
24 } 29 }
25 this.partialRelation = partialRelation; 30 this.partialRelation = partialRelation;
26 this.seed = seed; 31 this.seed = seed;
27 symbol = new Symbol<>(partialRelation.name(), partialRelation.arity(), TruthValue.class, TruthValue.UNKNOWN); 32 symbol = Symbol.of(partialRelation.name(), partialRelation.arity(), TruthValue.class, TruthValue.UNKNOWN);
28 } 33 }
29 34
30 public BaseDecisionTranslationUnit(PartialRelation partialRelation) { 35 public BaseDecisionTranslationUnit(PartialRelation partialRelation) {
@@ -32,11 +37,6 @@ public class BaseDecisionTranslationUnit extends TranslationUnit {
32 } 37 }
33 38
34 @Override 39 @Override
35 protected void configureReasoningBuilder() {
36 getModelStoreBuilder().symbol(symbol);
37 }
38
39 @Override
40 public Collection<TranslatedRelation> getTranslatedRelations() { 40 public Collection<TranslatedRelation> getTranslatedRelations() {
41 return List.of(new TranslatedBaseDecision(getReasoningBuilder(), partialRelation, symbol)); 41 return List.of(new TranslatedBaseDecision(getReasoningBuilder(), partialRelation, symbol));
42 } 42 }
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/TranslatedBaseDecision.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/TranslatedBaseDecision.java
index 2294b4fd..4782eb46 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/TranslatedBaseDecision.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/base/TranslatedBaseDecision.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.base; 6package tools.refinery.store.reasoning.translator.base;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java
index 1b8d7cc9..6e4728db 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/ExtendedTypeInfo.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/ExtendedTypeInfo.java
index 43b8e1dd..7a917dcf 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/ExtendedTypeInfo.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/ExtendedTypeInfo.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import org.jetbrains.annotations.NotNull; 8import org.jetbrains.annotations.NotNull;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeRelationView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeView.java
index 12c37c86..ce2d6ff3 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeRelationView.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeView.java
@@ -1,13 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
4import tools.refinery.store.query.view.TuplePreservingRelationView; 9import tools.refinery.store.query.view.TuplePreservingView;
5import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
6 11
7class InferredMayTypeRelationView extends TuplePreservingRelationView<InferredType> { 12class InferredMayTypeView extends TuplePreservingView<InferredType> {
8 private final PartialRelation type; 13 private final PartialRelation type;
9 14
10 InferredMayTypeRelationView(PartialRelation type) { 15 InferredMayTypeView(PartialRelation type) {
11 super(TypeHierarchyTranslationUnit.INFERRED_TYPE_SYMBOL, "%s#may".formatted(type)); 16 super(TypeHierarchyTranslationUnit.INFERRED_TYPE_SYMBOL, "%s#may".formatted(type));
12 this.type = type; 17 this.type = type;
13 } 18 }
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeRelationView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeView.java
index 975f627e..beda1796 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeRelationView.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeView.java
@@ -1,13 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
4import tools.refinery.store.query.view.TuplePreservingRelationView; 9import tools.refinery.store.query.view.TuplePreservingView;
5import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
6 11
7class InferredMustTypeRelationView extends TuplePreservingRelationView<InferredType> { 12class InferredMustTypeView extends TuplePreservingView<InferredType> {
8 private final PartialRelation type; 13 private final PartialRelation type;
9 14
10 InferredMustTypeRelationView(PartialRelation type) { 15 InferredMustTypeView(PartialRelation type) {
11 super(TypeHierarchyTranslationUnit.INFERRED_TYPE_SYMBOL, "%s#must".formatted(type)); 16 super(TypeHierarchyTranslationUnit.INFERRED_TYPE_SYMBOL, "%s#must".formatted(type));
12 this.type = type; 17 this.type = type;
13 } 18 }
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredType.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredType.java
index a366e262..fd05158b 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredType.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredType.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/PreservedType.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/PreservedType.java
index 63dba964..0696f4c3 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/PreservedType.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/PreservedType.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java
index 4f915108..fbf8a7c9 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3sealed interface TypeAnalysisResult permits EliminatedType, PreservedType { 8sealed interface TypeAnalysisResult permits EliminatedType, PreservedType {
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzer.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzer.java
index 62f8e750..e97ce954 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzer.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzer.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslationUnit.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslationUnit.java
index 4b0761f2..06e3c05f 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslationUnit.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslationUnit.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
@@ -11,8 +16,8 @@ import java.util.List;
11import java.util.Map; 16import java.util.Map;
12 17
13public class TypeHierarchyTranslationUnit extends TranslationUnit { 18public class TypeHierarchyTranslationUnit extends TranslationUnit {
14 static final Symbol<InferredType> INFERRED_TYPE_SYMBOL = new Symbol<>("inferredType", 1, 19 static final Symbol<InferredType> INFERRED_TYPE_SYMBOL = Symbol.of(
15 InferredType.class, InferredType.UNTYPED); 20 "inferredType", 1, InferredType.class, InferredType.UNTYPED);
16 21
17 private final TypeAnalyzer typeAnalyzer; 22 private final TypeAnalyzer typeAnalyzer;
18 23
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeInfo.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeInfo.java
index 313df4df..9f897e46 100644
--- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeInfo.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeInfo.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeTest.java
index a8df2312..1d76855c 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java
index b2c1ef1b..05a476c6 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import org.junit.jupiter.api.BeforeEach; 8import org.junit.jupiter.api.BeforeEach;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTest.java
index b7b69ed8..d0ef9d57 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTester.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTester.java
index 56407730..2924816e 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTester.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTester.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
2 7
3import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
diff --git a/subprojects/store/build.gradle b/subprojects/store/build.gradle
deleted file mode 100644
index 370d094b..00000000
--- a/subprojects/store/build.gradle
+++ /dev/null
@@ -1,4 +0,0 @@
1plugins {
2 id 'refinery-java-library'
3 id 'refinery-jmh'
4}
diff --git a/subprojects/store/build.gradle.kts b/subprojects/store/build.gradle.kts
new file mode 100644
index 00000000..2c485020
--- /dev/null
+++ b/subprojects/store/build.gradle.kts
@@ -0,0 +1,10 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 id("tools.refinery.gradle.java-library")
9 id("tools.refinery.gradle.jmh")
10}
diff --git a/subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutBenchmark.java b/subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutBenchmark.java
index cdf3d3c8..485fda3d 100644
--- a/subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutBenchmark.java
+++ b/subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutBenchmark.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.benchmarks; 6package tools.refinery.store.map.benchmarks;
2 7
3import java.util.ArrayList; 8import java.util.ArrayList;
diff --git a/subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutExecutionPlan.java b/subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutExecutionPlan.java
index 756d504e..edd4f53e 100644
--- a/subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutExecutionPlan.java
+++ b/subprojects/store/src/jmh/java/tools/refinery/store/map/benchmarks/ImmutablePutExecutionPlan.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.benchmarks; 6package tools.refinery.store.map.benchmarks;
2 7
3import java.util.Random; 8import java.util.Random;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/AbstractModelAdapterBuilder.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/AbstractModelAdapterBuilder.java
index 4c142217..8d3e998e 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/adapter/AbstractModelAdapterBuilder.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/adapter/AbstractModelAdapterBuilder.java
@@ -1,27 +1,48 @@
1package tools.refinery.store.adapter; 1package tools.refinery.store.adapter;
2 2/*
3 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
4 *
5 * SPDX-License-Identifier: EPL-2.0
6 */
3import tools.refinery.store.model.ModelStore; 7import tools.refinery.store.model.ModelStore;
4import tools.refinery.store.model.ModelStoreBuilder; 8import tools.refinery.store.model.ModelStoreBuilder;
5 9
6public abstract class AbstractModelAdapterBuilder implements ModelAdapterBuilder { 10public abstract class AbstractModelAdapterBuilder<T extends ModelStoreAdapter> implements ModelAdapterBuilder {
7 private final ModelStoreBuilder storeBuilder; 11 private boolean configured;
8 12
9 protected AbstractModelAdapterBuilder(ModelStoreBuilder storeBuilder) { 13 @Override
10 this.storeBuilder = storeBuilder; 14 public boolean isConfigured() {
15 return configured;
11 } 16 }
12 17
13 @Override 18 protected void checkConfigured() {
14 public <T extends ModelAdapterBuilder> T with(ModelAdapterBuilderFactory<?, ?, T> adapterBuilderFactory) { 19 if (!configured) {
15 return storeBuilder.with(adapterBuilderFactory); 20 throw new IllegalStateException("Model adapter builder was not configured");
21 }
22 }
23
24 protected void checkNotConfigured() {
25 if (configured) {
26 throw new IllegalStateException("Model adapter builder was already configured");
27 }
28 }
29
30 protected void doConfigure(ModelStoreBuilder storeBuilder) {
31 // Nothing to configure by default.
16 } 32 }
17 33
18 @Override 34 @Override
19 public ModelStoreBuilder getStoreBuilder() { 35 public final void configure(ModelStoreBuilder storeBuilder) {
20 return storeBuilder; 36 checkNotConfigured();
37 doConfigure(storeBuilder);
38 configured = true;
21 } 39 }
22 40
41 protected abstract T doBuild(ModelStore store);
42
23 @Override 43 @Override
24 public ModelStore build() { 44 public final T build(ModelStore store) {
25 return storeBuilder.build(); 45 checkConfigured();
46 return doBuild(store);
26 } 47 }
27} 48}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/AdapterList.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/AdapterList.java
deleted file mode 100644
index 74bae6f0..00000000
--- a/subprojects/store/src/main/java/tools/refinery/store/adapter/AdapterList.java
+++ /dev/null
@@ -1,97 +0,0 @@
1package tools.refinery.store.adapter;
2
3import org.jetbrains.annotations.NotNull;
4
5import java.util.*;
6import java.util.function.Consumer;
7
8public class AdapterList<T> implements Iterable<T> {
9 private final List<AnyModelAdapterType> adapterTypes;
10 private final List<T> adapters;
11
12 public AdapterList() {
13 adapterTypes = new ArrayList<>();
14 adapters = new ArrayList<>();
15 }
16
17 public AdapterList(int adapterCount) {
18 adapterTypes = new ArrayList<>(adapterCount);
19 adapters = new ArrayList<>(adapterCount);
20 }
21
22 public int size() {
23 return adapters.size();
24 }
25
26 public void add(AnyModelAdapterType adapterType, T adapter) {
27 adapterTypes.add(adapterType);
28 adapters.add(adapter);
29 }
30
31 public <U extends T> Optional<U> tryGet(AnyModelAdapterType adapterType, Class<? extends U> adapterClass) {
32 int size = size();
33 for (int i = 0; i < size; i++) {
34 if (getType(i).supports(adapterType)) {
35 return Optional.of(adapterClass.cast(get(i)));
36 }
37 }
38 return Optional.empty();
39 }
40
41 public <U extends T> U get(AnyModelAdapterType adapterType, Class<U> adapterClass) {
42 return tryGet(adapterType, adapterClass).orElseThrow(() -> new IllegalArgumentException(
43 "No %s was configured".formatted(adapterType)));
44 }
45
46 public AnyModelAdapterType getType(int i) {
47 return adapterTypes.get(i);
48 }
49
50 public T get(int i) {
51 return adapters.get(i);
52 }
53
54 public Collection<AnyModelAdapterType> getAdapterTypes() {
55 return Collections.unmodifiableCollection(adapterTypes);
56 }
57
58 public Iterable<Entry<T>> withAdapterTypes() {
59 return () -> new Iterator<>() {
60 private int i = 0;
61
62 @Override
63 public boolean hasNext() {
64 return i < size();
65 }
66
67 @Override
68 public Entry<T> next() {
69 if (i >= size()) {
70 throw new NoSuchElementException();
71 }
72 var entry = new Entry<>(getType(i), get(i));
73 i++;
74 return entry;
75 }
76 };
77 }
78
79 @NotNull
80 @Override
81 public Iterator<T> iterator() {
82 return adapters.iterator();
83 }
84
85 @Override
86 public void forEach(Consumer<? super T> action) {
87 adapters.forEach(action);
88 }
89
90 @Override
91 public Spliterator<T> spliterator() {
92 return adapters.spliterator();
93 }
94
95 public record Entry<T>(AnyModelAdapterType adapterType, T adapter) {
96 }
97}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/AdapterUtils.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/AdapterUtils.java
new file mode 100644
index 00000000..556e99f0
--- /dev/null
+++ b/subprojects/store/src/main/java/tools/refinery/store/adapter/AdapterUtils.java
@@ -0,0 +1,33 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.adapter;
7
8import java.util.Collection;
9import java.util.Optional;
10
11public class AdapterUtils {
12 private AdapterUtils() {
13 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
14 }
15
16 public static <T, U extends T> Optional<U> tryGetAdapter(Collection<T> adapters, Class<? extends U> type) {
17 var iterator = adapters.stream().filter(type::isInstance).iterator();
18 if (!iterator.hasNext()) {
19 return Optional.empty();
20 }
21 var adapter = type.cast(iterator.next());
22 if (iterator.hasNext()) {
23 throw new IllegalArgumentException("Ambiguous adapter: both %s and %s match %s"
24 .formatted(adapter.getClass().getName(), iterator.next().getClass().getName(), type.getName()));
25 }
26 return Optional.of(adapter);
27 }
28
29 public static <T> T getAdapter(Collection<? super T> adapters, Class<T> type) {
30 return tryGetAdapter(adapters, type).orElseThrow(() -> new IllegalArgumentException(
31 "No %s adapter was configured".formatted(type.getName())));
32 }
33}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/AnyModelAdapterType.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/AnyModelAdapterType.java
deleted file mode 100644
index 37a247fe..00000000
--- a/subprojects/store/src/main/java/tools/refinery/store/adapter/AnyModelAdapterType.java
+++ /dev/null
@@ -1,19 +0,0 @@
1package tools.refinery.store.adapter;
2
3import java.util.Collection;
4
5public sealed interface AnyModelAdapterType permits ModelAdapterType {
6 Class<? extends ModelAdapter> getModelAdapterClass();
7
8 Class<? extends ModelStoreAdapter> getModelStoreAdapterClass();
9
10 Class<? extends ModelAdapterBuilder> getModelAdapterBuilderClass();
11
12 Collection<AnyModelAdapterType> getSupportedAdapterTypes();
13
14 default boolean supports(AnyModelAdapterType targetAdapter) {
15 return getSupportedAdapterTypes().contains(targetAdapter);
16 }
17
18 String getName();
19}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapter.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapter.java
index aa079e01..672007aa 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapter.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.adapter; 6package tools.refinery.store.adapter;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilder.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilder.java
index 64b3e59f..75e5e07d 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilder.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilder.java
@@ -1,17 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.adapter; 6package tools.refinery.store.adapter;
2 7
3import tools.refinery.store.model.ModelStore; 8import tools.refinery.store.model.ModelStore;
4import tools.refinery.store.model.ModelStoreBuilder; 9import tools.refinery.store.model.ModelStoreBuilder;
5 10
6public interface ModelAdapterBuilder { 11public interface ModelAdapterBuilder {
7 ModelStoreAdapter createStoreAdapter(ModelStore store); 12 boolean isConfigured();
8 13
9 <T extends ModelAdapterBuilder> T with(ModelAdapterBuilderFactory<?, ?, T> adapterBuilderFactory); 14 void configure(ModelStoreBuilder storeBuilder);
10 15
11 ModelStoreBuilder getStoreBuilder(); 16 ModelStoreAdapter build(ModelStore store);
12
13 default void configure() {
14 }
15
16 ModelStore build();
17} 17}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilderFactory.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilderFactory.java
deleted file mode 100644
index 7c9b01bc..00000000
--- a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterBuilderFactory.java
+++ /dev/null
@@ -1,14 +0,0 @@
1package tools.refinery.store.adapter;
2
3import tools.refinery.store.model.ModelStoreBuilder;
4
5public abstract class ModelAdapterBuilderFactory<T1 extends ModelAdapter, T2 extends ModelStoreAdapter,
6 T3 extends ModelAdapterBuilder> extends ModelAdapterType<T1, T2, T3> {
7
8 protected ModelAdapterBuilderFactory(Class<T1> modelAdapterClass, Class<T2> modelStoreAdapterClass,
9 Class<T3> modelAdapterBuilderClass) {
10 super(modelAdapterClass, modelStoreAdapterClass, modelAdapterBuilderClass);
11 }
12
13 public abstract T3 createBuilder(ModelStoreBuilder storeBuilder);
14}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterType.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterType.java
deleted file mode 100644
index 82ddeb12..00000000
--- a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelAdapterType.java
+++ /dev/null
@@ -1,79 +0,0 @@
1package tools.refinery.store.adapter;
2
3import tools.refinery.store.model.Model;
4import tools.refinery.store.model.ModelStore;
5
6import java.lang.reflect.Method;
7import java.util.Collection;
8import java.util.Collections;
9import java.util.HashSet;
10import java.util.Set;
11
12public abstract non-sealed class ModelAdapterType<T1 extends ModelAdapter, T2 extends ModelStoreAdapter,
13 T3 extends ModelAdapterBuilder> implements AnyModelAdapterType {
14 private final Class<? extends T1> modelAdapterClass;
15 private final Class<? extends T2> modelStoreAdapterClass;
16 private final Class<? extends T3> modelAdapterBuilderClass;
17 private final Set<AnyModelAdapterType> supportedAdapters = new HashSet<>();
18
19 protected ModelAdapterType(Class<T1> modelAdapterClass, Class<T2> modelStoreAdapterClass,
20 Class<T3> modelAdapterBuilderClass) {
21 checkReturnType(modelAdapterClass, modelStoreAdapterClass, "createModelAdapter", Model.class);
22 checkReturnType(modelStoreAdapterClass, modelAdapterBuilderClass, "createStoreAdapter", ModelStore.class);
23 this.modelAdapterClass = modelAdapterClass;
24 this.modelStoreAdapterClass = modelStoreAdapterClass;
25 this.modelAdapterBuilderClass = modelAdapterBuilderClass;
26 supportedAdapters.add(this);
27 }
28
29 private void checkReturnType(Class<?> expectedReturnType, Class<?> ownerClass, String methodName,
30 Class<?>... argumentTypes) {
31 Method method;
32 try {
33 method = ownerClass.getMethod(methodName, argumentTypes);
34 } catch (NoSuchMethodException e) {
35 throw new IllegalStateException("Invalid %s: %s#%s method is required"
36 .formatted(this, ownerClass.getName(), methodName), e);
37 }
38 var returnType = method.getReturnType();
39 if (!expectedReturnType.isAssignableFrom(returnType)) {
40 throw new IllegalStateException("Invalid %s: %s is not assignable from the return type %s of %s#%s"
41 .formatted(this, expectedReturnType.getName(), returnType.getCanonicalName(),
42 ownerClass.getName(), methodName));
43 }
44 }
45
46 protected void extendsAdapter(ModelAdapterType<? super T1, ? super T2, ? super T3> superAdapter) {
47 supportedAdapters.addAll(superAdapter.supportedAdapters);
48 }
49
50 @Override
51 public final Class<? extends T1> getModelAdapterClass() {
52 return modelAdapterClass;
53 }
54
55 @Override
56 public final Class<? extends T2> getModelStoreAdapterClass() {
57 return modelStoreAdapterClass;
58 }
59
60 @Override
61 public final Class<? extends T3> getModelAdapterBuilderClass() {
62 return modelAdapterBuilderClass;
63 }
64
65 @Override
66 public Collection<AnyModelAdapterType> getSupportedAdapterTypes() {
67 return Collections.unmodifiableCollection(supportedAdapters);
68 }
69
70 @Override
71 public String getName() {
72 return "%s.ADAPTER".formatted(this.getClass().getName());
73 }
74
75 @Override
76 public String toString() {
77 return getName();
78 }
79}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelStoreAdapter.java b/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelStoreAdapter.java
index 1eb40ada..bc5f7b6b 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelStoreAdapter.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/adapter/ModelStoreAdapter.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.adapter; 6package tools.refinery.store.adapter;
2 7
3import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/AnyVersionedMap.java b/subprojects/store/src/main/java/tools/refinery/store/map/AnyVersionedMap.java
index f82a8bb1..25fc91e6 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/AnyVersionedMap.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/AnyVersionedMap.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3public sealed interface AnyVersionedMap extends Versioned permits VersionedMap { 8public sealed interface AnyVersionedMap extends Versioned permits VersionedMap {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/ContentHashCode.java b/subprojects/store/src/main/java/tools/refinery/store/map/ContentHashCode.java
index 8deeab23..cbea05e1 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/ContentHashCode.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/ContentHashCode.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3public enum ContentHashCode { 8public enum ContentHashCode {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/ContinousHashProvider.java b/subprojects/store/src/main/java/tools/refinery/store/map/ContinousHashProvider.java
index 75f1e2ab..8e451230 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/ContinousHashProvider.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/ContinousHashProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3import tools.refinery.store.map.internal.Node; 8import tools.refinery.store.map.internal.Node;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/Cursor.java b/subprojects/store/src/main/java/tools/refinery/store/map/Cursor.java
index b420585c..3bdca104 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/Cursor.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/Cursor.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3import java.util.Set; 8import java.util.Set;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/CursorAsIterator.java b/subprojects/store/src/main/java/tools/refinery/store/map/CursorAsIterator.java
index 65ae6648..c7e4d279 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/CursorAsIterator.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/CursorAsIterator.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3import java.util.Iterator; 8import java.util.Iterator;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/Cursors.java b/subprojects/store/src/main/java/tools/refinery/store/map/Cursors.java
index fc8e628b..0a94d449 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/Cursors.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/Cursors.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3public final class Cursors { 8public final class Cursors {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/DiffCursor.java b/subprojects/store/src/main/java/tools/refinery/store/map/DiffCursor.java
index 701f3ec8..4322e041 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/DiffCursor.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/DiffCursor.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3public interface DiffCursor<K, V> extends Cursor<K,V> { 8public interface DiffCursor<K, V> extends Cursor<K,V> {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/MapAsIterable.java b/subprojects/store/src/main/java/tools/refinery/store/map/MapAsIterable.java
index 6b986732..199b548f 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/MapAsIterable.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/MapAsIterable.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3import java.util.Iterator; 8import java.util.Iterator;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/Versioned.java b/subprojects/store/src/main/java/tools/refinery/store/map/Versioned.java
index 6a23e9d5..55720db3 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/Versioned.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/Versioned.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3public interface Versioned { 8public interface Versioned {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMap.java b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMap.java
index 31985e94..9bbde24d 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMap.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMap.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3public non-sealed interface VersionedMap<K, V> extends AnyVersionedMap { 8public non-sealed interface VersionedMap<K, V> extends AnyVersionedMap {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java
index a8d7fb1a..5aafa338 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3import java.util.Set; 8import java.util.Set;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreConfiguration.java b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreConfiguration.java
index 3856460d..b00cd961 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreConfiguration.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreConfiguration.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3public class VersionedMapStoreConfiguration { 8public class VersionedMapStoreConfiguration {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreImpl.java b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreImpl.java
index 113874e7..aade4aeb 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreImpl.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreImpl.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map; 6package tools.refinery.store.map;
2 7
3import tools.refinery.store.map.internal.ImmutableNode; 8import tools.refinery.store.map.internal.ImmutableNode;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/HashClash.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/HashClash.java
index 5402ed4a..61b3d1b8 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/internal/HashClash.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/HashClash.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.internal; 6package tools.refinery.store.map.internal;
2 7
3enum HashClash { 8enum HashClash {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/ImmutableNode.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/ImmutableNode.java
index 9397dede..03dffc15 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/internal/ImmutableNode.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/ImmutableNode.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.internal; 6package tools.refinery.store.map.internal;
2 7
3import java.util.Arrays; 8import java.util.Arrays;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/MapCursor.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/MapCursor.java
index 91a71e3d..f34ec7bb 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/internal/MapCursor.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/MapCursor.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.internal; 6package tools.refinery.store.map.internal;
2 7
3import tools.refinery.store.map.AnyVersionedMap; 8import tools.refinery.store.map.AnyVersionedMap;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/MapDiffCursor.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/MapDiffCursor.java
index 9cd78113..d31f1a05 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/internal/MapDiffCursor.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/MapDiffCursor.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.internal; 6package tools.refinery.store.map.internal;
2 7
3import tools.refinery.store.map.AnyVersionedMap; 8import tools.refinery.store.map.AnyVersionedMap;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/MutableNode.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/MutableNode.java
index 7c3cf7e8..1129ee5a 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/internal/MutableNode.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/MutableNode.java
@@ -1,10 +1,15 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.internal; 6package tools.refinery.store.map.internal;
2 7
8import tools.refinery.store.map.ContinousHashProvider;
9
3import java.util.Arrays; 10import java.util.Arrays;
4import java.util.Map; 11import java.util.Map;
5 12
6import tools.refinery.store.map.ContinousHashProvider;
7
8public class MutableNode<K, V> extends Node<K, V> { 13public class MutableNode<K, V> extends Node<K, V> {
9 int cachedHash; 14 int cachedHash;
10 protected Object[] content; 15 protected Object[] content;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/Node.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/Node.java
index 2260cd5b..958d645f 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/internal/Node.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/Node.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.internal; 6package tools.refinery.store.map.internal;
2 7
3import java.util.Map; 8import java.util.Map;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/OldValueBox.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/OldValueBox.java
index 5534c703..354af51d 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/internal/OldValueBox.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/OldValueBox.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.internal; 6package tools.refinery.store.map.internal;
2 7
3public class OldValueBox<V>{ 8public class OldValueBox<V>{
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/VersionedMapImpl.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/VersionedMapImpl.java
index 301bcb95..7abece0d 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/map/internal/VersionedMapImpl.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/VersionedMapImpl.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.internal; 6package tools.refinery.store.map.internal;
2 7
3import tools.refinery.store.map.*; 8import tools.refinery.store.map.*;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/AnyInterpretation.java b/subprojects/store/src/main/java/tools/refinery/store/model/AnyInterpretation.java
index d18ba71d..f906b48a 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/AnyInterpretation.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/AnyInterpretation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.representation.AnySymbol; 8import tools.refinery.store.representation.AnySymbol;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/Interpretation.java b/subprojects/store/src/main/java/tools/refinery/store/model/Interpretation.java
index 55949d0c..26ad9a69 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/Interpretation.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/Interpretation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/InterpretationListener.java b/subprojects/store/src/main/java/tools/refinery/store/model/InterpretationListener.java
index 73950779..6f7b24c1 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/InterpretationListener.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/InterpretationListener.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.tuple.Tuple; 8import tools.refinery.store.tuple.Tuple;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/Model.java b/subprojects/store/src/main/java/tools/refinery/store/model/Model.java
index 6ca1ac7b..d58d91c3 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/Model.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/Model.java
@@ -1,7 +1,11 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.adapter.ModelAdapter; 8import tools.refinery.store.adapter.ModelAdapter;
4import tools.refinery.store.adapter.ModelAdapterType;
5import tools.refinery.store.map.Versioned; 9import tools.refinery.store.map.Versioned;
6import tools.refinery.store.representation.AnySymbol; 10import tools.refinery.store.representation.AnySymbol;
7import tools.refinery.store.representation.Symbol; 11import tools.refinery.store.representation.Symbol;
@@ -25,9 +29,9 @@ public interface Model extends Versioned {
25 29
26 ModelDiffCursor getDiffCursor(long to); 30 ModelDiffCursor getDiffCursor(long to);
27 31
28 <T extends ModelAdapter> Optional<T> tryGetAdapter(ModelAdapterType<? extends T, ?, ?> adapterType); 32 <T extends ModelAdapter> Optional<T> tryGetAdapter(Class<? extends T> adapterType);
29 33
30 <T extends ModelAdapter> T getAdapter(ModelAdapterType<T, ?, ?> adapterType); 34 <T extends ModelAdapter> T getAdapter(Class<T> adapterType);
31 35
32 void addListener(ModelListener listener); 36 void addListener(ModelListener listener);
33 37
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/ModelDiffCursor.java b/subprojects/store/src/main/java/tools/refinery/store/model/ModelDiffCursor.java
index 97bf2039..7b236891 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/ModelDiffCursor.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/ModelDiffCursor.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.map.DiffCursor; 8import tools.refinery.store.map.DiffCursor;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/ModelListener.java b/subprojects/store/src/main/java/tools/refinery/store/model/ModelListener.java
index f67540bb..a9ad8cfd 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/ModelListener.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/ModelListener.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3public interface ModelListener { 8public interface ModelListener {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/ModelStore.java b/subprojects/store/src/main/java/tools/refinery/store/model/ModelStore.java
index 2e7e62c3..b10eb8a4 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/ModelStore.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/ModelStore.java
@@ -1,6 +1,10 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.adapter.ModelAdapterType;
4import tools.refinery.store.adapter.ModelStoreAdapter; 8import tools.refinery.store.adapter.ModelStoreAdapter;
5import tools.refinery.store.model.internal.ModelStoreBuilderImpl; 9import tools.refinery.store.model.internal.ModelStoreBuilderImpl;
6import tools.refinery.store.representation.AnySymbol; 10import tools.refinery.store.representation.AnySymbol;
@@ -20,9 +24,9 @@ public interface ModelStore {
20 24
21 ModelDiffCursor getDiffCursor(long from, long to); 25 ModelDiffCursor getDiffCursor(long from, long to);
22 26
23 <T extends ModelStoreAdapter> Optional<T> tryGetAdapter(ModelAdapterType<?, ? extends T, ?> adapterType); 27 <T extends ModelStoreAdapter> Optional<T> tryGetAdapter(Class<? extends T> adapterType);
24 28
25 <T extends ModelStoreAdapter> T getAdapter(ModelAdapterType<?, T, ?> adapterType); 29 <T extends ModelStoreAdapter> T getAdapter(Class<T> adapterType);
26 30
27 static ModelStoreBuilder builder() { 31 static ModelStoreBuilder builder() {
28 return new ModelStoreBuilderImpl(); 32 return new ModelStoreBuilderImpl();
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/ModelStoreBuilder.java b/subprojects/store/src/main/java/tools/refinery/store/model/ModelStoreBuilder.java
index 289099da..3a4024b5 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/ModelStoreBuilder.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/ModelStoreBuilder.java
@@ -1,8 +1,11 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.adapter.ModelAdapterBuilder; 8import tools.refinery.store.adapter.ModelAdapterBuilder;
4import tools.refinery.store.adapter.ModelAdapterBuilderFactory;
5import tools.refinery.store.adapter.ModelAdapterType;
6import tools.refinery.store.representation.AnySymbol; 9import tools.refinery.store.representation.AnySymbol;
7import tools.refinery.store.representation.Symbol; 10import tools.refinery.store.representation.Symbol;
8 11
@@ -26,11 +29,11 @@ public interface ModelStoreBuilder {
26 29
27 <T> ModelStoreBuilder symbol(Symbol<T> symbol); 30 <T> ModelStoreBuilder symbol(Symbol<T> symbol);
28 31
29 <T extends ModelAdapterBuilder> T with(ModelAdapterBuilderFactory<?, ?, T> adapterBuilderFactory); 32 <T extends ModelAdapterBuilder> ModelStoreBuilder with(T adapterBuilder);
30 33
31 <T extends ModelAdapterBuilder> Optional<T> tryGetAdapter(ModelAdapterType<?, ?, ? extends T> adapterType); 34 <T extends ModelAdapterBuilder> Optional<T> tryGetAdapter(Class<? extends T> adapterType);
32 35
33 <T extends ModelAdapterBuilder> T getAdapter(ModelAdapterType<?, ?, T> adapterType); 36 <T extends ModelAdapterBuilder> T getAdapter(Class<T> adapterType);
34 37
35 ModelStore build(); 38 ModelStore build();
36} 39}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProvider.java b/subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProvider.java
index 4bcf9ff4..fe1c2ab5 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProvider.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProvider.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.map.ContinousHashProvider; 8import tools.refinery.store.map.ContinousHashProvider;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProviderBitMagic.java b/subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProviderBitMagic.java
index 33059a1b..14116a90 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProviderBitMagic.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/TupleHashProviderBitMagic.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model; 6package tools.refinery.store.model;
2 7
3import tools.refinery.store.map.ContinousHashProvider; 8import tools.refinery.store.map.ContinousHashProvider;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelAction.java b/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelAction.java
index f68859db..dbd95d80 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelAction.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelAction.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model.internal; 6package tools.refinery.store.model.internal;
2 7
3public enum ModelAction { 8public enum ModelAction {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelImpl.java b/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelImpl.java
index 9eb438c4..c5475a1a 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelImpl.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelImpl.java
@@ -1,9 +1,12 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model.internal; 6package tools.refinery.store.model.internal;
2 7
3import tools.refinery.store.adapter.AdapterList; 8import tools.refinery.store.adapter.AdapterUtils;
4import tools.refinery.store.adapter.AnyModelAdapterType;
5import tools.refinery.store.adapter.ModelAdapter; 9import tools.refinery.store.adapter.ModelAdapter;
6import tools.refinery.store.adapter.ModelAdapterType;
7import tools.refinery.store.map.DiffCursor; 10import tools.refinery.store.map.DiffCursor;
8import tools.refinery.store.model.*; 11import tools.refinery.store.model.*;
9import tools.refinery.store.representation.AnySymbol; 12import tools.refinery.store.representation.AnySymbol;
@@ -16,7 +19,7 @@ public class ModelImpl implements Model {
16 private final ModelStore store; 19 private final ModelStore store;
17 private long state; 20 private long state;
18 private Map<? extends AnySymbol, ? extends VersionedInterpretation<?>> interpretations; 21 private Map<? extends AnySymbol, ? extends VersionedInterpretation<?>> interpretations;
19 private final AdapterList<ModelAdapter> adapters; 22 private final List<ModelAdapter> adapters;
20 private final List<ModelListener> listeners = new ArrayList<>(); 23 private final List<ModelListener> listeners = new ArrayList<>();
21 private boolean uncommittedChanges; 24 private boolean uncommittedChanges;
22 private ModelAction pendingAction = ModelAction.NONE; 25 private ModelAction pendingAction = ModelAction.NONE;
@@ -25,7 +28,7 @@ public class ModelImpl implements Model {
25 ModelImpl(ModelStore store, long state, int adapterCount) { 28 ModelImpl(ModelStore store, long state, int adapterCount) {
26 this.store = store; 29 this.store = store;
27 this.state = state; 30 this.state = state;
28 adapters = new AdapterList<>(adapterCount); 31 adapters = new ArrayList<>(adapterCount);
29 } 32 }
30 33
31 void setInterpretations(Map<? extends AnySymbol, ? extends VersionedInterpretation<?>> interpretations) { 34 void setInterpretations(Map<? extends AnySymbol, ? extends VersionedInterpretation<?>> interpretations) {
@@ -162,17 +165,17 @@ public class ModelImpl implements Model {
162 } 165 }
163 166
164 @Override 167 @Override
165 public <T extends ModelAdapter> Optional<T> tryGetAdapter(ModelAdapterType<? extends T, ?, ?> adapterType) { 168 public <T extends ModelAdapter> Optional<T> tryGetAdapter(Class<? extends T> adapterType) {
166 return adapters.tryGet(adapterType, adapterType.getModelAdapterClass()); 169 return AdapterUtils.tryGetAdapter(adapters, adapterType);
167 } 170 }
168 171
169 @Override 172 @Override
170 public <T extends ModelAdapter> T getAdapter(ModelAdapterType<T, ?, ?> adapterType) { 173 public <T extends ModelAdapter> T getAdapter(Class<T> adapterType) {
171 return adapters.get(adapterType, adapterType.getModelAdapterClass()); 174 return AdapterUtils.getAdapter(adapters, adapterType);
172 } 175 }
173 176
174 void addAdapter(AnyModelAdapterType adapterType, ModelAdapter adapter) { 177 void addAdapter(ModelAdapter adapter) {
175 adapters.add(adapterType, adapter); 178 adapters.add(adapter);
176 } 179 }
177 180
178 @Override 181 @Override
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreBuilderImpl.java b/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreBuilderImpl.java
index 79f7195d..aafbe130 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreBuilderImpl.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreBuilderImpl.java
@@ -1,9 +1,12 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model.internal; 6package tools.refinery.store.model.internal;
2 7
3import tools.refinery.store.adapter.AdapterList; 8import tools.refinery.store.adapter.AdapterUtils;
4import tools.refinery.store.adapter.ModelAdapterBuilder; 9import tools.refinery.store.adapter.ModelAdapterBuilder;
5import tools.refinery.store.adapter.ModelAdapterBuilderFactory;
6import tools.refinery.store.adapter.ModelAdapterType;
7import tools.refinery.store.map.VersionedMapStore; 10import tools.refinery.store.map.VersionedMapStore;
8import tools.refinery.store.map.VersionedMapStoreImpl; 11import tools.refinery.store.map.VersionedMapStoreImpl;
9import tools.refinery.store.model.ModelStore; 12import tools.refinery.store.model.ModelStore;
@@ -18,7 +21,7 @@ import java.util.*;
18public class ModelStoreBuilderImpl implements ModelStoreBuilder { 21public class ModelStoreBuilderImpl implements ModelStoreBuilder {
19 private final Set<AnySymbol> allSymbols = new HashSet<>(); 22 private final Set<AnySymbol> allSymbols = new HashSet<>();
20 private final Map<SymbolEquivalenceClass<?>, List<AnySymbol>> equivalenceClasses = new HashMap<>(); 23 private final Map<SymbolEquivalenceClass<?>, List<AnySymbol>> equivalenceClasses = new HashMap<>();
21 private final AdapterList<ModelAdapterBuilder> adapters = new AdapterList<>(); 24 private final List<ModelAdapterBuilder> adapters = new ArrayList<>();
22 25
23 @Override 26 @Override
24 public <T> ModelStoreBuilder symbol(Symbol<T> symbol) { 27 public <T> ModelStoreBuilder symbol(Symbol<T> symbol) {
@@ -33,46 +36,25 @@ public class ModelStoreBuilderImpl implements ModelStoreBuilder {
33 } 36 }
34 37
35 @Override 38 @Override
36 public <T extends ModelAdapterBuilder> T with(ModelAdapterBuilderFactory<?, ?, T> adapterBuilderFactory) { 39 public <T extends ModelAdapterBuilder> ModelStoreBuilder with(T adapterBuilder) {
37 return adapters.<T>tryGet(adapterBuilderFactory, adapterBuilderFactory.getModelAdapterBuilderClass()) 40 for (var existingAdapter : adapters) {
38 .orElseGet(() -> addAdapter(adapterBuilderFactory)); 41 if (existingAdapter.getClass().equals(adapterBuilder.getClass())) {
39 } 42 throw new IllegalArgumentException("%s adapter was already configured for store builder"
40 43 .formatted(adapterBuilder.getClass().getName()));
41 private <T extends ModelAdapterBuilder> T addAdapter(ModelAdapterBuilderFactory<?, ?, T> adapterBuilderFactory) {
42 for (var configuredAdapterType : adapters.getAdapterTypes()) {
43 var intersection = new HashSet<>(adapterBuilderFactory.getSupportedAdapterTypes());
44 intersection.retainAll(configuredAdapterType.getSupportedAdapterTypes());
45 if (!intersection.isEmpty()) {
46 if (configuredAdapterType.supports(adapterBuilderFactory)) {
47 // Impossible to end up here from <code>#with</code>, because we should have returned
48 // the existing adapter there instead of adding a new one.
49 throw new IllegalArgumentException(
50 "Cannot add %s, because it is already provided by configured adapter %s"
51 .formatted(adapterBuilderFactory, configuredAdapterType));
52 } else if (adapterBuilderFactory.supports(configuredAdapterType)) {
53 throw new IllegalArgumentException(
54 "Cannot add %s, because it provides already configured adapter %s"
55 .formatted(adapterBuilderFactory, configuredAdapterType));
56 } else {
57 throw new IllegalArgumentException(
58 "Cannot add %s, because configured adapter %s already provides %s"
59 .formatted(adapterBuilderFactory, configuredAdapterType, intersection));
60 }
61 } 44 }
62 } 45 }
63 var newAdapter = adapterBuilderFactory.createBuilder(this); 46 adapters.add(adapterBuilder);
64 adapters.add(adapterBuilderFactory, newAdapter); 47 return this;
65 return newAdapter;
66 } 48 }
67 49
68 @Override 50 @Override
69 public <T extends ModelAdapterBuilder> Optional<T> tryGetAdapter(ModelAdapterType<?, ?, ? extends T> adapterType) { 51 public <T extends ModelAdapterBuilder> Optional<T> tryGetAdapter(Class<? extends T> adapterType) {
70 return adapters.tryGet(adapterType, adapterType.getModelAdapterBuilderClass()); 52 return AdapterUtils.tryGetAdapter(adapters, adapterType);
71 } 53 }
72 54
73 @Override 55 @Override
74 public <T extends ModelAdapterBuilder> T getAdapter(ModelAdapterType<?, ?, T> adapterType) { 56 public <T extends ModelAdapterBuilder> T getAdapter(Class<T> adapterType) {
75 return adapters.get(adapterType, adapterType.getModelAdapterBuilderClass()); 57 return AdapterUtils.getAdapter(adapters, adapterType);
76 } 58 }
77 59
78 @Override 60 @Override
@@ -81,13 +63,13 @@ public class ModelStoreBuilderImpl implements ModelStoreBuilder {
81 for (var entry : equivalenceClasses.entrySet()) { 63 for (var entry : equivalenceClasses.entrySet()) {
82 createStores(stores, entry.getKey(), entry.getValue()); 64 createStores(stores, entry.getKey(), entry.getValue());
83 } 65 }
84 var modelStore = new ModelStoreImpl(stores, adapters.size());
85 for (int i = adapters.size() - 1; i >= 0; i--) { 66 for (int i = adapters.size() - 1; i >= 0; i--) {
86 adapters.get(i).configure(); 67 adapters.get(i).configure(this);
87 } 68 }
88 for (var entry : adapters.withAdapterTypes()) { 69 var modelStore = new ModelStoreImpl(stores, adapters.size());
89 var adapter = entry.adapter().createStoreAdapter(modelStore); 70 for (var adapterBuilder : adapters) {
90 modelStore.addAdapter(entry.adapterType(), adapter); 71 var storeAdapter = adapterBuilder.build(modelStore);
72 modelStore.addAdapter(storeAdapter);
91 } 73 }
92 return modelStore; 74 return modelStore;
93 } 75 }
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreImpl.java b/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreImpl.java
index e8c205e4..60b735e6 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreImpl.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/internal/ModelStoreImpl.java
@@ -1,8 +1,11 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model.internal; 6package tools.refinery.store.model.internal;
2 7
3import tools.refinery.store.adapter.AdapterList; 8import tools.refinery.store.adapter.AdapterUtils;
4import tools.refinery.store.adapter.AnyModelAdapterType;
5import tools.refinery.store.adapter.ModelAdapterType;
6import tools.refinery.store.adapter.ModelStoreAdapter; 9import tools.refinery.store.adapter.ModelStoreAdapter;
7import tools.refinery.store.map.DiffCursor; 10import tools.refinery.store.map.DiffCursor;
8import tools.refinery.store.map.VersionedMapStore; 11import tools.refinery.store.map.VersionedMapStore;
@@ -16,11 +19,11 @@ import java.util.*;
16 19
17public class ModelStoreImpl implements ModelStore { 20public class ModelStoreImpl implements ModelStore {
18 private final Map<? extends AnySymbol, ? extends VersionedMapStore<Tuple, ?>> stores; 21 private final Map<? extends AnySymbol, ? extends VersionedMapStore<Tuple, ?>> stores;
19 private final AdapterList<ModelStoreAdapter> adapters; 22 private final List<ModelStoreAdapter> adapters;
20 23
21 ModelStoreImpl(Map<? extends AnySymbol, ? extends VersionedMapStore<Tuple, ?>> stores, int adapterCount) { 24 ModelStoreImpl(Map<? extends AnySymbol, ? extends VersionedMapStore<Tuple, ?>> stores, int adapterCount) {
22 this.stores = stores; 25 this.stores = stores;
23 adapters = new AdapterList<>(adapterCount); 26 adapters = new ArrayList<>(adapterCount);
24 } 27 }
25 28
26 @Override 29 @Override
@@ -59,9 +62,9 @@ public class ModelStoreImpl implements ModelStore {
59 } 62 }
60 63
61 private void adaptModel(ModelImpl model) { 64 private void adaptModel(ModelImpl model) {
62 for (var entry : adapters.withAdapterTypes()) { 65 for (var storeAdapter : adapters) {
63 var adapter = entry.adapter().createModelAdapter(model); 66 var adapter = storeAdapter.createModelAdapter(model);
64 model.addAdapter(entry.adapterType(), adapter); 67 model.addAdapter(adapter);
65 } 68 }
66 } 69 }
67 70
@@ -86,16 +89,16 @@ public class ModelStoreImpl implements ModelStore {
86 } 89 }
87 90
88 @Override 91 @Override
89 public <T extends ModelStoreAdapter> Optional<T> tryGetAdapter(ModelAdapterType<?, ? extends T, ?> adapterType) { 92 public <T extends ModelStoreAdapter> Optional<T> tryGetAdapter(Class<? extends T> adapterType) {
90 return adapters.tryGet(adapterType, adapterType.getModelStoreAdapterClass()); 93 return AdapterUtils.tryGetAdapter(adapters, adapterType);
91 } 94 }
92 95
93 @Override 96 @Override
94 public <T extends ModelStoreAdapter> T getAdapter(ModelAdapterType<?, T, ?> adapterType) { 97 public <T extends ModelStoreAdapter> T getAdapter(Class<T> adapterType) {
95 return adapters.get(adapterType, adapterType.getModelStoreAdapterClass()); 98 return AdapterUtils.getAdapter(adapters, adapterType);
96 } 99 }
97 100
98 void addAdapter(AnyModelAdapterType adapterType, ModelStoreAdapter adapter) { 101 void addAdapter(ModelStoreAdapter adapter) {
99 adapters.add(adapterType, adapter); 102 adapters.add(adapter);
100 } 103 }
101} 104}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/internal/SymbolEquivalenceClass.java b/subprojects/store/src/main/java/tools/refinery/store/model/internal/SymbolEquivalenceClass.java
index 5bf1b90d..136f2976 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/internal/SymbolEquivalenceClass.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/internal/SymbolEquivalenceClass.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model.internal; 6package tools.refinery.store.model.internal;
2 7
3import tools.refinery.store.representation.Symbol; 8import tools.refinery.store.representation.Symbol;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/model/internal/VersionedInterpretation.java b/subprojects/store/src/main/java/tools/refinery/store/model/internal/VersionedInterpretation.java
index 6d82f5d7..86101ce3 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/model/internal/VersionedInterpretation.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/model/internal/VersionedInterpretation.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model.internal; 6package tools.refinery.store.model.internal;
2 7
3import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/AbstractDomain.java b/subprojects/store/src/main/java/tools/refinery/store/representation/AbstractDomain.java
index 18903ead..52c740e8 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/AbstractDomain.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/AbstractDomain.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation; 6package tools.refinery.store.representation;
2 7
3import java.util.Optional; 8import java.util.Optional;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/AnyAbstractDomain.java b/subprojects/store/src/main/java/tools/refinery/store/representation/AnyAbstractDomain.java
index 4c428a1e..c354fab7 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/AnyAbstractDomain.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/AnyAbstractDomain.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation; 6package tools.refinery.store.representation;
2 7
3public sealed interface AnyAbstractDomain permits AbstractDomain { 8public sealed interface AnyAbstractDomain permits AbstractDomain {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java b/subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java
index 20b9eead..b2377905 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation; 6package tools.refinery.store.representation;
2 7
3public sealed interface AnySymbol permits Symbol { 8public sealed interface AnySymbol permits Symbol {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/Symbol.java b/subprojects/store/src/main/java/tools/refinery/store/representation/Symbol.java
index 30b1c03f..cc748180 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/Symbol.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/Symbol.java
@@ -1,19 +1,25 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation; 6package tools.refinery.store.representation;
2 7
3public record Symbol<T>(String name, int arity, Class<T> valueType, T defaultValue) implements AnySymbol { 8public record Symbol<T>(String name, int arity, Class<T> valueType, T defaultValue) implements AnySymbol {
4 @Override 9 @Override
5 public boolean equals(Object o) { 10 public String toString() {
6 return this == o; 11 return "%s/%d".formatted(name, arity);
7 } 12 }
8 13
9 @Override 14 public static Symbol<Boolean> of(String name, int arity) {
10 public int hashCode() { 15 return of(name, arity, Boolean.class, false);
11 // Compare by identity to make hash table lookups more efficient.
12 return System.identityHashCode(this);
13 } 16 }
14 17
15 @Override 18 public static <T> Symbol<T> of(String name, int arity, Class<T> valueType) {
16 public String toString() { 19 return of(name, arity, valueType, null);
17 return "%s/%d".formatted(name, arity); 20 }
21
22 public static <T> Symbol<T> of(String name, int arity, Class<T> valueType, T defaultValue) {
23 return new Symbol<>(name, arity, valueType, defaultValue);
18 } 24 }
19} 25}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java b/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java
index b7893fd3..40baf9a5 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation; 6package tools.refinery.store.representation;
2 7
3public enum TruthValue { 8public enum TruthValue {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValueDomain.java b/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValueDomain.java
index 29858bce..89f8dd19 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValueDomain.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValueDomain.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation; 6package tools.refinery.store.representation;
2 7
3import java.util.Optional; 8import java.util.Optional;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityInterval.java b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityInterval.java
index 273d0de7..704ca2fc 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityInterval.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityInterval.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3public sealed interface CardinalityInterval permits NonEmptyCardinalityInterval, EmptyCardinalityInterval { 8public sealed interface CardinalityInterval permits NonEmptyCardinalityInterval, EmptyCardinalityInterval {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityIntervals.java b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityIntervals.java
index e1a08bf9..ad16a3e8 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityIntervals.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityIntervals.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3public final class CardinalityIntervals { 8public final class CardinalityIntervals {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/EmptyCardinalityInterval.java b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/EmptyCardinalityInterval.java
index ab3ad9d1..49911c29 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/EmptyCardinalityInterval.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/EmptyCardinalityInterval.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3public final class EmptyCardinalityInterval implements CardinalityInterval { 8public final class EmptyCardinalityInterval implements CardinalityInterval {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinality.java b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinality.java
index 381c8a57..82afdbbc 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinality.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinality.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.jetbrains.annotations.NotNull; 8import org.jetbrains.annotations.NotNull;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/NonEmptyCardinalityInterval.java b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/NonEmptyCardinalityInterval.java
index 32b3786f..38bd53bf 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/NonEmptyCardinalityInterval.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/NonEmptyCardinalityInterval.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import java.util.function.BinaryOperator; 8import java.util.function.BinaryOperator;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UnboundedUpperCardinality.java b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UnboundedUpperCardinality.java
index 593bc322..a5634020 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UnboundedUpperCardinality.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UnboundedUpperCardinality.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.jetbrains.annotations.NotNull; 8import org.jetbrains.annotations.NotNull;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinalities.java b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinalities.java
index d850fdc9..1e18dde0 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinalities.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinalities.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3public final class UpperCardinalities { 8public final class UpperCardinalities {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinality.java b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinality.java
index c6e31cb7..5dbaa922 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinality.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinality.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3public sealed interface UpperCardinality extends Comparable<UpperCardinality> permits FiniteUpperCardinality, 8public sealed interface UpperCardinality extends Comparable<UpperCardinality> permits FiniteUpperCardinality,
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple.java
index bf844c6d..6700417a 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple.java
@@ -1,28 +1,42 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.tuple; 6package tools.refinery.store.tuple;
2 7
3public sealed interface Tuple extends TupleLike permits Tuple0, Tuple1, Tuple2, TupleN { 8public sealed interface Tuple permits Tuple0, Tuple1, Tuple2, Tuple3, Tuple4, TupleN {
4 @Override 9 int getSize();
5 default Tuple toTuple() { 10
6 return this; 11 int get(int element);
7 }
8 12
9 static Tuple of() { 13 static Tuple0 of() {
10 return Tuple0.INSTANCE; 14 return Tuple0.INSTANCE;
11 } 15 }
12 16
13 static Tuple of(int value) { 17 static Tuple1 of(int value) {
14 return Tuple1.Cache.INSTANCE.getOrCreate(value); 18 return Tuple1.Cache.INSTANCE.getOrCreate(value);
15 } 19 }
16 20
17 static Tuple of(int value1, int value2) { 21 static Tuple2 of(int value1, int value2) {
18 return new Tuple2(value1, value2); 22 return new Tuple2(value1, value2);
19 } 23 }
20 24
25 static Tuple3 of(int value1, int value2, int value3) {
26 return new Tuple3(value1, value2, value3);
27 }
28
29 static Tuple4 of(int value1, int value2, int value3, int value4) {
30 return new Tuple4(value1, value2, value3, value4);
31 }
32
21 static Tuple of(int... values) { 33 static Tuple of(int... values) {
22 return switch (values.length) { 34 return switch (values.length) {
23 case 0 -> of(); 35 case 0 -> of();
24 case 1 -> of(values[0]); 36 case 1 -> of(values[0]);
25 case 2 -> of(values[0], values[1]); 37 case 2 -> of(values[0], values[1]);
38 case 3 -> of(values[0], values[1], values[2]);
39 case 4 -> of(values[0], values[1], values[2], values[3]);
26 default -> new TupleN(values); 40 default -> new TupleN(values);
27 }; 41 };
28 } 42 }
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple0.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple0.java
index 8eea5c3a..1451099c 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple0.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple0.java
@@ -1,7 +1,18 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.tuple; 6package tools.refinery.store.tuple;
2 7
3public record Tuple0() implements Tuple { 8import static tools.refinery.store.tuple.TupleConstants.TUPLE_BEGIN;
4 public static Tuple0 INSTANCE = new Tuple0(); 9import static tools.refinery.store.tuple.TupleConstants.TUPLE_END;
10
11public final class Tuple0 implements Tuple {
12 public static final Tuple0 INSTANCE = new Tuple0();
13
14 private Tuple0() {
15 }
5 16
6 @Override 17 @Override
7 public int getSize() { 18 public int getSize() {
@@ -14,12 +25,7 @@ public record Tuple0() implements Tuple {
14 } 25 }
15 26
16 @Override 27 @Override
17 public int[] toArray() {
18 return new int[]{};
19 }
20
21 @Override
22 public String toString() { 28 public String toString() {
23 return "[]"; 29 return TUPLE_BEGIN + TUPLE_END;
24 } 30 }
25} 31}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple1.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple1.java
index 07380966..cda145d7 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple1.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple1.java
@@ -1,10 +1,28 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.tuple; 6package tools.refinery.store.tuple;
2 7
3import tools.refinery.store.model.TupleHashProvider; 8import tools.refinery.store.model.TupleHashProvider;
4 9
5import java.util.Arrays; 10import java.util.Arrays;
6 11
7public record Tuple1(int value0) implements Tuple { 12import static tools.refinery.store.tuple.TupleConstants.TUPLE_BEGIN;
13import static tools.refinery.store.tuple.TupleConstants.TUPLE_END;
14
15public final class Tuple1 implements Tuple {
16 private final int value0;
17
18 private Tuple1(int value0) {
19 this.value0 = value0;
20 }
21
22 public int value0() {
23 return value0;
24 }
25
8 @Override 26 @Override
9 public int getSize() { 27 public int getSize() {
10 return 1; 28 return 1;
@@ -19,13 +37,21 @@ public record Tuple1(int value0) implements Tuple {
19 } 37 }
20 38
21 @Override 39 @Override
22 public int[] toArray() { 40 public String toString() {
23 return new int[]{value0}; 41 return TUPLE_BEGIN + value0 + TUPLE_END;
24 } 42 }
25 43
26 @Override 44 @Override
27 public String toString() { 45 public boolean equals(Object o) {
28 return "[" + value0 + "]"; 46 if (this == o) return true;
47 if (o == null || getClass() != o.getClass()) return false;
48 Tuple1 tuple1 = (Tuple1) o;
49 return value0 == tuple1.value0;
50 }
51
52 @Override
53 public int hashCode() {
54 return 31 + value0;
29 } 55 }
30 56
31 /** 57 /**
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple2.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple2.java
index 0836a32d..b669674b 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple2.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple2.java
@@ -1,5 +1,12 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.tuple; 6package tools.refinery.store.tuple;
2 7
8import static tools.refinery.store.tuple.TupleConstants.*;
9
3public record Tuple2(int value0, int value1) implements Tuple { 10public record Tuple2(int value0, int value1) implements Tuple {
4 @Override 11 @Override
5 public int getSize() { 12 public int getSize() {
@@ -16,12 +23,22 @@ public record Tuple2(int value0, int value1) implements Tuple {
16 } 23 }
17 24
18 @Override 25 @Override
19 public int[] toArray() { 26 public String toString() {
20 return new int[]{value0, value1}; 27 return TUPLE_BEGIN + value0 + TUPLE_SEPARATOR + value1 + TUPLE_END;
21 } 28 }
22 29
23 @Override 30 @Override
24 public String toString() { 31 public boolean equals(Object o) {
25 return "[" + value0 + ", " + value1 + "]"; 32 if (this == o) return true;
33 if (o == null || getClass() != o.getClass()) return false;
34 Tuple2 tuple2 = (Tuple2) o;
35 return value0 == tuple2.value0 && value1 == tuple2.value1;
36 }
37
38 @Override
39 public int hashCode() {
40 int hash = 31 + value0;
41 hash = 31 * hash + value1;
42 return hash;
26 } 43 }
27} 44}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple3.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple3.java
new file mode 100644
index 00000000..542ed328
--- /dev/null
+++ b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple3.java
@@ -0,0 +1,46 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.tuple;
7
8import static tools.refinery.store.tuple.TupleConstants.*;
9
10public record Tuple3(int value0, int value1, int value2) implements Tuple {
11 @Override
12 public int getSize() {
13 return 3;
14 }
15
16 @Override
17 public int get(int element) {
18 return switch (element) {
19 case 0 -> value0;
20 case 1 -> value1;
21 case 2 -> value2;
22 default -> throw new ArrayIndexOutOfBoundsException(element);
23 };
24 }
25
26 @Override
27 public String toString() {
28 return TUPLE_BEGIN + value0 + TUPLE_SEPARATOR + value1 + TUPLE_SEPARATOR + value2 + TUPLE_END;
29 }
30
31 @Override
32 public boolean equals(Object o) {
33 if (this == o) return true;
34 if (o == null || getClass() != o.getClass()) return false;
35 Tuple3 tuple3 = (Tuple3) o;
36 return value0 == tuple3.value0 && value1 == tuple3.value1 && value2 == tuple3.value2;
37 }
38
39 @Override
40 public int hashCode() {
41 int hash = 31 + value0;
42 hash = 31 * hash + value1;
43 hash = 31 * hash + value2;
44 return hash;
45 }
46}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple4.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple4.java
new file mode 100644
index 00000000..121a15f6
--- /dev/null
+++ b/subprojects/store/src/main/java/tools/refinery/store/tuple/Tuple4.java
@@ -0,0 +1,49 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.tuple;
7
8import static tools.refinery.store.tuple.TupleConstants.*;
9
10public record Tuple4(int value0, int value1, int value2, int value3) implements Tuple {
11 @Override
12 public int getSize() {
13 return 4;
14 }
15
16 @Override
17 public int get(int element) {
18 return switch (element) {
19 case 0 -> value0;
20 case 1 -> value1;
21 case 2 -> value2;
22 case 3 -> value3;
23 default -> throw new ArrayIndexOutOfBoundsException(element);
24 };
25 }
26
27 @Override
28 public String toString() {
29 return TUPLE_BEGIN + value0 + TUPLE_SEPARATOR + value1 + TUPLE_SEPARATOR + value2 + TUPLE_SEPARATOR + value3 +
30 TUPLE_END;
31 }
32
33 @Override
34 public boolean equals(Object o) {
35 if (this == o) return true;
36 if (o == null || getClass() != o.getClass()) return false;
37 Tuple4 tuple4 = (Tuple4) o;
38 return value0 == tuple4.value0 && value1 == tuple4.value1 && value2 == tuple4.value2 && value3 == tuple4.value3;
39 }
40
41 @Override
42 public int hashCode() {
43 int hash = 31 + value0;
44 hash = 31 * hash + value1;
45 hash = 31 * hash + value2;
46 hash = 31 * hash + value3;
47 return hash;
48 }
49}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleConstants.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleConstants.java
new file mode 100644
index 00000000..f7d27848
--- /dev/null
+++ b/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleConstants.java
@@ -0,0 +1,17 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.tuple;
7
8final class TupleConstants {
9 public static final int MAX_STATIC_ARITY_TUPLE_SIZE = 4;
10 public static final String TUPLE_BEGIN = "[";
11 public static final String TUPLE_SEPARATOR = ", ";
12 public static final String TUPLE_END = "]";
13
14 private TupleConstants() {
15 throw new IllegalArgumentException("This is a static utility class an should not instantiated directly");
16 }
17}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleLike.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleLike.java
deleted file mode 100644
index 953ea9f8..00000000
--- a/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleLike.java
+++ /dev/null
@@ -1,35 +0,0 @@
1package tools.refinery.store.tuple;
2
3import java.util.stream.Collectors;
4import java.util.stream.IntStream;
5
6public interface TupleLike {
7 int getSize();
8
9 int get(int element);
10
11 default int[] toArray() {
12 int size = getSize();
13 var array = new int[size];
14 for (int i = 0; i < size; i++) {
15 array[i] = get(i);
16 }
17 return array;
18 }
19
20 default Tuple toTuple() {
21 return switch (getSize()) {
22 case 0 -> Tuple.of();
23 case 1 -> Tuple.of(get(0));
24 case 2 -> Tuple.of(get(0), get(1));
25 default -> Tuple.of(toArray());
26 };
27 }
28
29 static String toString(TupleLike tuple) {
30 var valuesString = IntStream.range(0, tuple.getSize())
31 .mapToObj(i -> Integer.toString(tuple.get(i)))
32 .collect(Collectors.joining(", "));
33 return "[" + valuesString + "]";
34 }
35}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleN.java b/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleN.java
index c3aed847..b66af491 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleN.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/tuple/TupleN.java
@@ -1,13 +1,23 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.tuple; 6package tools.refinery.store.tuple;
2 7
3import java.util.Arrays; 8import java.util.Arrays;
9import java.util.stream.Collectors;
4 10
5public record TupleN(int[] values) implements Tuple { 11import static tools.refinery.store.tuple.TupleConstants.*;
6 static final int CUSTOM_TUPLE_SIZE = 2;
7 12
8 public TupleN(int[] values) { 13public final class TupleN implements Tuple {
9 if (values.length < CUSTOM_TUPLE_SIZE) 14 private final int[] values;
10 throw new IllegalArgumentException(); 15
16 TupleN(int[] values) {
17 if (values.length < MAX_STATIC_ARITY_TUPLE_SIZE) {
18 throw new IllegalArgumentException("Tuples of size at most %d must use static arity Tuple classes"
19 .formatted(MAX_STATIC_ARITY_TUPLE_SIZE));
20 }
11 this.values = Arrays.copyOf(values, values.length); 21 this.values = Arrays.copyOf(values, values.length);
12 } 22 }
13 23
@@ -22,18 +32,11 @@ public record TupleN(int[] values) implements Tuple {
22 } 32 }
23 33
24 @Override 34 @Override
25 public int[] toArray() {
26 return values;
27 }
28
29 @Override
30 public String toString() { 35 public String toString() {
31 return TupleLike.toString(this); 36 var valuesString = Arrays.stream(values)
32 } 37 .mapToObj(Integer::toString)
33 38 .collect(Collectors.joining(TUPLE_SEPARATOR));
34 @Override 39 return TUPLE_BEGIN + valuesString + TUPLE_END;
35 public int hashCode() {
36 return Arrays.hashCode(values);
37 } 40 }
38 41
39 @Override 42 @Override
@@ -47,4 +50,9 @@ public record TupleN(int[] values) implements Tuple {
47 TupleN other = (TupleN) obj; 50 TupleN other = (TupleN) obj;
48 return Arrays.equals(values, other.values); 51 return Arrays.equals(values, other.values);
49 } 52 }
53
54 @Override
55 public int hashCode() {
56 return Arrays.hashCode(values);
57 }
50} 58}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/util/CollectionsUtil.java b/subprojects/store/src/main/java/tools/refinery/store/util/CollectionsUtil.java
index 841d0dfa..adecd79b 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/util/CollectionsUtil.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/util/CollectionsUtil.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.util; 6package tools.refinery.store.util;
2 7
3import java.util.Iterator; 8import java.util.Iterator;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/util/CycleDetectingMapper.java b/subprojects/store/src/main/java/tools/refinery/store/util/CycleDetectingMapper.java
index 8a151d01..78ad2ad7 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/util/CycleDetectingMapper.java
+++ b/subprojects/store/src/main/java/tools/refinery/store/util/CycleDetectingMapper.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.util; 6package tools.refinery.store.util;
2 7
3import java.util.*; 8import java.util.*;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java
index 77c62305..153f2e78 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests; 6package tools.refinery.store.map.tests;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java
index 1f9d022f..eabe5bd1 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import static org.junit.jupiter.api.Assertions.fail; 8import static org.junit.jupiter.api.Assertions.fail;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java
index 93ecfec3..b0502a2b 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import org.junit.jupiter.api.Tag; 8import org.junit.jupiter.api.Tag;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java
index e6334224..8274336e 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import static org.junit.jupiter.api.Assertions.fail; 8import static org.junit.jupiter.api.Assertions.fail;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java
index 1ab431a8..ab2b9435 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import static org.junit.jupiter.api.Assertions.assertEquals; 8import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadTestRunnable.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadTestRunnable.java
index f77f9ee5..502c8362 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadTestRunnable.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadTestRunnable.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import java.util.ArrayList; 8import java.util.ArrayList;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java
index d40c49c4..32dde0da 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import static org.junit.jupiter.api.Assertions.fail; 8import static org.junit.jupiter.api.Assertions.fail;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableImmutableCompareFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableImmutableCompareFuzzTest.java
index 410705a2..347c49be 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableImmutableCompareFuzzTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableImmutableCompareFuzzTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import static org.junit.jupiter.api.Assertions.fail; 8import static org.junit.jupiter.api.Assertions.fail;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java
index 2e29a03f..f7b9d61e 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import static org.junit.jupiter.api.Assertions.fail; 8import static org.junit.jupiter.api.Assertions.fail;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SharedStoreFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SharedStoreFuzzTest.java
index 914a0f63..4b4172d0 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SharedStoreFuzzTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SharedStoreFuzzTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz; 6package tools.refinery.store.map.tests.fuzz;
2 7
3import java.util.HashMap; 8import java.util.HashMap;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtils.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtils.java
index e75d7f5a..a819d348 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtils.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtils.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz.utils; 6package tools.refinery.store.map.tests.fuzz.utils;
2 7
3import java.util.Arrays; 8import java.util.Arrays;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtilsTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtilsTest.java
index 72f2a46c..dc621574 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtilsTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestUtilsTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.fuzz.utils; 6package tools.refinery.store.map.tests.fuzz.utils;
2 7
3import static org.junit.jupiter.api.Assertions.assertEquals; 8import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/utils/MapTestEnvironment.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/utils/MapTestEnvironment.java
index 2d03ebaf..f861f496 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/utils/MapTestEnvironment.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/utils/MapTestEnvironment.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.map.tests.utils; 6package tools.refinery.store.map.tests.utils;
2 7
3import tools.refinery.store.map.*; 8import tools.refinery.store.map.*;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/model/hashtests/HashEfficiencyTest.java b/subprojects/store/src/test/java/tools/refinery/store/model/hashtests/HashEfficiencyTest.java
index bb083805..4d4f5e26 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/model/hashtests/HashEfficiencyTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/model/hashtests/HashEfficiencyTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model.hashtests; 6package tools.refinery.store.model.hashtests;
2 7
3import static org.junit.jupiter.api.Assertions.assertEquals; 8import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/model/tests/ModelTest.java b/subprojects/store/src/test/java/tools/refinery/store/model/tests/ModelTest.java
index 9536a444..56b75804 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/model/tests/ModelTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/model/tests/ModelTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.model.tests; 6package tools.refinery.store.model.tests;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
@@ -9,27 +14,24 @@ import tools.refinery.store.tuple.Tuple;
9import static org.junit.jupiter.api.Assertions.*; 14import static org.junit.jupiter.api.Assertions.*;
10 15
11class ModelTest { 16class ModelTest {
17 private static final Symbol<Boolean> person = Symbol.of("Person", 1);
18 private static final Symbol<Integer> age = Symbol.of("age", 1, Integer.class);
19 private static final Symbol<Boolean> friend = Symbol.of("friend", 2);
20
12 @Test 21 @Test
13 void modelConstructionTest() { 22 void modelConstructionTest() {
14 var person = new Symbol<>("Person", 1, Boolean.class, false);
15 var friend = new Symbol<>("friend", 2, Boolean.class, false);
16
17 var store = ModelStore.builder().symbols(person, friend).build(); 23 var store = ModelStore.builder().symbols(person, friend).build();
18 var symbols = store.getSymbols(); 24 var symbols = store.getSymbols();
19 25
20 assertTrue(symbols.contains(person)); 26 assertTrue(symbols.contains(person));
21 assertTrue(symbols.contains(friend)); 27 assertTrue(symbols.contains(friend));
22 28
23 var other = new Symbol<>("other", 2, Integer.class, null); 29 var other = Symbol.of("other", 2, Integer.class);
24 assertFalse(symbols.contains(other)); 30 assertFalse(symbols.contains(other));
25 } 31 }
26 32
27 @Test 33 @Test
28 void modelBuildingTest() { 34 void modelBuildingTest() {
29 var person = new Symbol<>("Person", 1, Boolean.class, false);
30 var age = new Symbol<>("age", 1, Integer.class, null);
31 var friend = new Symbol<>("friend", 2, Boolean.class, false);
32
33 var store = ModelStore.builder().symbols(person, age, friend).build(); 35 var store = ModelStore.builder().symbols(person, age, friend).build();
34 var model = store.createEmptyModel(); 36 var model = store.createEmptyModel();
35 var personInterpretation = model.getInterpretation(person); 37 var personInterpretation = model.getInterpretation(person);
@@ -57,8 +59,6 @@ class ModelTest {
57 59
58 @Test 60 @Test
59 void modelBuildingArityFailTest() { 61 void modelBuildingArityFailTest() {
60 var person = new Symbol<>("Person", 1, Boolean.class, false);
61
62 var store = ModelStore.builder().symbols(person).build(); 62 var store = ModelStore.builder().symbols(person).build();
63 var model = store.createEmptyModel(); 63 var model = store.createEmptyModel();
64 var personInterpretation = model.getInterpretation(person); 64 var personInterpretation = model.getInterpretation(person);
@@ -70,8 +70,6 @@ class ModelTest {
70 70
71 @Test 71 @Test
72 void modelBuildingNullFailTest() { 72 void modelBuildingNullFailTest() {
73 var age = new Symbol<>("age", 1, Integer.class, null);
74
75 var store = ModelStore.builder().symbols(age).build(); 73 var store = ModelStore.builder().symbols(age).build();
76 var model = store.createEmptyModel(); 74 var model = store.createEmptyModel();
77 var ageInterpretation = model.getInterpretation(age); 75 var ageInterpretation = model.getInterpretation(age);
@@ -84,10 +82,6 @@ class ModelTest {
84 82
85 @Test 83 @Test
86 void modelUpdateTest() { 84 void modelUpdateTest() {
87 var person = new Symbol<>("Person", 1, Boolean.class, false);
88 var age = new Symbol<>("age", 1, Integer.class, null);
89 var friend = new Symbol<>("friend", 2, Boolean.class, false);
90
91 var store = ModelStore.builder().symbols(person, age, friend).build(); 85 var store = ModelStore.builder().symbols(person, age, friend).build();
92 var model = store.createEmptyModel(); 86 var model = store.createEmptyModel();
93 var personInterpretation = model.getInterpretation(person); 87 var personInterpretation = model.getInterpretation(person);
@@ -113,9 +107,6 @@ class ModelTest {
113 107
114 @Test 108 @Test
115 void restoreTest() { 109 void restoreTest() {
116 var person = new Symbol<>("Person", 1, Boolean.class, false);
117 var friend = new Symbol<>("friend", 2, Boolean.class, false);
118
119 var store = ModelStore.builder().symbols(person, friend).build(); 110 var store = ModelStore.builder().symbols(person, friend).build();
120 var model = store.createEmptyModel(); 111 var model = store.createEmptyModel();
121 var personInterpretation = model.getInterpretation(person); 112 var personInterpretation = model.getInterpretation(person);
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java
index 96fdc49e..6a66fa84 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java
index 4a9ef8da..9fe76159 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java
index e8b77b9f..24a788a8 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java
index 9a190818..6cf56fae 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java
index 90c21759..7c641c47 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java
index 3c7c0320..e61f7b36 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java
index e87ce29b..10b4dd20 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.representation.cardinality; 6package tools.refinery.store.representation.cardinality;
2 7
3import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/util/CollectionsUtilTests.java b/subprojects/store/src/test/java/tools/refinery/store/util/CollectionsUtilTests.java
index 171be0e5..8d50fa8a 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/util/CollectionsUtilTests.java
+++ b/subprojects/store/src/test/java/tools/refinery/store/util/CollectionsUtilTests.java
@@ -1,3 +1,8 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
1package tools.refinery.store.util; 6package tools.refinery.store.util;
2 7
3import static org.junit.jupiter.api.Assertions.assertEquals; 8import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/yarn.lock b/yarn.lock
index 082b1287..10f82f5c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5,13 +5,13 @@ __metadata:
5 version: 7 5 version: 7
6 cacheKey: 9 6 cacheKey: 9
7 7
8"@ampproject/remapping@npm:^2.1.0": 8"@ampproject/remapping@npm:^2.2.0":
9 version: 2.2.0 9 version: 2.2.1
10 resolution: "@ampproject/remapping@npm:2.2.0" 10 resolution: "@ampproject/remapping@npm:2.2.1"
11 dependencies: 11 dependencies:
12 "@jridgewell/gen-mapping": "npm:^0.1.0" 12 "@jridgewell/gen-mapping": "npm:^0.3.0"
13 "@jridgewell/trace-mapping": "npm:^0.3.9" 13 "@jridgewell/trace-mapping": "npm:^0.3.9"
14 checksum: 468104da656991a578ac6c9e074fe9e6a810c37e90106a738464c971a9cea37ae29c3752c8946f884a82da458597fdff57da70c4fca3fb560d29038132d2d524 14 checksum: a6e71b1b6bcffc909f5527899d9598f30cd7dc8c82845fba07c237232d4404795681dc9a2ff7e24e620415b8b8b60466ebd517f7c00bef53adf3a6a37d5a8f1b
15 languageName: node 15 languageName: node
16 linkType: hard 16 linkType: hard
17 17
@@ -28,53 +28,54 @@ __metadata:
28 languageName: node 28 languageName: node
29 linkType: hard 29 linkType: hard
30 30
31"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.18.6": 31"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.5":
32 version: 7.18.6 32 version: 7.22.5
33 resolution: "@babel/code-frame@npm:7.18.6" 33 resolution: "@babel/code-frame@npm:7.22.5"
34 dependencies: 34 dependencies:
35 "@babel/highlight": "npm:^7.18.6" 35 "@babel/highlight": "npm:^7.22.5"
36 checksum: eb27d165ea1c7c23e71a2a6f64225fe0ca0b2a39f5c0b57fda2a62dfa845799ca94886b08014f8fd4a711538cc6b1c89b9fc1dca6a5148893932bc03412ca848 36 checksum: 7dfb17395cb9715da9cc93eda0f9a3cca75189de3576b2bf2ee508bb8dcf0319a85d12d7b3957d103f67e2f1a90b4e10f74f3036349acf5e56e2838b70d9bc27
37 languageName: node 37 languageName: node
38 linkType: hard 38 linkType: hard
39 39
40"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.18.8, @babel/compat-data@npm:^7.20.0": 40"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.18.8, @babel/compat-data@npm:^7.22.5":
41 version: 7.20.0 41 version: 7.22.5
42 resolution: "@babel/compat-data@npm:7.20.0" 42 resolution: "@babel/compat-data@npm:7.22.5"
43 checksum: 326e505cf33b7182d215d47c1397062b809ebe1299c13e51d3be7cea3e774c73252e9e2dee0993caa19a5a2ff7837926c2e2c7cb9cc8bc97adf458b3e02eea12 43 checksum: 921389ebf9a902515adda9f08a0d84ab18303b31fc829cbc6c4a3b90ae38be54393473f4db323a646fa97871e977b59b67d94f25dd88f22574deffb89dd21186
44 languageName: node 44 languageName: node
45 linkType: hard 45 linkType: hard
46 46
47"@babel/core@npm:^7.11.1, @babel/core@npm:^7.19.3": 47"@babel/core@npm:^7.11.1, @babel/core@npm:^7.21.4":
48 version: 7.20.5 48 version: 7.22.5
49 resolution: "@babel/core@npm:7.20.5" 49 resolution: "@babel/core@npm:7.22.5"
50 dependencies: 50 dependencies:
51 "@ampproject/remapping": "npm:^2.1.0" 51 "@ampproject/remapping": "npm:^2.2.0"
52 "@babel/code-frame": "npm:^7.18.6" 52 "@babel/code-frame": "npm:^7.22.5"
53 "@babel/generator": "npm:^7.20.5" 53 "@babel/generator": "npm:^7.22.5"
54 "@babel/helper-compilation-targets": "npm:^7.20.0" 54 "@babel/helper-compilation-targets": "npm:^7.22.5"
55 "@babel/helper-module-transforms": "npm:^7.20.2" 55 "@babel/helper-module-transforms": "npm:^7.22.5"
56 "@babel/helpers": "npm:^7.20.5" 56 "@babel/helpers": "npm:^7.22.5"
57 "@babel/parser": "npm:^7.20.5" 57 "@babel/parser": "npm:^7.22.5"
58 "@babel/template": "npm:^7.18.10" 58 "@babel/template": "npm:^7.22.5"
59 "@babel/traverse": "npm:^7.20.5" 59 "@babel/traverse": "npm:^7.22.5"
60 "@babel/types": "npm:^7.20.5" 60 "@babel/types": "npm:^7.22.5"
61 convert-source-map: "npm:^1.7.0" 61 convert-source-map: "npm:^1.7.0"
62 debug: "npm:^4.1.0" 62 debug: "npm:^4.1.0"
63 gensync: "npm:^1.0.0-beta.2" 63 gensync: "npm:^1.0.0-beta.2"
64 json5: "npm:^2.2.1" 64 json5: "npm:^2.2.2"
65 semver: "npm:^6.3.0" 65 semver: "npm:^6.3.0"
66 checksum: f8d954631f28cb4b9a54300ba3f70199532fa9a7b4cdeb066a47c1333fa5d9d56e1206f436607d005566c6a0da5ddaf9058c03600fc65acf56fc98bb97338654 66 checksum: 4dd24af48f3d6d240ac1ee6850dd73a670d8f8466bf5a76e1d068a9d21f2dcfd82a34f54f25d15ba0f1f77813296074f0aecea6ea4a1302ac2a45d3eef185a6e
67 languageName: node 67 languageName: node
68 linkType: hard 68 linkType: hard
69 69
70"@babel/generator@npm:^7.20.5": 70"@babel/generator@npm:^7.22.5":
71 version: 7.20.5 71 version: 7.22.5
72 resolution: "@babel/generator@npm:7.20.5" 72 resolution: "@babel/generator@npm:7.22.5"
73 dependencies: 73 dependencies:
74 "@babel/types": "npm:^7.20.5" 74 "@babel/types": "npm:^7.22.5"
75 "@jridgewell/gen-mapping": "npm:^0.3.2" 75 "@jridgewell/gen-mapping": "npm:^0.3.2"
76 "@jridgewell/trace-mapping": "npm:^0.3.17"
76 jsesc: "npm:^2.5.1" 77 jsesc: "npm:^2.5.1"
77 checksum: 825c77cc4f4c54367e54b1feb04b89e8d3a48374b2a2199778f44acc32655bb7089bb0c12d71003a55810ee2b50bd650cc34b5640f4cfbf32347c6883a6cd39e 78 checksum: 752010702bf332ebcde03d3d88da4c6c95093dbb621f7d1bce830631f629fc061aad7520d1797a5c8a514c8374f21c0fa02bcae3bb4999cd9df9ed5d652f85f6
78 languageName: node 79 languageName: node
79 linkType: hard 80 linkType: hard
80 81
@@ -97,17 +98,18 @@ __metadata:
97 languageName: node 98 languageName: node
98 linkType: hard 99 linkType: hard
99 100
100"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0": 101"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.22.5":
101 version: 7.20.0 102 version: 7.22.5
102 resolution: "@babel/helper-compilation-targets@npm:7.20.0" 103 resolution: "@babel/helper-compilation-targets@npm:7.22.5"
103 dependencies: 104 dependencies:
104 "@babel/compat-data": "npm:^7.20.0" 105 "@babel/compat-data": "npm:^7.22.5"
105 "@babel/helper-validator-option": "npm:^7.18.6" 106 "@babel/helper-validator-option": "npm:^7.22.5"
106 browserslist: "npm:^4.21.3" 107 browserslist: "npm:^4.21.3"
108 lru-cache: "npm:^5.1.1"
107 semver: "npm:^6.3.0" 109 semver: "npm:^6.3.0"
108 peerDependencies: 110 peerDependencies:
109 "@babel/core": ^7.0.0 111 "@babel/core": ^7.0.0
110 checksum: c91dd175620b57c9ae8056b80461ed63e0f9bcc6c5b4c8ef613a2fda12789a694a90568f16c32b2aab4637046323f9da0575dc3ab9b383c1d0f67acb0847b40e 112 checksum: 680625c948e3872cb0974e7cb054eec206baa575d0bb4fe51d5fb795d94348c12d6e4f1719436ab8e6e140e57de28684ec8d635d4ff4407329fb0eab5c407a1a
111 languageName: node 113 languageName: node
112 linkType: hard 114 linkType: hard
113 115
@@ -156,10 +158,10 @@ __metadata:
156 languageName: node 158 languageName: node
157 linkType: hard 159 linkType: hard
158 160
159"@babel/helper-environment-visitor@npm:^7.18.9": 161"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.5":
160 version: 7.18.9 162 version: 7.22.5
161 resolution: "@babel/helper-environment-visitor@npm:7.18.9" 163 resolution: "@babel/helper-environment-visitor@npm:7.22.5"
162 checksum: 6a770ab046578d692f954213680f66d0764a92d608fcc121cf87c575223c44729fdebecc08550d0e18a5b22a3a72669c01de5351b6c1eff75a96b3167dbfe922 164 checksum: f48c0f5f4acc69b1f0e60b727145ce4625ad9b7d2dc2622fbc15f9414db0fe69140d2f4fb2e5791f8eba06b94d24db5c7d361d653ab2ab8d4f24113892bf98e6
163 languageName: node 165 languageName: node
164 linkType: hard 166 linkType: hard
165 167
@@ -172,22 +174,22 @@ __metadata:
172 languageName: node 174 languageName: node
173 linkType: hard 175 linkType: hard
174 176
175"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0": 177"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.22.5":
176 version: 7.19.0 178 version: 7.22.5
177 resolution: "@babel/helper-function-name@npm:7.19.0" 179 resolution: "@babel/helper-function-name@npm:7.22.5"
178 dependencies: 180 dependencies:
179 "@babel/template": "npm:^7.18.10" 181 "@babel/template": "npm:^7.22.5"
180 "@babel/types": "npm:^7.19.0" 182 "@babel/types": "npm:^7.22.5"
181 checksum: 65ba2eaad08ba73238aa4f11004a7e0f1d96a57c85863d53571741944986f55f334dfd9a59a3a477daefc7d31bd72df78a78673046082d6625888d3d357d36ed 183 checksum: ab66c2a9ab9e79a3a34f906d9fe4895ec5200d23417a06806cf01fbd38c64048f2ec399559222a1940e6b3769a0639d07d2f593aaafaf65de1ffb5876359e9c7
182 languageName: node 184 languageName: node
183 linkType: hard 185 linkType: hard
184 186
185"@babel/helper-hoist-variables@npm:^7.18.6": 187"@babel/helper-hoist-variables@npm:^7.18.6, @babel/helper-hoist-variables@npm:^7.22.5":
186 version: 7.18.6 188 version: 7.22.5
187 resolution: "@babel/helper-hoist-variables@npm:7.18.6" 189 resolution: "@babel/helper-hoist-variables@npm:7.22.5"
188 dependencies: 190 dependencies:
189 "@babel/types": "npm:^7.18.6" 191 "@babel/types": "npm:^7.22.5"
190 checksum: 462ef0d14fbe6861cee3a2c2bee1eff76d31ec94230c147684d55fa65351784c4afffaa62a8a540caec659d47ef5641707cdb99ce049f1bf2995cfcccace537a 192 checksum: 4df8aa58aebff5d80a12a8dad40220d69f900ef05f62dde1f52cbe162e1e7d4ab621b6352ab8e570e50ec1799ef34158f8b0050ec27fb393566faa68a9b05f3b
191 languageName: node 193 languageName: node
192 linkType: hard 194 linkType: hard
193 195
@@ -200,28 +202,28 @@ __metadata:
200 languageName: node 202 languageName: node
201 linkType: hard 203 linkType: hard
202 204
203"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6": 205"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.5":
204 version: 7.18.6 206 version: 7.22.5
205 resolution: "@babel/helper-module-imports@npm:7.18.6" 207 resolution: "@babel/helper-module-imports@npm:7.22.5"
206 dependencies: 208 dependencies:
207 "@babel/types": "npm:^7.18.6" 209 "@babel/types": "npm:^7.22.5"
208 checksum: 5c2d1987e4854abe7ca227d2e318b699c100dedc8ec45fe858755d5e9da8760ac136c0b1e669cc381f44eb79607b6f4ffcf7642e1aa84504389f9ca6065e8ee1 210 checksum: 5475de0bbd3611a38b8746a2c74495aaad560a283b6c647f9d044bb91bb9375fd8412ea8adae9d077a61d77af6a5138e40ab7f206a6403a2f15f87b9e0aa2aaa
209 languageName: node 211 languageName: node
210 linkType: hard 212 linkType: hard
211 213
212"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.18.9, @babel/helper-module-transforms@npm:^7.20.2": 214"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.18.9, @babel/helper-module-transforms@npm:^7.22.5":
213 version: 7.20.2 215 version: 7.22.5
214 resolution: "@babel/helper-module-transforms@npm:7.20.2" 216 resolution: "@babel/helper-module-transforms@npm:7.22.5"
215 dependencies: 217 dependencies:
216 "@babel/helper-environment-visitor": "npm:^7.18.9" 218 "@babel/helper-environment-visitor": "npm:^7.22.5"
217 "@babel/helper-module-imports": "npm:^7.18.6" 219 "@babel/helper-module-imports": "npm:^7.22.5"
218 "@babel/helper-simple-access": "npm:^7.20.2" 220 "@babel/helper-simple-access": "npm:^7.22.5"
219 "@babel/helper-split-export-declaration": "npm:^7.18.6" 221 "@babel/helper-split-export-declaration": "npm:^7.22.5"
220 "@babel/helper-validator-identifier": "npm:^7.19.1" 222 "@babel/helper-validator-identifier": "npm:^7.22.5"
221 "@babel/template": "npm:^7.18.10" 223 "@babel/template": "npm:^7.22.5"
222 "@babel/traverse": "npm:^7.20.1" 224 "@babel/traverse": "npm:^7.22.5"
223 "@babel/types": "npm:^7.20.2" 225 "@babel/types": "npm:^7.22.5"
224 checksum: c156af086f39d0529c4b830194d23fd3cc1d60eb072915c715690b5e347c62219e07b0d5e19c019b40e1d7102a892323cf597ed6c69ba027ce5ed1ec81d87c3f 226 checksum: 200649c6a786429aa877cb4d326ad9fccfc5a58e3da844e529ed607e683d2860bf594fa688572ffcf5437e81c0ffa082489d242fff02884a1f49cd956923c9b8
225 languageName: node 227 languageName: node
226 linkType: hard 228 linkType: hard
227 229
@@ -268,12 +270,12 @@ __metadata:
268 languageName: node 270 languageName: node
269 linkType: hard 271 linkType: hard
270 272
271"@babel/helper-simple-access@npm:^7.18.6, @babel/helper-simple-access@npm:^7.20.2": 273"@babel/helper-simple-access@npm:^7.18.6, @babel/helper-simple-access@npm:^7.22.5":
272 version: 7.20.2 274 version: 7.22.5
273 resolution: "@babel/helper-simple-access@npm:7.20.2" 275 resolution: "@babel/helper-simple-access@npm:7.22.5"
274 dependencies: 276 dependencies:
275 "@babel/types": "npm:^7.20.2" 277 "@babel/types": "npm:^7.22.5"
276 checksum: 23f8a82cba4bce49b71f91e07f5afbddc6622b2762ab9287d7d160134cd6f7d6364ce8a46762b6cd3cc6da6eaf2e6758166394036a7feedd762042d9ad94a533 278 checksum: 5a9c37a63b15f3495a46a39dea481043d0363db886117021225849ac4a06664fda9615d62ab6f836224d89fb43189f45b4f48c2057c2f4441b0da5daf6ac3f13
277 languageName: node 279 languageName: node
278 linkType: hard 280 linkType: hard
279 281
@@ -286,33 +288,33 @@ __metadata:
286 languageName: node 288 languageName: node
287 linkType: hard 289 linkType: hard
288 290
289"@babel/helper-split-export-declaration@npm:^7.18.6": 291"@babel/helper-split-export-declaration@npm:^7.18.6, @babel/helper-split-export-declaration@npm:^7.22.5":
290 version: 7.18.6 292 version: 7.22.5
291 resolution: "@babel/helper-split-export-declaration@npm:7.18.6" 293 resolution: "@babel/helper-split-export-declaration@npm:7.22.5"
292 dependencies: 294 dependencies:
293 "@babel/types": "npm:^7.18.6" 295 "@babel/types": "npm:^7.22.5"
294 checksum: a7834c5b54600542460aa278b0e988178ebe1905df856df909e4fdafffcaa05fc1688e5504a6f388ca1bc36dbdb78a56af422b4a7795876680451d86e55055b9 296 checksum: 2658ae9ae290ff800f05f7c5c7e3bf89bbee7e4f4098bf4645174a6ff863ecda8f7c7d9ee0cacf32eef00f7bb658d0cc62b398402dc02a08a5567ac4709117f7
295 languageName: node 297 languageName: node
296 linkType: hard 298 linkType: hard
297 299
298"@babel/helper-string-parser@npm:^7.19.4": 300"@babel/helper-string-parser@npm:^7.22.5":
299 version: 7.19.4 301 version: 7.22.5
300 resolution: "@babel/helper-string-parser@npm:7.19.4" 302 resolution: "@babel/helper-string-parser@npm:7.22.5"
301 checksum: a8646931cba0c2905b683b99879f02c8a516a6c702c9f46cc02f0a8e93ef6f01540f2e7017d8288b9c039e1c3316c7858309ea3d6e39fa78bd98859b338603ee 303 checksum: b998b01b4778859c301ede18aea41abb0dcd0497191bdb216aa561741fe74f8651a8d7a486d4151a448c44d37a5a8603c0296b4d4e2f5388989dd86003952ad4
302 languageName: node 304 languageName: node
303 linkType: hard 305 linkType: hard
304 306
305"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": 307"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.22.5":
306 version: 7.19.1 308 version: 7.22.5
307 resolution: "@babel/helper-validator-identifier@npm:7.19.1" 309 resolution: "@babel/helper-validator-identifier@npm:7.22.5"
308 checksum: 089fdf605ee8dfa3004cd84c69e655ff9ab8bdb4e7fa02bf0012db728c6247acb599ca1118d2f9124d7b417fc5793ee348f2da8bc64be230b3b13ba7cd4364cc 310 checksum: ae436e63eca3aa0a70575a1a5ae8234307fdfe3b5c720002899bf49833c3abcde2b9b188ed10905f2c39013a95e49cc8356dd589cae80e03b39c3370c3e9de75
309 languageName: node 311 languageName: node
310 linkType: hard 312 linkType: hard
311 313
312"@babel/helper-validator-option@npm:^7.18.6": 314"@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.22.5":
313 version: 7.18.6 315 version: 7.22.5
314 resolution: "@babel/helper-validator-option@npm:7.18.6" 316 resolution: "@babel/helper-validator-option@npm:7.22.5"
315 checksum: c32c6e5daa9b2e2cbee66477c652757add3a204fea24f486b3b630e1fb69df53591ddc8acf5c5bc30a157e7275e53e25b3fbafbe1d2fb21604ca09cd8d3d052c 317 checksum: d6b2f3a8995894f3b6ee58d4b6a64de3a0083b99553485988ba956e2925c6f85a4d1430ae48a0338dc6847cac486abdf9a4393c79c37d9be78cf821006438584
316 languageName: node 318 languageName: node
317 linkType: hard 319 linkType: hard
318 320
@@ -328,34 +330,34 @@ __metadata:
328 languageName: node 330 languageName: node
329 linkType: hard 331 linkType: hard
330 332
331"@babel/helpers@npm:^7.20.5": 333"@babel/helpers@npm:^7.22.5":
332 version: 7.20.6 334 version: 7.22.5
333 resolution: "@babel/helpers@npm:7.20.6" 335 resolution: "@babel/helpers@npm:7.22.5"
334 dependencies: 336 dependencies:
335 "@babel/template": "npm:^7.18.10" 337 "@babel/template": "npm:^7.22.5"
336 "@babel/traverse": "npm:^7.20.5" 338 "@babel/traverse": "npm:^7.22.5"
337 "@babel/types": "npm:^7.20.5" 339 "@babel/types": "npm:^7.22.5"
338 checksum: 954b1664cc16919cf303a19def1c5b24e58042d3cb77f358c993217a5328ff70a094338c14e39944861d74106e65357627a5e1b7a47310eba2f74314371374c2 340 checksum: bc83454d78040bf879954fe8bd002486b78abda61b008b8c730299e689b51aa454a54803b35976958599006817884560c0ab6ee31c78461cb023b1330a1e9d46
339 languageName: node 341 languageName: node
340 linkType: hard 342 linkType: hard
341 343
342"@babel/highlight@npm:^7.18.6": 344"@babel/highlight@npm:^7.22.5":
343 version: 7.18.6 345 version: 7.22.5
344 resolution: "@babel/highlight@npm:7.18.6" 346 resolution: "@babel/highlight@npm:7.22.5"
345 dependencies: 347 dependencies:
346 "@babel/helper-validator-identifier": "npm:^7.18.6" 348 "@babel/helper-validator-identifier": "npm:^7.22.5"
347 chalk: "npm:^2.0.0" 349 chalk: "npm:^2.0.0"
348 js-tokens: "npm:^4.0.0" 350 js-tokens: "npm:^4.0.0"
349 checksum: b8eeb1d38327c635004b3ae946ff334bb994334a5fdd874e216e62bbe3b8f8f10c901c3795c25db7c8e49eb5a56948b9dbe38c3800c4f977016402997dacedae 351 checksum: 7f2de83b67bac82c77dc3c2c708bdc315241e071b87152cb7ffee9c6bc90795cbb300f04775c3d1aefc935a115ce2b728da7fe1093b00138f968f5ad573eac4f
350 languageName: node 352 languageName: node
351 linkType: hard 353 linkType: hard
352 354
353"@babel/parser@npm:^7.18.10, @babel/parser@npm:^7.19.4, @babel/parser@npm:^7.20.5": 355"@babel/parser@npm:^7.19.4, @babel/parser@npm:^7.22.5":
354 version: 7.20.5 356 version: 7.22.5
355 resolution: "@babel/parser@npm:7.20.5" 357 resolution: "@babel/parser@npm:7.22.5"
356 bin: 358 bin:
357 parser: ./bin/babel-parser.js 359 parser: ./bin/babel-parser.js
358 checksum: c40fed9e76e84c95b39b23ac0f93434a5bffae18dae53ff0f2605b7b1723eaf7102a1426a4445de7e557df9e0f5d2e2ddbc89252ac35ece659c813b664758ba8 360 checksum: 38abd156629454242787f0ff5fb8fdfb8d007bf3bcd8b1a5ddbf293f712232489fc0808d18e763581ea6859c816f276abb4136372b7ce4e3d5082fde8a294f91
359 languageName: node 361 languageName: node
360 linkType: hard 362 linkType: hard
361 363
@@ -1233,49 +1235,49 @@ __metadata:
1233 languageName: node 1235 languageName: node
1234 linkType: hard 1236 linkType: hard
1235 1237
1236"@babel/template@npm:^7.18.10": 1238"@babel/template@npm:^7.18.10, @babel/template@npm:^7.22.5":
1237 version: 7.18.10 1239 version: 7.22.5
1238 resolution: "@babel/template@npm:7.18.10" 1240 resolution: "@babel/template@npm:7.22.5"
1239 dependencies: 1241 dependencies:
1240 "@babel/code-frame": "npm:^7.18.6" 1242 "@babel/code-frame": "npm:^7.22.5"
1241 "@babel/parser": "npm:^7.18.10" 1243 "@babel/parser": "npm:^7.22.5"
1242 "@babel/types": "npm:^7.18.10" 1244 "@babel/types": "npm:^7.22.5"
1243 checksum: 8d820647ae45c8fcc7d9c52bfb89f94bb96fc0d0fb71903b6619e176f6744be773a8d8ab0fcbb3e7208448ca71016580df2b1e40c685061154030f339e47e8df 1245 checksum: 6b06d6cb7b8437d609f0fca32f6ccb6c29e45c4180e364c009fbb6ca98d7e25340659321150badea2629231a84c8a3263ed78169e44424692c407c6a09ddbea9
1244 languageName: node 1246 languageName: node
1245 linkType: hard 1247 linkType: hard
1246 1248
1247"@babel/traverse@npm:^7.18.11, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.19.4, @babel/traverse@npm:^7.20.1, @babel/traverse@npm:^7.20.5": 1249"@babel/traverse@npm:^7.18.11, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.19.4, @babel/traverse@npm:^7.22.5":
1248 version: 7.20.5 1250 version: 7.22.5
1249 resolution: "@babel/traverse@npm:7.20.5" 1251 resolution: "@babel/traverse@npm:7.22.5"
1250 dependencies: 1252 dependencies:
1251 "@babel/code-frame": "npm:^7.18.6" 1253 "@babel/code-frame": "npm:^7.22.5"
1252 "@babel/generator": "npm:^7.20.5" 1254 "@babel/generator": "npm:^7.22.5"
1253 "@babel/helper-environment-visitor": "npm:^7.18.9" 1255 "@babel/helper-environment-visitor": "npm:^7.22.5"
1254 "@babel/helper-function-name": "npm:^7.19.0" 1256 "@babel/helper-function-name": "npm:^7.22.5"
1255 "@babel/helper-hoist-variables": "npm:^7.18.6" 1257 "@babel/helper-hoist-variables": "npm:^7.22.5"
1256 "@babel/helper-split-export-declaration": "npm:^7.18.6" 1258 "@babel/helper-split-export-declaration": "npm:^7.22.5"
1257 "@babel/parser": "npm:^7.20.5" 1259 "@babel/parser": "npm:^7.22.5"
1258 "@babel/types": "npm:^7.20.5" 1260 "@babel/types": "npm:^7.22.5"
1259 debug: "npm:^4.1.0" 1261 debug: "npm:^4.1.0"
1260 globals: "npm:^11.1.0" 1262 globals: "npm:^11.1.0"
1261 checksum: da0f160f6ef71c3cf0901fc2a491e803a8140e209eb3ff27d1f5ba380454e2ece67a21892e4aa591c053e827666bc13a47876edfa33809a7b2aeece11353e404 1263 checksum: 3c06ac5697d770d3feafd55e371ee06a52f7336c1ee7f7a165d28f77d36edd1ac2c7f7c4763d24d851c28e8d15009dfbf9401fecdf0a9f4404e9b489c5dd318e
1262 languageName: node 1264 languageName: node
1263 linkType: hard 1265 linkType: hard
1264 1266
1265"@babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.19.4, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": 1267"@babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.4, @babel/types@npm:^7.22.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
1266 version: 7.20.5 1268 version: 7.22.5
1267 resolution: "@babel/types@npm:7.20.5" 1269 resolution: "@babel/types@npm:7.22.5"
1268 dependencies: 1270 dependencies:
1269 "@babel/helper-string-parser": "npm:^7.19.4" 1271 "@babel/helper-string-parser": "npm:^7.22.5"
1270 "@babel/helper-validator-identifier": "npm:^7.19.1" 1272 "@babel/helper-validator-identifier": "npm:^7.22.5"
1271 to-fast-properties: "npm:^2.0.0" 1273 to-fast-properties: "npm:^2.0.0"
1272 checksum: c7f3c4ae2fa7d1c477a48094f9b0990747aea366bfdb1781095b88f66fbfdc3cd5045a23918eca0ffbc3323d84e674ce81f5f847a0efc17a97a3e268c5b8b456 1274 checksum: de48a2ae0e3765d0548e439432111c3e01176b6c3193bc155f0dc85f4b766421beced17871a676eab5dc29d8375bb47f77a0a33edb2d617a7a92db70f500eb05
1273 languageName: node 1275 languageName: node
1274 linkType: hard 1276 linkType: hard
1275 1277
1276"@codemirror/autocomplete@npm:^6.4.2": 1278"@codemirror/autocomplete@npm:^6.8.0":
1277 version: 6.4.2 1279 version: 6.8.0
1278 resolution: "@codemirror/autocomplete@npm:6.4.2" 1280 resolution: "@codemirror/autocomplete@npm:6.8.0"
1279 dependencies: 1281 dependencies:
1280 "@codemirror/language": "npm:^6.0.0" 1282 "@codemirror/language": "npm:^6.0.0"
1281 "@codemirror/state": "npm:^6.0.0" 1283 "@codemirror/state": "npm:^6.0.0"
@@ -1286,25 +1288,25 @@ __metadata:
1286 "@codemirror/state": ^6.0.0 1288 "@codemirror/state": ^6.0.0
1287 "@codemirror/view": ^6.0.0 1289 "@codemirror/view": ^6.0.0
1288 "@lezer/common": ^1.0.0 1290 "@lezer/common": ^1.0.0
1289 checksum: d87cb8f208a1c11877522caf93cc6528aff156d52c0ca43833c7789017fe9664c91c39790d4217e9c6ac822b3b523319ccd971ca951b389edd07d526ce70ef02 1291 checksum: 8f8116ea9ee7dcd3f00d985327ddca0dd9a070c5b096c0f1e9b14c682b34be482a36529695ee6c5a35f46cbe0e2cb7044facbf13ae0c189b2e194c5a03fe2637
1290 languageName: node 1292 languageName: node
1291 linkType: hard 1293 linkType: hard
1292 1294
1293"@codemirror/commands@npm:^6.2.2": 1295"@codemirror/commands@npm:^6.2.4":
1294 version: 6.2.2 1296 version: 6.2.4
1295 resolution: "@codemirror/commands@npm:6.2.2" 1297 resolution: "@codemirror/commands@npm:6.2.4"
1296 dependencies: 1298 dependencies:
1297 "@codemirror/language": "npm:^6.0.0" 1299 "@codemirror/language": "npm:^6.0.0"
1298 "@codemirror/state": "npm:^6.2.0" 1300 "@codemirror/state": "npm:^6.2.0"
1299 "@codemirror/view": "npm:^6.0.0" 1301 "@codemirror/view": "npm:^6.0.0"
1300 "@lezer/common": "npm:^1.0.0" 1302 "@lezer/common": "npm:^1.0.0"
1301 checksum: 079e661a0c9ac6eabb0a390ce643af29a35d9a5eeda512b392185d94f36f2493f46889b0e20d156cae6addf8e22746dbc14fcf2f87e151f15ec9995a96c42337 1303 checksum: 5f59ddddbc3b914239d33e8402acf42689b854918ff763e164789f88b3eadda47412879814494bc42db89e8cffbdf3d5de003cf651216a221ea0ebcf499c1f4f
1302 languageName: node 1304 languageName: node
1303 linkType: hard 1305 linkType: hard
1304 1306
1305"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.6.0": 1307"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.8.0":
1306 version: 6.6.0 1308 version: 6.8.0
1307 resolution: "@codemirror/language@npm:6.6.0" 1309 resolution: "@codemirror/language@npm:6.8.0"
1308 dependencies: 1310 dependencies:
1309 "@codemirror/state": "npm:^6.0.0" 1311 "@codemirror/state": "npm:^6.0.0"
1310 "@codemirror/view": "npm:^6.0.0" 1312 "@codemirror/view": "npm:^6.0.0"
@@ -1312,346 +1314,346 @@ __metadata:
1312 "@lezer/highlight": "npm:^1.0.0" 1314 "@lezer/highlight": "npm:^1.0.0"
1313 "@lezer/lr": "npm:^1.0.0" 1315 "@lezer/lr": "npm:^1.0.0"
1314 style-mod: "npm:^4.0.0" 1316 style-mod: "npm:^4.0.0"
1315 checksum: f0186b896733a44342c139ee7edd8be91192bb99f56cdda2b4b999636d4bc661618cfd97c6c4cc4581533cfa11be449adf9e6748b844f3dd54ed50d6161bb83e 1317 checksum: 9cc39f826b6841fb37f5a0418cb37a2ea34659524f316bf5223c102dcf7cccb069ed5a9630042dddc373d5259484d885d4a81d2f7879f840e1e1ecbefd7ef4ef
1316 languageName: node 1318 languageName: node
1317 linkType: hard 1319 linkType: hard
1318 1320
1319"@codemirror/lint@npm:^6.2.0": 1321"@codemirror/lint@npm:^6.2.2":
1320 version: 6.2.0 1322 version: 6.2.2
1321 resolution: "@codemirror/lint@npm:6.2.0" 1323 resolution: "@codemirror/lint@npm:6.2.2"
1322 dependencies: 1324 dependencies:
1323 "@codemirror/state": "npm:^6.0.0" 1325 "@codemirror/state": "npm:^6.0.0"
1324 "@codemirror/view": "npm:^6.0.0" 1326 "@codemirror/view": "npm:^6.0.0"
1325 crelt: "npm:^1.0.5" 1327 crelt: "npm:^1.0.5"
1326 checksum: 638e4b55a477580225e0f97045769891182756a5d74909b2a264dd8ca96d755d7687df88514f7c61abf17bf2ae6c2af927e18c6850169e9ae404489366f277b2 1328 checksum: 67781f016bfec4dd1ca734e7621b16fbdfdbc5cc4222ae04fe0691fdf3ea5b609b00081cfc652c6ee9594eef4861bc9e15dbe22fb5f9081e6b1b26c85f069852
1327 languageName: node 1329 languageName: node
1328 linkType: hard 1330 linkType: hard
1329 1331
1330"@codemirror/search@npm:^6.3.0": 1332"@codemirror/search@npm:^6.5.0":
1331 version: 6.3.0 1333 version: 6.5.0
1332 resolution: "@codemirror/search@npm:6.3.0" 1334 resolution: "@codemirror/search@npm:6.5.0"
1333 dependencies: 1335 dependencies:
1334 "@codemirror/state": "npm:^6.0.0" 1336 "@codemirror/state": "npm:^6.0.0"
1335 "@codemirror/view": "npm:^6.0.0" 1337 "@codemirror/view": "npm:^6.0.0"
1336 crelt: "npm:^1.0.5" 1338 crelt: "npm:^1.0.5"
1337 checksum: 1f098a1d2f194c6fdf2405938d5fb69d88a6ec9d5ceb1121b163f9f1db293c1c8d524ef41f3895bad379bc2540c4ba5f85f7d03711f0715a0fe4846545026bee 1339 checksum: dab4e51c1ad8bbacd932c0797f27727b935ce7cf155828a3747943fe091e3c91f7888463b4d43be28fb54c5d0c2df136e3d9be00bde3be1824dedb9116fd6c6b
1338 languageName: node 1340 languageName: node
1339 linkType: hard 1341 linkType: hard
1340 1342
1341"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.4, @codemirror/state@npm:^6.2.0": 1343"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.4, @codemirror/state@npm:^6.2.0, @codemirror/state@npm:^6.2.1":
1342 version: 6.2.0 1344 version: 6.2.1
1343 resolution: "@codemirror/state@npm:6.2.0" 1345 resolution: "@codemirror/state@npm:6.2.1"
1344 checksum: 03509c181faeb0bf23c841e2e6677d7a5ae1dd0085f58c659ddc4063aea80795cfae85726462654de8ab902c81ba69f091b81a279c2989b10d79b97e196a7e2c 1346 checksum: 8c9fb092cca960fc66c7997630d4406ebfbf972ba297af1bf8ed5c5fe070b33af2a63ff19caad0c4c75021c18303f0c4af42ae216bb708dfcea055763423d32f
1345 languageName: node 1347 languageName: node
1346 linkType: hard 1348 linkType: hard
1347 1349
1348"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.6.0, @codemirror/view@npm:^6.9.3": 1350"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.13.2, @codemirror/view@npm:^6.6.0":
1349 version: 6.9.3 1351 version: 6.13.2
1350 resolution: "@codemirror/view@npm:6.9.3" 1352 resolution: "@codemirror/view@npm:6.13.2"
1351 dependencies: 1353 dependencies:
1352 "@codemirror/state": "npm:^6.1.4" 1354 "@codemirror/state": "npm:^6.1.4"
1353 style-mod: "npm:^4.0.0" 1355 style-mod: "npm:^4.0.0"
1354 w3c-keyname: "npm:^2.2.4" 1356 w3c-keyname: "npm:^2.2.4"
1355 checksum: ab856cd03a87f4a045965ddb1cd051e2120898348593dafa8bd216e79d18f4b6250c463bb35b7ba4d235cfd319a54deecdc54d944e7830337a0145f5e1a21229 1357 checksum: 6a5bb38791cd43c6b4af495fa49e50986c338735c349a1164cd48bca75d6a693482592185a7f11c63c8e51745f95e92068c3bcf8cc61ab4efa421b716f1909df
1356 languageName: node 1358 languageName: node
1357 linkType: hard 1359 linkType: hard
1358 1360
1359"@emotion/babel-plugin@npm:^11.10.6": 1361"@emotion/babel-plugin@npm:^11.11.0":
1360 version: 11.10.6 1362 version: 11.11.0
1361 resolution: "@emotion/babel-plugin@npm:11.10.6" 1363 resolution: "@emotion/babel-plugin@npm:11.11.0"
1362 dependencies: 1364 dependencies:
1363 "@babel/helper-module-imports": "npm:^7.16.7" 1365 "@babel/helper-module-imports": "npm:^7.16.7"
1364 "@babel/runtime": "npm:^7.18.3" 1366 "@babel/runtime": "npm:^7.18.3"
1365 "@emotion/hash": "npm:^0.9.0" 1367 "@emotion/hash": "npm:^0.9.1"
1366 "@emotion/memoize": "npm:^0.8.0" 1368 "@emotion/memoize": "npm:^0.8.1"
1367 "@emotion/serialize": "npm:^1.1.1" 1369 "@emotion/serialize": "npm:^1.1.2"
1368 babel-plugin-macros: "npm:^3.1.0" 1370 babel-plugin-macros: "npm:^3.1.0"
1369 convert-source-map: "npm:^1.5.0" 1371 convert-source-map: "npm:^1.5.0"
1370 escape-string-regexp: "npm:^4.0.0" 1372 escape-string-regexp: "npm:^4.0.0"
1371 find-root: "npm:^1.1.0" 1373 find-root: "npm:^1.1.0"
1372 source-map: "npm:^0.5.7" 1374 source-map: "npm:^0.5.7"
1373 stylis: "npm:4.1.3" 1375 stylis: "npm:4.2.0"
1374 checksum: 859004f5af7b6d426d9ede5ba5917da51764f62bd4c915efd2f769dd8fb513a8c792c6e2fa5b3f50fe8101816220beb6fb6e93fb51310d83a038afed8247d05e 1376 checksum: 8016da0104e5d9546eba3eb9d66a58b1fb929e292b921501459923d189610fc2cb88d6838bea2f617e8c93b8a8763e418870f303c4acefc6c117ff8e9efe7cf6
1375 languageName: node 1377 languageName: node
1376 linkType: hard 1378 linkType: hard
1377 1379
1378"@emotion/cache@npm:^11.10.5": 1380"@emotion/cache@npm:^11.11.0":
1379 version: 11.10.5 1381 version: 11.11.0
1380 resolution: "@emotion/cache@npm:11.10.5" 1382 resolution: "@emotion/cache@npm:11.11.0"
1381 dependencies: 1383 dependencies:
1382 "@emotion/memoize": "npm:^0.8.0" 1384 "@emotion/memoize": "npm:^0.8.1"
1383 "@emotion/sheet": "npm:^1.2.1" 1385 "@emotion/sheet": "npm:^1.2.2"
1384 "@emotion/utils": "npm:^1.2.0" 1386 "@emotion/utils": "npm:^1.2.1"
1385 "@emotion/weak-memoize": "npm:^0.3.0" 1387 "@emotion/weak-memoize": "npm:^0.3.1"
1386 stylis: "npm:4.1.3" 1388 stylis: "npm:4.2.0"
1387 checksum: 40c744c5eea3d4438186ea4be71bf691cf3ac16774bda3d6d825960286fa35d735492ae881c028e01881101890f79568107877faefa58d027c760a4207ebe738 1389 checksum: 2564df3c1672e398f95ac47796817cc583d74b5c36f14413492e8cc16aa38393340b292e56e325398c7f975e27eced365a1da36919da8e57041259588f925cf9
1388 languageName: node 1390 languageName: node
1389 linkType: hard 1391 linkType: hard
1390 1392
1391"@emotion/hash@npm:^0.9.0": 1393"@emotion/hash@npm:^0.9.1":
1392 version: 0.9.0 1394 version: 0.9.1
1393 resolution: "@emotion/hash@npm:0.9.0" 1395 resolution: "@emotion/hash@npm:0.9.1"
1394 checksum: 30003d9e2e47ba1354ed4c5f8a5ea1b6a3b581c4ffbb916edb64036943f63206c7a553cabdbd5477435698cf7364ceb4901931611035fe35242764400c3b3f69 1396 checksum: 87587f4a5fd6667866d643293c860781a3ed10cc3cb6397c7de929c65ccb78756f43f2a7e99034dbb7a10dc22cc30d685e2bc6e8fdc9a020c61f450117d40089
1395 languageName: node 1397 languageName: node
1396 linkType: hard 1398 linkType: hard
1397 1399
1398"@emotion/is-prop-valid@npm:^1.2.0": 1400"@emotion/is-prop-valid@npm:^1.2.1":
1399 version: 1.2.0 1401 version: 1.2.1
1400 resolution: "@emotion/is-prop-valid@npm:1.2.0" 1402 resolution: "@emotion/is-prop-valid@npm:1.2.1"
1401 dependencies: 1403 dependencies:
1402 "@emotion/memoize": "npm:^0.8.0" 1404 "@emotion/memoize": "npm:^0.8.1"
1403 checksum: cb06940c166c33a075b5c8660d96ab56a91bf37d9a0cb28665bb6cad2528468f6833c58d745feb67154e5710f50aca341b34440afc188f25562025377758c6ff 1405 checksum: 04624e1cd72287c2f1143890605507f18cb22fb2f9111d89af56d88bea316c0a819040df9aeafa1b5f02facff31ada510e0d4efc1111ae0f4f8979f0da9b3966
1404 languageName: node 1406 languageName: node
1405 linkType: hard 1407 linkType: hard
1406 1408
1407"@emotion/memoize@npm:^0.8.0": 1409"@emotion/memoize@npm:^0.8.1":
1408 version: 0.8.0 1410 version: 0.8.1
1409 resolution: "@emotion/memoize@npm:0.8.0" 1411 resolution: "@emotion/memoize@npm:0.8.1"
1410 checksum: f6814c7588ff86f60818cfc08514d210d65651ba54ac306f9fdb66126f3f53ef4d895404822a42b36d0af771c842151c7a12bf855f23d40f46392aa55d14c9c1 1412 checksum: f9129e5c6d0fe36572c60eaa58fa7ca882f538440d9332d5f12a15aec8348095cdfd25092ee1af16b4bc55767aca56728411c26e2b0b3725e663039b842d3533
1411 languageName: node 1413 languageName: node
1412 linkType: hard 1414 linkType: hard
1413 1415
1414"@emotion/react@npm:^11.10.6": 1416"@emotion/react@npm:^11.11.1":
1415 version: 11.10.6 1417 version: 11.11.1
1416 resolution: "@emotion/react@npm:11.10.6" 1418 resolution: "@emotion/react@npm:11.11.1"
1417 dependencies: 1419 dependencies:
1418 "@babel/runtime": "npm:^7.18.3" 1420 "@babel/runtime": "npm:^7.18.3"
1419 "@emotion/babel-plugin": "npm:^11.10.6" 1421 "@emotion/babel-plugin": "npm:^11.11.0"
1420 "@emotion/cache": "npm:^11.10.5" 1422 "@emotion/cache": "npm:^11.11.0"
1421 "@emotion/serialize": "npm:^1.1.1" 1423 "@emotion/serialize": "npm:^1.1.2"
1422 "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.0" 1424 "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.1"
1423 "@emotion/utils": "npm:^1.2.0" 1425 "@emotion/utils": "npm:^1.2.1"
1424 "@emotion/weak-memoize": "npm:^0.3.0" 1426 "@emotion/weak-memoize": "npm:^0.3.1"
1425 hoist-non-react-statics: "npm:^3.3.1" 1427 hoist-non-react-statics: "npm:^3.3.1"
1426 peerDependencies: 1428 peerDependencies:
1427 react: ">=16.8.0" 1429 react: ">=16.8.0"
1428 peerDependenciesMeta: 1430 peerDependenciesMeta:
1429 "@types/react": 1431 "@types/react":
1430 optional: true 1432 optional: true
1431 checksum: b43bed600827bef5d5243bd141f25c66f18a1250e652ad7e32dae868a89290105df9e9f248e7e8f4f36879da75b397c5a1572e140a61a9d7a6c3b990c225c896 1433 checksum: beae1f42b138566242655f6c13a3b0a2301c0fa6ed7de09ad272dad8d7cedcab4d69d0314ca51a485342345f07ab6ebca74f2aac69cbe24cc9de552e7915d30a
1432 languageName: node 1434 languageName: node
1433 linkType: hard 1435 linkType: hard
1434 1436
1435"@emotion/serialize@npm:^1.1.1": 1437"@emotion/serialize@npm:^1.1.2":
1436 version: 1.1.1 1438 version: 1.1.2
1437 resolution: "@emotion/serialize@npm:1.1.1" 1439 resolution: "@emotion/serialize@npm:1.1.2"
1438 dependencies: 1440 dependencies:
1439 "@emotion/hash": "npm:^0.9.0" 1441 "@emotion/hash": "npm:^0.9.1"
1440 "@emotion/memoize": "npm:^0.8.0" 1442 "@emotion/memoize": "npm:^0.8.1"
1441 "@emotion/unitless": "npm:^0.8.0" 1443 "@emotion/unitless": "npm:^0.8.1"
1442 "@emotion/utils": "npm:^1.2.0" 1444 "@emotion/utils": "npm:^1.2.1"
1443 csstype: "npm:^3.0.2" 1445 csstype: "npm:^3.0.2"
1444 checksum: f09b37f7d808fd4b9b80d83c6d41052e8de28bd3232f6654b7f397b00040001b147b50b1a3e7edecc4b7669d7a42be22e5c00501c6a699ae3d6e4ad721354e18 1446 checksum: e681349d97968880271f840e9e79f672f5c331ac52c90600b9cf5994351711ffe837e0a187aeeccf9c600116b5eee02c9ada395455d246f494e714cae59c30df
1445 languageName: node 1447 languageName: node
1446 linkType: hard 1448 linkType: hard
1447 1449
1448"@emotion/sheet@npm:^1.2.1": 1450"@emotion/sheet@npm:^1.2.2":
1449 version: 1.2.1 1451 version: 1.2.2
1450 resolution: "@emotion/sheet@npm:1.2.1" 1452 resolution: "@emotion/sheet@npm:1.2.2"
1451 checksum: bf811e2557855c53daa3ffb3fdee3ce5da4b7f3f9fcf3be7571edb8388b437dd33afc831190bb473be6b1065276efea9b5ba2290589ea367510832d9d1f971e4 1453 checksum: b25ec606f076b95d9831feae4ac8bd527c13fab5a31e5a4533d1482eaa8d2620bda7f8d4d350388ed926633339e0feea0555ed175d08265cd1c6f51bc4bb6434
1452 languageName: node 1454 languageName: node
1453 linkType: hard 1455 linkType: hard
1454 1456
1455"@emotion/styled@npm:^11.10.6": 1457"@emotion/styled@npm:^11.11.0":
1456 version: 11.10.6 1458 version: 11.11.0
1457 resolution: "@emotion/styled@npm:11.10.6" 1459 resolution: "@emotion/styled@npm:11.11.0"
1458 dependencies: 1460 dependencies:
1459 "@babel/runtime": "npm:^7.18.3" 1461 "@babel/runtime": "npm:^7.18.3"
1460 "@emotion/babel-plugin": "npm:^11.10.6" 1462 "@emotion/babel-plugin": "npm:^11.11.0"
1461 "@emotion/is-prop-valid": "npm:^1.2.0" 1463 "@emotion/is-prop-valid": "npm:^1.2.1"
1462 "@emotion/serialize": "npm:^1.1.1" 1464 "@emotion/serialize": "npm:^1.1.2"
1463 "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.0" 1465 "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.1"
1464 "@emotion/utils": "npm:^1.2.0" 1466 "@emotion/utils": "npm:^1.2.1"
1465 peerDependencies: 1467 peerDependencies:
1466 "@emotion/react": ^11.0.0-rc.0 1468 "@emotion/react": ^11.0.0-rc.0
1467 react: ">=16.8.0" 1469 react: ">=16.8.0"
1468 peerDependenciesMeta: 1470 peerDependenciesMeta:
1469 "@types/react": 1471 "@types/react":
1470 optional: true 1472 optional: true
1471 checksum: a3d861dc9c3c01dfbea03f981516ccd8228415df65e485365b577e3e5572d1d54552381c0d9e9819a75ee1f496f06fe34f915455e427bed4c30b04dd8108b99f 1473 checksum: 3433979aad4515933563dc2f14c98802d33b771b5269d989f15f9d2458f0adc0235465a06d27bf51528d4e1d653ec57f8d0e0ecb50e58b39e72afe5a234170ed
1472 languageName: node 1474 languageName: node
1473 linkType: hard 1475 linkType: hard
1474 1476
1475"@emotion/unitless@npm:^0.8.0": 1477"@emotion/unitless@npm:^0.8.1":
1476 version: 0.8.0 1478 version: 0.8.1
1477 resolution: "@emotion/unitless@npm:0.8.0" 1479 resolution: "@emotion/unitless@npm:0.8.1"
1478 checksum: 9c9e96b7514c921f98b3da0c17b4a2aa9dbcb362a5f6f0994d854a87f68908c951af690ec78c7c581a2e0e8349099563e4818eecfb8471692615ea2a495fea46 1480 checksum: 6f28915658918cb969acb612c592490b012e7b1a894a232411147f4c810cc4667053479ef126d7deeab589fa4fa0f3b11b0a79e2f40447d550292cc7a6cc591b
1479 languageName: node 1481 languageName: node
1480 linkType: hard 1482 linkType: hard
1481 1483
1482"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0": 1484"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1":
1483 version: 1.0.0 1485 version: 1.0.1
1484 resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.0" 1486 resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1"
1485 peerDependencies: 1487 peerDependencies:
1486 react: ">=16.8.0" 1488 react: ">=16.8.0"
1487 checksum: 0eb56bf93a8b393824af749eb38ceb8216e9fe220ae241095e796d4be349bafb8f3be1111c976954dd0eed122d92d08d474371dcb3e99e3f349b03adea92c942 1489 checksum: 757b7a88000de88dc29e349c1d7d04f49aadf8cb3d5066b99ceb8201e4c3c12db9caf08df7b35ca3a7ca88dbe5a44872d8b7d6326838682cbc2d1b7ca5be4344
1488 languageName: node 1490 languageName: node
1489 linkType: hard 1491 linkType: hard
1490 1492
1491"@emotion/utils@npm:^1.2.0": 1493"@emotion/utils@npm:^1.2.1":
1492 version: 1.2.0 1494 version: 1.2.1
1493 resolution: "@emotion/utils@npm:1.2.0" 1495 resolution: "@emotion/utils@npm:1.2.1"
1494 checksum: a4d6eac30b641e01393f90fde80ebdafefbef5f86f44d002dc9190b313120c1a5e62be9eb8c8f84e37015fa6b505e9a4083393ede3158c0babf87c75f5e753ba 1496 checksum: d80f12813e9663a1dc9e824efe57000c3ca296aa5207029682854eee09d34c0395f462cf7b0d057b5460840ac65170053e0f6c57493069c982b8070d26dc79e0
1495 languageName: node 1497 languageName: node
1496 linkType: hard 1498 linkType: hard
1497 1499
1498"@emotion/weak-memoize@npm:^0.3.0": 1500"@emotion/weak-memoize@npm:^0.3.1":
1499 version: 0.3.0 1501 version: 0.3.1
1500 resolution: "@emotion/weak-memoize@npm:0.3.0" 1502 resolution: "@emotion/weak-memoize@npm:0.3.1"
1501 checksum: a54c661998fa78cf05db8dfd33b8e06512356e908954542665e1e487e7901724c6a10816ae714db02471d1c5715b980aecbceee32d92fc4c957e6909ee2f8ed8 1503 checksum: 64f8180e70c0717d7e0fadace95491c8d91c045a5a3a42a12e461efe38a109d56ca66d37a474f7a20835fcd61ed0ac35bda6bd5ebf8786171051acbcc53b0134
1502 languageName: node 1504 languageName: node
1503 linkType: hard 1505 linkType: hard
1504 1506
1505"@esbuild/android-arm64@npm:0.17.14": 1507"@esbuild/android-arm64@npm:0.17.19":
1506 version: 0.17.14 1508 version: 0.17.19
1507 resolution: "@esbuild/android-arm64@npm:0.17.14" 1509 resolution: "@esbuild/android-arm64@npm:0.17.19"
1508 conditions: os=android & cpu=arm64 1510 conditions: os=android & cpu=arm64
1509 languageName: node 1511 languageName: node
1510 linkType: hard 1512 linkType: hard
1511 1513
1512"@esbuild/android-arm@npm:0.17.14": 1514"@esbuild/android-arm@npm:0.17.19":
1513 version: 0.17.14 1515 version: 0.17.19
1514 resolution: "@esbuild/android-arm@npm:0.17.14" 1516 resolution: "@esbuild/android-arm@npm:0.17.19"
1515 conditions: os=android & cpu=arm 1517 conditions: os=android & cpu=arm
1516 languageName: node 1518 languageName: node
1517 linkType: hard 1519 linkType: hard
1518 1520
1519"@esbuild/android-x64@npm:0.17.14": 1521"@esbuild/android-x64@npm:0.17.19":
1520 version: 0.17.14 1522 version: 0.17.19
1521 resolution: "@esbuild/android-x64@npm:0.17.14" 1523 resolution: "@esbuild/android-x64@npm:0.17.19"
1522 conditions: os=android & cpu=x64 1524 conditions: os=android & cpu=x64
1523 languageName: node 1525 languageName: node
1524 linkType: hard 1526 linkType: hard
1525 1527
1526"@esbuild/darwin-arm64@npm:0.17.14": 1528"@esbuild/darwin-arm64@npm:0.17.19":
1527 version: 0.17.14 1529 version: 0.17.19
1528 resolution: "@esbuild/darwin-arm64@npm:0.17.14" 1530 resolution: "@esbuild/darwin-arm64@npm:0.17.19"
1529 conditions: os=darwin & cpu=arm64 1531 conditions: os=darwin & cpu=arm64
1530 languageName: node 1532 languageName: node
1531 linkType: hard 1533 linkType: hard
1532 1534
1533"@esbuild/darwin-x64@npm:0.17.14": 1535"@esbuild/darwin-x64@npm:0.17.19":
1534 version: 0.17.14 1536 version: 0.17.19
1535 resolution: "@esbuild/darwin-x64@npm:0.17.14" 1537 resolution: "@esbuild/darwin-x64@npm:0.17.19"
1536 conditions: os=darwin & cpu=x64 1538 conditions: os=darwin & cpu=x64
1537 languageName: node 1539 languageName: node
1538 linkType: hard 1540 linkType: hard
1539 1541
1540"@esbuild/freebsd-arm64@npm:0.17.14": 1542"@esbuild/freebsd-arm64@npm:0.17.19":
1541 version: 0.17.14 1543 version: 0.17.19
1542 resolution: "@esbuild/freebsd-arm64@npm:0.17.14" 1544 resolution: "@esbuild/freebsd-arm64@npm:0.17.19"
1543 conditions: os=freebsd & cpu=arm64 1545 conditions: os=freebsd & cpu=arm64
1544 languageName: node 1546 languageName: node
1545 linkType: hard 1547 linkType: hard
1546 1548
1547"@esbuild/freebsd-x64@npm:0.17.14": 1549"@esbuild/freebsd-x64@npm:0.17.19":
1548 version: 0.17.14 1550 version: 0.17.19
1549 resolution: "@esbuild/freebsd-x64@npm:0.17.14" 1551 resolution: "@esbuild/freebsd-x64@npm:0.17.19"
1550 conditions: os=freebsd & cpu=x64 1552 conditions: os=freebsd & cpu=x64
1551 languageName: node 1553 languageName: node
1552 linkType: hard 1554 linkType: hard
1553 1555
1554"@esbuild/linux-arm64@npm:0.17.14": 1556"@esbuild/linux-arm64@npm:0.17.19":
1555 version: 0.17.14 1557 version: 0.17.19
1556 resolution: "@esbuild/linux-arm64@npm:0.17.14" 1558 resolution: "@esbuild/linux-arm64@npm:0.17.19"
1557 conditions: os=linux & cpu=arm64 1559 conditions: os=linux & cpu=arm64
1558 languageName: node 1560 languageName: node
1559 linkType: hard 1561 linkType: hard
1560 1562
1561"@esbuild/linux-arm@npm:0.17.14": 1563"@esbuild/linux-arm@npm:0.17.19":
1562 version: 0.17.14 1564 version: 0.17.19
1563 resolution: "@esbuild/linux-arm@npm:0.17.14" 1565 resolution: "@esbuild/linux-arm@npm:0.17.19"
1564 conditions: os=linux & cpu=arm 1566 conditions: os=linux & cpu=arm
1565 languageName: node 1567 languageName: node
1566 linkType: hard 1568 linkType: hard
1567 1569
1568"@esbuild/linux-ia32@npm:0.17.14": 1570"@esbuild/linux-ia32@npm:0.17.19":
1569 version: 0.17.14 1571 version: 0.17.19
1570 resolution: "@esbuild/linux-ia32@npm:0.17.14" 1572 resolution: "@esbuild/linux-ia32@npm:0.17.19"
1571 conditions: os=linux & cpu=ia32 1573 conditions: os=linux & cpu=ia32
1572 languageName: node 1574 languageName: node
1573 linkType: hard 1575 linkType: hard
1574 1576
1575"@esbuild/linux-loong64@npm:0.17.14": 1577"@esbuild/linux-loong64@npm:0.17.19":
1576 version: 0.17.14 1578 version: 0.17.19
1577 resolution: "@esbuild/linux-loong64@npm:0.17.14" 1579 resolution: "@esbuild/linux-loong64@npm:0.17.19"
1578 conditions: os=linux & cpu=loong64 1580 conditions: os=linux & cpu=loong64
1579 languageName: node 1581 languageName: node
1580 linkType: hard 1582 linkType: hard
1581 1583
1582"@esbuild/linux-mips64el@npm:0.17.14": 1584"@esbuild/linux-mips64el@npm:0.17.19":
1583 version: 0.17.14 1585 version: 0.17.19
1584 resolution: "@esbuild/linux-mips64el@npm:0.17.14" 1586 resolution: "@esbuild/linux-mips64el@npm:0.17.19"
1585 conditions: os=linux & cpu=mips64el 1587 conditions: os=linux & cpu=mips64el
1586 languageName: node 1588 languageName: node
1587 linkType: hard 1589 linkType: hard
1588 1590
1589"@esbuild/linux-ppc64@npm:0.17.14": 1591"@esbuild/linux-ppc64@npm:0.17.19":
1590 version: 0.17.14 1592 version: 0.17.19
1591 resolution: "@esbuild/linux-ppc64@npm:0.17.14" 1593 resolution: "@esbuild/linux-ppc64@npm:0.17.19"
1592 conditions: os=linux & cpu=ppc64 1594 conditions: os=linux & cpu=ppc64
1593 languageName: node 1595 languageName: node
1594 linkType: hard 1596 linkType: hard
1595 1597
1596"@esbuild/linux-riscv64@npm:0.17.14": 1598"@esbuild/linux-riscv64@npm:0.17.19":
1597 version: 0.17.14 1599 version: 0.17.19
1598 resolution: "@esbuild/linux-riscv64@npm:0.17.14" 1600 resolution: "@esbuild/linux-riscv64@npm:0.17.19"
1599 conditions: os=linux & cpu=riscv64 1601 conditions: os=linux & cpu=riscv64
1600 languageName: node 1602 languageName: node
1601 linkType: hard 1603 linkType: hard
1602 1604
1603"@esbuild/linux-s390x@npm:0.17.14": 1605"@esbuild/linux-s390x@npm:0.17.19":
1604 version: 0.17.14 1606 version: 0.17.19
1605 resolution: "@esbuild/linux-s390x@npm:0.17.14" 1607 resolution: "@esbuild/linux-s390x@npm:0.17.19"
1606 conditions: os=linux & cpu=s390x 1608 conditions: os=linux & cpu=s390x
1607 languageName: node 1609 languageName: node
1608 linkType: hard 1610 linkType: hard
1609 1611
1610"@esbuild/linux-x64@npm:0.17.14": 1612"@esbuild/linux-x64@npm:0.17.19":
1611 version: 0.17.14 1613 version: 0.17.19
1612 resolution: "@esbuild/linux-x64@npm:0.17.14" 1614 resolution: "@esbuild/linux-x64@npm:0.17.19"
1613 conditions: os=linux & cpu=x64 1615 conditions: os=linux & cpu=x64
1614 languageName: node 1616 languageName: node
1615 linkType: hard 1617 linkType: hard
1616 1618
1617"@esbuild/netbsd-x64@npm:0.17.14": 1619"@esbuild/netbsd-x64@npm:0.17.19":
1618 version: 0.17.14 1620 version: 0.17.19
1619 resolution: "@esbuild/netbsd-x64@npm:0.17.14" 1621 resolution: "@esbuild/netbsd-x64@npm:0.17.19"
1620 conditions: os=netbsd & cpu=x64 1622 conditions: os=netbsd & cpu=x64
1621 languageName: node 1623 languageName: node
1622 linkType: hard 1624 linkType: hard
1623 1625
1624"@esbuild/openbsd-x64@npm:0.17.14": 1626"@esbuild/openbsd-x64@npm:0.17.19":
1625 version: 0.17.14 1627 version: 0.17.19
1626 resolution: "@esbuild/openbsd-x64@npm:0.17.14" 1628 resolution: "@esbuild/openbsd-x64@npm:0.17.19"
1627 conditions: os=openbsd & cpu=x64 1629 conditions: os=openbsd & cpu=x64
1628 languageName: node 1630 languageName: node
1629 linkType: hard 1631 linkType: hard
1630 1632
1631"@esbuild/sunos-x64@npm:0.17.14": 1633"@esbuild/sunos-x64@npm:0.17.19":
1632 version: 0.17.14 1634 version: 0.17.19
1633 resolution: "@esbuild/sunos-x64@npm:0.17.14" 1635 resolution: "@esbuild/sunos-x64@npm:0.17.19"
1634 conditions: os=sunos & cpu=x64 1636 conditions: os=sunos & cpu=x64
1635 languageName: node 1637 languageName: node
1636 linkType: hard 1638 linkType: hard
1637 1639
1638"@esbuild/win32-arm64@npm:0.17.14": 1640"@esbuild/win32-arm64@npm:0.17.19":
1639 version: 0.17.14 1641 version: 0.17.19
1640 resolution: "@esbuild/win32-arm64@npm:0.17.14" 1642 resolution: "@esbuild/win32-arm64@npm:0.17.19"
1641 conditions: os=win32 & cpu=arm64 1643 conditions: os=win32 & cpu=arm64
1642 languageName: node 1644 languageName: node
1643 linkType: hard 1645 linkType: hard
1644 1646
1645"@esbuild/win32-ia32@npm:0.17.14": 1647"@esbuild/win32-ia32@npm:0.17.19":
1646 version: 0.17.14 1648 version: 0.17.19
1647 resolution: "@esbuild/win32-ia32@npm:0.17.14" 1649 resolution: "@esbuild/win32-ia32@npm:0.17.19"
1648 conditions: os=win32 & cpu=ia32 1650 conditions: os=win32 & cpu=ia32
1649 languageName: node 1651 languageName: node
1650 linkType: hard 1652 linkType: hard
1651 1653
1652"@esbuild/win32-x64@npm:0.17.14": 1654"@esbuild/win32-x64@npm:0.17.19":
1653 version: 0.17.14 1655 version: 0.17.19
1654 resolution: "@esbuild/win32-x64@npm:0.17.14" 1656 resolution: "@esbuild/win32-x64@npm:0.17.19"
1655 conditions: os=win32 & cpu=x64 1657 conditions: os=win32 & cpu=x64
1656 languageName: node 1658 languageName: node
1657 linkType: hard 1659 linkType: hard
@@ -1674,59 +1676,52 @@ __metadata:
1674 languageName: node 1676 languageName: node
1675 linkType: hard 1677 linkType: hard
1676 1678
1677"@eslint/eslintrc@npm:^2.0.2": 1679"@eslint/eslintrc@npm:^2.0.3":
1678 version: 2.0.2 1680 version: 2.0.3
1679 resolution: "@eslint/eslintrc@npm:2.0.2" 1681 resolution: "@eslint/eslintrc@npm:2.0.3"
1680 dependencies: 1682 dependencies:
1681 ajv: "npm:^6.12.4" 1683 ajv: "npm:^6.12.4"
1682 debug: "npm:^4.3.2" 1684 debug: "npm:^4.3.2"
1683 espree: "npm:^9.5.1" 1685 espree: "npm:^9.5.2"
1684 globals: "npm:^13.19.0" 1686 globals: "npm:^13.19.0"
1685 ignore: "npm:^5.2.0" 1687 ignore: "npm:^5.2.0"
1686 import-fresh: "npm:^3.2.1" 1688 import-fresh: "npm:^3.2.1"
1687 js-yaml: "npm:^4.1.0" 1689 js-yaml: "npm:^4.1.0"
1688 minimatch: "npm:^3.1.2" 1690 minimatch: "npm:^3.1.2"
1689 strip-json-comments: "npm:^3.1.1" 1691 strip-json-comments: "npm:^3.1.1"
1690 checksum: 95c94b88d32373e07b14c6697df329f952ad79b0d8a1388f90e7753dfaba4c17d80295c9537e812056385a93b09971108a4c647d56e2c81e0856e9968d4062ac 1692 checksum: 41c404e8cbca6e0717bce15425f15d34514c38ebcef5daf99467d405733bae73908227feea4d04edc64906e89cc53f30391c31864a5e51b3d3838a05a3a97356
1691 languageName: node 1693 languageName: node
1692 linkType: hard 1694 linkType: hard
1693 1695
1694"@eslint/js@npm:8.37.0": 1696"@eslint/js@npm:8.43.0":
1695 version: 8.37.0 1697 version: 8.43.0
1696 resolution: "@eslint/js@npm:8.37.0" 1698 resolution: "@eslint/js@npm:8.43.0"
1697 checksum: 4c2ec3cc0eed454e101d91402334cbb75c96e326960fab0326e2fb9a7d2fb137fd9047bcf5bf6114204dc1d43e7027bf02fd676f2806aa95bd5714c79cfdd821 1699 checksum: 3231c88eee1cb8c8b77771eed89d99a26e8d813bc0ada47fbdadaff1a16cbd74000633f4411a74c3d7cc71629f78da177060b369ce6aac461568712175c2ce8c
1698 languageName: node 1700 languageName: node
1699 linkType: hard 1701 linkType: hard
1700 1702
1701"@fontsource/inter@npm:^4.5.15": 1703"@fontsource-variable/inter@npm:^5.0.3":
1702 version: 4.5.15 1704 version: 5.0.3
1703 resolution: "@fontsource/inter@npm:4.5.15" 1705 resolution: "@fontsource-variable/inter@npm:5.0.3"
1704 checksum: d5d9e6f074030452c8ab966a606e029ceea7ea3a2ab3f74ece100ff8c9bb94c41540521df78a3ad5d177746b2a16eeb506784541a2a7f7fd3ac128e7b51916f3 1706 checksum: fafef9eba436bb20803966b47de1ed0bb54aec421d7c979fa2bf5183ea16724f3f11e8c2ac90e7fd5b7941819beafb94648471daa338de32f95c3ca885249e3f
1705 languageName: node
1706 linkType: hard
1707
1708"@fontsource/jetbrains-mono@npm:^4.5.12":
1709 version: 4.5.12
1710 resolution: "@fontsource/jetbrains-mono@npm:4.5.12"
1711 checksum: 23a3d354e8ddf10993e3b1e588dc791ff04da93e3a2de38d12df7041033d5ca0e20d08b4b708f8482b49ba43602d28e45ab19750858aa7a6b1d7df3c70bd4156
1712 languageName: node 1707 languageName: node
1713 linkType: hard 1708 linkType: hard
1714 1709
1715"@gar/promisify@npm:^1.1.3": 1710"@fontsource-variable/jetbrains-mono@npm:^5.0.3":
1716 version: 1.1.3 1711 version: 5.0.4
1717 resolution: "@gar/promisify@npm:1.1.3" 1712 resolution: "@fontsource-variable/jetbrains-mono@npm:5.0.4"
1718 checksum: 3fadc40481a783ddb90397f5759f92650b57465f7a4a778056bd24b47060595012e9181a55ae547d57a893d37d9776abe9e368f1f6918e37225eb6a83f9a75f8 1713 checksum: 5e3559b3c2186f6c3f3f73b1fac0d0b296a7d1ccb709da6d7557cbe5dcdb8f6a22f0a2b21cbdd2a29d718a9252ff723074708d07b38d79240b6b390137228109
1719 languageName: node 1714 languageName: node
1720 linkType: hard 1715 linkType: hard
1721 1716
1722"@humanwhocodes/config-array@npm:^0.11.8": 1717"@humanwhocodes/config-array@npm:^0.11.10":
1723 version: 0.11.8 1718 version: 0.11.10
1724 resolution: "@humanwhocodes/config-array@npm:0.11.8" 1719 resolution: "@humanwhocodes/config-array@npm:0.11.10"
1725 dependencies: 1720 dependencies:
1726 "@humanwhocodes/object-schema": "npm:^1.2.1" 1721 "@humanwhocodes/object-schema": "npm:^1.2.1"
1727 debug: "npm:^4.1.1" 1722 debug: "npm:^4.1.1"
1728 minimatch: "npm:^3.0.5" 1723 minimatch: "npm:^3.0.5"
1729 checksum: 010892ba3c237e96562df1f21a7e04b611274f2c91b4df6c8263eb7d2ffcec3a5bfcab67b13d9c4acc8a2e3f94cb61d7ced772ecd445b226fb41b88c93e9194c 1724 checksum: d8b3afa90dc46f4cbad48dd54e9bb39918a01fbfb16cc931fb55db8c967c1575fc21d4a5f8055f4728697246eafafc95e23c97370ff30ada621f4b581bed3f9d
1730 languageName: node 1725 languageName: node
1731 linkType: hard 1726 linkType: hard
1732 1727
@@ -1744,13 +1739,17 @@ __metadata:
1744 languageName: node 1739 languageName: node
1745 linkType: hard 1740 linkType: hard
1746 1741
1747"@jridgewell/gen-mapping@npm:^0.1.0": 1742"@isaacs/cliui@npm:^8.0.2":
1748 version: 0.1.1 1743 version: 8.0.2
1749 resolution: "@jridgewell/gen-mapping@npm:0.1.1" 1744 resolution: "@isaacs/cliui@npm:8.0.2"
1750 dependencies: 1745 dependencies:
1751 "@jridgewell/set-array": "npm:^1.0.0" 1746 string-width: "npm:^5.1.2"
1752 "@jridgewell/sourcemap-codec": "npm:^1.4.10" 1747 string-width-cjs: "npm:string-width@^4.2.0"
1753 checksum: 5e4c9ef71682a0d827050cc53f10308825f8a0930ab2b54094381de293f92a53b290091fbe910c17048eae31c1b99c5ef8474ae8267192f83b40023619367331 1748 strip-ansi: "npm:^7.0.1"
1749 strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
1750 wrap-ansi: "npm:^8.1.0"
1751 wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
1752 checksum: b9a4e369729f32ccce5b5764a574da6bbaee7e746c2d9cf35a3701c2907ba82f9bf456602ebd23df537b418fd611d54eb5c5a8ee7d8841dc5dc16c28ede0b258
1754 languageName: node 1753 languageName: node
1755 linkType: hard 1754 linkType: hard
1756 1755
@@ -1765,81 +1764,81 @@ __metadata:
1765 languageName: node 1764 languageName: node
1766 linkType: hard 1765 linkType: hard
1767 1766
1768"@jridgewell/resolve-uri@npm:^3.0.3": 1767"@jridgewell/resolve-uri@npm:3.1.0":
1769 version: 3.1.0 1768 version: 3.1.0
1770 resolution: "@jridgewell/resolve-uri@npm:3.1.0" 1769 resolution: "@jridgewell/resolve-uri@npm:3.1.0"
1771 checksum: 6b641bb7e25bc92a9848898cc91a77a390f393f086297ec2336d911387bdd708919c418e74a22732cfc21d0e7300b94306f437d2e9de5ab58b33ebc6c39d6f9d 1770 checksum: 6b641bb7e25bc92a9848898cc91a77a390f393f086297ec2336d911387bdd708919c418e74a22732cfc21d0e7300b94306f437d2e9de5ab58b33ebc6c39d6f9d
1772 languageName: node 1771 languageName: node
1773 linkType: hard 1772 linkType: hard
1774 1773
1775"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": 1774"@jridgewell/set-array@npm:^1.0.1":
1776 version: 1.1.2 1775 version: 1.1.2
1777 resolution: "@jridgewell/set-array@npm:1.1.2" 1776 resolution: "@jridgewell/set-array@npm:1.1.2"
1778 checksum: e7e3f00d10622a6e48cc59041537f99972ed110dca8bfdf575be101c5920d4e4d4fab315d601df9aebbd6b97f4ce857f0347902701ed034a0627ca554b64db0f 1777 checksum: e7e3f00d10622a6e48cc59041537f99972ed110dca8bfdf575be101c5920d4e4d4fab315d601df9aebbd6b97f4ce857f0347902701ed034a0627ca554b64db0f
1779 languageName: node 1778 languageName: node
1780 linkType: hard 1779 linkType: hard
1781 1780
1782"@jridgewell/source-map@npm:^0.3.2": 1781"@jridgewell/source-map@npm:^0.3.3":
1783 version: 0.3.2 1782 version: 0.3.3
1784 resolution: "@jridgewell/source-map@npm:0.3.2" 1783 resolution: "@jridgewell/source-map@npm:0.3.3"
1785 dependencies: 1784 dependencies:
1786 "@jridgewell/gen-mapping": "npm:^0.3.0" 1785 "@jridgewell/gen-mapping": "npm:^0.3.0"
1787 "@jridgewell/trace-mapping": "npm:^0.3.9" 1786 "@jridgewell/trace-mapping": "npm:^0.3.9"
1788 checksum: 66bb5d5cac95793717fea6cfe45c02c0e493f39c320cdaee030a39de033a961cfcb2f5bf105150eb8fada65b6654e72e33efae35349fbaca897414a17c984c34 1787 checksum: a74e3e9d227c24e0918f10cf9d5cce54dc7a8eb3bca07cc4b0a5969baeb026d112511d94dc5822e3c502fbe2ee98ad0a985c29f158ceccb61798b113c1e0c74e
1789 languageName: node 1788 languageName: node
1790 linkType: hard 1789 linkType: hard
1791 1790
1792"@jridgewell/sourcemap-codec@npm:^1.4.10": 1791"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10":
1793 version: 1.4.14 1792 version: 1.4.14
1794 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" 1793 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14"
1795 checksum: 2147ea75c966fed8a7d9ed6679b7e8c380fa790a9bea5a64f4ec1c26d24e44b461aa60fc3b228cea03a46708d9d1bcf19508035bf27ad5e8f63d0998ed1d1117 1794 checksum: 2147ea75c966fed8a7d9ed6679b7e8c380fa790a9bea5a64f4ec1c26d24e44b461aa60fc3b228cea03a46708d9d1bcf19508035bf27ad5e8f63d0998ed1d1117
1796 languageName: node 1795 languageName: node
1797 linkType: hard 1796 linkType: hard
1798 1797
1799"@jridgewell/trace-mapping@npm:^0.3.9": 1798"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9":
1800 version: 0.3.14 1799 version: 0.3.18
1801 resolution: "@jridgewell/trace-mapping@npm:0.3.14" 1800 resolution: "@jridgewell/trace-mapping@npm:0.3.18"
1802 dependencies: 1801 dependencies:
1803 "@jridgewell/resolve-uri": "npm:^3.0.3" 1802 "@jridgewell/resolve-uri": "npm:3.1.0"
1804 "@jridgewell/sourcemap-codec": "npm:^1.4.10" 1803 "@jridgewell/sourcemap-codec": "npm:1.4.14"
1805 checksum: 210642773f70bb3cf349ef237c08d6c70f456d19a4d1940acdbd1cffe67b29fe2742821028aeb63f9d26d203f44b1ab0d0ca6b326f0415230b79cfd3f0ccbd6a 1804 checksum: 56cd5d76d2717f31ccab224094d2cd92918aa612a070f63738160e857045bde2bd9b247aba6147f3ed15b9dd056b4231c6b5f6d6cc7e624f1ad37bda1d49365c
1806 languageName: node 1805 languageName: node
1807 linkType: hard 1806 linkType: hard
1808 1807
1809"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2": 1808"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.0.3":
1810 version: 1.0.2 1809 version: 1.0.3
1811 resolution: "@lezer/common@npm:1.0.2" 1810 resolution: "@lezer/common@npm:1.0.3"
1812 checksum: 708a819b2b534b381dfc419a4dc4a3db465d828c937ebe5449fdf55529d14680475aca3e82677fd3c01ccaaaeb66689371dbd8e62d212fe20372a581e9a4284f 1811 checksum: 04a7c163ab7ebebf6497799e6c327f64e9da442ed045bae3e59201918b96f8d01c2ad9263487d935e4d0a65fcafc3628cbb71d448377b1086f7f6db7323ff54d
1813 languageName: node 1812 languageName: node
1814 linkType: hard 1813 linkType: hard
1815 1814
1816"@lezer/generator@npm:^1.2.2": 1815"@lezer/generator@npm:^1.3.0":
1817 version: 1.2.2 1816 version: 1.3.0
1818 resolution: "@lezer/generator@npm:1.2.2" 1817 resolution: "@lezer/generator@npm:1.3.0"
1819 dependencies: 1818 dependencies:
1820 "@lezer/common": "npm:^1.0.2" 1819 "@lezer/common": "npm:^1.0.2"
1821 "@lezer/lr": "npm:^1.3.0" 1820 "@lezer/lr": "npm:^1.3.0"
1822 bin: 1821 bin:
1823 lezer-generator: dist/lezer-generator.cjs 1822 lezer-generator: dist/lezer-generator.cjs
1824 checksum: d202bac5119f799f2b640d6d69317d2344cbe7bce23cfd3b2b540f4304f8e43383d80e4772eafb86ddd6faffcaf134074f854d5f2a109c4f5aab11b1576ab4c0 1823 checksum: 42da63930b6a7724e24b30141b958bb3016357bc50bb0dcc468f224a329110dd82d9423589d038d98e895abc00babc8ddeb1f805e9d1d18e780996f20e3d04a1
1825 languageName: node 1824 languageName: node
1826 linkType: hard 1825 linkType: hard
1827 1826
1828"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.4": 1827"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.6":
1829 version: 1.1.4 1828 version: 1.1.6
1830 resolution: "@lezer/highlight@npm:1.1.4" 1829 resolution: "@lezer/highlight@npm:1.1.6"
1831 dependencies: 1830 dependencies:
1832 "@lezer/common": "npm:^1.0.0" 1831 "@lezer/common": "npm:^1.0.0"
1833 checksum: 226d43d12d2237e9b0f6a3765034e37c27e3c4a55faa7ec0a7cc241cb2961f4faee7a048930b5f2168985d0241d14714cd8e88a68e1f77be554ff609fa5a51b0 1832 checksum: fc872ec55c6109f1fff8a8653c22ba46454ba09abb3df4bfac899882329fa3f26240332c781326f94f9baadceb3f174b1d35ec5e1e9dc5fcb883725e8c8fcc19
1834 languageName: node 1833 languageName: node
1835 linkType: hard 1834 linkType: hard
1836 1835
1837"@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.3.0, @lezer/lr@npm:^1.3.3": 1836"@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.3.0, @lezer/lr@npm:^1.3.6":
1838 version: 1.3.3 1837 version: 1.3.6
1839 resolution: "@lezer/lr@npm:1.3.3" 1838 resolution: "@lezer/lr@npm:1.3.6"
1840 dependencies: 1839 dependencies:
1841 "@lezer/common": "npm:^1.0.0" 1840 "@lezer/common": "npm:^1.0.0"
1842 checksum: c0fd653f4bdb1c6f5b4735cd279c2cdc9db3d1db52683f328c9b1b93ac5bd09b5c59115d4f2d569b2c8f2a853ff0c5868ae4ea347fb18cf17e9cdcd4a6c04152 1841 checksum: 91f07a42c3fbe9a4e5d964f402a20496a06894fe468764d7629c880b27dfbd7d6a8fe0b6a15bc45ce5a3dc448c20b06d767f6997747d4277d59474300fb522bc
1843 languageName: node 1842 languageName: node
1844 linkType: hard 1843 linkType: hard
1845 1844
@@ -1850,15 +1849,15 @@ __metadata:
1850 languageName: node 1849 languageName: node
1851 linkType: hard 1850 linkType: hard
1852 1851
1853"@mui/base@npm:5.0.0-alpha.123": 1852"@mui/base@npm:5.0.0-beta.4":
1854 version: 5.0.0-alpha.123 1853 version: 5.0.0-beta.4
1855 resolution: "@mui/base@npm:5.0.0-alpha.123" 1854 resolution: "@mui/base@npm:5.0.0-beta.4"
1856 dependencies: 1855 dependencies:
1857 "@babel/runtime": "npm:^7.21.0" 1856 "@babel/runtime": "npm:^7.21.0"
1858 "@emotion/is-prop-valid": "npm:^1.2.0" 1857 "@emotion/is-prop-valid": "npm:^1.2.1"
1859 "@mui/types": "npm:^7.2.3" 1858 "@mui/types": "npm:^7.2.4"
1860 "@mui/utils": "npm:^5.11.13" 1859 "@mui/utils": "npm:^5.13.1"
1861 "@popperjs/core": "npm:^2.11.7" 1860 "@popperjs/core": "npm:^2.11.8"
1862 clsx: "npm:^1.2.1" 1861 clsx: "npm:^1.2.1"
1863 prop-types: "npm:^15.8.1" 1862 prop-types: "npm:^15.8.1"
1864 react-is: "npm:^18.2.0" 1863 react-is: "npm:^18.2.0"
@@ -1869,20 +1868,20 @@ __metadata:
1869 peerDependenciesMeta: 1868 peerDependenciesMeta:
1870 "@types/react": 1869 "@types/react":
1871 optional: true 1870 optional: true
1872 checksum: 85e446722e14ec8d4e1c70dc1c245e4c952d967b2f5c939f48fa4b88ec16c0bd02a4ee7e1e9a9738b2ab55a61d6bc860d8f5b9c612cb414ba2d7a763edb33186 1871 checksum: e1658227e72881f7b5d34b56bf4dc475f1344efd1ce6c6535dab181d7305e0789b1d58180ac66973c88e1dd64c11c845fb575bc90d6f3ef8c8899cda699559e9
1873 languageName: node 1872 languageName: node
1874 linkType: hard 1873 linkType: hard
1875 1874
1876"@mui/core-downloads-tracker@npm:^5.11.15": 1875"@mui/core-downloads-tracker@npm:^5.13.4":
1877 version: 5.11.15 1876 version: 5.13.4
1878 resolution: "@mui/core-downloads-tracker@npm:5.11.15" 1877 resolution: "@mui/core-downloads-tracker@npm:5.13.4"
1879 checksum: e47f71d5ca91fceacbb469b3e1fb8e895957f8eabac1407d6de5729dce19db0e6c0587be3c534ce8c56b1736e5b9e54455703086f225d46eb4af2e0ff41c27e0 1878 checksum: 77457f55fc547a0f2080c787cfbfb1178987743bea5675c45d2aea99b4bcacbd5f893928b0379c8da1f97f89a471a52a7318a073a202f9fe429b2a34ca448774
1880 languageName: node 1879 languageName: node
1881 linkType: hard 1880 linkType: hard
1882 1881
1883"@mui/icons-material@npm:5.11.11": 1882"@mui/icons-material@npm:5.11.16":
1884 version: 5.11.11 1883 version: 5.11.16
1885 resolution: "@mui/icons-material@npm:5.11.11" 1884 resolution: "@mui/icons-material@npm:5.11.16"
1886 dependencies: 1885 dependencies:
1887 "@babel/runtime": "npm:^7.21.0" 1886 "@babel/runtime": "npm:^7.21.0"
1888 peerDependencies: 1887 peerDependencies:
@@ -1892,23 +1891,23 @@ __metadata:
1892 peerDependenciesMeta: 1891 peerDependenciesMeta:
1893 "@types/react": 1892 "@types/react":
1894 optional: true 1893 optional: true
1895 checksum: 5aae14a311366773a2553595c5a7cf7ba7bc15d8be940d7b4a495d8aa1c5cc13080f2a798d422f4b5bf3a43507cac9519dca4e453c60955620e9f7ca29d60eac 1894 checksum: b630053414ec48fc66b316822b92d3c18946906c7f8dac710a59ecea59a0db6258903de677ff4e6737f1a42308d45b8317dc530e526fef477ede184a72050be6
1896 languageName: node 1895 languageName: node
1897 linkType: hard 1896 linkType: hard
1898 1897
1899"@mui/material@npm:5.11.15": 1898"@mui/material@npm:5.13.5":
1900 version: 5.11.15 1899 version: 5.13.5
1901 resolution: "@mui/material@npm:5.11.15" 1900 resolution: "@mui/material@npm:5.13.5"
1902 dependencies: 1901 dependencies:
1903 "@babel/runtime": "npm:^7.21.0" 1902 "@babel/runtime": "npm:^7.21.0"
1904 "@mui/base": "npm:5.0.0-alpha.123" 1903 "@mui/base": "npm:5.0.0-beta.4"
1905 "@mui/core-downloads-tracker": "npm:^5.11.15" 1904 "@mui/core-downloads-tracker": "npm:^5.13.4"
1906 "@mui/system": "npm:^5.11.15" 1905 "@mui/system": "npm:^5.13.5"
1907 "@mui/types": "npm:^7.2.3" 1906 "@mui/types": "npm:^7.2.4"
1908 "@mui/utils": "npm:^5.11.13" 1907 "@mui/utils": "npm:^5.13.1"
1909 "@types/react-transition-group": "npm:^4.4.5" 1908 "@types/react-transition-group": "npm:^4.4.6"
1910 clsx: "npm:^1.2.1" 1909 clsx: "npm:^1.2.1"
1911 csstype: "npm:^3.1.1" 1910 csstype: "npm:^3.1.2"
1912 prop-types: "npm:^15.8.1" 1911 prop-types: "npm:^15.8.1"
1913 react-is: "npm:^18.2.0" 1912 react-is: "npm:^18.2.0"
1914 react-transition-group: "npm:^4.4.5" 1913 react-transition-group: "npm:^4.4.5"
@@ -1925,16 +1924,16 @@ __metadata:
1925 optional: true 1924 optional: true
1926 "@types/react": 1925 "@types/react":
1927 optional: true 1926 optional: true
1928 checksum: f252dda54044f4eec330e74112b2a9c63a9ee8d3c1ab1665f1f0d0bdb2665a0005314121fd8166b069a4956888370784bedd30a9a71ae6a3e430ec3fdb8e0b97 1927 checksum: 84a32505ce224507820c5364627a3879b2ae96bda1235ee482c549e097af6df6918ac2c3bc39b52d7a673d30e93e1bafe6357691798c0081222135e57c1d7884
1929 languageName: node 1928 languageName: node
1930 linkType: hard 1929 linkType: hard
1931 1930
1932"@mui/private-theming@npm:^5.11.13": 1931"@mui/private-theming@npm:^5.13.1":
1933 version: 5.11.13 1932 version: 5.13.1
1934 resolution: "@mui/private-theming@npm:5.11.13" 1933 resolution: "@mui/private-theming@npm:5.13.1"
1935 dependencies: 1934 dependencies:
1936 "@babel/runtime": "npm:^7.21.0" 1935 "@babel/runtime": "npm:^7.21.0"
1937 "@mui/utils": "npm:^5.11.13" 1936 "@mui/utils": "npm:^5.13.1"
1938 prop-types: "npm:^15.8.1" 1937 prop-types: "npm:^15.8.1"
1939 peerDependencies: 1938 peerDependencies:
1940 "@types/react": ^17.0.0 || ^18.0.0 1939 "@types/react": ^17.0.0 || ^18.0.0
@@ -1942,17 +1941,17 @@ __metadata:
1942 peerDependenciesMeta: 1941 peerDependenciesMeta:
1943 "@types/react": 1942 "@types/react":
1944 optional: true 1943 optional: true
1945 checksum: 9028e6be77b517dc4bf902daa4e966441ea982b0c19731028de459272132cfb824c71e8daddb96d2d2c79ed95eb680a322fb1621f464a458e1e04a143bd315c5 1944 checksum: 122b4b3e46ac38d86554c699f6af3c24ebc79768517374b52ad27bc1d34d0deec6fcd06ba7f2f6159cc9490596c34ca9bbb90fb58e279db06b99bd837a777738
1946 languageName: node 1945 languageName: node
1947 linkType: hard 1946 linkType: hard
1948 1947
1949"@mui/styled-engine@npm:^5.11.11": 1948"@mui/styled-engine@npm:^5.13.2":
1950 version: 5.11.11 1949 version: 5.13.2
1951 resolution: "@mui/styled-engine@npm:5.11.11" 1950 resolution: "@mui/styled-engine@npm:5.13.2"
1952 dependencies: 1951 dependencies:
1953 "@babel/runtime": "npm:^7.21.0" 1952 "@babel/runtime": "npm:^7.21.0"
1954 "@emotion/cache": "npm:^11.10.5" 1953 "@emotion/cache": "npm:^11.11.0"
1955 csstype: "npm:^3.1.1" 1954 csstype: "npm:^3.1.2"
1956 prop-types: "npm:^15.8.1" 1955 prop-types: "npm:^15.8.1"
1957 peerDependencies: 1956 peerDependencies:
1958 "@emotion/react": ^11.4.1 1957 "@emotion/react": ^11.4.1
@@ -1963,21 +1962,21 @@ __metadata:
1963 optional: true 1962 optional: true
1964 "@emotion/styled": 1963 "@emotion/styled":
1965 optional: true 1964 optional: true
1966 checksum: a4e3408749e6f7069962b98fd6912f3e6c85587c14d578bcc381cafdb681faa7af05a644d4ce6dbcaaa0c3388745a1b83f9542ecafb037c2984ddf2d91fc1b47 1965 checksum: 4a2b47893bc52e0321e1dfd034999bd817820f6bff53ccbb714174f620978443c1e09dad4773ab7269a40a66550256792f25a430e0f3176b624e3a74987b5ec2
1967 languageName: node 1966 languageName: node
1968 linkType: hard 1967 linkType: hard
1969 1968
1970"@mui/system@npm:^5.11.15": 1969"@mui/system@npm:^5.13.5":
1971 version: 5.11.15 1970 version: 5.13.5
1972 resolution: "@mui/system@npm:5.11.15" 1971 resolution: "@mui/system@npm:5.13.5"
1973 dependencies: 1972 dependencies:
1974 "@babel/runtime": "npm:^7.21.0" 1973 "@babel/runtime": "npm:^7.21.0"
1975 "@mui/private-theming": "npm:^5.11.13" 1974 "@mui/private-theming": "npm:^5.13.1"
1976 "@mui/styled-engine": "npm:^5.11.11" 1975 "@mui/styled-engine": "npm:^5.13.2"
1977 "@mui/types": "npm:^7.2.3" 1976 "@mui/types": "npm:^7.2.4"
1978 "@mui/utils": "npm:^5.11.13" 1977 "@mui/utils": "npm:^5.13.1"
1979 clsx: "npm:^1.2.1" 1978 clsx: "npm:^1.2.1"
1980 csstype: "npm:^3.1.1" 1979 csstype: "npm:^3.1.2"
1981 prop-types: "npm:^15.8.1" 1980 prop-types: "npm:^15.8.1"
1982 peerDependencies: 1981 peerDependencies:
1983 "@emotion/react": ^11.5.0 1982 "@emotion/react": ^11.5.0
@@ -1991,34 +1990,34 @@ __metadata:
1991 optional: true 1990 optional: true
1992 "@types/react": 1991 "@types/react":
1993 optional: true 1992 optional: true
1994 checksum: 8dd447cc52931f68306dcdea2eea6934c4e9e714571af6f679ce7db41e791b46c9a69afb36180d44ef0f040c3f0d674b39f7801e7cfca2f99cc4c04f5b6d226c 1993 checksum: 09c215386c094a2708441a4f0ae7003e30e43331c9f6cf0964c25946a7ad17f7371062dc9ce00c7642f3d374b6eaf583bec8737d07beb2d6bd9e9aecf4b62565
1995 languageName: node 1994 languageName: node
1996 linkType: hard 1995 linkType: hard
1997 1996
1998"@mui/types@npm:^7.2.3": 1997"@mui/types@npm:^7.2.4":
1999 version: 7.2.3 1998 version: 7.2.4
2000 resolution: "@mui/types@npm:7.2.3" 1999 resolution: "@mui/types@npm:7.2.4"
2001 peerDependencies: 2000 peerDependencies:
2002 "@types/react": "*" 2001 "@types/react": "*"
2003 peerDependenciesMeta: 2002 peerDependenciesMeta:
2004 "@types/react": 2003 "@types/react":
2005 optional: true 2004 optional: true
2006 checksum: f5b074ecdfda55bae66a344e1fd1247920c18ee4548589528643a460de2c9409f6d9ff8ab59c5efa4ff7513d5d83c7a7240613e7e5f36ec71139a0da262cb237 2005 checksum: 651ad27d90e052ede4698bea349728bfdd4c415aebcf718e4fb401a281956a33c1748743fe70e5664e75585db94555077658ccf33e6a194b7ee26e44d8e6da8e
2007 languageName: node 2006 languageName: node
2008 linkType: hard 2007 linkType: hard
2009 2008
2010"@mui/utils@npm:^5.11.13": 2009"@mui/utils@npm:^5.13.1":
2011 version: 5.11.13 2010 version: 5.13.1
2012 resolution: "@mui/utils@npm:5.11.13" 2011 resolution: "@mui/utils@npm:5.13.1"
2013 dependencies: 2012 dependencies:
2014 "@babel/runtime": "npm:^7.21.0" 2013 "@babel/runtime": "npm:^7.21.0"
2015 "@types/prop-types": "npm:^15.7.5" 2014 "@types/prop-types": "npm:^15.7.5"
2016 "@types/react-is": "npm:^16.7.1 || ^17.0.0" 2015 "@types/react-is": "npm:^18.2.0"
2017 prop-types: "npm:^15.8.1" 2016 prop-types: "npm:^15.8.1"
2018 react-is: "npm:^18.2.0" 2017 react-is: "npm:^18.2.0"
2019 peerDependencies: 2018 peerDependencies:
2020 react: ^17.0.0 || ^18.0.0 2019 react: ^17.0.0 || ^18.0.0
2021 checksum: 8ca3debcb4a506e8b97bde4cfcd7e7358ba5e3b90bc375e36175b623212f509a10caf58621b84de1991a6304b695a7041adbc54cac923d4be19b52f15ef4fff9 2020 checksum: 37870c7e05bba7b210466483541b948dd2d8b128ef6e1f025d7694bc23fef2a7cbae547df151f82d67b35c741086c198767ea78b2be66a05b7b8c2d4eab20b98
2022 languageName: node 2021 languageName: node
2023 linkType: hard 2022 linkType: hard
2024 2023
@@ -2049,23 +2048,19 @@ __metadata:
2049 languageName: node 2048 languageName: node
2050 linkType: hard 2049 linkType: hard
2051 2050
2052"@npmcli/fs@npm:^2.1.0": 2051"@npmcli/fs@npm:^3.1.0":
2053 version: 2.1.2 2052 version: 3.1.0
2054 resolution: "@npmcli/fs@npm:2.1.2" 2053 resolution: "@npmcli/fs@npm:3.1.0"
2055 dependencies: 2054 dependencies:
2056 "@gar/promisify": "npm:^1.1.3"
2057 semver: "npm:^7.3.5" 2055 semver: "npm:^7.3.5"
2058 checksum: 82bc61f832f45e2033ea3522f66a94de50e5561577b1f3af226576ad5467c240375eba948d4ea1ca146e7871740fb3005e7c4f3f1ab616e79a5a5cedd9fdb789 2056 checksum: c17d9f6a57aada6db66302ad0c02ad5df2984333385ba0a7883718cbc513f81ce2d4e41d3b949b05c387c2a49a2fdbfa0808b3cc640d0c1b9dce72a864811a30
2059 languageName: node 2057 languageName: node
2060 linkType: hard 2058 linkType: hard
2061 2059
2062"@npmcli/move-file@npm:^2.0.0": 2060"@pkgjs/parseargs@npm:^0.11.0":
2063 version: 2.0.1 2061 version: 0.11.0
2064 resolution: "@npmcli/move-file@npm:2.0.1" 2062 resolution: "@pkgjs/parseargs@npm:0.11.0"
2065 dependencies: 2063 checksum: 9e828530eb8d3e5370972114de393d9f9cfd368f8a7b541fd0d4497c2f046245e907e05f4e07259bdf91ade8f7a0806f36a67099fbf20f62496dc00b843e2252
2066 mkdirp: "npm:^1.0.4"
2067 rimraf: "npm:^3.0.2"
2068 checksum: 3557a12cd18dfb5bcd5d5cf910b783832af50ffba28fd5bb510c3c56b2df0481558b9ec6d3008e8eeefb9f2944bdc1d34832b1a8bbf6ad1cd2f256bf12c84ff0
2069 languageName: node 2064 languageName: node
2070 linkType: hard 2065 linkType: hard
2071 2066
@@ -2083,10 +2078,10 @@ __metadata:
2083 languageName: node 2078 languageName: node
2084 linkType: hard 2079 linkType: hard
2085 2080
2086"@popperjs/core@npm:^2.11.7": 2081"@popperjs/core@npm:^2.11.8":
2087 version: 2.11.7 2082 version: 2.11.8
2088 resolution: "@popperjs/core@npm:2.11.7" 2083 resolution: "@popperjs/core@npm:2.11.8"
2089 checksum: 6d9dfd4ce852e6c6d6f4d27ae955d29869bc6f511fefcf1b80881029b072fe663d70f7fc7959ad6f3e6ad1a686d1141658a46e1d44c15d88c12f14907a2c352a 2084 checksum: 5c180df0c3fab5f4ebb81c79898186c0df3e13d72e27fe49d2a80873a27d8e12a16866d70da648d3d34caebce638fdb1a0730d1c1c5a8a40451db0160b92b375
2090 languageName: node 2085 languageName: node
2091 linkType: hard 2086 linkType: hard
2092 2087
@@ -2094,54 +2089,53 @@ __metadata:
2094 version: 0.0.0-use.local 2089 version: 0.0.0-use.local
2095 resolution: "@refinery/frontend@workspace:subprojects/frontend" 2090 resolution: "@refinery/frontend@workspace:subprojects/frontend"
2096 dependencies: 2091 dependencies:
2097 "@codemirror/autocomplete": "npm:^6.4.2" 2092 "@codemirror/autocomplete": "npm:^6.8.0"
2098 "@codemirror/commands": "npm:^6.2.2" 2093 "@codemirror/commands": "npm:^6.2.4"
2099 "@codemirror/language": "npm:^6.6.0" 2094 "@codemirror/language": "npm:^6.8.0"
2100 "@codemirror/lint": "npm:^6.2.0" 2095 "@codemirror/lint": "npm:^6.2.2"
2101 "@codemirror/search": "npm:^6.3.0" 2096 "@codemirror/search": "npm:^6.5.0"
2102 "@codemirror/state": "npm:^6.2.0" 2097 "@codemirror/state": "npm:^6.2.1"
2103 "@codemirror/view": "npm:^6.9.3" 2098 "@codemirror/view": "npm:^6.13.2"
2104 "@emotion/react": "npm:^11.10.6" 2099 "@emotion/react": "npm:^11.11.1"
2105 "@emotion/styled": "npm:^11.10.6" 2100 "@emotion/styled": "npm:^11.11.0"
2106 "@fontsource/inter": "npm:^4.5.15" 2101 "@fontsource-variable/inter": "npm:^5.0.3"
2107 "@fontsource/jetbrains-mono": "npm:^4.5.12" 2102 "@fontsource-variable/jetbrains-mono": "npm:^5.0.3"
2108 "@lezer/common": "npm:^1.0.2" 2103 "@lezer/common": "npm:^1.0.3"
2109 "@lezer/generator": "npm:^1.2.2" 2104 "@lezer/generator": "npm:^1.3.0"
2110 "@lezer/highlight": "npm:^1.1.4" 2105 "@lezer/highlight": "npm:^1.1.6"
2111 "@lezer/lr": "npm:^1.3.3" 2106 "@lezer/lr": "npm:^1.3.6"
2112 "@material-icons/svg": "npm:^1.0.33" 2107 "@material-icons/svg": "npm:^1.0.33"
2113 "@mui/icons-material": "npm:5.11.11" 2108 "@mui/icons-material": "npm:5.11.16"
2114 "@mui/material": "npm:5.11.15" 2109 "@mui/material": "npm:5.13.5"
2115 "@tsconfig/strictest": "npm:^2.0.0" 2110 "@types/eslint": "npm:^8.40.2"
2116 "@types/eslint": "npm:^8.37.0"
2117 "@types/html-minifier-terser": "npm:^7.0.0" 2111 "@types/html-minifier-terser": "npm:^7.0.0"
2118 "@types/lodash-es": "npm:^4.17.7" 2112 "@types/lodash-es": "npm:^4.17.7"
2119 "@types/micromatch": "npm:^4.0.2" 2113 "@types/micromatch": "npm:^4.0.2"
2120 "@types/ms": "npm:^0.7.31" 2114 "@types/ms": "npm:^0.7.31"
2121 "@types/node": "npm:^18.15.11" 2115 "@types/node": "npm:^18.16.18"
2122 "@types/prettier": "npm:^2.7.2" 2116 "@types/prettier": "npm:^2.7.3"
2123 "@types/react": "npm:^18.0.31" 2117 "@types/react": "npm:^18.2.12"
2124 "@types/react-dom": "npm:^18.0.11" 2118 "@types/react-dom": "npm:^18.2.5"
2125 "@typescript-eslint/eslint-plugin": "npm:^5.57.0" 2119 "@typescript-eslint/eslint-plugin": "npm:^5.59.11"
2126 "@typescript-eslint/parser": "npm:^5.57.0" 2120 "@typescript-eslint/parser": "npm:^5.59.11"
2127 "@vitejs/plugin-react-swc": "npm:^3.2.0" 2121 "@vitejs/plugin-react-swc": "npm:^3.3.2"
2128 "@xstate/cli": "npm:^0.4.2" 2122 "@xstate/cli": "npm:^0.5.1"
2129 ansi-styles: "npm:^6.2.1" 2123 ansi-styles: "npm:^6.2.1"
2130 cross-env: "npm:^7.0.3" 2124 cross-env: "npm:^7.0.3"
2131 csstype: "npm:^3.1.1" 2125 csstype: "npm:^3.1.2"
2132 escape-string-regexp: "npm:^5.0.0" 2126 escape-string-regexp: "npm:^5.0.0"
2133 eslint: "npm:^8.37.0" 2127 eslint: "npm:^8.43.0"
2134 eslint-config-airbnb: "npm:^19.0.4" 2128 eslint-config-airbnb: "npm:^19.0.4"
2135 eslint-config-airbnb-typescript: "npm:^17.0.0" 2129 eslint-config-airbnb-typescript: "npm:^17.0.0"
2136 eslint-config-prettier: "npm:^8.8.0" 2130 eslint-config-prettier: "npm:^8.8.0"
2137 eslint-import-resolver-typescript: "npm:^3.5.4" 2131 eslint-import-resolver-typescript: "npm:^3.5.5"
2138 eslint-plugin-import: "npm:^2.27.5" 2132 eslint-plugin-import: "npm:^2.27.5"
2139 eslint-plugin-jsx-a11y: "npm:^6.7.1" 2133 eslint-plugin-jsx-a11y: "npm:^6.7.1"
2140 eslint-plugin-mobx: "npm:^0.0.9" 2134 eslint-plugin-mobx: "npm:^0.0.9"
2141 eslint-plugin-prettier: "npm:^4.2.1" 2135 eslint-plugin-prettier: "npm:^4.2.1"
2142 eslint-plugin-react: "npm:^7.32.2" 2136 eslint-plugin-react: "npm:^7.32.2"
2143 eslint-plugin-react-hooks: "npm:^4.6.0" 2137 eslint-plugin-react-hooks: "npm:^4.6.0"
2144 html-minifier-terser: "npm:^7.1.0" 2138 html-minifier-terser: "npm:^7.2.0"
2145 lodash-es: "npm:^4.17.21" 2139 lodash-es: "npm:^4.17.21"
2146 loglevel: "npm:^1.8.1" 2140 loglevel: "npm:^1.8.1"
2147 loglevel-plugin-prefix: "npm:^0.8.4" 2141 loglevel-plugin-prefix: "npm:^0.8.4"
@@ -2151,14 +2145,14 @@ __metadata:
2151 ms: "npm:^2.1.3" 2145 ms: "npm:^2.1.3"
2152 nanoid: "npm:^4.0.2" 2146 nanoid: "npm:^4.0.2"
2153 notistack: "npm:^3.0.1" 2147 notistack: "npm:^3.0.1"
2154 prettier: "npm:^2.8.7" 2148 prettier: "npm:^2.8.8"
2155 react: "npm:^18.2.0" 2149 react: "npm:^18.2.0"
2156 react-dom: "npm:^18.2.0" 2150 react-dom: "npm:^18.2.0"
2157 typescript: "npm:5.0.3" 2151 typescript: "npm:5.1.3"
2158 vite: "npm:^4.2.1" 2152 vite: "npm:^4.3.9"
2159 vite-plugin-pwa: "npm:^0.14.7" 2153 vite-plugin-pwa: "npm:^0.16.4"
2160 workbox-window: "npm:^6.5.4" 2154 workbox-window: "npm:^7.0.0"
2161 xstate: "npm:^4.37.1" 2155 xstate: "npm:^4.37.2"
2162 zod: "npm:^3.21.4" 2156 zod: "npm:^3.21.4"
2163 languageName: unknown 2157 languageName: unknown
2164 linkType: soft 2158 linkType: soft
@@ -2167,8 +2161,8 @@ __metadata:
2167 version: 0.0.0-use.local 2161 version: 0.0.0-use.local
2168 resolution: "@refinery/root@workspace:." 2162 resolution: "@refinery/root@workspace:."
2169 dependencies: 2163 dependencies:
2170 eslint: "npm:^8.37.0" 2164 eslint: "npm:^8.43.0"
2171 typescript: "npm:5.0.3" 2165 typescript: "npm:5.1.3"
2172 languageName: unknown 2166 languageName: unknown
2173 linkType: soft 2167 linkType: soft
2174 2168
@@ -2217,21 +2211,6 @@ __metadata:
2217 languageName: node 2211 languageName: node
2218 linkType: hard 2212 linkType: hard
2219 2213
2220"@rollup/plugin-replace@npm:^5.0.1":
2221 version: 5.0.1
2222 resolution: "@rollup/plugin-replace@npm:5.0.1"
2223 dependencies:
2224 "@rollup/pluginutils": "npm:^5.0.1"
2225 magic-string: "npm:^0.26.4"
2226 peerDependencies:
2227 rollup: ^1.20.0||^2.0.0||^3.0.0
2228 peerDependenciesMeta:
2229 rollup:
2230 optional: true
2231 checksum: e7c8f3a221ac3c876c18743ff89d43e4e1221e5ad5e2b3d337dd6f3944cc89eb0ea22d4c92e697212ba15b30706508c48189424e82f75a8fcb4a80c499acbc75
2232 languageName: node
2233 linkType: hard
2234
2235"@rollup/pluginutils@npm:^3.1.0": 2214"@rollup/pluginutils@npm:^3.1.0":
2236 version: 3.1.0 2215 version: 3.1.0
2237 resolution: "@rollup/pluginutils@npm:3.1.0" 2216 resolution: "@rollup/pluginutils@npm:3.1.0"
@@ -2245,22 +2224,6 @@ __metadata:
2245 languageName: node 2224 languageName: node
2246 linkType: hard 2225 linkType: hard
2247 2226
2248"@rollup/pluginutils@npm:^5.0.1":
2249 version: 5.0.2
2250 resolution: "@rollup/pluginutils@npm:5.0.2"
2251 dependencies:
2252 "@types/estree": "npm:^1.0.0"
2253 estree-walker: "npm:^2.0.2"
2254 picomatch: "npm:^2.3.1"
2255 peerDependencies:
2256 rollup: ^1.20.0||^2.0.0||^3.0.0
2257 peerDependenciesMeta:
2258 rollup:
2259 optional: true
2260 checksum: c8e01caaf5d63c23f82ad6a1402cd8878718b298c29e09e57592dfffa18e01c389242610c41cb608f429828d13ef0848ff83fa474bbfe568966a9a8b2e93d25a
2261 languageName: node
2262 linkType: hard
2263
2264"@surma/rollup-plugin-off-main-thread@npm:^2.2.3": 2227"@surma/rollup-plugin-off-main-thread@npm:^2.2.3":
2265 version: 2.2.3 2228 version: 2.2.3
2266 resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3" 2229 resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3"
@@ -2273,90 +2236,92 @@ __metadata:
2273 languageName: node 2236 languageName: node
2274 linkType: hard 2237 linkType: hard
2275 2238
2276"@swc/core-darwin-arm64@npm:1.3.36": 2239"@swc/core-darwin-arm64@npm:1.3.64":
2277 version: 1.3.36 2240 version: 1.3.64
2278 resolution: "@swc/core-darwin-arm64@npm:1.3.36" 2241 resolution: "@swc/core-darwin-arm64@npm:1.3.64"
2279 conditions: os=darwin & cpu=arm64 2242 conditions: os=darwin & cpu=arm64
2280 languageName: node 2243 languageName: node
2281 linkType: hard 2244 linkType: hard
2282 2245
2283"@swc/core-darwin-x64@npm:1.3.36": 2246"@swc/core-darwin-x64@npm:1.3.64":
2284 version: 1.3.36 2247 version: 1.3.64
2285 resolution: "@swc/core-darwin-x64@npm:1.3.36" 2248 resolution: "@swc/core-darwin-x64@npm:1.3.64"
2286 conditions: os=darwin & cpu=x64 2249 conditions: os=darwin & cpu=x64
2287 languageName: node 2250 languageName: node
2288 linkType: hard 2251 linkType: hard
2289 2252
2290"@swc/core-linux-arm-gnueabihf@npm:1.3.36": 2253"@swc/core-linux-arm-gnueabihf@npm:1.3.64":
2291 version: 1.3.36 2254 version: 1.3.64
2292 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.36" 2255 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.64"
2293 conditions: os=linux & cpu=arm 2256 conditions: os=linux & cpu=arm
2294 languageName: node 2257 languageName: node
2295 linkType: hard 2258 linkType: hard
2296 2259
2297"@swc/core-linux-arm64-gnu@npm:1.3.36": 2260"@swc/core-linux-arm64-gnu@npm:1.3.64":
2298 version: 1.3.36 2261 version: 1.3.64
2299 resolution: "@swc/core-linux-arm64-gnu@npm:1.3.36" 2262 resolution: "@swc/core-linux-arm64-gnu@npm:1.3.64"
2300 conditions: os=linux & cpu=arm64 & libc=glibc 2263 conditions: os=linux & cpu=arm64 & libc=glibc
2301 languageName: node 2264 languageName: node
2302 linkType: hard 2265 linkType: hard
2303 2266
2304"@swc/core-linux-arm64-musl@npm:1.3.36": 2267"@swc/core-linux-arm64-musl@npm:1.3.64":
2305 version: 1.3.36 2268 version: 1.3.64
2306 resolution: "@swc/core-linux-arm64-musl@npm:1.3.36" 2269 resolution: "@swc/core-linux-arm64-musl@npm:1.3.64"
2307 conditions: os=linux & cpu=arm64 & libc=musl 2270 conditions: os=linux & cpu=arm64 & libc=musl
2308 languageName: node 2271 languageName: node
2309 linkType: hard 2272 linkType: hard
2310 2273
2311"@swc/core-linux-x64-gnu@npm:1.3.36": 2274"@swc/core-linux-x64-gnu@npm:1.3.64":
2312 version: 1.3.36 2275 version: 1.3.64
2313 resolution: "@swc/core-linux-x64-gnu@npm:1.3.36" 2276 resolution: "@swc/core-linux-x64-gnu@npm:1.3.64"
2314 conditions: os=linux & cpu=x64 & libc=glibc 2277 conditions: os=linux & cpu=x64 & libc=glibc
2315 languageName: node 2278 languageName: node
2316 linkType: hard 2279 linkType: hard
2317 2280
2318"@swc/core-linux-x64-musl@npm:1.3.36": 2281"@swc/core-linux-x64-musl@npm:1.3.64":
2319 version: 1.3.36 2282 version: 1.3.64
2320 resolution: "@swc/core-linux-x64-musl@npm:1.3.36" 2283 resolution: "@swc/core-linux-x64-musl@npm:1.3.64"
2321 conditions: os=linux & cpu=x64 & libc=musl 2284 conditions: os=linux & cpu=x64 & libc=musl
2322 languageName: node 2285 languageName: node
2323 linkType: hard 2286 linkType: hard
2324 2287
2325"@swc/core-win32-arm64-msvc@npm:1.3.36": 2288"@swc/core-win32-arm64-msvc@npm:1.3.64":
2326 version: 1.3.36 2289 version: 1.3.64
2327 resolution: "@swc/core-win32-arm64-msvc@npm:1.3.36" 2290 resolution: "@swc/core-win32-arm64-msvc@npm:1.3.64"
2328 conditions: os=win32 & cpu=arm64 2291 conditions: os=win32 & cpu=arm64
2329 languageName: node 2292 languageName: node
2330 linkType: hard 2293 linkType: hard
2331 2294
2332"@swc/core-win32-ia32-msvc@npm:1.3.36": 2295"@swc/core-win32-ia32-msvc@npm:1.3.64":
2333 version: 1.3.36 2296 version: 1.3.64
2334 resolution: "@swc/core-win32-ia32-msvc@npm:1.3.36" 2297 resolution: "@swc/core-win32-ia32-msvc@npm:1.3.64"
2335 conditions: os=win32 & cpu=ia32 2298 conditions: os=win32 & cpu=ia32
2336 languageName: node 2299 languageName: node
2337 linkType: hard 2300 linkType: hard
2338 2301
2339"@swc/core-win32-x64-msvc@npm:1.3.36": 2302"@swc/core-win32-x64-msvc@npm:1.3.64":
2340 version: 1.3.36 2303 version: 1.3.64
2341 resolution: "@swc/core-win32-x64-msvc@npm:1.3.36" 2304 resolution: "@swc/core-win32-x64-msvc@npm:1.3.64"
2342 conditions: os=win32 & cpu=x64 2305 conditions: os=win32 & cpu=x64
2343 languageName: node 2306 languageName: node
2344 linkType: hard 2307 linkType: hard
2345 2308
2346"@swc/core@npm:^1.3.35": 2309"@swc/core@npm:^1.3.61":
2347 version: 1.3.36 2310 version: 1.3.64
2348 resolution: "@swc/core@npm:1.3.36" 2311 resolution: "@swc/core@npm:1.3.64"
2349 dependencies: 2312 dependencies:
2350 "@swc/core-darwin-arm64": "npm:1.3.36" 2313 "@swc/core-darwin-arm64": "npm:1.3.64"
2351 "@swc/core-darwin-x64": "npm:1.3.36" 2314 "@swc/core-darwin-x64": "npm:1.3.64"
2352 "@swc/core-linux-arm-gnueabihf": "npm:1.3.36" 2315 "@swc/core-linux-arm-gnueabihf": "npm:1.3.64"
2353 "@swc/core-linux-arm64-gnu": "npm:1.3.36" 2316 "@swc/core-linux-arm64-gnu": "npm:1.3.64"
2354 "@swc/core-linux-arm64-musl": "npm:1.3.36" 2317 "@swc/core-linux-arm64-musl": "npm:1.3.64"
2355 "@swc/core-linux-x64-gnu": "npm:1.3.36" 2318 "@swc/core-linux-x64-gnu": "npm:1.3.64"
2356 "@swc/core-linux-x64-musl": "npm:1.3.36" 2319 "@swc/core-linux-x64-musl": "npm:1.3.64"
2357 "@swc/core-win32-arm64-msvc": "npm:1.3.36" 2320 "@swc/core-win32-arm64-msvc": "npm:1.3.64"
2358 "@swc/core-win32-ia32-msvc": "npm:1.3.36" 2321 "@swc/core-win32-ia32-msvc": "npm:1.3.64"
2359 "@swc/core-win32-x64-msvc": "npm:1.3.36" 2322 "@swc/core-win32-x64-msvc": "npm:1.3.64"
2323 peerDependencies:
2324 "@swc/helpers": ^0.5.0
2360 dependenciesMeta: 2325 dependenciesMeta:
2361 "@swc/core-darwin-arm64": 2326 "@swc/core-darwin-arm64":
2362 optional: true 2327 optional: true
@@ -2378,7 +2343,10 @@ __metadata:
2378 optional: true 2343 optional: true
2379 "@swc/core-win32-x64-msvc": 2344 "@swc/core-win32-x64-msvc":
2380 optional: true 2345 optional: true
2381 checksum: eeb878fd88a5df1dda67b49657c92f333e0210b6b7469879bf8a22d71a35abfc6f2d40385ecdf5ae1dc3e0afaccf7567a3b1ee180a1f49be42482512aa9e6f10 2346 peerDependenciesMeta:
2347 "@swc/helpers":
2348 optional: true
2349 checksum: 39f3a60e769f18497b1045aadf42a8aacfe19dace9963a75d771e254ccadbe54f7f755bb42e21e323fbe03ee51a4f581d2b09e8a31a76a4bb8014bc6535fed5f
2382 languageName: node 2350 languageName: node
2383 linkType: hard 2351 linkType: hard
2384 2352
@@ -2389,13 +2357,6 @@ __metadata:
2389 languageName: node 2357 languageName: node
2390 linkType: hard 2358 linkType: hard
2391 2359
2392"@tsconfig/strictest@npm:^2.0.0":
2393 version: 2.0.0
2394 resolution: "@tsconfig/strictest@npm:2.0.0"
2395 checksum: d3a0f23cc1b0bdfd3d4470dec51e83cb5750c4b867f3e4d74f6900160497d256a291cbc94f700fcb0cf77444618490f637b69d5eeeebe149c6164691f27dc3cd
2396 languageName: node
2397 linkType: hard
2398
2399"@types/braces@npm:*": 2360"@types/braces@npm:*":
2400 version: 3.0.1 2361 version: 3.0.1
2401 resolution: "@types/braces@npm:3.0.1" 2362 resolution: "@types/braces@npm:3.0.1"
@@ -2403,17 +2364,17 @@ __metadata:
2403 languageName: node 2364 languageName: node
2404 linkType: hard 2365 linkType: hard
2405 2366
2406"@types/eslint@npm:^8.37.0": 2367"@types/eslint@npm:^8.40.2":
2407 version: 8.37.0 2368 version: 8.40.2
2408 resolution: "@types/eslint@npm:8.37.0" 2369 resolution: "@types/eslint@npm:8.40.2"
2409 dependencies: 2370 dependencies:
2410 "@types/estree": "npm:*" 2371 "@types/estree": "npm:*"
2411 "@types/json-schema": "npm:*" 2372 "@types/json-schema": "npm:*"
2412 checksum: 5a1b547b4fbebeb173fd3e4a717de868021a14322cb7bd1bc2b432f3ac3cfec2e268623d24543a4ca7787fe64c59dd310a6ee329199e9f16b0d168d26a2da026 2373 checksum: 84f4da669a839830e3696494ec7ba659f7fa064eb87e3f1d4b60204b4db9c9093bbbd9f59b7bf46370bdba97cae0b959d4b2391c743d69297a8df5d100d35191
2413 languageName: node 2374 languageName: node
2414 linkType: hard 2375 linkType: hard
2415 2376
2416"@types/estree@npm:*, @types/estree@npm:^1.0.0": 2377"@types/estree@npm:*":
2417 version: 1.0.0 2378 version: 1.0.0
2418 resolution: "@types/estree@npm:1.0.0" 2379 resolution: "@types/estree@npm:1.0.0"
2419 checksum: 474df434e3a469cb7a68d44c8b7ac3a21bca344fa3b49651c3451d0f3662ff0c3b2ba52149cbc5b9c9a9f3f1ac37958c163ef29b65a8b36fccb5ccb2acfc9b08 2380 checksum: 474df434e3a469cb7a68d44c8b7ac3a21bca344fa3b49651c3451d0f3662ff0c3b2ba52149cbc5b9c9a9f3f1ac37958c163ef29b65a8b36fccb5ccb2acfc9b08
@@ -2480,10 +2441,10 @@ __metadata:
2480 languageName: node 2441 languageName: node
2481 linkType: hard 2442 linkType: hard
2482 2443
2483"@types/node@npm:*, @types/node@npm:^18.15.11": 2444"@types/node@npm:*, @types/node@npm:^18.16.18":
2484 version: 18.15.11 2445 version: 18.16.18
2485 resolution: "@types/node@npm:18.15.11" 2446 resolution: "@types/node@npm:18.16.18"
2486 checksum: 2ad6c7aeb0841a821d5f0556ccbc9c0cec597cb31b5fe58b085740983f6b01a21a3c62c37ca642dd92b5de8935d6084896634af19f1f022e8d173049ad258a60 2447 checksum: b6097e7cd65bcfc9fefcf79c4e2360ed7d3dfb64f628a010c45303d56d41cef7f9b65289ad2a86c97f1b98fa26ea74126d8dc864582951166236814fd30395a5
2487 languageName: node 2448 languageName: node
2488 linkType: hard 2449 linkType: hard
2489 2450
@@ -2494,10 +2455,10 @@ __metadata:
2494 languageName: node 2455 languageName: node
2495 linkType: hard 2456 linkType: hard
2496 2457
2497"@types/prettier@npm:^2.7.2": 2458"@types/prettier@npm:^2.7.3":
2498 version: 2.7.2 2459 version: 2.7.3
2499 resolution: "@types/prettier@npm:2.7.2" 2460 resolution: "@types/prettier@npm:2.7.3"
2500 checksum: d4d09d291ec7017ed30cc2bac5a51dbd5de02e2d75389a4c724ac6c3d7bb99da3173f57247d832b8f83c154dc8006cbdc35e565c1f1bf6869718d25857e430db 2461 checksum: 940c06437f23a12b88ae7d36c40a35dd3ee8cc22f8bc1cba972bcc69904162331ef2fdfafc9cc46762475047194321c0c40ee9285e779353116018c1eeae2b4c
2501 languageName: node 2462 languageName: node
2502 linkType: hard 2463 linkType: hard
2503 2464
@@ -2508,41 +2469,41 @@ __metadata:
2508 languageName: node 2469 languageName: node
2509 linkType: hard 2470 linkType: hard
2510 2471
2511"@types/react-dom@npm:^18.0.11": 2472"@types/react-dom@npm:^18.2.5":
2512 version: 18.0.11 2473 version: 18.2.5
2513 resolution: "@types/react-dom@npm:18.0.11" 2474 resolution: "@types/react-dom@npm:18.2.5"
2514 dependencies: 2475 dependencies:
2515 "@types/react": "npm:*" 2476 "@types/react": "npm:*"
2516 checksum: 429119548045bb8ca6f34522c2698973fb92a0ebb1f1b2afa061e41ae9d091d10d0cc9bbbfd52b3cfe948486898cfaaf29d3721650a6d52dc0d3ab81c0245b82 2477 checksum: 7ae5eeb0c9c9aee7eaac10b2afe527774518a4c6e33c84822fc69911ac929c76bb2882585e9052f2ee99b9588924f05f5fd983bfe181b0385f290e5940a0a754
2517 languageName: node 2478 languageName: node
2518 linkType: hard 2479 linkType: hard
2519 2480
2520"@types/react-is@npm:^16.7.1 || ^17.0.0": 2481"@types/react-is@npm:^18.2.0":
2521 version: 17.0.3 2482 version: 18.2.0
2522 resolution: "@types/react-is@npm:17.0.3" 2483 resolution: "@types/react-is@npm:18.2.0"
2523 dependencies: 2484 dependencies:
2524 "@types/react": "npm:*" 2485 "@types/react": "npm:*"
2525 checksum: bed46f5dfa83f5eac4ad2f40cd80cb68f80e93b7bfb01b2d7eae2fd84d0d46dd5b06dad264f4d71daeb0fe2d9e34db994d48fdfb46b87daaa71c8744a9bda121 2486 checksum: 5e5f7c9ce0287ddfa83d39ea26bfab64eed0c75f862f65804de9667accfb18da356c3c2677e1e660206278d93bcc40f5904b47ec272a9d9cd640ceef224bcb4b
2526 languageName: node 2487 languageName: node
2527 linkType: hard 2488 linkType: hard
2528 2489
2529"@types/react-transition-group@npm:^4.4.5": 2490"@types/react-transition-group@npm:^4.4.6":
2530 version: 4.4.5 2491 version: 4.4.6
2531 resolution: "@types/react-transition-group@npm:4.4.5" 2492 resolution: "@types/react-transition-group@npm:4.4.6"
2532 dependencies: 2493 dependencies:
2533 "@types/react": "npm:*" 2494 "@types/react": "npm:*"
2534 checksum: 62b80b5b438a6d531ce614ddfbf63791de25e8ba22b071e73c37bd94688398f63e42dc0be3f2b3add4a14d20f322593f51cf329ba81ca3ebcaf414d27217c433 2495 checksum: 67cb6a41704655d5cc1708952b13cbfad74911290928a78a0f27febd3798d2d2838fb501d54439ddac684cb08f26f47d8099f7a8028f52c67264226e105bb128
2535 languageName: node 2496 languageName: node
2536 linkType: hard 2497 linkType: hard
2537 2498
2538"@types/react@npm:*, @types/react@npm:^18.0.31": 2499"@types/react@npm:*, @types/react@npm:^18.2.12":
2539 version: 18.0.31 2500 version: 18.2.12
2540 resolution: "@types/react@npm:18.0.31" 2501 resolution: "@types/react@npm:18.2.12"
2541 dependencies: 2502 dependencies:
2542 "@types/prop-types": "npm:*" 2503 "@types/prop-types": "npm:*"
2543 "@types/scheduler": "npm:*" 2504 "@types/scheduler": "npm:*"
2544 csstype: "npm:^3.0.2" 2505 csstype: "npm:^3.0.2"
2545 checksum: 566a40c89bf50695e8feba6188e5bc390db2895a9d9cc05e3285a9365d13e3abe695c25947758955bea21b94ce112bafb0c21d9c6e9240bea801de070bf29d59 2506 checksum: 870d0ada47889869660333555d45e8d19befb267c2c0de95995df428a714e5ab71b8cda4b59b01ed0f586da8b9eb7e93cd2baa6212a6563ebc0f664e9160e297
2546 languageName: node 2507 languageName: node
2547 linkType: hard 2508 linkType: hard
2548 2509
@@ -2576,14 +2537,14 @@ __metadata:
2576 languageName: node 2537 languageName: node
2577 linkType: hard 2538 linkType: hard
2578 2539
2579"@typescript-eslint/eslint-plugin@npm:^5.57.0": 2540"@typescript-eslint/eslint-plugin@npm:^5.59.11":
2580 version: 5.57.0 2541 version: 5.59.11
2581 resolution: "@typescript-eslint/eslint-plugin@npm:5.57.0" 2542 resolution: "@typescript-eslint/eslint-plugin@npm:5.59.11"
2582 dependencies: 2543 dependencies:
2583 "@eslint-community/regexpp": "npm:^4.4.0" 2544 "@eslint-community/regexpp": "npm:^4.4.0"
2584 "@typescript-eslint/scope-manager": "npm:5.57.0" 2545 "@typescript-eslint/scope-manager": "npm:5.59.11"
2585 "@typescript-eslint/type-utils": "npm:5.57.0" 2546 "@typescript-eslint/type-utils": "npm:5.59.11"
2586 "@typescript-eslint/utils": "npm:5.57.0" 2547 "@typescript-eslint/utils": "npm:5.59.11"
2587 debug: "npm:^4.3.4" 2548 debug: "npm:^4.3.4"
2588 grapheme-splitter: "npm:^1.0.4" 2549 grapheme-splitter: "npm:^1.0.4"
2589 ignore: "npm:^5.2.0" 2550 ignore: "npm:^5.2.0"
@@ -2596,43 +2557,43 @@ __metadata:
2596 peerDependenciesMeta: 2557 peerDependenciesMeta:
2597 typescript: 2558 typescript:
2598 optional: true 2559 optional: true
2599 checksum: 91f9484747d8fad9d12516f52994e9792ae3529650bbc09277feed4b1880ca944280746278c550a0974512d87b93309e9fbf08974c3baa0b0eaffc8d55555b6f 2560 checksum: 948e8c47bece0b81718f1423930376ea81fe95009c6175fdffef924773b0cece38737907f90de939a12eb802102b0ccc901b3c8f0df060d6687cf4369c0c1122
2600 languageName: node 2561 languageName: node
2601 linkType: hard 2562 linkType: hard
2602 2563
2603"@typescript-eslint/parser@npm:^5.57.0": 2564"@typescript-eslint/parser@npm:^5.59.11":
2604 version: 5.57.0 2565 version: 5.59.11
2605 resolution: "@typescript-eslint/parser@npm:5.57.0" 2566 resolution: "@typescript-eslint/parser@npm:5.59.11"
2606 dependencies: 2567 dependencies:
2607 "@typescript-eslint/scope-manager": "npm:5.57.0" 2568 "@typescript-eslint/scope-manager": "npm:5.59.11"
2608 "@typescript-eslint/types": "npm:5.57.0" 2569 "@typescript-eslint/types": "npm:5.59.11"
2609 "@typescript-eslint/typescript-estree": "npm:5.57.0" 2570 "@typescript-eslint/typescript-estree": "npm:5.59.11"
2610 debug: "npm:^4.3.4" 2571 debug: "npm:^4.3.4"
2611 peerDependencies: 2572 peerDependencies:
2612 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2573 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2613 peerDependenciesMeta: 2574 peerDependenciesMeta:
2614 typescript: 2575 typescript:
2615 optional: true 2576 optional: true
2616 checksum: 147c20b5c08a1ce02fd79473ab8a6e6d12eb107b1e591dccdbb434db5f21347b9e63e4ef0db6836233442191c2e1c5e1bf78afd654164b46ede6ca35990a2e2d 2577 checksum: 3e9b4326721b02d6aa9dad73806e5f34ef26b9e9dc12245a8d5601116de056b5449ea6d39c04fcbf1ba4b7edaf840e5e3623840d1ea92f96e65f4eb1856ecc60
2617 languageName: node 2578 languageName: node
2618 linkType: hard 2579 linkType: hard
2619 2580
2620"@typescript-eslint/scope-manager@npm:5.57.0": 2581"@typescript-eslint/scope-manager@npm:5.59.11":
2621 version: 5.57.0 2582 version: 5.59.11
2622 resolution: "@typescript-eslint/scope-manager@npm:5.57.0" 2583 resolution: "@typescript-eslint/scope-manager@npm:5.59.11"
2623 dependencies: 2584 dependencies:
2624 "@typescript-eslint/types": "npm:5.57.0" 2585 "@typescript-eslint/types": "npm:5.59.11"
2625 "@typescript-eslint/visitor-keys": "npm:5.57.0" 2586 "@typescript-eslint/visitor-keys": "npm:5.59.11"
2626 checksum: 21b5b6b5793c6d9797e0106c1ab13e356283de7a34d95eeb49ece8016bad7977140689403a7d529828dacf9f1de314bc36961a96ffc39d81193cb2addbe86b7f 2587 checksum: 92d4d163c2e2ff76df70511d511dfc8be14a3b47b4b35f3561d3388c6ebca0c4fc72cb9c8b91160ddc12a67f5848779fbcdab339e6b7cfb6b1b50b28658d6607
2627 languageName: node 2588 languageName: node
2628 linkType: hard 2589 linkType: hard
2629 2590
2630"@typescript-eslint/type-utils@npm:5.57.0": 2591"@typescript-eslint/type-utils@npm:5.59.11":
2631 version: 5.57.0 2592 version: 5.59.11
2632 resolution: "@typescript-eslint/type-utils@npm:5.57.0" 2593 resolution: "@typescript-eslint/type-utils@npm:5.59.11"
2633 dependencies: 2594 dependencies:
2634 "@typescript-eslint/typescript-estree": "npm:5.57.0" 2595 "@typescript-eslint/typescript-estree": "npm:5.59.11"
2635 "@typescript-eslint/utils": "npm:5.57.0" 2596 "@typescript-eslint/utils": "npm:5.59.11"
2636 debug: "npm:^4.3.4" 2597 debug: "npm:^4.3.4"
2637 tsutils: "npm:^3.21.0" 2598 tsutils: "npm:^3.21.0"
2638 peerDependencies: 2599 peerDependencies:
@@ -2640,23 +2601,23 @@ __metadata:
2640 peerDependenciesMeta: 2601 peerDependenciesMeta:
2641 typescript: 2602 typescript:
2642 optional: true 2603 optional: true
2643 checksum: 42ffcee993ceb67a18f09e9db5cd0cc69711dfd24b22a0990b61e551d7041538ddd24973f631d03070faa4501e62db30d421fa19eb3b8760aa6094147ca3f4fa 2604 checksum: 227611087687a10da8203236f3efafd3e8d7f122e59e8e81c2651bb004fe652cab0d2043ed9597aac52c5d7fdc31927d4121ebea7d3969d5a6cd92076b8d5206
2644 languageName: node 2605 languageName: node
2645 linkType: hard 2606 linkType: hard
2646 2607
2647"@typescript-eslint/types@npm:5.57.0": 2608"@typescript-eslint/types@npm:5.59.11":
2648 version: 5.57.0 2609 version: 5.59.11
2649 resolution: "@typescript-eslint/types@npm:5.57.0" 2610 resolution: "@typescript-eslint/types@npm:5.59.11"
2650 checksum: 0395cb9abb12534019033d9802798a072662bc184d79f0a4365294b2086c5e3617e78a76451ec7461f73e3b41327467f8ec124543ae812fa8c61060bbb297e1d 2611 checksum: 93b43e9c690b67bb5bb072efa0cffae723c01359233b1fffafc09a34d40be6214a374621555296561c24be10154278588f2febabf31d100e9b08dcdb1d7f37e6
2651 languageName: node 2612 languageName: node
2652 linkType: hard 2613 linkType: hard
2653 2614
2654"@typescript-eslint/typescript-estree@npm:5.57.0": 2615"@typescript-eslint/typescript-estree@npm:5.59.11":
2655 version: 5.57.0 2616 version: 5.59.11
2656 resolution: "@typescript-eslint/typescript-estree@npm:5.57.0" 2617 resolution: "@typescript-eslint/typescript-estree@npm:5.59.11"
2657 dependencies: 2618 dependencies:
2658 "@typescript-eslint/types": "npm:5.57.0" 2619 "@typescript-eslint/types": "npm:5.59.11"
2659 "@typescript-eslint/visitor-keys": "npm:5.57.0" 2620 "@typescript-eslint/visitor-keys": "npm:5.59.11"
2660 debug: "npm:^4.3.4" 2621 debug: "npm:^4.3.4"
2661 globby: "npm:^11.1.0" 2622 globby: "npm:^11.1.0"
2662 is-glob: "npm:^4.0.3" 2623 is-glob: "npm:^4.0.3"
@@ -2665,62 +2626,63 @@ __metadata:
2665 peerDependenciesMeta: 2626 peerDependenciesMeta:
2666 typescript: 2627 typescript:
2667 optional: true 2628 optional: true
2668 checksum: 34f7e4186f938d319a6df51dcdadba548e22d20674d7c826a3ffedce2723224e42982ff76547bc28f3357580a32ab27d107f3e312607924156fe15985c9431ee 2629 checksum: eea170d64d20e4cb87097f2014391cc065e4f2d2c2e704a90e13d672b3368f1d3e6909a5b656572f2ab37741f96d624854038ef5070aaf6630a34afac800a5af
2669 languageName: node 2630 languageName: node
2670 linkType: hard 2631 linkType: hard
2671 2632
2672"@typescript-eslint/utils@npm:5.57.0": 2633"@typescript-eslint/utils@npm:5.59.11":
2673 version: 5.57.0 2634 version: 5.59.11
2674 resolution: "@typescript-eslint/utils@npm:5.57.0" 2635 resolution: "@typescript-eslint/utils@npm:5.59.11"
2675 dependencies: 2636 dependencies:
2676 "@eslint-community/eslint-utils": "npm:^4.2.0" 2637 "@eslint-community/eslint-utils": "npm:^4.2.0"
2677 "@types/json-schema": "npm:^7.0.9" 2638 "@types/json-schema": "npm:^7.0.9"
2678 "@types/semver": "npm:^7.3.12" 2639 "@types/semver": "npm:^7.3.12"
2679 "@typescript-eslint/scope-manager": "npm:5.57.0" 2640 "@typescript-eslint/scope-manager": "npm:5.59.11"
2680 "@typescript-eslint/types": "npm:5.57.0" 2641 "@typescript-eslint/types": "npm:5.59.11"
2681 "@typescript-eslint/typescript-estree": "npm:5.57.0" 2642 "@typescript-eslint/typescript-estree": "npm:5.59.11"
2682 eslint-scope: "npm:^5.1.1" 2643 eslint-scope: "npm:^5.1.1"
2683 semver: "npm:^7.3.7" 2644 semver: "npm:^7.3.7"
2684 peerDependencies: 2645 peerDependencies:
2685 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2646 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2686 checksum: 5b3007f7db5dfdf1eb1befbef69bb2dfd1352cc8c21f78f31727c02c075eab06a3d59a4a30f4a417589a3f635f4c541a0180efa4b05baf6003911005029d5b05 2647 checksum: de8ae9ec3ef6fd85ac243b5d5f34c1e7e9250452ada60049c15f1128c2654cd6ae19d1ca902000364dc230763492b1a08e213a36be7827ed49a29fa3ec325cf4
2687 languageName: node 2648 languageName: node
2688 linkType: hard 2649 linkType: hard
2689 2650
2690"@typescript-eslint/visitor-keys@npm:5.57.0": 2651"@typescript-eslint/visitor-keys@npm:5.59.11":
2691 version: 5.57.0 2652 version: 5.59.11
2692 resolution: "@typescript-eslint/visitor-keys@npm:5.57.0" 2653 resolution: "@typescript-eslint/visitor-keys@npm:5.59.11"
2693 dependencies: 2654 dependencies:
2694 "@typescript-eslint/types": "npm:5.57.0" 2655 "@typescript-eslint/types": "npm:5.59.11"
2695 eslint-visitor-keys: "npm:^3.3.0" 2656 eslint-visitor-keys: "npm:^3.3.0"
2696 checksum: 19a09590cf2a4218dbc5a5ddf09acf989a450a635c881d9ca77ae2f7075fc5f14386fa4cf9ceb2bdbfd4166e81ff0089ab1b6c6ee999ed32830374ff25f87ea1 2657 checksum: 733ba3db77b0425cea1285d399eea68b25f2c546497baf0a2636fe243828bb9f9b96f404fe304700cd9bf1e7a4253549614209f1e03ad821627e476be2602a21
2697 languageName: node 2658 languageName: node
2698 linkType: hard 2659 linkType: hard
2699 2660
2700"@vitejs/plugin-react-swc@npm:^3.2.0": 2661"@vitejs/plugin-react-swc@npm:^3.3.2":
2701 version: 3.2.0 2662 version: 3.3.2
2702 resolution: "@vitejs/plugin-react-swc@npm:3.2.0" 2663 resolution: "@vitejs/plugin-react-swc@npm:3.3.2"
2703 dependencies: 2664 dependencies:
2704 "@swc/core": "npm:^1.3.35" 2665 "@swc/core": "npm:^1.3.61"
2705 peerDependencies: 2666 peerDependencies:
2706 vite: ^4 2667 vite: ^4
2707 checksum: cd5da8d9f96261d5b062f588393576748d75c245242fa8cd88ec1a983510cd3d5aeadc58f543f5a8a51e214866d966492a743b0f284197b531a00a202487b32c 2668 checksum: f99a8859f81fae07e5991790a65700612e2f118f37716999d6b18e84bea9329f5d7d0d9d6aaddd19149c198d3e9c22f862a100c2a29ab35e54da3bc60a36e919
2708 languageName: node 2669 languageName: node
2709 linkType: hard 2670 linkType: hard
2710 2671
2711"@xstate/cli@npm:^0.4.2": 2672"@xstate/cli@npm:^0.5.1":
2712 version: 0.4.2 2673 version: 0.5.1
2713 resolution: "@xstate/cli@npm:0.4.2" 2674 resolution: "@xstate/cli@npm:0.5.1"
2714 dependencies: 2675 dependencies:
2715 "@babel/core": "npm:^7.19.3" 2676 "@babel/core": "npm:^7.21.4"
2716 "@xstate/machine-extractor": "npm:^0.9.0" 2677 "@xstate/machine-extractor": "npm:^0.9.0"
2717 "@xstate/tools-shared": "npm:^2.0.2" 2678 "@xstate/tools-shared": "npm:^3.0.0"
2718 chokidar: "npm:^3.5.3" 2679 chokidar: "npm:^3.5.3"
2719 commander: "npm:^8.0.0" 2680 commander: "npm:^8.0.0"
2681 prettier: "npm:^2.8.7"
2720 xstate: "npm:^4.33.4" 2682 xstate: "npm:^4.33.4"
2721 bin: 2683 bin:
2722 xstate: bin/bin.js 2684 xstate: bin/bin.js
2723 checksum: 6434a4400062d10e212c1c3c145c10f0a7352fd4cb8be4641c05322f0177ffa66f5da40456bd1274c6b050e642b4e3a07ed7a43d39f5b5941a7621c078f0e22f 2685 checksum: 6bd0f997c821cce510b3b2ba7263dd29eb9ee3c3510c1f5f5e0ad502976eafe335cf59234ace67d192c3a23d1e6194190b92144ccec9b373686b5900e151e233
2724 languageName: node 2686 languageName: node
2725 linkType: hard 2687 linkType: hard
2726 2688
@@ -2738,15 +2700,14 @@ __metadata:
2738 languageName: node 2700 languageName: node
2739 linkType: hard 2701 linkType: hard
2740 2702
2741"@xstate/tools-shared@npm:^2.0.2": 2703"@xstate/tools-shared@npm:^3.0.0":
2742 version: 2.0.2 2704 version: 3.0.0
2743 resolution: "@xstate/tools-shared@npm:2.0.2" 2705 resolution: "@xstate/tools-shared@npm:3.0.0"
2744 dependencies: 2706 dependencies:
2745 "@xstate/machine-extractor": "npm:^0.9.0" 2707 "@xstate/machine-extractor": "npm:^0.9.0"
2746 peerDependencies: 2708 peerDependencies:
2747 prettier: ^2.3.1
2748 xstate: ^4 2709 xstate: ^4
2749 checksum: 59b65b39d665c523ece9a35eba99db2e4507abdcb7f0a27f15e418579821dd857f57c6b0cf4774e8d89879b7b9c7be8f159e27750fa6a1bb670f64368f5adeb1 2710 checksum: c200f68c8f569a222cbc502d84d1b0a19186055912c8e271e034f411845521894b11c5462faf41a6454cd3e43a2b6d1a61c97a8a26cf736964fbe5abf1c19519
2750 languageName: node 2711 languageName: node
2751 linkType: hard 2712 linkType: hard
2752 2713
@@ -2766,12 +2727,12 @@ __metadata:
2766 languageName: node 2727 languageName: node
2767 linkType: hard 2728 linkType: hard
2768 2729
2769"acorn@npm:^8.5.0, acorn@npm:^8.8.0": 2730"acorn@npm:^8.8.0, acorn@npm:^8.8.2":
2770 version: 8.8.2 2731 version: 8.9.0
2771 resolution: "acorn@npm:8.8.2" 2732 resolution: "acorn@npm:8.9.0"
2772 bin: 2733 bin:
2773 acorn: bin/acorn 2734 acorn: bin/acorn
2774 checksum: 5a47325f0aa08202080cb167d5b8103720d8a1d199f57988afa48bdfbc3c9973270b00e38c2c874240a49929625beaaae8c4ec683f5272b5f07f1119a457e5d0 2735 checksum: 82583d7017e93fbbf49b7fd808c7a41ea8756838f8477a7647c3fbb26482e7be98828e44e1a248bab45621057b35cc77d454b26f109b1461e755516d4278d35f
2775 languageName: node 2736 languageName: node
2776 linkType: hard 2737 linkType: hard
2777 2738
@@ -2836,6 +2797,13 @@ __metadata:
2836 languageName: node 2797 languageName: node
2837 linkType: hard 2798 linkType: hard
2838 2799
2800"ansi-regex@npm:^6.0.1":
2801 version: 6.0.1
2802 resolution: "ansi-regex@npm:6.0.1"
2803 checksum: 53669c3634190ead828055bcae5f0feff485fd8d7d05538d4f753ad56ffedb7aa5bcc93efaa8e99e4907ad970682413f2407cf4acac8deb1d408bc564bca9027
2804 languageName: node
2805 linkType: hard
2806
2839"ansi-styles@npm:^3.2.1": 2807"ansi-styles@npm:^3.2.1":
2840 version: 3.2.1 2808 version: 3.2.1
2841 resolution: "ansi-styles@npm:3.2.1" 2809 resolution: "ansi-styles@npm:3.2.1"
@@ -2845,7 +2813,7 @@ __metadata:
2845 languageName: node 2813 languageName: node
2846 linkType: hard 2814 linkType: hard
2847 2815
2848"ansi-styles@npm:^4.1.0": 2816"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
2849 version: 4.3.0 2817 version: 4.3.0
2850 resolution: "ansi-styles@npm:4.3.0" 2818 resolution: "ansi-styles@npm:4.3.0"
2851 dependencies: 2819 dependencies:
@@ -2854,7 +2822,7 @@ __metadata:
2854 languageName: node 2822 languageName: node
2855 linkType: hard 2823 linkType: hard
2856 2824
2857"ansi-styles@npm:^6.2.1": 2825"ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1":
2858 version: 6.2.1 2826 version: 6.2.1
2859 resolution: "ansi-styles@npm:6.2.1" 2827 resolution: "ansi-styles@npm:6.2.1"
2860 checksum: 86fe3fc999c89775171631b32920d1fbf8adc4225895db376057b5a5e6fdcf837ae994ca08756f0a676c0dd8c74e58a7e87515d1fa16d6fcfffdf9069d579e90 2828 checksum: 86fe3fc999c89775171631b32920d1fbf8adc4225895db376057b5a5e6fdcf837ae994ca08756f0a676c0dd8c74e58a7e87515d1fa16d6fcfffdf9069d579e90
@@ -2896,11 +2864,11 @@ __metadata:
2896 linkType: hard 2864 linkType: hard
2897 2865
2898"aria-query@npm:^5.1.3": 2866"aria-query@npm:^5.1.3":
2899 version: 5.1.3 2867 version: 5.2.1
2900 resolution: "aria-query@npm:5.1.3" 2868 resolution: "aria-query@npm:5.2.1"
2901 dependencies: 2869 dependencies:
2902 deep-equal: "npm:^2.0.5" 2870 dequal: "npm:^2.0.3"
2903 checksum: f324857bd55af166866c7a402336dd980d8f1c174203f7a38a77d6a075847c3bf1c21d33027c4db7c3b582c894d15c339e6818e709edbf52c15d34d9a5797ee0 2871 checksum: 80fffcdf6e45acd43e82e402f60d0b6bdd3771952abe431bbf274f2921c5e933d4de5ee9105732cc504631fd596772cc035e53115426f59605fb317fb8cadea3
2904 languageName: node 2872 languageName: node
2905 linkType: hard 2873 linkType: hard
2906 2874
@@ -3009,18 +2977,18 @@ __metadata:
3009 linkType: hard 2977 linkType: hard
3010 2978
3011"axe-core@npm:^4.6.2": 2979"axe-core@npm:^4.6.2":
3012 version: 4.6.3 2980 version: 4.7.2
3013 resolution: "axe-core@npm:4.6.3" 2981 resolution: "axe-core@npm:4.7.2"
3014 checksum: 0dea15ef524fdc92071f15958485cfc2d5b2c1820b79d542cf7368a5eade9fb9e03f9735ac6f03444238ec1aa544ddc93846925105c2f4edfb302e520c4c3076 2982 checksum: 4b4e83d68d242b8252089356d0ad3c9c56c25a11c3ef46887ad3b8e3b7b82a6c86fda4cc327ac361110619d0595a3dcae94b605f1c6b38880786883a6d123231
3015 languageName: node 2983 languageName: node
3016 linkType: hard 2984 linkType: hard
3017 2985
3018"axobject-query@npm:^3.1.1": 2986"axobject-query@npm:^3.1.1":
3019 version: 3.1.1 2987 version: 3.2.1
3020 resolution: "axobject-query@npm:3.1.1" 2988 resolution: "axobject-query@npm:3.2.1"
3021 dependencies: 2989 dependencies:
3022 deep-equal: "npm:^2.0.5" 2990 dequal: "npm:^2.0.3"
3023 checksum: 4122b43bcb83ac73ff9989add7791b2a8889e40fe8d11e4a0bfb4c95fb672920b7e0308c40484ee21e3d1aa6fa04dff9067b7f891edd298635ffe97281f9d760 2991 checksum: 1df3a2188b61c6eec6fdd5e2967aa996c08220f912e82806062fb18db5a43a06907ad56dfa88571ab4a4b12dc01429653abe7196ccf854194680e9b3fe1053f3
3024 languageName: node 2992 languageName: node
3025 linkType: hard 2993 linkType: hard
3026 2994
@@ -3123,16 +3091,16 @@ __metadata:
3123 linkType: hard 3091 linkType: hard
3124 3092
3125"browserslist@npm:^4.21.3, browserslist@npm:^4.21.5": 3093"browserslist@npm:^4.21.3, browserslist@npm:^4.21.5":
3126 version: 4.21.5 3094 version: 4.21.9
3127 resolution: "browserslist@npm:4.21.5" 3095 resolution: "browserslist@npm:4.21.9"
3128 dependencies: 3096 dependencies:
3129 caniuse-lite: "npm:^1.0.30001449" 3097 caniuse-lite: "npm:^1.0.30001503"
3130 electron-to-chromium: "npm:^1.4.284" 3098 electron-to-chromium: "npm:^1.4.431"
3131 node-releases: "npm:^2.0.8" 3099 node-releases: "npm:^2.0.12"
3132 update-browserslist-db: "npm:^1.0.10" 3100 update-browserslist-db: "npm:^1.0.11"
3133 bin: 3101 bin:
3134 browserslist: cli.js 3102 browserslist: cli.js
3135 checksum: 66c055357fda71fcde8a9dc1f5af7e5bd320670ad5199196275703e305b77f92969c07a70a383e8130cd0f8c98a8b6d2a211b57ee6b5b4c2ac37779d9800a6c4 3103 checksum: 0158082dc5c14f6db834b6d46c56fafcdfb203959467f66857dd6c4167af0f95108ed101776e020f84a2bb6771a9219bf2e4f2c35776bbc651d7deaf5d3a1f60
3136 languageName: node 3104 languageName: node
3137 linkType: hard 3105 linkType: hard
3138 3106
@@ -3150,29 +3118,23 @@ __metadata:
3150 languageName: node 3118 languageName: node
3151 linkType: hard 3119 linkType: hard
3152 3120
3153"cacache@npm:^16.1.0": 3121"cacache@npm:^17.0.0":
3154 version: 16.1.3 3122 version: 17.1.3
3155 resolution: "cacache@npm:16.1.3" 3123 resolution: "cacache@npm:17.1.3"
3156 dependencies: 3124 dependencies:
3157 "@npmcli/fs": "npm:^2.1.0" 3125 "@npmcli/fs": "npm:^3.1.0"
3158 "@npmcli/move-file": "npm:^2.0.0" 3126 fs-minipass: "npm:^3.0.0"
3159 chownr: "npm:^2.0.0" 3127 glob: "npm:^10.2.2"
3160 fs-minipass: "npm:^2.1.0"
3161 glob: "npm:^8.0.1"
3162 infer-owner: "npm:^1.0.4"
3163 lru-cache: "npm:^7.7.1" 3128 lru-cache: "npm:^7.7.1"
3164 minipass: "npm:^3.1.6" 3129 minipass: "npm:^5.0.0"
3165 minipass-collect: "npm:^1.0.2" 3130 minipass-collect: "npm:^1.0.2"
3166 minipass-flush: "npm:^1.0.5" 3131 minipass-flush: "npm:^1.0.5"
3167 minipass-pipeline: "npm:^1.2.4" 3132 minipass-pipeline: "npm:^1.2.4"
3168 mkdirp: "npm:^1.0.4"
3169 p-map: "npm:^4.0.0" 3133 p-map: "npm:^4.0.0"
3170 promise-inflight: "npm:^1.0.1" 3134 ssri: "npm:^10.0.0"
3171 rimraf: "npm:^3.0.2"
3172 ssri: "npm:^9.0.0"
3173 tar: "npm:^6.1.11" 3135 tar: "npm:^6.1.11"
3174 unique-filename: "npm:^2.0.0" 3136 unique-filename: "npm:^3.0.0"
3175 checksum: 54f39565219c47ac624e0efeae123551b5391844f18ae69d0c344f51ce2b9ae4adec62316e5eae7e11cf83c3c21f726a0117d55400182779dce687887ce3f50e 3137 checksum: 19b4f65a5b3e3d38aac2426b39ee5f6ad4da3afa8a40991b5784a07a480585af89904e425459d3ca335dc8ff60e2a213e95d4d4bb6a038fb6854eb9c3e777121
3176 languageName: node 3138 languageName: node
3177 linkType: hard 3139 linkType: hard
3178 3140
@@ -3203,10 +3165,10 @@ __metadata:
3203 languageName: node 3165 languageName: node
3204 linkType: hard 3166 linkType: hard
3205 3167
3206"caniuse-lite@npm:^1.0.30001449": 3168"caniuse-lite@npm:^1.0.30001503":
3207 version: 1.0.30001473 3169 version: 1.0.30001504
3208 resolution: "caniuse-lite@npm:1.0.30001473" 3170 resolution: "caniuse-lite@npm:1.0.30001504"
3209 checksum: cdd4672faf6fec985579a9156d4e2e0bfbfdab1307c64e50f1b1d79a1b756e4a161dc98d19e0f47a940b58bb455b430c656faaba3799bb64956e24a9c9dbea02 3171 checksum: 82f3f90a40709aec62cbc4265ad6c6ef513cc86ee9cd0f3af7d9dc2bf520516a0fe97dc24b3986b3a3bafe345b29dbb037d1a14620120f43cc1bc29d4ad782f2
3210 languageName: node 3172 languageName: node
3211 linkType: hard 3173 linkType: hard
3212 3174
@@ -3257,12 +3219,12 @@ __metadata:
3257 languageName: node 3219 languageName: node
3258 linkType: hard 3220 linkType: hard
3259 3221
3260"clean-css@npm:5.2.0": 3222"clean-css@npm:~5.3.2":
3261 version: 5.2.0 3223 version: 5.3.2
3262 resolution: "clean-css@npm:5.2.0" 3224 resolution: "clean-css@npm:5.3.2"
3263 dependencies: 3225 dependencies:
3264 source-map: "npm:~0.6.0" 3226 source-map: "npm:~0.6.0"
3265 checksum: 845c87cf21e30358f9caff7cae0401e33b086764ced11c9ca5cd86666547a53ef20ff4bd7458187be5bf96922fe6a5f8f35d657c0488b4fefe527457afd6559f 3227 checksum: 3ba045341c3d4bb37b0cb69a2ea20774f60736a9ff7a11ea78bb457bc84fa1e2e7264da28a755d0f02ccfbe841b9e1d8321a9c3938f160f8bdd70c29fbb7dc9a
3266 languageName: node 3228 languageName: node
3267 linkType: hard 3229 linkType: hard
3268 3230
@@ -3321,6 +3283,13 @@ __metadata:
3321 languageName: node 3283 languageName: node
3322 linkType: hard 3284 linkType: hard
3323 3285
3286"commander@npm:^10.0.0":
3287 version: 10.0.1
3288 resolution: "commander@npm:10.0.1"
3289 checksum: b2a03d799104eac407ca031b94126c98198594fcff41554eb253cef748de57fb1a4cdd591baa075de589f2fddf1f968d1ecd1b79e8b47570ee441ab4f3363776
3290 languageName: node
3291 linkType: hard
3292
3324"commander@npm:^2.20.0": 3293"commander@npm:^2.20.0":
3325 version: 2.20.3 3294 version: 2.20.3
3326 resolution: "commander@npm:2.20.3" 3295 resolution: "commander@npm:2.20.3"
@@ -3335,13 +3304,6 @@ __metadata:
3335 languageName: node 3304 languageName: node
3336 linkType: hard 3305 linkType: hard
3337 3306
3338"commander@npm:^9.4.1":
3339 version: 9.5.0
3340 resolution: "commander@npm:9.5.0"
3341 checksum: 1d09146ccb60400550629bcded4b72eeb100728207ecb2538dd827b19571dc16d3b0ee5da762d9bdbbe680ed5cca6658cac5bfce262b1b73eabe5ef8c15cdd9d
3342 languageName: node
3343 linkType: hard
3344
3345"common-tags@npm:^1.8.0": 3307"common-tags@npm:^1.8.0":
3346 version: 1.8.2 3308 version: 1.8.2
3347 resolution: "common-tags@npm:1.8.2" 3309 resolution: "common-tags@npm:1.8.2"
@@ -3378,11 +3340,11 @@ __metadata:
3378 linkType: hard 3340 linkType: hard
3379 3341
3380"core-js-compat@npm:^3.21.0, core-js-compat@npm:^3.22.1": 3342"core-js-compat@npm:^3.21.0, core-js-compat@npm:^3.22.1":
3381 version: 3.29.1 3343 version: 3.31.0
3382 resolution: "core-js-compat@npm:3.29.1" 3344 resolution: "core-js-compat@npm:3.31.0"
3383 dependencies: 3345 dependencies:
3384 browserslist: "npm:^4.21.5" 3346 browserslist: "npm:^4.21.5"
3385 checksum: 83bf140005baa05ea461f1bc02fad065b9f5cb59c82259af9f79e44ff4b2844bb6402cf4a699a076bcf67e7a55c9f5138f348e406b2a9a4e29d5ab9778663eff 3347 checksum: 2e04820a0df57bbba1acc6d057792a718c765b7af8a9e59cff986f3c60189d0c8cad1e2c2fa056345da79c86fdd28f587363598a68ee7734cdd0e229ddda6ae6
3386 languageName: node 3348 languageName: node
3387 linkType: hard 3349 linkType: hard
3388 3350
@@ -3400,9 +3362,9 @@ __metadata:
3400 linkType: hard 3362 linkType: hard
3401 3363
3402"crelt@npm:^1.0.5": 3364"crelt@npm:^1.0.5":
3403 version: 1.0.5 3365 version: 1.0.6
3404 resolution: "crelt@npm:1.0.5" 3366 resolution: "crelt@npm:1.0.6"
3405 checksum: b6064ce286cdac8ddd52363989f59dbc28faa2fba69f8da4f98ef1d8984c0fb2afd50f6130084d9aee05a6401fdb6d17a92874aeed2229dccf9284a2c915ed63 3367 checksum: ceed33a9356c4502fefae5941bc4aa9840b5738f5e5ea2f162cace5c755861bf4a738330cdb807d169241aca8135fa9ef798c379d190e3ede9e14dffab2286bf
3406 languageName: node 3368 languageName: node
3407 linkType: hard 3369 linkType: hard
3408 3370
@@ -3418,7 +3380,7 @@ __metadata:
3418 languageName: node 3380 languageName: node
3419 linkType: hard 3381 linkType: hard
3420 3382
3421"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": 3383"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
3422 version: 7.0.3 3384 version: 7.0.3
3423 resolution: "cross-spawn@npm:7.0.3" 3385 resolution: "cross-spawn@npm:7.0.3"
3424 dependencies: 3386 dependencies:
@@ -3436,10 +3398,10 @@ __metadata:
3436 languageName: node 3398 languageName: node
3437 linkType: hard 3399 linkType: hard
3438 3400
3439"csstype@npm:^3.0.2, csstype@npm:^3.1.1": 3401"csstype@npm:^3.0.2, csstype@npm:^3.1.2":
3440 version: 3.1.1 3402 version: 3.1.2
3441 resolution: "csstype@npm:3.1.1" 3403 resolution: "csstype@npm:3.1.2"
3442 checksum: 39c4533f337cad38b9574a24b4b94bb203f091882295b6b4fb27e9e2b17148b188847f5fb728796af60bd0b80c502d510f89fe7ada3b661eaa6bca758c902036 3404 checksum: 9f4357df50023d227d535beb807ccf8e6d8ad6b639afe375898214ebde729aa275731a19d9bcbf01444a6904008cc0d47fbbefa5fa5fc59d7d40e3595d0d41ae
3443 languageName: node 3405 languageName: node
3444 linkType: hard 3406 linkType: hard
3445 3407
@@ -3471,31 +3433,6 @@ __metadata:
3471 languageName: node 3433 languageName: node
3472 linkType: hard 3434 linkType: hard
3473 3435
3474"deep-equal@npm:^2.0.5":
3475 version: 2.2.0
3476 resolution: "deep-equal@npm:2.2.0"
3477 dependencies:
3478 call-bind: "npm:^1.0.2"
3479 es-get-iterator: "npm:^1.1.2"
3480 get-intrinsic: "npm:^1.1.3"
3481 is-arguments: "npm:^1.1.1"
3482 is-array-buffer: "npm:^3.0.1"
3483 is-date-object: "npm:^1.0.5"
3484 is-regex: "npm:^1.1.4"
3485 is-shared-array-buffer: "npm:^1.0.2"
3486 isarray: "npm:^2.0.5"
3487 object-is: "npm:^1.1.5"
3488 object-keys: "npm:^1.1.1"
3489 object.assign: "npm:^4.1.4"
3490 regexp.prototype.flags: "npm:^1.4.3"
3491 side-channel: "npm:^1.0.4"
3492 which-boxed-primitive: "npm:^1.0.2"
3493 which-collection: "npm:^1.0.1"
3494 which-typed-array: "npm:^1.1.9"
3495 checksum: 63e4ae4ce68cb45a6c48c5d702bb8ea8d05257140f26dfae90a9c08c0da02ce92680d8ffda553f102294edc6b5e2110d98d74d34989632e3fc128232459b234f
3496 languageName: node
3497 linkType: hard
3498
3499"deep-is@npm:^0.1.3": 3436"deep-is@npm:^0.1.3":
3500 version: 0.1.4 3437 version: 0.1.4
3501 resolution: "deep-is@npm:0.1.4" 3438 resolution: "deep-is@npm:0.1.4"
@@ -3517,7 +3454,7 @@ __metadata:
3517 languageName: node 3454 languageName: node
3518 linkType: hard 3455 linkType: hard
3519 3456
3520"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4": 3457"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0":
3521 version: 1.2.0 3458 version: 1.2.0
3522 resolution: "define-properties@npm:1.2.0" 3459 resolution: "define-properties@npm:1.2.0"
3523 dependencies: 3460 dependencies:
@@ -3541,6 +3478,13 @@ __metadata:
3541 languageName: node 3478 languageName: node
3542 linkType: hard 3479 linkType: hard
3543 3480
3481"dequal@npm:^2.0.3":
3482 version: 2.0.3
3483 resolution: "dequal@npm:2.0.3"
3484 checksum: 7a633ec0ba78bc08ba217b762b15157d2ec99edb50a82124df2c341255b1943217215872888981cc6a6ee02406ab1b09783f5b51b7db8d8f8f1284092f379aad
3485 languageName: node
3486 linkType: hard
3487
3544"dir-glob@npm:^3.0.1": 3488"dir-glob@npm:^3.0.1":
3545 version: 3.0.1 3489 version: 3.0.1
3546 resolution: "dir-glob@npm:3.0.1" 3490 resolution: "dir-glob@npm:3.0.1"
@@ -3588,6 +3532,13 @@ __metadata:
3588 languageName: node 3532 languageName: node
3589 linkType: hard 3533 linkType: hard
3590 3534
3535"eastasianwidth@npm:^0.2.0":
3536 version: 0.2.0
3537 resolution: "eastasianwidth@npm:0.2.0"
3538 checksum: 0b403fab07c8a53488ea6212435f12b8eeec0b0b828554381b333ea1e41104a137cfe812fa83d021ea0270eb6249226bb0dcb61f8f94bed52b943fa2f720542f
3539 languageName: node
3540 linkType: hard
3541
3591"ejs@npm:^3.1.6": 3542"ejs@npm:^3.1.6":
3592 version: 3.1.9 3543 version: 3.1.9
3593 resolution: "ejs@npm:3.1.9" 3544 resolution: "ejs@npm:3.1.9"
@@ -3599,10 +3550,10 @@ __metadata:
3599 languageName: node 3550 languageName: node
3600 linkType: hard 3551 linkType: hard
3601 3552
3602"electron-to-chromium@npm:^1.4.284": 3553"electron-to-chromium@npm:^1.4.431":
3603 version: 1.4.347 3554 version: 1.4.433
3604 resolution: "electron-to-chromium@npm:1.4.347" 3555 resolution: "electron-to-chromium@npm:1.4.433"
3605 checksum: a8363b679c0aee9d4fcbd224e3625e9c52e608dfe3525b773b0c400c3c83cc50253f45e022f463d0ff2fb04d7eec4919babe79b6c1bfb5ada19d84876646763c 3556 checksum: 7bc3350f4a02b9dca6f5b50f73d613caf3549064171213064c16be45b0a1ebd48c1feb5aa4ee7cf0ced244a9e53837300648084ee67eee6bccc039145eeb6367
3606 languageName: node 3557 languageName: node
3607 linkType: hard 3558 linkType: hard
3608 3559
@@ -3630,19 +3581,19 @@ __metadata:
3630 linkType: hard 3581 linkType: hard
3631 3582
3632"enhanced-resolve@npm:^5.12.0": 3583"enhanced-resolve@npm:^5.12.0":
3633 version: 5.12.0 3584 version: 5.15.0
3634 resolution: "enhanced-resolve@npm:5.12.0" 3585 resolution: "enhanced-resolve@npm:5.15.0"
3635 dependencies: 3586 dependencies:
3636 graceful-fs: "npm:^4.2.4" 3587 graceful-fs: "npm:^4.2.4"
3637 tapable: "npm:^2.2.0" 3588 tapable: "npm:^2.2.0"
3638 checksum: 37c59d96743be343aa8cf32540745675175125b105d0b9a4f72cfc9e8a5218e17139304a7e56e289f5795feb4d3b342345242f4d7c4d9f7df0e16aa1a8eede3e 3589 checksum: 80df14e9d11ae561b7477866cf5d475aaf5988de7f118ef5a05b94722a107ab58928e3e2cd5a270f696a4f6a16308661872bd6f27cccb2dbe4d8283eee39f62d
3639 languageName: node 3590 languageName: node
3640 linkType: hard 3591 linkType: hard
3641 3592
3642"entities@npm:^4.4.0": 3593"entities@npm:^4.4.0":
3643 version: 4.4.0 3594 version: 4.5.0
3644 resolution: "entities@npm:4.4.0" 3595 resolution: "entities@npm:4.5.0"
3645 checksum: 80f4887c3e96be47c73e6d7a7a759b001cd070444d92d4df28fb5def41fc51f6fe9e3a4fe25dafacefe292798cf9f35f92f16c85f9de36c658fff414bd8394be 3596 checksum: 3c45485495e0a5481893b0b618aec46fbe960130bf0437b052ec08c25a8c781b978a06fca889ad7af79634d9111df159c2a37b56d2b2a847c0c4625cd40ab1be
3646 languageName: node 3597 languageName: node
3647 linkType: hard 3598 linkType: hard
3648 3599
@@ -3711,23 +3662,6 @@ __metadata:
3711 languageName: node 3662 languageName: node
3712 linkType: hard 3663 linkType: hard
3713 3664
3714"es-get-iterator@npm:^1.1.2":
3715 version: 1.1.3
3716 resolution: "es-get-iterator@npm:1.1.3"
3717 dependencies:
3718 call-bind: "npm:^1.0.2"
3719 get-intrinsic: "npm:^1.1.3"
3720 has-symbols: "npm:^1.0.3"
3721 is-arguments: "npm:^1.1.1"
3722 is-map: "npm:^2.0.2"
3723 is-set: "npm:^2.0.2"
3724 is-string: "npm:^1.0.7"
3725 isarray: "npm:^2.0.5"
3726 stop-iteration-iterator: "npm:^1.0.0"
3727 checksum: a4f7676e8cc1d4bb5ab1f725bd0b7880dbb3d3bf1b696fd405486c811fb10451fd071924ae6ff18083ae5bd74416e60de032530282dab3e33f0a6dd410d7cb60
3728 languageName: node
3729 linkType: hard
3730
3731"es-set-tostringtag@npm:^2.0.1": 3665"es-set-tostringtag@npm:^2.0.1":
3732 version: 2.0.1 3666 version: 2.0.1
3733 resolution: "es-set-tostringtag@npm:2.0.1" 3667 resolution: "es-set-tostringtag@npm:2.0.1"
@@ -3760,31 +3694,31 @@ __metadata:
3760 linkType: hard 3694 linkType: hard
3761 3695
3762"esbuild@npm:^0.17.5": 3696"esbuild@npm:^0.17.5":
3763 version: 0.17.14 3697 version: 0.17.19
3764 resolution: "esbuild@npm:0.17.14" 3698 resolution: "esbuild@npm:0.17.19"
3765 dependencies: 3699 dependencies:
3766 "@esbuild/android-arm": "npm:0.17.14" 3700 "@esbuild/android-arm": "npm:0.17.19"
3767 "@esbuild/android-arm64": "npm:0.17.14" 3701 "@esbuild/android-arm64": "npm:0.17.19"
3768 "@esbuild/android-x64": "npm:0.17.14" 3702 "@esbuild/android-x64": "npm:0.17.19"
3769 "@esbuild/darwin-arm64": "npm:0.17.14" 3703 "@esbuild/darwin-arm64": "npm:0.17.19"
3770 "@esbuild/darwin-x64": "npm:0.17.14" 3704 "@esbuild/darwin-x64": "npm:0.17.19"
3771 "@esbuild/freebsd-arm64": "npm:0.17.14" 3705 "@esbuild/freebsd-arm64": "npm:0.17.19"
3772 "@esbuild/freebsd-x64": "npm:0.17.14" 3706 "@esbuild/freebsd-x64": "npm:0.17.19"
3773 "@esbuild/linux-arm": "npm:0.17.14" 3707 "@esbuild/linux-arm": "npm:0.17.19"
3774 "@esbuild/linux-arm64": "npm:0.17.14" 3708 "@esbuild/linux-arm64": "npm:0.17.19"
3775 "@esbuild/linux-ia32": "npm:0.17.14" 3709 "@esbuild/linux-ia32": "npm:0.17.19"
3776 "@esbuild/linux-loong64": "npm:0.17.14" 3710 "@esbuild/linux-loong64": "npm:0.17.19"
3777 "@esbuild/linux-mips64el": "npm:0.17.14" 3711 "@esbuild/linux-mips64el": "npm:0.17.19"
3778 "@esbuild/linux-ppc64": "npm:0.17.14" 3712 "@esbuild/linux-ppc64": "npm:0.17.19"
3779 "@esbuild/linux-riscv64": "npm:0.17.14" 3713 "@esbuild/linux-riscv64": "npm:0.17.19"
3780 "@esbuild/linux-s390x": "npm:0.17.14" 3714 "@esbuild/linux-s390x": "npm:0.17.19"
3781 "@esbuild/linux-x64": "npm:0.17.14" 3715 "@esbuild/linux-x64": "npm:0.17.19"
3782 "@esbuild/netbsd-x64": "npm:0.17.14" 3716 "@esbuild/netbsd-x64": "npm:0.17.19"
3783 "@esbuild/openbsd-x64": "npm:0.17.14" 3717 "@esbuild/openbsd-x64": "npm:0.17.19"
3784 "@esbuild/sunos-x64": "npm:0.17.14" 3718 "@esbuild/sunos-x64": "npm:0.17.19"
3785 "@esbuild/win32-arm64": "npm:0.17.14" 3719 "@esbuild/win32-arm64": "npm:0.17.19"
3786 "@esbuild/win32-ia32": "npm:0.17.14" 3720 "@esbuild/win32-ia32": "npm:0.17.19"
3787 "@esbuild/win32-x64": "npm:0.17.14" 3721 "@esbuild/win32-x64": "npm:0.17.19"
3788 dependenciesMeta: 3722 dependenciesMeta:
3789 "@esbuild/android-arm": 3723 "@esbuild/android-arm":
3790 optional: true 3724 optional: true
@@ -3832,7 +3766,7 @@ __metadata:
3832 optional: true 3766 optional: true
3833 bin: 3767 bin:
3834 esbuild: bin/esbuild 3768 esbuild: bin/esbuild
3835 checksum: b69bc210efc10fcb1fd9521ed143a1e9384ee2fd1c502e0509022785e0cb128bf6bd330b4a307f8a4e7de17ca0926b6c60049a08708968bff158d638b3db6bfe 3769 checksum: 6df07a802006da7bcf3135f3014fb9f45f0f8772dc76315a4cc021e616e426cf04ed247635c5beed62d66f9aafd1db28d7b01664339fa438aacc2092723980a8
3836 languageName: node 3770 languageName: node
3837 linkType: hard 3771 linkType: hard
3838 3772
@@ -3932,12 +3866,13 @@ __metadata:
3932 languageName: node 3866 languageName: node
3933 linkType: hard 3867 linkType: hard
3934 3868
3935"eslint-import-resolver-typescript@npm:^3.5.4": 3869"eslint-import-resolver-typescript@npm:^3.5.5":
3936 version: 3.5.4 3870 version: 3.5.5
3937 resolution: "eslint-import-resolver-typescript@npm:3.5.4" 3871 resolution: "eslint-import-resolver-typescript@npm:3.5.5"
3938 dependencies: 3872 dependencies:
3939 debug: "npm:^4.3.4" 3873 debug: "npm:^4.3.4"
3940 enhanced-resolve: "npm:^5.12.0" 3874 enhanced-resolve: "npm:^5.12.0"
3875 eslint-module-utils: "npm:^2.7.4"
3941 get-tsconfig: "npm:^4.5.0" 3876 get-tsconfig: "npm:^4.5.0"
3942 globby: "npm:^13.1.3" 3877 globby: "npm:^13.1.3"
3943 is-core-module: "npm:^2.11.0" 3878 is-core-module: "npm:^2.11.0"
@@ -3946,19 +3881,19 @@ __metadata:
3946 peerDependencies: 3881 peerDependencies:
3947 eslint: "*" 3882 eslint: "*"
3948 eslint-plugin-import: "*" 3883 eslint-plugin-import: "*"
3949 checksum: 63c46e28f5c7aa7c37bf581184535251a291949f9cbd44ff65101cb1ff70767ac8a3a303d5c3ac5543e966182235a75b31bba5dd7641487537dcaa5c0f230221 3884 checksum: 4a398b14440ddc3aab1b300defceeea32f70798c8fbe4dfaadbc329ad0965ab85ba91beb5c100bb8e546f8aba996161ac8d73dfde3f26dc168805c02fb54b1ee
3950 languageName: node 3885 languageName: node
3951 linkType: hard 3886 linkType: hard
3952 3887
3953"eslint-module-utils@npm:^2.7.4": 3888"eslint-module-utils@npm:^2.7.4":
3954 version: 2.7.4 3889 version: 2.8.0
3955 resolution: "eslint-module-utils@npm:2.7.4" 3890 resolution: "eslint-module-utils@npm:2.8.0"
3956 dependencies: 3891 dependencies:
3957 debug: "npm:^3.2.7" 3892 debug: "npm:^3.2.7"
3958 peerDependenciesMeta: 3893 peerDependenciesMeta:
3959 eslint: 3894 eslint:
3960 optional: true 3895 optional: true
3961 checksum: 3acd6a8988830c11b4e2f900eb5a9a59143728dd7b914e9567316d964bd4f14355842f76b2ddf148ffaeba0c4a65f49338572a5a1e419e00eac7d2064cb7a559 3896 checksum: c4820cf0d710cece498aaae98a15d339e09b04804d478a6af598a6962baaac31db13ce9f025a64edb8f607c20a07f895dacd2e1b80b833b7f3ad38d66d269c29
3962 languageName: node 3897 languageName: node
3963 linkType: hard 3898 linkType: hard
3964 3899
@@ -4081,32 +4016,32 @@ __metadata:
4081 languageName: node 4016 languageName: node
4082 linkType: hard 4017 linkType: hard
4083 4018
4084"eslint-scope@npm:^7.1.1": 4019"eslint-scope@npm:^7.2.0":
4085 version: 7.1.1 4020 version: 7.2.0
4086 resolution: "eslint-scope@npm:7.1.1" 4021 resolution: "eslint-scope@npm:7.2.0"
4087 dependencies: 4022 dependencies:
4088 esrecurse: "npm:^4.3.0" 4023 esrecurse: "npm:^4.3.0"
4089 estraverse: "npm:^5.2.0" 4024 estraverse: "npm:^5.2.0"
4090 checksum: 07f794a9bf080e76cc89109d56ee6d3666666b09837f8352978f9b84cf0a1b2a559886bb563e2ae5c49f100d7c7633bc3ae991012123ee8611adac2d574bd034 4025 checksum: a68b86c2ab4bd4605f3d1f08007c9dcffebaffe80e12a5afe31ffe4350933d10a1b26b679851d5fbc931ffc59f4afab1778d44ac74ca05c0aa4e591acf403859
4091 languageName: node 4026 languageName: node
4092 linkType: hard 4027 linkType: hard
4093 4028
4094"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.0": 4029"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1":
4095 version: 3.4.0 4030 version: 3.4.1
4096 resolution: "eslint-visitor-keys@npm:3.4.0" 4031 resolution: "eslint-visitor-keys@npm:3.4.1"
4097 checksum: c55d5b9300877e364e3c3c7929735408e2e75411faf1b02e634b29b737d938a93ec9a134883454572454125ee8831eb5a2c5d2b02bb3edc0f9365de9687ea79f 4032 checksum: 97db79746bfe11a3ab0e60ce454cd809e7ac167ddd7d28736845ba57b8402d6b5d6c10fed2decf8c4026f7d3d659ebc024336ef30fdf473f0402bb1237c6a410
4098 languageName: node 4033 languageName: node
4099 linkType: hard 4034 linkType: hard
4100 4035
4101"eslint@npm:^8.37.0": 4036"eslint@npm:^8.43.0":
4102 version: 8.37.0 4037 version: 8.43.0
4103 resolution: "eslint@npm:8.37.0" 4038 resolution: "eslint@npm:8.43.0"
4104 dependencies: 4039 dependencies:
4105 "@eslint-community/eslint-utils": "npm:^4.2.0" 4040 "@eslint-community/eslint-utils": "npm:^4.2.0"
4106 "@eslint-community/regexpp": "npm:^4.4.0" 4041 "@eslint-community/regexpp": "npm:^4.4.0"
4107 "@eslint/eslintrc": "npm:^2.0.2" 4042 "@eslint/eslintrc": "npm:^2.0.3"
4108 "@eslint/js": "npm:8.37.0" 4043 "@eslint/js": "npm:8.43.0"
4109 "@humanwhocodes/config-array": "npm:^0.11.8" 4044 "@humanwhocodes/config-array": "npm:^0.11.10"
4110 "@humanwhocodes/module-importer": "npm:^1.0.1" 4045 "@humanwhocodes/module-importer": "npm:^1.0.1"
4111 "@nodelib/fs.walk": "npm:^1.2.8" 4046 "@nodelib/fs.walk": "npm:^1.2.8"
4112 ajv: "npm:^6.10.0" 4047 ajv: "npm:^6.10.0"
@@ -4115,9 +4050,9 @@ __metadata:
4115 debug: "npm:^4.3.2" 4050 debug: "npm:^4.3.2"
4116 doctrine: "npm:^3.0.0" 4051 doctrine: "npm:^3.0.0"
4117 escape-string-regexp: "npm:^4.0.0" 4052 escape-string-regexp: "npm:^4.0.0"
4118 eslint-scope: "npm:^7.1.1" 4053 eslint-scope: "npm:^7.2.0"
4119 eslint-visitor-keys: "npm:^3.4.0" 4054 eslint-visitor-keys: "npm:^3.4.1"
4120 espree: "npm:^9.5.1" 4055 espree: "npm:^9.5.2"
4121 esquery: "npm:^1.4.2" 4056 esquery: "npm:^1.4.2"
4122 esutils: "npm:^2.0.2" 4057 esutils: "npm:^2.0.2"
4123 fast-deep-equal: "npm:^3.1.3" 4058 fast-deep-equal: "npm:^3.1.3"
@@ -4125,13 +4060,12 @@ __metadata:
4125 find-up: "npm:^5.0.0" 4060 find-up: "npm:^5.0.0"
4126 glob-parent: "npm:^6.0.2" 4061 glob-parent: "npm:^6.0.2"
4127 globals: "npm:^13.19.0" 4062 globals: "npm:^13.19.0"
4128 grapheme-splitter: "npm:^1.0.4" 4063 graphemer: "npm:^1.4.0"
4129 ignore: "npm:^5.2.0" 4064 ignore: "npm:^5.2.0"
4130 import-fresh: "npm:^3.0.0" 4065 import-fresh: "npm:^3.0.0"
4131 imurmurhash: "npm:^0.1.4" 4066 imurmurhash: "npm:^0.1.4"
4132 is-glob: "npm:^4.0.0" 4067 is-glob: "npm:^4.0.0"
4133 is-path-inside: "npm:^3.0.3" 4068 is-path-inside: "npm:^3.0.3"
4134 js-sdsl: "npm:^4.1.4"
4135 js-yaml: "npm:^4.1.0" 4069 js-yaml: "npm:^4.1.0"
4136 json-stable-stringify-without-jsonify: "npm:^1.0.1" 4070 json-stable-stringify-without-jsonify: "npm:^1.0.1"
4137 levn: "npm:^0.4.1" 4071 levn: "npm:^0.4.1"
@@ -4144,18 +4078,18 @@ __metadata:
4144 text-table: "npm:^0.2.0" 4078 text-table: "npm:^0.2.0"
4145 bin: 4079 bin:
4146 eslint: bin/eslint.js 4080 eslint: bin/eslint.js
4147 checksum: b2a3a4d5bca66dd8df2af7f5fbc2d983c065d958ee7682cd54ee17902dc3016c2cddddad593d56e6357fe863f65fe44c0996886f369d142026f3c1a8b95530be 4081 checksum: 9f7e1cfdbe5219cdcecbf412c4535d68b42d777aa5a1524c565ac50ae192880f8f1ca898552e41d649e1b04e2e64feee33879740c5ab5015709eef529b70e876
4148 languageName: node 4082 languageName: node
4149 linkType: hard 4083 linkType: hard
4150 4084
4151"espree@npm:^9.5.1": 4085"espree@npm:^9.5.2":
4152 version: 9.5.1 4086 version: 9.5.2
4153 resolution: "espree@npm:9.5.1" 4087 resolution: "espree@npm:9.5.2"
4154 dependencies: 4088 dependencies:
4155 acorn: "npm:^8.8.0" 4089 acorn: "npm:^8.8.0"
4156 acorn-jsx: "npm:^5.3.2" 4090 acorn-jsx: "npm:^5.3.2"
4157 eslint-visitor-keys: "npm:^3.4.0" 4091 eslint-visitor-keys: "npm:^3.4.1"
4158 checksum: cdf0058252cbbbac5a36bf34809de1675558233fc04b74809a6e7f30b0cb41187044e816e596efb910d2f000e8a107d96d341efaf190c4cb9777d29da440aad0 4092 checksum: 05c52faae1e5c72ba3ab639d06937a0570d64946d9062762cac1918c70921f67a17e1370a3503af1eb9ff27f36f9c1932389fcc810a98e9ee9887597d07911e5
4159 languageName: node 4093 languageName: node
4160 linkType: hard 4094 linkType: hard
4161 4095
@@ -4208,13 +4142,6 @@ __metadata:
4208 languageName: node 4142 languageName: node
4209 linkType: hard 4143 linkType: hard
4210 4144
4211"estree-walker@npm:^2.0.2":
4212 version: 2.0.2
4213 resolution: "estree-walker@npm:2.0.2"
4214 checksum: 6fd7656e20b3c8f1fa74cd3d922e09d2cc9815ba5ea2d4cc0d5f16870b00e4c40d9aaae5efeb26299ea684a89b8e64868f42ecdddd45e8d18283f47098c9943a
4215 languageName: node
4216 linkType: hard
4217
4218"esutils@npm:^2.0.2": 4145"esutils@npm:^2.0.2":
4219 version: 2.0.3 4146 version: 2.0.3
4220 resolution: "esutils@npm:2.0.3" 4147 resolution: "esutils@npm:2.0.3"
@@ -4222,6 +4149,13 @@ __metadata:
4222 languageName: node 4149 languageName: node
4223 linkType: hard 4150 linkType: hard
4224 4151
4152"exponential-backoff@npm:^3.1.1":
4153 version: 3.1.1
4154 resolution: "exponential-backoff@npm:3.1.1"
4155 checksum: b3010284e8d2161f7a2589b92d41299d5bdffa6c79bac7bbfeee239a67627ae8b878e40c408a4419b19afcf9514442c79929cf3bd5f49f7f19ebd54fd2aa306f
4156 languageName: node
4157 linkType: hard
4158
4225"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": 4159"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
4226 version: 3.1.3 4160 version: 3.1.3
4227 resolution: "fast-deep-equal@npm:3.1.3" 4161 resolution: "fast-deep-equal@npm:3.1.3"
@@ -4230,9 +4164,9 @@ __metadata:
4230 linkType: hard 4164 linkType: hard
4231 4165
4232"fast-diff@npm:^1.1.2": 4166"fast-diff@npm:^1.1.2":
4233 version: 1.2.0 4167 version: 1.3.0
4234 resolution: "fast-diff@npm:1.2.0" 4168 resolution: "fast-diff@npm:1.3.0"
4235 checksum: e75206672f583769d2270d4ab9960bef9bce5c0852c0553a2f3f960c977fb330ef01ae55b3e9c5877ed539065014d1e868140b2ee2666d21f1d833e9d0dfd82c 4169 checksum: 424cdf4f5f335fd33bcb4dd6e676746e351c3ed326db6f2ae2920937d224fa36064d7cfdac7521154153a3489b8f8cb59dad27778d127a680b658b7cd70a544e
4236 languageName: node 4170 languageName: node
4237 linkType: hard 4171 linkType: hard
4238 4172
@@ -4281,7 +4215,7 @@ __metadata:
4281 languageName: node 4215 languageName: node
4282 linkType: hard 4216 linkType: hard
4283 4217
4284"filelist@npm:^1.0.1": 4218"filelist@npm:^1.0.4":
4285 version: 1.0.4 4219 version: 1.0.4
4286 resolution: "filelist@npm:1.0.4" 4220 resolution: "filelist@npm:1.0.4"
4287 dependencies: 4221 dependencies:
@@ -4342,6 +4276,16 @@ __metadata:
4342 languageName: node 4276 languageName: node
4343 linkType: hard 4277 linkType: hard
4344 4278
4279"foreground-child@npm:^3.1.0":
4280 version: 3.1.1
4281 resolution: "foreground-child@npm:3.1.1"
4282 dependencies:
4283 cross-spawn: "npm:^7.0.0"
4284 signal-exit: "npm:^4.0.1"
4285 checksum: eb24fc60e34157c0f05b8689015dfaff98141484992f06f19ee0b4b069304c337af1caf5478eee42aea846235ce54699bbc530889eccd746bf4da1dc29ba6c32
4286 languageName: node
4287 linkType: hard
4288
4345"fs-extra@npm:^9.0.1": 4289"fs-extra@npm:^9.0.1":
4346 version: 9.1.0 4290 version: 9.1.0
4347 resolution: "fs-extra@npm:9.1.0" 4291 resolution: "fs-extra@npm:9.1.0"
@@ -4354,7 +4298,7 @@ __metadata:
4354 languageName: node 4298 languageName: node
4355 linkType: hard 4299 linkType: hard
4356 4300
4357"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": 4301"fs-minipass@npm:^2.0.0":
4358 version: 2.1.0 4302 version: 2.1.0
4359 resolution: "fs-minipass@npm:2.1.0" 4303 resolution: "fs-minipass@npm:2.1.0"
4360 dependencies: 4304 dependencies:
@@ -4363,6 +4307,15 @@ __metadata:
4363 languageName: node 4307 languageName: node
4364 linkType: hard 4308 linkType: hard
4365 4309
4310"fs-minipass@npm:^3.0.0":
4311 version: 3.0.2
4312 resolution: "fs-minipass@npm:3.0.2"
4313 dependencies:
4314 minipass: "npm:^5.0.0"
4315 checksum: 2b2cd5428f9c24619f9cffd857508d55eaa3b49d4e060061f775f66c96043c9d9a54a8d05378b63d391ac7d8f9606f180c2b65124b871221d5efcf49781787fe
4316 languageName: node
4317 linkType: hard
4318
4366"fs.realpath@npm:^1.0.0": 4319"fs.realpath@npm:^1.0.0":
4367 version: 1.0.0 4320 version: 1.0.0
4368 resolution: "fs.realpath@npm:1.0.0" 4321 resolution: "fs.realpath@npm:1.0.0"
@@ -4408,7 +4361,7 @@ __metadata:
4408 languageName: node 4361 languageName: node
4409 linkType: hard 4362 linkType: hard
4410 4363
4411"functions-have-names@npm:^1.2.2": 4364"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3":
4412 version: 1.2.3 4365 version: 1.2.3
4413 resolution: "functions-have-names@npm:1.2.3" 4366 resolution: "functions-have-names@npm:1.2.3"
4414 checksum: 2b58e5d607d7338c29e5ff8c285ddf09d79857b6d0ef9f781ee2e80cf666726d6909b5ab635e13d49ded9dcfd3c7abc01a22a52089bf23833848a6bfb6e8dac1 4367 checksum: 2b58e5d607d7338c29e5ff8c285ddf09d79857b6d0ef9f781ee2e80cf666726d6909b5ab635e13d49ded9dcfd3c7abc01a22a52089bf23833848a6bfb6e8dac1
@@ -4439,13 +4392,14 @@ __metadata:
4439 linkType: hard 4392 linkType: hard
4440 4393
4441"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0": 4394"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0":
4442 version: 1.2.0 4395 version: 1.2.1
4443 resolution: "get-intrinsic@npm:1.2.0" 4396 resolution: "get-intrinsic@npm:1.2.1"
4444 dependencies: 4397 dependencies:
4445 function-bind: "npm:^1.1.1" 4398 function-bind: "npm:^1.1.1"
4446 has: "npm:^1.0.3" 4399 has: "npm:^1.0.3"
4400 has-proto: "npm:^1.0.1"
4447 has-symbols: "npm:^1.0.3" 4401 has-symbols: "npm:^1.0.3"
4448 checksum: 6db1e521478d0a0f4e61c94c23e7a731b163d2904067b1b6efcac78e8b015404883dab4acb5570517df55aab6eb23eeef6a8d7310de76d9570fcbce4a3f80b18 4402 checksum: d1d5511cfe4fc46c1a7ec7e127cb4ac0b9e131124282724d7bd94ae5014db5d12403e6873dfd5feeca44cd57baa39f8b4dbda2147ec9bb3533a7d02ab033e352
4449 languageName: node 4403 languageName: node
4450 linkType: hard 4404 linkType: hard
4451 4405
@@ -4467,9 +4421,11 @@ __metadata:
4467 linkType: hard 4421 linkType: hard
4468 4422
4469"get-tsconfig@npm:^4.5.0": 4423"get-tsconfig@npm:^4.5.0":
4470 version: 4.5.0 4424 version: 4.6.0
4471 resolution: "get-tsconfig@npm:4.5.0" 4425 resolution: "get-tsconfig@npm:4.6.0"
4472 checksum: 55326d2fdfcf0f07096e948928ada42560d0bfc6b215232393da09738301ea19200c0e94f0214d223a3264f0ec72fbbb38a3769502076f2c34edd01f006ed6d9 4426 dependencies:
4427 resolve-pkg-maps: "npm:^1.0.0"
4428 checksum: f7e7d4e5853f9949a12b84ef5e4af64e2bd5dd0bf48670413300ea8bf818a1424c7af6fc8e218ed4bd1f1f1e9c78c282f3607825bdfc490ee8439792bbef24ce
4473 languageName: node 4429 languageName: node
4474 linkType: hard 4430 linkType: hard
4475 4431
@@ -4491,6 +4447,21 @@ __metadata:
4491 languageName: node 4447 languageName: node
4492 linkType: hard 4448 linkType: hard
4493 4449
4450"glob@npm:^10.2.2":
4451 version: 10.2.7
4452 resolution: "glob@npm:10.2.7"
4453 dependencies:
4454 foreground-child: "npm:^3.1.0"
4455 jackspeak: "npm:^2.0.3"
4456 minimatch: "npm:^9.0.1"
4457 minipass: "npm:^5.0.0 || ^6.0.2"
4458 path-scurry: "npm:^1.7.0"
4459 bin:
4460 glob: dist/cjs/src/bin.js
4461 checksum: a0c055e0b47a072f8c59c8a9db4514243945aecb2ed3c2e2bb5bcbf38967bedef0bf268e5cdc49b6fecee6014f943d8d96e85c49c05524544fbc50116f2531ba
4462 languageName: node
4463 linkType: hard
4464
4494"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": 4465"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6":
4495 version: 7.2.3 4466 version: 7.2.3
4496 resolution: "glob@npm:7.2.3" 4467 resolution: "glob@npm:7.2.3"
@@ -4505,19 +4476,6 @@ __metadata:
4505 languageName: node 4476 languageName: node
4506 linkType: hard 4477 linkType: hard
4507 4478
4508"glob@npm:^8.0.1":
4509 version: 8.1.0
4510 resolution: "glob@npm:8.1.0"
4511 dependencies:
4512 fs.realpath: "npm:^1.0.0"
4513 inflight: "npm:^1.0.4"
4514 inherits: "npm:2"
4515 minimatch: "npm:^5.0.1"
4516 once: "npm:^1.3.0"
4517 checksum: b2d53aa8d54a3e5b3998f52e72140deea385d292a68719144cda70148c335aa956bd03a643f50f6e4f685ee40ae538ee62a96278cc7b797f731a50a3babfcf63
4518 languageName: node
4519 linkType: hard
4520
4521"globals@npm:^11.1.0": 4479"globals@npm:^11.1.0":
4522 version: 11.12.0 4480 version: 11.12.0
4523 resolution: "globals@npm:11.12.0" 4481 resolution: "globals@npm:11.12.0"
@@ -4565,15 +4523,15 @@ __metadata:
4565 linkType: hard 4523 linkType: hard
4566 4524
4567"globby@npm:^13.1.3": 4525"globby@npm:^13.1.3":
4568 version: 13.1.3 4526 version: 13.1.4
4569 resolution: "globby@npm:13.1.3" 4527 resolution: "globby@npm:13.1.4"
4570 dependencies: 4528 dependencies:
4571 dir-glob: "npm:^3.0.1" 4529 dir-glob: "npm:^3.0.1"
4572 fast-glob: "npm:^3.2.11" 4530 fast-glob: "npm:^3.2.11"
4573 ignore: "npm:^5.2.0" 4531 ignore: "npm:^5.2.0"
4574 merge2: "npm:^1.4.1" 4532 merge2: "npm:^1.4.1"
4575 slash: "npm:^4.0.0" 4533 slash: "npm:^4.0.0"
4576 checksum: a4b8f38a118310286f684c0146301f375f40b9550fa172f37a668f7de0b52d955f7f5c05e83885b517cedb39ebfc523a7155efa8e3366c375d3fff14e5924af4 4534 checksum: 3e433409da6b65206694b0d3fec692f42b9eb9a1d1406851a1237508e6dd12a4e70c3ba3d7b6b26a8c8e71aab6a84e648fca6b955abc18dd37341a44ac341567
4577 languageName: node 4535 languageName: node
4578 linkType: hard 4536 linkType: hard
4579 4537
@@ -4585,11 +4543,11 @@ __metadata:
4585 linkType: hard 4543 linkType: hard
4586 4544
4587"goober@npm:^2.0.33": 4545"goober@npm:^2.0.33":
4588 version: 2.1.12 4546 version: 2.1.13
4589 resolution: "goober@npm:2.1.12" 4547 resolution: "goober@npm:2.1.13"
4590 peerDependencies: 4548 peerDependencies:
4591 csstype: ^3.0.10 4549 csstype: ^3.0.10
4592 checksum: 160fa271ad7782c1763cf903d65001a4a25065de2d2c502cd6733d0700767032ad5218c60da98fea1a31d0f8579b52b9900c9c0c00bb24a23423c7569cf9c09b 4550 checksum: 59f61d7bc565e480f988b2b5a0c19a533200e81c3bffc6c4ab53e8a8d8bcc9e53babb31ecd70f91a82a640f481e975f6c28c320686b32a0444673e84bcf1a489
4593 languageName: node 4551 languageName: node
4594 linkType: hard 4552 linkType: hard
4595 4553
@@ -4616,6 +4574,13 @@ __metadata:
4616 languageName: node 4574 languageName: node
4617 linkType: hard 4575 linkType: hard
4618 4576
4577"graphemer@npm:^1.4.0":
4578 version: 1.4.0
4579 resolution: "graphemer@npm:1.4.0"
4580 checksum: a4ee139533e1d1683edb24eaf3e598451e7f1577da3dfc68f247f0601d5d11d264d0ccfad3de3bfcabbed891140fbae84c0403b9d68f4fcb6431c418f971434e
4581 languageName: node
4582 linkType: hard
4583
4619"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": 4584"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2":
4620 version: 1.0.2 4585 version: 1.0.2
4621 resolution: "has-bigints@npm:1.0.2" 4586 resolution: "has-bigints@npm:1.0.2"
@@ -4694,24 +4659,24 @@ __metadata:
4694 languageName: node 4659 languageName: node
4695 linkType: hard 4660 linkType: hard
4696 4661
4697"html-minifier-terser@npm:^7.1.0": 4662"html-minifier-terser@npm:^7.2.0":
4698 version: 7.1.0 4663 version: 7.2.0
4699 resolution: "html-minifier-terser@npm:7.1.0" 4664 resolution: "html-minifier-terser@npm:7.2.0"
4700 dependencies: 4665 dependencies:
4701 camel-case: "npm:^4.1.2" 4666 camel-case: "npm:^4.1.2"
4702 clean-css: "npm:5.2.0" 4667 clean-css: "npm:~5.3.2"
4703 commander: "npm:^9.4.1" 4668 commander: "npm:^10.0.0"
4704 entities: "npm:^4.4.0" 4669 entities: "npm:^4.4.0"
4705 param-case: "npm:^3.0.4" 4670 param-case: "npm:^3.0.4"
4706 relateurl: "npm:^0.2.7" 4671 relateurl: "npm:^0.2.7"
4707 terser: "npm:^5.15.1" 4672 terser: "npm:^5.15.1"
4708 bin: 4673 bin:
4709 html-minifier-terser: cli.js 4674 html-minifier-terser: cli.js
4710 checksum: 188f77b3cf44c7d13a6137d3a337c41fa0ac628b4c69816ca4cf4aa60d80eb7803082ddb7d4fd883e386c420bf9cc59c58b8f528c26d9ce0f7adf072edcf8920 4675 checksum: 9287823ef09537f522a138930bce6cf28fad9740c194f13dce0b80d22c7870de3814e3e6780f56a4e0bdc2cb20b87af2edbfd12835e3773e60f887bff9e1798f
4711 languageName: node 4676 languageName: node
4712 linkType: hard 4677 linkType: hard
4713 4678
4714"http-cache-semantics@npm:^4.1.0": 4679"http-cache-semantics@npm:^4.1.1":
4715 version: 4.1.1 4680 version: 4.1.1
4716 resolution: "http-cache-semantics@npm:4.1.1" 4681 resolution: "http-cache-semantics@npm:4.1.1"
4717 checksum: 7b4d86f99fb3f07b6a49219420ebdffa077ee99bc5fe1df1f353b84c3d321c767a083a48291afb2fc34a627661b6d54c80a927639a7be9e0c43e8c4f921816bd 4682 checksum: 7b4d86f99fb3f07b6a49219420ebdffa077ee99bc5fe1df1f353b84c3d321c767a083a48291afb2fc34a627661b6d54c80a927639a7be9e0c43e8c4f921816bd
@@ -4795,13 +4760,6 @@ __metadata:
4795 languageName: node 4760 languageName: node
4796 linkType: hard 4761 linkType: hard
4797 4762
4798"infer-owner@npm:^1.0.4":
4799 version: 1.0.4
4800 resolution: "infer-owner@npm:1.0.4"
4801 checksum: 2020f6d0322e7910ce841134a303c69857e456531d8cd01e336f6eea18122d1085b93ebde961745e5f278233f7f8a3d8b60b9276c8dbd3f49c4c352582ec9504
4802 languageName: node
4803 linkType: hard
4804
4805"inflight@npm:^1.0.4": 4763"inflight@npm:^1.0.4":
4806 version: 1.0.6 4764 version: 1.0.6
4807 resolution: "inflight@npm:1.0.6" 4765 resolution: "inflight@npm:1.0.6"
@@ -4819,7 +4777,7 @@ __metadata:
4819 languageName: node 4777 languageName: node
4820 linkType: hard 4778 linkType: hard
4821 4779
4822"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": 4780"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.5":
4823 version: 1.0.5 4781 version: 1.0.5
4824 resolution: "internal-slot@npm:1.0.5" 4782 resolution: "internal-slot@npm:1.0.5"
4825 dependencies: 4783 dependencies:
@@ -4837,16 +4795,6 @@ __metadata:
4837 languageName: node 4795 languageName: node
4838 linkType: hard 4796 linkType: hard
4839 4797
4840"is-arguments@npm:^1.1.1":
4841 version: 1.1.1
4842 resolution: "is-arguments@npm:1.1.1"
4843 dependencies:
4844 call-bind: "npm:^1.0.2"
4845 has-tostringtag: "npm:^1.0.0"
4846 checksum: 3eae41e0267725f644140c795cdcefd265f2ed9f946d4e114b4ccf1f255f42afccfb6f8d79b0124e16cf59ec05841288439435140f9a4450d701f74a271c649c
4847 languageName: node
4848 linkType: hard
4849
4850"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": 4798"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2":
4851 version: 3.0.2 4799 version: 3.0.2
4852 resolution: "is-array-buffer@npm:3.0.2" 4800 resolution: "is-array-buffer@npm:3.0.2"
@@ -4900,16 +4848,16 @@ __metadata:
4900 languageName: node 4848 languageName: node
4901 linkType: hard 4849 linkType: hard
4902 4850
4903"is-core-module@npm:^2.11.0, is-core-module@npm:^2.9.0": 4851"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.9.0":
4904 version: 2.11.0 4852 version: 2.12.1
4905 resolution: "is-core-module@npm:2.11.0" 4853 resolution: "is-core-module@npm:2.12.1"
4906 dependencies: 4854 dependencies:
4907 has: "npm:^1.0.3" 4855 has: "npm:^1.0.3"
4908 checksum: c1bf6feab8bba140f691b853db3032d33ce1bc883ecd1b7ddb4e33f2443b4da2bcbba671b6290c34f45c27a8fc02c0bf5e01c68192671f9133029d21a48f25b0 4856 checksum: ad50fa9887d64a912837625b54df9489005180d829128c5d979355a969e80e65f772a54ac29e8f25a18a2ad2c6b45115deffb32a3e0c2d5b16ee7ad292066b5a
4909 languageName: node 4857 languageName: node
4910 linkType: hard 4858 linkType: hard
4911 4859
4912"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": 4860"is-date-object@npm:^1.0.1":
4913 version: 1.0.5 4861 version: 1.0.5
4914 resolution: "is-date-object@npm:1.0.5" 4862 resolution: "is-date-object@npm:1.0.5"
4915 dependencies: 4863 dependencies:
@@ -4957,13 +4905,6 @@ __metadata:
4957 languageName: node 4905 languageName: node
4958 linkType: hard 4906 linkType: hard
4959 4907
4960"is-map@npm:^2.0.1, is-map@npm:^2.0.2":
4961 version: 2.0.2
4962 resolution: "is-map@npm:2.0.2"
4963 checksum: ffa1914b19d6d5a2bc50ddd28ff9268429053f4b12b7ba511dc4f9fed3ac28391446948b5bef758664dc8b4dc11e24a40398e40666fbd525c75723533a568213
4964 languageName: node
4965 linkType: hard
4966
4967"is-module@npm:^1.0.0": 4908"is-module@npm:^1.0.0":
4968 version: 1.0.0 4909 version: 1.0.0
4969 resolution: "is-module@npm:1.0.0" 4910 resolution: "is-module@npm:1.0.0"
@@ -5025,13 +4966,6 @@ __metadata:
5025 languageName: node 4966 languageName: node
5026 linkType: hard 4967 linkType: hard
5027 4968
5028"is-set@npm:^2.0.1, is-set@npm:^2.0.2":
5029 version: 2.0.2
5030 resolution: "is-set@npm:2.0.2"
5031 checksum: 09fa41ce849885c733d98f35c0ff1a24073fd5f920ef6201aa64ae054516f9b07af4d10282b2890ed098ed360538a22ab296d08ff9a4191baf318fa682c8c4e5
5032 languageName: node
5033 linkType: hard
5034
5035"is-shared-array-buffer@npm:^1.0.2": 4969"is-shared-array-buffer@npm:^1.0.2":
5036 version: 1.0.2 4970 version: 1.0.2
5037 resolution: "is-shared-array-buffer@npm:1.0.2" 4971 resolution: "is-shared-array-buffer@npm:1.0.2"
@@ -5079,13 +5013,6 @@ __metadata:
5079 languageName: node 5013 languageName: node
5080 linkType: hard 5014 linkType: hard
5081 5015
5082"is-weakmap@npm:^2.0.1":
5083 version: 2.0.1
5084 resolution: "is-weakmap@npm:2.0.1"
5085 checksum: d0c3c595950828d94a57223c70609246d7af1ad083f8419fa254eb377841721fff6d3e3ece6eaa149ff30a988c8d46cc0cc1c25e8a00c598a2932c22a5d84503
5086 languageName: node
5087 linkType: hard
5088
5089"is-weakref@npm:^1.0.2": 5016"is-weakref@npm:^1.0.2":
5090 version: 1.0.2 5017 version: 1.0.2
5091 resolution: "is-weakref@npm:1.0.2" 5018 resolution: "is-weakref@npm:1.0.2"
@@ -5095,16 +5022,6 @@ __metadata:
5095 languageName: node 5022 languageName: node
5096 linkType: hard 5023 linkType: hard
5097 5024
5098"is-weakset@npm:^2.0.1":
5099 version: 2.0.2
5100 resolution: "is-weakset@npm:2.0.2"
5101 dependencies:
5102 call-bind: "npm:^1.0.2"
5103 get-intrinsic: "npm:^1.1.1"
5104 checksum: 5edf380562a0fd41f5096aedf7167a1ff338dc1a631d77942ce10d3bb278bddee67fe10a822095bf5b516c4cf56399c832f567ec70e6a6e659a03fa53593fd02
5105 languageName: node
5106 linkType: hard
5107
5108"is-wsl@npm:^2.2.0": 5025"is-wsl@npm:^2.2.0":
5109 version: 2.2.0 5026 version: 2.2.0
5110 resolution: "is-wsl@npm:2.2.0" 5027 resolution: "is-wsl@npm:2.2.0"
@@ -5114,13 +5031,6 @@ __metadata:
5114 languageName: node 5031 languageName: node
5115 linkType: hard 5032 linkType: hard
5116 5033
5117"isarray@npm:^2.0.5":
5118 version: 2.0.5
5119 resolution: "isarray@npm:2.0.5"
5120 checksum: bd46a907ad163c4c937d08ee6520fc9482cf5457dc0d168457ef755d8f26e75b5e2649962722a4c0f5ab2398a95e431c8469c86a004c42db21230ef40b8720ee
5121 languageName: node
5122 linkType: hard
5123
5124"isexe@npm:^2.0.0": 5034"isexe@npm:^2.0.0":
5125 version: 2.0.0 5035 version: 2.0.0
5126 resolution: "isexe@npm:2.0.0" 5036 resolution: "isexe@npm:2.0.0"
@@ -5128,17 +5038,30 @@ __metadata:
5128 languageName: node 5038 languageName: node
5129 linkType: hard 5039 linkType: hard
5130 5040
5041"jackspeak@npm:^2.0.3":
5042 version: 2.2.1
5043 resolution: "jackspeak@npm:2.2.1"
5044 dependencies:
5045 "@isaacs/cliui": "npm:^8.0.2"
5046 "@pkgjs/parseargs": "npm:^0.11.0"
5047 dependenciesMeta:
5048 "@pkgjs/parseargs":
5049 optional: true
5050 checksum: b7c66988fb8575356fcf6b6c0fdcfb89a78fd0aaceb16d1318ae355fb7b6f51a456e9b8cf47ac0875bb7d6b94d82cc649762d5b819f4055ad5c5f5d617a0e20f
5051 languageName: node
5052 linkType: hard
5053
5131"jake@npm:^10.8.5": 5054"jake@npm:^10.8.5":
5132 version: 10.8.5 5055 version: 10.8.7
5133 resolution: "jake@npm:10.8.5" 5056 resolution: "jake@npm:10.8.7"
5134 dependencies: 5057 dependencies:
5135 async: "npm:^3.2.3" 5058 async: "npm:^3.2.3"
5136 chalk: "npm:^4.0.2" 5059 chalk: "npm:^4.0.2"
5137 filelist: "npm:^1.0.1" 5060 filelist: "npm:^1.0.4"
5138 minimatch: "npm:^3.0.4" 5061 minimatch: "npm:^3.1.2"
5139 bin: 5062 bin:
5140 jake: ./bin/cli.js 5063 jake: bin/cli.js
5141 checksum: ac043772e821e889ed31447e2e481e37e66d1955977f5ed6a6a5daab7f66f9e603720f2310c712fe90fd37d268f2b5070bbae114e7979b0010f4779a0e455d91 5064 checksum: 92991ae6bcb5e0889e68e745a667992fdc4bf17e62dfda1d01db535e494347f20d9d47b9bcd31f149dcd96aad2ccd9e2994f917c33b9c6adc124e8730135137d
5142 languageName: node 5065 languageName: node
5143 linkType: hard 5066 linkType: hard
5144 5067
@@ -5153,13 +5076,6 @@ __metadata:
5153 languageName: node 5076 languageName: node
5154 linkType: hard 5077 linkType: hard
5155 5078
5156"js-sdsl@npm:^4.1.4":
5157 version: 4.4.0
5158 resolution: "js-sdsl@npm:4.4.0"
5159 checksum: 8c85413f74e8bce8390d49474c8b0ff9d99626bd913ab41ad36f92ad297b89c50198daca84ff56bfb0dd1d5b4e64abfbd0e3ea8b016739dc64b5f076784d3b79
5160 languageName: node
5161 linkType: hard
5162
5163"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": 5079"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
5164 version: 4.0.0 5080 version: 4.0.0
5165 resolution: "js-tokens@npm:4.0.0" 5081 resolution: "js-tokens@npm:4.0.0"
@@ -5242,7 +5158,7 @@ __metadata:
5242 languageName: node 5158 languageName: node
5243 linkType: hard 5159 linkType: hard
5244 5160
5245"json5@npm:^2.2.0, json5@npm:^2.2.1": 5161"json5@npm:^2.2.0, json5@npm:^2.2.2":
5246 version: 2.2.3 5162 version: 2.2.3
5247 resolution: "json5@npm:2.2.3" 5163 resolution: "json5@npm:2.2.3"
5248 bin: 5164 bin:
@@ -5399,6 +5315,15 @@ __metadata:
5399 languageName: node 5315 languageName: node
5400 linkType: hard 5316 linkType: hard
5401 5317
5318"lru-cache@npm:^5.1.1":
5319 version: 5.1.1
5320 resolution: "lru-cache@npm:5.1.1"
5321 dependencies:
5322 yallist: "npm:^3.0.2"
5323 checksum: 7e3274d0936ac64611d0053664b5c722f2b869c4962a007752251602020345f385885cfeabd0162aa45c7d2ee8a21f461d9d628db348f553c126126b170ad6d2
5324 languageName: node
5325 linkType: hard
5326
5402"lru-cache@npm:^6.0.0": 5327"lru-cache@npm:^6.0.0":
5403 version: 6.0.0 5328 version: 6.0.0
5404 resolution: "lru-cache@npm:6.0.0" 5329 resolution: "lru-cache@npm:6.0.0"
@@ -5415,6 +5340,13 @@ __metadata:
5415 languageName: node 5340 languageName: node
5416 linkType: hard 5341 linkType: hard
5417 5342
5343"lru-cache@npm:^9.1.1":
5344 version: 9.1.2
5345 resolution: "lru-cache@npm:9.1.2"
5346 checksum: 95e6da12da11dd05404636c5d8c7f7a3e682bb7d2acb002738f9f6de941eca1e7229aa45a9b4a8375ab55f0ef7a1c34a3b002b066f85c4bc00634ee68e0f978e
5347 languageName: node
5348 linkType: hard
5349
5418"magic-string@npm:^0.25.0, magic-string@npm:^0.25.7": 5350"magic-string@npm:^0.25.0, magic-string@npm:^0.25.7":
5419 version: 0.25.9 5351 version: 0.25.9
5420 resolution: "magic-string@npm:0.25.9" 5352 resolution: "magic-string@npm:0.25.9"
@@ -5424,36 +5356,26 @@ __metadata:
5424 languageName: node 5356 languageName: node
5425 linkType: hard 5357 linkType: hard
5426 5358
5427"magic-string@npm:^0.26.4": 5359"make-fetch-happen@npm:^11.0.3":
5428 version: 0.26.7 5360 version: 11.1.1
5429 resolution: "magic-string@npm:0.26.7" 5361 resolution: "make-fetch-happen@npm:11.1.1"
5430 dependencies:
5431 sourcemap-codec: "npm:^1.4.8"
5432 checksum: c32d85ae488a66f9dd604199d41f7f4335c9db2adc3c5e24555a3f75551de9a81cb1ba9ce16941e4fa9af9908e832a25a796b27d744a707a4343cecf20d75e54
5433 languageName: node
5434 linkType: hard
5435
5436"make-fetch-happen@npm:^10.0.3":
5437 version: 10.2.1
5438 resolution: "make-fetch-happen@npm:10.2.1"
5439 dependencies: 5362 dependencies:
5440 agentkeepalive: "npm:^4.2.1" 5363 agentkeepalive: "npm:^4.2.1"
5441 cacache: "npm:^16.1.0" 5364 cacache: "npm:^17.0.0"
5442 http-cache-semantics: "npm:^4.1.0" 5365 http-cache-semantics: "npm:^4.1.1"
5443 http-proxy-agent: "npm:^5.0.0" 5366 http-proxy-agent: "npm:^5.0.0"
5444 https-proxy-agent: "npm:^5.0.0" 5367 https-proxy-agent: "npm:^5.0.0"
5445 is-lambda: "npm:^1.0.1" 5368 is-lambda: "npm:^1.0.1"
5446 lru-cache: "npm:^7.7.1" 5369 lru-cache: "npm:^7.7.1"
5447 minipass: "npm:^3.1.6" 5370 minipass: "npm:^5.0.0"
5448 minipass-collect: "npm:^1.0.2" 5371 minipass-fetch: "npm:^3.0.0"
5449 minipass-fetch: "npm:^2.0.3"
5450 minipass-flush: "npm:^1.0.5" 5372 minipass-flush: "npm:^1.0.5"
5451 minipass-pipeline: "npm:^1.2.4" 5373 minipass-pipeline: "npm:^1.2.4"
5452 negotiator: "npm:^0.6.3" 5374 negotiator: "npm:^0.6.3"
5453 promise-retry: "npm:^2.0.1" 5375 promise-retry: "npm:^2.0.1"
5454 socks-proxy-agent: "npm:^7.0.0" 5376 socks-proxy-agent: "npm:^7.0.0"
5455 ssri: "npm:^9.0.0" 5377 ssri: "npm:^10.0.0"
5456 checksum: cf0d4b94fb0b022d41373fe7ce0f2a170a7c2668c7404f985c4fa6fe465c24cc3d1a6a84e0a6d4b2cd60cf7d41ec26cc5205d258e15f06c33179c14a31a5e4bd 5378 checksum: 26053f51534d0886d8f0c1f4312d442f2bd6d2955a7fd12aa0679fc4ed4734ca2e0168eec517d418b73cedd01d107f86749a340a7386ef8b3ef0cacf018995af
5457 languageName: node 5379 languageName: node
5458 linkType: hard 5380 linkType: hard
5459 5381
@@ -5481,7 +5403,7 @@ __metadata:
5481 languageName: node 5403 languageName: node
5482 linkType: hard 5404 linkType: hard
5483 5405
5484"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": 5406"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
5485 version: 3.1.2 5407 version: 3.1.2
5486 resolution: "minimatch@npm:3.1.2" 5408 resolution: "minimatch@npm:3.1.2"
5487 dependencies: 5409 dependencies:
@@ -5499,6 +5421,15 @@ __metadata:
5499 languageName: node 5421 languageName: node
5500 linkType: hard 5422 linkType: hard
5501 5423
5424"minimatch@npm:^9.0.1":
5425 version: 9.0.1
5426 resolution: "minimatch@npm:9.0.1"
5427 dependencies:
5428 brace-expansion: "npm:^2.0.1"
5429 checksum: 6648745fd9fc8d5870d59d4fde5defd9d4cb3d44cbb6831e97e103c43f1d9bf5fcc24cea54e9e3bf09eac7e002cce200cc295e30c84180198970a0bed369f037
5430 languageName: node
5431 linkType: hard
5432
5502"minimist@npm:^1.2.0, minimist@npm:^1.2.6": 5433"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
5503 version: 1.2.8 5434 version: 1.2.8
5504 resolution: "minimist@npm:1.2.8" 5435 resolution: "minimist@npm:1.2.8"
@@ -5515,18 +5446,18 @@ __metadata:
5515 languageName: node 5446 languageName: node
5516 linkType: hard 5447 linkType: hard
5517 5448
5518"minipass-fetch@npm:^2.0.3": 5449"minipass-fetch@npm:^3.0.0":
5519 version: 2.1.2 5450 version: 3.0.3
5520 resolution: "minipass-fetch@npm:2.1.2" 5451 resolution: "minipass-fetch@npm:3.0.3"
5521 dependencies: 5452 dependencies:
5522 encoding: "npm:^0.1.13" 5453 encoding: "npm:^0.1.13"
5523 minipass: "npm:^3.1.6" 5454 minipass: "npm:^5.0.0"
5524 minipass-sized: "npm:^1.0.3" 5455 minipass-sized: "npm:^1.0.3"
5525 minizlib: "npm:^2.1.2" 5456 minizlib: "npm:^2.1.2"
5526 dependenciesMeta: 5457 dependenciesMeta:
5527 encoding: 5458 encoding:
5528 optional: true 5459 optional: true
5529 checksum: 8ec17c0895d8890b863bbdf860e25bc2f81580c0bbc2cfc05d220f8b5bc255203ee1931f54821e299fd1d5a53d63bfaca20a813a2f45e881423d096c24940366 5460 checksum: 26c3d698b5869a2d5d7537a52b49bd2be5696f9e11b9eb982b2c5145403cdb81c1f150f59251ef1226e25e4d5fc70998ea251915535eb21854a692affa79968c
5530 languageName: node 5461 languageName: node
5531 linkType: hard 5462 linkType: hard
5532 5463
@@ -5557,7 +5488,7 @@ __metadata:
5557 languageName: node 5488 languageName: node
5558 linkType: hard 5489 linkType: hard
5559 5490
5560"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": 5491"minipass@npm:^3.0.0":
5561 version: 3.3.6 5492 version: 3.3.6
5562 resolution: "minipass@npm:3.3.6" 5493 resolution: "minipass@npm:3.3.6"
5563 dependencies: 5494 dependencies:
@@ -5566,10 +5497,17 @@ __metadata:
5566 languageName: node 5497 languageName: node
5567 linkType: hard 5498 linkType: hard
5568 5499
5569"minipass@npm:^4.0.0": 5500"minipass@npm:^5.0.0":
5570 version: 4.2.5 5501 version: 5.0.0
5571 resolution: "minipass@npm:4.2.5" 5502 resolution: "minipass@npm:5.0.0"
5572 checksum: 9663cd373005095bc6b9f1c779e6beef3269e171a4049c2c6532ae430dea93647bfa6cf4fab43fc908f9e8ad333a3dbaadca20c15eb4ba9b697c764b7be90d65 5503 checksum: dac2e1960990ca7c288834e7311e029828d9ae4c90fdabae95a3ea269592871feaa755a1ef9241d487e6fe59d86a43e1d8bac41c47f13c3c0add0799ab500a0b
5504 languageName: node
5505 linkType: hard
5506
5507"minipass@npm:^5.0.0 || ^6.0.2":
5508 version: 6.0.2
5509 resolution: "minipass@npm:6.0.2"
5510 checksum: 9d8e7a2dc7dd240f1c2b4255b75ffadb7f296ab917d5289978869436333866a05b5128760847bd6b772ee7f0d78cfe775489669a4ba728f1de0f194ca14fe829
5573 languageName: node 5511 languageName: node
5574 linkType: hard 5512 linkType: hard
5575 5513
@@ -5583,7 +5521,7 @@ __metadata:
5583 languageName: node 5521 languageName: node
5584 linkType: hard 5522 linkType: hard
5585 5523
5586"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": 5524"mkdirp@npm:^1.0.3":
5587 version: 1.0.4 5525 version: 1.0.4
5588 resolution: "mkdirp@npm:1.0.4" 5526 resolution: "mkdirp@npm:1.0.4"
5589 bin: 5527 bin:
@@ -5628,7 +5566,7 @@ __metadata:
5628 languageName: node 5566 languageName: node
5629 linkType: hard 5567 linkType: hard
5630 5568
5631"nanoid@npm:^3.3.4": 5569"nanoid@npm:^3.3.6":
5632 version: 3.3.6 5570 version: 3.3.6
5633 resolution: "nanoid@npm:3.3.6" 5571 resolution: "nanoid@npm:3.3.6"
5634 bin: 5572 bin:
@@ -5678,13 +5616,14 @@ __metadata:
5678 linkType: hard 5616 linkType: hard
5679 5617
5680"node-gyp@npm:latest": 5618"node-gyp@npm:latest":
5681 version: 9.3.1 5619 version: 9.4.0
5682 resolution: "node-gyp@npm:9.3.1" 5620 resolution: "node-gyp@npm:9.4.0"
5683 dependencies: 5621 dependencies:
5684 env-paths: "npm:^2.2.0" 5622 env-paths: "npm:^2.2.0"
5623 exponential-backoff: "npm:^3.1.1"
5685 glob: "npm:^7.1.4" 5624 glob: "npm:^7.1.4"
5686 graceful-fs: "npm:^4.2.6" 5625 graceful-fs: "npm:^4.2.6"
5687 make-fetch-happen: "npm:^10.0.3" 5626 make-fetch-happen: "npm:^11.0.3"
5688 nopt: "npm:^6.0.0" 5627 nopt: "npm:^6.0.0"
5689 npmlog: "npm:^6.0.0" 5628 npmlog: "npm:^6.0.0"
5690 rimraf: "npm:^3.0.2" 5629 rimraf: "npm:^3.0.2"
@@ -5693,14 +5632,14 @@ __metadata:
5693 which: "npm:^2.0.2" 5632 which: "npm:^2.0.2"
5694 bin: 5633 bin:
5695 node-gyp: bin/node-gyp.js 5634 node-gyp: bin/node-gyp.js
5696 checksum: 40aca5b9b3cc5715d5407101d69826927db9a2cf140f113ac52e239a10b15fbae277844ff815c05bcaa9c9fc5256e4e23b3ce3bdace573429d929e3b5df99845 5635 checksum: b180de9e7c1d4c63355d3883b30c03462e5bcb8c810a1ee41d3ef2a3fe2d0ef0244acdbebf9d30a4abe865cfea67b4665e483de79d8249114dbdea454d5263a2
5697 languageName: node 5636 languageName: node
5698 linkType: hard 5637 linkType: hard
5699 5638
5700"node-releases@npm:^2.0.8": 5639"node-releases@npm:^2.0.12":
5701 version: 2.0.10 5640 version: 2.0.12
5702 resolution: "node-releases@npm:2.0.10" 5641 resolution: "node-releases@npm:2.0.12"
5703 checksum: 2047e77c66497fde77318ac163feb8ee18a3bca67c87b76642aeb0549bd01edcc88d7e002691b982513ebb46c809c456c7e027e38848ce9d2f915473552490b6 5642 checksum: ae9ed0c2edca1127a0437a55e4467d6f32d496e8674bafdd1ffe42c3b90482727b178f37793a7041cc3287a42c624ada7a6a056857558134ba6b480ad9bc84db
5704 languageName: node 5643 languageName: node
5705 linkType: hard 5644 linkType: hard
5706 5645
@@ -5761,16 +5700,6 @@ __metadata:
5761 languageName: node 5700 languageName: node
5762 linkType: hard 5701 linkType: hard
5763 5702
5764"object-is@npm:^1.1.5":
5765 version: 1.1.5
5766 resolution: "object-is@npm:1.1.5"
5767 dependencies:
5768 call-bind: "npm:^1.0.2"
5769 define-properties: "npm:^1.1.3"
5770 checksum: 47c9e548dba76b03c271a8d61281e69f2c96e435d6303cc35194e61e465463a24af732a3e58e249fa5e6ad2eb8fbbcfe34bd5926dd582927436e9c1a66cf8941
5771 languageName: node
5772 linkType: hard
5773
5774"object-keys@npm:^1.1.1": 5703"object-keys@npm:^1.1.1":
5775 version: 1.1.1 5704 version: 1.1.1
5776 resolution: "object-keys@npm:1.1.1" 5705 resolution: "object-keys@npm:1.1.1"
@@ -5963,6 +5892,16 @@ __metadata:
5963 languageName: node 5892 languageName: node
5964 linkType: hard 5893 linkType: hard
5965 5894
5895"path-scurry@npm:^1.7.0":
5896 version: 1.9.2
5897 resolution: "path-scurry@npm:1.9.2"
5898 dependencies:
5899 lru-cache: "npm:^9.1.1"
5900 minipass: "npm:^5.0.0 || ^6.0.2"
5901 checksum: c60ad5b0decbff08e45a527de1e22a0e5667e9120ce8a007bc219125f5f2462cd167f9f7622681b2ff760c1deec1d2e49fdead4ff508da3f1ca7a7389240f7e9
5902 languageName: node
5903 linkType: hard
5904
5966"path-type@npm:^4.0.0": 5905"path-type@npm:^4.0.0":
5967 version: 4.0.0 5906 version: 4.0.0
5968 resolution: "path-type@npm:4.0.0" 5907 resolution: "path-type@npm:4.0.0"
@@ -5984,14 +5923,14 @@ __metadata:
5984 languageName: node 5923 languageName: node
5985 linkType: hard 5924 linkType: hard
5986 5925
5987"postcss@npm:^8.4.21": 5926"postcss@npm:^8.4.23":
5988 version: 8.4.21 5927 version: 8.4.24
5989 resolution: "postcss@npm:8.4.21" 5928 resolution: "postcss@npm:8.4.24"
5990 dependencies: 5929 dependencies:
5991 nanoid: "npm:^3.3.4" 5930 nanoid: "npm:^3.3.6"
5992 picocolors: "npm:^1.0.0" 5931 picocolors: "npm:^1.0.0"
5993 source-map-js: "npm:^1.0.2" 5932 source-map-js: "npm:^1.0.2"
5994 checksum: 4fb944abed714e5aa88c76b6eae19b293e84ced7ea4162fe0da6ab5215ded572330df93ce3bb5073ee18a9ad0122a6a65e3000897dc3a828e96281d8b3e1f91e 5933 checksum: 50c4ba61a7fed4d06e084c625f2603cc2448b66f4305d6495a105e73d2f53bdbf34828e5505d33498fa56e87d82e4192e55186e3b5167087d2b93882b6fc9db1
5995 languageName: node 5934 languageName: node
5996 linkType: hard 5935 linkType: hard
5997 5936
@@ -6011,12 +5950,12 @@ __metadata:
6011 languageName: node 5950 languageName: node
6012 linkType: hard 5951 linkType: hard
6013 5952
6014"prettier@npm:^2.8.7": 5953"prettier@npm:^2.8.7, prettier@npm:^2.8.8":
6015 version: 2.8.7 5954 version: 2.8.8
6016 resolution: "prettier@npm:2.8.7" 5955 resolution: "prettier@npm:2.8.8"
6017 bin: 5956 bin:
6018 prettier: bin-prettier.js 5957 prettier: bin-prettier.js
6019 checksum: ec15b2e0a2a34a4987cca4ee72b2df56c7f4a4c62322d9a0f3c9efccb2cc0e3efdb791bb2764f2268e69e05946dc72108e5b5957d4bb2c1a41a11733b8b09153 5958 checksum: 38b0a43ea17e83f54b904f8808f7d0fd1d9705ef9627bb40017ee276cbd6f5e7d15bcf816c4467b64cfe14ef109369a981ce61fad9c6022749d041f74a672188
6020 languageName: node 5959 languageName: node
6021 linkType: hard 5960 linkType: hard
6022 5961
@@ -6034,13 +5973,6 @@ __metadata:
6034 languageName: node 5973 languageName: node
6035 linkType: hard 5974 linkType: hard
6036 5975
6037"promise-inflight@npm:^1.0.1":
6038 version: 1.0.1
6039 resolution: "promise-inflight@npm:1.0.1"
6040 checksum: 7671022d3ea7e40e29ee941d30df819ed2a81a3d22b1175ed8c1bd83af542ea94ca47b50bea54634b12f7b1837fcd7dd5bcc7720910befa0076d12582ee56c93
6041 languageName: node
6042 linkType: hard
6043
6044"promise-retry@npm:^2.0.1": 5976"promise-retry@npm:^2.0.1":
6045 version: 2.0.1 5977 version: 2.0.1
6046 resolution: "promise-retry@npm:2.0.1" 5978 resolution: "promise-retry@npm:2.0.1"
@@ -6200,13 +6132,13 @@ __metadata:
6200 linkType: hard 6132 linkType: hard
6201 6133
6202"regexp.prototype.flags@npm:^1.4.3": 6134"regexp.prototype.flags@npm:^1.4.3":
6203 version: 1.4.3 6135 version: 1.5.0
6204 resolution: "regexp.prototype.flags@npm:1.4.3" 6136 resolution: "regexp.prototype.flags@npm:1.5.0"
6205 dependencies: 6137 dependencies:
6206 call-bind: "npm:^1.0.2" 6138 call-bind: "npm:^1.0.2"
6207 define-properties: "npm:^1.1.3" 6139 define-properties: "npm:^1.2.0"
6208 functions-have-names: "npm:^1.2.2" 6140 functions-have-names: "npm:^1.2.3"
6209 checksum: 73e364f4cc03ed04f5f966300c6b9672c3bd049f2636db534b7e6f3e03575c178e04def3d73ac0e393bca3400b2acbee6c0609b89b93a51c83c56ed472de7739 6141 checksum: 27e06f7238805b9b315bb43ef60500345cd3c041c9ba2f6b2b7951bd23409314d22741a100e2ce4c6b996d5488dfdc59776486f51f07fef2c2bd36b01dde1092
6210 languageName: node 6142 languageName: node
6211 linkType: hard 6143 linkType: hard
6212 6144
@@ -6256,16 +6188,23 @@ __metadata:
6256 languageName: node 6188 languageName: node
6257 linkType: hard 6189 linkType: hard
6258 6190
6191"resolve-pkg-maps@npm:^1.0.0":
6192 version: 1.0.0
6193 resolution: "resolve-pkg-maps@npm:1.0.0"
6194 checksum: 6d91a6387c12ba1d67e09d35205df09cf6871debe8618d695b828ee2609e382463bbbab42b860f63c000bae39e464772d0ea6b7753802fb42ac3cbe33bd8154e
6195 languageName: node
6196 linkType: hard
6197
6259"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.1": 6198"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.1":
6260 version: 1.22.1 6199 version: 1.22.3
6261 resolution: "resolve@npm:1.22.1" 6200 resolution: "resolve@npm:1.22.3"
6262 dependencies: 6201 dependencies:
6263 is-core-module: "npm:^2.9.0" 6202 is-core-module: "npm:^2.12.0"
6264 path-parse: "npm:^1.0.7" 6203 path-parse: "npm:^1.0.7"
6265 supports-preserve-symlinks-flag: "npm:^1.0.0" 6204 supports-preserve-symlinks-flag: "npm:^1.0.0"
6266 bin: 6205 bin:
6267 resolve: bin/resolve 6206 resolve: bin/resolve
6268 checksum: d8ea39ac2ecaedc681504f043944a20cc05587d6ec52d4d9ec79801e58be083f2237d0e83170ce86c793083eaf71a6f95a7f921a79dfb6fa32b37107e61df36c 6207 checksum: bf0ce0162ee1b5a2dfe29e982b67fb0867911972ffba9a6903bb2c0c11e6c8eb7db7de5344645f84df7f9ba2a19438d373ddddf3a3125ececba719fccd40dd18
6269 languageName: node 6208 languageName: node
6270 linkType: hard 6209 linkType: hard
6271 6210
@@ -6283,15 +6222,15 @@ __metadata:
6283 linkType: hard 6222 linkType: hard
6284 6223
6285"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin<compat/resolve>": 6224"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin<compat/resolve>":
6286 version: 1.22.1 6225 version: 1.22.3
6287 resolution: "resolve@patch:resolve@npm%3A1.22.1#optional!builtin<compat/resolve>::version=1.22.1&hash=c3c19d" 6226 resolution: "resolve@patch:resolve@npm%3A1.22.3#optional!builtin<compat/resolve>::version=1.22.3&hash=c3c19d"
6288 dependencies: 6227 dependencies:
6289 is-core-module: "npm:^2.9.0" 6228 is-core-module: "npm:^2.12.0"
6290 path-parse: "npm:^1.0.7" 6229 path-parse: "npm:^1.0.7"
6291 supports-preserve-symlinks-flag: "npm:^1.0.0" 6230 supports-preserve-symlinks-flag: "npm:^1.0.0"
6292 bin: 6231 bin:
6293 resolve: bin/resolve 6232 resolve: bin/resolve
6294 checksum: a6f214b97d932445796f78dab7a898ec78966327e0d6cb571f90b6ac0f3b3347bf6bab0a071d899bfdc316b26ed845f6655310b38b8f6ee4da5272a0c5ecef85 6233 checksum: 9b982fd1fdbcca23f58d4d97df35bf1182eaccad96df6d8bbc4e9006616c382a10d7617e039a540cc86291e5247ddbb7cda9cceb1fd35688b03b03864b5d4360
6295 languageName: node 6234 languageName: node
6296 linkType: hard 6235 linkType: hard
6297 6236
@@ -6361,9 +6300,9 @@ __metadata:
6361 languageName: node 6300 languageName: node
6362 linkType: hard 6301 linkType: hard
6363 6302
6364"rollup@npm:^3.18.0, rollup@npm:^3.7.2": 6303"rollup@npm:^3.21.0":
6365 version: 3.20.2 6304 version: 3.25.1
6366 resolution: "rollup@npm:3.20.2" 6305 resolution: "rollup@npm:3.25.1"
6367 dependencies: 6306 dependencies:
6368 fsevents: "npm:~2.3.2" 6307 fsevents: "npm:~2.3.2"
6369 dependenciesMeta: 6308 dependenciesMeta:
@@ -6371,7 +6310,7 @@ __metadata:
6371 optional: true 6310 optional: true
6372 bin: 6311 bin:
6373 rollup: dist/bin/rollup 6312 rollup: dist/bin/rollup
6374 checksum: 170a0db203640593b9e500ca2c4a969ec0897154bf1bf9e354f6e6d2a1ee481791d360b9e80a61feff85407989c104b9cb37aab498c17ba58bdabf1940c50f80 6313 checksum: 06824c736c6aea24e138077bb28d8976f3c75b7c8593f7cc77ea0b31a2c37253d983187e2e8b9ff984d311550d0dd37f359360c4ce99fb4cb1ada3c0a20e48c5
6375 languageName: node 6314 languageName: node
6376 linkType: hard 6315 linkType: hard
6377 6316
@@ -6428,13 +6367,13 @@ __metadata:
6428 linkType: hard 6367 linkType: hard
6429 6368
6430"semver@npm:^7.3.5, semver@npm:^7.3.7": 6369"semver@npm:^7.3.5, semver@npm:^7.3.7":
6431 version: 7.3.8 6370 version: 7.5.2
6432 resolution: "semver@npm:7.3.8" 6371 resolution: "semver@npm:7.5.2"
6433 dependencies: 6372 dependencies:
6434 lru-cache: "npm:^6.0.0" 6373 lru-cache: "npm:^6.0.0"
6435 bin: 6374 bin:
6436 semver: bin/semver.js 6375 semver: bin/semver.js
6437 checksum: 94ad80ee14889020cb4a14d809fb99d16cbf4ff3dc7f4c564fc72efe2c5763a60090a1c16a9fd18ceeb1e993a1303a4d870c0a22f26adaf435b368b46a7d8462 6376 checksum: 896fab94563f3e4187b57a883e2efab277488bf4bd823d7794410435c39a1191830ae366470baad3430f74a555534d06cfc85c3e1b82f2bdeb9dd34edc980189
6438 languageName: node 6377 languageName: node
6439 linkType: hard 6378 linkType: hard
6440 6379
@@ -6488,6 +6427,13 @@ __metadata:
6488 languageName: node 6427 languageName: node
6489 linkType: hard 6428 linkType: hard
6490 6429
6430"signal-exit@npm:^4.0.1":
6431 version: 4.0.2
6432 resolution: "signal-exit@npm:4.0.2"
6433 checksum: 8d05e3167eb2b9798d10e005c8c8d011d06189089ebf5cace0400cfe20b4f7cad1a5ccc8b613c92425d25da843b08cf76e4c59827f6c6003b186a7c0c336d46c
6434 languageName: node
6435 linkType: hard
6436
6491"slash@npm:^3.0.0": 6437"slash@npm:^3.0.0":
6492 version: 3.0.0 6438 version: 3.0.0
6493 resolution: "slash@npm:3.0.0" 6439 resolution: "slash@npm:3.0.0"
@@ -6577,25 +6523,16 @@ __metadata:
6577 languageName: node 6523 languageName: node
6578 linkType: hard 6524 linkType: hard
6579 6525
6580"ssri@npm:^9.0.0": 6526"ssri@npm:^10.0.0":
6581 version: 9.0.1 6527 version: 10.0.4
6582 resolution: "ssri@npm:9.0.1" 6528 resolution: "ssri@npm:10.0.4"
6583 dependencies:
6584 minipass: "npm:^3.1.1"
6585 checksum: ec9e6fbb74ccb030391fc33aa1a8373014f1cdde570e389cf25f201604d6889035fc8b4409a6e8e787d75ddad892839c0e5a4ea6b67e7ab91f3c619e5e6e087a
6586 languageName: node
6587 linkType: hard
6588
6589"stop-iteration-iterator@npm:^1.0.0":
6590 version: 1.0.0
6591 resolution: "stop-iteration-iterator@npm:1.0.0"
6592 dependencies: 6529 dependencies:
6593 internal-slot: "npm:^1.0.4" 6530 minipass: "npm:^5.0.0"
6594 checksum: 272fb892a8ab6217163a32284463e6f03720e4d897b77d23e1731d09f1cd9e1ba94473d3f9e965970527e2243d60985147ec4380cb0965c1dd812cc470f704bd 6531 checksum: 6c98b01cbec2953f24701a207a34b977afafdd306dd8cd1aedf1188cb7066ae656529e04aebbe29f02809510c78a8b509591b3a7ee89a4e5d2c954f07f2b2b0a
6595 languageName: node 6532 languageName: node
6596 linkType: hard 6533 linkType: hard
6597 6534
6598"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.2.3": 6535"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.3":
6599 version: 4.2.3 6536 version: 4.2.3
6600 resolution: "string-width@npm:4.2.3" 6537 resolution: "string-width@npm:4.2.3"
6601 dependencies: 6538 dependencies:
@@ -6606,6 +6543,17 @@ __metadata:
6606 languageName: node 6543 languageName: node
6607 linkType: hard 6544 linkType: hard
6608 6545
6546"string-width@npm:^5.0.1, string-width@npm:^5.1.2":
6547 version: 5.1.2
6548 resolution: "string-width@npm:5.1.2"
6549 dependencies:
6550 eastasianwidth: "npm:^0.2.0"
6551 emoji-regex: "npm:^9.2.2"
6552 strip-ansi: "npm:^7.0.1"
6553 checksum: cb2b2392bfd8114452b7adbe578d0472d706e01792a6b7cd35f15fe3afbda37fa26348cb984d01acebd5f9ccdb0e62a0c57cc0ec1fc7c2a5d01ef83e5afd8807
6554 languageName: node
6555 linkType: hard
6556
6609"string.prototype.matchall@npm:^4.0.6, string.prototype.matchall@npm:^4.0.8": 6557"string.prototype.matchall@npm:^4.0.6, string.prototype.matchall@npm:^4.0.8":
6610 version: 4.0.8 6558 version: 4.0.8
6611 resolution: "string.prototype.matchall@npm:4.0.8" 6559 resolution: "string.prototype.matchall@npm:4.0.8"
@@ -6675,7 +6623,7 @@ __metadata:
6675 languageName: node 6623 languageName: node
6676 linkType: hard 6624 linkType: hard
6677 6625
6678"strip-ansi@npm:^6.0.1": 6626"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
6679 version: 6.0.1 6627 version: 6.0.1
6680 resolution: "strip-ansi@npm:6.0.1" 6628 resolution: "strip-ansi@npm:6.0.1"
6681 dependencies: 6629 dependencies:
@@ -6684,6 +6632,15 @@ __metadata:
6684 languageName: node 6632 languageName: node
6685 linkType: hard 6633 linkType: hard
6686 6634
6635"strip-ansi@npm:^7.0.1":
6636 version: 7.1.0
6637 resolution: "strip-ansi@npm:7.1.0"
6638 dependencies:
6639 ansi-regex: "npm:^6.0.1"
6640 checksum: 09f81cbad0ac6e3dbe1c425429135432e91b1a61b7799587cb38aa24fb661aa5a83eaaf579e241ac1a4cac39fee97501c15226099728e56759abc6846b51917a
6641 languageName: node
6642 linkType: hard
6643
6687"strip-bom@npm:^3.0.0": 6644"strip-bom@npm:^3.0.0":
6688 version: 3.0.0 6645 version: 3.0.0
6689 resolution: "strip-bom@npm:3.0.0" 6646 resolution: "strip-bom@npm:3.0.0"
@@ -6706,16 +6663,16 @@ __metadata:
6706 linkType: hard 6663 linkType: hard
6707 6664
6708"style-mod@npm:^4.0.0": 6665"style-mod@npm:^4.0.0":
6709 version: 4.0.2 6666 version: 4.0.3
6710 resolution: "style-mod@npm:4.0.2" 6667 resolution: "style-mod@npm:4.0.3"
6711 checksum: 299f82cba0bfeca6cb2c223f4d5f3902012f783e11807eedd32790556ea8509a34e9a62eaff8afddbda10f1ea74578daab5068b1a326488878c9005fcbce8e08 6668 checksum: ca62a9ff3e9cbf4f35e26118916771cbf46d30e2207d7243f4a111b8645e86be544f40fa8d67d4c7c946cfae88a89013dff42746c6b026cc4a6cc0a9d6e85cef
6712 languageName: node 6669 languageName: node
6713 linkType: hard 6670 linkType: hard
6714 6671
6715"stylis@npm:4.1.3": 6672"stylis@npm:4.2.0":
6716 version: 4.1.3 6673 version: 4.2.0
6717 resolution: "stylis@npm:4.1.3" 6674 resolution: "stylis@npm:4.2.0"
6718 checksum: 5040211532a8bb23414072ed9ec44fd563f40be013cbc131a50250f2ce19469ec6bb17dec5db6f942442ef548b456bc4e5d4b8f61a5a9249231c01fc761d0d6d 6675 checksum: c7ee385328bfaf1b0de0a13ec773da26d11e534c111f3ef72d1ff751e276ec6cd221c10476d14a9581ff25758ab1dce74c115000aa2eb9140ceca977491e8708
6719 languageName: node 6676 languageName: node
6720 linkType: hard 6677 linkType: hard
6721 6678
@@ -6762,16 +6719,16 @@ __metadata:
6762 linkType: hard 6719 linkType: hard
6763 6720
6764"tar@npm:^6.1.11, tar@npm:^6.1.2": 6721"tar@npm:^6.1.11, tar@npm:^6.1.2":
6765 version: 6.1.13 6722 version: 6.1.15
6766 resolution: "tar@npm:6.1.13" 6723 resolution: "tar@npm:6.1.15"
6767 dependencies: 6724 dependencies:
6768 chownr: "npm:^2.0.0" 6725 chownr: "npm:^2.0.0"
6769 fs-minipass: "npm:^2.0.0" 6726 fs-minipass: "npm:^2.0.0"
6770 minipass: "npm:^4.0.0" 6727 minipass: "npm:^5.0.0"
6771 minizlib: "npm:^2.1.1" 6728 minizlib: "npm:^2.1.1"
6772 mkdirp: "npm:^1.0.3" 6729 mkdirp: "npm:^1.0.3"
6773 yallist: "npm:^4.0.0" 6730 yallist: "npm:^4.0.0"
6774 checksum: b1254685cb870858a072a6863d7f769c5c27f964166cacdf2fee4aac526dc8949fb9cd609a9e0a77e5cb8f993e2d38c966c52de0e71827e8f14a3d4cd43209db 6731 checksum: 815c25f8812ad65172fa0440c96e5395714cfee8b43e9b2cf85d98964bbd479da49dde364087b9e456c49317f88e19aa2304c45c9853555d85289177c3066555
6775 languageName: node 6732 languageName: node
6776 linkType: hard 6733 linkType: hard
6777 6734
@@ -6795,16 +6752,16 @@ __metadata:
6795 linkType: hard 6752 linkType: hard
6796 6753
6797"terser@npm:^5.0.0, terser@npm:^5.15.1": 6754"terser@npm:^5.0.0, terser@npm:^5.15.1":
6798 version: 5.16.8 6755 version: 5.18.0
6799 resolution: "terser@npm:5.16.8" 6756 resolution: "terser@npm:5.18.0"
6800 dependencies: 6757 dependencies:
6801 "@jridgewell/source-map": "npm:^0.3.2" 6758 "@jridgewell/source-map": "npm:^0.3.3"
6802 acorn: "npm:^8.5.0" 6759 acorn: "npm:^8.8.2"
6803 commander: "npm:^2.20.0" 6760 commander: "npm:^2.20.0"
6804 source-map-support: "npm:~0.5.20" 6761 source-map-support: "npm:~0.5.20"
6805 bin: 6762 bin:
6806 terser: bin/terser 6763 terser: bin/terser
6807 checksum: 2dfbb8417f3621450d5b47be89d5ebcdbe52abdb454bf45e32e243bf52bf917d89b98cc168fcc9cd38adf72ff3df016fbbc9d10dd413457d307f726783871028 6764 checksum: 7b295efb1f87d2ca4a38e1fbd7cf1fe48d69062a14bacb02f1ba2404593d06bfb244ddc89c55684eb744411b45dd8f6605bb562c6a5a427dcbd283efadac8d92
6808 languageName: node 6765 languageName: node
6809 linkType: hard 6766 linkType: hard
6810 6767
@@ -6870,9 +6827,9 @@ __metadata:
6870 linkType: hard 6827 linkType: hard
6871 6828
6872"tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.4.0, tslib@npm:^2.5.0": 6829"tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.4.0, tslib@npm:^2.5.0":
6873 version: 2.5.0 6830 version: 2.5.3
6874 resolution: "tslib@npm:2.5.0" 6831 resolution: "tslib@npm:2.5.3"
6875 checksum: 5a6ee935f56cd653af29de928483acbab7323f964b053e98b6b318abc69431fb0e4f660c4f4a396e2e93852510bef25eeb9f1d951d060b2d7bcc313811e5da6f 6832 checksum: d31480d5acbcb467291d548bffce51692774b831ac8ce73f9f2049ec217f3c741ed85a0c98924bd61f95633f1c48858d18aa861d754c80df3bd67effcc144a3e
6876 languageName: node 6833 languageName: node
6877 linkType: hard 6834 linkType: hard
6878 6835
@@ -6921,23 +6878,23 @@ __metadata:
6921 languageName: node 6878 languageName: node
6922 linkType: hard 6879 linkType: hard
6923 6880
6924"typescript@npm:5.0.3": 6881"typescript@npm:5.1.3":
6925 version: 5.0.3 6882 version: 5.1.3
6926 resolution: "typescript@npm:5.0.3" 6883 resolution: "typescript@npm:5.1.3"
6927 bin: 6884 bin:
6928 tsc: bin/tsc 6885 tsc: bin/tsc
6929 tsserver: bin/tsserver 6886 tsserver: bin/tsserver
6930 checksum: 45ee631503499861d77d7a7b1d49fb5c62ae6bb5a99cdf5110f3e21c627397f5f76cf3d67ee0b223a33cfad469ea18de7650cab7a529b1376f5218a27b81671e 6887 checksum: 34f5c10a175ad596eb9ef7b12a0417d830317859754bddde67d6681c8bd7e67a24c88dfab600bf0deeb7355cb0f58faf7ab2a2c34a5d3c96f8420928f0f69b58
6931 languageName: node 6888 languageName: node
6932 linkType: hard 6889 linkType: hard
6933 6890
6934"typescript@patch:typescript@npm%3A5.0.3#optional!builtin<compat/typescript>": 6891"typescript@patch:typescript@npm%3A5.1.3#optional!builtin<compat/typescript>":
6935 version: 5.0.3 6892 version: 5.1.3
6936 resolution: "typescript@patch:typescript@npm%3A5.0.3#optional!builtin<compat/typescript>::version=5.0.3&hash=b5f058" 6893 resolution: "typescript@patch:typescript@npm%3A5.1.3#optional!builtin<compat/typescript>::version=5.1.3&hash=5da071"
6937 bin: 6894 bin:
6938 tsc: bin/tsc 6895 tsc: bin/tsc
6939 tsserver: bin/tsserver 6896 tsserver: bin/tsserver
6940 checksum: 66967b1418927f8c780bcec443e6e1572d0c88314e3b45797d22bffc8981b3c8e687a37f24bcad00e2d349722df225e758678559e810a6673f4773b8f44eb5d2 6897 checksum: ef6d5eaa31049b41bf1ddf091806aed923e65ea3de951bb27e05bc65911c3bf373b3c2bcc9204d2d2dbdca7d2e06c6a645824580638a8c2c18e2e5155cfc33b7
6941 languageName: node 6898 languageName: node
6942 linkType: hard 6899 linkType: hard
6943 6900
@@ -6984,21 +6941,21 @@ __metadata:
6984 languageName: node 6941 languageName: node
6985 linkType: hard 6942 linkType: hard
6986 6943
6987"unique-filename@npm:^2.0.0": 6944"unique-filename@npm:^3.0.0":
6988 version: 2.0.1 6945 version: 3.0.0
6989 resolution: "unique-filename@npm:2.0.1" 6946 resolution: "unique-filename@npm:3.0.0"
6990 dependencies: 6947 dependencies:
6991 unique-slug: "npm:^3.0.0" 6948 unique-slug: "npm:^4.0.0"
6992 checksum: 1efaebd1b9df4770537f73b040adc8ef2b7da29b837388d97d6d78a4a739dc67bc491e45d381a377bc80ee838e7e1dc904193b3e73cd6c117d96f92b3a09ed46 6949 checksum: 2624a9c87c31ef208bec3ffede4728770b0f8b1c056e546c7f89403ce55bac2f44d02d501ca4c20f853b7c67001ce4d8fb36d0750a58451b03ed85811ef80c77
6993 languageName: node 6950 languageName: node
6994 linkType: hard 6951 linkType: hard
6995 6952
6996"unique-slug@npm:^3.0.0": 6953"unique-slug@npm:^4.0.0":
6997 version: 3.0.0 6954 version: 4.0.0
6998 resolution: "unique-slug@npm:3.0.0" 6955 resolution: "unique-slug@npm:4.0.0"
6999 dependencies: 6956 dependencies:
7000 imurmurhash: "npm:^0.1.4" 6957 imurmurhash: "npm:^0.1.4"
7001 checksum: ae31bb1d8126400e512385ec239b3ca40f6a8790af9d6dedb0842b340b3ecc0a7de413ff270f3ea3dae1565c6f745ab6e28363387cd32ecddbe0fc72ee247303 6958 checksum: 4ba7a8d96a490850f9f5b80fd0f5958ce9369aac12c659405885ab9f1c6b908315cfeef218fed65966160dd9ca811eaa8ca6271f95adf5f70493891e9d852d8f
7002 languageName: node 6959 languageName: node
7003 linkType: hard 6960 linkType: hard
7004 6961
@@ -7025,17 +6982,17 @@ __metadata:
7025 languageName: node 6982 languageName: node
7026 linkType: hard 6983 linkType: hard
7027 6984
7028"update-browserslist-db@npm:^1.0.10": 6985"update-browserslist-db@npm:^1.0.11":
7029 version: 1.0.10 6986 version: 1.0.11
7030 resolution: "update-browserslist-db@npm:1.0.10" 6987 resolution: "update-browserslist-db@npm:1.0.11"
7031 dependencies: 6988 dependencies:
7032 escalade: "npm:^3.1.1" 6989 escalade: "npm:^3.1.1"
7033 picocolors: "npm:^1.0.0" 6990 picocolors: "npm:^1.0.0"
7034 peerDependencies: 6991 peerDependencies:
7035 browserslist: ">= 4.21.0" 6992 browserslist: ">= 4.21.0"
7036 bin: 6993 bin:
7037 browserslist-lint: cli.js 6994 update-browserslist-db: cli.js
7038 checksum: e55ee7f0562821e40808b5f265e4dfbc1436cdddd4c436dfe73ae4e71215302907d4b430807d45fabbb4c23aa2d67757f26dbd8f93fc9718f814566536b386d0 6995 checksum: adce84b01c28606050eb73df75b36404fe531727484ebc5a3f6d12c23413155a82205a7c773ee05b8fb27d0fa719e66c970fb90ecced57a54106b89249dd6bb3
7039 languageName: node 6996 languageName: node
7040 linkType: hard 6997 linkType: hard
7041 6998
@@ -7055,34 +7012,31 @@ __metadata:
7055 languageName: node 7012 languageName: node
7056 linkType: hard 7013 linkType: hard
7057 7014
7058"vite-plugin-pwa@npm:^0.14.7": 7015"vite-plugin-pwa@npm:^0.16.4":
7059 version: 0.14.7 7016 version: 0.16.4
7060 resolution: "vite-plugin-pwa@npm:0.14.7" 7017 resolution: "vite-plugin-pwa@npm:0.16.4"
7061 dependencies: 7018 dependencies:
7062 "@rollup/plugin-replace": "npm:^5.0.1"
7063 debug: "npm:^4.3.4" 7019 debug: "npm:^4.3.4"
7064 fast-glob: "npm:^3.2.12" 7020 fast-glob: "npm:^3.2.12"
7065 pretty-bytes: "npm:^6.0.0" 7021 pretty-bytes: "npm:^6.0.0"
7066 rollup: "npm:^3.7.2" 7022 workbox-build: "npm:^7.0.0"
7067 workbox-build: "npm:^6.5.4" 7023 workbox-window: "npm:^7.0.0"
7068 workbox-window: "npm:^6.5.4"
7069 peerDependencies: 7024 peerDependencies:
7070 vite: ^3.1.0 || ^4.0.0 7025 vite: ^3.1.0 || ^4.0.0
7071 workbox-build: ^6.5.4 7026 workbox-build: ^7.0.0
7072 workbox-window: ^6.5.4 7027 workbox-window: ^7.0.0
7073 checksum: f66ba146bdaae2bb0fad9dfa5289689d0a0b2cca9aeef5b759388ce8786d17787655a4d70745240a3ebbb7a51c0b4679f6811581a47853ab75adaf5ff6b64690 7028 checksum: 5e097ff7f9fb6626ce7be797b7609f7f3d6f0fc03d3391e999f0d96d4b4619a1f7ac46e6d4d570ebe26c1fd50f36c3891c5719e9158c04827699428d0d7a90d5
7074 languageName: node 7029 languageName: node
7075 linkType: hard 7030 linkType: hard
7076 7031
7077"vite@npm:^4.2.1": 7032"vite@npm:^4.3.9":
7078 version: 4.2.1 7033 version: 4.3.9
7079 resolution: "vite@npm:4.2.1" 7034 resolution: "vite@npm:4.3.9"
7080 dependencies: 7035 dependencies:
7081 esbuild: "npm:^0.17.5" 7036 esbuild: "npm:^0.17.5"
7082 fsevents: "npm:~2.3.2" 7037 fsevents: "npm:~2.3.2"
7083 postcss: "npm:^8.4.21" 7038 postcss: "npm:^8.4.23"
7084 resolve: "npm:^1.22.1" 7039 rollup: "npm:^3.21.0"
7085 rollup: "npm:^3.18.0"
7086 peerDependencies: 7040 peerDependencies:
7087 "@types/node": ">= 14" 7041 "@types/node": ">= 14"
7088 less: "*" 7042 less: "*"
@@ -7108,14 +7062,14 @@ __metadata:
7108 optional: true 7062 optional: true
7109 bin: 7063 bin:
7110 vite: bin/vite.js 7064 vite: bin/vite.js
7111 checksum: 9b784639d35a074b12b72f60764ba6d6eedcaa112ac4b5df00a706e2d5a01d7d4b9ce19ddc5ce8b65260770e56e084fcf2ae7b7c763a0880a2d9f3bfb5fa3450 7065 checksum: 3bdd4d860e646a5abdf9b0af1828d74e7e20f9124cc4081cc7d8a09df1b054286add51051c1127cc3c1ea522e3c756da21a1dc424dabd121fa5b82dd5c6911b1
7112 languageName: node 7066 languageName: node
7113 linkType: hard 7067 linkType: hard
7114 7068
7115"w3c-keyname@npm:^2.2.4": 7069"w3c-keyname@npm:^2.2.4":
7116 version: 2.2.6 7070 version: 2.2.8
7117 resolution: "w3c-keyname@npm:2.2.6" 7071 resolution: "w3c-keyname@npm:2.2.8"
7118 checksum: ba0adb6be65ca5bc8dca4860e00784b4ff2bee5c8e028bc5bda95d15f435439094316dbafce06cc3989552110bd33a3311a5f76b5176b689545573fd8490e464 7072 checksum: 32151833a4407c2aacc13279705c9b4dcca120e47d1cf12c5ee4aaa6e889cb1501ae5bc4b16b67e8db7d1cfdbdeb6557d7b6ff271a59a32d51a074cc7dda0141
7119 languageName: node 7073 languageName: node
7120 linkType: hard 7074 linkType: hard
7121 7075
@@ -7150,18 +7104,6 @@ __metadata:
7150 languageName: node 7104 languageName: node
7151 linkType: hard 7105 linkType: hard
7152 7106
7153"which-collection@npm:^1.0.1":
7154 version: 1.0.1
7155 resolution: "which-collection@npm:1.0.1"
7156 dependencies:
7157 is-map: "npm:^2.0.1"
7158 is-set: "npm:^2.0.1"
7159 is-weakmap: "npm:^2.0.1"
7160 is-weakset: "npm:^2.0.1"
7161 checksum: 23df529ccabb5516aeb020ff4515d1f2571d5209a9dbcaee36dfc970440b1d2b318ab7192c5b3e7b76046bcaa88f886031f08d8962e9c7ca889efd750e67ac6e
7162 languageName: node
7163 linkType: hard
7164
7165"which-typed-array@npm:^1.1.9": 7107"which-typed-array@npm:^1.1.9":
7166 version: 1.1.9 7108 version: 1.1.9
7167 resolution: "which-typed-array@npm:1.1.9" 7109 resolution: "which-typed-array@npm:1.1.9"
@@ -7203,28 +7145,28 @@ __metadata:
7203 languageName: node 7145 languageName: node
7204 linkType: hard 7146 linkType: hard
7205 7147
7206"workbox-background-sync@npm:6.5.4": 7148"workbox-background-sync@npm:7.0.0":
7207 version: 6.5.4 7149 version: 7.0.0
7208 resolution: "workbox-background-sync@npm:6.5.4" 7150 resolution: "workbox-background-sync@npm:7.0.0"
7209 dependencies: 7151 dependencies:
7210 idb: "npm:^7.0.1" 7152 idb: "npm:^7.0.1"
7211 workbox-core: "npm:6.5.4" 7153 workbox-core: "npm:7.0.0"
7212 checksum: a64516b58969dacbe3b40e5881707f3cf7f33dbd41292767396d03fff058a368c1da7ca73108eedd97f6b6e8e405fac5007965ceb9114c36057a3dc7590dc285 7154 checksum: ec46bca63b18e7e2cd0ee8d879f8e2609e7ee04db83e2086d69039f2f5353d15393a24eb32c7729025cb38ca343e68ff5f316e11d6f6d4b69a6e91dd1056e4a4
7213 languageName: node 7155 languageName: node
7214 linkType: hard 7156 linkType: hard
7215 7157
7216"workbox-broadcast-update@npm:6.5.4": 7158"workbox-broadcast-update@npm:7.0.0":
7217 version: 6.5.4 7159 version: 7.0.0
7218 resolution: "workbox-broadcast-update@npm:6.5.4" 7160 resolution: "workbox-broadcast-update@npm:7.0.0"
7219 dependencies: 7161 dependencies:
7220 workbox-core: "npm:6.5.4" 7162 workbox-core: "npm:7.0.0"
7221 checksum: 882ea2d56580321628f2c985ef790324415ef9c3a745a23fa2c51b804cbf3f1fd2899c1daffb31adbd317190d1c3d2e59a895dcf1112916a7472320fe5b2c89f 7163 checksum: 3ffa7d98ea3fd7d741f28085061c67f5c9883031d6982c40cb2dc0f38bbc113b979e849b9cedb34cd1305dec0eec73557c303886fd1ed7dca3b5c4a439036b34
7222 languageName: node 7164 languageName: node
7223 linkType: hard 7165 linkType: hard
7224 7166
7225"workbox-build@npm:^6.5.4": 7167"workbox-build@npm:^7.0.0":
7226 version: 6.5.4 7168 version: 7.0.0
7227 resolution: "workbox-build@npm:6.5.4" 7169 resolution: "workbox-build@npm:7.0.0"
7228 dependencies: 7170 dependencies:
7229 "@apideck/better-ajv-errors": "npm:^0.3.1" 7171 "@apideck/better-ajv-errors": "npm:^0.3.1"
7230 "@babel/core": "npm:^7.11.1" 7172 "@babel/core": "npm:^7.11.1"
@@ -7248,148 +7190,170 @@ __metadata:
7248 strip-comments: "npm:^2.0.1" 7190 strip-comments: "npm:^2.0.1"
7249 tempy: "npm:^0.6.0" 7191 tempy: "npm:^0.6.0"
7250 upath: "npm:^1.2.0" 7192 upath: "npm:^1.2.0"
7251 workbox-background-sync: "npm:6.5.4" 7193 workbox-background-sync: "npm:7.0.0"
7252 workbox-broadcast-update: "npm:6.5.4" 7194 workbox-broadcast-update: "npm:7.0.0"
7253 workbox-cacheable-response: "npm:6.5.4" 7195 workbox-cacheable-response: "npm:7.0.0"
7254 workbox-core: "npm:6.5.4" 7196 workbox-core: "npm:7.0.0"
7255 workbox-expiration: "npm:6.5.4" 7197 workbox-expiration: "npm:7.0.0"
7256 workbox-google-analytics: "npm:6.5.4" 7198 workbox-google-analytics: "npm:7.0.0"
7257 workbox-navigation-preload: "npm:6.5.4" 7199 workbox-navigation-preload: "npm:7.0.0"
7258 workbox-precaching: "npm:6.5.4" 7200 workbox-precaching: "npm:7.0.0"
7259 workbox-range-requests: "npm:6.5.4" 7201 workbox-range-requests: "npm:7.0.0"
7260 workbox-recipes: "npm:6.5.4" 7202 workbox-recipes: "npm:7.0.0"
7261 workbox-routing: "npm:6.5.4" 7203 workbox-routing: "npm:7.0.0"
7262 workbox-strategies: "npm:6.5.4" 7204 workbox-strategies: "npm:7.0.0"
7263 workbox-streams: "npm:6.5.4" 7205 workbox-streams: "npm:7.0.0"
7264 workbox-sw: "npm:6.5.4" 7206 workbox-sw: "npm:7.0.0"
7265 workbox-window: "npm:6.5.4" 7207 workbox-window: "npm:7.0.0"
7266 checksum: b82af4fdee955fac8f40d32fd8748a4e882a95fb5ef084cae3281ee8e1d54bab662f0ee2fb7ce5467e2e1ebc0a2aee679a97fd0e1e8b505d4fe6d817de9a68a8 7208 checksum: 3dd0eded07e8a9ad82ced375bd6ed52591f87797b64e4bd395ea117c0bdbe74eba21909f72d5c3c96a717f32778e2a18766e60ccbc5a99a6d8a59e7daffde2b8
7267 languageName: node 7209 languageName: node
7268 linkType: hard 7210 linkType: hard
7269 7211
7270"workbox-cacheable-response@npm:6.5.4": 7212"workbox-cacheable-response@npm:7.0.0":
7271 version: 6.5.4 7213 version: 7.0.0
7272 resolution: "workbox-cacheable-response@npm:6.5.4" 7214 resolution: "workbox-cacheable-response@npm:7.0.0"
7273 dependencies: 7215 dependencies:
7274 workbox-core: "npm:6.5.4" 7216 workbox-core: "npm:7.0.0"
7275 checksum: be761895294be43f3e7cb870a08ab197f5dd2847938a92ef3e6dde80f2b7fa140b0e0ab55618fcacc3e42ed3861c13356a8cfca0680aecd22fed3be72f408cf1 7217 checksum: 92d2862bbd5814ec520248d23a675babce0509ce42d600d864c75f47562c25b997758fbc9d302877f19ecd0c122c72be2a66d14588f083b52ac73ee5fb218500
7276 languageName: node 7218 languageName: node
7277 linkType: hard 7219 linkType: hard
7278 7220
7279"workbox-core@npm:6.5.4": 7221"workbox-core@npm:7.0.0":
7280 version: 6.5.4 7222 version: 7.0.0
7281 resolution: "workbox-core@npm:6.5.4" 7223 resolution: "workbox-core@npm:7.0.0"
7282 checksum: ab6531a26ac5a7dc8780f6e7609f0c92f96ef395f9a5951dcc9a5327963684064266d8cb735779ae5eb52f1b5a0198a1b7fae047a1a42f911a32526e28026384 7224 checksum: 8e4b11940a471a96ed07e992fb950963e3316500f1e5f453f72e77c9436eac2d115b9037c7b9c6955cdea0167b64c2919205474064e7c5c3dd1de4c75acfcdb4
7283 languageName: node 7225 languageName: node
7284 linkType: hard 7226 linkType: hard
7285 7227
7286"workbox-expiration@npm:6.5.4": 7228"workbox-expiration@npm:7.0.0":
7287 version: 6.5.4 7229 version: 7.0.0
7288 resolution: "workbox-expiration@npm:6.5.4" 7230 resolution: "workbox-expiration@npm:7.0.0"
7289 dependencies: 7231 dependencies:
7290 idb: "npm:^7.0.1" 7232 idb: "npm:^7.0.1"
7291 workbox-core: "npm:6.5.4" 7233 workbox-core: "npm:7.0.0"
7292 checksum: 33d16d3a1d6b4d358e406d5b1591555c20bafa278fbdacd3df70918e6e99de423a5ab4f15a2dc8653079e26296dca22269072f84b9375e909716ceba0bccf750 7234 checksum: e6d9c83833ab4e5a777024749b519249b446c7e20345d2e304e93115e2aabd6e255cd173268d442517d3e70bfdc9f9d929cbe86b886f18a594db31e82451ec2e
7293 languageName: node 7235 languageName: node
7294 linkType: hard 7236 linkType: hard
7295 7237
7296"workbox-google-analytics@npm:6.5.4": 7238"workbox-google-analytics@npm:7.0.0":
7297 version: 6.5.4 7239 version: 7.0.0
7298 resolution: "workbox-google-analytics@npm:6.5.4" 7240 resolution: "workbox-google-analytics@npm:7.0.0"
7299 dependencies: 7241 dependencies:
7300 workbox-background-sync: "npm:6.5.4" 7242 workbox-background-sync: "npm:7.0.0"
7301 workbox-core: "npm:6.5.4" 7243 workbox-core: "npm:7.0.0"
7302 workbox-routing: "npm:6.5.4" 7244 workbox-routing: "npm:7.0.0"
7303 workbox-strategies: "npm:6.5.4" 7245 workbox-strategies: "npm:7.0.0"
7304 checksum: dd37a39a9c68f1dc2a85856443aac1e106664890146bb5a3bd34976a54092325be82f8b82ea0bbf22fef9042db67e43446b4b84f40a31bedc78f40e2816661b7 7246 checksum: 4b10c047eab34bc6cddf44ada7c695fdb1426acfecba0a9fd21c512a38910991e64a6be7d34922792094314d064073dd2f433dd7810e0710abaa6fb96302d29b
7305 languageName: node 7247 languageName: node
7306 linkType: hard 7248 linkType: hard
7307 7249
7308"workbox-navigation-preload@npm:6.5.4": 7250"workbox-navigation-preload@npm:7.0.0":
7309 version: 6.5.4 7251 version: 7.0.0
7310 resolution: "workbox-navigation-preload@npm:6.5.4" 7252 resolution: "workbox-navigation-preload@npm:7.0.0"
7311 dependencies: 7253 dependencies:
7312 workbox-core: "npm:6.5.4" 7254 workbox-core: "npm:7.0.0"
7313 checksum: 9c08ace9460b54abfb2aaca9c83b585f2835526732b494bfb7789ec6eb44da5052bed0ed16b0fb2fbc1a69096105252333075e6cb657f6aa2bd8b721f4c09b55 7255 checksum: 286d149e9171ffd57eda72c87d58821f58a4f4457fde3567b66f88047d052f47237775695a422d88ac9c60267f5028a85e95b80139b335da0701daa06f424314
7314 languageName: node 7256 languageName: node
7315 linkType: hard 7257 linkType: hard
7316 7258
7317"workbox-precaching@npm:6.5.4": 7259"workbox-precaching@npm:7.0.0":
7318 version: 6.5.4 7260 version: 7.0.0
7319 resolution: "workbox-precaching@npm:6.5.4" 7261 resolution: "workbox-precaching@npm:7.0.0"
7320 dependencies: 7262 dependencies:
7321 workbox-core: "npm:6.5.4" 7263 workbox-core: "npm:7.0.0"
7322 workbox-routing: "npm:6.5.4" 7264 workbox-routing: "npm:7.0.0"
7323 workbox-strategies: "npm:6.5.4" 7265 workbox-strategies: "npm:7.0.0"
7324 checksum: c97bfd38d47e893d0f2d1a8a4c848f7ac7673fa737ac3edad5bd29da549e39f54ee60713db2e57b16b7a3dcda07f8991edd4079c20035ce1eefd7b6bbf0edf76 7266 checksum: 75f2272d0500d9ef308d279fd80e2e0b7424aae519945d396e20729c21509af167c2e20b6af0298d2364138fef7ef7154986b4b7322fa5b87434bf8c3dc34fca
7325 languageName: node 7267 languageName: node
7326 linkType: hard 7268 linkType: hard
7327 7269
7328"workbox-range-requests@npm:6.5.4": 7270"workbox-range-requests@npm:7.0.0":
7329 version: 6.5.4 7271 version: 7.0.0
7330 resolution: "workbox-range-requests@npm:6.5.4" 7272 resolution: "workbox-range-requests@npm:7.0.0"
7331 dependencies: 7273 dependencies:
7332 workbox-core: "npm:6.5.4" 7274 workbox-core: "npm:7.0.0"
7333 checksum: 1ab18229a0bd27a4521e552227e4663ae704739e2a71eb97d67596aa28809e206cadf9d7b6211011a57d9d4cad47295b550ae8355c536179597f705c363da52c 7275 checksum: 8332d1209c1594ac8ea4b53d1826cef59d5b6ed373c394bdec89a76f83ea84b7bf307a1487fad7ed60615a34bf477d1455a694d368aa13e3005a86579077f755
7334 languageName: node 7276 languageName: node
7335 linkType: hard 7277 linkType: hard
7336 7278
7337"workbox-recipes@npm:6.5.4": 7279"workbox-recipes@npm:7.0.0":
7338 version: 6.5.4 7280 version: 7.0.0
7339 resolution: "workbox-recipes@npm:6.5.4" 7281 resolution: "workbox-recipes@npm:7.0.0"
7340 dependencies: 7282 dependencies:
7341 workbox-cacheable-response: "npm:6.5.4" 7283 workbox-cacheable-response: "npm:7.0.0"
7342 workbox-core: "npm:6.5.4" 7284 workbox-core: "npm:7.0.0"
7343 workbox-expiration: "npm:6.5.4" 7285 workbox-expiration: "npm:7.0.0"
7344 workbox-precaching: "npm:6.5.4" 7286 workbox-precaching: "npm:7.0.0"
7345 workbox-routing: "npm:6.5.4" 7287 workbox-routing: "npm:7.0.0"
7346 workbox-strategies: "npm:6.5.4" 7288 workbox-strategies: "npm:7.0.0"
7347 checksum: 6d31ab49129245d899c5e2f37b91af48534c0c963554f15394f29a84ee9f80fbbedccb64dcfeca1171f97d5250da4dded7d62519eefbf5030af454ed220efae0 7289 checksum: 4416f0834dba6575ca88a929fe6eba98d4ff9b40a7726fdcf8de8908543fc441ec683cddbe439f25da3f4fbe4cc97760eaa39f9280b66fc217f627585f6a37eb
7348 languageName: node 7290 languageName: node
7349 linkType: hard 7291 linkType: hard
7350 7292
7351"workbox-routing@npm:6.5.4": 7293"workbox-routing@npm:7.0.0":
7352 version: 6.5.4 7294 version: 7.0.0
7353 resolution: "workbox-routing@npm:6.5.4" 7295 resolution: "workbox-routing@npm:7.0.0"
7354 dependencies: 7296 dependencies:
7355 workbox-core: "npm:6.5.4" 7297 workbox-core: "npm:7.0.0"
7356 checksum: a4e1ac4d97032cb4aeb9c387a4de2213a72b73d6ee96787cd656605eaaf4de7ebbd639e771bb2a875b792944141321076154723768025b708a2831d98e8f36aa 7298 checksum: 7b250c696499f1528913e7bb4c11ecfbe62fc329a70c79d905186e4efd3b983536f64e1a2b810445f4e005336a70ec93305be8b62df236e7aac114f0ff908168
7357 languageName: node 7299 languageName: node
7358 linkType: hard 7300 linkType: hard
7359 7301
7360"workbox-strategies@npm:6.5.4": 7302"workbox-strategies@npm:7.0.0":
7361 version: 6.5.4 7303 version: 7.0.0
7362 resolution: "workbox-strategies@npm:6.5.4" 7304 resolution: "workbox-strategies@npm:7.0.0"
7363 dependencies: 7305 dependencies:
7364 workbox-core: "npm:6.5.4" 7306 workbox-core: "npm:7.0.0"
7365 checksum: 8e0bd6aa2e17454e183e1b5de1cc976ea8e3ed2dd298eee634a1f135086699c2edf8c2105e977cf44c946d50606cf66a7701eb1804ff969d2f306845415539a6 7307 checksum: 3e77ce48537177e481958652eeccb950c6cc9c20267c6d2a98ca5b98fbce49c4e5ae412134c2f79fb76e0ff89dbf93b84946c7ca40fcae69cfe70ae8489b2eae
7366 languageName: node 7308 languageName: node
7367 linkType: hard 7309 linkType: hard
7368 7310
7369"workbox-streams@npm:6.5.4": 7311"workbox-streams@npm:7.0.0":
7370 version: 6.5.4 7312 version: 7.0.0
7371 resolution: "workbox-streams@npm:6.5.4" 7313 resolution: "workbox-streams@npm:7.0.0"
7372 dependencies: 7314 dependencies:
7373 workbox-core: "npm:6.5.4" 7315 workbox-core: "npm:7.0.0"
7374 workbox-routing: "npm:6.5.4" 7316 workbox-routing: "npm:7.0.0"
7375 checksum: 060545e13b7a7f8163053bf3a39d9eda419463e3b9d948a6818194d0b1e41152829912d2631b33e6c7dcb7bb4d86b3c98cc2aac64b48d225fa59f5fd8eebb7a9 7317 checksum: cd1a8e508c6bc5173c18fa0c60c94b617a3d404ef95489a1b25e0b7c690f2916aafac38709f4c0a4d76975d347c0a894c0706e3447dc37f2af79cd3cfacfb106
7376 languageName: node 7318 languageName: node
7377 linkType: hard 7319 linkType: hard
7378 7320
7379"workbox-sw@npm:6.5.4": 7321"workbox-sw@npm:7.0.0":
7380 version: 6.5.4 7322 version: 7.0.0
7381 resolution: "workbox-sw@npm:6.5.4" 7323 resolution: "workbox-sw@npm:7.0.0"
7382 checksum: c956aee7cd16477104db42439d67a0d6a232ea1ce7252c7d9a15d615b2698d11a3031351077e7cc41c9cf171f059dd791c3c38d2445c56f17c75be9eb5c20301 7324 checksum: a687a0ceee1321424e633d54b45bf3e93196b900b72dfe4704ed2973ae1012703ed2b9e8b2ae641d5d204a178b8365bf6ad77aa4688c178967a309720f2e62ca
7383 languageName: node 7325 languageName: node
7384 linkType: hard 7326 linkType: hard
7385 7327
7386"workbox-window@npm:6.5.4, workbox-window@npm:^6.5.4": 7328"workbox-window@npm:7.0.0, workbox-window@npm:^7.0.0":
7387 version: 6.5.4 7329 version: 7.0.0
7388 resolution: "workbox-window@npm:6.5.4" 7330 resolution: "workbox-window@npm:7.0.0"
7389 dependencies: 7331 dependencies:
7390 "@types/trusted-types": "npm:^2.0.2" 7332 "@types/trusted-types": "npm:^2.0.2"
7391 workbox-core: "npm:6.5.4" 7333 workbox-core: "npm:7.0.0"
7392 checksum: 1b011603e255deccca060d8202f70d00200db23363bfa66589f9e7d8ed68891840688dee196fe81f90fbe311f9cbe0173042b17e226ccaef57d6838fdde37e7d 7334 checksum: 9f357f23264cb32620a0c346e11a21cdaac60cbe41eda405b1d094cb1009fa19a1a5d4a3c13c4dd878371d0583fd09110db48a451d260cb51380548a2340517b
7335 languageName: node
7336 linkType: hard
7337
7338"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
7339 version: 7.0.0
7340 resolution: "wrap-ansi@npm:7.0.0"
7341 dependencies:
7342 ansi-styles: "npm:^4.0.0"
7343 string-width: "npm:^4.1.0"
7344 strip-ansi: "npm:^6.0.0"
7345 checksum: b72e4a1ebd582221c3d7eae2473c7841af1fd435defe08bb3854600013ced559b10efa767b4fdc6725402ab16b79f86f73e5d4edc7cf9214e15733ee34849aa0
7346 languageName: node
7347 linkType: hard
7348
7349"wrap-ansi@npm:^8.1.0":
7350 version: 8.1.0
7351 resolution: "wrap-ansi@npm:8.1.0"
7352 dependencies:
7353 ansi-styles: "npm:^6.1.0"
7354 string-width: "npm:^5.0.1"
7355 strip-ansi: "npm:^7.0.1"
7356 checksum: f8df96ddeeb43e497c86085f8b009fd374e046aef37d731d13037dbabc2f3d2ba84aa8e583bdff3011b8ef5274a53832d65bb7dd44b30c033e96ef3d0bb72b57
7393 languageName: node 7357 languageName: node
7394 linkType: hard 7358 linkType: hard
7395 7359
@@ -7400,10 +7364,17 @@ __metadata:
7400 languageName: node 7364 languageName: node
7401 linkType: hard 7365 linkType: hard
7402 7366
7403"xstate@npm:^4.33.4, xstate@npm:^4.37.1": 7367"xstate@npm:^4.33.4, xstate@npm:^4.37.2":
7404 version: 4.37.1 7368 version: 4.37.2
7405 resolution: "xstate@npm:4.37.1" 7369 resolution: "xstate@npm:4.37.2"
7406 checksum: 56b8d7fe1f648684b7e708549d9ba647413ce20467b184dfbf80257e83262f2de8256d157515f7838bc38977c68451dab90dd7aac54d398e8ad125f095c03e4c 7370 checksum: e4d5d7930895b78aa4423143b9f113055554bad9541648180643b2150b67f968ccfae52039667ac4ce849b6487234230824f89e41774b4ceae5667584e983c63
7371 languageName: node
7372 linkType: hard
7373
7374"yallist@npm:^3.0.2":
7375 version: 3.1.1
7376 resolution: "yallist@npm:3.1.1"
7377 checksum: 8d382abef6365eb6800ef86a429e8a78347089b7867cdb7ae146e5f3629baebe41967b9d7715ae22c9514659a2855a10e104d68441e339f5060b286b2f3e11c6
7407 languageName: node 7378 languageName: node
7408 linkType: hard 7379 linkType: hard
7409 7380
diff --git a/yarn.lock.license b/yarn.lock.license
new file mode 100644
index 00000000..7a5a2a4b
--- /dev/null
+++ b/yarn.lock.license
@@ -0,0 +1,3 @@
1SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
2
3SPDX-License-Identifier: CC0-1.0