@memberjunction/codegen-lib 5.42.0 → 5.43.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.
Files changed (38) hide show
  1. package/README.md +1 -1
  2. package/dist/Config/config.d.ts +132 -7
  3. package/dist/Config/config.d.ts.map +1 -1
  4. package/dist/Config/config.js +186 -11
  5. package/dist/Config/config.js.map +1 -1
  6. package/dist/Config/db-connection.d.ts +13 -0
  7. package/dist/Config/db-connection.d.ts.map +1 -1
  8. package/dist/Config/db-connection.js +19 -6
  9. package/dist/Config/db-connection.js.map +1 -1
  10. package/dist/Config/pg-connection.d.ts +58 -0
  11. package/dist/Config/pg-connection.d.ts.map +1 -0
  12. package/dist/Config/pg-connection.js +100 -0
  13. package/dist/Config/pg-connection.js.map +1 -0
  14. package/dist/Database/codeGenDatabaseProvider.d.ts +65 -1
  15. package/dist/Database/codeGenDatabaseProvider.d.ts.map +1 -1
  16. package/dist/Database/codeGenDatabaseProvider.js +27 -0
  17. package/dist/Database/codeGenDatabaseProvider.js.map +1 -1
  18. package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts +23 -1
  19. package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.d.ts.map +1 -1
  20. package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js +58 -4
  21. package/dist/Database/providers/postgresql/PostgreSQLCodeGenProvider.js.map +1 -1
  22. package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts +13 -1
  23. package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.d.ts.map +1 -1
  24. package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js +39 -3
  25. package/dist/Database/providers/sqlserver/SQLServerCodeGenProvider.js.map +1 -1
  26. package/dist/Misc/remote_operations_codegen.d.ts +54 -0
  27. package/dist/Misc/remote_operations_codegen.d.ts.map +1 -0
  28. package/dist/Misc/remote_operations_codegen.js +186 -0
  29. package/dist/Misc/remote_operations_codegen.js.map +1 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/runCodeGen.d.ts +16 -26
  35. package/dist/runCodeGen.d.ts.map +1 -1
  36. package/dist/runCodeGen.js +49 -87
  37. package/dist/runCodeGen.js.map +1 -1
  38. package/package.json +20 -20
