prettier-plugin-tsql 0.1.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 (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +199 -0
  3. package/bin/dotnet/Microsoft.SqlServer.TransactSql.ScriptDom.dll +0 -0
  4. package/bin/dotnet/SqlScriptDom.deps.json +41 -0
  5. package/bin/dotnet/SqlScriptDom.dll +0 -0
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +21 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/language.d.ts +3 -0
  11. package/dist/language.d.ts.map +1 -0
  12. package/dist/language.js +9 -0
  13. package/dist/language.js.map +1 -0
  14. package/dist/options.d.ts +3 -0
  15. package/dist/options.d.ts.map +1 -0
  16. package/dist/options.js +35 -0
  17. package/dist/options.js.map +1 -0
  18. package/dist/parser/index.d.ts +5 -0
  19. package/dist/parser/index.d.ts.map +1 -0
  20. package/dist/parser/index.js +263 -0
  21. package/dist/parser/index.js.map +1 -0
  22. package/dist/parser/types.d.ts +21 -0
  23. package/dist/parser/types.d.ts.map +1 -0
  24. package/dist/parser/types.js +2 -0
  25. package/dist/parser/types.js.map +1 -0
  26. package/dist/printer/admin.d.ts +22 -0
  27. package/dist/printer/admin.d.ts.map +1 -0
  28. package/dist/printer/admin.js +250 -0
  29. package/dist/printer/admin.js.map +1 -0
  30. package/dist/printer/ddl.d.ts +36 -0
  31. package/dist/printer/ddl.d.ts.map +1 -0
  32. package/dist/printer/ddl.js +836 -0
  33. package/dist/printer/ddl.js.map +1 -0
  34. package/dist/printer/expressions.d.ts +11 -0
  35. package/dist/printer/expressions.d.ts.map +1 -0
  36. package/dist/printer/expressions.js +1475 -0
  37. package/dist/printer/expressions.js.map +1 -0
  38. package/dist/printer/helpers.d.ts +25 -0
  39. package/dist/printer/helpers.d.ts.map +1 -0
  40. package/dist/printer/helpers.js +61 -0
  41. package/dist/printer/helpers.js.map +1 -0
  42. package/dist/printer/index.d.ts +4 -0
  43. package/dist/printer/index.d.ts.map +1 -0
  44. package/dist/printer/index.js +30 -0
  45. package/dist/printer/index.js.map +1 -0
  46. package/dist/printer/procedural.d.ts +41 -0
  47. package/dist/printer/procedural.d.ts.map +1 -0
  48. package/dist/printer/procedural.js +364 -0
  49. package/dist/printer/procedural.js.map +1 -0
  50. package/dist/printer/security.d.ts +15 -0
  51. package/dist/printer/security.d.ts.map +1 -0
  52. package/dist/printer/security.js +309 -0
  53. package/dist/printer/security.js.map +1 -0
  54. package/dist/printer/statements.d.ts +18 -0
  55. package/dist/printer/statements.d.ts.map +1 -0
  56. package/dist/printer/statements.js +689 -0
  57. package/dist/printer/statements.js.map +1 -0
  58. package/dist/printer/utils.d.ts +34 -0
  59. package/dist/printer/utils.d.ts.map +1 -0
  60. package/dist/printer/utils.js +61 -0
  61. package/dist/printer/utils.js.map +1 -0
  62. package/package.json +63 -0
@@ -0,0 +1,364 @@
1
+ import { keyword, hardline, join, indent, group, onOffKw } from './utils.js';
2
+ import { prop, propArr, propStr, propBool, schemaObjectName, assignmentOp } from './helpers.js';
3
+ // printNode / printBool / qexpr / printStatementWithComments are imported from statements.ts
4
+ // — circular but safe in ESM (all imports are function references, never accessed during init)
5
+ import { printStatementWithComments, printNode, printBool, qexpr } from './statements.js';
6
+ import { printColumnDef, printConstraintDef } from './ddl.js';
7
+ // ---------------------------------------------------------------------------
8
+ // Transactions
9
+ // ---------------------------------------------------------------------------
10
+ function printTransaction(kw, node, opts) {
11
+ const name = propStr(node, 'name');
12
+ return [keyword(kw, opts), ...(name ? [' ', name] : []), ';'];
13
+ }
14
+ export function printBeginTransaction(node, opts) {
15
+ return printTransaction('BEGIN TRANSACTION', node, opts);
16
+ }
17
+ export function printCommitTransaction(node, opts) {
18
+ return printTransaction('COMMIT TRANSACTION', node, opts);
19
+ }
20
+ export function printRollbackTransaction(node, opts) {
21
+ return printTransaction('ROLLBACK TRANSACTION', node, opts);
22
+ }
23
+ export function printSaveTransaction(node, opts) {
24
+ return printTransaction('SAVE TRANSACTION', node, opts);
25
+ }
26
+ // ---------------------------------------------------------------------------
27
+ // CHECKPOINT / KILL / RECONFIGURE
28
+ // ---------------------------------------------------------------------------
29
+ export function printCheckpoint(node, opts) {
30
+ const duration = propStr(node, 'duration');
31
+ return [keyword('CHECKPOINT', opts), ...(duration ? [' ', duration] : []), ';'];
32
+ }
33
+ export function printKill(node, opts) {
34
+ const param = propStr(node, 'param') ?? '';
35
+ const statusOnly = propBool(node, 'withStatusOnly');
36
+ return [keyword('KILL', opts), ' ', param, ...(statusOnly ? [' ', keyword('WITH STATUSONLY', opts)] : []), ';'];
37
+ }
38
+ export function printReconfigure(node, opts) {
39
+ const withOverride = propBool(node, 'withOverride');
40
+ return [keyword('RECONFIGURE', opts), ...(withOverride ? [' ', keyword('WITH OVERRIDE', opts)] : []), ';'];
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // DECLARE
44
+ // ---------------------------------------------------------------------------
45
+ export function printDeclareVariable(node, opts) {
46
+ const decls = propArr(node, 'declarations');
47
+ const declDocs = decls.map((d) => {
48
+ const name = propStr(d, 'name') ?? '@var';
49
+ const dt = propStr(d, 'dataType') ?? 'INT';
50
+ const params = d.props?.['dataTypeParams'];
51
+ const typeStr = Array.isArray(params) && params.length > 0
52
+ ? [keyword(dt, opts), `(${params.join(', ')})`]
53
+ : keyword(dt, opts);
54
+ const val = prop(d, 'value');
55
+ return [
56
+ keyword('DECLARE', opts),
57
+ ' ',
58
+ name,
59
+ ' ',
60
+ typeStr,
61
+ ...(val ? [' = ', printNode(val, opts)] : []),
62
+ ';',
63
+ ];
64
+ });
65
+ return join(hardline, declDocs);
66
+ }
67
+ export function printDeclareTableVariable(node, opts) {
68
+ const name = propStr(node, 'name') ?? '@t';
69
+ const allDefs = [
70
+ ...propArr(node, 'columns').map((c) => printColumnDef(c, opts)),
71
+ ...propArr(node, 'constraints').map((c) => printConstraintDef(c, opts)),
72
+ ];
73
+ return group([
74
+ keyword('DECLARE', opts),
75
+ ' ',
76
+ name,
77
+ ' ',
78
+ keyword('TABLE', opts),
79
+ ' (',
80
+ indent([hardline, join([',', hardline], allDefs)]),
81
+ hardline,
82
+ ');',
83
+ ]);
84
+ }
85
+ // ---------------------------------------------------------------------------
86
+ // SET variable / ROWCOUNT
87
+ // ---------------------------------------------------------------------------
88
+ export function printSetVariable(node, opts) {
89
+ const name = propStr(node, 'name') ?? '@var';
90
+ const val = prop(node, 'value');
91
+ const opStr = assignmentOp(propStr(node, 'operator') ?? 'Equals');
92
+ return [keyword('SET', opts), ' ', name, ' ', opStr, ' ', val ? printNode(val, opts) : '', ';'];
93
+ }
94
+ export function printSetRowCount(node, opts) {
95
+ const rows = prop(node, 'rows');
96
+ return [keyword('SET', opts), ' ', keyword('ROWCOUNT', opts), ' ', rows ? printNode(rows, opts) : '0', ';'];
97
+ }
98
+ // ---------------------------------------------------------------------------
99
+ // USE / SET variants / WAITFOR
100
+ // ---------------------------------------------------------------------------
101
+ export function printUse(node, opts) {
102
+ return [keyword('USE', opts), ' ', propStr(node, 'database') ?? '', ';'];
103
+ }
104
+ export function printPredicateSet(node, opts) {
105
+ const opt = propStr(node, 'options') ?? '';
106
+ const onOff = onOffKw(propBool(node, 'isOn'), opts);
107
+ return [keyword('SET', opts), ' ', keyword(opt, opts), ' ', onOff, ';'];
108
+ }
109
+ export function printSetStatistics(node, opts) {
110
+ const opt = propStr(node, 'options') ?? '';
111
+ const onOff = onOffKw(propBool(node, 'isOn'), opts);
112
+ return [keyword('SET STATISTICS', opts), ' ', keyword(opt, opts), ' ', onOff, ';'];
113
+ }
114
+ export function printSetIdentityInsert(node, opts) {
115
+ const onOff = onOffKw(propBool(node, 'isOn'), opts);
116
+ return [keyword('SET IDENTITY_INSERT', opts), ' ', schemaObjectName(prop(node, 'table')), ' ', onOff, ';'];
117
+ }
118
+ export function printSetIsolationLevel(node, opts) {
119
+ const levelMap = {
120
+ ReadCommitted: 'READ COMMITTED',
121
+ ReadUncommitted: 'READ UNCOMMITTED',
122
+ RepeatableRead: 'REPEATABLE READ',
123
+ Serializable: 'SERIALIZABLE',
124
+ Snapshot: 'SNAPSHOT',
125
+ };
126
+ const raw = propStr(node, 'level') ?? '';
127
+ const level = levelMap[raw] ?? raw.toUpperCase();
128
+ return [keyword('SET TRANSACTION ISOLATION LEVEL', opts), ' ', keyword(level, opts), ';'];
129
+ }
130
+ export function printWaitFor(node, opts) {
131
+ const opt = propStr(node, 'option') ?? 'Delay';
132
+ const param = propStr(node, 'parameter') ?? '';
133
+ const kw = opt === 'Time' ? keyword('WAITFOR TIME', opts) : keyword('WAITFOR DELAY', opts);
134
+ return [kw, ' ', param, ';'];
135
+ }
136
+ // ---------------------------------------------------------------------------
137
+ // PRINT / RETURN
138
+ // ---------------------------------------------------------------------------
139
+ export function printPrint(node, opts) {
140
+ const expr = prop(node, 'expr');
141
+ return [keyword('PRINT', opts), ' ', expr ? printNode(expr, opts) : '', ';'];
142
+ }
143
+ export function printReturn(node, opts) {
144
+ const expr = prop(node, 'expr');
145
+ return expr ? [keyword('RETURN', opts), ' ', printNode(expr, opts), ';'] : [keyword('RETURN', opts), ';'];
146
+ }
147
+ // ---------------------------------------------------------------------------
148
+ // TRUNCATE TABLE
149
+ // ---------------------------------------------------------------------------
150
+ export function printTruncateTable(node, opts) {
151
+ return [keyword('TRUNCATE TABLE', opts), ' ', schemaObjectName(prop(node, 'name')), ';'];
152
+ }
153
+ // ---------------------------------------------------------------------------
154
+ // GOTO / LABEL
155
+ // ---------------------------------------------------------------------------
156
+ export function printGoto(node, opts) {
157
+ return [keyword('GOTO', opts), ' ', propStr(node, 'label') ?? '', ';'];
158
+ }
159
+ export function printLabel(node, opts) {
160
+ // LabelStatement.Value already includes the trailing colon from ScriptDom
161
+ return propStr(node, 'label') ?? '';
162
+ }
163
+ // ---------------------------------------------------------------------------
164
+ // THROW / RAISERROR
165
+ // ---------------------------------------------------------------------------
166
+ export function printThrow(node, opts) {
167
+ const errNum = prop(node, 'errorNumber');
168
+ if (!errNum)
169
+ return [keyword('THROW', opts), ';'];
170
+ return [
171
+ keyword('THROW', opts),
172
+ ' ',
173
+ printNode(errNum, opts),
174
+ ', ',
175
+ printNode(prop(node, 'message'), opts),
176
+ ', ',
177
+ printNode(prop(node, 'state'), opts),
178
+ ';',
179
+ ];
180
+ }
181
+ export function printRaiseError(node, opts) {
182
+ return [
183
+ keyword('RAISERROR', opts),
184
+ ' (',
185
+ printNode(prop(node, 'message'), opts),
186
+ ', ',
187
+ printNode(prop(node, 'severity'), opts),
188
+ ', ',
189
+ printNode(prop(node, 'state'), opts),
190
+ ');',
191
+ ];
192
+ }
193
+ // ---------------------------------------------------------------------------
194
+ // TRY / CATCH
195
+ // ---------------------------------------------------------------------------
196
+ export function printTryCatch(node, opts) {
197
+ const tryStmts = propArr(node, 'tryBody').map((s) => printStatementWithComments(s, opts));
198
+ const catchStmts = propArr(node, 'catchBody').map((s) => printStatementWithComments(s, opts));
199
+ return [
200
+ keyword('BEGIN TRY', opts),
201
+ indent([hardline, join([hardline, hardline], tryStmts)]),
202
+ hardline,
203
+ keyword('END TRY', opts),
204
+ hardline,
205
+ keyword('BEGIN CATCH', opts),
206
+ indent([hardline, join([hardline, hardline], catchStmts)]),
207
+ hardline,
208
+ keyword('END CATCH', opts),
209
+ ];
210
+ }
211
+ // ---------------------------------------------------------------------------
212
+ // IF / WHILE
213
+ // ---------------------------------------------------------------------------
214
+ /** Wrap a statement in BEGIN/END if it's a block, otherwise indent inline. */
215
+ export function printStatementBlock(node, opts) {
216
+ if (node.type === 'BeginEndBlock') {
217
+ const stmts = propArr(node, 'statements');
218
+ return [
219
+ hardline,
220
+ keyword('BEGIN', opts),
221
+ indent([
222
+ hardline,
223
+ join([hardline, hardline], stmts.map((s) => printStatementWithComments(s, opts))),
224
+ ]),
225
+ hardline,
226
+ keyword('END', opts),
227
+ ];
228
+ }
229
+ return indent([hardline, printStatementWithComments(node, opts)]);
230
+ }
231
+ export function printIf(node, opts) {
232
+ const condition = prop(node, 'condition');
233
+ const then = prop(node, 'then');
234
+ const els = prop(node, 'else');
235
+ const condDoc = condition ? printBool(condition, opts) : '';
236
+ const thenDoc = then ? printStatementBlock(then, opts) : ';';
237
+ const parts = [keyword('IF', opts), ' ', condDoc, thenDoc];
238
+ if (els)
239
+ parts.push(hardline, keyword('ELSE', opts), printStatementBlock(els, opts));
240
+ return group(parts);
241
+ }
242
+ export function printWhile(node, opts) {
243
+ const condition = prop(node, 'condition');
244
+ const body = prop(node, 'body');
245
+ const condDoc = condition ? printBool(condition, opts) : '';
246
+ return group([keyword('WHILE', opts), ' ', condDoc, body ? printStatementBlock(body, opts) : ';']);
247
+ }
248
+ // ---------------------------------------------------------------------------
249
+ // EXECUTE
250
+ // ---------------------------------------------------------------------------
251
+ export function printExecute(node, opts) {
252
+ const procNode = prop(node, 'proc');
253
+ const parameters = propArr(node, 'parameters');
254
+ const paramDocs = parameters.map((p) => {
255
+ const pname = propStr(p, 'name');
256
+ const val = prop(p, 'value');
257
+ const isOutput = propBool(p, 'output');
258
+ const valDoc = val ? printNode(val, opts) : '';
259
+ const parts = pname ? [pname, ' = ', valDoc] : [valDoc];
260
+ if (isOutput)
261
+ parts.push(' ', keyword('OUTPUT', opts));
262
+ return parts;
263
+ });
264
+ return group([
265
+ keyword('EXECUTE', opts),
266
+ ' ',
267
+ schemaObjectName(procNode),
268
+ parameters.length > 0 ? indent([hardline, join([',', hardline], paramDocs)]) : '',
269
+ ';',
270
+ ]);
271
+ }
272
+ // ---------------------------------------------------------------------------
273
+ // Cursor operations
274
+ // ---------------------------------------------------------------------------
275
+ export function printDeclareCursor(node, opts) {
276
+ const name = propStr(node, 'name') ?? 'cursor_name';
277
+ const options = node.props?.['options'];
278
+ const optPart = Array.isArray(options) && options.length > 0 ? [options.join(' '), ' '] : [];
279
+ const select = prop(node, 'select');
280
+ return group([
281
+ keyword('DECLARE', opts),
282
+ ' ',
283
+ name,
284
+ ' ',
285
+ ...optPart,
286
+ keyword('CURSOR', opts),
287
+ hardline,
288
+ keyword('FOR', opts),
289
+ hardline,
290
+ select ? qexpr(select, opts) : '',
291
+ ';',
292
+ ]);
293
+ }
294
+ export function printOpenCursor(node, opts) {
295
+ return [keyword('OPEN', opts), ' ', propStr(node, 'cursorName') ?? '', ';'];
296
+ }
297
+ export function printFetchCursor(node, opts) {
298
+ const fetchType = propStr(node, 'fetchType') ?? 'Next';
299
+ const cursorName = propStr(node, 'cursorName') ?? '';
300
+ const intoVars = node.props?.['intoVariables'];
301
+ const fetchOffset = prop(node, 'fetchOffset');
302
+ const typeMap = {
303
+ Next: 'NEXT',
304
+ Prior: 'PRIOR',
305
+ First: 'FIRST',
306
+ Last: 'LAST',
307
+ Absolute: 'ABSOLUTE',
308
+ Relative: 'RELATIVE',
309
+ };
310
+ const typeKw = keyword(typeMap[fetchType] ?? fetchType.toUpperCase(), opts);
311
+ const offsetPart = fetchOffset ? [' ', printNode(fetchOffset, opts)] : '';
312
+ const intoPart = Array.isArray(intoVars) && intoVars.length > 0
313
+ ? [' ', keyword('INTO', opts), ' ', join(', ', intoVars)]
314
+ : '';
315
+ return [
316
+ keyword('FETCH', opts),
317
+ ' ',
318
+ typeKw,
319
+ offsetPart,
320
+ ' ',
321
+ keyword('FROM', opts),
322
+ ' ',
323
+ cursorName,
324
+ intoPart,
325
+ ';',
326
+ ];
327
+ }
328
+ export function printCloseCursor(node, opts) {
329
+ return [keyword('CLOSE', opts), ' ', propStr(node, 'cursorName') ?? '', ';'];
330
+ }
331
+ export function printDeallocateCursor(node, opts) {
332
+ return [keyword('DEALLOCATE', opts), ' ', propStr(node, 'cursorName') ?? '', ';'];
333
+ }
334
+ // ---------------------------------------------------------------------------
335
+ // EXECUTE AS / REVERT (session context)
336
+ // ---------------------------------------------------------------------------
337
+ export function printExecuteAsStatement(node, opts) {
338
+ const kind = propStr(node, 'kind') ?? 'Caller';
339
+ const principal = prop(node, 'principal');
340
+ const withNoRevert = propBool(node, 'withNoRevert');
341
+ const cookie = prop(node, 'cookie');
342
+ const kindMap = {
343
+ Caller: 'CALLER',
344
+ User: 'USER',
345
+ Login: 'LOGIN',
346
+ };
347
+ const kindKw = keyword(kindMap[kind] ?? kind.toUpperCase(), opts);
348
+ const contextDoc = principal ? [kindKw, ' = ', printNode(principal, opts)] : kindKw;
349
+ const parts = [keyword('EXECUTE AS', opts), ' ', contextDoc];
350
+ if (withNoRevert)
351
+ parts.push(' ', keyword('WITH NO REVERT', opts));
352
+ if (cookie)
353
+ parts.push(' ', keyword('WITH COOKIE INTO', opts), ' ', cookie.text ?? '');
354
+ parts.push(';');
355
+ return parts;
356
+ }
357
+ export function printRevert(node, opts) {
358
+ const cookie = prop(node, 'cookie');
359
+ if (cookie) {
360
+ return [keyword('REVERT', opts), ' ', keyword('WITH COOKIE =', opts), ' ', printNode(cookie, opts), ';'];
361
+ }
362
+ return [keyword('REVERT', opts), ';'];
363
+ }
364
+ //# sourceMappingURL=procedural.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedural.js","sourceRoot":"","sources":["../../src/plugin/printer/procedural.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Doc } from 'prettier';
2
+ import type { SqlNode } from '../parser/types.js';
3
+ import type { Options } from './utils.js';
4
+ export declare function printGrantDenyRevoke(node: SqlNode, verb: string, opts: Options): Doc;
5
+ export declare function printCreateUser(node: SqlNode, opts: Options): Doc;
6
+ export declare function printAlterUser(node: SqlNode, opts: Options): Doc;
7
+ export declare function printDropUser(node: SqlNode, opts: Options): Doc;
8
+ export declare function printCreateLogin(node: SqlNode, opts: Options): Doc;
9
+ export declare function printAlterLogin(node: SqlNode, opts: Options): Doc;
10
+ export declare function printDropLogin(node: SqlNode, opts: Options): Doc;
11
+ export declare function printCreateRole(node: SqlNode, opts: Options): Doc;
12
+ export declare function printAlterRole(node: SqlNode, opts: Options): Doc;
13
+ export declare function printDropRole(node: SqlNode, opts: Options): Doc;
14
+ export declare function printAlterAuthorization(node: SqlNode, opts: Options): Doc;
15
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/plugin/printer/security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAgE1C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAgCpF;AA8ED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAuBjE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAGhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAI/D;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CA+BlE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAyBjE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAIhE;AAMD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAUjE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAYhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAI/D;AAMD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CASzE"}