umple-lsp-server 0.4.2 → 1.0.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 (72) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +35 -0
  3. package/completions.scm +9 -3
  4. package/definitions.scm +5 -0
  5. package/highlights.scm +487 -0
  6. package/out/codeActions.d.ts +31 -0
  7. package/out/codeActions.js +361 -0
  8. package/out/codeActions.js.map +1 -0
  9. package/out/completionAnalysis.d.ts +9 -1
  10. package/out/completionAnalysis.js +1211 -64
  11. package/out/completionAnalysis.js.map +1 -1
  12. package/out/completionBuilder.d.ts +1 -1
  13. package/out/completionBuilder.js +463 -319
  14. package/out/completionBuilder.js.map +1 -1
  15. package/out/completionTriggers.d.ts +20 -0
  16. package/out/completionTriggers.js +69 -0
  17. package/out/completionTriggers.js.map +1 -0
  18. package/out/diagnosticSources.d.ts +3 -0
  19. package/out/diagnosticSources.js +11 -0
  20. package/out/diagnosticSources.js.map +1 -0
  21. package/out/diagramNavigation.js +3 -3
  22. package/out/diagramNavigation.js.map +1 -1
  23. package/out/documentSymbolBuilder.js +2 -37
  24. package/out/documentSymbolBuilder.js.map +1 -1
  25. package/out/formatter.d.ts +13 -1
  26. package/out/formatter.js +303 -10
  27. package/out/formatter.js.map +1 -1
  28. package/out/hoverBuilder.js +90 -23
  29. package/out/hoverBuilder.js.map +1 -1
  30. package/out/inlayHints.d.ts +21 -0
  31. package/out/inlayHints.js +98 -0
  32. package/out/inlayHints.js.map +1 -0
  33. package/out/referenceSearch.d.ts +1 -1
  34. package/out/referenceSearch.js +134 -7
  35. package/out/referenceSearch.js.map +1 -1
  36. package/out/resolver.js +82 -3
  37. package/out/resolver.js.map +1 -1
  38. package/out/semanticTokens.d.ts +32 -0
  39. package/out/semanticTokens.js +228 -0
  40. package/out/semanticTokens.js.map +1 -0
  41. package/out/server.js +216 -36
  42. package/out/server.js.map +1 -1
  43. package/out/snippets.d.ts +39 -0
  44. package/out/snippets.js +328 -0
  45. package/out/snippets.js.map +1 -0
  46. package/out/symbolIndex.d.ts +50 -0
  47. package/out/symbolIndex.js +170 -7
  48. package/out/symbolIndex.js.map +1 -1
  49. package/out/symbolPresentation.d.ts +3 -0
  50. package/out/symbolPresentation.js +45 -0
  51. package/out/symbolPresentation.js.map +1 -0
  52. package/out/symbolTypes.d.ts +1 -0
  53. package/out/tokenAnalysis.js +77 -4
  54. package/out/tokenAnalysis.js.map +1 -1
  55. package/out/tokenTypes.d.ts +8 -1
  56. package/out/tokenTypes.js +2 -0
  57. package/out/tokenTypes.js.map +1 -1
  58. package/out/treeUtils.js +17 -4
  59. package/out/treeUtils.js.map +1 -1
  60. package/out/workspaceSymbolBuilder.d.ts +3 -0
  61. package/out/workspaceSymbolBuilder.js +117 -0
  62. package/out/workspaceSymbolBuilder.js.map +1 -0
  63. package/package.json +5 -2
  64. package/references.scm +31 -3
  65. package/tree-sitter-umple.wasm +0 -0
  66. package/out/bin.d.ts +0 -2
  67. package/out/bin.js +0 -5
  68. package/out/bin.js.map +0 -1
  69. package/out/log.d.ts +0 -7
  70. package/out/log.js +0 -22
  71. package/out/log.js.map +0 -1
  72. package/out/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolPresentation.js","sourceRoot":"","sources":["../src/symbolPresentation.ts"],"names":[],"mappings":";;AAGA,4DAuCC;AA1CD,qDAAwD;AAGxD,SAAgB,wBAAwB,CAAC,IAAqB;IAC5D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,iBAAU,CAAC,KAAK,CAAC;QAC1B,KAAK,WAAW;YACd,OAAO,iBAAU,CAAC,SAAS,CAAC;QAC9B,KAAK,OAAO;YACV,OAAO,iBAAU,CAAC,SAAS,CAAC;QAC9B,KAAK,MAAM;YACT,OAAO,iBAAU,CAAC,IAAI,CAAC;QACzB,KAAK,YAAY;YACf,OAAO,iBAAU,CAAC,UAAU,CAAC;QAC/B,KAAK,WAAW;YACd,OAAO,iBAAU,CAAC,KAAK,CAAC;QAC1B,KAAK,MAAM;YACT,OAAO,iBAAU,CAAC,QAAQ,CAAC;QAC7B,KAAK,OAAO;YACV,OAAO,iBAAU,CAAC,QAAQ,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,iBAAU,CAAC,MAAM,CAAC;QAC3B,KAAK,OAAO;YACV,OAAO,iBAAU,CAAC,KAAK,CAAC;QAC1B,KAAK,UAAU;YACb,OAAO,iBAAU,CAAC,KAAK,CAAC;QAC1B,KAAK,cAAc;YACjB,OAAO,iBAAU,CAAC,MAAM,CAAC;QAC3B,KAAK,OAAO;YACV,OAAO,iBAAU,CAAC,UAAU,CAAC;QAC/B,KAAK,aAAa;YAChB,OAAO,iBAAU,CAAC,QAAQ,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,iBAAU,CAAC,MAAM,CAAC;QAC3B,KAAK,aAAa;YAChB,OAAO,iBAAU,CAAC,MAAM,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,iBAAU,CAAC,KAAK,CAAC;QAC1B;YACE,OAAO,iBAAU,CAAC,QAAQ,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -20,6 +20,7 @@ export interface SymbolEntry {
20
20
  defEndColumn?: number;
21
21
  statePath?: string[];
22
22
  recovered?: boolean;
23
+ declaredType?: string;
23
24
  reqLanguage?: string;
24
25
  reqWho?: string;
25
26
  reqWhen?: string;
@@ -97,13 +97,62 @@ function analyzeToken(tree, referencesQuery, line, column) {
97
97
  // State definition names
98
98
  let stateDefinitionRef;
99
99
  if (node.type === "identifier" &&
100
- parent?.type === "state" &&
101
- parent.childForFieldName("name")?.id === node.id) {
100
+ ((parent?.type === "state" && parent.childForFieldName("name")?.id === node.id) ||
101
+ (parent?.type === "qualified_name" &&
102
+ parent.parent?.type === "state" &&
103
+ parent.parent.childForFieldName("name")?.id === parent.id))) {
102
104
  stateDefinitionRef = { definitionPath: (0, treeUtils_1.resolveStatePath)(node) };
103
105
  }
106
+ let context = { type: "normal" };
107
+ // Port connector endpoints:
108
+ // - pIn -> pOut resolves as class-local ports
109
+ // - cmp1.pOut resolves the first segment as the component attribute and the
110
+ // second as a port on that component's declared type.
111
+ if (node.type === "identifier" &&
112
+ parent?.type === "qualified_name" &&
113
+ parent.parent?.type === "port_connector") {
114
+ const endpoint = getQualifiedNameSegments(parent, node);
115
+ if (endpoint && endpoint.segments.length === 1) {
116
+ kinds = ["port"];
117
+ context = { type: "normal" };
118
+ }
119
+ else if (endpoint && endpoint.segments.length === 2) {
120
+ if (endpoint.index === 0) {
121
+ kinds = ["attribute"];
122
+ context = { type: "normal" };
123
+ }
124
+ else {
125
+ kinds = ["port"];
126
+ context = { type: "component_port", componentName: endpoint.segments[0] };
127
+ }
128
+ }
129
+ else {
130
+ kinds = null;
131
+ }
132
+ }
133
+ // Trace dotted state targets:
134
+ // trace status.Closed;
135
+ // First segment resolves to the class-local state machine, later segments to
136
+ // states inside that state machine. Plain trace entities stay attribute/method
137
+ // references; wildcard trace entities remain parse/highlight only.
138
+ if (node.type === "identifier" &&
139
+ parent?.type === "trace_qualified_name" &&
140
+ parent.parent?.type === "trace_entity" &&
141
+ parent.parent.parent?.type === "trace_statement") {
142
+ const path = getIdentifierSegments(parent, node);
143
+ if (path) {
144
+ kinds = path.index === 0 ? ["statemachine"] : ["state"];
145
+ context = {
146
+ type: "trace_state_path",
147
+ pathSegments: path.segments,
148
+ segmentIndex: path.index,
149
+ };
150
+ }
151
+ }
104
152
  // ── Trace prefix override: propagate prefix semantics to all entities ────
105
153
  const TRACE_PREFIX_STATE = new Set(["entry", "exit"]);
106
- const TRACE_PREFIX_ATTR = new Set(["set", "get"]);
154
+ const TRACE_PREFIX_ATTR = new Set(["set", "get", "onlyGet", "onlySet"]);
155
+ const TRACE_PREFIX_EVENT = new Set(["transition"]);
107
156
  const TRACE_PREFIX_ASSOC = new Set(["add", "remove", "cardinality"]);
108
157
  if (node.type === "identifier" &&
109
158
  (parent?.type === "trace_entity" || parent?.type === "trace_entity_call") &&
@@ -126,6 +175,10 @@ function analyzeToken(tree, referencesQuery, line, column) {
126
175
  hasPrefix = true;
127
176
  prefixKind = "attribute";
128
177
  }
178
+ if (TRACE_PREFIX_EVENT.has(child.type)) {
179
+ hasPrefix = true;
180
+ prefixKind = "event";
181
+ }
129
182
  // add/remove/cardinality: parse-only (association roles not indexed)
130
183
  if (TRACE_PREFIX_ASSOC.has(child.type)) {
131
184
  hasPrefix = true;
@@ -142,6 +195,9 @@ function analyzeToken(tree, referencesQuery, line, column) {
142
195
  else if (prefixKind === "attribute") {
143
196
  kinds = ["attribute"];
144
197
  }
198
+ else if (prefixKind === "event") {
199
+ kinds = ["event"];
200
+ }
145
201
  else {
146
202
  // association or unrecognized prefix → parse-only, no goto-def
147
203
  kinds = null;
@@ -149,7 +205,6 @@ function analyzeToken(tree, referencesQuery, line, column) {
149
205
  }
150
206
  }
151
207
  // ── Detect primary lookup context ────────────────────────────────────────
152
- let context = { type: "normal" };
153
208
  // trait_sm_binding param: isA T1<sm1 as sm.s2> or isA T1<sm.s0.s11 as state11>
154
209
  if (node.type === "identifier" &&
155
210
  parent?.type === "qualified_name" &&
@@ -433,6 +488,24 @@ function findChildByType(node, type) {
433
488
  }
434
489
  return null;
435
490
  }
491
+ function getQualifiedNameSegments(node, target) {
492
+ if (node.type !== "qualified_name")
493
+ return null;
494
+ return getIdentifierSegments(node, target);
495
+ }
496
+ function getIdentifierSegments(node, target) {
497
+ const segments = [];
498
+ let index = -1;
499
+ for (let i = 0; i < node.namedChildCount; i++) {
500
+ const child = node.namedChild(i);
501
+ if (child?.type !== "identifier")
502
+ continue;
503
+ if (child.id === target.id)
504
+ index = segments.length;
505
+ segments.push(child.text);
506
+ }
507
+ return index >= 0 ? { segments, index } : null;
508
+ }
436
509
  /**
437
510
  * Use references.scm query to determine which symbol kinds are valid
438
511
  * for a node's context.
@@ -1 +1 @@
1
- {"version":3,"file":"tokenAnalysis.js","sourceRoot":"","sources":["../src/tokenAnalysis.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuBH,oCAuaC;AA5bD,iEAAiE;AACjE,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAK9C,6CAA0D;AAC1D,2CAAsE;AAEtE;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAC1B,IAAU,EACV,eAAsB,EACtB,IAAY,EACZ,MAAc;IAEd,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtE,yEAAyE;IACzE,6EAA6E;IAC7E,6DAA6D;IAC7D,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAsB,IAAI,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IACE,KAAK,CAAC,IAAI,KAAK,YAAY;gBAC3B,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,IAAI;gBAChC,KAAK,CAAC,aAAa,CAAC,MAAM,IAAI,MAAM;gBACpC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,EACjC,CAAC;gBACD,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IACE,CAAC,IAAI;QACL,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;YACzB,IAAI,CAAC,IAAI,KAAK,UAAU;YACxB,IAAI,CAAC,IAAI,KAAK,gBAAgB;YAC9B,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IAEhE,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,gEAAgE;IAChE,IACE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,CAAC;QACD,KAAK,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAiB,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAC7C,IAAA,iCAAqB,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAE5C,2EAA2E;IAE3E,0CAA0C;IAC1C,IAAI,cAA6C,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QAClC,IAAI,WAAW,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,UAAU,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAa,EAAE,CAAC;gBACzB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;gBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;wBACjC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;4BAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;wBAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;oBAC/B,cAAc,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,kBAAqD,CAAC;IAC1D,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,OAAO;QACxB,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAChD,CAAC;QACD,kBAAkB,GAAG,EAAE,cAAc,EAAE,IAAA,4BAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,4EAA4E;IAC5E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAClD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAErE,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,CAAC,MAAM,EAAE,IAAI,KAAK,cAAc,IAAI,MAAM,EAAE,IAAI,KAAK,mBAAmB,CAAC;QACzE,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,iBAAiB,EACzC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,yFAAyF;QACzF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,UAAU,GAAiD,IAAI,CAAC;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;gBAAE,MAAM,CAAC,gBAAgB;YAChG,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,IAAI,CAAC;gBAAC,UAAU,GAAG,OAAO,CAAC;YAAC,CAAC;YACnF,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,IAAI,CAAC;gBAAC,UAAU,GAAG,WAAW,CAAC;YAAC,CAAC;YACtF,qEAAqE;YACrE,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,IAAI,CAAC;gBAAC,UAAU,GAAG,IAAI,CAAC;YAAC,CAAC;QAClF,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAClE,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,8BAA8B;YACpD,CAAC;iBAAM,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAClC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBACtC,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,+DAA+D;gBAC/D,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E,IAAI,OAAO,GAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAEhD,+EAA+E;IAC/E,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,gBAAgB;QACjC,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,kBAAkB;QAC1C,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAC1D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,kCAAkC;QAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;oBAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,sCAAsC;QACtC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,KAAK,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;QAChC,IAAI,QAAQ,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,EAAE,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;oBAClC,yEAAyE;oBACzE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,OAAO,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;oBAC9H,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC/D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,gBAAgB;QACjC,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,kBAAkB;QAC1C,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAC1D,CAAC;QACD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;oBAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;YAChF,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,gBAAgB;QACjC,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,oBAAoB,EAC5C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,yCAAyC;QACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;oBAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,0DAA0D;QAC1D,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QACrF,MAAM,aAAa,GAAG,GAAG,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,aAAa,IAAI,cAAc,CAAC;QAEvD,kEAAkE;QAClE,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,8CAA8C;QAC9E,IAAI,QAAQ,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,EAAE,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY;oBAAE,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,uEAAuE;YACvE,IAAI,WAAiC,CAAC;YACtC,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;gBAC5F,IAAI,QAAQ,EAAE,CAAC;oBACb,WAAW,GAAG,EAAE,CAAC;oBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;wBAClD,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,EAAE,EAAE,IAAI,KAAK,WAAW;4BAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,EAAE,CAAC,CAAC,kBAAkB;gBACtC,CAAC;YACH,CAAC;YACD,OAAO,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;YACrH,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,uEAAuE;IACvE,kFAAkF;IAClF,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,oBAAoB;QACrC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,+CAA+C;MACzE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC;QAEtB,gFAAgF;QAChF,yEAAyE;QACzE,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAChD,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CACrD,CAAC;QACF,IAAI,gBAAgB,EAAE,CAAC;YACrB,sCAAsC;YACtC,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,qEAAqE;YACrE,yCAAyC;YACzC,MAAM,WAAW,GAAmC,EAAE,CAAC;YACvD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACrB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,IAAI,OAAO,EAAE,CAAC;wBAAC,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;wBAAC,SAAS;oBAAC,CAAC;oBAC5D,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;gBAErF,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC/B,IAAI,QAAQ,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;oBACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACxE,IAAI,EAAE,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;wBAClC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;wBACrD,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY;4BAAE,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBAED,IAAI,GAAG,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC1B,MAAM,aAAa,GAAG,GAAG,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;oBAClD,MAAM,cAAc,GAAG,aAAa,IAAI,cAAc,CAAC;oBACvD,IAAI,WAAiC,CAAC;oBACtC,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;wBAC5F,WAAW,GAAG,QAAQ;4BACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iCAC/E,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,WAAW,CAAC;iCAC7C,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BAC9B,CAAC,CAAC,EAAE,CAAC;oBACT,CAAC;oBACD,OAAO,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;oBACrH,IAAI,cAAc,EAAE,CAAC;wBACnB,KAAK,GAAG,IAAI,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,yBAAyB;QAC1C,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;QACtD,cAAc,EACd,CAAC;QACD,OAAO,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IACtC,CAAC;IAED,+EAA+E;IAC/E,2EAA2E;IAC3E,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,yBAAyB,EAC1C,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,iBAAiB;QAClC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EACpD,CAAC;QACD,qEAAqE;QACrE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,UAA8B,CAAC;YACnC,IAAI,SAAS,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,wDAAwD;gBACxD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,KAAK,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;oBAClD,kDAAkD;oBAClD,UAAU,GAAG,cAAc,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,0CAA0C;oBAC1C,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,KAAK,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;oBAClD,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,gBAAgB;QACjC,MAAM,CAAC,eAAe,GAAG,CAAC,EAC1B,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,KAAK,uBAAuB,IAAI,EAAE,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAC7E,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACpF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjB,OAAO,GAAG,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK;QACL,cAAc;QACd,qBAAqB;QACrB,OAAO;QACP,cAAc;QACd,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,0EAA0E;AAC1E,SAAS,eAAe,CAAC,IAAgB,EAAE,IAAY;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,IAAU,EACV,IAAgB,EAChB,eAAsB;IAEtB,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;QACvD,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,IAAI,WAAW,GAA8C,IAAI,CAAC;IAClE,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IACE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;YAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EACtC,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACjD,IACE,IAAI,GAAG,QAAQ;gBACf,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,GAAG,aAAa,CAAC,EAChD,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC;gBAChB,aAAa,GAAG,SAAS,CAAC;gBAC1B,WAAW,GAAG,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC;IAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,uCAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"tokenAnalysis.js","sourceRoot":"","sources":["../src/tokenAnalysis.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Lives in a neutral module to avoid dependency cycles between
5
5
  * tokenAnalysis, symbolIndex, resolver, and tests.
6
6
  */
7
- export type SymbolKind = "class" | "interface" | "trait" | "enum" | "enum_value" | "const" | "attribute" | "state" | "statemachine" | "method" | "association" | "mixset" | "requirement" | "use_case_step" | "template" | "tracecase";
7
+ export type SymbolKind = "class" | "interface" | "trait" | "enum" | "enum_value" | "const" | "attribute" | "port" | "state" | "statemachine" | "event" | "method" | "association" | "mixset" | "requirement" | "use_case_step" | "template" | "tracecase";
8
8
  /** All SymbolKind values sorted longest-first for greedy capture name parsing. */
9
9
  export declare const SYMBOL_KINDS_LONGEST_FIRST: SymbolKind[];
10
10
  /** Primary lookup strategy — exactly one per token. */
@@ -27,6 +27,13 @@ export type LookupContext = {
27
27
  } | {
28
28
  type: "sorted_key";
29
29
  ownerClass: string;
30
+ } | {
31
+ type: "component_port";
32
+ componentName: string;
33
+ } | {
34
+ type: "trace_state_path";
35
+ pathSegments: string[];
36
+ segmentIndex: number;
30
37
  } | {
31
38
  type: "trait_sm_op";
32
39
  traitName: string;
package/out/tokenTypes.js CHANGED
@@ -17,8 +17,10 @@ exports.SYMBOL_KINDS_LONGEST_FIRST = [
17
17
  "enum_value",
18
18
  "const",
19
19
  "attribute",
20
+ "port",
20
21
  "state",
21
22
  "statemachine",
23
+ "event",
22
24
  "method",
23
25
  "association",
24
26
  "mixset",
@@ -1 +1 @@
1
- {"version":3,"file":"tokenTypes.js","sourceRoot":"","sources":["../src/tokenTypes.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsEH,0CAGC;AArDD,kFAAkF;AACrE,QAAA,0BAA0B,GACrC;IACE,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,YAAY;IACZ,OAAO;IACP,WAAW;IACX,OAAO;IACP,cAAc;IACd,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,aAAa;IACb,eAAe;IACf,UAAU;IACV,WAAW;CAEd,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAwBtC;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AACtD,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"tokenTypes.js","sourceRoot":"","sources":["../src/tokenTypes.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA4EH,0CAGC;AAzDD,kFAAkF;AACrE,QAAA,0BAA0B,GACrC;IACE,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,YAAY;IACZ,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,cAAc;IACd,OAAO;IACP,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,aAAa;IACb,eAAe;IACf,UAAU;IACV,WAAW;CAEd,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AA0BtC;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AACtD,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC"}
package/out/treeUtils.js CHANGED
@@ -55,15 +55,28 @@ function resolveEnclosingScope(tree, line, column) {
55
55
  * E.g., for `Inner` inside `Open` inside `EEE`, returns `["EEE", "Open", "Inner"]`.
56
56
  */
57
57
  function resolveStatePath(nameNode) {
58
- const segments = [nameNode.text];
59
- let current = nameNode.parent; // The state node itself
58
+ const stateNameText = (node) => {
59
+ if (node.type === "qualified_name") {
60
+ for (let i = node.namedChildCount - 1; i >= 0; i--) {
61
+ const child = node.namedChild(i);
62
+ if (child?.type === "identifier")
63
+ return child.text;
64
+ }
65
+ }
66
+ return node.text;
67
+ };
68
+ const segments = [stateNameText(nameNode)];
69
+ let current = nameNode;
70
+ while (current && current.type !== "state") {
71
+ current = current.parent;
72
+ }
60
73
  if (current)
61
- current = current.parent; // Go above it
74
+ current = current.parent; // Go above the state being named.
62
75
  while (current) {
63
76
  if (current.type === "state") {
64
77
  const name = current.childForFieldName("name");
65
78
  if (name)
66
- segments.unshift(name.text);
79
+ segments.unshift(stateNameText(name));
67
80
  }
68
81
  if (current.type === "state_machine" ||
69
82
  current.type === "statemachine_definition" ||
@@ -1 +1 @@
1
- {"version":3,"file":"treeUtils.js","sourceRoot":"","sources":["../src/treeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"treeUtils.js","sourceRoot":"","sources":["../src/treeUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SymbolInformation } from "vscode-languageserver/node";
2
+ import type { SymbolEntry } from "./symbolTypes";
3
+ export declare function buildWorkspaceSymbols(symbols: readonly SymbolEntry[], query: string): SymbolInformation[];
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildWorkspaceSymbols = buildWorkspaceSymbols;
4
+ const node_1 = require("vscode-languageserver/node");
5
+ const url_1 = require("url");
6
+ const symbolPresentation_1 = require("./symbolPresentation");
7
+ const CORE_WORKSPACE_SYMBOL_KINDS = new Set([
8
+ "class",
9
+ "interface",
10
+ "trait",
11
+ "enum",
12
+ "mixset",
13
+ "statemachine",
14
+ "state",
15
+ "method",
16
+ "association",
17
+ "requirement",
18
+ ]);
19
+ const QUERY_ONLY_WORKSPACE_SYMBOL_KINDS = new Set([
20
+ "attribute",
21
+ "port",
22
+ "const",
23
+ "enum_value",
24
+ ]);
25
+ function buildWorkspaceSymbols(symbols, query) {
26
+ const normalizedQuery = query.trim().toLowerCase();
27
+ return symbols
28
+ .filter((symbol) => isWorkspaceSymbolKind(symbol.kind, normalizedQuery))
29
+ .filter((symbol) => matchesWorkspaceSymbolQuery(symbol, normalizedQuery))
30
+ .sort((a, b) => compareWorkspaceSymbols(a, b, normalizedQuery))
31
+ .map(symbolToInformation);
32
+ }
33
+ function isWorkspaceSymbolKind(kind, query) {
34
+ if (CORE_WORKSPACE_SYMBOL_KINDS.has(kind))
35
+ return true;
36
+ if (query.length === 0)
37
+ return false;
38
+ return QUERY_ONLY_WORKSPACE_SYMBOL_KINDS.has(kind);
39
+ }
40
+ function matchesWorkspaceSymbolQuery(symbol, query) {
41
+ if (query.length === 0)
42
+ return true;
43
+ return searchableText(symbol).some((text) => text.includes(query));
44
+ }
45
+ function searchableText(symbol) {
46
+ const parts = new Set([
47
+ symbol.name.toLowerCase(),
48
+ workspaceSymbolName(symbol).toLowerCase(),
49
+ ]);
50
+ const container = displayContainerName(symbol);
51
+ if (container) {
52
+ parts.add(container.toLowerCase());
53
+ parts.add(`${container}.${symbol.name}`.toLowerCase());
54
+ }
55
+ if (symbol.kind === "state" && symbol.statePath && symbol.container) {
56
+ parts.add(`${symbol.container}.${symbol.statePath.join(".")}`.toLowerCase());
57
+ }
58
+ return [...parts];
59
+ }
60
+ function compareWorkspaceSymbols(a, b, query) {
61
+ const scoreDiff = workspaceSymbolScore(a, query) - workspaceSymbolScore(b, query);
62
+ if (scoreDiff !== 0)
63
+ return scoreDiff;
64
+ const nameDiff = a.name.localeCompare(b.name);
65
+ if (nameDiff !== 0)
66
+ return nameDiff;
67
+ const kindDiff = a.kind.localeCompare(b.kind);
68
+ if (kindDiff !== 0)
69
+ return kindDiff;
70
+ const containerDiff = (displayContainerName(a) ?? "").localeCompare(displayContainerName(b) ?? "");
71
+ if (containerDiff !== 0)
72
+ return containerDiff;
73
+ const fileDiff = a.file.localeCompare(b.file);
74
+ if (fileDiff !== 0)
75
+ return fileDiff;
76
+ return a.line - b.line || a.column - b.column;
77
+ }
78
+ function workspaceSymbolScore(symbol, query) {
79
+ if (query.length === 0)
80
+ return 0;
81
+ const texts = searchableText(symbol);
82
+ if (texts.some((text) => text === query))
83
+ return 0;
84
+ if (texts.some((text) => text.startsWith(query)))
85
+ return 1;
86
+ return 2;
87
+ }
88
+ function symbolToInformation(symbol) {
89
+ return node_1.SymbolInformation.create(workspaceSymbolName(symbol), (0, symbolPresentation_1.umpleKindToLspSymbolKind)(symbol.kind), node_1.Range.create(node_1.Position.create(symbol.line, symbol.column), node_1.Position.create(symbol.endLine, symbol.endColumn)), (0, url_1.pathToFileURL)(symbol.file).toString(), displayContainerName(symbol));
90
+ }
91
+ function workspaceSymbolName(symbol) {
92
+ if (!symbol.container || symbol.container === symbol.name)
93
+ return symbol.name;
94
+ if (symbol.kind === "statemachine" && symbol.container.endsWith(`.${symbol.name}`)) {
95
+ return symbol.container;
96
+ }
97
+ if (symbol.kind === "state" && symbol.statePath && symbol.container) {
98
+ return `${symbol.container}.${symbol.statePath.join(".")}`;
99
+ }
100
+ return `${symbol.container}.${symbol.name}`;
101
+ }
102
+ function displayContainerName(symbol) {
103
+ if (!symbol.container || symbol.container === symbol.name)
104
+ return undefined;
105
+ if (symbol.kind === "statemachine" &&
106
+ symbol.container.endsWith(`.${symbol.name}`)) {
107
+ const owner = symbol.container.slice(0, -(`.${symbol.name}`).length);
108
+ return owner || undefined;
109
+ }
110
+ if (symbol.kind === "state" &&
111
+ symbol.statePath &&
112
+ symbol.statePath.length > 1) {
113
+ return `${symbol.container}.${symbol.statePath.slice(0, -1).join(".")}`;
114
+ }
115
+ return symbol.container;
116
+ }
117
+ //# sourceMappingURL=workspaceSymbolBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceSymbolBuilder.js","sourceRoot":"","sources":["../src/workspaceSymbolBuilder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "umple-lsp-server",
3
- "version": "0.4.2",
3
+ "version": "1.0.0",
4
4
  "description": "Language Server Protocol implementation for the Umple modeling language",
5
5
  "main": "out/server.js",
6
6
  "bin": {
@@ -9,10 +9,13 @@
9
9
  "files": [
10
10
  "out/",
11
11
  "bin/",
12
+ "README.md",
13
+ "CHANGELOG.md",
12
14
  "tree-sitter-umple.wasm",
13
15
  "references.scm",
14
16
  "definitions.scm",
15
- "completions.scm"
17
+ "completions.scm",
18
+ "highlights.scm"
16
19
  ],
17
20
  "scripts": {
18
21
  "compile": "tsc -p .",
package/references.scm CHANGED
@@ -47,12 +47,16 @@
47
47
  (state_machine name: (identifier) @reference.statemachine)
48
48
  (referenced_statemachine definition: (identifier) @reference.statemachine)
49
49
  (state name: (identifier) @reference.state)
50
+ (state name: (qualified_name (identifier) @reference.state .))
50
51
  (association_definition name: (identifier) @reference.association)
51
52
  (attribute_declaration name: (identifier) @reference.attribute)
53
+ (port_declaration name: (identifier) @reference.port)
52
54
  (const_declaration name: (identifier) @reference.const)
53
55
  (method_declaration name: (identifier) @reference.method)
54
56
  (method_signature name: (identifier) @reference.method)
55
57
  (trait_method_signature name: (identifier) @reference.method)
58
+ (active_method name: (identifier) @reference.method)
59
+ (test_case name: (identifier) @reference.method)
56
60
 
57
61
  ; =====================
58
62
  ; TYPE REFERENCES
@@ -61,6 +65,15 @@
61
65
 
62
66
  (type_name (qualified_name (identifier) @reference.class_interface_trait_enum))
63
67
 
68
+ ; =====================
69
+ ; PORT CONNECTOR REFERENCES
70
+ ; =====================
71
+ ; Bare endpoints resolve to class-local ports. Dotted component endpoints are
72
+ ; split by tokenAnalysis.ts: the component segment is an attribute reference and
73
+ ; the port segment resolves against the component's declared type.
74
+ (port_connector
75
+ (qualified_name (identifier) @reference.attribute_port))
76
+
64
77
  ; =====================
65
78
  ; ATTRIBUTE/CONST DEFAULT VALUE REFERENCES
66
79
  ; =====================
@@ -81,7 +94,7 @@
81
94
  ; =====================
82
95
 
83
96
  (isa_declaration
84
- (type_list
97
+ (isa_type_list
85
98
  (type_name
86
99
  (qualified_name (identifier) @reference.class_interface_trait))))
87
100
 
@@ -115,6 +128,11 @@
115
128
  (req_user_step id: (req_step_id (identifier) @reference.use_case_step))
116
129
  (req_system_response id: (req_step_id (identifier) @reference.use_case_step))
117
130
 
131
+ ; Test sequence steps reference test case methods in the same class/inherited scope.
132
+ (test_sequence_step
133
+ from: (identifier) @reference.method
134
+ to: (identifier) @reference.method)
135
+
118
136
  ; =====================
119
137
  ; ASSOCIATION TYPE REFERENCES
120
138
  ; =====================
@@ -132,9 +150,12 @@
132
150
  ; STATE REFERENCES
133
151
  ; =====================
134
152
 
153
+ (event_spec (identifier) @reference.event)
135
154
  (transition target: (qualified_name (identifier) @reference.state))
136
155
  (standalone_transition from_state: (identifier) @reference.state)
137
156
  (standalone_transition to_state: (identifier) @reference.state)
157
+ (state_to_state_transition from_state: (identifier) @reference.state)
158
+ (state_to_state_transition to_state: (identifier) @reference.state)
138
159
 
139
160
  ; =====================
140
161
  ; KEY DEFINITION
@@ -161,6 +182,8 @@
161
182
  ; set/get → attribute (all entities in statement)
162
183
  (trace_statement "set" (trace_entity (identifier) @reference.attribute))
163
184
  (trace_statement "get" (trace_entity (identifier) @reference.attribute))
185
+ (trace_statement "onlyGet" (trace_entity (identifier) @reference.attribute))
186
+ (trace_statement "onlySet" (trace_entity (identifier) @reference.attribute))
164
187
  ; entry/exit bare → state; entry/exit call → method (all entities)
165
188
  (trace_statement "entry" (trace_entity (identifier) @reference.state))
166
189
  (trace_statement "exit" (trace_entity (identifier) @reference.state))
@@ -168,11 +191,16 @@
168
191
  (trace_statement "exit" (trace_entity_call (identifier) @reference.method))
169
192
  ; add/remove/cardinality: parse-only (association roles not indexed as symbols)
170
193
  ; in/out: parse-only
194
+ ; transition → event names
195
+ (trace_statement "transition" (trace_entity (identifier) @reference.event))
196
+ (trace_statement "transition" (trace_entity_call (identifier) @reference.event))
171
197
  ; Subsequent entities after "," in no-prefix traces
172
198
  (trace_statement "," (trace_entity (identifier) @reference.attribute_method))
173
199
  (trace_statement "," (trace_entity_call (identifier) @reference.method))
200
+ ; Dotted trace state target: trace status.Closed;
201
+ (trace_qualified_name (identifier) @reference.statemachine_state)
174
202
  ; "record x" in trace postfix — additional entity reference
175
- (trace_postfix "record" . (identifier) @reference.attribute_method)
203
+ (trace_record_target (identifier) @reference.attribute)
176
204
  ; tracecase definition name and activate/deactivate references
177
205
  (trace_statement name: (identifier) @reference.tracecase)
178
206
  (trace_statement "activate" . (identifier) @reference.tracecase)
@@ -183,7 +211,7 @@
183
211
  ; =====================
184
212
  (emit_method name: (identifier) @reference.method)
185
213
  (template_attribute name: (identifier) @reference.template)
186
- (template_list template_name: (identifier) @reference.template)
214
+ (template_reference template_name: (identifier) @reference.template)
187
215
 
188
216
  ; =====================
189
217
  ; FILTER VALUE CLASS REFERENCES
Binary file
package/out/bin.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import "./server";
package/out/bin.js DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- require("./server");
5
- //# sourceMappingURL=bin.js.map
package/out/bin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;AACA,oBAAkB"}
package/out/log.d.ts DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- * Write a debug message to a dedicated log file.
3
- *
4
- * Usage: debugLog("token:", word, "kinds:", kinds);
5
- * View: tail -f /tmp/umple-lsp.log
6
- */
7
- export declare function debugLog(...args: unknown[]): void;
package/out/log.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.debugLog = debugLog;
4
- const fs = require("fs");
5
- const path = require("path");
6
- const os = require("os");
7
- const LOG_FILE = path.join(os.tmpdir(), "umple-lsp.log");
8
- /**
9
- * Write a debug message to a dedicated log file.
10
- *
11
- * Usage: debugLog("token:", word, "kinds:", kinds);
12
- * View: tail -f /tmp/umple-lsp.log
13
- */
14
- function debugLog(...args) {
15
- console.error("okokokokok", LOG_FILE);
16
- const timestamp = new Date().toISOString().slice(11, 23);
17
- const message = args
18
- .map((a) => (typeof a === "object" ? JSON.stringify(a) : String(a)))
19
- .join(" ");
20
- fs.appendFileSync(LOG_FILE, `[${timestamp}] ${message}\n`);
21
- }
22
- //# sourceMappingURL=log.js.map
package/out/log.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":";;AAYA,4BAOC;AAnBD,yBAAyB;AACzB,6BAA6B;AAC7B,yBAAyB;AAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,GAAG,IAAe;IACzC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACnE,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC;AAC7D,CAAC"}