footprintjs 3.0.21 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CLAUDE.md +2 -0
  2. package/dist/esm/lib/builder/FlowChartBuilder.js +3 -3
  3. package/dist/esm/lib/builder/typedFlowChart.js +16 -5
  4. package/dist/esm/lib/builder/types.js +1 -1
  5. package/dist/esm/lib/contract/defineContract.js +33 -7
  6. package/dist/esm/lib/contract/openapi.js +12 -33
  7. package/dist/esm/lib/contract/types.js +1 -1
  8. package/dist/esm/lib/decide/decide.js +33 -3
  9. package/dist/esm/lib/decide/types.js +1 -1
  10. package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +19 -7
  11. package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +4 -2
  12. package/dist/esm/lib/engine/narrative/ControlFlowNarrativeGenerator.js +4 -2
  13. package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +325 -266
  14. package/dist/esm/lib/engine/types.js +1 -1
  15. package/dist/esm/lib/memory/StageContext.js +15 -3
  16. package/dist/esm/lib/memory/pathOps.js +31 -3
  17. package/dist/esm/lib/memory/utils.js +30 -10
  18. package/dist/esm/lib/runner/FlowChartExecutor.js +79 -6
  19. package/dist/esm/lib/runner/index.js +1 -1
  20. package/dist/esm/lib/scope/ScopeFacade.js +36 -7
  21. package/dist/esm/lib/scope/providers/baseStateCompatible.js +2 -2
  22. package/dist/esm/lib/scope/providers/types.js +1 -1
  23. package/dist/esm/lib/scope/types.js +1 -1
  24. package/dist/lib/builder/FlowChartBuilder.js +3 -3
  25. package/dist/lib/builder/typedFlowChart.js +16 -5
  26. package/dist/lib/builder/types.js +1 -1
  27. package/dist/lib/contract/defineContract.js +33 -7
  28. package/dist/lib/contract/openapi.js +12 -33
  29. package/dist/lib/contract/types.js +1 -1
  30. package/dist/lib/decide/decide.js +33 -3
  31. package/dist/lib/decide/types.js +1 -1
  32. package/dist/lib/engine/handlers/RuntimeStructureManager.js +19 -7
  33. package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +4 -2
  34. package/dist/lib/engine/narrative/ControlFlowNarrativeGenerator.js +4 -2
  35. package/dist/lib/engine/traversal/FlowchartTraverser.js +325 -266
  36. package/dist/lib/engine/types.js +1 -1
  37. package/dist/lib/memory/StageContext.js +15 -3
  38. package/dist/lib/memory/pathOps.js +31 -3
  39. package/dist/lib/memory/utils.js +30 -10
  40. package/dist/lib/runner/FlowChartExecutor.js +79 -6
  41. package/dist/lib/runner/index.js +1 -1
  42. package/dist/lib/scope/ScopeFacade.js +36 -7
  43. package/dist/lib/scope/providers/baseStateCompatible.js +2 -2
  44. package/dist/lib/scope/providers/types.js +1 -1
  45. package/dist/lib/scope/types.js +1 -1
  46. package/dist/types/lib/builder/typedFlowChart.d.ts +15 -4
  47. package/dist/types/lib/builder/types.d.ts +10 -1
  48. package/dist/types/lib/contract/openapi.d.ts +9 -3
  49. package/dist/types/lib/contract/types.d.ts +13 -2
  50. package/dist/types/lib/decide/decide.d.ts +10 -0
  51. package/dist/types/lib/decide/types.d.ts +20 -0
  52. package/dist/types/lib/engine/handlers/RuntimeStructureManager.d.ts +2 -1
  53. package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +47 -0
  54. package/dist/types/lib/engine/types.d.ts +9 -2
  55. package/dist/types/lib/memory/StageContext.d.ts +12 -0
  56. package/dist/types/lib/memory/pathOps.d.ts +26 -2
  57. package/dist/types/lib/memory/utils.d.ts +16 -3
  58. package/dist/types/lib/runner/FlowChartExecutor.d.ts +98 -3
  59. package/dist/types/lib/runner/index.d.ts +1 -0
  60. package/dist/types/lib/scope/ScopeFacade.d.ts +18 -1
  61. package/dist/types/lib/scope/providers/types.d.ts +6 -0
  62. package/dist/types/lib/scope/types.d.ts +7 -1
  63. package/package.json +1 -1
