footprintjs 9.41.0 → 9.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/AGENTS.md +7 -3
  2. package/CLAUDE.md +12 -11
  3. package/README.md +7 -3
  4. package/dist/advanced.js +4 -3
  5. package/dist/esm/advanced.d.ts +3 -1
  6. package/dist/esm/advanced.js +3 -2
  7. package/dist/esm/index.d.ts +3 -3
  8. package/dist/esm/index.js +1 -1
  9. package/dist/esm/lib/builder/FlowChartBuilder.d.ts +14 -4
  10. package/dist/esm/lib/builder/FlowChartBuilder.js +25 -7
  11. package/dist/esm/lib/builder/types.d.ts +2 -3
  12. package/dist/esm/lib/builder/types.js +1 -1
  13. package/dist/esm/lib/capture/freeze.d.ts +5 -5
  14. package/dist/esm/lib/capture/freeze.js +5 -4
  15. package/dist/esm/lib/contract/index.d.ts +5 -8
  16. package/dist/esm/lib/contract/index.js +5 -10
  17. package/dist/esm/lib/contract/types.d.ts +3 -81
  18. package/dist/esm/lib/contract/types.js +4 -5
  19. package/dist/esm/lib/decide/decide.js +13 -46
  20. package/dist/esm/lib/detach/drivers/batch.d.ts +9 -0
  21. package/dist/esm/lib/detach/drivers/batch.js +79 -0
  22. package/dist/esm/lib/detach/drivers/microtaskBatch.d.ts +17 -20
  23. package/dist/esm/lib/detach/drivers/microtaskBatch.js +20 -72
  24. package/dist/esm/lib/detach/drivers/setImmediate.js +10 -41
  25. package/dist/esm/lib/detach/drivers/setTimeout.js +3 -36
  26. package/dist/esm/lib/detach/types.d.ts +17 -20
  27. package/dist/esm/lib/detach/types.js +9 -11
  28. package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +7 -3
  29. package/dist/esm/lib/engine/handlers/DeciderHandler.js +7 -5
  30. package/dist/esm/lib/engine/handlers/ParallelForEachHandler.d.ts +2 -3
  31. package/dist/esm/lib/engine/handlers/ParallelForEachHandler.js +21 -24
  32. package/dist/esm/lib/engine/handlers/SelectorHandler.d.ts +2 -4
  33. package/dist/esm/lib/engine/handlers/SelectorHandler.js +15 -7
  34. package/dist/esm/lib/engine/handlers/StageRunner.js +11 -22
  35. package/dist/esm/lib/engine/handlers/SubflowExecutor.js +32 -17
  36. package/dist/esm/lib/engine/handlers/SubflowInputMapper.d.ts +4 -3
  37. package/dist/esm/lib/engine/handlers/SubflowInputMapper.js +19 -8
  38. package/dist/esm/lib/engine/handlers/breakFlag.d.ts +3 -0
  39. package/dist/esm/lib/engine/handlers/breakFlag.js +9 -0
  40. package/dist/esm/lib/engine/handlers/commitStage.js +3 -3
  41. package/dist/esm/lib/engine/handlers/servedPause.d.ts +15 -0
  42. package/dist/esm/lib/engine/handlers/servedPause.js +26 -0
  43. package/dist/esm/lib/engine/handlers/stageError.d.ts +20 -0
  44. package/dist/esm/lib/engine/handlers/stageError.js +28 -0
  45. package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +6 -1
  46. package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +40 -67
  47. package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.d.ts +3 -3
  48. package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +4 -8
  49. package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.d.ts +7 -1
  50. package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +28 -48
  51. package/dist/esm/lib/engine/narrative/formatting/resolveText.d.ts +6 -0
  52. package/dist/esm/lib/engine/narrative/formatting/resolveText.js +9 -0
  53. package/dist/esm/lib/engine/narrative/formatting/sentences.d.ts +16 -0
  54. package/dist/esm/lib/engine/narrative/formatting/sentences.js +50 -0
  55. package/dist/esm/lib/engine/narrative/narrativeTypes.d.ts +2 -0
  56. package/dist/esm/lib/engine/narrative/narrativeTypes.js +1 -1
  57. package/dist/esm/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +3 -7
  58. package/dist/esm/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +3 -7
  59. package/dist/esm/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.d.ts +0 -1
  60. package/dist/esm/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -10
  61. package/dist/esm/lib/engine/narrative/types.d.ts +18 -8
  62. package/dist/esm/lib/engine/narrative/types.js +1 -1
  63. package/dist/esm/lib/engine/traversal/FlowchartTraverser.d.ts +8 -3
  64. package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +64 -33
  65. package/dist/esm/lib/engine/types.d.ts +4 -0
  66. package/dist/esm/lib/engine/types.js +1 -1
  67. package/dist/esm/lib/memory/DiagnosticCollector.d.ts +12 -0
  68. package/dist/esm/lib/memory/DiagnosticCollector.js +53 -9
  69. package/dist/esm/lib/memory/EventLog.d.ts +9 -0
  70. package/dist/esm/lib/memory/EventLog.js +24 -1
  71. package/dist/esm/lib/memory/StageContext.d.ts +22 -1
  72. package/dist/esm/lib/memory/StageContext.js +61 -7
  73. package/dist/esm/lib/memory/eventPosition.d.ts +18 -0
  74. package/dist/esm/lib/memory/eventPosition.js +2 -0
  75. package/dist/esm/lib/memory/merge.d.ts +2 -1
  76. package/dist/esm/lib/memory/merge.js +15 -4
  77. package/dist/esm/lib/memory/redaction.d.ts +339 -17
  78. package/dist/esm/lib/memory/redaction.js +993 -32
  79. package/dist/esm/lib/observer-queue/deferredDispatcher.d.ts +2 -2
  80. package/dist/esm/lib/observer-queue/deferredDispatcher.js +3 -3
  81. package/dist/esm/lib/observer-queue/index.d.ts +7 -4
  82. package/dist/esm/lib/observer-queue/index.js +8 -5
  83. package/dist/esm/lib/pause/index.d.ts +1 -1
  84. package/dist/esm/lib/pause/index.js +1 -1
  85. package/dist/esm/lib/pause/record.js +19 -1
  86. package/dist/esm/lib/pause/types.d.ts +20 -0
  87. package/dist/esm/lib/pause/types.js +1 -1
  88. package/dist/esm/lib/reactive/createTypedScope.js +20 -21
  89. package/dist/esm/lib/reactive/index.d.ts +1 -1
  90. package/dist/esm/lib/reactive/index.js +2 -2
  91. package/dist/esm/lib/reactive/types.d.ts +0 -3
  92. package/dist/esm/lib/reactive/types.js +1 -23
  93. package/dist/esm/lib/recorder/EmitRecorder.d.ts +9 -0
  94. package/dist/esm/lib/recorder/EmitRecorder.js +1 -1
  95. package/dist/esm/lib/recorder/InOutRecorder.d.ts +5 -2
  96. package/dist/esm/lib/recorder/InOutRecorder.js +6 -3
  97. package/dist/esm/lib/runner/DeferredObserverTier.d.ts +4 -3
  98. package/dist/esm/lib/runner/DeferredObserverTier.js +5 -4
  99. package/dist/esm/lib/runner/ExecutionRuntime.d.ts +3 -0
  100. package/dist/esm/lib/runner/ExecutionRuntime.js +2 -1
  101. package/dist/esm/lib/runner/FlowChartExecutor.d.ts +11 -9
  102. package/dist/esm/lib/runner/FlowChartExecutor.js +18 -10
  103. package/dist/esm/lib/runner/attach.d.ts +3 -1
  104. package/dist/esm/lib/runner/attach.js +21 -31
  105. package/dist/esm/lib/runner/checkpoint.d.ts +3 -1
  106. package/dist/esm/lib/runner/checkpoint.js +4 -1
  107. package/dist/esm/lib/scope/ScopeFacade.d.ts +13 -1
  108. package/dist/esm/lib/scope/ScopeFacade.js +60 -39
  109. package/dist/esm/lib/scope/protection/createProtectedScope.js +5 -2
  110. package/dist/esm/lib/scope/protection/readonlyInput.d.ts +16 -6
  111. package/dist/esm/lib/scope/protection/readonlyInput.js +72 -9
  112. package/dist/esm/lib/scope/providers/baseStateCompatible.d.ts +10 -24
  113. package/dist/esm/lib/scope/providers/baseStateCompatible.js +35 -35
  114. package/dist/esm/lib/scope/providers/providers.d.ts +2 -2
  115. package/dist/esm/lib/scope/providers/providers.js +3 -3
  116. package/dist/esm/lib/scope/providers/resolve.js +2 -2
  117. package/dist/esm/lib/scope/providers/types.d.ts +4 -2
  118. package/dist/esm/lib/scope/providers/types.js +1 -1
  119. package/dist/esm/lib/scope/recorders/MetricRecorder.d.ts +2 -3
  120. package/dist/esm/lib/scope/recorders/MetricRecorder.js +11 -14
  121. package/dist/esm/lib/scope/runtime.d.ts +48 -0
  122. package/dist/esm/lib/scope/runtime.js +60 -0
  123. package/dist/esm/lib/scope/state/zod/defineScopeFromZod.d.ts +2 -2
  124. package/dist/esm/lib/scope/state/zod/defineScopeFromZod.js +17 -6
  125. package/dist/esm/lib/scope/state/zod/resolver.js +3 -15
  126. package/dist/esm/lib/scope/state/zod/scopeFactory.d.ts +7 -3
  127. package/dist/esm/lib/scope/state/zod/scopeFactory.js +57 -22
  128. package/dist/esm/lib/scope/state/zod/utils/validateHelper.d.ts +27 -18
  129. package/dist/esm/lib/scope/state/zod/utils/validateHelper.js +66 -67
  130. package/dist/esm/recorders.d.ts +3 -0
  131. package/dist/esm/recorders.js +1 -1
  132. package/dist/index.js +1 -1
  133. package/dist/lib/builder/FlowChartBuilder.js +25 -7
  134. package/dist/lib/builder/types.js +1 -1
  135. package/dist/lib/capture/freeze.js +5 -4
  136. package/dist/lib/contract/index.js +6 -13
  137. package/dist/lib/contract/types.js +4 -5
  138. package/dist/lib/decide/decide.js +13 -46
  139. package/dist/lib/detach/drivers/batch.js +83 -0
  140. package/dist/lib/detach/drivers/microtaskBatch.js +20 -72
  141. package/dist/lib/detach/drivers/setImmediate.js +10 -41
  142. package/dist/lib/detach/drivers/setTimeout.js +3 -36
  143. package/dist/lib/detach/types.js +9 -11
  144. package/dist/lib/engine/handlers/ChildrenExecutor.js +7 -3
  145. package/dist/lib/engine/handlers/DeciderHandler.js +7 -5
  146. package/dist/lib/engine/handlers/ParallelForEachHandler.js +21 -24
  147. package/dist/lib/engine/handlers/SelectorHandler.js +15 -7
  148. package/dist/lib/engine/handlers/StageRunner.js +11 -22
  149. package/dist/lib/engine/handlers/SubflowExecutor.js +32 -17
  150. package/dist/lib/engine/handlers/SubflowInputMapper.js +19 -8
  151. package/dist/lib/engine/handlers/breakFlag.js +13 -0
  152. package/dist/lib/engine/handlers/commitStage.js +2 -2
  153. package/dist/lib/engine/handlers/servedPause.js +30 -0
  154. package/dist/lib/engine/handlers/stageError.js +34 -0
  155. package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +40 -67
  156. package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +4 -8
  157. package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +28 -48
  158. package/dist/lib/engine/narrative/formatting/resolveText.js +13 -0
  159. package/dist/lib/engine/narrative/formatting/sentences.js +63 -0
  160. package/dist/lib/engine/narrative/narrativeTypes.js +1 -1
  161. package/dist/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +3 -7
  162. package/dist/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +3 -7
  163. package/dist/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -10
  164. package/dist/lib/engine/narrative/types.js +1 -1
  165. package/dist/lib/engine/traversal/FlowchartTraverser.js +64 -33
  166. package/dist/lib/engine/types.js +1 -1
  167. package/dist/lib/memory/DiagnosticCollector.js +53 -9
  168. package/dist/lib/memory/EventLog.js +24 -1
  169. package/dist/lib/memory/StageContext.js +61 -7
  170. package/dist/lib/memory/eventPosition.js +3 -0
  171. package/dist/lib/memory/merge.js +15 -4
  172. package/dist/lib/memory/redaction.js +997 -33
  173. package/dist/lib/observer-queue/deferredDispatcher.js +3 -3
  174. package/dist/lib/observer-queue/index.js +8 -5
  175. package/dist/lib/pause/index.js +1 -1
  176. package/dist/lib/pause/record.js +19 -1
  177. package/dist/lib/pause/types.js +1 -1
  178. package/dist/lib/reactive/createTypedScope.js +19 -20
  179. package/dist/lib/reactive/index.js +2 -5
  180. package/dist/lib/reactive/types.js +2 -24
  181. package/dist/lib/recorder/EmitRecorder.js +1 -1
  182. package/dist/lib/recorder/InOutRecorder.js +6 -3
  183. package/dist/lib/runner/DeferredObserverTier.js +5 -4
  184. package/dist/lib/runner/ExecutionRuntime.js +2 -1
  185. package/dist/lib/runner/FlowChartExecutor.js +18 -10
  186. package/dist/lib/runner/attach.js +21 -31
  187. package/dist/lib/runner/checkpoint.js +4 -1
  188. package/dist/lib/scope/ScopeFacade.js +60 -39
  189. package/dist/lib/scope/protection/createProtectedScope.js +5 -2
  190. package/dist/lib/scope/protection/readonlyInput.js +74 -10
  191. package/dist/lib/scope/providers/baseStateCompatible.js +37 -36
  192. package/dist/lib/scope/providers/providers.js +3 -3
  193. package/dist/lib/scope/providers/resolve.js +2 -2
  194. package/dist/lib/scope/providers/types.js +1 -1
  195. package/dist/lib/scope/recorders/MetricRecorder.js +11 -14
  196. package/dist/lib/scope/runtime.js +67 -0
  197. package/dist/lib/scope/state/zod/defineScopeFromZod.js +15 -4
  198. package/dist/lib/scope/state/zod/resolver.js +3 -15
  199. package/dist/lib/scope/state/zod/scopeFactory.js +58 -22
  200. package/dist/lib/scope/state/zod/utils/validateHelper.js +70 -68
  201. package/dist/recorders.js +1 -1
  202. package/dist/types/advanced.d.ts +3 -1
  203. package/dist/types/index.d.ts +3 -3
  204. package/dist/types/lib/builder/FlowChartBuilder.d.ts +14 -4
  205. package/dist/types/lib/builder/types.d.ts +2 -3
  206. package/dist/types/lib/capture/freeze.d.ts +5 -5
  207. package/dist/types/lib/contract/index.d.ts +5 -8
  208. package/dist/types/lib/contract/types.d.ts +3 -81
  209. package/dist/types/lib/detach/drivers/batch.d.ts +9 -0
  210. package/dist/types/lib/detach/drivers/microtaskBatch.d.ts +17 -20
  211. package/dist/types/lib/detach/types.d.ts +17 -20
  212. package/dist/types/lib/engine/handlers/ParallelForEachHandler.d.ts +2 -3
  213. package/dist/types/lib/engine/handlers/SelectorHandler.d.ts +2 -4
  214. package/dist/types/lib/engine/handlers/SubflowInputMapper.d.ts +4 -3
  215. package/dist/types/lib/engine/handlers/breakFlag.d.ts +3 -0
  216. package/dist/types/lib/engine/handlers/servedPause.d.ts +15 -0
  217. package/dist/types/lib/engine/handlers/stageError.d.ts +20 -0
  218. package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +6 -1
  219. package/dist/types/lib/engine/narrative/FlowRecorderDispatcher.d.ts +3 -3
  220. package/dist/types/lib/engine/narrative/NarrativeFlowRecorder.d.ts +7 -1
  221. package/dist/types/lib/engine/narrative/formatting/resolveText.d.ts +6 -0
  222. package/dist/types/lib/engine/narrative/formatting/sentences.d.ts +16 -0
  223. package/dist/types/lib/engine/narrative/narrativeTypes.d.ts +2 -0
  224. package/dist/types/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.d.ts +0 -1
  225. package/dist/types/lib/engine/narrative/types.d.ts +18 -8
  226. package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +8 -3
  227. package/dist/types/lib/engine/types.d.ts +4 -0
  228. package/dist/types/lib/memory/DiagnosticCollector.d.ts +12 -0
  229. package/dist/types/lib/memory/EventLog.d.ts +9 -0
  230. package/dist/types/lib/memory/StageContext.d.ts +22 -1
  231. package/dist/types/lib/memory/eventPosition.d.ts +18 -0
  232. package/dist/types/lib/memory/merge.d.ts +2 -1
  233. package/dist/types/lib/memory/redaction.d.ts +339 -17
  234. package/dist/types/lib/observer-queue/deferredDispatcher.d.ts +2 -2
  235. package/dist/types/lib/observer-queue/index.d.ts +7 -4
  236. package/dist/types/lib/pause/index.d.ts +1 -1
  237. package/dist/types/lib/pause/types.d.ts +20 -0
  238. package/dist/types/lib/reactive/index.d.ts +1 -1
  239. package/dist/types/lib/reactive/types.d.ts +0 -3
  240. package/dist/types/lib/recorder/EmitRecorder.d.ts +9 -0
  241. package/dist/types/lib/recorder/InOutRecorder.d.ts +5 -2
  242. package/dist/types/lib/runner/DeferredObserverTier.d.ts +4 -3
  243. package/dist/types/lib/runner/ExecutionRuntime.d.ts +3 -0
  244. package/dist/types/lib/runner/FlowChartExecutor.d.ts +11 -9
  245. package/dist/types/lib/runner/attach.d.ts +3 -1
  246. package/dist/types/lib/runner/checkpoint.d.ts +3 -1
  247. package/dist/types/lib/scope/ScopeFacade.d.ts +13 -1
  248. package/dist/types/lib/scope/protection/readonlyInput.d.ts +16 -6
  249. package/dist/types/lib/scope/providers/baseStateCompatible.d.ts +10 -24
  250. package/dist/types/lib/scope/providers/providers.d.ts +2 -2
  251. package/dist/types/lib/scope/providers/types.d.ts +4 -2
  252. package/dist/types/lib/scope/recorders/MetricRecorder.d.ts +2 -3
  253. package/dist/types/lib/scope/runtime.d.ts +48 -0
  254. package/dist/types/lib/scope/state/zod/defineScopeFromZod.d.ts +2 -2
  255. package/dist/types/lib/scope/state/zod/scopeFactory.d.ts +7 -3
  256. package/dist/types/lib/scope/state/zod/utils/validateHelper.d.ts +27 -18
  257. package/dist/types/recorders.d.ts +3 -0
  258. package/package.json +4 -3
  259. package/dist/esm/lib/contract/defineContract.d.ts +0 -18
  260. package/dist/esm/lib/contract/defineContract.js +0 -64
  261. package/dist/esm/lib/contract/openapi.d.ts +0 -18
  262. package/dist/esm/lib/contract/openapi.js +0 -98
  263. package/dist/lib/contract/defineContract.js +0 -68
  264. package/dist/lib/contract/openapi.js +0 -102
  265. package/dist/types/lib/contract/defineContract.d.ts +0 -18
  266. package/dist/types/lib/contract/openapi.d.ts +0 -18
@@ -13,7 +13,6 @@
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.FlowRecorderDispatcher = void 0;
16
- const errorInfo_js_1 = require("../../errors/errorInfo.js");
17
16
  const hooks_js_1 = require("../../recorder/hooks.js");
18
17
  /** The flow channel's isolation: a throwing recorder is warned about in dev mode, then skipped. */
19
18
  const FLOW_FAILURE = (0, hooks_js_1.warnInDevMode)('FlowRecorderDispatcher');
@@ -108,17 +107,15 @@ class FlowRecorderDispatcher {
108
107
  };
109
108
  (0, hooks_js_1.fire)(this.recorders, 'onBreak', event, FLOW_FAILURE);
110
109
  }
