@cogitator-ai/neuro-symbolic 17.0.8 → 17.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -536,6 +536,8 @@ await neo4j.connect();
536
536
 
537
537
  All adapters scope traversal and shortest-path search to the requesting agent, treat bidirectional edges as traversable in both directions and reject merges into a node listed among its own sources.
538
538
 
539
+ The Postgres adapter uses the pgvector extension for `searchNodesSemantic()`. It indexes node embeddings with HNSW, which needs no training data, so the index built on the empty table finds every node as the graph grows. Earlier versions built an `ivfflat` index there, which missed nodes once Postgres used it (a search for 60 nodes in a graph of 3000 returned 31). The first `connect()` after upgrading replaces that index with HNSW, which takes a while on a large graph. To avoid the wait, build the index ahead of the deploy with `CREATE INDEX CONCURRENTLY idx_graph_nodes_embedding_new ON cogitator_graph.graph_nodes USING hnsw (embedding vector_cosine_ops)`, then drop the old index and rename the new one to `idx_graph_nodes_embedding`. An existing HNSW index is kept as it is. Each search raises `hnsw.ef_search` to the requested `limit` (up to 1000) and, on pgvector 0.8 or later, turns on iterative scans, so a large limit or an `entityTypes` filter still gets every matching node. Equally similar nodes are ordered by id.
540
+
539
541
  ---
540
542
 
541
543
  ## Module Imports
