footprintjs 4.16.0 → 4.17.2

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 (188) hide show
  1. package/AGENTS.md +567 -82
  2. package/CLAUDE.md +57 -0
  3. package/README.md +2 -0
  4. package/dist/advanced.js +4 -2
  5. package/dist/detach.js +78 -0
  6. package/dist/esm/advanced.js +2 -1
  7. package/dist/esm/detach.js +57 -0
  8. package/dist/esm/lib/builder/FlowChartBuilder.js +171 -61
  9. package/dist/esm/lib/contract/openapi.js +4 -5
  10. package/dist/esm/lib/contract/schema.js +115 -4
  11. package/dist/esm/lib/decide/decide.js +4 -5
  12. package/dist/esm/lib/decide/evidence.js +3 -2
  13. package/dist/esm/lib/detach/drivers/immediate.js +66 -0
  14. package/dist/esm/lib/detach/drivers/microtaskBatch.js +113 -0
  15. package/dist/esm/lib/detach/drivers/sendBeacon.js +78 -0
  16. package/dist/esm/lib/detach/drivers/setImmediate.js +81 -0
  17. package/dist/esm/lib/detach/drivers/setTimeout.js +69 -0
  18. package/dist/esm/lib/detach/drivers/workerThread.js +117 -0
  19. package/dist/esm/lib/detach/flush.js +91 -0
  20. package/dist/esm/lib/detach/handle.js +134 -0
  21. package/dist/esm/lib/detach/registry.js +97 -0
  22. package/dist/esm/lib/detach/runChild.js +40 -0
  23. package/dist/esm/lib/detach/spawn.js +86 -0
  24. package/dist/esm/lib/detach/types.js +37 -0
  25. package/dist/esm/lib/engine/errors/errorInfo.js +4 -4
  26. package/dist/esm/lib/engine/graph/StageNode.js +2 -2
  27. package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +9 -8
  28. package/dist/esm/lib/engine/handlers/ContinuationResolver.js +12 -9
  29. package/dist/esm/lib/engine/handlers/DeciderHandler.js +7 -8
  30. package/dist/esm/lib/engine/handlers/ExtractorRunner.js +14 -8
  31. package/dist/esm/lib/engine/handlers/NodeResolver.js +5 -3
  32. package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +11 -14
  33. package/dist/esm/lib/engine/handlers/SelectorHandler.js +9 -9
  34. package/dist/esm/lib/engine/handlers/StageRunner.js +9 -11
  35. package/dist/esm/lib/engine/handlers/SubflowExecutor.js +13 -12
  36. package/dist/esm/lib/engine/handlers/SubflowInputMapper.js +4 -4
  37. package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +85 -96
  38. package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +18 -36
  39. package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +6 -5
  40. package/dist/esm/lib/engine/narrative/recorders/AdaptiveNarrativeFlowRecorder.js +7 -6
  41. package/dist/esm/lib/engine/narrative/recorders/ManifestFlowRecorder.js +10 -10
  42. package/dist/esm/lib/engine/narrative/recorders/MilestoneNarrativeFlowRecorder.js +5 -3
  43. package/dist/esm/lib/engine/narrative/recorders/ProgressiveNarrativeFlowRecorder.js +4 -3
  44. package/dist/esm/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +4 -4
  45. package/dist/esm/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +5 -6
  46. package/dist/esm/lib/engine/narrative/recorders/SilentNarrativeFlowRecorder.js +5 -6
  47. package/dist/esm/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -3
  48. package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +97 -71
  49. package/dist/esm/lib/memory/DiagnosticCollector.js +6 -8
  50. package/dist/esm/lib/memory/EventLog.js +5 -3
  51. package/dist/esm/lib/memory/SharedMemory.js +3 -2
  52. package/dist/esm/lib/memory/StageContext.js +44 -14
  53. package/dist/esm/lib/memory/TransactionBuffer.js +9 -8
  54. package/dist/esm/lib/memory/backtrack.js +3 -4
  55. package/dist/esm/lib/memory/commitLogUtils.js +2 -2
  56. package/dist/esm/lib/memory/utils.js +2 -3
  57. package/dist/esm/lib/pause/types.js +33 -14
  58. package/dist/esm/lib/reactive/createTypedScope.js +10 -8
  59. package/dist/esm/lib/reactive/types.js +3 -1
  60. package/dist/esm/lib/recorder/BoundaryStateTracker.js +263 -0
  61. package/dist/esm/lib/recorder/CompositeRecorder.js +3 -1
  62. package/dist/esm/lib/recorder/InOutRecorder.js +5 -6
  63. package/dist/esm/lib/recorder/KeyedRecorder.js +2 -4
  64. package/dist/esm/lib/recorder/QualityRecorder.js +15 -14
  65. package/dist/esm/lib/recorder/SequenceRecorder.js +11 -12
  66. package/dist/esm/lib/recorder/TopologyRecorder.js +36 -40
  67. package/dist/esm/lib/recorder/index.js +2 -1
  68. package/dist/esm/lib/recorder/qualityTrace.js +4 -5
  69. package/dist/esm/lib/runner/ExecutionRuntime.js +20 -4
  70. package/dist/esm/lib/runner/FlowChartExecutor.js +99 -55
  71. package/dist/esm/lib/runner/RunContext.js +5 -3
  72. package/dist/esm/lib/runner/RunnableChart.js +7 -9
  73. package/dist/esm/lib/runner/getSubtreeSnapshot.js +4 -5
  74. package/dist/esm/lib/schema/errors.js +4 -3
  75. package/dist/esm/lib/schema/validate.js +4 -5
  76. package/dist/esm/lib/scope/ScopeFacade.js +52 -35
  77. package/dist/esm/lib/scope/providers/baseStateCompatible.js +9 -9
  78. package/dist/esm/lib/scope/providers/guards.js +2 -2
  79. package/dist/esm/lib/scope/recorders/DebugRecorder.js +9 -7
  80. package/dist/esm/lib/scope/recorders/MetricRecorder.js +10 -8
  81. package/dist/esm/lib/scope/state/zod/defineScopeFromZod.js +2 -3
  82. package/dist/esm/lib/scope/state/zod/resolver.js +2 -3
  83. package/dist/esm/lib/scope/state/zod/scopeFactory.js +16 -20
  84. package/dist/esm/lib/scope/state/zod/utils/validateHelper.js +57 -14
  85. package/dist/esm/trace.js +4 -1
  86. package/dist/lib/builder/FlowChartBuilder.js +171 -61
  87. package/dist/lib/contract/openapi.js +4 -5
  88. package/dist/lib/contract/schema.js +115 -4
  89. package/dist/lib/decide/decide.js +4 -5
  90. package/dist/lib/decide/evidence.js +3 -2
  91. package/dist/lib/detach/drivers/immediate.js +70 -0
  92. package/dist/lib/detach/drivers/microtaskBatch.js +117 -0
  93. package/dist/lib/detach/drivers/sendBeacon.js +82 -0
  94. package/dist/lib/detach/drivers/setImmediate.js +85 -0
  95. package/dist/lib/detach/drivers/setTimeout.js +73 -0
  96. package/dist/lib/detach/drivers/workerThread.js +121 -0
  97. package/dist/lib/detach/flush.js +95 -0
  98. package/dist/lib/detach/handle.js +140 -0
  99. package/dist/lib/detach/registry.js +106 -0
  100. package/dist/lib/detach/runChild.js +67 -0
  101. package/dist/lib/detach/spawn.js +92 -0
  102. package/dist/lib/detach/types.js +38 -0
  103. package/dist/lib/engine/errors/errorInfo.js +4 -4
  104. package/dist/lib/engine/graph/StageNode.js +2 -2
  105. package/dist/lib/engine/handlers/ChildrenExecutor.js +9 -8
  106. package/dist/lib/engine/handlers/ContinuationResolver.js +12 -9
  107. package/dist/lib/engine/handlers/DeciderHandler.js +7 -8
  108. package/dist/lib/engine/handlers/ExtractorRunner.js +14 -8
  109. package/dist/lib/engine/handlers/NodeResolver.js +5 -3
  110. package/dist/lib/engine/handlers/RuntimeStructureManager.js +11 -14
  111. package/dist/lib/engine/handlers/SelectorHandler.js +9 -9
  112. package/dist/lib/engine/handlers/StageRunner.js +9 -11
  113. package/dist/lib/engine/handlers/SubflowExecutor.js +13 -12
  114. package/dist/lib/engine/handlers/SubflowInputMapper.js +4 -4
  115. package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +85 -96
  116. package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +18 -36
  117. package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +6 -5
  118. package/dist/lib/engine/narrative/recorders/AdaptiveNarrativeFlowRecorder.js +7 -6
  119. package/dist/lib/engine/narrative/recorders/ManifestFlowRecorder.js +10 -10
  120. package/dist/lib/engine/narrative/recorders/MilestoneNarrativeFlowRecorder.js +5 -3
  121. package/dist/lib/engine/narrative/recorders/ProgressiveNarrativeFlowRecorder.js +4 -3
  122. package/dist/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +4 -4
  123. package/dist/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +5 -6
  124. package/dist/lib/engine/narrative/recorders/SilentNarrativeFlowRecorder.js +5 -6
  125. package/dist/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -3
  126. package/dist/lib/engine/traversal/FlowchartTraverser.js +97 -71
  127. package/dist/lib/memory/DiagnosticCollector.js +6 -8
  128. package/dist/lib/memory/EventLog.js +5 -3
  129. package/dist/lib/memory/SharedMemory.js +3 -2
  130. package/dist/lib/memory/StageContext.js +44 -14
  131. package/dist/lib/memory/TransactionBuffer.js +9 -8
  132. package/dist/lib/memory/backtrack.js +3 -4
  133. package/dist/lib/memory/commitLogUtils.js +2 -2
  134. package/dist/lib/memory/utils.js +2 -3
  135. package/dist/lib/pause/types.js +33 -14
  136. package/dist/lib/reactive/createTypedScope.js +10 -8
  137. package/dist/lib/reactive/types.js +3 -1
  138. package/dist/lib/recorder/BoundaryStateTracker.js +267 -0
  139. package/dist/lib/recorder/CompositeRecorder.js +3 -1
  140. package/dist/lib/recorder/InOutRecorder.js +5 -6
  141. package/dist/lib/recorder/KeyedRecorder.js +2 -4
  142. package/dist/lib/recorder/QualityRecorder.js +15 -14
  143. package/dist/lib/recorder/SequenceRecorder.js +11 -12
  144. package/dist/lib/recorder/TopologyRecorder.js +36 -40
  145. package/dist/lib/recorder/index.js +4 -2
  146. package/dist/lib/recorder/qualityTrace.js +4 -5
  147. package/dist/lib/runner/ExecutionRuntime.js +20 -4
  148. package/dist/lib/runner/FlowChartExecutor.js +99 -55
  149. package/dist/lib/runner/RunContext.js +5 -3
  150. package/dist/lib/runner/RunnableChart.js +7 -9
  151. package/dist/lib/runner/getSubtreeSnapshot.js +4 -5
  152. package/dist/lib/schema/errors.js +4 -3
  153. package/dist/lib/schema/validate.js +4 -5
  154. package/dist/lib/scope/ScopeFacade.js +52 -35
  155. package/dist/lib/scope/providers/baseStateCompatible.js +9 -9
  156. package/dist/lib/scope/providers/guards.js +2 -2
  157. package/dist/lib/scope/recorders/DebugRecorder.js +9 -7
  158. package/dist/lib/scope/recorders/MetricRecorder.js +10 -8
  159. package/dist/lib/scope/state/zod/defineScopeFromZod.js +2 -3
  160. package/dist/lib/scope/state/zod/resolver.js +2 -3
  161. package/dist/lib/scope/state/zod/scopeFactory.js +16 -20
  162. package/dist/lib/scope/state/zod/utils/validateHelper.js +57 -14
  163. package/dist/trace.js +6 -2
  164. package/dist/types/advanced.d.ts +1 -0
  165. package/dist/types/detach.d.ts +59 -0
  166. package/dist/types/lib/builder/FlowChartBuilder.d.ts +81 -0
  167. package/dist/types/lib/detach/drivers/immediate.d.ts +39 -0
  168. package/dist/types/lib/detach/drivers/microtaskBatch.d.ts +57 -0
  169. package/dist/types/lib/detach/drivers/sendBeacon.d.ts +38 -0
  170. package/dist/types/lib/detach/drivers/setImmediate.d.ts +32 -0
  171. package/dist/types/lib/detach/drivers/setTimeout.d.ts +34 -0
  172. package/dist/types/lib/detach/drivers/workerThread.d.ts +50 -0
  173. package/dist/types/lib/detach/flush.d.ts +62 -0
  174. package/dist/types/lib/detach/handle.d.ts +83 -0
  175. package/dist/types/lib/detach/registry.d.ts +82 -0
  176. package/dist/types/lib/detach/runChild.d.ts +41 -0
  177. package/dist/types/lib/detach/spawn.d.ts +64 -0
  178. package/dist/types/lib/detach/types.d.ts +200 -0
  179. package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +0 -1
  180. package/dist/types/lib/engine/types.d.ts +0 -1
  181. package/dist/types/lib/reactive/types.d.ts +4 -0
  182. package/dist/types/lib/recorder/BoundaryStateTracker.d.ts +215 -0
  183. package/dist/types/lib/recorder/index.d.ts +1 -0
  184. package/dist/types/lib/runner/FlowChartExecutor.d.ts +28 -0
  185. package/dist/types/lib/scope/ScopeFacade.d.ts +4 -0
  186. package/dist/types/lib/scope/state/zod/utils/validateHelper.d.ts +13 -1
  187. package/dist/types/trace.d.ts +1 -0
  188. package/package.json +6 -1
@@ -46,12 +46,12 @@ function extractErrorInfo(error) {
46
46
  info.code = maybeCode;
47
47
  }
48
48
  }
49
- catch (_a) {
49
+ catch {
50
50
  /* .code accessor threw — skip it */
51
51
  }
52
52
  return info;
53
53
  }
54
- catch (_b) {
54
+ catch {
55
55
  // .message or .name getter threw — fall through to string coercion
56
56
  }
57
57
  }
@@ -62,7 +62,7 @@ function extractErrorInfo(error) {
62
62
  raw: error,
63
63
  };
64
64
  }