111
- onError(stageName, errorMessage, error, traversalContext) {
110
+ onError(stageName, errorMessage, structuredError, traversalContext) {
112
111
  if (this.recorders.length === 0)
113
112
  return;
114
- const structuredError = (0, errorInfo_js_1.extractErrorInfo)(error);
115
113
  const event = { stageName, message: errorMessage, structuredError, traversalContext, channel: 'flow' };
116
114
  (0, hooks_js_1.fire)(this.recorders, 'onError', event, FLOW_FAILURE);
117
115
  }
118
- onStageRetry(stageName, stageId, attempt, maxAttempts, delayMs, error, traversalContext) {
116
+ onStageRetry(stageName, stageId, attempt, maxAttempts, delayMs, structuredError, traversalContext) {
119
117
  if (this.recorders.length === 0)
120
118
  return;
121
- const structuredError = (0, errorInfo_js_1.extractErrorInfo)(error);
122
119
  const event = {
123
120
  stageName,
124
121
  stageId,
@@ -132,10 +129,9 @@ class FlowRecorderDispatcher {
132
129
  };
133
130
  (0, hooks_js_1.fire)(this.recorders, 'onStageRetry', event, FLOW_FAILURE);
134
131
  }
135
- onThrottled(stageName, stageId, error, traversalContext) {
132
+ onThrottled(stageName, stageId, structuredError, traversalContext) {
136
133
  if (this.recorders.length === 0)
137
134
  return;
138
- const structuredError = (0, errorInfo_js_1.extractErrorInfo)(error);
139
135
  const event = {
140
136
  stageName,
141
137
  stageId,
@@ -187,4 +183,4 @@ class FlowRecorderDispatcher {
187
183
  }
188
184
  }
189
185
  exports.FlowRecorderDispatcher = FlowRecorderDispatcher;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd1JlY29yZGVyRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL25hcnJhdGl2ZS9GbG93UmVjb3JkZXJEaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBSUgsNERBQTZEO0FBQzdELHNEQUE4RDtBQWE5RCxtR0FBbUc7QUFDbkcsTUFBTSxZQUFZLEdBQUcsSUFBQSx3QkFBYSxFQUFDLHdCQUF3QixDQUFDLENBQUM7QUFFN0QsTUFBYSxzQkFBc0I7SUFDekIsU0FBUyxHQUFtQixFQUFFLENBQUM7SUFFdkMsc0ZBQXNGO0lBQ3RGLE1BQU0sQ0FBQyxRQUFzQjtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsa0RBQWtEO0lBQ2xELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELGlCQUFpQjtRQUNmLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsa0dBQWtHO0lBQ2xHLGVBQWUsQ0FBd0MsRUFBVTtRQUMvRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBa0IsQ0FBQztJQUNsRSxDQUFDO0lBRUQsNkVBQTZFO0lBRTdFLGVBQWUsQ0FDYixTQUFpQixFQUNqQixXQUErQixFQUMvQixnQkFBOEMsRUFDOUMsU0FBb0I7UUFFcEIsSUFBSSxJQUFJLENBQUMs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LGVBQUksRUFBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZO1FBQ1YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBd0IsV0FBVyxDQUFDLENBQUM7UUFDM0UsT0FBTyxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FDRjtBQTlORCx3REE4TkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZsb3dSZWNvcmRlckRpc3BhdGNoZXIg4oCUIEZhbnMgb3V0IGNvbnRyb2wgZmxvdyBldmVudHMgdG8gTiBhdHRhY2hlZCBGbG93UmVjb3JkZXJzLlxuICpcbiAqIEltcGxlbWVudHMgSUNvbnRyb2xGbG93TmFycmF0aXZlIHNvIGl0IGNhbiByZXBsYWNlIHRoZSBzaW5nbGVcbiAqIENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yIGluIHRoZSB0cmF2ZXJzZXIncyBIYW5kbGVyRGVwcy5cbiAqXG4gKiBFdmVyeSBldmVudCBnb2VzIHRocm91Z2ggYHJlY29yZGVyL2hvb2tzLnRzIMK3IGZpcmVgICh0aGUgb25lIHBlci1yZWNvcmRlciBsb29wKTogYSBmYWlsaW5nXG4gKiByZWNvcmRlciBpcyB3YXJuZWQgYWJvdXQgaW4gZGV2IG1vZGUgYW5kIG5ldmVyIGJyZWFrcyBleGVjdXRpb24g4oCUIGV2ZW4gd2hlbiB3aGF0IGl0IHRocmV3XG4gKiBjYW5ub3QgYmUgdHVybmVkIGludG8gYSBzdHJpbmcuXG4gKlxuICogV2hlbiBubyByZWNvcmRlcnMgYXJlIGF0dGFjaGVkLCBldmVyeSBtZXRob2QgaXMgYSBmYXN0IG5vLW9wIChlbXB0eSBhcnJheSBjaGVjaykuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBEZWNpc2lvbkV2aWRlbmNlLCBTZWxlY3Rpb25FdmlkZW5jZSB9IGZyb20gJy4uLy4uL2RlY2lkZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0cnVjdHVyZWRFcnJvckluZm8gfSBmcm9tICcuLi8uLi9lcnJvcnMvZXJyb3JJbmZvLmpzJztcbmltcG9ydCB7IGV4dHJhY3RFcnJvckluZm8gfSBmcm9tICcuLi8uLi9lcnJvcnMvZXJyb3JJbmZvLmpzJztcbmltcG9ydCB7IGZpcmUsIHdhcm5JbkRldk1vZGUgfSBmcm9tICcuLi8uLi9yZWNvcmRlci9ob29rcy5qcyc7XG5pbXBvcnQgdHlwZSB7IE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB9IGZyb20gJy4vTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRmxvd0JyZWFrRXZlbnQsXG4gIEZsb3dSZWNvcmRlcixcbiAgRmxvd1N0YWdlRXZlbnQsXG4gIEZsb3dTdGFnZVJldHJ5RXZlbnQsXG4gIEZsb3dUaHJvdHRsZWRFdmVudCxcbiAgSUNvbnRyb2xGbG93TmFycmF0aXZlLFxuICBTdGFnZVR5cGUsXG4gIFRyYXZlcnNhbENvbnRleHQsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKiogVGhlIGZsb3cgY2hhbm5lbCdzIGlzb2xhdGlvbjogYSB0aHJvd2luZyByZWNvcmRlciBpcyB3YXJuZWQgYWJvdXQgaW4gZGV2IG1vZGUsIHRoZW4gc2tpcHBlZC4gKi9cbmNvbnN0IEZMT1dfRkFJTFVSRSA9IHdhcm5JbkRldk1vZGUoJ0Zsb3dSZWNvcmRlckRpc3BhdGNoZXInKTtcblxuZXhwb3J0IGNsYXNzIEZsb3dSZWNvcmRlckRpc3BhdGNoZXIgaW1wbGVtZW50cyBJQ29udHJvbEZsb3dOYXJyYXRpdmUge1xuICBwcml2YXRlIHJlY29yZGVyczogRmxvd1JlY29yZGVyW10gPSBbXTtcblxuICAvKiogQXR0YWNoIGEgRmxvd1JlY29yZGVyLiBEdXBsaWNhdGUgSURzIGFyZSBhbGxvd2VkIChzYW1lIGFzIHNjb3BlIFNjb3BlUmVjb3JkZXIpLiAqL1xuICBhdHRhY2gocmVjb3JkZXI6IEZsb3dSZWNvcmRlcik6IHZvaWQge1xuICAgIHRoaXMucmVjb3JkZXJzLnB1c2gocmVjb3JkZXIpO1xuICB9XG5cbiAgLyoqIERldGFjaCBhbGwgRmxvd1JlY29yZGVycyB3aXRoIHRoZSBnaXZlbiBJRC4gKi9cbiAgZGV0YWNoKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29yZGVycyA9IHRoaXMucmVjb3JkZXJzLmZpbHRlcigocikgPT4gci5pZCAhPT0gaWQpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgYSBkZWZlbnNpdmUgY29weSBvZiBhdHRhY2hlZCByZWNvcmRlcnMuICovXG4gIGdldFNjb3BlUmVjb3JkZXJzKCk6IEZsb3dSZWNvcmRlcltdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMucmVjb3JkZXJzXTtcbiAgfVxuXG4gIC8qKiBGaW5kIGEgcmVjb3JkZXIgYnkgSUQuIFVzZWZ1bCBmb3IgcmV0cmlldmluZyBidWlsdC1pbiByZWNvcmRlcnMgbGlrZSBOYXJyYXRpdmVGbG93UmVjb3JkZXIuICovXG4gIGdldFJlY29yZGVyQnlJZDxUIGV4dGVuZHMgRmxvd1JlY29yZGVyID0gRmxvd1JlY29yZGVyPihpZDogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3JkZXJzLmZpbmQoKHIpID0+IHIuaWQgPT09IGlkKSBhcyBUIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8g4pSA4pSAIElDb250cm9sRmxvd05hcnJhdGl2ZSBpbXBsZW1lbnRhdGlvbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICBvblN0YWdlRXhlY3V0ZWQoXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICB0cmF2ZXJzYWxDb250ZXh0OiBUcmF2ZXJzYWxDb250ZXh0IHwgdW5kZWZpbmVkLFxuICAgIHN0YWdlVHlwZTogU3RhZ2VUeXBlLFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQ6IEZsb3dTdGFnZUV2ZW50ID0geyBzdGFnZU5hbWUsIGRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0LCBzdGFnZVR5cGUgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25TdGFnZUV4ZWN1dGVkJywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvbk5leHQoZnJvbVN0YWdlOiBzdHJpbmcsIHRvU3RhZ2U6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBmcm9tOiBmcm9tU3RhZ2UsIHRvOiB0b1N0YWdlLCBkZXNjcmlwdGlvbiwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvbk5leHQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uRGVjaXNpb24oXG4gICAgZGVjaWRlck5hbWU6IHN0cmluZyxcbiAgICBjaG9zZW5CcmFuY2g6IHN0cmluZyxcbiAgICByYXRpb25hbGU/OiBzdHJpbmcsXG4gICAgZGVjaWRlckRlc2NyaXB0aW9uPzogc3RyaW5nLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICAgIGV2aWRlbmNlPzogRGVjaXNpb25FdmlkZW5jZSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgZGVjaWRlcjogZGVjaWRlck5hbWUsXG4gICAgICBjaG9zZW46IGNob3NlbkJyYW5jaCxcbiAgICAgIHJhdGlvbmFsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBkZWNpZGVyRGVzY3JpcHRpb24sXG4gICAgICB0cmF2ZXJzYWxDb250ZXh0LFxuICAgICAgZXZpZGVuY2UsXG4gICAgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25EZWNpc2lvbicsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25Gb3JrKHBhcmVudFN0YWdlOiBzdHJpbmcsIGNoaWxkTmFtZXM6IHN0cmluZ1tdLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgcGFyZW50OiBwYXJlbnRTdGFnZSwgY2hpbGRyZW46IGNoaWxkTmFtZXMsIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25Gb3JrJywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvblNlbGVjdGVkKFxuICAgIHBhcmVudFN0YWdlOiBzdHJpbmcsXG4gICAgc2VsZWN0ZWROYW1lczogc3RyaW5nW10sXG4gICAgdG90YWxDb3VudDogbnVtYmVyLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICAgIGV2aWRlbmNlPzogU2VsZWN0aW9uRXZpZGVuY2UsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgcGFyZW50OiBwYXJlbnRTdGFnZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkTmFtZXMsIHRvdGFsOiB0b3RhbENvdW50LCB0cmF2ZXJzYWxDb250ZXh0LCBldmlkZW5jZSB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvblNlbGVjdGVkJywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvblN1YmZsb3dFbnRyeShcbiAgICBzdWJmbG93TmFtZTogc3RyaW5nLFxuICAgIHN1YmZsb3dJZD86IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyxcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgICBtYXBwZWRJbnB1dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IG5hbWU6IHN1YmZsb3dOYW1lLCBzdWJmbG93SWQsIGRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0LCBtYXBwZWRJbnB1dCB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvblN1YmZsb3dFbnRyeScsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25TdWJmbG93RXhpdChcbiAgICBzdWJmbG93TmFtZTogc3RyaW5nLFxuICAgIHN1YmZsb3dJZD86IHN0cmluZyxcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgICBvdXRwdXRTdGF0ZT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IG5hbWU6IHN1YmZsb3dOYW1lLCBzdWJmbG93SWQsIHRyYXZlcnNhbENvbnRleHQsIG91dHB1dFN0YXRlIH07XG4gICAgZmlyZSh0aGlzLnJlY29yZGVycywgJ29uU3ViZmxvd0V4aXQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uU3ViZmxvd1JlZ2lzdGVyZWQoc3ViZmxvd0lkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHNwZWNTdHJ1Y3R1cmU/OiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBzdWJmbG93SWQsIG5hbWUsIGRlc2NyaXB0aW9uLCBzcGVjU3RydWN0dXJlIH07XG4gICAgZmlyZSh0aGlzLnJlY29yZGVycywgJ29uU3ViZmxvd1JlZ2lzdGVyZWQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uTG9vcCh0YXJnZXRTdGFnZTogc3RyaW5nLCBpdGVyYXRpb246IG51bWJlciwgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyB0YXJnZXQ6IHRhcmdldFN0YWdlLCBpdGVyYXRpb24sIGRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZmlyZSh0aGlzLnJlY29yZGVycywgJ29uTG9vcCcsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25CcmVhayhcbiAgICBzdGFnZU5hbWU6IHN0cmluZyxcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICAgcHJvcGFnYXRlZEZyb21TdWJmbG93Pzogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQ6IEZsb3dCcmVha0V2ZW50ID0ge1xuICAgICAgc3RhZ2VOYW1lLFxuICAgICAgLi4uKHRyYXZlcnNhbENvbnRleHQgJiYgeyB0cmF2ZXJzYWxDb250ZXh0IH0pLFxuICAgICAgLi4uKHJlYXNvbiAhPT0gdW5kZWZpbmVkICYmIHsgcmVhc29uIH0pLFxuICAgICAgLi4uKHByb3BhZ2F0ZWRGcm9tU3ViZmxvdyAhPT0gdW5kZWZpbmVkICYmIHsgcHJvcGFnYXRlZEZyb21TdWJmbG93IH0pLFxuICAgIH07XG4gICAgZmlyZSh0aGlzLnJlY29yZGVycywgJ29uQnJlYWsnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uRXJyb3Ioc3RhZ2VOYW1lOiBzdHJpbmcsIGVycm9yTWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3Qgc3RydWN0dXJlZEVycm9yID0gZXh0cmFjdEVycm9ySW5mbyhlcnJvcik7XG4gICAgY29uc3QgZXZlbnQgPSB7IHN0YWdlTmFtZSwgbWVzc2FnZTogZXJyb3JNZXNzYWdlLCBzdHJ1Y3R1cmVkRXJyb3IsIHRyYXZlcnNhbENvbnRleHQsIGNoYW5uZWw6ICdmbG93JyBhcyBjb25zdCB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvbkVycm9yJywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvblN0YWdlUmV0cnkoXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhZ2VJZDogc3RyaW5nLFxuICAgIGF0dGVtcHQ6IG51bWJlcixcbiAgICBtYXhBdHRlbXB0czogbnVtYmVyLFxuICAgIGRlbGF5TXM6IG51bWJlcixcbiAgICBlcnJvcjogdW5rbm93bixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHN0cnVjdHVyZWRFcnJvciA9IGV4dHJhY3RFcnJvckluZm8oZXJyb3IpO1xuICAgIGNvbnN0IGV2ZW50OiBGbG93U3RhZ2VSZXRyeUV2ZW50ID0ge1xuICAgICAgc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VJZCxcbiAgICAgIGF0dGVtcHQsXG4gICAgICBtYXhBdHRlbXB0cyxcbiAgICAgIGRlbGF5TXMsXG4gICAgICBtZXNzYWdlOiBzdHJ1Y3R1cmVkRXJyb3IubWVzc2FnZSxcbiAgICAgIHN0cnVjdHVyZWRFcnJvcixcbiAgICAgIHRyYXZlcnNhbENvbnRleHQsXG4gICAgICBjaGFubmVsOiAnZmxvdycgYXMgY29uc3QsXG4gICAgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25TdGFnZVJldHJ5JywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvblRocm90dGxlZChzdGFnZU5hbWU6IHN0cmluZywgc3RhZ2VJZDogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3Qgc3RydWN0dXJlZEVycm9yID0gZXh0cmFjdEVycm9ySW5mbyhlcnJvcik7XG4gICAgY29uc3QgZXZlbnQ6IEZsb3dUaHJvdHRsZWRFdmVudCA9IHtcbiAgICAgIHN0YWdlTmFtZSxcbiAgICAgIHN0YWdlSWQsXG4gICAgICBtZXNzYWdlOiBzdHJ1Y3R1cmVkRXJyb3IubWVzc2FnZSxcbiAgICAgIHN0cnVjdHVyZWRFcnJvcixcbiAgICAgIHRyYXZlcnNhbENvbnRleHQsXG4gICAgICBjaGFubmVsOiAnZmxvdycgYXMgY29uc3QsXG4gICAgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25UaHJvdHRsZWQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uUGF1c2UoXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhZ2VJZDogc3RyaW5nLFxuICAgIHBhdXNlRGF0YTogdW5rbm93bixcbiAgICBzdWJmbG93UGF0aDogcmVhZG9ubHkgc3RyaW5nW10sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgc3RhZ2VOYW1lLCBzdGFnZUlkLCBwYXVzZURhdGEsIHN1YmZsb3dQYXRoLCB0cmF2ZXJzYWxDb250ZXh0LCBjaGFubmVsOiAnZmxvdycgYXMgY29uc3QgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25QYXVzZScsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25SZXN1bWUoc3RhZ2VOYW1lOiBzdHJpbmcsIHN0YWdlSWQ6IHN0cmluZywgaGFzSW5wdXQ6IGJvb2xlYW4sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBzdGFnZU5hbWUsIHN0YWdlSWQsIGhhc0lucHV0LCB0cmF2ZXJzYWxDb250ZXh0LCBjaGFubmVsOiAnZmxvdycgYXMgY29uc3QgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25SZXN1bWUnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uUnVuU3RhcnQoaW5wdXQ6IHVua25vd24sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBwYXlsb2FkOiBpbnB1dCwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvblJ1blN0YXJ0JywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvblJ1bkVuZChvdXRwdXQ6IHVua25vd24sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBwYXlsb2FkOiBvdXRwdXQsIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25SdW5FbmQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uUnVuRmFpbGVkKGVycm9yOiBTdHJ1Y3R1cmVkRXJyb3JJbmZvLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgc3RydWN0dXJlZEVycm9yOiBlcnJvciwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvblJ1bkZhaWxlZCcsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgc2VudGVuY2VzIGZyb20gYW4gYXR0YWNoZWQgTmFycmF0aXZlRmxvd1JlY29yZGVyIChsb29rZWQgdXAgYnkgSUQpLlxuICAgKiBDYWxsZXJzIHRoYXQgbmVlZCBzZW50ZW5jZXMgc2hvdWxkIGF0dGFjaCBhIE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB3aXRoIGlkICduYXJyYXRpdmUnXG4gICAqIGFuZCByZXRyaWV2ZSBpdCBkaXJlY3RseSB2aWEgZ2V0UmVjb3JkZXJCeUlkKCkgaWYgdGhleSBuZWVkIHR5cGVkIGFjY2Vzcy5cbiAgICovXG4gIGdldFNlbnRlbmNlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgbmFycmF0aXZlID0gdGhpcy5nZXRSZWNvcmRlckJ5SWQ8TmFycmF0aXZlRmxvd1JlY29yZGVyPignbmFycmF0aXZlJyk7XG4gICAgcmV0dXJuIG5hcnJhdGl2ZT8uZ2V0U2VudGVuY2VzKCkgPz8gW107XG4gIH1cbn1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd1JlY29yZGVyRGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL25hcnJhdGl2ZS9GbG93UmVjb3JkZXJEaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBSUgsc0RBQThEO0FBYTlELG1HQUFtRztBQUNuRyxNQUFNLFlBQVksR0FBRyxJQUFBLHdCQUFhLEVBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUU3RCxNQUFhLHNCQUFzQjtJQUN6QixTQUFTLEdBQW1CLEVBQUUsQ0FBQztJQUV2QyxzRkFBc0Y7SUFDdEYsTUFBTSxDQUFDLFFBQXNCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxzREFBc0Q7SUFDdEQsaUJBQWlCO1FBQ2YsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxrR0FBa0c7SUFDbEcsZUFBZSxDQUF3QyxFQUFVO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFrQixDQUFDO0lBQ2xFLENBQUM7SUFFRCw2RUFBNkU7SUFFN0UsZUFBZSxDQUNiLFNBQWlCLEVBQ2pCLFdBQStCLEVBQy9CLGdCQUE4QyxFQUM5QyxTQUFvQjtRQUVwQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFB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QUFPLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBck9ELHdEQXFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmxvd1JlY29yZGVyRGlzcGF0Y2hlciDigJQgRmFucyBvdXQgY29udHJvbCBmbG93IGV2ZW50cyB0byBOIGF0dGFjaGVkIEZsb3dSZWNvcmRlcnMuXG4gKlxuICogSW1wbGVtZW50cyBJQ29udHJvbEZsb3dOYXJyYXRpdmUgc28gaXQgY2FuIHJlcGxhY2UgdGhlIHNpbmdsZVxuICogQ29udHJvbEZsb3dOYXJyYXRpdmVHZW5lcmF0b3IgaW4gdGhlIHRyYXZlcnNlcidzIEhhbmRsZXJEZXBzLlxuICpcbiAqIEV2ZXJ5IGV2ZW50IGdvZXMgdGhyb3VnaCBgcmVjb3JkZXIvaG9va3MudHMgwrcgZmlyZWAgKHRoZSBvbmUgcGVyLXJlY29yZGVyIGxvb3ApOiBhIGZhaWxpbmdcbiAqIHJlY29yZGVyIGlzIHdhcm5lZCBhYm91dCBpbiBkZXYgbW9kZSBhbmQgbmV2ZXIgYnJlYWtzIGV4ZWN1dGlvbiDigJQgZXZlbiB3aGVuIHdoYXQgaXQgdGhyZXdcbiAqIGNhbm5vdCBiZSB0dXJuZWQgaW50byBhIHN0cmluZy5cbiAqXG4gKiBXaGVuIG5vIHJlY29yZGVycyBhcmUgYXR0YWNoZWQsIGV2ZXJ5IG1ldGhvZCBpcyBhIGZhc3Qgbm8tb3AgKGVtcHR5IGFycmF5IGNoZWNrKS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlY2lzaW9uRXZpZGVuY2UsIFNlbGVjdGlvbkV2aWRlbmNlIH0gZnJvbSAnLi4vLi4vZGVjaWRlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RydWN0dXJlZEVycm9ySW5mbyB9IGZyb20gJy4uLy4uL2Vycm9ycy9lcnJvckluZm8uanMnO1xuaW1wb3J0IHsgZmlyZSwgd2FybkluRGV2TW9kZSB9IGZyb20gJy4uLy4uL3JlY29yZGVyL2hvb2tzLmpzJztcbmltcG9ydCB0eXBlIHsgTmFycmF0aXZlRmxvd1JlY29yZGVyIH0gZnJvbSAnLi9OYXJyYXRpdmVGbG93UmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBGbG93QnJlYWtFdmVudCxcbiAgRmxvd1JlY29yZGVyLFxuICBGbG93U3RhZ2VFdmVudCxcbiAgRmxvd1N0YWdlUmV0cnlFdmVudCxcbiAgRmxvd1Rocm90dGxlZEV2ZW50LFxuICBJQ29udHJvbEZsb3dOYXJyYXRpdmUsXG4gIFN0YWdlVHlwZSxcbiAgVHJhdmVyc2FsQ29udGV4dCxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKiBUaGUgZmxvdyBjaGFubmVsJ3MgaXNvbGF0aW9uOiBhIHRocm93aW5nIHJlY29yZGVyIGlzIHdhcm5lZCBhYm91dCBpbiBkZXYgbW9kZSwgdGhlbiBza2lwcGVkLiAqL1xuY29uc3QgRkxPV19GQUlMVVJFID0gd2FybkluRGV2TW9kZSgnRmxvd1JlY29yZGVyRGlzcGF0Y2hlcicpO1xuXG5leHBvcnQgY2xhc3MgRmxvd1JlY29yZGVyRGlzcGF0Y2hlciBpbXBsZW1lbnRzIElDb250cm9sRmxvd05hcnJhdGl2ZSB7XG4gIHByaXZhdGUgcmVjb3JkZXJzOiBGbG93UmVjb3JkZXJbXSA9IFtdO1xuXG4gIC8qKiBBdHRhY2ggYSBGbG93UmVjb3JkZXIuIER1cGxpY2F0ZSBJRHMgYXJlIGFsbG93ZWQgKHNhbWUgYXMgc2NvcGUgU2NvcGVSZWNvcmRlcikuICovXG4gIGF0dGFjaChyZWNvcmRlcjogRmxvd1JlY29yZGVyKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvcmRlcnMucHVzaChyZWNvcmRlcik7XG4gIH1cblxuICAvKiogRGV0YWNoIGFsbCBGbG93UmVjb3JkZXJzIHdpdGggdGhlIGdpdmVuIElELiAqL1xuICBkZXRhY2goaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVjb3JkZXJzID0gdGhpcy5yZWNvcmRlcnMuZmlsdGVyKChyKSA9PiByLmlkICE9PSBpZCk7XG4gIH1cblxuICAvKiogUmV0dXJucyBhIGRlZmVuc2l2ZSBjb3B5IG9mIGF0dGFjaGVkIHJlY29yZGVycy4gKi9cbiAgZ2V0U2NvcGVSZWNvcmRlcnMoKTogRmxvd1JlY29yZGVyW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5yZWNvcmRlcnNdO1xuICB9XG5cbiAgLyoqIEZpbmQgYSByZWNvcmRlciBieSBJRC4gVXNlZnVsIGZvciByZXRyaWV2aW5nIGJ1aWx0LWluIHJlY29yZGVycyBsaWtlIE5hcnJhdGl2ZUZsb3dSZWNvcmRlci4gKi9cbiAgZ2V0UmVjb3JkZXJCeUlkPFQgZXh0ZW5kcyBGbG93UmVjb3JkZXIgPSBGbG93UmVjb3JkZXI+KGlkOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRlcnMuZmluZCgocikgPT4gci5pZCA9PT0gaWQpIGFzIFQgfCB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyDilIDilIAgSUNvbnRyb2xGbG93TmFycmF0aXZlIGltcGxlbWVudGF0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIG9uU3RhZ2VFeGVjdXRlZChcbiAgICBzdGFnZU5hbWU6IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHRyYXZlcnNhbENvbnRleHQ6IFRyYXZlcnNhbENvbnRleHQgfCB1bmRlZmluZWQsXG4gICAgc3RhZ2VUeXBlOiBTdGFnZVR5cGUsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudDogRmxvd1N0YWdlRXZlbnQgPSB7IHN0YWdlTmFtZSwgZGVzY3JpcHRpb24sIHRyYXZlcnNhbENvbnRleHQsIHN0YWdlVHlwZSB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvblN0YWdlRXhlY3V0ZWQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uTmV4dChmcm9tU3RhZ2U6IHN0cmluZywgdG9TdGFnZTogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IGZyb206IGZyb21TdGFnZSwgdG86IHRvU3RhZ2UsIGRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0IH07XG4gICAgZmlyZSh0aGlzLnJlY29yZGVycywgJ29uTmV4dCcsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25EZWNpc2lvbihcbiAgICBkZWNpZGVyTmFtZTogc3RyaW5nLFxuICAgIGNob3NlbkJyYW5jaDogc3RyaW5nLFxuICAgIHJhdGlvbmFsZT86IHN0cmluZyxcbiAgICBkZWNpZGVyRGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgZXZpZGVuY2U/OiBEZWNpc2lvbkV2aWRlbmNlLFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7XG4gICAgICBkZWNpZGVyOiBkZWNpZGVyTmFtZSxcbiAgICAgIGNob3NlbjogY2hvc2VuQnJhbmNoLFxuICAgICAgcmF0aW9uYWxlLFxuICAgICAgZGVzY3JpcHRpb246IGRlY2lkZXJEZXNjcmlwdGlvbixcbiAgICAgIHRyYXZlcnNhbENvbnRleHQsXG4gICAgICBldmlkZW5jZSxcbiAgICB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvbkRlY2lzaW9uJywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvbkZvcmsocGFyZW50U3RhZ2U6IHN0cmluZywgY2hpbGROYW1lczogc3RyaW5nW10sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBwYXJlbnQ6IHBhcmVudFN0YWdlLCBjaGlsZHJlbjogY2hpbGROYW1lcywgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvbkZvcmsnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWQoXG4gICAgcGFyZW50U3RhZ2U6IHN0cmluZyxcbiAgICBzZWxlY3RlZE5hbWVzOiBzdHJpbmdbXSxcbiAgICB0b3RhbENvdW50OiBudW1iZXIsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgZXZpZGVuY2U/OiBTZWxlY3Rpb25FdmlkZW5jZSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBwYXJlbnQ6IHBhcmVudFN0YWdlLCBzZWxlY3RlZDogc2VsZWN0ZWROYW1lcywgdG90YWw6IHRvdGFsQ291bnQsIHRyYXZlcnNhbENvbnRleHQsIGV2aWRlbmNlIH07XG4gICAgZmlyZSh0aGlzLnJlY29yZGVycywgJ29uU2VsZWN0ZWQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uU3ViZmxvd0VudHJ5KFxuICAgIHN1YmZsb3dOYW1lOiBzdHJpbmcsXG4gICAgc3ViZmxvd0lkPzogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICAgIG1hcHBlZElucHV0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgbmFtZTogc3ViZmxvd05hbWUsIHN1YmZsb3dJZCwgZGVzY3JpcHRpb24sIHRyYXZlcnNhbENvbnRleHQsIG1hcHBlZElucHV0IH07XG4gICAgZmlyZSh0aGlzLnJlY29yZGVycywgJ29uU3ViZmxvd0VudHJ5JywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvblN1YmZsb3dFeGl0KFxuICAgIHN1YmZsb3dOYW1lOiBzdHJpbmcsXG4gICAgc3ViZmxvd0lkPzogc3RyaW5nLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICAgIG91dHB1dFN0YXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgbmFtZTogc3ViZmxvd05hbWUsIHN1YmZsb3dJZCwgdHJhdmVyc2FsQ29udGV4dCwgb3V0cHV0U3RhdGUgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25TdWJmbG93RXhpdCcsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25TdWJmbG93UmVnaXN0ZXJlZChzdWJmbG93SWQ6IHN0cmluZywgbmFtZTogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZywgc3BlY1N0cnVjdHVyZT86IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IHN1YmZsb3dJZCwgbmFtZSwgZGVzY3JpcHRpb24sIHNwZWNTdHJ1Y3R1cmUgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25TdWJmbG93UmVnaXN0ZXJlZCcsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25Mb29wKHRhcmdldFN0YWdlOiBzdHJpbmcsIGl0ZXJhdGlvbjogbnVtYmVyLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQgPSB7IHRhcmdldDogdGFyZ2V0U3RhZ2UsIGl0ZXJhdGlvbiwgZGVzY3JpcHRpb24sIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25Mb29wJywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvbkJyZWFrKFxuICAgIHN0YWdlTmFtZTogc3RyaW5nLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgICBwcm9wYWdhdGVkRnJvbVN1YmZsb3c/OiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudDogRmxvd0JyZWFrRXZlbnQgPSB7XG4gICAgICBzdGFnZU5hbWUsXG4gICAgICAuLi4odHJhdmVyc2FsQ29udGV4dCAmJiB7IHRyYXZlcnNhbENvbnRleHQgfSksXG4gICAgICAuLi4ocmVhc29uICE9PSB1bmRlZmluZWQgJiYgeyByZWFzb24gfSksXG4gICAgICAuLi4ocHJvcGFnYXRlZEZyb21TdWJmbG93ICE9PSB1bmRlZmluZWQgJiYgeyBwcm9wYWdhdGVkRnJvbVN1YmZsb3cgfSksXG4gICAgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25CcmVhaycsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25FcnJvcihcbiAgICBzdGFnZU5hbWU6IHN0cmluZyxcbiAgICBlcnJvck1lc3NhZ2U6IHN0cmluZyxcbiAgICBzdHJ1Y3R1cmVkRXJyb3I6IFN0cnVjdHVyZWRFcnJvckluZm8sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgc3RhZ2VOYW1lLCBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsIHN0cnVjdHVyZWRFcnJvciwgdHJhdmVyc2FsQ29udGV4dCwgY2hhbm5lbDogJ2Zsb3cnIGFzIGNvbnN0IH07XG4gICAgZmlyZSh0aGlzLnJlY29yZGVycywgJ29uRXJyb3InLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uU3RhZ2VSZXRyeShcbiAgICBzdGFnZU5hbWU6IHN0cmluZyxcbiAgICBzdGFnZUlkOiBzdHJpbmcsXG4gICAgYXR0ZW1wdDogbnVtYmVyLFxuICAgIG1heEF0dGVtcHRzOiBudW1iZXIsXG4gICAgZGVsYXlNczogbnVtYmVyLFxuICAgIHN0cnVjdHVyZWRFcnJvcjogU3RydWN0dXJlZEVycm9ySW5mbyxcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50OiBGbG93U3RhZ2VSZXRyeUV2ZW50ID0ge1xuICAgICAgc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VJZCxcbiAgICAgIGF0dGVtcHQsXG4gICAgICBtYXhBdHRlbXB0cyxcbiAgICAgIGRlbGF5TXMsXG4gICAgICBtZXNzYWdlOiBzdHJ1Y3R1cmVkRXJyb3IubWVzc2FnZSxcbiAgICAgIHN0cnVjdHVyZWRFcnJvcixcbiAgICAgIHRyYXZlcnNhbENvbnRleHQsXG4gICAgICBjaGFubmVsOiAnZmxvdycgYXMgY29uc3QsXG4gICAgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25TdGFnZVJldHJ5JywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvblRocm90dGxlZChcbiAgICBzdGFnZU5hbWU6IHN0cmluZyxcbiAgICBzdGFnZUlkOiBzdHJpbmcsXG4gICAgc3RydWN0dXJlZEVycm9yOiBTdHJ1Y3R1cmVkRXJyb3JJbmZvLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvcmRlcnMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgZXZlbnQ6IEZsb3dUaHJvdHRsZWRFdmVudCA9IHtcbiAgICAgIHN0YWdlTmFtZSxcbiAgICAgIHN0YWdlSWQsXG4gICAgICBtZXNzYWdlOiBzdHJ1Y3R1cmVkRXJyb3IubWVzc2FnZSxcbiAgICAgIHN0cnVjdHVyZWRFcnJvcixcbiAgICAgIHRyYXZlcnNhbENvbnRleHQsXG4gICAgICBjaGFubmVsOiAnZmxvdycgYXMgY29uc3QsXG4gICAgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25UaHJvdHRsZWQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uUGF1c2UoXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhZ2VJZDogc3RyaW5nLFxuICAgIHBhdXNlRGF0YTogdW5rbm93bixcbiAgICBzdWJmbG93UGF0aDogcmVhZG9ubHkgc3RyaW5nW10sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgc3RhZ2VOYW1lLCBzdGFnZUlkLCBwYXVzZURhdGEsIHN1YmZsb3dQYXRoLCB0cmF2ZXJzYWxDb250ZXh0LCBjaGFubmVsOiAnZmxvdycgYXMgY29uc3QgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25QYXVzZScsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgb25SZXN1bWUoc3RhZ2VOYW1lOiBzdHJpbmcsIHN0YWdlSWQ6IHN0cmluZywgaGFzSW5wdXQ6IGJvb2xlYW4sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBzdGFnZU5hbWUsIHN0YWdlSWQsIGhhc0lucHV0LCB0cmF2ZXJzYWxDb250ZXh0LCBjaGFubmVsOiAnZmxvdycgYXMgY29uc3QgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25SZXN1bWUnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uUnVuU3RhcnQoaW5wdXQ6IHVua25vd24sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBwYXlsb2FkOiBpbnB1dCwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvblJ1blN0YXJ0JywgZXZlbnQsIEZMT1dfRkFJTFVSRSk7XG4gIH1cblxuICBvblJ1bkVuZChvdXRwdXQ6IHVua25vd24sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGV2ZW50ID0geyBwYXlsb2FkOiBvdXRwdXQsIHRyYXZlcnNhbENvbnRleHQgfTtcbiAgICBmaXJlKHRoaXMucmVjb3JkZXJzLCAnb25SdW5FbmQnLCBldmVudCwgRkxPV19GQUlMVVJFKTtcbiAgfVxuXG4gIG9uUnVuRmFpbGVkKGVycm9yOiBTdHJ1Y3R1cmVkRXJyb3JJbmZvLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHsgc3RydWN0dXJlZEVycm9yOiBlcnJvciwgdHJhdmVyc2FsQ29udGV4dCB9O1xuICAgIGZpcmUodGhpcy5yZWNvcmRlcnMsICdvblJ1bkZhaWxlZCcsIGV2ZW50LCBGTE9XX0ZBSUxVUkUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgc2VudGVuY2VzIGZyb20gYW4gYXR0YWNoZWQgTmFycmF0aXZlRmxvd1JlY29yZGVyIChsb29rZWQgdXAgYnkgSUQpLlxuICAgKiBDYWxsZXJzIHRoYXQgbmVlZCBzZW50ZW5jZXMgc2hvdWxkIGF0dGFjaCBhIE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB3aXRoIGlkICduYXJyYXRpdmUnXG4gICAqIGFuZCByZXRyaWV2ZSBpdCBkaXJlY3RseSB2aWEgZ2V0UmVjb3JkZXJCeUlkKCkgaWYgdGhleSBuZWVkIHR5cGVkIGFjY2Vzcy5cbiAgICovXG4gIGdldFNlbnRlbmNlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgbmFycmF0aXZlID0gdGhpcy5nZXRSZWNvcmRlckJ5SWQ8TmFycmF0aXZlRmxvd1JlY29yZGVyPignbmFycmF0aXZlJyk7XG4gICAgcmV0dXJuIG5hcnJhdGl2ZT8uZ2V0U2VudGVuY2VzKCkgPz8gW107XG4gIH1cbn1cbiJdfQ==
@@ -11,15 +11,24 @@
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.NarrativeFlowRecorder = void 0;
14
+ const sentences_js_1 = require("./formatting/sentences.js");
14
15
  class NarrativeFlowRecorder {
15
16
  id;
16
17
  sentences = [];
17
18
  /** Parallel array: the actual stage name that produced each sentence. */
18
19
  stageNames = [];
20
+ /**
21
+ * The stage whose arrival `onLoop` / `onResume` just narrated. Its completion
22
+ * line would repeat that arrival ("Next, it moved on to X."), so the next
23
+ * `onStageExecuted` for that stage stays silent — an arrival is told ONCE.
24
+ */
25
+ announcedArrival;
19
26
  constructor(id) {
20
27
  this.id = id ?? 'narrative';
21
28
  }
22
29
  onStageExecuted(event) {
30
+ const announced = this.announcedArrival;
31
+ this.announcedArrival = undefined;
23
32
  // Only LINEAR stages produce a "moved on to X" narrative line.
24
33
  // Decider / fork / selector / subflow-mount stages have their
25
34
  // own dedicated narrative lines from onDecision / onFork /
@@ -27,42 +36,22 @@ class NarrativeFlowRecorder {
27
36
  // double up the narrative.
28
37
  if (event.stageType !== 'linear')
29
38
  return;
30
- if (event.description) {
31
- this.sentences.push(`Next step: ${event.description}.`);
32
- }
33
- else {
34
- this.sentences.push(`Next, it moved on to ${event.stageName}.`);
35
- }
39
+ if (announced === event.stageName)
40
+ return;
41
+ this.sentences.push((0, sentences_js_1.nextStageSentence)(event));
36
42
  this.stageNames.push(event.stageName);
37
43
  }
38
- onNext(event) {
39
- if (event.description) {
40
- this.sentences.push(`Next step: ${event.description}.`);
41
- }
42
- else {
43
- this.sentences.push(`Next, it moved on to ${event.to}.`);
44
- }
45
- this.stageNames.push(event.to);
44
+ onNext(_event) {
45
+ // An edge announces a destination, not its completion. Linear stage
46
+ // sentences belong to onStageExecuted; other kinds have dedicated hooks.
47
+ // Keep this event silent, as CombinedNarrativeRecorder · onNext does.
46
48
  }
47
49
  onDecision(event) {
48
- const branchName = event.chosen;
49
- if (event.description && event.rationale) {
50
- this.sentences.push(`It ${event.description}: ${event.rationale}, so it chose ${branchName}.`);
51
- }
52
- else if (event.description) {
53
- this.sentences.push(`It ${event.description} and chose ${branchName}.`);
54
- }
55
- else if (event.rationale) {
56
- this.sentences.push(`A decision was made: ${event.rationale}, so the path taken was ${branchName}.`);
57
- }
58
- else {
59
- this.sentences.push(`A decision was made, and the path taken was ${branchName}.`);
60
- }
50
+ this.sentences.push((0, sentences_js_1.decisionSentence)(event));
61
51
  this.stageNames.push(event.decider);
62
52
  }
63
53
  onFork(event) {
64
- const names = event.children.join(', ');
65
- this.sentences.push(`Forking into ${event.children.length} parallel paths: ${names}.`);
54
+ this.sentences.push((0, sentences_js_1.forkSentence)(event));
66
55
  this.stageNames.push(undefined);
67
56
  }
68
57
  onSelected(event) {
@@ -84,29 +73,19 @@ class NarrativeFlowRecorder {
84
73
  this.stageNames.push(event.name);
85
74
  }
86
75
  onLoop(event) {
87
- if (event.description) {
88
- this.sentences.push(`On pass ${event.iteration}: ${event.description} again.`);
89
- }
90
- else {
91
- this.sentences.push(`On pass ${event.iteration} through ${event.target}.`);
92
- }
76
+ this.sentences.push((0, sentences_js_1.loopSentence)(event));
93
77
  this.stageNames.push(event.target);
78
+ this.announcedArrival = event.target;
94
79
  }
95
80
  onBreak(event) {
96
- this.sentences.push(`Execution stopped at ${event.stageName}.`);
81
+ this.sentences.push((0, sentences_js_1.breakSentence)(event));
97
82
  this.stageNames.push(event.stageName);
98
83
  }
99
84
  onError(event) {
100
- let sentence = `An error occurred at ${event.stageName}: ${event.message}.`;
85
+ let sentence = (0, sentences_js_1.errorSentence)(event);
101
86
  // Enrich with field-level issues when available
102
87
  if (event.structuredError.issues && event.structuredError.issues.length > 0) {
103
- const issueDetails = event.structuredError.issues
104
- .map((issue) => {
105
- const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
106
- return `${path}: ${issue.message}`;
107
- })
108
- .join('; ');
109
- sentence += ` Validation issues: ${issueDetails}.`;
88
+ sentence += (0, sentences_js_1.validationSentence)((0, sentences_js_1.validationDetails)(event.structuredError.issues));
110
89
  }
111
90
  this.sentences.push(sentence);
112
91
  this.stageNames.push(event.stageName);
@@ -118,13 +97,13 @@ class NarrativeFlowRecorder {
118
97
  this.stageNames.push(event.stageName);
119
98
  }
120
99
  onPause(event) {
121
- this.sentences.push(`Execution paused at ${event.stageName}.`);
100
+ this.sentences.push((0, sentences_js_1.pauseSentence)(event));
122
101
  this.stageNames.push(event.stageName);
123
102
  }
124
103
  onResume(event) {
125
- const suffix = event.hasInput ? ' with input.' : '.';
126
- this.sentences.push(`Execution resumed at ${event.stageName}${suffix}`);
104
+ this.sentences.push((0, sentences_js_1.resumeSentence)(event));
127
105
  this.stageNames.push(event.stageName);
106
+ this.announcedArrival = event.stageName;
128
107
  }
129
108
  /** Returns a defensive copy of accumulated sentences. */
130
109
  getSentences() {
@@ -134,7 +113,8 @@ class NarrativeFlowRecorder {
134
113
  clear() {
135
114
  this.sentences = [];
136
115
  this.stageNames = [];
116
+ this.announcedArrival = undefined;
137
117
  }
138
118
  }
139
119
  exports.NarrativeFlowRecorder = NarrativeFlowRecorder;
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL05hcnJhdGl2ZUZsb3dSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7QUFrQkgsTUFBYSxxQkFBcUI7SUFDdkIsRUFBRSxDQUFTO0lBQ1osU0FBUyxHQUFhLEVBQUUsQ0FBQztJQUNqQyx5RUFBeUU7SUFDakUsVUFBVSxHQUEyQixFQUFFLENBQUM7SUFFaEQsWUFBWSxFQUFXO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXFCO1FBQ25DLCtEQUErRDtRQUMvRCw4REFBOEQ7UUFDOUQsMkRBQTJEO1FBQzNELDZEQUE2RDtRQUM3RCwyQkFBMkI7UUFDM0IsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLFFBQVE7WUFBRSxPQUFPO1FBQ3pDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW9CO1FBQ3pCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFD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QUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxDQUFDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseURBQXlEO0lBQ3pELFlBQVk7UUFDVixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGtFQUFrRTtJQUNsRSxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBeElELHNEQXdJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTmFycmF0aXZlRmxvd1JlY29yZGVyIOKAlCBEZWZhdWx0IEZsb3dSZWNvcmRlciB0aGF0IGdlbmVyYXRlcyBwbGFpbi1FbmdsaXNoIG5hcnJhdGl2ZS5cbiAqXG4gKiBUaGlzIGlzIHRoZSBGbG93UmVjb3JkZXIgZXF1aXZhbGVudCBvZiBDb250cm9sRmxvd05hcnJhdGl2ZUdlbmVyYXRvci5cbiAqIFByb2R1Y2VzIHRoZSBzYW1lIHNlbnRlbmNlcywgc2FtZSBmb3JtYXQsIHNhbWUgYmVoYXZpb3Ig4oCUIGJ1dCBhcyBhXG4gKiBwbHVnZ2FibGUgRmxvd1JlY29yZGVyIHRoYXQgY2FuIGJlIHN3YXBwZWQsIGV4dGVuZGVkLCBvciBjb21wb3NlZC5cbiAqXG4gKiBDb25zdW1lcnMgd2hvIHdhbnQgZGlmZmVyZW50IG5hcnJhdGl2ZSBiZWhhdmlvciAod2luZG93ZWQgbG9vcHMsIGFkYXB0aXZlXG4gKiBzdW1tYXJpemF0aW9uLCBldGMuKSBjYW4gcmVwbGFjZSB0aGlzIHdpdGggYSBkaWZmZXJlbnQgRmxvd1JlY29yZGVyLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRmxvd0JyZWFrRXZlbnQsXG4gIEZsb3dEZWNpc2lvbkV2ZW50LFxuICBGbG93RXJyb3JFdmVudCxcbiAgRmxvd0ZvcmtFdmVudCxcbiAgRmxvd0xvb3BFdmVudCxcbiAgRmxvd05leHRFdmVudCxcbiAgRmxvd1BhdXNlRXZlbnQsXG4gIEZsb3dSZWNvcmRlcixcbiAgRmxvd1Jlc3VtZUV2ZW50LFxuICBGbG93U2VsZWN0ZWRFdmVudCxcbiAgRmxvd1N0YWdlRXZlbnQsXG4gIEZsb3dTdGFnZVJldHJ5RXZlbnQsXG4gIEZsb3dTdWJmbG93RXZlbnQsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgTmFycmF0aXZlRmxvd1JlY29yZGVyIGltcGxlbWVudHMgRmxvd1JlY29yZGVyIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBzZW50ZW5jZXM6IHN0cmluZ1tdID0gW107XG4gIC8qKiBQYXJhbGxlbCBhcnJheTogdGhlIGFjdHVhbCBzdGFnZSBuYW1lIHRoYXQgcHJvZHVjZWQgZWFjaCBzZW50ZW5jZS4gKi9cbiAgcHJpdmF0ZSBzdGFnZU5hbWVzOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoaWQ/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmlkID0gaWQgPz8gJ25hcnJhdGl2ZSc7XG4gIH1cblxuICBvblN0YWdlRXhlY3V0ZWQoZXZlbnQ6IEZsb3dTdGFnZUV2ZW50KTogdm9pZCB7XG4gICAgLy8gT25seSBMSU5FQVIgc3RhZ2VzIHByb2R1Y2UgYSBcIm1vdmVkIG9uIHRvIFhcIiBuYXJyYXRpdmUgbGluZS5cbiAgICAvLyBEZWNpZGVyIC8gZm9yayAvIHNlbGVjdG9yIC8gc3ViZmxvdy1tb3VudCBzdGFnZXMgaGF2ZSB0aGVpclxuICAgIC8vIG93biBkZWRpY2F0ZWQgbmFycmF0aXZlIGxpbmVzIGZyb20gb25EZWNpc2lvbiAvIG9uRm9yayAvXG4gICAgLy8gb25TZWxlY3RlZCAvIG9uU3ViZmxvd0VudHJ5IOKAlCBlbWl0dGluZyBmcm9tIGhlcmUgdG9vIHdvdWxkXG4gICAgLy8gZG91YmxlIHVwIHRoZSBuYXJyYXRpdmUuXG4gICAgaWYgKGV2ZW50LnN0YWdlVHlwZSAhPT0gJ2xpbmVhcicpIHJldHVybjtcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYE5leHQgc3RlcDogJHtldmVudC5kZXNjcmlwdGlvbn0uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYE5leHQsIGl0IG1vdmVkIG9uIHRvICR7ZXZlbnQuc3RhZ2VOYW1lfS5gKTtcbiAgICB9XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQuc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIG9uTmV4dChldmVudDogRmxvd05leHRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgTmV4dCBzdGVwOiAke2V2ZW50LmRlc2NyaXB0aW9ufS5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgTmV4dCwgaXQgbW92ZWQgb24gdG8gJHtldmVudC50b30uYCk7XG4gICAgfVxuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnRvKTtcbiAgfVxuXG4gIG9uRGVjaXNpb24oZXZlbnQ6IEZsb3dEZWNpc2lvbkV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgYnJhbmNoTmFtZSA9IGV2ZW50LmNob3NlbjtcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24gJiYgZXZlbnQucmF0aW9uYWxlKSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBJdCAke2V2ZW50LmRlc2NyaXB0aW9ufTogJHtldmVudC5yYXRpb25hbGV9LCBzbyBpdCBjaG9zZSAke2JyYW5jaE5hbWV9LmApO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEl0ICR7ZXZlbnQuZGVzY3JpcHRpb259IGFuZCBjaG9zZSAke2JyYW5jaE5hbWV9LmApO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQucmF0aW9uYWxlKSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBBIGRlY2lzaW9uIHdhcyBtYWRlOiAke2V2ZW50LnJhdGlvbmFsZX0sIHNvIHRoZSBwYXRoIHRha2VuIHdhcyAke2JyYW5jaE5hbWV9LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBBIGRlY2lzaW9uIHdhcyBtYWRlLCBhbmQgdGhlIHBhdGggdGFrZW4gd2FzICR7YnJhbmNoTmFtZX0uYCk7XG4gICAgfVxuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LmRlY2lkZXIpO1xuICB9XG5cbiAgb25Gb3JrKGV2ZW50OiBGbG93Rm9ya0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbmFtZXMgPSBldmVudC5jaGlsZHJlbi5qb2luKCcsICcpO1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEZvcmtpbmcgaW50byAke2V2ZW50LmNoaWxkcmVuLmxlbmd0aH0gcGFyYWxsZWwgcGF0aHM6ICR7bmFtZXN9LmApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKHVuZGVmaW5lZCk7XG4gIH1cblxuICBvblNlbGVjdGVkKGV2ZW50OiBGbG93U2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG5hbWVzID0gZXZlbnQuc2VsZWN0ZWQuam9pbignLCAnKTtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGAke2V2ZW50LnNlbGVjdGVkLmxlbmd0aH0gb2YgJHtldmVudC50b3RhbH0gcGF0aHMgd2VyZSBzZWxlY3RlZDogJHtuYW1lc30uYCk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2godW5kZWZpbmVkKTtcbiAgfVxuXG4gIG9uU3ViZmxvd0VudHJ5KGV2ZW50OiBGbG93U3ViZmxvd0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBFbnRlcmluZyB0aGUgJHtldmVudC5uYW1lfSBzdWJmbG93OiAke2V2ZW50LmRlc2NyaXB0aW9ufS5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW50ZW5jZXMucHVzaChgRW50ZXJpbmcgdGhlICR7ZXZlbnQubmFtZX0gc3ViZmxvdy5gKTtcbiAgICB9XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQubmFtZSk7XG4gIH1cblxuICBvblN1YmZsb3dFeGl0KGV2ZW50OiBGbG93U3ViZmxvd0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZW50ZW5jZXMucHVzaChgRXhpdGluZyB0aGUgJHtldmVudC5uYW1lfSBzdWJmbG93LmApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50Lm5hbWUpO1xuICB9XG5cbiAgb25Mb29wKGV2ZW50OiBGbG93TG9vcEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBPbiBwYXNzICR7ZXZlbnQuaXRlcmF0aW9ufTogJHtldmVudC5kZXNjcmlwdGlvbn0gYWdhaW4uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYE9uIHBhc3MgJHtldmVudC5pdGVyYXRpb259IHRocm91Z2ggJHtldmVudC50YXJnZXR9LmApO1xuICAgIH1cbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC50YXJnZXQpO1xuICB9XG5cbiAgb25CcmVhayhldmVudDogRmxvd0JyZWFrRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBFeGVjdXRpb24gc3RvcHBlZCBhdCAke2V2ZW50LnN0YWdlTmFtZX0uYCk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQuc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIG9uRXJyb3IoZXZlbnQ6IEZsb3dFcnJvckV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHNlbnRlbmNlID0gYEFuIGVycm9yIG9jY3VycmVkIGF0ICR7ZXZlbnQuc3RhZ2VOYW1lfTogJHtldmVudC5tZXNzYWdlfS5gO1xuXG4gICAgLy8gRW5yaWNoIHdpdGggZmllbGQtbGV2ZWwgaXNzdWVzIHdoZW4gYXZhaWxhYmxlXG4gICAgaWYgKGV2ZW50LnN0cnVjdHVyZWRFcnJvci5pc3N1ZXMgJiYgZXZlbnQuc3RydWN0dXJlZEVycm9yLmlzc3Vlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBpc3N1ZURldGFpbHMgPSBldmVudC5zdHJ1Y3R1cmVkRXJyb3IuaXNzdWVzXG4gICAgICAgIC5tYXAoKGlzc3VlKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGF0aCA9IGlzc3VlLnBhdGgubGVuZ3RoID4gMCA/IGlzc3VlLnBhdGguam9pbignLicpIDogJyhyb290KSc7XG4gICAgICAgICAgcmV0dXJuIGAke3BhdGh9OiAke2lzc3VlLm1lc3NhZ2V9YDtcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJzsgJyk7XG4gICAgICBzZW50ZW5jZSArPSBgIFZhbGlkYXRpb24gaXNzdWVzOiAke2lzc3VlRGV0YWlsc30uYDtcbiAgICB9XG5cbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKHNlbnRlbmNlKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5zdGFnZU5hbWUpO1xuICB9XG5cbiAgb25TdGFnZVJldHJ5KGV2ZW50OiBGbG93U3RhZ2VSZXRyeUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgd2FpdCA9IGV2ZW50LmRlbGF5TXMgPiAwID8gYCBhZnRlciB3YWl0aW5nICR7ZXZlbnQuZGVsYXlNc31tc2AgOiAnJztcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKFxuICAgICAgYEF0dGVtcHQgJHtldmVudC5hdHRlbXB0fSBvZiAke2V2ZW50Lm1heEF0dGVtcHRzfSBhdCAke2V2ZW50LnN0YWdlTmFtZX0gZmFpbGVkIGAgK1xuICAgICAgICBgKCR7ZXZlbnQubWVzc2FnZX0pLCBzbyBpdCB0cmllZCBhZ2FpbiR7d2FpdH0uYCxcbiAgICApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICBvblBhdXNlKGV2ZW50OiBGbG93UGF1c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEV4ZWN1dGlvbiBwYXVzZWQgYXQgJHtldmVudC5zdGFnZU5hbWV9LmApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICBvblJlc3VtZShldmVudDogRmxvd1Jlc3VtZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3VmZml4ID0gZXZlbnQuaGFzSW5wdXQgPyAnIHdpdGggaW5wdXQuJyA6ICcuJztcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBFeGVjdXRpb24gcmVzdW1lZCBhdCAke2V2ZW50LnN0YWdlTmFtZX0ke3N1ZmZpeH1gKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5zdGFnZU5hbWUpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgYSBkZWZlbnNpdmUgY29weSBvZiBhY2N1bXVsYXRlZCBzZW50ZW5jZXMuICovXG4gIGdldFNlbnRlbmNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnNlbnRlbmNlc107XG4gIH1cblxuICAvKiogQ2xlYXJzIGFjY3VtdWxhdGVkIHNlbnRlbmNlcy4gVXNlZnVsIGZvciByZXVzZSBhY3Jvc3MgcnVucy4gKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZW50ZW5jZXMgPSBbXTtcbiAgICB0aGlzLnN0YWdlTmFtZXMgPSBbXTtcbiAgfVxufVxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL05hcnJhdGl2ZUZsb3dSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7QUFFSCw0REFXbUM7QUFpQm5DLE1BQWEscUJBQXFCO0lBQ3ZCLEVBQUUsQ0FBUztJQUNaLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDakMseUVBQXlFO0lBQ2pFLFVBQVUsR0FBMkIsRUFBRSxDQUFDO0lBQ2hEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBcUI7SUFFN0MsWUFBWSxFQUFXO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXFCO1FBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1FBQ2xDLCtEQUErRDtRQUMvRCw4REFBOEQ7UUFDOUQsMkRBQTJEO1FBQzNELDZEQUE2RDtRQUM3RCwyQkFBMkI7UUFDM0IsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLFFBQVE7WUFBRSxPQUFPO1FBQ3pDLElBQUksU0FBUyxLQUFLLEtBQUssQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFBLGdDQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBcUI7UUFDMUIsb0VBQW9FO1FBQ3BFLHlFQUF5RTtRQUN6RSxzRUFBc0U7SUFDeEUsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUF3QjtRQUNq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LENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUF4SEQsc0RBd0hDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOYXJyYXRpdmVGbG93UmVjb3JkZXIg4oCUIERlZmF1bHQgRmxvd1JlY29yZGVyIHRoYXQgZ2VuZXJhdGVzIHBsYWluLUVuZ2xpc2ggbmFycmF0aXZlLlxuICpcbiAqIFRoaXMgaXMgdGhlIEZsb3dSZWNvcmRlciBlcXVpdmFsZW50IG9mIENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yLlxuICogUHJvZHVjZXMgdGhlIHNhbWUgc2VudGVuY2VzLCBzYW1lIGZvcm1hdCwgc2FtZSBiZWhhdmlvciDigJQgYnV0IGFzIGFcbiAqIHBsdWdnYWJsZSBGbG93UmVjb3JkZXIgdGhhdCBjYW4gYmUgc3dhcHBlZCwgZXh0ZW5kZWQsIG9yIGNvbXBvc2VkLlxuICpcbiAqIENvbnN1bWVycyB3aG8gd2FudCBkaWZmZXJlbnQgbmFycmF0aXZlIGJlaGF2aW9yICh3aW5kb3dlZCBsb29wcywgYWRhcHRpdmVcbiAqIHN1bW1hcml6YXRpb24sIGV0Yy4pIGNhbiByZXBsYWNlIHRoaXMgd2l0aCBhIGRpZmZlcmVudCBGbG93UmVjb3JkZXIuXG4gKi9cblxuaW1wb3J0IHtcbiAgYnJlYWtTZW50ZW5jZSxcbiAgZGVjaXNpb25TZW50ZW5jZSxcbiAgZXJyb3JTZW50ZW5jZSxcbiAgZm9ya1NlbnRlbmNlLFxuICBsb29wU2VudGVuY2UsXG4gIG5leHRTdGFnZVNlbnRlbmNlLFxuICBwYXVzZVNlbnRlbmNlLFxuICByZXN1bWVTZW50ZW5jZSxcbiAgdmFsaWRhdGlvbkRldGFpbHMsXG4gIHZhbGlkYXRpb25TZW50ZW5jZSxcbn0gZnJvbSAnLi9mb3JtYXR0aW5nL3NlbnRlbmNlcy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEZsb3dCcmVha0V2ZW50LFxuICBGbG93RGVjaXNpb25FdmVudCxcbiAgRmxvd0Vycm9yRXZlbnQsXG4gIEZsb3dGb3JrRXZlbnQsXG4gIEZsb3dMb29wRXZlbnQsXG4gIEZsb3dOZXh0RXZlbnQsXG4gIEZsb3dQYXVzZUV2ZW50LFxuICBGbG93UmVjb3JkZXIsXG4gIEZsb3dSZXN1bWVFdmVudCxcbiAgRmxvd1NlbGVjdGVkRXZlbnQsXG4gIEZsb3dTdGFnZUV2ZW50LFxuICBGbG93U3RhZ2VSZXRyeUV2ZW50LFxuICBGbG93U3ViZmxvd0V2ZW50LFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIE5hcnJhdGl2ZUZsb3dSZWNvcmRlciBpbXBsZW1lbnRzIEZsb3dSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgc2VudGVuY2VzOiBzdHJpbmdbXSA9IFtdO1xuICAvKiogUGFyYWxsZWwgYXJyYXk6IHRoZSBhY3R1YWwgc3RhZ2UgbmFtZSB0aGF0IHByb2R1Y2VkIGVhY2ggc2VudGVuY2UuICovXG4gIHByaXZhdGUgc3RhZ2VOYW1lczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSA9IFtdO1xuICAvKipcbiAgICogVGhlIHN0YWdlIHdob3NlIGFycml2YWwgYG9uTG9vcGAgLyBgb25SZXN1bWVgIGp1c3QgbmFycmF0ZWQuIEl0cyBjb21wbGV0aW9uXG4gICAqIGxpbmUgd291bGQgcmVwZWF0IHRoYXQgYXJyaXZhbCAoXCJOZXh0LCBpdCBtb3ZlZCBvbiB0byBYLlwiKSwgc28gdGhlIG5leHRcbiAgICogYG9uU3RhZ2VFeGVjdXRlZGAgZm9yIHRoYXQgc3RhZ2Ugc3RheXMgc2lsZW50IOKAlCBhbiBhcnJpdmFsIGlzIHRvbGQgT05DRS5cbiAgICovXG4gIHByaXZhdGUgYW5ub3VuY2VkQXJyaXZhbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGlkPzogc3RyaW5nKSB7XG4gICAgdGhpcy5pZCA9IGlkID8/ICduYXJyYXRpdmUnO1xuICB9XG5cbiAgb25TdGFnZUV4ZWN1dGVkKGV2ZW50OiBGbG93U3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGFubm91bmNlZCA9IHRoaXMuYW5ub3VuY2VkQXJyaXZhbDtcbiAgICB0aGlzLmFubm91bmNlZEFycml2YWwgPSB1bmRlZmluZWQ7XG4gICAgLy8gT25seSBMSU5FQVIgc3RhZ2VzIHByb2R1Y2UgYSBcIm1vdmVkIG9uIHRvIFhcIiBuYXJyYXRpdmUgbGluZS5cbiAgICAvLyBEZWNpZGVyIC8gZm9yayAvIHNlbGVjdG9yIC8gc3ViZmxvdy1tb3VudCBzdGFnZXMgaGF2ZSB0aGVpclxuICAgIC8vIG93biBkZWRpY2F0ZWQgbmFycmF0aXZlIGxpbmVzIGZyb20gb25EZWNpc2lvbiAvIG9uRm9yayAvXG4gICAgLy8gb25TZWxlY3RlZCAvIG9uU3ViZmxvd0VudHJ5IOKAlCBlbWl0dGluZyBmcm9tIGhlcmUgdG9vIHdvdWxkXG4gICAgLy8gZG91YmxlIHVwIHRoZSBuYXJyYXRpdmUuXG4gICAgaWYgKGV2ZW50LnN0YWdlVHlwZSAhPT0gJ2xpbmVhcicpIHJldHVybjtcbiAgICBpZiAoYW5ub3VuY2VkID09PSBldmVudC5zdGFnZU5hbWUpIHJldHVybjtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKG5leHRTdGFnZVNlbnRlbmNlKGV2ZW50KSk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQuc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIG9uTmV4dChfZXZlbnQ6IEZsb3dOZXh0RXZlbnQpOiB2b2lkIHtcbiAgICAvLyBBbiBlZGdlIGFubm91bmNlcyBhIGRlc3RpbmF0aW9uLCBub3QgaXRzIGNvbXBsZXRpb24uIExpbmVhciBzdGFnZVxuICAgIC8vIHNlbnRlbmNlcyBiZWxvbmcgdG8gb25TdGFnZUV4ZWN1dGVkOyBvdGhlciBraW5kcyBoYXZlIGRlZGljYXRlZCBob29rcy5cbiAgICAvLyBLZWVwIHRoaXMgZXZlbnQgc2lsZW50LCBhcyBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyIMK3IG9uTmV4dCBkb2VzLlxuICB9XG5cbiAgb25EZWNpc2lvbihldmVudDogRmxvd0RlY2lzaW9uRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGRlY2lzaW9uU2VudGVuY2UoZXZlbnQpKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5kZWNpZGVyKTtcbiAgfVxuXG4gIG9uRm9yayhldmVudDogRmxvd0ZvcmtFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goZm9ya1NlbnRlbmNlKGV2ZW50KSk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2godW5kZWZpbmVkKTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWQoZXZlbnQ6IEZsb3dTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbmFtZXMgPSBldmVudC5zZWxlY3RlZC5qb2luKCcsICcpO1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYCR7ZXZlbnQuc2VsZWN0ZWQubGVuZ3RofSBvZiAke2V2ZW50LnRvdGFsfSBwYXRocyB3ZXJlIHNlbGVjdGVkOiAke25hbWVzfS5gKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaCh1bmRlZmluZWQpO1xuICB9XG5cbiAgb25TdWJmbG93RW50cnkoZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VudGVuY2VzLnB1c2goYEVudGVyaW5nIHRoZSAke2V2ZW50Lm5hbWV9IHN1YmZsb3c6ICR7ZXZlbnQuZGVzY3JpcHRpb259LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBFbnRlcmluZyB0aGUgJHtldmVudC5uYW1lfSBzdWJmbG93LmApO1xuICAgIH1cbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5uYW1lKTtcbiAgfVxuXG4gIG9uU3ViZmxvd0V4aXQoZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGBFeGl0aW5nIHRoZSAke2V2ZW50Lm5hbWV9IHN1YmZsb3cuYCk7XG4gICAgdGhpcy5zdGFnZU5hbWVzLnB1c2goZXZlbnQubmFtZSk7XG4gIH1cblxuICBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGxvb3BTZW50ZW5jZShldmVudCkpO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnRhcmdldCk7XG4gICAgdGhpcy5hbm5vdW5jZWRBcnJpdmFsID0gZXZlbnQudGFyZ2V0O1xuICB9XG5cbiAgb25CcmVhayhldmVudDogRmxvd0JyZWFrRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKGJyZWFrU2VudGVuY2UoZXZlbnQpKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5zdGFnZU5hbWUpO1xuICB9XG5cbiAgb25FcnJvcihldmVudDogRmxvd0Vycm9yRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgc2VudGVuY2UgPSBlcnJvclNlbnRlbmNlKGV2ZW50KTtcblxuICAgIC8vIEVucmljaCB3aXRoIGZpZWxkLWxldmVsIGlzc3VlcyB3aGVuIGF2YWlsYWJsZVxuICAgIGlmIChldmVudC5zdHJ1Y3R1cmVkRXJyb3IuaXNzdWVzICYmIGV2ZW50LnN0cnVjdHVyZWRFcnJvci5pc3N1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgc2VudGVuY2UgKz0gdmFsaWRhdGlvblNlbnRlbmNlKHZhbGlkYXRpb25EZXRhaWxzKGV2ZW50LnN0cnVjdHVyZWRFcnJvci5pc3N1ZXMpKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKHNlbnRlbmNlKTtcbiAgICB0aGlzLnN0YWdlTmFtZXMucHVzaChldmVudC5zdGFnZU5hbWUpO1xuICB9XG5cbiAgb25TdGFnZVJldHJ5KGV2ZW50OiBGbG93U3RhZ2VSZXRyeUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgd2FpdCA9IGV2ZW50LmRlbGF5TXMgPiAwID8gYCBhZnRlciB3YWl0aW5nICR7ZXZlbnQuZGVsYXlNc31tc2AgOiAnJztcbiAgICB0aGlzLnNlbnRlbmNlcy5wdXNoKFxuICAgICAgYEF0dGVtcHQgJHtldmVudC5hdHRlbXB0fSBvZiAke2V2ZW50Lm1heEF0dGVtcHRzfSBhdCAke2V2ZW50LnN0YWdlTmFtZX0gZmFpbGVkIGAgK1xuICAgICAgICBgKCR7ZXZlbnQubWVzc2FnZX0pLCBzbyBpdCB0cmllZCBhZ2FpbiR7d2FpdH0uYCxcbiAgICApO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICBvblBhdXNlKGV2ZW50OiBGbG93UGF1c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VudGVuY2VzLnB1c2gocGF1c2VTZW50ZW5jZShldmVudCkpO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gIH1cblxuICBvblJlc3VtZShldmVudDogRmxvd1Jlc3VtZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZW50ZW5jZXMucHVzaChyZXN1bWVTZW50ZW5jZShldmVudCkpO1xuICAgIHRoaXMuc3RhZ2VOYW1lcy5wdXNoKGV2ZW50LnN0YWdlTmFtZSk7XG4gICAgdGhpcy5hbm5vdW5jZWRBcnJpdmFsID0gZXZlbnQuc3RhZ2VOYW1lO1xuICB9XG5cbiAgLyoqIFJldHVybnMgYSBkZWZlbnNpdmUgY29weSBvZiBhY2N1bXVsYXRlZCBzZW50ZW5jZXMuICovXG4gIGdldFNlbnRlbmNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnNlbnRlbmNlc107XG4gIH1cblxuICAvKiogQ2xlYXJzIGFjY3VtdWxhdGVkIHNlbnRlbmNlcy4gVXNlZnVsIGZvciByZXVzZSBhY3Jvc3MgcnVucy4gKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZW50ZW5jZXMgPSBbXTtcbiAgICB0aGlzLnN0YWdlTmFtZXMgPSBbXTtcbiAgICB0aGlzLmFubm91bmNlZEFycml2YWwgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveText = void 0;
4
+ /**
5
+ * Resolve a nullable narrative formatter result without treating exclusion as
6
+ * fallback. The caller invokes the formatter so its receiver and context stay
7
+ * at the event boundary; only an unhandled result evaluates the default.
8
+ */
9
+ function resolveText(custom, fallback) {
10
+ return custom === undefined ? fallback() : custom;
11
+ }
12
+ exports.resolveText = resolveText;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZVRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvZm9ybWF0dGluZy9yZXNvbHZlVGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLE1BQWlDLEVBQUUsUUFBc0I7SUFDbkYsT0FBTyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ3BELENBQUM7QUFGRCxrQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb2x2ZSBhIG51bGxhYmxlIG5hcnJhdGl2ZSBmb3JtYXR0ZXIgcmVzdWx0IHdpdGhvdXQgdHJlYXRpbmcgZXhjbHVzaW9uIGFzXG4gKiBmYWxsYmFjay4gVGhlIGNhbGxlciBpbnZva2VzIHRoZSBmb3JtYXR0ZXIgc28gaXRzIHJlY2VpdmVyIGFuZCBjb250ZXh0IHN0YXlcbiAqIGF0IHRoZSBldmVudCBib3VuZGFyeTsgb25seSBhbiB1bmhhbmRsZWQgcmVzdWx0IGV2YWx1YXRlcyB0aGUgZGVmYXVsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUZXh0KGN1c3RvbTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgZmFsbGJhY2s6ICgpID0+IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gY3VzdG9tID09PSB1bmRlZmluZWQgPyBmYWxsYmFjaygpIDogY3VzdG9tO1xufVxuIl19
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validationSentence = exports.errorSentence = exports.validationDetails = exports.resumeSentence = exports.pauseSentence = exports.breakSentence = exports.loopSentence = exports.forkSentence = exports.decisionSentence = exports.nextStageSentence = void 0;
4
+ function nextStageSentence(ctx) {
5
+ return ctx.description ? `Next step: ${ctx.description}.` : `Next, it moved on to ${ctx.stageName}.`;
6
+ }
7
+ exports.nextStageSentence = nextStageSentence;
8
+ /** Evidence takes precedence at the Combined recorder; this is only its fallback. */
9
+ function decisionSentence(ctx) {
10
+ const branchName = ctx.chosen;
11
+ if (ctx.description && ctx.rationale) {
12
+ return `It ${ctx.description}: ${ctx.rationale}, so it chose ${branchName}.`;
13
+ }
14
+ if (ctx.description)
15
+ return `It ${ctx.description} and chose ${branchName}.`;
16
+ if (ctx.rationale)
17
+ return `A decision was made: ${ctx.rationale}, so the path taken was ${branchName}.`;
18
+ return `A decision was made, and the path taken was ${branchName}.`;
19
+ }
20
+ exports.decisionSentence = decisionSentence;
21
+ function forkSentence(ctx) {
22
+ const names = ctx.children.join(', ');
23
+ return `Forking into ${ctx.children.length} parallel paths: ${names}.`;
24
+ }
25
+ exports.forkSentence = forkSentence;
26
+ function loopSentence(ctx) {
27
+ return ctx.description
28
+ ? `On pass ${ctx.iteration}: ${ctx.description} again.`
29
+ : `On pass ${ctx.iteration} through ${ctx.target}.`;
30
+ }
31
+ exports.loopSentence = loopSentence;
32
+ function breakSentence(ctx) {
33
+ return `Execution stopped at ${ctx.stageName}.`;
34
+ }
35
+ exports.breakSentence = breakSentence;
36
+ function pauseSentence(ctx) {
37
+ return `Execution paused at ${ctx.stageName}.`;
38
+ }
39
+ exports.pauseSentence = pauseSentence;
40
+ function resumeSentence(ctx) {
41
+ const suffix = ctx.hasInput ? ' with input.' : '.';
42
+ return `Execution resumed at ${ctx.stageName}${suffix}`;
43
+ }
44
+ exports.resumeSentence = resumeSentence;
45
+ function validationDetails(issues) {
46
+ return issues
47
+ .map((issue) => {
48
+ const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
49
+ return `${path}: ${issue.message}`;
50
+ })
51
+ .join('; ');
52
+ }
53
+ exports.validationDetails = validationDetails;
54
+ function errorSentence(ctx) {
55
+ return `An error occurred at ${ctx.stageName}: ${ctx.message}.`;
56
+ }
57
+ exports.errorSentence = errorSentence;
58
+ /** Callers retain their distinct rules for whether to display empty details. */
59
+ function validationSentence(details) {
60
+ return ` Validation issues: ${details}.`;
61
+ }
62
+ exports.validationSentence = validationSentence;
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudGVuY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL2Zvcm1hdHRpbmcvc2VudGVuY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVlBLFNBQWdCLGlCQUFpQixDQUFDLEdBQTBEO0lBQzFGLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixHQUFHLENBQUMsU0FBUyxHQUFHLENBQUM7QUFDdkcsQ0FBQztBQUZELDhDQUVDO0FBRUQscUZBQXFGO0FBQ3JGLFNBQWdCLGdCQUFnQixDQUFDLEdBQXdFO0lBQ3ZHLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDOUIsSUFBSSxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyQyxPQUFPLE1BQU0sR0FBRyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsU0FBUyxpQkFBaUIsVUFBVSxHQUFHLENBQUM7SUFDL0UsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLFdBQVc7UUFBRSxPQUFPLE1BQU0sR0FBRyxDQUFDLFdBQVcsY0FBYyxVQUFVLEdBQUcsQ0FBQztJQUM3RSxJQUFJLEdBQUcsQ0FBQyxTQUFTO1FBQUUsT0FBTyx3QkFBd0IsR0FBRyxDQUFDLFNBQVMsMkJBQTJCLFVBQVUsR0FBRyxDQUFDO0lBQ3hHLE9BQU8sK0NBQStDLFVBQVUsR0FBRyxDQUFDO0FBQ3RFLENBQUM7QUFSRCw0Q0FRQztBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFzQjtJQUNqRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxPQUFPLGdCQUFnQixHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sb0JBQW9CLEtBQUssR0FBRyxDQUFDO0FBQ3pFLENBQUM7QUFIRCxvQ0FHQztBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFzQjtJQUNqRCxPQUFPLEdBQUcsQ0FBQyxXQUFXO1FBQ3BCLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLFdBQVcsU0FBUztRQUN2RCxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsU0FBUyxZQUFZLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztBQUN4RCxDQUFDO0FBSkQsb0NBSUM7QUFFRCxTQUFnQixhQUFhLENBQUMsR0FBdUI7SUFDbkQsT0FBTyx3QkFBd0IsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDO0FBQ2xELENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxHQUEwQztJQUN0RSxPQUFPLHVCQUF1QixHQUFHLENBQUMsU0FBUyxHQUFHLENBQUM7QUFDakQsQ0FBQztBQUZELHNDQUVDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLEdBQW9EO0lBQ2pGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ25ELE9BQU8sd0JBQXdCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDMUQsQ0FBQztBQUhELHdDQUdDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsTUFBa0M7SUFDbEUsT0FBTyxNQUFNO1NBQ1YsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDYixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDckUsT0FBTyxHQUFHLElBQUksS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFQRCw4Q0FPQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxHQUFzRDtJQUNsRixPQUFPLHdCQUF3QixHQUFHLENBQUMsU0FBUyxLQUFLLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQztBQUNsRSxDQUFDO0FBRkQsc0NBRUM7QUFFRCxnRkFBZ0Y7QUFDaEYsU0FBZ0Isa0JBQWtCLENBQUMsT0FBZTtJQUNoRCxPQUFPLHVCQUF1QixPQUFPLEdBQUcsQ0FBQztBQUMzQyxDQUFDO0FBRkQsZ0RBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU2hhcmVkIEVuZ2xpc2ggc2VudGVuY2UgYm9kaWVzLCB3aXRoIG5vIGV2ZW50IGNhcHR1cmUgb3IgcmVjb3JkZXIgc3RhdGUuICovXG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25Jc3N1ZSB9IGZyb20gJy4uLy4uLy4uL3NjaGVtYS9lcnJvcnMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBCcmVha1JlbmRlckNvbnRleHQsXG4gIERlY2lzaW9uUmVuZGVyQ29udGV4dCxcbiAgRXJyb3JSZW5kZXJDb250ZXh0LFxuICBGb3JrUmVuZGVyQ29udGV4dCxcbiAgTG9vcFJlbmRlckNvbnRleHQsXG4gIFN0YWdlUmVuZGVyQ29udGV4dCxcbn0gZnJvbSAnLi4vbmFycmF0aXZlVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93UmVzdW1lRXZlbnQgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0U3RhZ2VTZW50ZW5jZShjdHg6IFBpY2s8U3RhZ2VSZW5kZXJDb250ZXh0LCAnc3RhZ2VOYW1lJyB8ICdkZXNjcmlwdGlvbic+KTogc3RyaW5nIHtcbiAgcmV0dXJuIGN0eC5kZXNjcmlwdGlvbiA/IGBOZXh0IHN0ZXA6ICR7Y3R4LmRlc2NyaXB0aW9ufS5gIDogYE5leHQsIGl0IG1vdmVkIG9uIHRvICR7Y3R4LnN0YWdlTmFtZX0uYDtcbn1cblxuLyoqIEV2aWRlbmNlIHRha2VzIHByZWNlZGVuY2UgYXQgdGhlIENvbWJpbmVkIHJlY29yZGVyOyB0aGlzIGlzIG9ubHkgaXRzIGZhbGxiYWNrLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY2lzaW9uU2VudGVuY2UoY3R4OiBQaWNrPERlY2lzaW9uUmVuZGVyQ29udGV4dCwgJ2Nob3NlbicgfCAnZGVzY3JpcHRpb24nIHwgJ3JhdGlvbmFsZSc+KTogc3RyaW5nIHtcbiAgY29uc3QgYnJhbmNoTmFtZSA9IGN0eC5jaG9zZW47XG4gIGlmIChjdHguZGVzY3JpcHRpb24gJiYgY3R4LnJhdGlvbmFsZSkge1xuICAgIHJldHVybiBgSXQgJHtjdHguZGVzY3JpcHRpb259OiAke2N0eC5yYXRpb25hbGV9LCBzbyBpdCBjaG9zZSAke2JyYW5jaE5hbWV9LmA7XG4gIH1cbiAgaWYgKGN0eC5kZXNjcmlwdGlvbikgcmV0dXJuIGBJdCAke2N0eC5kZXNjcmlwdGlvbn0gYW5kIGNob3NlICR7YnJhbmNoTmFtZX0uYDtcbiAgaWYgKGN0eC5yYXRpb25hbGUpIHJldHVybiBgQSBkZWNpc2lvbiB3YXMgbWFkZTogJHtjdHgucmF0aW9uYWxlfSwgc28gdGhlIHBhdGggdGFrZW4gd2FzICR7YnJhbmNoTmFtZX0uYDtcbiAgcmV0dXJuIGBBIGRlY2lzaW9uIHdhcyBtYWRlLCBhbmQgdGhlIHBhdGggdGFrZW4gd2FzICR7YnJhbmNoTmFtZX0uYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmtTZW50ZW5jZShjdHg6IEZvcmtSZW5kZXJDb250ZXh0KTogc3RyaW5nIHtcbiAgY29uc3QgbmFtZXMgPSBjdHguY2hpbGRyZW4uam9pbignLCAnKTtcbiAgcmV0dXJuIGBGb3JraW5nIGludG8gJHtjdHguY2hpbGRyZW4ubGVuZ3RofSBwYXJhbGxlbCBwYXRoczogJHtuYW1lc30uYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvb3BTZW50ZW5jZShjdHg6IExvb3BSZW5kZXJDb250ZXh0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGN0eC5kZXNjcmlwdGlvblxuICAgID8gYE9uIHBhc3MgJHtjdHguaXRlcmF0aW9ufTogJHtjdHguZGVzY3JpcHRpb259IGFnYWluLmBcbiAgICA6IGBPbiBwYXNzICR7Y3R4Lml0ZXJhdGlvbn0gdGhyb3VnaCAke2N0eC50YXJnZXR9LmA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicmVha1NlbnRlbmNlKGN0eDogQnJlYWtSZW5kZXJDb250ZXh0KTogc3RyaW5nIHtcbiAgcmV0dXJuIGBFeGVjdXRpb24gc3RvcHBlZCBhdCAke2N0eC5zdGFnZU5hbWV9LmA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXVzZVNlbnRlbmNlKGN0eDogUGljazxCcmVha1JlbmRlckNvbnRleHQsICdzdGFnZU5hbWUnPik6IHN0cmluZyB7XG4gIHJldHVybiBgRXhlY3V0aW9uIHBhdXNlZCBhdCAke2N0eC5zdGFnZU5hbWV9LmA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXN1bWVTZW50ZW5jZShjdHg6IFBpY2s8Rmxvd1Jlc3VtZUV2ZW50LCAnc3RhZ2VOYW1lJyB8ICdoYXNJbnB1dCc+KTogc3RyaW5nIHtcbiAgY29uc3Qgc3VmZml4ID0gY3R4Lmhhc0lucHV0ID8gJyB3aXRoIGlucHV0LicgOiAnLic7XG4gIHJldHVybiBgRXhlY3V0aW9uIHJlc3VtZWQgYXQgJHtjdHguc3RhZ2VOYW1lfSR7c3VmZml4fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0aW9uRGV0YWlscyhpc3N1ZXM6IHJlYWRvbmx5IFZhbGlkYXRpb25Jc3N1ZVtdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlzc3Vlc1xuICAgIC5tYXAoKGlzc3VlKSA9PiB7XG4gICAgICBjb25zdCBwYXRoID0gaXNzdWUucGF0aC5sZW5ndGggPiAwID8gaXNzdWUucGF0aC5qb2luKCcuJykgOiAnKHJvb3QpJztcbiAgICAgIHJldHVybiBgJHtwYXRofTogJHtpc3N1ZS5tZXNzYWdlfWA7XG4gICAgfSlcbiAgICAuam9pbignOyAnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVycm9yU2VudGVuY2UoY3R4OiBQaWNrPEVycm9yUmVuZGVyQ29udGV4dCwgJ3N0YWdlTmFtZScgfCAnbWVzc2FnZSc+KTogc3RyaW5nIHtcbiAgcmV0dXJuIGBBbiBlcnJvciBvY2N1cnJlZCBhdCAke2N0eC5zdGFnZU5hbWV9OiAke2N0eC5tZXNzYWdlfS5gO1xufVxuXG4vKiogQ2FsbGVycyByZXRhaW4gdGhlaXIgZGlzdGluY3QgcnVsZXMgZm9yIHdoZXRoZXIgdG8gZGlzcGxheSBlbXB0eSBkZXRhaWxzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRpb25TZW50ZW5jZShkZXRhaWxzOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCBWYWxpZGF0aW9uIGlzc3VlczogJHtkZXRhaWxzfS5gO1xufVxuIl19
@@ -7,4 +7,4 @@
7
7
  * Use CombinedNarrativeRecorder (auto-attached by setEnableNarrative()) instead.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFycmF0aXZlVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvbmFycmF0aXZlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogbmFycmF0aXZlVHlwZXMg4oCUIFNoYXJlZCB0eXBlIGRlZmluaXRpb25zIGZvciB0aGUgbmFycmF0aXZlIHJlY29yZGVyIHN5c3RlbS5cbiAqXG4gKiBQcmV2aW91c2x5OiBDb21iaW5lZE5hcnJhdGl2ZUJ1aWxkZXIudHMgKGZpbGUgcmVuYW1lZCBpbiBwb3N0LXJlbGVhc2UgY2xlYW51cCkuXG4gKiBUaGUgQ29tYmluZWROYXJyYXRpdmVCdWlsZGVyIGNsYXNzIHdhcyByZW1vdmVkIGluIHYxLjAuXG4gKiBVc2UgQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlciAoYXV0by1hdHRhY2hlZCBieSBzZXRFbmFibGVOYXJyYXRpdmUoKSkgaW5zdGVhZC5cbiAqL1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFR5cGVzIChrZXB0IOKAlCB1c2VkIGJ5IENvbWJpbmVkTmFycmF0aXZlUmVjb3JkZXIsIEZsb3dDaGFydEV4ZWN1dG9yLCBldGMuKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZWROYXJyYXRpdmVFbnRyeSB7XG4gIHR5cGU6XG4gICAgfCAnc3RhZ2UnXG4gICAgfCAnc3RlcCdcbiAgICB8ICdjb25kaXRpb24nXG4gICAgfCAnZm9yaydcbiAgICB8ICdzZWxlY3RvcidcbiAgICB8ICdzdWJmbG93J1xuICAgIHwgJ2xvb3AnXG4gICAgfCAnYnJlYWsnXG4gICAgfCAnZXJyb3InXG4gICAgfCAncGF1c2UnXG4gICAgfCAncmVzdW1lJ1xuICAgIHwgJ2VtaXQnXG4gICAgLyoqIEEgZmFpbGVkIGF0dGVtcHQgYXQgYSBzdGFnZSB3aXRoIGEgZGVjbGFyZWQgcmV0cnkgcG9saWN5LCB3aGljaCB3YXNcbiAgICAgKiAgcmV0cmllZC4gUmVuZGVyZWQgYXMgYSBkZXB0aC0xIHN1Yi1pdGVtIG9mIGl0cyBzdGFnZSwgSU4gT1JERVIgYmV0d2VlblxuICAgICAqICB0aGUgYXR0ZW1wdHMnIHJlYWRzIGFuZCB3cml0ZXMuICovXG4gICAgfCAncmV0cnknO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGRlcHRoOiBudW1iZXI7XG4gIHN0YWdlTmFtZT86IHN0cmluZztcbiAgLyoqIFN0YWJsZSBzdGFnZSBpZGVudGlmaWVyIGZyb20gdGhlIGJ1aWxkZXIgKG1hdGNoZXMgc3BlYyBub2RlIGlkKS4gVXNlIGZvciBVSSBzeW5jLiAqL1xuICBzdGFnZUlkPzogc3RyaW5nO1xuICAvKiogVW5pcXVlIHBlci1leGVjdXRpb24tc3RlcCBpZGVudGlmaWVyLiBGb3JtYXQ6IFtzdWJmbG93UGF0aC9dc3RhZ2VJZCNleGVjdXRpb25JbmRleC5cbiAgICogIExpbmtzIG5hcnJhdGl2ZSBlbnRyaWVzIHRvIHJlY29yZGVyIE1hcCBlbnRyaWVzIGZvciBPKDEpIHRpbWUtdHJhdmVsIGxvb2t1cC5cbiAgICogIFVuZGVmaW5lZCBvbmx5IHdoZW4gVHJhdmVyc2FsQ29udGV4dCBpcyBhYnNlbnQgZnJvbSB0aGUgc291cmNlIGV2ZW50LiAqL1xuICBydW50aW1lU3RhZ2VJZD86IHN0cmluZztcbiAgc3RlcE51bWJlcj86IG51bWJlcjtcbiAgLyoqIFN1YmZsb3cgSUQgd2hlbiB0aGlzIGVudHJ5IHdhcyBnZW5lcmF0ZWQgaW5zaWRlIGEgc3ViZmxvdy4gVW5kZWZpbmVkIGZvciByb290LWxldmVsLiAqL1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIC8qKiBEaXJlY3Rpb24gZm9yIHN1YmZsb3cgZW50cmllczogJ2VudHJ5JyB3aGVuIGVudGVyaW5nLCAnZXhpdCcgd2hlbiBsZWF2aW5nLlxuICAgKiAgT25seSBwcmVzZW50IG9uIGVudHJpZXMgd2l0aCB0eXBlID09PSAnc3ViZmxvdycuIFVzZSB0aGlzIGluc3RlYWQgb2YgdGV4dCBzY2FubmluZy4gKi9cbiAgZGlyZWN0aW9uPzogJ2VudHJ5JyB8ICdleGl0JztcbiAgLyoqIFNjb3BlIGtleSB0aGF0IHdhcyByZWFkIG9yIHdyaXR0ZW4uIE9ubHkgcHJlc2VudCBvbiAnc3RlcCcgZW50cmllcy5cbiAgICogIFVzZSB0aGlzIGZvciBzdHJ1Y3R1cmVkIGRhdGEgZXh0cmFjdGlvbiAoZS5nLiwgZ3JvdW5kaW5nIGFuYWx5c2lzKVxuICAgKiAgaW5zdGVhZCBvZiBtYXRjaGluZyBvbiByZW5kZXJlZCB0ZXh0IHN0cmluZ3MuICovXG4gIGtleT86IHN0cmluZztcbiAgLyoqIFJhdyB2YWx1ZSBmcm9tIHRoZSBzY29wZSBldmVudCDigJQgYXZhaWxhYmxlIGZvciBwcm9ncmFtbWF0aWMgYWNjZXNzIGFuZCBjdXN0b20gZm9ybWF0dGluZy5cbiAgICogIE9ubHkgcHJlc2VudCBvbiAnc3RlcCcgZW50cmllcyAocmVhZC93cml0ZSBvcHMpLiBUaGlzIGlzIGEgbGl2ZSByZWZlcmVuY2UsIG5vdCBhIGNsb25lLlxuICAgKiAgV2hlbiB1c2luZyBTY29wZUZhY2FkZSwgcmVkYWN0ZWQga2V5cyB3aWxsIGhhdmUgdmFsdWUgJ1tSRURBQ1RFRF0nIChzYW5pdGl6ZWQgdXBzdHJlYW1cbiAgICogIGJ5IFNjb3BlRmFjYWRlIGJlZm9yZSBkaXNwYXRjaGluZyBldmVudHMg4oCUIHRoZSByZWNvcmRlciBkb2VzIG5vdCBlbmZvcmNlIHJlZGFjdGlvbikuICovXG4gIHJhd1ZhbHVlPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21iaW5lZE5hcnJhdGl2ZU9wdGlvbnMge1xuICBpbmNsdWRlU3RlcE51bWJlcnM/OiBib29sZWFuO1xuICBpbmNsdWRlVmFsdWVzPzogYm9vbGVhbjtcbiAgaW5kZW50Pzogc3RyaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5hcnJhdGl2ZVJlbmRlcmVyIOKAlCBQbHVnZ2FibGUgcmVuZGVyaW5nIGZvciBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlclN0YWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZVJlbmRlckNvbnRleHQge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgc3RhZ2VOdW1iZXI6IG51bWJlcjtcbiAgaXNGaXJzdDogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBMb29wIGl0ZXJhdGlvbiBudW1iZXIgKDEtYmFzZWQpLiBQcmVzZW50IHdoZW4gdGhpcyBzdGFnZSBpcyB2aXNpdGVkIHZpYSBsb29wVG8oKS4gKi9cbiAgbG9vcEl0ZXJhdGlvbj86IG51bWJlcjtcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlck9wLiBSZXR1cm4gbnVsbCB0byBleGNsdWRlIHRoZSBlbnRyeS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BSZW5kZXJDb250ZXh0IHtcbiAgdHlwZTogJ3JlYWQnIHwgJ3dyaXRlJztcbiAga2V5OiBzdHJpbmc7XG4gIHJhd1ZhbHVlOiB1bmtub3duO1xuICB2YWx1ZVN1bW1hcnk6IHN0cmluZztcbiAgb3BlcmF0aW9uPzogJ3NldCcgfCAndXBkYXRlJyB8ICdkZWxldGUnO1xuICBzdGVwTnVtYmVyOiBudW1iZXI7XG59XG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJEZWNpc2lvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaXNpb25SZW5kZXJDb250ZXh0IHtcbiAgZGVjaWRlcjogc3RyaW5nO1xuICBjaG9zZW46IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJhdGlvbmFsZT86IHN0cmluZztcbiAgLyoqIFJhdyBldmlkZW5jZSBmcm9tIGRlY2lkZSgpL3NlbGVjdCgpIOKAlCBhdmFpbGFibGUgZm9yIGN1c3RvbSByZW5kZXJpbmcuICovXG4gIGV2aWRlbmNlPzogdW5rbm93bjtcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckZvcmsuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcmtSZW5kZXJDb250ZXh0IHtcbiAgY2hpbGRyZW46IHN0cmluZ1tdO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyU3ViZmxvdy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ViZmxvd1JlbmRlckNvbnRleHQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRpcmVjdGlvbjogJ2VudHJ5JyB8ICdleGl0JztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBNYXBwZWQgaW5wdXQgdmFsdWVzIHNlbnQgaW50byB0aGUgc3ViZmxvdy4gUHJlc2VudCBvbiBlbnRyeS4gKi9cbiAgbWFwcGVkSW5wdXQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIFN1YmZsb3cgc2hhcmVkIHN0YXRlIGF0IGV4aXQuIFByZXNlbnQgb24gZXhpdC4gKi9cbiAgb3V0cHV0U3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckxvb3AuICovXG5leHBvcnQgaW50ZXJmYWNlIExvb3BSZW5kZXJDb250ZXh0IHtcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbjogbnVtYmVyO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckJyZWFrLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmVha1JlbmRlckNvbnRleHQge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlclNlbGVjdGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RlZFJlbmRlckNvbnRleHQge1xuICBzZWxlY3RlZDogc3RyaW5nW107XG4gIHRvdGFsOiBudW1iZXI7XG4gIC8qKiBSYXcgZXZpZGVuY2UgZnJvbSBzZWxlY3QoKSDigJQgYXZhaWxhYmxlIGZvciBjdXN0b20gcmVuZGVyaW5nLiAqL1xuICBldmlkZW5jZT86IHVua25vd247XG59XG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJFcnJvci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JSZW5kZXJDb250ZXh0IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdmFsaWRhdGlvbklzc3Vlcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250ZXh0IHBhc3NlZCB0byBgTmFycmF0aXZlRm9ybWF0dGVyLnJlbmRlclJldHJ5YCDigJQgb25lIGZhaWxlZCBhdHRlbXB0IGF0IGFcbiAqIHN0YWdlIHdpdGggYSBkZWNsYXJlZCByZXRyeSBwb2xpY3ksIHdoaWNoIHRoZSBlbmdpbmUgdGhlbiByZXRyaWVkLiBGaXJlcyBvbmx5XG4gKiBmb3IgYXR0ZW1wdHMgZm9sbG93ZWQgYnkgYW5vdGhlciBhdHRlbXB0OyB0aGUgZmluYWwgZmFpbHVyZSBnb2VzIHRvXG4gKiBgcmVuZGVyRXJyb3JgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5UmVuZGVyQ29udGV4dCB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICAvKiogV2hpY2ggYXR0ZW1wdCBqdXN0IGZhaWxlZCwgMS1iYXNlZC4gKi9cbiAgYXR0ZW1wdDogbnVtYmVyO1xuICAvKiogVG90YWwgYXR0ZW1wdHMgdGhlIHBvbGljeSBhbGxvd3MsIGluY2x1ZGluZyB0aGUgZmlyc3QuICovXG4gIG1heEF0dGVtcHRzOiBudW1iZXI7XG4gIC8qKiBNaWxsaXNlY29uZHMgd2FpdGVkIGJlZm9yZSB0aGUgbmV4dCBhdHRlbXB0LiBgMGAgPSBpbW1lZGlhdGUuICovXG4gIGRlbGF5TXM6IG51bWJlcjtcbiAgLyoqIFRoZSBmYWlsZWQgYXR0ZW1wdCdzIGVycm9yIG1lc3NhZ2UuICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250ZXh0IHBhc3NlZCB0byBgTmFycmF0aXZlRm9ybWF0dGVyLnJlbmRlckVtaXRgIOKAlCBmaXJlcyBmb3IgZXZlcnlcbiAqIGNvbnN1bWVyLWVtaXR0ZWQgZXZlbnQgKGBzY29wZS4kZW1pdChuYW1lLCBwYXlsb2FkKWApLiBDYXJyaWVzIHRoZSBmdWxsXG4gKiBgRW1pdEV2ZW50YCBzaGFwZSBzbyBmb3JtYXR0ZXJzIGNhbiByZW5kZXIgbmFtZSArIHBheWxvYWQgd2l0aCBmdWxsXG4gKiBjb250ZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXRSZW5kZXJDb250ZXh0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwYXlsb2FkOiB1bmtub3duO1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgcnVudGltZVN0YWdlSWQ6IHN0cmluZztcbiAgc3ViZmxvd1BhdGg6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBwaXBlbGluZUlkOiBzdHJpbmc7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICAvKiogU3VtbWFyeSBzdHJpbmcg4oCUIHRoZSBsaWJyYXJ5J3MgZGVmYXVsdCB0cnVuY2F0ZWQgcGF5bG9hZCBwcmV2aWV3LiAqL1xuICBwYXlsb2FkU3VtbWFyeTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBsdWdnYWJsZSBmb3JtYXR0ZXIgZm9yIG5hcnJhdGl2ZSBvdXRwdXQuIFR1cm5zIHN0cnVjdHVyZWQgZXZlbnQgY29udGV4dFxuICogb2JqZWN0cyBpbnRvIHRoZSB0ZXh0IGxpbmVzIHRoYXQgbWFrZSB1cCB0aGUgbmFycmF0aXZlIGFycmF5LlxuICpcbiAqICMjIFdoeSBcIkZvcm1hdHRlclwiLCBub3QgXCJSZW5kZXJlclwiXG4gKlxuICogSW4gd2ViIHRlcm1pbm9sb2d5IFwicmVuZGVyZXJcIiB1c3VhbGx5IG1lYW5zIFwidHVybiBkYXRhIGludG8gYSB2aXNpYmxlIFVJXCJcbiAqIChwaXhlbHMsIERPTSwgSFRNTCkuIFRoaXMgaW50ZXJmYWNlIGRvZXMgc29tZXRoaW5nIHNtYWxsZXI6IGl0IGNvbnZlcnRzXG4gKiBldmVudCBjb250ZXh0IGludG8gYSB0ZXh0IHN0cmluZy4gVGhhdCBpcyBtb3JlIGFjY3VyYXRlbHkgY2FsbGVkIGFcbiAqICpmb3JtYXR0ZXIqIOKAlCBoZW5jZSB0aGUgbmV3IG5hbWUuIFRoZSBsZWdhY3kgYWxpYXMgYE5hcnJhdGl2ZVJlbmRlcmVyYFxuICogaXMgcHJlc2VydmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFuZCBtYXJrZWQgYEBkZXByZWNhdGVkYDsgaXQgd2lsbFxuICogYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLlxuICpcbiAqICMjIEJlaGF2aW91clxuICpcbiAqIEVhY2ggbWV0aG9kIGlzIG9wdGlvbmFsIOKAlCB1bmltcGxlbWVudGVkIG1ldGhvZHMgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0XG4gKiBFbmdsaXNoIGZvcm1hdHRlci4gUmV0dXJuIGBudWxsYCBmcm9tIGByZW5kZXJPcGAgdG8gZXhjbHVkZSB0aGF0IGVudHJ5XG4gKiBmcm9tIHRoZSBuYXJyYXRpdmUgZW50aXJlbHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlYyA9IG5hcnJhdGl2ZSh7XG4gKiAgIHJlbmRlcmVyOiB7XG4gKiAgICAgcmVuZGVyT3AoY3R4KSB7XG4gKiAgICAgICBpZiAoY3R4LmtleS5zdGFydHNXaXRoKCdfaW50ZXJuYWwnKSkgcmV0dXJuIG51bGw7IC8vIGZpbHRlciBvdXQgaW50ZXJuYWwga2V5c1xuICogICAgICAgcmV0dXJuIGAke2N0eC50eXBlID09PSAncmVhZCcgPyAnUmVhZCcgOiAnV3JvdGUnfSAke2N0eC5rZXl9OiAke2N0eC52YWx1ZVN1bW1hcnl9YDtcbiAqICAgICB9LFxuICogICB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYXJyYXRpdmVGb3JtYXR0ZXIge1xuICByZW5kZXJTdGFnZT8oY3R4OiBTdGFnZVJlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBGb3JtYXQgYW4gb3AgKHNjb3BlIHJlYWQvd3JpdGUsIG9yIHN1YmZsb3ctaW5wdXQga2V5KSBpbnRvIGEgbmFycmF0aXZlIGxpbmUuXG4gICAqXG4gICAqICAgLSBgc3RyaW5nYCAgICDihpIgdXNlIGFzIHRoZSBuYXJyYXRpdmUgbGluZVxuICAgKiAgIC0gYG51bGxgICAgICAg4oaSIGRlbGliZXJhdGVseSBleGNsdWRlIHRoaXMgZW50cnkgZnJvbSB0aGUgbmFycmF0aXZlXG4gICAqICAgLSBgdW5kZWZpbmVkYCDihpIgdGhpcyBmb3JtYXR0ZXIgZG9lcyBub3QgaGFuZGxlIHRoaXMgb3A7IGZhbGwgYmFjayB0b1xuICAgKiAgICAgICAgICAgICAgICAgICB0aGUgbGlicmFyeSdzIGRlZmF1bHQgdGVtcGxhdGVcbiAgICpcbiAgICogVGhlIGB1bmRlZmluZWRgIHJldHVybiBsZXRzIGEgZG9tYWluLWF3YXJlIGZvcm1hdHRlciBoYW5kbGUgb25seSB0aGVcbiAgICoga2V5cyBpdCBrbm93cyBhYm91dCBhbmQgbGVhdmUgdGhlIHJlc3QgdG8gdGhlIGxpYnJhcnkgZGVmYXVsdCDigJQgd2l0aG91dFxuICAgKiBoYXZpbmcgdG8gcmUtaW1wbGVtZW50IHRoZSB3aG9sZSBkZWZhdWx0IGlubGluZS5cbiAgICovXG4gIHJlbmRlck9wPyhjdHg6IE9wUmVuZGVyQ29udGV4dCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHJlbmRlckRlY2lzaW9uPyhjdHg6IERlY2lzaW9uUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgcmVuZGVyRm9yaz8oY3R4OiBGb3JrUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgcmVuZGVyU2VsZWN0ZWQ/KGN0eDogU2VsZWN0ZWRSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJTdWJmbG93PyhjdHg6IFN1YmZsb3dSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJMb29wPyhjdHg6IExvb3BSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJCcmVhaz8oY3R4OiBCcmVha1JlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIHJlbmRlckVycm9yPyhjdHg6IEVycm9yUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgLyoqXG4gICAqIEZvcm1hdCBhIHJldHJpZWQgYXR0ZW1wdCBpbnRvIGEgbmFycmF0aXZlIGxpbmUuIFJlbmRlcmVkIGFzIGEgZGVwdGgtMVxuICAgKiBzdWItaXRlbSBvZiBpdHMgc3RhZ2UsIHBvc2l0aW9uZWQgYmV0d2VlbiB0aGUgYXR0ZW1wdHMnIHJlYWRzIGFuZCB3cml0ZXNcbiAgICogc28gdGhlIG5hcnJhdGl2ZSByZWFkcyBpbiB0aGUgb3JkZXIgdGhpbmdzIGFjdHVhbGx5IGhhcHBlbmVkLlxuICAgKi9cbiAgcmVuZGVyUmV0cnk/KGN0eDogUmV0cnlSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICAvKipcbiAgICogRm9ybWF0IGEgY29uc3VtZXItZW1pdHRlZCBldmVudCAoZnJvbSBgc2NvcGUuJGVtaXQobmFtZSwgcGF5bG9hZClgKVxuICAgKiBpbnRvIGEgbmFycmF0aXZlIGxpbmUuXG4gICAqXG4gICAqICAgLSBgc3RyaW5nYCAgICDihpIgdXNlIGFzIHRoZSBuYXJyYXRpdmUgbGluZVxuICAgKiAgIC0gYG51bGxgICAgICAg4oaSIGRlbGliZXJhdGVseSBleGNsdWRlIHRoaXMgZW50cnlcbiAgICogICAtIGB1bmRlZmluZWRgIOKGkiB0aGlzIGZvcm1hdHRlciBkb2VzIG5vdCBoYW5kbGUgdGhpcyBlbWl0OyBmYWxsIGJhY2tcbiAgICogICAgICAgICAgICAgICAgICAgdG8gdGhlIGxpYnJhcnkncyBkZWZhdWx0IHRlbXBsYXRlXG4gICAqXG4gICAqIFR5cGljYWwgcGF0dGVybjogc3dpdGNoIG9uIGBjdHgubmFtZWAgKG9yIGEgcHJlZml4IG9mIGl0KSBhbmQgcmV0dXJuIGFcbiAgICogZG9tYWluLXNwZWNpZmljIHRleHQgbGluZSBmb3IgdGhlIGV2ZW50IHR5cGVzIHlvdSBjYXJlIGFib3V0OyByZXR1cm5cbiAgICogYHVuZGVmaW5lZGAgZm9yIGV2ZXJ5dGhpbmcgZWxzZSBzbyB0aGUgZGVmYXVsdCB0ZW1wbGF0ZSBoYW5kbGVzIGl0LlxuICAgKi9cbiAgcmVuZGVyRW1pdD8oY3R4OiBFbWl0UmVuZGVyQ29udGV4dCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byBgTmFycmF0aXZlRm9ybWF0dGVyYCBmb3IgY2xhcml0eSDigJQgdGhpcyBpbnRlcmZhY2VcbiAqIGZvcm1hdHMgZXZlbnQgY29udGV4dCBpbnRvIHRleHQgbGluZXMsIG5vdCBcInJlbmRlciB0byBVSVwiLiBMZWdhY3kgYWxpYXNcbiAqIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk7IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvclxuICogcmVsZWFzZS4gTWlncmF0ZSBieSByZXBsYWNpbmcgYE5hcnJhdGl2ZVJlbmRlcmVyYCB3aXRoXG4gKiBgTmFycmF0aXZlRm9ybWF0dGVyYCBhdCBpbXBvcnRzIOKAlCBubyBiZWhhdmlvdXJhbCBjaGFuZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIE5hcnJhdGl2ZVJlbmRlcmVyID0gTmFycmF0aXZlRm9ybWF0dGVyO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFycmF0aXZlVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvbmFycmF0aXZlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogbmFycmF0aXZlVHlwZXMg4oCUIFNoYXJlZCB0eXBlIGRlZmluaXRpb25zIGZvciB0aGUgbmFycmF0aXZlIHJlY29yZGVyIHN5c3RlbS5cbiAqXG4gKiBQcmV2aW91c2x5OiBDb21iaW5lZE5hcnJhdGl2ZUJ1aWxkZXIudHMgKGZpbGUgcmVuYW1lZCBpbiBwb3N0LXJlbGVhc2UgY2xlYW51cCkuXG4gKiBUaGUgQ29tYmluZWROYXJyYXRpdmVCdWlsZGVyIGNsYXNzIHdhcyByZW1vdmVkIGluIHYxLjAuXG4gKiBVc2UgQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlciAoYXV0by1hdHRhY2hlZCBieSBzZXRFbmFibGVOYXJyYXRpdmUoKSkgaW5zdGVhZC5cbiAqL1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFR5cGVzIChrZXB0IOKAlCB1c2VkIGJ5IENvbWJpbmVkTmFycmF0aXZlUmVjb3JkZXIsIEZsb3dDaGFydEV4ZWN1dG9yLCBldGMuKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZWROYXJyYXRpdmVFbnRyeSB7XG4gIHR5cGU6XG4gICAgfCAnc3RhZ2UnXG4gICAgfCAnc3RlcCdcbiAgICB8ICdjb25kaXRpb24nXG4gICAgfCAnZm9yaydcbiAgICB8ICdzZWxlY3RvcidcbiAgICB8ICdzdWJmbG93J1xuICAgIHwgJ2xvb3AnXG4gICAgfCAnYnJlYWsnXG4gICAgfCAnZXJyb3InXG4gICAgfCAncGF1c2UnXG4gICAgfCAncmVzdW1lJ1xuICAgIHwgJ2VtaXQnXG4gICAgLyoqIEEgZmFpbGVkIGF0dGVtcHQgYXQgYSBzdGFnZSB3aXRoIGEgZGVjbGFyZWQgcmV0cnkgcG9saWN5LCB3aGljaCB3YXNcbiAgICAgKiAgcmV0cmllZC4gUmVuZGVyZWQgYXMgYSBkZXB0aC0xIHN1Yi1pdGVtIG9mIGl0cyBzdGFnZSwgSU4gT1JERVIgYmV0d2VlblxuICAgICAqICB0aGUgYXR0ZW1wdHMnIHJlYWRzIGFuZCB3cml0ZXMuICovXG4gICAgfCAncmV0cnknO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGRlcHRoOiBudW1iZXI7XG4gIHN0YWdlTmFtZT86IHN0cmluZztcbiAgLyoqIFN0YWJsZSBzdGFnZSBpZGVudGlmaWVyIGZyb20gdGhlIGJ1aWxkZXIgKG1hdGNoZXMgc3BlYyBub2RlIGlkKS4gVXNlIGZvciBVSSBzeW5jLiAqL1xuICBzdGFnZUlkPzogc3RyaW5nO1xuICAvKiogVW5pcXVlIHBlci1leGVjdXRpb24tc3RlcCBpZGVudGlmaWVyLiBGb3JtYXQ6IFtzdWJmbG93UGF0aC9dc3RhZ2VJZCNleGVjdXRpb25JbmRleC5cbiAgICogIExpbmtzIG5hcnJhdGl2ZSBlbnRyaWVzIHRvIHJlY29yZGVyIE1hcCBlbnRyaWVzIGZvciBPKDEpIHRpbWUtdHJhdmVsIGxvb2t1cC5cbiAgICogIFVuZGVmaW5lZCBvbmx5IHdoZW4gVHJhdmVyc2FsQ29udGV4dCBpcyBhYnNlbnQgZnJvbSB0aGUgc291cmNlIGV2ZW50LiAqL1xuICBydW50aW1lU3RhZ2VJZD86IHN0cmluZztcbiAgc3RlcE51bWJlcj86IG51bWJlcjtcbiAgLyoqIFN1YmZsb3cgSUQgd2hlbiB0aGlzIGVudHJ5IHdhcyBnZW5lcmF0ZWQgaW5zaWRlIGEgc3ViZmxvdy4gVW5kZWZpbmVkIGZvciByb290LWxldmVsLiAqL1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIC8qKiBEaXJlY3Rpb24gZm9yIHN1YmZsb3cgZW50cmllczogJ2VudHJ5JyB3aGVuIGVudGVyaW5nLCAnZXhpdCcgd2hlbiBsZWF2aW5nLlxuICAgKiAgT25seSBwcmVzZW50IG9uIGVudHJpZXMgd2l0aCB0eXBlID09PSAnc3ViZmxvdycuIFVzZSB0aGlzIGluc3RlYWQgb2YgdGV4dCBzY2FubmluZy4gKi9cbiAgZGlyZWN0aW9uPzogJ2VudHJ5JyB8ICdleGl0JztcbiAgLyoqIFNjb3BlIGtleSB0aGF0IHdhcyByZWFkIG9yIHdyaXR0ZW4uIE9ubHkgcHJlc2VudCBvbiAnc3RlcCcgZW50cmllcy5cbiAgICogIFVzZSB0aGlzIGZvciBzdHJ1Y3R1cmVkIGRhdGEgZXh0cmFjdGlvbiAoZS5nLiwgZ3JvdW5kaW5nIGFuYWx5c2lzKVxuICAgKiAgaW5zdGVhZCBvZiBtYXRjaGluZyBvbiByZW5kZXJlZCB0ZXh0IHN0cmluZ3MuICovXG4gIGtleT86IHN0cmluZztcbiAgLyoqIFJhdyB2YWx1ZSBmcm9tIHRoZSBzY29wZSBldmVudCDigJQgYXZhaWxhYmxlIGZvciBwcm9ncmFtbWF0aWMgYWNjZXNzIGFuZCBjdXN0b20gZm9ybWF0dGluZy5cbiAgICogIE9ubHkgcHJlc2VudCBvbiAnc3RlcCcgZW50cmllcyAocmVhZC93cml0ZSBvcHMpLiBUaGlzIGlzIGEgbGl2ZSByZWZlcmVuY2UsIG5vdCBhIGNsb25lLlxuICAgKiAgV2hlbiB1c2luZyBTY29wZUZhY2FkZSwgcmVkYWN0ZWQga2V5cyB3aWxsIGhhdmUgdmFsdWUgJ1tSRURBQ1RFRF0nIChzYW5pdGl6ZWQgdXBzdHJlYW1cbiAgICogIGJ5IFNjb3BlRmFjYWRlIGJlZm9yZSBkaXNwYXRjaGluZyBldmVudHMg4oCUIHRoZSByZWNvcmRlciBkb2VzIG5vdCBlbmZvcmNlIHJlZGFjdGlvbikuICovXG4gIHJhd1ZhbHVlPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21iaW5lZE5hcnJhdGl2ZU9wdGlvbnMge1xuICBpbmNsdWRlU3RlcE51bWJlcnM/OiBib29sZWFuO1xuICBpbmNsdWRlVmFsdWVzPzogYm9vbGVhbjtcbiAgaW5kZW50Pzogc3RyaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5hcnJhdGl2ZVJlbmRlcmVyIOKAlCBQbHVnZ2FibGUgcmVuZGVyaW5nIGZvciBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlclN0YWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZVJlbmRlckNvbnRleHQge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgc3RhZ2VOdW1iZXI6IG51bWJlcjtcbiAgaXNGaXJzdDogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBMb29wIGl0ZXJhdGlvbiBudW1iZXIgKDEtYmFzZWQpLiBQcmVzZW50IHdoZW4gdGhpcyBzdGFnZSBpcyB2aXNpdGVkIHZpYSBsb29wVG8oKS4gKi9cbiAgbG9vcEl0ZXJhdGlvbj86IG51bWJlcjtcbiAgLyoqIFRydWUgZm9yIHRoZSBzdGFnZSBhIHJlc3VtZSByZS1lbnRlcmVkOiBpdHMgYXJyaXZhbCB3YXMgYWxyZWFkeSB0b2xkIGJ5IHRoZSByZXN1bWUgZW50cnkuICovXG4gIHJlc3VtZWQ/OiBib29sZWFuO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyT3AuIFJldHVybiBudWxsIHRvIGV4Y2x1ZGUgdGhlIGVudHJ5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcFJlbmRlckNvbnRleHQge1xuICB0eXBlOiAncmVhZCcgfCAnd3JpdGUnO1xuICBrZXk6IHN0cmluZztcbiAgcmF3VmFsdWU6IHVua25vd247XG4gIHZhbHVlU3VtbWFyeTogc3RyaW5nO1xuICBvcGVyYXRpb24/OiAnc2V0JyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZSc7XG4gIHN0ZXBOdW1iZXI6IG51bWJlcjtcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckRlY2lzaW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNpc2lvblJlbmRlckNvbnRleHQge1xuICBkZWNpZGVyOiBzdHJpbmc7XG4gIGNob3Nlbjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmF0aW9uYWxlPzogc3RyaW5nO1xuICAvKiogUmF3IGV2aWRlbmNlIGZyb20gZGVjaWRlKCkvc2VsZWN0KCkg4oCUIGF2YWlsYWJsZSBmb3IgY3VzdG9tIHJlbmRlcmluZy4gKi9cbiAgZXZpZGVuY2U/OiB1bmtub3duO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyRm9yay4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ya1JlbmRlckNvbnRleHQge1xuICBjaGlsZHJlbjogc3RyaW5nW107XG59XG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJTdWJmbG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93UmVuZGVyQ29udGV4dCB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGlyZWN0aW9uOiAnZW50cnknIHwgJ2V4aXQnO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIE1hcHBlZCBpbnB1dCB2YWx1ZXMgc2VudCBpbnRvIHRoZSBzdWJmbG93LiBQcmVzZW50IG9uIGVudHJ5LiAqL1xuICBtYXBwZWRJbnB1dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogU3ViZmxvdyBzaGFyZWQgc3RhdGUgYXQgZXhpdC4gUHJlc2VudCBvbiBleGl0LiAqL1xuICBvdXRwdXRTdGF0ZT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyTG9vcC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9vcFJlbmRlckNvbnRleHQge1xuICB0YXJnZXQ6IHN0cmluZztcbiAgaXRlcmF0aW9uOiBudW1iZXI7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyQnJlYWsuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFrUmVuZGVyQ29udGV4dCB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyU2VsZWN0ZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGVkUmVuZGVyQ29udGV4dCB7XG4gIHNlbGVjdGVkOiBzdHJpbmdbXTtcbiAgdG90YWw6IG51bWJlcjtcbiAgLyoqIFJhdyBldmlkZW5jZSBmcm9tIHNlbGVjdCgpIOKAlCBhdmFpbGFibGUgZm9yIGN1c3RvbSByZW5kZXJpbmcuICovXG4gIGV2aWRlbmNlPzogdW5rbm93bjtcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckVycm9yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFcnJvclJlbmRlckNvbnRleHQge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB2YWxpZGF0aW9uSXNzdWVzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnRleHQgcGFzc2VkIHRvIGBOYXJyYXRpdmVGb3JtYXR0ZXIucmVuZGVyUmV0cnlgIOKAlCBvbmUgZmFpbGVkIGF0dGVtcHQgYXQgYVxuICogc3RhZ2Ugd2l0aCBhIGRlY2xhcmVkIHJldHJ5IHBvbGljeSwgd2hpY2ggdGhlIGVuZ2luZSB0aGVuIHJldHJpZWQuIEZpcmVzIG9ubHlcbiAqIGZvciBhdHRlbXB0cyBmb2xsb3dlZCBieSBhbm90aGVyIGF0dGVtcHQ7IHRoZSBmaW5hbCBmYWlsdXJlIGdvZXMgdG9cbiAqIGByZW5kZXJFcnJvcmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlSZW5kZXJDb250ZXh0IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIC8qKiBXaGljaCBhdHRlbXB0IGp1c3QgZmFpbGVkLCAxLWJhc2VkLiAqL1xuICBhdHRlbXB0OiBudW1iZXI7XG4gIC8qKiBUb3RhbCBhdHRlbXB0cyB0aGUgcG9saWN5IGFsbG93cywgaW5jbHVkaW5nIHRoZSBmaXJzdC4gKi9cbiAgbWF4QXR0ZW1wdHM6IG51bWJlcjtcbiAgLyoqIE1pbGxpc2Vjb25kcyB3YWl0ZWQgYmVmb3JlIHRoZSBuZXh0IGF0dGVtcHQuIGAwYCA9IGltbWVkaWF0ZS4gKi9cbiAgZGVsYXlNczogbnVtYmVyO1xuICAvKiogVGhlIGZhaWxlZCBhdHRlbXB0J3MgZXJyb3IgbWVzc2FnZS4gKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnRleHQgcGFzc2VkIHRvIGBOYXJyYXRpdmVGb3JtYXR0ZXIucmVuZGVyRW1pdGAg4oCUIGZpcmVzIGZvciBldmVyeVxuICogY29uc3VtZXItZW1pdHRlZCBldmVudCAoYHNjb3BlLiRlbWl0KG5hbWUsIHBheWxvYWQpYCkuIENhcnJpZXMgdGhlIGZ1bGxcbiAqIGBFbWl0RXZlbnRgIHNoYXBlIHNvIGZvcm1hdHRlcnMgY2FuIHJlbmRlciBuYW1lICsgcGF5bG9hZCB3aXRoIGZ1bGxcbiAqIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1pdFJlbmRlckNvbnRleHQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHBheWxvYWQ6IHVua25vd247XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICBydW50aW1lU3RhZ2VJZDogc3RyaW5nO1xuICBzdWJmbG93UGF0aDogcmVhZG9ubHkgc3RyaW5nW107XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgdGltZXN0YW1wOiBudW1iZXI7XG4gIC8qKiBTdW1tYXJ5IHN0cmluZyDigJQgdGhlIGxpYnJhcnkncyBkZWZhdWx0IHRydW5jYXRlZCBwYXlsb2FkIHByZXZpZXcuICovXG4gIHBheWxvYWRTdW1tYXJ5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGx1Z2dhYmxlIGZvcm1hdHRlciBmb3IgbmFycmF0aXZlIG91dHB1dC4gVHVybnMgc3RydWN0dXJlZCBldmVudCBjb250ZXh0XG4gKiBvYmplY3RzIGludG8gdGhlIHRleHQgbGluZXMgdGhhdCBtYWtlIHVwIHRoZSBuYXJyYXRpdmUgYXJyYXkuXG4gKlxuICogIyMgV2h5IFwiRm9ybWF0dGVyXCIsIG5vdCBcIlJlbmRlcmVyXCJcbiAqXG4gKiBJbiB3ZWIgdGVybWlub2xvZ3kgXCJyZW5kZXJlclwiIHVzdWFsbHkgbWVhbnMgXCJ0dXJuIGRhdGEgaW50byBhIHZpc2libGUgVUlcIlxuICogKHBpeGVscywgRE9NLCBIVE1MKS4gVGhpcyBpbnRlcmZhY2UgZG9lcyBzb21ldGhpbmcgc21hbGxlcjogaXQgY29udmVydHNcbiAqIGV2ZW50IGNvbnRleHQgaW50byBhIHRleHQgc3RyaW5nLiBUaGF0IGlzIG1vcmUgYWNjdXJhdGVseSBjYWxsZWQgYVxuICogKmZvcm1hdHRlciog4oCUIGhlbmNlIHRoZSBuZXcgbmFtZS4gVGhlIGxlZ2FjeSBhbGlhcyBgTmFycmF0aXZlUmVuZGVyZXJgXG4gKiBpcyBwcmVzZXJ2ZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYW5kIG1hcmtlZCBgQGRlcHJlY2F0ZWRgOyBpdCB3aWxsXG4gKiBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuXG4gKlxuICogIyMgQmVoYXZpb3VyXG4gKlxuICogRWFjaCBtZXRob2QgaXMgb3B0aW9uYWwg4oCUIHVuaW1wbGVtZW50ZWQgbWV0aG9kcyBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHRcbiAqIEVuZ2xpc2ggZm9ybWF0dGVyLiBSZXR1cm4gYG51bGxgIGZyb20gYHJlbmRlck9wYCB0byBleGNsdWRlIHRoYXQgZW50cnlcbiAqIGZyb20gdGhlIG5hcnJhdGl2ZSBlbnRpcmVseS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVjID0gbmFycmF0aXZlKHtcbiAqICAgcmVuZGVyZXI6IHtcbiAqICAgICByZW5kZXJPcChjdHgpIHtcbiAqICAgICAgIGlmIChjdHgua2V5LnN0YXJ0c1dpdGgoJ19pbnRlcm5hbCcpKSByZXR1cm4gbnVsbDsgLy8gZmlsdGVyIG91dCBpbnRlcm5hbCBrZXlzXG4gKiAgICAgICByZXR1cm4gYCR7Y3R4LnR5cGUgPT09ICdyZWFkJyA/ICdSZWFkJyA6ICdXcm90ZSd9ICR7Y3R4LmtleX06ICR7Y3R4LnZhbHVlU3VtbWFyeX1gO1xuICogICAgIH0sXG4gKiAgIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hcnJhdGl2ZUZvcm1hdHRlciB7XG4gIHJlbmRlclN0YWdlPyhjdHg6IFN0YWdlUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgLyoqXG4gICAqIEZvcm1hdCBhbiBvcCAoc2NvcGUgcmVhZC93cml0ZSwgb3Igc3ViZmxvdy1pbnB1dCBrZXkpIGludG8gYSBuYXJyYXRpdmUgbGluZS5cbiAgICpcbiAgICogICAtIGBzdHJpbmdgICAgIOKGkiB1c2UgYXMgdGhlIG5hcnJhdGl2ZSBsaW5lXG4gICAqICAgLSBgbnVsbGAgICAgICDihpIgZGVsaWJlcmF0ZWx5IGV4Y2x1ZGUgdGhpcyBlbnRyeSBmcm9tIHRoZSBuYXJyYXRpdmVcbiAgICogICAtIGB1bmRlZmluZWRgIOKGkiB0aGlzIGZvcm1hdHRlciBkb2VzIG5vdCBoYW5kbGUgdGhpcyBvcDsgZmFsbCBiYWNrIHRvXG4gICAqICAgICAgICAgICAgICAgICAgIHRoZSBsaWJyYXJ5J3MgZGVmYXVsdCB0ZW1wbGF0ZVxuICAgKlxuICAgKiBUaGUgYHVuZGVmaW5lZGAgcmV0dXJuIGxldHMgYSBkb21haW4tYXdhcmUgZm9ybWF0dGVyIGhhbmRsZSBvbmx5IHRoZVxuICAgKiBrZXlzIGl0IGtub3dzIGFib3V0IGFuZCBsZWF2ZSB0aGUgcmVzdCB0byB0aGUgbGlicmFyeSBkZWZhdWx0IOKAlCB3aXRob3V0XG4gICAqIGhhdmluZyB0byByZS1pbXBsZW1lbnQgdGhlIHdob2xlIGRlZmF1bHQgaW5saW5lLlxuICAgKi9cbiAgcmVuZGVyT3A/KGN0eDogT3BSZW5kZXJDb250ZXh0KTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcmVuZGVyRGVjaXNpb24/KGN0eDogRGVjaXNpb25SZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJGb3JrPyhjdHg6IEZvcmtSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJTZWxlY3RlZD8oY3R4OiBTZWxlY3RlZFJlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIHJlbmRlclN1YmZsb3c/KGN0eDogU3ViZmxvd1JlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIHJlbmRlckxvb3A/KGN0eDogTG9vcFJlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIHJlbmRlckJyZWFrPyhjdHg6IEJyZWFrUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgcmVuZGVyRXJyb3I/KGN0eDogRXJyb3JSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICAvKipcbiAgICogRm9ybWF0IGEgcmV0cmllZCBhdHRlbXB0IGludG8gYSBuYXJyYXRpdmUgbGluZS4gUmVuZGVyZWQgYXMgYSBkZXB0aC0xXG4gICAqIHN1Yi1pdGVtIG9mIGl0cyBzdGFnZSwgcG9zaXRpb25lZCBiZXR3ZWVuIHRoZSBhdHRlbXB0cycgcmVhZHMgYW5kIHdyaXRlc1xuICAgKiBzbyB0aGUgbmFycmF0aXZlIHJlYWRzIGluIHRoZSBvcmRlciB0aGluZ3MgYWN0dWFsbHkgaGFwcGVuZWQuXG4gICAqL1xuICByZW5kZXJSZXRyeT8oY3R4OiBSZXRyeVJlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBGb3JtYXQgYSBjb25zdW1lci1lbWl0dGVkIGV2ZW50IChmcm9tIGBzY29wZS4kZW1pdChuYW1lLCBwYXlsb2FkKWApXG4gICAqIGludG8gYSBuYXJyYXRpdmUgbGluZS5cbiAgICpcbiAgICogICAtIGBzdHJpbmdgICAgIOKGkiB1c2UgYXMgdGhlIG5hcnJhdGl2ZSBsaW5lXG4gICAqICAgLSBgbnVsbGAgICAgICDihpIgZGVsaWJlcmF0ZWx5IGV4Y2x1ZGUgdGhpcyBlbnRyeVxuICAgKiAgIC0gYHVuZGVmaW5lZGAg4oaSIHRoaXMgZm9ybWF0dGVyIGRvZXMgbm90IGhhbmRsZSB0aGlzIGVtaXQ7IGZhbGwgYmFja1xuICAgKiAgICAgICAgICAgICAgICAgICB0byB0aGUgbGlicmFyeSdzIGRlZmF1bHQgdGVtcGxhdGVcbiAgICpcbiAgICogVHlwaWNhbCBwYXR0ZXJuOiBzd2l0Y2ggb24gYGN0eC5uYW1lYCAob3IgYSBwcmVmaXggb2YgaXQpIGFuZCByZXR1cm4gYVxuICAgKiBkb21haW4tc3BlY2lmaWMgdGV4dCBsaW5lIGZvciB0aGUgZXZlbnQgdHlwZXMgeW91IGNhcmUgYWJvdXQ7IHJldHVyblxuICAgKiBgdW5kZWZpbmVkYCBmb3IgZXZlcnl0aGluZyBlbHNlIHNvIHRoZSBkZWZhdWx0IHRlbXBsYXRlIGhhbmRsZXMgaXQuXG4gICAqL1xuICByZW5kZXJFbWl0PyhjdHg6IEVtaXRSZW5kZXJDb250ZXh0KTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBOYXJyYXRpdmVGb3JtYXR0ZXJgIGZvciBjbGFyaXR5IOKAlCB0aGlzIGludGVyZmFjZVxuICogZm9ybWF0cyBldmVudCBjb250ZXh0IGludG8gdGV4dCBsaW5lcywgbm90IFwicmVuZGVyIHRvIFVJXCIuIExlZ2FjeSBhbGlhc1xuICoga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eTsgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yXG4gKiByZWxlYXNlLiBNaWdyYXRlIGJ5IHJlcGxhY2luZyBgTmFycmF0aXZlUmVuZGVyZXJgIHdpdGhcbiAqIGBOYXJyYXRpdmVGb3JtYXR0ZXJgIGF0IGltcG9ydHMg4oCUIG5vIGJlaGF2aW91cmFsIGNoYW5nZS5cbiAqL1xuZXhwb3J0IHR5cGUgTmFycmF0aXZlUmVuZGVyZXIgPSBOYXJyYXRpdmVGb3JtYXR0ZXI7XG4iXX0=
@@ -16,6 +16,7 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.RLENarrativeFlowRecorder = void 0;
19
+ const sentences_js_1 = require("../formatting/sentences.js");
19
20
  const NarrativeFlowRecorder_js_1 = require("../NarrativeFlowRecorder.js");
20
21
  class RLENarrativeFlowRecorder extends NarrativeFlowRecorder_js_1.NarrativeFlowRecorder {
21
22
  currentRun = null;
@@ -55,12 +56,7 @@ class RLENarrativeFlowRecorder extends NarrativeFlowRecorder_js_1.NarrativeFlowR
55
56
  const count = run.endIteration - run.startIteration + 1;
56
57
  if (count === 1) {
57
58
  // Single iteration — emit normal sentence
58
- if (run.description) {
59
- summaries.push(`On pass ${run.startIteration}: ${run.description} again.`);
60
- }
61
- else {
62
- summaries.push(`On pass ${run.startIteration} through ${run.target}.`);
63
- }
59
+ summaries.push((0, sentences_js_1.loopSentence)({ target: run.target, iteration: run.startIteration, description: run.description }));
64
60
  }
65
61
  else {
66
62
  summaries.push(`Looped through ${run.target} ${count} times (passes ${run.startIteration}–${run.endIteration}).`);
@@ -75,4 +71,4 @@ class RLENarrativeFlowRecorder extends NarrativeFlowRecorder_js_1.NarrativeFlowR
75
71
  }
76
72
  }
77
73
  exports.RLENarrativeFlowRecorder = RLENarrativeFlowRecorder;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUkxFTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL3JlY29yZGVycy9STEVOYXJyYXRpdmVGbG93UmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOzs7QUFFSCwwRUFBb0U7QUFVcEUsTUFBYSx3QkFBeUIsU0FBUSxnREFBcUI7SUFDekQsVUFBVSxHQUFvQixJQUFJLENBQUM7SUFDbkMsYUFBYSxHQUFlLEVBQUUsQ0FBQztJQUV2QyxZQUFZLEVBQVc7UUFDckIsS0FBSyxDQUFDLEVBQUUsSUFBSSxlQUFlLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVEsTUFBTSxDQUFDLEtBQW9CO1FBQ2xDLDZEQUE2RDtRQUU3RCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9ELHlCQUF5QjtZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ04sdUNBQXVDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEdBQUc7Z0JBQ2hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsY0FBYyxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUMvQixZQUFZLEVBQUUsS0FBSyxDQUFDLFNBQVM7Z0JBQzdCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVzthQUMvQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFUSxZQUFZO1FBQ25CLHdCQUF3QjtRQUN4QixNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbEMsdUJBQXVCO1FBQ3ZCLE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQztRQUMvQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7WUFDeEQsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLDBDQUEwQztnQkFDMUMsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3BCLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsY0FBYyxLQUFLLEdBQUcsQ0FBQyxXQUFXLFNBQVMsQ0FBQyxDQUFDO2dCQUM3RSxDQUFDO3FCQUFNLENBQUM7b0JBQ04sU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxjQUFjLFlBQVksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ3pFLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sU0FBUyxDQUFDLElBQUksQ0FDWixrQkFBa0IsR0FBRyxDQUFDLE1BQU0sSUFBSSxLQUFLLGtCQUFrQixHQUFHLENBQUMsY0FBYyxJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FDbEcsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVRLEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUEvREQsNERBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSTEVOYXJyYXRpdmVGbG93UmVjb3JkZXIg4oCUIFJ1bi1MZW5ndGggRW5jb2RpbmcgZm9yIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBsb29wIHRhcmdldHMuXG4gKlxuICogSW5zdGVhZCBvZiBlbWl0dGluZyBvbmUgc2VudGVuY2UgcGVyIGl0ZXJhdGlvbiwgY29sbGFwc2VzIGNvbnNlY3V0aXZlIGxvb3BzXG4gKiB0aHJvdWdoIHRoZSBzYW1lIHRhcmdldCBpbnRvIGEgc2luZ2xlIFwiTG9vcGVkIE4gdGltZXMgdGhyb3VnaCBYXCIgc2VudGVuY2UuXG4gKlxuICogQmVzdCBmb3I6IFNpbXBsZSByZXRyeSBsb29wcyB3aGVyZSBldmVyeSBpdGVyYXRpb24gbG9va3MgdGhlIHNhbWUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGV4ZWN1dG9yLmF0dGFjaEZsb3dSZWNvcmRlcihuZXcgUkxFTmFycmF0aXZlRmxvd1JlY29yZGVyKCkpO1xuICogLy8gSW5zdGVhZCBvZiA1MCBcIk9uIHBhc3MgTi4uLlwiIGxpbmVzOlxuICogLy8gXCJMb29wZWQgdGhyb3VnaCBBc2tMTE0gNTAgdGltZXMgKHBhc3NlcyAx4oCTNTApLlwiXG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBOYXJyYXRpdmVGbG93UmVjb3JkZXIgfSBmcm9tICcuLi9OYXJyYXRpdmVGbG93UmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93TG9vcEV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5pbnRlcmZhY2UgUnVuR3JvdXAge1xuICB0YXJnZXQ6IHN0cmluZztcbiAgc3RhcnRJdGVyYXRpb246IG51bWJlcjtcbiAgZW5kSXRlcmF0aW9uOiBudW1iZXI7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUkxFTmFycmF0aXZlRmxvd1JlY29yZGVyIGV4dGVuZHMgTmFycmF0aXZlRmxvd1JlY29yZGVyIHtcbiAgcHJpdmF0ZSBjdXJyZW50UnVuOiBSdW5Hcm91cCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbXBsZXRlZFJ1bnM6IFJ1bkdyb3VwW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihpZD86IHN0cmluZykge1xuICAgIHN1cGVyKGlkID8/ICduYXJyYXRpdmUtcmxlJyk7XG4gIH1cblxuICBvdmVycmlkZSBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBEb24ndCBjYWxsIHN1cGVyIOKAlCB3ZSBoYW5kbGUgc2VudGVuY2UgZ2VuZXJhdGlvbiBvdXJzZWx2ZXNcblxuICAgIGlmICh0aGlzLmN1cnJlbnRSdW4gJiYgdGhpcy5jdXJyZW50UnVuLnRhcmdldCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICAvLyBFeHRlbmQgdGhlIGN1cnJlbnQgcnVuXG4gICAgICB0aGlzLmN1cnJlbnRSdW4uZW5kSXRlcmF0aW9uID0gZXZlbnQuaXRlcmF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGbHVzaCBwcmV2aW91cyBydW4gYW5kIHN0YXJ0IG5ldyBvbmVcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRSdW4pIHtcbiAgICAgICAgdGhpcy5jb21wbGV0ZWRSdW5zLnB1c2godGhpcy5jdXJyZW50UnVuKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFJ1biA9IHtcbiAgICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQsXG4gICAgICAgIHN0YXJ0SXRlcmF0aW9uOiBldmVudC5pdGVyYXRpb24sXG4gICAgICAgIGVuZEl0ZXJhdGlvbjogZXZlbnQuaXRlcmF0aW9uLFxuICAgICAgICBkZXNjcmlwdGlvbjogZXZlbnQuZGVzY3JpcHRpb24sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIGdldFNlbnRlbmNlcygpOiBzdHJpbmdbXSB7XG4gICAgLy8gRmx1c2ggYW55IHBlbmRpbmcgcnVuXG4gICAgY29uc3QgcnVucyA9IFsuLi50aGlzLmNvbXBsZXRlZFJ1bnNdO1xuICAgIGlmICh0aGlzLmN1cnJlbnRSdW4pIHtcbiAgICAgIHJ1bnMucHVzaCh0aGlzLmN1cnJlbnRSdW4pO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2UgPSBzdXBlci5nZXRTZW50ZW5jZXMoKTtcblxuICAgIC8vIEluamVjdCBSTEUgc3VtbWFyaWVzXG4gICAgY29uc3Qgc3VtbWFyaWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcnVuIG9mIHJ1bnMpIHtcbiAgICAgIGNvbnN0IGNvdW50ID0gcnVuLmVuZEl0ZXJhdGlvbiAtIHJ1bi5zdGFydEl0ZXJhdGlvbiArIDE7XG4gICAgICBpZiAoY291bnQgPT09IDEpIHtcbiAgICAgICAgLy8gU2luZ2xlIGl0ZXJhdGlvbiDigJQgZW1pdCBub3JtYWwgc2VudGVuY2VcbiAgICAgICAgaWYgKHJ1bi5kZXNjcmlwdGlvbikge1xuICAgICAgICAgIHN1bW1hcmllcy5wdXNoKGBPbiBwYXNzICR7cnVuLnN0YXJ0SXRlcmF0aW9ufTogJHtydW4uZGVzY3JpcHRpb259IGFnYWluLmApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1bW1hcmllcy5wdXNoKGBPbiBwYXNzICR7cnVuLnN0YXJ0SXRlcmF0aW9ufSB0aHJvdWdoICR7cnVuLnRhcmdldH0uYCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1bW1hcmllcy5wdXNoKFxuICAgICAgICAgIGBMb29wZWQgdGhyb3VnaCAke3J1bi50YXJnZXR9ICR7Y291bnR9IHRpbWVzIChwYXNzZXMgJHtydW4uc3RhcnRJdGVyYXRpb2594oCTJHtydW4uZW5kSXRlcmF0aW9ufSkuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gWy4uLmJhc2UsIC4uLnN1bW1hcmllc107XG4gIH1cblxuICBvdmVycmlkZSBjbGVhcigpOiB2b2lkIHtcbiAgICBzdXBlci5jbGVhcigpO1xuICAgIHRoaXMuY3VycmVudFJ1biA9IG51bGw7XG4gICAgdGhpcy5jb21wbGV0ZWRSdW5zID0gW107XG4gIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUkxFTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvbmFycmF0aXZlL3JlY29yZGVycy9STEVOYXJyYXRpdmVGbG93UmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOzs7QUFFSCw2REFBMEQ7QUFDMUQsMEVBQW9FO0FBVXBFLE1BQWEsd0JBQXlCLFNBQVEsZ0RBQXFCO0lBQ3pELFVBQVUsR0FBb0IsSUFBSSxDQUFDO0lBQ25DLGFBQWEsR0FBZSxFQUFFLENBQUM7SUFFdkMsWUFBWSxFQUFXO1FBQ3JCLEtBQUssQ0FBQyxFQUFFLElBQUksZUFBZSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVRLE1BQU0sQ0FBQyxLQUFvQjtRQUNsQyw2REFBNkQ7UUFFN0QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvRCx5QkFBeUI7WUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNqRCxDQUFDO2FBQU0sQ0FBQztZQUNOLHVDQUF1QztZQUN2QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHO2dCQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLGNBQWMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDL0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUM3QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7YUFDL0IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRVEsWUFBWTtRQUNuQix3QkFBd0I7UUFDeEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWxDLHVCQUF1QjtRQUN2QixNQUFNLFNBQVMsR0FBYSxFQUFFLENBQUM7UUFDL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNoQiwwQ0FBMEM7Z0JBQzFDLFNBQVMsQ0FBQyxJQUFJLENBQ1osSUFBQSwyQkFBWSxFQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNsRyxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsQ0FBQyxJQUFJLENBQ1osa0JBQWtCLEdBQUcsQ0FBQyxNQUFNLElBQUksS0FBSyxrQkFBa0IsR0FBRyxDQUFDLGNBQWMsSUFBSSxHQUFHLENBQUMsWUFBWSxJQUFJLENBQ2xHLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFUSxLQUFLO1FBQ1osS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBN0RELDREQTZEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUkxFTmFycmF0aXZlRmxvd1JlY29yZGVyIOKAlCBSdW4tTGVuZ3RoIEVuY29kaW5nIGZvciBjb25zZWN1dGl2ZSBpZGVudGljYWwgbG9vcCB0YXJnZXRzLlxuICpcbiAqIEluc3RlYWQgb2YgZW1pdHRpbmcgb25lIHNlbnRlbmNlIHBlciBpdGVyYXRpb24sIGNvbGxhcHNlcyBjb25zZWN1dGl2ZSBsb29wc1xuICogdGhyb3VnaCB0aGUgc2FtZSB0YXJnZXQgaW50byBhIHNpbmdsZSBcIkxvb3BlZCBOIHRpbWVzIHRocm91Z2ggWFwiIHNlbnRlbmNlLlxuICpcbiAqIEJlc3QgZm9yOiBTaW1wbGUgcmV0cnkgbG9vcHMgd2hlcmUgZXZlcnkgaXRlcmF0aW9uIGxvb2tzIHRoZSBzYW1lLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBleGVjdXRvci5hdHRhY2hGbG93UmVjb3JkZXIobmV3IFJMRU5hcnJhdGl2ZUZsb3dSZWNvcmRlcigpKTtcbiAqIC8vIEluc3RlYWQgb2YgNTAgXCJPbiBwYXNzIE4uLi5cIiBsaW5lczpcbiAqIC8vIFwiTG9vcGVkIHRocm91Z2ggQXNrTExNIDUwIHRpbWVzIChwYXNzZXMgMeKAkzUwKS5cIlxuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgbG9vcFNlbnRlbmNlIH0gZnJvbSAnLi4vZm9ybWF0dGluZy9zZW50ZW5jZXMuanMnO1xuaW1wb3J0IHsgTmFycmF0aXZlRmxvd1JlY29yZGVyIH0gZnJvbSAnLi4vTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd0xvb3BFdmVudCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuaW50ZXJmYWNlIFJ1bkdyb3VwIHtcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIHN0YXJ0SXRlcmF0aW9uOiBudW1iZXI7XG4gIGVuZEl0ZXJhdGlvbjogbnVtYmVyO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFJMRU5hcnJhdGl2ZUZsb3dSZWNvcmRlciBleHRlbmRzIE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB7XG4gIHByaXZhdGUgY3VycmVudFJ1bjogUnVuR3JvdXAgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb21wbGV0ZWRSdW5zOiBSdW5Hcm91cFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoaWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihpZCA/PyAnbmFycmF0aXZlLXJsZScpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25Mb29wKGV2ZW50OiBGbG93TG9vcEV2ZW50KTogdm9pZCB7XG4gICAgLy8gRG9uJ3QgY2FsbCBzdXBlciDigJQgd2UgaGFuZGxlIHNlbnRlbmNlIGdlbmVyYXRpb24gb3Vyc2VsdmVzXG5cbiAgICBpZiAodGhpcy5jdXJyZW50UnVuICYmIHRoaXMuY3VycmVudFJ1bi50YXJnZXQgPT09IGV2ZW50LnRhcmdldCkge1xuICAgICAgLy8gRXh0ZW5kIHRoZSBjdXJyZW50IHJ1blxuICAgICAgdGhpcy5jdXJyZW50UnVuLmVuZEl0ZXJhdGlvbiA9IGV2ZW50Lml0ZXJhdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmx1c2ggcHJldmlvdXMgcnVuIGFuZCBzdGFydCBuZXcgb25lXG4gICAgICBpZiAodGhpcy5jdXJyZW50UnVuKSB7XG4gICAgICAgIHRoaXMuY29tcGxldGVkUnVucy5wdXNoKHRoaXMuY3VycmVudFJ1bik7XG4gICAgICB9XG4gICAgICB0aGlzLmN1cnJlbnRSdW4gPSB7XG4gICAgICAgIHRhcmdldDogZXZlbnQudGFyZ2V0LFxuICAgICAgICBzdGFydEl0ZXJhdGlvbjogZXZlbnQuaXRlcmF0aW9uLFxuICAgICAgICBlbmRJdGVyYXRpb246IGV2ZW50Lml0ZXJhdGlvbixcbiAgICAgICAgZGVzY3JpcHRpb246IGV2ZW50LmRlc2NyaXB0aW9uLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBnZXRTZW50ZW5jZXMoKTogc3RyaW5nW10ge1xuICAgIC8vIEZsdXNoIGFueSBwZW5kaW5nIHJ1blxuICAgIGNvbnN0IHJ1bnMgPSBbLi4udGhpcy5jb21wbGV0ZWRSdW5zXTtcbiAgICBpZiAodGhpcy5jdXJyZW50UnVuKSB7XG4gICAgICBydW5zLnB1c2godGhpcy5jdXJyZW50UnVuKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlID0gc3VwZXIuZ2V0U2VudGVuY2VzKCk7XG5cbiAgICAvLyBJbmplY3QgUkxFIHN1bW1hcmllc1xuICAgIGNvbnN0IHN1bW1hcmllczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHJ1biBvZiBydW5zKSB7XG4gICAgICBjb25zdCBjb3VudCA9IHJ1bi5lbmRJdGVyYXRpb24gLSBydW4uc3RhcnRJdGVyYXRpb24gKyAxO1xuICAgICAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgICAgIC8vIFNpbmdsZSBpdGVyYXRpb24g4oCUIGVtaXQgbm9ybWFsIHNlbnRlbmNlXG4gICAgICAgIHN1bW1hcmllcy5wdXNoKFxuICAgICAgICAgIGxvb3BTZW50ZW5jZSh7IHRhcmdldDogcnVuLnRhcmdldCwgaXRlcmF0aW9uOiBydW4uc3RhcnRJdGVyYXRpb24sIGRlc2NyaXB0aW9uOiBydW4uZGVzY3JpcHRpb24gfSksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdW1tYXJpZXMucHVzaChcbiAgICAgICAgICBgTG9vcGVkIHRocm91Z2ggJHtydW4udGFyZ2V0fSAke2NvdW50fSB0aW1lcyAocGFzc2VzICR7cnVuLnN0YXJ0SXRlcmF0aW9ufeKAkyR7cnVuLmVuZEl0ZXJhdGlvbn0pLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi5iYXNlLCAuLi5zdW1tYXJpZXNdO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXIoKTtcbiAgICB0aGlzLmN1cnJlbnRSdW4gPSBudWxsO1xuICAgIHRoaXMuY29tcGxldGVkUnVucyA9IFtdO1xuICB9XG59XG4iXX0=
@@ -20,6 +20,7 @@
20
20
  */
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.SeparateNarrativeFlowRecorder = void 0;
23
+ const sentences_js_1 = require("../formatting/sentences.js");
23
24
  const NarrativeFlowRecorder_js_1 = require("../NarrativeFlowRecorder.js");
24
25
  class SeparateNarrativeFlowRecorder extends NarrativeFlowRecorder_js_1.NarrativeFlowRecorder {
25
26
  loopSentences = [];
@@ -33,12 +34,7 @@ class SeparateNarrativeFlowRecorder extends NarrativeFlowRecorder_js_1.Narrative
33
34
  const count = (this.loopCounts.get(event.target) ?? 0) + 1;
34
35
  this.loopCounts.set(event.target, count);
35
36
  // Store in separate channel
36
- if (event.description) {
37
- this.loopSentences.push(`On pass ${event.iteration}: ${event.description} again.`);
38
- }
39
- else {
40
- this.loopSentences.push(`On pass ${event.iteration} through ${event.target}.`);
41
- }
37
+ this.loopSentences.push((0, sentences_js_1.loopSentence)(event));
42
38
  }
43
39
  /** Returns all loop iteration sentences (the separate channel). */
44
40
  getLoopSentences() {
@@ -55,4 +51,4 @@ class SeparateNarrativeFlowRecorder extends NarrativeFlowRecorder_js_1.Narrative
55
51
  }
56
52
  }
57
53
  exports.SeparateNarrativeFlowRecorder = SeparateNarrativeFlowRecorder;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VwYXJhdGVOYXJyYXRpdmVGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL1NlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHOzs7QUFFSCwwRUFBb0U7QUFHcEUsTUFBYSw2QkFBOEIsU0FBUSxnREFBcUI7SUFDOUQsYUFBYSxHQUFhLEVBQUUsQ0FBQztJQUM3QixVQUFVLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFcEQsWUFBWSxFQUFXO1FBQ3JCLEtBQUssQ0FBQyxFQUFFLElBQUksb0JBQW9CLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRVEsTUFBTSxDQUFDLEtBQW9CO1FBQ2xDLHNEQUFzRDtRQUV0RCwwQkFBMEI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekMsNEJBQTRCO1FBQzVCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsV0FBVyxTQUFTLENBQUMsQ0FBQztRQUNyRixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLFNBQVMsWUFBWSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVRLEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQXRDRCxzRUFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyIOKAlCBDb2xsZWN0cyBsb29wIGl0ZXJhdGlvbnMgaW4gYSBzZXBhcmF0ZSBjaGFubmVsLlxuICpcbiAqIEtlZXBzIHRoZSBtYWluIG5hcnJhdGl2ZSBjbGVhbiAobm8gbG9vcCBzZW50ZW5jZXMpIHdoaWxlIHByZXNlcnZpbmcgZnVsbFxuICogaXRlcmF0aW9uIGRldGFpbCBpbiBhIHNlcGFyYXRlIGFjY2Vzc29yIGZvciBjb25zdW1lcnMgd2hvIG5lZWQgaXQuXG4gKlxuICogQmVzdCBmb3I6IFVJcyBvciByZXBvcnRzIHdoZXJlIGxvb3AgZGV0YWlsIGlzIGluIGEgY29sbGFwc2libGUgc2VjdGlvbixcbiAqIG9yIExMTSBwaXBlbGluZXMgd2hlcmUgbG9vcCBjb250ZXh0IHNob3VsZCBiZSBhdmFpbGFibGUgYnV0IG5vdCBpbiB0aGUgbWFpbiBwcm9tcHQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlY29yZGVyID0gbmV3IFNlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyKCk7XG4gKiBleGVjdXRvci5hdHRhY2hGbG93UmVjb3JkZXIocmVjb3JkZXIpO1xuICogYXdhaXQgZXhlY3V0b3IucnVuKCk7XG4gKlxuICogY29uc3QgbWFpbkVudHJpZXMgPSBleGVjdXRvci5nZXROYXJyYXRpdmVFbnRyaWVzKCk7IC8vIE5vIGxvb3Agc2VudGVuY2VzXG4gKiBjb25zdCBsb29wRGV0YWlsID0gcmVjb3JkZXIuZ2V0TG9vcFNlbnRlbmNlcygpOyAgICAgLy8gQWxsIGxvb3AgZGV0YWlsXG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBOYXJyYXRpdmVGbG93UmVjb3JkZXIgfSBmcm9tICcuLi9OYXJyYXRpdmVGbG93UmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93TG9vcEV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgU2VwYXJhdGVOYXJyYXRpdmVGbG93UmVjb3JkZXIgZXh0ZW5kcyBOYXJyYXRpdmVGbG93UmVjb3JkZXIge1xuICBwcml2YXRlIGxvb3BTZW50ZW5jZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgbG9vcENvdW50czogTWFwPHN0cmluZywgbnVtYmVyPiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcihpZD86IHN0cmluZykge1xuICAgIHN1cGVyKGlkID8/ICduYXJyYXRpdmUtc2VwYXJhdGUnKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uTG9vcChldmVudDogRmxvd0xvb3BFdmVudCk6IHZvaWQge1xuICAgIC8vIERvbid0IGNhbGwgc3VwZXIg4oCUIGtlZXAgbG9vcHMgb3V0IG9mIG1haW4gbmFycmF0aXZlXG5cbiAgICAvLyBUcmFjayBjb3VudCBmb3Igc3VtbWFyeVxuICAgIGNvbnN0IGNvdW50ID0gKHRoaXMubG9vcENvdW50cy5nZXQoZXZlbnQudGFyZ2V0KSA/PyAwKSArIDE7XG4gICAgdGhpcy5sb29wQ291bnRzLnNldChldmVudC50YXJnZXQsIGNvdW50KTtcblxuICAgIC8vIFN0b3JlIGluIHNlcGFyYXRlIGNoYW5uZWxcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubG9vcFNlbnRlbmNlcy5wdXNoKGBPbiBwYXNzICR7ZXZlbnQuaXRlcmF0aW9ufTogJHtldmVudC5kZXNjcmlwdGlvbn0gYWdhaW4uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9vcFNlbnRlbmNlcy5wdXNoKGBPbiBwYXNzICR7ZXZlbnQuaXRlcmF0aW9ufSB0aHJvdWdoICR7ZXZlbnQudGFyZ2V0fS5gKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJucyBhbGwgbG9vcCBpdGVyYXRpb24gc2VudGVuY2VzICh0aGUgc2VwYXJhdGUgY2hhbm5lbCkuICovXG4gIGdldExvb3BTZW50ZW5jZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5sb29wU2VudGVuY2VzXTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRvdGFsIGxvb3AgY291bnQgcGVyIHRhcmdldC4gKi9cbiAgZ2V0TG9vcENvdW50cygpOiBNYXA8c3RyaW5nLCBudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IE1hcCh0aGlzLmxvb3BDb3VudHMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXIoKTtcbiAgICB0aGlzLmxvb3BTZW50ZW5jZXMgPSBbXTtcbiAgICB0aGlzLmxvb3BDb3VudHMuY2xlYXIoKTtcbiAgfVxufVxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VwYXJhdGVOYXJyYXRpdmVGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL1NlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHOzs7QUFFSCw2REFBMEQ7QUFDMUQsMEVBQW9FO0FBR3BFLE1BQWEsNkJBQThCLFNBQVEsZ0RBQXFCO0lBQzlELGFBQWEsR0FBYSxFQUFFLENBQUM7SUFDN0IsVUFBVSxHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXBELFlBQVksRUFBVztRQUNyQixLQUFLLENBQUMsRUFBRSxJQUFJLG9CQUFvQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVRLE1BQU0sQ0FBQyxLQUFvQjtRQUNsQyxzREFBc0Q7UUFFdEQsMEJBQTBCO1FBQzFCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXpDLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFBLDJCQUFZLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLGFBQWE7UUFDWCxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVEsS0FBSztRQUNaLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBbENELHNFQWtDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VwYXJhdGVOYXJyYXRpdmVGbG93UmVjb3JkZXIg4oCUIENvbGxlY3RzIGxvb3AgaXRlcmF0aW9ucyBpbiBhIHNlcGFyYXRlIGNoYW5uZWwuXG4gKlxuICogS2VlcHMgdGhlIG1haW4gbmFycmF0aXZlIGNsZWFuIChubyBsb29wIHNlbnRlbmNlcykgd2hpbGUgcHJlc2VydmluZyBmdWxsXG4gKiBpdGVyYXRpb24gZGV0YWlsIGluIGEgc2VwYXJhdGUgYWNjZXNzb3IgZm9yIGNvbnN1bWVycyB3aG8gbmVlZCBpdC5cbiAqXG4gKiBCZXN0IGZvcjogVUlzIG9yIHJlcG9ydHMgd2hlcmUgbG9vcCBkZXRhaWwgaXMgaW4gYSBjb2xsYXBzaWJsZSBzZWN0aW9uLFxuICogb3IgTExNIHBpcGVsaW5lcyB3aGVyZSBsb29wIGNvbnRleHQgc2hvdWxkIGJlIGF2YWlsYWJsZSBidXQgbm90IGluIHRoZSBtYWluIHByb21wdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVjb3JkZXIgPSBuZXcgU2VwYXJhdGVOYXJyYXRpdmVGbG93UmVjb3JkZXIoKTtcbiAqIGV4ZWN1dG9yLmF0dGFjaEZsb3dSZWNvcmRlcihyZWNvcmRlcik7XG4gKiBhd2FpdCBleGVjdXRvci5ydW4oKTtcbiAqXG4gKiBjb25zdCBtYWluRW50cmllcyA9IGV4ZWN1dG9yLmdldE5hcnJhdGl2ZUVudHJpZXMoKTsgLy8gTm8gbG9vcCBzZW50ZW5jZXNcbiAqIGNvbnN0IGxvb3BEZXRhaWwgPSByZWNvcmRlci5nZXRMb29wU2VudGVuY2VzKCk7ICAgICAvLyBBbGwgbG9vcCBkZXRhaWxcbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IGxvb3BTZW50ZW5jZSB9IGZyb20gJy4uL2Zvcm1hdHRpbmcvc2VudGVuY2VzLmpzJztcbmltcG9ydCB7IE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB9IGZyb20gJy4uL05hcnJhdGl2ZUZsb3dSZWNvcmRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IEZsb3dMb29wRXZlbnQgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBTZXBhcmF0ZU5hcnJhdGl2ZUZsb3dSZWNvcmRlciBleHRlbmRzIE5hcnJhdGl2ZUZsb3dSZWNvcmRlciB7XG4gIHByaXZhdGUgbG9vcFNlbnRlbmNlczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBsb29wQ291bnRzOiBNYXA8c3RyaW5nLCBudW1iZXI+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0cnVjdG9yKGlkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoaWQgPz8gJ25hcnJhdGl2ZS1zZXBhcmF0ZScpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25Mb29wKGV2ZW50OiBGbG93TG9vcEV2ZW50KTogdm9pZCB7XG4gICAgLy8gRG9uJ3QgY2FsbCBzdXBlciDigJQga2VlcCBsb29wcyBvdXQgb2YgbWFpbiBuYXJyYXRpdmVcblxuICAgIC8vIFRyYWNrIGNvdW50IGZvciBzdW1tYXJ5XG4gICAgY29uc3QgY291bnQgPSAodGhpcy5sb29wQ291bnRzLmdldChldmVudC50YXJnZXQpID8/IDApICsgMTtcbiAgICB0aGlzLmxvb3BDb3VudHMuc2V0KGV2ZW50LnRhcmdldCwgY291bnQpO1xuXG4gICAgLy8gU3RvcmUgaW4gc2VwYXJhdGUgY2hhbm5lbFxuICAgIHRoaXMubG9vcFNlbnRlbmNlcy5wdXNoKGxvb3BTZW50ZW5jZShldmVudCkpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgYWxsIGxvb3AgaXRlcmF0aW9uIHNlbnRlbmNlcyAodGhlIHNlcGFyYXRlIGNoYW5uZWwpLiAqL1xuICBnZXRMb29wU2VudGVuY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMubG9vcFNlbnRlbmNlc107XG4gIH1cblxuICAvKiogUmV0dXJucyB0b3RhbCBsb29wIGNvdW50IHBlciB0YXJnZXQuICovXG4gIGdldExvb3BDb3VudHMoKTogTWFwPHN0cmluZywgbnVtYmVyPiB7XG4gICAgcmV0dXJuIG5ldyBNYXAodGhpcy5sb29wQ291bnRzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyKCk7XG4gICAgdGhpcy5sb29wU2VudGVuY2VzID0gW107XG4gICAgdGhpcy5sb29wQ291bnRzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==