@@ -0,0 +1,186 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { mkdirSync } from 'fs';
4
+ import { logError } from './status_logging.js';
5
+ /**
6
+ * Items imported into EVERY generated Remote Operation file that contains an AI/Default body, so an authored
7
+ * body can use them with no declaration — the RO analog of the Generated-Actions "System Libraries" set. The
8
+ * generation prompt (`remote-operation-generation.template.md`) advertises the same defaults, so the model
9
+ * never declares them. All are exported by `@memberjunction/core`.
10
+ */
11
+ export const DEFAULT_REMOTE_OP_LIBRARY_ITEMS = ['RunView', 'Metadata', 'RunQuery'];
12
+ /**
13
+ * Generates the strongly-typed base class for each `MJ: Remote Operations` row — the CodeGen half of the
14
+ * Remote Operations primitive (the typed peer of generated entity subclasses). Each row becomes a subclass
15
+ * of `BaseRemotableOperation<TInput, TOutput>` whose `OperationKey`, `ExecutionMode`, `RequiredScope`,
16
+ * `RequiresSystemUser`, and `TInput`/`TOutput` interfaces are derived entirely from the metadata.
17
+ *
18
+ * Output shape depends on the operation's `GenerationType`:
19
+ * - **Manual** → a typed SHELL (no body, no `@RegisterClass`). A hand-authored server subclass extends this
20
+ * base, supplies `InternalExecute`, and registers under the key. The base provides the typed contract the
21
+ * browser imports (so it never pulls the server engine).
22
+ * - **AI / Default** (with `CodeApprovalStatus = 'Approved'` and non-empty `Code`) → a COMPLETE class:
23
+ * `@RegisterClass(BaseRemotableOperation, key)` plus an `InternalExecute` body emitted from `Code`. No
24
+ * hand-authored subclass is needed.
25
+ *
26
+ * Mirrors `ActionSubClassGeneratorBase` (the other "read a custom entity's rows → emit TypeScript" generator).
27
+ */
28
+ export class RemoteOperationGeneratorBase {
29
+ /**
30
+ * Emits `remote_operations.ts` into `directory`, one typed base per Active operation.
31
+ * @param remoteOps All `MJ: Remote Operations` rows (any status; non-Active rows are skipped).
32
+ * @param directory The target output directory (resolved from the `RemoteOperations` output config).
33
+ */
34
+ async generateRemoteOperations(remoteOps, directory) {
35
+ try {
36
+ const filePath = path.join(directory, 'remote_operations.ts');
37
+ // Active only, sorted by key for deterministic output (no git churn when nothing changed).
38
+ const active = remoteOps
39
+ .filter((o) => o.Status === 'Active')
40
+ .sort((a, b) => a.OperationKey.localeCompare(b.OperationKey));
41
+ const anyBody = active.some((o) => this.hasGeneratedBody(o));
42
+ const header = this.buildFileHeader(active, anyBody);
43
+ const typeDefs = this.collectTypeDefinitions(active);
44
+ const operations = active.map((o) => this.generateSingleOperation(o)).join('\n');
45
+ mkdirSync(directory, { recursive: true });
46
+ fs.writeFileSync(filePath, header + typeDefs + operations + '\n');
47
+ return true;
48
+ }
49
+ catch (e) {
50
+ logError('Error generating remote operations', e);
51
+ return false;
52
+ }
53
+ }
54
+ /** True when the row carries an approved, generated body (so the emitted class is complete + registered). */
55
+ hasGeneratedBody(op) {
56
+ return ((op.GenerationType === 'AI' || op.GenerationType === 'Default') &&
57
+ op.CodeApprovalStatus === 'Approved' &&
58
+ !!op.Code &&
59
+ op.Code.trim().length > 0);
60
+ }
61
+ /**
62
+ * Emits every distinct Input/Output type definition ONCE (de-duped by content), as a shared block above
63
+ * the classes. Operations frequently share a type (e.g. the pause/resume/cancel control ops all use
64
+ * `ProcessRunControlInput`); emitting each op's definition inline would produce duplicate-identifier errors.
65
+ */
66
+ collectTypeDefinitions(ops) {
67
+ const seen = new Set();
68
+ const blocks = [];
69
+ for (const op of ops) {
70
+ for (const def of [op.InputTypeDefinition, op.OutputTypeDefinition]) {
71
+ const trimmed = def?.trim();
72
+ if (trimmed && !seen.has(trimmed)) {
73
+ seen.add(trimmed);
74
+ blocks.push(trimmed);
75
+ }
76
+ }
77
+ }
78
+ return blocks.length ? blocks.join('\n\n') + '\n\n' : '';
79
+ }
80
+ /** Derives the TypeScript class name from the dotted key: `RecordProcess.RunNow` → `RecordProcessRunNowOperation`. */
81
+ operationClassName(operationKey) {
82
+ return (operationKey
83
+ .split('.')
84
+ .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))
85
+ .join('') + 'Operation');
86
+ }
87
+ /**
88
+ * The file header: banner + the aggregated import set. A Manual-only file imports just
89
+ * `BaseRemotableOperation`. A file containing any AI/Default body also imports the body essentials
90
+ * (`IMetadataProvider`, `UserInfo`, `RegisterClass`), the {@link DEFAULT_REMOTE_OP_LIBRARY_ITEMS}, and
91
+ * every library each authored body declared in its `LibrariesObject` (de-duped + merged across operations).
92
+ */
93
+ buildFileHeader(ops, anyBody) {
94
+ // library (package) -> set of imported items
95
+ const imports = new Map();
96
+ const add = (library, items) => {
97
+ if (!library)
98
+ return;
99
+ const set = imports.get(library) ?? new Set();
100
+ for (const item of items) {
101
+ if (item)
102
+ set.add(item);
103
+ }
104
+ imports.set(library, set);
105
+ };
106
+ add('@memberjunction/core', ['BaseRemotableOperation']);
107
+ if (anyBody) {
108
+ add('@memberjunction/core', ['IMetadataProvider', 'UserInfo', ...DEFAULT_REMOTE_OP_LIBRARY_ITEMS]);
109
+ add('@memberjunction/global', ['RegisterClass']);
110
+ for (const op of ops) {
111
+ if (this.hasGeneratedBody(op)) {
112
+ for (const lib of op.LibrariesObject ?? []) {
113
+ add(lib.Library, lib.ItemsUsed ?? []);
114
+ }
115
+ }
116
+ }
117
+ }
118
+ // @memberjunction/core first, then the rest alphabetically — deterministic output across runs.
119
+ const importLines = [...imports.entries()]
120
+ .sort(([a], [b]) => (a === '@memberjunction/core' ? -1 : b === '@memberjunction/core' ? 1 : a.localeCompare(b)))
121
+ .map(([library, items]) => `import { ${[...items].sort().join(', ')} } from "${library}";`)
122
+ .join('\n');
123
+ return `/*************************************************
124
+ * GENERATED CODE - DO NOT MODIFY
125
+ * Generated by MemberJunction CodeGen — Remote Operation typed bases
126
+ *
127
+ * One typed base class per "MJ: Remote Operations" row (a subclass of BaseRemotableOperation),
128
+ * emitted from the operation's metadata: OperationKey, ExecutionMode, RequiredScope, and the raw
129
+ * TypeScript Input/Output type definitions. GenerationType=Manual rows emit a typed SHELL — a
130
+ * hand-authored server subclass (registered via @RegisterClass) supplies the InternalExecute body.
131
+ * GenerationType=AI/Default rows with Approved Code emit a complete, registered class whose body imports
132
+ * the default libraries plus whatever it declared in its Libraries metadata.
133
+ **************************************************/
134
+ ${importLines}
135
+
136
+ `;
137
+ }
138
+ /** Emits one operation: its TInput/TOutput type definitions (verbatim) followed by the class. */
139
+ generateSingleOperation(op) {
140
+ const className = this.operationClassName(op.OperationKey);
141
+ const inputName = op.InputTypeName || 'unknown';
142
+ const outputName = op.OutputTypeName || 'unknown';
143
+ const banner = `// ============================================================\n` +
144
+ `// ${op.OperationKey} — ${op.Name}\n` +
145
+ `// ============================================================`;
146
+ const jsdoc = ` * ${op.Name}${op.Description ? '\n * ' + op.Description.replace(/\n/g, '\n * ') : ''}`;
147
+ const members = this.buildMembers(op);
148
+ if (this.hasGeneratedBody(op)) {
149
+ const body = op.Code.trim().replace(/\n/g, '\n ');
150
+ return `${banner}
151
+ /**
152
+ ${jsdoc}
153
+ * GenerationType=${op.GenerationType} — body emitted from approved Code (no hand-authored subclass needed).
154
+ */
155
+ @RegisterClass(BaseRemotableOperation, ${JSON.stringify(op.OperationKey)})
156
+ export class ${className} extends BaseRemotableOperation<${inputName}, ${outputName}> {
157
+ ${members}
158
+
159
+ protected async InternalExecute(input: ${inputName}, provider: IMetadataProvider, user: UserInfo): Promise<${outputName}> {
160
+ ${body}
161
+ }
162
+ }
163
+ `;
164
+ }
165
+ // Manual (or not-yet-approved) → typed shell; a hand-authored subclass supplies the body + @RegisterClass.
166
+ return `${banner}
167
+ /**
168
+ ${jsdoc}
169
+ * GenerationType=${op.GenerationType} — the server body is supplied by a hand-authored subclass registered
170
+ * under '${op.OperationKey}'. This generated base provides the typed contract only (client-safe).
171
+ */
172
+ export class ${className} extends BaseRemotableOperation<${inputName}, ${outputName}> {
173
+ ${members}
174
+ }
175
+ `;
176
+ }
177
+ /** The readonly members common to every operation class, derived from the metadata columns. */
178
+ buildMembers(op) {
179
+ const execMode = op.ExecutionMode === 'LongRunning' ? "'LongRunning'" : "'Sync'";
180
+ const scopeLine = op.RequiredScope ? `\n public readonly RequiredScope = ${JSON.stringify(op.RequiredScope)};` : '';
181
+ return (` public readonly OperationKey = ${JSON.stringify(op.OperationKey)};\n` +
182
+ ` public readonly ExecutionMode = ${execMode} as const;${scopeLine}\n` +
183
+ ` public readonly RequiresSystemUser = ${op.RequiresSystemUser ? 'true' : 'false'};`);
184
+ }
185
+ }
186
+ //# sourceMappingURL=remote_operations_codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote_operations_codegen.js","sourceRoot":"","sources":["../../src/Misc/remote_operations_codegen.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -50,6 +50,7 @@ export * from './Database/sql_codegen.js';
50
50
  export * from './Database/sql.js';
51
51
  export * from './Misc/entity_subclasses_codegen.js';
52
52
  export * from './Misc/action_subclasses_codegen.js';
53
+ export * from './Misc/remote_operations_codegen.js';
53
54
  export * from './Misc/graphql_server_codegen.js';
54
55
  export * from './Angular/angular-codegen.js';
