grammar-composer 0.2.4 → 0.3.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 (80) hide show
  1. package/README.md +2 -2
  2. package/dist/exports/Exports.d.ts +2 -0
  3. package/dist/exports/Exports.d.ts.map +1 -0
  4. package/dist/exports/Exports.js +2 -0
  5. package/dist/exports/Exports.js.map +1 -0
  6. package/dist/{GrammarComposer.d.ts → parser-generator/Grammar.d.ts} +2 -1
  7. package/dist/parser-generator/Grammar.d.ts.map +1 -0
  8. package/dist/{GrammarComposer.js → parser-generator/Grammar.js} +84 -27
  9. package/dist/parser-generator/Grammar.js.map +1 -0
  10. package/dist/{TopDownParser.d.ts → parser-generator/TopDownParser.d.ts} +3 -2
  11. package/dist/parser-generator/TopDownParser.d.ts.map +1 -0
  12. package/dist/{TopDownParser.js → parser-generator/TopDownParser.js} +13 -8
  13. package/dist/parser-generator/TopDownParser.js.map +1 -0
  14. package/dist/tests/Test.d.ts +2 -0
  15. package/dist/tests/Test.d.ts.map +1 -0
  16. package/dist/{Test.js → tests/Test.js} +6 -6
  17. package/dist/tests/Test.js.map +1 -0
  18. package/dist/{test-data → tests/test-data}/TestData.d.ts +1 -0
  19. package/dist/tests/test-data/TestData.d.ts.map +1 -0
  20. package/dist/tests/test-data/TestData.js.map +1 -0
  21. package/dist/{test-grammars → tests/test-grammars}/JsonGrammar.d.ts +2 -1
  22. package/dist/tests/test-grammars/JsonGrammar.d.ts.map +1 -0
  23. package/dist/{test-grammars → tests/test-grammars}/JsonGrammar.js +1 -1
  24. package/dist/tests/test-grammars/JsonGrammar.js.map +1 -0
  25. package/dist/{test-grammars → tests/test-grammars}/RegExpGrammar.d.ts +2 -1
  26. package/dist/tests/test-grammars/RegExpGrammar.d.ts.map +1 -0
  27. package/dist/{test-grammars → tests/test-grammars}/RegExpGrammar.js +1 -1
  28. package/dist/tests/test-grammars/RegExpGrammar.js.map +1 -0
  29. package/dist/{test-grammars → tests/test-grammars}/XmlGrammar.d.ts +2 -1
  30. package/dist/tests/test-grammars/XmlGrammar.d.ts.map +1 -0
  31. package/dist/{test-grammars → tests/test-grammars}/XmlGrammar.js +1 -1
  32. package/dist/tests/test-grammars/XmlGrammar.js.map +1 -0
  33. package/dist/utilities/Timer.d.ts +1 -0
  34. package/dist/utilities/Timer.d.ts.map +1 -0
  35. package/dist/utilities/Timer.js +1 -1
  36. package/dist/utilities/{utilities.d.ts → Utilities.d.ts} +1 -0
  37. package/dist/utilities/Utilities.d.ts.map +1 -0
  38. package/package.json +5 -5
  39. package/src/exports/Exports.ts +1 -0
  40. package/src/{GrammarComposer.ts → parser-generator/Grammar.ts} +94 -30
  41. package/src/{TopDownParser.ts → parser-generator/TopDownParser.ts} +15 -12
  42. package/src/{Test.ts → tests/Test.ts} +6 -6
  43. package/src/{test-grammars → tests/test-grammars}/JsonGrammar.ts +1 -1
  44. package/src/{test-grammars → tests/test-grammars}/RegExpGrammar.ts +1 -1
  45. package/src/{test-grammars → tests/test-grammars}/XmlGrammar.ts +1 -1
  46. package/src/utilities/Timer.ts +1 -1
  47. package/tsconfig.json +53 -103
  48. package/dist/Exports.d.ts +0 -1
  49. package/dist/Exports.js +0 -2
  50. package/dist/Exports.js.map +0 -1
  51. package/dist/Grammar.d.ts +0 -62
  52. package/dist/Grammar.js +0 -376
  53. package/dist/Grammar.js.map +0 -1
  54. package/dist/GrammarComposer.js.map +0 -1
  55. package/dist/Grammars/JsonGrammar.d.ts +0 -16
  56. package/dist/Grammars/JsonGrammar.js +0 -74
  57. package/dist/Grammars/JsonGrammar.js.map +0 -1
  58. package/dist/Grammars/XmlGrammar.d.ts +0 -13
  59. package/dist/Grammars/XmlGrammar.js +0 -74
  60. package/dist/Grammars/XmlGrammar.js.map +0 -1
  61. package/dist/ParserTest.d.ts +0 -1
  62. package/dist/ParserTest.js +0 -37
  63. package/dist/ParserTest.js.map +0 -1
  64. package/dist/Test.d.ts +0 -1
  65. package/dist/Test.js.map +0 -1
  66. package/dist/TestData.d.ts +0 -5
  67. package/dist/TestData.js +0 -466
  68. package/dist/TestData.js.map +0 -1
  69. package/dist/TopDownParser.js.map +0 -1
  70. package/dist/data/TestData.d.ts +0 -5
  71. package/dist/data/TestData.js +0 -466
  72. package/dist/data/TestData.js.map +0 -1
  73. package/dist/test-data/TestData.js.map +0 -1
  74. package/dist/test-grammars/JsonGrammar.js.map +0 -1
  75. package/dist/test-grammars/RegExpGrammar.js.map +0 -1
  76. package/dist/test-grammars/XmlGrammar.js.map +0 -1
  77. /package/dist/{test-data → tests/test-data}/TestData.js +0 -0
  78. /package/dist/utilities/{utilities.js → Utilities.js} +0 -0
  79. /package/dist/utilities/{utilities.js.map → Utilities.js.map} +0 -0
  80. /package/src/{test-data → tests/test-data}/TestData.ts +0 -0
