semantifold 0.4.0 → 0.5.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 (42) hide show
  1. package/README.md +5 -2
  2. package/build/index.d.ts +12 -8
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +10 -7
  5. package/build/src/backends/android.d.ts +49 -0
  6. package/build/src/backends/android.d.ts.map +1 -0
  7. package/build/src/backends/android.js +1274 -0
  8. package/build/src/backends/identifiers.d.ts.map +1 -1
  9. package/build/src/backends/identifiers.js +7 -1
  10. package/build/src/backends/kotlin.d.ts +10 -0
  11. package/build/src/backends/kotlin.d.ts.map +1 -1
  12. package/build/src/backends/kotlin.js +11 -9
  13. package/build/src/backends/program.d.ts +6 -4
  14. package/build/src/backends/program.d.ts.map +1 -1
  15. package/build/src/backends/program.js +5 -4
  16. package/build/src/backends/shared.d.ts.map +1 -1
  17. package/build/src/backends/shared.js +17 -1
  18. package/build/src/backends/writer.d.ts +21 -1
  19. package/build/src/backends/writer.d.ts.map +1 -1
  20. package/build/src/backends/writer.js +25 -2
  21. package/build/src/language-registry.d.ts.map +1 -1
  22. package/build/src/language-registry.js +11 -1
  23. package/build/src/semantic/types.d.ts +182 -2
  24. package/build/src/semantic/types.d.ts.map +1 -1
  25. package/build/src/semantic/types.js +44 -2
  26. package/docs/android.md +79 -0
  27. package/docs/architecture.md +2 -0
  28. package/docs/ios.md +1 -1
  29. package/docs/language-support.md +8 -1
  30. package/docs/source-maps.md +2 -0
  31. package/docs/specification.md +5 -0
  32. package/docs/testing.md +15 -0
  33. package/index.js +9 -6
  34. package/package.json +1 -1
  35. package/src/backends/android.js +1370 -0
  36. package/src/backends/identifiers.js +6 -0
  37. package/src/backends/kotlin.js +11 -8
  38. package/src/backends/program.js +4 -3
  39. package/src/backends/shared.js +19 -0
  40. package/src/backends/writer.js +27 -2
  41. package/src/language-registry.js +10 -0
  42. package/src/semantic/types.js +46 -1