55
56
  export * from './Angular/related-entity-components.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AAGtC,cAAc,oCAAoC,CAAA;AAClD,cAAc,yDAAyD,CAAA;AACvE,cAAc,2DAA2D,CAAA;AACzE,cAAc,2DAA2D,CAAA;AACzE,cAAc,6DAA6D,CAAA;AAC3E,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAG9B,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAA;AAG7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,yBAAyB,CAAA;AAGvC,cAAc,+CAA+C,CAAA;AAG7D,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,2CAA2C,CAAA;AAGzD,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AAGtC,cAAc,oCAAoC,CAAA;AAClD,cAAc,yDAAyD,CAAA;AACvE,cAAc,2DAA2D,CAAA;AACzE,cAAc,2DAA2D,CAAA;AACzE,cAAc,6DAA6D,CAAA;AAC3E,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAG9B,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAA;AAG7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,yBAAyB,CAAA;AAGvC,cAAc,+CAA+C,CAAA;AAG7D,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,2CAA2C,CAAA;AAGzD,cAAc,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -53,6 +53,7 @@ export * from './Database/sql.js';
53
53
  // Code generation exports
54
54
  export * from './Misc/entity_subclasses_codegen.js';
55
55
  export * from './Misc/action_subclasses_codegen.js';
56
+ export * from './Misc/remote_operations_codegen.js';
56
57
  export * from './Misc/graphql_server_codegen.js';
57
58
  // Angular exports
58
59
  export * from './Angular/angular-codegen.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,wBAAwB;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AAEtC,mBAAmB;AACnB,cAAc,oCAAoC,CAAA;AAClD,cAAc,yDAAyD,CAAA;AACvE,cAAc,2DAA2D,CAAA;AACzE,cAAc,2DAA2D,CAAA;AACzE,cAAc,6DAA6D,CAAA;AAC3E,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAE9B,0BAA0B;AAC1B,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAA;AAE7C,kBAAkB;AAClB,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAE5D,kBAAkB;AAClB,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,yBAAyB,CAAA;AAEvC,sBAAsB;AACtB,cAAc,+CAA+C,CAAA;AAE7D,uBAAuB;AACvB,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,2CAA2C,CAAA;AAEzD,cAAc;AACd,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,wBAAwB;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AAEtC,mBAAmB;AACnB,cAAc,oCAAoC,CAAA;AAClD,cAAc,yDAAyD,CAAA;AACvE,cAAc,2DAA2D,CAAA;AACzE,cAAc,2DAA2D,CAAA;AACzE,cAAc,6DAA6D,CAAA;AAC3E,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAE9B,0BAA0B;AAC1B,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAA;AAE7C,kBAAkB;AAClB,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAE5D,kBAAkB;AAClB,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,yBAAyB,CAAA;AAEvC,sBAAsB;AACtB,cAAc,+CAA+C,CAAA;AAE7D,uBAAuB;AACvB,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,2CAA2C,CAAA;AAEzD,cAAc;AACd,cAAc,cAAc,CAAA"}
@@ -9,24 +9,11 @@
9
9
  import { CommandInfo } from './Config/config.js';
10
10
  import * as MJ from '@memberjunction/core';
11
11
  import { CommandExecutionResult } from './Misc/runCommand.js';
12
- import { CodeGenConnection } from './Database/codeGenDatabaseProvider.js';
13
- import { IMetadataProvider, UserInfo } from '@memberjunction/core';
12
+ import { CodeGenConnection, DataSourceResult as ProviderDataSourceResult } from './Database/codeGenDatabaseProvider.js';
13
+ import { UserInfo } from '@memberjunction/core';
14
14
  import type { MJCLIResult } from '@memberjunction/cli-core';
15
15
  import '@memberjunction/server-bootstrap-lite/mj-class-registrations';
16
- /**
17
- * Result from setupDataSource() providing both the data provider
18
- * and a CodeGenConnection for database operations.
19
- */
20
- export interface DataSourceResult {
21
- /** The configured data provider (SQL Server or PostgreSQL) */
22
- provider: IMetadataProvider;
23
- /** Database-agnostic connection for CodeGen operations */
24
- connection: CodeGenConnection;
25
- /** The current user loaded from the user cache */
26
- currentUser: UserInfo;
27
- /** Connection info string for display */
28
- connectionInfo: string;
29
- }
16
+ type DataSourceResult = ProviderDataSourceResult;
30
17
  /**
31
18
  * Main orchestrator class for the MemberJunction code generation process.
32
19
  */