package/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  A library to define, build and efficiently parse context-free grammars.
4
4
 
5
5
  * Grammars are defined using TypeScript class declarations
6
- * No need for separate tokenization step. Tokenization is defined as part of the grammar via embedded `Pattern` objects that are internally processed through the [`regexp-composer`](https://github.com/rotemdan/regexp-composer) regular expression library
7
- * The generated parser accepts raw characters as input, meaning it's a form of lexer-free, or hybrid parser, supporting contextual tokenization - that is, low-level character patterns can be specialized to different high-level parser contexts, and sub-patterns captured in the low-level regular expressions are directly embedded as part of the resulting parse tree
6
+ * No tokenization stage. The generated parser accepts raw characters as input, meaning it's a form of lexer-free, or hybrid parser, supporting contextual tokenization - that is, low-level character patterns can be specialized to different high-level parser contexts, and sub-patterns captured in the low-level regular expressions are directly embedded as part of the resulting parse tree
7
+ * Raw character parsing is defined as part of the grammar via embedded `Pattern` objects that are internally processed through the [`regexp-composer`](https://github.com/rotemdan/regexp-composer) regular expression library
8
8
  * Top-down parsing (roughly equivalent to PEG parsing), with optional "packrat" caching that can be enabled or disabled for individual productions
9
9
  * Supports right-recursion, but will currently error when left-recursion is detected
10
10
  * Uses sophisticated static analysis to automatically identify and annotate optional productions
@@ -0,0 +1,2 @@
1
+ export * from '../parser-generator/Grammar.js';
2
+ //# sourceMappingURL=Exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Exports.d.ts","sourceRoot":"","sources":["../../src/exports/Exports.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '../parser-generator/Grammar.js';
2
+ //# sourceMappingURL=Exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Exports.js","sourceRoot":"","sources":["../../src/exports/Exports.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
@@ -15,7 +15,7 @@ export declare class Grammar<T> {
15
15
  readonly startProductionName: keyof T;
16
16
  readonly maxElementId: number;
17
17
  constructor(productions: Record<keyof T, any>, startProductionName: keyof T, maxElementId: number);
18
- parse(text: string): import("./TopDownParser.js").ParseTreeNode[] | undefined;
18
+ parse(text: string): import("./TopDownParser.js").ParseTreeNode[];
19
19
  get rootElement(): any;
20
20
  }
21
21
  export type Production = string | GrammarElement | (() => Production) | Production[];
@@ -59,3 +59,4 @@ export interface NonterminalReference extends GrammarElementBase {
59
59
  reference: Function;
60
60
  }
61
61
  export {};
62
+ //# sourceMappingURL=Grammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grammar.d.ts","sourceRoot":"","sources":["../../src/parser-generator/Grammar.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { buildRegExp, inputStart, isPatternOptional } from 'regexp-composer';
2
- import { isArray, isBoolean, isFunction, isString } from "./utilities/Utilities.js";
2
+ import { isArray, isBoolean, isFunction, isString } from '../utilities/Utilities.js';
3
3
  import { parse } from './TopDownParser.js';
4
4
  /////////////////////////////////////////////////////////////////////////////////////////////////
5
5
  // Grammar builder method
@@ -17,7 +17,7 @@ export function buildGrammar(obj, startProductionName) {
17
17
  if (!isFunction(objectProperty)) {
18
18
  continue;
19
19
  }
20
- const productionContent = objectProperty();
20
+ const productionContent = objectProperty.call(obj);
21
21
  const normalizedProduction = productionToGrammarElement(productionContent);
22
22
  const newNonterminal = nonterminal(key, normalizedProduction);
23
23
  const newOptionalNonterminal = { ...newNonterminal, optional: true };
@@ -87,6 +87,14 @@ function prepareGrammarElement(rootElement, nonterminalLookup, optionalNontermin
87
87
  if (!nonterminal) {
88
88
  throw new Error(`Couldn't resolve function reference in grammar element: ${JSON.stringify(element)}`);
89
89
  }
90
+ if (element.cached !== undefined || element.uniqueId !== undefined) {
91
+ const clonedNonterminal = { ...nonterminal };
92
+ if (element.cached !== undefined) {
93
+ clonedNonterminal.cached = element.cached;
94
+ }
95
+ clonedNonterminal.uniqueId = getUniqueId();
96
+ return clonedNonterminal;
97
+ }
90
98
  if (nonterminal.uniqueId === undefined) {
91
99
  nonterminal.uniqueId = getUniqueId();
92
100
  }
@@ -126,19 +134,49 @@ function detectAndAnnotateOptionalNodes(rootNode) {
126
134
  return result;
127
135
  }
128
136
  else {
129
- unresolvedNodes.set(node, new Set([node.content]));
137
+ unresolvedNodes.set(node, { dependencies: new Set([node.content]), isChoice: false });
138
+ return undefined;
139
+ }
140
+ }
141
+ case 'Sequence': {
142
+ const dependencies = new Set();
143
+ let hasNonOptionalResolvedMember = false;
144
+ for (const element of node.members) {
145
+ const result = processDepthFirst(element);
146
+ if (isBoolean(result)) {
147
+ if (result === false) {
148
+ hasNonOptionalResolvedMember = true;
149
+ }
150
+ }
151
+ else {
152
+ dependencies.add(element);
153
+ }
154
+ }
155
+ if (node.optional == true) {
156
+ resolvedNodes.set(node, true);
157
+ return true;
158
+ }
159
+ else if (hasNonOptionalResolvedMember) {
160
+ resolvedNodes.set(node, false);
161
+ return false;
162
+ }
163
+ else if (dependencies.size == 0) {
164
+ resolvedNodes.set(node, true);
165
+ return true;
166
+ }
167
+ else {
168
+ unresolvedNodes.set(node, { dependencies, isChoice: false });
130
169
  return undefined;
131
170
  }
132
171
  }
133
- case 'Sequence':
134
172
  case 'Choice': {
135
173
  const dependencies = new Set();
136
- let allResolvedElementsAreOptional = true;
174
+ let hasOptionalResolvedMember = false;
137
175
  for (const element of node.members) {
138
176
  const result = processDepthFirst(element);
139
177
  if (isBoolean(result)) {
140
- if (result == false) {
141
- allResolvedElementsAreOptional = false;
178
+ if (result === true) {
179
+ hasOptionalResolvedMember = true;
142
180
  }
143
181
  }
144
182
  else {
@@ -149,12 +187,16 @@ function detectAndAnnotateOptionalNodes(rootNode) {
149
187
  resolvedNodes.set(node, true);
150
188
  return true;
151
189
  }
152
- else if (dependencies.size == 0 || !allResolvedElementsAreOptional) {
153
- resolvedNodes.set(node, allResolvedElementsAreOptional);
154
- return allResolvedElementsAreOptional;
190
+ else if (hasOptionalResolvedMember) {
191
+ resolvedNodes.set(node, true);
192
+ return true;
193
+ }
194
+ else if (dependencies.size == 0) {
195
+ resolvedNodes.set(node, false);
196
+ return false;
155
197
  }
156
198
  else {
157
- unresolvedNodes.set(node, dependencies);
199
+ unresolvedNodes.set(node, { dependencies, isChoice: true });
158
200
  return undefined;
159
201
  }
160
202
  }
@@ -171,34 +213,49 @@ function detectAndAnnotateOptionalNodes(rootNode) {
171
213
  // If it stays false, it means that no improvement was made during the iteration,
172
214
  // and we should exit the loop.
173
215
  let atLastOneDependencyResolvedInAnyNode = false;
216
+ const nodesToDelete = [];
174
217
  // Scan the unresolved nodes to locate any new resolved dependencies
175
- for (const [node, dependencies] of unresolvedNodes) {
176
- let nonOptionalDependencyFound = false;
218
+ for (const [node, { dependencies, isChoice }] of unresolvedNodes) {
219
+ let nodeResolved = false;
177
220
  // Iterate over all unresolved dependencies for the node
178
- for (const dependency of dependencies) {
221
+ for (const dependency of Array.from(dependencies)) {
179
222
  // Check if the dependency has been resolved
180
223
  const value = resolvedNodes.get(dependency);
181
224
  if (value !== undefined) {
182
225
  // If it did, record that some dependencies were resolved
183
226
  atLastOneDependencyResolvedInAnyNode = true;
184
- if (value === false) {
185
- // If the value was false, then the entire target node must not be optional
186
- nonOptionalDependencyFound = true;
187
- break;
227
+ if (isChoice) {
228
+ if (value === true) {
229
+ resolvedNodes.set(node, true);
230
+ nodeResolved = true;
231
+ break;
232
+ }
188
233
  }
189
234
  else {
190
- // If the result was true, remove the dependency from the set
191
- dependencies.delete(dependency);
235
+ if (value === false) {
236
+ resolvedNodes.set(node, false);
237
+ nodeResolved = true;
238
+ break;
239
+ }
192
240
  }
241
+ dependencies.delete(dependency);
193
242
  }
194
243
  }
195
- // If either a non-optional dependency was found, or all dependencies were resolved,
196
- // resolve the target node:
197
- if (nonOptionalDependencyFound || dependencies.size === 0) {
198
- const isOptional = !nonOptionalDependencyFound;
199
- resolvedNodes.set(node, isOptional);
200
- unresolvedNodes.delete(node);
244
+ if (nodeResolved) {
245
+ nodesToDelete.push(node);
201
246
  }
247
+ else if (dependencies.size === 0) {
248
+ if (isChoice) {
249
+ resolvedNodes.set(node, false);
250
+ }
251
+ else {
252
+ resolvedNodes.set(node, true);
253
+ }
254
+ nodesToDelete.push(node);
255
+ }
256
+ }
257
+ for (const node of nodesToDelete) {
258
+ unresolvedNodes.delete(node);
202
259
  }
203
260
  // If not even one dependency was eliminated for any node,
204
261
  // it means that only mutually cyclic nodes are left unresolved, so exit the loop.
@@ -393,4 +450,4 @@ export class Grammar {
393
450
  return this.productions[this.startProductionName];
394
451
  }
395
452
  }
396
- //# sourceMappingURL=GrammarComposer.js.map
453
+ //# sourceMappingURL=Grammar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grammar.js","sourceRoot":"","sources":["../../src/parser-generator/Grammar.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Grammar } from "./GrammarComposer.js";
2
- export declare function parse(inputString: string, grammar: Grammar<any>): ParseTreeNode[] | undefined;
1
+ import { Grammar } from './Grammar.js';
2
+ export declare function parse(inputString: string, grammar: Grammar<any>): ParseTreeNode[];
3
3
  export interface ParseResult {
4
4
  endOffset: number;
5
5
  nodes: ParseTreeNode[] | undefined;
@@ -11,3 +11,4 @@ export interface ParseTreeNode {
11
11
  sourceText: string;
12
12
  children: ParseTreeNode[] | undefined;
13
13
  }
14
+ //# sourceMappingURL=TopDownParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopDownParser.d.ts","sourceRoot":"","sources":["../../src/parser-generator/TopDownParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,cAAc,CAAA;AAEhE,wBAAgB,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBA8R/D;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,aAAa,EAAE,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,CAAA;CACrC"}
@@ -60,10 +60,6 @@ export function parse(inputString, grammar) {
60
60
  }
61
61
  }
62
62
  case 'PatternTerminal': {
63
- if (startOffset >= inputLength) {
64
- updateBestFailedMatchesIfNeeded(grammarElement, startOffset);
65
- return null;
66
- }
67
63
  const substringToMatch = inputString.substring(startOffset);
68
64
  const matchResults = grammarElement.regExp.exec(substringToMatch);
69
65
  if (matchResults === null) {
@@ -156,6 +152,9 @@ export function parse(inputString, grammar) {
156
152
  if (result === null) {
157
153
  break;
158
154
  }
155
+ if (result.endOffset === readOffset) {
156
+ break;
157
+ }
159
158
  if (result.nodes !== undefined) {
160
159
  nodes.push(...result.nodes);
161
160
  }
@@ -167,6 +166,12 @@ export function parse(inputString, grammar) {
167
166
  nodes: nodes.length > 0 ? nodes : undefined
168
167
  };
169
168
  }
169
+ else if (grammarElement.optional === true) {
170
+ return {
171
+ endOffset: startOffset,
172
+ nodes: undefined
173
+ };
174
+ }
170
175
  else {
171
176
  return null;
172
177
  }
@@ -190,9 +195,8 @@ export function parse(inputString, grammar) {
190
195
  }
191
196
  }
192
197
  const result = tryParse(grammar.rootElement, 0);
193
- const lastNode = result?.nodes?.[result.nodes.length - 1];
194
- if (lastNode && lastNode.endOffset >= inputLength) {
195
- return result.nodes;
198
+ if (result && result.endOffset >= inputLength) {
199
+ return result.nodes ?? [];
196
200
  }
197
201
  else {
198
202
  if (bestFailedMatches.length > 0) {
@@ -218,7 +222,8 @@ export function parse(inputString, grammar) {
218
222
  throw new Error(`Failed parsing the input text. Expected ${possibleMatchesString} at position ${bestFailedMatchesOffset}.`);
219
223
  }
220
224
  else {
221
- throw new Error(`Failed parsing the input text. Parsed length was ${lastNode?.endOffset ?? 0}. Input length was ${inputLength}.`);
225
+ const lastNode = result?.nodes?.[result.nodes.length - 1];
226
+ throw new Error(`Failed parsing the input text. Parsed length was ${lastNode?.endOffset ?? result?.endOffset ?? 0}. Input length was ${inputLength}.`);
222
227
  }
223
228
  }
224
229
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopDownParser.js","sourceRoot":"","sources":["../../src/parser-generator/TopDownParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":""}
@@ -1,9 +1,9 @@
1
- import { Timer } from "./utilities/Timer.js";
2
- import { jsonSample1 } from "./test-data/TestData.js";
3
- import { anyOf, buildGrammar } from "./GrammarComposer.js";
4
- import { JsonGrammar } from "./test-grammars/JsonGrammar.js";
5
- import { XmlGrammar } from "./test-grammars/XmlGrammar.js";
6
- import { RegExpGrammar } from "./test-grammars/RegExpGrammar.js";
1
+ import { Timer } from '../utilities/Timer.js';
2
+ import { jsonSample1 } from './test-data/TestData.js';
3
+ import { anyOf, buildGrammar } from '../exports/Exports.js';
4
+ import { JsonGrammar } from './test-grammars/JsonGrammar.js';
5
+ import { XmlGrammar } from './test-grammars/XmlGrammar.js';
6
+ import { RegExpGrammar } from './test-grammars/RegExpGrammar.js';
7
7
  const log = console.log;
8
8
  function testBasic() {
9
9
  class MyGrammar {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.js","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@ export declare const jsonSample2: string;
3
3
  export declare const xmlSample1 = "\n\n<menu>\n <popup>\n \t<test value='New'>\n <!--<menuitem value=\"New\" onclick=\"CreateNewDoc()\" />-->\n <menuitem value=\"Open\" onclick=\"OpenDoc()\" />\n <menuitem value=\"Close\" onclick=\"CloseDoc()\" />\n </popup>\n</menu>";
4
4
  export declare const xmlSample2 = "\n<!DOCTYPE web-app\n PUBLIC \"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN\"\n \"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd\">\n\n<menu>\n <header>Adobe SVG Viewer</header>\n <item action=\"Open\" id=\"Open\">Open</item>\n <item action=\"OpenNew\" id=\"OpenNew\">Open New</item>\n <separator/>\n <item action=\"ZoomIn\" id=\"ZoomIn\">Zoom In</item>\n <item action=\"ZoomOut\" id=\"ZoomOut\">Zoom Out</item>\n <item action=\"OriginalView\" id=\"OriginalView\">Original View</item>\n <separator/>\n <item action=\"Quality\" id=\"Quality\">Quality</item>\n <item action=\"Pause\" id=\"Pause\">Pause</item>\n <item action=\"Mute\" id=\"Mute\">Mute</item>\n <separator/>\n <item action=\"Find\" id=\"Find\">Find...</item>\n <item action=\"FindAgain\" id=\"FindAgain\">Find Again</item>\n <item action=\"Copy\" id=\"Copy\">Copy</item>\n <item action=\"CopyAgain\" id=\"CopyAgain\">Copy Again</item>\n <item action=\"CopySVG\" id=\"CopySVG\">Copy SVG</item>\n <item action=\"ViewSVG\" id=\"ViewSVG\">View SVG</item>\n <item action=\"ViewSource\" id=\"ViewSource\">View Source</item>\n <item action=\"SaveAs\" id=\"SaveAs\">Save As</item>\n <separator/>\n <item action=\"Help\" id=\"Help\">Help</item>\n <item action=\"About\" id=\"About\">About Adobe CVG Viewer...</item>\n</menu>";
5
5
  export declare const xmlSample3 = "\n<!DOCTYPE web-app\n PUBLIC \"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN\"\n \"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd\">\n<web-app>\n\t<servlet>\n\t\t<servlet-name>\n cofaxCDS\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cds.CDSServlet\n </servlet-class>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:installationAt</param-name>\n\t\t\t<param-value>Philadelphia, PA</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:adminEmail</param-name>\n\t\t\t<param-value>ksm@pobox.com</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:poweredBy</param-name>\n\t\t\t<param-value>Cofax</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:poweredByIcon</param-name>\n\t\t\t<param-value>/images/cofax.gif</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:staticPath</param-name>\n\t\t\t<param-value>/content/static</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>templateProcessorClass</param-name>\n\t\t\t<param-value>org.cofax.WysiwygTemplate</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>templateLoaderClass</param-name>\n\t\t\t<param-value>org.cofax.FilesTemplateLoader</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>templatePath</param-name>\n\t\t\t<param-value>templates</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>templateOverridePath</param-name>\n\t\t\t<param-value></param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>defaultListTemplate</param-name>\n\t\t\t<param-value>listTemplate.htm</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>defaultFileTemplate</param-name>\n\t\t\t<param-value>articleTemplate.htm</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>useJSP</param-name>\n\t\t\t<param-value>false</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>jspListTemplate</param-name>\n\t\t\t<param-value>listTemplate.jsp</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>jspFileTemplate</param-name>\n\t\t\t<param-value>articleTemplate.jsp</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePackageTagsTrack</param-name>\n\t\t\t<param-value>200</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePackageTagsStore</param-name>\n\t\t\t<param-value>200</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePackageTagsRefresh</param-name>\n\t\t\t<param-value>60</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cacheTemplatesTrack</param-name>\n\t\t\t<param-value>100</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cacheTemplatesStore</param-name>\n\t\t\t<param-value>50</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cacheTemplatesRefresh</param-name>\n\t\t\t<param-value>15</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePagesTrack</param-name>\n\t\t\t<param-value>200</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePagesStore</param-name>\n\t\t\t<param-value>100</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePagesRefresh</param-name>\n\t\t\t<param-value>10</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePagesDirtyRead</param-name>\n\t\t\t<param-value>10</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>searchEngineListTemplate</param-name>\n\t\t\t<param-value>forSearchEnginesList.htm</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>searchEngineFileTemplate</param-name>\n\t\t\t<param-value>forSearchEngines.htm</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>searchEngineRobotsDb</param-name>\n\t\t\t<param-value>WEB-INF/robots.db</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>useDataStore</param-name>\n\t\t\t<param-value>true</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreClass</param-name>\n\t\t\t<param-value>org.cofax.SqlDataStore</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>redirectionClass</param-name>\n\t\t\t<param-value>org.cofax.SqlRedirection</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreName</param-name>\n\t\t\t<param-value>cofax</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreDriver</param-name>\n\t\t\t<param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreUrl</param-name>\n\t\t\t<param-value>jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreUser</param-name>\n\t\t\t<param-value>sa</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStorePassword</param-name>\n\t\t\t<param-value></param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreTestQuery</param-name>\n\t\t\t<param-value>SET NOCOUNT ON;select test='test';</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreLogFile</param-name>\n\t\t\t<param-value>/usr/local/tomcat/logs/datastore.log</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreInitConns</param-name>\n\t\t\t<param-value>10</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreMaxConns</param-name>\n\t\t\t<param-value>100</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreConnUsageLimit</param-name>\n\t\t\t<param-value>100</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreLogLevel</param-name>\n\t\t\t<param-value>debug</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>maxUrlLength</param-name>\n\t\t\t<param-value>500</param-value>\n\t\t</init-param>\n\t</servlet>\n\t<servlet>\n\t\t<servlet-name>\n cofaxEmail\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cds.EmailServlet\n </servlet-class>\n\t\t<init-param>\n\t\t\t<param-name>mailHost</param-name>\n\t\t\t<param-value>mail1</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>mailHostOverride</param-name>\n\t\t\t<param-value>mail2</param-value>\n\t\t</init-param>\n\t</servlet>\n\t<servlet>\n\t\t<servlet-name>\n cofaxAdmin\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cds.AdminServlet\n </servlet-class>\n\t</servlet>\n\t<servlet>\n\t\t<servlet-name>\n fileServlet\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cds.FileServlet\n </servlet-class>\n\t</servlet>\n\t<servlet>\n\t\t<servlet-name>\n cofaxTools\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cms.CofaxToolsServlet\n </servlet-class>\n\t\t<init-param>\n\t\t\t<param-name>templatePath</param-name>\n\t\t\t<param-value>toolstemplates/</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>log</param-name>\n\t\t\t<param-value>1</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>logLocation</param-name>\n\t\t\t<param-value>/usr/local/tomcat/logs/CofaxTools.log</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>logMaxSize</param-name>\n\t\t\t<param-value></param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataLog</param-name>\n\t\t\t<param-value>1</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataLogLocation</param-name>\n\t\t\t<param-value>/usr/local/tomcat/logs/dataLog.log</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataLogMaxSize</param-name>\n\t\t\t<param-value></param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>removePageCache</param-name>\n\t\t\t<param-value>/content/admin/remove?cache=pages&id=</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>removeTemplateCache</param-name>\n\t\t\t<param-value>/content/admin/remove?cache=templates&id=</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>fileTransferFolder</param-name>\n\t\t\t<param-value>/usr/local/tomcat/webapps/content/fileTransferFolder</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>lookInContext</param-name>\n\t\t\t<param-value>1</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>adminGroupID</param-name>\n\t\t\t<param-value>4</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>betaServer</param-name>\n\t\t\t<param-value>true</param-value>\n\t\t</init-param>\n\t</servlet>\n\t<servlet-mapping>\n\t\t<servlet-name>\n cofaxCDS\n </servlet-name>\n\t\t<url-pattern>\n /\n </url-pattern>\n\t</servlet-mapping>\n\t<servlet-mapping>\n\t\t<servlet-name>\n cofaxEmail\n </servlet-name>\n\t\t<url-pattern>\n /cofaxutil/aemail/*\n </url-pattern>\n\t</servlet-mapping>\n\t<servlet-mapping>\n\t\t<servlet-name>\n cofaxAdmin\n </servlet-name>\n\t\t<url-pattern>\n /admin/*\n </url-pattern>\n\t</servlet-mapping>\n\t<servlet-mapping>\n\t\t<servlet-name>\n fileServlet\n </servlet-name>\n\t\t<url-pattern>\n /static/*\n </url-pattern>\n\t</servlet-mapping>\n\t<servlet-mapping>\n\t\t<servlet-name>\n cofaxTools\n </servlet-name>\n\t\t<url-pattern>\n /tools/*\n </url-pattern>\n\t</servlet-mapping>\n\t<taglib>\n\t\t<taglib-uri>cofax.tld</taglib-uri>\n\t\t<taglib-location>/WEB-INF/tlds/cofax.tld</taglib-location>\n\t</taglib>\n</web-app>\n";
6
+ //# sourceMappingURL=TestData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestData.d.ts","sourceRoot":"","sources":["../../../src/tests/test-data/TestData.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAKR,CAAA;AAEhB,eAAO,MAAM,WAAW,QAoGR,CAAA;AAEhB,eAAO,MAAM,UAAU,yPASf,CAAA;AAER,eAAO,MAAM,UAAU,u1CA6Bf,CAAA;AAER,eAAO,MAAM,UAAU,yhTA8TtB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestData.js","sourceRoot":"","sources":["../../../src/tests/test-data/TestData.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as G from "../GrammarComposer.js";
1
+ import * as G from '../../exports/Exports.js';
2
2
  export declare class JsonGrammar {
3
3
  expression: () => G.Choice;
4
4
  stringLiteral: G.PatternTerminal;
@@ -15,3 +15,4 @@ export declare class JsonGrammar {
15
15
  comma: G.PatternTerminal;
16
16
  colons: G.PatternTerminal;
17
17
  }
18
+ //# sourceMappingURL=JsonGrammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/JsonGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,WAAW;IACvB,UAAU,iBAOT;IAED,aAAa,oBAcX;IAEF,aAAa,oBAiBX;IAEF,cAAc,oBAQZ;IAEF,WAAW,oBAMT;IAEF,gBAAgB,uBASf;IAED,wBAAwB,iDAIvB;IAED,eAAe,uBASd;IAED,iBAAiB,oBAA0C;IAC3D,iBAAiB,oBAA0C;IAE3D,oBAAoB,oBAA0C;IAC9D,oBAAoB,oBAA0C;IAE9D,KAAK,oBAA0C;IAC/C,MAAM,oBAA0C;CAChD"}
@@ -1,4 +1,4 @@
1
- import * as G from "../GrammarComposer.js";
1
+ import * as G from '../../exports/Exports.js';
2
2
  import * as R from 'regexp-composer';
3
3
  export class JsonGrammar {
4
4
  expression = () => G.anyOf(this.stringLiteral, this.numberLiteral, this.booleanLiteral, this.nullLiteral, this.objectExpression, this.arrayExpression);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/JsonGrammar.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as G from '../GrammarComposer.js';
1
+ import * as G from '../../exports/Exports.js';
2
2
  import * as R from 'regexp-composer';
3
3
  export declare class RegExpGrammar {
4
4
  disjunction: () => G.Production[];
@@ -45,3 +45,4 @@ export declare class RegExpGrammar {
45
45
  anchor: G.Choice;
46
46
  escapedCharacterClass: () => G.PatternTerminal;
47
47
  }
48
+ //# sourceMappingURL=RegExpGrammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegExpGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AAEpC,qBAAa,aAAa;IAIzB,WAAW,uBAOV;IAED,QAAQ,qBAAkC;IAE1C,OAAO,iBAIN;IAKD,4BAA4B,uBAe3B;IAED,oBAAoB,0BAIlB;IAEF,oBAAoB,0BAMlB;IAKF,KAAK,iBAIJ;IAED,eAAe,4CAId;IAED,iBAAiB,gEAMhB;IAED,mBAAmB,4CAIlB;IAKD,oBAAoB,0BAIjB;IAEH,kBAAkB,0BAKf;IAEH,aAAa,WAGZ;IAKD,iBAAiB,4CAIhB;IAED,iBAAiB,4CAIhB;IAED,kBAAkB,4CAIjB;IAED,kBAAkB,4CAIjB;IAED,UAAU,WAKT;IAKD,oBAAoB,iBAOnB;IAED,qBAAqB,0BAEpB;IAED,kBAAkB,0BAGhB;IAEF,WAAW,0BAKR;IAEH,eAAe,0BAGb;IAEF,SAAS,0BAKP;IAEF,cAAc,0BAOZ;IAEF,eAAe,0BAGb;IAEF,kBAAkB,0BAGhB;IAEF,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAQpC;IAED,aAAa,0BAAwC;IAErD,SAAS,uBAaR;IAED,qBAAqB,WAKpB;IAED,gBAAgB,WAGf;IAED,SAAS,8BAIR;IAKD,cAAc,eAAY;IAC1B,cAAc,eAAY;IAC1B,mBAAmB,eAAY;IAE/B,gBAAgB,eAAY;IAE5B,gBAAgB,eAAY;IAC5B,cAAc,eAAY;IAE1B,eAAe,eAAY;IAE3B,oBAAoB,eAAY;IAEhC,MAAM,WAAsD;IAE5D,qBAAqB,0BAanB;CACF"}
@@ -1,4 +1,4 @@
1
- import * as G from '../GrammarComposer.js';
1
+ import * as G from '../../exports/Exports.js';
2
2
  import * as R from 'regexp-composer';
3
3
  export class RegExpGrammar {
4
4
  //////////////////////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegExpGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as G from "../GrammarComposer.js";
1
+ import * as G from '../../exports/Exports.js';
2
2
  export declare class XmlGrammar {
3
3
  document: () => G.Repetition[];
4
4
  textFragment: G.PatternTerminal;
@@ -12,3 +12,4 @@ export declare class XmlGrammar {
12
12
  declarationTagAttribute: G.PatternTerminal;
13
13
  comment: G.PatternTerminal;
14
14
  }
15
+ //# sourceMappingURL=XmlGrammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XmlGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,UAAU;IACtB,QAAQ,uBAUP;IAED,YAAY,oBAEV;IAEF,UAAU,6CAMT;IAED,eAAe,oBAUb;IAEF,MAAM,oBAMJ;IAEF,SAAS,oBAkBP;IAEF,UAAU,oBAYR;IAEF,cAAc,6CAMb;IAED,qBAAqB,oBAQnB;IAEF,uBAAuB,oBAYrB;IAEF,OAAO,oBAQL;CACF"}
@@ -1,4 +1,4 @@
1
- import * as G from "../GrammarComposer.js";
1
+ import * as G from '../../exports/Exports.js';
2
2
  import * as R from 'regexp-composer';
3
3
  export class XmlGrammar {
4
4
  document = () => [
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XmlGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"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"}
@@ -11,3 +11,4 @@ export declare class Timer {
11
11
  private static createGlobalTimestampFunction;
12
12
  private static timestampFunc;
13
13
  }
14
+ //# sourceMappingURL=Timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"AAKA,qBAAa,KAAK;IACjB,SAAS,SAAI;IAEb,cAEC;IAED,OAAO,SAEN;IAED,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED,IAAI,kBAAkB,IAAI,MAAM,CAG/B;IAED,wBAAwB,IAAI,MAAM,CAKjC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,MAAM,CAYtD;IAED,MAAM,KAAK,WAAW,IAAI,MAAM,CAM/B;IAED,MAAM,KAAK,oBAAoB,IAAI,MAAM,CAExC;IAED,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAkC5C,OAAO,CAAC,MAAM,CAAC,aAAa,CAAc;CAC1C"}
@@ -1,4 +1,4 @@
1
- import { roundToDigits } from "./Utilities.js";
1
+ import { roundToDigits } from './Utilities.js';
2
2
  export class Timer {
3
3
  startTime = 0;
4
4
  constructor() {
@@ -6,3 +6,4 @@ export declare function isObject(value: any): value is object;
6
6
  export declare function isArray(value: any): value is any[];
7
7
  export declare function isBoolean(value: any): value is boolean;
8
8
  export declare function isFunction(value: any): value is Function;
9
+ //# sourceMappingURL=Utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utilities.d.ts","sourceRoot":"","sources":["../../src/utilities/Utilities.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,UAIpD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,GAAG,EAAE,CAElD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,OAAO,CAEtD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,QAAQ,CAExD"}