@@ -10,4 +10,4 @@
10
10
  * The builder remains standalone at runtime.
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogYnVpbGRlci90eXBlcy50cyDigJQgQWxsIHR5cGVzIHVzZWQgYnkgdGhlIGJ1aWxkZXIgbGlicmFyeS5cbiAqXG4gKiBTaGFyZWQgdHlwZXMgKFN0YWdlTm9kZSwgU3RhZ2VGdW5jdGlvbiwgZXRjLikgYXJlIGltcG9ydGVkIGZyb20gdGhlIGVuZ2luZS5cbiAqIEJ1aWxkZXItc3BlY2lmaWMgdHlwZXMgKEZsb3dDaGFydFNwZWMsIEZsb3dDaGFydCwgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlKVxuICogYXJlIGRlZmluZWQgbG9jYWxseSDigJQgdGhleSBjYXJyeSBidWlsZGVyLW9ubHkgZmllbGRzIChkZXNjcmlwdGlvbiwgb3V0cHV0TWFwcGVyLCBldGMuKS5cbiAqXG4gKiBOT1RFOiBBbGwgZW5naW5lIGltcG9ydHMgYXJlIGBpbXBvcnQgdHlwZWAg4oCUIHplcm8gcnVudGltZSBkZXBlbmRlbmN5LlxuICogVGhlIGJ1aWxkZXIgcmVtYWlucyBzdGFuZGFsb25lIGF0IHJ1bnRpbWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9lbmdpbmUvZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgSUxvZ2dlciwgU2NvcGVGYWN0b3J5LCBTdGFnZUZ1bmN0aW9uLCBUcmF2ZXJzYWxFeHRyYWN0b3IgfSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vc2NvcGUvcHJvdGVjdGlvbi90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gUmUtZXhwb3J0cyBmcm9tIGVuZ2luZSAoY2Fub25pY2FsIGRlZmluaXRpb25zKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZW5naW5lL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIElMb2dnZXIsXG4gIFN0YWdlRnVuY3Rpb24sXG4gIFN0cmVhbUNhbGxiYWNrLFxuICBTdHJlYW1IYW5kbGVycyxcbiAgU3RyZWFtTGlmZWN5Y2xlSGFuZGxlcixcbiAgU3RyZWFtVG9rZW5IYW5kbGVyLFxuICBTdWJmbG93TW91bnRPcHRpb25zLFxufSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEFsaWFzZXNcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKiogUmVsYXhlZC1nZW5lcmljIGFsaWFzIGZvciBidWlsZGVyIGVyZ29ub21pY3MuICovXG5leHBvcnQgdHlwZSBTdGFnZUZuID0gU3RhZ2VGdW5jdGlvbjxhbnksIGFueT47XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2NvcGUgUHJvdGVjdGlvbiDigJQgY2Fub25pY2FsIGRlZmluaXRpb24gaW4gc2NvcGUvcHJvdGVjdGlvbi90eXBlcy50c1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIHsgU2NvcGVQcm90ZWN0aW9uTW9kZSB9O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFNlcmlhbGl6ZWQgUGlwZWxpbmUgU3RydWN0dXJlIChKU09OLXNhZmUsIGZvciB2aXN1YWxpemF0aW9uKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgdHlwZTogJ3N0YWdlJyB8ICdkZWNpZGVyJyB8ICdmb3JrJyB8ICdzdHJlYW1pbmcnO1xuICAvKiogU2VtYW50aWMgaWNvbiBoaW50IGZvciB2aXN1YWxpemF0aW9uIChlLmcuLCBcImxsbVwiLCBcInRvb2xcIiwgXCJyYWdcIiwgXCJhZ2VudFwiLCBcInN0YXJ0XCIpICovXG4gIGljb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZVtdO1xuICBuZXh0PzogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlO1xuICBoYXNEZWNpZGVyPzogYm9vbGVhbjtcbiAgaGFzU2VsZWN0b3I/OiBib29sZWFuO1xuICBicmFuY2hJZHM/OiBzdHJpbmdbXTtcbiAgbG9vcFRhcmdldD86IHN0cmluZztcbiAgaXNTdHJlYW1pbmc/OiBib29sZWFuO1xuICBzdHJlYW1JZD86IHN0cmluZztcbiAgaXNQYXJhbGxlbENoaWxkPzogYm9vbGVhbjtcbiAgcGFyYWxsZWxHcm91cElkPzogc3RyaW5nO1xuICBpc1N1YmZsb3dSb290PzogYm9vbGVhbjtcbiAgc3ViZmxvd0lkPzogc3RyaW5nO1xuICBzdWJmbG93TmFtZT86IHN0cmluZztcbiAgc3ViZmxvd1N0cnVjdHVyZT86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcbiAgaXRlcmF0aW9uQ291bnQ/OiBudW1iZXI7XG4gIC8qKiBUcnVlIHdoZW4gdGhpcyBzdWJmbG93IHVzZXMgbGF6eSByZXNvbHV0aW9uIChkZWZlcnJlZCB1bnRpbCBleGVjdXRpb24pLiAqL1xuICBpc0xhenk/OiBib29sZWFuO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEZsb3dDaGFydFNwZWMgKHB1cmUgSlNPTiwgbm8gZnVuY3Rpb25zIOKAlCBmb3IgRkXihpJCRSB0cmFuc3BvcnQpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q2hhcnRTcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgLyoqIFNlbWFudGljIGljb24gaGludCBmb3IgdmlzdWFsaXphdGlvbiAoZS5nLiwgXCJsbG1cIiwgXCJ0b29sXCIsIFwicmFnXCIsIFwiYWdlbnRcIiwgXCJzdGFydFwiKSAqL1xuICBpY29uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBGbG93Q2hhcnRTcGVjW107XG4gIG5leHQ/OiBGbG93Q2hhcnRTcGVjO1xuICBoYXNEZWNpZGVyPzogYm9vbGVhbjtcbiAgaGFzU2VsZWN0b3I/OiBib29sZWFuO1xuICBicmFuY2hJZHM/OiBzdHJpbmdbXTtcbiAgbG9vcFRhcmdldD86IHN0cmluZztcbiAgaXNTdHJlYW1pbmc/OiBib29sZWFuO1xuICBzdHJlYW1JZD86IHN0cmluZztcbiAgaXNQYXJhbGxlbENoaWxkPzogYm9vbGVhbjtcbiAgcGFyYWxsZWxHcm91cElkPzogc3RyaW5nO1xuICBpc1N1YmZsb3dSb290PzogYm9vbGVhbjtcbiAgc3ViZmxvd0lkPzogc3RyaW5nO1xuICBzdWJmbG93TmFtZT86IHN0cmluZztcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBCdWlsZC1UaW1lIEV4dHJhY3RvclxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi8qKiBNZXRhZGF0YSBwcm92aWRlZCB0byB0aGUgYnVpbGQtdGltZSBleHRyYWN0b3IgZm9yIGVhY2ggbm9kZS4gKi9cbmV4cG9ydCB0eXBlIEJ1aWxkVGltZU5vZGVNZXRhZGF0YSA9IEZsb3dDaGFydFNwZWM7XG5cbmV4cG9ydCB0eXBlIEJ1aWxkVGltZUV4dHJhY3RvcjxUUmVzdWx0ID0gRmxvd0NoYXJ0U3BlYz4gPSAobWV0YWRhdGE6IEJ1aWxkVGltZU5vZGVNZXRhZGF0YSkgPT4gVFJlc3VsdDtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUcmF2ZXJzYWwgRXh0cmFjdG9yIChydW50aW1lKSDigJQgY2Fub25pY2FsIGRlZmluaXRpb24gbGl2ZXMgaW4gZW5naW5lL3R5cGVzLlxuLy8gUmUtZXhwb3J0ZWQgaGVyZSBzbyBjYWxsZXJzIGRvbid0IG5lZWQgdHdvIGltcG9ydCBwYXRocy5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSB7IFRyYXZlcnNhbEV4dHJhY3RvciB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRmxvd0NoYXJ0IOKAlCBjb21waWxlZCBvdXRwdXQgb2YgYnVpbGQoKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIEZsb3dDaGFydDxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+ID0ge1xuICByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPjtcbiAgc3RhZ2VNYXA6IE1hcDxzdHJpbmcsIFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPj47XG4gIGV4dHJhY3Rvcj86IFRyYXZlcnNhbEV4dHJhY3RvcjtcbiAgc3ViZmxvd3M/OiBSZWNvcmQ8c3RyaW5nLCB7IHJvb3Q6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+IH0+O1xuICBidWlsZFRpbWVTdHJ1Y3R1cmU6IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcbiAgZW5hYmxlTmFycmF0aXZlPzogYm9vbGVhbjtcbiAgbG9nZ2VyPzogSUxvZ2dlcjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhZ2VEZXNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBJbnB1dCBzY2hlbWEgKFpvZCBvciBKU09OIFNjaGVtYSkg4oCUIGRlY2xhcmVkIHZpYSBzZXRJbnB1dFNjaGVtYSgpIG9yIC5jb250cmFjdCgpLiAqL1xuICBpbnB1dFNjaGVtYT86IHVua25vd247XG4gIC8qKiBPdXRwdXQgc2NoZW1hIChab2Qgb3IgSlNPTiBTY2hlbWEpIOKAlCBkZWNsYXJlZCB2aWEgc2V0T3V0cHV0U2NoZW1hKCkgb3IgLmNvbnRyYWN0KCkuICovXG4gIG91dHB1dFNjaGVtYT86IHVua25vd247XG4gIC8qKiBPdXRwdXQgbWFwcGVyIOKAlCBleHRyYWN0cyByZXNwb25zZSBmcm9tIGZpbmFsIHNjb3BlLiAqL1xuICBvdXRwdXRNYXBwZXI/OiAoZmluYWxTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHVua25vd247XG4gIC8qKiBTY29wZSBmYWN0b3J5IOKAlCBhdXRvLWVtYmVkZGVkIGJ5IGZsb3dDaGFydDxUPigpLiBFeGVjdXRvciByZWFkcyB0aGlzIGlmIG5vIGZhY3RvcnkgcGFyYW0uICovXG4gIHNjb3BlRmFjdG9yeT86IFNjb3BlRmFjdG9yeTxUU2NvcGU+O1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTaW1wbGlmaWVkIFBhcmFsbGVsIFNwZWMgKGZvciBhZGRMaXN0T2ZGdW5jdGlvbilcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSBTaW1wbGlmaWVkUGFyYWxsZWxTcGVjPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4gPSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZm4/OiBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT47XG59O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEV4ZWNPcHRpb25zIChmb3IgZXhlY3V0ZSgpIGNvbnZlbmllbmNlIOKAlCB1c2VkIGJ5IHJ1bm5lciBsYXllcilcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSBFeGVjT3B0aW9ucyA9IHtcbiAgZGVmYXVsdHM/OiB1bmtub3duO1xuICBpbml0aWFsPzogdW5rbm93bjtcbiAgcmVhZE9ubHk/OiB1bmtub3duO1xuICB0aHJvdHRsaW5nRXJyb3JDaGVja2VyPzogKGU6IHVua25vd24pID0+IGJvb2xlYW47XG4gIHNjb3BlUHJvdGVjdGlvbk1vZGU/OiBTY29wZVByb3RlY3Rpb25Nb2RlO1xuICBlbmFibGVOYXJyYXRpdmU/OiBib29sZWFuO1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTdWJmbG93UmVmXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93UmVmIHtcbiAgJHJlZjogc3RyaW5nO1xuICBtb3VudElkOiBzdHJpbmc7XG59XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogYnVpbGRlci90eXBlcy50cyDigJQgQWxsIHR5cGVzIHVzZWQgYnkgdGhlIGJ1aWxkZXIgbGlicmFyeS5cbiAqXG4gKiBTaGFyZWQgdHlwZXMgKFN0YWdlTm9kZSwgU3RhZ2VGdW5jdGlvbiwgZXRjLikgYXJlIGltcG9ydGVkIGZyb20gdGhlIGVuZ2luZS5cbiAqIEJ1aWxkZXItc3BlY2lmaWMgdHlwZXMgKEZsb3dDaGFydFNwZWMsIEZsb3dDaGFydCwgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlKVxuICogYXJlIGRlZmluZWQgbG9jYWxseSDigJQgdGhleSBjYXJyeSBidWlsZGVyLW9ubHkgZmllbGRzIChkZXNjcmlwdGlvbiwgb3V0cHV0TWFwcGVyLCBldGMuKS5cbiAqXG4gKiBOT1RFOiBBbGwgZW5naW5lIGltcG9ydHMgYXJlIGBpbXBvcnQgdHlwZWAg4oCUIHplcm8gcnVudGltZSBkZXBlbmRlbmN5LlxuICogVGhlIGJ1aWxkZXIgcmVtYWlucyBzdGFuZGFsb25lIGF0IHJ1bnRpbWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9lbmdpbmUvZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgSUxvZ2dlciwgU2NvcGVGYWN0b3J5LCBTdGFnZUZ1bmN0aW9uLCBUcmF2ZXJzYWxFeHRyYWN0b3IgfSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vc2NvcGUvcHJvdGVjdGlvbi90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gUmUtZXhwb3J0cyBmcm9tIGVuZ2luZSAoY2Fub25pY2FsIGRlZmluaXRpb25zKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZW5naW5lL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIElMb2dnZXIsXG4gIFN0YWdlRnVuY3Rpb24sXG4gIFN0cmVhbUNhbGxiYWNrLFxuICBTdHJlYW1IYW5kbGVycyxcbiAgU3RyZWFtTGlmZWN5Y2xlSGFuZGxlcixcbiAgU3RyZWFtVG9rZW5IYW5kbGVyLFxuICBTdWJmbG93TW91bnRPcHRpb25zLFxufSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEFsaWFzZXNcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKiogUmVsYXhlZC1nZW5lcmljIGFsaWFzIGZvciBidWlsZGVyIGVyZ29ub21pY3MuICovXG5leHBvcnQgdHlwZSBTdGFnZUZuID0gU3RhZ2VGdW5jdGlvbjxhbnksIGFueT47XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2NvcGUgUHJvdGVjdGlvbiDigJQgY2Fub25pY2FsIGRlZmluaXRpb24gaW4gc2NvcGUvcHJvdGVjdGlvbi90eXBlcy50c1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIHsgU2NvcGVQcm90ZWN0aW9uTW9kZSB9O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFNlcmlhbGl6ZWQgUGlwZWxpbmUgU3RydWN0dXJlIChKU09OLXNhZmUsIGZvciB2aXN1YWxpemF0aW9uKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgdHlwZTogJ3N0YWdlJyB8ICdkZWNpZGVyJyB8ICdzZWxlY3RvcicgfCAnZm9yaycgfCAnc3RyZWFtaW5nJztcbiAgLyoqIFNlbWFudGljIGljb24gaGludCBmb3IgdmlzdWFsaXphdGlvbiAoZS5nLiwgXCJsbG1cIiwgXCJ0b29sXCIsIFwicmFnXCIsIFwiYWdlbnRcIiwgXCJzdGFydFwiKSAqL1xuICBpY29uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmVbXTtcbiAgbmV4dD86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcbiAgaGFzRGVjaWRlcj86IGJvb2xlYW47XG4gIGhhc1NlbGVjdG9yPzogYm9vbGVhbjtcbiAgYnJhbmNoSWRzPzogc3RyaW5nW107XG4gIGxvb3BUYXJnZXQ/OiBzdHJpbmc7XG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG4gIGlzUGFyYWxsZWxDaGlsZD86IGJvb2xlYW47XG4gIHBhcmFsbGVsR3JvdXBJZD86IHN0cmluZztcbiAgaXNTdWJmbG93Um9vdD86IGJvb2xlYW47XG4gIHN1YmZsb3dJZD86IHN0cmluZztcbiAgc3ViZmxvd05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBOZXN0ZWQgcGlwZWxpbmUgc3RydWN0dXJlIGZvciBhIHN1YmZsb3cgbm9kZS5cbiAgICogV0FSTklORzogQW55IGZ1dHVyZSB3YWxrZXIgdGhhdCB0cmF2ZXJzZXMgdGhpcyBmaWVsZCByZWN1cnNpdmVseSBtdXN0IGFwcGx5IGl0cyBvd25cbiAgICogZGVwdGggZ3VhcmQgKHNlZSBNQVhfV0FMS19ERVBUSCBpbiBjb250cmFjdC9vcGVuYXBpLnRzKS4gVGhlIGN1cnJlbnQgYGJ1aWxkRGVzY3JpcHRpb25gXG4gICAqIHdhbGsgaW4gb3BlbmFwaS50cyBkb2VzIE5PVCB0cmF2ZXJzZSBzdWJmbG93U3RydWN0dXJlIOKAlCBpZiBpdCBldmVyIGRvZXMsIHRoZSBkZXB0aFxuICAgKiBndWFyZCBtdXN0IGNvdmVyIGJvdGggdGhlIGBuZXh0YCBjaGFpbiBhbmQgdGhpcyBuZXN0ZWQgc3RydWN0dXJlLlxuICAgKi9cbiAgc3ViZmxvd1N0cnVjdHVyZT86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcbiAgaXRlcmF0aW9uQ291bnQ/OiBudW1iZXI7XG4gIC8qKiBUcnVlIHdoZW4gdGhpcyBzdWJmbG93IHVzZXMgbGF6eSByZXNvbHV0aW9uIChkZWZlcnJlZCB1bnRpbCBleGVjdXRpb24pLiAqL1xuICBpc0xhenk/OiBib29sZWFuO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEZsb3dDaGFydFNwZWMgKHB1cmUgSlNPTiwgbm8gZnVuY3Rpb25zIOKAlCBmb3IgRkXihpJCRSB0cmFuc3BvcnQpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q2hhcnRTcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgLyoqIE5vZGUgdHlwZSDigJQgbWF0Y2hlcyBgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLnR5cGVgIGZvciB2aXN1YWxpemF0aW9uIGFsaWdubWVudC4gKi9cbiAgdHlwZT86ICdzdGFnZScgfCAnZGVjaWRlcicgfCAnc2VsZWN0b3InIHwgJ2ZvcmsnIHwgJ3N0cmVhbWluZyc7XG4gIC8qKiBTZW1hbnRpYyBpY29uIGhpbnQgZm9yIHZpc3VhbGl6YXRpb24gKGUuZy4sIFwibGxtXCIsIFwidG9vbFwiLCBcInJhZ1wiLCBcImFnZW50XCIsIFwic3RhcnRcIikgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogRmxvd0NoYXJ0U3BlY1tdO1xuICBuZXh0PzogRmxvd0NoYXJ0U3BlYztcbiAgaGFzRGVjaWRlcj86IGJvb2xlYW47XG4gIGhhc1NlbGVjdG9yPzogYm9vbGVhbjtcbiAgYnJhbmNoSWRzPzogc3RyaW5nW107XG4gIGxvb3BUYXJnZXQ/OiBzdHJpbmc7XG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG4gIGlzUGFyYWxsZWxDaGlsZD86IGJvb2xlYW47XG4gIHBhcmFsbGVsR3JvdXBJZD86IHN0cmluZztcbiAgaXNTdWJmbG93Um9vdD86IGJvb2xlYW47XG4gIHN1YmZsb3dJZD86IHN0cmluZztcbiAgc3ViZmxvd05hbWU/OiBzdHJpbmc7XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQnVpbGQtVGltZSBFeHRyYWN0b3Jcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKiogTWV0YWRhdGEgcHJvdmlkZWQgdG8gdGhlIGJ1aWxkLXRpbWUgZXh0cmFjdG9yIGZvciBlYWNoIG5vZGUuICovXG5leHBvcnQgdHlwZSBCdWlsZFRpbWVOb2RlTWV0YWRhdGEgPSBGbG93Q2hhcnRTcGVjO1xuXG5leHBvcnQgdHlwZSBCdWlsZFRpbWVFeHRyYWN0b3I8VFJlc3VsdCA9IEZsb3dDaGFydFNwZWM+ID0gKG1ldGFkYXRhOiBCdWlsZFRpbWVOb2RlTWV0YWRhdGEpID0+IFRSZXN1bHQ7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gVHJhdmVyc2FsIEV4dHJhY3RvciAocnVudGltZSkg4oCUIGNhbm9uaWNhbCBkZWZpbml0aW9uIGxpdmVzIGluIGVuZ2luZS90eXBlcy5cbi8vIFJlLWV4cG9ydGVkIGhlcmUgc28gY2FsbGVycyBkb24ndCBuZWVkIHR3byBpbXBvcnQgcGF0aHMuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgeyBUcmF2ZXJzYWxFeHRyYWN0b3IgfSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEZsb3dDaGFydCDigJQgY29tcGlsZWQgb3V0cHV0IG9mIGJ1aWxkKClcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSBGbG93Q2hhcnQ8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiA9IHtcbiAgcm9vdDogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT47XG4gIHN0YWdlTWFwOiBNYXA8c3RyaW5nLCBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT4+O1xuICBleHRyYWN0b3I/OiBUcmF2ZXJzYWxFeHRyYWN0b3I7XG4gIHN1YmZsb3dzPzogUmVjb3JkPHN0cmluZywgeyByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPiB9PjtcbiAgYnVpbGRUaW1lU3RydWN0dXJlOiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGVuYWJsZU5hcnJhdGl2ZT86IGJvb2xlYW47XG4gIGxvZ2dlcj86IElMb2dnZXI7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YWdlRGVzY3JpcHRpb25zOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogSW5wdXQgc2NoZW1hIChab2Qgb3IgSlNPTiBTY2hlbWEpIOKAlCBkZWNsYXJlZCB2aWEgc2V0SW5wdXRTY2hlbWEoKSBvciAuY29udHJhY3QoKS4gKi9cbiAgaW5wdXRTY2hlbWE/OiB1bmtub3duO1xuICAvKiogT3V0cHV0IHNjaGVtYSAoWm9kIG9yIEpTT04gU2NoZW1hKSDigJQgZGVjbGFyZWQgdmlhIHNldE91dHB1dFNjaGVtYSgpIG9yIC5jb250cmFjdCgpLiAqL1xuICBvdXRwdXRTY2hlbWE/OiB1bmtub3duO1xuICAvKiogT3V0cHV0IG1hcHBlciDigJQgZXh0cmFjdHMgcmVzcG9uc2UgZnJvbSBmaW5hbCBzY29wZS4gKi9cbiAgb3V0cHV0TWFwcGVyPzogKGZpbmFsU2NvcGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB1bmtub3duO1xuICAvKiogU2NvcGUgZmFjdG9yeSDigJQgYXV0by1lbWJlZGRlZCBieSBmbG93Q2hhcnQ8VD4oKS4gRXhlY3V0b3IgcmVhZHMgdGhpcyBpZiBubyBmYWN0b3J5IHBhcmFtLiAqL1xuICBzY29wZUZhY3Rvcnk/OiBTY29wZUZhY3Rvcnk8VFNjb3BlPjtcbn07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2ltcGxpZmllZCBQYXJhbGxlbCBTcGVjIChmb3IgYWRkTGlzdE9mRnVuY3Rpb24pXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgU2ltcGxpZmllZFBhcmFsbGVsU3BlYzxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZuPzogU3RhZ2VGdW5jdGlvbjxUT3V0LCBUU2NvcGU+O1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBFeGVjT3B0aW9ucyAoZm9yIGV4ZWN1dGUoKSBjb252ZW5pZW5jZSDigJQgdXNlZCBieSBydW5uZXIgbGF5ZXIpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgRXhlY09wdGlvbnMgPSB7XG4gIGRlZmF1bHRzPzogdW5rbm93bjtcbiAgaW5pdGlhbD86IHVua25vd247XG4gIHJlYWRPbmx5PzogdW5rbm93bjtcbiAgdGhyb3R0bGluZ0Vycm9yQ2hlY2tlcj86IChlOiB1bmtub3duKSA9PiBib29sZWFuO1xuICBzY29wZVByb3RlY3Rpb25Nb2RlPzogU2NvcGVQcm90ZWN0aW9uTW9kZTtcbiAgZW5hYmxlTmFycmF0aXZlPzogYm9vbGVhbjtcbn07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU3ViZmxvd1JlZlxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ViZmxvd1JlZiB7XG4gICRyZWY6IHN0cmluZztcbiAgbW91bnRJZDogc3RyaW5nO1xufVxuIl19
@@ -21,14 +21,40 @@ const schema_js_1 = require("./schema.js");
21
21
  function defineContract(chart, options) {
22
22
  const inputSchema = options.inputSchema ? (0, schema_js_1.normalizeSchema)(options.inputSchema) : undefined;
23
23
  const outputSchema = options.outputSchema ? (0, schema_js_1.normalizeSchema)(options.outputSchema) : undefined;
24
- // Propagate original schema to chart for runtime validation (if chart doesn't have one).
25
- // Contract schemas are normalized to JSON Schema for OpenAPI, but the chart needs the
26
- // original Zod schema to call .safeParse() at runtime in FlowChartExecutor.run().
27
- if (options.inputSchema && !chart.inputSchema) {
28
- chart.inputSchema = options.inputSchema;
24
+ // Build a lightweight chart view for the contract.
25
+ //
26
+ // We must NOT mutate the original `chart` object because charts are compiled
27
+ // artifacts meant to be shared across multiple concurrent executors. Mutating
28
+ // any schema field after build would be visible to all holders of that chart
29
+ // reference, causing cross-contract contamination.
30
+ //
31
+ // Instead, use Object.create(chart) to create a prototype-linked view:
32
+ // - All properties (root, stageMap, subflows, methods…) are inherited via
33
+ // the prototype chain — zero extra copying.
34
+ // - Setting schema fields on the view creates OWN properties that shadow
35
+ // the prototype's value, leaving the original chart untouched.
36
+ // - FlowChartExecutor reads chartView.inputSchema which resolves to the
37
+ // own-property (contract schema) before the prototype (builder schema).
38
+ // - RunContext reads chartView.outputMapper to apply the output transform —
39
+ // that must also be shadowed here so the contract's mapper wins.
40
+ //
41
+ // Limitation: Object.keys(chartView) returns only own properties (the schema
42
+ // fields that were shadowed). Do NOT use Object.keys(), spread ({...chartView}),
43
+ // or JSON.stringify(chartView) on this view — use named property access or
44
+ // chart.toSpec() instead.
45
+ const chartView = Object.create(chart);
46
+ const view = chartView;
47
+ if (options.inputSchema) {
48
+ view.inputSchema = options.inputSchema;
49
+ }
50
+ if (options.outputSchema) {
51
+ view.outputSchema = options.outputSchema;
52
+ }
53
+ if (options.outputMapper) {
54
+ view.outputMapper = options.outputMapper;
29
55
  }
30
56
  const contract = {
31
- chart,
57
+ chart: chartView,
32
58
  inputSchema,
33
59
  outputSchema,
34
60
  outputMapper: options.outputMapper,
@@ -39,4 +65,4 @@ function defineContract(chart, options) {
39
65
  return contract;
40
66
  }
41
67
  exports.defineContract = defineContract;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0L2RlZmluZUNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7O0FBR0gsNkNBQStDO0FBQy9DLDJDQUE4QztBQUc5QyxTQUFnQixjQUFjLENBQzVCLEtBQWdCLEVBQ2hCLE9BQWtEO0lBRWxELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUEsMkJBQWUsRUFBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMzRixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFBLDJCQUFlLEVBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFOUYseUZBQXlGO0lBQ3pGLHNGQUFzRjtJQUN0RixrRkFBa0Y7SUFDbEYsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdDLEtBQW1DLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDekUsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUF1QztRQUNuRCxLQUFLO1FBQ0wsV0FBVztRQUNYLFlBQVk7UUFDWixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDbEMsU0FBUyxDQUFDLFVBQTJCO1lBQ25DLE9BQU8sSUFBQSw0QkFBZSxFQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvQyxDQUFDO0tBQ0YsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUF6QkQsd0NBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBjb250cmFjdC9kZWZpbmVDb250cmFjdC50cyDigJQgRmFjdG9yeSBmb3IgY3JlYXRpbmcgYSBGbG93Q2hhcnRDb250cmFjdC5cbiAqXG4gKiBXcmFwcyBhIGNvbXBpbGVkIEZsb3dDaGFydCB3aXRoIEkvTyBzY2hlbWFzIGFuZCBhbiBvdXRwdXQgbWFwcGVyLFxuICogdXNpbmcgdGhlIHNhbWUgcGF0dGVybiBhcyBTdWJmbG93TW91bnRPcHRpb25zIChpbnB1dE1hcHBlci9vdXRwdXRNYXBwZXIpLlxuICpcbiAqIFVzYWdlOlxuICogICBjb25zdCBjb250cmFjdCA9IGRlZmluZUNvbnRyYWN0KGNoYXJ0LCB7XG4gKiAgICAgaW5wdXRTY2hlbWE6IHoub2JqZWN0KHsgbmFtZTogei5zdHJpbmcoKSB9KSxcbiAqICAgICBvdXRwdXRTY2hlbWE6IHoub2JqZWN0KHsgZ3JlZXRpbmc6IHouc3RyaW5nKCkgfSksXG4gKiAgICAgb3V0cHV0TWFwcGVyOiAoc2NvcGUpID0+ICh7IGdyZWV0aW5nOiBzY29wZS5tZXNzYWdlIGFzIHN0cmluZyB9KSxcbiAqICAgfSk7XG4gKlxuICogICBjb25zdCBvcGVuYXBpID0gY29udHJhY3QudG9PcGVuQVBJKCk7XG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGbG93Q2hhcnQgfSBmcm9tICcuLi9idWlsZGVyL3R5cGVzLmpzJztcbmltcG9ydCB7IGdlbmVyYXRlT3BlbkFQSSB9IGZyb20gJy4vb3BlbmFwaS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemVTY2hlbWEgfSBmcm9tICcuL3NjaGVtYS5qcyc7XG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydENvbnRyYWN0LCBGbG93Q2hhcnRDb250cmFjdE9wdGlvbnMsIE9wZW5BUElPcHRpb25zLCBPcGVuQVBJU3BlYyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ29udHJhY3Q8VElucHV0ID0gdW5rbm93biwgVE91dHB1dCA9IHVua25vd24+KFxuICBjaGFydDogRmxvd0NoYXJ0LFxuICBvcHRpb25zOiBGbG93Q2hhcnRDb250cmFjdE9wdGlvbnM8VElucHV0LCBUT3V0cHV0Pixcbik6IEZsb3dDaGFydENvbnRyYWN0PFRJbnB1dCwgVE91dHB1dD4ge1xuICBjb25zdCBpbnB1dFNjaGVtYSA9IG9wdGlvbnMuaW5wdXRTY2hlbWEgPyBub3JtYWxpemVTY2hlbWEob3B0aW9ucy5pbnB1dFNjaGVtYSkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IG91dHB1dFNjaGVtYSA9IG9wdGlvbnMub3V0cHV0U2NoZW1hID8gbm9ybWFsaXplU2NoZW1hKG9wdGlvbnMub3V0cHV0U2NoZW1hKSA6IHVuZGVmaW5lZDtcblxuICAvLyBQcm9wYWdhdGUgb3JpZ2luYWwgc2NoZW1hIHRvIGNoYXJ0IGZvciBydW50aW1lIHZhbGlkYXRpb24gKGlmIGNoYXJ0IGRvZXNuJ3QgaGF2ZSBvbmUpLlxuICAvLyBDb250cmFjdCBzY2hlbWFzIGFyZSBub3JtYWxpemVkIHRvIEpTT04gU2NoZW1hIGZvciBPcGVuQVBJLCBidXQgdGhlIGNoYXJ0IG5lZWRzIHRoZVxuICAvLyBvcmlnaW5hbCBab2Qgc2NoZW1hIHRvIGNhbGwgLnNhZmVQYXJzZSgpIGF0IHJ1bnRpbWUgaW4gRmxvd0NoYXJ0RXhlY3V0b3IucnVuKCkuXG4gIGlmIChvcHRpb25zLmlucHV0U2NoZW1hICYmICFjaGFydC5pbnB1dFNjaGVtYSkge1xuICAgIChjaGFydCBhcyB7IGlucHV0U2NoZW1hPzogdW5rbm93biB9KS5pbnB1dFNjaGVtYSA9IG9wdGlvbnMuaW5wdXRTY2hlbWE7XG4gIH1cblxuICBjb25zdCBjb250cmFjdDogRmxvd0NoYXJ0Q29udHJhY3Q8VElucHV0LCBUT3V0cHV0PiA9IHtcbiAgICBjaGFydCxcbiAgICBpbnB1dFNjaGVtYSxcbiAgICBvdXRwdXRTY2hlbWEsXG4gICAgb3V0cHV0TWFwcGVyOiBvcHRpb25zLm91dHB1dE1hcHBlcixcbiAgICB0b09wZW5BUEkoYXBpT3B0aW9ucz86IE9wZW5BUElPcHRpb25zKTogT3BlbkFQSVNwZWMge1xuICAgICAgcmV0dXJuIGdlbmVyYXRlT3BlbkFQSShjb250cmFjdCwgYXBpT3B0aW9ucyk7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gY29udHJhY3Q7XG59XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0L2RlZmluZUNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7O0FBR0gsNkNBQStDO0FBQy9DLDJDQUE4QztBQUc5QyxTQUFnQixjQUFjLENBQzVCLEtBQWdCLEVBQ2hCLE9BQWtEO0lBRWxELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUEsMkJBQWUsRUFBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMzRixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFBLDJCQUFlLEVBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFOUYsbURBQW1EO0lBQ25ELEVBQUU7SUFDRiw2RUFBNkU7SUFDN0UsOEVBQThFO0lBQzlFLDZFQUE2RTtJQUM3RSxtREFBbUQ7SUFDbkQsRUFBRTtJQUNGLHVFQUF1RTtJQUN2RSw0RUFBNEU7SUFDNUUsZ0RBQWdEO0lBQ2hELDJFQUEyRTtJQUMzRSxtRUFBbUU7SUFDbkUsMEVBQTBFO0lBQzFFLDRFQUE0RTtJQUM1RSw4RUFBOEU7SUFDOUUscUVBQXFFO0lBQ3JFLEVBQUU7SUFDRiw2RUFBNkU7SUFDN0UsaUZBQWlGO0lBQ2pGLDJFQUEyRTtJQUMzRSwwQkFBMEI7SUFDMUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQWMsQ0FBQztJQUNwRCxNQUFNLElBQUksR0FBRyxTQUErQixDQUFDO0lBQzdDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFxRSxDQUFDO0lBQ3BHLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBdUM7UUFDbkQsS0FBSyxFQUFFLFNBQVM7UUFDaEIsV0FBVztRQUNYLFlBQVk7UUFDWixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDbEMsU0FBUyxDQUFDLFVBQTJCO1lBQ25DLE9BQU8sSUFBQSw0QkFBZSxFQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvQyxDQUFDO0tBQ0YsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFuREQsd0NBbURDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBjb250cmFjdC9kZWZpbmVDb250cmFjdC50cyDigJQgRmFjdG9yeSBmb3IgY3JlYXRpbmcgYSBGbG93Q2hhcnRDb250cmFjdC5cbiAqXG4gKiBXcmFwcyBhIGNvbXBpbGVkIEZsb3dDaGFydCB3aXRoIEkvTyBzY2hlbWFzIGFuZCBhbiBvdXRwdXQgbWFwcGVyLFxuICogdXNpbmcgdGhlIHNhbWUgcGF0dGVybiBhcyBTdWJmbG93TW91bnRPcHRpb25zIChpbnB1dE1hcHBlci9vdXRwdXRNYXBwZXIpLlxuICpcbiAqIFVzYWdlOlxuICogICBjb25zdCBjb250cmFjdCA9IGRlZmluZUNvbnRyYWN0KGNoYXJ0LCB7XG4gKiAgICAgaW5wdXRTY2hlbWE6IHoub2JqZWN0KHsgbmFtZTogei5zdHJpbmcoKSB9KSxcbiAqICAgICBvdXRwdXRTY2hlbWE6IHoub2JqZWN0KHsgZ3JlZXRpbmc6IHouc3RyaW5nKCkgfSksXG4gKiAgICAgb3V0cHV0TWFwcGVyOiAoc2NvcGUpID0+ICh7IGdyZWV0aW5nOiBzY29wZS5tZXNzYWdlIGFzIHN0cmluZyB9KSxcbiAqICAgfSk7XG4gKlxuICogICBjb25zdCBvcGVuYXBpID0gY29udHJhY3QudG9PcGVuQVBJKCk7XG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGbG93Q2hhcnQgfSBmcm9tICcuLi9idWlsZGVyL3R5cGVzLmpzJztcbmltcG9ydCB7IGdlbmVyYXRlT3BlbkFQSSB9IGZyb20gJy4vb3BlbmFwaS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemVTY2hlbWEgfSBmcm9tICcuL3NjaGVtYS5qcyc7XG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydENvbnRyYWN0LCBGbG93Q2hhcnRDb250cmFjdE9wdGlvbnMsIE9wZW5BUElPcHRpb25zLCBPcGVuQVBJU3BlYyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ29udHJhY3Q8VElucHV0ID0gdW5rbm93biwgVE91dHB1dCA9IHVua25vd24+KFxuICBjaGFydDogRmxvd0NoYXJ0LFxuICBvcHRpb25zOiBGbG93Q2hhcnRDb250cmFjdE9wdGlvbnM8VElucHV0LCBUT3V0cHV0Pixcbik6IEZsb3dDaGFydENvbnRyYWN0PFRJbnB1dCwgVE91dHB1dD4ge1xuICBjb25zdCBpbnB1dFNjaGVtYSA9IG9wdGlvbnMuaW5wdXRTY2hlbWEgPyBub3JtYWxpemVTY2hlbWEob3B0aW9ucy5pbnB1dFNjaGVtYSkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IG91dHB1dFNjaGVtYSA9IG9wdGlvbnMub3V0cHV0U2NoZW1hID8gbm9ybWFsaXplU2NoZW1hKG9wdGlvbnMub3V0cHV0U2NoZW1hKSA6IHVuZGVmaW5lZDtcblxuICAvLyBCdWlsZCBhIGxpZ2h0d2VpZ2h0IGNoYXJ0IHZpZXcgZm9yIHRoZSBjb250cmFjdC5cbiAgLy9cbiAgLy8gV2UgbXVzdCBOT1QgbXV0YXRlIHRoZSBvcmlnaW5hbCBgY2hhcnRgIG9iamVjdCBiZWNhdXNlIGNoYXJ0cyBhcmUgY29tcGlsZWRcbiAgLy8gYXJ0aWZhY3RzIG1lYW50IHRvIGJlIHNoYXJlZCBhY3Jvc3MgbXVsdGlwbGUgY29uY3VycmVudCBleGVjdXRvcnMuIE11dGF0aW5nXG4gIC8vIGFueSBzY2hlbWEgZmllbGQgYWZ0ZXIgYnVpbGQgd291bGQgYmUgdmlzaWJsZSB0byBhbGwgaG9sZGVycyBvZiB0aGF0IGNoYXJ0XG4gIC8vIHJlZmVyZW5jZSwgY2F1c2luZyBjcm9zcy1jb250cmFjdCBjb250YW1pbmF0aW9uLlxuICAvL1xuICAvLyBJbnN0ZWFkLCB1c2UgT2JqZWN0LmNyZWF0ZShjaGFydCkgdG8gY3JlYXRlIGEgcHJvdG90eXBlLWxpbmtlZCB2aWV3OlxuICAvLyAgIC0gQWxsIHByb3BlcnRpZXMgKHJvb3QsIHN0YWdlTWFwLCBzdWJmbG93cywgbWV0aG9kc+KApikgYXJlIGluaGVyaXRlZCB2aWFcbiAgLy8gICAgIHRoZSBwcm90b3R5cGUgY2hhaW4g4oCUIHplcm8gZXh0cmEgY29weWluZy5cbiAgLy8gICAtIFNldHRpbmcgc2NoZW1hIGZpZWxkcyBvbiB0aGUgdmlldyBjcmVhdGVzIE9XTiBwcm9wZXJ0aWVzIHRoYXQgc2hhZG93XG4gIC8vICAgICB0aGUgcHJvdG90eXBlJ3MgdmFsdWUsIGxlYXZpbmcgdGhlIG9yaWdpbmFsIGNoYXJ0IHVudG91Y2hlZC5cbiAgLy8gICAtIEZsb3dDaGFydEV4ZWN1dG9yIHJlYWRzIGNoYXJ0Vmlldy5pbnB1dFNjaGVtYSB3aGljaCByZXNvbHZlcyB0byB0aGVcbiAgLy8gICAgIG93bi1wcm9wZXJ0eSAoY29udHJhY3Qgc2NoZW1hKSBiZWZvcmUgdGhlIHByb3RvdHlwZSAoYnVpbGRlciBzY2hlbWEpLlxuICAvLyAgIC0gUnVuQ29udGV4dCByZWFkcyBjaGFydFZpZXcub3V0cHV0TWFwcGVyIHRvIGFwcGx5IHRoZSBvdXRwdXQgdHJhbnNmb3JtIOKAlFxuICAvLyAgICAgdGhhdCBtdXN0IGFsc28gYmUgc2hhZG93ZWQgaGVyZSBzbyB0aGUgY29udHJhY3QncyBtYXBwZXIgd2lucy5cbiAgLy9cbiAgLy8gTGltaXRhdGlvbjogT2JqZWN0LmtleXMoY2hhcnRWaWV3KSByZXR1cm5zIG9ubHkgb3duIHByb3BlcnRpZXMgKHRoZSBzY2hlbWFcbiAgLy8gZmllbGRzIHRoYXQgd2VyZSBzaGFkb3dlZCkuIERvIE5PVCB1c2UgT2JqZWN0LmtleXMoKSwgc3ByZWFkICh7Li4uY2hhcnRWaWV3fSksXG4gIC8vIG9yIEpTT04uc3RyaW5naWZ5KGNoYXJ0Vmlldykgb24gdGhpcyB2aWV3IOKAlCB1c2UgbmFtZWQgcHJvcGVydHkgYWNjZXNzIG9yXG4gIC8vIGNoYXJ0LnRvU3BlYygpIGluc3RlYWQuXG4gIGNvbnN0IGNoYXJ0VmlldyA9IE9iamVjdC5jcmVhdGUoY2hhcnQpIGFzIEZsb3dDaGFydDtcbiAgY29uc3QgdmlldyA9IGNoYXJ0VmlldyBhcyBQYXJ0aWFsPEZsb3dDaGFydD47XG4gIGlmIChvcHRpb25zLmlucHV0U2NoZW1hKSB7XG4gICAgdmlldy5pbnB1dFNjaGVtYSA9IG9wdGlvbnMuaW5wdXRTY2hlbWE7XG4gIH1cbiAgaWYgKG9wdGlvbnMub3V0cHV0U2NoZW1hKSB7XG4gICAgdmlldy5vdXRwdXRTY2hlbWEgPSBvcHRpb25zLm91dHB1dFNjaGVtYTtcbiAgfVxuICBpZiAob3B0aW9ucy5vdXRwdXRNYXBwZXIpIHtcbiAgICB2aWV3Lm91dHB1dE1hcHBlciA9IG9wdGlvbnMub3V0cHV0TWFwcGVyIGFzICgoczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHVua25vd24pIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgY29udHJhY3Q6IEZsb3dDaGFydENvbnRyYWN0PFRJbnB1dCwgVE91dHB1dD4gPSB7XG4gICAgY2hhcnQ6IGNoYXJ0VmlldyxcbiAgICBpbnB1dFNjaGVtYSxcbiAgICBvdXRwdXRTY2hlbWEsXG4gICAgb3V0cHV0TWFwcGVyOiBvcHRpb25zLm91dHB1dE1hcHBlcixcbiAgICB0b09wZW5BUEkoYXBpT3B0aW9ucz86IE9wZW5BUElPcHRpb25zKTogT3BlbkFQSVNwZWMge1xuICAgICAgcmV0dXJuIGdlbmVyYXRlT3BlbkFQSShjb250cmFjdCwgYXBpT3B0aW9ucyk7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gY29udHJhY3Q7XG59XG4iXX0=
@@ -3,11 +3,12 @@
3
3
  * contract/openapi.ts — OpenAPI 3.1 spec generator.
4
4
  *
5
5
  * Generates an OpenAPI spec from a FlowChartContract by combining:
6
- * - chart.description → operation description
7
- * - chart.stageDescriptions → step-by-step detail
6
+ * - chart.description → operation description (built incrementally during FlowChartBuilder.build())
8
7
  * - inputSchema → requestBody
9
8
  * - outputSchema → response
10
- * - chart.buildTimeStructure → operation metadata (branches, forks, etc.)
9
+ *
10
+ * chart.description is assembled by FlowChartBuilder as each stage is added —
11
+ * no post-processing walk of buildTimeStructure is needed or performed here.
11
12
  */
12
13
  Object.defineProperty(exports, "__esModule", { value: true });
13
14
  exports.generateOpenAPI = void 0;
@@ -20,37 +21,14 @@ function slugify(name) {
20
21
  .replace(/[^a-z0-9]+/g, '-')
21
22
  .replace(/^-|-$/g, '');
22
23
  }
23
- function buildDescription(chart) {
24
- // Walk buildTimeStructure to produce a detailed step-by-step description
25
- // that includes decider branches, parallel forks, etc.
26
- const lines = [];
27
- let step = 0;
28
- const walk = (node) => {
29
- step++;
30
- const desc = node.description ? ` — ${node.description}` : '';
31
- if (node.hasDecider && node.branchIds) {
32
- lines.push(`${step}. ${node.name}${desc} — Decides between: ${node.branchIds.join(', ')}`);
33
- }
34
- else if (node.children && node.children.length > 0 && !node.hasDecider) {
35
- const childNames = node.children.map((c) => c.name).join(', ');
36
- lines.push(`${step}. ${node.name}${desc} (parallel: ${childNames})`);
37
- }
38
- else {
39
- lines.push(`${step}. ${node.name}${desc}`);
40
- }
41
- if (node.children) {
42
- for (const child of node.children)
43
- walk(child);
44
- }
45
- if (node.next)
46
- walk(node.next);
47
- };
48
- walk(chart.buildTimeStructure);
49
- return `FlowChart: ${chart.root.name}\nSteps:\n${lines.join('\n')}`;
50
- }
51
24
  // ─────────────────────────────────────────────────────────────────────────────
52
25
  // Public API
53
26
  // ─────────────────────────────────────────────────────────────────────────────
27
+ /**
28
+ * Generates an OpenAPI 3.1 spec from a FlowChartContract.
29
+ * Uses `chart.description` which FlowChartBuilder assembles at build time —
30
+ * no post-processing walk of buildTimeStructure is performed here.
31
+ */
54
32
  function generateOpenAPI(contract, options) {
55
33
  var _a, _b, _c;
56
34
  const { chart, inputSchema, outputSchema } = contract;
@@ -60,7 +38,8 @@ function generateOpenAPI(contract, options) {
60
38
  const rootName = chart.root.name;
61
39
  const operationId = slugify(rootName);
62
40
  const path = `${basePath === '/' ? '' : basePath}/${operationId}`;
63
- const fullDescription = buildDescription(chart);
41
+ // Description was built incrementally during FlowChartBuilder.build() — read it directly.
42
+ const fullDescription = chart.description;
64
43
  // Build schemas for components
65
44
  const schemas = {};
66
45
  const inputRef = `${rootName}Input`;
@@ -121,4 +100,4 @@ function generateOpenAPI(contract, options) {
121
100
  return spec;
122
101
  }
123
102
  exports.generateOpenAPI = generateOpenAPI;
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29udHJhY3Qvb3BlbmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7QUFLSCxnRkFBZ0Y7QUFDaEYsbUJBQW1CO0FBQ25CLGdGQUFnRjtBQUVoRixTQUFTLE9BQU8sQ0FBQyxJQUFZO0lBQzNCLE9BQU8sSUFBSTtTQUNSLFdBQVcsRUFBRTtTQUNiLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDO1NBQzNCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBZ0I7SUFDeEMseUVBQXlFO0lBQ3pFLHVEQUF1RDtJQUN2RCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRWIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFpQyxFQUFFLEVBQUU7UUFDakQsSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTlELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksdUJBQXVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZ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QUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxTQUFTLEVBQUU7WUFDVCxLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLHNCQUFzQjtnQkFDbkMsR0FBRyxDQUFDLFlBQVk7b0JBQ2QsQ0FBQyxDQUFDO3dCQUNFLE9BQU8sRUFBRTs0QkFDUCxrQkFBa0IsRUFBRTtnQ0FDbEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixTQUFTLEVBQUUsRUFBRTs2QkFDdEQ7eUJBQ0Y7cUJBQ0Y7b0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNSO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSwwQkFBMEI7YUFDeEM7U0FDRjtLQUNGLENBQUM7SUFFRixNQUFNLElBQUksR0FBZ0I7UUFDeEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsSUFBSSxFQUFFO1lBQ0osS0FBSyxFQUFFLFFBQVE7WUFDZixXQUFXLEVBQUUsZUFBZTtZQUM1QixPQUFPO1NBQ1I7UUFDRCxLQUFLLEVBQUU7WUFDTCxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNOLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUzthQUNwQjtTQUNGO1FBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDeEUsQ0FBQztJQUVGLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQXhFRCwwQ0F3RUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNvbnRyYWN0L29wZW5hcGkudHMg4oCUIE9wZW5BUEkgMy4xIHNwZWMgZ2VuZXJhdG9yLlxuICpcbiAqIEdlbmVyYXRlcyBhbiBPcGVuQVBJIHNwZWMgZnJvbSBhIEZsb3dDaGFydENvbnRyYWN0IGJ5IGNvbWJpbmluZzpcbiAqIC0gY2hhcnQuZGVzY3JpcHRpb24g4oaSIG9wZXJhdGlvbiBkZXNjcmlwdGlvblxuICogLSBjaGFydC5zdGFnZURlc2NyaXB0aW9ucyDihpIgc3RlcC1ieS1zdGVwIGRldGFpbFxuICogLSBpbnB1dFNjaGVtYSDihpIgcmVxdWVzdEJvZHlcbiAqIC0gb3V0cHV0U2NoZW1hIOKGkiByZXNwb25zZVxuICogLSBjaGFydC5idWlsZFRpbWVTdHJ1Y3R1cmUg4oaSIG9wZXJhdGlvbiBtZXRhZGF0YSAoYnJhbmNoZXMsIGZvcmtzLCBldGMuKVxuICovXG5cbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0LCBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUgfSBmcm9tICcuLi9idWlsZGVyL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0Q29udHJhY3QsIEpzb25TY2hlbWEsIE9wZW5BUElPcGVyYXRpb24sIE9wZW5BUElPcHRpb25zLCBPcGVuQVBJU3BlYyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEludGVybmFsIGhlbHBlcnNcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiBzbHVnaWZ5KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuYW1lXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZSgvW15hLXowLTldKy9nLCAnLScpXG4gICAgLnJlcGxhY2UoL14tfC0kL2csICcnKTtcbn1cblxuZnVuY3Rpb24gYnVpbGREZXNjcmlwdGlvbihjaGFydDogRmxvd0NoYXJ0KTogc3RyaW5nIHtcbiAgLy8gV2FsayBidWlsZFRpbWVTdHJ1Y3R1cmUgdG8gcHJvZHVjZSBhIGRldGFpbGVkIHN0ZXAtYnktc3RlcCBkZXNjcmlwdGlvblxuICAvLyB0aGF0IGluY2x1ZGVzIGRlY2lkZXIgYnJhbmNoZXMsIHBhcmFsbGVsIGZvcmtzLCBldGMuXG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgc3RlcCA9IDA7XG5cbiAgY29uc3Qgd2FsayA9IChub2RlOiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUpID0+IHtcbiAgICBzdGVwKys7XG4gICAgY29uc3QgZGVzYyA9IG5vZGUuZGVzY3JpcHRpb24gPyBgIOKAlCAke25vZGUuZGVzY3JpcHRpb259YCA6ICcnO1xuXG4gICAgaWYgKG5vZGUuaGFzRGVjaWRlciAmJiBub2RlLmJyYW5jaElkcykge1xuICAgICAgbGluZXMucHVzaChgJHtzdGVwfS4gJHtub2RlLm5hbWV9JHtkZXNjfSDigJQgRGVjaWRlcyBiZXR3ZWVuOiAke25vZGUuYnJhbmNoSWRzLmpvaW4oJywgJyl9YCk7XG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCAmJiAhbm9kZS5oYXNEZWNpZGVyKSB7XG4gICAgICBjb25zdCBjaGlsZE5hbWVzID0gbm9kZS5jaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSkuam9pbignLCAnKTtcbiAgICAgIGxpbmVzLnB1c2goYCR7c3RlcH0uICR7bm9kZS5uYW1lfSR7ZGVzY30gKHBhcmFsbGVsOiAke2NoaWxkTmFtZXN9KWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5lcy5wdXNoKGAke3N0ZXB9LiAke25vZGUubmFtZX0ke2Rlc2N9YCk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikgd2FsayhjaGlsZCk7XG4gICAgfVxuICAgIGlmIChub2RlLm5leHQpIHdhbGsobm9kZS5uZXh0KTtcbiAgfTtcblxuICB3YWxrKGNoYXJ0LmJ1aWxkVGltZVN0cnVjdHVyZSk7XG4gIHJldHVybiBgRmxvd0NoYXJ0OiAke2NoYXJ0LnJvb3QubmFtZX1cXG5TdGVwczpcXG4ke2xpbmVzLmpvaW4oJ1xcbicpfWA7XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gUHVibGljIEFQSVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZU9wZW5BUEkoY29udHJhY3Q6IEZsb3dDaGFydENvbnRyYWN0LCBvcHRpb25zPzogT3BlbkFQSU9wdGlvbnMpOiBPcGVuQVBJU3BlYyB7XG4gIGNvbnN0IHsgY2hhcnQsIGlucHV0U2NoZW1hLCBvdXRwdXRTY2hlbWEgfSA9IGNvbnRyYWN0O1xuICBjb25zdCB2ZXJzaW9uID0gb3B0aW9ucz8udmVyc2lvbiA/PyAnMS4wLjAnO1xuICBjb25zdCBiYXNlUGF0aCA9IG9wdGlvbnM/LmJhc2VQYXRoID8/ICcvJztcbiAgY29uc3QgbWV0aG9kID0gb3B0aW9ucz8ubWV0aG9kID8/ICdwb3N0JztcblxuICBjb25zdCByb290TmFtZSA9IGNoYXJ0LnJvb3QubmFtZTtcbiAgY29uc3Qgb3BlcmF0aW9uSWQgPSBzbHVnaWZ5KHJvb3ROYW1lKTtcbiAgY29uc3QgcGF0aCA9IGAke2Jhc2VQYXRoID09PSAnLycgPyAnJyA6IGJhc2VQYXRofS8ke29wZXJhdGlvbklkfWA7XG5cbiAgY29uc3QgZnVsbERlc2NyaXB0aW9uID0gYnVpbGREZXNjcmlwdGlvbihjaGFydCk7XG5cbiAgLy8gQnVpbGQgc2NoZW1hcyBmb3IgY29tcG9uZW50c1xuICBjb25zdCBzY2hlbWFzOiBSZWNvcmQ8c3RyaW5nLCBKc29uU2NoZW1hPiA9IHt9O1xuICBjb25zdCBpbnB1dFJlZiA9IGAke3Jvb3ROYW1lfUlucHV0YDtcbiAgY29uc3Qgb3V0cHV0UmVmID0gYCR7cm9vdE5hbWV9T3V0cHV0YDtcblxuICBpZiAoaW5wdXRTY2hlbWEpIHNjaGVtYXNbaW5wdXRSZWZdID0gaW5wdXRTY2hlbWE7XG4gIGlmIChvdXRwdXRTY2hlbWEpIHNjaGVtYXNbb3V0cHV0UmVmXSA9IG91dHB1dFNjaGVtYTtcblxuICAvLyBCdWlsZCBvcGVyYXRpb25cbiAgY29uc3Qgb3BlcmF0aW9uOiBPcGVuQVBJT3BlcmF0aW9uID0ge1xuICAgIG9wZXJhdGlvbklkLFxuICAgIHN1bW1hcnk6IHJvb3ROYW1lLFxuICAgIGRlc2NyaXB0aW9uOiBmdWxsRGVzY3JpcHRpb24sXG4gICAgLi4uKGlucHV0U2NoZW1hXG4gICAgICA/IHtcbiAgICAgICAgICByZXF1ZXN0Qm9keToge1xuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICAgICAgICAgIHNjaGVtYTogeyAkcmVmOiBgIy9jb21wb25lbnRzL3NjaGVtYXMvJHtpbnB1dFJlZn1gIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIDoge30pLFxuICAgIHJlc3BvbnNlczoge1xuICAgICAgJzIwMCc6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdTdWNjZXNzZnVsIGV4ZWN1dGlvbicsXG4gICAgICAgIC4uLihvdXRwdXRTY2hlbWFcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICAgICAgICAgICAgc2NoZW1hOiB7ICRyZWY6IGAjL2NvbXBvbmVudHMvc2NoZW1hcy8ke291dHB1dFJlZn1gIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICAnNTAwJzoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1BpcGVsaW5lIGV4ZWN1dGlvbiBlcnJvcicsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3Qgc3BlYzogT3BlbkFQSVNwZWMgPSB7XG4gICAgb3BlbmFwaTogJzMuMS4wJyxcbiAgICBpbmZvOiB7XG4gICAgICB0aXRsZTogcm9vdE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogZnVsbERlc2NyaXB0aW9uLFxuICAgICAgdmVyc2lvbixcbiAgICB9LFxuICAgIHBhdGhzOiB7XG4gICAgICBbcGF0aF06IHtcbiAgICAgICAgW21ldGhvZF06IG9wZXJhdGlvbixcbiAgICAgIH0sXG4gICAgfSxcbiAgICAuLi4oT2JqZWN0LmtleXMoc2NoZW1hcykubGVuZ3RoID4gMCA/IHsgY29tcG9uZW50czogeyBzY2hlbWFzIH0gfSA6IHt9KSxcbiAgfTtcblxuICByZXR1cm4gc3BlYztcbn1cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29udHJhY3Qvb3BlbmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7R0FVRzs7O0FBS0gsZ0ZBQWdGO0FBQ2hGLG1CQUFtQjtBQUNuQixnRkFBZ0Y7QUFFaEYsU0FBUyxPQUFPLENBQUMsSUFBWTtJQUMzQixPQUFPLElBQUk7U0FDUixXQUFXLEVBQUU7U0FDYixPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztTQUMzQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsYUFBYTtBQUNiLGdGQUFnRjtBQUVoRjs7OztHQUlHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLFFBQTJCLEVBQUUsT0FBd0I7O0lBQ25GLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUN0RCxNQUFNLE9BQU8sR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLG1DQUFJLE9BQU8sQ0FBQztJQUM1QyxNQUFNLFFBQVEsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLG1DQUFJLEdBQUcsQ0FBQztJQUMxQyxNQUFNLE1BQU0sR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLG1DQUFJLE1BQU0sQ0FBQztJQUV6QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxRQUFRLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUVsRSwwRkFBMEY7SUFDMUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUUxQywrQkFBK0I7SUFDL0IsTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztJQUMvQyxNQUFNLFFBQVEsR0FBRyxHQUFHLFFBQVEsT0FBTyxDQUFDO0lBQ3BDLE1BQU0sU0FBUyxHQUFHLEdBQUcsUUFBUSxRQUFRLENBQUM7SUFFdEMsSUFBSSxXQUFXO1FBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUNqRCxJQUFJLFlBQVk7UUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBRXBELGtCQUFrQjtJQUNsQixNQUFNLFNBQVMsR0FBcUI7UUFDbEMsV0FBVztRQUNYLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLFdBQVcsRUFBRSxlQUFlO1FBQzVCLEdBQUcsQ0FBQyxXQUFXO1lBQ2IsQ0FBQyxDQUFDO2dCQUNFLFdBQVcsRUFBRTtvQkFDWCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCLEVBQUU7NEJBQ2xCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsUUFBUSxFQUFFLEVBQUU7eUJBQ3JEO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1AsU0FBUyxFQUFFO1lBQ1QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLEdBQUcsQ0FBQyxZQUFZO29CQUNkLENBQUMsQ0FBQzt3QkFDRSxPQUFPLEVBQUU7NEJBQ1Asa0JBQWtCLEVBQUU7Z0NBQ2xCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsU0FBUyxFQUFFLEVBQUU7NkJBQ3REO3lCQUNGO3FCQUNGO29CQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDUjtZQUNELEtBQUssRUFBRTtnQkFDTCxXQUFXLEVBQUUsMEJBQTBCO2FBQ3hDO1NBQ0Y7S0FDRixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQWdCO1FBQ3hCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxRQUFRO1lBQ2YsV0FBVyxFQUFFLGVBQWU7WUFDNUIsT0FBTztTQUNSO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDTixDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVM7YUFDcEI7U0FDRjtRQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3hFLENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUF6RUQsMENBeUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBjb250cmFjdC9vcGVuYXBpLnRzIOKAlCBPcGVuQVBJIDMuMSBzcGVjIGdlbmVyYXRvci5cbiAqXG4gKiBHZW5lcmF0ZXMgYW4gT3BlbkFQSSBzcGVjIGZyb20gYSBGbG93Q2hhcnRDb250cmFjdCBieSBjb21iaW5pbmc6XG4gKiAtIGNoYXJ0LmRlc2NyaXB0aW9uIOKGkiBvcGVyYXRpb24gZGVzY3JpcHRpb24gKGJ1aWx0IGluY3JlbWVudGFsbHkgZHVyaW5nIEZsb3dDaGFydEJ1aWxkZXIuYnVpbGQoKSlcbiAqIC0gaW5wdXRTY2hlbWEg4oaSIHJlcXVlc3RCb2R5XG4gKiAtIG91dHB1dFNjaGVtYSDihpIgcmVzcG9uc2VcbiAqXG4gKiBjaGFydC5kZXNjcmlwdGlvbiBpcyBhc3NlbWJsZWQgYnkgRmxvd0NoYXJ0QnVpbGRlciBhcyBlYWNoIHN0YWdlIGlzIGFkZGVkIOKAlFxuICogbm8gcG9zdC1wcm9jZXNzaW5nIHdhbGsgb2YgYnVpbGRUaW1lU3RydWN0dXJlIGlzIG5lZWRlZCBvciBwZXJmb3JtZWQgaGVyZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydCB9IGZyb20gJy4uL2J1aWxkZXIvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93Q2hhcnRDb250cmFjdCwgSnNvblNjaGVtYSwgT3BlbkFQSU9wZXJhdGlvbiwgT3BlbkFQSU9wdGlvbnMsIE9wZW5BUElTcGVjIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gSW50ZXJuYWwgaGVscGVyc1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIHNsdWdpZnkobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWVcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXmEtejAtOV0rL2csICctJylcbiAgICAucmVwbGFjZSgvXi18LSQvZywgJycpO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFB1YmxpYyBBUElcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKipcbiAqIEdlbmVyYXRlcyBhbiBPcGVuQVBJIDMuMSBzcGVjIGZyb20gYSBGbG93Q2hhcnRDb250cmFjdC5cbiAqIFVzZXMgYGNoYXJ0LmRlc2NyaXB0aW9uYCB3aGljaCBGbG93Q2hhcnRCdWlsZGVyIGFzc2VtYmxlcyBhdCBidWlsZCB0aW1lIOKAlFxuICogbm8gcG9zdC1wcm9jZXNzaW5nIHdhbGsgb2YgYnVpbGRUaW1lU3RydWN0dXJlIGlzIHBlcmZvcm1lZCBoZXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcGVuQVBJKGNvbnRyYWN0OiBGbG93Q2hhcnRDb250cmFjdCwgb3B0aW9ucz86IE9wZW5BUElPcHRpb25zKTogT3BlbkFQSVNwZWMge1xuICBjb25zdCB7IGNoYXJ0LCBpbnB1dFNjaGVtYSwgb3V0cHV0U2NoZW1hIH0gPSBjb250cmFjdDtcbiAgY29uc3QgdmVyc2lvbiA9IG9wdGlvbnM/LnZlcnNpb24gPz8gJzEuMC4wJztcbiAgY29uc3QgYmFzZVBhdGggPSBvcHRpb25zPy5iYXNlUGF0aCA/PyAnLyc7XG4gIGNvbnN0IG1ldGhvZCA9IG9wdGlvbnM/Lm1ldGhvZCA/PyAncG9zdCc7XG5cbiAgY29uc3Qgcm9vdE5hbWUgPSBjaGFydC5yb290Lm5hbWU7XG4gIGNvbnN0IG9wZXJhdGlvbklkID0gc2x1Z2lmeShyb290TmFtZSk7XG4gIGNvbnN0IHBhdGggPSBgJHtiYXNlUGF0aCA9PT0gJy8nID8gJycgOiBiYXNlUGF0aH0vJHtvcGVyYXRpb25JZH1gO1xuXG4gIC8vIERlc2NyaXB0aW9uIHdhcyBidWlsdCBpbmNyZW1lbnRhbGx5IGR1cmluZyBGbG93Q2hhcnRCdWlsZGVyLmJ1aWxkKCkg4oCUIHJlYWQgaXQgZGlyZWN0bHkuXG4gIGNvbnN0IGZ1bGxEZXNjcmlwdGlvbiA9IGNoYXJ0LmRlc2NyaXB0aW9uO1xuXG4gIC8vIEJ1aWxkIHNjaGVtYXMgZm9yIGNvbXBvbmVudHNcbiAgY29uc3Qgc2NoZW1hczogUmVjb3JkPHN0cmluZywgSnNvblNjaGVtYT4gPSB7fTtcbiAgY29uc3QgaW5wdXRSZWYgPSBgJHtyb290TmFtZX1JbnB1dGA7XG4gIGNvbnN0IG91dHB1dFJlZiA9IGAke3Jvb3ROYW1lfU91dHB1dGA7XG5cbiAgaWYgKGlucHV0U2NoZW1hKSBzY2hlbWFzW2lucHV0UmVmXSA9IGlucHV0U2NoZW1hO1xuICBpZiAob3V0cHV0U2NoZW1hKSBzY2hlbWFzW291dHB1dFJlZl0gPSBvdXRwdXRTY2hlbWE7XG5cbiAgLy8gQnVpbGQgb3BlcmF0aW9uXG4gIGNvbnN0IG9wZXJhdGlvbjogT3BlbkFQSU9wZXJhdGlvbiA9IHtcbiAgICBvcGVyYXRpb25JZCxcbiAgICBzdW1tYXJ5OiByb290TmFtZSxcbiAgICBkZXNjcmlwdGlvbjogZnVsbERlc2NyaXB0aW9uLFxuICAgIC4uLihpbnB1dFNjaGVtYVxuICAgICAgPyB7XG4gICAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHtcbiAgICAgICAgICAgICAgICBzY2hlbWE6IHsgJHJlZjogYCMvY29tcG9uZW50cy9zY2hlbWFzLyR7aW5wdXRSZWZ9YCB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICA6IHt9KSxcbiAgICByZXNwb25zZXM6IHtcbiAgICAgICcyMDAnOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU3VjY2Vzc2Z1bCBleGVjdXRpb24nLFxuICAgICAgICAuLi4ob3V0cHV0U2NoZW1hXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHtcbiAgICAgICAgICAgICAgICAgIHNjaGVtYTogeyAkcmVmOiBgIy9jb21wb25lbnRzL3NjaGVtYXMvJHtvdXRwdXRSZWZ9YCB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgJzUwMCc6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdQaXBlbGluZSBleGVjdXRpb24gZXJyb3InLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHNwZWM6IE9wZW5BUElTcGVjID0ge1xuICAgIG9wZW5hcGk6ICczLjEuMCcsXG4gICAgaW5mbzoge1xuICAgICAgdGl0bGU6IHJvb3ROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGZ1bGxEZXNjcmlwdGlvbixcbiAgICAgIHZlcnNpb24sXG4gICAgfSxcbiAgICBwYXRoczoge1xuICAgICAgW3BhdGhdOiB7XG4gICAgICAgIFttZXRob2RdOiBvcGVyYXRpb24sXG4gICAgICB9LFxuICAgIH0sXG4gICAgLi4uKE9iamVjdC5rZXlzKHNjaGVtYXMpLmxlbmd0aCA+IDAgPyB7IGNvbXBvbmVudHM6IHsgc2NoZW1hcyB9IH0gOiB7fSksXG4gIH07XG5cbiAgcmV0dXJuIHNwZWM7XG59XG4iXX0=
@@ -7,4 +7,4 @@
7
7
  * (inputMapper/outputMapper) but at the top-level flowchart boundary.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNvbnRyYWN0L3R5cGVzLnRzIOKAlCBUeXBlcyBmb3IgdGhlIEZsb3dDaGFydCBjb250cmFjdCBsYXllci5cbiAqXG4gKiBEZWZpbmVzIHRoZSBJL08gYm91bmRhcnkgZm9yIGEgZmxvd2NoYXJ0OiBpbnB1dCBzY2hlbWEsIG91dHB1dCBzY2hlbWEsXG4gKiBhbmQgb3V0cHV0IG1hcHBlci4gVXNlcyB0aGUgc2FtZSBwYXR0ZXJuIGFzIFN1YmZsb3dNb3VudE9wdGlvbnNcbiAqIChpbnB1dE1hcHBlci9vdXRwdXRNYXBwZXIpIGJ1dCBhdCB0aGUgdG9wLWxldmVsIGZsb3djaGFydCBib3VuZGFyeS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydCB9IGZyb20gJy4uL2J1aWxkZXIvdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEpTT04gU2NoZW1hIChzdWJzZXQgb2YgSlNPTiBTY2hlbWEgRHJhZnQgMjAyMC0xMiAvIE9wZW5BUEkgMy4xKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIEpzb25TY2hlbWEgPSB7XG4gIHR5cGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIEpzb25TY2hlbWE+O1xuICByZXF1aXJlZD86IHN0cmluZ1tdO1xuICBpdGVtcz86IEpzb25TY2hlbWE7XG4gIGVudW0/OiB1bmtub3duW107XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkZWZhdWx0PzogdW5rbm93bjtcbiAgZm9ybWF0Pzogc3RyaW5nO1xuICBhZGRpdGlvbmFsUHJvcGVydGllcz86IGJvb2xlYW4gfCBKc29uU2NoZW1hO1xuICBvbmVPZj86IEpzb25TY2hlbWFbXTtcbiAgYW55T2Y/OiBKc29uU2NoZW1hW107XG4gIGFsbE9mPzogSnNvblNjaGVtYVtdO1xuICAkcmVmPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTY2hlbWEgSW5wdXQg4oCUIGFjY2VwdHMgZWl0aGVyIFpvZCBzY2hlbWEgb3IgcmF3IEpTT04gU2NoZW1hXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqIEFueXRoaW5nIHdpdGggYSBgZGVmYCAoWm9kIHY0KSBvciBgX2RlZmAgKFpvZCB2MykgcHJvcGVydHkgaXMgdHJlYXRlZCBhcyBhIFpvZCBzY2hlbWEuICovXG5leHBvcnQgdHlwZSBTY2hlbWFJbnB1dCA9IEpzb25TY2hlbWEgfCB7IGRlZjogdW5rbm93bjsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEZsb3dDaGFydCBDb250cmFjdCDigJQgSS9PIGJvdW5kYXJ5IGRlZmluaXRpb25cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDaGFydENvbnRyYWN0T3B0aW9uczxfVElucHV0ID0gdW5rbm93biwgVE91dHB1dCA9IHVua25vd24+IHtcbiAgLyoqIFNjaGVtYSBkZXNjcmliaW5nIHRoZSBpbnB1dCAocmVhZE9ubHlDb250ZXh0KSBzaGFwZS4gWm9kIG9yIEpTT04gU2NoZW1hLiAqL1xuICBpbnB1dFNjaGVtYT86IFNjaGVtYUlucHV0O1xuICAvKiogU2NoZW1hIGRlc2NyaWJpbmcgdGhlIG91dHB1dCBzaGFwZS4gWm9kIG9yIEpTT04gU2NoZW1hLiAqL1xuICBvdXRwdXRTY2hlbWE/OiBTY2hlbWFJbnB1dDtcbiAgLyoqIE1hcHMgdGhlIGZpbmFsIHNjb3BlIHN0YXRlIGludG8gdGhlIHJlc3BvbnNlIHNoYXBlLiAqL1xuICBvdXRwdXRNYXBwZXI/OiAoZmluYWxTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFRPdXRwdXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0NoYXJ0Q29udHJhY3Q8X1RJbnB1dCA9IHVua25vd24sIFRPdXRwdXQgPSB1bmtub3duPiB7XG4gIC8qKiBUaGUgY29tcGlsZWQgZmxvd2NoYXJ0LiAqL1xuICBjaGFydDogRmxvd0NoYXJ0O1xuICAvKiogSlNPTiBTY2hlbWEgZm9yIHRoZSBpbnB1dCAobm9ybWFsaXplZCBmcm9tIFpvZCBvciByYXcpLiAqL1xuICBpbnB1dFNjaGVtYT86IEpzb25TY2hlbWE7XG4gIC8qKiBKU09OIFNjaGVtYSBmb3IgdGhlIG91dHB1dCAobm9ybWFsaXplZCBmcm9tIFpvZCBvciByYXcpLiAqL1xuICBvdXRwdXRTY2hlbWE/OiBKc29uU2NoZW1hO1xuICAvKiogTWFwcyB0aGUgZmluYWwgc2NvcGUgc3RhdGUgaW50byB0aGUgcmVzcG9uc2Ugc2hhcGUuICovXG4gIG91dHB1dE1hcHBlcj86IChmaW5hbFNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gVE91dHB1dDtcbiAgLyoqIEF1dG8tZ2VuZXJhdGVkIE9wZW5BUEkgc3BlYy4gKi9cbiAgdG9PcGVuQVBJKG9wdGlvbnM/OiBPcGVuQVBJT3B0aW9ucyk6IE9wZW5BUElTcGVjO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIE9wZW5BUEkgVHlwZXMgKG1pbmltYWwgc3Vic2V0IG9mIE9wZW5BUEkgMy4xKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFQSU9wdGlvbnMge1xuICAvKiogQVBJIHZlcnNpb24gc3RyaW5nIChkZWZhdWx0OiBcIjEuMC4wXCIpLiAqL1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICAvKiogQmFzZSBwYXRoIHByZWZpeCAoZGVmYXVsdDogXCIvXCIpLiAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqIEhUVFAgbWV0aG9kIGZvciB0aGUgZXhlY3V0ZSBlbmRwb2ludCAoZGVmYXVsdDogXCJwb3N0XCIpLiAqL1xuICBtZXRob2Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFQSVNwZWMge1xuICBvcGVuYXBpOiAnMy4xLjAnO1xuICBpbmZvOiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgfTtcbiAgcGF0aHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIE9wZW5BUElPcGVyYXRpb24+PjtcbiAgY29tcG9uZW50cz86IHtcbiAgICBzY2hlbWFzPzogUmVjb3JkPHN0cmluZywgSnNvblNjaGVtYT47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFQSU9wZXJhdGlvbiB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgcmVxdWVzdEJvZHk/OiB7XG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgY29udGVudDoge1xuICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7XG4gICAgICAgIHNjaGVtYTogSnNvblNjaGVtYSB8IHsgJHJlZjogc3RyaW5nIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHJlc3BvbnNlczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgY29udGVudD86IHtcbiAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7XG4gICAgICAgICAgc2NoZW1hOiBKc29uU2NoZW1hIHwgeyAkcmVmOiBzdHJpbmcgfTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfVxuICA+O1xufVxuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNvbnRyYWN0L3R5cGVzLnRzIOKAlCBUeXBlcyBmb3IgdGhlIEZsb3dDaGFydCBjb250cmFjdCBsYXllci5cbiAqXG4gKiBEZWZpbmVzIHRoZSBJL08gYm91bmRhcnkgZm9yIGEgZmxvd2NoYXJ0OiBpbnB1dCBzY2hlbWEsIG91dHB1dCBzY2hlbWEsXG4gKiBhbmQgb3V0cHV0IG1hcHBlci4gVXNlcyB0aGUgc2FtZSBwYXR0ZXJuIGFzIFN1YmZsb3dNb3VudE9wdGlvbnNcbiAqIChpbnB1dE1hcHBlci9vdXRwdXRNYXBwZXIpIGJ1dCBhdCB0aGUgdG9wLWxldmVsIGZsb3djaGFydCBib3VuZGFyeS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydCB9IGZyb20gJy4uL2J1aWxkZXIvdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEpTT04gU2NoZW1hIChzdWJzZXQgb2YgSlNPTiBTY2hlbWEgRHJhZnQgMjAyMC0xMiAvIE9wZW5BUEkgMy4xKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIEpzb25TY2hlbWEgPSB7XG4gIHR5cGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIEpzb25TY2hlbWE+O1xuICByZXF1aXJlZD86IHN0cmluZ1tdO1xuICBpdGVtcz86IEpzb25TY2hlbWE7XG4gIGVudW0/OiB1bmtub3duW107XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkZWZhdWx0PzogdW5rbm93bjtcbiAgZm9ybWF0Pzogc3RyaW5nO1xuICBhZGRpdGlvbmFsUHJvcGVydGllcz86IGJvb2xlYW4gfCBKc29uU2NoZW1hO1xuICBvbmVPZj86IEpzb25TY2hlbWFbXTtcbiAgYW55T2Y/OiBKc29uU2NoZW1hW107XG4gIGFsbE9mPzogSnNvblNjaGVtYVtdO1xuICAkcmVmPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTY2hlbWEgSW5wdXQg4oCUIGFjY2VwdHMgZWl0aGVyIFpvZCBzY2hlbWEgb3IgcmF3IEpTT04gU2NoZW1hXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqIEFueXRoaW5nIHdpdGggYSBgZGVmYCAoWm9kIHY0KSBvciBgX2RlZmAgKFpvZCB2MykgcHJvcGVydHkgaXMgdHJlYXRlZCBhcyBhIFpvZCBzY2hlbWEuICovXG5leHBvcnQgdHlwZSBTY2hlbWFJbnB1dCA9IEpzb25TY2hlbWEgfCB7IGRlZjogdW5rbm93bjsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEZsb3dDaGFydCBDb250cmFjdCDigJQgSS9PIGJvdW5kYXJ5IGRlZmluaXRpb25cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDaGFydENvbnRyYWN0T3B0aW9uczxfVElucHV0ID0gdW5rbm93biwgVE91dHB1dCA9IHVua25vd24+IHtcbiAgLyoqIFNjaGVtYSBkZXNjcmliaW5nIHRoZSBpbnB1dCAocmVhZE9ubHlDb250ZXh0KSBzaGFwZS4gWm9kIG9yIEpTT04gU2NoZW1hLiAqL1xuICBpbnB1dFNjaGVtYT86IFNjaGVtYUlucHV0O1xuICAvKiogU2NoZW1hIGRlc2NyaWJpbmcgdGhlIG91dHB1dCBzaGFwZS4gWm9kIG9yIEpTT04gU2NoZW1hLiAqL1xuICBvdXRwdXRTY2hlbWE/OiBTY2hlbWFJbnB1dDtcbiAgLyoqIE1hcHMgdGhlIGZpbmFsIHNjb3BlIHN0YXRlIGludG8gdGhlIHJlc3BvbnNlIHNoYXBlLiAqL1xuICBvdXRwdXRNYXBwZXI/OiAoZmluYWxTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFRPdXRwdXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0NoYXJ0Q29udHJhY3Q8X1RJbnB1dCA9IHVua25vd24sIFRPdXRwdXQgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBQcm90b3R5cGUtbGlua2VkIHZpZXcgb2YgdGhlIG9yaWdpbmFsIGNvbXBpbGVkIEZsb3dDaGFydC5cbiAgICpcbiAgICogT3duIHByb3BlcnRpZXMgKGlucHV0U2NoZW1hLCBvdXRwdXRTY2hlbWEsIG91dHB1dE1hcHBlcikgYXJlIHNoYWRvd2VkIGhlcmVcbiAgICogc28gdGhhdCB0aGUgY29udHJhY3QncyB2YWx1ZXMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgYnVpbGRlci1zZXQgdmFsdWVzLlxuICAgKiBBbGwgb3RoZXIgZmllbGRzIChyb290LCBzdGFnZU1hcCwgbWV0aG9kcykgYXJlIGluaGVyaXRlZCB2aWEgdGhlIHByb3RvdHlwZVxuICAgKiBjaGFpbiB3aXRoIHplcm8gY29weWluZy4gVGhlIG9yaWdpbmFsIGNoYXJ0IGlzIG5ldmVyIG11dGF0ZWQuXG4gICAqXG4gICAqIOKaoO+4jyBEbyBOT1QgdXNlIE9iamVjdC5rZXlzKCksIHNwcmVhZCAoey4uLmNoYXJ0fSksIG9yIEpTT04uc3RyaW5naWZ5KCkgb25cbiAgICogdGhpcyBvYmplY3Qg4oCUIGl0IHdpbGwgb25seSBzZWUgb3duIChzaGFkb3dlZCkgcHJvcGVydGllcy4gVXNlIG5hbWVkXG4gICAqIHByb3BlcnR5IGFjY2VzcyBvciBjaGFydC50b1NwZWMoKSBpbnN0ZWFkLlxuICAgKi9cbiAgY2hhcnQ6IEZsb3dDaGFydDtcbiAgLyoqIEpTT04gU2NoZW1hIGZvciB0aGUgaW5wdXQgKG5vcm1hbGl6ZWQgZnJvbSBab2Qgb3IgcmF3KS4gKi9cbiAgaW5wdXRTY2hlbWE/OiBKc29uU2NoZW1hO1xuICAvKiogSlNPTiBTY2hlbWEgZm9yIHRoZSBvdXRwdXQgKG5vcm1hbGl6ZWQgZnJvbSBab2Qgb3IgcmF3KS4gKi9cbiAgb3V0cHV0U2NoZW1hPzogSnNvblNjaGVtYTtcbiAgLyoqIE1hcHMgdGhlIGZpbmFsIHNjb3BlIHN0YXRlIGludG8gdGhlIHJlc3BvbnNlIHNoYXBlLiAqL1xuICBvdXRwdXRNYXBwZXI/OiAoZmluYWxTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFRPdXRwdXQ7XG4gIC8qKiBBdXRvLWdlbmVyYXRlZCBPcGVuQVBJIHNwZWMuIERlc2NyaXB0aW9uIGlzIHJlYWQgZnJvbSBgY2hhcnQuZGVzY3JpcHRpb25gIChwcmUtYnVpbHQgYXQgYnVpbGQgdGltZSkuICovXG4gIHRvT3BlbkFQSShvcHRpb25zPzogT3BlbkFQSU9wdGlvbnMpOiBPcGVuQVBJU3BlYztcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBPcGVuQVBJIFR5cGVzIChtaW5pbWFsIHN1YnNldCBvZiBPcGVuQVBJIDMuMSlcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BUElPcHRpb25zIHtcbiAgLyoqIEFQSSB2ZXJzaW9uIHN0cmluZyAoZGVmYXVsdDogXCIxLjAuMFwiKS4gKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqIEJhc2UgcGF0aCBwcmVmaXggKGRlZmF1bHQ6IFwiL1wiKS4gKi9cbiAgYmFzZVBhdGg/OiBzdHJpbmc7XG4gIC8qKiBIVFRQIG1ldGhvZCBmb3IgdGhlIGV4ZWN1dGUgZW5kcG9pbnQgKGRlZmF1bHQ6IFwicG9zdFwiKS4gKi9cbiAgbWV0aG9kPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BUElTcGVjIHtcbiAgb3BlbmFwaTogJzMuMS4wJztcbiAgaW5mbzoge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gIH07XG4gIHBhdGhzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBPcGVuQVBJT3BlcmF0aW9uPj47XG4gIGNvbXBvbmVudHM/OiB7XG4gICAgc2NoZW1hcz86IFJlY29yZDxzdHJpbmcsIEpzb25TY2hlbWE+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BUElPcGVyYXRpb24ge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzdW1tYXJ5OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHJlcXVlc3RCb2R5Pzoge1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIGNvbnRlbnQ6IHtcbiAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICBzY2hlbWE6IEpzb25TY2hlbWEgfCB7ICRyZWY6IHN0cmluZyB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICByZXNwb25zZXM6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgIGNvbnRlbnQ/OiB7XG4gICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICAgIHNjaGVtYTogSnNvblNjaGVtYSB8IHsgJHJlZjogc3RyaW5nIH07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH1cbiAgPjtcbn1cbiJdfQ==
@@ -11,6 +11,7 @@
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.select = exports.decide = void 0;
14
+ const detectCircular_js_1 = require("../scope/detectCircular.js");
14
15
  const evaluator_js_1 = require("./evaluator.js");
15
16
  const evidence_js_1 = require("./evidence.js");
16
17
  const types_js_1 = require("./types.js");
@@ -63,11 +64,19 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
63
64
  if (collector && attachFn)
64
65
  attachFn(collector);
65
66
  let matched;
67
+ let matchError;
66
68
  try {
67
69
  matched = rule.when(scope);
68
70
  }
69
- catch (_b) {
71
+ catch (e) {
70
72
  matched = false;
73
+ // Capture the error for debugging — surface it in evidence instead of swallowing silently
74
+ matchError = e instanceof Error ? e.message : String(e);
75
+ if ((0, detectCircular_js_1.isDevMode)()) {
76
+ const label = rule.label ? ` ('${rule.label}')` : '';
77
+ // eslint-disable-next-line no-console
78
+ console.warn(`[footprint] decide() rule ${index}${label} threw during evaluation: ${matchError}`);
79
+ }
71
80
  }
72
81
  finally {
73
82
  if (collector && detachFn)
@@ -79,7 +88,9 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
79
88
  branch: rule.then,
80
89
  matched,
81
90
  label: rule.label,
91
+ // Partial reads: if rule threw after some getValue() calls, collector holds reads up to the throw point
82
92
  inputs: (_a = collector === null || collector === void 0 ? void 0 : collector.getInputs()) !== null && _a !== void 0 ? _a : [],
93
+ ...(matchError !== undefined && { matchError }),
83
94
  };
84
95
  return evidence;
85
96
  }
@@ -89,14 +100,22 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
89
100
  const resolvedRedactedFn = redactedFn !== null && redactedFn !== void 0 ? redactedFn : (() => false);
90
101
  let filterMatched = false;
91
102
  let filterConditions = [];
103
+ let matchError;
92
104
  try {
93
105
  const result = (0, evaluator_js_1.evaluateFilter)(resolvedValueFn, resolvedRedactedFn, rule.when);
94
106
  filterMatched = result.matched;
95
107
  filterConditions = result.conditions;
96
108
  }
97
- catch (_c) {
109
+ catch (e) {
98
110
  filterMatched = false;
99
111
  filterConditions = [];
112
+ // Capture the error for debugging — surface it in evidence instead of swallowing silently
113
+ matchError = e instanceof Error ? e.message : String(e);
114
+ if ((0, detectCircular_js_1.isDevMode)()) {
115
+ const label = rule.label ? ` ('${rule.label}')` : '';
116
+ // eslint-disable-next-line no-console
117
+ console.warn(`[footprint] decide() filter rule ${index}${label} threw during evaluation: ${matchError}`);
118
+ }
100
119
  }
101
120
  const evidence = {
102
121
  type: 'filter',
@@ -105,6 +124,7 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
105
124
  matched: filterMatched,
106
125
  label: rule.label,
107
126
  conditions: filterConditions,
127
+ ...(matchError !== undefined && { matchError }),
108
128
  };
109
129
  return evidence;
110
130
  }
@@ -116,6 +136,11 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
116
136
  * @param scope - TypedScope or ScopeFacade
117
137
  * @param rules - Array of DecideRule (function or filter when clauses)
118
138
  * @param defaultBranch - Branch ID if no rule matches
139
+ *
140
+ * **Error behavior:** If a `when` function throws during evaluation, the rule is
141
+ * treated as non-matching (`matched: false`) and the error message is captured in
142
+ * `matchError` on that rule's `RuleEvidence` entry. Execution continues with
143
+ * subsequent rules; errors do not propagate to the caller.
119
144
  */
120
145
  function decide(scope, rules, defaultBranch) {
121
146
  const attachFn = getAttachFn(scope);
@@ -150,6 +175,11 @@ exports.decide = decide;
150
175
  *
151
176
  * @param scope - TypedScope or ScopeFacade
152
177
  * @param rules - Array of DecideRule (function or filter when clauses)
178
+ *
179
+ * **Error behavior:** If a `when` function throws during evaluation, the rule is
180
+ * treated as non-matching (`matched: false`) and the error message is captured in
181
+ * `matchError` on that rule's `RuleEvidence` entry. Evaluation continues with
182
+ * remaining rules; errors do not propagate to the caller.
153
183
  */
154
184
  function select(scope, rules) {
155
185
  const attachFn = getAttachFn(scope);
@@ -172,4 +202,4 @@ function select(scope, rules) {
172
202
  return { branches: selectedBranches, [types_js_1.DECISION_RESULT]: true, evidence };
173
203
  }
174
204
  exports.select = select;
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kZWNpZGUvZGVjaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7OztBQUdILGlEQUFnRDtBQUNoRCwrQ0FBa0Q7QUFhbEQseUNBQTZDO0FBRTdDLCtFQUErRTtBQUUvRSxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLE1BQU0sQ0FBQyxHQUFHLEtBQWdDLENBQUM7SUFDM0MsSUFBSSxPQUFPLENBQUMsQ0FBQyxlQUFlLEtBQUssVUFBVTtRQUFFLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxjQUFjLEtBQUssVUFBVTtRQUFFLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWM7SUFDakMsTUFBTSxDQUFDLEdBQUcsS0FBZ0MsQ0FBQztJQUMzQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLGVBQWUsS0FBSyxVQUFVO1FBQUUsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxJQUFJLE9BQU8sQ0FBQyxDQUFDLGNBQWMsS0FBSyxVQUFVO1FBQUUsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBYztJQUNoQyxNQUFNLENBQUMsR0FBRyxLQUFnQyxDQUFDO0lBQzNDLGdGQUFnRjtJQUNoRiw2RUFBNkU7SUFDN0UscURBQXFEO0lBQ3JELElBQUksT0FBTyxDQUFDLENBQUMsU0FBUyxLQUFLLFVBQVU7UUFBRSxPQUFP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QUM1QyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0YsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVsQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQXNCO1FBQ2xDLEtBQUssRUFBRSxjQUFjO1FBQ3JCLFFBQVEsRUFBRSxnQkFBZ0I7S0FDM0IsQ0FBQztJQUNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQywwQkFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQzNFLENBQUM7QUF2QkQsd0JBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBkZWNpZGUvZGVjaWRlIC0tIENvcmUgZGVjaWRlKCkgYW5kIHNlbGVjdCgpIGhlbHBlciBmdW5jdGlvbnMuXG4gKlxuICogZGVjaWRlKCkgZXZhbHVhdGVzIHJ1bGVzIGluIG9yZGVyIChmaXJzdC1tYXRjaCkgYW5kIHJldHVybnMgYSBEZWNpc2lvblJlc3VsdC5cbiAqIHNlbGVjdCgpIGV2YWx1YXRlcyBBTEwgcnVsZXMgYW5kIHJldHVybnMgYSBTZWxlY3Rpb25SZXN1bHQgd2l0aCBhbGwgbWF0Y2hlcy5cbiAqXG4gKiBFYWNoIHJ1bGUncyBgd2hlbmAgY2FuIGJlOlxuICogLSBBIGZ1bmN0aW9uOiAocykgPT4gcy5jcmVkaXRTY29yZSA+IDcwMCAgKGF1dG8tY2FwdHVyZXMgcmVhZHMgdmlhIHRlbXAgcmVjb3JkZXIpXG4gKiAtIEEgZmlsdGVyOiAgIHsgY3JlZGl0U2NvcmU6IHsgZ3Q6IDcwMCB9IH0gKGNhcHR1cmVzIHJlYWRzICsgb3BlcmF0b3JzICsgdGhyZXNob2xkcylcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJlY29yZGVyIH0gZnJvbSAnLi4vc2NvcGUvdHlwZXMuanMnO1xuaW1wb3J0IHsgZXZhbHVhdGVGaWx0ZXIgfSBmcm9tICcuL2V2YWx1YXRvci5qcyc7XG5pbXBvcnQgeyBFdmlkZW5jZUNvbGxlY3RvciB9IGZyb20gJy4vZXZpZGVuY2UuanMnO1xuaW1wb3J0IHR5cGUge1xuICBEZWNpZGVSdWxlLFxuICBEZWNpc2lvbkV2aWRlbmNlLFxuICBEZWNpc2lvblJlc3VsdCxcbiAgRmlsdGVyQ29uZGl0aW9uLFxuICBGaWx0ZXJSdWxlRXZpZGVuY2UsXG4gIEZ1bmN0aW9uUnVsZUV2aWRlbmNlLFxuICBSdWxlRXZpZGVuY2UsXG4gIFNlbGVjdGlvbkV2aWRlbmNlLFxuICBTZWxlY3Rpb25SZXN1bHQsXG4gIFdoZXJlRmlsdGVyLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IERFQ0lTSU9OX1JFU1VMVCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyAtLSBTY29wZSBhY2Nlc3NvciBoZWxwZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGdldEF0dGFjaEZuKHNjb3BlOiB1bmtub3duKTogKChyOiBSZWNvcmRlcikgPT4gdm9pZCkgfCB1bmRlZmluZWQge1xuICBjb25zdCBzID0gc2NvcGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICh0eXBlb2Ygcy4kYXR0YWNoUmVjb3JkZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBzLiRhdHRhY2hSZWNvcmRlci5iaW5kKHMpO1xuICBpZiAodHlwZW9mIHMuYXR0YWNoUmVjb3JkZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBzLmF0dGFjaFJlY29yZGVyLmJpbmQocyk7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldERldGFjaEZuKHNjb3BlOiB1bmtub3duKTogKChpZDogc3RyaW5nKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHMgPSBzY29wZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKHR5cGVvZiBzLiRkZXRhY2hSZWNvcmRlciA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHMuJGRldGFjaFJlY29yZGVyLmJpbmQocyk7XG4gIGlmICh0eXBlb2Ygcy5kZXRhY2hSZWNvcmRlciA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHMuZGV0YWNoUmVjb3JkZXIuYmluZChzKTtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVGbihzY29wZTogdW5rbm93bik6IChrZXk6IHN0cmluZykgPT4gdW5rbm93biB7XG4gIGNvbnN0IHMgPSBzY29wZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLy8gQ2hlY2sgJGdldFZhbHVlIGZpcnN0OiBvbiBUeXBlZFNjb3BlLCBhY2Nlc3NpbmcgLmdldFZhbHVlIHRyaWdnZXJzIGEgc3B1cmlvdXNcbiAgLy8gb25SZWFkIGZvciBrZXkgXCJnZXRWYWx1ZVwiIHZpYSB0aGUgUHJveHkgZ2V0IHRyYXAuICRnZXRWYWx1ZSByb3V0ZXMgdGhyb3VnaFxuICAvLyBTQ09QRV9NRVRIT0RfTkFNRVMgYW5kIGF2b2lkcyB0aGUgc3RhdGUtcmVhZCBwYXRoLlxuICBpZiAodHlwZW9mIHMuJGdldFZhbHVlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcy4kZ2V0VmFsdWUuYmluZChzKTtcbiAgaWYgKHR5cGVvZiBzLmdldFZhbHVlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcy5nZXRWYWx1ZS5iaW5kKHMpO1xuICByZXR1cm4gKCkgPT4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRSZWRhY3RlZEZuKHNjb3BlOiB1bmtub3duKTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuIHtcbiAgY29uc3QgcyA9IHNjb3BlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvLyBUcnkgJHRvUmF3KCkgZmlyc3QgKFR5cGVkU2NvcGUpLCB0aGVuIGRpcmVjdFxuICBjb25zdCByYXcgPSB0eXBlb2Ygcy4kdG9SYXcgPT09ICdmdW5jdGlvbicgPyBzLiR0b1JhdygpIDogcztcbiAgY29uc3QgciA9IHJhdyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKHR5cGVvZiByLmdldFJlZGFjdGVkS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGtleXMgPSByLmdldFJlZGFjdGVkS2V5cygpIGFzIFNldDxzdHJpbmc+O1xuICAgIHJldHVybiAoa2V5OiBzdHJpbmcpID0+IGtleXMuaGFzKGtleSk7XG4gIH1cbiAgcmV0dXJuICgpID0+IGZhbHNlO1xufVxuXG4vLyAtLSBldmFsdWF0ZSBhIHNpbmdsZSBydWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGV2YWx1YXRlUnVsZTxTIGV4dGVuZHMgb2JqZWN0PihcbiAgc2NvcGU6IFMsXG4gIHJ1bGU6IERlY2lkZVJ1bGU8Uz4sXG4gIGluZGV4OiBudW1iZXIsXG4gIGF0dGFjaEZuPzogKHI6IFJlY29yZGVyKSA9PiB2b2lkLFxuICBkZXRhY2hGbj86IChpZDogc3RyaW5nKSA9PiB2b2lkLFxuICB2YWx1ZUZuPzogKGtleTogc3RyaW5nKSA9PiB1bmtub3duLFxuICByZWRhY3RlZEZuPzogKGtleTogc3RyaW5nKSA9PiBib29sZWFuLFxuKTogUnVsZUV2aWRlbmNlIHtcbiAgaWYgKHR5cGVvZiBydWxlLndoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBGVU5DVElPTiBQQVRIOiB0ZW1wIHJlY29yZGVyIGNhcHR1cmVzIHJlYWRzIChsYXp5IOKAlCBza2lwIGlmIG5vIHJlY29yZGVyIHN1cHBvcnQpXG4gICAgY29uc3QgaGFzUmVjb3JkZXJTdXBwb3J0ID0gQm9vbGVhbihhdHRhY2hGbik7XG4gICAgY29uc3QgY29sbGVjdG9yID0gaGFzUmVjb3JkZXJTdXBwb3J0ID8gbmV3IEV2aWRlbmNlQ29sbGVjdG9yKCkgOiB1bmRlZmluZWQ7XG4gICAgaWYgKGNvbGxlY3RvciAmJiBhdHRhY2hGbikgYXR0YWNoRm4oY29sbGVjdG9yKTtcblxuICAgIGxldCBtYXRjaGVkOiBib29sZWFuO1xuICAgIHRyeSB7XG4gICAgICBtYXRjaGVkID0gcnVsZS53aGVuKHNjb3BlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIG1hdGNoZWQgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGNvbGxlY3RvciAmJiBkZXRhY2hGbikgZGV0YWNoRm4oY29sbGVjdG9yLmlkKTtcbiAgICB9XG5cbiAgICBjb25zdCBldmlkZW5jZTogRnVuY3Rpb25SdWxlRXZpZGVuY2UgPSB7XG4gICAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgICAgcnVsZUluZGV4OiBpbmRleCxcbiAgICAgIGJyYW5jaDogcnVsZS50aGVuLFxuICAgICAgbWF0Y2hlZCxcbiAgICAgIGxhYmVsOiBydWxlLmxhYmVsLFxuICAgICAgaW5wdXRzOiBjb2xsZWN0b3I/LmdldElucHV0cygpID8/IFtdLFxuICAgIH07XG4gICAgcmV0dXJuIGV2aWRlbmNlO1xuICB9IGVsc2Uge1xuICAgIC8vIEZJTFRFUiBQQVRIOiByZWFkcyB2YWx1ZXMgZGlyZWN0bHkgdmlhIGNhbGxiYWNrcyAobm8gcmVjb3JkZXIpOyBleGNlcHRpb25zIHRyZWF0ZWQgYXMgbm9uLW1hdGNoXG4gICAgY29uc3QgcmVzb2x2ZWRWYWx1ZUZuID0gdmFsdWVGbiA/PyAoKCkgPT4gdW5kZWZpbmVkKTtcbiAgICBjb25zdCByZXNvbHZlZFJlZGFjdGVkRm4gPSByZWRhY3RlZEZuID8/ICgoKSA9PiBmYWxzZSk7XG4gICAgbGV0IGZpbHRlck1hdGNoZWQgPSBmYWxzZTtcbiAgICBsZXQgZmlsdGVyQ29uZGl0aW9uczogRmlsdGVyQ29uZGl0aW9uW10gPSBbXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZXZhbHVhdGVGaWx0ZXIocmVzb2x2ZWRWYWx1ZUZuLCByZXNvbHZlZFJlZGFjdGVkRm4sIHJ1bGUud2hlbiBhcyBXaGVyZUZpbHRlcjxTPik7XG4gICAgICBmaWx0ZXJNYXRjaGVkID0gcmVzdWx0Lm1hdGNoZWQ7XG4gICAgICBmaWx0ZXJDb25kaXRpb25zID0gcmVzdWx0LmNvbmRpdGlvbnM7XG4gICAgfSBjYXRjaCB7XG4gICAgICBmaWx0ZXJNYXRjaGVkID0gZmFsc2U7XG4gICAgICBmaWx0ZXJDb25kaXRpb25zID0gW107XG4gICAgfVxuXG4gICAgY29uc3QgZXZpZGVuY2U6IEZpbHRlclJ1bGVFdmlkZW5jZSA9IHtcbiAgICAgIHR5cGU6ICdmaWx0ZXInLFxuICAgICAgcnVsZUluZGV4OiBpbmRleCxcbiAgICAgIGJyYW5jaDogcnVsZS50aGVuLFxuICAgICAgbWF0Y2hlZDogZmlsdGVyTWF0Y2hlZCxcbiAgICAgIGxhYmVsOiBydWxlLmxhYmVsLFxuICAgICAgY29uZGl0aW9uczogZmlsdGVyQ29uZGl0aW9ucyxcbiAgICB9O1xuICAgIHJldHVybiBldmlkZW5jZTtcbiAgfVxufVxuXG4vLyAtLSBkZWNpZGUoKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRXZhbHVhdGVzIHJ1bGVzIGluIG9yZGVyIChmaXJzdC1tYXRjaCkuIFJldHVybnMgYSBicmFuZGVkIERlY2lzaW9uUmVzdWx0LlxuICpcbiAqIEBwYXJhbSBzY29wZSAtIFR5cGVkU2NvcGUgb3IgU2NvcGVGYWNhZGVcbiAqIEBwYXJhbSBydWxlcyAtIEFycmF5IG9mIERlY2lkZVJ1bGUgKGZ1bmN0aW9uIG9yIGZpbHRlciB3aGVuIGNsYXVzZXMpXG4gKiBAcGFyYW0gZGVmYXVsdEJyYW5jaCAtIEJyYW5jaCBJRCBpZiBubyBydWxlIG1hdGNoZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY2lkZTxTIGV4dGVuZHMgb2JqZWN0PihzY29wZTogUywgcnVsZXM6IERlY2lkZVJ1bGU8Uz5bXSwgZGVmYXVsdEJyYW5jaDogc3RyaW5nKTogRGVjaXNpb25SZXN1bHQge1xuICBjb25zdCBhdHRhY2hGbiA9IGdldEF0dGFjaEZuKHNjb3BlKTtcbiAgY29uc3QgZGV0YWNoRm4gPSBnZXREZXRhY2hGbihzY29wZSk7XG4gIGNvbnN0IHZhbHVlRm4gPSBnZXRWYWx1ZUZuKHNjb3BlKTtcbiAgY29uc3QgcmVkYWN0ZWRGbiA9IGdldFJlZGFjdGVkRm4oc2NvcGUpO1xuXG4gIGNvbnN0IGV2YWx1YXRlZFJ1bGVzOiBSdWxlRXZpZGVuY2VbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2luZGV4LCBydWxlXSBvZiBydWxlcy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBydWxlRXZpZGVuY2UgPSBldmFsdWF0ZVJ1bGUoc2NvcGUsIHJ1bGUsIGluZGV4LCBhdHRhY2hGbiwgZGV0YWNoRm4sIHZhbHVlRm4sIHJlZGFjdGVkRm4pO1xuICAgIGV2YWx1YXRlZFJ1bGVzLnB1c2gocnVsZUV2aWRlbmNlKTtcblxuICAgIGlmIChydWxlRXZpZGVuY2UubWF0Y2hlZCkge1xuICAgICAgY29uc3QgZXZpZGVuY2U6IERlY2lzaW9uRXZpZGVuY2UgPSB7XG4gICAgICAgIHJ1bGVzOiBldmFsdWF0ZWRSdWxlcyxcbiAgICAgICAgY2hvc2VuOiBydWxlLnRoZW4sXG4gICAgICAgIGRlZmF1bHQ6IGRlZmF1bHRCcmFuY2gsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHsgYnJhbmNoOiBydWxlLnRoZW4sIFtERUNJU0lPTl9SRVNVTFRdOiB0cnVlLCBldmlkZW5jZSB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmF1bHQ6IG5vIHJ1bGUgbWF0Y2hlZFxuICBjb25zdCBldmlkZW5jZTogRGVjaXNpb25FdmlkZW5jZSA9IHtcbiAgICBydWxlczogZXZhbHVhdGVkUnVsZXMsXG4gICAgY2hvc2VuOiBkZWZhdWx0QnJhbmNoLFxuICAgIGRlZmF1bHQ6IGRlZmF1bHRCcmFuY2gsXG4gIH07XG4gIHJldHVybiB7IGJyYW5jaDogZGVmYXVsdEJyYW5jaCwgW0RFQ0lTSU9OX1JFU1VMVF06IHRydWUsIGV2aWRlbmNlIH07XG59XG5cbi8vIC0tIHNlbGVjdCgpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBFdmFsdWF0ZXMgQUxMIHJ1bGVzIChub3QgZmlyc3QtbWF0Y2gpLiBSZXR1cm5zIGEgYnJhbmRlZCBTZWxlY3Rpb25SZXN1bHQuXG4gKlxuICogQHBhcmFtIHNjb3BlIC0gVHlwZWRTY29wZSBvciBTY29wZUZhY2FkZVxuICogQHBhcmFtIHJ1bGVzIC0gQXJyYXkgb2YgRGVjaWRlUnVsZSAoZnVuY3Rpb24gb3IgZmlsdGVyIHdoZW4gY2xhdXNlcylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdDxTIGV4dGVuZHMgb2JqZWN0PihzY29wZTogUywgcnVsZXM6IERlY2lkZVJ1bGU8Uz5bXSk6IFNlbGVjdGlvblJlc3VsdCB7XG4gIGNvbnN0IGF0dGFjaEZuID0gZ2V0QXR0YWNoRm4oc2NvcGUpO1xuICBjb25zdCBkZXRhY2hGbiA9IGdldERldGFjaEZuKHNjb3BlKTtcbiAgY29uc3QgdmFsdWVGbiA9IGdldFZhbHVlRm4oc2NvcGUpO1xuICBjb25zdCByZWRhY3RlZEZuID0gZ2V0UmVkYWN0ZWRGbihzY29wZSk7XG5cbiAgY29uc3QgZXZhbHVhdGVkUnVsZXM6IFJ1bGVFdmlkZW5jZVtdID0gW107XG4gIGNvbnN0IHNlbGVjdGVkQnJhbmNoZXM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBbaW5kZXgsIHJ1bGVdIG9mIHJ1bGVzLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IHJ1bGVFdmlkZW5jZSA9IGV2YWx1YXRlUnVsZShzY29wZSwgcnVsZSwgaW5kZXgsIGF0dGFjaEZuLCBkZXRhY2hGbiwgdmFsdWVGbiwgcmVkYWN0ZWRGbik7XG4gICAgZXZhbHVhdGVkUnVsZXMucHVzaChydWxlRXZpZGVuY2UpO1xuXG4gICAgaWYgKHJ1bGVFdmlkZW5jZS5tYXRjaGVkKSB7XG4gICAgICBzZWxlY3RlZEJyYW5jaGVzLnB1c2gocnVsZS50aGVuKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBldmlkZW5jZTogU2VsZWN0aW9uRXZpZGVuY2UgPSB7XG4gICAgcnVsZXM6IGV2YWx1YXRlZFJ1bGVzLFxuICAgIHNlbGVjdGVkOiBzZWxlY3RlZEJyYW5jaGVzLFxuICB9O1xuICByZXR1cm4geyBicmFuY2hlczogc2VsZWN0ZWRCcmFuY2hlcywgW0RFQ0lTSU9OX1JFU1VMVF06IHRydWUsIGV2aWRlbmNlIH07XG59XG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kZWNpZGUvZGVjaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7OztBQUVILGtFQUF1RDtBQUV2RCxpREFBZ0Q7QUFDaEQsK0NBQWtEO0FBYWxELHlDQUE2QztBQUU3QywrRUFBK0U7QUFFL0UsU0FBUyxXQUFXLENBQUMsS0FBYztJQUNqQyxNQUFNLENBQUMsR0FBRyxLQUFnQyxDQUFDO0lBQzNDLElBQUksT0FBTyxDQUFDLENBQUMsZUFBZSxLQUFLLFVBQVU7UUFBRSxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLElBQUksT0FBTyxDQUFDLENBQUMsY0FBYyxLQUFLLFVBQVU7UUFBRSxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLE1BQU0sQ0FBQyxHQUFHLEtBQWdDLENBQUM7SUFDM0MsSUFBSSxPQUFPLENBQUMsQ0FBQyxlQUFlLEtBQUssVUFBVTtRQUFFLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxjQUFjLEtBQUssVUFBVTtRQUFFLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWM7SUFDaEMsTUFBTSxDQUFDLEdBQUcsS0FBZ0MsQ0FBQztJQUMzQyxnRkFBZ0Y7SUFDaEYsNkVBQTZFO0lBQzdFLHFEQUFxRDtJQUNyRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLFNBQVMsS0FBSyxV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TyxFQUFFLEVBQUUsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0YsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVsQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQXNCO1FBQ2xDLEtBQUssRUFBRSxjQUFjO1FBQ3JCLFFBQVEsRUFBRSxnQkFBZ0I7S0FDM0IsQ0FBQztJQUNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQywwQkFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQzNFLENBQUM7QUF2QkQsd0JBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBkZWNpZGUvZGVjaWRlIC0tIENvcmUgZGVjaWRlKCkgYW5kIHNlbGVjdCgpIGhlbHBlciBmdW5jdGlvbnMuXG4gKlxuICogZGVjaWRlKCkgZXZhbHVhdGVzIHJ1bGVzIGluIG9yZGVyIChmaXJzdC1tYXRjaCkgYW5kIHJldHVybnMgYSBEZWNpc2lvblJlc3VsdC5cbiAqIHNlbGVjdCgpIGV2YWx1YXRlcyBBTEwgcnVsZXMgYW5kIHJldHVybnMgYSBTZWxlY3Rpb25SZXN1bHQgd2l0aCBhbGwgbWF0Y2hlcy5cbiAqXG4gKiBFYWNoIHJ1bGUncyBgd2hlbmAgY2FuIGJlOlxuICogLSBBIGZ1bmN0aW9uOiAocykgPT4gcy5jcmVkaXRTY29yZSA+IDcwMCAgKGF1dG8tY2FwdHVyZXMgcmVhZHMgdmlhIHRlbXAgcmVjb3JkZXIpXG4gKiAtIEEgZmlsdGVyOiAgIHsgY3JlZGl0U2NvcmU6IHsgZ3Q6IDcwMCB9IH0gKGNhcHR1cmVzIHJlYWRzICsgb3BlcmF0b3JzICsgdGhyZXNob2xkcylcbiAqL1xuXG5pbXBvcnQgeyBpc0Rldk1vZGUgfSBmcm9tICcuLi9zY29wZS9kZXRlY3RDaXJjdWxhci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlY29yZGVyIH0gZnJvbSAnLi4vc2NvcGUvdHlwZXMuanMnO1xuaW1wb3J0IHsgZXZhbHVhdGVGaWx0ZXIgfSBmcm9tICcuL2V2YWx1YXRvci5qcyc7XG5pbXBvcnQgeyBFdmlkZW5jZUNvbGxlY3RvciB9IGZyb20gJy4vZXZpZGVuY2UuanMnO1xuaW1wb3J0IHR5cGUge1xuICBEZWNpZGVSdWxlLFxuICBEZWNpc2lvbkV2aWRlbmNlLFxuICBEZWNpc2lvblJlc3VsdCxcbiAgRmlsdGVyQ29uZGl0aW9uLFxuICBGaWx0ZXJSdWxlRXZpZGVuY2UsXG4gIEZ1bmN0aW9uUnVsZUV2aWRlbmNlLFxuICBSdWxlRXZpZGVuY2UsXG4gIFNlbGVjdGlvbkV2aWRlbmNlLFxuICBTZWxlY3Rpb25SZXN1bHQsXG4gIFdoZXJlRmlsdGVyLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IERFQ0lTSU9OX1JFU1VMVCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyAtLSBTY29wZSBhY2Nlc3NvciBoZWxwZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGdldEF0dGFjaEZuKHNjb3BlOiB1bmtub3duKTogKChyOiBSZWNvcmRlcikgPT4gdm9pZCkgfCB1bmRlZmluZWQge1xuICBjb25zdCBzID0gc2NvcGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICh0eXBlb2Ygcy4kYXR0YWNoUmVjb3JkZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBzLiRhdHRhY2hSZWNvcmRlci5iaW5kKHMpO1xuICBpZiAodHlwZW9mIHMuYXR0YWNoUmVjb3JkZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBzLmF0dGFjaFJlY29yZGVyLmJpbmQocyk7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldERldGFjaEZuKHNjb3BlOiB1bmtub3duKTogKChpZDogc3RyaW5nKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHMgPSBzY29wZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKHR5cGVvZiBzLiRkZXRhY2hSZWNvcmRlciA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHMuJGRldGFjaFJlY29yZGVyLmJpbmQocyk7XG4gIGlmICh0eXBlb2Ygcy5kZXRhY2hSZWNvcmRlciA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHMuZGV0YWNoUmVjb3JkZXIuYmluZChzKTtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVGbihzY29wZTogdW5rbm93bik6IChrZXk6IHN0cmluZykgPT4gdW5rbm93biB7XG4gIGNvbnN0IHMgPSBzY29wZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLy8gQ2hlY2sgJGdldFZhbHVlIGZpcnN0OiBvbiBUeXBlZFNjb3BlLCBhY2Nlc3NpbmcgLmdldFZhbHVlIHRyaWdnZXJzIGEgc3B1cmlvdXNcbiAgLy8gb25SZWFkIGZvciBrZXkgXCJnZXRWYWx1ZVwiIHZpYSB0aGUgUHJveHkgZ2V0IHRyYXAuICRnZXRWYWx1ZSByb3V0ZXMgdGhyb3VnaFxuICAvLyBTQ09QRV9NRVRIT0RfTkFNRVMgYW5kIGF2b2lkcyB0aGUgc3RhdGUtcmVhZCBwYXRoLlxuICBpZiAodHlwZW9mIHMuJGdldFZhbHVlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcy4kZ2V0VmFsdWUuYmluZChzKTtcbiAgaWYgKHR5cGVvZiBzLmdldFZhbHVlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcy5nZXRWYWx1ZS5iaW5kKHMpO1xuICByZXR1cm4gKCkgPT4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRSZWRhY3RlZEZuKHNjb3BlOiB1bmtub3duKTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuIHtcbiAgY29uc3QgcyA9IHNjb3BlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvLyBUcnkgJHRvUmF3KCkgZmlyc3QgKFR5cGVkU2NvcGUpLCB0aGVuIGRpcmVjdFxuICBjb25zdCByYXcgPSB0eXBlb2Ygcy4kdG9SYXcgPT09ICdmdW5jdGlvbicgPyBzLiR0b1JhdygpIDogcztcbiAgY29uc3QgciA9IHJhdyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKHR5cGVvZiByLmdldFJlZGFjdGVkS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGtleXMgPSByLmdldFJlZGFjdGVkS2V5cygpIGFzIFNldDxzdHJpbmc+O1xuICAgIHJldHVybiAoa2V5OiBzdHJpbmcpID0+IGtleXMuaGFzKGtleSk7XG4gIH1cbiAgcmV0dXJuICgpID0+IGZhbHNlO1xufVxuXG4vLyAtLSBldmFsdWF0ZSBhIHNpbmdsZSBydWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGV2YWx1YXRlUnVsZTxTIGV4dGVuZHMgb2JqZWN0PihcbiAgc2NvcGU6IFMsXG4gIHJ1bGU6IERlY2lkZVJ1bGU8Uz4sXG4gIGluZGV4OiBudW1iZXIsXG4gIGF0dGFjaEZuPzogKHI6IFJlY29yZGVyKSA9PiB2b2lkLFxuICBkZXRhY2hGbj86IChpZDogc3RyaW5nKSA9PiB2b2lkLFxuICB2YWx1ZUZuPzogKGtleTogc3RyaW5nKSA9PiB1bmtub3duLFxuICByZWRhY3RlZEZuPzogKGtleTogc3RyaW5nKSA9PiBib29sZWFuLFxuKTogUnVsZUV2aWRlbmNlIHtcbiAgaWYgKHR5cGVvZiBydWxlLndoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBGVU5DVElPTiBQQVRIOiB0ZW1wIHJlY29yZGVyIGNhcHR1cmVzIHJlYWRzIChsYXp5IOKAlCBza2lwIGlmIG5vIHJlY29yZGVyIHN1cHBvcnQpXG4gICAgY29uc3QgaGFzUmVjb3JkZXJTdXBwb3J0ID0gQm9vbGVhbihhdHRhY2hGbik7XG4gICAgY29uc3QgY29sbGVjdG9yID0gaGFzUmVjb3JkZXJTdXBwb3J0ID8gbmV3IEV2aWRlbmNlQ29sbGVjdG9yKCkgOiB1bmRlZmluZWQ7XG4gICAgaWYgKGNvbGxlY3RvciAmJiBhdHRhY2hGbikgYXR0YWNoRm4oY29sbGVjdG9yKTtcblxuICAgIGxldCBtYXRjaGVkOiBib29sZWFuO1xuICAgIGxldCBtYXRjaEVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIG1hdGNoZWQgPSBydWxlLndoZW4oc2NvcGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIG1hdGNoZWQgPSBmYWxzZTtcbiAgICAgIC8vIENhcHR1cmUgdGhlIGVycm9yIGZvciBkZWJ1Z2dpbmcg4oCUIHN1cmZhY2UgaXQgaW4gZXZpZGVuY2UgaW5zdGVhZCBvZiBzd2FsbG93aW5nIHNpbGVudGx5XG4gICAgICBtYXRjaEVycm9yID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpO1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gcnVsZS5sYWJlbCA/IGAgKCcke3J1bGUubGFiZWx9JylgIDogJyc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gZGVjaWRlKCkgcnVsZSAke2luZGV4fSR7bGFiZWx9IHRocmV3IGR1cmluZyBldmFsdWF0aW9uOiAke21hdGNoRXJyb3J9YCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChjb2xsZWN0b3IgJiYgZGV0YWNoRm4pIGRldGFjaEZuKGNvbGxlY3Rvci5pZCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXZpZGVuY2U6IEZ1bmN0aW9uUnVsZUV2aWRlbmNlID0ge1xuICAgICAgdHlwZTogJ2Z1bmN0aW9uJyxcbiAgICAgIHJ1bGVJbmRleDogaW5kZXgsXG4gICAgICBicmFuY2g6IHJ1bGUudGhlbixcbiAgICAgIG1hdGNoZWQsXG4gICAgICBsYWJlbDogcnVsZS5sYWJlbCxcbiAgICAgIC8vIFBhcnRpYWwgcmVhZHM6IGlmIHJ1bGUgdGhyZXcgYWZ0ZXIgc29tZSBnZXRWYWx1ZSgpIGNhbGxzLCBjb2xsZWN0b3IgaG9sZHMgcmVhZHMgdXAgdG8gdGhlIHRocm93IHBvaW50XG4gICAgICBpbnB1dHM6IGNvbGxlY3Rvcj8uZ2V0SW5wdXRzKCkgPz8gW10sXG4gICAgICAuLi4obWF0Y2hFcnJvciAhPT0gdW5kZWZpbmVkICYmIHsgbWF0Y2hFcnJvciB9KSxcbiAgICB9O1xuICAgIHJldHVybiBldmlkZW5jZTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGSUxURVIgUEFUSDogcmVhZHMgdmFsdWVzIGRpcmVjdGx5IHZpYSBjYWxsYmFja3MgKG5vIHJlY29yZGVyKTsgZXhjZXB0aW9ucyB0cmVhdGVkIGFzIG5vbi1tYXRjaFxuICAgIGNvbnN0IHJlc29sdmVkVmFsdWVGbiA9IHZhbHVlRm4gPz8gKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgcmVzb2x2ZWRSZWRhY3RlZEZuID0gcmVkYWN0ZWRGbiA/PyAoKCkgPT4gZmFsc2UpO1xuICAgIGxldCBmaWx0ZXJNYXRjaGVkID0gZmFsc2U7XG4gICAgbGV0IGZpbHRlckNvbmRpdGlvbnM6IEZpbHRlckNvbmRpdGlvbltdID0gW107XG4gICAgbGV0IG1hdGNoRXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZXZhbHVhdGVGaWx0ZXIocmVzb2x2ZWRWYWx1ZUZuLCByZXNvbHZlZFJlZGFjdGVkRm4sIHJ1bGUud2hlbiBhcyBXaGVyZUZpbHRlcjxTPik7XG4gICAgICBmaWx0ZXJNYXRjaGVkID0gcmVzdWx0Lm1hdGNoZWQ7XG4gICAgICBmaWx0ZXJDb25kaXRpb25zID0gcmVzdWx0LmNvbmRpdGlvbnM7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZmlsdGVyTWF0Y2hlZCA9IGZhbHNlO1xuICAgICAgZmlsdGVyQ29uZGl0aW9ucyA9IFtdO1xuICAgICAgLy8gQ2FwdHVyZSB0aGUgZXJyb3IgZm9yIGRlYnVnZ2luZyDigJQgc3VyZmFjZSBpdCBpbiBldmlkZW5jZSBpbnN0ZWFkIG9mIHN3YWxsb3dpbmcgc2lsZW50bHlcbiAgICAgIG1hdGNoRXJyb3IgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSk7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBydWxlLmxhYmVsID8gYCAoJyR7cnVsZS5sYWJlbH0nKWAgOiAnJztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKGBbZm9vdHByaW50XSBkZWNpZGUoKSBmaWx0ZXIgcnVsZSAke2luZGV4fSR7bGFiZWx9IHRocmV3IGR1cmluZyBldmFsdWF0aW9uOiAke21hdGNoRXJyb3J9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZXZpZGVuY2U6IEZpbHRlclJ1bGVFdmlkZW5jZSA9IHtcbiAgICAgIHR5cGU6ICdmaWx0ZXInLFxuICAgICAgcnVsZUluZGV4OiBpbmRleCxcbiAgICAgIGJyYW5jaDogcnVsZS50aGVuLFxuICAgICAgbWF0Y2hlZDogZmlsdGVyTWF0Y2hlZCxcbiAgICAgIGxhYmVsOiBydWxlLmxhYmVsLFxuICAgICAgY29uZGl0aW9uczogZmlsdGVyQ29uZGl0aW9ucyxcbiAgICAgIC4uLihtYXRjaEVycm9yICE9PSB1bmRlZmluZWQgJiYgeyBtYXRjaEVycm9yIH0pLFxuICAgIH07XG4gICAgcmV0dXJuIGV2aWRlbmNlO1xuICB9XG59XG5cbi8vIC0tIGRlY2lkZSgpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBFdmFsdWF0ZXMgcnVsZXMgaW4gb3JkZXIgKGZpcnN0LW1hdGNoKS4gUmV0dXJucyBhIGJyYW5kZWQgRGVjaXNpb25SZXN1bHQuXG4gKlxuICogQHBhcmFtIHNjb3BlIC0gVHlwZWRTY29wZSBvciBTY29wZUZhY2FkZVxuICogQHBhcmFtIHJ1bGVzIC0gQXJyYXkgb2YgRGVjaWRlUnVsZSAoZnVuY3Rpb24gb3IgZmlsdGVyIHdoZW4gY2xhdXNlcylcbiAqIEBwYXJhbSBkZWZhdWx0QnJhbmNoIC0gQnJhbmNoIElEIGlmIG5vIHJ1bGUgbWF0Y2hlc1xuICpcbiAqICoqRXJyb3IgYmVoYXZpb3I6KiogSWYgYSBgd2hlbmAgZnVuY3Rpb24gdGhyb3dzIGR1cmluZyBldmFsdWF0aW9uLCB0aGUgcnVsZSBpc1xuICogdHJlYXRlZCBhcyBub24tbWF0Y2hpbmcgKGBtYXRjaGVkOiBmYWxzZWApIGFuZCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBjYXB0dXJlZCBpblxuICogYG1hdGNoRXJyb3JgIG9uIHRoYXQgcnVsZSdzIGBSdWxlRXZpZGVuY2VgIGVudHJ5LiBFeGVjdXRpb24gY29udGludWVzIHdpdGhcbiAqIHN1YnNlcXVlbnQgcnVsZXM7IGVycm9ycyBkbyBub3QgcHJvcGFnYXRlIHRvIHRoZSBjYWxsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNpZGU8UyBleHRlbmRzIG9iamVjdD4oc2NvcGU6IFMsIHJ1bGVzOiBEZWNpZGVSdWxlPFM+W10sIGRlZmF1bHRCcmFuY2g6IHN0cmluZyk6IERlY2lzaW9uUmVzdWx0IHtcbiAgY29uc3QgYXR0YWNoRm4gPSBnZXRBdHRhY2hGbihzY29wZSk7XG4gIGNvbnN0IGRldGFjaEZuID0gZ2V0RGV0YWNoRm4oc2NvcGUpO1xuICBjb25zdCB2YWx1ZUZuID0gZ2V0VmFsdWVGbihzY29wZSk7XG4gIGNvbnN0IHJlZGFjdGVkRm4gPSBnZXRSZWRhY3RlZEZuKHNjb3BlKTtcblxuICBjb25zdCBldmFsdWF0ZWRSdWxlczogUnVsZUV2aWRlbmNlW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IFtpbmRleCwgcnVsZV0gb2YgcnVsZXMuZW50cmllcygpKSB7XG4gICAgY29uc3QgcnVsZUV2aWRlbmNlID0gZXZhbHVhdGVSdWxlKHNjb3BlLCBydWxlLCBpbmRleCwgYXR0YWNoRm4sIGRldGFjaEZuLCB2YWx1ZUZuLCByZWRhY3RlZEZuKTtcbiAgICBldmFsdWF0ZWRSdWxlcy5wdXNoKHJ1bGVFdmlkZW5jZSk7XG5cbiAgICBpZiAocnVsZUV2aWRlbmNlLm1hdGNoZWQpIHtcbiAgICAgIGNvbnN0IGV2aWRlbmNlOiBEZWNpc2lvbkV2aWRlbmNlID0ge1xuICAgICAgICBydWxlczogZXZhbHVhdGVkUnVsZXMsXG4gICAgICAgIGNob3NlbjogcnVsZS50aGVuLFxuICAgICAgICBkZWZhdWx0OiBkZWZhdWx0QnJhbmNoLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7IGJyYW5jaDogcnVsZS50aGVuLCBbREVDSVNJT05fUkVTVUxUXTogdHJ1ZSwgZXZpZGVuY2UgfTtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZhdWx0OiBubyBydWxlIG1hdGNoZWRcbiAgY29uc3QgZXZpZGVuY2U6IERlY2lzaW9uRXZpZGVuY2UgPSB7XG4gICAgcnVsZXM6IGV2YWx1YXRlZFJ1bGVzLFxuICAgIGNob3NlbjogZGVmYXVsdEJyYW5jaCxcbiAgICBkZWZhdWx0OiBkZWZhdWx0QnJhbmNoLFxuICB9O1xuICByZXR1cm4geyBicmFuY2g6IGRlZmF1bHRCcmFuY2gsIFtERUNJU0lPTl9SRVNVTFRdOiB0cnVlLCBldmlkZW5jZSB9O1xufVxuXG4vLyAtLSBzZWxlY3QoKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRXZhbHVhdGVzIEFMTCBydWxlcyAobm90IGZpcnN0LW1hdGNoKS4gUmV0dXJucyBhIGJyYW5kZWQgU2VsZWN0aW9uUmVzdWx0LlxuICpcbiAqIEBwYXJhbSBzY29wZSAtIFR5cGVkU2NvcGUgb3IgU2NvcGVGYWNhZGVcbiAqIEBwYXJhbSBydWxlcyAtIEFycmF5IG9mIERlY2lkZVJ1bGUgKGZ1bmN0aW9uIG9yIGZpbHRlciB3aGVuIGNsYXVzZXMpXG4gKlxuICogKipFcnJvciBiZWhhdmlvcjoqKiBJZiBhIGB3aGVuYCBmdW5jdGlvbiB0aHJvd3MgZHVyaW5nIGV2YWx1YXRpb24sIHRoZSBydWxlIGlzXG4gKiB0cmVhdGVkIGFzIG5vbi1tYXRjaGluZyAoYG1hdGNoZWQ6IGZhbHNlYCkgYW5kIHRoZSBlcnJvciBtZXNzYWdlIGlzIGNhcHR1cmVkIGluXG4gKiBgbWF0Y2hFcnJvcmAgb24gdGhhdCBydWxlJ3MgYFJ1bGVFdmlkZW5jZWAgZW50cnkuIEV2YWx1YXRpb24gY29udGludWVzIHdpdGhcbiAqIHJlbWFpbmluZyBydWxlczsgZXJyb3JzIGRvIG5vdCBwcm9wYWdhdGUgdG8gdGhlIGNhbGxlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdDxTIGV4dGVuZHMgb2JqZWN0PihzY29wZTogUywgcnVsZXM6IERlY2lkZVJ1bGU8Uz5bXSk6IFNlbGVjdGlvblJlc3VsdCB7XG4gIGNvbnN0IGF0dGFjaEZuID0gZ2V0QXR0YWNoRm4oc2NvcGUpO1xuICBjb25zdCBkZXRhY2hGbiA9IGdldERldGFjaEZuKHNjb3BlKTtcbiAgY29uc3QgdmFsdWVGbiA9IGdldFZhbHVlRm4oc2NvcGUpO1xuICBjb25zdCByZWRhY3RlZEZuID0gZ2V0UmVkYWN0ZWRGbihzY29wZSk7XG5cbiAgY29uc3QgZXZhbHVhdGVkUnVsZXM6IFJ1bGVFdmlkZW5jZVtdID0gW107XG4gIGNvbnN0IHNlbGVjdGVkQnJhbmNoZXM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBbaW5kZXgsIHJ1bGVdIG9mIHJ1bGVzLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IHJ1bGVFdmlkZW5jZSA9IGV2YWx1YXRlUnVsZShzY29wZSwgcnVsZSwgaW5kZXgsIGF0dGFjaEZuLCBkZXRhY2hGbiwgdmFsdWVGbiwgcmVkYWN0ZWRGbik7XG4gICAgZXZhbHVhdGVkUnVsZXMucHVzaChydWxlRXZpZGVuY2UpO1xuXG4gICAgaWYgKHJ1bGVFdmlkZW5jZS5tYXRjaGVkKSB7XG4gICAgICBzZWxlY3RlZEJyYW5jaGVzLnB1c2gocnVsZS50aGVuKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBldmlkZW5jZTogU2VsZWN0aW9uRXZpZGVuY2UgPSB7XG4gICAgcnVsZXM6IGV2YWx1YXRlZFJ1bGVzLFxuICAgIHNlbGVjdGVkOiBzZWxlY3RlZEJyYW5jaGVzLFxuICB9O1xuICByZXR1cm4geyBicmFuY2hlczogc2VsZWN0ZWRCcmFuY2hlcywgW0RFQ0lTSU9OX1JFU1VMVF06IHRydWUsIGV2aWRlbmNlIH07XG59XG4iXX0=
@@ -10,4 +10,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.DECISION_RESULT = void 0;
11
11
  // -- Symbol Brand (duck-type safety) -----------------------------------------
12
12
  exports.DECISION_RESULT = Symbol('footprint:decide:result');
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2RlY2lkZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUF5Q0gsK0VBQStFO0FBRWxFLFFBQUEsZUFBZSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBkZWNpZGUvdHlwZXMgLS0gVHlwZSBkZWZpbml0aW9ucyBmb3IgdGhlIGRlY2lkZSgpL3NlbGVjdCgpIGRlY2lzaW9uIHJlYXNvbmluZyBzeXN0ZW0uXG4gKlxuICogVHdvIGB3aGVuYCBmb3JtYXRzIGluIG9uZSBBUEk6XG4gKiAtIEZ1bmN0aW9uOiAocykgPT4gcy5jcmVkaXRTY29yZSA+IDcwMCAgIChhdXRvLWNhcHR1cmVzIHJlYWRzIHZpYSB0ZW1wIHJlY29yZGVyKVxuICogLSBGaWx0ZXI6ICAgeyBjcmVkaXRTY29yZTogeyBndDogNzAwIH0gfSAoY2FwdHVyZXMgcmVhZHMgKyBvcGVyYXRvcnMgKyB0aHJlc2hvbGRzKVxuICovXG5cbi8vIC0tIEZpbHRlciBPcGVyYXRvcnMgKFByaXNtYSBuYW1pbmcsIDggb3BlcmF0b3JzKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIE11bHRpcGxlIG9wZXJhdG9ycyBvbiB0aGUgc2FtZSBrZXkgYXJlIEFORGVkIChlLmcuLCB7IGd0OiA1LCBsdDogMTAgfSBtZWFucyA1IDwgdmFsdWUgPCAxMCkuICovXG5leHBvcnQgdHlwZSBGaWx0ZXJPcHM8Vj4gPSB7XG4gIC8qKiBFcXVhbDogdmFsdWUgPT09IHRocmVzaG9sZCAqL1xuICBlcT86IFY7XG4gIC8qKiBOb3QgZXF1YWw6IHZhbHVlICE9PSB0aHJlc2hvbGQgKi9cbiAgbmU/OiBWO1xuICAvKiogR3JlYXRlciB0aGFuOiB2YWx1ZSA+IHRocmVzaG9sZCAqL1xuICBndD86IFY7XG4gIC8qKiBHcmVhdGVyIHRoYW4gb3IgZXF1YWw6IHZhbHVlID49IHRocmVzaG9sZCAqL1xuICBndGU/OiBWO1xuICAvKiogTGVzcyB0aGFuOiB2YWx1ZSA8IHRocmVzaG9sZCAqL1xuICBsdD86IFY7XG4gIC8qKiBMZXNzIHRoYW4gb3IgZXF1YWw6IHZhbHVlIDw9IHRocmVzaG9sZCAqL1xuICBsdGU/OiBWO1xuICAvKiogVmFsdWUgaXMgaW4gYXJyYXkgKi9cbiAgaW4/OiBWW107XG4gIC8qKiBWYWx1ZSBpcyBOT1QgaW4gYXJyYXkgKi9cbiAgbm90SW4/OiBWW107XG59O1xuXG4vLyAtLSBXaGVyZUZpbHRlciAoZmxhdCBrZXlzIG9ubHksIG5vIG5lc3RlZCB2MSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIFdoZXJlRmlsdGVyPFQgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSB7XG4gIFtLIGluIGtleW9mIFRdPzogRmlsdGVyT3BzPFRbS10+O1xufTtcblxuLy8gLS0gUnVsZSBEZWZpbml0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBXaGVuQ2xhdXNlPFQgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSAoKHM6IFQpID0+IGJvb2xlYW4pIHwgV2hlcmVGaWx0ZXI8VD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaWRlUnVsZTxUIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgd2hlbjogV2hlbkNsYXVzZTxUPjtcbiAgdGhlbjogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgcnVsZSBuYW1lIGZvciBuYXJyYXRpdmU6IFwiR29vZCBjcmVkaXRcIiAqL1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuLy8gLS0gU3ltYm9sIEJyYW5kIChkdWNrLXR5cGUgc2FmZXR5KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgREVDSVNJT05fUkVTVUxUID0gU3ltYm9sKCdmb290cHJpbnQ6ZGVjaWRlOnJlc3VsdCcpO1xuXG4vLyAtLSBEZWNpc2lvbiBSZXN1bHQgKGZyb20gZGVjaWRlKCkpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNpc2lvblJlc3VsdCB7XG4gIGJyYW5jaDogc3RyaW5nO1xuICBbREVDSVNJT05fUkVTVUxUXTogdHJ1ZTtcbiAgZXZpZGVuY2U6IERlY2lzaW9uRXZpZGVuY2U7XG59XG5cbi8vIC0tIFNlbGVjdGlvbiBSZXN1bHQgKGZyb20gc2VsZWN0KCkpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25SZXN1bHQge1xuICBicmFuY2hlczogc3RyaW5nW107XG4gIFtERUNJU0lPTl9SRVNVTFRdOiB0cnVlO1xuICBldmlkZW5jZTogU2VsZWN0aW9uRXZpZGVuY2U7XG59XG5cbi8vIC0tIEV2aWRlbmNlIFR5cGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblJ1bGVFdmlkZW5jZSB7XG4gIHR5cGU6ICdmdW5jdGlvbic7XG4gIHJ1bGVJbmRleDogbnVtYmVyO1xuICAvKiogVGhlIGJyYW5jaCBJRCB0aGlzIHJ1bGUgbWFwcyB0by4gU2VsZi1kZXNjcmliaW5nIOKAlCBubyBpbmRleCBjb3JyZWxhdGlvbiBuZWVkZWQuICovXG4gIGJyYW5jaDogc3RyaW5nO1xuICBtYXRjaGVkOiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgaW5wdXRzOiBSZWFkSW5wdXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJSdWxlRXZpZGVuY2Uge1xuICB0eXBlOiAnZmlsdGVyJztcbiAgcnVsZUluZGV4OiBudW1iZXI7XG4gIC8qKiBUaGUgYnJhbmNoIElEIHRoaXMgcnVsZSBtYXBzIHRvLiBTZWxmLWRlc2NyaWJpbmcg4oCUIG5vIGluZGV4IGNvcnJlbGF0aW9uIG5lZWRlZC4gKi9cbiAgYnJhbmNoOiBzdHJpbmc7XG4gIG1hdGNoZWQ6IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nO1xuICBjb25kaXRpb25zOiBGaWx0ZXJDb25kaXRpb25bXTtcbn1cblxuZXhwb3J0IHR5cGUgUnVsZUV2aWRlbmNlID0gRnVuY3Rpb25SdWxlRXZpZGVuY2UgfCBGaWx0ZXJSdWxlRXZpZGVuY2U7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZElucHV0IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlU3VtbWFyeTogc3RyaW5nO1xuICByZWRhY3RlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDb25kaXRpb24ge1xuICBrZXk6IHN0cmluZztcbiAgb3A6IHN0cmluZztcbiAgLyoqIEtlcHQgcmF3IGZvciBhdWRpdCBhY2N1cmFjeTsgZW5naW5lL3NlcmlhbGl6ZXIgbXVzdCBoYW5kbGUgc2FmZWx5LiAqL1xuICB0aHJlc2hvbGQ6IHVua25vd247XG4gIGFjdHVhbFN1bW1hcnk6IHN0cmluZztcbiAgcmVzdWx0OiBib29sZWFuO1xuICByZWRhY3RlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNpc2lvbkV2aWRlbmNlIHtcbiAgcnVsZXM6IFJ1bGVFdmlkZW5jZVtdO1xuICAvKiogVGhlIGJyYW5jaCBzZWxlY3RlZC4gRXF1YWxzIGBkZWZhdWx0YCB3aGVuIG5vIHJ1bGUgbWF0Y2hlZC4gKi9cbiAgY2hvc2VuOiBzdHJpbmc7XG4gIC8qKiBUaGUgZmFsbGJhY2sgYnJhbmNoIHBhc3NlZCBhcyBkZWZhdWx0QnJhbmNoLiBBbHdheXMgc2V0LiAqL1xuICBkZWZhdWx0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uRXZpZGVuY2Uge1xuICBydWxlczogUnVsZUV2aWRlbmNlW107XG4gIHNlbGVjdGVkOiBzdHJpbmdbXTtcbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2RlY2lkZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUF5Q0gsK0VBQStFO0FBRWxFLFFBQUEsZUFBZSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBkZWNpZGUvdHlwZXMgLS0gVHlwZSBkZWZpbml0aW9ucyBmb3IgdGhlIGRlY2lkZSgpL3NlbGVjdCgpIGRlY2lzaW9uIHJlYXNvbmluZyBzeXN0ZW0uXG4gKlxuICogVHdvIGB3aGVuYCBmb3JtYXRzIGluIG9uZSBBUEk6XG4gKiAtIEZ1bmN0aW9uOiAocykgPT4gcy5jcmVkaXRTY29yZSA+IDcwMCAgIChhdXRvLWNhcHR1cmVzIHJlYWRzIHZpYSB0ZW1wIHJlY29yZGVyKVxuICogLSBGaWx0ZXI6ICAgeyBjcmVkaXRTY29yZTogeyBndDogNzAwIH0gfSAoY2FwdHVyZXMgcmVhZHMgKyBvcGVyYXRvcnMgKyB0aHJlc2hvbGRzKVxuICovXG5cbi8vIC0tIEZpbHRlciBPcGVyYXRvcnMgKFByaXNtYSBuYW1pbmcsIDggb3BlcmF0b3JzKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIE11bHRpcGxlIG9wZXJhdG9ycyBvbiB0aGUgc2FtZSBrZXkgYXJlIEFORGVkIChlLmcuLCB7IGd0OiA1LCBsdDogMTAgfSBtZWFucyA1IDwgdmFsdWUgPCAxMCkuICovXG5leHBvcnQgdHlwZSBGaWx0ZXJPcHM8Vj4gPSB7XG4gIC8qKiBFcXVhbDogdmFsdWUgPT09IHRocmVzaG9sZCAqL1xuICBlcT86IFY7XG4gIC8qKiBOb3QgZXF1YWw6IHZhbHVlICE9PSB0aHJlc2hvbGQgKi9cbiAgbmU/OiBWO1xuICAvKiogR3JlYXRlciB0aGFuOiB2YWx1ZSA+IHRocmVzaG9sZCAqL1xuICBndD86IFY7XG4gIC8qKiBHcmVhdGVyIHRoYW4gb3IgZXF1YWw6IHZhbHVlID49IHRocmVzaG9sZCAqL1xuICBndGU/OiBWO1xuICAvKiogTGVzcyB0aGFuOiB2YWx1ZSA8IHRocmVzaG9sZCAqL1xuICBsdD86IFY7XG4gIC8qKiBMZXNzIHRoYW4gb3IgZXF1YWw6IHZhbHVlIDw9IHRocmVzaG9sZCAqL1xuICBsdGU/OiBWO1xuICAvKiogVmFsdWUgaXMgaW4gYXJyYXkgKi9cbiAgaW4/OiBWW107XG4gIC8qKiBWYWx1ZSBpcyBOT1QgaW4gYXJyYXkgKi9cbiAgbm90SW4/OiBWW107XG59O1xuXG4vLyAtLSBXaGVyZUZpbHRlciAoZmxhdCBrZXlzIG9ubHksIG5vIG5lc3RlZCB2MSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIFdoZXJlRmlsdGVyPFQgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSB7XG4gIFtLIGluIGtleW9mIFRdPzogRmlsdGVyT3BzPFRbS10+O1xufTtcblxuLy8gLS0gUnVsZSBEZWZpbml0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBXaGVuQ2xhdXNlPFQgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSAoKHM6IFQpID0+IGJvb2xlYW4pIHwgV2hlcmVGaWx0ZXI8VD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaWRlUnVsZTxUIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgd2hlbjogV2hlbkNsYXVzZTxUPjtcbiAgdGhlbjogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgcnVsZSBuYW1lIGZvciBuYXJyYXRpdmU6IFwiR29vZCBjcmVkaXRcIiAqL1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuLy8gLS0gU3ltYm9sIEJyYW5kIChkdWNrLXR5cGUgc2FmZXR5KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgREVDSVNJT05fUkVTVUxUID0gU3ltYm9sKCdmb290cHJpbnQ6ZGVjaWRlOnJlc3VsdCcpO1xuXG4vLyAtLSBEZWNpc2lvbiBSZXN1bHQgKGZyb20gZGVjaWRlKCkpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNpc2lvblJlc3VsdCB7XG4gIGJyYW5jaDogc3RyaW5nO1xuICBbREVDSVNJT05fUkVTVUxUXTogdHJ1ZTtcbiAgZXZpZGVuY2U6IERlY2lzaW9uRXZpZGVuY2U7XG59XG5cbi8vIC0tIFNlbGVjdGlvbiBSZXN1bHQgKGZyb20gc2VsZWN0KCkpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25SZXN1bHQge1xuICBicmFuY2hlczogc3RyaW5nW107XG4gIFtERUNJU0lPTl9SRVNVTFRdOiB0cnVlO1xuICBldmlkZW5jZTogU2VsZWN0aW9uRXZpZGVuY2U7XG59XG5cbi8vIC0tIEV2aWRlbmNlIFR5cGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblJ1bGVFdmlkZW5jZSB7XG4gIHR5cGU6ICdmdW5jdGlvbic7XG4gIHJ1bGVJbmRleDogbnVtYmVyO1xuICAvKiogVGhlIGJyYW5jaCBJRCB0aGlzIHJ1bGUgbWFwcyB0by4gU2VsZi1kZXNjcmliaW5nIOKAlCBubyBpbmRleCBjb3JyZWxhdGlvbiBuZWVkZWQuICovXG4gIGJyYW5jaDogc3RyaW5nO1xuICBtYXRjaGVkOiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgaW5wdXRzOiBSZWFkSW5wdXRbXTtcbiAgLyoqXG4gICAqIEVycm9yIG1lc3NhZ2UgaWYgdGhlIGB3aGVuYCBmdW5jdGlvbiB0aHJldyBkdXJpbmcgZXZhbHVhdGlvbi5cbiAgICogUHJlc2VudCBvbmx5IHdoZW4gYW4gZXhjZXB0aW9uIG9jY3VycmVkOyBgbWF0Y2hlZGAgaXMgYGZhbHNlYCBpbiB0aGF0IGNhc2UuXG4gICAqIFN1cmZhY2VzIHRoZSBlcnJvciBmb3IgZGVidWdnaW5nIHJhdGhlciB0aGFuIHN3YWxsb3dpbmcgaXQgc2lsZW50bHkuXG4gICAqXG4gICAqICoqU2VjdXJpdHkgbm90ZToqKiBFcnJvciBtZXNzYWdlcyBmcm9tIHVzZXItcHJvdmlkZWQgYHdoZW5gIGZ1bmN0aW9ucyBhcmUgY2FwdHVyZWRcbiAgICogYXMtaXMgYW5kIGFyZSBOT1QgZmlsdGVyZWQgdGhyb3VnaCB0aGUgcmVkYWN0aW9uIHBvbGljeS4gQXZvaWQgaW5jbHVkaW5nIHNlbnNpdGl2ZVxuICAgKiBzY29wZSB2YWx1ZXMgaW4gdGhyb3duIGVycm9yIG1lc3NhZ2VzLlxuICAgKi9cbiAgbWF0Y2hFcnJvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJSdWxlRXZpZGVuY2Uge1xuICB0eXBlOiAnZmlsdGVyJztcbiAgcnVsZUluZGV4OiBudW1iZXI7XG4gIC8qKiBUaGUgYnJhbmNoIElEIHRoaXMgcnVsZSBtYXBzIHRvLiBTZWxmLWRlc2NyaWJpbmcg4oCUIG5vIGluZGV4IGNvcnJlbGF0aW9uIG5lZWRlZC4gKi9cbiAgYnJhbmNoOiBzdHJpbmc7XG4gIG1hdGNoZWQ6IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nO1xuICBjb25kaXRpb25zOiBGaWx0ZXJDb25kaXRpb25bXTtcbiAgLyoqXG4gICAqIEVycm9yIG1lc3NhZ2UgaWYgdGhlIGZpbHRlciBldmFsdWF0b3IgdGhyZXcgZHVyaW5nIGV2YWx1YXRpb24uXG4gICAqIFByZXNlbnQgb25seSB3aGVuIGFuIGV4Y2VwdGlvbiBvY2N1cnJlZDsgYG1hdGNoZWRgIGlzIGBmYWxzZWAgaW4gdGhhdCBjYXNlLlxuICAgKiBTdXJmYWNlcyB0aGUgZXJyb3IgZm9yIGRlYnVnZ2luZyByYXRoZXIgdGhhbiBzd2FsbG93aW5nIGl0IHNpbGVudGx5LlxuICAgKlxuICAgKiAqKlNlY3VyaXR5IG5vdGU6KiogRXJyb3IgbWVzc2FnZXMgZnJvbSB1c2VyLXByb3ZpZGVkIGB3aGVuYCBmdW5jdGlvbnMgYXJlIGNhcHR1cmVkXG4gICAqIGFzLWlzIGFuZCBhcmUgTk9UIGZpbHRlcmVkIHRocm91Z2ggdGhlIHJlZGFjdGlvbiBwb2xpY3kuIEF2b2lkIGluY2x1ZGluZyBzZW5zaXRpdmVcbiAgICogc2NvcGUgdmFsdWVzIGluIHRocm93biBlcnJvciBtZXNzYWdlcy5cbiAgICovXG4gIG1hdGNoRXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFJ1bGVFdmlkZW5jZSA9IEZ1bmN0aW9uUnVsZUV2aWRlbmNlIHwgRmlsdGVyUnVsZUV2aWRlbmNlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRJbnB1dCB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZVN1bW1hcnk6IHN0cmluZztcbiAgcmVkYWN0ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyQ29uZGl0aW9uIHtcbiAga2V5OiBzdHJpbmc7XG4gIG9wOiBzdHJpbmc7XG4gIC8qKiBLZXB0IHJhdyBmb3IgYXVkaXQgYWNjdXJhY3k7IGVuZ2luZS9zZXJpYWxpemVyIG11c3QgaGFuZGxlIHNhZmVseS4gKi9cbiAgdGhyZXNob2xkOiB1bmtub3duO1xuICBhY3R1YWxTdW1tYXJ5OiBzdHJpbmc7XG4gIHJlc3VsdDogYm9vbGVhbjtcbiAgcmVkYWN0ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaXNpb25FdmlkZW5jZSB7XG4gIHJ1bGVzOiBSdWxlRXZpZGVuY2VbXTtcbiAgLyoqIFRoZSBicmFuY2ggc2VsZWN0ZWQuIEVxdWFscyBgZGVmYXVsdGAgd2hlbiBubyBydWxlIG1hdGNoZWQuICovXG4gIGNob3Nlbjogc3RyaW5nO1xuICAvKiogVGhlIGZhbGxiYWNrIGJyYW5jaCBwYXNzZWQgYXMgZGVmYXVsdEJyYW5jaC4gQWx3YXlzIHNldC4gKi9cbiAgZGVmYXVsdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbkV2aWRlbmNlIHtcbiAgcnVsZXM6IFJ1bGVFdmlkZW5jZVtdO1xuICBzZWxlY3RlZDogc3RyaW5nW107XG59XG4iXX0=