@@ -43,18 +30,20 @@ export declare class RunCodeGenBase {
43
30
  /** Record any failed entries from a BEFORE/AFTER command batch, paired by index. */
44
31
  protected recordCommandFailures(phase: string, cmds: CommandInfo[], results: CommandExecutionResult[]): void;
45
32
  /**
46
- * Sets up the data source based on the configured database type (SQL Server or PostgreSQL).
47
- * Initializes the appropriate data provider, connection, and user cache.
33
+ * Acquire the per-platform data source for a CodeGen run.
34
+ *
35
+ * Dispatches via `MJGlobal.Instance.ClassFactory.CreateInstance(CodeGenDatabaseProvider, platform)`
36
+ * — the same factory pattern used elsewhere in CodeGen (see e.g.
37
+ * `manage-metadata.ts`'s `get dbProvider()`). The actual pool / provider /
38
+ * user-loading lives on the resolved subclass's `SetupDataSource()`
39
+ * method, so adding a new platform means registering a new provider, not
40
+ * touching the orchestrator.
41
+ *
42
+ * Throws when no provider is registered for `configInfo.dbPlatform` —
43
+ * `ClassFactory.CreateInstance` returns the abstract base on a missed
44
+ * lookup, so we disambiguate by constructor identity.
48
45
  */
49
46
  setupDataSource(): Promise<DataSourceResult>;
50
- /**
51
- * Sets up SQL Server data source (original behavior).
52
- */
53
- protected setupSQLServerDataSource(): Promise<DataSourceResult>;
54
- /**
55
- * Sets up PostgreSQL data source.
56
- */
57
- protected setupPostgreSQLDataSource(): Promise<DataSourceResult>;
58
47
  /**
59
48
  * Main entry point for the complete code generation process.
60
49
  */
@@ -98,4 +87,5 @@ export declare function runMemberJunctionCodeGeneration(skipDatabaseGeneration?:
98
87
  * (e.g. `--format=json`) before the CLI exits.
99
88
  */
100
89
  export declare function runMemberJunctionCodeGenerationWithResult(skipDatabaseGeneration?: boolean, skipFileGeneration?: boolean): Promise<MJCLIResult>;
90
+ export {};
101
91
  //# sourceMappingURL=runCodeGen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runCodeGen.d.ts","sourceRoot":"","sources":["../src/runCodeGen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EAA4H,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGxK,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAmB,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAU5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAMvE,OAAO,EAAE,iBAAiB,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,8DAA8D,CAAC;AAKtE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,0DAA0D;IAC1D,UAAU,EAAE,iBAAiB,CAAC;IAC9B,kDAAkD;IAClD,WAAW,EAAE,QAAQ,CAAC;IACtB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB;;;;OAIG;IACH,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IAE5E,oFAAoF;IACpF,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAc5G;;;OAGG;IACU,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAUzD;;OAEG;cACa,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAwBrE;;OAEG;cACa,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAuDtE;;OAEG;IACH;;;;OAIG;IACU,YAAY,CAAC,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,GAAE,OAAe,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,kBAAkB,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBrK,GAAG,CAAC,sBAAsB,GAAE,OAAe,EAAE,kBAAkB,GAAE,OAAe;IAQ7F;;;;OAIG;IACU,aAAa,CAAC,sBAAsB,GAAE,OAAe,EAAE,kBAAkB,GAAE,OAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAgD9H;;;OAGG;cACa,sBAAsB,CAAC,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,GAAE,OAAe,EAAE,kBAAkB,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAmRpK;;;;;;;;OAQG;cACa,sBAAsB,CACpC,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,QAAQ,EACrB,EAAE,EAAE,EAAE,CAAC,QAAQ,EACf,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,OAAO,CAAC;CAiKpB;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CAAC,sBAAsB,GAAE,OAAe,EAAE,kBAAkB,GAAE,OAAe,iBAGjI;AAED;;;;;GAKG;AACH,wBAAsB,yCAAyC,CAC7D,sBAAsB,GAAE,OAAe,EACvC,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,WAAW,CAAC,CAGtB"}
1
+ {"version":3,"file":"runCodeGen.d.ts","sourceRoot":"","sources":["../src/runCodeGen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAA4G,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGxJ,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAmB,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAS5E,OAAO,EAAE,iBAAiB,EAA2B,gBAAgB,IAAI,wBAAwB,EAAkC,MAAM,oCAAoC,CAAC;AAI9K,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,8DAA8D,CAAC;AAStE,KAAK,gBAAgB,GAAG,wBAAwB,CAAC;AAEjD;;GAEG;AACH,qBAAa,cAAc;IACzB;;;;OAIG;IACH,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IAE5E,oFAAoF;IACpF,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAc5G;;;;;;;;;;;;;OAaG;IACU,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIzD;;OAEG;IACH;;;;OAIG;IACU,YAAY,CAAC,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,GAAE,OAAe,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,kBAAkB,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBrK,GAAG,CAAC,sBAAsB,GAAE,OAAe,EAAE,kBAAkB,GAAE,OAAe;IAQ7F;;;;OAIG;IACU,aAAa,CAAC,sBAAsB,GAAE,OAAe,EAAE,kBAAkB,GAAE,OAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAgD9H;;;OAGG;cACa,sBAAsB,CAAC,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,GAAE,OAAe,EAAE,kBAAkB,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAmRpK;;;;;;;;OAQG;cACa,sBAAsB,CACpC,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,QAAQ,EACrB,EAAE,EAAE,EAAE,CAAC,QAAQ,EACf,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,OAAO,CAAC;CAiMpB;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CAAC,sBAAsB,GAAE,OAAe,EAAE,kBAAkB,GAAE,OAAe,iBAGjI;AAED;;;;;GAKG;AACH,wBAAsB,yCAAyC,CAC7D,sBAAsB,GAAE,OAAe,EACvC,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,WAAW,CAAC,CAGtB"}
@@ -9,29 +9,23 @@
9
9
  import { GraphQLServerGeneratorBase } from './Misc/graphql_server_codegen.js';
10
10
  import { SQLCodeGenBase } from './Database/sql_codegen.js';
11
11
  import { EntitySubClassGeneratorBase } from './Misc/entity_subclasses_codegen.js';
12
- import { UserCache, setupSQLServerClient } from '@memberjunction/sqlserver-dataprovider';
13
- import { MSSQLConnection, getSqlConfig } from './Config/db-connection.js';
14
12
  import { ManageMetadataBase } from './Database/manage-metadata.js';
15
- import { outputDir, commands, mj_core_schema, configInfo, getSettingValue, dbPlatform, getExternalEntitySchemas, initializeConfig } from './Config/config.js';
13
+ import { outputDir, commands, configInfo, getSettingValue, dbPlatform, getExternalEntitySchemas, initializeConfig } from './Config/config.js';
16
14
  import { logError, logStatus, logWarning, startSpinner, updateSpinner, succeedSpinner, failSpinner, warnSpinner } from './Misc/status_logging.js';
17
15
  import { CodeGenReporter } from './Misc/codegen-reporter.js';
18
16
  import * as MJ from '@memberjunction/core';
19
17
  import { RunCommandsBase } from './Misc/runCommand.js';
20
18
  import { DBSchemaGeneratorBase } from './Database/dbSchema.js';
21
19
  import { AngularClientGeneratorBase } from './Angular/angular-codegen.js';
22
- import { SQLServerProviderConfigData } from '@memberjunction/sqlserver-dataprovider';
23
20
  import { CreateNewUserBase } from './Misc/createNewUser.js';
24
- import { MJGlobal, UUIDsEqual } from '@memberjunction/global';
21
+ import { MJGlobal } from '@memberjunction/global';
25
22
  import { ActionSubClassGeneratorBase } from './Misc/action_subclasses_codegen.js';
23
+ import { RemoteOperationGeneratorBase } from './Misc/remote_operations_codegen.js';
26
24
  import { SQLLogging } from './Misc/sql_logging.js';
27
- import { SQLServerCodeGenConnection } from './Database/providers/sqlserver/SQLServerCodeGenConnection.js';
28
- import { PostgreSQLCodeGenConnection } from './Database/providers/postgresql/PostgreSQLCodeGenConnection.js';
29
- import { PostgreSQLDataProvider, PostgreSQLProviderConfigData } from '@memberjunction/postgresql-dataprovider';
30
- import pg from 'pg';
25
+ import { resolveCodeGenDatabaseProvider } from './Database/codeGenDatabaseProvider.js';
31
26
  import { SystemIntegrityBase } from './Misc/system_integrity.js';
32
27
  import { ActionEngineBase } from '@memberjunction/actions-base';
33
28
  import { AIEngine } from '@memberjunction/aiengine';
34
- import { SetProvider, UserInfo } from '@memberjunction/core';
35
29
  // Import pre-built MJ class registrations manifest (covers all @memberjunction/* packages)
36
30
  import '@memberjunction/server-bootstrap-lite/mj-class-registrations';
37
31
  /** Extract core schema name from configuration */
@@ -63,85 +57,21 @@ export class RunCodeGenBase {
63
57
  });
64
58
  }
65
59
  /**
66
- * Sets up the data source based on the configured database type (SQL Server or PostgreSQL).
67
- * Initializes the appropriate data provider, connection, and user cache.
60
+ * Acquire the per-platform data source for a CodeGen run.
61
+ *
62
+ * Dispatches via `MJGlobal.Instance.ClassFactory.CreateInstance(CodeGenDatabaseProvider, platform)`
63
+ * — the same factory pattern used elsewhere in CodeGen (see e.g.
64
+ * `manage-metadata.ts`'s `get dbProvider()`). The actual pool / provider /
65
+ * user-loading lives on the resolved subclass's `SetupDataSource()`
66
+ * method, so adding a new platform means registering a new provider, not
67
+ * touching the orchestrator.
68
+ *
69
+ * Throws when no provider is registered for `configInfo.dbPlatform` —
70
+ * `ClassFactory.CreateInstance` returns the abstract base on a missed
71
+ * lookup, so we disambiguate by constructor identity.
68
72
  */
69
73
  async setupDataSource() {
70
- startSpinner('Initializing database connection...');
71
- const platform = dbPlatform();
72
- if (platform === 'postgresql') {
73
- return this.setupPostgreSQLDataSource();
74
- }
75
- return this.setupSQLServerDataSource();
76
- }
77
- /**
78
- * Sets up SQL Server data source (original behavior).
79
- */
80
- async setupSQLServerDataSource() {
81
- const pool = await MSSQLConnection();
82
- const config = new SQLServerProviderConfigData(pool, mj_core_schema());
83
- const provider = await setupSQLServerClient(config);
84
- const conn = new SQLServerCodeGenConnection(pool);
85
- // `getSqlConfig()` returns the config that was built lazily by
86
- // MSSQLConnection() above. The non-null assertion is safe because the
87
- // call to MSSQLConnection on the line above is what guarantees the
88
- // accessor has a value to return.
89
- const cfg = getSqlConfig();
90
- let connectionInfo = cfg.server;
91
- if (cfg.port)
92
- connectionInfo += ':' + cfg.port;
93
- if (cfg.options?.instanceName)
94
- connectionInfo += '\\' + cfg.options.instanceName;
95
- connectionInfo += '/' + cfg.database;
96
- await UserCache.Instance.Refresh(pool);
97
- const userMatch = UserCache.Users.find((u) => u?.Type?.trim().toLowerCase() === 'owner');
98
- const currentUser = userMatch ? userMatch : UserCache.Users[0];
99
- succeedSpinner('SQL Server connection initialized: ' + connectionInfo);
100
- return { provider, connection: conn, currentUser, connectionInfo };
101
- }
102
- /**
103
- * Sets up PostgreSQL data source.
104
- */
105
- async setupPostgreSQLDataSource() {
106
- const pgHost = process.env.PG_HOST ?? configInfo.dbHost;
107
- const pgPort = parseInt(process.env.PG_PORT ?? String(configInfo.dbPort), 10) || 5432;
108
- const pgDatabase = process.env.PG_DATABASE ?? configInfo.dbDatabase;
109
- const pgUser = process.env.PG_USERNAME ?? configInfo.codeGenLogin;
110
- const pgPassword = process.env.PG_PASSWORD ?? configInfo.codeGenPassword;
111
- const coreSchema = mj_core_schema();
112
- const pool = new pg.Pool({
113
- host: pgHost,
114
- port: pgPort,
115
- database: pgDatabase,
116
- user: pgUser,
117
- password: pgPassword,
118
- max: 20,
119
- });
120
- // Test connection
121
- const client = await pool.connect();
122
- client.release();
123
- // Configure the PostgreSQL data provider
124
- const pgConfig = new PostgreSQLProviderConfigData({ Host: pgHost, Port: pgPort, Database: pgDatabase, User: pgUser, Password: pgPassword }, coreSchema, 1 // checkRefreshIntervalSeconds: must be > 0 to trigger initial metadata load
125
- );
126
- const provider = new PostgreSQLDataProvider();
127
- await provider.Config(pgConfig);
128
- SetProvider(provider);
129
- const conn = new PostgreSQLCodeGenConnection(pool);
130
- // Load users (PostgreSQL version - query views directly)
131
- const usersResult = await conn.query('SELECT * FROM "' + coreSchema + '"."vwUsers"');
132
- const rolesResult = await conn.query('SELECT * FROM "' + coreSchema + '"."vwUserRoles"');
133
- const userInfos = usersResult.recordset.map((user) => {
134
- user.UserRoles = rolesResult.recordset.filter((role) => UUIDsEqual(role.UserID, user.ID));
135
- return new UserInfo(provider, user);
136
- });
137
- const userMatch = userInfos.find((u) => u?.Type?.trim().toLowerCase() === 'owner');
138
- const currentUser = userMatch ?? userInfos[0];
139
- if (!currentUser) {
140
- throw new Error('No users found in PostgreSQL. Ensure vwUsers has at least one user.');
141
- }
142
- const connectionInfo = pgHost + ':' + pgPort + '/' + pgDatabase;
143
- succeedSpinner('PostgreSQL connection initialized: ' + connectionInfo);
144
- return { provider, connection: conn, currentUser, connectionInfo };
74
+ return resolveCodeGenDatabaseProvider(dbPlatform()).SetupDataSource();
145
75
  }
146
76
  /**
147
77
  * Main entry point for the complete code generation process.
@@ -669,6 +599,38 @@ export class RunCodeGenBase {
669
599
  }
670
600
  else if (isVerbose)
671
601
  warnSpinner('Actions output directory NOT found in config file, skipping...');
602
+ // Remote Operations — emit the typed BaseRemotableOperation subclass for each MJ: Remote Operations row.
603
+ // Two output targets, parallel to the entity-subclass split: `CoreRemoteOperations` (MJ core ops, shipped
604
+ // in @memberjunction/core-entities) and `RemoteOperations` (downstream/user ops, their GeneratedEntities).
605
+ // NOTE: ops have no SchemaName, so there is no automatic core/non-core PARTITION (the entity split keys on
606
+ // SchemaName === mjCoreSchema). Each configured target therefore receives the full op set; in practice a
607
+ // repo configures exactly one (this repo: CoreRemoteOperations only). A per-op core/non-core marker — the
608
+ // SchemaName-equivalent — is the open decision needed to let a single DB route ops to both targets.
609
+ const coreRemoteOpsDir = outputDir('CoreRemoteOperations', false);
610
+ const nonCoreRemoteOpsDir = outputDir('RemoteOperations', false);
611
+ if (coreRemoteOpsDir || nonCoreRemoteOpsDir) {
612
+ const remoteOpsResult = await new MJ.RunView().RunView({ EntityName: 'MJ: Remote Operations', ResultType: 'entity_object' }, currentUser);
613
+ const remoteOps = remoteOpsResult.Results ?? [];
614
+ const remoteOpsGenerator = MJGlobal.Instance.ClassFactory.CreateInstance(RemoteOperationGeneratorBase);
615
+ for (const target of [
616
+ { dir: coreRemoteOpsDir, label: 'CORE Remote Operation', phase: 'generateRemoteOperationsCore' },
617
+ { dir: nonCoreRemoteOpsDir, label: 'Remote Operation', phase: 'generateRemoteOperations' },
618
+ ]) {
619
+ if (!target.dir)
620
+ continue;
621
+ if (isVerbose)
622
+ startSpinner(`Generating ${target.label} typed bases...`);
623
+ const ok = await reporter.phase(target.phase, () => remoteOpsGenerator.generateRemoteOperations(remoteOps, target.dir));
624
+ if (!ok) {
625
+ failSpinner(`Error generating ${target.label} code`);
626
+ return false;
627
+ }
628
+ else if (isVerbose)
629
+ succeedSpinner(`${target.label} typed bases generated`);
630
+ }
631
+ }
632
+ else if (isVerbose)
633
+ warnSpinner('Remote Operations output directory NOT found in config file, skipping...');
672
634
  SQLLogging.finishSQLLogging();
673
635
  if (!isVerbose)
674
636
  succeedSpinner('TypeScript code generation completed');
@@ -1 +1 @@
1
- {"version":3,"file":"runCodeGen.js","sourceRoot":"","sources":["../src/runCodeGen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runCodeGen.js","sourceRoot":"","sources":["../src/runCodeGen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,wBAAwB,EAAE,gBAAgB,EAAe,MAAM,iBAAiB,CAAC;AACxJ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/I,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAA0B,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAA4F,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAC9K,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAKpD,2FAA2F;AAC3F,OAAO,8DAA8D,CAAC;AAEtE,kDAAkD;AAClD,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;AAQpC;;GAEG;AACH,MAAM,OAAO,cAAc;IAA3B;QACE;;;;WAIG;QACO,oBAAe,GAAgD,EAAE,CAAC;IAkmB9E,CAAC;IAhmBC,oFAAoF;IAC1E,qBAAqB,CAAC,KAAa,EAAE,IAAmB,EAAE,OAAiC;QACnG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChG,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACxB,OAAO,EAAE,GAAG,KAAK,UAAU;oBAC3B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,WAAW;iBAC/E,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,KAAK,CAAC,eAAe;QAC1B,OAAO,8BAA8B,CAAC,UAAU,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxE,CAAC;IAED;;OAEG;IACH;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,UAA4B,EAAE,yBAAkC,KAAK,EAAE,gBAAyB,EAAE,qBAA8B,KAAK;QAC7J,IAAI,CAAC;YACH,6EAA6E;YAC7E,wEAAwE;YACxE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YACrC,CAAC;YACD,gGAAgG;YAChG,iGAAiG;YACjG,oGAAoG;YACpG,mGAAmG;YACnG,iGAAiG;YACjG,kBAAkB,CAAC,6BAA6B,EAAE,CAAC;YACnD,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,QAAQ,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,yBAAkC,KAAK,EAAE,qBAA8B,KAAK;QAC3F,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,yBAAkC,KAAK,EAAE,qBAA8B,KAAK;QACrG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;YAC9B,YAAY,CAAC,mCAAmC,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAEnG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;YAE1G,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,WAAW,GAAG,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;YAED,6EAA6E;YAC7E,gEAAgE;YAChE,MAAM,MAAM,GAAG,OAAO;gBACpB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;oBAC/B,CAAC,CAAC,IAAI,CAAC,eAAe;oBACtB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,4EAA4E,EAAE,CAAC,CAAC;YAElG,OAAO;gBACL,OAAO;gBACP,OAAO,EAAE,SAAS;gBAClB,eAAe,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI;gBAC9C,IAAI,EAAE;oBACJ,WAAW;oBACX,SAAS,EAAE,sBAAsB,IAAI,eAAe,CAAC,0BAA0B,EAAE,KAAK,CAAC;oBACvF,YAAY,EAAE,kBAAkB,IAAI,eAAe,CAAC,sBAAsB,EAAE,KAAK,CAAC;iBACnF;gBACD,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;YACpC,QAAQ,CAAC,CAAW,CAAC,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,SAAS;gBAClB,eAAe,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI;gBAC9C,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;aAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,sBAAsB,CAAC,UAA4B,EAAE,yBAAkC,KAAK,EAAE,qBAA8B,KAAK;QAC7I,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;QAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAsB,IAAI,eAAe,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,CAAC;QACtG,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC;YACJ,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;gBACzD,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACnD,CAAC;gBACD,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,yBAAyB,CAAC,CAAC;gBAErE,IAAI,UAAU,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;oBAC5D,YAAY,CAAC,mDAAmD,CAAC,CAAC;oBAClE,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACnD,cAAc,CAAC,uBAAuB,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAkB,eAAe,CAAE,CAAC;YAC3G,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAiB,cAAc,CAAE,CAAC;YAExG,MAAM,MAAM,GAAG,sBAAsB,IAAI,eAAe,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC5F,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,YAAY,CAAC,mFAAmF,CAAC,CAAC;gBAClG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAE5B,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,aAAa,CAAC,8BAA8B,CAAC,CAAC;oBAC9C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;oBACpE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpC,QAAQ,CAAC,2CAA2C,CAAC,CAAC;wBACtD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;gBAED,aAAa,CAAC,qCAAqC,CAAC,CAAC;gBACrD,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;oBAAE,QAAQ,CAAC,sCAAsC,CAAC,CAAC;gBAExH,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;gBAC7C,IAAI,YAAY,EAAE,CAAC;oBACjB,aAAa,CAAC,wBAAwB,CAAC,CAAC;oBACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAoB,iBAAiB,CAAE,CAAC;oBAC3G,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oBAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpB,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;4BAChC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;wBACnC,CAAC;6BAAM,CAAC;4BACN,UAAU,CAAC,4BAA4B,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC5D,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAqB,kBAAkB,CAAE,CAAC;gBACxG,aAAa,CAAC,sBAAsB,CAAC,CAAC;gBACtC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBACjH,yFAAyF;gBACzF,0FAA0F;gBAC1F,sFAAsF;gBACtF,sFAAsF;gBACtF,uFAAuF;gBACvF,uEAAuE;gBACvE,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,WAAW,CAAC,uFAAuF,CAAC,CAAC;oBACrG,eAAe,GAAG,KAAK,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,+BAA+B,CAAC,CAAC;gBAClD,CAAC;gBAED,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC5C,IAAI,sBAAsB,GAAG,IAAI,CAAC;gBAClC,IAAI,YAAY,EAAE,CAAC;oBACjB,YAAY,CAAC,uCAAuC,CAAC,CAAC;oBACtD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAC3E,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAC5F,CAAC;oBACF,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,WAAW,CAAC,0CAA0C,CAAC,CAAC;wBACxD,sBAAsB,GAAG,KAAK,CAAC;wBAC/B,eAAe,GAAG,KAAK,CAAC;oBAC1B,CAAC;yBAAM,CAAC;wBACN,cAAc,CAAC,qCAAqC,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,4DAA4D,CAAC,CAAC;gBAC5E,CAAC;gBAED,uEAAuE;gBACvE,sEAAsE;gBACtE,oEAAoE;gBACpE,gEAAgE;gBAChE,gEAAgE;gBAChE,+DAA+D;gBAC/D,gEAAgE;gBAChE,oEAAoE;gBACpE,kDAAkD;gBAClD,EAAE;gBACF,iEAAiE;gBACjE,qEAAqE;gBACrE,gEAAgE;gBAChE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM,CAAC;gBAClF,IAAI,kBAAkB,EAAE,CAAC;oBACvB,UAAU,CAAC,uFAAuF,CAAC,CAAC;gBACtG,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,wDAAwD,CAAC,CAAC;oBACvE,IAAI,CAAC;wBACH,qEAAqE;wBACrE,oEAAoE;wBACpE,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;wBACzD,IAAI,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBAE9F,iEAAiE;wBACjE,kEAAkE;wBAClE,8DAA8D;wBAC9D,gEAAgE;wBAChE,+DAA+D;wBAC/D,kEAAkE;wBAClE,8DAA8D;wBAC9D,6DAA6D;wBAC7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;+BACf,OAAQ,gBAAgB,CAAC,UAA2D;iCAClF,mBAAmB,KAAK,UAAU,EAAE,CAAC;4BAC5C,SAAS,CACP,YAAY,OAAO,CAAC,MAAM,2EAA2E,CACtG,CAAC;4BACF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;4BACzD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gCACxB,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gCACpC,IAAI,CAAC;oCAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;4BACxC,CAAC;4BACD,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;gCAC9C,IAAI,CAAC;oCACH,MAAM,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gCACxE,CAAC;gCAAC,OAAO,IAAI,EAAE,CAAC;oCACd,SAAS,CACP,gCAAgC,MAAM,CAAC,IAAI,WAAW,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC5G,CAAC;gCACJ,CAAC;4BACH,CAAC;4BACD,yDAAyD;4BACzD,iDAAiD;4BACjD,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;4BAC1F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCACzB,SAAS,CAAC,4DAA4D,CAAC,CAAC;gCACxE,2DAA2D;gCAC3D,0DAA0D;gCAC1D,2DAA2D;gCAC3D,6DAA6D;gCAC7D,uDAAuD;gCACvD,mDAAmD;gCACnD,wDAAwD;gCACxD,2DAA2D;gCAC3D,wDAAwD;gCACxD,0DAA0D;gCAC1D,sBAAsB,GAAG,IAAI,CAAC;gCAC9B,eAAe,GAAG,IAAI,CAAC;4BACzB,CAAC;wBACH,CAAC;wBAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvB,MAAM,IAAI,GAAG,OAAO;iCACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,eAAe,EAAE,CAAC;iCAC3F,IAAI,CAAC,IAAI,CAAC,CAAC;4BACd,WAAW,CAAC,wCAAwC,OAAO,CAAC,MAAM,8BAA8B,CAAC,CAAC;4BAClG,QAAQ,CACN,oCAAoC,OAAO,CAAC,MAAM,qEAAqE;gCACrH,sHAAsH;gCACtH,+HAA+H;gCAC/H,GAAG,IAAI,MAAM;gCACb,kBAAkB;gCAClB,qEAAqE;gCACrE,0EAA0E;gCAC1E,oEAAoE;gCACpE,2GAA2G,CAC9G,CAAC;4BACF,OAAO,KAAK,CAAC;wBACf,CAAC;6BAAM,CAAC;4BACN,cAAc,CAAC,wCAAwC,EAAE,CAAC,QAAQ,CAAC,MAAM,oBAAoB,CAAC,CAAC;wBACjG,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,WAAW,CAAC,sCAAsC,CAAC,CAAC;wBACpD,QAAQ,CAAC,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAChF,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,oEAAoE;gBACpE,uEAAuE;gBACvE,gDAAgD;gBAChD,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC5B,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,gEAAgE,CAAC,CAAC;gBAE9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAqB,kBAAkB,CAAE,CAAC;gBACxG,YAAY,CAAC,qDAAqD,CAAC,CAAC;gBACpE,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;gBACvH,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,WAAW,CAAC,wDAAwD,CAAC,CAAC;oBACtE,eAAe,GAAG,KAAK,CAAC;oBACxB,OAAO,KAAK,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,wCAAwC,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,kBAAkB,IAAI,eAAe,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACvF,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,CAAC,wDAAwD,CAAC,CAAC;gBACtE,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC/E,eAAe,GAAG,KAAK,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,YAAY,CAAC,oCAAoC,CAAC,CAAC;YACnD,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzD,cAAc,CAAC,mCAAmC,CAAC,CAAC;YAEpD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,YAAY,CAAC,6BAA6B,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACnE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,WAAW,CAAC,0CAA0C,CAAC,CAAC;oBACxD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC9D,CAAC;;oBACI,cAAc,CAAC,0BAA0B,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,YAAY,CAAC,oCAAoC,CAAC,CAAC;gBACnD,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBAAE,WAAW,CAAC,qCAAqC,CAAC,CAAC;;oBACpH,cAAc,CAAC,iCAAiC,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;YACtE,8EAA8E;YAC9E,+EAA+E;YAC/E,wBAAwB;YACxB,cAAc,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,MAAM,gBAAgB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACtG,SAAS,CAAC,uBAAuB,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,yBAAyB,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;YACvI,6EAA6E;YAC7E,4EAA4E;YAC5E,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAe,GAAG,KAAK,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzE,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzE,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACnF,yEAAyE;gBACzE,0EAA0E;gBAC1E,wDAAwD;gBACxD,MAAM,KAAK,GAAI,kBAAqF,CAAC,0BAA0B,CAAC;gBAChI,IAAI,KAAK;oBAAE,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACnE,CAAC;YAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;YAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC5D,IAAI,QAAQ;gBAAE,SAAS,CAAC,0BAA0B,GAAG,QAAQ,CAAC,CAAC;QACjE,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACO,KAAK,CAAC,sBAAsB,CACpC,IAAuB,EACvB,WAAqB,EACrB,EAAe,EACf,MAAe;QAEb,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;QAC1C,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,mBAAmB,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CACxE,CAAC;QAEF,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACnE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,gBAAgB,GAAG,WAAW;iBACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;iBAC9E,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACjB,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACnC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrC,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAA4B,CAAC,CAAC;YACnC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;iBACnD,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;iBAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,SAAS,CAAC,WAAW,GAAG,aAAa,GAAG,4CAA4C,GAAG,aAAa,CAAC,CAAC;QACxG,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAC/E,CAAC;QACF,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAC/E,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,EAAE,aAAa,IAAI,KAAK,CAAC;QACrD,IAAI,CAAC,SAAS;YAAE,YAAY,CAAC,+BAA+B,CAAC,CAAC;QAE9D,MAAM,6BAA6B,GAAG,SAAS,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACrF,IAAI,6BAA6B,EAAE,CAAC;YAClC,IAAI,SAAS;gBAAE,YAAY,CAAC,iDAAiD,CAAC,CAAC;YAC/E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA6B,0BAA0B,CAAE,CAAC;YAChI,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAChE,gBAAgB,CAAC,yBAAyB,CAAC,YAAY,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,IAAI,CAAC,CAC/H,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,sCAAsC,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS;gBAAE,cAAc,CAAC,6CAA6C,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,SAAS;gBAAE,YAAY,CAAC,qCAAqC,CAAC,CAAC;YACnE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA6B,0BAA0B,CAAE,CAAC;YAChI,MAAM,iBAAiB,GAAG,OAAO,UAAU,CAAC,iBAAiB,KAAK,QAAQ;gBACxE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,IAAI,sBAAsB,CAAC;gBAC1D,CAAC,CAAC,sBAAsB,CAAC;YAC3B,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAC5D,gBAAgB,CAAC,yBAAyB,CAAC,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,CAAC,CACxG,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS;gBAAE,cAAc,CAAC,iCAAiC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,SAAS;YAAE,WAAW,CAAC,uEAAuE,CAAC,CAAC;QAE3G,MAAM,2BAA2B,GAAG,SAAS,CAAC,sBAAsB,EAAE,KAAK,CAAE,CAAC;QAC9E,IAAI,2BAA2B,IAAI,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1E,IAAI,SAAS;gBAAE,YAAY,CAAC,yCAAyC,CAAC,CAAC;YACvE,MAAM,6BAA6B,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA8B,2BAA2B,CAAE,CAAC;YAC/I,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,EAAE,CACnE,6BAA6B,CAAC,2BAA2B,CAAC,IAAI,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,CAAC,CACnH,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,uCAAuC,CAAC,CAAC;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS;gBAAE,cAAc,CAAC,qCAAqC,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,eAAe,GAAG,wBAAwB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7E,MAAM,oBAAoB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;YACrD,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YACpF,CAAC,CAAC,eAAe,CAAC;QAEpB,MAAM,uBAAuB,GAAG,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAE,CAAC;QACrE,IAAI,uBAAuB,EAAE,CAAC;YAC5B,IAAI,SAAS;gBAAE,YAAY,CAAC,oCAAoC,CAAC,CAAC;YAClE,MAAM,6BAA6B,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA8B,2BAA2B,CAAE,CAAC;YAC/I,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAC/D,6BAA6B,CAAC,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,CAAC,CACvH,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,uCAAuC,CAAC,CAAC;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS;gBAAE,cAAc,CAAC,gCAAgC,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,SAAS;YAAE,WAAW,CAAC,wEAAwE,CAAC,CAAC;QAE5G,MAAM,4BAA4B,GAAG,SAAS,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC7E,IAAI,4BAA4B,EAAE,CAAC;YACjC,IAAI,SAAS;gBAAE,YAAY,CAAC,0CAA0C,CAAC,CAAC;YACxE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA6B,0BAA0B,CAAE,CAAC;YAChI,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAC1D,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,CAAC,CACtG,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,6CAA6C,CAAC,CAAC;gBAC3D,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS;gBAAE,cAAc,CAAC,sCAAsC,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,SAAS;gBAAE,YAAY,CAAC,4BAA4B,CAAC,CAAC;YAC1D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA6B,0BAA0B,CAAE,CAAC;YAChI,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,EAAE,CACtD,gBAAgB,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,CAAC,CAC9F,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS;gBAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,SAAS;YAAE,WAAW,CAAC,gEAAgE,CAAC,CAAC;QAEpG,MAAM,iBAAiB,GAAG,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,SAAS;gBAAE,YAAY,CAAC,2CAA2C,CAAC,CAAC;YACzE,MAAM,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAwB,qBAAqB,CAAE,CAAC;YAC3H,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;gBAClD,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC;oBACtF,WAAW,CAAC,wEAAwE,CAAC,CAAC;gBACxF,CAAC;qBAAM,IAAI,SAAS;oBAAE,cAAc,CAAC,uCAAuC,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,SAAS;YAAE,WAAW,CAAC,kEAAkE,CAAC,CAAC;QAEtG,MAAM,oBAAoB,GAAG,SAAS,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,SAAS;gBAAE,YAAY,CAAC,iCAAiC,CAAC,CAAC;YAC/D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA8B,2BAA2B,CAAE,CAAC;YAClI,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAC1D,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAC9F,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS;gBAAE,cAAc,CAAC,6BAA6B,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,SAAS;gBAAE,YAAY,CAAC,4BAA4B,CAAC,CAAC;YAC1D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA8B,2BAA2B,CAAE,CAAC;YAClI,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,EAAE,CACtD,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAC7F,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,WAAW,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,SAAS;gBAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,SAAS;YAAE,WAAW,CAAC,gEAAgE,CAAC,CAAC;QAEpG,yGAAyG;QACzG,0GAA0G;QAC1G,2GAA2G;QAC3G,2GAA2G;QAC3G,yGAAyG;QACzG,0GAA0G;QAC1G,oGAAoG;QACpG,MAAM,gBAAgB,GAAG,SAAS,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAClE,MAAM,mBAAmB,GAAG,SAAS,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACjE,IAAI,gBAAgB,IAAI,mBAAmB,EAAE,CAAC;YAC5C,MAAM,eAAe,GAAG,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CACpD,EAAE,UAAU,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,EACpE,WAAW,CACZ,CAAC;YACF,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,IAAI,EAAE,CAAC;YAChD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA+B,4BAA4B,CAAE,CAAC;YACtI,KAAK,MAAM,MAAM,IAAI;gBACnB,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,8BAA8B,EAAE;gBAChG,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,0BAA0B,EAAE;aAC3F,EAAE,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,GAAG;oBAAE,SAAS;gBAC1B,IAAI,SAAS;oBAAE,YAAY,CAAC,cAAc,MAAM,CAAC,KAAK,iBAAiB,CAAC,CAAC;gBACzE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CACjD,kBAAkB,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,GAAI,CAAC,CACpE,CAAC;gBACF,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,WAAW,CAAC,oBAAoB,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;oBACrD,OAAO,KAAK,CAAC;gBACf,CAAC;qBAAM,IAAI,SAAS;oBAAE,cAAc,CAAC,GAAG,MAAM,CAAC,KAAK,wBAAwB,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;aAAM,IAAI,SAAS;YAAE,WAAW,CAAC,0EAA0E,CAAC,CAAC;QAE9G,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS;YAAE,cAAc,CAAC,sCAAsC,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,yBAAkC,KAAK,EAAE,qBAA8B,KAAK;IAChI,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAiB,cAAc,CAAE,CAAC;IACjG,OAAO,MAAM,SAAS,CAAC,GAAG,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yCAAyC,CAC7D,yBAAkC,KAAK,EACvC,qBAA8B,KAAK;IAEnC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAiB,cAAc,CAAE,CAAC;IACjG,OAAO,MAAM,SAAS,CAAC,aAAa,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AACnF,CAAC"}