65
- catch (_c) {
65
+ catch {
66
66
  // String() failed (e.g. null-prototype object, throwing .toString())
67
67
  return {
68
68
  message: '[unserializable error]',
@@ -87,4 +87,4 @@ function formatErrorInfo(info) {
87
87
  return `${info.message}\n${issueLines.join('\n')}`;
88
88
  }
89
89
  exports.formatErrorInfo = formatErrorInfo;
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JJbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvZXJyb3JzL2Vycm9ySW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUdILHNEQUE4RDtBQXFCOUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBYztJQUM3QyxJQUFJLEtBQUssWUFBWSxnQ0FBb0IsRUFBRSxDQUFDO1FBQzFDLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxRSxJQUFJLEVBQUUsd0JBQXdCO1lBQzlCLEdBQUcsRUFBRSxLQUFLO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztRQUMzQixpRkFBaUY7UUFDakYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQXdCO2dCQUNoQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsR0FBRyxFQUFFLEtBQUs7YUFDWCxDQUFDO1lBRUYsa0VBQWtFO1lBQ2xFLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsR0FBSSxLQUE0QyxDQUFDLElBQUksQ0FBQztnQkFDckUsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1lBQUMsV0FBTSxDQUFDO2dCQUNQLG9DQUFvQztZQUN0QyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsV0FBTSxDQUFDO1lBQ1AsbUVBQW1FO1FBQ3JFLENBQUM7SUFDSCxDQUFDO0lBRUQsd0RBQXdEO0lBQ3hELElBQUksQ0FBQztRQUNILE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN0QixHQUFHLEVBQUUsS0FBSztTQUNYLENBQUM7SUFDSixDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AscUVBQXFFO1FBQ3JFLE9BQU87WUFDTCxPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLEdBQUcsRUFBRSxLQUFLO1NBQ1gsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBakRELDRDQWlEQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixlQUFlLENBQUMsSUFBeUI7SUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzNDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNyRSxPQUFPLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUNyRCxDQUFDO0FBWEQsMENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGVycm9ySW5mby50cyDigJQgRXh0cmFjdCBzdHJ1Y3R1cmVkIGluZm9ybWF0aW9uIGZyb20gYW55IGVycm9yIHR5cGUuXG4gKlxuICogVGhlIGVuZ2luZSdzIGVycm9yIGNhdGNoIGJsb2NrcyBjdXJyZW50bHkgY2FsbCBlcnJvci50b1N0cmluZygpLCBkZXN0cm95aW5nXG4gKiBzdHJ1Y3R1cmVkIGRhdGEgKGUuZy4gSW5wdXRWYWxpZGF0aW9uRXJyb3IuaXNzdWVzKS4gVGhpcyBtb2R1bGUgcHJvdmlkZXNcbiAqIGEgc2luZ2xlIGV4dHJhY3Rpb24gcG9pbnQgdGhhdCBwcmVzZXJ2ZXMgc3RydWN0dXJlZCBkZXRhaWxzIHdoaWxlIHN0aWxsXG4gKiBwcm9kdWNpbmcgYSBodW1hbi1yZWFkYWJsZSBtZXNzYWdlLlxuICpcbiAqIENvbnN1bWVycyAobmFycmF0aXZlIHJlY29yZGVycywgZXh0cmFjdG9ycywgZGlhZ25vc3RpYyBjb2xsZWN0b3JzKSByZWNlaXZlXG4gKiBTdHJ1Y3R1cmVkRXJyb3JJbmZvIGluc3RlYWQgb2YgYSBmbGF0IHN0cmluZywgYW5kIGNhbiBkZWNpZGUgaG93IHRvIHJlbmRlciBpdC5cbiAqIFN0cmluZy1pZmljYXRpb24gaGFwcGVucyBvbmx5IGF0IHRoZSBmaW5hbCByZW5kZXJpbmcgYm91bmRhcnkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uSXNzdWUgfSBmcm9tICcuLi8uLi9zY2hlbWEvZXJyb3JzLmpzJztcbmltcG9ydCB7IElucHV0VmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vc2NoZW1hL2Vycm9ycy5qcyc7XG5cbi8qKiBTdHJ1Y3R1cmVkIHJlcHJlc2VudGF0aW9uIG9mIGFueSBlcnJvciBjYXVnaHQgZHVyaW5nIHN0YWdlIGV4ZWN1dGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlZEVycm9ySW5mbyB7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIChhbHdheXMgcHJlc2VudCkuICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgLyoqIEVycm9yIGNsYXNzIG5hbWUgd2hlbiBhdmFpbGFibGUgKGUuZy4gJ0lucHV0VmFsaWRhdGlvbkVycm9yJywgJ1R5cGVFcnJvcicpLiAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogRmllbGQtbGV2ZWwgdmFsaWRhdGlvbiBpc3N1ZXMgKHByZXNlbnQgZm9yIElucHV0VmFsaWRhdGlvbkVycm9yKS4gKi9cbiAgaXNzdWVzPzogVmFsaWRhdGlvbklzc3VlW107XG4gIC8qKiBNYWNoaW5lLXJlYWRhYmxlIGVycm9yIGNvZGUgaWYgdGhlIGVycm9yIGNhcnJpZXMgb25lLiAqL1xuICBjb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIGVycm9yIG9iamVjdCwgZm9yIGNvbnN1bWVycyB0aGF0IG5lZWQgZnVsbCBhY2Nlc3MuXG4gICAqIE5vdCBzYWZlIHRvIHNlcmlhbGl6ZSBkaXJlY3RseSDigJQgbWF5IGNvbnRhaW4gY2lyY3VsYXIgcmVmZXJlbmNlcyxcbiAgICogc3RhY2sgdHJhY2VzLCBvciBzZW5zaXRpdmUgaW50ZXJuYWxzLiBVc2UgYGZvcm1hdEVycm9ySW5mbygpYCBmb3JcbiAgICogc2FmZSBzdHJpbmcgb3V0cHV0LlxuICAgKi9cbiAgcmF3OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEV4dHJhY3Qgc3RydWN0dXJlZCBlcnJvciBpbmZvIGZyb20gYW55IHRocm93biB2YWx1ZS5cbiAqXG4gKiAtIElucHV0VmFsaWRhdGlvbkVycm9yIOKGkiBwcmVzZXJ2ZXMgLmlzc3VlcyBhcnJheVxuICogLSBTdGFuZGFyZCBFcnJvciDihpIgcHJlc2VydmVzIC5uYW1lLCAubWVzc2FnZVxuICogLSBOb24tRXJyb3IgdGhyb3duIHZhbHVlcyDihpIgY29lcmNlcyB0byBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RFcnJvckluZm8oZXJyb3I6IHVua25vd24pOiBTdHJ1Y3R1cmVkRXJyb3JJbmZvIHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW5wdXRWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICBpc3N1ZXM6IGVycm9yLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiAoeyAuLi5pc3N1ZSwgcGF0aDogWy4uLmlzc3VlLnBhdGhdIH0pKSxcbiAgICAgIGNvZGU6ICdJTlBVVF9WQUxJREFUSU9OX0VSUk9SJyxcbiAgICAgIHJhdzogZXJyb3IsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgLy8gR3VhcmQgYWdhaW5zdCBhZHZlcnNhcmlhbCBlcnJvcnMgd2l0aCB0aHJvd2luZyBnZXR0ZXJzIG9uIC5tZXNzYWdlLy5uYW1lLy5jb2RlXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluZm86IFN0cnVjdHVyZWRFcnJvckluZm8gPSB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgIHJhdzogZXJyb3IsXG4gICAgICB9O1xuXG4gICAgICAvLyBQcmVzZXJ2ZSAuY29kZSBpZiBwcmVzZW50IChjb21tb24gTm9kZS5qcyBwYXR0ZXJuLCBlLmcuIEVOT0VOVClcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1heWJlQ29kZSA9IChlcnJvciBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5jb2RlO1xuICAgICAgICBpZiAodHlwZW9mIG1heWJlQ29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpbmZvLmNvZGUgPSBtYXliZUNvZGU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiAuY29kZSBhY2Nlc3NvciB0aHJldyDigJQgc2tpcCBpdCAqL1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIC5tZXNzYWdlIG9yIC5uYW1lIGdldHRlciB0aHJldyDigJQgZmFsbCB0aHJvdWdoIHRvIHN0cmluZyBjb2VyY2lvblxuICAgIH1cbiAgfVxuXG4gIC8vIE5vbi1FcnJvciB0aHJvd24gdmFsdWUgKHN0cmluZywgbnVtYmVyLCBvYmplY3QsIGV0Yy4pXG4gIHRyeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IFN0cmluZyhlcnJvciksXG4gICAgICByYXc6IGVycm9yLFxuICAgIH07XG4gIH0gY2F0Y2gge1xuICAgIC8vIFN0cmluZygpIGZhaWxlZCAoZS5nLiBudWxsLXByb3RvdHlwZSBvYmplY3QsIHRocm93aW5nIC50b1N0cmluZygpKVxuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlOiAnW3Vuc2VyaWFsaXphYmxlIGVycm9yXScsXG4gICAgICByYXc6IGVycm9yLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBGb3JtYXQgYSBTdHJ1Y3R1cmVkRXJyb3JJbmZvIGJhY2sgdG8gYSBodW1hbi1yZWFkYWJsZSBzdHJpbmcuXG4gKiBVc2UgdGhpcyBhdCByZW5kZXJpbmcgYm91bmRhcmllcyAobmFycmF0aXZlIG91dHB1dCwgbG9nIGxpbmVzKS5cbiAqIEluY2x1ZGVzIGZpZWxkLWxldmVsIGRldGFpbHMgd2hlbiBpc3N1ZXMgYXJlIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFcnJvckluZm8oaW5mbzogU3RydWN0dXJlZEVycm9ySW5mbyk6IHN0cmluZyB7XG4gIGlmICghaW5mby5pc3N1ZXMgfHwgaW5mby5pc3N1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGluZm8ubWVzc2FnZTtcbiAgfVxuXG4gIGNvbnN0IGlzc3VlTGluZXMgPSBpbmZvLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGlzc3VlLnBhdGgubGVuZ3RoID4gMCA/IGlzc3VlLnBhdGguam9pbignLicpIDogJyhyb290KSc7XG4gICAgcmV0dXJuIGAgIC0gJHtwYXRofTogJHtpc3N1ZS5tZXNzYWdlfWA7XG4gIH0pO1xuXG4gIHJldHVybiBgJHtpbmZvLm1lc3NhZ2V9XFxuJHtpc3N1ZUxpbmVzLmpvaW4oJ1xcbicpfWA7XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JJbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvZXJyb3JzL2Vycm9ySW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUdILHNEQUE4RDtBQXFCOUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBYztJQUM3QyxJQUFJLEtBQUssWUFBWSxnQ0FBb0IsRUFBRSxDQUFDO1FBQzFDLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxRSxJQUFJLEVBQUUsd0JBQXdCO1lBQzlCLEdBQUcsRUFBRSxLQUFLO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztRQUMzQixpRkFBaUY7UUFDakYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQXdCO2dCQUNoQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsR0FBRyxFQUFFLEtBQUs7YUFDWCxDQUFDO1lBRUYsa0VBQWtFO1lBQ2xFLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsR0FBSSxLQUE0QyxDQUFDLElBQUksQ0FBQztnQkFDckUsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLG9DQUFvQztZQUN0QyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsbUVBQW1FO1FBQ3JFLENBQUM7SUFDSCxDQUFDO0lBRUQsd0RBQXdEO0lBQ3hELElBQUksQ0FBQztRQUNILE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN0QixHQUFHLEVBQUUsS0FBSztTQUNYLENBQUM7SUFDSixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AscUVBQXFFO1FBQ3JFLE9BQU87WUFDTCxPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLEdBQUcsRUFBRSxLQUFLO1NBQ1gsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBakRELDRDQWlEQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixlQUFlLENBQUMsSUFBeUI7SUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzNDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNyRSxPQUFPLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUNyRCxDQUFDO0FBWEQsMENBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGVycm9ySW5mby50cyDigJQgRXh0cmFjdCBzdHJ1Y3R1cmVkIGluZm9ybWF0aW9uIGZyb20gYW55IGVycm9yIHR5cGUuXG4gKlxuICogVGhlIGVuZ2luZSdzIGVycm9yIGNhdGNoIGJsb2NrcyBjdXJyZW50bHkgY2FsbCBlcnJvci50b1N0cmluZygpLCBkZXN0cm95aW5nXG4gKiBzdHJ1Y3R1cmVkIGRhdGEgKGUuZy4gSW5wdXRWYWxpZGF0aW9uRXJyb3IuaXNzdWVzKS4gVGhpcyBtb2R1bGUgcHJvdmlkZXNcbiAqIGEgc2luZ2xlIGV4dHJhY3Rpb24gcG9pbnQgdGhhdCBwcmVzZXJ2ZXMgc3RydWN0dXJlZCBkZXRhaWxzIHdoaWxlIHN0aWxsXG4gKiBwcm9kdWNpbmcgYSBodW1hbi1yZWFkYWJsZSBtZXNzYWdlLlxuICpcbiAqIENvbnN1bWVycyAobmFycmF0aXZlIHJlY29yZGVycywgZXh0cmFjdG9ycywgZGlhZ25vc3RpYyBjb2xsZWN0b3JzKSByZWNlaXZlXG4gKiBTdHJ1Y3R1cmVkRXJyb3JJbmZvIGluc3RlYWQgb2YgYSBmbGF0IHN0cmluZywgYW5kIGNhbiBkZWNpZGUgaG93IHRvIHJlbmRlciBpdC5cbiAqIFN0cmluZy1pZmljYXRpb24gaGFwcGVucyBvbmx5IGF0IHRoZSBmaW5hbCByZW5kZXJpbmcgYm91bmRhcnkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uSXNzdWUgfSBmcm9tICcuLi8uLi9zY2hlbWEvZXJyb3JzLmpzJztcbmltcG9ydCB7IElucHV0VmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vc2NoZW1hL2Vycm9ycy5qcyc7XG5cbi8qKiBTdHJ1Y3R1cmVkIHJlcHJlc2VudGF0aW9uIG9mIGFueSBlcnJvciBjYXVnaHQgZHVyaW5nIHN0YWdlIGV4ZWN1dGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlZEVycm9ySW5mbyB7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIChhbHdheXMgcHJlc2VudCkuICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgLyoqIEVycm9yIGNsYXNzIG5hbWUgd2hlbiBhdmFpbGFibGUgKGUuZy4gJ0lucHV0VmFsaWRhdGlvbkVycm9yJywgJ1R5cGVFcnJvcicpLiAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogRmllbGQtbGV2ZWwgdmFsaWRhdGlvbiBpc3N1ZXMgKHByZXNlbnQgZm9yIElucHV0VmFsaWRhdGlvbkVycm9yKS4gKi9cbiAgaXNzdWVzPzogVmFsaWRhdGlvbklzc3VlW107XG4gIC8qKiBNYWNoaW5lLXJlYWRhYmxlIGVycm9yIGNvZGUgaWYgdGhlIGVycm9yIGNhcnJpZXMgb25lLiAqL1xuICBjb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIGVycm9yIG9iamVjdCwgZm9yIGNvbnN1bWVycyB0aGF0IG5lZWQgZnVsbCBhY2Nlc3MuXG4gICAqIE5vdCBzYWZlIHRvIHNlcmlhbGl6ZSBkaXJlY3RseSDigJQgbWF5IGNvbnRhaW4gY2lyY3VsYXIgcmVmZXJlbmNlcyxcbiAgICogc3RhY2sgdHJhY2VzLCBvciBzZW5zaXRpdmUgaW50ZXJuYWxzLiBVc2UgYGZvcm1hdEVycm9ySW5mbygpYCBmb3JcbiAgICogc2FmZSBzdHJpbmcgb3V0cHV0LlxuICAgKi9cbiAgcmF3OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEV4dHJhY3Qgc3RydWN0dXJlZCBlcnJvciBpbmZvIGZyb20gYW55IHRocm93biB2YWx1ZS5cbiAqXG4gKiAtIElucHV0VmFsaWRhdGlvbkVycm9yIOKGkiBwcmVzZXJ2ZXMgLmlzc3VlcyBhcnJheVxuICogLSBTdGFuZGFyZCBFcnJvciDihpIgcHJlc2VydmVzIC5uYW1lLCAubWVzc2FnZVxuICogLSBOb24tRXJyb3IgdGhyb3duIHZhbHVlcyDihpIgY29lcmNlcyB0byBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RFcnJvckluZm8oZXJyb3I6IHVua25vd24pOiBTdHJ1Y3R1cmVkRXJyb3JJbmZvIHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW5wdXRWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICBpc3N1ZXM6IGVycm9yLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiAoeyAuLi5pc3N1ZSwgcGF0aDogWy4uLmlzc3VlLnBhdGhdIH0pKSxcbiAgICAgIGNvZGU6ICdJTlBVVF9WQUxJREFUSU9OX0VSUk9SJyxcbiAgICAgIHJhdzogZXJyb3IsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgLy8gR3VhcmQgYWdhaW5zdCBhZHZlcnNhcmlhbCBlcnJvcnMgd2l0aCB0aHJvd2luZyBnZXR0ZXJzIG9uIC5tZXNzYWdlLy5uYW1lLy5jb2RlXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluZm86IFN0cnVjdHVyZWRFcnJvckluZm8gPSB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgIHJhdzogZXJyb3IsXG4gICAgICB9O1xuXG4gICAgICAvLyBQcmVzZXJ2ZSAuY29kZSBpZiBwcmVzZW50IChjb21tb24gTm9kZS5qcyBwYXR0ZXJuLCBlLmcuIEVOT0VOVClcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1heWJlQ29kZSA9IChlcnJvciBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5jb2RlO1xuICAgICAgICBpZiAodHlwZW9mIG1heWJlQ29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpbmZvLmNvZGUgPSBtYXliZUNvZGU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiAuY29kZSBhY2Nlc3NvciB0aHJldyDigJQgc2tpcCBpdCAqL1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIC5tZXNzYWdlIG9yIC5uYW1lIGdldHRlciB0aHJldyDigJQgZmFsbCB0aHJvdWdoIHRvIHN0cmluZyBjb2VyY2lvblxuICAgIH1cbiAgfVxuXG4gIC8vIE5vbi1FcnJvciB0aHJvd24gdmFsdWUgKHN0cmluZywgbnVtYmVyLCBvYmplY3QsIGV0Yy4pXG4gIHRyeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IFN0cmluZyhlcnJvciksXG4gICAgICByYXc6IGVycm9yLFxuICAgIH07XG4gIH0gY2F0Y2gge1xuICAgIC8vIFN0cmluZygpIGZhaWxlZCAoZS5nLiBudWxsLXByb3RvdHlwZSBvYmplY3QsIHRocm93aW5nIC50b1N0cmluZygpKVxuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlOiAnW3Vuc2VyaWFsaXphYmxlIGVycm9yXScsXG4gICAgICByYXc6IGVycm9yLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBGb3JtYXQgYSBTdHJ1Y3R1cmVkRXJyb3JJbmZvIGJhY2sgdG8gYSBodW1hbi1yZWFkYWJsZSBzdHJpbmcuXG4gKiBVc2UgdGhpcyBhdCByZW5kZXJpbmcgYm91bmRhcmllcyAobmFycmF0aXZlIG91dHB1dCwgbG9nIGxpbmVzKS5cbiAqIEluY2x1ZGVzIGZpZWxkLWxldmVsIGRldGFpbHMgd2hlbiBpc3N1ZXMgYXJlIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFcnJvckluZm8oaW5mbzogU3RydWN0dXJlZEVycm9ySW5mbyk6IHN0cmluZyB7XG4gIGlmICghaW5mby5pc3N1ZXMgfHwgaW5mby5pc3N1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGluZm8ubWVzc2FnZTtcbiAgfVxuXG4gIGNvbnN0IGlzc3VlTGluZXMgPSBpbmZvLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGlzc3VlLnBhdGgubGVuZ3RoID4gMCA/IGlzc3VlLnBhdGguam9pbignLicpIDogJyhyb290KSc7XG4gICAgcmV0dXJuIGAgIC0gJHtwYXRofTogJHtpc3N1ZS5tZXNzYWdlfWA7XG4gIH0pO1xuXG4gIHJldHVybiBgJHtpbmZvLm1lc3NhZ2V9XFxuJHtpc3N1ZUxpbmVzLmpvaW4oJ1xcbicpfWA7XG59XG4iXX0=
@@ -37,9 +37,9 @@ function isStageNodeReturn(output) {
37
37
  obj.isSubflowRoot === true;
38
38
  return hasContinuation;
39
39
  }
40
- catch (_a) {
40
+ catch {
41
41
  return false;
42
42
  }
43
43
  }
44
44
  exports.isStageNodeReturn = isStageNodeReturn;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhZ2VOb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvZ3JhcGgvU3RhZ2VOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7OztBQXVISCw4RUFBOEU7QUFDOUUscUVBQXFFO0FBQ3JFLDhFQUE4RTtBQUU5RTs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFlO0lBQy9DLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXhELElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLE1BQWlDLENBQUM7UUFDOUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRS9DLE1BQU0sZUFBZSxHQUNuQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN4RCxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDdEIsT0FBTyxHQUFHLENBQUMsZ0JBQWdCLEtBQUssVUFBVTtZQUMxQyxHQUFHLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQztRQUU3QixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQWpCRCw4Q0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YWdlTm9kZSDigJQgVGhlIGdyYXBoIG5vZGUgdHlwZSBmb3IgZmxvd2NoYXJ0IHRyYXZlcnNhbC5cbiAqXG4gKiBEZWZpbmVzIHRoZSBzaGFwZSBvZiBlYWNoIG5vZGUgaW4gdGhlIGZsb3djaGFydCBEQUc6XG4gKiAtIExpbmVhciBjb250aW51YXRpb24gdmlhIGBuZXh0YCAobGlua2VkIGxpc3QgdHJhdmVyc2FsKVxuICogLSBQYXJhbGxlbCBmYW4tb3V0IHZpYSBgY2hpbGRyZW5gIChmb3JrKVxuICogLSBDb25kaXRpb25hbCBicmFuY2hpbmcgdmlhIGBkZWNpZGVyRm5gIChzaW5nbGUtY2hvaWNlKSBvciBgc2VsZWN0b3JGbmAgKG11bHRpLWNob2ljZSlcbiAqIC0gQmFjay1lZGdlcyB2aWEgZHluYW1pYyBuZXh0IChsb29wKVxuICogLSBJc29sYXRlZCBzdWItdHJhdmVyc2FscyB2aWEgYGlzU3ViZmxvd1Jvb3RgIChzdWJmbG93KVxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VGdW5jdGlvbiwgU3ViZmxvd01vdW50T3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLyoqXG4gKiBSZXN1bWUgZnVuY3Rpb24gZm9yIHBhdXNhYmxlIHN0YWdlcy5cbiAqIFVubGlrZSBTdGFnZUZ1bmN0aW9uLCB0aGUgMm5kIGFyZ3VtZW50IGlzIHRoZSByZXN1bWUgaW5wdXQgKG5vdCBicmVha0ZuKS5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzdW1lRm48VFNjb3BlID0gYW55LCBUSW5wdXQgPSB1bmtub3duPiA9IChzY29wZTogVFNjb3BlLCBpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZWNpZGVyICsgU2VsZWN0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogUGlja3MgZXhhY3RseSBPTkUgY2hpbGQgYnkgSUQuIENvbmRpdGlvbmFsIGJyYW5jaCAoaWYvc3dpdGNoKS4gKi9cbmV4cG9ydCB0eXBlIERlY2lkZXIgPSAobm9kZUFyZ3M6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xuXG4vKipcbiAqIFBpY2tzIE9ORSBPUiBNT1JFIGNoaWxkcmVuIGJ5IElELiBGaWx0ZXJlZCBmYW4tb3V0LlxuICogLSBTaW5nbGUgc3RyaW5nOiBiZWhhdmVzIGxpa2UgRGVjaWRlclxuICogLSBBcnJheTogc2VsZWN0ZWQgY2hpbGRyZW4gZXhlY3V0ZSBpbiBwYXJhbGxlbFxuICogLSBFbXB0eSBhcnJheTogc2tpcCBhbGwgY2hpbGRyZW5cbiAqL1xuZXhwb3J0IHR5cGUgU2VsZWN0b3IgPSAobm9kZUFyZ3M6IGFueSkgPT4gc3RyaW5nIHwgc3RyaW5nW10gfCBQcm9taXNlPHN0cmluZyB8IHN0cmluZ1tdPjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdGFnZU5vZGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBTdGFnZU5vZGU8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiA9IHtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHN0YWdlIG5hbWU7IGFsc28gdXNlZCBhcyB0aGUgc3RhZ2VNYXAga2V5ICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFN0YWJsZSBpZGVudGlmaWVyIGZvciB2aXN1YWxpemF0aW9uIG1hdGNoaW5nIGFuZCBicmFuY2ggYWdncmVnYXRpb24uICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBPcmlnaW5hbCBicmFuY2ggaWRlbnRpZmllciBhcyBzdXBwbGllZCB0byBhZGRGdW5jdGlvbkJyYW5jaCgpIC8gYWRkU3ViRmxvd0NoYXJ0QnJhbmNoKCkuXG4gICAqICBXaGVuIGEgc3ViZmxvdyBwcmVmaXggaXMgYXBwbGllZCB0byB0aGUgbm9kZSB0cmVlLCB0aGlzIGZpZWxkIHByZXNlcnZlcyB0aGVcbiAgICogIHVucHJlZml4ZWQgSUQgc28gaGFuZGxlcnMgY2FuIG1hdGNoIGFnYWluc3QgdGhlIHZhbHVlIHJldHVybmVkIGJ5IHVzZXIgZGVjaWRlci9zZWxlY3RvciBmdW5jdGlvbnMuICovXG4gIGJyYW5jaElkPzogc3RyaW5nO1xuICAvKiogRGVzY3JpcHRpb24gb2Ygd2hhdCB0aGlzIHN0YWdlIGRvZXMuIFVzZWQgZm9yIG5hcnJhdGl2ZSBhbmQgdG9vbCBkZXNjcmlwdGlvbnMuICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgCBDb250aW51YXRpb24gcG9pbnRlcnMg4pSA4pSAXG5cbiAgLyoqIExpbmVhciBjb250aW51YXRpb24gKGxpbmtlZCBsaXN0IG5leHQgcG9pbnRlcikgKi9cbiAgbmV4dD86IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+O1xuICAvKiogUGFyYWxsZWwgY2hpbGRyZW4gKGZvcmsgZmFuLW91dCkgKi9cbiAgY2hpbGRyZW4/OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPltdO1xuXG4gIC8vIOKUgOKUgCBCcmFuY2hpbmcg4pSA4pSAXG5cbiAgLyoqIE91dHB1dC1iYXNlZCBzZWxlY3RvcjogcGlja3Mgc3Vic2V0IG9mIGNoaWxkcmVuICovXG4gIG5leHROb2RlU2VsZWN0b3I/OiBTZWxlY3RvcjtcbiAgLyoqIFdoZW4gdHJ1ZSwgZm4gSVMgYSBzY29wZS1iYXNlZCBkZWNpZGVyIHRoYXQgcmV0dXJucyBhIGJyYW5jaCBJRCBzdHJpbmcgKi9cbiAgZGVjaWRlckZuPzogYm9vbGVhbjtcbiAgLyoqIFdoZW4gdHJ1ZSwgZm4gSVMgYSBzY29wZS1iYXNlZCBzZWxlY3RvciB0aGF0IHJldHVybnMgYnJhbmNoIElEKHMpICovXG4gIHNlbGVjdG9yRm4/OiBib29sZWFuO1xuXG4gIC8vIOKUgOKUgCBTdGFnZSBmdW5jdGlvbiDilIDilIBcblxuICAvKiogRW1iZWRkZWQgZnVuY3Rpb247IG90aGVyd2lzZSByZXNvbHZlZCBmcm9tIHN0YWdlTWFwIGJ5IGBuYW1lYCAqL1xuICBmbj86IFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPjtcblxuICAvLyDilIDilIAgU3RyZWFtaW5nIOKUgOKUgFxuXG4gIC8qKiBXaGVuIHRydWUsIFBpcGVsaW5lIGluamVjdHMgYSBzdHJlYW1DYWxsYmFjayBhcyAzcmQgcGFyYW1ldGVyICovXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgLyoqIFVuaXF1ZSBzdHJlYW0gaWRlbnRpZmllciBmb3Igcm91dGluZyB0b2tlbnMgKi9cbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG5cbiAgLy8g4pSA4pSAIFN1YmZsb3cg4pSA4pSAXG5cbiAgLyoqIFRydWUgaWYgdGhpcyBpcyB0aGUgcm9vdCBub2RlIG9mIGEgbW91bnRlZCBzdWJmbG93ICovXG4gIGlzU3ViZmxvd1Jvb3Q/OiBib29sZWFuO1xuICAvKiogTW91bnQgaWQgb2YgdGhlIHN1YmZsb3cgKGUuZy4sIFwibGxtLWNvcmVcIikgKi9cbiAgc3ViZmxvd0lkPzogc3RyaW5nO1xuICAvKiogRGlzcGxheSBuYW1lIG9mIHRoZSBzdWJmbG93ICovXG4gIHN1YmZsb3dOYW1lPzogc3RyaW5nO1xuICAvKiogUmVmZXJlbmNlIGtleSBpbnRvIHRoZSBzdWJmbG93cyBkaWN0aW9uYXJ5ICovXG4gICRyZWY/OiBzdHJpbmc7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtb3VudCBpbnN0YW5jZSAqL1xuICBtb3VudElkPzogc3RyaW5nO1xuICAvKiogSW5wdXQvb3V0cHV0IG1hcHBpbmcgb3B0aW9ucyBmb3Igc3ViZmxvd3MgKi9cbiAgc3ViZmxvd01vdW50T3B0aW9ucz86IFN1YmZsb3dNb3VudE9wdGlvbnM7XG4gIC8qKiBXaGVuIHRydWUsIHBhcmFsbGVsIGNoaWxkcmVuIHVzZSBmYWlsLWZhc3Qgc2VtYW50aWNzIChyZWplY3Qgb24gZmlyc3QgZXJyb3IpICovXG4gIGZhaWxGYXN0PzogYm9vbGVhbjtcblxuICAvLyDilIDilIAgUGF1c2UvUmVzdW1lIOKUgOKUgFxuXG4gIC8qKiBXaGVuIHRydWUsIHRoaXMgc3RhZ2UgY2FuIHBhdXNlIGV4ZWN1dGlvbiAoUGF1c2FibGVIYW5kbGVyIHBhdHRlcm4pLiAqL1xuICBpc1BhdXNhYmxlPzogYm9vbGVhbjtcbiAgLyoqIFJlc3VtZSBmdW5jdGlvbiDigJQgY2FsbGVkIGluc3RlYWQgb2YgZm4gd2hlbiByZXN1bWluZyBhIHBhdXNlZCBzdGFnZS4gKi9cbiAgcmVzdW1lRm4/OiBSZXN1bWVGbjxUU2NvcGU+O1xuXG4gIC8qKlxuICAgKiBUcnVlIGlmIHRoaXMgbm9kZSBpcyBhIGJhY2stZWRnZSByZWZlcmVuY2UgY3JlYXRlZCBieSBsb29wVG8oKSDigJQgbm90IGFuIGV4ZWN1dGFibGUgc3RhZ2UuXG4gICAqIFNlcmlhbGl6YXRpb24gZXF1aXZhbGVudDogYFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZS5pc0xvb3BSZWZlcmVuY2VgIChkaWZmZXJlbnQgbmFtZVxuICAgKiB0byBkaXN0aW5ndWlzaCBydW50aW1lIGdyYXBoIGZpZWxkIGZyb20gdGhlIEpTT04tc2FmZSBzcGVjIGZpZWxkKS5cbiAgICovXG4gIGlzTG9vcFJlZj86IGJvb2xlYW47XG5cbiAgLyoqIElubGluZSBzdWJmbG93IGRlZmluaXRpb24gZm9yIGR5bmFtaWMgc3ViZmxvdyBhdHRhY2htZW50LiAqL1xuICBzdWJmbG93RGVmPzoge1xuICAgIHJvb3Q6IFN0YWdlTm9kZTtcbiAgICBzdGFnZU1hcD86IE1hcDxzdHJpbmcsIFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPj47XG4gICAgYnVpbGRUaW1lU3RydWN0dXJlPzogdW5rbm93bjtcbiAgICBzdWJmbG93cz86IFJlY29yZDxzdHJpbmcsIHsgcm9vdDogU3RhZ2VOb2RlIH0+O1xuICB9O1xuXG4gIC8qKiBMYXp5IHN1YmZsb3cgcmVzb2x2ZXIg4oCUIGNhbGxlZCBvbiBmaXJzdCBleGVjdXRpb24gdG8gb2J0YWluIHRoZSBGbG93Q2hhcnQuXG4gICAqICBVc2VkIGJ5IGBhZGRMYXp5U3ViRmxvd0NoYXJ0QnJhbmNoKClgIHRvIGRlZmVyIHRyZWUgY2xvbmluZyB1bnRpbCBuZWVkZWQuXG4gICAqICBUaGUgcmVzb2x2ZXIgaXMgY2FsbGVkIGF0IG1vc3Qgb25jZSBwZXIgZXhlY3V0aW9uOyB0aGUgcmVzdWx0IHJlcGxhY2VzIHRoaXMgZmllbGQuICovXG4gIHN1YmZsb3dSZXNvbHZlcj86ICgpID0+IHtcbiAgICByb290OiBTdGFnZU5vZGU7XG4gICAgc3RhZ2VNYXA6IE1hcDxzdHJpbmcsIFN0YWdlRnVuY3Rpb24+O1xuICAgIGJ1aWxkVGltZVN0cnVjdHVyZT86IHVua25vd247XG4gICAgc3ViZmxvd3M/OiBSZWNvcmQ8c3RyaW5nLCB7IHJvb3Q6IFN0YWdlTm9kZSB9PjtcbiAgfTtcbn07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gaXNTdGFnZU5vZGVSZXR1cm4g4oCUIGR1Y2stdHlwaW5nIGRldGVjdGlvbiBmb3IgZHluYW1pYyBjb250aW51YXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIERldGVjdHMgaWYgYSBzdGFnZSBvdXRwdXQgaXMgYSBTdGFnZU5vZGUgZm9yIGR5bmFtaWMgY29udGludWF0aW9uLlxuICpcbiAqIFVzZXMgZHVjay10eXBpbmc6IG11c3QgaGF2ZSBgbmFtZWAgKHN0cmluZykgQU5EIGF0IGxlYXN0IG9uZSBjb250aW51YXRpb25cbiAqIHByb3BlcnR5IChub24tZW1wdHkgY2hpbGRyZW4sIG5leHQsIG5leHROb2RlU2VsZWN0b3IsIG9yIGlzU3ViZmxvd1Jvb3QpLlxuICpcbiAqIGBpc1N1YmZsb3dSb290YCBjb3VudHMgYXMgY29udGludWF0aW9uIGJlY2F1c2Ugc3ViZmxvdyBleGVjdXRpb24gaXMgYSBmb3JtIG9mIGNvbnRpbnVhdGlvbi5cbiAqXG4gKiBTYWZlbHkgaGFuZGxlcyBwcm94eSBvYmplY3RzIChlLmcuLCBab2Qgc2NvcGUpIHRoYXQgbWF5IHRocm93IG9uIHByb3BlcnR5IGFjY2Vzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhZ2VOb2RlUmV0dXJuKG91dHB1dDogdW5rbm93bik6IG91dHB1dCBpcyBTdGFnZU5vZGUge1xuICBpZiAoIW91dHB1dCB8fCB0eXBlb2Ygb3V0cHV0ICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgb2JqID0gb3V0cHV0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmICh0eXBlb2Ygb2JqLm5hbWUgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBoYXNDb250aW51YXRpb24gPVxuICAgICAgKEFycmF5LmlzQXJyYXkob2JqLmNoaWxkcmVuKSAmJiBvYmouY2hpbGRyZW4ubGVuZ3RoID4gMCkgfHxcbiAgICAgIG9iai5uZXh0ICE9PSB1bmRlZmluZWQgfHxcbiAgICAgIHR5cGVvZiBvYmoubmV4dE5vZGVTZWxlY3RvciA9PT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgb2JqLmlzU3ViZmxvd1Jvb3QgPT09IHRydWU7XG5cbiAgICByZXR1cm4gaGFzQ29udGludWF0aW9uO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhZ2VOb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvZ3JhcGgvU3RhZ2VOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7OztBQXVISCw4RUFBOEU7QUFDOUUscUVBQXFFO0FBQ3JFLDhFQUE4RTtBQUU5RTs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFlO0lBQy9DLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXhELElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLE1BQWlDLENBQUM7UUFDOUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRS9DLE1BQU0sZUFBZSxHQUNuQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN4RCxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDdEIsT0FBTyxHQUFHLENBQUMsZ0JBQWdCLEtBQUssVUFBVTtZQUMxQyxHQUFHLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQztRQUU3QixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQWpCRCw4Q0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YWdlTm9kZSDigJQgVGhlIGdyYXBoIG5vZGUgdHlwZSBmb3IgZmxvd2NoYXJ0IHRyYXZlcnNhbC5cbiAqXG4gKiBEZWZpbmVzIHRoZSBzaGFwZSBvZiBlYWNoIG5vZGUgaW4gdGhlIGZsb3djaGFydCBEQUc6XG4gKiAtIExpbmVhciBjb250aW51YXRpb24gdmlhIGBuZXh0YCAobGlua2VkIGxpc3QgdHJhdmVyc2FsKVxuICogLSBQYXJhbGxlbCBmYW4tb3V0IHZpYSBgY2hpbGRyZW5gIChmb3JrKVxuICogLSBDb25kaXRpb25hbCBicmFuY2hpbmcgdmlhIGBkZWNpZGVyRm5gIChzaW5nbGUtY2hvaWNlKSBvciBgc2VsZWN0b3JGbmAgKG11bHRpLWNob2ljZSlcbiAqIC0gQmFjay1lZGdlcyB2aWEgZHluYW1pYyBuZXh0IChsb29wKVxuICogLSBJc29sYXRlZCBzdWItdHJhdmVyc2FscyB2aWEgYGlzU3ViZmxvd1Jvb3RgIChzdWJmbG93KVxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VGdW5jdGlvbiwgU3ViZmxvd01vdW50T3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLyoqXG4gKiBSZXN1bWUgZnVuY3Rpb24gZm9yIHBhdXNhYmxlIHN0YWdlcy5cbiAqIFVubGlrZSBTdGFnZUZ1bmN0aW9uLCB0aGUgMm5kIGFyZ3VtZW50IGlzIHRoZSByZXN1bWUgaW5wdXQgKG5vdCBicmVha0ZuKS5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzdW1lRm48VFNjb3BlID0gYW55LCBUSW5wdXQgPSB1bmtub3duPiA9IChzY29wZTogVFNjb3BlLCBpbnB1dDogVElucHV0KSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZWNpZGVyICsgU2VsZWN0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogUGlja3MgZXhhY3RseSBPTkUgY2hpbGQgYnkgSUQuIENvbmRpdGlvbmFsIGJyYW5jaCAoaWYvc3dpdGNoKS4gKi9cbmV4cG9ydCB0eXBlIERlY2lkZXIgPSAobm9kZUFyZ3M6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xuXG4vKipcbiAqIFBpY2tzIE9ORSBPUiBNT1JFIGNoaWxkcmVuIGJ5IElELiBGaWx0ZXJlZCBmYW4tb3V0LlxuICogLSBTaW5nbGUgc3RyaW5nOiBiZWhhdmVzIGxpa2UgRGVjaWRlclxuICogLSBBcnJheTogc2VsZWN0ZWQgY2hpbGRyZW4gZXhlY3V0ZSBpbiBwYXJhbGxlbFxuICogLSBFbXB0eSBhcnJheTogc2tpcCBhbGwgY2hpbGRyZW5cbiAqL1xuZXhwb3J0IHR5cGUgU2VsZWN0b3IgPSAobm9kZUFyZ3M6IGFueSkgPT4gc3RyaW5nIHwgc3RyaW5nW10gfCBQcm9taXNlPHN0cmluZyB8IHN0cmluZ1tdPjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdGFnZU5vZGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBTdGFnZU5vZGU8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiA9IHtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHN0YWdlIG5hbWU7IGFsc28gdXNlZCBhcyB0aGUgc3RhZ2VNYXAga2V5ICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFN0YWJsZSBpZGVudGlmaWVyIGZvciB2aXN1YWxpemF0aW9uIG1hdGNoaW5nIGFuZCBicmFuY2ggYWdncmVnYXRpb24uICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBPcmlnaW5hbCBicmFuY2ggaWRlbnRpZmllciBhcyBzdXBwbGllZCB0byBhZGRGdW5jdGlvbkJyYW5jaCgpIC8gYWRkU3ViRmxvd0NoYXJ0QnJhbmNoKCkuXG4gICAqICBXaGVuIGEgc3ViZmxvdyBwcmVmaXggaXMgYXBwbGllZCB0byB0aGUgbm9kZSB0cmVlLCB0aGlzIGZpZWxkIHByZXNlcnZlcyB0aGVcbiAgICogIHVucHJlZml4ZWQgSUQgc28gaGFuZGxlcnMgY2FuIG1hdGNoIGFnYWluc3QgdGhlIHZhbHVlIHJldHVybmVkIGJ5IHVzZXIgZGVjaWRlci9zZWxlY3RvciBmdW5jdGlvbnMuICovXG4gIGJyYW5jaElkPzogc3RyaW5nO1xuICAvKiogRGVzY3JpcHRpb24gb2Ygd2hhdCB0aGlzIHN0YWdlIGRvZXMuIFVzZWQgZm9yIG5hcnJhdGl2ZSBhbmQgdG9vbCBkZXNjcmlwdGlvbnMuICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgCBDb250aW51YXRpb24gcG9pbnRlcnMg4pSA4pSAXG5cbiAgLyoqIExpbmVhciBjb250aW51YXRpb24gKGxpbmtlZCBsaXN0IG5leHQgcG9pbnRlcikgKi9cbiAgbmV4dD86IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+O1xuICAvKiogUGFyYWxsZWwgY2hpbGRyZW4gKGZvcmsgZmFuLW91dCkgKi9cbiAgY2hpbGRyZW4/OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPltdO1xuXG4gIC8vIOKUgOKUgCBCcmFuY2hpbmcg4pSA4pSAXG5cbiAgLyoqIE91dHB1dC1iYXNlZCBzZWxlY3RvcjogcGlja3Mgc3Vic2V0IG9mIGNoaWxkcmVuICovXG4gIG5leHROb2RlU2VsZWN0b3I/OiBTZWxlY3RvcjtcbiAgLyoqIFdoZW4gdHJ1ZSwgZm4gSVMgYSBzY29wZS1iYXNlZCBkZWNpZGVyIHRoYXQgcmV0dXJucyBhIGJyYW5jaCBJRCBzdHJpbmcgKi9cbiAgZGVjaWRlckZuPzogYm9vbGVhbjtcbiAgLyoqIFdoZW4gdHJ1ZSwgZm4gSVMgYSBzY29wZS1iYXNlZCBzZWxlY3RvciB0aGF0IHJldHVybnMgYnJhbmNoIElEKHMpICovXG4gIHNlbGVjdG9yRm4/OiBib29sZWFuO1xuXG4gIC8vIOKUgOKUgCBTdGFnZSBmdW5jdGlvbiDilIDilIBcblxuICAvKiogRW1iZWRkZWQgZnVuY3Rpb247IG90aGVyd2lzZSByZXNvbHZlZCBmcm9tIHN0YWdlTWFwIGJ5IGBuYW1lYCAqL1xuICBmbj86IFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPjtcblxuICAvLyDilIDilIAgU3RyZWFtaW5nIOKUgOKUgFxuXG4gIC8qKiBXaGVuIHRydWUsIFBpcGVsaW5lIGluamVjdHMgYSBzdHJlYW1DYWxsYmFjayBhcyAzcmQgcGFyYW1ldGVyICovXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgLyoqIFVuaXF1ZSBzdHJlYW0gaWRlbnRpZmllciBmb3Igcm91dGluZyB0b2tlbnMgKi9cbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG5cbiAgLy8g4pSA4pSAIFN1YmZsb3cg4pSA4pSAXG5cbiAgLyoqIFRydWUgaWYgdGhpcyBpcyB0aGUgcm9vdCBub2RlIG9mIGEgbW91bnRlZCBzdWJmbG93ICovXG4gIGlzU3ViZmxvd1Jvb3Q/OiBib29sZWFuO1xuICAvKiogTW91bnQgaWQgb2YgdGhlIHN1YmZsb3cgKGUuZy4sIFwibGxtLWNvcmVcIikgKi9cbiAgc3ViZmxvd0lkPzogc3RyaW5nO1xuICAvKiogRGlzcGxheSBuYW1lIG9mIHRoZSBzdWJmbG93ICovXG4gIHN1YmZsb3dOYW1lPzogc3RyaW5nO1xuICAvKiogUmVmZXJlbmNlIGtleSBpbnRvIHRoZSBzdWJmbG93cyBkaWN0aW9uYXJ5ICovXG4gICRyZWY/OiBzdHJpbmc7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtb3VudCBpbnN0YW5jZSAqL1xuICBtb3VudElkPzogc3RyaW5nO1xuICAvKiogSW5wdXQvb3V0cHV0IG1hcHBpbmcgb3B0aW9ucyBmb3Igc3ViZmxvd3MgKi9cbiAgc3ViZmxvd01vdW50T3B0aW9ucz86IFN1YmZsb3dNb3VudE9wdGlvbnM7XG4gIC8qKiBXaGVuIHRydWUsIHBhcmFsbGVsIGNoaWxkcmVuIHVzZSBmYWlsLWZhc3Qgc2VtYW50aWNzIChyZWplY3Qgb24gZmlyc3QgZXJyb3IpICovXG4gIGZhaWxGYXN0PzogYm9vbGVhbjtcblxuICAvLyDilIDilIAgUGF1c2UvUmVzdW1lIOKUgOKUgFxuXG4gIC8qKiBXaGVuIHRydWUsIHRoaXMgc3RhZ2UgY2FuIHBhdXNlIGV4ZWN1dGlvbiAoUGF1c2FibGVIYW5kbGVyIHBhdHRlcm4pLiAqL1xuICBpc1BhdXNhYmxlPzogYm9vbGVhbjtcbiAgLyoqIFJlc3VtZSBmdW5jdGlvbiDigJQgY2FsbGVkIGluc3RlYWQgb2YgZm4gd2hlbiByZXN1bWluZyBhIHBhdXNlZCBzdGFnZS4gKi9cbiAgcmVzdW1lRm4/OiBSZXN1bWVGbjxUU2NvcGU+O1xuXG4gIC8qKlxuICAgKiBUcnVlIGlmIHRoaXMgbm9kZSBpcyBhIGJhY2stZWRnZSByZWZlcmVuY2UgY3JlYXRlZCBieSBsb29wVG8oKSDigJQgbm90IGFuIGV4ZWN1dGFibGUgc3RhZ2UuXG4gICAqIFNlcmlhbGl6YXRpb24gZXF1aXZhbGVudDogYFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZS5pc0xvb3BSZWZlcmVuY2VgIChkaWZmZXJlbnQgbmFtZVxuICAgKiB0byBkaXN0aW5ndWlzaCBydW50aW1lIGdyYXBoIGZpZWxkIGZyb20gdGhlIEpTT04tc2FmZSBzcGVjIGZpZWxkKS5cbiAgICovXG4gIGlzTG9vcFJlZj86IGJvb2xlYW47XG5cbiAgLyoqIElubGluZSBzdWJmbG93IGRlZmluaXRpb24gZm9yIGR5bmFtaWMgc3ViZmxvdyBhdHRhY2htZW50LiAqL1xuICBzdWJmbG93RGVmPzoge1xuICAgIHJvb3Q6IFN0YWdlTm9kZTtcbiAgICBzdGFnZU1hcD86IE1hcDxzdHJpbmcsIFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPj47XG4gICAgYnVpbGRUaW1lU3RydWN0dXJlPzogdW5rbm93bjtcbiAgICBzdWJmbG93cz86IFJlY29yZDxzdHJpbmcsIHsgcm9vdDogU3RhZ2VOb2RlIH0+O1xuICB9O1xuXG4gIC8qKiBMYXp5IHN1YmZsb3cgcmVzb2x2ZXIg4oCUIGNhbGxlZCBvbiBmaXJzdCBleGVjdXRpb24gdG8gb2J0YWluIHRoZSBGbG93Q2hhcnQuXG4gICAqICBVc2VkIGJ5IGBhZGRMYXp5U3ViRmxvd0NoYXJ0QnJhbmNoKClgIHRvIGRlZmVyIHRyZWUgY2xvbmluZyB1bnRpbCBuZWVkZWQuXG4gICAqICBUaGUgcmVzb2x2ZXIgaXMgY2FsbGVkIGF0IG1vc3Qgb25jZSBwZXIgZXhlY3V0aW9uOyB0aGUgcmVzdWx0IHJlcGxhY2VzIHRoaXMgZmllbGQuICovXG4gIHN1YmZsb3dSZXNvbHZlcj86ICgpID0+IHtcbiAgICByb290OiBTdGFnZU5vZGU7XG4gICAgc3RhZ2VNYXA6IE1hcDxzdHJpbmcsIFN0YWdlRnVuY3Rpb24+O1xuICAgIGJ1aWxkVGltZVN0cnVjdHVyZT86IHVua25vd247XG4gICAgc3ViZmxvd3M/OiBSZWNvcmQ8c3RyaW5nLCB7IHJvb3Q6IFN0YWdlTm9kZSB9PjtcbiAgfTtcbn07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gaXNTdGFnZU5vZGVSZXR1cm4g4oCUIGR1Y2stdHlwaW5nIGRldGVjdGlvbiBmb3IgZHluYW1pYyBjb250aW51YXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIERldGVjdHMgaWYgYSBzdGFnZSBvdXRwdXQgaXMgYSBTdGFnZU5vZGUgZm9yIGR5bmFtaWMgY29udGludWF0aW9uLlxuICpcbiAqIFVzZXMgZHVjay10eXBpbmc6IG11c3QgaGF2ZSBgbmFtZWAgKHN0cmluZykgQU5EIGF0IGxlYXN0IG9uZSBjb250aW51YXRpb25cbiAqIHByb3BlcnR5IChub24tZW1wdHkgY2hpbGRyZW4sIG5leHQsIG5leHROb2RlU2VsZWN0b3IsIG9yIGlzU3ViZmxvd1Jvb3QpLlxuICpcbiAqIGBpc1N1YmZsb3dSb290YCBjb3VudHMgYXMgY29udGludWF0aW9uIGJlY2F1c2Ugc3ViZmxvdyBleGVjdXRpb24gaXMgYSBmb3JtIG9mIGNvbnRpbnVhdGlvbi5cbiAqXG4gKiBTYWZlbHkgaGFuZGxlcyBwcm94eSBvYmplY3RzIChlLmcuLCBab2Qgc2NvcGUpIHRoYXQgbWF5IHRocm93IG9uIHByb3BlcnR5IGFjY2Vzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhZ2VOb2RlUmV0dXJuKG91dHB1dDogdW5rbm93bik6IG91dHB1dCBpcyBTdGFnZU5vZGUge1xuICBpZiAoIW91dHB1dCB8fCB0eXBlb2Ygb3V0cHV0ICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgb2JqID0gb3V0cHV0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmICh0eXBlb2Ygb2JqLm5hbWUgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBoYXNDb250aW51YXRpb24gPVxuICAgICAgKEFycmF5LmlzQXJyYXkob2JqLmNoaWxkcmVuKSAmJiBvYmouY2hpbGRyZW4ubGVuZ3RoID4gMCkgfHxcbiAgICAgIG9iai5uZXh0ICE9PSB1bmRlZmluZWQgfHxcbiAgICAgIHR5cGVvZiBvYmoubmV4dE5vZGVTZWxlY3RvciA9PT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgb2JqLmlzU3ViZmxvd1Jvb3QgPT09IHRydWU7XG5cbiAgICByZXR1cm4gaGFzQ29udGludWF0aW9uO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -12,6 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ChildrenExecutor = void 0;
13
13
  const types_js_1 = require("../../pause/types.js");
14
14
  class ChildrenExecutor {
15
+ deps;
16
+ executeNode;
15
17
  constructor(deps, executeNode) {
16
18
  this.deps = deps;
17
19
  this.executeNode = executeNode;
@@ -21,10 +23,9 @@ class ChildrenExecutor {
21
23
  * Uses Promise.allSettled to ensure all children complete even if some fail.
22
24
  */
23
25
  async executeNodeChildren(node, context, parentBreakFlag, branchPath, traversalContext) {
24
- var _a, _b, _c;
25
26
  let breakCount = 0;
26
- const totalChildren = (_b = (_a = node.children) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
27
- const allChildren = (_c = node.children) !== null && _c !== void 0 ? _c : [];
27
+ const totalChildren = node.children?.length ?? 0;
28
+ const allChildren = node.children ?? [];
28
29
  // Narrative: capture the fan-out
29
30
  const childDisplayNames = allChildren.map((c) => c.name);
30
31
  this.deps.narrativeGenerator.onFork(node.name, childDisplayNames, traversalContext);
@@ -50,7 +51,7 @@ class ChildrenExecutor {
50
51
  throw error;
51
52
  childContext.commit();
52
53
  updateParentBreakFlag();
53
- this.deps.logger.info(`TREE PIPELINE: executeNodeChildren - Error for id: ${child === null || child === void 0 ? void 0 : child.id}`, { error });
54
+ this.deps.logger.info(`TREE PIPELINE: executeNodeChildren - Error for id: ${child?.id}`, { error });
54
55
  if (this.deps.throttlingErrorChecker && this.deps.throttlingErrorChecker(error)) {
55
56
  childContext.updateObject(['monitor'], 'isThrottled', true);
56
57
  }
@@ -66,7 +67,7 @@ class ChildrenExecutor {
66
67
  return r;
67
68
  })));
68
69
  for (const { id, result, isError } of results) {
69
- childrenResults[id] = { id, result, isError: isError !== null && isError !== void 0 ? isError : false };
70
+ childrenResults[id] = { id, result, isError: isError ?? false };
70
71
  }
71
72
  }
72
73
  else {
@@ -76,12 +77,12 @@ class ChildrenExecutor {
76
77
  settled.forEach((s) => {
77
78
  if (s.status === 'fulfilled') {
78
79
  const { id, result, isError } = s.value;
79
- childrenResults[id] = { id, result, isError: isError !== null && isError !== void 0 ? isError : false };
80
+ childrenResults[id] = { id, result, isError: isError ?? false };
80
81
  }
81
82
  else if ((0, types_js_1.isPauseSignal)(s.reason)) {
82
83
  // PauseSignal from a child — re-throw after all children settle.
83
84
  // Keep the first signal if multiple children pause.
84
- pauseSignal !== null && pauseSignal !== void 0 ? pauseSignal : (pauseSignal = s.reason);
85
+ pauseSignal ??= s.reason;
85
86
  }
86
87
  else {
87
88
  this.deps.logger.error(`Execution failed: ${s.reason}`);
@@ -134,4 +135,4 @@ class ChildrenExecutor {
134
135
  }
135
136
  }
136
137
  exports.ChildrenExecutor = ChildrenExecutor;
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hpbGRyZW5FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL2hhbmRsZXJzL0NoaWxkcmVuRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFHSCxtREFBcUQ7QUFRckQsTUFBYSxnQkFBZ0I7SUFDM0IsWUFBb0IsSUFBK0IsRUFBVSxXQUF3QztRQUFqRixTQUFJLEdBQUosSUFBSSxDQUEyQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUE2QjtJQUFHLENBQUM7SUFFekc7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixJQUE2QixFQUM3QixPQUFxQixFQUNyQixlQUEwQyxFQUMxQyxVQUFtQixFQUNuQixnQkFBbUM7O1FBRW5DLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixNQUFNLGFBQWEsR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsTUFBTSxtQ0FBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxXQUFXLEdBQUcsTUFBQSxJQUFJLENBQUMsUUFBUSxtQ0FBSSxFQUFFLENBQUM7UUFFeEMsaUNBQWlDO1FBQ2pDLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUVwRixNQUFNLGFBQWEsR0FBOEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pFLE1BQU0sZUFBZSxHQUFHLFVBQVUsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxX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QyxTQUFTLElBQUksVUFBVSxFQUMvQixvQkFBb0IsRUFDcEIsUUFBUSxDQUFDLE1BQU0sRUFDZixnQkFBZ0IsQ0FDakIsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUE0QjtZQUN4QyxJQUFJLEVBQUUsZUFBZTtZQUNyQixFQUFFLEVBQUUsZUFBZTtZQUNuQixRQUFRLEVBQUUsZ0JBQWdCO1NBQzNCLENBQUM7UUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7Q0FDRjtBQTFKRCw0Q0EwSkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoaWxkcmVuRXhlY3V0b3Ig4oCUIFBhcmFsbGVsIGZhbi1vdXQgdmlhIFByb21pc2UuYWxsU2V0dGxlZC5cbiAqXG4gKiBSZXNwb25zaWJpbGl0aWVzOlxuICogLSBFeGVjdXRlIGFsbCBjaGlsZHJlbiBpbiBwYXJhbGxlbCAoZm9yayBwYXR0ZXJuKVxuICogLSBFeGVjdXRlIHNlbGVjdGVkIGNoaWxkcmVuIGJhc2VkIG9uIHNlbGVjdG9yIG91dHB1dCAobXVsdGktY2hvaWNlKVxuICogLSBIYW5kbGUgdGhyb3R0bGluZyBlcnJvciBmbGFnZ2luZyBmb3IgcmF0ZS1saW1pdGVkIG9wZXJhdGlvbnNcbiAqIC0gQWdncmVnYXRlIHJlc3VsdHMgaW50byB7IGNoaWxkSWQ6IHsgcmVzdWx0LCBpc0Vycm9yIH0gfVxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgeyBpc1BhdXNlU2lnbmFsIH0gZnJvbSAnLi4vLi4vcGF1c2UvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RvciwgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgVHJhdmVyc2FsQ29udGV4dCB9IGZyb20gJy4uL25hcnJhdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEhhbmRsZXJEZXBzLCBOb2RlUmVzdWx0VHlwZSB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRXhlY3V0ZU5vZGVGbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGVOb2RlRm4gfTtcblxuZXhwb3J0IGNsYXNzIENoaWxkcmVuRXhlY3V0b3I8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVwczogSGFuZGxlckRlcHM8VE91dCwgVFNjb3BlPiwgcHJpdmF0ZSBleGVjdXRlTm9kZTogRXhlY3V0ZU5vZGVGbjxUT3V0LCBUU2NvcGU+KSB7fVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGFsbCBjaGlsZHJlbiBpbiBwYXJhbGxlbC4gRWFjaCBjaGlsZCBjb21taXRzIG9uIHNldHRsZS5cbiAgICogVXNlcyBQcm9taXNlLmFsbFNldHRsZWQgdG8gZW5zdXJlIGFsbCBjaGlsZHJlbiBjb21wbGV0ZSBldmVuIGlmIHNvbWUgZmFpbC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVOb2RlQ2hpbGRyZW4oXG4gICAgbm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4sXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIHBhcmVudEJyZWFrRmxhZz86IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoPzogc3RyaW5nLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIE5vZGVSZXN1bHRUeXBlPj4ge1xuICAgIGxldCBicmVha0NvdW50ID0gMDtcbiAgICBjb25zdCB0b3RhbENoaWxkcmVuID0gbm9kZS5jaGlsZHJlbj8ubGVuZ3RoID8/IDA7XG4gICAgY29uc3QgYWxsQ2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuID8/IFtdO1xuXG4gICAgLy8gTmFycmF0aXZlOiBjYXB0dXJlIHRoZSBmYW4tb3V0XG4gICAgY29uc3QgY2hpbGREaXNwbGF5TmFtZXMgPSBhbGxDaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSk7XG4gICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vbkZvcmsobm9kZS5uYW1lLCBjaGlsZERpc3BsYXlOYW1lcywgdHJhdmVyc2FsQ29udGV4dCk7XG5cbiAgICBjb25zdCBjaGlsZFByb21pc2VzOiBQcm9taXNlPE5vZGVSZXN1bHRUeXBlPltdID0gYWxsQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgY2hpbGRCcmFuY2hQYXRoID0gYnJhbmNoUGF0aCB8fCBjaGlsZC5pZDtcbiAgICAgIGNvbnN0IGNoaWxkQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlQ2hpbGQoY2hpbGRCcmFuY2hQYXRoIGFzIHN0cmluZywgY2hpbGQuaWQgYXMgc3RyaW5nLCBjaGlsZC5uYW1lLCBjaGlsZC5pZCk7XG4gICAgICBjb25zdCBjaGlsZEJyZWFrRmxhZyA9IHsgc2hvdWxkQnJlYWs6IGZhbHNlIH07XG5cbiAgICAgIGNvbnN0IHVwZGF0ZVBhcmVudEJyZWFrRmxhZyA9ICgpID0+IHtcbiAgICAgICAgaWYgKGNoaWxkQnJlYWtGbGFnLnNob3VsZEJyZWFrKSBicmVha0NvdW50ICs9IDE7XG4gICAgICAgIGlmIChwYXJlbnRCcmVha0ZsYWcgJiYgYnJlYWtDb3VudCA9PT0gdG90YWxDaGlsZHJlbikgcGFyZW50QnJlYWtGbGFnLnNob3VsZEJyZWFrID0gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGVOb2RlKGNoaWxkLCBjaGlsZENvbnRleHQsIGNoaWxkQnJlYWtGbGFnLCBjaGlsZEJyYW5jaFBhdGgpXG4gICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBjaGlsZENvbnRleHQuY29tbWl0KCk7XG4gICAgICAgICAgdXBkYXRlUGFyZW50QnJlYWtGbGFnKCk7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IGNoaWxkLmlkISwgcmVzdWx0LCBpc0Vycm9yOiBmYWxzZSB9O1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgLy8gUGF1c2VTaWduYWwgaXMgZXhwZWN0ZWQgY29udHJvbCBmbG93IOKAlCByZS10aHJvdyBpbW1lZGlhdGVseS5cbiAgICAgICAgICBpZiAoaXNQYXVzZVNpZ25hbChlcnJvcikpIHRocm93IGVycm9yO1xuICAgICAgICAgIGNoaWxkQ29udGV4dC5jb21taXQoKTtcbiAgICAgICAgICB1cGRhdGVQYXJlbnRCcmVha0ZsYWcoKTtcbiAgICAgICAgICB0aGlzLmRlcHMubG9nZ2VyLmluZm8oYFRSRUUgUElQRUxJTkU6IGV4ZWN1dGVOb2RlQ2hpbGRyZW4gLSBFcnJvciBmb3IgaWQ6ICR7Y2hpbGQ/LmlkfWAsIHsgZXJyb3IgfSk7XG4gICAgICAgICAgaWYgKHRoaXMuZGVwcy50aHJvdHRsaW5nRXJyb3JDaGVja2VyICYmIHRoaXMuZGVwcy50aHJvdHRsaW5nRXJyb3JDaGVja2VyKGVycm9yKSkge1xuICAgICAgICAgICAgY2hpbGRDb250ZXh0LnVwZGF0ZU9iamVjdChbJ21vbml0b3InXSwgJ2lzVGhyb3R0bGVkJywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IGlkOiBjaGlsZC5pZCEsIHJlc3VsdDogZXJyb3IsIGlzRXJyb3I6IHRydWUgfTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjaGlsZHJlblJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIE5vZGVSZXN1bHRUeXBlPiA9IHt9O1xuXG4gICAgaWYgKG5vZGUuZmFpbEZhc3QpIHtcbiAgICAgIC8vIEZhaWwtZmFzdDogZmlyc3QgY2hpbGQgZXJyb3IgcmVqZWN0cyBpbW1lZGlhdGVseSAodW53cmFwcGVkKVxuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkLCBpKSA9PlxuICAgICAgICAgIGNoaWxkUHJvbWlzZXNbaV0udGhlbigocikgPT4ge1xuICAgICAgICAgICAgaWYgKHIuaXNFcnJvcikgdGhyb3cgci5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHsgaWQsIHJlc3VsdCwgaXNFcnJvciB9IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgY2hpbGRyZW5SZXN1bHRzW2lkXSA9IHsgaWQsIHJlc3VsdCwgaXNFcnJvcjogaXNFcnJvciA/PyBmYWxzZSB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZWZhdWx0OiBydW4gYWxsIGNoaWxkcmVuIHRvIGNvbXBsZXRpb24gZXZlbiBpZiBzb21lIGZhaWxcbiAgICAgIGNvbnN0IHNldHRsZWQgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoY2hpbGRQcm9taXNlcyk7XG4gICAgICBsZXQgcGF1c2VTaWduYWw6IHVua25vd247XG4gICAgICBzZXR0bGVkLmZvckVhY2goKHMpID0+IHtcbiAgICAgICAgaWYgKHMuc3RhdHVzID09PSAnZnVsZmlsbGVkJykge1xuICAgICAgICAgIGNvbnN0IHsgaWQsIHJlc3VsdCwgaXNFcnJvciB9ID0gcy52YWx1ZTtcbiAgICAgICAgICBjaGlsZHJlblJlc3VsdHNbaWRdID0geyBpZCwgcmVzdWx0LCBpc0Vycm9yOiBpc0Vycm9yID8/IGZhbHNlIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQYXVzZVNpZ25hbChzLnJlYXNvbikpIHtcbiAgICAgICAgICAvLyBQYXVzZVNpZ25hbCBmcm9tIGEgY2hpbGQg4oCUIHJlLXRocm93IGFmdGVyIGFsbCBjaGlsZHJlbiBzZXR0bGUuXG4gICAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3Qgc2lnbmFsIGlmIG11bHRpcGxlIGNoaWxkcmVuIHBhdXNlLlxuICAgICAgICAgIHBhdXNlU2lnbmFsID8/PSBzLnJlYXNvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFeGVjdXRpb24gZmFpbGVkOiAke3MucmVhc29ufWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vIFJlLXRocm93IFBhdXNlU2lnbmFsIGFmdGVyIGFsbCBjaGlsZHJlbiBoYXZlIHNldHRsZWRcbiAgICAgIGlmIChwYXVzZVNpZ25hbCkgdGhyb3cgcGF1c2VTaWduYWw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkcmVuUmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHNlbGVjdGVkIGNoaWxkcmVuIGJhc2VkIG9uIHNlbGVjdG9yIHJlc3VsdC5cbiAgICogVmFsaWRhdGVzIElEcywgcmVjb3JkcyBzZWxlY3Rpb24gaW5mbywgdGhlbiBkZWxlZ2F0ZXMgdG8gZXhlY3V0ZU5vZGVDaGlsZHJlbi5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVTZWxlY3RlZENoaWxkcmVuKFxuICAgIHNlbGVjdG9yOiBTZWxlY3RvcixcbiAgICBjaGlsZHJlbjogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT5bXSxcbiAgICBpbnB1dDogYW55LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTm9kZVJlc3VsdFR5cGU+PiB7XG4gICAgY29uc3Qgc2VsZWN0b3JSZXN1bHQgPSBhd2FpdCBzZWxlY3RvcihpbnB1dCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBBcnJheS5pc0FycmF5KHNlbGVjdG9yUmVzdWx0KSA/IHNlbGVjdG9yUmVzdWx0IDogW3NlbGVjdG9yUmVzdWx0XTtcblxuICAgIGNvbnRleHQuYWRkTG9nKCdzZWxlY3RlZENoaWxkSWRzJywgc2VsZWN0ZWRJZHMpO1xuICAgIGNvbnRleHQuYWRkTG9nKCdzZWxlY3RvclBhdHRlcm4nLCAnbXVsdGktY2hvaWNlJyk7XG5cbiAgICBpZiAoc2VsZWN0ZWRJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250ZXh0LmFkZExvZygnc2tpcHBlZEFsbENoaWxkcmVuJywgdHJ1ZSk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRDaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcigoYykgPT4gc2VsZWN0ZWRJZHMuaW5jbHVkZXMoYy5pZCEpKTtcblxuICAgIC8vIFZhbGlkYXRlIGFsbCBJRHMgZXhpc3QgKGZhaWwgZmFzdClcbiAgICBpZiAoc2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGggIT09IHNlbGVjdGVkSWRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgY2hpbGRJZHMgPSBjaGlsZHJlbi5tYXAoKGMpID0+IGMuaWQpO1xuICAgICAgY29uc3QgbWlzc2luZyA9IHNlbGVjdGVkSWRzLmZpbHRlcigoaWQpID0+ICFjaGlsZElkcy5pbmNsdWRlcyhpZCkpO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFNlbGVjdG9yIHJldHVybmVkIHVua25vd24gY2hpbGQgSURzOiAke21pc3Npbmcuam9pbignLCAnKX0uIEF2YWlsYWJsZTogJHtjaGlsZElkcy5qb2luKFxuICAgICAgICAnLCAnLFxuICAgICAgKX1gO1xuICAgICAgdGhpcy5kZXBzLmxvZ2dlci5lcnJvcihgRXJyb3IgaW4gcGlwZWxpbmUgKCR7YnJhbmNoUGF0aH0pOmAsIHsgZXJyb3I6IGVycm9yTWVzc2FnZSB9KTtcbiAgICAgIGNvbnRleHQuYWRkRXJyb3IoJ3NlbGVjdG9yRXJyb3InLCBlcnJvck1lc3NhZ2UpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2tpcHBlZElkcyA9IGNoaWxkcmVuLmZpbHRlcigoYykgPT4gIXNlbGVjdGVkSWRzLmluY2x1ZGVzKGMuaWQhKSkubWFwKChjKSA9PiBjLmlkKTtcbiAgICBpZiAoc2tpcHBlZElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb250ZXh0LmFkZExvZygnc2tpcHBlZENoaWxkSWRzJywgc2tpcHBlZElkcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWROYW1lcyA9IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpLmpvaW4oJywgJyk7XG4gICAgY29udGV4dC5hZGRGbG93RGVidWdNZXNzYWdlKFxuICAgICAgJ3NlbGVjdGVkJyxcbiAgICAgIGBSdW5uaW5nICR7c2VsZWN0ZWROYW1lc30gKCR7c2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGh9IG9mICR7Y2hpbGRyZW4ubGVuZ3RofSBtYXRjaGVkKWAsXG4gICAgICB7IGNvdW50OiBzZWxlY3RlZENoaWxkcmVuLmxlbmd0aCwgdGFyZ2V0U3RhZ2U6IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpIH0sXG4gICAgKTtcblxuICAgIC8vIE5hcnJhdGl2ZTogY2FwdHVyZSB0aGUgc2VsZWN0aW9uXG4gICAgY29uc3Qgc2VsZWN0ZWREaXNwbGF5TmFtZXMgPSBzZWxlY3RlZENoaWxkcmVuLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uU2VsZWN0ZWQoXG4gICAgICBjb250ZXh0LnN0YWdlTmFtZSB8fCAnc2VsZWN0b3InLFxuICAgICAgc2VsZWN0ZWREaXNwbGF5TmFtZXMsXG4gICAgICBjaGlsZHJlbi5sZW5ndGgsXG4gICAgICB0cmF2ZXJzYWxDb250ZXh0LFxuICAgICk7XG5cbiAgICBjb25zdCB0ZW1wTm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4gPSB7XG4gICAgICBuYW1lOiAnc2VsZWN0b3ItdGVtcCcsXG4gICAgICBpZDogJ3NlbGVjdG9yLXRlbXAnLFxuICAgICAgY2hpbGRyZW46IHNlbGVjdGVkQ2hpbGRyZW4sXG4gICAgfTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTm9kZUNoaWxkcmVuKHRlbXBOb2RlLCBjb250ZXh0LCB1bmRlZmluZWQsIGJyYW5jaFBhdGgsIHRyYXZlcnNhbENvbnRleHQpO1xuICB9XG59XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hpbGRyZW5FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL2hhbmRsZXJzL0NoaWxkcmVuRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFHSCxtREFBcUQ7QUFRckQsTUFBYSxnQkFBZ0I7SUFDUDtJQUF5QztJQUE3RCxZQUFvQixJQUErQixFQUFVLFdBQXdDO1FBQWpGLFNBQUksR0FBSixJQUFJLENBQTJCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQTZCO0lBQUcsQ0FBQztJQUV6Rzs7O09BR0c7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLElBQTZCLEVBQzdCLE9BQXFCLEVBQ3JCLGVBQTBDLEVBQzFDLFVBQW1CLEVBQ25CLGdCQUFtQztRQUVuQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRXhDLGlDQUFpQztRQUNqQyxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFcEYsTUFBTSxhQUFhLEdBQThCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6RSxNQUFNLGVBQWUsR0FBRyxVQUFVLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFD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QyxJQUFJLEVBQUUsZUFBZTtZQUNyQixFQUFFLEVBQUUsZUFBZTtZQUNuQixRQUFRLEVBQUUsZ0JBQWdCO1NBQzNCLENBQUM7UUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7Q0FDRjtBQTFKRCw0Q0EwSkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoaWxkcmVuRXhlY3V0b3Ig4oCUIFBhcmFsbGVsIGZhbi1vdXQgdmlhIFByb21pc2UuYWxsU2V0dGxlZC5cbiAqXG4gKiBSZXNwb25zaWJpbGl0aWVzOlxuICogLSBFeGVjdXRlIGFsbCBjaGlsZHJlbiBpbiBwYXJhbGxlbCAoZm9yayBwYXR0ZXJuKVxuICogLSBFeGVjdXRlIHNlbGVjdGVkIGNoaWxkcmVuIGJhc2VkIG9uIHNlbGVjdG9yIG91dHB1dCAobXVsdGktY2hvaWNlKVxuICogLSBIYW5kbGUgdGhyb3R0bGluZyBlcnJvciBmbGFnZ2luZyBmb3IgcmF0ZS1saW1pdGVkIG9wZXJhdGlvbnNcbiAqIC0gQWdncmVnYXRlIHJlc3VsdHMgaW50byB7IGNoaWxkSWQ6IHsgcmVzdWx0LCBpc0Vycm9yIH0gfVxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgeyBpc1BhdXNlU2lnbmFsIH0gZnJvbSAnLi4vLi4vcGF1c2UvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RvciwgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgVHJhdmVyc2FsQ29udGV4dCB9IGZyb20gJy4uL25hcnJhdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEhhbmRsZXJEZXBzLCBOb2RlUmVzdWx0VHlwZSB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRXhlY3V0ZU5vZGVGbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGVOb2RlRm4gfTtcblxuZXhwb3J0IGNsYXNzIENoaWxkcmVuRXhlY3V0b3I8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVwczogSGFuZGxlckRlcHM8VE91dCwgVFNjb3BlPiwgcHJpdmF0ZSBleGVjdXRlTm9kZTogRXhlY3V0ZU5vZGVGbjxUT3V0LCBUU2NvcGU+KSB7fVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGFsbCBjaGlsZHJlbiBpbiBwYXJhbGxlbC4gRWFjaCBjaGlsZCBjb21taXRzIG9uIHNldHRsZS5cbiAgICogVXNlcyBQcm9taXNlLmFsbFNldHRsZWQgdG8gZW5zdXJlIGFsbCBjaGlsZHJlbiBjb21wbGV0ZSBldmVuIGlmIHNvbWUgZmFpbC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVOb2RlQ2hpbGRyZW4oXG4gICAgbm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4sXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIHBhcmVudEJyZWFrRmxhZz86IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoPzogc3RyaW5nLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIE5vZGVSZXN1bHRUeXBlPj4ge1xuICAgIGxldCBicmVha0NvdW50ID0gMDtcbiAgICBjb25zdCB0b3RhbENoaWxkcmVuID0gbm9kZS5jaGlsZHJlbj8ubGVuZ3RoID8/IDA7XG4gICAgY29uc3QgYWxsQ2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuID8/IFtdO1xuXG4gICAgLy8gTmFycmF0aXZlOiBjYXB0dXJlIHRoZSBmYW4tb3V0XG4gICAgY29uc3QgY2hpbGREaXNwbGF5TmFtZXMgPSBhbGxDaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSk7XG4gICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vbkZvcmsobm9kZS5uYW1lLCBjaGlsZERpc3BsYXlOYW1lcywgdHJhdmVyc2FsQ29udGV4dCk7XG5cbiAgICBjb25zdCBjaGlsZFByb21pc2VzOiBQcm9taXNlPE5vZGVSZXN1bHRUeXBlPltdID0gYWxsQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgY2hpbGRCcmFuY2hQYXRoID0gYnJhbmNoUGF0aCB8fCBjaGlsZC5pZDtcbiAgICAgIGNvbnN0IGNoaWxkQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlQ2hpbGQoY2hpbGRCcmFuY2hQYXRoIGFzIHN0cmluZywgY2hpbGQuaWQgYXMgc3RyaW5nLCBjaGlsZC5uYW1lLCBjaGlsZC5pZCk7XG4gICAgICBjb25zdCBjaGlsZEJyZWFrRmxhZyA9IHsgc2hvdWxkQnJlYWs6IGZhbHNlIH07XG5cbiAgICAgIGNvbnN0IHVwZGF0ZVBhcmVudEJyZWFrRmxhZyA9ICgpID0+IHtcbiAgICAgICAgaWYgKGNoaWxkQnJlYWtGbGFnLnNob3VsZEJyZWFrKSBicmVha0NvdW50ICs9IDE7XG4gICAgICAgIGlmIChwYXJlbnRCcmVha0ZsYWcgJiYgYnJlYWtDb3VudCA9PT0gdG90YWxDaGlsZHJlbikgcGFyZW50QnJlYWtGbGFnLnNob3VsZEJyZWFrID0gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGVOb2RlKGNoaWxkLCBjaGlsZENvbnRleHQsIGNoaWxkQnJlYWtGbGFnLCBjaGlsZEJyYW5jaFBhdGgpXG4gICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBjaGlsZENvbnRleHQuY29tbWl0KCk7XG4gICAgICAgICAgdXBkYXRlUGFyZW50QnJlYWtGbGFnKCk7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IGNoaWxkLmlkISwgcmVzdWx0LCBpc0Vycm9yOiBmYWxzZSB9O1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgLy8gUGF1c2VTaWduYWwgaXMgZXhwZWN0ZWQgY29udHJvbCBmbG93IOKAlCByZS10aHJvdyBpbW1lZGlhdGVseS5cbiAgICAgICAgICBpZiAoaXNQYXVzZVNpZ25hbChlcnJvcikpIHRocm93IGVycm9yO1xuICAgICAgICAgIGNoaWxkQ29udGV4dC5jb21taXQoKTtcbiAgICAgICAgICB1cGRhdGVQYXJlbnRCcmVha0ZsYWcoKTtcbiAgICAgICAgICB0aGlzLmRlcHMubG9nZ2VyLmluZm8oYFRSRUUgUElQRUxJTkU6IGV4ZWN1dGVOb2RlQ2hpbGRyZW4gLSBFcnJvciBmb3IgaWQ6ICR7Y2hpbGQ/LmlkfWAsIHsgZXJyb3IgfSk7XG4gICAgICAgICAgaWYgKHRoaXMuZGVwcy50aHJvdHRsaW5nRXJyb3JDaGVja2VyICYmIHRoaXMuZGVwcy50aHJvdHRsaW5nRXJyb3JDaGVja2VyKGVycm9yKSkge1xuICAgICAgICAgICAgY2hpbGRDb250ZXh0LnVwZGF0ZU9iamVjdChbJ21vbml0b3InXSwgJ2lzVGhyb3R0bGVkJywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IGlkOiBjaGlsZC5pZCEsIHJlc3VsdDogZXJyb3IsIGlzRXJyb3I6IHRydWUgfTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjaGlsZHJlblJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIE5vZGVSZXN1bHRUeXBlPiA9IHt9O1xuXG4gICAgaWYgKG5vZGUuZmFpbEZhc3QpIHtcbiAgICAgIC8vIEZhaWwtZmFzdDogZmlyc3QgY2hpbGQgZXJyb3IgcmVqZWN0cyBpbW1lZGlhdGVseSAodW53cmFwcGVkKVxuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkLCBpKSA9PlxuICAgICAgICAgIGNoaWxkUHJvbWlzZXNbaV0udGhlbigocikgPT4ge1xuICAgICAgICAgICAgaWYgKHIuaXNFcnJvcikgdGhyb3cgci5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHsgaWQsIHJlc3VsdCwgaXNFcnJvciB9IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgY2hpbGRyZW5SZXN1bHRzW2lkXSA9IHsgaWQsIHJlc3VsdCwgaXNFcnJvcjogaXNFcnJvciA/PyBmYWxzZSB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZWZhdWx0OiBydW4gYWxsIGNoaWxkcmVuIHRvIGNvbXBsZXRpb24gZXZlbiBpZiBzb21lIGZhaWxcbiAgICAgIGNvbnN0IHNldHRsZWQgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoY2hpbGRQcm9taXNlcyk7XG4gICAgICBsZXQgcGF1c2VTaWduYWw6IHVua25vd247XG4gICAgICBzZXR0bGVkLmZvckVhY2goKHMpID0+IHtcbiAgICAgICAgaWYgKHMuc3RhdHVzID09PSAnZnVsZmlsbGVkJykge1xuICAgICAgICAgIGNvbnN0IHsgaWQsIHJlc3VsdCwgaXNFcnJvciB9ID0gcy52YWx1ZTtcbiAgICAgICAgICBjaGlsZHJlblJlc3VsdHNbaWRdID0geyBpZCwgcmVzdWx0LCBpc0Vycm9yOiBpc0Vycm9yID8/IGZhbHNlIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQYXVzZVNpZ25hbChzLnJlYXNvbikpIHtcbiAgICAgICAgICAvLyBQYXVzZVNpZ25hbCBmcm9tIGEgY2hpbGQg4oCUIHJlLXRocm93IGFmdGVyIGFsbCBjaGlsZHJlbiBzZXR0bGUuXG4gICAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3Qgc2lnbmFsIGlmIG11bHRpcGxlIGNoaWxkcmVuIHBhdXNlLlxuICAgICAgICAgIHBhdXNlU2lnbmFsID8/PSBzLnJlYXNvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFeGVjdXRpb24gZmFpbGVkOiAke3MucmVhc29ufWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vIFJlLXRocm93IFBhdXNlU2lnbmFsIGFmdGVyIGFsbCBjaGlsZHJlbiBoYXZlIHNldHRsZWRcbiAgICAgIGlmIChwYXVzZVNpZ25hbCkgdGhyb3cgcGF1c2VTaWduYWw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkcmVuUmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHNlbGVjdGVkIGNoaWxkcmVuIGJhc2VkIG9uIHNlbGVjdG9yIHJlc3VsdC5cbiAgICogVmFsaWRhdGVzIElEcywgcmVjb3JkcyBzZWxlY3Rpb24gaW5mbywgdGhlbiBkZWxlZ2F0ZXMgdG8gZXhlY3V0ZU5vZGVDaGlsZHJlbi5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVTZWxlY3RlZENoaWxkcmVuKFxuICAgIHNlbGVjdG9yOiBTZWxlY3RvcixcbiAgICBjaGlsZHJlbjogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT5bXSxcbiAgICBpbnB1dDogYW55LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTm9kZVJlc3VsdFR5cGU+PiB7XG4gICAgY29uc3Qgc2VsZWN0b3JSZXN1bHQgPSBhd2FpdCBzZWxlY3RvcihpbnB1dCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBBcnJheS5pc0FycmF5KHNlbGVjdG9yUmVzdWx0KSA/IHNlbGVjdG9yUmVzdWx0IDogW3NlbGVjdG9yUmVzdWx0XTtcblxuICAgIGNvbnRleHQuYWRkTG9nKCdzZWxlY3RlZENoaWxkSWRzJywgc2VsZWN0ZWRJZHMpO1xuICAgIGNvbnRleHQuYWRkTG9nKCdzZWxlY3RvclBhdHRlcm4nLCAnbXVsdGktY2hvaWNlJyk7XG5cbiAgICBpZiAoc2VsZWN0ZWRJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250ZXh0LmFkZExvZygnc2tpcHBlZEFsbENoaWxkcmVuJywgdHJ1ZSk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRDaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcigoYykgPT4gc2VsZWN0ZWRJZHMuaW5jbHVkZXMoYy5pZCEpKTtcblxuICAgIC8vIFZhbGlkYXRlIGFsbCBJRHMgZXhpc3QgKGZhaWwgZmFzdClcbiAgICBpZiAoc2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGggIT09IHNlbGVjdGVkSWRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgY2hpbGRJZHMgPSBjaGlsZHJlbi5tYXAoKGMpID0+IGMuaWQpO1xuICAgICAgY29uc3QgbWlzc2luZyA9IHNlbGVjdGVkSWRzLmZpbHRlcigoaWQpID0+ICFjaGlsZElkcy5pbmNsdWRlcyhpZCkpO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFNlbGVjdG9yIHJldHVybmVkIHVua25vd24gY2hpbGQgSURzOiAke21pc3Npbmcuam9pbignLCAnKX0uIEF2YWlsYWJsZTogJHtjaGlsZElkcy5qb2luKFxuICAgICAgICAnLCAnLFxuICAgICAgKX1gO1xuICAgICAgdGhpcy5kZXBzLmxvZ2dlci5lcnJvcihgRXJyb3IgaW4gcGlwZWxpbmUgKCR7YnJhbmNoUGF0aH0pOmAsIHsgZXJyb3I6IGVycm9yTWVzc2FnZSB9KTtcbiAgICAgIGNvbnRleHQuYWRkRXJyb3IoJ3NlbGVjdG9yRXJyb3InLCBlcnJvck1lc3NhZ2UpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2tpcHBlZElkcyA9IGNoaWxkcmVuLmZpbHRlcigoYykgPT4gIXNlbGVjdGVkSWRzLmluY2x1ZGVzKGMuaWQhKSkubWFwKChjKSA9PiBjLmlkKTtcbiAgICBpZiAoc2tpcHBlZElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb250ZXh0LmFkZExvZygnc2tpcHBlZENoaWxkSWRzJywgc2tpcHBlZElkcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWROYW1lcyA9IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpLmpvaW4oJywgJyk7XG4gICAgY29udGV4dC5hZGRGbG93RGVidWdNZXNzYWdlKFxuICAgICAgJ3NlbGVjdGVkJyxcbiAgICAgIGBSdW5uaW5nICR7c2VsZWN0ZWROYW1lc30gKCR7c2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGh9IG9mICR7Y2hpbGRyZW4ubGVuZ3RofSBtYXRjaGVkKWAsXG4gICAgICB7IGNvdW50OiBzZWxlY3RlZENoaWxkcmVuLmxlbmd0aCwgdGFyZ2V0U3RhZ2U6IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpIH0sXG4gICAgKTtcblxuICAgIC8vIE5hcnJhdGl2ZTogY2FwdHVyZSB0aGUgc2VsZWN0aW9uXG4gICAgY29uc3Qgc2VsZWN0ZWREaXNwbGF5TmFtZXMgPSBzZWxlY3RlZENoaWxkcmVuLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uU2VsZWN0ZWQoXG4gICAgICBjb250ZXh0LnN0YWdlTmFtZSB8fCAnc2VsZWN0b3InLFxuICAgICAgc2VsZWN0ZWREaXNwbGF5TmFtZXMsXG4gICAgICBjaGlsZHJlbi5sZW5ndGgsXG4gICAgICB0cmF2ZXJzYWxDb250ZXh0LFxuICAgICk7XG5cbiAgICBjb25zdCB0ZW1wTm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4gPSB7XG4gICAgICBuYW1lOiAnc2VsZWN0b3ItdGVtcCcsXG4gICAgICBpZDogJ3NlbGVjdG9yLXRlbXAnLFxuICAgICAgY2hpbGRyZW46IHNlbGVjdGVkQ2hpbGRyZW4sXG4gICAgfTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTm9kZUNoaWxkcmVuKHRlbXBOb2RlLCBjb250ZXh0LCB1bmRlZmluZWQsIGJyYW5jaFBhdGgsIHRyYXZlcnNhbENvbnRleHQpO1xuICB9XG59XG4iXX0=
@@ -14,16 +14,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.ContinuationResolver = exports.DEFAULT_MAX_ITERATIONS = void 0;
15
15
  exports.DEFAULT_MAX_ITERATIONS = 1000;
16
16
  class ContinuationResolver {
17
+ deps;
18
+ nodeResolver;
19
+ /**
20
+ * Iteration counter per node ID.
21
+ * Key: node.id, Value: visit count (0 = first visit).
22
+ */
23
+ iterationCounters = new Map();
24
+ onIterationUpdate;
25
+ maxIterations;
17
26
  constructor(deps, nodeResolver, onIterationUpdate, maxIterations) {
18
27
  this.deps = deps;
19
28
  this.nodeResolver = nodeResolver;
20
- /**
21
- * Iteration counter per node ID.
22
- * Key: node.id, Value: visit count (0 = first visit).
23
- */
24
- this.iterationCounters = new Map();
25
29
  this.onIterationUpdate = onIterationUpdate;
26
- this.maxIterations = maxIterations !== null && maxIterations !== void 0 ? maxIterations : exports.DEFAULT_MAX_ITERATIONS;
30
+ this.maxIterations = maxIterations ?? exports.DEFAULT_MAX_ITERATIONS;
27
31
  }
28
32
  /**
29
33
  * Resolve a dynamic continuation.
@@ -101,8 +105,7 @@ class ContinuationResolver {
101
105
  * Throws if maxIterations exceeded (infinite loop guard).
102
106
  */
103
107
  getAndIncrementIteration(nodeId) {
104
- var _a;
105
- const current = (_a = this.iterationCounters.get(nodeId)) !== null && _a !== void 0 ? _a : 0;
108
+ const current = this.iterationCounters.get(nodeId) ?? 0;
106
109
  if (current >= this.maxIterations) {
107
110
  throw new Error(`Maximum loop iterations (${this.maxIterations}) exceeded for node '${nodeId}'. ` +
108
111
  'Set maxIterations to increase the limit.');
@@ -122,4 +125,4 @@ class ContinuationResolver {
122
125
  }
123
126
  }
124
127
  exports.ContinuationResolver = ContinuationResolver;
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGludWF0aW9uUmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9Db250aW51YXRpb25SZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7R0FVRzs7O0FBU1UsUUFBQSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFFM0MsTUFBYSxvQkFBb0I7SUFVL0IsWUFDbUIsSUFBK0IsRUFDL0IsWUFBd0MsRUFDekQsaUJBQTJELEVBQzNELGFBQXNCO1FBSEwsU0FBSSxHQUFKLElBQUksQ0FBMkI7UUFDL0IsaUJBQVksR0FBWixZQUFZLENBQTRCO1FBWDNEOzs7V0FHRztRQUNLLHNCQUFpQixHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBV3pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsYUFBYixhQUFhLGNBQWIsYUFBYSxHQUFJLDhCQUFzQixDQUFDO0lBQy9ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FDWCxXQUE2QyxFQUM3QyxJQUE2QixFQUM3QixPQUFxQixFQUNyQixTQUFtQyxFQUNuQyxVQUE4QixFQUM5QixXQUF3QyxFQUN4QyxnQkFBbUM7UUFFbkMsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FDL0IsV0FBVyxFQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsZ0JBQWdCLENBQ2pCLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdB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QUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQ3RELE9BQU8sU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0NBQ0Y7QUE5S0Qsb0RBOEtDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250aW51YXRpb25SZXNvbHZlciDigJQgQmFjay1lZGdlIHJlc29sdXRpb24gKyBpdGVyYXRpb24gY291bnRpbmcuXG4gKlxuICogUmVzb2x2ZXMgZHluYW1pYyBjb250aW51YXRpb25zIChsb29wLWJhY2tzLCBkeW5hbWljIG5leHQpIGFuZCB0cmFja3NcbiAqIHBlci1ub2RlIGl0ZXJhdGlvbiBjb3VudHMgZm9yIGNvbnRleHQgdHJlZSBuYW1pbmcuXG4gKlxuICogU3VwcG9ydHMgdGhyZWUgZHluYW1pY05leHQgcGF0dGVybnM6XG4gKiAtIFN0cmluZyBJRCDihpIgcmVmZXJlbmNlIHRvIGV4aXN0aW5nIG5vZGUgKHJlc29sdmUgdmlhIE5vZGVSZXNvbHZlcilcbiAqIC0gU3RhZ2VOb2RlIHdpdGggZm4g4oaSIHRydWx5IGR5bmFtaWMgbm9kZSAoZXhlY3V0ZSBkaXJlY3RseSlcbiAqIC0gU3RhZ2VOb2RlIHdpdGhvdXQgZm4g4oaSIHJlZmVyZW5jZSBieSBJRCAocmVzb2x2ZSB2aWEgTm9kZVJlc29sdmVyKVxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWdlTm9kZSB9IGZyb20gJy4uL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFRyYXZlcnNhbENvbnRleHQgfSBmcm9tICcuLi9uYXJyYXRpdmUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyRGVwcyB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgTm9kZVJlc29sdmVyIH0gZnJvbSAnLi9Ob2RlUmVzb2x2ZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRlTm9kZUZuIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9JVEVSQVRJT05TID0gMTAwMDtcblxuZXhwb3J0IGNsYXNzIENvbnRpbnVhdGlvblJlc29sdmVyPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4ge1xuICAvKipcbiAgICogSXRlcmF0aW9uIGNvdW50ZXIgcGVyIG5vZGUgSUQuXG4gICAqIEtleTogbm9kZS5pZCwgVmFsdWU6IHZpc2l0IGNvdW50ICgwID0gZmlyc3QgdmlzaXQpLlxuICAgKi9cbiAgcHJpdmF0ZSBpdGVyYXRpb25Db3VudGVyczogTWFwPHN0cmluZywgbnVtYmVyPiA9IG5ldyBNYXAoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9uSXRlcmF0aW9uVXBkYXRlPzogKG5vZGVJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyKSA9PiB2b2lkO1xuICBwcml2YXRlIHJlYWRvbmx5IG1heEl0ZXJhdGlvbnM6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlcHM6IEhhbmRsZXJEZXBzPFRPdXQsIFRTY29wZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBub2RlUmVzb2x2ZXI6IE5vZGVSZXNvbHZlcjxUT3V0LCBUU2NvcGU+LFxuICAgIG9uSXRlcmF0aW9uVXBkYXRlPzogKG5vZGVJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLFxuICAgIG1heEl0ZXJhdGlvbnM/OiBudW1iZXIsXG4gICkge1xuICAgIHRoaXMub25JdGVyYXRpb25VcGRhdGUgPSBvbkl0ZXJhdGlvblVwZGF0ZTtcbiAgICB0aGlzLm1heEl0ZXJhdGlvbnMgPSBtYXhJdGVyYXRpb25zID8/IERFRkFVTFRfTUFYX0lURVJBVElPTlM7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBhIGR5bmFtaWMgY29udGludWF0aW9uLlxuICAgKiBEaXNwYXRjaGVzIHRvIGhhbmRsZVN0cmluZ1JlZmVyZW5jZSwgaGFuZGxlRGlyZWN0Tm9kZSwgb3IgaGFuZGxlTm9kZVJlZmVyZW5jZVxuICAgKiBiYXNlZCBvbiB0aGUgZHluYW1pY05leHQgdHlwZS5cbiAgICovXG4gIGFzeW5jIHJlc29sdmUoXG4gICAgZHluYW1pY05leHQ6IHN0cmluZyB8IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmVha0ZsYWc6IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZXhlY3V0ZU5vZGU6IEV4ZWN1dGVOb2RlRm48VE91dCwgVFNjb3BlPixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodHlwZW9mIGR5bmFtaWNOZXh0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlU3RyaW5nUmVmZXJlbmNlKFxuICAgICAgICBkeW5hbWljTmV4dCxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgYnJlYWtGbGFnLFxuICAgICAgICBicmFuY2hQYXRoLFxuICAgICAgICBleGVjdXRlTm9kZSxcbiAgICAgICAgdHJhdmVyc2FsQ29udGV4dCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGR5bmFtaWNOZXh0LmZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVEaXJlY3ROb2RlKGR5bmFtaWNOZXh0LCBjb250ZXh0LCBicmVha0ZsYWcsIGJyYW5jaFBhdGgsIGV4ZWN1dGVOb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOb2RlUmVmZXJlbmNlKGR5bmFtaWNOZXh0LCBub2RlLCBjb250ZXh0LCBicmVha0ZsYWcsIGJyYW5jaFBhdGgsIGV4ZWN1dGVOb2RlLCB0cmF2ZXJzYWxDb250ZXh0KTtcbiAgfVxuXG4gIC8qKiBkeW5hbWljTmV4dCBpcyBhIHN0cmluZyBJRCDihpIgcmVzb2x2ZSBmcm9tIGdyYXBoLCB0cmFjayBpdGVyYXRpb24uICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU3RyaW5nUmVmZXJlbmNlKFxuICAgIG5vZGVJZDogc3RyaW5nLFxuICAgIGN1cnJlbnROb2RlOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPixcbiAgICBjb250ZXh0OiBTdGFnZUNvbnRleHQsXG4gICAgYnJlYWtGbGFnOiB7IHNob3VsZEJyZWFrOiBib29sZWFuIH0sXG4gICAgYnJhbmNoUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGV4ZWN1dGVOb2RlOiBFeGVjdXRlTm9kZUZuPFRPdXQsIFRTY29wZT4sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdGFyZ2V0Tm9kZSA9IHRoaXMubm9kZVJlc29sdmVyLmZpbmROb2RlQnlJZChub2RlSWQpO1xuICAgIGlmICghdGFyZ2V0Tm9kZSkge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYGR5bmFtaWNOZXh0IHRhcmdldCBub2RlIG5vdCBmb3VuZDogJHtub2RlSWR9YDtcbiAgICAgIHRoaXMuZGVwcy5sb2dnZXIuZXJyb3IoYEVycm9yIGluIHBpcGVsaW5lICgke2JyYW5jaFBhdGh9KSBzdGFnZSBbJHtjdXJyZW50Tm9kZS5uYW1lfV06YCwgeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlcmF0aW9uID0gdGhpcy5nZXRBbmRJbmNyZW1lbnRJdGVyYXRpb24obm9kZUlkKTtcbiAgICBjb25zdCBpdGVyYXRlZFN0YWdlTmFtZSA9IHRoaXMuZ2V0SXRlcmF0ZWRTdGFnZU5hbWUodGFyZ2V0Tm9kZS5uYW1lLCBpdGVyYXRpb24pO1xuICAgIGNvbnRleHQuYWRkTG9nKCdkeW5hbWljTmV4dFRhcmdldCcsIG5vZGVJZCk7XG4gICAgY29udGV4dC5hZGRMb2coJ2R5bmFtaWNOZXh0SXRlcmF0aW9uJywgaXRlcmF0aW9uKTtcblxuICAgIGNvbnRleHQuYWRkRmxvd0RlYnVnTWVzc2FnZSgnbG9vcCcsIGBMb29waW5nIGJhY2sgdG8gJHt0YXJnZXROb2RlLm5hbWV9IChpdGVyYXRpb24gJHtpdGVyYXRpb24gKyAxfSlgLCB7XG4gICAgICB0YXJnZXRTdGFnZTogdGFyZ2V0Tm9kZS5uYW1lLFxuICAgICAgaXRlcmF0aW9uOiBpdGVyYXRpb24gKyAxLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vbkxvb3AodGFyZ2V0Tm9kZS5uYW1lLCBpdGVyYXRpb24gKyAxLCB0YXJnZXROb2RlLmRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0KTtcblxuICAgIGNvbnN0IG5leHRTdGFnZUNvbnRleHQgPSBjb250ZXh0LmNyZWF0ZU5leHQoYnJhbmNoUGF0aCBhcyBzdHJpbmcsIGl0ZXJhdGVkU3RhZ2VOYW1lLCB0YXJnZXROb2RlLmlkKTtcbiAgICByZXR1cm4gZXhlY3V0ZU5vZGUodGFyZ2V0Tm9kZSwgbmV4dFN0YWdlQ29udGV4dCwgYnJlYWtGbGFnLCBicmFuY2hQYXRoKTtcbiAgfVxuXG4gIC8qKiBkeW5hbWljTmV4dCBpcyBhIFN0YWdlTm9kZSB3aXRoIGZuIOKGkiBleGVjdXRlIGRpcmVjdGx5ICh0cnVseSBkeW5hbWljKS4gKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVEaXJlY3ROb2RlKFxuICAgIGR5bmFtaWNOb2RlOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPixcbiAgICBjb250ZXh0OiBTdGFnZUNvbnRleHQsXG4gICAgYnJlYWtGbGFnOiB7IHNob3VsZEJyZWFrOiBib29sZWFuIH0sXG4gICAgYnJhbmNoUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGV4ZWN1dGVOb2RlOiBFeGVjdXRlTm9kZUZuPFRPdXQsIFRTY29wZT4sXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29udGV4dC5hZGRMb2coJ2R5bmFtaWNOZXh0RGlyZWN0JywgdHJ1ZSk7XG4gICAgY29udGV4dC5hZGRMb2coJ2R5bmFtaWNOZXh0TmFtZScsIGR5bmFtaWNOb2RlLm5hbWUpO1xuXG4gICAgY29udGV4dC5hZGRGbG93RGVidWdNZXNzYWdlKCduZXh0JywgYE1vdmluZyB0byAke2R5bmFtaWNOb2RlLm5hbWV9IHN0YWdlIChkeW5hbWljKWAsIHtcbiAgICAgIHRhcmdldFN0YWdlOiBkeW5hbWljTm9kZS5uYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbmV4dFN0YWdlQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlTmV4dChicmFuY2hQYXRoIGFzIHN0cmluZywgZHluYW1pY05vZGUubmFtZSwgZHluYW1pY05vZGUuaWQpO1xuICAgIHJldHVybiBleGVjdXRlTm9kZShkeW5hbWljTm9kZSwgbmV4dFN0YWdlQ29udGV4dCwgYnJlYWtGbGFnLCBicmFuY2hQYXRoKTtcbiAgfVxuXG4gIC8qKiBkeW5hbWljTmV4dCBpcyBhIFN0YWdlTm9kZSB3aXRob3V0IGZuIOKGkiByZWZlcmVuY2UgYnkgSUQsIHJlc29sdmUgKyB0cmFjayBpdGVyYXRpb24uICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlTm9kZVJlZmVyZW5jZShcbiAgICBkeW5hbWljTm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4sXG4gICAgY3VycmVudE5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmVha0ZsYWc6IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZXhlY3V0ZU5vZGU6IEV4ZWN1dGVOb2RlRm48VE91dCwgVFNjb3BlPixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBuZXh0Tm9kZUlkID0gZHluYW1pY05vZGUuaWQ7XG4gICAgaWYgKCFuZXh0Tm9kZUlkKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSAnZHluYW1pY05leHQgbm9kZSBtdXN0IGhhdmUgYW4gaWQgd2hlbiB1c2VkIGFzIHJlZmVyZW5jZSc7XG4gICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFcnJvciBpbiBwaXBlbGluZSAoJHticmFuY2hQYXRofSkgc3RhZ2UgWyR7Y3VycmVudE5vZGUubmFtZX1dOmAsIHsgZXJyb3I6IGVycm9yTWVzc2FnZSB9KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0aGlzLm5vZGVSZXNvbHZlci5maW5kTm9kZUJ5SWQobmV4dE5vZGVJZCk7XG4gICAgaWYgKCF0YXJnZXROb2RlKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgZHluYW1pY05leHQgdGFyZ2V0IG5vZGUgbm90IGZvdW5kOiAke25leHROb2RlSWR9YDtcbiAgICAgIHRoaXMuZGVwcy5sb2dnZXIuZXJyb3IoYEVycm9yIGluIHBpcGVsaW5lICgke2JyYW5jaFBhdGh9KSBzdGFnZSBbJHtjdXJyZW50Tm9kZS5uYW1lfV06YCwgeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlcmF0aW9uID0gdGhpcy5nZXRBbmRJbmNyZW1lbnRJdGVyYXRpb24obmV4dE5vZGVJZCk7XG4gICAgY29uc3QgaXRlcmF0ZWRTdGFnZU5hbWUgPSB0aGlzLmdldEl0ZXJhdGVkU3RhZ2VOYW1lKHRhcmdldE5vZGUubmFtZSwgaXRlcmF0aW9uKTtcbiAgICBjb250ZXh0LmFkZExvZygnZHluYW1pY05leHRUYXJnZXQnLCBuZXh0Tm9kZUlkKTtcbiAgICBjb250ZXh0LmFkZExvZygnZHluYW1pY05leHRJdGVyYXRpb24nLCBpdGVyYXRpb24pO1xuXG4gICAgY29udGV4dC5hZGRGbG93RGVidWdNZXNzYWdlKCdsb29wJywgYExvb3BpbmcgYmFjayB0byAke3RhcmdldE5vZGUubmFtZX0gKGl0ZXJhdGlvbiAke2l0ZXJhdGlvbiArIDF9KWAsIHtcbiAgICAgIHRhcmdldFN0YWdlOiB0YXJnZXROb2RlLm5hbWUsXG4gICAgICBpdGVyYXRpb246IGl0ZXJhdGlvbiArIDEsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uTG9vcCh0YXJnZXROb2RlLm5hbWUsIGl0ZXJhdGlvbiArIDEsIHRhcmdldE5vZGUuZGVzY3JpcHRpb24sIHRyYXZlcnNhbENvbnRleHQpO1xuXG4gICAgY29uc3QgbmV4dFN0YWdlQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlTmV4dChicmFuY2hQYXRoIGFzIHN0cmluZywgaXRlcmF0ZWRTdGFnZU5hbWUsIHRhcmdldE5vZGUuaWQpO1xuICAgIHJldHVybiBleGVjdXRlTm9kZSh0YXJnZXROb2RlLCBuZXh0U3RhZ2VDb250ZXh0LCBicmVha0ZsYWcsIGJyYW5jaFBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmV4dCBpdGVyYXRpb24gbnVtYmVyIGZvciBhIG5vZGUgYW5kIGluY3JlbWVudC5cbiAgICogUmV0dXJucyAwIGZvciBmaXJzdCB2aXNpdCwgMSBmb3Igc2Vjb25kLCBldGMuXG4gICAqIFRocm93cyBpZiBtYXhJdGVyYXRpb25zIGV4Y2VlZGVkIChpbmZpbml0ZSBsb29wIGd1YXJkKS5cbiAgICovXG4gIGdldEFuZEluY3JlbWVudEl0ZXJhdGlvbihub2RlSWQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuaXRlcmF0aW9uQ291bnRlcnMuZ2V0KG5vZGVJZCkgPz8gMDtcbiAgICBpZiAoY3VycmVudCA+PSB0aGlzLm1heEl0ZXJhdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE1heGltdW0gbG9vcCBpdGVyYXRpb25zICgke3RoaXMubWF4SXRlcmF0aW9uc30pIGV4Y2VlZGVkIGZvciBub2RlICcke25vZGVJZH0nLiBgICtcbiAgICAgICAgICAnU2V0IG1heEl0ZXJhdGlvbnMgdG8gaW5jcmVhc2UgdGhlIGxpbWl0LicsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLml0ZXJhdGlvbkNvdW50ZXJzLnNldChub2RlSWQsIGN1cnJlbnQgKyAxKTtcblxuICAgIGlmICh0aGlzLm9uSXRlcmF0aW9uVXBkYXRlKSB7XG4gICAgICB0aGlzLm9uSXRlcmF0aW9uVXBkYXRlKG5vZGVJZCwgY3VycmVudCArIDEpO1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGFuIGl0ZXJhdGVkIHN0YWdlIG5hbWUgZm9yIGNvbnRleHQgdHJlZS5cbiAgICogRmlyc3QgdmlzaXQ6IFwiYXNrTExNXCIsIHNlY29uZDogXCJhc2tMTE0uMVwiLCB0aGlyZDogXCJhc2tMTE0uMlwiLlxuICAgKi9cbiAgZ2V0SXRlcmF0ZWRTdGFnZU5hbWUoYmFzZU5hbWU6IHN0cmluZywgaXRlcmF0aW9uOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVyYXRpb24gPT09IDAgPyBiYXNlTmFtZSA6IGAke2Jhc2VOYW1lfS4ke2l0ZXJhdGlvbn1gO1xuICB9XG59XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGludWF0aW9uUmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9Db250aW51YXRpb25SZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7R0FVRzs7O0FBU1UsUUFBQSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFFM0MsTUFBYSxvQkFBb0I7SUFXWjtJQUNBO0lBWG5COzs7T0FHRztJQUNLLGlCQUFpQixHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTFDLGlCQUFpQixDQUEyQztJQUM1RCxhQUFhLENBQVM7SUFFdkMsWUFDbUIsSUFBK0IsRUFDL0IsWUFBd0MsRUFDekQsaUJBQTJELEVBQzNELGFBQXNCO1FBSEwsU0FBSSxHQUFKLElBQUksQ0FBMkI7UUFDL0IsaUJBQVksR0FBWixZQUFZLENBQTRCO1FBSXpELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsSUFBSSw4QkFBc0IsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQ1gsV0FBNkMsRUFDN0MsSUFBNkIsRUFDN0IsT0FBcUIsRUFDckIsU0FBbUMsRUFDbkMsVUFBOEIsRUFDOUIsV0FBd0MsRUFDeEMsZ0JBQW1DO1FBRW5DLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQy9CLFdBQVcsRUFDWCxJQUFJLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLGdCQUFnQixDQUNqQixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsd0VBQXdFO0lBQ2hFLEtBQUssQ0FBQyxxQkFBcUIsQ0FDakMsTUFBYyxFQUNkLFdBQW9DLEVBQ3BDLE9BQXFCLEVBQ3JCLFNBQW1DLEVBQ25DLFVBQThCLEVBQzlCLFdBQXdDLEVBQ3hDLGdCQUFtQztRQUVuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxZQUFZLEdBQUcsc0NBQXNDLE1BQU0sRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsVUFBVSxZQUFZLFdBQVcsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ2xILE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVsRCxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixVQUFVLENBQUMsSUFBSSxlQUFlLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNyRyxXQUFXLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDNUIsU0FBUyxFQUFFLFNBQVMsR0FBRyxDQUFDO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFOUcsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQW9CLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELDZFQUE2RTtJQUNyRSxLQUFLLENBQUMsZ0JBQWdCLENBQzVCLFdBQW9DLEVBQ3BDLE9BQXFCLEVBQ3JCLFNBQW1DLEVBQ25DLFVBQThCLEVBQzlCLFdBQXdDO1FBRXhDLE9BQU8sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEQsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxhQUFhLFdBQVcsQ0FBQyxJQUFJLGtCQUFrQixFQUFFO1lBQ25GLFdBQVcsRUFBRSxXQUFXLENBQUMsSUFBSTtTQUM5QixDQUFDLENBQUM7UUFFSCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBb0IsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRyxPQUFPLFdBQVcsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCwwRkFBMEY7SUFDbEYsS0FBSyxDQUFDLG1CQUFtQixDQUMvQixXQUFvQyxFQUNwQyxXQUFvQyxFQUNwQyxPQUFxQixFQUNyQixTQUFtQyxFQUNuQyxVQUE4QixFQUM5QixXQUF3QyxFQUN4QyxnQkFBbUM7UUFFbkMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxZQUFZLEdBQUcseURBQXlELENBQUM7WUFDL0UsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixVQUFVLFlBQVksV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDbEgsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sWUFBWSxHQUFHLHNDQUFzQyxVQUFVLEVBQUUsQ0FBQztZQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLFVBQVUsWUFBWSxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNsSCxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRixPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFbEQsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxtQkFBbUIsVUFBVSxDQUFDLElBQUksZUFBZSxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDckcsV0FBVyxFQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQzVCLFNBQVMsRUFBRSxTQUFTLEdBQUcsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTlHLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFvQixFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRyxPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsd0JBQXdCLENBQUMsTUFBYztRQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FDYiw0QkFBNEIsSUFBSSxDQUFDLGFBQWEsd0JBQXdCLE1BQU0sS0FBSztnQkFDL0UsMENBQTBDLENBQzdDLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWhELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQ3RELE9BQU8sU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0NBQ0Y7QUE5S0Qsb0RBOEtDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250aW51YXRpb25SZXNvbHZlciDigJQgQmFjay1lZGdlIHJlc29sdXRpb24gKyBpdGVyYXRpb24gY291bnRpbmcuXG4gKlxuICogUmVzb2x2ZXMgZHluYW1pYyBjb250aW51YXRpb25zIChsb29wLWJhY2tzLCBkeW5hbWljIG5leHQpIGFuZCB0cmFja3NcbiAqIHBlci1ub2RlIGl0ZXJhdGlvbiBjb3VudHMgZm9yIGNvbnRleHQgdHJlZSBuYW1pbmcuXG4gKlxuICogU3VwcG9ydHMgdGhyZWUgZHluYW1pY05leHQgcGF0dGVybnM6XG4gKiAtIFN0cmluZyBJRCDihpIgcmVmZXJlbmNlIHRvIGV4aXN0aW5nIG5vZGUgKHJlc29sdmUgdmlhIE5vZGVSZXNvbHZlcilcbiAqIC0gU3RhZ2VOb2RlIHdpdGggZm4g4oaSIHRydWx5IGR5bmFtaWMgbm9kZSAoZXhlY3V0ZSBkaXJlY3RseSlcbiAqIC0gU3RhZ2VOb2RlIHdpdGhvdXQgZm4g4oaSIHJlZmVyZW5jZSBieSBJRCAocmVzb2x2ZSB2aWEgTm9kZVJlc29sdmVyKVxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWdlTm9kZSB9IGZyb20gJy4uL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFRyYXZlcnNhbENvbnRleHQgfSBmcm9tICcuLi9uYXJyYXRpdmUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyRGVwcyB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgTm9kZVJlc29sdmVyIH0gZnJvbSAnLi9Ob2RlUmVzb2x2ZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRlTm9kZUZuIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9JVEVSQVRJT05TID0gMTAwMDtcblxuZXhwb3J0IGNsYXNzIENvbnRpbnVhdGlvblJlc29sdmVyPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4ge1xuICAvKipcbiAgICogSXRlcmF0aW9uIGNvdW50ZXIgcGVyIG5vZGUgSUQuXG4gICAqIEtleTogbm9kZS5pZCwgVmFsdWU6IHZpc2l0IGNvdW50ICgwID0gZmlyc3QgdmlzaXQpLlxuICAgKi9cbiAgcHJpdmF0ZSBpdGVyYXRpb25Db3VudGVyczogTWFwPHN0cmluZywgbnVtYmVyPiA9IG5ldyBNYXAoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9uSXRlcmF0aW9uVXBkYXRlPzogKG5vZGVJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyKSA9PiB2b2lkO1xuICBwcml2YXRlIHJlYWRvbmx5IG1heEl0ZXJhdGlvbnM6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlcHM6IEhhbmRsZXJEZXBzPFRPdXQsIFRTY29wZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBub2RlUmVzb2x2ZXI6IE5vZGVSZXNvbHZlcjxUT3V0LCBUU2NvcGU+LFxuICAgIG9uSXRlcmF0aW9uVXBkYXRlPzogKG5vZGVJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyKSA9PiB2b2lkLFxuICAgIG1heEl0ZXJhdGlvbnM/OiBudW1iZXIsXG4gICkge1xuICAgIHRoaXMub25JdGVyYXRpb25VcGRhdGUgPSBvbkl0ZXJhdGlvblVwZGF0ZTtcbiAgICB0aGlzLm1heEl0ZXJhdGlvbnMgPSBtYXhJdGVyYXRpb25zID8/IERFRkFVTFRfTUFYX0lURVJBVElPTlM7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBhIGR5bmFtaWMgY29udGludWF0aW9uLlxuICAgKiBEaXNwYXRjaGVzIHRvIGhhbmRsZVN0cmluZ1JlZmVyZW5jZSwgaGFuZGxlRGlyZWN0Tm9kZSwgb3IgaGFuZGxlTm9kZVJlZmVyZW5jZVxuICAgKiBiYXNlZCBvbiB0aGUgZHluYW1pY05leHQgdHlwZS5cbiAgICovXG4gIGFzeW5jIHJlc29sdmUoXG4gICAgZHluYW1pY05leHQ6IHN0cmluZyB8IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmVha0ZsYWc6IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZXhlY3V0ZU5vZGU6IEV4ZWN1dGVOb2RlRm48VE91dCwgVFNjb3BlPixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodHlwZW9mIGR5bmFtaWNOZXh0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlU3RyaW5nUmVmZXJlbmNlKFxuICAgICAgICBkeW5hbWljTmV4dCxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgYnJlYWtGbGFnLFxuICAgICAgICBicmFuY2hQYXRoLFxuICAgICAgICBleGVjdXRlTm9kZSxcbiAgICAgICAgdHJhdmVyc2FsQ29udGV4dCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGR5bmFtaWNOZXh0LmZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVEaXJlY3ROb2RlKGR5bmFtaWNOZXh0LCBjb250ZXh0LCBicmVha0ZsYWcsIGJyYW5jaFBhdGgsIGV4ZWN1dGVOb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOb2RlUmVmZXJlbmNlKGR5bmFtaWNOZXh0LCBub2RlLCBjb250ZXh0LCBicmVha0ZsYWcsIGJyYW5jaFBhdGgsIGV4ZWN1dGVOb2RlLCB0cmF2ZXJzYWxDb250ZXh0KTtcbiAgfVxuXG4gIC8qKiBkeW5hbWljTmV4dCBpcyBhIHN0cmluZyBJRCDihpIgcmVzb2x2ZSBmcm9tIGdyYXBoLCB0cmFjayBpdGVyYXRpb24uICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU3RyaW5nUmVmZXJlbmNlKFxuICAgIG5vZGVJZDogc3RyaW5nLFxuICAgIGN1cnJlbnROb2RlOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPixcbiAgICBjb250ZXh0OiBTdGFnZUNvbnRleHQsXG4gICAgYnJlYWtGbGFnOiB7IHNob3VsZEJyZWFrOiBib29sZWFuIH0sXG4gICAgYnJhbmNoUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGV4ZWN1dGVOb2RlOiBFeGVjdXRlTm9kZUZuPFRPdXQsIFRTY29wZT4sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdGFyZ2V0Tm9kZSA9IHRoaXMubm9kZVJlc29sdmVyLmZpbmROb2RlQnlJZChub2RlSWQpO1xuICAgIGlmICghdGFyZ2V0Tm9kZSkge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYGR5bmFtaWNOZXh0IHRhcmdldCBub2RlIG5vdCBmb3VuZDogJHtub2RlSWR9YDtcbiAgICAgIHRoaXMuZGVwcy5sb2dnZXIuZXJyb3IoYEVycm9yIGluIHBpcGVsaW5lICgke2JyYW5jaFBhdGh9KSBzdGFnZSBbJHtjdXJyZW50Tm9kZS5uYW1lfV06YCwgeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlcmF0aW9uID0gdGhpcy5nZXRBbmRJbmNyZW1lbnRJdGVyYXRpb24obm9kZUlkKTtcbiAgICBjb25zdCBpdGVyYXRlZFN0YWdlTmFtZSA9IHRoaXMuZ2V0SXRlcmF0ZWRTdGFnZU5hbWUodGFyZ2V0Tm9kZS5uYW1lLCBpdGVyYXRpb24pO1xuICAgIGNvbnRleHQuYWRkTG9nKCdkeW5hbWljTmV4dFRhcmdldCcsIG5vZGVJZCk7XG4gICAgY29udGV4dC5hZGRMb2coJ2R5bmFtaWNOZXh0SXRlcmF0aW9uJywgaXRlcmF0aW9uKTtcblxuICAgIGNvbnRleHQuYWRkRmxvd0RlYnVnTWVzc2FnZSgnbG9vcCcsIGBMb29waW5nIGJhY2sgdG8gJHt0YXJnZXROb2RlLm5hbWV9IChpdGVyYXRpb24gJHtpdGVyYXRpb24gKyAxfSlgLCB7XG4gICAgICB0YXJnZXRTdGFnZTogdGFyZ2V0Tm9kZS5uYW1lLFxuICAgICAgaXRlcmF0aW9uOiBpdGVyYXRpb24gKyAxLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vbkxvb3AodGFyZ2V0Tm9kZS5uYW1lLCBpdGVyYXRpb24gKyAxLCB0YXJnZXROb2RlLmRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0KTtcblxuICAgIGNvbnN0IG5leHRTdGFnZUNvbnRleHQgPSBjb250ZXh0LmNyZWF0ZU5leHQoYnJhbmNoUGF0aCBhcyBzdHJpbmcsIGl0ZXJhdGVkU3RhZ2VOYW1lLCB0YXJnZXROb2RlLmlkKTtcbiAgICByZXR1cm4gZXhlY3V0ZU5vZGUodGFyZ2V0Tm9kZSwgbmV4dFN0YWdlQ29udGV4dCwgYnJlYWtGbGFnLCBicmFuY2hQYXRoKTtcbiAgfVxuXG4gIC8qKiBkeW5hbWljTmV4dCBpcyBhIFN0YWdlTm9kZSB3aXRoIGZuIOKGkiBleGVjdXRlIGRpcmVjdGx5ICh0cnVseSBkeW5hbWljKS4gKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVEaXJlY3ROb2RlKFxuICAgIGR5bmFtaWNOb2RlOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPixcbiAgICBjb250ZXh0OiBTdGFnZUNvbnRleHQsXG4gICAgYnJlYWtGbGFnOiB7IHNob3VsZEJyZWFrOiBib29sZWFuIH0sXG4gICAgYnJhbmNoUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGV4ZWN1dGVOb2RlOiBFeGVjdXRlTm9kZUZuPFRPdXQsIFRTY29wZT4sXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29udGV4dC5hZGRMb2coJ2R5bmFtaWNOZXh0RGlyZWN0JywgdHJ1ZSk7XG4gICAgY29udGV4dC5hZGRMb2coJ2R5bmFtaWNOZXh0TmFtZScsIGR5bmFtaWNOb2RlLm5hbWUpO1xuXG4gICAgY29udGV4dC5hZGRGbG93RGVidWdNZXNzYWdlKCduZXh0JywgYE1vdmluZyB0byAke2R5bmFtaWNOb2RlLm5hbWV9IHN0YWdlIChkeW5hbWljKWAsIHtcbiAgICAgIHRhcmdldFN0YWdlOiBkeW5hbWljTm9kZS5uYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbmV4dFN0YWdlQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlTmV4dChicmFuY2hQYXRoIGFzIHN0cmluZywgZHluYW1pY05vZGUubmFtZSwgZHluYW1pY05vZGUuaWQpO1xuICAgIHJldHVybiBleGVjdXRlTm9kZShkeW5hbWljTm9kZSwgbmV4dFN0YWdlQ29udGV4dCwgYnJlYWtGbGFnLCBicmFuY2hQYXRoKTtcbiAgfVxuXG4gIC8qKiBkeW5hbWljTmV4dCBpcyBhIFN0YWdlTm9kZSB3aXRob3V0IGZuIOKGkiByZWZlcmVuY2UgYnkgSUQsIHJlc29sdmUgKyB0cmFjayBpdGVyYXRpb24uICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlTm9kZVJlZmVyZW5jZShcbiAgICBkeW5hbWljTm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4sXG4gICAgY3VycmVudE5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmVha0ZsYWc6IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZXhlY3V0ZU5vZGU6IEV4ZWN1dGVOb2RlRm48VE91dCwgVFNjb3BlPixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBuZXh0Tm9kZUlkID0gZHluYW1pY05vZGUuaWQ7XG4gICAgaWYgKCFuZXh0Tm9kZUlkKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSAnZHluYW1pY05leHQgbm9kZSBtdXN0IGhhdmUgYW4gaWQgd2hlbiB1c2VkIGFzIHJlZmVyZW5jZSc7XG4gICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFcnJvciBpbiBwaXBlbGluZSAoJHticmFuY2hQYXRofSkgc3RhZ2UgWyR7Y3VycmVudE5vZGUubmFtZX1dOmAsIHsgZXJyb3I6IGVycm9yTWVzc2FnZSB9KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0aGlzLm5vZGVSZXNvbHZlci5maW5kTm9kZUJ5SWQobmV4dE5vZGVJZCk7XG4gICAgaWYgKCF0YXJnZXROb2RlKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgZHluYW1pY05leHQgdGFyZ2V0IG5vZGUgbm90IGZvdW5kOiAke25leHROb2RlSWR9YDtcbiAgICAgIHRoaXMuZGVwcy5sb2dnZXIuZXJyb3IoYEVycm9yIGluIHBpcGVsaW5lICgke2JyYW5jaFBhdGh9KSBzdGFnZSBbJHtjdXJyZW50Tm9kZS5uYW1lfV06YCwgeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlcmF0aW9uID0gdGhpcy5nZXRBbmRJbmNyZW1lbnRJdGVyYXRpb24obmV4dE5vZGVJZCk7XG4gICAgY29uc3QgaXRlcmF0ZWRTdGFnZU5hbWUgPSB0aGlzLmdldEl0ZXJhdGVkU3RhZ2VOYW1lKHRhcmdldE5vZGUubmFtZSwgaXRlcmF0aW9uKTtcbiAgICBjb250ZXh0LmFkZExvZygnZHluYW1pY05leHRUYXJnZXQnLCBuZXh0Tm9kZUlkKTtcbiAgICBjb250ZXh0LmFkZExvZygnZHluYW1pY05leHRJdGVyYXRpb24nLCBpdGVyYXRpb24pO1xuXG4gICAgY29udGV4dC5hZGRGbG93RGVidWdNZXNzYWdlKCdsb29wJywgYExvb3BpbmcgYmFjayB0byAke3RhcmdldE5vZGUubmFtZX0gKGl0ZXJhdGlvbiAke2l0ZXJhdGlvbiArIDF9KWAsIHtcbiAgICAgIHRhcmdldFN0YWdlOiB0YXJnZXROb2RlLm5hbWUsXG4gICAgICBpdGVyYXRpb246IGl0ZXJhdGlvbiArIDEsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uTG9vcCh0YXJnZXROb2RlLm5hbWUsIGl0ZXJhdGlvbiArIDEsIHRhcmdldE5vZGUuZGVzY3JpcHRpb24sIHRyYXZlcnNhbENvbnRleHQpO1xuXG4gICAgY29uc3QgbmV4dFN0YWdlQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlTmV4dChicmFuY2hQYXRoIGFzIHN0cmluZywgaXRlcmF0ZWRTdGFnZU5hbWUsIHRhcmdldE5vZGUuaWQpO1xuICAgIHJldHVybiBleGVjdXRlTm9kZSh0YXJnZXROb2RlLCBuZXh0U3RhZ2VDb250ZXh0LCBicmVha0ZsYWcsIGJyYW5jaFBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmV4dCBpdGVyYXRpb24gbnVtYmVyIGZvciBhIG5vZGUgYW5kIGluY3JlbWVudC5cbiAgICogUmV0dXJucyAwIGZvciBmaXJzdCB2aXNpdCwgMSBmb3Igc2Vjb25kLCBldGMuXG4gICAqIFRocm93cyBpZiBtYXhJdGVyYXRpb25zIGV4Y2VlZGVkIChpbmZpbml0ZSBsb29wIGd1YXJkKS5cbiAgICovXG4gIGdldEFuZEluY3JlbWVudEl0ZXJhdGlvbihub2RlSWQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuaXRlcmF0aW9uQ291bnRlcnMuZ2V0KG5vZGVJZCkgPz8gMDtcbiAgICBpZiAoY3VycmVudCA+PSB0aGlzLm1heEl0ZXJhdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE1heGltdW0gbG9vcCBpdGVyYXRpb25zICgke3RoaXMubWF4SXRlcmF0aW9uc30pIGV4Y2VlZGVkIGZvciBub2RlICcke25vZGVJZH0nLiBgICtcbiAgICAgICAgICAnU2V0IG1heEl0ZXJhdGlvbnMgdG8gaW5jcmVhc2UgdGhlIGxpbWl0LicsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLml0ZXJhdGlvbkNvdW50ZXJzLnNldChub2RlSWQsIGN1cnJlbnQgKyAxKTtcblxuICAgIGlmICh0aGlzLm9uSXRlcmF0aW9uVXBkYXRlKSB7XG4gICAgICB0aGlzLm9uSXRlcmF0aW9uVXBkYXRlKG5vZGVJZCwgY3VycmVudCArIDEpO1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGFuIGl0ZXJhdGVkIHN0YWdlIG5hbWUgZm9yIGNvbnRleHQgdHJlZS5cbiAgICogRmlyc3QgdmlzaXQ6IFwiYXNrTExNXCIsIHNlY29uZDogXCJhc2tMTE0uMVwiLCB0aGlyZDogXCJhc2tMTE0uMlwiLlxuICAgKi9cbiAgZ2V0SXRlcmF0ZWRTdGFnZU5hbWUoYmFzZU5hbWU6IHN0cmluZywgaXRlcmF0aW9uOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVyYXRpb24gPT09IDAgPyBiYXNlTmFtZSA6IGAke2Jhc2VOYW1lfS4ke2l0ZXJhdGlvbn1gO1xuICB9XG59XG4iXX0=
@@ -10,6 +10,7 @@ exports.DeciderHandler = void 0;
10
10
  const types_js_1 = require("../../decide/types.js");
11
11
  const types_js_2 = require("../../pause/types.js");
12
12
  class DeciderHandler {
13
+ deps;
13
14
  constructor(deps) {
14
15
  this.deps = deps;
15
16
  }
@@ -19,7 +20,6 @@ class DeciderHandler {
19
20
  * Execution order: runStage(fn) → commit → resolve child → log → executeNode(child).
20
21
  */
21
22
  async handleScopeBased(node, stageFunc, context, breakFlag, branchPath, runStage, executeNode, callExtractor, getStagePath, traversalContext) {
22
- var _a, _b, _c, _d;
23
23
  const breakFn = () => (breakFlag.shouldBreak = true);
24
24
  let branchId;
25
25
  let decisionEvidence;
@@ -53,16 +53,15 @@ class DeciderHandler {
53
53
  context.commit();
54
54
  callExtractor(node, context, getStagePath(node, branchPath, context.stageName), branchId);
55
55
  if (breakFlag.shouldBreak) {
56
- this.deps.logger.info(`Execution stopped in pipeline (${branchPath}) after ${node.name} due to break condition.`);
57
56
  return branchId;
58
57
  }
59
58
  // Resolve child by matching branch ID against node.children.
60
59
  // Match branchId first (original unprefixed ID), fall back to id for backward compat.
61
60
  const children = node.children;
62
- let chosen = children.find((child) => { var _a; return ((_a = child.branchId) !== null && _a !== void 0 ? _a : child.id) === branchId; });
61
+ let chosen = children.find((child) => (child.branchId ?? child.id) === branchId);
63
62
  // Fall back to default branch
64
63
  if (!chosen) {
65
- const defaultChild = children.find((child) => { var _a; return ((_a = child.branchId) !== null && _a !== void 0 ? _a : child.id) === 'default'; });
64
+ const defaultChild = children.find((child) => (child.branchId ?? child.id) === 'default');
66
65
  if (defaultChild) {
67
66
  chosen = defaultChild;
68
67
  }
@@ -73,8 +72,8 @@ class DeciderHandler {
73
72
  }
74
73
  }
75
74
  const chosenName = chosen.name;
76
- const wasDefault = ((_a = chosen.branchId) !== null && _a !== void 0 ? _a : chosen.id) !== branchId;
77
- const rationale = (_c = (_b = context.debug) === null || _b === void 0 ? void 0 : _b.logContext) === null || _c === void 0 ? void 0 : _c.deciderRationale;
75
+ const wasDefault = (chosen.branchId ?? chosen.id) !== branchId;
76
+ const rationale = context.debug?.logContext?.deciderRationale;
78
77
  let branchReason;
79
78
  if (wasDefault) {
80
79
  branchReason = `Returned '${branchId}' (no match), fell back to default → ${chosenName} path.`;
@@ -98,7 +97,7 @@ class DeciderHandler {
98
97
  // Stamp invoker context on PauseSignal during bubble-up.
99
98
  // The decider (node) is the invoker; its .next is the continuation target.
100
99
  if ((0, types_js_2.isPauseSignal)(error)) {
101
- error.setInvoker(node.id, (_d = node.next) === null || _d === void 0 ? void 0 : _d.id);
100
+ error.setInvoker(node.id, node.next?.id);
102
101
  throw error;
103
102
  }
104
103
  throw error;
@@ -106,4 +105,4 @@ class DeciderHandler {
106
105
  }
107
106
  }
108
107
  exports.DeciderHandler = DeciderHandler;
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjaWRlckhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9EZWNpZGVySGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUdILG9EQUF3RDtBQUV4RCxtREFBcUQ7QUFRckQsTUFBYSxjQUFjO0lBQ3pCLFlBQTZCLElBQStCO1FBQS9CLFNBQUksR0FBSixJQUFJLENBQTJCO0lBQUcsQ0FBQztJQUVoRTs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUNwQixJQUE2QixFQUM3QixTQUFzQyxFQUN0QyxPQUFxQixFQUNyQixTQUFtQyxFQUNuQyxVQUE4QixFQUM5QixRQUFrQyxFQUNsQyxXQUF3QyxFQUN4QyxhQUE0QyxFQUM1QyxZQUEwQyxFQUMxQyxnQkFBbUM7O1FBRW5DLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUVyRCxJQUFJLFFBQWdCLENBQUM7UUFDckIsSUFBSSxnQkFBOEMsQ0FBQztRQUNuRCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN0RSw4REFBOEQ7WUFDOUQsSUFBSSxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBcUIsRUFBRSwwQkFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDMUcsUUFBUSxHQUFJLFdBQW1CLENBQUMsTUFBTSxDQUFDO2dCQUN2QyxnQkFBZ0IsR0FBSSxXQUFtQixDQUFDLFFBQVEsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FB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QyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN6QixLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFHLEVBQUUsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxFQUFFLENBQUMsQ0FBQztnQkFDMUMsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1lBQ0QsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbEhELHdDQWtIQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVjaWRlckhhbmRsZXIg4oCUIFNpbmdsZS1jaG9pY2UgY29uZGl0aW9uYWwgYnJhbmNoaW5nLlxuICpcbiAqIEhhbmRsZXMgc2NvcGUtYmFzZWQgZGVjaWRlcnMgKHN0YWdlIElTIHRoZSBkZWNpZGVyLCByZXR1cm5zIGJyYW5jaCBJRCkuXG4gKiBMb2dzIGZsb3cgY29udHJvbCBkZWNpc2lvbnMgYW5kIG5hcnJhdGl2ZSBzZW50ZW5jZXMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBEZWNpc2lvbkV2aWRlbmNlIH0gZnJvbSAnLi4vLi4vZGVjaWRlL3R5cGVzLmpzJztcbmltcG9ydCB7IERFQ0lTSU9OX1JFU1VMVCB9IGZyb20gJy4uLy4uL2RlY2lkZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHsgaXNQYXVzZVNpZ25hbCB9IGZyb20gJy4uLy4uL3BhdXNlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgVHJhdmVyc2FsQ29udGV4dCB9IGZyb20gJy4uL25hcnJhdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEhhbmRsZXJEZXBzLCBTdGFnZUZ1bmN0aW9uIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBDYWxsRXh0cmFjdG9yRm4sIEV4ZWN1dGVOb2RlRm4sIEdldFN0YWdlUGF0aEZuLCBSdW5TdGFnZUZuIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIHsgQ2FsbEV4dHJhY3RvckZuLCBFeGVjdXRlTm9kZUZuLCBHZXRTdGFnZVBhdGhGbiwgUnVuU3RhZ2VGbiB9O1xuXG5leHBvcnQgY2xhc3MgRGVjaWRlckhhbmRsZXI8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGVwczogSGFuZGxlckRlcHM8VE91dCwgVFNjb3BlPikge31cblxuICAvKipcbiAgICogSGFuZGxlIGEgc2NvcGUtYmFzZWQgZGVjaWRlciAoY3JlYXRlZCB2aWEgYWRkRGVjaWRlckZ1bmN0aW9uKS5cbiAgICogVGhlIHN0YWdlIGZ1bmN0aW9uIElTIHRoZSBkZWNpZGVyIOKAlCBpdHMgcmV0dXJuIHZhbHVlIGlzIHRoZSBicmFuY2ggSUQuXG4gICAqIEV4ZWN1dGlvbiBvcmRlcjogcnVuU3RhZ2UoZm4pIOKGkiBjb21taXQg4oaSIHJlc29sdmUgY2hpbGQg4oaSIGxvZyDihpIgZXhlY3V0ZU5vZGUoY2hpbGQpLlxuICAgKi9cbiAgYXN5bmMgaGFuZGxlU2NvcGVCYXNlZChcbiAgICBub2RlOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPixcbiAgICBzdGFnZUZ1bmM6IFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPixcbiAgICBjb250ZXh0OiBTdGFnZUNvbnRleHQsXG4gICAgYnJlYWtGbGFnOiB7IHNob3VsZEJyZWFrOiBib29sZWFuIH0sXG4gICAgYnJhbmNoUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHJ1blN0YWdlOiBSdW5TdGFnZUZuPFRPdXQsIFRTY29wZT4sXG4gICAgZXhlY3V0ZU5vZGU6IEV4ZWN1dGVOb2RlRm48VE91dCwgVFNjb3BlPixcbiAgICBjYWxsRXh0cmFjdG9yOiBDYWxsRXh0cmFjdG9yRm48VE91dCwgVFNjb3BlPixcbiAgICBnZXRTdGFnZVBhdGg6IEdldFN0YWdlUGF0aEZuPFRPdXQsIFRTY29wZT4sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgYnJlYWtGbiA9ICgpID0+IChicmVha0ZsYWcuc2hvdWxkQnJlYWsgPSB0cnVlKTtcblxuICAgIGxldCBicmFuY2hJZDogc3RyaW5nO1xuICAgIGxldCBkZWNpc2lvbkV2aWRlbmNlOiBEZWNpc2lvbkV2aWRlbmNlIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFnZU91dHB1dCA9IGF3YWl0IHJ1blN0YWdlKG5vZGUsIHN0YWdlRnVuYywgY29udGV4dCwgYnJlYWtGbik7XG4gICAgICAvLyBEZXRlY3QgRGVjaXNpb25SZXN1bHQgZnJvbSBkZWNpZGUoKSBoZWxwZXIgdmlhIFN5bWJvbCBicmFuZFxuICAgICAgaWYgKHN0YWdlT3V0cHV0ICYmIHR5cGVvZiBzdGFnZU91dHB1dCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5oYXMoc3RhZ2VPdXRwdXQgYXMgb2JqZWN0LCBERUNJU0lPTl9SRVNVTFQpKSB7XG4gICAgICAgIGJyYW5jaElkID0gKHN0YWdlT3V0cHV0IGFzIGFueSkuYnJhbmNoO1xuICAgICAgICBkZWNpc2lvbkV2aWRlbmNlID0gKHN0YWdlT3V0cHV0IGFzIGFueSkuZXZpZGVuY2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmFuY2hJZCA9IFN0cmluZyhzdGFnZU91dHB1dCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgLy8gUGF1c2VTaWduYWwgaXMgZXhwZWN0ZWQgY29udHJvbCBmbG93IOKAlCBjb21taXQgYW5kIHJlLXRocm93IHdpdGhvdXQgZXJyb3IgbG9nZ2luZy5cbiAgICAgIGlmIChpc1BhdXNlU2lnbmFsKGVycm9yKSkge1xuICAgICAgICBjb250ZXh0LmNvbW1pdCgpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIGNvbnRleHQuY29tbWl0KCk7XG4gICAgICBjYWxsRXh0cmFjdG9yKG5vZGUsIGNvbnRleHQsIGdldFN0YWdlUGF0aChub2RlLCBicmFuY2hQYXRoLCBjb250ZXh0LnN0YWdlTmFtZSksIHVuZGVmaW5lZCwge1xuICAgICAgICB0eXBlOiAnc3RhZ2VFeGVjdXRpb25FcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yLnRvU3RyaW5nKCksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGVwcy5sb2dnZXIuZXJyb3IoYEVycm9yIGluIHBpcGVsaW5lICgke2JyYW5jaFBhdGh9KSBzdGFnZSBbJHtub2RlLm5hbWV9XTpgLCB7IGVycm9yIH0pO1xuICAgICAgY29udGV4dC5hZGRFcnJvcignc3RhZ2VFeGVjdXRpb25FcnJvcicsIGVycm9yLnRvU3RyaW5nKCkpO1xuICAgICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vbkVycm9yKG5vZGUubmFtZSwgZXJyb3IudG9TdHJpbmcoKSwgZXJyb3IsIHRyYXZlcnNhbENvbnRleHQpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuXG4gICAgY29udGV4dC5jb21taXQoKTtcbiAgICBjYWxsRXh0cmFjdG9yKG5vZGUsIGNvbnRleHQsIGdldFN0YWdlUGF0aChub2RlLCBicmFuY2hQYXRoLCBjb250ZXh0LnN0YWdlTmFtZSksIGJyYW5jaElkKTtcblxuICAgIGlmIChicmVha0ZsYWcuc2hvdWxkQnJlYWspIHtcbiAgICAgIHRoaXMuZGVwcy5sb2dnZXIuaW5mbyhgRXhlY3V0aW9uIHN0b3BwZWQgaW4gcGlwZWxpbmUgKCR7YnJhbmNoUGF0aH0pIGFmdGVyICR7bm9kZS5uYW1lfSBkdWUgdG8gYnJlYWsgY29uZGl0aW9uLmApO1xuICAgICAgcmV0dXJuIGJyYW5jaElkO1xuICAgIH1cblxuICAgIC8vIFJlc29sdmUgY2hpbGQgYnkgbWF0Y2hpbmcgYnJhbmNoIElEIGFnYWluc3Qgbm9kZS5jaGlsZHJlbi5cbiAgICAvLyBNYXRjaCBicmFuY2hJZCBmaXJzdCAob3JpZ2luYWwgdW5wcmVmaXhlZCBJRCksIGZhbGwgYmFjayB0byBpZCBmb3IgYmFja3dhcmQgY29tcGF0LlxuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbiBhcyBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPltdO1xuICAgIGxldCBjaG9zZW4gPSBjaGlsZHJlbi5maW5kKChjaGlsZCkgPT4gKGNoaWxkLmJyYW5jaElkID8/IGNoaWxkLmlkKSA9PT0gYnJhbmNoSWQpO1xuXG4gICAgLy8gRmFsbCBiYWNrIHRvIGRlZmF1bHQgYnJhbmNoXG4gICAgaWYgKCFjaG9zZW4pIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRDaGlsZCA9IGNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiAoY2hpbGQuYnJhbmNoSWQgPz8gY2hpbGQuaWQpID09PSAnZGVmYXVsdCcpO1xuICAgICAgaWYgKGRlZmF1bHRDaGlsZCkge1xuICAgICAgICBjaG9zZW4gPSBkZWZhdWx0Q2hpbGQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgU2NvcGUtYmFzZWQgZGVjaWRlciAnJHtub2RlLm5hbWV9JyByZXR1cm5lZCBicmFuY2ggSUQgJyR7YnJhbmNoSWR9JyB3aGljaCBkb2Vzbid0IG1hdGNoIGFueSBjaGlsZCBhbmQgbm8gZGVmYXVsdCBicmFuY2ggaXMgc2V0YDtcbiAgICAgICAgY29udGV4dC5hZGRFcnJvcignZGVjaWRlckVycm9yJywgZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2hvc2VuTmFtZSA9IGNob3Nlbi5uYW1lO1xuICAgIGNvbnN0IHdhc0RlZmF1bHQgPSAoY2hvc2VuLmJyYW5jaElkID8/IGNob3Nlbi5pZCkgIT09IGJyYW5jaElkO1xuICAgIGNvbnN0IHJhdGlvbmFsZSA9IGNvbnRleHQuZGVidWc/LmxvZ0NvbnRleHQ/LmRlY2lkZXJSYXRpb25hbGUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBicmFuY2hSZWFzb246IHN0cmluZztcbiAgICBpZiAod2FzRGVmYXVsdCkge1xuICAgICAgYnJhbmNoUmVhc29uID0gYFJldHVybmVkICcke2JyYW5jaElkfScgKG5vIG1hdGNoKSwgZmVsbCBiYWNrIHRvIGRlZmF1bHQg4oaSICR7Y2hvc2VuTmFtZX0gcGF0aC5gO1xuICAgIH0gZWxzZSBpZiAocmF0aW9uYWxlKSB7XG4gICAgICBicmFuY2hSZWFzb24gPSBgQmFzZWQgb246ICR7cmF0aW9uYWxlfSDihpIgY2hvc2UgJHtjaG9zZW5OYW1lfSBwYXRoLmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyYW5jaFJlYXNvbiA9IGBFdmFsdWF0ZWQgc2NvcGUgYW5kIHJldHVybmVkICcke2JyYW5jaElkfScg4oaSIGNob3NlICR7Y2hvc2VuTmFtZX0gcGF0aC5gO1xuICAgIH1cbiAgICBjb250ZXh0LmFkZEZsb3dEZWJ1Z01lc3NhZ2UoJ2JyYW5jaCcsIGJyYW5jaFJlYXNvbiwge1xuICAgICAgdGFyZ2V0U3RhZ2U6IGNob3Nlbi5uYW1lLFxuICAgICAgcmF0aW9uYWxlOiByYXRpb25hbGUgfHwgYHJldHVybmVkIGJyYW5jaElkOiAke2JyYW5jaElkfWAsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uRGVjaXNpb24oXG4gICAgICBub2RlLm5hbWUsXG4gICAgICBjaG9zZW4ubmFtZSxcbiAgICAgIHJhdGlvbmFsZSxcbiAgICAgIG5vZGUuZGVzY3JpcHRpb24sXG4gICAgICB0cmF2ZXJzYWxDb250ZXh0LFxuICAgICAgZGVjaXNpb25FdmlkZW5jZSxcbiAgICApO1xuXG4gICAgY29uc3QgYnJhbmNoQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlQ2hpbGQoYnJhbmNoUGF0aCBhcyBzdHJpbmcsIGNob3Nlbi5pZCwgY2hvc2VuLm5hbWUsIGNob3Nlbi5pZCk7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGV4ZWN1dGVOb2RlKGNob3NlbiwgYnJhbmNoQ29udGV4dCwgYnJlYWtGbGFnLCBicmFuY2hQYXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gU3RhbXAgaW52b2tlciBjb250ZXh0IG9uIFBhdXNlU2lnbmFsIGR1cmluZyBidWJibGUtdXAuXG4gICAgICAvLyBUaGUgZGVjaWRlciAobm9kZSkgaXMgdGhlIGludm9rZXI7IGl0cyAubmV4dCBpcyB0aGUgY29udGludWF0aW9uIHRhcmdldC5cbiAgICAgIGlmIChpc1BhdXNlU2lnbmFsKGVycm9yKSkge1xuICAgICAgICBlcnJvci5zZXRJbnZva2VyKG5vZGUuaWQhLCBub2RlLm5leHQ/LmlkKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjaWRlckhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9EZWNpZGVySGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUdILG9EQUF3RDtBQUV4RCxtREFBcUQ7QUFRckQsTUFBYSxjQUFjO0lBQ0k7SUFBN0IsWUFBNkIsSUFBK0I7UUFBL0IsU0FBSSxHQUFKLElBQUksQ0FBMkI7SUFBRyxDQUFDO0lBRWhFOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLElBQTZCLEVBQzdCLFNBQXNDLEVBQ3RDLE9BQXFCLEVBQ3JCLFNBQW1DLEVBQ25DLFVBQThCLEVBQzlCLFFBQWtDLEVBQ2xDLFdBQXdDLEVBQ3hDLGFBQTRDLEVBQzVDLFlBQTBDLEVBQzFDLGdCQUFtQztRQUVuQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFckQsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLElBQUksZ0JBQThDLENBQUM7UUFDbkQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdEUsOERBQThEO1lBQzlELElBQUksV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQXFCLEVBQUUsMEJBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzFHLFFBQVEsR0FBSSxXQUFtQixDQUFDLE1BQU0sQ0FBQztnQkFDdkMsZ0JBQWdCLEdBQUksV0FBbUIsQ0FBQyxRQUFRLENBQUM7WUFDbkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsQ0FB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Q0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFqSEQsd0NBaUhDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWNpZGVySGFuZGxlciDigJQgU2luZ2xlLWNob2ljZSBjb25kaXRpb25hbCBicmFuY2hpbmcuXG4gKlxuICogSGFuZGxlcyBzY29wZS1iYXNlZCBkZWNpZGVycyAoc3RhZ2UgSVMgdGhlIGRlY2lkZXIsIHJldHVybnMgYnJhbmNoIElEKS5cbiAqIExvZ3MgZmxvdyBjb250cm9sIGRlY2lzaW9ucyBhbmQgbmFycmF0aXZlIHNlbnRlbmNlcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlY2lzaW9uRXZpZGVuY2UgfSBmcm9tICcuLi8uLi9kZWNpZGUvdHlwZXMuanMnO1xuaW1wb3J0IHsgREVDSVNJT05fUkVTVUxUIH0gZnJvbSAnLi4vLi4vZGVjaWRlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgeyBpc1BhdXNlU2lnbmFsIH0gZnJvbSAnLi4vLi4vcGF1c2UvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUgeyBUcmF2ZXJzYWxDb250ZXh0IH0gZnJvbSAnLi4vbmFycmF0aXZlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgSGFuZGxlckRlcHMsIFN0YWdlRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IENhbGxFeHRyYWN0b3JGbiwgRXhlY3V0ZU5vZGVGbiwgR2V0U3RhZ2VQYXRoRm4sIFJ1blN0YWdlRm4gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgeyBDYWxsRXh0cmFjdG9yRm4sIEV4ZWN1dGVOb2RlRm4sIEdldFN0YWdlUGF0aEZuLCBSdW5TdGFnZUZuIH07XG5cbmV4cG9ydCBjbGFzcyBEZWNpZGVySGFuZGxlcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkZXBzOiBIYW5kbGVyRGVwczxUT3V0LCBUU2NvcGU+KSB7fVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYSBzY29wZS1iYXNlZCBkZWNpZGVyIChjcmVhdGVkIHZpYSBhZGREZWNpZGVyRnVuY3Rpb24pLlxuICAgKiBUaGUgc3RhZ2UgZnVuY3Rpb24gSVMgdGhlIGRlY2lkZXIg4oCUIGl0cyByZXR1cm4gdmFsdWUgaXMgdGhlIGJyYW5jaCBJRC5cbiAgICogRXhlY3V0aW9uIG9yZGVyOiBydW5TdGFnZShmbikg4oaSIGNvbW1pdCDihpIgcmVzb2x2ZSBjaGlsZCDihpIgbG9nIOKGkiBleGVjdXRlTm9kZShjaGlsZCkuXG4gICAqL1xuICBhc3luYyBoYW5kbGVTY29wZUJhc2VkKFxuICAgIG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIHN0YWdlRnVuYzogU3RhZ2VGdW5jdGlvbjxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmVha0ZsYWc6IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcnVuU3RhZ2U6IFJ1blN0YWdlRm48VE91dCwgVFNjb3BlPixcbiAgICBleGVjdXRlTm9kZTogRXhlY3V0ZU5vZGVGbjxUT3V0LCBUU2NvcGU+LFxuICAgIGNhbGxFeHRyYWN0b3I6IENhbGxFeHRyYWN0b3JGbjxUT3V0LCBUU2NvcGU+LFxuICAgIGdldFN0YWdlUGF0aDogR2V0U3RhZ2VQYXRoRm48VE91dCwgVFNjb3BlPixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBicmVha0ZuID0gKCkgPT4gKGJyZWFrRmxhZy5zaG91bGRCcmVhayA9IHRydWUpO1xuXG4gICAgbGV0IGJyYW5jaElkOiBzdHJpbmc7XG4gICAgbGV0IGRlY2lzaW9uRXZpZGVuY2U6IERlY2lzaW9uRXZpZGVuY2UgfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YWdlT3V0cHV0ID0gYXdhaXQgcnVuU3RhZ2Uobm9kZSwgc3RhZ2VGdW5jLCBjb250ZXh0LCBicmVha0ZuKTtcbiAgICAgIC8vIERldGVjdCBEZWNpc2lvblJlc3VsdCBmcm9tIGRlY2lkZSgpIGhlbHBlciB2aWEgU3ltYm9sIGJyYW5kXG4gICAgICBpZiAoc3RhZ2VPdXRwdXQgJiYgdHlwZW9mIHN0YWdlT3V0cHV0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmhhcyhzdGFnZU91dHB1dCBhcyBvYmplY3QsIERFQ0lTSU9OX1JFU1VMVCkpIHtcbiAgICAgICAgYnJhbmNoSWQgPSAoc3RhZ2VPdXRwdXQgYXMgYW55KS5icmFuY2g7XG4gICAgICAgIGRlY2lzaW9uRXZpZGVuY2UgPSAoc3RhZ2VPdXRwdXQgYXMgYW55KS5ldmlkZW5jZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyYW5jaElkID0gU3RyaW5nKHN0YWdlT3V0cHV0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBQYXVzZVNpZ25hbCBpcyBleHBlY3RlZCBjb250cm9sIGZsb3cg4oCUIGNvbW1pdCBhbmQgcmUtdGhyb3cgd2l0aG91dCBlcnJvciBsb2dnaW5nLlxuICAgICAgaWYgKGlzUGF1c2VTaWduYWwoZXJyb3IpKSB7XG4gICAgICAgIGNvbnRleHQuY29tbWl0KCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgIGNhbGxFeHRyYWN0b3Iobm9kZSwgY29udGV4dCwgZ2V0U3RhZ2VQYXRoKG5vZGUsIGJyYW5jaFBhdGgsIGNvbnRleHQuc3RhZ2VOYW1lKSwgdW5kZWZpbmVkLCB7XG4gICAgICAgIHR5cGU6ICdzdGFnZUV4ZWN1dGlvbkVycm9yJyxcbiAgICAgICAgbWVzc2FnZTogZXJyb3IudG9TdHJpbmcoKSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kZXBzLmxvZ2dlci5lcnJvcihgRXJyb3IgaW4gcGlwZWxpbmUgKCR7YnJhbmNoUGF0aH0pIHN0YWdlIFske25vZGUubmFtZX1dOmAsIHsgZXJyb3IgfSk7XG4gICAgICBjb250ZXh0LmFkZEVycm9yKCdzdGFnZUV4ZWN1dGlvbkVycm9yJywgZXJyb3IudG9TdHJpbmcoKSk7XG4gICAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uRXJyb3Iobm9kZS5uYW1lLCBlcnJvci50b1N0cmluZygpLCBlcnJvciwgdHJhdmVyc2FsQ29udGV4dCk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmNvbW1pdCgpO1xuICAgIGNhbGxFeHRyYWN0b3Iobm9kZSwgY29udGV4dCwgZ2V0U3RhZ2VQYXRoKG5vZGUsIGJyYW5jaFBhdGgsIGNvbnRleHQuc3RhZ2VOYW1lKSwgYnJhbmNoSWQpO1xuXG4gICAgaWYgKGJyZWFrRmxhZy5zaG91bGRCcmVhaykge1xuICAgICAgcmV0dXJuIGJyYW5jaElkO1xuICAgIH1cblxuICAgIC8vIFJlc29sdmUgY2hpbGQgYnkgbWF0Y2hpbmcgYnJhbmNoIElEIGFnYWluc3Qgbm9kZS5jaGlsZHJlbi5cbiAgICAvLyBNYXRjaCBicmFuY2hJZCBmaXJzdCAob3JpZ2luYWwgdW5wcmVmaXhlZCBJRCksIGZhbGwgYmFjayB0byBpZCBmb3IgYmFja3dhcmQgY29tcGF0LlxuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbiBhcyBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPltdO1xuICAgIGxldCBjaG9zZW4gPSBjaGlsZHJlbi5maW5kKChjaGlsZCkgPT4gKGNoaWxkLmJyYW5jaElkID8/IGNoaWxkLmlkKSA9PT0gYnJhbmNoSWQpO1xuXG4gICAgLy8gRmFsbCBiYWNrIHRvIGRlZmF1bHQgYnJhbmNoXG4gICAgaWYgKCFjaG9zZW4pIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRDaGlsZCA9IGNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiAoY2hpbGQuYnJhbmNoSWQgPz8gY2hpbGQuaWQpID09PSAnZGVmYXVsdCcpO1xuICAgICAgaWYgKGRlZmF1bHRDaGlsZCkge1xuICAgICAgICBjaG9zZW4gPSBkZWZhdWx0Q2hpbGQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgU2NvcGUtYmFzZWQgZGVjaWRlciAnJHtub2RlLm5hbWV9JyByZXR1cm5lZCBicmFuY2ggSUQgJyR7YnJhbmNoSWR9JyB3aGljaCBkb2Vzbid0IG1hdGNoIGFueSBjaGlsZCBhbmQgbm8gZGVmYXVsdCBicmFuY2ggaXMgc2V0YDtcbiAgICAgICAgY29udGV4dC5hZGRFcnJvcignZGVjaWRlckVycm9yJywgZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2hvc2VuTmFtZSA9IGNob3Nlbi5uYW1lO1xuICAgIGNvbnN0IHdhc0RlZmF1bHQgPSAoY2hvc2VuLmJyYW5jaElkID8/IGNob3Nlbi5pZCkgIT09IGJyYW5jaElkO1xuICAgIGNvbnN0IHJhdGlvbmFsZSA9IGNvbnRleHQuZGVidWc/LmxvZ0NvbnRleHQ/LmRlY2lkZXJSYXRpb25hbGUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBicmFuY2hSZWFzb246IHN0cmluZztcbiAgICBpZiAod2FzRGVmYXVsdCkge1xuICAgICAgYnJhbmNoUmVhc29uID0gYFJldHVybmVkICcke2JyYW5jaElkfScgKG5vIG1hdGNoKSwgZmVsbCBiYWNrIHRvIGRlZmF1bHQg4oaSICR7Y2hvc2VuTmFtZX0gcGF0aC5gO1xuICAgIH0gZWxzZSBpZiAocmF0aW9uYWxlKSB7XG4gICAgICBicmFuY2hSZWFzb24gPSBgQmFzZWQgb246ICR7cmF0aW9uYWxlfSDihpIgY2hvc2UgJHtjaG9zZW5OYW1lfSBwYXRoLmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyYW5jaFJlYXNvbiA9IGBFdmFsdWF0ZWQgc2NvcGUgYW5kIHJldHVybmVkICcke2JyYW5jaElkfScg4oaSIGNob3NlICR7Y2hvc2VuTmFtZX0gcGF0aC5gO1xuICAgIH1cbiAgICBjb250ZXh0LmFkZEZsb3dEZWJ1Z01lc3NhZ2UoJ2JyYW5jaCcsIGJyYW5jaFJlYXNvbiwge1xuICAgICAgdGFyZ2V0U3RhZ2U6IGNob3Nlbi5uYW1lLFxuICAgICAgcmF0aW9uYWxlOiByYXRpb25hbGUgfHwgYHJldHVybmVkIGJyYW5jaElkOiAke2JyYW5jaElkfWAsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uRGVjaXNpb24oXG4gICAgICBub2RlLm5hbWUsXG4gICAgICBjaG9zZW4ubmFtZSxcbiAgICAgIHJhdGlvbmFsZSxcbiAgICAgIG5vZGUuZGVzY3JpcHRpb24sXG4gICAgICB0cmF2ZXJzYWxDb250ZXh0LFxuICAgICAgZGVjaXNpb25FdmlkZW5jZSxcbiAgICApO1xuXG4gICAgY29uc3QgYnJhbmNoQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlQ2hpbGQoYnJhbmNoUGF0aCBhcyBzdHJpbmcsIGNob3Nlbi5pZCwgY2hvc2VuLm5hbWUsIGNob3Nlbi5pZCk7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGV4ZWN1dGVOb2RlKGNob3NlbiwgYnJhbmNoQ29udGV4dCwgYnJlYWtGbGFnLCBicmFuY2hQYXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gU3RhbXAgaW52b2tlciBjb250ZXh0IG9uIFBhdXNlU2lnbmFsIGR1cmluZyBidWJibGUtdXAuXG4gICAgICAvLyBUaGUgZGVjaWRlciAobm9kZSkgaXMgdGhlIGludm9rZXI7IGl0cyAubmV4dCBpcyB0aGUgY29udGludWF0aW9uIHRhcmdldC5cbiAgICAgIGlmIChpc1BhdXNlU2lnbmFsKGVycm9yKSkge1xuICAgICAgICBlcnJvci5zZXRJbnZva2VyKG5vZGUuaWQhLCBub2RlLm5leHQ/LmlkKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -9,10 +9,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ExtractorRunner = void 0;
10
10
  const RuntimeStructureManager_js_1 = require("./RuntimeStructureManager.js");
11
11
  class ExtractorRunner {
12
+ extractor;
13
+ enrichSnapshots;
14
+ executionRuntime;
15
+ logger;
16
+ extractedResults = new Map();
17
+ extractorErrors = [];
18
+ stepCounter = 0;
19
+ /** Current subflow context for metadata propagation. Set/cleared during subflow execution. */
20
+ currentSubflowId;
21
+ /** Current fork context for metadata propagation. Set/cleared during parallel children execution. */
22
+ currentForkId;
12
23
  constructor(extractor, enrichSnapshots, executionRuntime, logger) {
13
- this.extractedResults = new Map();
14
- this.extractorErrors = [];
15
- this.stepCounter = 0;
16
24
  this.extractor = extractor;
17
25
  this.enrichSnapshots = enrichSnapshots;
18
26
  this.executionRuntime = executionRuntime;
@@ -23,7 +31,6 @@ class ExtractorRunner {
23
31
  * Increments stepCounter (1-based) before creating snapshot.
24
32
  */
25
33
  callExtractor(node, context, stagePath, stageOutput, errorInfo) {
26
- var _a;
27
34
  if (!this.extractor)
28
35
  return;
29
36
  this.stepCounter++;
@@ -65,7 +72,7 @@ class ExtractorRunner {
65
72
  this.logger.error(`Extractor error at stage '${stagePath}':`, { error });
66
73
  this.extractorErrors.push({
67
74
  stagePath,
68
- message: (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : String(error),
75
+ message: error?.message ?? String(error),
69
76
  error,
70
77
  });
71
78
  }
@@ -82,7 +89,6 @@ class ExtractorRunner {
82
89
  return `${branchPath}.${nodeId}`;
83
90
  }
84
91
  buildStructureMetadata(node) {
85
- var _a;
86
92
  const metadata = {
87
93
  type: (0, RuntimeStructureManager_js_1.computeNodeType)(node),
88
94
  };
@@ -101,7 +107,7 @@ class ExtractorRunner {
101
107
  if (node.isStreaming) {
102
108
  metadata.streamId = node.streamId;
103
109
  }
104
- const hasDynamicChildren = Boolean(((_a = node.children) === null || _a === void 0 ? void 0 : _a.length) && !node.nextNodeSelector && node.fn);
110
+ const hasDynamicChildren = Boolean(node.children?.length && !node.nextNodeSelector && node.fn);
105
111
  if (hasDynamicChildren) {
106
112
  metadata.isDynamic = true;
107
113
  }
@@ -117,4 +123,4 @@ class ExtractorRunner {
117
123
  }
118
124
  }
119
125
  exports.ExtractorRunner = ExtractorRunner;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0cmFjdG9yUnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvaGFuZGxlcnMvRXh0cmFjdG9yUnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBWUgsNkVBQStEO0FBRS9ELE1BQWEsZUFBZTtJQWdCMUIsWUFDRSxTQUF5QyxFQUN6QyxlQUF3QixFQUN4QixnQkFBbUMsRUFDbkMsTUFBZTtRQWRULHFCQUFnQixHQUF5QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25ELG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQWN0QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FDWCxJQUFlLEVBQ2YsT0FBcUIsRUFDckIsU0FBaUIsRUFDakIsV0FBcUIsRUFDckIsU0FBNkM7O1FBRTdDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFrQjtnQkFDOUIsSUFBSTtnQkFDSixPQUFPO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDNUIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQzthQUNyRCxDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQztvQkFDSCxRQUFRLENBQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxJQUFJLENB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LENBQUMsU0FBUyxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNqQyxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsUUFBUSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDaEMsUUFBUSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2hELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEMsQ0FBQztRQUVELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsUUFBUSwwQ0FBRSxNQUFNLEtBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9GLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELDREQUE0RDtJQUM1RCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQXdDLENBQUM7SUFDdkQsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQTlJRCwwQ0E4SUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV4dHJhY3RvclJ1bm5lciDigJQgUGVyLXN0YWdlIHNuYXBzaG90IGV4dHJhY3Rpb24uXG4gKlxuICogQ29vcmRpbmF0ZXMgdHJhdmVyc2FsIGV4dHJhY3RvciBpbnZvY2F0aW9uczogc3RlcCBjb3VudGluZyxcbiAqIHNuYXBzaG90IGVucmljaG1lbnQsIGVycm9yIGNvbGxlY3Rpb24sIGFuZCByZXN1bHQgc3RvcmFnZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRyYWN0b3JFcnJvcixcbiAgSUV4ZWN1dGlvblJ1bnRpbWUsXG4gIElMb2dnZXIsXG4gIFJ1bnRpbWVTdHJ1Y3R1cmVNZXRhZGF0YSxcbiAgU3RhZ2VTbmFwc2hvdCxcbiAgVHJhdmVyc2FsRXh0cmFjdG9yLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBjb21wdXRlTm9kZVR5cGUgfSBmcm9tICcuL1J1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyLmpzJztcblxuZXhwb3J0IGNsYXNzIEV4dHJhY3RvclJ1bm5lcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHRyYWN0b3I/OiBUcmF2ZXJzYWxFeHRyYWN0b3I7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW5yaWNoU25hcHNob3RzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblJ1bnRpbWU6IElFeGVjdXRpb25SdW50aW1lO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcblxuICBwcml2YXRlIGV4dHJhY3RlZFJlc3VsdHM6IE1hcDxzdHJpbmcsIHVua25vd24+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGV4dHJhY3RvckVycm9yczogRXh0cmFjdG9yRXJyb3JbXSA9IFtdO1xuICBwcml2YXRlIHN0ZXBDb3VudGVyID0gMDtcblxuICAvKiogQ3VycmVudCBzdWJmbG93IGNvbnRleHQgZm9yIG1ldGFkYXRhIHByb3BhZ2F0aW9uLiBTZXQvY2xlYXJlZCBkdXJpbmcgc3ViZmxvdyBleGVjdXRpb24uICovXG4gIGN1cnJlbnRTdWJmbG93SWQ/OiBzdHJpbmc7XG5cbiAgLyoqIEN1cnJlbnQgZm9yayBjb250ZXh0IGZvciBtZXRhZGF0YSBwcm9wYWdhdGlvbi4gU2V0L2NsZWFyZWQgZHVyaW5nIHBhcmFsbGVsIGNoaWxkcmVuIGV4ZWN1dGlvbi4gKi9cbiAgY3VycmVudEZvcmtJZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBleHRyYWN0b3I6IFRyYXZlcnNhbEV4dHJhY3RvciB8IHVuZGVmaW5lZCxcbiAgICBlbnJpY2hTbmFwc2hvdHM6IGJvb2xlYW4sXG4gICAgZXhlY3V0aW9uUnVudGltZTogSUV4ZWN1dGlvblJ1bnRpbWUsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyLFxuICApIHtcbiAgICB0aGlzLmV4dHJhY3RvciA9IGV4dHJhY3RvcjtcbiAgICB0aGlzLmVucmljaFNuYXBzaG90cyA9IGVucmljaFNuYXBzaG90cztcbiAgICB0aGlzLmV4ZWN1dGlvblJ1bnRpbWUgPSBleGVjdXRpb25SdW50aW1lO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgdGhlIGV4dHJhY3RvciBmb3IgYSBzdGFnZSBhbmQgc3RvcmUgdGhlIHJlc3VsdC5cbiAgICogSW5jcmVtZW50cyBzdGVwQ291bnRlciAoMS1iYXNlZCkgYmVmb3JlIGNyZWF0aW5nIHNuYXBzaG90LlxuICAgKi9cbiAgY2FsbEV4dHJhY3RvcihcbiAgICBub2RlOiBTdGFnZU5vZGUsXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIHN0YWdlUGF0aDogc3RyaW5nLFxuICAgIHN0YWdlT3V0cHV0PzogdW5rbm93bixcbiAgICBlcnJvckluZm8/OiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0sXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5leHRyYWN0b3IpIHJldHVybjtcblxuICAgIHRoaXMuc3RlcENvdW50ZXIrKztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzbmFwc2hvdDogU3RhZ2VTbmFwc2hvdCA9IHtcbiAgICAgICAgbm9kZSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgc3RlcE51bWJlcjogdGhpcy5zdGVwQ291bnRlcixcbiAgICAgICAgc3RydWN0dXJlTWV0YWRhdGE6IHRoaXMuYnVpbGRTdHJ1Y3R1cmVNZXRhZGF0YShub2RlKSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmVucmljaFNuYXBzaG90cykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHNuYXBzaG90LnNjb3BlU3RhdGUgPSB7IC4uLnRoaXMuZXhlY3V0aW9uUnVudGltZS5nbG9iYWxTdG9yZS5nZXRTdGF0ZSgpIH07XG5cbiAgICAgICAgICBzbmFwc2hvdC5kZWJ1Z0luZm8gPSB7XG4gICAgICAgICAgICBsb2dzOiB7IC4uLmNvbnRleHQuZGVidWcubG9nQ29udGV4dCB9LFxuICAgICAgICAgICAgZXJyb3JzOiB7IC4uLmNvbnRleHQuZGVidWcuZXJyb3JDb250ZXh0IH0sXG4gICAgICAgICAgICBtZXRyaWNzOiB7IC4uLmNvbnRleHQuZGVidWcubWV0cmljQ29udGV4dCB9LFxuICAgICAgICAgICAgZXZhbHM6IHsgLi4uY29udGV4dC5kZWJ1Zy5ldmFsQ29udGV4dCB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGNvbnRleHQuZGVidWcuZmxvd01lc3NhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNuYXBzaG90LmRlYnVnSW5mby5mbG93TWVzc2FnZXMgPSBbLi4uY29udGV4dC5kZWJ1Zy5mbG93TWVzc2FnZXNdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNuYXBzaG90LnN0YWdlT3V0cHV0ID0gc3RhZ2VPdXRwdXQ7XG5cbiAgICAgICAgICBpZiAoZXJyb3JJbmZvKSB7XG4gICAgICAgICAgICBzbmFwc2hvdC5lcnJvckluZm8gPSBlcnJvckluZm87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc25hcHNob3QuaGlzdG9yeUluZGV4ID0gdGhpcy5leGVjdXRpb25SdW50aW1lLmV4ZWN1dGlvbkhpc3RvcnkubGlzdCgpLmxlbmd0aDtcbiAgICAgICAgfSBjYXRjaCAoZW5yaWNoRXJyb3I6IGFueSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEVucmljaG1lbnQgZXJyb3IgYXQgc3RhZ2UgJyR7c3RhZ2VQYXRofSc6YCwgeyBlcnJvcjogZW5yaWNoRXJyb3IgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5leHRyYWN0b3Ioc25hcHNob3QpO1xuXG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgcmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuZXh0cmFjdGVkUmVzdWx0cy5zZXQoc3RhZ2VQYXRoLCByZXN1bHQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBFeHRyYWN0b3IgZXJyb3IgYXQgc3RhZ2UgJyR7c3RhZ2VQYXRofSc6YCwgeyBlcnJvciB9KTtcbiAgICAgIHRoaXMuZXh0cmFjdG9yRXJyb3JzLnB1c2goe1xuICAgICAgICBzdGFnZVBhdGgsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yPy5tZXNzYWdlID8/IFN0cmluZyhlcnJvciksXG4gICAgICAgIGVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHRoZSBzdGFnZSBwYXRoIGZvciBleHRyYWN0b3IgcmVzdWx0cy5cbiAgICogVXNlcyBub2RlLmlkIGNvbWJpbmVkIHdpdGggYnJhbmNoUGF0aC5cbiAgICovXG4gIGdldFN0YWdlUGF0aChub2RlOiBTdGFnZU5vZGUsIGJyYW5jaFBhdGg/OiBzdHJpbmcsIGNvbnRleHRTdGFnZU5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VOYW1lID0gbm9kZS5pZDtcbiAgICBjb25zdCBub2RlSWQgPSBjb250ZXh0U3RhZ2VOYW1lICYmIGNvbnRleHRTdGFnZU5hbWUgIT09IG5vZGUubmFtZSA/IGNvbnRleHRTdGFnZU5hbWUgOiBiYXNlTmFtZTtcbiAgICBpZiAoIWJyYW5jaFBhdGgpIHJldHVybiBub2RlSWQ7XG4gICAgcmV0dXJuIGAke2JyYW5jaFBhdGh9LiR7bm9kZUlkfWA7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU3RydWN0dXJlTWV0YWRhdGEobm9kZTogU3RhZ2VOb2RlKTogUnVudGltZVN0cnVjdHVyZU1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXRhZGF0YTogUnVudGltZVN0cnVjdHVyZU1ldGFkYXRhID0ge1xuICAgICAgdHlwZTogY29tcHV0ZU5vZGVUeXBlKG5vZGUpLFxuICAgIH07XG5cbiAgICBpZiAobm9kZS5pc1N1YmZsb3dSb290KSB7XG4gICAgICBtZXRhZGF0YS5pc1N1YmZsb3dSb290ID0gdHJ1ZTtcbiAgICAgIG1ldGFkYXRhLnN1YmZsb3dJZCA9IG5vZGUuc3ViZmxvd0lkO1xuICAgICAgbWV0YWRhdGEuc3ViZmxvd05hbWUgPSBub2RlLnN1YmZsb3dOYW1lO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50U3ViZmxvd0lkKSB7XG4gICAgICBtZXRhZGF0YS5zdWJmbG93SWQgPSB0aGlzLmN1cnJlbnRTdWJmbG93SWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudEZvcmtJZCkge1xuICAgICAgbWV0YWRhdGEuaXNQYXJhbGxlbENoaWxkID0gdHJ1ZTtcbiAgICAgIG1ldGFkYXRhLnBhcmFsbGVsR3JvdXBJZCA9IHRoaXMuY3VycmVudEZvcmtJZDtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5pc1N0cmVhbWluZykge1xuICAgICAgbWV0YWRhdGEuc3RyZWFtSWQgPSBub2RlLnN0cmVhbUlkO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0R5bmFtaWNDaGlsZHJlbiA9IEJvb2xlYW4obm9kZS5jaGlsZHJlbj8ubGVuZ3RoICYmICFub2RlLm5leHROb2RlU2VsZWN0b3IgJiYgbm9kZS5mbik7XG4gICAgaWYgKGhhc0R5bmFtaWNDaGlsZHJlbikge1xuICAgICAgbWV0YWRhdGEuaXNEeW5hbWljID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH1cblxuICAvKiogUmV0dXJucyBleHRyYWN0ZWQgcmVzdWx0cyBjb2xsZWN0ZWQgZHVyaW5nIGV4ZWN1dGlvbi4gKi9cbiAgZ2V0RXh0cmFjdGVkUmVzdWx0czxUUmVzdWx0ID0gdW5rbm93bj4oKTogTWFwPHN0cmluZywgVFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RlZFJlc3VsdHMgYXMgTWFwPHN0cmluZywgVFJlc3VsdD47XG4gIH1cblxuICAvKiogUmV0dXJucyBlcnJvcnMgZW5jb3VudGVyZWQgZHVyaW5nIGV4dHJhY3Rpb24uICovXG4gIGdldEV4dHJhY3RvckVycm9ycygpOiBFeHRyYWN0b3JFcnJvcltdIHtcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0b3JFcnJvcnM7XG4gIH1cbn1cbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0cmFjdG9yUnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvaGFuZGxlcnMvRXh0cmFjdG9yUnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBWUgsNkVBQStEO0FBRS9ELE1BQWEsZUFBZTtJQUNULFNBQVMsQ0FBc0I7SUFDL0IsZUFBZSxDQUFVO0lBQ3pCLGdCQUFnQixDQUFvQjtJQUNwQyxNQUFNLENBQVU7SUFFekIsZ0JBQWdCLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbkQsZUFBZSxHQUFxQixFQUFFLENBQUM7SUFDdkMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUV4Qiw4RkFBOEY7SUFDOUYsZ0JBQWdCLENBQVU7SUFFMUIscUdBQXFHO0lBQ3JHLGFBQWEsQ0FBVTtJQUV2QixZQUNFLFNBQXlDLEVBQ3pDLGVBQXdCLEVBQ3hCLGdCQUFtQyxFQUNuQyxNQUFlO1FBRWYsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQ1gsSUFBZSxFQUNmLE9BQXFCLEVBQ3JCLFNBQWlCLEVBQ2pCLFdBQXFCLEVBQ3JCLFNBQTZDO1FBRTdDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFrQjtnQkFDOUIsSUFBSTtnQkFDSixPQUFPO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDNUIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHNCQUFz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ciDigJQgUGVyLXN0YWdlIHNuYXBzaG90IGV4dHJhY3Rpb24uXG4gKlxuICogQ29vcmRpbmF0ZXMgdHJhdmVyc2FsIGV4dHJhY3RvciBpbnZvY2F0aW9uczogc3RlcCBjb3VudGluZyxcbiAqIHNuYXBzaG90IGVucmljaG1lbnQsIGVycm9yIGNvbGxlY3Rpb24sIGFuZCByZXN1bHQgc3RvcmFnZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRyYWN0b3JFcnJvcixcbiAgSUV4ZWN1dGlvblJ1bnRpbWUsXG4gIElMb2dnZXIsXG4gIFJ1bnRpbWVTdHJ1Y3R1cmVNZXRhZGF0YSxcbiAgU3RhZ2VTbmFwc2hvdCxcbiAgVHJhdmVyc2FsRXh0cmFjdG9yLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBjb21wdXRlTm9kZVR5cGUgfSBmcm9tICcuL1J1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyLmpzJztcblxuZXhwb3J0IGNsYXNzIEV4dHJhY3RvclJ1bm5lcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHRyYWN0b3I/OiBUcmF2ZXJzYWxFeHRyYWN0b3I7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW5yaWNoU25hcHNob3RzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblJ1bnRpbWU6IElFeGVjdXRpb25SdW50aW1lO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcblxuICBwcml2YXRlIGV4dHJhY3RlZFJlc3VsdHM6IE1hcDxzdHJpbmcsIHVua25vd24+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGV4dHJhY3RvckVycm9yczogRXh0cmFjdG9yRXJyb3JbXSA9IFtdO1xuICBwcml2YXRlIHN0ZXBDb3VudGVyID0gMDtcblxuICAvKiogQ3VycmVudCBzdWJmbG93IGNvbnRleHQgZm9yIG1ldGFkYXRhIHByb3BhZ2F0aW9uLiBTZXQvY2xlYXJlZCBkdXJpbmcgc3ViZmxvdyBleGVjdXRpb24uICovXG4gIGN1cnJlbnRTdWJmbG93SWQ/OiBzdHJpbmc7XG5cbiAgLyoqIEN1cnJlbnQgZm9yayBjb250ZXh0IGZvciBtZXRhZGF0YSBwcm9wYWdhdGlvbi4gU2V0L2NsZWFyZWQgZHVyaW5nIHBhcmFsbGVsIGNoaWxkcmVuIGV4ZWN1dGlvbi4gKi9cbiAgY3VycmVudEZvcmtJZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBleHRyYWN0b3I6IFRyYXZlcnNhbEV4dHJhY3RvciB8IHVuZGVmaW5lZCxcbiAgICBlbnJpY2hTbmFwc2hvdHM6IGJvb2xlYW4sXG4gICAgZXhlY3V0aW9uUnVudGltZTogSUV4ZWN1dGlvblJ1bnRpbWUsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyLFxuICApIHtcbiAgICB0aGlzLmV4dHJhY3RvciA9IGV4dHJhY3RvcjtcbiAgICB0aGlzLmVucmljaFNuYXBzaG90cyA9IGVucmljaFNuYXBzaG90cztcbiAgICB0aGlzLmV4ZWN1dGlvblJ1bnRpbWUgPSBleGVjdXRpb25SdW50aW1lO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgdGhlIGV4dHJhY3RvciBmb3IgYSBzdGFnZSBhbmQgc3RvcmUgdGhlIHJlc3VsdC5cbiAgICogSW5jcmVtZW50cyBzdGVwQ291bnRlciAoMS1iYXNlZCkgYmVmb3JlIGNyZWF0aW5nIHNuYXBzaG90LlxuICAgKi9cbiAgY2FsbEV4dHJhY3RvcihcbiAgICBub2RlOiBTdGFnZU5vZGUsXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIHN0YWdlUGF0aDogc3RyaW5nLFxuICAgIHN0YWdlT3V0cHV0PzogdW5rbm93bixcbiAgICBlcnJvckluZm8/OiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0sXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5leHRyYWN0b3IpIHJldHVybjtcblxuICAgIHRoaXMuc3RlcENvdW50ZXIrKztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzbmFwc2hvdDogU3RhZ2VTbmFwc2hvdCA9IHtcbiAgICAgICAgbm9kZSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgc3RlcE51bWJlcjogdGhpcy5zdGVwQ291bnRlcixcbiAgICAgICAgc3RydWN0dXJlTWV0YWRhdGE6IHRoaXMuYnVpbGRTdHJ1Y3R1cmVNZXRhZGF0YShub2RlKSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmVucmljaFNuYXBzaG90cykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHNuYXBzaG90LnNjb3BlU3RhdGUgPSB7IC4uLnRoaXMuZXhlY3V0aW9uUnVudGltZS5nbG9iYWxTdG9yZS5nZXRTdGF0ZSgpIH07XG5cbiAgICAgICAgICBzbmFwc2hvdC5kZWJ1Z0luZm8gPSB7XG4gICAgICAgICAgICBsb2dzOiB7IC4uLmNvbnRleHQuZGVidWcubG9nQ29udGV4dCB9LFxuICAgICAgICAgICAgZXJyb3JzOiB7IC4uLmNvbnRleHQuZGVidWcuZXJyb3JDb250ZXh0IH0sXG4gICAgICAgICAgICBtZXRyaWNzOiB7IC4uLmNvbnRleHQuZGVidWcubWV0cmljQ29udGV4dCB9LFxuICAgICAgICAgICAgZXZhbHM6IHsgLi4uY29udGV4dC5kZWJ1Zy5ldmFsQ29udGV4dCB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGNvbnRleHQuZGVidWcuZmxvd01lc3NhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNuYXBzaG90LmRlYnVnSW5mby5mbG93TWVzc2FnZXMgPSBbLi4uY29udGV4dC5kZWJ1Zy5mbG93TWVzc2FnZXNdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNuYXBzaG90LnN0YWdlT3V0cHV0ID0gc3RhZ2VPdXRwdXQ7XG5cbiAgICAgICAgICBpZiAoZXJyb3JJbmZvKSB7XG4gICAgICAgICAgICBzbmFwc2hvdC5lcnJvckluZm8gPSBlcnJvckluZm87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc25hcHNob3QuaGlzdG9yeUluZGV4ID0gdGhpcy5leGVjdXRpb25SdW50aW1lLmV4ZWN1dGlvbkhpc3RvcnkubGlzdCgpLmxlbmd0aDtcbiAgICAgICAgfSBjYXRjaCAoZW5yaWNoRXJyb3I6IGFueSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEVucmljaG1lbnQgZXJyb3IgYXQgc3RhZ2UgJyR7c3RhZ2VQYXRofSc6YCwgeyBlcnJvcjogZW5yaWNoRXJyb3IgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5leHRyYWN0b3Ioc25hcHNob3QpO1xuXG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgcmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuZXh0cmFjdGVkUmVzdWx0cy5zZXQoc3RhZ2VQYXRoLCByZXN1bHQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBFeHRyYWN0b3IgZXJyb3IgYXQgc3RhZ2UgJyR7c3RhZ2VQYXRofSc6YCwgeyBlcnJvciB9KTtcbiAgICAgIHRoaXMuZXh0cmFjdG9yRXJyb3JzLnB1c2goe1xuICAgICAgICBzdGFnZVBhdGgsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yPy5tZXNzYWdlID8/IFN0cmluZyhlcnJvciksXG4gICAgICAgIGVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHRoZSBzdGFnZSBwYXRoIGZvciBleHRyYWN0b3IgcmVzdWx0cy5cbiAgICogVXNlcyBub2RlLmlkIGNvbWJpbmVkIHdpdGggYnJhbmNoUGF0aC5cbiAgICovXG4gIGdldFN0YWdlUGF0aChub2RlOiBTdGFnZU5vZGUsIGJyYW5jaFBhdGg/OiBzdHJpbmcsIGNvbnRleHRTdGFnZU5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VOYW1lID0gbm9kZS5pZDtcbiAgICBjb25zdCBub2RlSWQgPSBjb250ZXh0U3RhZ2VOYW1lICYmIGNvbnRleHRTdGFnZU5hbWUgIT09IG5vZGUubmFtZSA/IGNvbnRleHRTdGFnZU5hbWUgOiBiYXNlTmFtZTtcbiAgICBpZiAoIWJyYW5jaFBhdGgpIHJldHVybiBub2RlSWQ7XG4gICAgcmV0dXJuIGAke2JyYW5jaFBhdGh9LiR7bm9kZUlkfWA7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU3RydWN0dXJlTWV0YWRhdGEobm9kZTogU3RhZ2VOb2RlKTogUnVudGltZVN0cnVjdHVyZU1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXRhZGF0YTogUnVudGltZVN0cnVjdHVyZU1ldGFkYXRhID0ge1xuICAgICAgdHlwZTogY29tcHV0ZU5vZGVUeXBlKG5vZGUpLFxuICAgIH07XG5cbiAgICBpZiAobm9kZS5pc1N1YmZsb3dSb290KSB7XG4gICAgICBtZXRhZGF0YS5pc1N1YmZsb3dSb290ID0gdHJ1ZTtcbiAgICAgIG1ldGFkYXRhLnN1YmZsb3dJZCA9IG5vZGUuc3ViZmxvd0lkO1xuICAgICAgbWV0YWRhdGEuc3ViZmxvd05hbWUgPSBub2RlLnN1YmZsb3dOYW1lO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50U3ViZmxvd0lkKSB7XG4gICAgICBtZXRhZGF0YS5zdWJmbG93SWQgPSB0aGlzLmN1cnJlbnRTdWJmbG93SWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudEZvcmtJZCkge1xuICAgICAgbWV0YWRhdGEuaXNQYXJhbGxlbENoaWxkID0gdHJ1ZTtcbiAgICAgIG1ldGFkYXRhLnBhcmFsbGVsR3JvdXBJZCA9IHRoaXMuY3VycmVudEZvcmtJZDtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5pc1N0cmVhbWluZykge1xuICAgICAgbWV0YWRhdGEuc3RyZWFtSWQgPSBub2RlLnN0cmVhbUlkO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0R5bmFtaWNDaGlsZHJlbiA9IEJvb2xlYW4obm9kZS5jaGlsZHJlbj8ubGVuZ3RoICYmICFub2RlLm5leHROb2RlU2VsZWN0b3IgJiYgbm9kZS5mbik7XG4gICAgaWYgKGhhc0R5bmFtaWNDaGlsZHJlbikge1xuICAgICAgbWV0YWRhdGEuaXNEeW5hbWljID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH1cblxuICAvKiogUmV0dXJucyBleHRyYWN0ZWQgcmVzdWx0cyBjb2xsZWN0ZWQgZHVyaW5nIGV4ZWN1dGlvbi4gKi9cbiAgZ2V0RXh0cmFjdGVkUmVzdWx0czxUUmVzdWx0ID0gdW5rbm93bj4oKTogTWFwPHN0cmluZywgVFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RlZFJlc3VsdHMgYXMgTWFwPHN0cmluZywgVFJlc3VsdD47XG4gIH1cblxuICAvKiogUmV0dXJucyBlcnJvcnMgZW5jb3VudGVyZWQgZHVyaW5nIGV4dHJhY3Rpb24uICovXG4gIGdldEV4dHJhY3RvckVycm9ycygpOiBFeHRyYWN0b3JFcnJvcltdIHtcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0b3JFcnJvcnM7XG4gIH1cbn1cbiJdfQ==