@sanity/pkg-utils 2.3.14 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/pkg-utils",
3
- "version": "2.3.14",
3
+ "version": "2.4.0",
4
4
  "description": "Simple utilities for modern npm packages.",
5
5
  "keywords": [
6
6
  "sanity-io",
@@ -155,6 +155,7 @@
155
155
  "rimraf": "^4.4.1",
156
156
  "rollup": "^3.27.2",
157
157
  "rollup-plugin-esbuild": "^5.0.0",
158
+ "rollup-plugin-preserve-directives": "^0.2.0",
158
159
  "rxjs": "^7.8.1",
159
160
  "treeify": "^1.1.0",
160
161
  "uuid": "^9.0.0",
@@ -114,6 +114,11 @@ export interface PkgConfigOptions {
114
114
  * Build package with support for legacy exports (writes root `<export>.js` files)
115
115
  */
116
116
  legacyExports?: boolean
117
+ /**
118
+ * Preserves module directives, such as `'use client'`
119
+ * @alpha
120
+ */
121
+ preserveModuleDirectives?: boolean
117
122
  minify?: boolean
118
123
  /** @alpha */
119
124
  rollup?: {
@@ -8,6 +8,7 @@ import terser from '@rollup/plugin-terser'
8
8
  import path from 'path'
9
9
  import {InputOptions, OutputOptions, Plugin} from 'rollup'
10
10
  import esbuild from 'rollup-plugin-esbuild'
11
+ import preserveDirectives from 'rollup-plugin-preserve-directives'
11
12
 
12
13
  import {BuildContext, DEFAULT_BROWSERSLIST_QUERY, resolveConfigProperty} from '../../core'
13
14
  import {RollupTask, RollupWatchTask} from '../types'
@@ -111,10 +112,12 @@ export function resolveRollupConfig(
111
112
  }),
112
113
  minify &&
113
114
  terser({
114
- compress: {
115
- // Needed until https://github.com/terser/terser/issues/1320 is fixed
116
- directives: false,
117
- },
115
+ compress: config?.preserveModuleDirectives
116
+ ? {
117
+ // Needed until https://github.com/terser/terser/issues/1320 is fixed
118
+ directives: false,
119
+ }
120
+ : true,
118
121
  output: {
119
122
  comments: (_node, comment) => {
120
123
  const text = comment.value
@@ -130,6 +133,8 @@ export function resolveRollupConfig(
130
133
  },
131
134
  },
132
135
  }),
136
+ // Allows marking export files with `'use client'` at the top
137
+ config?.preserveModuleDirectives && preserveDirectives(),
133
138
  ].filter(Boolean) as Plugin[]
134
139
 
135
140
  const userPlugins = config?.rollup?.plugins
@@ -212,6 +217,7 @@ export function resolveRollupConfig(
212
217
  minifyInternalExports: minify,
213
218
  sourcemap: config?.sourcemap ?? true,
214
219
  hoistTransitiveImports: false,
220
+ preserveModules: config?.preserveModuleDirectives ? true : false,
215
221
  },
216
222
  }
217
223
  }