@@ -1 +1 @@
1
- {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../../src/backends/identifiers.js"],"names":[],"mappings":"AA+MA;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EANtC,OAAO,sBAAsB,EAAE,eAMO,EAAE,IAAI,EAL5C,OAK4C,EAAE,IAAI,EAJlD,MAIkD,EAAE,QAAQ,EAH5D,OAAO,sBAAsB,EAAE,cAAc,GAAG,SAGY,GAF1D,IAAI,CAkBhB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAHvB,MAGuB,GAFrB,OAAO,CAMnB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAN7C,OAAO,sBAAsB,EAAE,eAMc,EAAE,IAAI,EALnD,OAKmD,EAAE,IAAI,EAJzD,MAIyD,EAAE,QAAQ,EAHnE,OAAO,sBAAsB,EAAE,cAAc,GAAG,SAGmB,GAFjE,IAAI,CAchB;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAL1C,OAAO,sBAAsB,EAAE,eAKW,EAAE,IAAI,EAJhD,OAIgD,EAAE,QAAQ,EAH1D,OAAO,sBAAsB,EAAE,cAAc,GAAG,SAGU,GAFxD,IAAI,CAYhB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAHzB,MAGyB,GAFvB,OAAO,CAInB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAH1B,MAG0B,GAFxB,OAAO,CAInB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAH3B,MAG2B,GAFzB,OAAO,CAInB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAH5B,MAG4B,GAF1B,OAAO,CAKnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAH1B,MAG0B,GAFxB,OAAO,CAKnB"}
1
+ {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../../src/backends/identifiers.js"],"names":[],"mappings":"AAqNA;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EANtC,OAAO,sBAAsB,EAAE,eAMO,EAAE,IAAI,EAL5C,OAK4C,EAAE,IAAI,EAJlD,MAIkD,EAAE,QAAQ,EAH5D,OAAO,sBAAsB,EAAE,cAAc,GAAG,SAGY,GAF1D,IAAI,CAkBhB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAHvB,MAGuB,GAFrB,OAAO,CAMnB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAN7C,OAAO,sBAAsB,EAAE,eAMc,EAAE,IAAI,EALnD,OAKmD,EAAE,IAAI,EAJzD,MAIyD,EAAE,QAAQ,EAHnE,OAAO,sBAAsB,EAAE,cAAc,GAAG,SAGmB,GAFjE,IAAI,CAchB;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAL1C,OAAO,sBAAsB,EAAE,eAKW,EAAE,IAAI,EAJhD,OAIgD,EAAE,QAAQ,EAH1D,OAAO,sBAAsB,EAAE,cAAc,GAAG,SAGU,GAFxD,IAAI,CAYhB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAHzB,MAGyB,GAFvB,OAAO,CAInB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAH1B,MAG0B,GAFxB,OAAO,CAInB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAH3B,MAG2B,GAFzB,OAAO,CAInB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAH5B,MAG4B,GAF1B,OAAO,CAKnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAH1B,MAG0B,GAFxB,OAAO,CAKnB"}
@@ -2,6 +2,7 @@
2
2
  import { unsupportedCapability } from "../diagnostic.js";
3
3
  /** @type {Record<Exclude<import("../semantic/types.js").BackendLanguage, "ios">, RegExp>} */
4
4
  const identifierPatterns = {
5
+ android: /^(?:_|\p{L})(?:_|\p{L}|\p{Nd})*$/u,
5
6
  dart: /^(?:_|\p{L})(?:_|\p{L}|\p{Nd})*$/u,
6
7
  kotlin: /^(?:_|\p{L})(?:_|\p{L}|\p{Nd})*$/u,
7
8
  swift: /^(?:_|\p{XID_Start})(?:_|\p{XID_Continue})*$/u,
@@ -20,6 +21,11 @@ const identifierPatterns = {
20
21
  };
21
22
  /** @type {Record<Exclude<import("../semantic/types.js").BackendLanguage, "ios">, Set<string>>} */
22
23
  const reservedWords = {
24
+ android: new Set([
25
+ "as", "break", "class", "continue", "do", "else", "false", "for", "fun", "if", "in", "interface", "is", "null",
26
+ "object", "package", "return", "super", "this", "throw", "true", "try", "typealias", "typeof", "val", "var", "when",
27
+ "while", "_", "main", "println", "Long", "Boolean", "String", "Math", "ArithmeticException"
28
+ ]),
23
29
  dart: new Set([
24
30
  "Function", "Never", "Object", "RangeError", "String", "abstract", "as", "assert", "async", "await", "base",
25
31
  "bool", "break", "case", "catch", "class", "const", "continue", "covariant", "default", "deferred", "do",
@@ -311,4 +317,4 @@ export function isDartIdentifier(name) {
311
317
  return identifierPatterns.dart.test(name) && !reservedWords.dart.has(name) &&
312
318
  !name.startsWith("_semantifold") && name.normalize("NFC") == name;
313
319
  }
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmllcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvaWRlbnRpZmllcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBRXRELDZGQUE2RjtBQUM3RixNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLElBQUksRUFBRSxtQ0FBbUM7SUFDekMsTUFBTSxFQUFFLG1DQUFtQztJQUMzQyxLQUFLLEVBQUUsK0NBQStDO0lBQ3RELElBQUksRUFBRSwyQkFBMkI7SUFDakMsR0FBRyxFQUFFLDBCQUEwQjtJQUMvQixDQUFDLEVBQUUsMEJBQTBCO0lBQzdCLE1BQU0sRUFBRSwyQkFBMkI7SUFDbkMsRUFBRSxFQUFFLDJCQUEyQjtJQUMvQixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLFVBQVUsRUFBRSw2QkFBNkI7SUFDekMsR0FBRyxFQUFFLDJCQUEyQjtJQUNoQyxNQUFNLEVBQUUsK0NBQStDO0lBQ3ZELElBQUksRUFBRSx3QkFBd0I7SUFDOUIsVUFBVSxFQUFFLDZCQUE2QjtJQUN6QyxJQUFJLEVBQUUscURBQXFEO0NBQzVELENBQUE7QUFFRCxrR0FBa0c7QUFDbEcsTUFBTSxhQUFhLEdBQUc7SUFDcEIsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ1osVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU07UUFDM0csTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUk7UUFDeEcsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU87UUFDOUcsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUztRQUNoSCxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTO1FBQy9HLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVM7UUFDakgsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUc7S0FDL0QsQ0FBQztJQUNGLE1BQU0sRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNkLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNO1FBQzlHLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU07UUFDbkgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxxQkFBcUI7S0FDNUYsQ0FBQztJQUNGLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNiLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXO1FBQ3pILE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUTtRQUMxSCxRQUFRLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEtBQUs7UUFDNUgsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU07UUFDeEgsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVM7UUFDdEgsU0FBUyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUTtRQUNqSSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLO1FBQ3JILFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRO1FBQzVILE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTztLQUN6QixDQUFDO0lBQ0YsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ1osSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUk7UUFDeEksS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU07UUFDMUksUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTO1FBQzFJLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTTtLQUNyRSxDQUFDO0lBQ0YsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ1gsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsZ0JBQWdCO1FBQ2w5QixrRkFBa0Y7UUFDbEYsTUFBTSxFQUFFLFFBQVE7S0FDakIsQ0FBQztJQUNGLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNULE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUTtRQUN6RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVE7UUFDMUcsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTztRQUNuRyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVO1FBQzdILFdBQVcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU07UUFDMUcsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWE7UUFDaEgsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxPQUFPO1FBQ2pHLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUztRQUN2RyxjQUFjLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVTtRQUN0RSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVM7UUFDMUYsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUztRQUN6RyxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTO1FBQ25HLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVO1FBQzFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRO1FBQ3BHLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVE7UUFDMUcsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU07UUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUTtRQUN0RyxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTO1FBQ3pHLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUTtLQUM3RCxDQUFDO0lBQ0YsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ2QsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSTtRQUN0RyxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU87UUFDdEQsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVM7UUFDcEcsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRO1FBQ3pILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUN4RyxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNO1FBQzVHLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSTtRQUMxRyxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVTtRQUNqSCxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVE7UUFDaEgsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPO1FBQy9HLFdBQVcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNO1FBQzVHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU87S0FDbEMsQ0FBQztJQUNGLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNWLEdBQUcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUN0RyxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVB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LENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBQ2xILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQUk7SUFDckMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztRQUNoSCxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUE7QUFDcEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBSTtJQUNuQyxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDeEUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFBO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHt1bnN1cHBvcnRlZENhcGFiaWxpdHl9IGZyb20gXCIuLi9kaWFnbm9zdGljLmpzXCJcblxuLyoqIEB0eXBlIHtSZWNvcmQ8RXhjbHVkZTxpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5CYWNrZW5kTGFuZ3VhZ2UsIFwiaW9zXCI+LCBSZWdFeHA+fSAqL1xuY29uc3QgaWRlbnRpZmllclBhdHRlcm5zID0ge1xuICBkYXJ0OiAvXig/Ol98XFxwe0x9KSg/Ol98XFxwe0x9fFxccHtOZH0pKiQvdSxcbiAga290bGluOiAvXig/Ol98XFxwe0x9KSg/Ol98XFxwe0x9fFxccHtOZH0pKiQvdSxcbiAgc3dpZnQ6IC9eKD86X3xcXHB7WElEX1N0YXJ0fSkoPzpffFxccHtYSURfQ29udGludWV9KSokL3UsXG4gIHJ1c3Q6IC9eW0EtWmEtel9dW0EtWmEtejAtOV9dKiQvdSxcbiAgY3BwOiAvXltBLVphLXpdW0EtWmEtejAtOV9dKiQvdSxcbiAgYzogL15bQS1aYS16XVtBLVphLXowLTlfXSokL3UsXG4gIGNzaGFycDogL15bQS1aYS16X11bQS1aYS16MC05X10qJC91LFxuICBnbzogL15bQS1aYS16X11bQS1aYS16MC05X10qJC91LFxuICBqYXZhOiAvXltBLVphLXpfJF1bQS1aYS16MC05XyRdKiQvdSxcbiAgamF2YXNjcmlwdDogL15bQS1aYS16XyRdW0EtWmEtejAtOV8kXSokL3UsXG4gIHBocDogL15bQS1aYS16X11bQS1aYS16MC05X10qJC91LFxuICBweXRob246IC9eKD86X3xcXHB7WElEX1N0YXJ0fSkoPzpffFxccHtYSURfQ29udGludWV9KSokL3UsXG4gIHJ1Ynk6IC9eW2Etel9dW0EtWmEtejAtOV9dKiQvdSxcbiAgdHlwZXNjcmlwdDogL15bQS1aYS16XyRdW0EtWmEtejAtOV8kXSokL3UsXG4gIHdhc206IC9eKD86WyRfXXxcXHB7WElEX1N0YXJ0fSkoPzpbJF9dfFxccHtYSURfQ29udGludWV9KSokL3Vcbn1cblxuLyoqIEB0eXBlIHtSZWNvcmQ8RXhjbHVkZTxpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5CYWNrZW5kTGFuZ3VhZ2UsIFwiaW9zXCI+LCBTZXQ8c3RyaW5nPj59ICovXG5jb25zdCByZXNlcnZlZFdvcmRzID0ge1xuICBkYXJ0OiBuZXcgU2V0KFtcbiAgICBcIkZ1bmN0aW9uXCIsIFwiTmV2ZXJcIiwgXCJPYmplY3RcIiwgXCJSYW5nZUVycm9yXCIsIFwiU3RyaW5nXCIsIFwiYWJzdHJhY3RcIiwgXCJhc1wiLCBcImFzc2VydFwiLCBcImFzeW5jXCIsIFwiYXdhaXRcIiwgXCJiYXNlXCIsXG4gICAgXCJib29sXCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjbGFzc1wiLCBcImNvbnN0XCIsIFwiY29udGludWVcIiwgXCJjb3ZhcmlhbnRcIiwgXCJkZWZhdWx0XCIsIFwiZGVmZXJyZWRcIiwgXCJkb1wiLFxuICAgIFwiZG91YmxlXCIsIFwiZHluYW1pY1wiLCBcImVsc2VcIiwgXCJlbnVtXCIsIFwiZXhwb3J0XCIsIFwiZXh0ZW5kc1wiLCBcImV4dGVuc2lvblwiLCBcImV4dGVybmFsXCIsIFwiZmFjdG9yeVwiLCBcImZhbHNlXCIsIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIiwgXCJmb3JcIiwgXCJnZXRcIiwgXCJoaWRlXCIsIFwiaWZcIiwgXCJpbXBsZW1lbnRzXCIsIFwiaW1wb3J0XCIsIFwiaW5cIiwgXCJpbnRcIiwgXCJpbnRlcmZhY2VcIiwgXCJpc1wiLCBcImxhdGVcIiwgXCJsaWJyYXJ5XCIsXG4gICAgXCJtYWluXCIsIFwibWl4aW5cIiwgXCJuYXRpdmVcIiwgXCJuZXdcIiwgXCJudWxsXCIsIFwibnVtXCIsIFwib2ZcIiwgXCJvblwiLCBcIm9wZXJhdG9yXCIsIFwicGFydFwiLCBcInByaW50XCIsIFwicmVxdWlyZWRcIiwgXCJyZXRocm93XCIsXG4gICAgXCJyZXR1cm5cIiwgXCJzZWFsZWRcIiwgXCJzZXRcIiwgXCJzaG93XCIsIFwic3RhdGljXCIsIFwic3VwZXJcIiwgXCJzd2l0Y2hcIiwgXCJzeW5jXCIsIFwidGhpc1wiLCBcInRocm93XCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInR5cGVkZWZcIixcbiAgICBcInZhclwiLCBcInZvaWRcIiwgXCJ3aGVuXCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwieWllbGRcIiwgXCJCaWdJbnRcIiwgXCJfXCJcbiAgXSksXG4gIGtvdGxpbjogbmV3IFNldChbXG4gICAgXCJhc1wiLCBcImJyZWFrXCIsIFwiY2xhc3NcIiwgXCJjb250aW51ZVwiLCBcImRvXCIsIFwiZWxzZVwiLCBcImZhbHNlXCIsIFwiZm9yXCIsIFwiZnVuXCIsIFwiaWZcIiwgXCJpblwiLCBcImludGVyZmFjZVwiLCBcImlzXCIsIFwibnVsbFwiLFxuICAgIFwib2JqZWN0XCIsIFwicGFja2FnZVwiLCBcInJldHVyblwiLCBcInN1cGVyXCIsIFwidGhpc1wiLCBcInRocm93XCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInR5cGVhbGlhc1wiLCBcInR5cGVvZlwiLCBcInZhbFwiLCBcInZhclwiLCBcIndoZW5cIixcbiAgICBcIndoaWxlXCIsIFwiX1wiLCBcIm1haW5cIiwgXCJwcmludGxuXCIsIFwiTG9uZ1wiLCBcIkJvb2xlYW5cIiwgXCJTdHJpbmdcIiwgXCJNYXRoXCIsIFwiQXJpdGhtZXRpY0V4Y2VwdGlvblwiXG4gIF0pLFxuICBzd2lmdDogbmV3IFNldChbXG4gICAgXCJBbnlcIiwgXCJTZWxmXCIsIFwiVHlwZVwiLCBcIlByb3RvY29sXCIsIFwiYWN0b3JcIiwgXCJhbnlcIiwgXCJhc1wiLCBcImFzc29jaWF0ZWR0eXBlXCIsIFwiYXNzb2NpYXRpdml0eVwiLCBcImFzeW5jXCIsIFwiYXdhaXRcIiwgXCJib3Jyb3dpbmdcIixcbiAgICBcImJyZWFrXCIsIFwiY2FzZVwiLCBcImNhdGNoXCIsIFwiY2xhc3NcIiwgXCJjb25zdW1lXCIsIFwiY29uc3VtaW5nXCIsIFwiY29udGludWVcIiwgXCJjb252ZW5pZW5jZVwiLCBcImNvcHlcIiwgXCJkZWZhdWx0XCIsIFwiZGVmZXJcIiwgXCJkZWluaXRcIixcbiAgICBcImRpZFNldFwiLCBcImRpc3RyaWJ1dGVkXCIsIFwiZG9cIiwgXCJkeW5hbWljXCIsIFwiZWxzZVwiLCBcImVudW1cIiwgXCJleHRlbnNpb25cIiwgXCJmYWxsdGhyb3VnaFwiLCBcImZhbHNlXCIsIFwiZmlsZXByaXZhdGVcIiwgXCJmaW5hbFwiLCBcImZvclwiLFxuICAgIFwiZnVuY1wiLCBcImdldFwiLCBcImd1YXJkXCIsIFwiaWZcIiwgXCJpbXBvcnRcIiwgXCJpblwiLCBcImluZGlyZWN0XCIsIFwiaW5maXhcIiwgXCJpbml0XCIsIFwiaW5vdXRcIiwgXCJpbnRlcm5hbFwiLCBcImlzXCIsIFwiaXNvbGF0ZWRcIiwgXCJsYXp5XCIsXG4gICAgXCJsZXRcIiwgXCJtYWNyb1wiLCBcIm11dGF0aW5nXCIsIFwibmlsXCIsIFwibm9uaXNvbGF0ZWRcIiwgXCJub25tdXRhdGluZ1wiLCBcIm9wZW5cIiwgXCJvcGVyYXRvclwiLCBcIm9wdGlvbmFsXCIsIFwib3ZlcnJpZGVcIiwgXCJwYWNrYWdlXCIsXG4gICAgXCJwb3N0Zml4XCIsIFwicHJlY2VkZW5jZVwiLCBcInByZWNlZGVuY2Vncm91cFwiLCBcInByZWZpeFwiLCBcInByaXZhdGVcIiwgXCJwcm90b2NvbFwiLCBcInB1YmxpY1wiLCBcInJlcGVhdFwiLCBcInJlcXVpcmVkXCIsIFwicmV0aHJvd3NcIiwgXCJyZXR1cm5cIixcbiAgICBcInNhZmVcIiwgXCJzZWxmXCIsIFwic2VuZGluZ1wiLCBcInNldFwiLCBcInNvbWVcIiwgXCJzdGF0aWNcIiwgXCJzdHJ1Y3RcIiwgXCJzdWJzY3JpcHRcIiwgXCJzdXBlclwiLCBcInN3aXRjaFwiLCBcInRocm93c1wiLCBcInRydWVcIiwgXCJ0cnlcIixcbiAgICBcInR5cGVhbGlhc1wiLCBcInVub3duZWRcIiwgXCJ1bnNhZmVcIiwgXCJ2YXJcIiwgXCJ3ZWFrXCIsIFwid2hlcmVcIiwgXCJ3aGlsZVwiLCBcIndpbGxTZXRcIiwgXCJ5aWVsZFwiLCBcIl9cIiwgXCJCb29sXCIsIFwiSW50XCIsIFwiSW50NjRcIiwgXCJTdHJpbmdcIixcbiAgICBcIlN3aWZ0XCIsIFwibWFpblwiLCBcInByaW50XCJcbiAgXSksXG4gIHJ1c3Q6IG5ldyBTZXQoW1xuICAgIFwiYXNcIiwgXCJhc3luY1wiLCBcImF3YWl0XCIsIFwiYnJlYWtcIiwgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsIFwiY3JhdGVcIiwgXCJkeW5cIiwgXCJlbHNlXCIsIFwiZW51bVwiLCBcImV4dGVyblwiLCBcImZhbHNlXCIsIFwiZm5cIiwgXCJmb3JcIiwgXCJpZlwiLCBcImltcGxcIiwgXCJpblwiLFxuICAgIFwibGV0XCIsIFwibG9vcFwiLCBcIm1hdGNoXCIsIFwibW9kXCIsIFwibW92ZVwiLCBcIm11dFwiLCBcInB1YlwiLCBcInJlZlwiLCBcInJldHVyblwiLCBcInNlbGZcIiwgXCJTZWxmXCIsIFwic3RhdGljXCIsIFwic3RydWN0XCIsIFwic3VwZXJcIiwgXCJ0cmFpdFwiLCBcInRydWVcIiwgXCJ0eXBlXCIsXG4gICAgXCJ1bnNhZmVcIiwgXCJ1c2VcIiwgXCJ3aGVyZVwiLCBcIndoaWxlXCIsIFwiYWJzdHJhY3RcIiwgXCJiZWNvbWVcIiwgXCJib3hcIiwgXCJkb1wiLCBcImZpbmFsXCIsIFwibWFjcm9cIiwgXCJvdmVycmlkZVwiLCBcInByaXZcIiwgXCJ0eXBlb2ZcIiwgXCJ1bnNpemVkXCIsIFwidmlydHVhbFwiLFxuICAgIFwieWllbGRcIiwgXCJ0cnlcIiwgXCJ1bmlvblwiLCBcIl9cIiwgXCJtYWluXCIsIFwiU3RyaW5nXCIsIFwic3RkXCIsIFwiaTY0XCIsIFwiYm9vbFwiXG4gIF0pLFxuICBjcHA6IG5ldyBTZXQoW1xuICAgIFwiYWxpZ25hc1wiLCBcImFsaWdub2ZcIiwgXCJhbmRcIiwgXCJhbmRfZXFcIiwgXCJhc21cIiwgXCJhdXRvXCIsIFwiYml0YW5kXCIsIFwiYml0b3JcIiwgXCJib29sXCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjaGFyXCIsIFwiY2hhcjhfdFwiLCBcImNoYXIxNl90XCIsIFwiY2hhcjMyX3RcIiwgXCJjbGFzc1wiLCBcImNvbXBsXCIsIFwiY29uY2VwdFwiLCBcImNvbnN0XCIsIFwiY29uc3RldmFsXCIsIFwiY29uc3RleHByXCIsIFwiY29uc3Rpbml0XCIsIFwiY29uc3RfY2FzdFwiLCBcImNvbnRpbnVlXCIsIFwiY29fYXdhaXRcIiwgXCJjb19yZXR1cm5cIiwgXCJjb195aWVsZFwiLCBcImRlY2x0eXBlXCIsIFwiZGVmYXVsdFwiLCBcImRlbGV0ZVwiLCBcImRvXCIsIFwiZG91YmxlXCIsIFwiZHluYW1pY19jYXN0XCIsIFwiZWxzZVwiLCBcImVudW1cIiwgXCJleHBsaWNpdFwiLCBcImV4cG9ydFwiLCBcImV4dGVyblwiLCBcImZhbHNlXCIsIFwiZmxvYXRcIiwgXCJmb3JcIiwgXCJmcmllbmRcIiwgXCJnb3RvXCIsIFwiaWZcIiwgXCJpbmxpbmVcIiwgXCJpbnRcIiwgXCJsb25nXCIsIFwibXV0YWJsZVwiLCBcIm5hbWVzcGFjZVwiLCBcIm5ld1wiLCBcIm5vZXhjZXB0XCIsIFwibm90XCIsIFwibm90X2VxXCIsIFwibnVsbHB0clwiLCBcIm9wZXJhdG9yXCIsIFwib3JcIiwgXCJvcl9lcVwiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwdWJsaWNcIiwgXCJyZWdpc3RlclwiLCBcInJlaW50ZXJwcmV0X2Nhc3RcIiwgXCJyZXF1aXJlc1wiLCBcInJldHVyblwiLCBcInNob3J0XCIsIFwic2lnbmVkXCIsIFwic2l6ZW9mXCIsIFwic3RhdGljXCIsIFwic3RhdGljX2Fzc2VydFwiLCBcInN0YXRpY19jYXN0XCIsIFwic3RydWN0XCIsIFwic3dpdGNoXCIsIFwidGVtcGxhdGVcIiwgXCJ0aGlzXCIsIFwidGhyZWFkX2xvY2FsXCIsIFwidGhyb3dcIiwgXCJ0cnVlXCIsIFwidHJ5XCIsIFwidHlwZWRlZlwiLCBcInR5cGVpZFwiLCBcInR5cGVuYW1lXCIsIFwidW5pb25cIiwgXCJ1bnNpZ25lZFwiLCBcInVzaW5nXCIsIFwidmlydHVhbFwiLCBcInZvaWRcIiwgXCJ2b2xhdGlsZVwiLCBcIndjaGFyX3RcIiwgXCJ3aGlsZVwiLCBcInhvclwiLCBcInhvcl9lcVwiLCBcInN0ZFwiLCBcInN0cmluZ1wiLCBcIm51bWVyaWNfbGltaXRzXCIsXG4gICAgLy8gVGhlIHF1YWxpZmllZCBsaWJzdGRjKysgPHN0cmluZz4gaW5jbHVkZSBjaGFpbiBhbHNvIGV4cG9zZXMgdGhlc2UgZ2xvYmFsIG5hbWVzLlxuICAgIFwiV0VPRlwiLCBcIndpbnRfdFwiXG4gIF0pLFxuICBjOiBuZXcgU2V0KFtcbiAgICBcImF1dG9cIiwgXCJicmVha1wiLCBcImNhc2VcIiwgXCJjaGFyXCIsIFwiY29uc3RcIiwgXCJjb250aW51ZVwiLCBcImRlZmF1bHRcIiwgXCJkb1wiLCBcImRvdWJsZVwiLCBcImVsc2VcIiwgXCJlbnVtXCIsIFwiZXh0ZXJuXCIsXG4gICAgXCJmbG9hdFwiLCBcImZvclwiLCBcImdvdG9cIiwgXCJpZlwiLCBcImlubGluZVwiLCBcImludFwiLCBcImxvbmdcIiwgXCJyZWdpc3RlclwiLCBcInJlc3RyaWN0XCIsIFwicmV0dXJuXCIsIFwic2hvcnRcIiwgXCJzaWduZWRcIixcbiAgICBcInNpemVvZlwiLCBcInN0YXRpY1wiLCBcInN0cnVjdFwiLCBcInN3aXRjaFwiLCBcInR5cGVkZWZcIiwgXCJ1bmlvblwiLCBcInVuc2lnbmVkXCIsIFwidm9pZFwiLCBcInZvbGF0aWxlXCIsIFwid2hpbGVcIixcbiAgICBcImJvb2xcIiwgXCJ0cnVlXCIsIFwiZmFsc2VcIiwgXCJUUlVFXCIsIFwiRkFMU0VcIiwgXCJpbnQ2NF90XCIsIFwidWludDY0X3RcIiwgXCJzaXplX3RcIiwgXCJwdHJkaWZmX3RcIiwgXCJtYWluXCIsIFwiTlVMTFwiLCBcIklOVDY0X0NcIiwgXCJVSU5UNjRfQ1wiLFxuICAgIFwiSU5UNjRfTUlOXCIsIFwiSU5UNjRfTUFYXCIsIFwiUFRSRElGRl9NQVhcIiwgXCJDSEFSX0JJVFwiLCBcInN0ZGluXCIsIFwic3Rkb3V0XCIsIFwic3RkZXJyXCIsIFwibWFsbG9jXCIsIFwiZnJlZVwiLCBcImV4aXRcIixcbiAgICBcImZ3cml0ZVwiLCBcImZmbHVzaFwiLCBcIm1lbWNweVwiLCBcIm1lbWNtcFwiLCBcIkZJTEVcIiwgXCJmcG9zX3RcIiwgXCJkaXZfdFwiLCBcImxkaXZfdFwiLCBcImxsZGl2X3RcIiwgXCJ3Y2hhcl90XCIsIFwibWF4X2FsaWduX3RcIixcbiAgICBcIm9mZnNldG9mXCIsIFwiYWxpZ25hc1wiLCBcImFsaWdub2ZcIiwgXCJub3JldHVyblwiLCBcInRydWVcIiwgXCJmYWxzZVwiLCBcImFzc2VydFwiLCBcInN0YXRpY19hc3NlcnRcIiwgXCJlcnJub1wiLFxuICAgIFwiRU9GXCIsIFwiQlVGU0laXCIsIFwiRk9QRU5fTUFYXCIsIFwiRklMRU5BTUVfTUFYXCIsIFwiTF90bXBuYW1cIiwgXCJTRUVLX0NVUlwiLCBcIlNFRUtfRU5EXCIsIFwiU0VFS19TRVRcIiwgXCJUTVBfTUFYXCIsXG4gICAgXCJFWElUX0ZBSUxVUkVcIiwgXCJFWElUX1NVQ0NFU1NcIiwgXCJNQl9DVVJfTUFYXCIsIFwiTUJfTEVOX01BWFwiLCBcIlJBTkRfTUFYXCIsXG4gICAgXCJyZW1vdmVcIiwgXCJyZW5hbWVcIiwgXCJ0bXBmaWxlXCIsIFwidG1wbmFtXCIsIFwiZmNsb3NlXCIsIFwiZm9wZW5cIiwgXCJmcmVvcGVuXCIsIFwic2V0YnVmXCIsIFwic2V0dmJ1ZlwiLFxuICAgIFwiZnByaW50ZlwiLCBcImZzY2FuZlwiLCBcInByaW50ZlwiLCBcInNjYW5mXCIsIFwic25wcmludGZcIiwgXCJzcHJpbnRmXCIsIFwic3NjYW5mXCIsIFwidmZwcmludGZcIiwgXCJ2ZnNjYW5mXCIsIFwidnByaW50ZlwiLFxuICAgIFwidnNjYW5mXCIsIFwidnNucHJpbnRmXCIsIFwidnNwcmludGZcIiwgXCJ2c3NjYW5mXCIsIFwiZmdldGNcIiwgXCJmZ2V0c1wiLCBcImZwdXRjXCIsIFwiZnB1dHNcIiwgXCJnZXRjXCIsIFwiZ2V0Y2hhclwiLFxuICAgIFwicHV0Y1wiLCBcInB1dGNoYXJcIiwgXCJwdXRzXCIsIFwidW5nZXRjXCIsIFwiZnJlYWRcIiwgXCJmZ2V0cG9zXCIsIFwiZnNlZWtcIiwgXCJmc2V0cG9zXCIsIFwiZnRlbGxcIiwgXCJyZXdpbmRcIiwgXCJjbGVhcmVyclwiLFxuICAgIFwiZmVvZlwiLCBcImZlcnJvclwiLCBcInBlcnJvclwiLCBcImF0b2ZcIiwgXCJhdG9pXCIsIFwiYXRvbFwiLCBcImF0b2xsXCIsIFwic3RydG9kXCIsIFwic3RydG9mXCIsIFwic3RydG9sZFwiLCBcInN0cnRvbFwiLFxuICAgIFwic3RydG9sbFwiLCBcInN0cnRvdWxcIiwgXCJzdHJ0b3VsbFwiLCBcInJhbmRcIiwgXCJzcmFuZFwiLCBcImFsaWduZWRfYWxsb2NcIiwgXCJjYWxsb2NcIiwgXCJyZWFsbG9jXCIsIFwiYWJvcnRcIiwgXCJhdGV4aXRcIixcbiAgICBcImF0X3F1aWNrX2V4aXRcIiwgXCJxdWlja19leGl0XCIsIFwiZ2V0ZW52XCIsIFwic3lzdGVtXCIsIFwiYnNlYXJjaFwiLCBcInFzb3J0XCIsIFwiYWJzXCIsIFwibGFic1wiLCBcImxsYWJzXCIsIFwiZGl2XCIsIFwibGRpdlwiLFxuICAgIFwibGxkaXZcIiwgXCJtYmxlblwiLCBcIm1idG93Y1wiLCBcIndjdG9tYlwiLCBcIm1ic3Rvd2NzXCIsIFwid2NzdG9tYnNcIiwgXCJtZW1tb3ZlXCIsIFwic3RyY3B5XCIsIFwic3RybmNweVwiLCBcInN0cmNhdFwiLFxuICAgIFwic3RybmNhdFwiLCBcInN0cmNtcFwiLCBcInN0cmNvbGxcIiwgXCJzdHJuY21wXCIsIFwic3RyeGZybVwiLCBcIm1lbWNoclwiLCBcInN0cmNoclwiLCBcInN0cmNzcG5cIiwgXCJzdHJwYnJrXCIsIFwic3RycmNoclwiLFxuICAgIFwic3Ryc3BuXCIsIFwic3Ryc3RyXCIsIFwic3RydG9rXCIsIFwibWVtc2V0XCIsIFwic3RyZXJyb3JcIiwgXCJzdHJsZW5cIlxuICBdKSxcbiAgY3NoYXJwOiBuZXcgU2V0KFtcbiAgICBcIl9fYXJnbGlzdFwiLCBcIl9fbWFrZXJlZlwiLCBcIl9fcmVmdHlwZVwiLCBcIl9fcmVmdmFsdWVcIiwgXCJhYnN0cmFjdFwiLCBcImFkZFwiLCBcImFsaWFzXCIsIFwiYWxsb3dzXCIsIFwiYW5kXCIsIFwiYXNcIixcbiAgICBcImFzY2VuZGluZ1wiLCBcImFzeW5jXCIsIFwiYXdhaXRcIiwgXCJiYXNlXCIsIFwiYm9vbFwiLCBcImJyZWFrXCIsXG4gICAgXCJieVwiLCBcImJ5dGVcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjaGFyXCIsIFwiY2hlY2tlZFwiLCBcImNsYXNzXCIsIFwiY29uc3RcIiwgXCJjb250aW51ZVwiLCBcImRlY2ltYWxcIiwgXCJkZWZhdWx0XCIsXG4gICAgXCJkZWxlZ2F0ZVwiLCBcImRlc2NlbmRpbmdcIiwgXCJkb1wiLCBcImRvdWJsZVwiLCBcImR5bmFtaWNcIiwgXCJlbHNlXCIsIFwiZW51bVwiLCBcImVxdWFsc1wiLCBcImV2ZW50XCIsIFwiZXhwbGljaXRcIiwgXCJleHRlbnNpb25cIiwgXCJleHRlcm5cIixcbiAgICBcImZhbHNlXCIsIFwiZmllbGRcIiwgXCJmaWxlXCIsIFwiZmluYWxseVwiLCBcImZpeGVkXCIsIFwiZmxvYXRcIiwgXCJmb3JcIiwgXCJmb3JlYWNoXCIsIFwiZnJvbVwiLCBcImdldFwiLCBcImdsb2JhbFwiLCBcImdvdG9cIixcbiAgICBcImdyb3VwXCIsIFwiaWZcIiwgXCJpbXBsaWNpdFwiLCBcImluXCIsIFwiaW5pdFwiLCBcImludFwiLCBcImludGVyZmFjZVwiLCBcImludGVybmFsXCIsIFwiaW50b1wiLCBcImlzXCIsIFwiam9pblwiLCBcImxldFwiLCBcImxvY2tcIixcbiAgICBcImxvbmdcIiwgXCJtYW5hZ2VkXCIsIFwibmFtZW9mXCIsIFwibmFtZXNwYWNlXCIsIFwibmV3XCIsIFwibmludFwiLCBcIm5vdFwiLCBcIm5vdG51bGxcIiwgXCJudWxsXCIsIFwibnVpbnRcIiwgXCJvYmplY3RcIiwgXCJvblwiLFxuICAgIFwib3BlcmF0b3JcIiwgXCJvclwiLCBcIm9yZGVyYnlcIiwgXCJvdXRcIiwgXCJvdmVycmlkZVwiLCBcInBhcmFtc1wiLCBcInBhcnRpYWxcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHVibGljXCIsIFwicmVhZG9ubHlcIixcbiAgICBcInJlY29yZFwiLCBcInJlZlwiLCBcInJlbW92ZVwiLCBcInJlcXVpcmVkXCIsIFwicmV0dXJuXCIsIFwic2J5dGVcIiwgXCJzY29wZWRcIiwgXCJzZWFsZWRcIiwgXCJzZWxlY3RcIiwgXCJzZXRcIiwgXCJzaG9ydFwiLCBcInNpemVvZlwiLFxuICAgIFwic3RhY2thbGxvY1wiLCBcInN0YXRpY1wiLCBcInN0cmluZ1wiLCBcInN0cnVjdFwiLCBcInN3aXRjaFwiLCBcInRoaXNcIiwgXCJ0aHJvd1wiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ0eXBlb2ZcIiwgXCJ1aW50XCIsIFwidWxvbmdcIixcbiAgICBcInVuY2hlY2tlZFwiLCBcInVubWFuYWdlZFwiLCBcInVuc2FmZVwiLCBcInVzaG9ydFwiLCBcInVzaW5nXCIsIFwidmFsdWVcIiwgXCJ2YXJcIiwgXCJ2aXJ0dWFsXCIsIFwidm9pZFwiLCBcInZvbGF0aWxlXCIsIFwid2hlblwiLFxuICAgIFwid2hlcmVcIiwgXCJ3aGlsZVwiLCBcIndpdGhcIiwgXCJ5aWVsZFwiXG4gIF0pLFxuICBnbzogbmV3IFNldChbXG4gICAgXCJfXCIsIFwiYnJlYWtcIiwgXCJkZWZhdWx0XCIsIFwiZnVuY1wiLCBcImludGVyZmFjZVwiLCBcInNlbGVjdFwiLCBcImNhc2VcIiwgXCJkZWZlclwiLCBcImdvXCIsIFwibWFwXCIsIFwic3RydWN0XCIsIFwiY2hhblwiLFxuICAgIFwiZWxzZVwiLCBcImdvdG9cIiwgXCJwYWNrYWdlXCIsIFwic3dpdGNoXCIsIFwiY29uc3RcIiwgXCJmYWxsdGhyb3VnaFwiLCBcImlmXCIsIFwicmFuZ2VcIiwgXCJ0eXBlXCIsIFwiY29udGludWVcIiwgXCJmb3JcIixcbiAgICBcImltcG9ydFwiLCBcInJldHVyblwiLCBcInZhclwiXG4gIF0pLFxuICBqYXZhOiBuZXcgU2V0KFtcbiAgICBcIl9cIiwgXCJhYnN0cmFjdFwiLCBcImFzc2VydFwiLCBcImJvb2xlYW5cIiwgXCJicmVha1wiLCBcImJ5dGVcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjaGFyXCIsIFwiY2xhc3NcIiwgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsXG4gICAgXCJkZWZhdWx0XCIsIFwiZG9cIiwgXCJkb3VibGVcIiwgXCJlbHNlXCIsIFwiZW51bVwiLCBcImV4cG9ydHNcIiwgXCJleHRlbmRzXCIsIFwiZmFsc2VcIiwgXCJmaW5hbFwiLCBcImZpbmFsbHlcIiwgXCJmbG9hdFwiLCBcImZvclwiLFxuICAgIFwiZ290b1wiLCBcImlmXCIsIFwiaW1wbGVtZW50c1wiLCBcImltcG9ydFwiLCBcImluc3RhbmNlb2ZcIiwgXCJpbnRcIiwgXCJpbnRlcmZhY2VcIiwgXCJsb25nXCIsIFwibW9kdWxlXCIsIFwibmF0aXZlXCIsIFwibmV3XCIsXG4gICAgXCJub24tc2VhbGVkXCIsIFwibnVsbFwiLCBcIm9wZW5cIiwgXCJvcGVuc1wiLCBcInBhY2thZ2VcIiwgXCJwZXJtaXRzXCIsIFwicHJpdmF0ZVwiLCBcInByb3RlY3RlZFwiLCBcInByb3ZpZGVzXCIsIFwicHVibGljXCIsXG4gICAgXCJyZWNvcmRcIiwgXCJyZXF1aXJlc1wiLCBcInJldHVyblwiLCBcInNlYWxlZFwiLCBcInNob3J0XCIsIFwic3RhdGljXCIsIFwic3RyaWN0ZnBcIiwgXCJzdXBlclwiLCBcInN3aXRjaFwiLCBcInN5bmNocm9uaXplZFwiLFxuICAgIFwidGhpc1wiLCBcInRocm93XCIsIFwidGhyb3dzXCIsIFwidG9cIiwgXCJ0cmFuc2llbnRcIiwgXCJ0cmFuc2l0aXZlXCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInVzZXNcIiwgXCJ2YXJcIiwgXCJ2b2lkXCIsIFwidm9sYXRpbGVcIixcbiAgICBcIndoZW5cIiwgXCJ3aGlsZVwiLCBcIndpdGhcIiwgXCJ5aWVsZFwiXG4gIF0pLFxuICBqYXZhc2NyaXB0OiBuZXcgU2V0KFtcbiAgICBcImF3YWl0XCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjbGFzc1wiLCBcImNvbnN0XCIsIFwiY29udGludWVcIiwgXCJkZWJ1Z2dlclwiLCBcImRlZmF1bHRcIiwgXCJkZWxldGVcIiwgXCJkb1wiLCBcImVsc2VcIixcbiAgICBcImVudW1cIiwgXCJleHBvcnRcIiwgXCJleHRlbmRzXCIsIFwiZmFsc2VcIiwgXCJmaW5hbGx5XCIsIFwiZm9yXCIsIFwiZnVuY3Rpb25cIiwgXCJpZlwiLCBcImltcGxlbWVudHNcIiwgXCJpbXBvcnRcIiwgXCJpblwiLFxuICAgIFwiaW5zdGFuY2VvZlwiLCBcImludGVyZmFjZVwiLCBcImxldFwiLCBcIm5ld1wiLCBcIm51bGxcIiwgXCJwYWNrYWdlXCIsIFwicHJpdmF0ZVwiLCBcInByb3RlY3RlZFwiLCBcInB1YmxpY1wiLCBcInJldHVyblwiLCBcInN0YXRpY1wiLFxuICAgIFwic3VwZXJcIiwgXCJzd2l0Y2hcIiwgXCJ0aGlzXCIsIFwidGhyb3dcIiwgXCJ0cnVlXCIsIFwidHJ5XCIsIFwidHlwZW9mXCIsIFwidmFyXCIsIFwidm9pZFwiLCBcIndoaWxlXCIsIFwid2l0aFwiLCBcInlpZWxkXCJcbiAgXSksXG4gIHBocDogbmV3IFNldChbXG4gICAgXCJfX2hhbHRfY29tcGlsZXJcIiwgXCJhYnN0cmFjdFwiLCBcImFuZFwiLCBcImFycmF5XCIsIFwiYXNcIiwgXCJicmVha1wiLCBcImNhbGxhYmxlXCIsIFwiY2FzZVwiLCBcImNhdGNoXCIsIFwiY2xhc3NcIiwgXCJjbG9uZVwiLFxuICAgIFwiY29uc3RcIiwgXCJjb250aW51ZVwiLCBcImRlY2xhcmVcIiwgXCJkZWZhdWx0XCIsIFwiZGllXCIsIFwiZG9cIiwgXCJlY2hvXCIsIFwiZWxzZVwiLCBcImVsc2VpZlwiLCBcImVtcHR5XCIsIFwiZW5kZGVjbGFyZVwiLFxuICAgIFwiZW5kZm9yXCIsIFwiZW5kZm9yZWFjaFwiLCBcImVuZGlmXCIsIFwiZW5kc3dpdGNoXCIsIFwiZW5kd2hpbGVcIiwgXCJlbnVtXCIsIFwiZXZhbFwiLCBcImV4aXRcIiwgXCJleHRlbmRzXCIsIFwiZmFsc2VcIiwgXCJmaW5hbFwiLFxuICAgIFwiZmluYWxseVwiLCBcImZuXCIsIFwiZm9yXCIsIFwiZm9yZWFjaFwiLCBcImZyb21cIiwgXCJmdW5jdGlvblwiLCBcImdsb2JhbFwiLCBcImdvdG9cIiwgXCJpZlwiLCBcImltcGxlbWVudHNcIiwgXCJpbmNsdWRlXCIsXG4gICAgXCJpbmNsdWRlX29uY2VcIiwgXCJpbnN0YW5jZW9mXCIsIFwiaW5zdGVhZG9mXCIsIFwiaW50ZXJmYWNlXCIsIFwiaXNzZXRcIiwgXCJpdGVyYWJsZVwiLCBcImxpc3RcIiwgXCJtYXRjaFwiLCBcIm1peGVkXCIsIFwibmFtZXNwYWNlXCIsXG4gICAgXCJuZXZlclwiLCBcIm5ld1wiLCBcIm51bGxcIiwgXCJvYmplY3RcIiwgXCJvclwiLCBcInBhcmVudFwiLCBcInByaW50XCIsIFwicHJpdmF0ZVwiLCBcInByb3RlY3RlZFwiLCBcInB1YmxpY1wiLCBcInJlYWRvbmx5XCIsIFwicmVxdWlyZVwiLFxuICAgIFwicmVxdWlyZV9vbmNlXCIsIFwicmV0dXJuXCIsIFwic2VsZlwiLCBcInN0YXRpY1wiLCBcInN3aXRjaFwiLCBcInRocm93XCIsIFwidHJhaXRcIiwgXCJ0cnVlXCIsIFwidHJ5XCIsIFwidW5zZXRcIiwgXCJ1c2VcIiwgXCJ2YXJcIixcbiAgICBcInZvaWRcIiwgXCJ3aGlsZVwiLCBcInhvclwiLCBcInlpZWxkXCJcbiAgXSksXG4gIHB5dGhvbjogbmV3IFNldChbXG4gICAgXCJGYWxzZVwiLCBcIk5vbmVcIiwgXCJUcnVlXCIsIFwiYW5kXCIsIFwiYXNcIiwgXCJhc3NlcnRcIiwgXCJhc3luY1wiLCBcImF3YWl0XCIsIFwiYm9vbFwiLCBcImJyZWFrXCIsIFwiY2FzZVwiLCBcImNsYXNzXCIsXG4gICAgXCJjb250aW51ZVwiLCBcImRlZlwiLCBcImRlbFwiLCBcImVsaWZcIiwgXCJlbHNlXCIsIFwiZXhjZXB0XCIsIFwiZXhlY1wiLCBcImZpbmFsbHlcIiwgXCJmb3JcIiwgXCJmcm9tXCIsIFwiZ2xvYmFsXCIsIFwiaWZcIixcbiAgICBcImltcG9ydFwiLCBcImluXCIsIFwiaW50XCIsIFwiaXNcIiwgXCJsYW1iZGFcIiwgXCJtYXRjaFwiLCBcIm5vbmxvY2FsXCIsIFwibm90XCIsIFwib3JcIiwgXCJwYXNzXCIsIFwicHJpbnRcIixcbiAgICBcInJhaXNlXCIsIFwicmV0dXJuXCIsIFwic3RyXCIsIFwidHJ5XCIsIFwidHlwZVwiLCBcIndoaWxlXCIsIFwid2l0aFwiLCBcInlpZWxkXCIsIFwiX1wiLCBcIl9fZGVidWdfX1wiXG4gIF0pLFxuICBydWJ5OiBuZXcgU2V0KFtcbiAgICBcIkJFR0lOXCIsIFwiRU5EXCIsIFwiX19FTkNPRElOR19fXCIsIFwiX19FTkRfX1wiLCBcIl9fRklMRV9fXCIsIFwiX19MSU5FX19cIiwgXCJhbGlhc1wiLCBcImFuZFwiLCBcImJlZ2luXCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsXG4gICAgXCJjbGFzc1wiLCBcImRlZlwiLCBcImRlZmluZWQ/XCIsIFwiZG9cIiwgXCJlbHNlXCIsIFwiZWxzaWZcIiwgXCJlbmRcIiwgXCJlbnN1cmVcIiwgXCJmYWxzZVwiLCBcImZvclwiLCBcImlmXCIsIFwiaW5cIiwgXCJtb2R1bGVcIixcbiAgICBcIm5leHRcIiwgXCJuaWxcIiwgXCJub3RcIiwgXCJvclwiLCBcInJlZG9cIiwgXCJyZXNjdWVcIiwgXCJyZXRyeVwiLCBcInJldHVyblwiLCBcInNlbGZcIiwgXCJzdXBlclwiLCBcInRoZW5cIiwgXCJ0cnVlXCIsIFwidW5kZWZcIixcbiAgICBcInVubGVzc1wiLCBcInVudGlsXCIsIFwid2hlblwiLCBcIndoaWxlXCIsIFwieWllbGRcIlxuICBdKSxcbiAgdHlwZXNjcmlwdDogbmV3IFNldChbXG4gICAgXCJhYnN0cmFjdFwiLCBcImFueVwiLCBcImFzXCIsIFwiYXNzZXJ0c1wiLCBcImFzeW5jXCIsIFwiYXdhaXRcIiwgXCJib29sZWFuXCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjbGFzc1wiLCBcImNvbnN0XCIsXG4gICAgXCJjb25zdHJ1Y3RvclwiLCBcImNvbnRpbnVlXCIsIFwiZGVidWdnZXJcIiwgXCJkZWNsYXJlXCIsIFwiZGVmYXVsdFwiLCBcImRlbGV0ZVwiLCBcImRvXCIsIFwiZWxzZVwiLCBcImVudW1cIiwgXCJleHBvcnRcIiwgXCJleHRlbmRzXCIsXG4gICAgXCJmYWxzZVwiLCBcImZpbmFsbHlcIiwgXCJmb3JcIiwgXCJmcm9tXCIsIFwiZnVuY3Rpb25cIiwgXCJnZXRcIiwgXCJpZlwiLCBcImltcGxlbWVudHNcIiwgXCJpbXBvcnRcIiwgXCJpblwiLCBcImluZmVyXCIsIFwiaW5zdGFuY2VvZlwiLFxuICAgIFwiaW50ZXJmYWNlXCIsIFwiaXNcIiwgXCJrZXlvZlwiLCBcImxldFwiLCBcIm1vZHVsZVwiLCBcIm5hbWVzcGFjZVwiLCBcIm5ldmVyXCIsIFwibmV3XCIsIFwibnVsbFwiLCBcIm51bWJlclwiLCBcIm9iamVjdFwiLCBcIm9mXCIsXG4gICAgXCJvdmVycmlkZVwiLCBcInBhY2thZ2VcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHVibGljXCIsIFwicmVhZG9ubHlcIiwgXCJyZXF1aXJlXCIsIFwicmV0dXJuXCIsIFwic2F0aXNmaWVzXCIsIFwic2V0XCIsXG4gICAgXCJzdGF0aWNcIiwgXCJzdHJpbmdcIiwgXCJzdXBlclwiLCBcInN3aXRjaFwiLCBcInN5bWJvbFwiLCBcInRoaXNcIiwgXCJ0aHJvd1wiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ0eXBlXCIsIFwidHlwZW9mXCIsIFwidW5kZWZpbmVkXCIsXG4gICAgXCJ1bmlxdWVcIiwgXCJ1bmtub3duXCIsIFwidXNpbmdcIiwgXCJ2YXJcIiwgXCJ2b2lkXCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwieWllbGRcIlxuICBdKSxcbiAgd2FzbTogbmV3IFNldCgpXG59XG5cbmNvbnN0IHBocEludmFsaWRQYXJhbWV0ZXJCaW5kaW5ncyA9IG5ldyBTZXQoW1xuICBcIkdMT0JBTFNcIiwgXCJfQ09PS0lFXCIsIFwiX0VOVlwiLCBcIl9GSUxFU1wiLCBcIl9HRVRcIiwgXCJfUE9TVFwiLCBcIl9SRVFVRVNUXCIsIFwiX1NFUlZFUlwiLCBcIl9TRVNTSU9OXCIsIFwidGhpc1wiXG5dKVxuY29uc3QgcGhwSW52YWxpZEFzc2lnbmVkQmluZGluZ3MgPSBuZXcgU2V0KFtcIkdMT0JBTFNcIiwgXCJ0aGlzXCJdKVxuXG4vKiogQHR5cGUge1JlYWRvbmx5PFBhcnRpYWw8UmVjb3JkPGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkJhY2tlbmRMYW5ndWFnZSwgU2V0PHN0cmluZz4+Pj59ICovXG5jb25zdCByZXNlcnZlZFR5cGVOYW1lcyA9IE9iamVjdC5mcmVlemUoe1xuICBqYXZhOiBuZXcgU2V0KFtcIkJvb2xlYW5cIiwgXCJJbnRlZ2VyXCIsIFwiTWFpblwiLCBcIk1hdGhcIiwgXCJPYmplY3RcIiwgXCJTdHJpbmdcIiwgXCJTeXN0ZW1cIl0pLFxuICBqYXZhc2NyaXB0OiBuZXcgU2V0KFtcIkFycmF5XCIsIFwiQm9vbGVhblwiLCBcIk1hcFwiLCBcIk1hdGhcIiwgXCJOdW1iZXJcIiwgXCJPYmplY3RcIiwgXCJSZWZsZWN0XCIsIFwiU3RyaW5nXCJdKSxcbiAgcGhwOiBuZXcgU2V0KFtcbiAgICBcImFkZHJlc3NpbmZvXCIsIFwiYWxsb3dkeW5hbWljcHJvcGVydGllc1wiLCBcImFwcGVuZGl0ZXJhdG9yXCIsIFwiYXJndW1lbnRjb3VudGVycm9yXCIsIFwiYXJpdGhtZXRpY2Vycm9yXCIsIFwiYXJyYXlhY2Nlc3NcIixcbiAgICBcImFycmF5aXRlcmF0b3JcIiwgXCJhcnJheW9iamVjdFwiLCBcImFzc2VydGlvbmVycm9yXCIsIFwiYXR0cmlidXRlXCIsIFwiYmFja2VkZW51bVwiLCBcImJhZGZ1bmN0aW9uY2FsbGV4Y2VwdGlvblwiLFxuICAgIFwiYmFkbWV0aG9kY2FsbGV4Y2VwdGlvblwiLCBcImNhY2hpbmdpdGVyYXRvclwiLFxuICAgIFwiY2FsbGJhY2tmaWx0ZXJpdGVyYXRvclwiLCBcImNsb3NlZGdlbmVyYXRvcmV4Y2VwdGlvblwiLCBcImNsb3N1cmVcIiwgXCJjb21waWxlZXJyb3JcIiwgXCJjb3VudGFibGVcIiwgXCJkYXRlZXJyb3JcIiwgXCJkYXRlZXhjZXB0aW9uXCIsXG4gICAgXCJkYXRlaW50ZXJ2YWxcIiwgXCJkYXRlaW52YWxpZG9wZXJhdGlvbmV4Y2VwdGlvblwiLCBcImRhdGVpbnZhbGlkdGltZXpvbmVleGNlcHRpb25cIiwgXCJkYXRlbWFsZm9ybWVkaW50ZXJ2YWxzdHJpbmdleGNlcHRpb25cIixcbiAgICBcImRhdGVtYWxmb3JtZWRwZXJpb2RzdHJpbmdleGNlcHRpb25cIiwgXCJkYXRlbWFsZm9ybWVkc3RyaW5nZXhjZXB0aW9uXCIsIFwiZGF0ZW9iamVjdGVycm9yXCIsIFwiZGF0ZXBlcmlvZFwiLCBcImRhdGVyYW5nZWVycm9yXCIsXG4gICAgXCJkYXRldGltZVwiLCBcImRhdGV0aW1laW1tdXRhYmxlXCIsIFwiZGF0ZXRpbWVpbnRlcmZhY2VcIiwgXCJkYXRldGltZXpvbmVcIiwgXCJkZWZsYXRlY29udGV4dFwiLCBcImRlbGF5ZWR0YXJnZXR2YWxpZGF0aW9uXCIsXG4gICAgXCJkZXByZWNhdGVkXCIsIFwiZGlyZWN0b3J5XCIsIFwiZGlyZWN0b3J5aXRlcmF0b3JcIiwgXCJkaXZpc2lvbmJ5emVyb2Vycm9yXCIsIFwiZG9tYWluZXhjZXB0aW9uXCIsIFwiZW1wdHlpdGVyYXRvclwiLCBcImVycm9yXCIsXG4gICAgXCJlcnJvcmV4Y2VwdGlvblwiLCBcImV4Y2VwdGlvblwiLCBcImZmaVwiLCBcImZpYmVyXCIsIFwiZmliZXJlcnJvclwiLCBcImZpbGVzeXN0ZW1pdGVyYXRvclwiLCBcImZpbHRlcml0ZXJhdG9yXCIsIFwiZmluZm9cIiwgXCJnZW5lcmF0b3JcIixcbiAgICBcImdsb2JpdGVyYXRvclwiLCBcImhhc2hjb250ZXh0XCIsIFwiaW5maW5pdGVpdGVyYXRvclwiLCBcImluZmxhdGVjb250ZXh0XCIsIFwiaW50ZXJuYWxpdGVyYXRvclwiLCBcImludmFsaWRhcmd1bWVudGV4Y2VwdGlvblwiLFxuICAgIFwiaXRlcmF0b3JcIiwgXCJpdGVyYXRvcmFnZ3JlZ2F0ZVwiLCBcIml0ZXJhdG9yaXRlcmF0b3JcIiwgXCJqc29uZXhjZXB0aW9uXCIsIFwianNvbnNlcmlhbGl6YWJsZVwiLCBcImxlbmd0aGV4Y2VwdGlvblwiLFxuICAgIFwibGlieG1sZXJyb3JcIiwgXCJsaW1pdGl0ZXJhdG9yXCIsIFwibG9naWNleGNlcHRpb25cIiwgXCJtdWx0aXBsZWl0ZXJhdG9yXCIsIFwibm9kaXNjYXJkXCIsIFwibm9yZXdpbmRpdGVyYXRvclwiLFxuICAgIFwib3BlbnNzbGFzeW1tZXRyaWNrZXlcIiwgXCJvcGVuc3NsY2VydGlmaWNhdGVcIiwgXCJvcGVuc3NsY2VydGlmaWNhdGVzaWduaW5ncmVxdWVzdFwiLFxuICAgIFwib3V0b2Zib3VuZHNleGNlcHRpb25cIiwgXCJvdXRvZnJhbmdlZXhjZXB0aW9uXCIsIFwib3V0ZXJpdGVyYXRvclwiLCBcIm92ZXJmbG93ZXhjZXB0aW9uXCIsIFwib3ZlcnJpZGVcIiwgXCJwYXJlbnRpdGVyYXRvclwiLFxuICAgIFwicGFyc2VlcnJvclwiLCBcInBkb1wiLCBcInBkb2V4Y2VwdGlvblwiLCBcInBkb3Jvd1wiLCBcInBkb3N0YXRlbWVudFwiLCBcInBoYXJcIiwgXCJwaGFyZGF0YVwiLCBcInBoYXJleGNlcHRpb25cIiwgXCJwaGFyZmlsZWluZm9cIixcbiAgICBcInBocF91c2VyX2ZpbHRlclwiLCBcInBocHRva2VuXCIsIFwicHJvcGVydHlob29rdHlwZVwiLCBcInJhbmdlZXhjZXB0aW9uXCIsIFwicmVjdXJzaXZlYXJyYXlpdGVyYXRvclwiLCBcInJlY3Vyc2l2ZWNhY2hpbmdpdGVyYXRvclwiLFxuICAgIFwicmVjdXJzaXZlY2FsbGJhY2tmaWx0ZXJpdGVyYXRvclwiLFxuICAgIFwicmVjdXJzaXZlZGlyZWN0b3J5aXRlcmF0b3JcIiwgXCJyZWN1cnNpdmVmaWx0ZXJpdGVyYXRvclwiLCBcInJlY3Vyc2l2ZWl0ZXJhdG9yXCIsIFwicmVjdXJzaXZlaXRlcmF0b3JpdGVyYXRvclwiLFxuICAgIFwicmVjdXJzaXZlcmVnZXhpdGVyYXRvclwiLCBcInJlY3Vyc2l2ZXRyZWVpdGVyYXRvclwiLCBcInJlZmxlY3Rpb25cIiwgXCJyZWZsZWN0aW9uYXR0cmlidXRlXCIsIFwicmVmbGVjdGlvbmNsYXNzXCIsXG4gICAgXCJyZWZsZWN0aW9uY2xhc3Njb25zdGFudFwiLCBcInJlZmxlY3Rpb25jb25zdGFudFwiLCBcInJlZmxlY3Rpb25lbnVtXCIsIFwicmVmbGVjdGlvbmVudW1iYWNrZWRjYXNlXCIsIFwicmVmbGVjdGlvbmVudW11bml0Y2FzZVwiLFxuICAgIFwicmVmbGVjdGlvbmV4Y2VwdGlvblwiLCBcInJlZmxlY3Rpb25leHRlbnNpb25cIiwgXCJyZWZsZWN0aW9uZmliZXJcIiwgXCJyZWZsZWN0aW9uZnVuY3Rpb25cIiwgXCJyZWZsZWN0aW9uZnVuY3Rpb25hYnN0cmFjdFwiLFxuICAgIFwicmVmbGVjdGlvbmdlbmVyYXRvclwiLCBcInJlZmxlY3Rpb25pbnRlcnNlY3Rpb250eXBlXCIsIFwicmVmbGVjdGlvbm1ldGhvZFwiLCBcInJlZmxlY3Rpb25uYW1lZHR5cGVcIiwgXCJyZWZsZWN0aW9ub2JqZWN0XCIsXG4gICAgXCJyZWZsZWN0aW9ucGFyYW1ldGVyXCIsIFwicmVmbGVjdGlvbnByb3BlcnR5XCIsIFwicmVmbGVjdGlvbnJlZmVyZW5jZVwiLCBcInJlZmxlY3Rpb250eXBlXCIsIFwicmVmbGVjdGlvbnVuaW9udHlwZVwiLFxuICAgIFwicmVmbGVjdGlvbnplbmRleHRlbnNpb25cIiwgXCJyZWZsZWN0b3JcIiwgXCJyZWdleGl0ZXJhdG9yXCIsIFwicmVxdWVzdHBhcnNlYm9keWV4Y2VwdGlvblwiLCBcInJldHVybnR5cGV3aWxsY2hhbmdlXCIsXG4gICAgXCJyb3VuZGluZ21vZGVcIiwgXCJydW50aW1lZXhjZXB0aW9uXCIsIFwic2Vla2FibGVpdGVyYXRvclwiLCBcInNlbnNpdGl2ZXBhcmFtZXRlclwiLCBcInNlbnNpdGl2ZXBhcmFtZXRlcnZhbHVlXCIsIFwic2VyaWFsaXphYmxlXCIsXG4gICAgXCJzZXNzaW9uaGFuZGxlclwiLCBcInNlc3Npb25oYW5kbGVyaW50ZXJmYWNlXCIsIFwic2Vzc2lvbmlkaW50ZXJmYWNlXCIsIFwic2Vzc2lvbnVwZGF0ZXRpbWVzdGFtcGhhbmRsZXJpbnRlcmZhY2VcIiwgXCJzaG1vcFwiLFxuICAgIFwic29ja2V0XCIsIFwic29kaXVtZXhjZXB0aW9uXCIsIFwic3BsZG91Ymx5bGlua2VkbGlzdFwiLCBcInNwbGZpbGVpbmZvXCIsXG4gICAgXCJzcGxmaWxlb2JqZWN0XCIsIFwic3BsZml4ZWRhcnJheVwiLCBcInNwbGhlYXBcIiwgXCJzcGxtYXhoZWFwXCIsIFwic3BsbWluaGVhcFwiLCBcInNwbG9iamVjdHN0b3JhZ2VcIiwgXCJzcGxvYnNlcnZlclwiLFxuICAgIFwic3BscHJpb3JpdHlxdWV1ZVwiLCBcInNwbHF1ZXVlXCIsIFwic3Bsc3RhY2tcIiwgXCJzcGxzdWJqZWN0XCIsIFwic3BsdGVtcGZpbGVvYmplY3RcIiwgXCJzdGRjbGFzc1wiLCBcInN0cmVhbWJ1Y2tldFwiLCBcInN0cmluZ2FibGVcIixcbiAgICBcInN5c3ZtZXNzYWdlcXVldWVcIiwgXCJzeXN2c2VtYXBob3JlXCIsIFwic3lzdnNoYXJlZG1lbW9yeVwiLCBcInRocm93YWJsZVwiLCBcInRyYXZlcnNhYmxlXCIsIFwidHlwZWVycm9yXCIsIFwidW5kZXJmbG93ZXhjZXB0aW9uXCIsXG4gICAgXCJ1bmV4cGVjdGVkdmFsdWVleGNlcHRpb25cIiwgXCJ1bmhhbmRsZWRtYXRjaGVycm9yXCIsIFwidW5pdGVudW1cIiwgXCJ2YWx1ZWVycm9yXCIsIFwid2Vha21hcFwiLCBcIndlYWtyZWZlcmVuY2VcIlxuICBdKSxcbiAgcnVieTogbmV3IFNldChbXG4gICAgXCJBcmd1bWVudEVycm9yXCIsIFwiQXJyYXlcIiwgXCJCYXNpY09iamVjdFwiLCBcIkJpbmRpbmdcIiwgXCJDbGFzc1wiLCBcIkNsb3NlZFF1ZXVlRXJyb3JcIiwgXCJDb21wYXJhYmxlXCIsIFwiQ29tcGxleFwiLCBcIkRhdGFcIiwgXCJEaXJcIixcbiAgICBcIkVuY29kaW5nXCIsIFwiRW5jb2RpbmdFcnJvclwiLCBcIkVudW1lcmFibGVcIiwgXCJFbnVtZXJhdG9yXCIsIFwiRU9GRXJyb3JcIiwgXCJFcnJub1wiLCBcIkV4Y2VwdGlvblwiLCBcIkZhbHNlQ2xhc3NcIiwgXCJGaWJlclwiLFxuICAgIFwiRmliZXJFcnJvclwiLCBcIkZpbGVcIiwgXCJGaWxlVGVzdFwiLCBcIkZsb2F0XCIsIFwiRnJvemVuRXJyb3JcIiwgXCJHQ1wiLCBcIkhhc2hcIiwgXCJJT1wiLCBcIklPRXJyb3JcIiwgXCJJbmRleEVycm9yXCIsIFwiSW50ZWdlclwiLFxuICAgIFwiSW50ZXJydXB0XCIsIFwiS2VybmVsXCIsIFwiS2V5RXJyb3JcIiwgXCJMb2FkRXJyb3JcIiwgXCJMb2NhbEp1bXBFcnJvclwiLCBcIk1hcnNoYWxcIiwgXCJNYXRjaERhdGFcIiwgXCJNYXRoXCIsIFwiTWV0aG9kXCIsIFwiTW9kdWxlXCIsXG4gICAgXCJNdXRleFwiLCBcIk5hbWVFcnJvclwiLCBcIk5pbENsYXNzXCIsIFwiTm9NZW1vcnlFcnJvclwiLCBcIk5vTWV0aG9kRXJyb3JcIiwgXCJOb3RJbXBsZW1lbnRlZEVycm9yXCIsIFwiTnVtZXJpY1wiLCBcIk9iamVjdFwiLFxuICAgIFwiT2JqZWN0U3BhY2VcIiwgXCJQcm9jXCIsIFwiUHJvY2Vzc1wiLCBcIlF1ZXVlXCIsIFwiUmFjdG9yXCIsIFwiUmFuZG9tXCIsIFwiUmFuZ2VcIiwgXCJSYXRpb25hbFwiLCBcIlJlZ2V4cFwiLCBcIlJlZ2V4cEVycm9yXCIsIFwiUnVieVZNXCIsXG4gICAgXCJSdW50aW1lRXJyb3JcIiwgXCJTY3JpcHRFcnJvclwiLCBcIlNlY3VyaXR5RXJyb3JcIiwgXCJTaWduYWxcIiwgXCJTaWduYWxFeGNlcHRpb25cIiwgXCJTaXplZFF1ZXVlXCIsIFwiU3RhbmRhcmRFcnJvclwiLCBcIlN0b3BJdGVyYXRpb25cIixcbiAgICBcIlN0cmluZ1wiLCBcIlN0cnVjdFwiLCBcIlN5bWJvbFwiLCBcIlN5bnRheEVycm9yXCIsIFwiU3lzdGVtQ2FsbEVycm9yXCIsIFwiU3lzdGVtRXhpdFwiLCBcIlN5c3RlbVN0YWNrRXJyb3JcIiwgXCJUaHJlYWRcIiwgXCJUaHJlYWRFcnJvclwiLFxuICAgIFwiVGhyZWFkR3JvdXBcIiwgXCJUaW1lXCIsIFwiVHJhY2VQb2ludFwiLCBcIlRydWVDbGFzc1wiLCBcIlR5cGVFcnJvclwiLCBcIlVuYm91bmRNZXRob2RcIiwgXCJVbmNhdWdodFRocm93RXJyb3JcIiwgXCJXYXJuaW5nXCIsXG4gICAgXCJaZXJvRGl2aXNpb25FcnJvclwiXG4gIF0pLFxuICB0eXBlc2NyaXB0OiBuZXcgU2V0KFtcIkFycmF5XCIsIFwiQm9vbGVhblwiLCBcIk1hcFwiLCBcIk1hdGhcIiwgXCJOdW1iZXJcIiwgXCJPYmplY3RcIiwgXCJSZWFkb25seUFycmF5XCIsIFwiUmVhZG9ubHlNYXBcIiwgXCJSZWZsZWN0XCIsIFwiU3RyaW5nXCJdKVxufSlcblxuLyoqXG4gKiBWYWxpZGF0ZXMgYW4gaWRlbnRpZmllciBhZ2FpbnN0IHRoZSB0YXJnZXQgYmFja2VuZCdzIGRlbGliZXJhdGVseSBuYXJyb3cgbGV4aWNhbCBjb250cmFjdC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuQmFja2VuZExhbmd1YWdlfSBsYW5ndWFnZSAtIFRhcmdldCBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gbmFtZSAtIENhbmRpZGF0ZSBzZW1hbnRpYyBpZGVudGlmaWVyLlxuICogQHBhcmFtIHtzdHJpbmd9IHJvbGUgLSBJZGVudGlmaWVyIHJvbGUgZm9yIGRpYWdub3N0aWNzLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBPcmlnaW5hdGluZyBsb2NhdGlvbi5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYXJnZXRJZGVudGlmaWVyKGxhbmd1YWdlLCBuYW1lLCByb2xlLCBsb2NhdGlvbikge1xuICBpZiAodHlwZW9mIG5hbWUgIT0gXCJzdHJpbmdcIikgdW5zdXBwb3J0ZWRDYXBhYmlsaXR5KGxhbmd1YWdlLCBgJHtyb2xlfSBpZGVudGlmaWVyYCwgbG9jYXRpb24pXG5cbiAgY29uc3QgcmVzZXJ2ZWROYW1lID0gbGFuZ3VhZ2UgPT0gXCJwaHBcIiA/IG5hbWUudG9Mb3dlckNhc2UoKSA6IG5hbWVcbiAgY29uc3Qgc3ludGF4TGFuZ3VhZ2UgPSBsYW5ndWFnZSA9PSBcImlvc1wiID8gXCJzd2lmdFwiIDogbGFuZ3VhZ2VcblxuICBpZiAoIWlkZW50aWZpZXJQYXR0ZXJuc1tzeW50YXhMYW5ndWFnZV0udGVzdChuYW1lKSB8fCByZXNlcnZlZFdvcmRzW3N5bnRheExhbmd1YWdlXS5oYXMocmVzZXJ2ZWROYW1lKSB8fFxuICAgIGxhbmd1YWdlID09IFwicHl0aG9uXCIgJiYgbmFtZS5ub3JtYWxpemUoXCJORktDXCIpICE9IG5hbWUgfHxcbiAgICBsYW5ndWFnZSA9PSBcImNcIiAmJiAhaXNDSWRlbnRpZmllcihuYW1lKSB8fFxuICAgIGxhbmd1YWdlID09IFwicnVzdFwiICYmICFpc1J1c3RJZGVudGlmaWVyKG5hbWUpIHx8XG4gICAgbGFuZ3VhZ2UgPT0gXCJjcHBcIiAmJiAhaXNDcHBJZGVudGlmaWVyKG5hbWUpIHx8XG4gICAgbGFuZ3VhZ2UgPT0gXCJkYXJ0XCIgJiYgIWlzRGFydElkZW50aWZpZXIobmFtZSkgfHxcbiAgICBsYW5ndWFnZSA9PSBcInN3aWZ0XCIgJiYgKCFpc1N3aWZ0SWRlbnRpZmllcihuYW1lKSB8fCBuYW1lLm5vcm1hbGl6ZShcIk5GQ1wiKSAhPSBuYW1lKSB8fFxuICAgIGxhbmd1YWdlID09IFwia290bGluXCIgJiYgKCFpc0tvdGxpbklkZW50aWZpZXIobmFtZSkgfHwgbmFtZS5ub3JtYWxpemUoXCJORkNcIikgIT0gbmFtZSkpIHtcbiAgICB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIGAke3JvbGV9IGlkZW50aWZpZXIgJyR7bmFtZX0nYCwgbG9jYXRpb24pXG4gIH1cbn1cblxuLyoqXG4gKiBQcm90ZWN0cyB0aGUgZXhhY3QgQyBoZWFkZXIgZW52aXJvbm1lbnQgYW5kIGltcGxlbWVudGF0aW9uLXJlc2VydmVkIG5hbWVzcGFjZSBpbiBlaXRoZXIgZGlyZWN0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBDYWxsZXIgaWRlbnRpZmllci5cbiAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSBzcGVsbGluZyBpcyBzYWZlIGluIHRoZSBjYW5vbmljYWwgdHJhbnNsYXRpb24gdW5pdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ0lkZW50aWZpZXIobmFtZSkge1xuICByZXR1cm4gaWRlbnRpZmllclBhdHRlcm5zLmMudGVzdChuYW1lKSAmJiAhcmVzZXJ2ZWRXb3Jkcy5jLmhhcyhuYW1lKSAmJlxuICAgICEvXig/OnNlbWFudGlmb2xkX3xTRU1BTlRJRk9MRF98U2VtYW50aWZvbGR8YXRvbWljX3xJTlRbMC05X0EtWl18VUlOVFswLTlfQS1aXXxJTlRNQVhffFVJTlRNQVhffFNJWkVffFBUUkRJRkZffFNJR19BVE9NSUNffFdDSEFSX3xXSU5UX3xDSEFSX3xTQ0hBUl98VUNIQVJffFNIUlRffFVTSFJUX3xMT05HX3xVTE9OR198TExPTkdffFVMTE9OR18pL3UudGVzdChuYW1lKSAmJlxuICAgICEvXig/OnU/aW50KD86OHwxNnwzMnw2NHxtYXh8cHRyfF9sZWFzdFswLTldK3xfZmFzdFswLTldKylfdCkkL3UudGVzdChuYW1lKVxufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBhIGJpbmRpbmcgaWRlbnRpZmllciBhZ2FpbnN0IHRhcmdldCByZXN0cmljdGlvbnMgYmV5b25kIGdlbmVyYWwgaWRlbnRpZmllciBzeW50YXguXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkJhY2tlbmRMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBUYXJnZXQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3Vua25vd259IG5hbWUgLSBDYW5kaWRhdGUgc2VtYW50aWMgaWRlbnRpZmllci5cbiAqIEBwYXJhbSB7c3RyaW5nfSByb2xlIC0gQmluZGluZyByb2xlIGZvciBkaWFnbm9zdGljcy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IGxvY2F0aW9uIC0gT3JpZ2luYXRpbmcgbG9jYXRpb24uXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGFyZ2V0QmluZGluZ0lkZW50aWZpZXIobGFuZ3VhZ2UsIG5hbWUsIHJvbGUsIGxvY2F0aW9uKSB7XG4gIHZhbGlkYXRlVGFyZ2V0SWRlbnRpZmllcihsYW5ndWFnZSwgbmFtZSwgcm9sZSwgbG9jYXRpb24pXG5cbiAgY29uc3QgaW52YWxpZFR5cGVTY3JpcHRCaW5kaW5nID0gbGFuZ3VhZ2UgPT0gXCJ0eXBlc2NyaXB0XCIgJiYgKG5hbWUgPT0gXCJhcmd1bWVudHNcIiB8fCBuYW1lID09IFwiZXZhbFwiKVxuICBjb25zdCBpbnZhbGlkUGhwVmFyaWFibGUgPSBsYW5ndWFnZSA9PSBcInBocFwiICYmIHR5cGVvZiBuYW1lID09IFwic3RyaW5nXCIgJiZcbiAgICAoKHJvbGUgPT0gXCJwYXJhbWV0ZXJcIiAmJiBwaHBJbnZhbGlkUGFyYW1ldGVyQmluZGluZ3MuaGFzKG5hbWUpKSB8fFxuICAgICAgKChyb2xlID09IFwibG9jYWxcIiB8fCByb2xlID09IFwiYXNzaWdubWVudCB0YXJnZXRcIiB8fCByb2xlID09IFwiY2F0Y2ggYmluZGluZ1wiKSAmJiBwaHBJbnZhbGlkQXNzaWduZWRCaW5kaW5ncy5oYXMobmFtZSkpKVxuICBjb25zdCBpbnZhbGlkUnVieUJpbmRpbmcgPSBsYW5ndWFnZSA9PSBcInJ1YnlcIiAmJiB0eXBlb2YgbmFtZSA9PSBcInN0cmluZ1wiICYmIC9eX1sxLTldJC91LnRlc3QobmFtZSlcblxuICBpZiAoaW52YWxpZFR5cGVTY3JpcHRCaW5kaW5nIHx8IGludmFsaWRQaHBWYXJpYWJsZSB8fCBpbnZhbGlkUnVieUJpbmRpbmcpIHtcbiAgICB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIGAke3JvbGV9IGlkZW50aWZpZXIgJyR7bmFtZX0nYCwgbG9jYXRpb24pXG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBub21pbmFsIHJlY29yZC90eXBlIGRlY2xhcmF0aW9uIG5hbWUgZm9yIHRoZSBvcmlnaW5hbC1maXZlIHRhcmdldHMuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkJhY2tlbmRMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBCYWNrZW5kIGxhbmd1YWdlLlxuICogQHBhcmFtIHt1bmtub3dufSBuYW1lIC0gQ2FuZGlkYXRlIHR5cGUgbmFtZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IGxvY2F0aW9uIC0gRGVjbGFyYXRpb24gbG9jYXRpb24uXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGFyZ2V0VHlwZUlkZW50aWZpZXIobGFuZ3VhZ2UsIG5hbWUsIGxvY2F0aW9uKSB7XG4gIGlmICh0eXBlb2YgbmFtZSAhPSBcInN0cmluZ1wiIHx8ICEvXltBLVpdW0EtWmEtejAtOV9dKiQvdS50ZXN0KG5hbWUpKSB7XG4gICAgdW5zdXBwb3J0ZWRDYXBhYmlsaXR5KGxhbmd1YWdlLCBgcmVjb3JkIHR5cGUgaWRlbnRpZmllciAnJHtTdHJpbmcobmFtZSl9J2AsIGxvY2F0aW9uKVxuICB9XG4gIGNvbnN0IHJlc2VydmVkTmFtZSA9IGxhbmd1YWdlID09IFwicGhwXCIgPyBuYW1lLnRvTG93ZXJDYXNlKCkgOiBuYW1lXG4gIGNvbnN0IHN5bnRheExhbmd1YWdlID0gbGFuZ3VhZ2UgPT0gXCJpb3NcIiA/IFwic3dpZnRcIiA6IGxhbmd1YWdlXG5cbiAgaWYgKHJlc2VydmVkV29yZHNbc3ludGF4TGFuZ3VhZ2VdLmhhcyhyZXNlcnZlZE5hbWUpIHx8IHJlc2VydmVkVHlwZU5hbWVzW2xhbmd1YWdlXT8uaGFzKHJlc2VydmVkTmFtZSkpIHtcbiAgICB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIGByZWNvcmQgdHlwZSBpZGVudGlmaWVyICcke25hbWV9J2AsIGxvY2F0aW9uKVxuICB9XG59XG5cbi8qKlxuICogUHJvdGVjdHMgQysrIGtleXdvcmRzLCB0aGUgYWN0dWFsIGluY2x1ZGVkIEMgbGlicmFyeSBuYW1lcy9tYWNyb3MgYW5kIHRoZSBzY2FmZm9sZCBuYW1lc3BhY2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIENhbGxlciBzY2FsYXIgYmluZGluZyBvciBmdW5jdGlvbiBuYW1lLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgYSBjYW5vbmljYWwgQysrMjAgdHJhbnNsYXRpb24gdW5pdCBjYW4gcmVwcmVzZW50IHRoZSBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDcHBJZGVudGlmaWVyKG5hbWUpIHtcbiAgcmV0dXJuIGlzQ0lkZW50aWZpZXIobmFtZSkgJiYgIW5hbWUuaW5jbHVkZXMoXCJfX1wiKSAmJiAhcmVzZXJ2ZWRXb3Jkcy5jcHAuaGFzKG5hbWUpXG59XG5cbi8qKlxuICogUHJvdGVjdHMgdGhlIGVkaXRpb24tMjAyMSBzY2FsYXIsIGVudHJ5IGFuZCBleGFjdCBoZWxwZXIgZW52aXJvbm1lbnQgaW4gYm90aCBkaXJlY3Rpb25zLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBDYWxsZXItb3duZWQgZnVuY3Rpb24gb3IgYmluZGluZyBuYW1lLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgb3JkaW5hcnkgUnVzdCBzeW50YXggY2FuIHJlcHJlc2VudCB0aGUgbmFtZSBzYWZlbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1J1c3RJZGVudGlmaWVyKG5hbWUpIHtcbiAgcmV0dXJuIGlkZW50aWZpZXJQYXR0ZXJucy5ydXN0LnRlc3QobmFtZSkgJiYgIXJlc2VydmVkV29yZHMucnVzdC5oYXMobmFtZSkgJiYgIW5hbWUuc3RhcnRzV2l0aChcInNlbWFudGlmb2xkX1wiKVxufVxuXG4vKipcbiAqIFByb3RlY3RzIFN3aWZ0IGtleXdvcmRzLCBzY2FsYXIgbmFtZXMsIGVudHJ5IHBsdW1iaW5nLCBhbmQgdGFyZ2V0LW9ubHkgaGVscGVyIG5hbWVzLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBDYWxsZXItb3duZWQgZnVuY3Rpb24gb3IgYmluZGluZyBuYW1lLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgb3JkaW5hcnkgdW5lc2NhcGVkIFN3aWZ0IHN5bnRheCBjYW4gcHJlc2VydmUgdGhlIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N3aWZ0SWRlbnRpZmllcihuYW1lKSB7XG4gIHJldHVybiBpZGVudGlmaWVyUGF0dGVybnMuc3dpZnQudGVzdChuYW1lKSAmJiAhcmVzZXJ2ZWRXb3Jkcy5zd2lmdC5oYXMobmFtZSkgJiYgIW5hbWUuc3RhcnRzV2l0aChcInNlbWFudGlmb2xkX1wiKVxufVxuXG4vKipcbiAqIFByb3RlY3RzIEtvdGxpbiBrZXl3b3JkcywgSlZNIHNjYWxhci9zY2FmZm9sZCBuYW1lcywgYW5kIHRhcmdldC1vbmx5IGhlbHBlciBuYW1lcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gQ2FsbGVyLW93bmVkIGZ1bmN0aW9uIG9yIGJpbmRpbmcgbmFtZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIG9yZGluYXJ5IHVuZXNjYXBlZCBLb3RsaW4gc3ludGF4IGNhbiBwcmVzZXJ2ZSB0aGUgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzS290bGluSWRlbnRpZmllcihuYW1lKSB7XG4gIHJldHVybiBpZGVudGlmaWVyUGF0dGVybnMua290bGluLnRlc3QobmFtZSkgJiYgIXJlc2VydmVkV29yZHMua290bGluLmhhcyhuYW1lKSAmJiAhbmFtZS5zdGFydHNXaXRoKFwic2VtYW50aWZvbGRfXCIpICYmXG4gICAgIW5hbWUuc3RhcnRzV2l0aChcIlNFTUFOVElGT0xEX1wiKVxufVxuXG4vKipcbiAqIFByb3RlY3RzIERhcnQga2V5d29yZHMsIFZNIHNjYWxhci9zY2FmZm9sZCBuYW1lcywgYW5kIGNvbXBpbGVyLW93bmVkIGhlbHBlcnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIENhbGxlci1vd25lZCBmdW5jdGlvbiBvciBiaW5kaW5nIG5hbWUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBvcmRpbmFyeSBEYXJ0IHN5bnRheCBjYW4gcHJlc2VydmUgdGhlIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhcnRJZGVudGlmaWVyKG5hbWUpIHtcbiAgcmV0dXJuIGlkZW50aWZpZXJQYXR0ZXJucy5kYXJ0LnRlc3QobmFtZSkgJiYgIXJlc2VydmVkV29yZHMuZGFydC5oYXMobmFtZSkgJiZcbiAgICAhbmFtZS5zdGFydHNXaXRoKFwiX3NlbWFudGlmb2xkXCIpICYmIG5hbWUubm9ybWFsaXplKFwiTkZDXCIpID09IG5hbWVcbn1cbiJdfQ==
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmllcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvaWRlbnRpZmllcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBRXRELDZGQUE2RjtBQUM3RixNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLE9BQU8sRUFBRSxtQ0FBbUM7SUFDNUMsSUFBSSxFQUFFLG1DQUFtQztJQUN6QyxNQUFNLEVBQUUsbUNBQW1DO0lBQzNDLEtBQUssRUFBRSwrQ0FBK0M7SUFDdEQsSUFBSSxFQUFFLDJCQUEyQjtJQUNqQyxHQUFHLEVBQUUsMEJBQTBCO0lBQy9CLENBQUMsRUFBRSwwQkFBMEI7SUFDN0IsTUFBTSxFQUFFLDJCQUEyQjtJQUNuQyxFQUFFLEVBQUUsMkJBQTJCO0lBQy9CLElBQUksRUFBRSw2QkFBNkI7SUFDbkMsVUFBVSxFQUFFLDZCQUE2QjtJQUN6QyxHQUFHLEVBQUUsMkJBQTJCO0lBQ2hDLE1BQU0sRUFBRSwrQ0FBK0M7SUFDdkQsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixVQUFVLEVBQUUsNkJBQTZCO0lBQ3pDLElBQUksRUFBRSxxREFBcUQ7Q0FDNUQsQ0FBQTtBQUVELGtHQUFrRztBQUNsRyxNQUFNLGFBQWEsR0FBRztJQUNwQixPQUFPLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDZixJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTTtRQUM5RyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFR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LEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTTtRQUMxSSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVM7UUFDMUksT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNO0tBQ3JFLENBQUM7SUFDRixHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDWCxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxT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LE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVU7UUFDMUcsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVE7UUFDcEcsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUTtRQUMxRyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTTtRQUM1RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRO1FBQ3RHLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7UUFDekcsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO0tBQzdELENBQUM7SUFDRixNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDZCxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJO1FBQ3RHLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTztRQUN0RCxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUztRQUNwRyxVQUFVLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVE7UUFDekgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNO1FBQ3hHLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU07UUFDNUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQzFHLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVO1FBQ2pILFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUTtRQUNoSCxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU87UUFDL0csV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU07UUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTztLQUNsQyxDQUFDO0lBQ0YsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ1YsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNO1FBQ3RHLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLO1FBQ3JHLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSztLQUMxQixDQUFDO0lBQ0YsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ1osR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVO1FBQzVHLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSztRQUM1RyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSztRQUN6RyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFP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RUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU87UUFDbEcsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQ3BHLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPO1FBQ3hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVc7S0FDcEYsQ0FBQztJQUNGLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNaLE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNO1FBQzNHLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVE7UUFDeEcsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTztRQUN6RyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTztLQUM1QyxDQUFDO0lBQ0YsVUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ2xCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTztRQUMzRyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUztRQUNoSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVk7UUFDL0csV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQzFHLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUs7UUFDNUcsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXO1FBQzlHLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPO0tBQ3RFLENBQUM7SUFDRixJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUU7Q0FDaEIsQ0FBQTtBQUVELE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDMUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTTtDQUNuRyxDQUFDLENBQUE7QUFDRixNQUFNLDBCQUEwQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUE7QUFFL0QscUdBQXFHO0FBQ3JHLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN0QyxJQUFJLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRixVQUFVLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDakcsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ1gsYUFBYSxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGFBQWE7UUFDakgsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLDBCQUEwQjtRQUN2Ryx3QkFBd0IsRUFBRSxpQkFBaUI7UUFDM0Msd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWU7UUFDMUgsY0FBYyxFQUFFLCtCQUErQixFQUFFLDhCQUE4QixFQUFFLHNDQUFzQztRQUN2SCxvQ0FBb0MsRUFBRSw4QkFBOEIsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCO1FBQ3ZILFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUseUJBQXlCO1FBQ2pILFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE9BQU87UUFDbEgsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxXQUFXO1FBQ3pILGNBQWMsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsMEJBQTBCO1FBQ25ILFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCO1FBQzNHLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQjtRQUNyRyxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxrQ0FBa0M7UUFDaEYsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0I7UUFDakgsWUFBWSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxjQUFjO1FBQ2xILGlCQUFpQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSwwQkFBMEI7UUFDekgsaUNBQWlDO1FBQ2pDLDRCQUE0QixFQUFFLHlCQUF5QixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQjtRQUN6Ryx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCO1FBQ3pHLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLHdCQUF3QjtRQUN2SCxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEI7UUFDbkgscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCO1FBQ2xILHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQjtRQUMzRyx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLDJCQUEyQixFQUFFLHNCQUFzQjtRQUM1RyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsY0FBYztRQUN2SCxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSx3Q0FBd0MsRUFBRSxPQUFPO1FBQ3BILFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxhQUFhO1FBQ2pFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYTtRQUMxRyxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVk7UUFDdkgsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLG9CQUFvQjtRQUN0SCwwQkFBMEIsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxlQUFlO0tBQ3hHLENBQUM7SUFDRixJQUFJLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDWixlQUFlLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUs7UUFDdkgsVUFBVSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxPQUFPO1FBQ2hILFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTO1FBQ2hILFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUTtRQUNwSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxRQUFRO1FBQzlHLGFBQWEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRO1FBQ3JILGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWU7UUFDM0gsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsYUFBYTtRQUN6SCxhQUFhLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxTQUFTO1FBQy9HLG1CQUFtQjtLQUNwQixDQUFDO0lBQ0YsVUFBVSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7Q0FDbEksQ0FBQyxDQUFBO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRO0lBQ3JFLElBQUksT0FBTyxJQUFJLElBQUksUUFBUTtRQUFFLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBRTVGLE1BQU0sWUFBWSxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ2xFLE1BQU0sY0FBYyxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO0lBRTdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDbkcsUUFBUSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUk7UUFDdEQsUUFBUSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDdkMsUUFBUSxJQUFJLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUM3QyxRQUFRLElBQUksS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztRQUMzQyxRQUFRLElBQUksTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQzdDLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2xGLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN2RixxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQUk7SUFDaEMsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2xFLENBQUMsc01BQXNNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsTixDQUFDLCtEQUErRCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUMvRSxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRO0lBQzVFLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBRXhELE1BQU0sd0JBQXdCLEdBQUcsUUFBUSxJQUFJLFlBQVksSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFBO0lBQ3BHLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxJQUFJLEtBQUssSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRO1FBQ3JFLENBQUMsQ0FBQyxJQUFJLElBQUksV0FBVyxJQUFJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLElBQUksbUJBQW1CLElBQUksSUFBSSxJQUFJLGVBQWUsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDMUgsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLElBQUksTUFBTSxJQUFJLE9BQU8sSUFBSSxJQUFJLFFBQVEsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWxHLElBQUksd0JBQXdCLElBQUksa0JBQWtCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN6RSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVE7SUFDbkUsSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuRSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3ZGLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUNsRSxNQUFNLGNBQWMsR0FBRyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtJQUU3RCxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDdEcscUJBQXFCLENBQUMsUUFBUSxFQUFFLDJCQUEyQixJQUFJLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUMvRSxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQUk7SUFDbEMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDcEYsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBSTtJQUNuQyxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUE7QUFDaEgsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBSTtJQUNwQyxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUE7QUFDbEgsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBSTtJQUNyQyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQ2hILENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtBQUNwQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFJO0lBQ25DLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN4RSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUE7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge3Vuc3VwcG9ydGVkQ2FwYWJpbGl0eX0gZnJvbSBcIi4uL2RpYWdub3N0aWMuanNcIlxuXG4vKiogQHR5cGUge1JlY29yZDxFeGNsdWRlPGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkJhY2tlbmRMYW5ndWFnZSwgXCJpb3NcIj4sIFJlZ0V4cD59ICovXG5jb25zdCBpZGVudGlmaWVyUGF0dGVybnMgPSB7XG4gIGFuZHJvaWQ6IC9eKD86X3xcXHB7TH0pKD86X3xcXHB7TH18XFxwe05kfSkqJC91LFxuICBkYXJ0OiAvXig/Ol98XFxwe0x9KSg/Ol98XFxwe0x9fFxccHtOZH0pKiQvdSxcbiAga290bGluOiAvXig/Ol98XFxwe0x9KSg/Ol98XFxwe0x9fFxccHtOZH0pKiQvdSxcbiAgc3dpZnQ6IC9eKD86X3xcXHB7WElEX1N0YXJ0fSkoPzpffFxccHtYSURfQ29udGludWV9KSokL3UsXG4gIHJ1c3Q6IC9eW0EtWmEtel9dW0EtWmEtejAtOV9dKiQvdSxcbiAgY3BwOiAvXltBLVphLXpdW0EtWmEtejAtOV9dKiQvdSxcbiAgYzogL15bQS1aYS16XVtBLVphLXowLTlfXSokL3UsXG4gIGNzaGFycDogL15bQS1aYS16X11bQS1aYS16MC05X10qJC91LFxuICBnbzogL15bQS1aYS16X11bQS1aYS16MC05X10qJC91LFxuICBqYXZhOiAvXltBLVphLXpfJF1bQS1aYS16MC05XyRdKiQvdSxcbiAgamF2YXNjcmlwdDogL15bQS1aYS16XyRdW0EtWmEtejAtOV8kXSokL3UsXG4gIHBocDogL15bQS1aYS16X11bQS1aYS16MC05X10qJC91LFxuICBweXRob246IC9eKD86X3xcXHB7WElEX1N0YXJ0fSkoPzpffFxccHtYSURfQ29udGludWV9KSokL3UsXG4gIHJ1Ynk6IC9eW2Etel9dW0EtWmEtejAtOV9dKiQvdSxcbiAgdHlwZXNjcmlwdDogL15bQS1aYS16XyRdW0EtWmEtejAtOV8kXSokL3UsXG4gIHdhc206IC9eKD86WyRfXXxcXHB7WElEX1N0YXJ0fSkoPzpbJF9dfFxccHtYSURfQ29udGludWV9KSokL3Vcbn1cblxuLyoqIEB0eXBlIHtSZWNvcmQ8RXhjbHVkZTxpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5CYWNrZW5kTGFuZ3VhZ2UsIFwiaW9zXCI+LCBTZXQ8c3RyaW5nPj59ICovXG5jb25zdCByZXNlcnZlZFdvcmRzID0ge1xuICBhbmRyb2lkOiBuZXcgU2V0KFtcbiAgICBcImFzXCIsIFwiYnJlYWtcIiwgXCJjbGFzc1wiLCBcImNvbnRpbnVlXCIsIFwiZG9cIiwgXCJlbHNlXCIsIFwiZmFsc2VcIiwgXCJmb3JcIiwgXCJmdW5cIiwgXCJpZlwiLCBcImluXCIsIFwiaW50ZXJmYWNlXCIsIFwiaXNcIiwgXCJudWxsXCIsXG4gICAgXCJvYmplY3RcIiwgXCJwYWNrYWdlXCIsIFwicmV0dXJuXCIsIFwic3VwZXJcIiwgXCJ0aGlzXCIsIFwidGhyb3dcIiwgXCJ0cnVlXCIsIFwidHJ5XCIsIFwidHlwZWFsaWFzXCIsIFwidHlwZW9mXCIsIFwidmFsXCIsIFwidmFyXCIsIFwid2hlblwiLFxuICAgIFwid2hpbGVcIiwgXCJfXCIsIFwibWFpblwiLCBcInByaW50bG5cIiwgXCJMb25nXCIsIFwiQm9vbGVhblwiLCBcIlN0cmluZ1wiLCBcIk1hdGhcIiwgXCJBcml0aG1ldGljRXhjZXB0aW9uXCJcbiAgXSksXG4gIGRhcnQ6IG5ldyBTZXQoW1xuICAgIFwiRnVuY3Rpb25cIiwgXCJOZXZlclwiLCBcIk9iamVjdFwiLCBcIlJhbmdlRXJyb3JcIiwgXCJTdHJpbmdcIiwgXCJhYnN0cmFjdFwiLCBcImFzXCIsIFwiYXNzZXJ0XCIsIFwiYXN5bmNcIiwgXCJhd2FpdFwiLCBcImJhc2VcIixcbiAgICBcImJvb2xcIiwgXCJicmVha1wiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNsYXNzXCIsIFwiY29uc3RcIiwgXCJjb250aW51ZVwiLCBcImNvdmFyaWFudFwiLCBcImRlZmF1bHRcIiwgXCJkZWZlcnJlZFwiLCBcImRvXCIsXG4gICAgXCJkb3VibGVcIiwgXCJkeW5hbWljXCIsIFwiZWxzZVwiLCBcImVudW1cIiwgXCJleHBvcnRcIiwgXCJleHRlbmRzXCIsIFwiZXh0ZW5zaW9uXCIsIFwiZXh0ZXJuYWxcIiwgXCJmYWN0b3J5XCIsIFwiZmFsc2VcIiwgXCJmaW5hbFwiLFxuICAgIFwiZmluYWxseVwiLCBcImZvclwiLCBcImdldFwiLCBcImhpZGVcIiwgXCJpZlwiLCBcImltcGxlbWVudHNcIiwgXCJpbXBvcnRcIiwgXCJpblwiLCBcImludFwiLCBcImludGVyZmFjZVwiLCBcImlzXCIsIFwibGF0ZVwiLCBcImxpYnJhcnlcIixcbiAgICBcIm1haW5cIiwgXCJtaXhpblwiLCBcIm5hdGl2ZVwiLCBcIm5ld1wiLCBcIm51bGxcIiwgXCJudW1cIiwgXCJvZlwiLCBcIm9uXCIsIFwib3BlcmF0b3JcIiwgXCJwYXJ0XCIsIFwicHJpbnRcIiwgXCJyZXF1aXJlZFwiLCBcInJldGhyb3dcIixcbiAgICBcInJldHVyblwiLCBcInNlYWxlZFwiLCBcInNldFwiLCBcInNob3dcIiwgXCJzdGF0aWNcIiwgXCJzdXBlclwiLCBcInN3aXRjaFwiLCBcInN5bmNcIiwgXCJ0aGlzXCIsIFwidGhyb3dcIiwgXCJ0cnVlXCIsIFwidHJ5XCIsIFwidHlwZWRlZlwiLFxuICAgIFwidmFyXCIsIFwidm9pZFwiLCBcIndoZW5cIiwgXCJ3aGlsZVwiLCBcIndpdGhcIiwgXCJ5aWVsZFwiLCBcIkJpZ0ludFwiLCBcIl9cIlxuICBdKSxcbiAga290bGluOiBuZXcgU2V0KFtcbiAgICBcImFzXCIsIFwiYnJlYWtcIiwgXCJjbGFzc1wiLCBcImNvbnRpbnVlXCIsIFwiZG9cIiwgXCJlbHNlXCIsIFwiZmFsc2VcIiwgXCJmb3JcIiwgXCJmdW5cIiwgXCJpZlwiLCBcImluXCIsIFwiaW50ZXJmYWNlXCIsIFwiaXNcIiwgXCJudWxsXCIsXG4gICAgXCJvYmplY3RcIiwgXCJwYWNrYWdlXCIsIFwicmV0dXJuXCIsIFwic3VwZXJcIiwgXCJ0aGlzXCIsIFwidGhyb3dcIiwgXCJ0cnVlXCIsIFwidHJ5XCIsIFwidHlwZWFsaWFzXCIsIFwidHlwZW9mXCIsIFwidmFsXCIsIFwidmFyXCIsIFwid2hlblwiLFxuICAgIFwid2hpbGVcIiwgXCJfXCIsIFwibWFpblwiLCBcInByaW50bG5cIiwgXCJMb25nXCIsIFwiQm9vbGVhblwiLCBcIlN0cmluZ1wiLCBcIk1hdGhcIiwgXCJBcml0aG1ldGljRXhjZXB0aW9uXCJcbiAgXSksXG4gIHN3aWZ0OiBuZXcgU2V0KFtcbiAgICBcIkFueVwiLCBcIlNlbGZcIiwgXCJUeXBlXCIsIFwiUHJvdG9jb2xcIiwgXCJhY3RvclwiLCBcImFueVwiLCBcImFzXCIsIFwiYXNzb2NpYXRlZHR5cGVcIiwgXCJhc3NvY2lhdGl2aXR5XCIsIFwiYXN5bmNcIiwgXCJhd2FpdFwiLCBcImJvcnJvd2luZ1wiLFxuICAgIFwiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjbGFzc1wiLCBcImNvbnN1bWVcIiwgXCJjb25zdW1pbmdcIiwgXCJjb250aW51ZVwiLCBcImNvbnZlbmllbmNlXCIsIFwiY29weVwiLCBcImRlZmF1bHRcIiwgXCJkZWZlclwiLCBcImRlaW5pdFwiLFxuICAgIFwiZGlkU2V0XCIsIFwiZGlzdHJpYnV0ZWRcIiwgXCJkb1wiLCBcImR5bmFtaWNcIiwgXCJlbHNlXCIsIFwiZW51bVwiLCBcImV4dGVuc2lvblwiLCBcImZhbGx0aHJvdWdoXCIsIFwiZmFsc2VcIiwgXCJmaWxlcHJpdmF0ZVwiLCBcImZpbmFsXCIsIFwiZm9yXCIsXG4gICAgXCJmdW5jXCIsIFwiZ2V0XCIsIFwiZ3VhcmRcIiwgXCJpZlwiLCBcImltcG9ydFwiLCBcImluXCIsIFwiaW5kaXJlY3RcIiwgXCJpbmZpeFwiLCBcImluaXRcIiwgXCJpbm91dFwiLCBcImludGVybmFsXCIsIFwiaXNcIiwgXCJpc29sYXRlZFwiLCBcImxhenlcIixcbiAgICBcImxldFwiLCBcIm1hY3JvXCIsIFwibXV0YXRpbmdcIiwgXCJuaWxcIiwgXCJub25pc29sYXRlZFwiLCBcIm5vbm11dGF0aW5nXCIsIFwib3BlblwiLCBcIm9wZXJhdG9yXCIsIFwib3B0aW9uYWxcIiwgXCJvdmVycmlkZVwiLCBcInBhY2thZ2VcIixcbiAgICBcInBvc3RmaXhcIiwgXCJwcmVjZWRlbmNlXCIsIFwicHJlY2VkZW5jZWdyb3VwXCIsIFwicHJlZml4XCIsIFwicHJpdmF0ZVwiLCBcInByb3RvY29sXCIsIFwicHVibGljXCIsIFwicmVwZWF0XCIsIFwicmVxdWlyZWRcIiwgXCJyZXRocm93c1wiLCBcInJldHVyblwiLFxuICAgIFwic2FmZVwiLCBcInNlbGZcIiwgXCJzZW5kaW5nXCIsIFwic2V0XCIsIFwic29tZVwiLCBcInN0YXRpY1wiLCBcInN0cnVjdFwiLCBcInN1YnNjcmlwdFwiLCBcInN1cGVyXCIsIFwic3dpdGNoXCIsIFwidGhyb3dzXCIsIFwidHJ1ZVwiLCBcInRyeVwiLFxuICAgIFwidHlwZWFsaWFzXCIsIFwidW5vd25lZFwiLCBcInVuc2FmZVwiLCBcInZhclwiLCBcIndlYWtcIiwgXCJ3aGVyZVwiLCBcIndoaWxlXCIsIFwid2lsbFNldFwiLCBcInlpZWxkXCIsIFwiX1wiLCBcIkJvb2xcIiwgXCJJbnRcIiwgXCJJbnQ2NFwiLCBcIlN0cmluZ1wiLFxuICAgIFwiU3dpZnRcIiwgXCJtYWluXCIsIFwicHJpbnRcIlxuICBdKSxcbiAgcnVzdDogbmV3IFNldChbXG4gICAgXCJhc1wiLCBcImFzeW5jXCIsIFwiYXdhaXRcIiwgXCJicmVha1wiLCBcImNvbnN0XCIsIFwiY29udGludWVcIiwgXCJjcmF0ZVwiLCBcImR5blwiLCBcImVsc2VcIiwgXCJlbnVtXCIsIFwiZXh0ZXJuXCIsIFwiZmFsc2VcIiwgXCJmblwiLCBcImZvclwiLCBcImlmXCIsIFwiaW1wbFwiLCBcImluXCIsXG4gICAgXCJsZXRcIiwgXCJsb29wXCIsIFwibWF0Y2hcIiwgXCJtb2RcIiwgXCJtb3ZlXCIsIFwibXV0XCIsIFwicHViXCIsIFwicmVmXCIsIFwicmV0dXJuXCIsIFwic2VsZlwiLCBcIlNlbGZcIiwgXCJzdGF0aWNcIiwgXCJzdHJ1Y3RcIiwgXCJzdXBlclwiLCBcInRyYWl0XCIsIFwidHJ1ZVwiLCBcInR5cGVcIixcbiAgICBcInVuc2FmZVwiLCBcInVzZVwiLCBcIndoZXJlXCIsIFwid2hpbGVcIiwgXCJhYnN0cmFjdFwiLCBcImJlY29tZVwiLCBcImJveFwiLCBcImRvXCIsIFwiZmluYWxcIiwgXCJtYWNyb1wiLCBcIm92ZXJyaWRlXCIsIFwicHJpdlwiLCBcInR5cGVvZlwiLCBcInVuc2l6ZWRcIiwgXCJ2aXJ0dWFsXCIsXG4gICAgXCJ5aWVsZFwiLCBcInRyeVwiLCBcInVuaW9uXCIsIFwiX1wiLCBcIm1haW5cIiwgXCJTdHJpbmdcIiwgXCJzdGRcIiwgXCJpNjRcIiwgXCJib29sXCJcbiAgXSksXG4gIGNwcDogbmV3IFNldChbXG4gICAgXCJhbGlnbmFzXCIsIFwiYWxpZ25vZlwiLCBcImFuZFwiLCBcImFuZF9lcVwiLCBcImFzbVwiLCBcImF1dG9cIiwgXCJiaXRhbmRcIiwgXCJiaXRvclwiLCBcImJvb2xcIiwgXCJicmVha1wiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNoYXJcIiwgXCJjaGFyOF90XCIsIFwiY2hhcjE2X3RcIiwgXCJjaGFyMzJfdFwiLCBcImNsYXNzXCIsIFwiY29tcGxcIiwgXCJjb25jZXB0XCIsIFwiY29uc3RcIiwgXCJjb25zdGV2YWxcIiwgXCJjb25zdGV4cHJcIiwgXCJjb25zdGluaXRcIiwgXCJjb25zdF9jYXN0XCIsIFwiY29udGludWVcIiwgXCJjb19hd2FpdFwiLCBcImNvX3JldHVyblwiLCBcImNvX3lpZWxkXCIsIFwiZGVjbHR5cGVcIiwgXCJkZWZhdWx0XCIsIFwiZGVsZXRlXCIsIFwiZG9cIiwgXCJkb3VibGVcIiwgXCJkeW5hbWljX2Nhc3RcIiwgXCJlbHNlXCIsIFwiZW51bVwiLCBcImV4cGxpY2l0XCIsIFwiZXhwb3J0XCIsIFwiZXh0ZXJuXCIsIFwiZmFsc2VcIiwgXCJmbG9hdFwiLCBcImZvclwiLCBcImZyaWVuZFwiLCBcImdvdG9cIiwgXCJpZlwiLCBcImlubGluZVwiLCBcImludFwiLCBcImxvbmdcIiwgXCJtdXRhYmxlXCIsIFwibmFtZXNwYWNlXCIsIFwibmV3XCIsIFwibm9leGNlcHRcIiwgXCJub3RcIiwgXCJub3RfZXFcIiwgXCJudWxscHRyXCIsIFwib3BlcmF0b3JcIiwgXCJvclwiLCBcIm9yX2VxXCIsIFwicHJpdmF0ZVwiLCBcInByb3RlY3RlZFwiLCBcInB1YmxpY1wiLCBcInJlZ2lzdGVyXCIsIFwicmVpbnRlcnByZXRfY2FzdFwiLCBcInJlcXVpcmVzXCIsIFwicmV0dXJuXCIsIFwic2hvcnRcIiwgXCJzaWduZWRcIiwgXCJzaXplb2ZcIiwgXCJzdGF0aWNcIiwgXCJzdGF0aWNfYXNzZXJ0XCIsIFwic3RhdGljX2Nhc3RcIiwgXCJzdHJ1Y3RcIiwgXCJzd2l0Y2hcIiwgXCJ0ZW1wbGF0ZVwiLCBcInRoaXNcIiwgXCJ0aHJlYWRfbG9jYWxcIiwgXCJ0aHJvd1wiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ0eXBlZGVmXCIsIFwidHlwZWlkXCIsIFwidHlwZW5hbWVcIiwgXCJ1bmlvblwiLCBcInVuc2lnbmVkXCIsIFwidXNpbmdcIiwgXCJ2aXJ0dWFsXCIsIFwidm9pZFwiLCBcInZvbGF0aWxlXCIsIFwid2NoYXJfdFwiLCBcIndoaWxlXCIsIFwieG9yXCIsIFwieG9yX2VxXCIsIFwic3RkXCIsIFwic3RyaW5nXCIsIFwibnVtZXJpY19saW1pdHNcIixcbiAgICAvLyBUaGUgcXVhbGlmaWVkIGxpYnN0ZGMrKyA8c3RyaW5nPiBpbmNsdWRlIGNoYWluIGFsc28gZXhwb3NlcyB0aGVzZSBnbG9iYWwgbmFtZXMuXG4gICAgXCJXRU9GXCIsIFwid2ludF90XCJcbiAgXSksXG4gIGM6IG5ldyBTZXQoW1xuICAgIFwiYXV0b1wiLCBcImJyZWFrXCIsIFwiY2FzZVwiLCBcImNoYXJcIiwgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsIFwiZGVmYXVsdFwiLCBcImRvXCIsIFwiZG91YmxlXCIsIFwiZWxzZVwiLCBcImVudW1cIiwgXCJleHRlcm5cIixcbiAgICBcImZsb2F0XCIsIFwiZm9yXCIsIFwiZ290b1wiLCBcImlmXCIsIFwiaW5saW5lXCIsIFwiaW50XCIsIFwibG9uZ1wiLCBcInJlZ2lzdGVyXCIsIFwicmVzdHJpY3RcIiwgXCJyZXR1cm5cIiwgXCJzaG9ydFwiLCBcInNpZ25lZFwiLFxuICAgIFwic2l6ZW9mXCIsIFwic3RhdGljXCIsIFwic3RydWN0XCIsIFwic3dpdGNoXCIsIFwidHlwZWRlZlwiLCBcInVuaW9uXCIsIFwidW5zaWduZWRcIiwgXCJ2b2lkXCIsIFwidm9sYXRpbGVcIiwgXCJ3aGlsZVwiLFxuICAgIFwiYm9vbFwiLCBcInRydWVcIiwgXCJmYWxzZVwiLCBcIlRSVUVcIiwgXCJGQUxTRVwiLCBcImludDY0X3RcIiwgXCJ1aW50NjRfdFwiLCBcInNpemVfdFwiLCBcInB0cmRpZmZfdFwiLCBcIm1haW5cIiwgXCJOVUxMXCIsIFwiSU5UNjRfQ1wiLCBcIlVJTlQ2NF9DXCIsXG4gICAgXCJJTlQ2NF9NSU5cIiwgXCJJTlQ2NF9NQVhcIiwgXCJQVFJESUZGX01BWFwiLCBcIkNIQVJfQklUXCIsIFwic3RkaW5cIiwgXCJzdGRvdXRcIiwgXCJzdGRlcnJcIiwgXCJtYWxsb2NcIiwgXCJmcmVlXCIsIFwiZXhpdFwiLFxuICAgIFwiZndyaXRlXCIsIFwiZmZsdXNoXCIsIFwibWVtY3B5XCIsIFwibWVtY21wXCIsIFwiRklMRVwiLCBcImZwb3NfdFwiLCBcImRpdl90XCIsIFwibGRpdl90XCIsIFwibGxkaXZfdFwiLCBcIndjaGFyX3RcIiwgXCJtYXhfYWxpZ25fdFwiLFxuICAgIFwib2Zmc2V0b2ZcIiwgXCJhbGlnbmFzXCIsIFwiYWxpZ25vZlwiLCBcIm5vcmV0dXJuXCIsIFwidHJ1ZVwiLCBcImZhbHNlXCIsIFwiYXNzZXJ0XCIsIFwic3RhdGljX2Fzc2VydFwiLCBcImVycm5vXCIsXG4gICAgXCJFT0ZcIiwgXCJCVUZTSVpcIiwgXCJGT1BFTl9NQVhcIiwgXCJGSUxFTkFNRV9NQVhcIiwgXCJMX3RtcG5hbVwiLCBcIlNFRUtfQ1VSXCIsIFwiU0VFS19FTkRcIiwgXCJTRUVLX1NFVFwiLCBcIlRNUF9NQVhcIixcbiAgICBcIkVYSVRfRkFJTFVSRVwiLCBcIkVYSVRfU1VDQ0VTU1wiLCBcIk1CX0NVUl9NQVhcIiwgXCJNQl9MRU5fTUFYXCIsIFwiUkFORF9NQVhcIixcbiAgICBcInJlbW92ZVwiLCBcInJlbmFtZVwiLCBcInRtcGZpbGVcIiwgXCJ0bXBuYW1cIiwgXCJmY2xvc2VcIiwgXCJmb3BlblwiLCBcImZyZW9wZW5cIiwgXCJzZXRidWZcIiwgXCJzZXR2YnVmXCIsXG4gICAgXCJmcHJpbnRmXCIsIFwiZnNjYW5mXCIsIFwicHJpbnRmXCIsIFwic2NhbmZcIiwgXCJzbnByaW50ZlwiLCBcInNwcmludGZcIiwgXCJzc2NhbmZcIiwgXCJ2ZnByaW50ZlwiLCBcInZmc2NhbmZcIiwgXCJ2cHJpbnRmXCIsXG4gICAgXCJ2c2NhbmZcIiwgXCJ2c25wcmludGZcIiwgXCJ2c3ByaW50ZlwiLCBcInZzc2NhbmZcIiwgXCJmZ2V0Y1wiLCBcImZnZXRzXCIsIFwiZnB1dGNcIiwgXCJmcHV0c1wiLCBcImdldGNcIiwgXCJnZXRjaGFyXCIsXG4gICAgXCJwdXRjXCIsIFwicHV0Y2hhclwiLCBcInB1dHNcIiwgXCJ1bmdldGNcIiwgXCJmcmVhZFwiLCBcImZnZXRwb3NcIiwgXCJmc2Vla1wiLCBcImZzZXRwb3NcIiwgXCJmdGVsbFwiLCBcInJld2luZFwiLCBcImNsZWFyZXJyXCIsXG4gICAgXCJmZW9mXCIsIFwiZmVycm9yXCIsIFwicGVycm9yXCIsIFwiYXRvZlwiLCBcImF0b2lcIiwgXCJhdG9sXCIsIFwiYXRvbGxcIiwgXCJzdHJ0b2RcIiwgXCJzdHJ0b2ZcIiwgXCJzdHJ0b2xkXCIsIFwic3RydG9sXCIsXG4gICAgXCJzdHJ0b2xsXCIsIFwic3RydG91bFwiLCBcInN0cnRvdWxsXCIsIFwicmFuZFwiLCBcInNyYW5kXCIsIFwiYWxpZ25lZF9hbGxvY1wiLCBcImNhbGxvY1wiLCBcInJlYWxsb2NcIiwgXCJhYm9ydFwiLCBcImF0ZXhpdFwiLFxuICAgIFwiYXRfcXVpY2tfZXhpdFwiLCBcInF1aWNrX2V4aXRcIiwgXCJnZXRlbnZcIiwgXCJzeXN0ZW1cIiwgXCJic2VhcmNoXCIsIFwicXNvcnRcIiwgXCJhYnNcIiwgXCJsYWJzXCIsIFwibGxhYnNcIiwgXCJkaXZcIiwgXCJsZGl2XCIsXG4gICAgXCJsbGRpdlwiLCBcIm1ibGVuXCIsIFwibWJ0b3djXCIsIFwid2N0b21iXCIsIFwibWJzdG93Y3NcIiwgXCJ3Y3N0b21ic1wiLCBcIm1lbW1vdmVcIiwgXCJzdHJjcHlcIiwgXCJzdHJuY3B5XCIsIFwic3RyY2F0XCIsXG4gICAgXCJzdHJuY2F0XCIsIFwic3RyY21wXCIsIFwic3RyY29sbFwiLCBcInN0cm5jbXBcIiwgXCJzdHJ4ZnJtXCIsIFwibWVtY2hyXCIsIFwic3RyY2hyXCIsIFwic3RyY3NwblwiLCBcInN0cnBicmtcIiwgXCJzdHJyY2hyXCIsXG4gICAgXCJzdHJzcG5cIiwgXCJzdHJzdHJcIiwgXCJzdHJ0b2tcIiwgXCJtZW1zZXRcIiwgXCJzdHJlcnJvclwiLCBcInN0cmxlblwiXG4gIF0pLFxuICBjc2hhcnA6IG5ldyBTZXQoW1xuICAgIFwiX19hcmdsaXN0XCIsIFwiX19tYWtlcmVmXCIsIFwiX19yZWZ0eXBlXCIsIFwiX19yZWZ2YWx1ZVwiLCBcImFic3RyYWN0XCIsIFwiYWRkXCIsIFwiYWxpYXNcIiwgXCJhbGxvd3NcIiwgXCJhbmRcIiwgXCJhc1wiLFxuICAgIFwiYXNjZW5kaW5nXCIsIFwiYXN5bmNcIiwgXCJhd2FpdFwiLCBcImJhc2VcIiwgXCJib29sXCIsIFwiYnJlYWtcIixcbiAgICBcImJ5XCIsIFwiYnl0ZVwiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNoYXJcIiwgXCJjaGVja2VkXCIsIFwiY2xhc3NcIiwgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsIFwiZGVjaW1hbFwiLCBcImRlZmF1bHRcIixcbiAgICBcImRlbGVnYXRlXCIsIFwiZGVzY2VuZGluZ1wiLCBcImRvXCIsIFwiZG91YmxlXCIsIFwiZHluYW1pY1wiLCBcImVsc2VcIiwgXCJlbnVtXCIsIFwiZXF1YWxzXCIsIFwiZXZlbnRcIiwgXCJleHBsaWNpdFwiLCBcImV4dGVuc2lvblwiLCBcImV4dGVyblwiLFxuICAgIFwiZmFsc2VcIiwgXCJmaWVsZFwiLCBcImZpbGVcIiwgXCJmaW5hbGx5XCIsIFwiZml4ZWRcIiwgXCJmbG9hdFwiLCBcImZvclwiLCBcImZvcmVhY2hcIiwgXCJmcm9tXCIsIFwiZ2V0XCIsIFwiZ2xvYmFsXCIsIFwiZ290b1wiLFxuICAgIFwiZ3JvdXBcIiwgXCJpZlwiLCBcImltcGxpY2l0XCIsIFwiaW5cIiwgXCJpbml0XCIsIFwiaW50XCIsIFwiaW50ZXJmYWNlXCIsIFwiaW50ZXJuYWxcIiwgXCJpbnRvXCIsIFwiaXNcIiwgXCJqb2luXCIsIFwibGV0XCIsIFwibG9ja1wiLFxuICAgIFwibG9uZ1wiLCBcIm1hbmFnZWRcIiwgXCJuYW1lb2ZcIiwgXCJuYW1lc3BhY2VcIiwgXCJuZXdcIiwgXCJuaW50XCIsIFwibm90XCIsIFwibm90bnVsbFwiLCBcIm51bGxcIiwgXCJudWludFwiLCBcIm9iamVjdFwiLCBcIm9uXCIsXG4gICAgXCJvcGVyYXRvclwiLCBcIm9yXCIsIFwib3JkZXJieVwiLCBcIm91dFwiLCBcIm92ZXJyaWRlXCIsIFwicGFyYW1zXCIsIFwicGFydGlhbFwiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwdWJsaWNcIiwgXCJyZWFkb25seVwiLFxuICAgIFwicmVjb3JkXCIsIFwicmVmXCIsIFwicmVtb3ZlXCIsIFwicmVxdWlyZWRcIiwgXCJyZXR1cm5cIiwgXCJzYnl0ZVwiLCBcInNjb3BlZFwiLCBcInNlYWxlZFwiLCBcInNlbGVjdFwiLCBcInNldFwiLCBcInNob3J0XCIsIFwic2l6ZW9mXCIsXG4gICAgXCJzdGFja2FsbG9jXCIsIFwic3RhdGljXCIsIFwic3RyaW5nXCIsIFwic3RydWN0XCIsIFwic3dpdGNoXCIsIFwidGhpc1wiLCBcInRocm93XCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInR5cGVvZlwiLCBcInVpbnRcIiwgXCJ1bG9uZ1wiLFxuICAgIFwidW5jaGVja2VkXCIsIFwidW5tYW5hZ2VkXCIsIFwidW5zYWZlXCIsIFwidXNob3J0XCIsIFwidXNpbmdcIiwgXCJ2YWx1ZVwiLCBcInZhclwiLCBcInZpcnR1YWxcIiwgXCJ2b2lkXCIsIFwidm9sYXRpbGVcIiwgXCJ3aGVuXCIsXG4gICAgXCJ3aGVyZVwiLCBcIndoaWxlXCIsIFwid2l0aFwiLCBcInlpZWxkXCJcbiAgXSksXG4gIGdvOiBuZXcgU2V0KFtcbiAgICBcIl9cIiwgXCJicmVha1wiLCBcImRlZmF1bHRcIiwgXCJmdW5jXCIsIFwiaW50ZXJmYWNlXCIsIFwic2VsZWN0XCIsIFwiY2FzZVwiLCBcImRlZmVyXCIsIFwiZ29cIiwgXCJtYXBcIiwgXCJzdHJ1Y3RcIiwgXCJjaGFuXCIsXG4gICAgXCJlbHNlXCIsIFwiZ290b1wiLCBcInBhY2thZ2VcIiwgXCJzd2l0Y2hcIiwgXCJjb25zdFwiLCBcImZhbGx0aHJvdWdoXCIsIFwiaWZcIiwgXCJyYW5nZVwiLCBcInR5cGVcIiwgXCJjb250aW51ZVwiLCBcImZvclwiLFxuICAgIFwiaW1wb3J0XCIsIFwicmV0dXJuXCIsIFwidmFyXCJcbiAgXSksXG4gIGphdmE6IG5ldyBTZXQoW1xuICAgIFwiX1wiLCBcImFic3RyYWN0XCIsIFwiYXNzZXJ0XCIsIFwiYm9vbGVhblwiLCBcImJyZWFrXCIsIFwiYnl0ZVwiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNoYXJcIiwgXCJjbGFzc1wiLCBcImNvbnN0XCIsIFwiY29udGludWVcIixcbiAgICBcImRlZmF1bHRcIiwgXCJkb1wiLCBcImRvdWJsZVwiLCBcImVsc2VcIiwgXCJlbnVtXCIsIFwiZXhwb3J0c1wiLCBcImV4dGVuZHNcIiwgXCJmYWxzZVwiLCBcImZpbmFsXCIsIFwiZmluYWxseVwiLCBcImZsb2F0XCIsIFwiZm9yXCIsXG4gICAgXCJnb3RvXCIsIFwiaWZcIiwgXCJpbXBsZW1lbnRzXCIsIFwiaW1wb3J0XCIsIFwiaW5zdGFuY2VvZlwiLCBcImludFwiLCBcImludGVyZmFjZVwiLCBcImxvbmdcIiwgXCJtb2R1bGVcIiwgXCJuYXRpdmVcIiwgXCJuZXdcIixcbiAgICBcIm5vbi1zZWFsZWRcIiwgXCJudWxsXCIsIFwib3BlblwiLCBcIm9wZW5zXCIsIFwicGFja2FnZVwiLCBcInBlcm1pdHNcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHJvdmlkZXNcIiwgXCJwdWJsaWNcIixcbiAgICBcInJlY29yZFwiLCBcInJlcXVpcmVzXCIsIFwicmV0dXJuXCIsIFwic2VhbGVkXCIsIFwic2hvcnRcIiwgXCJzdGF0aWNcIiwgXCJzdHJpY3RmcFwiLCBcInN1cGVyXCIsIFwic3dpdGNoXCIsIFwic3luY2hyb25pemVkXCIsXG4gICAgXCJ0aGlzXCIsIFwidGhyb3dcIiwgXCJ0aHJvd3NcIiwgXCJ0b1wiLCBcInRyYW5zaWVudFwiLCBcInRyYW5zaXRpdmVcIiwgXCJ0cnVlXCIsIFwidHJ5XCIsIFwidXNlc1wiLCBcInZhclwiLCBcInZvaWRcIiwgXCJ2b2xhdGlsZVwiLFxuICAgIFwid2hlblwiLCBcIndoaWxlXCIsIFwid2l0aFwiLCBcInlpZWxkXCJcbiAgXSksXG4gIGphdmFzY3JpcHQ6IG5ldyBTZXQoW1xuICAgIFwiYXdhaXRcIiwgXCJicmVha1wiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNsYXNzXCIsIFwiY29uc3RcIiwgXCJjb250aW51ZVwiLCBcImRlYnVnZ2VyXCIsIFwiZGVmYXVsdFwiLCBcImRlbGV0ZVwiLCBcImRvXCIsIFwiZWxzZVwiLFxuICAgIFwiZW51bVwiLCBcImV4cG9ydFwiLCBcImV4dGVuZHNcIiwgXCJmYWxzZVwiLCBcImZpbmFsbHlcIiwgXCJmb3JcIiwgXCJmdW5jdGlvblwiLCBcImlmXCIsIFwiaW1wbGVtZW50c1wiLCBcImltcG9ydFwiLCBcImluXCIsXG4gICAgXCJpbnN0YW5jZW9mXCIsIFwiaW50ZXJmYWNlXCIsIFwibGV0XCIsIFwibmV3XCIsIFwibnVsbFwiLCBcInBhY2thZ2VcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHVibGljXCIsIFwicmV0dXJuXCIsIFwic3RhdGljXCIsXG4gICAgXCJzdXBlclwiLCBcInN3aXRjaFwiLCBcInRoaXNcIiwgXCJ0aHJvd1wiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ0eXBlb2ZcIiwgXCJ2YXJcIiwgXCJ2b2lkXCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwieWllbGRcIlxuICBdKSxcbiAgcGhwOiBuZXcgU2V0KFtcbiAgICBcIl9faGFsdF9jb21waWxlclwiLCBcImFic3RyYWN0XCIsIFwiYW5kXCIsIFwiYXJyYXlcIiwgXCJhc1wiLCBcImJyZWFrXCIsIFwiY2FsbGFibGVcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjbGFzc1wiLCBcImNsb25lXCIsXG4gICAgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsIFwiZGVjbGFyZVwiLCBcImRlZmF1bHRcIiwgXCJkaWVcIiwgXCJkb1wiLCBcImVjaG9cIiwgXCJlbHNlXCIsIFwiZWxzZWlmXCIsIFwiZW1wdHlcIiwgXCJlbmRkZWNsYXJlXCIsXG4gICAgXCJlbmRmb3JcIiwgXCJlbmRmb3JlYWNoXCIsIFwiZW5kaWZcIiwgXCJlbmRzd2l0Y2hcIiwgXCJlbmR3aGlsZVwiLCBcImVudW1cIiwgXCJldmFsXCIsIFwiZXhpdFwiLCBcImV4dGVuZHNcIiwgXCJmYWxzZVwiLCBcImZpbmFsXCIsXG4gICAgXCJmaW5hbGx5XCIsIFwiZm5cIiwgXCJmb3JcIiwgXCJmb3JlYWNoXCIsIFwiZnJvbVwiLCBcImZ1bmN0aW9uXCIsIFwiZ2xvYmFsXCIsIFwiZ290b1wiLCBcImlmXCIsIFwiaW1wbGVtZW50c1wiLCBcImluY2x1ZGVcIixcbiAgICBcImluY2x1ZGVfb25jZVwiLCBcImluc3RhbmNlb2ZcIiwgXCJpbnN0ZWFkb2ZcIiwgXCJpbnRlcmZhY2VcIiwgXCJpc3NldFwiLCBcIml0ZXJhYmxlXCIsIFwibGlzdFwiLCBcIm1hdGNoXCIsIFwibWl4ZWRcIiwgXCJuYW1lc3BhY2VcIixcbiAgICBcIm5ldmVyXCIsIFwibmV3XCIsIFwibnVsbFwiLCBcIm9iamVjdFwiLCBcIm9yXCIsIFwicGFyZW50XCIsIFwicHJpbnRcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHVibGljXCIsIFwicmVhZG9ubHlcIiwgXCJyZXF1aXJlXCIsXG4gICAgXCJyZXF1aXJlX29uY2VcIiwgXCJyZXR1cm5cIiwgXCJzZWxmXCIsIFwic3RhdGljXCIsIFwic3dpdGNoXCIsIFwidGhyb3dcIiwgXCJ0cmFpdFwiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ1bnNldFwiLCBcInVzZVwiLCBcInZhclwiLFxuICAgIFwidm9pZFwiLCBcIndoaWxlXCIsIFwieG9yXCIsIFwieWllbGRcIlxuICBdKSxcbiAgcHl0aG9uOiBuZXcgU2V0KFtcbiAgICBcIkZhbHNlXCIsIFwiTm9uZVwiLCBcIlRydWVcIiwgXCJhbmRcIiwgXCJhc1wiLCBcImFzc2VydFwiLCBcImFzeW5jXCIsIFwiYXdhaXRcIiwgXCJib29sXCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2xhc3NcIixcbiAgICBcImNvbnRpbnVlXCIsIFwiZGVmXCIsIFwiZGVsXCIsIFwiZWxpZlwiLCBcImVsc2VcIiwgXCJleGNlcHRcIiwgXCJleGVjXCIsIFwiZmluYWxseVwiLCBcImZvclwiLCBcImZyb21cIiwgXCJnbG9iYWxcIiwgXCJpZlwiLFxuICAgIFwiaW1wb3J0XCIsIFwiaW5cIiwgXCJpbnRcIiwgXCJpc1wiLCBcImxhbWJkYVwiLCBcIm1hdGNoXCIsIFwibm9ubG9jYWxcIiwgXCJub3RcIiwgXCJvclwiLCBcInBhc3NcIiwgXCJwcmludFwiLFxuICAgIFwicmFpc2VcIiwgXCJyZXR1cm5cIiwgXCJzdHJcIiwgXCJ0cnlcIiwgXCJ0eXBlXCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwieWllbGRcIiwgXCJfXCIsIFwiX19kZWJ1Z19fXCJcbiAgXSksXG4gIHJ1Ynk6IG5ldyBTZXQoW1xuICAgIFwiQkVHSU5cIiwgXCJFTkRcIiwgXCJfX0VOQ09ESU5HX19cIiwgXCJfX0VORF9fXCIsIFwiX19GSUxFX19cIiwgXCJfX0xJTkVfX1wiLCBcImFsaWFzXCIsIFwiYW5kXCIsIFwiYmVnaW5cIiwgXCJicmVha1wiLCBcImNhc2VcIixcbiAgICBcImNsYXNzXCIsIFwiZGVmXCIsIFwiZGVmaW5lZD9cIiwgXCJkb1wiLCBcImVsc2VcIiwgXCJlbHNpZlwiLCBcImVuZFwiLCBcImVuc3VyZVwiLCBcImZhbHNlXCIsIFwiZm9yXCIsIFwiaWZcIiwgXCJpblwiLCBcIm1vZHVsZVwiLFxuICAgIFwibmV4dFwiLCBcIm5pbFwiLCBcIm5vdFwiLCBcIm9yXCIsIFwicmVkb1wiLCBcInJlc2N1ZVwiLCBcInJldHJ5XCIsIFwicmV0dXJuXCIsIFwic2VsZlwiLCBcInN1cGVyXCIsIFwidGhlblwiLCBcInRydWVcIiwgXCJ1bmRlZlwiLFxuICAgIFwidW5sZXNzXCIsIFwidW50aWxcIiwgXCJ3aGVuXCIsIFwid2hpbGVcIiwgXCJ5aWVsZFwiXG4gIF0pLFxuICB0eXBlc2NyaXB0OiBuZXcgU2V0KFtcbiAgICBcImFic3RyYWN0XCIsIFwiYW55XCIsIFwiYXNcIiwgXCJhc3NlcnRzXCIsIFwiYXN5bmNcIiwgXCJhd2FpdFwiLCBcImJvb2xlYW5cIiwgXCJicmVha1wiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNsYXNzXCIsIFwiY29uc3RcIixcbiAgICBcImNvbnN0cnVjdG9yXCIsIFwiY29udGludWVcIiwgXCJkZWJ1Z2dlclwiLCBcImRlY2xhcmVcIiwgXCJkZWZhdWx0XCIsIFwiZGVsZXRlXCIsIFwiZG9cIiwgXCJlbHNlXCIsIFwiZW51bVwiLCBcImV4cG9ydFwiLCBcImV4dGVuZHNcIixcbiAgICBcImZhbHNlXCIsIFwiZmluYWxseVwiLCBcImZvclwiLCBcImZyb21cIiwgXCJmdW5jdGlvblwiLCBcImdldFwiLCBcImlmXCIsIFwiaW1wbGVtZW50c1wiLCBcImltcG9ydFwiLCBcImluXCIsIFwiaW5mZXJcIiwgXCJpbnN0YW5jZW9mXCIsXG4gICAgXCJpbnRlcmZhY2VcIiwgXCJpc1wiLCBcImtleW9mXCIsIFwibGV0XCIsIFwibW9kdWxlXCIsIFwibmFtZXNwYWNlXCIsIFwibmV2ZXJcIiwgXCJuZXdcIiwgXCJudWxsXCIsIFwibnVtYmVyXCIsIFwib2JqZWN0XCIsIFwib2ZcIixcbiAgICBcIm92ZXJyaWRlXCIsIFwicGFja2FnZVwiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwdWJsaWNcIiwgXCJyZWFkb25seVwiLCBcInJlcXVpcmVcIiwgXCJyZXR1cm5cIiwgXCJzYXRpc2ZpZXNcIiwgXCJzZXRcIixcbiAgICBcInN0YXRpY1wiLCBcInN0cmluZ1wiLCBcInN1cGVyXCIsIFwic3dpdGNoXCIsIFwic3ltYm9sXCIsIFwidGhpc1wiLCBcInRocm93XCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInR5cGVcIiwgXCJ0eXBlb2ZcIiwgXCJ1bmRlZmluZWRcIixcbiAgICBcInVuaXF1ZVwiLCBcInVua25vd25cIiwgXCJ1c2luZ1wiLCBcInZhclwiLCBcInZvaWRcIiwgXCJ3aGlsZVwiLCBcIndpdGhcIiwgXCJ5aWVsZFwiXG4gIF0pLFxuICB3YXNtOiBuZXcgU2V0KClcbn1cblxuY29uc3QgcGhwSW52YWxpZFBhcmFtZXRlckJpbmRpbmdzID0gbmV3IFNldChbXG4gIFwiR0xPQkFMU1wiLCBcIl9DT09LSUVcIiwgXCJfRU5WXCIsIFwiX0ZJTEVTXCIsIFwiX0dFVFwiLCBcIl9QT1NUXCIsIFwiX1JFUVVFU1RcIiwgXCJfU0VSVkVSXCIsIFwiX1NFU1NJT05cIiwgXCJ0aGlzXCJcbl0pXG5jb25zdCBwaHBJbnZhbGlkQXNzaWduZWRCaW5kaW5ncyA9IG5ldyBTZXQoW1wiR0xPQkFMU1wiLCBcInRoaXNcIl0pXG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8UGFydGlhbDxSZWNvcmQ8aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuQmFja2VuZExhbmd1YWdlLCBTZXQ8c3RyaW5nPj4+Pn0gKi9cbmNvbnN0IHJlc2VydmVkVHlwZU5hbWVzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGphdmE6IG5ldyBTZXQoW1wiQm9vbGVhblwiLCBcIkludGVnZXJcIiwgXCJNYWluXCIsIFwiTWF0aFwiLCBcIk9iamVjdFwiLCBcIlN0cmluZ1wiLCBcIlN5c3RlbVwiXSksXG4gIGphdmFzY3JpcHQ6IG5ldyBTZXQoW1wiQXJyYXlcIiwgXCJCb29sZWFuXCIsIFwiTWFwXCIsIFwiTWF0aFwiLCBcIk51bWJlclwiLCBcIk9iamVjdFwiLCBcIlJlZmxlY3RcIiwgXCJTdHJpbmdcIl0pLFxuICBwaHA6IG5ldyBTZXQoW1xuICAgIFwiYWRkcmVzc2luZm9cIiwgXCJhbGxvd2R5bmFtaWNwcm9wZXJ0aWVzXCIsIFwiYXBwZW5kaXRlcmF0b3JcIiwgXCJhcmd1bWVudGNvdW50ZXJyb3JcIiwgXCJhcml0aG1ldGljZXJyb3JcIiwgXCJhcnJheWFjY2Vzc1wiLFxuICAgIFwiYXJyYXlpdGVyYXRvclwiLCBcImFycmF5b2JqZWN0XCIsIFwiYXNzZXJ0aW9uZXJyb3JcIiwgXCJhdHRyaWJ1dGVcIiwgXCJiYWNrZWRlbnVtXCIsIFwiYmFkZnVuY3Rpb25jYWxsZXhjZXB0aW9uXCIsXG4gICAgXCJiYWRtZXRob2RjYWxsZXhjZXB0aW9uXCIsIFwiY2FjaGluZ2l0ZXJhdG9yXCIsXG4gICAgXCJjYWxsYmFja2ZpbHRlcml0ZXJhdG9yXCIsIFwiY2xvc2VkZ2VuZXJhdG9yZXhjZXB0aW9uXCIsIFwiY2xvc3VyZVwiLCBcImNvbXBpbGVlcnJvclwiLCBcImNvdW50YWJsZVwiLCBcImRhdGVlcnJvclwiLCBcImRhdGVleGNlcHRpb25cIixcbiAgICBcImRhdGVpbnRlcnZhbFwiLCBcImRhdGVpbnZhbGlkb3BlcmF0aW9uZXhjZXB0aW9uXCIsIFwiZGF0ZWludmFsaWR0aW1lem9uZWV4Y2VwdGlvblwiLCBcImRhdGVtYWxmb3JtZWRpbnRlcnZhbHN0cmluZ2V4Y2VwdGlvblwiLFxuICAgIFwiZGF0ZW1hbGZvcm1lZHBlcmlvZHN0cmluZ2V4Y2VwdGlvblwiLCBcImRhdGVtYWxmb3JtZWRzdHJpbmdleGNlcHRpb25cIiwgXCJkYXRlb2JqZWN0ZXJyb3JcIiwgXCJkYXRlcGVyaW9kXCIsIFwiZGF0ZXJhbmdlZXJyb3JcIixcbiAgICBcImRhdGV0aW1lXCIsIFwiZGF0ZXRpbWVpbW11dGFibGVcIiwgXCJkYXRldGltZWludGVyZmFjZVwiLCBcImRhdGV0aW1lem9uZVwiLCBcImRlZmxhdGVjb250ZXh0XCIsIFwiZGVsYXllZHRhcmdldHZhbGlkYXRpb25cIixcbiAgICBcImRlcHJlY2F0ZWRcIiwgXCJkaXJlY3RvcnlcIiwgXCJkaXJlY3RvcnlpdGVyYXRvclwiLCBcImRpdmlzaW9uYnl6ZXJvZXJyb3JcIiwgXCJkb21haW5leGNlcHRpb25cIiwgXCJlbXB0eWl0ZXJhdG9yXCIsIFwiZXJyb3JcIixcbiAgICBcImVycm9yZXhjZXB0aW9uXCIsIFwiZXhjZXB0aW9uXCIsIFwiZmZpXCIsIFwiZmliZXJcIiwgXCJmaWJlcmVycm9yXCIsIFwiZmlsZXN5c3RlbWl0ZXJhdG9yXCIsIFwiZmlsdGVyaXRlcmF0b3JcIiwgXCJmaW5mb1wiLCBcImdlbmVyYXRvclwiLFxuICAgIFwiZ2xvYml0ZXJhdG9yXCIsIFwiaGFzaGNvbnRleHRcIiwgXCJpbmZpbml0ZWl0ZXJhdG9yXCIsIFwiaW5mbGF0ZWNvbnRleHRcIiwgXCJpbnRlcm5hbGl0ZXJhdG9yXCIsIFwiaW52YWxpZGFyZ3VtZW50ZXhjZXB0aW9uXCIsXG4gICAgXCJpdGVyYXRvclwiLCBcIml0ZXJhdG9yYWdncmVnYXRlXCIsIFwiaXRlcmF0b3JpdGVyYXRvclwiLCBcImpzb25leGNlcHRpb25cIiwgXCJqc29uc2VyaWFsaXphYmxlXCIsIFwibGVuZ3RoZXhjZXB0aW9uXCIsXG4gICAgXCJsaWJ4bWxlcnJvclwiLCBcImxpbWl0aXRlcmF0b3JcIiwgXCJsb2dpY2V4Y2VwdGlvblwiLCBcIm11bHRpcGxlaXRlcmF0b3JcIiwgXCJub2Rpc2NhcmRcIiwgXCJub3Jld2luZGl0ZXJhdG9yXCIsXG4gICAgXCJvcGVuc3NsYXN5bW1ldHJpY2tleVwiLCBcIm9wZW5zc2xjZXJ0aWZpY2F0ZVwiLCBcIm9wZW5zc2xjZXJ0aWZpY2F0ZXNpZ25pbmdyZXF1ZXN0XCIsXG4gICAgXCJvdXRvZmJvdW5kc2V4Y2VwdGlvblwiLCBcIm91dG9mcmFuZ2VleGNlcHRpb25cIiwgXCJvdXRlcml0ZXJhdG9yXCIsIFwib3ZlcmZsb3dleGNlcHRpb25cIiwgXCJvdmVycmlkZVwiLCBcInBhcmVudGl0ZXJhdG9yXCIsXG4gICAgXCJwYXJzZWVycm9yXCIsIFwicGRvXCIsIFwicGRvZXhjZXB0aW9uXCIsIFwicGRvcm93XCIsIFwicGRvc3RhdGVtZW50XCIsIFwicGhhclwiLCBcInBoYXJkYXRhXCIsIFwicGhhcmV4Y2VwdGlvblwiLCBcInBoYXJmaWxlaW5mb1wiLFxuICAgIFwicGhwX3VzZXJfZmlsdGVyXCIsIFwicGhwdG9rZW5cIiwgXCJwcm9wZXJ0eWhvb2t0eXBlXCIsIFwicmFuZ2VleGNlcHRpb25cIiwgXCJyZWN1cnNpdmVhcnJheWl0ZXJhdG9yXCIsIFwicmVjdXJzaXZlY2FjaGluZ2l0ZXJhdG9yXCIsXG4gICAgXCJyZWN1cnNpdmVjYWxsYmFja2ZpbHRlcml0ZXJhdG9yXCIsXG4gICAgXCJyZWN1cnNpdmVkaXJlY3RvcnlpdGVyYXRvclwiLCBcInJlY3Vyc2l2ZWZpbHRlcml0ZXJhdG9yXCIsIFwicmVjdXJzaXZlaXRlcmF0b3JcIiwgXCJyZWN1cnNpdmVpdGVyYXRvcml0ZXJhdG9yXCIsXG4gICAgXCJyZWN1cnNpdmVyZWdleGl0ZXJhdG9yXCIsIFwicmVjdXJzaXZldHJlZWl0ZXJhdG9yXCIsIFwicmVmbGVjdGlvblwiLCBcInJlZmxlY3Rpb25hdHRyaWJ1dGVcIiwgXCJyZWZsZWN0aW9uY2xhc3NcIixcbiAgICBcInJlZmxlY3Rpb25jbGFzc2NvbnN0YW50XCIsIFwicmVmbGVjdGlvbmNvbnN0YW50XCIsIFwicmVmbGVjdGlvbmVudW1cIiwgXCJyZWZsZWN0aW9uZW51bWJhY2tlZGNhc2VcIiwgXCJyZWZsZWN0aW9uZW51bXVuaXRjYXNlXCIsXG4gICAgXCJyZWZsZWN0aW9uZXhjZXB0aW9uXCIsIFwicmVmbGVjdGlvbmV4dGVuc2lvblwiLCBcInJlZmxlY3Rpb25maWJlclwiLCBcInJlZmxlY3Rpb25mdW5jdGlvblwiLCBcInJlZmxlY3Rpb25mdW5jdGlvbmFic3RyYWN0XCIsXG4gICAgXCJyZWZsZWN0aW9uZ2VuZXJhdG9yXCIsIFwicmVmbGVjdGlvbmludGVyc2VjdGlvbnR5cGVcIiwgXCJyZWZsZWN0aW9ubWV0aG9kXCIsIFwicmVmbGVjdGlvbm5hbWVkdHlwZVwiLCBcInJlZmxlY3Rpb25vYmplY3RcIixcbiAgICBcInJlZmxlY3Rpb25wYXJhbWV0ZXJcIiwgXCJyZWZsZWN0aW9ucHJvcGVydHlcIiwgXCJyZWZsZWN0aW9ucmVmZXJlbmNlXCIsIFwicmVmbGVjdGlvbnR5cGVcIiwgXCJyZWZsZWN0aW9udW5pb250eXBlXCIsXG4gICAgXCJyZWZsZWN0aW9uemVuZGV4dGVuc2lvblwiLCBcInJlZmxlY3RvclwiLCBcInJlZ2V4aXRlcmF0b3JcIiwgXCJyZXF1ZXN0cGFyc2Vib2R5ZXhjZXB0aW9uXCIsIFwicmV0dXJudHlwZXdpbGxjaGFuZ2VcIixcbiAgICBcInJvdW5kaW5nbW9kZVwiLCBcInJ1bnRpbWVleGNlcHRpb25cIiwgXCJzZWVrYWJsZWl0ZXJhdG9yXCIsIFwic2Vuc2l0aXZlcGFyYW1ldGVyXCIsIFwic2Vuc2l0aXZlcGFyYW1ldGVydmFsdWVcIiwgXCJzZXJpYWxpemFibGVcIixcbiAgICBcInNlc3Npb25oYW5kbGVyXCIsIFwic2Vzc2lvbmhhbmRsZXJpbnRlcmZhY2VcIiwgXCJzZXNzaW9uaWRpbnRlcmZhY2VcIiwgXCJzZXNzaW9udXBkYXRldGltZXN0YW1waGFuZGxlcmludGVyZmFjZVwiLCBcInNobW9wXCIsXG4gICAgXCJzb2NrZXRcIiwgXCJzb2RpdW1leGNlcHRpb25cIiwgXCJzcGxkb3VibHlsaW5rZWRsaXN0XCIsIFwic3BsZmlsZWluZm9cIixcbiAgICBcInNwbGZpbGVvYmplY3RcIiwgXCJzcGxmaXhlZGFycmF5XCIsIFwic3BsaGVhcFwiLCBcInNwbG1heGhlYXBcIiwgXCJzcGxtaW5oZWFwXCIsIFwic3Bsb2JqZWN0c3RvcmFnZVwiLCBcInNwbG9ic2VydmVyXCIsXG4gICAgXCJzcGxwcmlvcml0eXF1ZXVlXCIsIFwic3BscXVldWVcIiwgXCJzcGxzdGFja1wiLCBcInNwbHN1YmplY3RcIiwgXCJzcGx0ZW1wZmlsZW9iamVjdFwiLCBcInN0ZGNsYXNzXCIsIFwic3RyZWFtYnVja2V0XCIsIFwic3RyaW5nYWJsZVwiLFxuICAgIFwic3lzdm1lc3NhZ2VxdWV1ZVwiLCBcInN5c3ZzZW1hcGhvcmVcIiwgXCJzeXN2c2hhcmVkbWVtb3J5XCIsIFwidGhyb3dhYmxlXCIsIFwidHJhdmVyc2FibGVcIiwgXCJ0eXBlZXJyb3JcIiwgXCJ1bmRlcmZsb3dleGNlcHRpb25cIixcbiAgICBcInVuZXhwZWN0ZWR2YWx1ZWV4Y2VwdGlvblwiLCBcInVuaGFuZGxlZG1hdGNoZXJyb3JcIiwgXCJ1bml0ZW51bVwiLCBcInZhbHVlZXJyb3JcIiwgXCJ3ZWFrbWFwXCIsIFwid2Vha3JlZmVyZW5jZVwiXG4gIF0pLFxuICBydWJ5OiBuZXcgU2V0KFtcbiAgICBcIkFyZ3VtZW50RXJyb3JcIiwgXCJBcnJheVwiLCBcIkJhc2ljT2JqZWN0XCIsIFwiQmluZGluZ1wiLCBcIkNsYXNzXCIsIFwiQ2xvc2VkUXVldWVFcnJvclwiLCBcIkNvbXBhcmFibGVcIiwgXCJDb21wbGV4XCIsIFwiRGF0YVwiLCBcIkRpclwiLFxuICAgIFwiRW5jb2RpbmdcIiwgXCJFbmNvZGluZ0Vycm9yXCIsIFwiRW51bWVyYWJsZVwiLCBcIkVudW1lcmF0b3JcIiwgXCJFT0ZFcnJvclwiLCBcIkVycm5vXCIsIFwiRXhjZXB0aW9uXCIsIFwiRmFsc2VDbGFzc1wiLCBcIkZpYmVyXCIsXG4gICAgXCJGaWJlckVycm9yXCIsIFwiRmlsZVwiLCBcIkZpbGVUZXN0XCIsIFwiRmxvYXRcIiwgXCJGcm96ZW5FcnJvclwiLCBcIkdDXCIsIFwiSGFzaFwiLCBcIklPXCIsIFwiSU9FcnJvclwiLCBcIkluZGV4RXJyb3JcIiwgXCJJbnRlZ2VyXCIsXG4gICAgXCJJbnRlcnJ1cHRcIiwgXCJLZXJuZWxcIiwgXCJLZXlFcnJvclwiLCBcIkxvYWRFcnJvclwiLCBcIkxvY2FsSnVtcEVycm9yXCIsIFwiTWFyc2hhbFwiLCBcIk1hdGNoRGF0YVwiLCBcIk1hdGhcIiwgXCJNZXRob2RcIiwgXCJNb2R1bGVcIixcbiAgICBcIk11dGV4XCIsIFwiTmFtZUVycm9yXCIsIFwiTmlsQ2xhc3NcIiwgXCJOb01lbW9yeUVycm9yXCIsIFwiTm9NZXRob2RFcnJvclwiLCBcIk5vdEltcGxlbWVudGVkRXJyb3JcIiwgXCJOdW1lcmljXCIsIFwiT2JqZWN0XCIsXG4gICAgXCJPYmplY3RTcGFjZVwiLCBcIlByb2NcIiwgXCJQcm9jZXNzXCIsIFwiUXVldWVcIiwgXCJSYWN0b3JcIiwgXCJSYW5kb21cIiwgXCJSYW5nZVwiLCBcIlJhdGlvbmFsXCIsIFwiUmVnZXhwXCIsIFwiUmVnZXhwRXJyb3JcIiwgXCJSdWJ5Vk1cIixcbiAgICBcIlJ1bnRpbWVFcnJvclwiLCBcIlNjcmlwdEVycm9yXCIsIFwiU2VjdXJpdHlFcnJvclwiLCBcIlNpZ25hbFwiLCBcIlNpZ25hbEV4Y2VwdGlvblwiLCBcIlNpemVkUXVldWVcIiwgXCJTdGFuZGFyZEVycm9yXCIsIFwiU3RvcEl0ZXJhdGlvblwiLFxuICAgIFwiU3RyaW5nXCIsIFwiU3RydWN0XCIsIFwiU3ltYm9sXCIsIFwiU3ludGF4RXJyb3JcIiwgXCJTeXN0ZW1DYWxsRXJyb3JcIiwgXCJTeXN0ZW1FeGl0XCIsIFwiU3lzdGVtU3RhY2tFcnJvclwiLCBcIlRocmVhZFwiLCBcIlRocmVhZEVycm9yXCIsXG4gICAgXCJUaHJlYWRHcm91cFwiLCBcIlRpbWVcIiwgXCJUcmFjZVBvaW50XCIsIFwiVHJ1ZUNsYXNzXCIsIFwiVHlwZUVycm9yXCIsIFwiVW5ib3VuZE1ldGhvZFwiLCBcIlVuY2F1Z2h0VGhyb3dFcnJvclwiLCBcIldhcm5pbmdcIixcbiAgICBcIlplcm9EaXZpc2lvbkVycm9yXCJcbiAgXSksXG4gIHR5cGVzY3JpcHQ6IG5ldyBTZXQoW1wiQXJyYXlcIiwgXCJCb29sZWFuXCIsIFwiTWFwXCIsIFwiTWF0aFwiLCBcIk51bWJlclwiLCBcIk9iamVjdFwiLCBcIlJlYWRvbmx5QXJyYXlcIiwgXCJSZWFkb25seU1hcFwiLCBcIlJlZmxlY3RcIiwgXCJTdHJpbmdcIl0pXG59KVxuXG4vKipcbiAqIFZhbGlkYXRlcyBhbiBpZGVudGlmaWVyIGFnYWluc3QgdGhlIHRhcmdldCBiYWNrZW5kJ3MgZGVsaWJlcmF0ZWx5IG5hcnJvdyBsZXhpY2FsIGNvbnRyYWN0LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5CYWNrZW5kTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gVGFyZ2V0IGxhbmd1YWdlLlxuICogQHBhcmFtIHt1bmtub3dufSBuYW1lIC0gQ2FuZGlkYXRlIHNlbWFudGljIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gcm9sZSAtIElkZW50aWZpZXIgcm9sZSBmb3IgZGlhZ25vc3RpY3MuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9uIHwgdW5kZWZpbmVkfSBsb2NhdGlvbiAtIE9yaWdpbmF0aW5nIGxvY2F0aW9uLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRhcmdldElkZW50aWZpZXIobGFuZ3VhZ2UsIG5hbWUsIHJvbGUsIGxvY2F0aW9uKSB7XG4gIGlmICh0eXBlb2YgbmFtZSAhPSBcInN0cmluZ1wiKSB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIGAke3JvbGV9IGlkZW50aWZpZXJgLCBsb2NhdGlvbilcblxuICBjb25zdCByZXNlcnZlZE5hbWUgPSBsYW5ndWFnZSA9PSBcInBocFwiID8gbmFtZS50b0xvd2VyQ2FzZSgpIDogbmFtZVxuICBjb25zdCBzeW50YXhMYW5ndWFnZSA9IGxhbmd1YWdlID09IFwiaW9zXCIgPyBcInN3aWZ0XCIgOiBsYW5ndWFnZVxuXG4gIGlmICghaWRlbnRpZmllclBhdHRlcm5zW3N5bnRheExhbmd1YWdlXS50ZXN0KG5hbWUpIHx8IHJlc2VydmVkV29yZHNbc3ludGF4TGFuZ3VhZ2VdLmhhcyhyZXNlcnZlZE5hbWUpIHx8XG4gICAgbGFuZ3VhZ2UgPT0gXCJweXRob25cIiAmJiBuYW1lLm5vcm1hbGl6ZShcIk5GS0NcIikgIT0gbmFtZSB8fFxuICAgIGxhbmd1YWdlID09IFwiY1wiICYmICFpc0NJZGVudGlmaWVyKG5hbWUpIHx8XG4gICAgbGFuZ3VhZ2UgPT0gXCJydXN0XCIgJiYgIWlzUnVzdElkZW50aWZpZXIobmFtZSkgfHxcbiAgICBsYW5ndWFnZSA9PSBcImNwcFwiICYmICFpc0NwcElkZW50aWZpZXIobmFtZSkgfHxcbiAgICBsYW5ndWFnZSA9PSBcImRhcnRcIiAmJiAhaXNEYXJ0SWRlbnRpZmllcihuYW1lKSB8fFxuICAgIGxhbmd1YWdlID09IFwic3dpZnRcIiAmJiAoIWlzU3dpZnRJZGVudGlmaWVyKG5hbWUpIHx8IG5hbWUubm9ybWFsaXplKFwiTkZDXCIpICE9IG5hbWUpIHx8XG4gICAgbGFuZ3VhZ2UgPT0gXCJrb3RsaW5cIiAmJiAoIWlzS290bGluSWRlbnRpZmllcihuYW1lKSB8fCBuYW1lLm5vcm1hbGl6ZShcIk5GQ1wiKSAhPSBuYW1lKSkge1xuICAgIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgYCR7cm9sZX0gaWRlbnRpZmllciAnJHtuYW1lfSdgLCBsb2NhdGlvbilcbiAgfVxufVxuXG4vKipcbiAqIFByb3RlY3RzIHRoZSBleGFjdCBDIGhlYWRlciBlbnZpcm9ubWVudCBhbmQgaW1wbGVtZW50YXRpb24tcmVzZXJ2ZWQgbmFtZXNwYWNlIGluIGVpdGhlciBkaXJlY3Rpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIENhbGxlciBpZGVudGlmaWVyLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIHNwZWxsaW5nIGlzIHNhZmUgaW4gdGhlIGNhbm9uaWNhbCB0cmFuc2xhdGlvbiB1bml0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDSWRlbnRpZmllcihuYW1lKSB7XG4gIHJldHVybiBpZGVudGlmaWVyUGF0dGVybnMuYy50ZXN0KG5hbWUpICYmICFyZXNlcnZlZFdvcmRzLmMuaGFzKG5hbWUpICYmXG4gICAgIS9eKD86c2VtYW50aWZvbGRffFNFTUFOVElGT0xEX3xTZW1hbnRpZm9sZHxhdG9taWNffElOVFswLTlfQS1aXXxVSU5UWzAtOV9BLVpdfElOVE1BWF98VUlOVE1BWF98U0laRV98UFRSRElGRl98U0lHX0FUT01JQ198V0NIQVJffFdJTlRffENIQVJffFNDSEFSX3xVQ0hBUl98U0hSVF98VVNIUlRffExPTkdffFVMT05HX3xMTE9OR198VUxMT05HXykvdS50ZXN0KG5hbWUpICYmXG4gICAgIS9eKD86dT9pbnQoPzo4fDE2fDMyfDY0fG1heHxwdHJ8X2xlYXN0WzAtOV0rfF9mYXN0WzAtOV0rKV90KSQvdS50ZXN0KG5hbWUpXG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgYmluZGluZyBpZGVudGlmaWVyIGFnYWluc3QgdGFyZ2V0IHJlc3RyaWN0aW9ucyBiZXlvbmQgZ2VuZXJhbCBpZGVudGlmaWVyIHN5bnRheC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuQmFja2VuZExhbmd1YWdlfSBsYW5ndWFnZSAtIFRhcmdldCBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gbmFtZSAtIENhbmRpZGF0ZSBzZW1hbnRpYyBpZGVudGlmaWVyLlxuICogQHBhcmFtIHtzdHJpbmd9IHJvbGUgLSBCaW5kaW5nIHJvbGUgZm9yIGRpYWdub3N0aWNzLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBPcmlnaW5hdGluZyBsb2NhdGlvbi5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYXJnZXRCaW5kaW5nSWRlbnRpZmllcihsYW5ndWFnZSwgbmFtZSwgcm9sZSwgbG9jYXRpb24pIHtcbiAgdmFsaWRhdGVUYXJnZXRJZGVudGlmaWVyKGxhbmd1YWdlLCBuYW1lLCByb2xlLCBsb2NhdGlvbilcblxuICBjb25zdCBpbnZhbGlkVHlwZVNjcmlwdEJpbmRpbmcgPSBsYW5ndWFnZSA9PSBcInR5cGVzY3JpcHRcIiAmJiAobmFtZSA9PSBcImFyZ3VtZW50c1wiIHx8IG5hbWUgPT0gXCJldmFsXCIpXG4gIGNvbnN0IGludmFsaWRQaHBWYXJpYWJsZSA9IGxhbmd1YWdlID09IFwicGhwXCIgJiYgdHlwZW9mIG5hbWUgPT0gXCJzdHJpbmdcIiAmJlxuICAgICgocm9sZSA9PSBcInBhcmFtZXRlclwiICYmIHBocEludmFsaWRQYXJhbWV0ZXJCaW5kaW5ncy5oYXMobmFtZSkpIHx8XG4gICAgICAoKHJvbGUgPT0gXCJsb2NhbFwiIHx8IHJvbGUgPT0gXCJhc3NpZ25tZW50IHRhcmdldFwiIHx8IHJvbGUgPT0gXCJjYXRjaCBiaW5kaW5nXCIpICYmIHBocEludmFsaWRBc3NpZ25lZEJpbmRpbmdzLmhhcyhuYW1lKSkpXG4gIGNvbnN0IGludmFsaWRSdWJ5QmluZGluZyA9IGxhbmd1YWdlID09IFwicnVieVwiICYmIHR5cGVvZiBuYW1lID09IFwic3RyaW5nXCIgJiYgL15fWzEtOV0kL3UudGVzdChuYW1lKVxuXG4gIGlmIChpbnZhbGlkVHlwZVNjcmlwdEJpbmRpbmcgfHwgaW52YWxpZFBocFZhcmlhYmxlIHx8IGludmFsaWRSdWJ5QmluZGluZykge1xuICAgIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgYCR7cm9sZX0gaWRlbnRpZmllciAnJHtuYW1lfSdgLCBsb2NhdGlvbilcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBhIG5vbWluYWwgcmVjb3JkL3R5cGUgZGVjbGFyYXRpb24gbmFtZSBmb3IgdGhlIG9yaWdpbmFsLWZpdmUgdGFyZ2V0cy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuQmFja2VuZExhbmd1YWdlfSBsYW5ndWFnZSAtIEJhY2tlbmQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3Vua25vd259IG5hbWUgLSBDYW5kaWRhdGUgdHlwZSBuYW1lLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBEZWNsYXJhdGlvbiBsb2NhdGlvbi5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYXJnZXRUeXBlSWRlbnRpZmllcihsYW5ndWFnZSwgbmFtZSwgbG9jYXRpb24pIHtcbiAgaWYgKHR5cGVvZiBuYW1lICE9IFwic3RyaW5nXCIgfHwgIS9eW0EtWl1bQS1aYS16MC05X10qJC91LnRlc3QobmFtZSkpIHtcbiAgICB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIGByZWNvcmQgdHlwZSBpZGVudGlmaWVyICcke1N0cmluZyhuYW1lKX0nYCwgbG9jYXRpb24pXG4gIH1cbiAgY29uc3QgcmVzZXJ2ZWROYW1lID0gbGFuZ3VhZ2UgPT0gXCJwaHBcIiA/IG5hbWUudG9Mb3dlckNhc2UoKSA6IG5hbWVcbiAgY29uc3Qgc3ludGF4TGFuZ3VhZ2UgPSBsYW5ndWFnZSA9PSBcImlvc1wiID8gXCJzd2lmdFwiIDogbGFuZ3VhZ2VcblxuICBpZiAocmVzZXJ2ZWRXb3Jkc1tzeW50YXhMYW5ndWFnZV0uaGFzKHJlc2VydmVkTmFtZSkgfHwgcmVzZXJ2ZWRUeXBlTmFtZXNbbGFuZ3VhZ2VdPy5oYXMocmVzZXJ2ZWROYW1lKSkge1xuICAgIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgYHJlY29yZCB0eXBlIGlkZW50aWZpZXIgJyR7bmFtZX0nYCwgbG9jYXRpb24pXG4gIH1cbn1cblxuLyoqXG4gKiBQcm90ZWN0cyBDKysga2V5d29yZHMsIHRoZSBhY3R1YWwgaW5jbHVkZWQgQyBsaWJyYXJ5IG5hbWVzL21hY3JvcyBhbmQgdGhlIHNjYWZmb2xkIG5hbWVzcGFjZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gQ2FsbGVyIHNjYWxhciBiaW5kaW5nIG9yIGZ1bmN0aW9uIG5hbWUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBhIGNhbm9uaWNhbCBDKysyMCB0cmFuc2xhdGlvbiB1bml0IGNhbiByZXByZXNlbnQgdGhlIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NwcElkZW50aWZpZXIobmFtZSkge1xuICByZXR1cm4gaXNDSWRlbnRpZmllcihuYW1lKSAmJiAhbmFtZS5pbmNsdWRlcyhcIl9fXCIpICYmICFyZXNlcnZlZFdvcmRzLmNwcC5oYXMobmFtZSlcbn1cblxuLyoqXG4gKiBQcm90ZWN0cyB0aGUgZWRpdGlvbi0yMDIxIHNjYWxhciwgZW50cnkgYW5kIGV4YWN0IGhlbHBlciBlbnZpcm9ubWVudCBpbiBib3RoIGRpcmVjdGlvbnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIENhbGxlci1vd25lZCBmdW5jdGlvbiBvciBiaW5kaW5nIG5hbWUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBvcmRpbmFyeSBSdXN0IHN5bnRheCBjYW4gcmVwcmVzZW50IHRoZSBuYW1lIHNhZmVseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUnVzdElkZW50aWZpZXIobmFtZSkge1xuICByZXR1cm4gaWRlbnRpZmllclBhdHRlcm5zLnJ1c3QudGVzdChuYW1lKSAmJiAhcmVzZXJ2ZWRXb3Jkcy5ydXN0LmhhcyhuYW1lKSAmJiAhbmFtZS5zdGFydHNXaXRoKFwic2VtYW50aWZvbGRfXCIpXG59XG5cbi8qKlxuICogUHJvdGVjdHMgU3dpZnQga2V5d29yZHMsIHNjYWxhciBuYW1lcywgZW50cnkgcGx1bWJpbmcsIGFuZCB0YXJnZXQtb25seSBoZWxwZXIgbmFtZXMuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIENhbGxlci1vd25lZCBmdW5jdGlvbiBvciBiaW5kaW5nIG5hbWUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBvcmRpbmFyeSB1bmVzY2FwZWQgU3dpZnQgc3ludGF4IGNhbiBwcmVzZXJ2ZSB0aGUgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3dpZnRJZGVudGlmaWVyKG5hbWUpIHtcbiAgcmV0dXJuIGlkZW50aWZpZXJQYXR0ZXJucy5zd2lmdC50ZXN0KG5hbWUpICYmICFyZXNlcnZlZFdvcmRzLnN3aWZ0LmhhcyhuYW1lKSAmJiAhbmFtZS5zdGFydHNXaXRoKFwic2VtYW50aWZvbGRfXCIpXG59XG5cbi8qKlxuICogUHJvdGVjdHMgS290bGluIGtleXdvcmRzLCBKVk0gc2NhbGFyL3NjYWZmb2xkIG5hbWVzLCBhbmQgdGFyZ2V0LW9ubHkgaGVscGVyIG5hbWVzLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBDYWxsZXItb3duZWQgZnVuY3Rpb24gb3IgYmluZGluZyBuYW1lLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgb3JkaW5hcnkgdW5lc2NhcGVkIEtvdGxpbiBzeW50YXggY2FuIHByZXNlcnZlIHRoZSBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNLb3RsaW5JZGVudGlmaWVyKG5hbWUpIHtcbiAgcmV0dXJuIGlkZW50aWZpZXJQYXR0ZXJucy5rb3RsaW4udGVzdChuYW1lKSAmJiAhcmVzZXJ2ZWRXb3Jkcy5rb3RsaW4uaGFzKG5hbWUpICYmICFuYW1lLnN0YXJ0c1dpdGgoXCJzZW1hbnRpZm9sZF9cIikgJiZcbiAgICAhbmFtZS5zdGFydHNXaXRoKFwiU0VNQU5USUZPTERfXCIpXG59XG5cbi8qKlxuICogUHJvdGVjdHMgRGFydCBrZXl3b3JkcywgVk0gc2NhbGFyL3NjYWZmb2xkIG5hbWVzLCBhbmQgY29tcGlsZXItb3duZWQgaGVscGVycy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gQ2FsbGVyLW93bmVkIGZ1bmN0aW9uIG9yIGJpbmRpbmcgbmFtZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIG9yZGluYXJ5IERhcnQgc3ludGF4IGNhbiBwcmVzZXJ2ZSB0aGUgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGFydElkZW50aWZpZXIobmFtZSkge1xuICByZXR1cm4gaWRlbnRpZmllclBhdHRlcm5zLmRhcnQudGVzdChuYW1lKSAmJiAhcmVzZXJ2ZWRXb3Jkcy5kYXJ0LmhhcyhuYW1lKSAmJlxuICAgICFuYW1lLnN0YXJ0c1dpdGgoXCJfc2VtYW50aWZvbGRcIikgJiYgbmFtZS5ub3JtYWxpemUoXCJORkNcIikgPT0gbmFtZVxufVxuIl19
@@ -20,4 +20,14 @@ export declare const kotlinArtifactMetadata: Readonly<{
20
20
  * @param {import("./writer.js").SourceWriter} writer - Source-aware writer.
21
21
  */
22
22
  export declare function generateKotlin(module: import("../semantic/types.js").SemanticModule, writer: import("./writer.js").SourceWriter): void;
23
+ /**
24
+ * Emits one Kotlin statement block.
25
+ * @param {import("./writer.js").SourceWriter} writer - Source-aware writer.
26
+ * @param {import("../semantic/types.js").Block} block - Semantic block.
27
+ * @param {string} indent - Current indentation.
28
+ * @param {string} path - Semantic block path.
29
+ * @param {string} [printTarget] - Target-owned print function spelling.
30
+ * @returns {void}
31
+ */
32
+ export declare function emitKotlinBlock(writer: import("./writer.js").SourceWriter, block: import("../semantic/types.js").Block, indent: string, path: string, printTarget?: string): void;
23
33
  //# sourceMappingURL=kotlin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/backends/kotlin.js"],"names":[],"mappings":"AAMA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAYjC,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAH1B,OAAO,sBAAsB,EAAE,cAGL,EAAE,MAAM,EAFlC,OAAO,aAAa,EAAE,YAEY,QA+B5C"}
1
+ {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/backends/kotlin.js"],"names":[],"mappings":"AAMA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAYjC,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAH1B,OAAO,sBAAsB,EAAE,cAGL,EAAE,MAAM,EAFlC,OAAO,aAAa,EAAE,YAEY,QA+B5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAP3B,OAAO,aAAa,EAAE,YAOK,EAAE,KAAK,EANlC,OAAO,sBAAsB,EAAE,KAMG,EAAE,MAAM,EAL1C,MAK0C,EAAE,IAAI,EAJhD,MAIgD,EAAE,WAAW,AAHrE,CACA,EADQ,MAGyE,GAFvE,IAAI,CAKhB"}
@@ -42,11 +42,11 @@ export function generateKotlin(module, writer) {
42
42
  writer.mapped(emitScalarType("kotlin", declaration.returnType), { mappingKind: "exact", node: declaration.returnType,
43
43
  path: `${path}/returnType`, role: "type" });
44
44
  writer.synthetic(" {\n", "Kotlin function body scaffold", [declaration], [path]);
45
- emitBlock(writer, declaration.body, " ", `${path}/body`);
45
+ emitKotlinBlock(writer, declaration.body, " ", `${path}/body`);
46
46
  writer.synthetic("}\n", "Kotlin function body scaffold", [declaration], [path]);
47
47
  });
48
48
  writer.synthetic("\nfun main() {\n", "Kotlin generated main scaffold", [module.entryPoint], ["/entryPoint"]);
49
- emitBlock(writer, module.entryPoint.body, " ", "/entryPoint/body");
49
+ emitKotlinBlock(writer, module.entryPoint.body, " ", "/entryPoint/body");
50
50
  writer.synthetic("}\n", "Kotlin generated main scaffold", [module.entryPoint], ["/entryPoint"]);
51
51
  }
52
52
  /**
@@ -55,10 +55,11 @@ export function generateKotlin(module, writer) {
55
55
  * @param {import("../semantic/types.js").Block} block - Semantic block.
56
56
  * @param {string} indent - Current indentation.
57
57
  * @param {string} path - Semantic block path.
58
+ * @param {string} [printTarget] - Target-owned print function spelling.
58
59
  * @returns {void}
59
60
  */
60
- function emitBlock(writer, block, indent, path) {
61
- block.statements.forEach((statement, index) => emitStatement(writer, statement, indent, `${path}/statements/${index}`));
61
+ export function emitKotlinBlock(writer, block, indent, path, printTarget = "println") {
62
+ block.statements.forEach((statement, index) => emitKotlinStatement(writer, statement, indent, `${path}/statements/${index}`, printTarget));
62
63
  }
63
64
  /**
64
65
  * Emits one Kotlin statement.
@@ -66,9 +67,10 @@ function emitBlock(writer, block, indent, path) {
66
67
  * @param {import("../semantic/types.js").Statement} statement - Semantic statement.
67
68
  * @param {string} indent - Current indentation.
68
69
  * @param {string} path - Semantic statement path.
70
+ * @param {string} printTarget - Target-owned print function spelling.
69
71
  * @returns {void}
70
72
  */
71
- function emitStatement(writer, statement, indent, path) {
73
+ function emitKotlinStatement(writer, statement, indent, path, printTarget) {
72
74
  writer.synthetic(indent, "indentation", [statement], [path]);
73
75
  if (statement.kind == "LocalDeclaration") {
74
76
  writer.mapped(statement.mutable ? "var" : "val", { mappingKind: "anchor", node: statement, path });
@@ -105,7 +107,7 @@ function emitStatement(writer, statement, indent, path) {
105
107
  return;
106
108
  }
107
109
  if (statement.kind == "PrintStatement") {
108
- writer.synthetic("println(", "Kotlin println plumbing", [statement], [path]);
110
+ writer.synthetic(`${printTarget}(`, "Kotlin print plumbing", [statement], [path]);
109
111
  emitExpression(writer, statement.expression, `${path}/expression`, "kotlin", identity);
110
112
  writer.synthetic(")\n", "Kotlin println plumbing", [statement], [path]);
111
113
  return;
@@ -116,11 +118,11 @@ function emitStatement(writer, statement, indent, path) {
116
118
  writer.synthetic(" (", "Kotlin conditional scaffold", [statement], [path]);
117
119
  emitExpression(writer, statement.condition, `${path}/condition`, "kotlin", identity);
118
120
  writer.synthetic(") {\n", "Kotlin conditional scaffold", [statement.consequent], [`${path}/consequent`]);
119
- emitBlock(writer, statement.consequent, `${indent} `, `${path}/consequent`);
121
+ emitKotlinBlock(writer, statement.consequent, `${indent} `, `${path}/consequent`, printTarget);
120
122
  writer.synthetic(`${indent}}`, "Kotlin conditional scaffold", [statement.consequent], [`${path}/consequent`]);
121
123
  if (statement.alternate) {
122
124
  writer.synthetic(" else {\n", "Kotlin alternate scaffold", [statement.alternate], [`${path}/alternate`]);
123
- emitBlock(writer, statement.alternate, `${indent} `, `${path}/alternate`);
125
+ emitKotlinBlock(writer, statement.alternate, `${indent} `, `${path}/alternate`, printTarget);
124
126
  writer.synthetic(`${indent}}`, "Kotlin alternate scaffold", [statement.alternate], [`${path}/alternate`]);
125
127
  }
126
128
  writer.synthetic("\n", "line break", [statement], [path]);
@@ -133,4 +135,4 @@ function emitStatement(writer, statement, indent, path) {
133
135
  function identity(name) {
134
136
  return name;
135
137
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia290bGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmRzL2tvdGxpbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQTtBQUVqRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2xELFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3RCLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxTQUFTO1lBQ3pHLGtCQUFrQixFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDekQsU0FBUyxFQUFFLElBQUk7UUFDZixlQUFlLEVBQUUsS0FBSztRQUN0QixNQUFNLEVBQUUsYUFBYTtRQUNyQixTQUFTLEVBQUUsU0FBUztRQUNwQixPQUFPLEVBQUUsUUFBUTtLQUNsQixDQUFDO0lBQ0YsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBQyxDQUFDO0NBQ2xILENBQUMsQ0FBQTtBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNO0lBQzNDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLHlDQUF5QyxF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WUFBWSxDQUFDLENBQUMsQ0FBQTtRQUN4RyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxHQUFHLElBQUksWUFBWSxDQUFDLENBQUE7UUFDMUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxFQUFFLDJCQUEyQixFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFDM0csQ0FBQztJQUNELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUMzRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsUUFBUSxDQUFDLElBQUk7SUFDcEIsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7ZW1pdEV4cHJlc3Npb259IGZyb20gXCIuL3NoYXJlZC5qc1wiXG5pbXBvcnQge2VtaXRTY2FsYXJUeXBlfSBmcm9tIFwiLi9zY2FsYXJzLmpzXCJcbmltcG9ydCB7a290bGluUnVudGltZX0gZnJvbSBcIi4va290bGluLXJ1bnRpbWUuanNcIlxuXG5leHBvcnQgY29uc3Qga290bGluQXJ0aWZhY3RNZXRhZGF0YSA9IE9iamVjdC5mcmVlemUoe1xuICBjb21waWxlcjogT2JqZWN0LmZyZWV6ZSh7XG4gICAgYXBpVmVyc2lvbjogXCIyLjRcIixcbiAgICBhcmd1bWVudHM6IE9iamVjdC5mcmVlemUoW1wiLWxhbmd1YWdlLXZlcnNpb25cIiwgXCIyLjRcIiwgXCItYXBpLXZlcnNpb25cIiwgXCIyLjRcIiwgXCItanZtLXRhcmdldFwiLCBcIjI1XCIsIFwiLVdlcnJvclwiLFxuICAgICAgXCItaW5jbHVkZS1ydW50aW1lXCIsIFwiUHJvZ3JhbS5rdFwiLCBcIi1kXCIsIFwiUHJvZ3JhbS5qYXJcIl0pLFxuICAgIGp2bVRhcmdldDogXCIyNVwiLFxuICAgIGxhbmd1YWdlVmVyc2lvbjogXCIyLjRcIixcbiAgICBvdXRwdXQ6IFwiUHJvZ3JhbS5qYXJcIixcbiAgICB0b29sY2hhaW46IFwia290bGluY1wiLFxuICAgIHZlcnNpb246IFwiMi40LjIwXCJcbiAgfSksXG4gIHJ1bjogT2JqZWN0LmZyZWV6ZSh7YXJndW1lbnRzOiBPYmplY3QuZnJlZXplKFtcIi1qYXJcIiwgXCJQcm9ncmFtLmphclwiXSksIHRvb2xjaGFpbjogXCJqYXZhMjVcIiwgdmVyc2lvbjogXCIyNS4wLjQrN1wifSlcbn0pXG5cbi8qKlxuICogRW1pdHMgb25lIGRldGVybWluaXN0aWMgS290bGluL0pWTSBwcm9ncmFtIHRocm91Z2ggdGhlIHNvdXJjZS1hd2FyZSB3cml0ZXIuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTW9kdWxlfSBtb2R1bGUgLSBWYWxpZGF0ZWQgc2VtYW50aWMgbW9kdWxlLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3dyaXRlci5qc1wiKS5Tb3VyY2VXcml0ZXJ9IHdyaXRlciAtIFNvdXJjZS1hd2FyZSB3cml0ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUtvdGxpbihtb2R1bGUsIHdyaXRlcikge1xuICB3cml0ZXIuc3ludGhldGljKGtvdGxpblJ1bnRpbWUsIFwiQ2hlY2tlZCBLb3RsaW4vSlZNIHNhZmUtaW50ZWdlciBzdXBwb3J0XCIsIFttb2R1bGVdLCBbXCJcIl0pXG5cbiAgbW9kdWxlLmZ1bmN0aW9ucy5mb3JFYWNoKChkZWNsYXJhdGlvbiwgZnVuY3Rpb25JbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBgL2Z1bmN0aW9ucy8ke2Z1bmN0aW9uSW5kZXh9YFxuXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblwiLCBcImRlY2xhcmF0aW9uIHNlcGFyYXRvclwiLCBbZGVjbGFyYXRpb25dLCBbcGF0aF0pXG4gICAgd3JpdGVyLm1hcHBlZChcImZ1blwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IGRlY2xhcmF0aW9uLCBwYXRofSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImRlY2xhcmF0aW9uIHNwYWNpbmdcIiwgW2RlY2xhcmF0aW9uXSwgW3BhdGhdKVxuICAgIHdyaXRlci5tYXBwZWQoZGVjbGFyYXRpb24ubmFtZSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IGRlY2xhcmF0aW9uLCBwYXRoLCByb2xlOiBcIm5hbWVcIn0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIihcIiwgXCJmdW5jdGlvbiBwYXJhbWV0ZXIgc2NhZmZvbGRcIiwgW2RlY2xhcmF0aW9uXSwgW3BhdGhdKVxuICAgIGRlY2xhcmF0aW9uLnBhcmFtZXRlcnMuZm9yRWFjaCgocGFyYW1ldGVyLCBwYXJhbWV0ZXJJbmRleCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3BhcmFtZXRlcnMvJHtwYXJhbWV0ZXJJbmRleH1gXG5cbiAgICAgIGlmIChwYXJhbWV0ZXJJbmRleCkgd3JpdGVyLnN5bnRoZXRpYyhcIiwgXCIsIFwicGFyYW1ldGVyIHNlcGFyYXRvclwiLCBbcGFyYW1ldGVyXSwgW3BhcmFtZXRlclBhdGhdKVxuICAgICAgd3JpdGVyLm1hcHBlZChwYXJhbWV0ZXIubmFtZSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHBhcmFtZXRlciwgcGF0aDogcGFyYW1ldGVyUGF0aCwgcm9sZTogXCJuYW1lXCJ9KVxuICAgICAgd3JpdGVyLnN5bnRoZXRpYyhcIjogXCIsIFwicGFyYW1ldGVyIGFubm90YXRpb24gc2NhZmZvbGRcIiwgW3BhcmFtZXRlcl0sIFtwYXJhbWV0ZXJQYXRoXSlcbiAgICAgIHdyaXRlci5tYXBwZWQoZW1pdFNjYWxhclR5cGUoXCJrb3RsaW5cIiwgcGFyYW1ldGVyLnR5cGUpLCB7bWFwcGluZ0tpbmQ6IFwiZXhhY3RcIiwgbm9kZTogcGFyYW1ldGVyLnR5cGUsXG4gICAgICAgIHBhdGg6IGAke3BhcmFtZXRlclBhdGh9L3R5cGVgLCByb2xlOiBcInR5cGVcIn0pXG4gICAgfSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiKTogXCIsIFwiZnVuY3Rpb24gcmV0dXJuIHNjYWZmb2xkXCIsIFtkZWNsYXJhdGlvbl0sIFtwYXRoXSlcbiAgICB3cml0ZXIubWFwcGVkKGVtaXRTY2FsYXJUeXBlKFwia290bGluXCIsIGRlY2xhcmF0aW9uLnJldHVyblR5cGUpLCB7bWFwcGluZ0tpbmQ6IFwiZXhhY3RcIiwgbm9kZTogZGVjbGFyYXRpb24ucmV0dXJuVHlwZSxcbiAgICAgIHBhdGg6IGAke3BhdGh9L3JldHVyblR5cGVgLCByb2xlOiBcInR5cGVcIn0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiB7XFxuXCIsIFwiS290bGluIGZ1bmN0aW9uIGJvZHkgc2NhZmZvbGRcIiwgW2RlY2xhcmF0aW9uXSwgW3BhdGhdKVxuICAgIGVtaXRCbG9jayh3cml0ZXIsIGRlY2xhcmF0aW9uLmJvZHksIFwiICBcIiwgYCR7cGF0aH0vYm9keWApXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIn1cXG5cIiwgXCJLb3RsaW4gZnVuY3Rpb24gYm9keSBzY2FmZm9sZFwiLCBbZGVjbGFyYXRpb25dLCBbcGF0aF0pXG4gIH0pXG5cbiAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcbmZ1biBtYWluKCkge1xcblwiLCBcIktvdGxpbiBnZW5lcmF0ZWQgbWFpbiBzY2FmZm9sZFwiLCBbbW9kdWxlLmVudHJ5UG9pbnRdLCBbXCIvZW50cnlQb2ludFwiXSlcbiAgZW1pdEJsb2NrKHdyaXRlciwgbW9kdWxlLmVudHJ5UG9pbnQuYm9keSwgXCIgIFwiLCBcIi9lbnRyeVBvaW50L2JvZHlcIilcbiAgd3JpdGVyLnN5bnRoZXRpYyhcIn1cXG5cIiwgXCJLb3RsaW4gZ2VuZXJhdGVkIG1haW4gc2NhZmZvbGRcIiwgW21vZHVsZS5lbnRyeVBvaW50XSwgW1wiL2VudHJ5UG9pbnRcIl0pXG59XG5cbi8qKlxuICogRW1pdHMgb25lIEtvdGxpbiBzdGF0ZW1lbnQgYmxvY2suXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vd3JpdGVyLmpzXCIpLlNvdXJjZVdyaXRlcn0gd3JpdGVyIC0gU291cmNlLWF3YXJlIHdyaXRlci5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuQmxvY2t9IGJsb2NrIC0gU2VtYW50aWMgYmxvY2suXG4gKiBAcGFyYW0ge3N0cmluZ30gaW5kZW50IC0gQ3VycmVudCBpbmRlbnRhdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gU2VtYW50aWMgYmxvY2sgcGF0aC5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBlbWl0QmxvY2sod3JpdGVyLCBibG9jaywgaW5kZW50LCBwYXRoKSB7XG4gIGJsb2NrLnN0YXRlbWVudHMuZm9yRWFjaCgoc3RhdGVtZW50LCBpbmRleCkgPT4gZW1pdFN0YXRlbWVudCh3cml0ZXIsIHN0YXRlbWVudCwgaW5kZW50LCBgJHtwYXRofS9zdGF0ZW1lbnRzLyR7aW5kZXh9YCkpXG59XG5cbi8qKlxuICogRW1pdHMgb25lIEtvdGxpbiBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vd3JpdGVyLmpzXCIpLlNvdXJjZVdyaXRlcn0gd3JpdGVyIC0gU291cmNlLWF3YXJlIHdyaXRlci5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU3RhdGVtZW50fSBzdGF0ZW1lbnQgLSBTZW1hbnRpYyBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gaW5kZW50IC0gQ3VycmVudCBpbmRlbnRhdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gU2VtYW50aWMgc3RhdGVtZW50IHBhdGguXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gZW1pdFN0YXRlbWVudCh3cml0ZXIsIHN0YXRlbWVudCwgaW5kZW50LCBwYXRoKSB7XG4gIHdyaXRlci5zeW50aGV0aWMoaW5kZW50LCBcImluZGVudGF0aW9uXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIGlmIChzdGF0ZW1lbnQua2luZCA9PSBcIkxvY2FsRGVjbGFyYXRpb25cIikge1xuICAgIHdyaXRlci5tYXBwZWQoc3RhdGVtZW50Lm11dGFibGUgPyBcInZhclwiIDogXCJ2YWxcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGh9KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCIgXCIsIFwiZGVjbGFyYXRpb24gc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHdyaXRlci5tYXBwZWQoc3RhdGVtZW50Lm5hbWUsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGgsIHJvbGU6IFwibmFtZVwifSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiOiBcIiwgXCJsb2NhbCBhbm5vdGF0aW9uIHNjYWZmb2xkXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgd3JpdGVyLm1hcHBlZChlbWl0U2NhbGFyVHlwZShcImtvdGxpblwiLCBzdGF0ZW1lbnQudHlwZSksIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBzdGF0ZW1lbnQudHlwZSxcbiAgICAgIHBhdGg6IGAke3BhdGh9L3R5cGVgLCByb2xlOiBcInR5cGVcIn0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJhc3NpZ25tZW50IHNwYWNpbmdcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICB3cml0ZXIubWFwcGVkKFwiPVwiLCB7bWFwcGluZ0tpbmQ6IFwiZXhhY3RcIiwgbm9kZTogc3RhdGVtZW50LCBwYXRoLCByb2xlOiBcIm9wZXJhdG9yXCJ9KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCIgXCIsIFwiYXNzaWdubWVudCBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgZW1pdEV4cHJlc3Npb24od3JpdGVyLCBzdGF0ZW1lbnQuaW5pdGlhbGl6ZXIsIGAke3BhdGh9L2luaXRpYWxpemVyYCwgXCJrb3RsaW5cIiwgaWRlbnRpdHkpXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblwiLCBcImxpbmUgYnJlYWtcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICByZXR1cm5cbiAgfVxuICBpZiAoc3RhdGVtZW50LmtpbmQgPT0gXCJBc3NpZ25tZW50U3RhdGVtZW50XCIpIHtcbiAgICB3cml0ZXIubWFwcGVkKHN0YXRlbWVudC50YXJnZXQubmFtZSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHN0YXRlbWVudC50YXJnZXQsIHBhdGg6IGAke3BhdGh9L3RhcmdldGAsIHJvbGU6IFwibmFtZVwifSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImFzc2lnbm1lbnQgc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHdyaXRlci5tYXBwZWQoXCI9XCIsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGgsIHJvbGU6IFwib3BlcmF0b3JcIn0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJhc3NpZ25tZW50IHNwYWNpbmdcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICBlbWl0RXhwcmVzc2lvbih3cml0ZXIsIHN0YXRlbWVudC5leHByZXNzaW9uLCBgJHtwYXRofS9leHByZXNzaW9uYCwgXCJrb3RsaW5cIiwgaWRlbnRpdHkpXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIlxcblwiLCBcImxpbmUgYnJlYWtcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICByZXR1cm5cbiAgfVxuICBpZiAoc3RhdGVtZW50LmtpbmQgPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJLb3RsaW4gVGFzayAwMDUgZXhwcmVzc2lvbiBzdGF0ZW1lbnQgcmVhY2hlZCBlbWlzc2lvbi5cIilcbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiUmV0dXJuU3RhdGVtZW50XCIpIHtcbiAgICBpZiAoIXN0YXRlbWVudC5leHByZXNzaW9uKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiS290bGluIGJhcmUgcmV0dXJuIHJlYWNoZWQgZW1pc3Npb24uXCIpXG4gICAgd3JpdGVyLm1hcHBlZChcInJldHVyblwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aH0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJyZXR1cm4gc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmV4cHJlc3Npb24sIGAke3BhdGh9L2V4cHJlc3Npb25gLCBcImtvdGxpblwiLCBpZGVudGl0eSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHJldHVyblxuICB9XG4gIGlmIChzdGF0ZW1lbnQua2luZCA9PSBcIlByaW50U3RhdGVtZW50XCIpIHtcbiAgICB3cml0ZXIuc3ludGhldGljKFwicHJpbnRsbihcIiwgXCJLb3RsaW4gcHJpbnRsbiBwbHVtYmluZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmV4cHJlc3Npb24sIGAke3BhdGh9L2V4cHJlc3Npb25gLCBcImtvdGxpblwiLCBpZGVudGl0eSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiKVxcblwiLCBcIktvdGxpbiBwcmludGxuIHBsdW1iaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHN0YXRlbWVudC5raW5kICE9IFwiSWZTdGF0ZW1lbnRcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVuc3VwcG9ydGVkIEtvdGxpbiBzdGF0ZW1lbnQgcmVhY2hlZCBlbWlzc2lvbi5cIilcbiAgd3JpdGVyLm1hcHBlZChcImlmXCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogc3RhdGVtZW50LCBwYXRofSlcbiAgd3JpdGVyLnN5bnRoZXRpYyhcIiAoXCIsIFwiS290bGluIGNvbmRpdGlvbmFsIHNjYWZmb2xkXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmNvbmRpdGlvbiwgYCR7cGF0aH0vY29uZGl0aW9uYCwgXCJrb3RsaW5cIiwgaWRlbnRpdHkpXG4gIHdyaXRlci5zeW50aGV0aWMoXCIpIHtcXG5cIiwgXCJLb3RsaW4gY29uZGl0aW9uYWwgc2NhZmZvbGRcIiwgW3N0YXRlbWVudC5jb25zZXF1ZW50XSwgW2Ake3BhdGh9L2NvbnNlcXVlbnRgXSlcbiAgZW1pdEJsb2NrKHdyaXRlciwgc3RhdGVtZW50LmNvbnNlcXVlbnQsIGAke2luZGVudH0gIGAsIGAke3BhdGh9L2NvbnNlcXVlbnRgKVxuICB3cml0ZXIuc3ludGhldGljKGAke2luZGVudH19YCwgXCJLb3RsaW4gY29uZGl0aW9uYWwgc2NhZmZvbGRcIiwgW3N0YXRlbWVudC5jb25zZXF1ZW50XSwgW2Ake3BhdGh9L2NvbnNlcXVlbnRgXSlcbiAgaWYgKHN0YXRlbWVudC5hbHRlcm5hdGUpIHtcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIGVsc2Uge1xcblwiLCBcIktvdGxpbiBhbHRlcm5hdGUgc2NhZmZvbGRcIiwgW3N0YXRlbWVudC5hbHRlcm5hdGVdLCBbYCR7cGF0aH0vYWx0ZXJuYXRlYF0pXG4gICAgZW1pdEJsb2NrKHdyaXRlciwgc3RhdGVtZW50LmFsdGVybmF0ZSwgYCR7aW5kZW50fSAgYCwgYCR7cGF0aH0vYWx0ZXJuYXRlYClcbiAgICB3cml0ZXIuc3ludGhldGljKGAke2luZGVudH19YCwgXCJLb3RsaW4gYWx0ZXJuYXRlIHNjYWZmb2xkXCIsIFtzdGF0ZW1lbnQuYWx0ZXJuYXRlXSwgW2Ake3BhdGh9L2FsdGVybmF0ZWBdKVxuICB9XG4gIHdyaXRlci5zeW50aGV0aWMoXCJcXG5cIiwgXCJsaW5lIGJyZWFrXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG59XG5cbi8qKlxuICogUHJlc2VydmVzIGFuIGVtaXR0ZWQgS290bGluIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIElkZW50aWZpZXIgc3BlbGxpbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBVbmNoYW5nZWQgc3BlbGxpbmcuXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5KG5hbWUpIHtcbiAgcmV0dXJuIG5hbWVcbn1cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia290bGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmRzL2tvdGxpbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQTtBQUVqRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2xELFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3RCLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxTQUFTO1lBQ3pHLGtCQUFrQixFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDekQsU0FBUyxFQUFFLElBQUk7UUFDZixlQUFlLEVBQUUsS0FBSztRQUN0QixNQUFNLEVBQUUsYUFBYTtRQUNyQixTQUFTLEVBQUUsU0FBUztRQUNwQixPQUFPLEVBQUUsUUFBUTtLQUNsQixDQUFDO0lBQ0YsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBQyxDQUFDO0NBQ2xILENBQUMsQ0FBQTtBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNO0lBQzNDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLHlDQUF5QyxF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Q0FBQyxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQTtRQUN4RyxlQUFlLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxHQUFHLElBQUksWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQzdGLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLEdBQUcsRUFBRSwyQkFBMkIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQzNHLENBQUM7SUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDM0QsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxJQUFJO0lBQ3BCLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge2VtaXRFeHByZXNzaW9ufSBmcm9tIFwiLi9zaGFyZWQuanNcIlxuaW1wb3J0IHtlbWl0U2NhbGFyVHlwZX0gZnJvbSBcIi4vc2NhbGFycy5qc1wiXG5pbXBvcnQge2tvdGxpblJ1bnRpbWV9IGZyb20gXCIuL2tvdGxpbi1ydW50aW1lLmpzXCJcblxuZXhwb3J0IGNvbnN0IGtvdGxpbkFydGlmYWN0TWV0YWRhdGEgPSBPYmplY3QuZnJlZXplKHtcbiAgY29tcGlsZXI6IE9iamVjdC5mcmVlemUoe1xuICAgIGFwaVZlcnNpb246IFwiMi40XCIsXG4gICAgYXJndW1lbnRzOiBPYmplY3QuZnJlZXplKFtcIi1sYW5ndWFnZS12ZXJzaW9uXCIsIFwiMi40XCIsIFwiLWFwaS12ZXJzaW9uXCIsIFwiMi40XCIsIFwiLWp2bS10YXJnZXRcIiwgXCIyNVwiLCBcIi1XZXJyb3JcIixcbiAgICAgIFwiLWluY2x1ZGUtcnVudGltZVwiLCBcIlByb2dyYW0ua3RcIiwgXCItZFwiLCBcIlByb2dyYW0uamFyXCJdKSxcbiAgICBqdm1UYXJnZXQ6IFwiMjVcIixcbiAgICBsYW5ndWFnZVZlcnNpb246IFwiMi40XCIsXG4gICAgb3V0cHV0OiBcIlByb2dyYW0uamFyXCIsXG4gICAgdG9vbGNoYWluOiBcImtvdGxpbmNcIixcbiAgICB2ZXJzaW9uOiBcIjIuNC4yMFwiXG4gIH0pLFxuICBydW46IE9iamVjdC5mcmVlemUoe2FyZ3VtZW50czogT2JqZWN0LmZyZWV6ZShbXCItamFyXCIsIFwiUHJvZ3JhbS5qYXJcIl0pLCB0b29sY2hhaW46IFwiamF2YTI1XCIsIHZlcnNpb246IFwiMjUuMC40KzdcIn0pXG59KVxuXG4vKipcbiAqIEVtaXRzIG9uZSBkZXRlcm1pbmlzdGljIEtvdGxpbi9KVk0gcHJvZ3JhbSB0aHJvdWdoIHRoZSBzb3VyY2UtYXdhcmUgd3JpdGVyLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY01vZHVsZX0gbW9kdWxlIC0gVmFsaWRhdGVkIHNlbWFudGljIG1vZHVsZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi93cml0ZXIuanNcIikuU291cmNlV3JpdGVyfSB3cml0ZXIgLSBTb3VyY2UtYXdhcmUgd3JpdGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVLb3RsaW4obW9kdWxlLCB3cml0ZXIpIHtcbiAgd3JpdGVyLnN5bnRoZXRpYyhrb3RsaW5SdW50aW1lLCBcIkNoZWNrZWQgS290bGluL0pWTSBzYWZlLWludGVnZXIgc3VwcG9ydFwiLCBbbW9kdWxlXSwgW1wiXCJdKVxuXG4gIG1vZHVsZS5mdW5jdGlvbnMuZm9yRWFjaCgoZGVjbGFyYXRpb24sIGZ1bmN0aW9uSW5kZXgpID0+IHtcbiAgICBjb25zdCBwYXRoID0gYC9mdW5jdGlvbnMvJHtmdW5jdGlvbkluZGV4fWBcblxuICAgIHdyaXRlci5zeW50aGV0aWMoXCJcXG5cIiwgXCJkZWNsYXJhdGlvbiBzZXBhcmF0b3JcIiwgW2RlY2xhcmF0aW9uXSwgW3BhdGhdKVxuICAgIHdyaXRlci5tYXBwZWQoXCJmdW5cIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBkZWNsYXJhdGlvbiwgcGF0aH0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJkZWNsYXJhdGlvbiBzcGFjaW5nXCIsIFtkZWNsYXJhdGlvbl0sIFtwYXRoXSlcbiAgICB3cml0ZXIubWFwcGVkKGRlY2xhcmF0aW9uLm5hbWUsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBkZWNsYXJhdGlvbiwgcGF0aCwgcm9sZTogXCJuYW1lXCJ9KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCIoXCIsIFwiZnVuY3Rpb24gcGFyYW1ldGVyIHNjYWZmb2xkXCIsIFtkZWNsYXJhdGlvbl0sIFtwYXRoXSlcbiAgICBkZWNsYXJhdGlvbi5wYXJhbWV0ZXJzLmZvckVhY2goKHBhcmFtZXRlciwgcGFyYW1ldGVySW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wYXJhbWV0ZXJzLyR7cGFyYW1ldGVySW5kZXh9YFxuXG4gICAgICBpZiAocGFyYW1ldGVySW5kZXgpIHdyaXRlci5zeW50aGV0aWMoXCIsIFwiLCBcInBhcmFtZXRlciBzZXBhcmF0b3JcIiwgW3BhcmFtZXRlcl0sIFtwYXJhbWV0ZXJQYXRoXSlcbiAgICAgIHdyaXRlci5tYXBwZWQocGFyYW1ldGVyLm5hbWUsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBwYXJhbWV0ZXIsIHBhdGg6IHBhcmFtZXRlclBhdGgsIHJvbGU6IFwibmFtZVwifSlcbiAgICAgIHdyaXRlci5zeW50aGV0aWMoXCI6IFwiLCBcInBhcmFtZXRlciBhbm5vdGF0aW9uIHNjYWZmb2xkXCIsIFtwYXJhbWV0ZXJdLCBbcGFyYW1ldGVyUGF0aF0pXG4gICAgICB3cml0ZXIubWFwcGVkKGVtaXRTY2FsYXJUeXBlKFwia290bGluXCIsIHBhcmFtZXRlci50eXBlKSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHBhcmFtZXRlci50eXBlLFxuICAgICAgICBwYXRoOiBgJHtwYXJhbWV0ZXJQYXRofS90eXBlYCwgcm9sZTogXCJ0eXBlXCJ9KVxuICAgIH0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIik6IFwiLCBcImZ1bmN0aW9uIHJldHVybiBzY2FmZm9sZFwiLCBbZGVjbGFyYXRpb25dLCBbcGF0aF0pXG4gICAgd3JpdGVyLm1hcHBlZChlbWl0U2NhbGFyVHlwZShcImtvdGxpblwiLCBkZWNsYXJhdGlvbi5yZXR1cm5UeXBlKSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IGRlY2xhcmF0aW9uLnJldHVyblR5cGUsXG4gICAgICBwYXRoOiBgJHtwYXRofS9yZXR1cm5UeXBlYCwgcm9sZTogXCJ0eXBlXCJ9KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCIge1xcblwiLCBcIktvdGxpbiBmdW5jdGlvbiBib2R5IHNjYWZmb2xkXCIsIFtkZWNsYXJhdGlvbl0sIFtwYXRoXSlcbiAgICBlbWl0S290bGluQmxvY2sod3JpdGVyLCBkZWNsYXJhdGlvbi5ib2R5LCBcIiAgXCIsIGAke3BhdGh9L2JvZHlgKVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCJ9XFxuXCIsIFwiS290bGluIGZ1bmN0aW9uIGJvZHkgc2NhZmZvbGRcIiwgW2RlY2xhcmF0aW9uXSwgW3BhdGhdKVxuICB9KVxuXG4gIHdyaXRlci5zeW50aGV0aWMoXCJcXG5mdW4gbWFpbigpIHtcXG5cIiwgXCJLb3RsaW4gZ2VuZXJhdGVkIG1haW4gc2NhZmZvbGRcIiwgW21vZHVsZS5lbnRyeVBvaW50XSwgW1wiL2VudHJ5UG9pbnRcIl0pXG4gIGVtaXRLb3RsaW5CbG9jayh3cml0ZXIsIG1vZHVsZS5lbnRyeVBvaW50LmJvZHksIFwiICBcIiwgXCIvZW50cnlQb2ludC9ib2R5XCIpXG4gIHdyaXRlci5zeW50aGV0aWMoXCJ9XFxuXCIsIFwiS290bGluIGdlbmVyYXRlZCBtYWluIHNjYWZmb2xkXCIsIFttb2R1bGUuZW50cnlQb2ludF0sIFtcIi9lbnRyeVBvaW50XCJdKVxufVxuXG4vKipcbiAqIEVtaXRzIG9uZSBLb3RsaW4gc3RhdGVtZW50IGJsb2NrLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3dyaXRlci5qc1wiKS5Tb3VyY2VXcml0ZXJ9IHdyaXRlciAtIFNvdXJjZS1hd2FyZSB3cml0ZXIuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkJsb2NrfSBibG9jayAtIFNlbWFudGljIGJsb2NrLlxuICogQHBhcmFtIHtzdHJpbmd9IGluZGVudCAtIEN1cnJlbnQgaW5kZW50YXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFNlbWFudGljIGJsb2NrIHBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gW3ByaW50VGFyZ2V0XSAtIFRhcmdldC1vd25lZCBwcmludCBmdW5jdGlvbiBzcGVsbGluZy5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdEtvdGxpbkJsb2NrKHdyaXRlciwgYmxvY2ssIGluZGVudCwgcGF0aCwgcHJpbnRUYXJnZXQgPSBcInByaW50bG5cIikge1xuICBibG9jay5zdGF0ZW1lbnRzLmZvckVhY2goKHN0YXRlbWVudCwgaW5kZXgpID0+XG4gICAgZW1pdEtvdGxpblN0YXRlbWVudCh3cml0ZXIsIHN0YXRlbWVudCwgaW5kZW50LCBgJHtwYXRofS9zdGF0ZW1lbnRzLyR7aW5kZXh9YCwgcHJpbnRUYXJnZXQpKVxufVxuXG4vKipcbiAqIEVtaXRzIG9uZSBLb3RsaW4gc3RhdGVtZW50LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3dyaXRlci5qc1wiKS5Tb3VyY2VXcml0ZXJ9IHdyaXRlciAtIFNvdXJjZS1hd2FyZSB3cml0ZXIuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlN0YXRlbWVudH0gc3RhdGVtZW50IC0gU2VtYW50aWMgc3RhdGVtZW50LlxuICogQHBhcmFtIHtzdHJpbmd9IGluZGVudCAtIEN1cnJlbnQgaW5kZW50YXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFNlbWFudGljIHN0YXRlbWVudCBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IHByaW50VGFyZ2V0IC0gVGFyZ2V0LW93bmVkIHByaW50IGZ1bmN0aW9uIHNwZWxsaW5nLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGVtaXRLb3RsaW5TdGF0ZW1lbnQod3JpdGVyLCBzdGF0ZW1lbnQsIGluZGVudCwgcGF0aCwgcHJpbnRUYXJnZXQpIHtcbiAgd3JpdGVyLnN5bnRoZXRpYyhpbmRlbnQsIFwiaW5kZW50YXRpb25cIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiTG9jYWxEZWNsYXJhdGlvblwiKSB7XG4gICAgd3JpdGVyLm1hcHBlZChzdGF0ZW1lbnQubXV0YWJsZSA/IFwidmFyXCIgOiBcInZhbFwiLCB7bWFwcGluZ0tpbmQ6IFwiYW5jaG9yXCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aH0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJkZWNsYXJhdGlvbiBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgd3JpdGVyLm1hcHBlZChzdGF0ZW1lbnQubmFtZSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aCwgcm9sZTogXCJuYW1lXCJ9KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCI6IFwiLCBcImxvY2FsIGFubm90YXRpb24gc2NhZmZvbGRcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICB3cml0ZXIubWFwcGVkKGVtaXRTY2FsYXJUeXBlKFwia290bGluXCIsIHN0YXRlbWVudC50eXBlKSwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHN0YXRlbWVudC50eXBlLFxuICAgICAgcGF0aDogYCR7cGF0aH0vdHlwZWAsIHJvbGU6IFwidHlwZVwifSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImFzc2lnbm1lbnQgc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHdyaXRlci5tYXBwZWQoXCI9XCIsIHttYXBwaW5nS2luZDogXCJleGFjdFwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGgsIHJvbGU6IFwib3BlcmF0b3JcIn0pXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhcIiBcIiwgXCJhc3NpZ25tZW50IHNwYWNpbmdcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICBlbWl0RXhwcmVzc2lvbih3cml0ZXIsIHN0YXRlbWVudC5pbml0aWFsaXplciwgYCR7cGF0aH0vaW5pdGlhbGl6ZXJgLCBcImtvdGxpblwiLCBpZGVudGl0eSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHJldHVyblxuICB9XG4gIGlmIChzdGF0ZW1lbnQua2luZCA9PSBcIkFzc2lnbm1lbnRTdGF0ZW1lbnRcIikge1xuICAgIHdyaXRlci5tYXBwZWQoc3RhdGVtZW50LnRhcmdldC5uYW1lLCB7bWFwcGluZ0tpbmQ6IFwiZXhhY3RcIiwgbm9kZTogc3RhdGVtZW50LnRhcmdldCwgcGF0aDogYCR7cGF0aH0vdGFyZ2V0YCwgcm9sZTogXCJuYW1lXCJ9KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCIgXCIsIFwiYXNzaWdubWVudCBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgd3JpdGVyLm1hcHBlZChcIj1cIiwge21hcHBpbmdLaW5kOiBcImV4YWN0XCIsIG5vZGU6IHN0YXRlbWVudCwgcGF0aCwgcm9sZTogXCJvcGVyYXRvclwifSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcImFzc2lnbm1lbnQgc3BhY2luZ1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIGVtaXRFeHByZXNzaW9uKHdyaXRlciwgc3RhdGVtZW50LmV4cHJlc3Npb24sIGAke3BhdGh9L2V4cHJlc3Npb25gLCBcImtvdGxpblwiLCBpZGVudGl0eSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxuICAgIHJldHVyblxuICB9XG4gIGlmIChzdGF0ZW1lbnQua2luZCA9PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIktvdGxpbiBUYXNrIDAwNSBleHByZXNzaW9uIHN0YXRlbWVudCByZWFjaGVkIGVtaXNzaW9uLlwiKVxuICBpZiAoc3RhdGVtZW50LmtpbmQgPT0gXCJSZXR1cm5TdGF0ZW1lbnRcIikge1xuICAgIGlmICghc3RhdGVtZW50LmV4cHJlc3Npb24pIHRocm93IG5ldyBUeXBlRXJyb3IoXCJLb3RsaW4gYmFyZSByZXR1cm4gcmVhY2hlZCBlbWlzc2lvbi5cIilcbiAgICB3cml0ZXIubWFwcGVkKFwicmV0dXJuXCIsIHttYXBwaW5nS2luZDogXCJhbmNob3JcIiwgbm9kZTogc3RhdGVtZW50LCBwYXRofSlcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIFwiLCBcInJldHVybiBzcGFjaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgZW1pdEV4cHJlc3Npb24od3JpdGVyLCBzdGF0ZW1lbnQuZXhwcmVzc2lvbiwgYCR7cGF0aH0vZXhwcmVzc2lvbmAsIFwia290bGluXCIsIGlkZW50aXR5KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCJcXG5cIiwgXCJsaW5lIGJyZWFrXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHN0YXRlbWVudC5raW5kID09IFwiUHJpbnRTdGF0ZW1lbnRcIikge1xuICAgIHdyaXRlci5zeW50aGV0aWMoYCR7cHJpbnRUYXJnZXR9KGAsIFwiS290bGluIHByaW50IHBsdW1iaW5nXCIsIFtzdGF0ZW1lbnRdLCBbcGF0aF0pXG4gICAgZW1pdEV4cHJlc3Npb24od3JpdGVyLCBzdGF0ZW1lbnQuZXhwcmVzc2lvbiwgYCR7cGF0aH0vZXhwcmVzc2lvbmAsIFwia290bGluXCIsIGlkZW50aXR5KVxuICAgIHdyaXRlci5zeW50aGV0aWMoXCIpXFxuXCIsIFwiS290bGluIHByaW50bG4gcGx1bWJpbmdcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgICByZXR1cm5cbiAgfVxuICBpZiAoc3RhdGVtZW50LmtpbmQgIT0gXCJJZlN0YXRlbWVudFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5zdXBwb3J0ZWQgS290bGluIHN0YXRlbWVudCByZWFjaGVkIGVtaXNzaW9uLlwiKVxuICB3cml0ZXIubWFwcGVkKFwiaWZcIiwge21hcHBpbmdLaW5kOiBcImFuY2hvclwiLCBub2RlOiBzdGF0ZW1lbnQsIHBhdGh9KVxuICB3cml0ZXIuc3ludGhldGljKFwiIChcIiwgXCJLb3RsaW4gY29uZGl0aW9uYWwgc2NhZmZvbGRcIiwgW3N0YXRlbWVudF0sIFtwYXRoXSlcbiAgZW1pdEV4cHJlc3Npb24od3JpdGVyLCBzdGF0ZW1lbnQuY29uZGl0aW9uLCBgJHtwYXRofS9jb25kaXRpb25gLCBcImtvdGxpblwiLCBpZGVudGl0eSlcbiAgd3JpdGVyLnN5bnRoZXRpYyhcIikge1xcblwiLCBcIktvdGxpbiBjb25kaXRpb25hbCBzY2FmZm9sZFwiLCBbc3RhdGVtZW50LmNvbnNlcXVlbnRdLCBbYCR7cGF0aH0vY29uc2VxdWVudGBdKVxuICBlbWl0S290bGluQmxvY2sod3JpdGVyLCBzdGF0ZW1lbnQuY29uc2VxdWVudCwgYCR7aW5kZW50fSAgYCwgYCR7cGF0aH0vY29uc2VxdWVudGAsIHByaW50VGFyZ2V0KVxuICB3cml0ZXIuc3ludGhldGljKGAke2luZGVudH19YCwgXCJLb3RsaW4gY29uZGl0aW9uYWwgc2NhZmZvbGRcIiwgW3N0YXRlbWVudC5jb25zZXF1ZW50XSwgW2Ake3BhdGh9L2NvbnNlcXVlbnRgXSlcbiAgaWYgKHN0YXRlbWVudC5hbHRlcm5hdGUpIHtcbiAgICB3cml0ZXIuc3ludGhldGljKFwiIGVsc2Uge1xcblwiLCBcIktvdGxpbiBhbHRlcm5hdGUgc2NhZmZvbGRcIiwgW3N0YXRlbWVudC5hbHRlcm5hdGVdLCBbYCR7cGF0aH0vYWx0ZXJuYXRlYF0pXG4gICAgZW1pdEtvdGxpbkJsb2NrKHdyaXRlciwgc3RhdGVtZW50LmFsdGVybmF0ZSwgYCR7aW5kZW50fSAgYCwgYCR7cGF0aH0vYWx0ZXJuYXRlYCwgcHJpbnRUYXJnZXQpXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhgJHtpbmRlbnR9fWAsIFwiS290bGluIGFsdGVybmF0ZSBzY2FmZm9sZFwiLCBbc3RhdGVtZW50LmFsdGVybmF0ZV0sIFtgJHtwYXRofS9hbHRlcm5hdGVgXSlcbiAgfVxuICB3cml0ZXIuc3ludGhldGljKFwiXFxuXCIsIFwibGluZSBicmVha1wiLCBbc3RhdGVtZW50XSwgW3BhdGhdKVxufVxuXG4vKipcbiAqIFByZXNlcnZlcyBhbiBlbWl0dGVkIEtvdGxpbiBpZGVudGlmaWVyLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBJZGVudGlmaWVyIHNwZWxsaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gVW5jaGFuZ2VkIHNwZWxsaW5nLlxuICovXG5mdW5jdGlvbiBpZGVudGl0eShuYW1lKSB7XG4gIHJldHVybiBuYW1lXG59XG4iXX0=
@@ -27,16 +27,18 @@ export declare function preflightSemanticProgram({ backendLanguage, diagnosticLa
27
27
  * @param {import("../semantic/types.js").BackendLanguage} input.language - Registered program target.
28
28
  * @param {import("../semantic/types.js").SemanticProgram} input.program - Complete semantic program.
29
29
  * @param {"text" | "application"} [input.role] - Explicit artifact role; omitted preserves text generation.
30
- * @param {import("../semantic/types.js").IosApplicationConfigurationInput} [input.configuration] - iOS application configuration.
31
- * @param {import("../semantic/types.js").IosApplicationAssetInput[]} [input.assets] - Exact iOS caller assets.
30
+ * @param {import("../semantic/types.js").IosApplicationConfigurationInput | import("../semantic/types.js").AndroidApplicationConfigurationInput} [input.configuration] - Application configuration.
31
+ * @param {import("../semantic/types.js").IosApplicationAssetInput[] | import("../semantic/types.js").AndroidApplicationInputFile[]} [input.assets] - Exact caller assets.
32
+ * @param {import("../semantic/types.js").AndroidApplicationInputFile[]} [input.resources] - Exact Android caller resources.
32
33
  * @returns {import("../semantic/types.js").GeneratedArtifactSet} Transactionally validated artifact set.
33
34
  */
34
35
  export declare function generateProgramArtifacts(input: {
35
36
  language: import("../semantic/types.js").BackendLanguage;
36
37
  program: import("../semantic/types.js").SemanticProgram;
37
38
  role?: "text" | "application";
38
- configuration?: import("../semantic/types.js").IosApplicationConfigurationInput;
39
- assets?: import("../semantic/types.js").IosApplicationAssetInput[];
39
+ configuration?: import("../semantic/types.js").IosApplicationConfigurationInput | import("../semantic/types.js").AndroidApplicationConfigurationInput;
40
+ assets?: import("../semantic/types.js").IosApplicationAssetInput[] | import("../semantic/types.js").AndroidApplicationInputFile[];
41
+ resources?: import("../semantic/types.js").AndroidApplicationInputFile[];
40
42
  }): import("../semantic/types.js").GeneratedArtifactSet;
41
43
  export type StdlibProgramLinking = {
42
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/backends/program.js"],"names":[],"mappings":"AA2BA;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,EAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAC,EANhH;IAA+D,eAAe,EAAtE,OAAO,sBAAsB,EAAE,gBAAgB,CACvD;IAA8D,kBAAkB,EAAxE,OAAO,sBAAsB,EAAE,eAAe,CACtD;IAA8D,OAAO,EAA7D,OAAO,sBAAsB,EAAE,eAAe,CACtD;IAA+E,eAAe,AAA9F,CACA,EADQ,QAAQ,CAAC,GAAG,CAAC,OAAO,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,CACtE;CAEgH,GAFtG;IAAC,OAAO,EAAE,OAAO,sBAAsB,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,sBAAsB,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAA;KAAC,EAAE,CAAA;CAAC,CA4B3O;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAP3C;IAA8D,QAAQ,EAA9D,OAAO,sBAAsB,EAAE,eAAe,CACtD;IAA8D,OAAO,EAA7D,OAAO,sBAAsB,EAAE,eAAe,CACtD;IAAuC,IAAI,AAA3C,CACA,EADQ,MAAM,GAAG,aAAa,CAC9B;IAAgF,aAAa,AAA7F,CACA,EADQ,OAAO,sBAAsB,EAAE,gCAAgC,CACvE;IAA0E,MAAM,AAAhF,CACA,EADQ,OAAO,sBAAsB,EAAE,wBAAwB,EAAE,CACjE;CAE2C,GAFjC,OAAO,sBAAsB,EAAE,oBAAoB,CAqH/D;AAGE,YAAS,oBAAoB,GAC7B;;;;IAAuE,WAAW,EAAvE,OAAO,0BAA0B,EAAE,uBAAuB,CACrE;;;;IAA+E,OAAO,EAA3E,GAAG,CAAC,MAAM,EAAE,OAAO,wBAAwB,EAAE,oBAAoB,CAAC,CAC7E;;;;IAAuC,cAAc,EAA1C,wBAAwB,EAAE,CACrC;;;;IAAoD,sBAAsB,EAA/D,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAClD;;;;IAAkC,uBAAuB,EAA9C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAChC;;;;IAAkC,qBAAqB,EAA5C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAChC;;;;IAA0B,aAAa,EAA5B,MAAM,GAAG,IAAI,CAC1B;CAAA,CAAA;AAGE,YAAS,wBAAwB,GACjC;;;;IAAmB,MAAM,EAAd,MAAM,CACjB;;;;IAAmB,SAAS,EAAjB,MAAM,CACnB;CAAA,CAAA"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/backends/program.js"],"names":[],"mappings":"AA2BA;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,EAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAC,EANhH;IAA+D,eAAe,EAAtE,OAAO,sBAAsB,EAAE,gBAAgB,CACvD;IAA8D,kBAAkB,EAAxE,OAAO,sBAAsB,EAAE,eAAe,CACtD;IAA8D,OAAO,EAA7D,OAAO,sBAAsB,EAAE,eAAe,CACtD;IAA+E,eAAe,AAA9F,CACA,EADQ,QAAQ,CAAC,GAAG,CAAC,OAAO,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,CACtE;CAEgH,GAFtG;IAAC,OAAO,EAAE,OAAO,sBAAsB,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,sBAAsB,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAA;KAAC,EAAE,CAAA;CAAC,CA4B3O;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAR3C;IAA8D,QAAQ,EAA9D,OAAO,sBAAsB,EAAE,eAAe,CACtD;IAA8D,OAAO,EAA7D,OAAO,sBAAsB,EAAE,eAAe,CACtD;IAAuC,IAAI,AAA3C,CACA,EADQ,MAAM,GAAG,aAAa,CAC9B;IAAsJ,aAAa,AAAnK,CACA,EADQ,OAAO,sBAAsB,EAAE,gCAAgC,GAAG,OAAO,sBAAsB,EAAE,oCAAoC,CAC7I;IAAyI,MAAM,AAA/I,CACA,EADQ,OAAO,sBAAsB,EAAE,wBAAwB,EAAE,GAAG,OAAO,sBAAsB,EAAE,2BAA2B,EAAE,CAChI;IAA6E,SAAS,AAAtF,CACA,EADQ,OAAO,sBAAsB,EAAE,2BAA2B,EAAE,CACpE;CAE2C,GAFjC,OAAO,sBAAsB,EAAE,oBAAoB,CAqH/D;AAGE,YAAS,oBAAoB,GAC7B;;;;IAAuE,WAAW,EAAvE,OAAO,0BAA0B,EAAE,uBAAuB,CACrE;;;;IAA+E,OAAO,EAA3E,GAAG,CAAC,MAAM,EAAE,OAAO,wBAAwB,EAAE,oBAAoB,CAAC,CAC7E;;;;IAAuC,cAAc,EAA1C,wBAAwB,EAAE,CACrC;;;;IAAoD,sBAAsB,EAA/D,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAClD;;;;IAAkC,uBAAuB,EAA9C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAChC;;;;IAAkC,qBAAqB,EAA5C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAChC;;;;IAA0B,aAAa,EAA5B,MAAM,GAAG,IAAI,CAC1B;CAAA,CAAA;AAGE,YAAS,wBAAwB,GACjC;;;;IAAmB,MAAM,EAAd,MAAM,CACjB;;;;IAAmB,SAAS,EAAjB,MAAM,CACnB;CAAA,CAAA"}