@@ -0,0 +1,46 @@
1
+ /**
2
+ * pgvector helpers for the Postgres graph adapter: the vector index it builds and the settings
3
+ * a nearest-neighbour query runs with. They match the ones `@cogitator-ai/memory` uses.
4
+ */
5
+ export interface SqlQueryable {
6
+ query(text: string, values?: unknown[]): Promise<{
7
+ rows: Record<string, unknown>[];
8
+ }>;
9
+ }
10
+ export interface HnswIndexTarget {
11
+ schema: string;
12
+ table: string;
13
+ column: string;
14
+ index: string;
15
+ }
16
+ /** What the installed pgvector lets a search tune on its HNSW index. */
17
+ export interface VectorSearchTuning {
18
+ /** pgvector 0.8 and later keep scanning the index until enough rows pass the filters. */
19
+ iterativeScan: boolean;
20
+ }
21
+ /**
22
+ * Makes sure `target.index` is an HNSW cosine index. HNSW needs no training rows, so unlike IVFFlat
23
+ * it can be built on the still empty table at connect time and keeps full recall as rows arrive.
24
+ * An index of the same name with another access method, such as the IVFFlat index earlier versions
25
+ * built, is dropped and rebuilt. An HNSW index that already exists is left alone, so it can be
26
+ * built ahead of a deploy with `CREATE INDEX CONCURRENTLY`.
27
+ */
28
+ export declare function ensureHnswCosineIndex(db: SqlQueryable, target: HnswIndexTarget): Promise<void>;
29
+ /** Reads the installed pgvector version and what it supports. */
30
+ export declare function detectVectorSearchTuning(db: SqlQueryable): Promise<VectorSearchTuning>;
31
+ /**
32
+ * How one nearest-neighbour search runs on an HNSW index. The index returns at most
33
+ * `hnsw.ef_search` candidates (40 by default), so a larger limit would be cut short, and rows a
34
+ * filter rejects would be missing from the result. `sql` grows the candidate list with the limit
35
+ * for the current transaction and, where pgvector supports it, keeps the scan going in strict
36
+ * distance order until enough rows pass. `candidates` is how many rows to fetch, at least as many
37
+ * as the index computes anyway: taking all of them and ordering equally distant rows by id makes
38
+ * the result independent of whether Postgres plans the index or an exact scan, so a small limit
39
+ * returns a prefix of a large one.
40
+ */
41
+ export declare function hnswSearchSettings(limit: number, tuning: VectorSearchTuning): {
42
+ sql: string;
43
+ params: unknown[];
44
+ candidates: number;
45
+ };
46
+ //# sourceMappingURL=pgvector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgvector.d.ts","sourceRoot":"","sources":["../../../src/knowledge-graph/adapters/pgvector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;CACvF;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,aAAa,EAAE,OAAO,CAAC;CACxB;AAKD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,iEAAiE;AACjE,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAM5F;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,kBAAkB,GACzB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAUxD"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * pgvector helpers for the Postgres graph adapter: the vector index it builds and the settings
3
+ * a nearest-neighbour query runs with. They match the ones `@cogitator-ai/memory` uses.
4
+ */
5
+ const DEFAULT_EF_SEARCH = 40;
6
+ const MAX_EF_SEARCH = 1000;
7
+ /**
8
+ * Makes sure `target.index` is an HNSW cosine index. HNSW needs no training rows, so unlike IVFFlat
9
+ * it can be built on the still empty table at connect time and keeps full recall as rows arrive.
10
+ * An index of the same name with another access method, such as the IVFFlat index earlier versions
11
+ * built, is dropped and rebuilt. An HNSW index that already exists is left alone, so it can be
12
+ * built ahead of a deploy with `CREATE INDEX CONCURRENTLY`.
13
+ */
14
+ export async function ensureHnswCosineIndex(db, target) {
15
+ const { schema, table, column, index } = target;
16
+ const existing = await db.query('SELECT indexdef FROM pg_indexes WHERE schemaname = lower($1) AND indexname = lower($2)', [schema, index]);
17
+ const definition = existing.rows[0]?.indexdef;
18
+ if (typeof definition === 'string') {
19
+ if (/\busing hnsw\b/i.test(definition))
20
+ return;
21
+ await db.query(`DROP INDEX IF EXISTS ${schema}.${index}`);
22
+ }
23
+ await db.query(`CREATE INDEX IF NOT EXISTS ${index} ON ${schema}.${table} USING hnsw (${column} vector_cosine_ops)`);
24
+ }
25
+ /** Reads the installed pgvector version and what it supports. */
26
+ export async function detectVectorSearchTuning(db) {
27
+ const result = await db.query("SELECT extversion FROM pg_extension WHERE extname = 'vector'");
28
+ const version = result.rows[0]?.extversion;
29
+ if (typeof version !== 'string')
30
+ return { iterativeScan: false };
31
+ const [major = 0, minor = 0] = version.split('.').map((part) => Number.parseInt(part, 10));
32
+ return { iterativeScan: major > 0 || minor >= 8 };
33
+ }
34
+ /**
35
+ * How one nearest-neighbour search runs on an HNSW index. The index returns at most
36
+ * `hnsw.ef_search` candidates (40 by default), so a larger limit would be cut short, and rows a
37
+ * filter rejects would be missing from the result. `sql` grows the candidate list with the limit
38
+ * for the current transaction and, where pgvector supports it, keeps the scan going in strict
39
+ * distance order until enough rows pass. `candidates` is how many rows to fetch, at least as many
40
+ * as the index computes anyway: taking all of them and ordering equally distant rows by id makes
41
+ * the result independent of whether Postgres plans the index or an exact scan, so a small limit
42
+ * returns a prefix of a large one.
43
+ */
44
+ export function hnswSearchSettings(limit, tuning) {
45
+ const efSearch = Math.min(MAX_EF_SEARCH, Math.max(DEFAULT_EF_SEARCH, Math.ceil(limit)));
46
+ const iterative = tuning.iterativeScan
47
+ ? ", set_config('hnsw.iterative_scan', 'strict_order', true)"
48
+ : '';
49
+ return {
50
+ sql: `SELECT set_config('hnsw.ef_search', $1, true)${iterative}`,
51
+ params: [String(efSearch)],
52
+ candidates: Math.max(efSearch, Math.ceil(limit)),
53
+ };
54
+ }
55
+ //# sourceMappingURL=pgvector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgvector.js","sourceRoot":"","sources":["../../../src/knowledge-graph/adapters/pgvector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAgB,EAChB,MAAuB;IAEvB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B,wFAAwF,EACxF,CAAC,MAAM,EAAE,KAAK,CAAC,CAChB,CAAC;IACF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IAC9C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO;QAC/C,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,CACZ,8BAA8B,KAAK,OAAO,MAAM,IAAI,KAAK,gBAAgB,MAAM,qBAAqB,CACrG,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAgB;IAC7D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACjE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3F,OAAO,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,MAA0B;IAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa;QACpC,CAAC,CAAC,2DAA2D;QAC7D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,GAAG,EAAE,gDAAgD,SAAS,EAAE;QAChE,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjD,CAAC;AACJ,CAAC"}
@@ -10,6 +10,7 @@ export declare class PostgresGraphAdapter implements GraphAdapter {
10
10
  private config;
11
11
  private schema;
12
12
  private vectorDimensions;
13
+ private vectorTuning;
13
14
  constructor(config: PostgresGraphAdapterConfig);
14
15
  connect(): Promise<MemoryResult<void>>;
15
16
  private initSchema;
@@ -23,6 +24,8 @@ export declare class PostgresGraphAdapter implements GraphAdapter {
23
24
  searchNodesSemantic(options: GraphSemanticSearchOptions): Promise<MemoryResult<(GraphNode & {
24
25
  score: number;
25
26
  })[]>>;
27
+ /** Runs `work` on one pooled connection inside a transaction, so `SET LOCAL` style settings apply to it only. */
28
+ private inTransaction;
26
29
  addEdge(edge: Omit<GraphEdge, 'id' | 'createdAt' | 'updatedAt'>): Promise<MemoryResult<GraphEdge>>;
27
30
  getEdge(edgeId: string): Promise<MemoryResult<GraphEdge | null>>;
28
31
  getEdgesBetween(sourceNodeId: string, targetNodeId: string): Promise<MemoryResult<GraphEdge[]>>;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../../src/knowledge-graph/adapters/postgres-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../../src/knowledge-graph/adapters/postgres-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { nanoid } from 'nanoid';
2
+ import { detectVectorSearchTuning, ensureHnswCosineIndex, hnswSearchSettings, } from './pgvector.js';
2
3
  const NEIGHBOR_COLUMNS = `
3
4
  e.id as e_id, e.agent_id as e_agent_id, e.source_node_id, e.target_node_id,
4
5
  e.type as e_type, e.label as e_label, e.weight as e_weight,
@@ -19,6 +20,7 @@ export class PostgresGraphAdapter {
19
20
  config;
20
21
  schema;
21
22
  vectorDimensions;
23
+ vectorTuning = { iterativeScan: false };
22
24
  constructor(config) {
23
25
  this.config = config;
24
26
  this.schema = config.schema ?? 'cogitator_graph';
@@ -120,11 +122,13 @@ export class PostgresGraphAdapter {
120
122
  CREATE INDEX IF NOT EXISTS idx_graph_edges_target ON ${this.schema}.graph_edges(target_node_id)
121
123
  `);
122
124
  try {
123
- await this.pool.query(`
124
- CREATE INDEX IF NOT EXISTS idx_graph_nodes_embedding
125
- ON ${this.schema}.graph_nodes
126
- USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100)
127
- `);
125
+ await ensureHnswCosineIndex(this.pool, {
126
+ schema: this.schema,
127
+ table: 'graph_nodes',
128
+ column: 'embedding',
129
+ index: 'idx_graph_nodes_embedding',
130
+ });
131
+ this.vectorTuning = await detectVectorSearchTuning(this.pool);
128
132
  }
129
133
  catch { }
130
134
  }