@@ -114,6 +114,26 @@ async function execPromise(ctx: BuildContext, task: RollupTask) {
114
114
  const bundle = await rollup({
115
115
  ...inputOptions,
116
116
  onwarn(warning) {
117
+ if (
118
+ // Ignore the directive warning until the preserveDirectives plugin does it automatically: https://github.com/Ephem/rollup-plugin-preserve-directives#rollup-plugin-preserve-directives-warning
119
+ warning.message.includes(
120
+ 'Module level directives cause errors when bundled, "use client" in',
121
+ )
122
+ ) {
123
+ // If the preserve option isn't enabled, then extend the message with a note about how to enable
124
+ if (!ctx.config?.preserveModuleDirectives) {
125
+ consoleSpy.messages.push({
126
+ type: 'warn',
127
+ code: warning.code,
128
+ args: [
129
+ `${warning.message} You can preserve it by setting "preserveModuleDirectives: true" in your "package.config.ts"`,
130
+ ],
131
+ })
132
+ }
133
+
134
+ return
135
+ }
136
+
117
137
  consoleSpy.messages.push({
118
138
  type: 'warn',
119
139
  code: warning.code,
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-c026daa9.cjs","sources":["../../src/node/printExtractMessages.ts","../../src/node/tasks/dts/printDiagnostic.ts","../../src/node/tasks/dts/buildTypes.ts","../../src/node/tasks/dts/DtsError.ts","../../src/node/tasks/dts/createApiExtractorConfig.ts","../../src/node/tasks/dts/createTSDocConfig.ts","../../src/node/tasks/dts/extractModuleBlocks.ts","../../src/node/tasks/dts/getExtractMessagesConfig.ts","../../src/node/tasks/dts/extractTypes.ts","../../src/node/tasks/dts/doExtract.ts","../../src/node/tasks/dts/dtsTask.ts","../../src/node/tasks/dts/dtsWatchTask.ts","../../src/node/tasks/node/reexportCjsTask.ts","../../src/node/tasks/rollup/resolveRollupConfig.ts","../../src/node/tasks/rollup/rollupTask.ts","../../src/node/tasks/rollup/rollupWatchTask.ts","../../src/node/tasks/index.ts"],"sourcesContent":["import {ExtractorMessage} from '@microsoft/api-extractor'\nimport chalk from 'chalk'\nimport path from 'path'\n\nimport {BuildContext} from './core'\n\nexport function printExtractMessages(ctx: BuildContext, messages: ExtractorMessage[]): void {\n const {cwd, logger} = ctx\n\n const warnings = messages.filter((msg) => msg.logLevel === 'warning')\n\n if (warnings.length) {\n logger.log()\n }\n\n for (const msg of warnings) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n if (msg.messageId === 'TS6307') {\n // Ignore this warning:\n // > TS6307: <filename> is not in project file list.\n // > Projects must list all files or use an 'include' pattern.\n continue\n }\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.yellow('warning')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join(''),\n )\n }\n\n const errors: ExtractorMessage[] = messages.filter((msg) => msg.logLevel === 'error')\n\n if (!warnings.length && errors.length) {\n logger.log('')\n }\n\n for (const msg of errors) {\n const sourceFilePath = msg.sourceFilePath && path.relative(cwd, msg.sourceFilePath)\n\n logger.log(\n [\n `${chalk.cyan(sourceFilePath || '?')}`,\n `:${chalk.yellow(msg.sourceFileLine)}:${chalk.yellow(msg.sourceFileColumn)}`,\n ` - ${chalk.red('error')} ${chalk.gray(msg.messageId)}\\n`,\n msg.text,\n '\\n',\n ].join(''),\n )\n }\n\n if (errors.length) {\n process.exit(1)\n }\n}\n","import chalk from 'chalk'\nimport path from 'path'\nimport ts from 'typescript'\n\nimport {Logger} from '../../logger'\n\nexport function printDiagnostic(options: {\n cwd: string\n logger: Logger\n diagnostic: ts.Diagnostic\n}): void {\n const {cwd, logger, diagnostic} = options\n\n if (diagnostic.file && diagnostic.start) {\n const {line, character} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start)\n const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n\n const file = path.relative(cwd, diagnostic.file.fileName)\n\n const output = [\n `${chalk.yellow(file)}:${chalk.blue(line + 1)}:${chalk.blue(character + 1)} - `,\n `${chalk.gray(`TS${diagnostic.code}:`)} ${message}`,\n ].join('')\n\n if (diagnostic.category === ts.DiagnosticCategory.Error) {\n logger.error(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Warning) {\n logger.warn(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Message) {\n logger.log(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Suggestion) {\n logger.log(output)\n }\n } else {\n logger.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'))\n }\n}\n","import ts from 'typescript'\n\nimport {Logger} from '../../logger'\nimport {printDiagnostic} from './printDiagnostic'\n\n/** @internal */\nexport async function buildTypes(options: {\n cwd: string\n logger: Logger\n outDir: string\n tsconfig: ts.ParsedCommandLine\n strict: boolean\n}): Promise<void> {\n const {cwd, logger, outDir, tsconfig, strict = false} = options\n\n const compilerOptions: ts.CompilerOptions = {\n ...tsconfig.options,\n declaration: true,\n declarationDir: outDir,\n emitDeclarationOnly: true,\n noEmit: false,\n outDir,\n }\n\n const program = ts.createProgram(tsconfig.fileNames, compilerOptions)\n\n const emitResult = program.emit()\n\n const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)\n\n for (const diagnostic of allDiagnostics) {\n printDiagnostic({cwd, logger, diagnostic})\n }\n\n if (emitResult.emitSkipped) {\n const errors = allDiagnostics.filter((diag) => diag.category === ts.DiagnosticCategory.Error)\n\n if (errors.length) {\n if (strict) {\n throw new Error('failed to compile TypeScript definitions')\n }\n }\n }\n}\n","import {ExtractorMessage} from '@microsoft/api-extractor'\n\n/** @internal */\nexport class DtsError extends Error {\n messages: ExtractorMessage[]\n\n constructor(message: string, messages: ExtractorMessage[]) {\n super(message)\n this.messages = messages\n }\n}\n","import {IConfigFile, IExtractorMessagesConfig} from '@microsoft/api-extractor'\nimport path from 'path'\n\nexport function createApiExtractorConfig(options: {\n distPath: string\n exportPath: string\n filePath: string\n messages: IExtractorMessagesConfig\n projectFolder: string\n mainEntryPointFilePath: string\n tsconfigPath: string\n}): IConfigFile {\n const {\n distPath,\n exportPath,\n filePath,\n messages,\n projectFolder,\n mainEntryPointFilePath,\n tsconfigPath,\n } = options\n\n return {\n apiReport: {\n enabled: false,\n reportFileName: '<unscopedPackageName>.api.md',\n },\n // bundledPackages: [],\n compiler: {\n tsconfigFilePath: tsconfigPath,\n },\n docModel: {\n enabled: false,\n apiJsonFilePath: path.resolve(distPath, `${exportPath}.api.json`),\n },\n dtsRollup: {\n enabled: true,\n untrimmedFilePath: path.resolve(distPath, filePath),\n // betaTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-beta.d.ts')),\n // publicTrimmedFilePath: path.resolve(distPath, filePath.replace('.d.ts', '-public.d.ts')),\n },\n tsdocMetadata: {\n enabled: false,\n },\n messages,\n mainEntryPointFilePath,\n projectFolder,\n }\n}\n","import {TSDocConfigFile} from '@microsoft/tsdoc-config'\nimport {readFile} from 'fs/promises'\nimport {parse} from 'jsonc-parser'\n\n/** @public */\nexport interface TSDocCustomTag {\n name: string\n syntaxKind: 'block' | 'modifier'\n allowMultiple?: boolean\n}\n\n/** @internal */\nexport async function createTSDocConfig(opts: {\n customTags: TSDocCustomTag[]\n}): Promise<TSDocConfigFile | undefined> {\n const {customTags} = opts\n\n if (customTags.length === 0) {\n return undefined\n }\n\n const tsDocBaseBuf = await readFile(\n require.resolve('@microsoft/api-extractor/extends/tsdoc-base.json'),\n )\n\n // Include the definitions that are required for API Extractor\n // extends: ['@microsoft/api-extractor/extends/tsdoc-base.json'],\n const tsDocBaseConfig = parse(tsDocBaseBuf.toString())\n\n // Define custom tags and specify how they should be parsed\n const tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(\n customTags.map((t) => ({\n tagName: `@${t.name}`,\n syntaxKind: t.syntaxKind,\n allowMultiple: t.allowMultiple,\n })),\n )\n\n // Indicate that custom tags are supported by your tooling.\n // (Without this, warnings may be reported saying that a tag is unsupported.)\n const supportForTags = {...tsDocBaseConfig.supportForTags}\n\n for (const customTag of customTags) {\n supportForTags[`@${customTag.name}`] = true\n }\n\n return TSDocConfigFile.loadFromObject({\n ...tsDocBaseConfig,\n noStandardTags: false,\n tagDefinitions,\n supportForTags,\n })\n}\n","import type {File} from '@babel/types'\nimport {ExtractorResult} from '@microsoft/api-extractor'\nimport {parse, print} from 'recast'\nimport typeScriptParser from 'recast/parsers/typescript'\nimport {Program} from 'typescript'\n\n/**\n * A workaround to find all module blocks in extract TS files.\n * @internal\n * */\nexport async function extractModuleBlocksFromTypes({\n tsOutDir,\n extractResult,\n}: {\n tsOutDir: string\n extractResult: ExtractorResult\n}): Promise<string[]> {\n const program = extractResult.compilerState.program as Program\n const moduleBlocks: string[] = []\n\n // all program files, including node_modules\n const allProgramFiles = [...program.getSourceFiles()]\n\n // just our compiled files used in the program\n const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))\n\n for (const sourceFile of sourceFiles) {\n if (sourceFile.text.includes('declare module')) {\n moduleBlocks.push(...extractModuleBlocks(sourceFile.text))\n }\n }\n\n return moduleBlocks\n}\n\n/** @internal */\nexport function extractModuleBlocks(fileContent: string): string[] {\n const ast = parse(fileContent, {\n parser: typeScriptParser,\n }) as File\n\n return ast.program.body\n .filter((node) => node.type === 'TSModuleDeclaration')\n .map((node) => print(node).code)\n}\n","import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'\n\nimport {PkgConfigOptions, PkgRuleLevel} from '../../core'\n\nconst LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {\n error: 'error' as ExtractorLogLevel.Error,\n info: 'info' as ExtractorLogLevel.Info,\n off: 'none' as ExtractorLogLevel.None,\n warn: 'warning' as ExtractorLogLevel.Warning,\n}\n\n/** @internal */\nexport function getExtractMessagesConfig(options: {\n rules: NonNullable<PkgConfigOptions['extract']>['rules']\n}): IExtractorMessagesConfig {\n const {rules} = options\n\n function ruleToLogLevel(\n key: keyof NonNullable<NonNullable<PkgConfigOptions['extract']>['rules']>,\n defaultLevel?: ExtractorLogLevel,\n ) {\n const r = rules?.[key]\n\n return (r ? LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel\n }\n\n return {\n compilerMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n },\n },\n\n extractorMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'ae-forgotten-export': {\n logLevel: ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-incompatible-release-tags': {\n logLevel: ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-internal-missing-underscore': {\n logLevel: ruleToLogLevel('ae-internal-missing-underscore'),\n addToApiReportFile: false,\n },\n\n 'ae-missing-release-tag': {\n logLevel: ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-wrong-input-file-type': {\n logLevel: 'none' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n },\n\n tsdocMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'tsdoc-link-tag-unescaped-text': {\n logLevel: ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-undefined-tag': {\n logLevel: ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-unsupported-tag': {\n logLevel: ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n },\n }\n}\n","import {\n Extractor,\n ExtractorConfig,\n ExtractorMessage,\n ExtractorResult,\n} from '@microsoft/api-extractor'\nimport fs from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport path from 'path'\nimport prettier from 'prettier'\n\nimport {BuildFile, PkgConfigOptions} from '../../core'\nimport {createApiExtractorConfig} from './createApiExtractorConfig'\nimport {createTSDocConfig} from './createTSDocConfig'\nimport {extractModuleBlocksFromTypes} from './extractModuleBlocks'\nimport {getExtractMessagesConfig} from './getExtractMessagesConfig'\n\nexport async function extractTypes(options: {\n customTags: NonNullable<PkgConfigOptions['extract']>['customTags']\n cwd: string\n distPath: string\n exportPath: string\n filePath: string\n files: BuildFile[]\n projectPath: string\n rules?: NonNullable<PkgConfigOptions['extract']>['rules']\n sourceTypesPath: string\n tmpPath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {\n customTags,\n distPath,\n exportPath,\n files,\n filePath,\n projectPath,\n rules,\n sourceTypesPath,\n tmpPath,\n tsconfigPath,\n } = options\n\n const tsdocConfigFile = await createTSDocConfig({\n customTags: customTags || [],\n })\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: getExtractMessagesConfig({rules}),\n projectFolder: projectPath,\n mainEntryPointFilePath: sourceTypesPath,\n tsconfigPath,\n }),\n configObjectFullPath: undefined,\n tsdocConfigFile,\n packageJsonFullPath: path.resolve(projectPath, 'package.json'),\n })\n\n const messages: ExtractorMessage[] = []\n\n // Invoke API Extractor\n const extractorResult = Extractor.invoke(extractorConfig, {\n // Equivalent to the \"--local\" command-line parameter\n localBuild: true,\n // Equivalent to the \"--verbose\" command-line parameter\n showVerboseMessages: true,\n // handle messages\n messageCallback(message: ExtractorMessage) {\n messages.push(message)\n message.handled = true\n },\n })\n\n const typesPath = path.resolve(distPath, filePath)\n const typesBuf = await fs.readFile(typesPath)\n const prettierConfig = await prettier.resolveConfig(typesPath)\n\n await mkdirp(path.dirname(typesPath))\n\n const moduleBlocks = await extractModuleBlocksFromTypes({\n extractResult: extractorResult,\n tsOutDir: tmpPath,\n })\n\n const code = [typesBuf.toString(), ...moduleBlocks].join('\\n\\n')\n\n await fs.writeFile(\n typesPath,\n await prettier.format(code, {\n ...prettierConfig,\n filepath: typesPath,\n }),\n )\n\n // Add to `files` in context\n files.push({\n type: 'types',\n path: typesPath,\n })\n\n return {extractorResult, messages}\n}\n","import {ExtractorMessage} from '@microsoft/api-extractor'\nimport path from 'path'\nimport rimraf from 'rimraf'\n\nimport {BuildContext} from '../../core'\nimport {buildTypes} from './buildTypes'\nimport {DtsError} from './DtsError'\nimport {extractTypes} from './extractTypes'\nimport {DtsResult, DtsTask, DtsWatchTask} from './types'\n\n/**\n * - Build type definitions to a temporary directory using TypeScript compiler.\n * - Create a type definition bundle for each export entry.\n * - When done, remove the temporary directory.\n */\nexport async function doExtract(\n ctx: BuildContext,\n task: DtsTask | DtsWatchTask,\n): Promise<DtsResult> {\n const {config, cwd, files, logger, strict, ts} = ctx\n\n if (!ts.config || !ts.configPath) {\n return {type: 'dts', messages: [], results: []}\n }\n\n const {outDir, rootDir = cwd} = ts.config.options\n\n if (!outDir) {\n throw new Error('tsconfig.json is missing `compilerOptions.outDir`')\n }\n\n const tmpPath = path.resolve(outDir, '__tmp__')\n\n await buildTypes({cwd, logger, outDir: tmpPath, strict, tsconfig: ts.config})\n const messages: ExtractorMessage[] = []\n\n const results: {sourcePath: string; filePath: string}[] = []\n\n for (const entry of task.entries) {\n const exportPath = entry.exportPath === '.' ? './index' : entry.exportPath\n\n const sourceTypesPath = path.resolve(\n tmpPath,\n path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\\.ts$/, '.d.ts'),\n )\n\n const targetPath = path.resolve(cwd, entry.targetPath)\n const filePath = path.relative(outDir, targetPath)\n const result = await extractTypes({\n customTags: config?.extract?.customTags,\n cwd,\n distPath: outDir,\n exportPath,\n files,\n filePath: filePath,\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourceTypesPath: sourceTypesPath,\n tmpPath,\n tsconfigPath: path.resolve(cwd, ts.configPath || 'tsconfig.json'),\n })\n\n messages.push(...result.messages)\n\n if (result.messages.some((msg) => msg.logLevel === 'error')) {\n await rimraf(tmpPath)\n\n throw new DtsError('encountered errors when extracting types', result.messages)\n }\n\n results.push({sourcePath: path.resolve(cwd, entry.sourcePath), filePath: targetPath})\n }\n\n await rimraf(tmpPath)\n\n return {type: 'dts', messages, results}\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\n\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsTask} from './types'\n\n/** @internal */\nexport const dtsTask: TaskHandler<DtsTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `Build type definitions...`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.sourcePath)} ${chalk.gray('→')} ${chalk.yellow(entry.targetPath)}`,\n ].join(''),\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => {\n observer.error(err)\n })\n })\n },\n complete: (ctx, _task, result) => {\n printExtractMessages(ctx, result.messages)\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","import chalk from 'chalk'\nimport {Observable} from 'rxjs'\n\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsWatchTask} from './types'\n\n/** @internal */\nexport const dtsWatchTask: TaskHandler<DtsWatchTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `build type definitions`,\n ...task.entries.map(\n (entry) =>\n ` ${chalk.blue(entry.importId)}: ${entry.sourcePath} -> ${entry.targetPath}`,\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: (ctx, _task, result) => {\n const {logger} = ctx\n\n printExtractMessages(ctx, result.messages)\n\n logger.warn('watching typescript definitions is currently not supported')\n logger.log()\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n","import chalk from 'chalk'\nimport {writeFile} from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport path from 'path'\nimport {from} from 'rxjs'\n\nimport {BuildContext} from '../../core'\nimport {NodeReExportFromCJSTask, TaskHandler} from '../types'\n\n/** @internal */\nexport const nodeReexportCjsTask: TaskHandler<NodeReExportFromCJSTask> = {\n name: (_ctx, task) =>\n [\n `Re-export CommonJS module in ESM wrapper…`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.require)} ${chalk.gray('→')} ${chalk.yellow(entry.import)}`,\n ].join(''),\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return from(exec(ctx, task))\n },\n complete: () => {\n //\n },\n error: (_ctx, _task, err) => {\n // eslint-disable-next-line no-console\n console.error(err)\n },\n}\n\nasync function exec(ctx: BuildContext, task: NodeReExportFromCJSTask) {\n const {cwd} = ctx\n\n for (const entry of task.entries) {\n const sourcePath = path.resolve(cwd, entry.require)\n const targetPath = path.resolve(cwd, entry.import)\n const targetDir = path.dirname(targetPath)\n\n await mkdirp(targetDir)\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(sourcePath)\n\n let relativeImport = `./${path.relative(targetDir, sourcePath)}`\n\n // Strip leading \"./\" from relative import\n if (relativeImport.startsWith('./.')) {\n relativeImport = relativeImport.slice(2)\n }\n\n const code = compileESMWrapper(mod, relativeImport)\n\n await writeFile(targetPath, code, 'utf8')\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction compileESMWrapper(mod: any, relativeImport: string) {\n const keys = Object.keys(mod).filter((k) => k !== '__esModule')\n\n let code = `import cjs from '${relativeImport}';\\n`\n\n if (keys.length) {\n code += `\\n`\n code += keys\n .filter((k) => (mod.__esModule ? k !== 'default' : true))\n .map((k) => `export const ${k} = cjs.${k};\\n`)\n .join('')\n }\n\n code += `\\n`\n\n if (mod.__esModule) {\n // If there is no default export, we shouldn't add it as it'll be undefined\n if ('default' in mod) {\n code += `export default cjs.default;\\n`\n }\n } else {\n code += `export default cjs;\\n`\n }\n\n return code\n}\n","import alias from '@rollup/plugin-alias'\nimport {getBabelOutputPlugin} from '@rollup/plugin-babel'\nimport commonjs from '@rollup/plugin-commonjs'\nimport json from '@rollup/plugin-json'\nimport {nodeResolve} from '@rollup/plugin-node-resolve'\nimport replace from '@rollup/plugin-replace'\nimport terser from '@rollup/plugin-terser'\nimport path from 'path'\nimport {InputOptions, OutputOptions, Plugin} from 'rollup'\nimport esbuild from 'rollup-plugin-esbuild'\n\nimport {BuildContext, DEFAULT_BROWSERSLIST_QUERY, resolveConfigProperty} from '../../core'\nimport {RollupTask, RollupWatchTask} from '../types'\n\nexport interface RollupConfig {\n inputOptions: InputOptions\n outputOptions: OutputOptions\n}\n\n/** @internal */\nexport function resolveRollupConfig(\n ctx: BuildContext,\n buildTask: RollupTask | RollupWatchTask,\n): RollupConfig {\n const {format, runtime, target} = buildTask\n const {config, cwd, exports: _exports, extMap, external, distPath, logger, pkg, ts} = ctx\n const outputExt = extMap[pkg.type || 'commonjs'][format]\n const minify = config?.minify ?? false\n const outDir = path.relative(cwd, distPath)\n\n const pathAliases = Object.fromEntries(\n Object.entries(ts.config?.options.paths || {}).map(([key, val]) => {\n return [key, path.resolve(cwd, ts.config?.options.baseUrl || '.', val[0])]\n }),\n )\n\n const entries = buildTask.entries.map((entry) => {\n return {\n ...entry,\n name: path.relative(outDir, entry.output).replace(/\\.[^/.]+$/, ''),\n }\n }, {})\n\n const exportIds =\n _exports && Object.keys(_exports).map((exportPath) => path.join(pkg.name, exportPath))\n\n const sourcePaths = _exports && Object.values(_exports).map((e) => path.resolve(cwd, e.source))\n\n const replacements = Object.fromEntries(\n Object.entries(config?.define || {}).map(([key, val]) => [key, JSON.stringify(val)]),\n )\n\n const defaultPlugins = [\n replace({\n preventAssignment: true,\n values: {\n ...(pkg.name === '@sanity/pkg-utils'\n ? {...replacements}\n : {\n 'process.env.PKG_FILE_PATH': (arg) => {\n const sourcePath = './' + path.relative(cwd, arg)\n const entry = entries.find((e) => e.source === sourcePath)\n\n if (!entry) {\n // eslint-disable-next-line no-console\n console.error(`could not find source entry: ${sourcePath}`)\n\n return 'null'\n }\n\n return JSON.stringify(\n path.relative(cwd, path.resolve(outDir, entry.name + outputExt)),\n )\n },\n 'process.env.PKG_FORMAT': JSON.stringify(format),\n 'process.env.PKG_RUNTIME': JSON.stringify(runtime),\n 'process.env.PKG_VERSION': JSON.stringify(process.env.PKG_VERSION || pkg.version),\n ...replacements,\n }),\n },\n }),\n alias({\n entries: {...pathAliases},\n }),\n nodeResolve({\n // mainFields: ['module', 'jsnext', 'main'],\n browser: runtime === 'browser',\n // exportConditions: [runtime === 'node' ? 'node' : 'browser'],\n extensions: ['.cjs', '.mjs', '.js', '.jsx', '.json', '.node'],\n preferBuiltins: true, // runtime === 'node',\n }),\n commonjs(),\n json(),\n esbuild({\n jsx: config?.jsx ?? 'automatic',\n jsxFactory: config?.jsxFactory ?? 'createElement',\n jsxFragment: config?.jsxFragment ?? 'Fragment',\n jsxImportSource: config?.jsxImportSource ?? 'react',\n target,\n tsconfig: ctx.ts.configPath || 'tsconfig.json',\n }),\n getBabelOutputPlugin({\n babelrc: false,\n plugins: config?.babel?.plugins,\n presets: [\n [\n '@babel/preset-env',\n {targets: pkg.browserslist || DEFAULT_BROWSERSLIST_QUERY, modules: false},\n ],\n ],\n }),\n minify &&\n terser({\n compress: {\n // Needed until https://github.com/terser/terser/issues/1320 is fixed\n directives: false,\n },\n output: {\n comments: (_node, comment) => {\n const text = comment.value\n const type = comment.type\n\n // Check if this is a multiline comment\n if (type == 'comment2') {\n // Keep licensing comments\n return /@preserve|@license|@cc_on/i.test(text)\n }\n\n return false\n },\n },\n }),\n ].filter(Boolean) as Plugin[]\n\n const userPlugins = config?.rollup?.plugins\n\n const plugins = Array.isArray(userPlugins)\n ? defaultPlugins.concat(userPlugins)\n : resolveConfigProperty(config?.rollup?.plugins, defaultPlugins)\n\n return {\n inputOptions: {\n context: cwd,\n\n external: (id, importer) => {\n // Check if the id is a self-referencing import\n if (exportIds?.includes(id)) {\n return true\n }\n\n // Check if the id is a file path that points to an exported source file\n if (importer && (id.startsWith('.') || id.startsWith('/'))) {\n const idPath = path.resolve(path.dirname(importer), id)\n\n if (sourcePaths?.includes(idPath)) {\n logger.warn(\n `detected self-referencing import – treating as external: ${path.relative(\n cwd,\n idPath,\n )}`,\n )\n\n return true\n }\n }\n\n const idParts = id.split('/')\n\n const name = idParts[0].startsWith('@') ? `${idParts[0]}/${idParts[1]}` : idParts[0]\n\n if (name && external.includes(name)) {\n return true\n }\n\n return false\n },\n\n input: entries.reduce<{[entryAlias: string]: string}>((acc, entry) => {\n return {...acc, [entry.name]: entry.source}\n }, {}),\n\n plugins,\n\n treeshake: {\n propertyReadSideEffects: false,\n },\n },\n outputOptions: {\n chunkFileNames: () => {\n const parts = outputExt.split('.')\n\n if (parts.length === 3) {\n return `_chunks/[name]-[hash].${parts[2]}`\n }\n\n return `_chunks/[name]-[hash]${outputExt}`\n },\n compact: minify,\n dir: outDir,\n entryFileNames: () => {\n const parts = outputExt.split('.')\n\n if (parts.length === 3) {\n return `[name].${parts[2]}`\n }\n\n return `[name]${outputExt}`\n },\n esModule: true,\n format,\n interop: 'compat',\n minifyInternalExports: minify,\n sourcemap: config?.sourcemap ?? true,\n hoistTransitiveImports: false,\n },\n }\n}\n","import chalk from 'chalk'\nimport path from 'path'\nimport {rollup} from 'rollup'\nimport {Observable} from 'rxjs'\n\nimport {createConsoleSpy} from '../../consoleSpy'\nimport {BuildContext} from '../../core'\nimport {RollupTask, TaskHandler} from '../types'\nimport {resolveRollupConfig} from './resolveRollupConfig'\n\n/** @internal */\nexport const rollupTask: TaskHandler<RollupTask> = {\n name: (ctx, task) => {\n const bundleEntries = task.entries.filter((e) => e.path.includes('__$$bundle_'))\n const entries = task.entries.filter((e) => !e.path.includes('__$$bundle_'))\n\n const targetLines = task.target.length\n ? [` target:`, ...task.target.map((t) => ` - ${chalk.yellow(t)}`)]\n : []\n\n const bundlesLines = bundleEntries.length\n ? [\n ' bundles:',\n ...bundleEntries.map((e) =>\n [\n ` - `,\n `${chalk.yellow(e.source)} ${chalk.gray('→')} ${chalk.yellow(e.output)}`,\n ].join(''),\n ),\n ]\n : []\n\n const entriesLines = entries.length\n ? [\n ' entries:',\n ...entries.map((e) =>\n [\n ` - `,\n `${chalk.cyan(path.join(ctx.pkg.name, e.path))}: `,\n `${chalk.yellow(e.source)} ${chalk.gray('→')} ${chalk.yellow(e.output)}`,\n ].join(''),\n ),\n ]\n : []\n\n return [\n `Build javascript files...`,\n ` format: ${chalk.yellow(task.format)}`,\n ...targetLines,\n ...bundlesLines,\n ...entriesLines,\n ].join('\\n')\n },\n exec: (ctx, task) => {\n return new Observable((observer) => {\n execPromise(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: () => {\n //\n },\n error: (_ctx, _task, err) => {\n // eslint-disable-next-line no-console\n console.error(err)\n },\n}\n\nasync function execPromise(ctx: BuildContext, task: RollupTask) {\n const {distPath, files, logger} = ctx\n const outDir = path.relative(ctx.cwd, distPath)\n\n // Prevent rollup from printing directly to the console\n const consoleSpy = createConsoleSpy({\n onRestored: (messages) => {\n for (const msg of messages) {\n const text = String(msg.args[0])\n\n if (msg.code === 'CIRCULAR_DEPENDENCY') {\n continue // ignore\n }\n\n if (text.startsWith('Dynamic import can only')) {\n continue // ignore\n }\n\n if (text.startsWith('Sourcemap is likely to be incorrect')) {\n continue // ignore\n }\n\n if (msg.type === 'log') {\n logger.info(...msg.args)\n }\n\n if (msg.type === 'warn') {\n logger.warn(...msg.args)\n }\n\n if (msg.type === 'error') {\n logger.error(...msg.args)\n }\n }\n },\n })\n\n try {\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n // Create bundle\n const bundle = await rollup({\n ...inputOptions,\n onwarn(warning) {\n consoleSpy.messages.push({\n type: 'warn',\n code: warning.code,\n args: [warning.message],\n })\n },\n })\n\n // generate output specific code in-memory\n // you can call this function multiple times on the same bundle object\n const {output} = await bundle.generate(outputOptions)\n\n for (const chunkOrAsset of output) {\n if (chunkOrAsset.type === 'asset') {\n files.push({\n type: 'asset',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n } else {\n files.push({\n type: 'chunk',\n path: path.resolve(outDir, chunkOrAsset.fileName),\n })\n }\n }\n\n // or write the bundle to disk\n await bundle.write(outputOptions)\n\n // closes the bundle\n await bundle.close()\n\n // Restore console\n consoleSpy.restore()\n } catch (err) {\n // Restore console\n consoleSpy.restore()\n throw err\n }\n}\n","import chalk from 'chalk'\nimport path from 'path'\nimport {RollupWatcherEvent, RollupWatchOptions, watch as rollupWatch} from 'rollup'\nimport {Observable} from 'rxjs'\n\nimport {RollupWatchTask, TaskHandler} from '../types'\nimport {resolveRollupConfig} from './resolveRollupConfig'\n\n/** @internal */\nexport const rollupWatchTask: TaskHandler<RollupWatchTask, RollupWatcherEvent> = {\n name: (ctx, task) =>\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`,\n exec: (ctx, task) => {\n const {inputOptions, outputOptions} = resolveRollupConfig(ctx, task)\n\n return new Observable((observer) => {\n const watchOptions: RollupWatchOptions = {\n ...inputOptions,\n output: outputOptions,\n }\n\n const watcher = rollupWatch(watchOptions)\n\n watcher.on('event', (event) => {\n observer.next(event)\n })\n\n return () => {\n watcher.close()\n }\n })\n },\n complete: (ctx, task, event) => {\n const {logger} = ctx\n\n if (event.code === 'BUNDLE_END') {\n logger.success(\n `build javascript files (target ${task.target.join(' + ')}, format ${\n task.format\n })\\n ${task.entries\n .map((e) => `${chalk.blue(path.join(ctx.pkg.name, e.path))}: ${e.source} -> ${e.output}`)\n .join('\\n ')}`,\n )\n logger.log('')\n\n return\n }\n\n if (event.code === 'BUNDLE_START') {\n return\n }\n\n if (event.code === 'END') {\n return\n }\n\n if (event.code === 'ERROR') {\n logger.error(event.code, event)\n\n return\n }\n\n if (event.code === 'START') {\n return\n }\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof Error) {\n logger.log(err)\n }\n },\n}\n","import {dtsTask, dtsWatchTask} from './dts'\nimport {nodeReexportCjsTask} from './node/reexportCjsTask'\nimport {rollupTask, rollupWatchTask} from './rollup'\nimport {BuildTaskHandlers, WatchTaskHandlers} from './types'\n\nexport * from './dts'\nexport * from './rollup'\nexport * from './types'\n\n/** @internal */\nexport const buildTaskHandlers: BuildTaskHandlers = {\n 'build:dts': dtsTask,\n 'build:js': rollupTask,\n 'node:reexport-cjs': nodeReexportCjsTask,\n}\n\n/** @internal */\nexport const watchTaskHandlers: WatchTaskHandlers = {\n 'watch:dts': dtsWatchTask,\n 'watch:js': rollupWatchTask,\n}\n"],"names":["printExtractMessages","ctx","messages","cwd","logger","warnings","filter","msg","logLevel","length","log","sourceFilePath","path","relative","messageId","concat","chalk","cyan","yellow","sourceFileLine","default","sourceFileColumn","gray","text","join","errors","red","process","exit","printDiagnostic","options","diagnostic","file","start","line","character","ts","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","fileName","output","blue","code","category","DiagnosticCategory","Error","error","Warning","warn","Message","Suggestion","buildTypes","outDir","tsconfig","strict","compilerOptions","declaration","declarationDir","emitDeclarationOnly","noEmit","program","createProgram","fileNames","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","diagnostics","emitSkipped","diag","DtsError","constructor","_defineProperty","createApiExtractorConfig","distPath","exportPath","filePath","projectFolder","mainEntryPointFilePath","tsconfigPath","apiReport","enabled","reportFileName","compiler","tsconfigFilePath","docModel","apiJsonFilePath","resolve","dtsRollup","untrimmedFilePath","tsdocMetadata","createTSDocConfig","opts","customTags","tsDocBaseBuf","readFile","require","tsDocBaseConfig","parse","toString","tagDefinitions","map","t","tagName","name","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags","extractModuleBlocksFromTypes","_ref","tsOutDir","extractResult","compilerState","moduleBlocks","allProgramFiles","getSourceFiles","sourceFiles","sourceFile","includes","push","extractModuleBlocks","fileContent","ast","parser","typeScriptParser","body","node","type","print","LOG_LEVELS","info","off","getExtractMessagesConfig","rules","ruleToLogLevel","key","defaultLevel","r","compilerMessageReporting","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting","extractTypes","files","projectPath","sourceTypesPath","tmpPath","tsdocConfigFile","extractorConfig","ExtractorConfig","prepare","configObject","configObjectFullPath","packageJsonFullPath","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","handled","typesPath","typesBuf","fs","prettierConfig","prettier","resolveConfig","mkdirp","dirname","writeFile","format","filepath","doExtract","task","_a","_b","config","configPath","results","rootDir","entry","entries","sourcePath","replace","targetPath","result","extract","some","rimraf","dtsTask","_ctx","importId","exec","Observable","observer","then","next","complete","catch","err","_task","dtsWatchTask","nodeReexportCjsTask","import","from","console","targetDir","mod","relativeImport","startsWith","slice","compileESMWrapper","keys","Object","k","__esModule","resolveRollupConfig","buildTask","_ref2","_ref5","_ref6","_ref7","_ref8","_ref9","_c","_d","runtime","target","exports","_exports","extMap","external","pkg","outputExt","minify","pathAliases","fromEntries","paths","_ref3","val","baseUrl","exportIds","sourcePaths","values","e","source","replacements","define","_ref4","JSON","stringify","defaultPlugins","preventAssignment","arg","find","env","PKG_VERSION","version","alias","nodeResolve","browser","extensions","preferBuiltins","commonjs","json","esbuild","jsx","jsxFactory","jsxFragment","jsxImportSource","getBabelOutputPlugin","babelrc","plugins","babel","presets","targets","browserslist","DEFAULT_BROWSERSLIST_QUERY","modules","terser","compress","directives","comments","_node","comment","value","test","Boolean","userPlugins","rollup","Array","isArray","resolveConfigProperty","inputOptions","context","id","importer","idPath","idParts","split","input","reduce","acc","treeshake","propertyReadSideEffects","outputOptions","chunkFileNames","parts","compact","dir","entryFileNames","esModule","interop","minifyInternalExports","sourcemap","hoistTransitiveImports","rollupTask","bundleEntries","targetLines","bundlesLines","entriesLines","execPromise","consoleSpy","createConsoleSpy","onRestored","String","args","bundle","onwarn","warning","generate","chunkOrAsset","write","close","restore","rollupWatchTask","watchOptions","watcher","rollupWatch","on","event","success","buildTaskHandlers","watchTaskHandlers"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMgB,SAAAA,oBAAAA,CAAqBC,KAAmBC,QAAoC,EAAA;EACpF,MAAA;IAACC,GAAK;IAAAC;EAAU,CAAA,GAAAH,GAAA;EAEtB,MAAMI,WAAWH,QAAS,CAAAI,MAAA,CAAQC,GAAQ,IAAAA,GAAA,CAAIC,aAAa,SAAS,CAAA;EAEpE,IAAIH,SAASI,MAAQ,EAAA;IACnBL,MAAA,CAAOM,GAAI,CAAA,CAAA;EACb;EAEA,KAAA,MAAWH,OAAOF,QAAU,EAAA;IAC1B,MAAMM,iBAAiBJ,GAAI,CAAAI,cAAA,IAAkBC,aAAAA,CAAAA,QAAKC,QAAS,CAAAV,GAAA,EAAKI,IAAII,cAAc,CAAA;IAE9E,IAAAJ,GAAA,CAAIO,cAAc,QAAU,EAAA;MAI9B;IACF;IAEOV,MAAA,CAAAM,GAAA,CACL,IAAAK,MAAA,CACKC,cAAAA,CAAAA,OAAA,CAAMC,IAAK,CAAAN,cAAA,IAAkB,GAAG,CAAC,OAAAI,MAAA,CAChCC,cAAAA,CAAAA,OAAM,CAAAE,MAAA,CAAOX,GAAI,CAAAY,cAAc,CAAC,OAAAJ,MAAA,CAAIC,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAOX,GAAI,CAAAc,gBAAgB,CAAC,SAAAN,MAAA,CACpEC,cAAAA,CAAAA,OAAM,CAAAE,MAAA,CAAO,SAAS,CAAC,OAAAH,MAAA,CAAIC,cAAAA,CAAAA,OAAM,CAAAM,IAAA,CAAKf,GAAI,CAAAO,SAAS,CAAC,SAC1DP,GAAI,CAAAgB,IAAA,EACJ,IAAA,CACF,CAAEC,KAAK,EAAE,CAAA,CACX;EACF;EAEA,MAAMC,SAA6BvB,QAAS,CAAAI,MAAA,CAAQC,GAAQ,IAAAA,GAAA,CAAIC,aAAa,OAAO,CAAA;EAEpF,IAAI,CAACH,QAAA,CAASI,MAAU,IAAAgB,MAAA,CAAOhB,MAAQ,EAAA;IACrCL,MAAA,CAAOM,IAAI,EAAE,CAAA;EACf;EAEA,KAAA,MAAWH,OAAOkB,MAAQ,EAAA;IACxB,MAAMd,iBAAiBJ,GAAI,CAAAI,cAAA,IAAkBC,aAAAA,CAAAA,QAAKC,QAAS,CAAAV,GAAA,EAAKI,IAAII,cAAc,CAAA;IAE3EP,MAAA,CAAAM,GAAA,CACL,IAAAK,MAAA,CACKC,cAAAA,CAAAA,OAAA,CAAMC,IAAK,CAAAN,cAAA,IAAkB,GAAG,CAAC,OAAAI,MAAA,CAChCC,cAAAA,CAAAA,OAAM,CAAAE,MAAA,CAAOX,GAAI,CAAAY,cAAc,CAAC,OAAAJ,MAAA,CAAIC,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAOX,GAAI,CAAAc,gBAAgB,CAAC,SAAAN,MAAA,CACpEC,cAAAA,CAAAA,OAAM,CAAAU,GAAA,CAAI,OAAO,CAAC,OAAAX,MAAA,CAAIC,cAAAA,CAAAA,OAAM,CAAAM,IAAA,CAAKf,GAAI,CAAAO,SAAS,CAAC,SACrDP,GAAI,CAAAgB,IAAA,EACJ,IAAA,CACF,CAAEC,KAAK,EAAE,CAAA,CACX;EACF;EAEA,IAAIC,OAAOhB,MAAQ,EAAA;IACjBkB,OAAA,CAAQC,KAAK,CAAC,CAAA;EAChB;AACF;ACrDO,SAASC,gBAAgBC,OAIvB,EAAA;EACP,MAAM;IAAC3B,GAAA;IAAKC,MAAQ;IAAA2B;EAAA,CAAc,GAAAD,OAAA;EAE9B,IAAAC,UAAA,CAAWC,IAAQ,IAAAD,UAAA,CAAWE,KAAO,EAAA;IACjC,MAAA;MAACC;MAAMC;IAAS,CAAA,GAAIC,oBAAGC,6BAA8B,CAAAN,UAAA,CAAWC,IAAM,EAAAD,UAAA,CAAWE,KAAK,CAAA;IAC5F,MAAMK,OAAU,GAAAF,WAAAA,CAAAA,OAAA,CAAGG,4BAA6B,CAAAR,UAAA,CAAWS,aAAa,IAAI,CAAA;IAE5E,MAAMR,OAAOpB,aAAAA,CAAAA,OAAK,CAAAC,QAAA,CAASV,GAAK,EAAA4B,UAAA,CAAWC,KAAKS,QAAQ,CAAA;IAExD,MAAMC,MAAS,GAAA,IAAA3B,MAAA,CACVC,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAOc,IAAI,CAAC,OAAAjB,MAAA,CAAIC,cAAM,CAAAI,OAAA,CAAAuB,IAAA,CAAKT,IAAO,GAAA,CAAC,CAAC,OAAAnB,MAAA,CAAIC,sBAAA,CAAM2B,IAAK,CAAAR,SAAA,GAAY,CAAC,CAAC,aAAApB,MAAA,CACvEC,uBAAMM,IAAK,MAAAP,MAAA,CAAKgB,WAAWa,IAAI,MAAG,CAAC,OAAA7B,MAAA,CAAIuB,OAAO,EACnD,CAAEd,KAAK,EAAE,CAAA;IAET,IAAIO,UAAW,CAAAc,QAAA,KAAaT,mBAAG,CAAAU,kBAAA,CAAmBC,KAAO,EAAA;MACvD3C,MAAA,CAAO4C,MAAMN,MAAM,CAAA;IACrB;IAEA,IAAIX,UAAW,CAAAc,QAAA,KAAaT,mBAAG,CAAAU,kBAAA,CAAmBG,OAAS,EAAA;MACzD7C,MAAA,CAAO8C,KAAKR,MAAM,CAAA;IACpB;IAEA,IAAIX,UAAW,CAAAc,QAAA,KAAaT,mBAAG,CAAAU,kBAAA,CAAmBK,OAAS,EAAA;MACzD/C,MAAA,CAAOM,IAAIgC,MAAM,CAAA;IACnB;IAEA,IAAIX,UAAW,CAAAc,QAAA,KAAaT,mBAAG,CAAAU,kBAAA,CAAmBM,UAAY,EAAA;MAC5DhD,MAAA,CAAOM,IAAIgC,MAAM,CAAA;IACnB;EAAA,CACK,MAAA;IACLtC,MAAA,CAAOM,IAAI0B,mBAAG,CAAAG,4BAAA,CAA6BR,UAAW,CAAAS,WAAA,EAAa,IAAI,CAAC,CAAA;EAC1E;AACF;ACpCA,eAAsBa,WAAWvB,OAMf,EAAA;EAChB,MAAM;IAAC3B,GAAK;IAAAC,MAAA;IAAQkD;IAAQC,QAAU;IAAAC,MAAA,GAAS;EAAS,CAAA,GAAA1B,OAAA;EAExD,MAAM2B,eAAsC,GAAA;IAC1C,GAAGF,QAAS,CAAAzB,OAAA;IACZ4B,WAAa,EAAA,IAAA;IACbC,cAAgB,EAAAL,MAAA;IAChBM,mBAAqB,EAAA,IAAA;IACrBC,MAAQ,EAAA,KAAA;IACRP;EAAA,CACF;EAEA,MAAMQ,OAAU,GAAA1B,WAAAA,CAAAA,OAAA,CAAG2B,aAAc,CAAAR,QAAA,CAASS,WAAWP,eAAe,CAAA;EAE9D,MAAAQ,UAAA,GAAaH,QAAQI,IAAK,EAAA;EAEhC,MAAMC,iBAAiB/B,WAAG,CAAAhB,OAAA,CAAAgD,qBAAA,CAAsBN,OAAO,CAAE,CAAA/C,MAAA,CAAOkD,WAAWI,WAAW,CAAA;EAEtF,KAAA,MAAWtC,cAAcoC,cAAgB,EAAA;IACvCtC,eAAA,CAAgB;MAAC1B,GAAA;MAAKC,MAAQ;MAAA2B;IAAW,CAAA,CAAA;EAC3C;EAEA,IAAIkC,WAAWK,WAAa,EAAA;IACpB,MAAA7C,MAAA,GAAS0C,eAAe7D,MAAO,CAACiE,QAASA,IAAK,CAAA1B,QAAA,KAAaT,WAAG,CAAAhB,OAAA,CAAA0B,kBAAA,CAAmBC,KAAK,CAAA;IAE5F,IAAItB,OAAOhB,MAAQ,EAAA;MACjB,IAAI+C,MAAQ,EAAA;QACJ,MAAA,IAAIT,MAAM,0CAA0C,CAAA;MAC5D;IACF;EACF;AACF;ACxCO,MAAMyB,iBAAiBzB,KAAM,CAAA;EAGlC0B,WAAAA,CAAYnC,SAAiBpC,QAA8B,EAAA;IACzD,KAAA,CAAMoC,OAAO,CAAA;IAAAoC,eAAA;IACb,IAAA,CAAKxE,QAAW,GAAAA,QAAA;EAClB;AACF;ACPO,SAASyE,yBAAyB7C,OAQzB,EAAA;EACR,MAAA;IACJ8C,QAAA;IACAC,UAAA;IACAC,QAAA;IACA5E,QAAA;IACA6E,aAAA;IACAC,sBAAA;IACAC;EACE,CAAA,GAAAnD,OAAA;EAEG,OAAA;IACLoD,SAAW,EAAA;MACTC,OAAS,EAAA,KAAA;MACTC,cAAgB,EAAA;IAClB,CAAA;IAAA;IAEAC,QAAU,EAAA;MACRC,gBAAkB,EAAAL;IACpB,CAAA;IACAM,QAAU,EAAA;MACRJ,OAAS,EAAA,KAAA;MACTK,iBAAiB5E,aAAK,CAAAQ,OAAA,CAAAqE,OAAA,CAAQb,QAAU,KAAA7D,MAAA,CAAG8D,UAAU,cAAW;IAClE,CAAA;IACAa,SAAW,EAAA;MACTP,OAAS,EAAA,IAAA;MACTQ,iBAAmB,EAAA/E,aAAA,CAAAQ,OAAA,CAAKqE,OAAQ,CAAAb,QAAA,EAAUE,QAAQ;MAAA;MAAA;IAGpD,CAAA;;IACAc,aAAe,EAAA;MACbT,OAAS,EAAA;IACX,CAAA;IACAjF,QAAA;IACA8E,sBAAA;IACAD;EAAA,CACF;AACF;ACpCA,eAAsBc,kBAAkBC,IAEC,EAAA;EACjC,MAAA;IAACC;EAAc,CAAA,GAAAD,IAAA;EAEjB,IAAAC,UAAA,CAAWtF,WAAW,CAAG,EAAA;IACpB,OAAA,KAAA,CAAA;EACT;EAEA,MAAMuF,eAAe,MAAMC,EAAA,CAAAA,QAAA,CACzBC,OAAA,CAAQT,QAAQ,kDAAkD,CAAA,CACpE;EAIA,MAAMU,eAAkB,GAAAC,WAAA,CAAAA,KAAA,CAAMJ,YAAa,CAAAK,QAAA,CAAU,CAAA,CAAA;EAGrD,MAAMC,cAAkB,GAAA,CAAAH,eAAA,CAAgBG,cAAkB,IAAA,EAAI,EAAAvF,MAAA,CAC5DgF,UAAA,CAAWQ,GAAI,CAACC,CAAO,KAAA;IACrBC,OAAA,MAAA1F,MAAA,CAAayF,CAAA,CAAEE,IAAI,CAAA;IACnBC,YAAYH,CAAE,CAAAG,UAAA;IACdC,eAAeJ,CAAE,CAAAI;EAAA,CACjB,CAAA,CAAA,CACJ;EAIA,MAAMC,cAAiB,GAAA;IAAC,GAAGV,eAAA,CAAgBU;EAAc,CAAA;EAEzD,KAAA,MAAWC,aAAaf,UAAY,EAAA;IAClCc,cAAA,KAAA9F,MAAA,CAAmB+F,SAAA,CAAUJ,IAAI,EAAM,GAAA,IAAA;EACzC;EAEA,OAAOK,WAAAA,CAAAA,gBAAgBC,cAAe,CAAA;IACpC,GAAGb,eAAA;IACHc,cAAgB,EAAA,KAAA;IAChBX,cAAA;IACAO;EAAA,CACD,CAAA;AACH;AC1CA,eAAsBK,4BAA6BA,CAAAC,IAAA,EAM7B;EAAA,IAN6B;IACjDC,QAAA;IACAC;EACF,CAGsB,GAAAF,IAAA;EACd,MAAArD,OAAA,GAAUuD,cAAcC,aAAc,CAAAxD,OAAA;EAC5C,MAAMyD,eAAyB,EAAC;EAGhC,MAAMC,eAAkB,GAAA,CAAC,GAAG1D,OAAA,CAAQ2D,eAAgB,CAAA,CAAA;EAG9C,MAAAC,WAAA,GAAcF,gBAAgBlH,MAAO,CAACqH,cAAeA,UAAW,CAAAlF,QAAA,CAASmF,QAAS,CAAAR,QAAQ,CAAC,CAAA;EAEjG,KAAA,MAAWO,cAAcD,WAAa,EAAA;IACpC,IAAIC,UAAW,CAAApG,IAAA,CAAKqG,QAAS,CAAA,gBAAgB,CAAG,EAAA;MAC9CL,YAAA,CAAaM,IAAK,CAAA,GAAGC,mBAAoB,CAAAH,UAAA,CAAWpG,IAAI,CAAC,CAAA;IAC3D;EACF;EAEO,OAAAgG,YAAA;AACT;AAGO,SAASO,oBAAoBC,WAA+B,EAAA;EAC3D,MAAAC,GAAA,GAAM5B,aAAM2B,WAAa,EAAA;IAC7BE,MAAQ,EAAAC,yBAAA,CAAA9G;EAAA,CACT,CAAA;EAED,OAAO4G,IAAIlE,OAAQ,CAAAqE,IAAA,CAChB7H,MAAO,CAAC8H,QAASA,IAAK,CAAAC,IAAA,KAAS,qBAAqB,CAAA,CACpD9B,IAAK6B,IAAA,IAASE,MAAM,CAAAA,KAAA,CAAAF,IAAI,EAAExF,IAAI,CAAA;AACnC;ACxCA,MAAM2F,UAAsD,GAAA;EAC1DvF,KAAO,EAAA,OAAA;EACPwF,IAAM,EAAA,MAAA;EACNC,GAAK,EAAA,MAAA;EACLvF,IAAM,EAAA;AACR,CAAA;AAGO,SAASwF,yBAAyB5G,OAEZ,EAAA;EACrB,MAAA;IAAC6G;EAAS,CAAA,GAAA7G,OAAA;EAEP,SAAA8G,cAAAA,CACPC,KACAC,YACA,EAAA;IACA,MAAMC,IAAIJ,KAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAAE,GAAA,CAAA;IAElB,OAAQE,CAAI,GAAAR,UAAA,CAAWQ,CAAC,CAAA,GAAID,YAAgB,IAAA,SAAA;EAC9C;EAEO,OAAA;IACLE,wBAA0B,EAAA;MACxB5H,OAAS,EAAA;QACPZ,QAAU,EAAA;MACZ;IACF,CAAA;IAEAyI,yBAA2B,EAAA;MACzB7H,OAAS,EAAA;QACPZ,QAAU,EAAA,SAAA;QACV0I,kBAAoB,EAAA;MACtB,CAAA;MAEA,qBAAuB,EAAA;QACrB1I,QAAA,EAAUoI,cAAe,CAAA,qBAAA,EAAuB,OAA4B,CAAA;QAC5EM,kBAAoB,EAAA;MACtB,CAAA;MAEA,8BAAgC,EAAA;QAC9B1I,QAAA,EAAUoI,cAAe,CAAA,8BAAA,EAAgC,OAA4B,CAAA;QACrFM,kBAAoB,EAAA;MACtB,CAAA;MAEA,gCAAkC,EAAA;QAChC1I,QAAA,EAAUoI,eAAe,gCAAgC,CAAA;QACzDM,kBAAoB,EAAA;MACtB,CAAA;MAEA,wBAA0B,EAAA;QACxB1I,QAAA,EAAUoI,cAAe,CAAA,wBAAA,EAA0B,OAA4B,CAAA;QAC/EM,kBAAoB,EAAA;MACtB,CAAA;MAEA,0BAA4B,EAAA;QAC1B1I,QAAU,EAAA,MAAA;QACV0I,kBAAoB,EAAA;MACtB;IACF,CAAA;IAEAC,qBAAuB,EAAA;MACrB/H,OAAS,EAAA;QACPZ,QAAU,EAAA,SAAA;QACV0I,kBAAoB,EAAA;MACtB,CAAA;MAEA,+BAAiC,EAAA;QAC/B1I,QAAA,EAAUoI,cAAe,CAAA,+BAAA,EAAiC,SAA8B,CAAA;QACxFM,kBAAoB,EAAA;MACtB,CAAA;MAEA,qBAAuB,EAAA;QACrB1I,QAAA,EAAUoI,cAAe,CAAA,qBAAA,EAAuB,OAA4B,CAAA;QAC5EM,kBAAoB,EAAA;MACtB,CAAA;MAEA,uBAAyB,EAAA;QACvB1I,QAAA,EAAUoI,cAAe,CAAA,uBAAA,EAAyB,MAA2B,CAAA;QAC7EM,kBAAoB,EAAA;MACtB;IACF;EAAA,CACF;AACF;ACtEA,eAAsBE,aAAatH,OAY2C,EAAA;EACtE,MAAA;IACJiE,UAAA;IACAnB,QAAA;IACAC,UAAA;IACAwE,KAAA;IACAvE,QAAA;IACAwE,WAAA;IACAX,KAAA;IACAY,eAAA;IACAC,OAAA;IACAvE;EACE,CAAA,GAAAnD,OAAA;EAEE,MAAA2H,eAAA,GAAkB,MAAM5D,iBAAkB,CAAA;IAC9CE,UAAA,EAAYA,cAAc;EAAC,CAC5B,CAAA;EAEK,MAAA2D,eAAA,GAAmCC,6BAAgBC,OAAQ,CAAA;IAC/DC,cAAclF,wBAAyB,CAAA;MACrCC,QAAA;MACAC,UAAA;MACAC,QAAA;MACA5E,QAAU,EAAAwI,wBAAA,CAAyB;QAACC;OAAM,CAAA;MAC1C5D,aAAe,EAAAuE,WAAA;MACftE,sBAAwB,EAAAuE,eAAA;MACxBtE;IAAA,CACD,CAAA;IACD6E,oBAAsB,EAAA,KAAA,CAAA;IACtBL,eAAA;IACAM,mBAAqB,EAAAnJ,aAAA,CAAAQ,OAAA,CAAKqE,OAAQ,CAAA6D,WAAA,EAAa,cAAc;EAAA,CAC9D,CAAA;EAED,MAAMpJ,WAA+B,EAAC;EAGhC,MAAA8J,eAAA,GAAkBC,YAAAA,CAAAA,SAAU,CAAAC,MAAA,CAAOR,eAAiB,EAAA;IAAA;IAExDS,UAAY,EAAA,IAAA;IAAA;IAEZC,mBAAqB,EAAA,IAAA;IAAA;IAErBC,gBAAgB/H,OAA2B,EAAA;MACzCpC,QAAA,CAAS2H,KAAKvF,OAAO,CAAA;MACrBA,OAAA,CAAQgI,OAAU,GAAA,IAAA;IACpB;EAAA,CACD,CAAA;EAED,MAAMC,SAAY,GAAA3J,aAAA,CAAAQ,OAAA,CAAKqE,OAAQ,CAAAb,QAAA,EAAUE,QAAQ,CAAA;EACjD,MAAM0F,QAAW,GAAA,MAAMC,WAAAA,CAAAA,OAAG,CAAAxE,QAAA,CAASsE,SAAS,CAAA;EAC5C,MAAMG,cAAiB,GAAA,MAAMC,iBAAAA,CAAAA,OAAS,CAAAC,aAAA,CAAcL,SAAS,CAAA;EAE7D,MAAMM,MAAO,CAAAA,MAAA,CAAAjK,aAAA,CAAAQ,OAAA,CAAK0J,OAAQ,CAAAP,SAAS,CAAC,CAAA;EAE9B,MAAAhD,YAAA,GAAe,MAAML,4BAA6B,CAAA;IACtDG,aAAe,EAAA2C,eAAA;IACf5C,QAAU,EAAAoC;EAAA,CACX,CAAA;EAEK,MAAA5G,IAAA,GAAO,CAAC4H,QAAS,CAAAnE,QAAA,CAAA,GAAY,GAAGkB,YAAY,CAAE,CAAA/F,IAAA,CAAK,MAAM,CAAA;EAE/D,MAAMiJ,WAAG,CAAArJ,OAAA,CAAA2J,SAAA,CACPR,SAAA,EACA,MAAMI,iBAAS,CAAAvJ,OAAA,CAAA4J,MAAA,CAAOpI,IAAM,EAAA;IAC1B,GAAG8H,cAAA;IACHO,QAAU,EAAAV;EAAA,CACX,CAAA,CACH;EAGAlB,KAAA,CAAMxB,IAAK,CAAA;IACTQ,IAAM,EAAA,OAAA;IACNzH,IAAM,EAAA2J;EAAA,CACP,CAAA;EAEM,OAAA;IAACP;IAAiB9J;GAAQ;AACnC;AC1FsB,eAAAgL,SAAAA,CACpBjL,KACAkL,IACoB,EAAA;EAlBtB,IAAAC,EAAA,EAAAC,EAAA;EAmBE,MAAM;IAACC,MAAQ;IAAAnL,GAAA;IAAKkJ;IAAOjJ,MAAQ;IAAAoD,MAAA;IAAQpB;EAAM,CAAA,GAAAnC,GAAA;EAEjD,IAAI,CAACmC,EAAA,CAAGkJ,MAAU,IAAA,CAAClJ,GAAGmJ,UAAY,EAAA;IACzB,OAAA;MAAClD,MAAM,KAAO;MAAAnI,QAAA,EAAU,EAAI;MAAAsL,OAAA,EAAS;KAAE;EAChD;EAEA,MAAM;IAAClI,MAAQ;IAAAmI,OAAA,GAAUtL;EAAG,CAAA,GAAIiC,GAAGkJ,MAAO,CAAAxJ,OAAA;EAE1C,IAAI,CAACwB,MAAQ,EAAA;IACL,MAAA,IAAIP,MAAM,mDAAmD,CAAA;EACrE;EAEA,MAAMyG,OAAU,GAAA5I,aAAA,CAAAQ,OAAA,CAAKqE,OAAQ,CAAAnC,MAAA,EAAQ,SAAS,CAAA;EAExC,MAAAD,UAAA,CAAW;IAAClD,GAAA;IAAKC,MAAQ;IAAAkD,MAAA,EAAQkG;IAAShG,MAAQ;IAAAD,QAAA,EAAUnB,EAAG,CAAAkJ;EAAO,CAAA,CAAA;EAC5E,MAAMpL,WAA+B,EAAC;EAEtC,MAAMsL,UAAoD,EAAC;EAEhD,KAAA,MAAAE,KAAA,IAASP,KAAKQ,OAAS,EAAA;IAChC,MAAM9G,UAAa,GAAA6G,KAAA,CAAM7G,UAAe,KAAA,GAAA,GAAM,YAAY6G,KAAM,CAAA7G,UAAA;IAEhE,MAAM0E,kBAAkB3I,aAAAA,CAAAA,OAAK,CAAA6E,OAAA,CAC3B+D,OAAA,EACA5I,aAAAA,CAAAA,OAAK,CAAAC,QAAA,CAAS4K,OAAS,EAAA7K,aAAAA,CAAAA,OAAA,CAAK6E,OAAQ,CAAAtF,GAAA,EAAKuL,KAAM,CAAAE,UAAU,CAAC,CAAA,CAAEC,OAAQ,CAAA,OAAA,EAAS,OAAO,CAAA,CACtF;IAEA,MAAMC,UAAa,GAAAlL,aAAAA,CAAAA,OAAA,CAAK6E,OAAQ,CAAAtF,GAAA,EAAKuL,MAAMI,UAAU,CAAA;IACrD,MAAMhH,QAAW,GAAAlE,aAAA,CAAAQ,OAAA,CAAKP,QAAS,CAAAyC,MAAA,EAAQwI,UAAU,CAAA;IAC3C,MAAAC,MAAA,GAAS,MAAM3C,YAAa,CAAA;MAChCrD,UAAA,EAAA,CAAYqF,EAAQ,GAAAE,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAU,OAAA,KAAR,IAAiB,GAAA,KAAA,CAAA,GAAAZ,EAAA,CAAArF,UAAA;MAC7B5F,GAAA;MACAyE,QAAU,EAAAtB,MAAA;MACVuB,UAAA;MACAwE,KAAA;MACAvE,QAAA;MACAwE,WAAa,EAAAnJ,GAAA;MACbwI,KAAA,EAAA,CAAO0C,EAAQ,GAAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAU,OAAA,KAAR,IAAiB,GAAA,KAAA,CAAA,GAAAX,EAAA,CAAA1C,KAAA;MACxBY,eAAA;MACAC,OAAA;MACAvE,cAAcrE,aAAK,CAAAQ,OAAA,CAAAqE,OAAA,CAAQtF,GAAK,EAAAiC,EAAA,CAAGmJ,cAAc,eAAe;IAAA,CACjE,CAAA;IAEQrL,QAAA,CAAA2H,IAAA,CAAK,GAAGkE,MAAA,CAAO7L,QAAQ,CAAA;IAE5B,IAAA6L,MAAA,CAAO7L,SAAS+L,IAAK,CAAC1L,OAAQA,GAAI,CAAAC,QAAA,KAAa,OAAO,CAAG,EAAA;MAC3D,MAAM0L,eAAAA,CAAAA,QAAO1C,OAAO,CAAA;MAEpB,MAAM,IAAIhF,QAAA,CAAS,0CAA4C,EAAAuH,MAAA,CAAO7L,QAAQ,CAAA;IAChF;IAEQsL,OAAA,CAAA3D,IAAA,CAAK;MAAC+D,UAAA,EAAYhL,aAAK,CAAAQ,OAAA,CAAAqE,OAAA,CAAQtF,GAAK,EAAAuL,KAAA,CAAME,UAAU,CAAA;MAAG9G,QAAU,EAAAgH;IAAW,CAAA,CAAA;EACtF;EAEA,MAAMI,eAAAA,CAAAA,QAAO1C,OAAO,CAAA;EAEpB,OAAO;IAACnB,IAAA,EAAM,KAAO;IAAAnI,QAAA;IAAUsL;EAAO,CAAA;AACxC;AClEO,MAAMW,OAA2C,GAAA;EACtDzF,IAAA,EAAMA,CAAC0F,IAAA,EAAMjB,IACX,KAAA,4CAGE,GAAGA,KAAKQ,OAAQ,CAAApF,GAAA,CAAKmF,KACnB,IAAA,UAAA3K,MAAA,CACWC,cAAAA,CAAAA,OAAA,CAAMC,IAAK,CAAAyK,KAAA,CAAMW,QAAQ,CAAC,YAAAtL,MAAA,CAChCC,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAOwK,KAAM,CAAAE,UAAU,CAAC,OAAA7K,MAAA,CAAIC,cAAA,CAAAI,OAAA,CAAME,IAAK,CAAA,QAAG,CAAC,OAAAP,MAAA,CAAIC,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAAwK,KAAA,CAAMI,UAAU,CAAC,EACxF,CAAEtK,KAAK,EAAE,CACX,CAAA,CACF,CAAEA,KAAK,IAAI,CAAA;EACb8K,IAAA,EAAMA,CAACrM,GAAA,EAAKkL,IAAS,KAAA;IACZ,OAAA,IAAIoB,IAAAA,CAAAA,UAAW,CAACC,QAAa,IAAA;MAClCtB,SAAA,CAAUjL,GAAK,EAAAkL,IAAI,CAChB,CAAAsB,IAAA,CAAMV,MAAW,IAAA;QAChBS,QAAA,CAASE,KAAKX,MAAM,CAAA;QACpBS,QAAA,CAASG,QAAS,CAAA,CAAA;MAAA,CACnB,CAAA,CACAC,KAAM,CAACC,GAAQ,IAAA;QACdL,QAAA,CAASxJ,MAAM6J,GAAG,CAAA;MAAA,CACnB,CAAA;IAAA,CACJ,CAAA;EACH,CAAA;EACAF,QAAU,EAAAA,CAAC1M,GAAK,EAAA6M,KAAA,EAAOf,MAAW,KAAA;IACX/L,oBAAA,CAAAC,GAAA,EAAK8L,OAAO7L,QAAQ,CAAA;EAC3C,CAAA;EACA8C,KAAO,EAAAA,CAAC/C,GAAK,EAAA6M,KAAA,EAAOD,GAAQ,KAAA;IACpB,MAAA;MAACzM;IAAU,CAAA,GAAAH,GAAA;IAEjB,IAAI4M,eAAerI,QAAU,EAAA;MACNxE,oBAAA,CAAAC,GAAA,EAAK4M,IAAI3M,QAAQ,CAAA;IAAA,CACxC,MAAA,IAAW2M,eAAe9J,KAAO,EAAA;MAC/B3C,MAAA,CAAO4C,MAAM6J,GAAG,CAAA;IAClB;EACF;AACF,CAAA;ACpCO,MAAME,YAAqD,GAAA;EAChErG,IAAA,EAAMA,CAAC0F,IAAA,EAAMjB,IACX,KAAA,2BAEE,GAAGA,KAAKQ,OAAQ,CAAApF,GAAA,CACbmF,KAAA,cAAA3K,MAAA,CACWC,cAAAA,CAAAA,OAAA,CAAM2B,IAAK,CAAA+I,KAAA,CAAMW,QAAQ,CAAC,QAAAtL,MAAA,CAAK2K,KAAA,CAAME,UAAU,UAAA7K,MAAA,CAAO2K,MAAMI,UAAU,CACpF,CAAA,CACF,CAAEtK,KAAK,IAAI,CAAA;EACb8K,IAAA,EAAMA,CAACrM,GAAA,EAAKkL,IAAS,KAAA;IACZ,OAAA,IAAIoB,IAAAA,CAAAA,UAAW,CAACC,QAAa,IAAA;MAClCtB,SAAA,CAAUjL,GAAK,EAAAkL,IAAI,CAChB,CAAAsB,IAAA,CAAMV,MAAW,IAAA;QAChBS,QAAA,CAASE,KAAKX,MAAM,CAAA;QACpBS,QAAA,CAASG,QAAS,CAAA,CAAA;MAAA,CACnB,EACAC,KAAM,CAACC,OAAQL,QAAS,CAAAxJ,KAAA,CAAM6J,GAAG,CAAC,CAAA;IAAA,CACtC,CAAA;EACH,CAAA;EACAF,QAAU,EAAAA,CAAC1M,GAAK,EAAA6M,KAAA,EAAOf,MAAW,KAAA;IAC1B,MAAA;MAAC3L;IAAU,CAAA,GAAAH,GAAA;IAEID,oBAAA,CAAAC,GAAA,EAAK8L,OAAO7L,QAAQ,CAAA;IAEzCE,MAAA,CAAO8C,KAAK,4DAA4D,CAAA;IACxE9C,MAAA,CAAOM,GAAI,CAAA,CAAA;EACb,CAAA;EACAsC,KAAO,EAAAA,CAAC/C,GAAK,EAAA6M,KAAA,EAAOD,GAAQ,KAAA;IACpB,MAAA;MAACzM;IAAU,CAAA,GAAAH,GAAA;IAEjB,IAAI4M,eAAerI,QAAU,EAAA;MACNxE,oBAAA,CAAAC,GAAA,EAAK4M,IAAI3M,QAAQ,CAAA;IAAA,CACxC,MAAA,IAAW2M,eAAe9J,KAAO,EAAA;MAC/B3C,MAAA,CAAO4C,MAAM6J,GAAG,CAAA;IAClB;EACF;AACF,CAAA;ACpCO,MAAMG,mBAA4D,GAAA;EACvEtG,IAAA,EAAMA,CAAC0F,IAAA,EAAMjB,IACX,KAAA,iEAGE,GAAGA,KAAKQ,OAAQ,CAAApF,GAAA,CAAKmF,KACnB,IAAA,UAAA3K,MAAA,CACWC,cAAAA,CAAAA,OAAA,CAAMC,IAAK,CAAAyK,KAAA,CAAMW,QAAQ,CAAC,YAAAtL,MAAA,CAChCC,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAOwK,KAAM,CAAAxF,OAAO,CAAC,OAAAnF,MAAA,CAAIC,cAAA,CAAAI,OAAA,CAAME,IAAK,CAAA,QAAG,CAAC,OAAAP,MAAA,CAAIC,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAAwK,KAAA,CAAMuB,MAAM,CAAC,EACjF,CAAEzL,KAAK,EAAE,CACX,CAAA,CACF,CAAEA,KAAK,IAAI,CAAA;EACb8K,IAAA,EAAMA,CAACrM,GAAA,EAAKkL,IAAS,KAAA;IACnB,OAAO+B,IAAK,CAAAA,IAAA,CAAAZ,IAAA,CAAKrM,GAAK,EAAAkL,IAAI,CAAC,CAAA;EAC7B,CAAA;EACAwB,UAAUA,CAAA,KAAM,CAEhB,CAAA;EACA3J,KAAO,EAAAA,CAACoJ,IAAM,EAAAU,KAAA,EAAOD,GAAQ,KAAA;IAE3BM,OAAA,CAAQnK,MAAM6J,GAAG,CAAA;EACnB;AACF,CAAA;AAEA,eAAeP,IAAAA,CAAKrM,KAAmBkL,IAA+B,EAAA;EAC9D,MAAA;IAAChL;EAAO,CAAA,GAAAF,GAAA;EAEH,KAAA,MAAAyL,KAAA,IAASP,KAAKQ,OAAS,EAAA;IAChC,MAAMC,UAAa,GAAAhL,aAAAA,CAAAA,OAAA,CAAK6E,OAAQ,CAAAtF,GAAA,EAAKuL,MAAMxF,OAAO,CAAA;IAClD,MAAM4F,UAAa,GAAAlL,aAAAA,CAAAA,OAAA,CAAK6E,OAAQ,CAAAtF,GAAA,EAAKuL,MAAMuB,MAAM,CAAA;IAC3C,MAAAG,SAAA,GAAYxM,aAAAA,CAAAA,OAAK,CAAAkK,OAAA,CAAQgB,UAAU,CAAA;IAEzC,MAAMjB,MAAAA,CAAAA,OAAOuC,SAAS,CAAA;IAGhB,MAAAC,GAAA,GAAMnH,QAAQ0F,UAAU,CAAA;IAE9B,IAAI0B,6BAAsB1M,aAAA,CAAAQ,OAAA,CAAKP,QAAS,CAAAuM,SAAA,EAAWxB,UAAU,CAAC,CAAA;IAG1D,IAAA0B,cAAA,CAAeC,UAAW,CAAA,KAAK,CAAG,EAAA;MACnBD,cAAA,GAAAA,cAAA,CAAeE,MAAM,CAAC,CAAA;IACzC;IAEM,MAAA5K,IAAA,GAAO6K,iBAAkB,CAAAJ,GAAA,EAAKC,cAAc,CAAA;IAE5C,MAAAvC,YAAA,CAAUe,UAAY,EAAAlJ,IAAA,EAAM,MAAM,CAAA;EAC1C;AACF;AAGA,SAAS6K,iBAAAA,CAAkBJ,KAAUC,cAAwB,EAAA;EACrD,MAAAI,IAAA,GAAOC,OAAOD,IAAK,CAAAL,GAAG,EAAE/M,MAAO,CAACsN,CAAM,IAAAA,CAAA,KAAM,YAAY,CAAA;EAE1D,IAAAhL,IAAA,uBAAA7B,MAAA,CAA2BuM,cAAc,SAAA;EAE7C,IAAII,KAAKjN,MAAQ,EAAA;IACPmC,IAAA,QAAA;IACRA,IAAA,IAAQ8K,KACLpN,MAAO,CAACsN,CAAO,IAAAP,GAAA,CAAIQ,aAAaD,CAAM,KAAA,SAAA,GAAY,IAAK,CAAA,CACvDrH,IAAKqH,CAAA,oBAAA7M,MAAA,CAAsB6M,CAAC,aAAA7M,MAAA,CAAU6M,CAAC,QAAK,CAAA,CAC5CpM,KAAK,EAAE,CAAA;EACZ;EAEQoB,IAAA,QAAA;EAER,IAAIyK,IAAIQ,UAAY,EAAA;IAElB,IAAI,aAAaR,GAAK,EAAA;MACZzK,IAAA,mCAAA;IACV;EAAA,CACK,MAAA;IACGA,IAAA,2BAAA;EACV;EAEO,OAAAA,IAAA;AACT;AClEgB,SAAAkL,mBAAAA,CACd7N,KACA8N,SACc,EAAA;EAAA,IAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA;EAvBhB,IAAAjD,EAAA,EAAAC,EAAA,EAAAiD,EAAA,EAAAC,EAAA;EAwBE,MAAM;IAACvD,MAAA;IAAQwD,OAAS;IAAAC;EAAA,CAAU,GAAAV,SAAA;EAC5B,MAAA;IAACzC,MAAQ;IAAAnL,GAAA;IAAKuO,OAAS,EAAAC,QAAA;IAAUC,MAAQ;IAAAC,QAAA;IAAUjK,QAAU;IAAAxE,MAAA;IAAQ0O,GAAK;IAAA1M;EAAA,CAAM,GAAAnC,GAAA;EACtF,MAAM8O,YAAYH,MAAO,CAAAE,GAAA,CAAIzG,IAAQ,IAAA,UAAU,EAAE2C,MAAM,CAAA;EACjD,MAAAgE,MAAA,IAAAhB,KAAA,GAAS1C,iCAAQ0D,MAAU,cAAAhB,KAAA,cAAAA,KAAA,GAAA,KAAA;EACjC,MAAM1K,MAAS,GAAA1C,aAAA,CAAAQ,OAAA,CAAKP,QAAS,CAAAV,GAAA,EAAKyE,QAAQ,CAAA;EAE1C,MAAMqK,cAActB,MAAO,CAAAuB,WAAA,CACzBvB,MAAO,CAAAhC,OAAA,CAAA,CAAA,CAAQP,EAAG,GAAAhJ,EAAA,CAAAkJ,MAAA,KAAH,mBAAWxJ,OAAQ,CAAAqN,KAAA,KAAS,EAAE,EAAE5I,GAAI,CAAA6I,KAAA,IAAgB;IAAA,IAAf,CAACvG,GAAA,EAAKwG,GAAG,CAAM,GAAAD,KAAA;IA/BvEhE,IAAAA,GAAAA;IAgCM,OAAO,CAACvC,GAAK,EAAAjI,aAAAA,CAAAA,OAAA,CAAK6E,OAAQ,CAAAtF,GAAA,EAAA,CAAA,CAAKiL,MAAAhJ,EAAG,CAAAkJ,MAAA,KAAH,IAAAF,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAWtJ,QAAQwN,OAAW,KAAA,GAAA,EAAKD,GAAI,CAAA,CAAC,CAAC,CAAC,CAAA;EAAA,CAC1E,CAAA,CACH;EAEA,MAAM1D,OAAU,GAAAoC,SAAA,CAAUpC,OAAQ,CAAApF,GAAA,CAAKmF,KAAU,IAAA;IACxC,OAAA;MACL,GAAGA,KAAA;MACHhF,IAAA,EAAM9F,aAAAA,CAAAA,QAAKC,QAAS,CAAAyC,MAAA,EAAQoI,MAAMhJ,MAAM,CAAA,CAAEmJ,OAAQ,CAAA,WAAA,EAAa,EAAE;IAAA,CACnE;EACF,CAAA,EAAG,CAAE,CAAA,CAAA;EAEL,MAAM0D,SACJ,GAAAZ,QAAA,IAAYhB,MAAO,CAAAD,IAAA,CAAKiB,QAAQ,CAAE,CAAApI,GAAA,CAAK1B,UAAA,IAAejE,aAAAA,CAAAA,OAAK,CAAAY,IAAA,CAAKsN,GAAI,CAAApI,IAAA,EAAM7B,UAAU,CAAC,CAAA;EAEvF,MAAM2K,WAAc,GAAAb,QAAA,IAAYhB,MAAO,CAAA8B,MAAA,CAAOd,QAAQ,CAAE,CAAApI,GAAA,CAAKmJ,CAAA,IAAM9O,aAAAA,CAAAA,OAAK,CAAA6E,OAAA,CAAQtF,GAAK,EAAAuP,CAAA,CAAEC,MAAM,CAAC,CAAA;EAE9F,MAAMC,eAAejC,MAAO,CAAAuB,WAAA,CAC1BvB,OAAOhC,OAAQ,CAAA,CAAAL,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQuE,WAAU,EAAE,EAAEtJ,GAAI,CAAAuJ,KAAA;IAAA,IAAC,CAACjH,GAAK,EAAAwG,GAAG;WAAM,CAACxG,GAAA,EAAKkH,KAAKC,SAAU,CAAAX,GAAG,CAAC,CAAC;EAAA,EAAA,CACrF;EAEA,MAAMY,cAAiB,GAAA,CACrBpE,wBAAQ,CAAA;IACNqE,iBAAmB,EAAA,IAAA;IACnBT,MAAQ,EAAA;MACN,IAAIX,GAAI,CAAApI,IAAA,KAAS,sBACb;QAAC,GAAGkJ;OACJ,GAAA;QACE,2BAAA,EAA8BO,GAAQ,IAAA;UACpC,MAAMvE,UAAa,GAAA,IAAA,GAAOhL,aAAAA,CAAAA,OAAK,CAAAC,QAAA,CAASV,KAAKgQ,GAAG,CAAA;UAChD,MAAMzE,QAAQC,OAAQ,CAAAyE,IAAA,CAAMV,CAAM,IAAAA,CAAA,CAAEC,WAAW/D,UAAU,CAAA;UAEzD,IAAI,CAACF,KAAO,EAAA;YAEFyB,OAAA,CAAAnK,KAAA,iCAAAjC,MAAA,CAAsC6K,UAAU,CAAE,CAAA;YAEnD,OAAA,MAAA;UACT;UAEA,OAAOmE,IAAK,CAAAC,SAAA,CACVpP,qBAAA,CAAKC,SAASV,GAAK,EAAAS,qBAAA,CAAK6E,QAAQnC,MAAQ,EAAAoI,KAAA,CAAMhF,IAAO,GAAAqI,SAAS,CAAC,CAAA,CACjE;QACF,CAAA;QACA,wBAAA,EAA0BgB,IAAK,CAAAC,SAAA,CAAUhF,MAAM,CAAA;QAC/C,yBAAA,EAA2B+E,IAAK,CAAAC,SAAA,CAAUxB,OAAO,CAAA;QACjD,2BAA2BuB,IAAK,CAAAC,SAAA,CAAUrO,QAAQ0O,GAAI,CAAAC,WAAA,IAAexB,IAAIyB,OAAO,CAAA;QAChF,GAAGX;MACL,CAAA;IACN;EAAA,CACD,CAAA,EACDY,sBAAM,CAAA;IACJ7E,OAAA,EAAS;MAAC,GAAGsD;IAAW;EAAA,CACzB,CAAA,EACDwB,6BAAY,CAAA;IAAA;IAEVC,SAASlC,OAAY,KAAA,SAAA;IAAA;IAErBmC,YAAY,CAAC,MAAA,EAAQ,QAAQ,KAAO,EAAA,MAAA,EAAQ,SAAS,OAAO,CAAA;IAC5DC,cAAgB,EAAA;IAAA;EAAA,CACjB,CAAA,EACDC,yBAAS,CAAA,CAAA,EACTC,qBAAK,CAAA,CAAA,EACLC,wBAAQ,CAAA;IACNC,GAAA,GAAA/C,KAAA,GAAK3C,iCAAQ0F,GAAO,cAAA/C,KAAA,cAAAA,KAAA,GAAA,WAAA;IACpBgD,UAAA,GAAA/C,KAAA,GAAY5C,iCAAQ2F,UAAc,cAAA/C,KAAA,cAAAA,KAAA,GAAA,eAAA;IAClCgD,WAAA,GAAA/C,KAAA,GAAa7C,iCAAQ4F,WAAe,cAAA/C,KAAA,cAAAA,KAAA,GAAA,UAAA;IACpCgD,eAAA,GAAA/C,KAAA,GAAiB9C,iCAAQ6F,eAAmB,cAAA/C,KAAA,cAAAA,KAAA,GAAA,OAAA;IAC5CK,MAAA;IACAlL,QAAA,EAAUtD,GAAI,CAAAmC,EAAA,CAAGmJ,UAAc,IAAA;EAAA,CAChC,CAAA,EACD6F,gCAAqB,CAAA;IACnBC,OAAS,EAAA,KAAA;IACTC,OAAA,EAAA,CAASjG,EAAQ,GAAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAiG,KAAA,KAAR,IAAe,GAAA,KAAA,CAAA,GAAAlG,EAAA,CAAAiG,OAAA;IACxBE,OAAS,EAAA,CACP,CACE,mBAAA,EACA;MAACC,OAAS,EAAA3C,GAAA,CAAI4C,YAAgB,IAAAC,UAAAA,CAAAA,0BAAA;MAA4BC,SAAS;IAAK,CAAA,CAC1E;EACF,CACD,CAAA,EACD5C,UACE6C,eAAAA,CAAAA,OAAO,CAAA;IACLC,QAAU,EAAA;MAAA;MAERC,UAAY,EAAA;IACd,CAAA;IACArP,MAAQ,EAAA;MACNsP,QAAA,EAAUA,CAACC,KAAA,EAAOC,OAAY,KAAA;QAC5B,MAAM3Q,OAAO2Q,OAAQ,CAAAC,KAAA;QACrB,MAAM9J,OAAO6J,OAAQ,CAAA7J,IAAA;QAGrB,IAAIA,QAAQ,UAAY,EAAA;UAEf,OAAA,4BAAA,CAA6B+J,KAAK7Q,IAAI,CAAA;QAC/C;QAEO,OAAA,KAAA;MACT;IACF;EAAA,CACD,CAAA,CACL,CAAEjB,OAAO+R,OAAO,CAAA;EAEV,MAAAC,WAAA,GAAA,CAAchE,EAAQ,GAAAhD,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAiH,MAAA,KAAR,IAAgB,GAAA,KAAA,CAAA,GAAAjE,EAAA,CAAAgD,OAAA;EAEpC,MAAMA,OAAU,GAAAkB,KAAA,CAAMC,OAAQ,CAAAH,WAAW,IACrCrC,cAAe,CAAAlP,MAAA,CAAOuR,WAAW,CAAA,GACjCI,UAAsB,CAAAA,qBAAA,CAAA,CAAAnE,EAAA,GAAAjD,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQiH,MAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAhE,EAAA,CAAgB+C,SAASrB,cAAc,CAAA;EAE1D,OAAA;IACL0C,YAAc,EAAA;MACZC,OAAS,EAAAzS,GAAA;MAET0O,QAAA,EAAUA,CAACgE,EAAA,EAAIC,QAAa,KAAA;QAEtB,IAAAvD,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW3H,SAASiL,EAAK,CAAA,EAAA;UACpB,OAAA,IAAA;QACT;QAGI,IAAAC,QAAA,KAAaD,GAAGtF,UAAW,CAAA,GAAG,KAAKsF,EAAG,CAAAtF,UAAA,CAAW,GAAG,CAAI,CAAA,EAAA;UAC1D,MAAMwF,SAASnS,aAAK,CAAAQ,OAAA,CAAAqE,OAAA,CAAQ7E,aAAAA,CAAAA,QAAKkK,OAAQ,CAAAgI,QAAQ,GAAGD,EAAE,CAAA;UAElD,IAAArD,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAa5H,SAASmL,MAAS,CAAA,EAAA;YAC1B3S,MAAA,CAAA8C,IAAA,kEAAAnC,MAAA,CACuDH,aAAAA,CAAAA,OAAK,CAAAC,QAAA,CAC/DV,GAAA,EACA4S,MAAA,CACD,CAAA,CACH;YAEO,OAAA,IAAA;UACT;QACF;QAEM,MAAAC,OAAA,GAAUH,EAAG,CAAAI,KAAA,CAAM,GAAG,CAAA;QAE5B,MAAMvM,OAAOsM,OAAQ,CAAA,CAAC,CAAE,CAAAzF,UAAA,CAAW,GAAG,CAAI,MAAAxM,MAAA,CAAGiS,OAAQ,CAAA,CAAC,CAAC,OAAAjS,MAAA,CAAIiS,OAAA,CAAQ,CAAC,CAAC,IAAKA,QAAQ,CAAC,CAAA;QAEnF,IAAItM,IAAQ,IAAAmI,QAAA,CAASjH,QAAS,CAAAlB,IAAI,CAAG,EAAA;UAC5B,OAAA,IAAA;QACT;QAEO,OAAA,KAAA;MACT,CAAA;MAEAwM,KAAO,EAAAvH,OAAA,CAAQwH,MAAuC,CAAA,CAACC,KAAK1H,KAAU,KAAA;QAC7D,OAAA;UAAC,GAAG0H,GAAK;UAAA,CAAC1H,MAAMhF,IAAI,GAAGgF,MAAMiE;SAAM;MAC5C,CAAA,EAAG,EAAE,CAAA;MAEL2B,OAAA;MAEA+B,SAAW,EAAA;QACTC,uBAAyB,EAAA;MAC3B;IACF,CAAA;IACAC,aAAe,EAAA;MACbC,gBAAgBA,CAAA,KAAM;QACd,MAAAC,KAAA,GAAQ1E,SAAU,CAAAkE,KAAA,CAAM,GAAG,CAAA;QAE7B,IAAAQ,KAAA,CAAMhT,WAAW,CAAG,EAAA;UACf,gCAAAM,MAAA,CAAyB0S,KAAM,CAAA,CAAC,CAAC;QAC1C;QAEA,+BAAA1S,MAAA,CAA+BgO,SAAS;MAC1C,CAAA;MACA2E,OAAS,EAAA1E,MAAA;MACT2E,GAAK,EAAArQ,MAAA;MACLsQ,gBAAgBA,CAAA,KAAM;QACd,MAAAH,KAAA,GAAQ1E,SAAU,CAAAkE,KAAA,CAAM,GAAG,CAAA;QAE7B,IAAAQ,KAAA,CAAMhT,WAAW,CAAG,EAAA;UACf,iBAAAM,MAAA,CAAU0S,KAAM,CAAA,CAAC,CAAC;QAC3B;QAEA,gBAAA1S,MAAA,CAAgBgO,SAAS;MAC3B,CAAA;MACA8E,QAAU,EAAA,IAAA;MACV7I,MAAA;MACA8I,OAAS,EAAA,QAAA;MACTC,qBAAuB,EAAA/E,MAAA;MACvBgF,SAAA,GAAA3F,KAAA,GAAW/C,iCAAQ0I,SAAa,cAAA3F,KAAA,cAAAA,KAAA,GAAA,IAAA;MAChC4F,sBAAwB,EAAA;IAC1B;EAAA,CACF;AACF;AC7MO,MAAMC,UAAsC,GAAA;EACjDxN,IAAA,EAAMA,CAACzG,GAAA,EAAKkL,IAAS,KAAA;IACb,MAAAgJ,aAAA,GAAgBhJ,IAAK,CAAAQ,OAAA,CAAQrL,MAAO,CAACoP,KAAMA,CAAE,CAAA9O,IAAA,CAAKgH,QAAS,CAAA,aAAa,CAAC,CAAA;IACzE,MAAA+D,OAAA,GAAUR,IAAK,CAAAQ,OAAA,CAAQrL,MAAO,CAACoP,CAAM,IAAA,CAACA,CAAE,CAAA9O,IAAA,CAAKgH,QAAS,CAAA,aAAa,CAAC,CAAA;IAEpE,MAAAwM,WAAA,GAAcjJ,KAAKsD,MAAO,CAAAhO,MAAA,GAC5B,cAAc,GAAG0K,KAAKsD,MAAO,CAAAlI,GAAA,CAAKC,CAAM,aAAAzF,MAAA,CAASC,uBAAME,MAAO,CAAAsF,CAAC,CAAC,CAAE,CAAC,IACnE,EAAC;IAEC,MAAA6N,YAAA,GAAeF,cAAc1T,MAC/B,GAAA,CACE,YAAA,EACA,GAAG0T,aAAc,CAAA5N,GAAA,CAAKmJ,CACpB,IAAA,cAAA3O,MAAA,CAEKC,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAOwO,CAAE,CAAAC,MAAM,CAAC,OAAA5O,MAAA,CAAIC,cAAA,CAAAI,OAAA,CAAME,IAAK,CAAA,QAAG,CAAC,OAAAP,MAAA,CAAIC,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAAwO,CAAA,CAAEhN,MAAM,CAAC,EACxE,CAAElB,KAAK,EAAE,CACX,CAAA,IAEF,EAAC;IAEC,MAAA8S,YAAA,GAAe3I,QAAQlL,MACzB,GAAA,CACE,YAAA,EACA,GAAGkL,OAAQ,CAAApF,GAAA,CAAKmJ,CACd,IAAA,cAAA3O,MAAA,CAEKC,cAAM,CAAAI,OAAA,CAAAH,IAAA,CAAKL,aAAAA,CAAAA,OAAK,CAAAY,IAAA,CAAKvB,GAAI,CAAA6O,GAAA,CAAIpI,IAAM,EAAAgJ,CAAA,CAAE9O,IAAI,CAAC,CAAC,YAAAG,MAAA,CAC3CC,cAAM,CAAAI,OAAA,CAAAF,MAAA,CAAOwO,CAAE,CAAAC,MAAM,CAAC,OAAA5O,MAAA,CAAIC,cAAA,CAAAI,OAAA,CAAME,IAAK,CAAA,QAAG,CAAC,OAAAP,MAAA,CAAIC,cAAA,CAAAI,OAAA,CAAMF,MAAO,CAAAwO,CAAA,CAAEhN,MAAM,CAAC,EACxE,CAAElB,KAAK,EAAE,CACX,CAAA,IAEF,EAAC;IAEE,OAAA,2CAAAT,MAAA,CAEQC,cAAAA,CAAAA,OAAA,CAAME,MAAO,CAAAiK,IAAA,CAAKH,MAAM,CAAC,GACtC,GAAGoJ,WAAA,EACH,GAAGC,YAAA,EACH,GAAGC,YAAA,CACL,CAAE9S,KAAK,IAAI,CAAA;EACb,CAAA;EACA8K,IAAA,EAAMA,CAACrM,GAAA,EAAKkL,IAAS,KAAA;IACZ,OAAA,IAAIoB,IAAAA,CAAAA,UAAW,CAACC,QAAa,IAAA;MAClC+H,WAAA,CAAYtU,GAAK,EAAAkL,IAAI,CAClB,CAAAsB,IAAA,CAAMV,MAAW,IAAA;QAChBS,QAAA,CAASE,KAAKX,MAAM,CAAA;QACpBS,QAAA,CAASG,QAAS,CAAA,CAAA;MAAA,CACnB,EACAC,KAAM,CAACC,OAAQL,QAAS,CAAAxJ,KAAA,CAAM6J,GAAG,CAAC,CAAA;IAAA,CACtC,CAAA;EACH,CAAA;EACAF,UAAUA,CAAA,KAAM,CAEhB,CAAA;EACA3J,KAAO,EAAAA,CAACoJ,IAAM,EAAAU,KAAA,EAAOD,GAAQ,KAAA;IAE3BM,OAAA,CAAQnK,MAAM6J,GAAG,CAAA;EACnB;AACF,CAAA;AAEA,eAAe0H,WAAAA,CAAYtU,KAAmBkL,IAAkB,EAAA;EAC9D,MAAM;IAACvG,QAAA;IAAUyE,KAAO;IAAAjJ;EAAA,CAAU,GAAAH,GAAA;EAClC,MAAMqD,MAAS,GAAA1C,aAAAA,CAAAA,OAAA,CAAKC,QAAS,CAAAZ,GAAA,CAAIE,KAAKyE,QAAQ,CAAA;EAG9C,MAAM4P,eAAaC,UAAAA,CAAAA,gBAAiB,CAAA;IAClCC,UAAA,EAAaxU,QAAa,IAAA;MACxB,KAAA,MAAWK,OAAOL,QAAU,EAAA;QAC1B,MAAMqB,IAAO,GAAAoT,MAAA,CAAOpU,GAAI,CAAAqU,IAAA,CAAK,CAAC,CAAC,CAAA;QAE3B,IAAArU,GAAA,CAAIqC,SAAS,qBAAuB,EAAA;UACtC;QACF;QAEI,IAAArB,IAAA,CAAKgM,UAAW,CAAA,yBAAyB,CAAG,EAAA;UAC9C;QACF;QAEI,IAAAhM,IAAA,CAAKgM,UAAW,CAAA,qCAAqC,CAAG,EAAA;UAC1D;QACF;QAEI,IAAAhN,GAAA,CAAI8H,SAAS,KAAO,EAAA;UACfjI,MAAA,CAAAoI,IAAA,CAAK,GAAGjI,GAAA,CAAIqU,IAAI,CAAA;QACzB;QAEI,IAAArU,GAAA,CAAI8H,SAAS,MAAQ,EAAA;UAChBjI,MAAA,CAAA8C,IAAA,CAAK,GAAG3C,GAAA,CAAIqU,IAAI,CAAA;QACzB;QAEI,IAAArU,GAAA,CAAI8H,SAAS,OAAS,EAAA;UACjBjI,MAAA,CAAA4C,KAAA,CAAM,GAAGzC,GAAA,CAAIqU,IAAI,CAAA;QAC1B;MACF;IACF;EAAA,CACD,CAAA;EAEG,IAAA;IACF,MAAM;MAACjC,YAAc;MAAAY;IAAA,CAAiB,GAAAzF,mBAAA,CAAoB7N,KAAKkL,IAAI,CAAA;IAG7D,MAAA0J,MAAA,GAAS,MAAMtC,aAAO,CAAA;MAC1B,GAAGI,YAAA;MACHmC,OAAOC,OAAS,EAAA;QACdP,YAAA,CAAWtU,SAAS2H,IAAK,CAAA;UACvBQ,IAAM,EAAA,MAAA;UACNzF,MAAMmS,OAAQ,CAAAnS,IAAA;UACdgS,IAAA,EAAM,CAACG,OAAA,CAAQzS,OAAO;QAAA,CACvB,CAAA;MACH;IAAA,CACD,CAAA;IAID,MAAM;MAACI;IAAM,CAAA,GAAI,MAAMmS,MAAA,CAAOG,SAASzB,aAAa,CAAA;IAEpD,KAAA,MAAW0B,gBAAgBvS,MAAQ,EAAA;MAC7B,IAAAuS,YAAA,CAAa5M,SAAS,OAAS,EAAA;QACjCgB,KAAA,CAAMxB,IAAK,CAAA;UACTQ,IAAM,EAAA,OAAA;UACNzH,IAAM,EAAAA,aAAAA,CAAAA,OAAA,CAAK6E,OAAQ,CAAAnC,MAAA,EAAQ2R,aAAaxS,QAAQ;QAAA,CACjD,CAAA;MAAA,CACI,MAAA;QACL4G,KAAA,CAAMxB,IAAK,CAAA;UACTQ,IAAM,EAAA,OAAA;UACNzH,IAAM,EAAAA,aAAAA,CAAAA,OAAA,CAAK6E,OAAQ,CAAAnC,MAAA,EAAQ2R,aAAaxS,QAAQ;QAAA,CACjD,CAAA;MACH;IACF;IAGM,MAAAoS,MAAA,CAAOK,MAAM3B,aAAa,CAAA;IAGhC,MAAMsB,OAAOM,KAAM,EAAA;IAGnBX,YAAA,CAAWY,OAAQ,CAAA,CAAA;WACZvI,GAAK,EAAA;IAEZ2H,YAAA,CAAWY,OAAQ,CAAA,CAAA;IACb,MAAAvI,GAAA;EACR;AACF;AClJO,MAAMwI,eAAoE,GAAA;EAC/E3O,IAAM,EAAAA,CAACzG,GAAK,EAAAkL,IAAA,uCAAApK,MAAA,CACwBoK,IAAA,CAAKsD,MAAO,CAAAjN,IAAA,CAAK,KAAK,CAAC,eAAAT,MAAA,CACvDoK,IAAA,CAAKH,MACP,gBAAAjK,MAAA,CAAaoK,IAAA,CAAKQ,OACf,CAAApF,GAAA,CAAKmJ,CAAA,OAAA3O,MAAA,CAASC,sBAAA,CAAM2B,IAAK,CAAA/B,aAAAA,CAAAA,OAAA,CAAKY,IAAK,CAAAvB,GAAA,CAAI6O,GAAI,CAAApI,IAAA,EAAMgJ,CAAE,CAAA9O,IAAI,CAAC,CAAC,QAAAG,MAAA,CAAK2O,CAAA,CAAEC,MAAM,UAAA5O,MAAA,CAAO2O,CAAE,CAAAhN,MAAM,CAAE,CAAA,CACvFlB,IAAK,CAAA,WAAW,CAAC,CAAA;EACtB8K,IAAA,EAAMA,CAACrM,GAAA,EAAKkL,IAAS,KAAA;IACnB,MAAM;MAACwH,YAAc;MAAAY;IAAA,CAAiB,GAAAzF,mBAAA,CAAoB7N,KAAKkL,IAAI,CAAA;IAE5D,OAAA,IAAIoB,IAAAA,CAAAA,UAAW,CAACC,QAAa,IAAA;MAClC,MAAM8I,YAAmC,GAAA;QACvC,GAAG3C,YAAA;QACHjQ,MAAQ,EAAA6Q;MAAA,CACV;MAEM,MAAAgC,OAAA,GAAUC,aAAYF,YAAY,CAAA;MAEhCC,OAAA,CAAAE,EAAA,CAAG,OAAS,EAACC,KAAU,IAAA;QAC7BlJ,QAAA,CAASE,KAAKgJ,KAAK,CAAA;MAAA,CACpB,CAAA;MAED,OAAO,MAAM;QACXH,OAAA,CAAQJ,KAAM,CAAA,CAAA;MAAA,CAChB;IAAA,CACD,CAAA;EACH,CAAA;EACAxI,QAAU,EAAAA,CAAC1M,GAAK,EAAAkL,IAAA,EAAMuK,KAAU,KAAA;IACxB,MAAA;MAACtV;IAAU,CAAA,GAAAH,GAAA;IAEb,IAAAyV,KAAA,CAAM9S,SAAS,YAAc,EAAA;MACxBxC,MAAA,CAAAuV,OAAA,mCAAA5U,MAAA,CAC6BoK,KAAKsD,MAAO,CAAAjN,IAAA,CAAK,KAAK,CAAC,eAAAT,MAAA,CACvDoK,KAAKH,MACP,gBAAAjK,MAAA,CAAaoK,IAAA,CAAKQ,OACf,CAAApF,GAAA,CAAKmJ,CAAA,OAAA3O,MAAA,CAASC,sBAAA,CAAM2B,IAAK,CAAA/B,aAAAA,CAAAA,OAAA,CAAKY,IAAK,CAAAvB,GAAA,CAAI6O,GAAI,CAAApI,IAAA,EAAMgJ,CAAE,CAAA9O,IAAI,CAAC,CAAC,QAAAG,MAAA,CAAK2O,CAAA,CAAEC,MAAM,UAAA5O,MAAA,CAAO2O,CAAE,CAAAhN,MAAM,CAAE,CAAA,CACvFlB,IAAK,CAAA,WAAW,CAAC,CAAA,CACtB;MACApB,MAAA,CAAOM,IAAI,EAAE,CAAA;MAEb;IACF;IAEI,IAAAgV,KAAA,CAAM9S,SAAS,cAAgB,EAAA;MACjC;IACF;IAEI,IAAA8S,KAAA,CAAM9S,SAAS,KAAO,EAAA;MACxB;IACF;IAEI,IAAA8S,KAAA,CAAM9S,SAAS,OAAS,EAAA;MACnBxC,MAAA,CAAA4C,KAAA,CAAM0S,KAAM,CAAA9S,IAAA,EAAM8S,KAAK,CAAA;MAE9B;IACF;IAEI,IAAAA,KAAA,CAAM9S,SAAS,OAAS,EAAA;MAC1B;IACF;EACF,CAAA;EACAI,KAAO,EAAAA,CAAC/C,GAAK,EAAA6M,KAAA,EAAOD,GAAQ,KAAA;IACpB,MAAA;MAACzM;IAAU,CAAA,GAAAH,GAAA;IAEjB,IAAI4M,eAAe9J,KAAO,EAAA;MACxB3C,MAAA,CAAOM,IAAImM,GAAG,CAAA;IAChB;EACF;AACF,CAAA;ACnEO,MAAM+I,iBAAuC,GAAA;EAClD,WAAa,EAAAzJ,OAAA;EACb,UAAY,EAAA+H,UAAA;EACZ,mBAAqB,EAAAlH;AACvB,CAAA;AAGO,MAAM6I,iBAAuC,GAAA;EAClD,WAAa,EAAA9I,YAAA;EACb,UAAY,EAAAsI;AACd,CAAA;;;;;;;"}