@@ -292,22 +296,39 @@ export class PostgresGraphAdapter {
292
296
  const vectorStr = `[${options.vector.join(',')}]`;
293
297
  const limit = options.limit ?? 10;
294
298
  const threshold = options.threshold ?? 0.7;
295
- let sql = `
296
- SELECT *, 1 - (embedding <=> $1) as score
297
- FROM ${this.schema}.graph_nodes
298
- WHERE agent_id = $2
299
- AND embedding IS NOT NULL
300
- AND 1 - (embedding <=> $1) >= $3
301
- `;
299
+ const settings = hnswSearchSettings(limit, this.vectorTuning);
302
300
  const params = [vectorStr, options.agentId, threshold];
303
- let paramIndex = 4;
301
+ let typeFilter = '';
304
302
  if (options.entityTypes && options.entityTypes.length > 0) {
305
- sql += ` AND type = ANY($${paramIndex++})`;
306
303
  params.push(options.entityTypes);
304
+ typeFilter = ` AND type = ANY($${params.length})`;
305
+ }
306
+ params.push(settings.candidates, limit);
307
+ const candidatesParam = params.length - 1;
308
+ const limitParam = params.length;
309
+ const sql = `
310
+ SELECT * FROM (
311
+ SELECT *, 1 - (embedding <=> $1) as score
312
+ FROM ${this.schema}.graph_nodes
313
+ WHERE agent_id = $2
314
+ AND embedding IS NOT NULL
315
+ AND 1 - (embedding <=> $1) >= $3${typeFilter}
316
+ ORDER BY embedding <=> $1
317
+ LIMIT $${candidatesParam}
318
+ ) nearest
319
+ ORDER BY score DESC, id
320
+ LIMIT $${limitParam}
321
+ `;
322
+ let result;
323
+ try {
324
+ result = await this.inTransaction(async (client) => {
325
+ await client.query(settings.sql, settings.params);
326
+ return client.query(sql, params);
327
+ });
328
+ }
329
+ catch (error) {
330
+ return { success: false, error: error instanceof Error ? error.message : String(error) };
307
331
  }
308
- sql += ` ORDER BY embedding <=> $1 LIMIT $${paramIndex}`;
309
- params.push(limit);
310
- const result = await this.pool.query(sql, params);
311
332
  return {
312
333
  success: true,
313
334
  data: result.rows.map((row) => ({
@@ -316,6 +337,31 @@ export class PostgresGraphAdapter {
316
337
  })),
317
338
  };
318
339
  }
340
+ /** Runs `work` on one pooled connection inside a transaction, so `SET LOCAL` style settings apply to it only. */
341
+ async inTransaction(work) {
342
+ if (!this.pool)
343
+ throw new Error('Not connected');
344
+ const client = await this.pool.connect();
345
+ let broken = false;
346
+ try {
347
+ await client.query('BEGIN');
348
+ const result = await work(client);
349
+ await client.query('COMMIT');
350
+ return result;
351
+ }
352
+ catch (error) {
353
+ try {
354
+ await client.query('ROLLBACK');
355
+ }
356
+ catch {
357
+ broken = true;
358
+ }
359
+ throw error;
360
+ }
361
+ finally {
362
+ client.release(broken);
363
+ }
364
+ }
319
365
  async addEdge(edge) {
320
366
  if (!this.pool)
321
367
  return { success: false, error: 'Not connected' };
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-adapter.js","sourceRoot":"","sources":["../../../src/knowledge-graph/adapters/postgres-adapter.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAoBhC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;CAcxB,CAAC;AAEF,MAAM,OAAO,oBAAoB;IACvB,IAAI,GAAgB,IAAI,CAAC;IACzB,MAAM,CAA6B;IACnC,MAAM,CAAS;IACf,gBAAgB,CAAS;IAEjC,YAAY,MAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,iBAAiB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAExD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;YAElC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC;gBACnB,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAC9C,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE;aAChC,CAAS,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAExB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC/F,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QAEvB,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;mCACS,IAAI,CAAC,MAAM;;;;;;;;2BAQnB,IAAI,CAAC,gBAAgB;;;;;;;;;KAS3C,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;mCACS,IAAI,CAAC,MAAM;;;kDAGI,IAAI,CAAC,MAAM;kDACX,IAAI,CAAC,MAAM;;;;;;;;;;;;;;KAcxD,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;4DACkC,IAAI,CAAC,MAAM;KAClE,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;2DACiC,IAAI,CAAC,MAAM;KACjE,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;2DACiC,IAAI,CAAC,MAAM;KACjE,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;4DACkC,IAAI,CAAC,MAAM;KAClE,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;6DACmC,IAAI,CAAC,MAAM;KACnE,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;6DACmC,IAAI,CAAC,MAAM;KACnE,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;aAEf,IAAI,CAAC,MAAM;;OAEjB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAA0F;QAE1F,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7E,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACnB,eAAe,IAAI,CAAC,MAAM;;+EAE+C,EACzE;YACE,EAAE;YACF,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,WAAW,IAAI,IAAI;YACxB,IAAI,CAAC,UAAU;YACf,YAAY;YACZ,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,QAAQ,IAAI,EAAE;YACnB,GAAG;SACJ,CACF,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,EAAE;gBACF,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;gBACd,cAAc,EAAE,GAAG;gBACnB,WAAW,EAAE,CAAC;aACf;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,UAAU,IAAI,CAAC,MAAM;;;mBAGR,EACb,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAEnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,IAAY;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,UAAU,IAAI,CAAC,MAAM;;;0BAGD,IAAI,CAAC,MAAM;;;;;mBAKlB,EACb,CAAC,OAAO,EAAE,IAAI,CAAC,CAChB,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAEnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAc,EACd,OAKC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,UAAU,GAAa,CAAC,oBAAoB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,WAAW,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC,cAAc,UAAU,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,iBAAiB,UAAU,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,iBAAiB,UAAU,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,eAAe,UAAU,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,gBAAgB,UAAU,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,UAAU,IAAI,CAAC,MAAM,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,UAAU,cAAc,EACtG,MAAM,CACP,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,YAAY,EAAE,CAAC;QAC/D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,eAAe,IAAI,CAAC,MAAM,yCAAyC,EACnE,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,YAAY,EAAE,CAAC;QAC/D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,IAAI,GAAG,GAAG,iBAAiB,IAAI,CAAC,MAAM,kCAAkC,CAAC;QACzE,MAAM,MAAM,GAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,GAAG,IAAI,oBAAoB,UAAU,EAAE,GAAG,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,GAAG,IAAI,uBAAuB,UAAU,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC;YAC3F,CAAC;YACD,GAAG,IAAI,kBAAkB,UAAU,2DAA2D,UAAU,IAAI,CAAC;YAC7G,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,UAAU,EAAE,CAAC;QACf,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,GAAG,IAAI,WAAW,UAAU,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC7B,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAAmC;QAEnC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAExD,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC;QAE3C,IAAI,GAAG,GAAG;;aAED,IAAI,CAAC,MAAM;;;;KAInB,CAAC;QACF,MAAM,MAAM,GAAc,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClE,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,GAAG,IAAI,oBAAoB,UAAU,EAAE,GAAG,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAED,GAAG,IAAI,qCAAqC,UAAU,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBACtB,KAAK,EAAE,GAAG,CAAC,KAAe;aAC3B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAAuD;QAEvD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACnB,eAAe,IAAI,CAAC,MAAM;;sFAEsD,EAChF;YACE,EAAE;YACF,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,KAAK,IAAI,IAAI;YAClB,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,SAAS,IAAI,IAAI;YACtB,IAAI,CAAC,UAAU,IAAI,IAAI;YACvB,IAAI,CAAC,QAAQ,IAAI,EAAE;YACnB,GAAG;SACJ,CACF,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,EAAE;gBACF,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,MAAM,4BAA4B,EAAE;YAC7F,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAEnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,YAAoB,EACpB,YAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,iBAAiB,IAAI,CAAC,MAAM,gEAAgE,EAC5F,CAAC,YAAY,EAAE,YAAY,CAAC,CAC7B,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAc,EACd,OAKC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,UAAU,GAAa,CAAC,oBAAoB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,aAAa,UAAU,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,UAAU,CAAC,IAAI,CAAC,YAAY,UAAU,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,iBAAiB,UAAU,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,iBAAiB,UAAU,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC,iBAAiB,UAAU,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,eAAe,UAAU,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,UAAU,IAAI,CAAC,MAAM,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,UAAU,cAAc,EACtG,MAAM,CACP,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,YAAY,EAAE,CAAC;QAC/D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,eAAe,IAAI,CAAC,MAAM,yCAAyC,EACnE,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,YAAY,EAAE,CAAC;QAC/D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,IAAI,GAAG,GAAG,iBAAiB,IAAI,CAAC,MAAM,kCAAkC,CAAC;QACzE,MAAM,MAAM,GAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,GAAG,IAAI,0BAA0B,UAAU,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,GAAG,IAAI,0BAA0B,UAAU,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,GAAG,IAAI,oBAAoB,UAAU,EAAE,GAAG,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,GAAG,IAAI,mBAAmB,UAAU,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,GAAG,IAAI,uBAAuB,UAAU,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,GAAG,IAAI,2BAA2B,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,GAAG,IAAI,WAAW,UAAU,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAyB;QACtC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAC;QAClD,MAAM,KAAK,GAAgB,EAAE,CAAC;QAE9B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QAED,MAAM,KAAK,GAAyD;YAClE;gBACE,MAAM,EAAE,OAAO,CAAC,WAAW;gBAC3B,IAAI,EAAE;oBACJ,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC7B,KAAK,EAAE,EAAE;oBACT,WAAW,EAAE,CAAC;oBACd,MAAM,EAAE,CAAC;iBACV;gBACD,KAAK,EAAE,CAAC;aACT;SACF,CAAC;QAEF,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QAED,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAE5D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK;gBAAE,MAAM;YAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAE/B,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC7E,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,SAAS;YAEjC,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAE,SAAS;gBACxC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;oBAAE,SAAS;gBACnF,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAC1E,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa;oBAAE,SAAS;gBAC3E,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa;oBAAE,SAAS;gBAE/E,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChC,WAAW,GAAG,IAAI,CAAC;gBAEnB,KAAK,CAAC,IAAI,CAAC;oBACT,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;wBACpC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;wBACpC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM;wBACnD,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;qBAChC;oBACD,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC;iBACzB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC5D,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC/C,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC/C,KAAK,EAAE,OAAO,CAAC,QAAQ;aACxB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,WAAmB,EACnB,SAAiB,EACjB,QAAQ,GAAG,EAAE;QAEb,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,KAAK,GAA0C,EAAE,CAAC;QAExD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE;gBACJ,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC7B,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,CAAC;gBACd,MAAM,EAAE,CAAC;aACV;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEzB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAE/B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/C,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ;gBAAE,SAAS;YAE9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,SAAS;YAEjC,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAE,SAAS;gBACnC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;oBAAE,SAAS;gBAEnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC;oBACT,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;wBACpC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;wBACpC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM;wBACnD,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;qBAChC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,YAAgC,MAAM;QAEtC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,OAAO,GAA2C,EAAE,CAAC;QAE3D,MAAM,cAAc,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,cAAc,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;QAErF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACrC,UAAU,gBAAgB;cAClB,IAAI,CAAC,MAAM;cACX,IAAI,CAAC,MAAM;oCACW,cAAc,EAAE,EAC9C,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACpC,UAAU,gBAAgB;cAClB,IAAI,CAAC,MAAM;cACX,IAAI,CAAC,MAAM;+DACsC,cAAc,EAAE,EACzE,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU,CACd,YAAoB,EACpB,aAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,YAAY,YAAY,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACvE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI;gBAAE,SAAS;YAElE,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC;YACzC,IAAI,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO;gBAAE,SAAS;YACxD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE5B,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,MAAM,MAAM,CAAC,KAAK,CAChB,UAAU,IAAI,CAAC,MAAM;;8DAE+B,EACpD,CAAC,YAAY,EAAE,QAAQ,CAAC,CACzB,CAAC;gBAEF,MAAM,MAAM,CAAC,KAAK,CAChB,UAAU,IAAI,CAAC,MAAM;;8DAE+B,EACpD,CAAC,YAAY,EAAE,QAAQ,CAAC,CACzB,CAAC;gBAEF,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,MAAM,4BAA4B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzF,CAAC;YAED,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/B,UAAU,EAAE,aAAa;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,MAAM,kCAAkC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAE/F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAElE,MAAM,WAAW,GAA+B;YAC9C,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;SACV,CAAC;QAEF,MAAM,WAAW,GAAiC;YAChD,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,eAAe,EAAE,CAAC;YAClB,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,CAAC;SACV,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAC3C,uCAAuC,IAAI,CAAC,MAAM,gDAAgD,EAClG,CAAC,OAAO,CAAC,CACV,CAAC;QAEF,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAkB,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;gBACxB,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,SAAS,IAAI,KAAK,CAAC;QACrB,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAC3C,uCAAuC,IAAI,CAAC,MAAM,gDAAgD,EAClG,CAAC,OAAO,CAAC,CACV,CAAC;QAEF,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAoB,CAAC;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;gBACxB,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,SAAS,IAAI,KAAK,CAAC;QACrB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,SAAS;gBACT,SAAS;gBACT,WAAW;gBACX,WAAW;gBACX,mBAAmB,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9D,QAAQ,EAAE,CAAC;aACZ;SACF,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,GAA4B;QAC5C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,OAAO,EAAE,GAAG,CAAC,QAAkB;YAC/B,IAAI,EAAE,GAAG,CAAC,IAAkB;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAc;YACxB,OAAO,EAAG,GAAG,CAAC,OAAoB,IAAI,EAAE;YACxC,WAAW,EAAE,GAAG,CAAC,WAAiC;YAClD,UAAU,EAAG,GAAG,CAAC,UAAsC,IAAI,EAAE;YAC7D,SAAS,EAAE,GAAG,CAAC,SAAS;gBACtB,CAAC,CAAE,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;oBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC3B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAc;gBACjC,CAAC,CAAC,SAAS;YACb,UAAU,EAAE,GAAG,CAAC,UAAoB;YACpC,MAAM,EAAE,GAAG,CAAC,MAA6B;YACzC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAoB,CAAC;YAC7C,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAoB,CAAC;YAC7C,cAAc,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAA0B,CAAC;YACxD,WAAW,EAAE,GAAG,CAAC,YAAsB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAA+C;SAC9D,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,GAA4B;QAC5C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,OAAO,EAAE,GAAG,CAAC,QAAkB;YAC/B,YAAY,EAAE,GAAG,CAAC,cAAwB;YAC1C,YAAY,EAAE,GAAG,CAAC,cAAwB;YAC1C,IAAI,EAAE,GAAG,CAAC,IAAoB;YAC9B,KAAK,EAAE,GAAG,CAAC,KAA2B;YACtC,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,aAAa,EAAE,GAAG,CAAC,aAAwB;YAC3C,UAAU,EAAG,GAAG,CAAC,UAAsC,IAAI,EAAE;YAC7D,UAAU,EAAE,GAAG,CAAC,UAAoB;YACpC,MAAM,EAAE,GAAG,CAAC,MAA6B;YACzC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAoB,CAAC;YAC7C,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAoB,CAAC;YAC7C,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAoB,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1E,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAqB,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7E,QAAQ,EAAE,GAAG,CAAC,QAA+C;SAC9D,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,GAA4B;QAChD,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,IAAc;YACtB,OAAO,EAAE,GAAG,CAAC,UAAoB;YACjC,IAAI,EAAE,GAAG,CAAC,MAAoB;YAC9B,IAAI,EAAE,GAAG,CAAC,MAAgB;YAC1B,OAAO,EAAG,GAAG,CAAC,SAAsB,IAAI,EAAE;YAC1C,WAAW,EAAE,GAAG,CAAC,aAAmC;YACpD,UAAU,EAAG,GAAG,CAAC,YAAwC,IAAI,EAAE;YAC/D,SAAS,EAAE,GAAG,CAAC,WAAW;gBACxB,CAAC,CAAE,CAAC,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;oBACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;oBAC7B,CAAC,CAAC,GAAG,CAAC,WAAW,CAAc;gBACnC,CAAC,CAAC,SAAS;YACb,UAAU,EAAE,GAAG,CAAC,YAAsB;YACtC,MAAM,EAAE,GAAG,CAAC,QAA+B;YAC3C,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAsB,CAAC;YAC/C,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAsB,CAAC;YAC/C,cAAc,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,kBAA4B,CAAC;YAC1D,WAAW,EAAE,GAAG,CAAC,cAAwB;YACzC,QAAQ,EAAE,GAAG,CAAC,UAAiD;SAChE,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,GAA4B;QAChD,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,IAAc;YACtB,OAAO,EAAE,GAAG,CAAC,UAAoB;YACjC,YAAY,EAAE,GAAG,CAAC,cAAwB;YAC1C,YAAY,EAAE,GAAG,CAAC,cAAwB;YAC1C,IAAI,EAAE,GAAG,CAAC,MAAsB;YAChC,KAAK,EAAE,GAAG,CAAC,OAA6B;YACxC,MAAM,EAAE,GAAG,CAAC,QAAkB;YAC9B,aAAa,EAAE,GAAG,CAAC,eAA0B;YAC7C,UAAU,EAAG,GAAG,CAAC,YAAwC,IAAI,EAAE;YAC/D,UAAU,EAAE,GAAG,CAAC,YAAsB;YACtC,MAAM,EAAE,GAAG,CAAC,QAA+B;YAC3C,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAsB,CAAC;YAC/C,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAsB,CAAC;YAC/C,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAsB,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9E,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,SAAS;YACjF,QAAQ,EAAE,GAAG,CAAC,UAAiD;SAChE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAkC;IAElC,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"postgres-adapter.js","sourceRoot":"","sources":["../../../src/knowledge-graph/adapters/postgres-adapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/neuro-symbolic",
3
- "version": "17.0.8",
3
+ "version": "17.0.9",
4
4
  "description": "Neuro-symbolic AI for hybrid neural-symbolic reasoning",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -38,8 +38,8 @@
38
38
  "node": ">=22.12.0"
39
39
  },
40
40
  "dependencies": {
41
- "@cogitator-ai/core": "0.26.2",
42
- "@cogitator-ai/types": "0.29.0",
41
+ "@cogitator-ai/core": "0.27.0",
42
+ "@cogitator-ai/types": "0.30.0",
43
43
  "nanoid": "^6.0.1",
44
44
  "zod": "^4.6.5"
45
45
  },