obsidian-integration-testing 12.2.0 → 13.0.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 (140) hide show
  1. package/README.md +1 -5
  2. package/dist/lib/cjs/adb.cjs +1 -1
  3. package/dist/lib/cjs/app-config.cjs +1 -1
  4. package/dist/lib/cjs/app-config.d.cts +1 -1
  5. package/dist/lib/cjs/appium-dependencies.cjs +1 -1
  6. package/dist/lib/cjs/appium-session-config.cjs +3 -5
  7. package/dist/lib/cjs/appium-session-config.d.cts +6 -9
  8. package/dist/lib/cjs/connect-to-cdp.cjs +1 -1
  9. package/dist/lib/cjs/connect-to-cdp.d.cts +5 -0
  10. package/dist/lib/cjs/demo-vault-bootstrap.cjs +1 -1
  11. package/dist/lib/cjs/desktop-only-plugin-skip-error.cjs +1 -1
  12. package/dist/lib/cjs/device-readiness.cjs +1 -1
  13. package/dist/lib/cjs/device-settings.cjs +1 -1
  14. package/dist/lib/cjs/device-settings.d.cts +1 -1
  15. package/dist/lib/cjs/emulator-device-id.cjs +1 -1
  16. package/dist/lib/cjs/emulator-device-id.d.cts +7 -6
  17. package/dist/lib/cjs/emulator-reaper.cjs +1 -1
  18. package/dist/lib/cjs/emulator-reaper.d.cts +2 -2
  19. package/dist/lib/cjs/emulator-reclaim.cjs +1 -1
  20. package/dist/lib/cjs/emulator-reclaim.d.cts +17 -17
  21. package/dist/lib/cjs/eval-cap.cjs +29 -0
  22. package/dist/lib/cjs/eval-cap.d.cts +43 -0
  23. package/dist/lib/cjs/eval-in-obsidian.cjs +1 -1
  24. package/dist/lib/cjs/eval-in-obsidian.d.cts +5 -0
  25. package/dist/lib/cjs/fit-screenshot.cjs +1 -1
  26. package/dist/lib/cjs/generate-function-call.cjs +1 -1
  27. package/dist/lib/cjs/generate-function-call.d.cts +1 -1
  28. package/dist/lib/cjs/global-setup-core.cjs +1 -1
  29. package/dist/lib/cjs/global-setup-core.d.cts +4 -4
  30. package/dist/lib/cjs/index.cjs +4 -1
  31. package/dist/lib/cjs/index.d.cts +1 -0
  32. package/dist/lib/cjs/integration-setup-failed-error.cjs +1 -1
  33. package/dist/lib/cjs/jest/global-setup.cjs +1 -1
  34. package/dist/lib/cjs/jest/global-setup.d.cts +3 -3
  35. package/dist/lib/cjs/leftover-cleanup.cjs +1 -1
  36. package/dist/lib/cjs/leftover-cleanup.d.cts +2 -2
  37. package/dist/lib/cjs/library.cjs +1 -1
  38. package/dist/lib/cjs/mobile-input.cjs +1 -1
  39. package/dist/lib/cjs/namespace-bootstrap.cjs +13 -3
  40. package/dist/lib/cjs/obsidian-instance.cjs +1 -1
  41. package/dist/lib/cjs/obsidian-version-switch.cjs +1 -1
  42. package/dist/lib/cjs/open-obsidian-settings-tab.cjs +1 -1
  43. package/dist/lib/cjs/owned-vault-seed.cjs +3 -3
  44. package/dist/lib/cjs/poll-in-obsidian.cjs +1 -1
  45. package/dist/lib/cjs/poll-in-obsidian.d.cts +4 -3
  46. package/dist/lib/cjs/process-capture.cjs +1 -1
  47. package/dist/lib/cjs/process-capture.d.cts +5 -5
  48. package/dist/lib/cjs/process-exit-message.cjs +1 -1
  49. package/dist/lib/cjs/process-exit-message.d.cts +2 -2
  50. package/dist/lib/cjs/run-version-matrix.cjs +3 -3
  51. package/dist/lib/cjs/run-version-matrix.d.cts +1 -1
  52. package/dist/lib/cjs/setup-lock.cjs +1 -1
  53. package/dist/lib/cjs/soft-keyboard-geometry.cjs +17 -8
  54. package/dist/lib/cjs/soft-keyboard-geometry.d.cts +46 -9
  55. package/dist/lib/cjs/soft-keyboard.cjs +7 -4
  56. package/dist/lib/cjs/soft-keyboard.d.cts +16 -2
  57. package/dist/lib/cjs/temporary-vault.cjs +3 -1
  58. package/dist/lib/cjs/transport-appium.cjs +7 -5
  59. package/dist/lib/cjs/transport-desktop-cdp.cjs +81 -15
  60. package/dist/lib/cjs/transport-desktop-cdp.d.cts +44 -1
  61. package/dist/lib/cjs/transport-factory.cjs +2 -2
  62. package/dist/lib/cjs/transport-options.cjs +1 -1
  63. package/dist/lib/cjs/transport-options.d.cts +11 -1
  64. package/dist/lib/cjs/vault-teardown-verdict.cjs +1 -1
  65. package/dist/lib/cjs/version-matrix.cjs +1 -1
  66. package/dist/lib/cjs/version-matrix.d.cts +2 -2
  67. package/dist/lib/cjs/vitest/global-setup.cjs +1 -1
  68. package/dist/lib/cjs/vitest/global-setup.d.cts +3 -3
  69. package/dist/lib/cjs/webview-cdp.cjs +45 -14
  70. package/dist/lib/cjs/webview-cdp.d.cts +17 -0
  71. package/dist/lib/esm/adb.mjs +1 -1
  72. package/dist/lib/esm/app-config.d.mts +1 -1
  73. package/dist/lib/esm/app-config.mjs +1 -1
  74. package/dist/lib/esm/appium-dependencies.mjs +1 -1
  75. package/dist/lib/esm/appium-session-config.d.mts +6 -9
  76. package/dist/lib/esm/appium-session-config.mjs +3 -4
  77. package/dist/lib/esm/connect-to-cdp.d.mts +5 -0
  78. package/dist/lib/esm/connect-to-cdp.mjs +1 -1
  79. package/dist/lib/esm/demo-vault-bootstrap.mjs +1 -1
  80. package/dist/lib/esm/desktop-only-plugin-skip-error.mjs +1 -1
  81. package/dist/lib/esm/device-readiness.mjs +1 -1
  82. package/dist/lib/esm/device-settings.d.mts +1 -1
  83. package/dist/lib/esm/device-settings.mjs +1 -1
  84. package/dist/lib/esm/emulator-device-id.d.mts +7 -6
  85. package/dist/lib/esm/emulator-device-id.mjs +1 -1
  86. package/dist/lib/esm/emulator-reaper.d.mts +2 -2
  87. package/dist/lib/esm/emulator-reaper.mjs +1 -1
  88. package/dist/lib/esm/emulator-reclaim.d.mts +17 -17
  89. package/dist/lib/esm/emulator-reclaim.mjs +1 -1
  90. package/dist/lib/esm/eval-cap.d.mts +43 -0
  91. package/dist/lib/esm/eval-cap.mjs +5 -0
  92. package/dist/lib/esm/eval-in-obsidian.d.mts +5 -0
  93. package/dist/lib/esm/eval-in-obsidian.mjs +1 -1
  94. package/dist/lib/esm/fit-screenshot.mjs +1 -1
  95. package/dist/lib/esm/generate-function-call.d.mts +1 -1
  96. package/dist/lib/esm/generate-function-call.mjs +1 -1
  97. package/dist/lib/esm/global-setup-core.d.mts +4 -4
  98. package/dist/lib/esm/global-setup-core.mjs +1 -1
  99. package/dist/lib/esm/index.d.mts +1 -0
  100. package/dist/lib/esm/index.mjs +3 -1
  101. package/dist/lib/esm/integration-setup-failed-error.mjs +1 -1
  102. package/dist/lib/esm/jest/global-setup.d.mts +3 -3
  103. package/dist/lib/esm/jest/global-setup.mjs +1 -1
  104. package/dist/lib/esm/leftover-cleanup.d.mts +2 -2
  105. package/dist/lib/esm/leftover-cleanup.mjs +1 -1
  106. package/dist/lib/esm/library.mjs +1 -1
  107. package/dist/lib/esm/mobile-input.mjs +1 -1
  108. package/dist/lib/esm/namespace-bootstrap.mjs +13 -3
  109. package/dist/lib/esm/obsidian-instance.mjs +1 -1
  110. package/dist/lib/esm/obsidian-version-switch.mjs +1 -1
  111. package/dist/lib/esm/open-obsidian-settings-tab.mjs +1 -1
  112. package/dist/lib/esm/owned-vault-seed.mjs +3 -3
  113. package/dist/lib/esm/poll-in-obsidian.d.mts +4 -3
  114. package/dist/lib/esm/poll-in-obsidian.mjs +1 -1
  115. package/dist/lib/esm/process-capture.d.mts +5 -5
  116. package/dist/lib/esm/process-capture.mjs +1 -1
  117. package/dist/lib/esm/process-exit-message.d.mts +2 -2
  118. package/dist/lib/esm/process-exit-message.mjs +1 -1
  119. package/dist/lib/esm/run-version-matrix.d.mts +1 -1
  120. package/dist/lib/esm/run-version-matrix.mjs +3 -3
  121. package/dist/lib/esm/setup-lock.mjs +1 -1
  122. package/dist/lib/esm/soft-keyboard-geometry.d.mts +46 -9
  123. package/dist/lib/esm/soft-keyboard-geometry.mjs +17 -8
  124. package/dist/lib/esm/soft-keyboard.d.mts +16 -2
  125. package/dist/lib/esm/soft-keyboard.mjs +7 -4
  126. package/dist/lib/esm/temporary-vault.mjs +3 -1
  127. package/dist/lib/esm/transport-appium.mjs +7 -5
  128. package/dist/lib/esm/transport-desktop-cdp.d.mts +44 -1
  129. package/dist/lib/esm/transport-desktop-cdp.mjs +81 -15
  130. package/dist/lib/esm/transport-factory.mjs +2 -2
  131. package/dist/lib/esm/transport-options.d.mts +11 -1
  132. package/dist/lib/esm/transport-options.mjs +1 -1
  133. package/dist/lib/esm/vault-teardown-verdict.mjs +1 -1
  134. package/dist/lib/esm/version-matrix.d.mts +2 -2
  135. package/dist/lib/esm/version-matrix.mjs +1 -1
  136. package/dist/lib/esm/vitest/global-setup.d.mts +3 -3
  137. package/dist/lib/esm/vitest/global-setup.mjs +1 -1
  138. package/dist/lib/esm/webview-cdp.d.mts +17 -0
  139. package/dist/lib/esm/webview-cdp.mjs +45 -14
  140. package/package.json +1 -7
@@ -26,9 +26,9 @@ function buildOwnedObsidianJson(params) {
26
26
  const entry = shouldAutoOpenVault ? { open: true, path: params.vaultPath, ts: params.ts } : { path: params.vaultPath, ts: params.ts };
27
27
  return {
28
28
  // Spread rather than `last_open: undefined`, so the key is genuinely absent from
29
- // The written JSON: this seed is read by Obsidian versions spanning a decade, and
29
+ // the written JSON: this seed is read by Obsidian versions spanning a decade, and
30
30
  // A present-but-undefined auto-open marker is not a shape any of them was tested
31
- // Against.
31
+ // against.
32
32
  // eslint-disable-next-line camelcase -- Obsidian's own obsidian.json field name (old versions' auto-open marker).
33
33
  ...shouldAutoOpenVault && { last_open: params.vaultId },
34
34
  updateDisabled: true,
@@ -39,4 +39,4 @@ function buildOwnedObsidianJson(params) {
39
39
  0 && (module.exports = {
40
40
  buildOwnedObsidianJson
41
41
  });
42
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL293bmVkLXZhdWx0LXNlZWQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCdWlsZHMgdGhlIGlzb2xhdGVkIGBvYnNpZGlhbi5qc29uYCB0aGUgaGFybmVzcyBwcmUtc2VlZHMgaW50byBhbiBvd25lZFxuICogaW5zdGFuY2UncyB0ZW1wIGAtLXVzZXItZGF0YS1kaXJgIHNvIE9ic2lkaWFuIG9wZW5zIHRoZSBoYXJuZXNzIHZhdWx0IGRpcmVjdGx5XG4gKiBpbnN0ZWFkIG9mIHNob3dpbmcgdGhlIGZpcnN0LXJ1biB2YXVsdC1zZWxlY3RvciAodGhlIGBzdGFydGVyLXNjcmVlbmApLlxuICpcbiAqIFRoZSBhdXRvLW9wZW4gbWFya2VyIGNoYW5nZWQgYWNyb3NzIE9ic2lkaWFuJ3MgaGlzdG9yeSwgc28gdGhlIHNlZWQgY2Fycmllc1xuICogQk9USCBmb3JtcyBhbmQgZWFjaCB2ZXJzaW9uIHJlYWRzIHRoZSBvbmUgaXQgdW5kZXJzdGFuZHMgKGlnbm9yaW5nIHRoZSBvdGhlclxuICogdW5rbm93biBrZXkpIFx1MjAxNCBubyBwZXItdmVyc2lvbiBicmFuY2hpbmc6XG4gKlxuICogLSAqKk9sZCB2ZXJzaW9ucyoqIChjb25maXJtZWQgMC42LjQpIGF1dG8tb3BlbiBmcm9tIGEgKip0b3AtbGV2ZWwgYGxhc3Rfb3BlbmAqKlxuICogICBob2xkaW5nIHRoZSB2YXVsdCBpZCAoYG1haW4uanNgOiBgaWYgKGlkICYmIHZhdWx0cy5oYXNPd25Qcm9wZXJ0eShpZCkpXG4gKiAgIGNyZWF0ZVdpbmRvdyhpZCk7IGVsc2Ugb3BlblN0YXJ0ZXIoKTtgKSwgYW5kIHN0b3JlIGVhY2ggdmF1bHQgZW50cnkgYXMganVzdFxuICogICBgeyBwYXRoLCB0cyB9YC4gV2l0aG91dCBgbGFzdF9vcGVuYCB0aGV5IGZhbGwgdGhyb3VnaCB0byB0aGUgdmF1bHQtc2VsZWN0b3IuXG4gKiAtICoqTmV3ZXIgdmVyc2lvbnMqKiAoY29uZmlybWVkIDAuMTQuNSspIGRyb3BwZWQgYGxhc3Rfb3BlbmAgYW5kIGF1dG8tb3BlbiBmcm9tXG4gKiAgIHRoZSBwZXItZW50cnkgKipgb3BlbjogdHJ1ZWAqKiBmbGFnLlxuICpcbiAqIFNlZWRpbmcgYm90aCB3YXMgdmVyaWZpZWQgdG8gb3BlbiB0aGUgdmF1bHQgZGlyZWN0bHkgKG5vIHNlbGVjdG9yKSBvbiAwLjYuNCxcbiAqIDAuOS4yMCwgMC4xMi4xOSwgMC4xMy4xOSwgMC4xNC41IGFuZCAxLjEyLjcuIGB1cGRhdGVEaXNhYmxlZGAgc3VwcHJlc3NlcyB0aGVcbiAqIHRocm93YXdheSBpbnN0YW5jZSdzIHNlbGYtdXBkYXRlLlxuICpcbiAqIEJvdGggbWFya2VycyBjYW4gYWxzbyBiZSAqKndpdGhoZWxkKiogXHUyMDE0IHNlZVxuICoge0BsaW5rIEJ1aWxkT3duZWRPYnNpZGlhbkpzb25QYXJhbXMuc2hvdWxkQXV0b09wZW5WYXVsdH0uIFRoZSBvbmUgY2FsbGVyIHRoYXRcbiAqIGRvZXMgc28gd2FudHMgdGhlIHN0YXJ0ZXIgc2NyZWVuIG9uIHB1cnBvc2U6IGEgYGNvbmZpZ0RpcmVjdG9yeWAgb3ZlcnJpZGUgaXMgYVxuICogYGxvY2FsU3RvcmFnZWAgZW50cnksIGFuZCBgbG9jYWxTdG9yYWdlYCBvbmx5IGV4aXN0cyBvbmNlIGEgcmVuZGVyZXIgZG9lcywgc29cbiAqIHRoZSBvdmVycmlkZSBoYXMgdG8gYmUgd3JpdHRlbiBpbiB0aGUgc3RhcnRlciBzY3JlZW4ncyByZW5kZXJlciBiZWZvcmUgdGhlXG4gKiB2YXVsdCdzIG93biB3aW5kb3cgaXMgY3JlYXRlZC4gVGhlIHZhdWx0IHN0YXlzIHJlZ2lzdGVyZWQgdW5kZXIgdGhlIGhhcm5lc3Mnc1xuICogaWQgZWl0aGVyIHdheSwgYW5kIHRoZSBsYXRlciBgdmF1bHQtb3BlbmAgSVBDIHJldXNlcyB0aGF0IGlkICh2ZXJpZmllZCBvblxuICogMS4xMy43KSByYXRoZXIgdGhhbiBtaW50aW5nIGEgc2Vjb25kIGVudHJ5IFx1MjAxNCB3aGljaCBpcyB3aGF0IG1ha2VzIHRoZVxuICogYDx2YXVsdElkPi1jb25maWdgIGtleSBuYW1lIGtub3dhYmxlIGJlZm9yZSBsYXVuY2guXG4gKi9cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYnVpbGRPd25lZE9ic2lkaWFuSnNvbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRPd25lZE9ic2lkaWFuSnNvblBhcmFtcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIGF1dG8tb3BlbiBtYXJrZXJzLCBzbyBPYnNpZGlhbiBvcGVucyB0aGUgdmF1bHRcbiAgICogZGlyZWN0bHkgaW5zdGVhZCBvZiBzaG93aW5nIHRoZSBzdGFydGVyIHNjcmVlbi4gUGFzcyBgZmFsc2VgIHRvIGtlZXAgdGhlXG4gICAqIHZhdWx0IHJlZ2lzdGVyZWQgYnV0IGNsb3NlZCBcdTIwMTQgdGhlIGNhbGxlciB0aGVuIG9wZW5zIGl0IGl0c2VsZiwgb3ZlciB0aGVcbiAgICogYHZhdWx0LW9wZW5gIElQQywgb25jZSBpdCBoYXMgcHJlcGFyZWQgdGhlIHN0YXJ0ZXIgc2NyZWVuJ3MgcmVuZGVyZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkQXV0b09wZW5WYXVsdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gIExhc3QtYWNjZXNzIHRpbWVzdGFtcCB0byBzdGFtcCBvbiB0aGUgdmF1bHQgZW50cnkuXG4gICAqL1xuICByZWFkb25seSB0czogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgcmFuZG9tbHktZ2VuZXJhdGVkIHZhdWx0IGlkIHVzZWQgYXMgdGhlIHJlZ2lzdHJ5IGtleSBhbmQgYGxhc3Rfb3BlbmAuXG4gICAqL1xuICByZWFkb25seSB2YXVsdElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEFic29sdXRlIHBhdGggdG8gdGhlIGhhcm5lc3MgdmF1bHQgZm9sZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdmF1bHRQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGBvYnNpZGlhbi5qc29uYCBzdHJ1Y3R1cmUgdGhlIGhhcm5lc3Mgc2VlZHMgZm9yIGFuIG93bmVkIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE93bmVkT2JzaWRpYW5Kc29uIHtcbiAgLyoqXG4gICAqIFRvcC1sZXZlbCBhdXRvLW9wZW4gbWFya2VyICh2YXVsdCBpZCkgaG9ub3JlZCBieSBvbGQgT2JzaWRpYW4gdmVyc2lvbnM7XG4gICAqIGlnbm9yZWQgYXMgYW4gdW5rbm93biBrZXkgYnkgbmV3ZXIgdmVyc2lvbnMgdGhhdCB1c2UgdGhlIHBlci1lbnRyeSBgb3BlbmAuXG4gICAqIE9taXR0ZWQgd2hlbiB0aGUgY2FsbGVyIHdpdGhoZWxkIHRoZSBhdXRvLW9wZW4gbWFya2Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGxhc3Rfb3Blbj86IHN0cmluZztcblxuICAvKipcbiAgRGlzYWJsZXMgdGhlIHRocm93YXdheSBpbnN0YW5jZSdzIHNlbGYtdXBkYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlRGlzYWJsZWQ6IHRydWU7XG5cbiAgLyoqXG4gIFZhdWx0IHJlZ2lzdHJ5IGtleWVkIGJ5IHZhdWx0IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgdmF1bHRzOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBPd25lZE9ic2lkaWFuVmF1bHRFbnRyeT4+O1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIHZhdWx0IGVudHJ5IGluIHRoZSBzZWVkZWQgYG9ic2lkaWFuLmpzb25gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE93bmVkT2JzaWRpYW5WYXVsdEVudHJ5IHtcbiAgLyoqXG4gICAqIFBlci1lbnRyeSBhdXRvLW9wZW4gZmxhZyBob25vcmVkIGJ5IG5ld2VyIE9ic2lkaWFuIHZlcnNpb25zLiBPbWl0dGVkIHdoZW5cbiAgICogdGhlIGNhbGxlciB3aXRoaGVsZCB0aGUgYXV0by1vcGVuIG1hcmtlcnMuXG4gICAqL1xuICByZWFkb25seSBvcGVuPzogdHJ1ZTtcblxuICAvKipcbiAgQWJzb2x1dGUgcGF0aCB0byB0aGUgaGFybmVzcyB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIExhc3QtYWNjZXNzIHRpbWVzdGFtcC5cbiAgICovXG4gIHJlYWRvbmx5IHRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBpc29sYXRlZCBgb2JzaWRpYW4uanNvbmAgdGhhdCBmb3JjZS1vcGVucyB0aGUgb3duZWQgdmF1bHQgYWNyb3NzIGFsbFxuICogc3VwcG9ydGVkIE9ic2lkaWFuIHZlcnNpb25zIChzZWUgdGhlIGZpbGUgb3ZlcnZpZXcgZm9yIHRoZSBkdWFsLW1hcmtlclxuICogcmF0aW9uYWxlKS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHZhdWx0IGlkLCBwYXRoLCBhbmQgdGltZXN0YW1wIHRvIHNlZWQuXG4gKiBAcmV0dXJucyBUaGUgYG9ic2lkaWFuLmpzb25gIG9iamVjdCB0byB3cml0ZSBpbnRvIHRoZSBvd25lZCB1c2VyLWRhdGEgZGlyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPd25lZE9ic2lkaWFuSnNvbihwYXJhbXM6IEJ1aWxkT3duZWRPYnNpZGlhbkpzb25QYXJhbXMpOiBPd25lZE9ic2lkaWFuSnNvbiB7XG4gIGNvbnN0IHNob3VsZEF1dG9PcGVuVmF1bHQgPSBwYXJhbXMuc2hvdWxkQXV0b09wZW5WYXVsdCA/PyB0cnVlO1xuICBjb25zdCBlbnRyeTogT3duZWRPYnNpZGlhblZhdWx0RW50cnkgPSBzaG91bGRBdXRvT3BlblZhdWx0XG4gICAgPyB7IG9wZW46IHRydWUsIHBhdGg6IHBhcmFtcy52YXVsdFBhdGgsIHRzOiBwYXJhbXMudHMgfVxuICAgIDogeyBwYXRoOiBwYXJhbXMudmF1bHRQYXRoLCB0czogcGFyYW1zLnRzIH07XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBTcHJlYWQgcmF0aGVyIHRoYW4gYGxhc3Rfb3BlbjogdW5kZWZpbmVkYCwgc28gdGhlIGtleSBpcyBnZW51aW5lbHkgYWJzZW50IGZyb21cbiAgICAvLyBUaGUgd3JpdHRlbiBKU09OOiB0aGlzIHNlZWQgaXMgcmVhZCBieSBPYnNpZGlhbiB2ZXJzaW9ucyBzcGFubmluZyBhIGRlY2FkZSwgYW5kXG4gICAgLy8gQSBwcmVzZW50LWJ1dC11bmRlZmluZWQgYXV0by1vcGVuIG1hcmtlciBpcyBub3QgYSBzaGFwZSBhbnkgb2YgdGhlbSB3YXMgdGVzdGVkXG4gICAgLy8gQWdhaW5zdC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIE9ic2lkaWFuJ3Mgb3duIG9ic2lkaWFuLmpzb24gZmllbGQgbmFtZSAob2xkIHZlcnNpb25zJyBhdXRvLW9wZW4gbWFya2VyKS5cbiAgICAuLi5zaG91bGRBdXRvT3BlblZhdWx0ICYmIHsgbGFzdF9vcGVuOiBwYXJhbXMudmF1bHRJZCB9LFxuICAgIHVwZGF0ZURpc2FibGVkOiB0cnVlLFxuICAgIHZhdWx0czogeyBbcGFyYW1zLnZhdWx0SWRdOiBlbnRyeSB9XG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBa0hPLFNBQVMsdUJBQXVCLFFBQXlEO0FBQzlGLFFBQU0sc0JBQXNCLE9BQU8sdUJBQXVCO0FBQzFELFFBQU0sUUFBaUMsc0JBQ25DLEVBQUUsTUFBTSxNQUFNLE1BQU0sT0FBTyxXQUFXLElBQUksT0FBTyxHQUFHLElBQ3BELEVBQUUsTUFBTSxPQUFPLFdBQVcsSUFBSSxPQUFPLEdBQUc7QUFFNUMsU0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQU1MLEdBQUcsdUJBQXVCLEVBQUUsV0FBVyxPQUFPLFFBQVE7QUFBQSxJQUN0RCxnQkFBZ0I7QUFBQSxJQUNoQixRQUFRLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxNQUFNO0FBQUEsRUFDcEM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
42
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL293bmVkLXZhdWx0LXNlZWQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCdWlsZHMgdGhlIGlzb2xhdGVkIGBvYnNpZGlhbi5qc29uYCB0aGUgaGFybmVzcyBwcmUtc2VlZHMgaW50byBhbiBvd25lZFxuICogaW5zdGFuY2UncyB0ZW1wIGAtLXVzZXItZGF0YS1kaXJgIHNvIE9ic2lkaWFuIG9wZW5zIHRoZSBoYXJuZXNzIHZhdWx0IGRpcmVjdGx5XG4gKiBpbnN0ZWFkIG9mIHNob3dpbmcgdGhlIGZpcnN0LXJ1biB2YXVsdC1zZWxlY3RvciAodGhlIGBzdGFydGVyLXNjcmVlbmApLlxuICpcbiAqIFRoZSBhdXRvLW9wZW4gbWFya2VyIGNoYW5nZWQgYWNyb3NzIE9ic2lkaWFuJ3MgaGlzdG9yeSwgc28gdGhlIHNlZWQgY2Fycmllc1xuICogQk9USCBmb3JtcyBhbmQgZWFjaCB2ZXJzaW9uIHJlYWRzIHRoZSBvbmUgaXQgdW5kZXJzdGFuZHMgKGlnbm9yaW5nIHRoZSBvdGhlclxuICogdW5rbm93biBrZXkpIFx1MjAxNCBubyBwZXItdmVyc2lvbiBicmFuY2hpbmc6XG4gKlxuICogLSAqKk9sZCB2ZXJzaW9ucyoqIChjb25maXJtZWQgMC42LjQpIGF1dG8tb3BlbiBmcm9tIGEgKip0b3AtbGV2ZWwgYGxhc3Rfb3BlbmAqKlxuICogICBob2xkaW5nIHRoZSB2YXVsdCBpZCAoYG1haW4uanNgOiBgaWYgKGlkICYmIHZhdWx0cy5oYXNPd25Qcm9wZXJ0eShpZCkpXG4gKiAgIGNyZWF0ZVdpbmRvdyhpZCk7IGVsc2Ugb3BlblN0YXJ0ZXIoKTtgKSwgYW5kIHN0b3JlIGVhY2ggdmF1bHQgZW50cnkgYXMganVzdFxuICogICBgeyBwYXRoLCB0cyB9YC4gV2l0aG91dCBgbGFzdF9vcGVuYCB0aGV5IGZhbGwgdGhyb3VnaCB0byB0aGUgdmF1bHQtc2VsZWN0b3IuXG4gKiAtICoqTmV3ZXIgdmVyc2lvbnMqKiAoY29uZmlybWVkIDAuMTQuNSspIGRyb3BwZWQgYGxhc3Rfb3BlbmAgYW5kIGF1dG8tb3BlbiBmcm9tXG4gKiAgIHRoZSBwZXItZW50cnkgKipgb3BlbjogdHJ1ZWAqKiBmbGFnLlxuICpcbiAqIFNlZWRpbmcgYm90aCB3YXMgdmVyaWZpZWQgdG8gb3BlbiB0aGUgdmF1bHQgZGlyZWN0bHkgKG5vIHNlbGVjdG9yKSBvbiAwLjYuNCxcbiAqIDAuOS4yMCwgMC4xMi4xOSwgMC4xMy4xOSwgMC4xNC41IGFuZCAxLjEyLjcuIGB1cGRhdGVEaXNhYmxlZGAgc3VwcHJlc3NlcyB0aGVcbiAqIHRocm93YXdheSBpbnN0YW5jZSdzIHNlbGYtdXBkYXRlLlxuICpcbiAqIEJvdGggbWFya2VycyBjYW4gYWxzbyBiZSAqKndpdGhoZWxkKiogXHUyMDE0IHNlZVxuICoge0BsaW5rIEJ1aWxkT3duZWRPYnNpZGlhbkpzb25QYXJhbXMuc2hvdWxkQXV0b09wZW5WYXVsdH0uIFRoZSBvbmUgY2FsbGVyIHRoYXRcbiAqIGRvZXMgc28gd2FudHMgdGhlIHN0YXJ0ZXIgc2NyZWVuIG9uIHB1cnBvc2U6IGEgYGNvbmZpZ0RpcmVjdG9yeWAgb3ZlcnJpZGUgaXMgYVxuICogYGxvY2FsU3RvcmFnZWAgZW50cnksIGFuZCBgbG9jYWxTdG9yYWdlYCBvbmx5IGV4aXN0cyBvbmNlIGEgcmVuZGVyZXIgZG9lcywgc29cbiAqIHRoZSBvdmVycmlkZSBoYXMgdG8gYmUgd3JpdHRlbiBpbiB0aGUgc3RhcnRlciBzY3JlZW4ncyByZW5kZXJlciBiZWZvcmUgdGhlXG4gKiB2YXVsdCdzIG93biB3aW5kb3cgaXMgY3JlYXRlZC4gVGhlIHZhdWx0IHN0YXlzIHJlZ2lzdGVyZWQgdW5kZXIgdGhlIGhhcm5lc3Mnc1xuICogaWQgZWl0aGVyIHdheSwgYW5kIHRoZSBsYXRlciBgdmF1bHQtb3BlbmAgSVBDIHJldXNlcyB0aGF0IGlkICh2ZXJpZmllZCBvblxuICogMS4xMy43KSByYXRoZXIgdGhhbiBtaW50aW5nIGEgc2Vjb25kIGVudHJ5IFx1MjAxNCB3aGljaCBpcyB3aGF0IG1ha2VzIHRoZVxuICogYDx2YXVsdElkPi1jb25maWdgIGtleSBuYW1lIGtub3dhYmxlIGJlZm9yZSBsYXVuY2guXG4gKi9cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYnVpbGRPd25lZE9ic2lkaWFuSnNvbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRPd25lZE9ic2lkaWFuSnNvblBhcmFtcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIGF1dG8tb3BlbiBtYXJrZXJzLCBzbyBPYnNpZGlhbiBvcGVucyB0aGUgdmF1bHRcbiAgICogZGlyZWN0bHkgaW5zdGVhZCBvZiBzaG93aW5nIHRoZSBzdGFydGVyIHNjcmVlbi4gUGFzcyBgZmFsc2VgIHRvIGtlZXAgdGhlXG4gICAqIHZhdWx0IHJlZ2lzdGVyZWQgYnV0IGNsb3NlZCBcdTIwMTQgdGhlIGNhbGxlciB0aGVuIG9wZW5zIGl0IGl0c2VsZiwgb3ZlciB0aGVcbiAgICogYHZhdWx0LW9wZW5gIElQQywgb25jZSBpdCBoYXMgcHJlcGFyZWQgdGhlIHN0YXJ0ZXIgc2NyZWVuJ3MgcmVuZGVyZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkQXV0b09wZW5WYXVsdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gIExhc3QtYWNjZXNzIHRpbWVzdGFtcCB0byBzdGFtcCBvbiB0aGUgdmF1bHQgZW50cnkuXG4gICAqL1xuICByZWFkb25seSB0czogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgcmFuZG9tbHktZ2VuZXJhdGVkIHZhdWx0IGlkIHVzZWQgYXMgdGhlIHJlZ2lzdHJ5IGtleSBhbmQgYGxhc3Rfb3BlbmAuXG4gICAqL1xuICByZWFkb25seSB2YXVsdElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEFic29sdXRlIHBhdGggdG8gdGhlIGhhcm5lc3MgdmF1bHQgZm9sZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdmF1bHRQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGBvYnNpZGlhbi5qc29uYCBzdHJ1Y3R1cmUgdGhlIGhhcm5lc3Mgc2VlZHMgZm9yIGFuIG93bmVkIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE93bmVkT2JzaWRpYW5Kc29uIHtcbiAgLyoqXG4gICAqIFRvcC1sZXZlbCBhdXRvLW9wZW4gbWFya2VyICh2YXVsdCBpZCkgaG9ub3JlZCBieSBvbGQgT2JzaWRpYW4gdmVyc2lvbnM7XG4gICAqIGlnbm9yZWQgYXMgYW4gdW5rbm93biBrZXkgYnkgbmV3ZXIgdmVyc2lvbnMgdGhhdCB1c2UgdGhlIHBlci1lbnRyeSBgb3BlbmAuXG4gICAqIE9taXR0ZWQgd2hlbiB0aGUgY2FsbGVyIHdpdGhoZWxkIHRoZSBhdXRvLW9wZW4gbWFya2Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGxhc3Rfb3Blbj86IHN0cmluZztcblxuICAvKipcbiAgRGlzYWJsZXMgdGhlIHRocm93YXdheSBpbnN0YW5jZSdzIHNlbGYtdXBkYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlRGlzYWJsZWQ6IHRydWU7XG5cbiAgLyoqXG4gIFZhdWx0IHJlZ2lzdHJ5IGtleWVkIGJ5IHZhdWx0IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgdmF1bHRzOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBPd25lZE9ic2lkaWFuVmF1bHRFbnRyeT4+O1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIHZhdWx0IGVudHJ5IGluIHRoZSBzZWVkZWQgYG9ic2lkaWFuLmpzb25gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE93bmVkT2JzaWRpYW5WYXVsdEVudHJ5IHtcbiAgLyoqXG4gICAqIFBlci1lbnRyeSBhdXRvLW9wZW4gZmxhZyBob25vcmVkIGJ5IG5ld2VyIE9ic2lkaWFuIHZlcnNpb25zLiBPbWl0dGVkIHdoZW5cbiAgICogdGhlIGNhbGxlciB3aXRoaGVsZCB0aGUgYXV0by1vcGVuIG1hcmtlcnMuXG4gICAqL1xuICByZWFkb25seSBvcGVuPzogdHJ1ZTtcblxuICAvKipcbiAgQWJzb2x1dGUgcGF0aCB0byB0aGUgaGFybmVzcyB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIExhc3QtYWNjZXNzIHRpbWVzdGFtcC5cbiAgICovXG4gIHJlYWRvbmx5IHRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBpc29sYXRlZCBgb2JzaWRpYW4uanNvbmAgdGhhdCBmb3JjZS1vcGVucyB0aGUgb3duZWQgdmF1bHQgYWNyb3NzIGFsbFxuICogc3VwcG9ydGVkIE9ic2lkaWFuIHZlcnNpb25zIChzZWUgdGhlIGZpbGUgb3ZlcnZpZXcgZm9yIHRoZSBkdWFsLW1hcmtlclxuICogcmF0aW9uYWxlKS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHZhdWx0IGlkLCBwYXRoLCBhbmQgdGltZXN0YW1wIHRvIHNlZWQuXG4gKiBAcmV0dXJucyBUaGUgYG9ic2lkaWFuLmpzb25gIG9iamVjdCB0byB3cml0ZSBpbnRvIHRoZSBvd25lZCB1c2VyLWRhdGEgZGlyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPd25lZE9ic2lkaWFuSnNvbihwYXJhbXM6IEJ1aWxkT3duZWRPYnNpZGlhbkpzb25QYXJhbXMpOiBPd25lZE9ic2lkaWFuSnNvbiB7XG4gIGNvbnN0IHNob3VsZEF1dG9PcGVuVmF1bHQgPSBwYXJhbXMuc2hvdWxkQXV0b09wZW5WYXVsdCA/PyB0cnVlO1xuICBjb25zdCBlbnRyeTogT3duZWRPYnNpZGlhblZhdWx0RW50cnkgPSBzaG91bGRBdXRvT3BlblZhdWx0XG4gICAgPyB7IG9wZW46IHRydWUsIHBhdGg6IHBhcmFtcy52YXVsdFBhdGgsIHRzOiBwYXJhbXMudHMgfVxuICAgIDogeyBwYXRoOiBwYXJhbXMudmF1bHRQYXRoLCB0czogcGFyYW1zLnRzIH07XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBTcHJlYWQgcmF0aGVyIHRoYW4gYGxhc3Rfb3BlbjogdW5kZWZpbmVkYCwgc28gdGhlIGtleSBpcyBnZW51aW5lbHkgYWJzZW50IGZyb21cbiAgICAvLyB0aGUgd3JpdHRlbiBKU09OOiB0aGlzIHNlZWQgaXMgcmVhZCBieSBPYnNpZGlhbiB2ZXJzaW9ucyBzcGFubmluZyBhIGRlY2FkZSwgYW5kXG4gICAgLy8gQSBwcmVzZW50LWJ1dC11bmRlZmluZWQgYXV0by1vcGVuIG1hcmtlciBpcyBub3QgYSBzaGFwZSBhbnkgb2YgdGhlbSB3YXMgdGVzdGVkXG4gICAgLy8gYWdhaW5zdC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIE9ic2lkaWFuJ3Mgb3duIG9ic2lkaWFuLmpzb24gZmllbGQgbmFtZSAob2xkIHZlcnNpb25zJyBhdXRvLW9wZW4gbWFya2VyKS5cbiAgICAuLi5zaG91bGRBdXRvT3BlblZhdWx0ICYmIHsgbGFzdF9vcGVuOiBwYXJhbXMudmF1bHRJZCB9LFxuICAgIHVwZGF0ZURpc2FibGVkOiB0cnVlLFxuICAgIHZhdWx0czogeyBbcGFyYW1zLnZhdWx0SWRdOiBlbnRyeSB9XG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBa0hPLFNBQVMsdUJBQXVCLFFBQXlEO0FBQzlGLFFBQU0sc0JBQXNCLE9BQU8sdUJBQXVCO0FBQzFELFFBQU0sUUFBaUMsc0JBQ25DLEVBQUUsTUFBTSxNQUFNLE1BQU0sT0FBTyxXQUFXLElBQUksT0FBTyxHQUFHLElBQ3BELEVBQUUsTUFBTSxPQUFPLFdBQVcsSUFBSSxPQUFPLEdBQUc7QUFFNUMsU0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQU1MLEdBQUcsdUJBQXVCLEVBQUUsV0FBVyxPQUFPLFFBQVE7QUFBQSxJQUN0RCxnQkFBZ0I7QUFBQSxJQUNoQixRQUFRLEVBQUUsQ0FBQyxPQUFPLE9BQU8sR0FBRyxNQUFNO0FBQUEsRUFDcEM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -69,4 +69,4 @@ async function pollInObsidian(params) {
69
69
  0 && (module.exports = {
70
70
  pollInObsidian
71
71
  });
72
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgXCJraWNrIG9mZiwgdGhlbiBwb2xsXCIgaGVscGVyIG92ZXIge0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqXG4gKiBBIHNpbmdsZSBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUgY2Fubm90IHJ1biBsb25nZXIgdGhhbiB0aGUgdHJhbnNwb3J0J3NcbiAqIHBlci1ldmFsIGNhcCBcdTIwMTQgMzBzIGJ5IGRlZmF1bHQgb24gYm90aCwgYW5kIGEgZGVjbGFyZWQgbnVtYmVyIHJhdGhlciB0aGFuIGFuXG4gKiBpbmhlcml0ZWQgb25lOiBkZXNrdG9wIHVzZXMgYGNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHNgLCBBbmRyb2lkIHNlbmRzXG4gKiBgc2NyaXB0VGltZW91dEluTWlsbGlzZWNvbmRzYCBhcyBpdHMgVzNDIGB0aW1lb3V0cy5zY3JpcHRgIGNhcGFiaWxpdHkuIEVpdGhlclxuICogd2F5IGFuIG92ZXJydW4gaXMgcmVwb3J0ZWQgYXMgYEV2YWxDYXBFeGNlZWRlZEVycm9yYCwgd2hpY2ggbmFtZXMgdGhlXG4gKiBjYXAgYW5kIHBvaW50cyBoZXJlLiBTbyBhIGxvbmctcnVubmluZyBpbi1PYnNpZGlhbiBvcGVyYXRpb24gKGUuZy4gYSB3aG9sZVxuICogcGx1Z2luL3ZhdWx0IGJvb3RzdHJhcCkgY2Fubm90IGJlIGF3YWl0ZWQgaW5zaWRlIG9uZSBjbG9zdXJlLiBUaGlzIGhlbHBlciBkb2VzXG4gKiBpdCBmcm9tIE5vZGUgaW5zdGVhZDogaXQgb3B0aW9uYWxseSBydW5zIGEgc2hvcnQgYHN0YXJ0YCBjbG9zdXJlIG9uY2UgdG8ga2lja1xuICogdGhlIHdvcmsgb2ZmLCB0aGVuIHJlcGVhdGVkbHkgcnVucyBhIHNob3J0IGBwb2xsYCBjbG9zdXJlIFx1MjAxNCBlYWNoIGEgc2VwYXJhdGUsXG4gKiB3ZWxsLXVuZGVyLTMwcyBldmFsIFx1MjAxNCB1bnRpbCB0aGUgTm9kZS1zaWRlIGB1bnRpbGAgcHJlZGljYXRlIGFjY2VwdHMgYSBwb2xsXG4gKiByZXN1bHQsIG9yIGEgTm9kZS1zaWRlIHRpbWVvdXQgZWxhcHNlcy4gSXQgcmVtb3ZlcyB0aGUgcGVyLXRlc3QgaGFuZC1yb2xsZWRcbiAqIGBldmFsSW5PYnNpZGlhbmAgKyBgc2xlZXBgIGxvb3AuXG4gKlxuICogVGhlIHRpbWluZyBsb29wIGxpdmVzIGluIHRoZSBwdXJlLCB1bml0LXRlc3RlZCB7QGxpbmsgcG9sbFVudGlsfTsgdGhpcyBtb2R1bGUgaXNcbiAqIHRoZSBpbnRlZ3JhdGlvbi1vbmx5IHdpcmluZyAoaXQgZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiksIGNvdmVyZWQgYnkgYW5cbiAqIGludGVncmF0aW9uIHRlc3QuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgY29kZSAoZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiB2aWEgZXZhbEluT2JzaWRpYW4pIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNsZWVwIH0gZnJvbSAnbm9kZTp0aW1lcnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHRBcmd1bWVudHMgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdFxufSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuXG5pbXBvcnQgeyBDb250ZXh0SWQgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB7IGV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9ldmFsLWluLW9ic2lkaWFuLmNqcyc7XG5pbXBvcnQgeyBwb2xsVW50aWwgfSBmcm9tICcuL3BvbGwtdW50aWwuY2pzJztcblxuY29uc3QgREVGQVVMVF9QT0xMX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyA9IDUwMDtcbmNvbnN0IERFRkFVTFRfUE9MTF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEyMF8wMDA7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBvbGxJbk9ic2lkaWFufS4gTWlycm9ycyB7QGxpbmsgRXZhbEluT2JzaWRpYW5QYXJhbXN9IGZvclxuICogdGhlIHNoYXJlZCBmb3J3YXJkZWQgZmllbGRzIChgaW5wdXRgIC8gYGNvbnRleHRJZGAgLyBgdHJhbnNwb3J0YCAvIGB2YXVsdFBhdGhgKTtcbiAqIGBzdGFydGAgLyBgcG9sbGAgYXJlIHRoZSBpbi1PYnNpZGlhbiBjbG9zdXJlcyBhbmQgYHVudGlsYCBpcyB0aGUgTm9kZS1zaWRlXG4gKiBhY2NlcHRhbmNlIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xsSW5PYnNpZGlhblBhcmFtczxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIENvbnRleHRJZH0gc2hhcmVkIGJ5IGBzdGFydGAgYW5kIGBwb2xsYCwgc28gYHN0YXJ0YCBjYW4gc3Rhc2hcbiAgICogbm9uLXNlcmlhbGl6YWJsZSBzdGF0ZSB0aGF0IGBwb2xsYCBsYXRlciByZWFkcy4gV2hlbiBvbWl0dGVkLCBlYWNoIGNsb3N1cmVcbiAgICogZ2V0cyBhIGZyZXNoIGVtcHR5IGBjb250ZXh0YC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRJZD86IFRDb250ZXh0SWQ7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIHBhc3NlZCB0byBib3RoIGBzdGFydGAgYW5kIGBwb2xsYCAoc2VyaWFsaXplZCBsaWtlXG4gICAqIHtAbGluayBFdmFsSW5PYnNpZGlhblBhcmFtcy5pbnB1dH0pLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiBJbnB1dDtcblxuICAvKipcbiAgICogRGVsYXkgYmV0d2VlbiBgcG9sbGAgYXR0ZW1wdHMsIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwMGBcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsSW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjbG9zdXJlIHBvbGxlZCByZXBlYXRlZGx5IGluc2lkZSBPYnNpZGlhbi4gS2VlcCBpdCBzaG9ydCAod2VsbCB1bmRlciB0aGVcbiAgICogfjMwcyBDRFAgY2FwKTogaXQgc2hvdWxkIHJlYWQgYW5kIHJldHVybiBhIEpTT04tc2VyaWFsaXphYmxlIHN0YXR1cywgbm90XG4gICAqIGF3YWl0IHRoZSBsb25nIG9wZXJhdGlvbiBpdHNlbGYuXG4gICAqL1xuICBwb2xsKHRoaXM6IHZvaWQsIGlucHV0OiBDb21tb25Bcmd1bWVudHMgJiBDb250ZXh0QXJndW1lbnRzPFRDb250ZXh0SWQ+ICYgSW5wdXQpOiBQcm9taXNhYmxlPFBvbGxSZXN1bHQ+O1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBjbG9zdXJlIHJ1biAqKm9uY2UqKiBiZWZvcmUgcG9sbGluZyBiZWdpbnMsIHRvIGtpY2sgb2ZmIHRoZVxuICAgKiBsb25nLXJ1bm5pbmcgd29yayAoZmlyZS1hbmQtZm9yZ2V0IGZyb20gTm9kZSdzIHBlcnNwZWN0aXZlKS4gS2VlcCBpdCBzaG9ydCBcdTIwMTRcbiAgICogc3RhcnQgdGhlIHdvcmsgYW5kIHJldHVybjsgZG8gbm90IGF3YWl0IGl0IHRvIGNvbXBsZXRpb24gaGVyZS5cbiAgICovXG4gIHN0YXJ0Pyh0aGlzOiB2b2lkLCBpbnB1dDogQ29tbW9uQXJndW1lbnRzICYgQ29udGV4dEFyZ3VtZW50czxUQ29udGV4dElkPiAmIElucHV0KTogUHJvbWlzYWJsZTx1bmtub3duPjtcblxuICAvKipcbiAgICogVG90YWwgYnVkZ2V0IGJlZm9yZSB0aGUgcG9sbCByZWplY3RzLCBpbiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxMjAwMDBgXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRldGFpbCBhcHBlbmRlZCB0byB0aGUgdGltZW91dCBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dE1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSB0cmFuc3BvcnQgKGZvcndhcmRlZCB0byBldmVyeSB1bmRlcmx5aW5nIGBldmFsSW5PYnNpZGlhbmApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNwb3J0PzogT2JzaWRpYW5UcmFuc3BvcnQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBnaXZlbiBgcG9sbGAgcmVzdWx0IGlzIGFjY2VwdGFibGUsIGV2YWx1YXRlZCBpbiAqKk5vZGUqKi4gUmV0dXJuaW5nXG4gICAqIGB0cnVlYCByZXNvbHZlcyB7QGxpbmsgcG9sbEluT2JzaWRpYW59IHdpdGggdGhhdCByZXN1bHQuXG4gICAqL1xuICB1bnRpbCh0aGlzOiB2b2lkLCByZXN1bHQ6IFBvbGxSZXN1bHQpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgcGF0aCB0byBldmFsdWF0ZSBhZ2FpbnN0IChmb3J3YXJkZWQgdG8gZXZlcnkgdW5kZXJseWluZ1xuICAgKiBgZXZhbEluT2JzaWRpYW5gKS5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBLaWNrcyBvZmYgYW4gb3B0aW9uYWwgYHN0YXJ0YCBjbG9zdXJlIG9uY2UsIHRoZW4gcG9sbHMgYHBvbGxgIGZyb20gTm9kZSB1bnRpbFxuICogYHVudGlsYCBhY2NlcHRzIGEgcmVzdWx0IG9yIHRoZSB0aW1lb3V0IGVsYXBzZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwb2xsIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGFjY2VwdGVkIGBwb2xsYCByZXN1bHQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsSW5PYnNpZGlhbjxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuICBwYXJhbXM6IFBvbGxJbk9ic2lkaWFuUGFyYW1zPElucHV0LCBQb2xsUmVzdWx0LCBUQ29udGV4dElkPlxuKTogUHJvbWlzZTxQb2xsUmVzdWx0PiB7XG4gIGNvbnN0IHtcbiAgICBjb250ZXh0SWQsXG4gICAgaW5wdXQsXG4gICAgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcyA9IERFRkFVTFRfUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgcG9sbCxcbiAgICBzdGFydCxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBERUZBVUxUX1BPTExfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgdGltZW91dE1lc3NhZ2UsXG4gICAgdHJhbnNwb3J0LFxuICAgIHVudGlsLFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1bkV2YWw8UmVzdWx0PihjYWxsYmFjazogKGZ1bmN0aW9uQXJndW1lbnRzOiBDb21tb25Bcmd1bWVudHMgJiBDb250ZXh0QXJndW1lbnRzPFRDb250ZXh0SWQ+ICYgSW5wdXQpID0+IFByb21pc2FibGU8UmVzdWx0Pik6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgY29uc3QgZXZhbFBhcmFtczogRXZhbEluT2JzaWRpYW5QYXJhbXM8SW5wdXQsIFJlc3VsdCwgVENvbnRleHRJZD4gPSB7XG4gICAgICBjYWxsYmFjayxcbiAgICAgIC4uLihpbnB1dCAhPT0gdW5kZWZpbmVkICYmIHsgaW5wdXQgfSksXG4gICAgICAuLi4oY29udGV4dElkICE9PSB1bmRlZmluZWQgJiYgeyBjb250ZXh0SWQgfSksXG4gICAgICAuLi4odHJhbnNwb3J0ICE9PSB1bmRlZmluZWQgJiYgeyB0cmFuc3BvcnQgfSksXG4gICAgICAuLi4odmF1bHRQYXRoICE9PSB1bmRlZmluZWQgJiYgeyB2YXVsdFBhdGggfSlcbiAgICB9O1xuICAgIHJldHVybiBldmFsSW5PYnNpZGlhbjxJbnB1dCwgUmVzdWx0LCBUQ29udGV4dElkPihldmFsUGFyYW1zKTtcbiAgfVxuXG4gIGlmIChzdGFydCkge1xuICAgIGF3YWl0IHJ1bkV2YWwoc3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHBvbGxVbnRpbDxQb2xsUmVzdWx0Pih7XG4gICAgYXR0ZW1wdDogYXN5bmMgKCkgPT4gcnVuRXZhbChwb2xsKSxcbiAgICBpbnRlcnZhbEluTWlsbGlzZWNvbmRzLFxuICAgIG5vd0luTWlsbGlzZWNvbmRzOiAoKSA9PiBEYXRlLm5vdygpLFxuICAgIHNsZWVwOiBhc3luYyAobWlsbGlzZWNvbmRzOiBudW1iZXIpID0+IHtcbiAgICAgIGF3YWl0IHNsZWVwKG1pbGxpc2Vjb25kcyk7XG4gICAgfSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgdW50aWwsXG4gICAgLi4uKHRpbWVvdXRNZXNzYWdlICE9PSB1bmRlZmluZWQgJiYgeyB0aW1lb3V0TWVzc2FnZSB9KVxuICB9KTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEyQkEsc0JBQW9DO0FBVXBDLHdCQUEwQjtBQUMxQiw4QkFBK0I7QUFDL0Isd0JBQTBCO0FBRTFCLE1BQU0sd0NBQXdDO0FBQzlDLE1BQU0sdUNBQXVDO0FBZ0Y3QyxlQUFzQixlQUNwQixRQUNxQjtBQUNyQixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBLHlCQUF5QjtBQUFBLElBQ3pCO0FBQUEsSUFDQTtBQUFBLElBQ0Esd0JBQXdCO0FBQUEsSUFDeEI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixpQkFBZSxRQUFnQixVQUE4SDtBQUMzSixVQUFNLGFBQThEO0FBQUEsTUFDbEU7QUFBQSxNQUNBLEdBQUksVUFBVSxVQUFhLEVBQUUsTUFBTTtBQUFBLE1BQ25DLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLE1BQzNDLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLE1BQzNDLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLElBQzdDO0FBQ0EsZUFBTyx3Q0FBMEMsVUFBVTtBQUFBLEVBQzdEO0FBRUEsTUFBSSxPQUFPO0FBQ1QsVUFBTSxRQUFRLEtBQUs7QUFBQSxFQUNyQjtBQUVBLGFBQU8sNkJBQXNCO0FBQUEsSUFDM0IsU0FBUyxZQUFZLFFBQVEsSUFBSTtBQUFBLElBQ2pDO0FBQUEsSUFDQSxtQkFBbUIsTUFBTSxLQUFLLElBQUk7QUFBQSxJQUNsQyxPQUFPLE9BQU8saUJBQXlCO0FBQ3JDLGdCQUFNLGdCQUFBQSxZQUFNLFlBQVk7QUFBQSxJQUMxQjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFJLG1CQUFtQixVQUFhLEVBQUUsZUFBZTtBQUFBLEVBQ3ZELENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFsic2xlZXAiXQp9Cg==
72
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgXCJraWNrIG9mZiwgdGhlbiBwb2xsXCIgaGVscGVyIG92ZXIge0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqXG4gKiBBIHNpbmdsZSBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUgY2Fubm90IHJ1biBsb25nZXIgdGhhbiB0aGUgdHJhbnNwb3J0J3NcbiAqIHBlci1ldmFsIGNhcCBcdTIwMTQgYERFRkFVTFRfRVZBTF9DQVBfSU5fTUlMTElTRUNPTkRTYCAoMzBzKSBvbiBib3RoLCBvbmUgc2hhcmVkXG4gKiBkZWNsYXJlZCBudW1iZXIgcmF0aGVyIHRoYW4gYW4gaW5oZXJpdGVkIG9uZTogZGVza3RvcCBlbmZvcmNlcyBpdCBhc1xuICogYGNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHNgLCBBbmRyb2lkIGFzIGBzY3JpcHRUaW1lb3V0SW5NaWxsaXNlY29uZHNgLFxuICogd2hpY2ggaXQgYWxzbyBzZW5kcyBhcyBpdHMgVzNDIGB0aW1lb3V0cy5zY3JpcHRgIGNhcGFiaWxpdHkuIEVpdGhlclxuICogd2F5IGFuIG92ZXJydW4gaXMgcmVwb3J0ZWQgYXMgYEV2YWxDYXBFeGNlZWRlZEVycm9yYCwgd2hpY2ggbmFtZXMgdGhlXG4gKiBjYXAgYW5kIHBvaW50cyBoZXJlLiBTbyBhIGxvbmctcnVubmluZyBpbi1PYnNpZGlhbiBvcGVyYXRpb24gKGUuZy4gYSB3aG9sZVxuICogcGx1Z2luL3ZhdWx0IGJvb3RzdHJhcCkgY2Fubm90IGJlIGF3YWl0ZWQgaW5zaWRlIG9uZSBjbG9zdXJlLiBUaGlzIGhlbHBlciBkb2VzXG4gKiBpdCBmcm9tIE5vZGUgaW5zdGVhZDogaXQgb3B0aW9uYWxseSBydW5zIGEgc2hvcnQgYHN0YXJ0YCBjbG9zdXJlIG9uY2UgdG8ga2lja1xuICogdGhlIHdvcmsgb2ZmLCB0aGVuIHJlcGVhdGVkbHkgcnVucyBhIHNob3J0IGBwb2xsYCBjbG9zdXJlIFx1MjAxNCBlYWNoIGEgc2VwYXJhdGUsXG4gKiB3ZWxsLXVuZGVyLTMwcyBldmFsIFx1MjAxNCB1bnRpbCB0aGUgTm9kZS1zaWRlIGB1bnRpbGAgcHJlZGljYXRlIGFjY2VwdHMgYSBwb2xsXG4gKiByZXN1bHQsIG9yIGEgTm9kZS1zaWRlIHRpbWVvdXQgZWxhcHNlcy4gSXQgcmVtb3ZlcyB0aGUgcGVyLXRlc3QgaGFuZC1yb2xsZWRcbiAqIGBldmFsSW5PYnNpZGlhbmAgKyBgc2xlZXBgIGxvb3AuXG4gKlxuICogVGhlIHRpbWluZyBsb29wIGxpdmVzIGluIHRoZSBwdXJlLCB1bml0LXRlc3RlZCB7QGxpbmsgcG9sbFVudGlsfTsgdGhpcyBtb2R1bGUgaXNcbiAqIHRoZSBpbnRlZ3JhdGlvbi1vbmx5IHdpcmluZyAoaXQgZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiksIGNvdmVyZWQgYnkgYW5cbiAqIGludGVncmF0aW9uIHRlc3QuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgY29kZSAoZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiB2aWEgZXZhbEluT2JzaWRpYW4pIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNsZWVwIH0gZnJvbSAnbm9kZTp0aW1lcnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHRBcmd1bWVudHMgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdFxufSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuXG5pbXBvcnQgeyBDb250ZXh0SWQgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB7IGV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9ldmFsLWluLW9ic2lkaWFuLmNqcyc7XG5pbXBvcnQgeyBwb2xsVW50aWwgfSBmcm9tICcuL3BvbGwtdW50aWwuY2pzJztcblxuY29uc3QgREVGQVVMVF9QT0xMX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyA9IDUwMDtcbmNvbnN0IERFRkFVTFRfUE9MTF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEyMF8wMDA7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBvbGxJbk9ic2lkaWFufS4gTWlycm9ycyB7QGxpbmsgRXZhbEluT2JzaWRpYW5QYXJhbXN9IGZvclxuICogdGhlIHNoYXJlZCBmb3J3YXJkZWQgZmllbGRzIChgaW5wdXRgIC8gYGNvbnRleHRJZGAgLyBgdHJhbnNwb3J0YCAvIGB2YXVsdFBhdGhgKTtcbiAqIGBzdGFydGAgLyBgcG9sbGAgYXJlIHRoZSBpbi1PYnNpZGlhbiBjbG9zdXJlcyBhbmQgYHVudGlsYCBpcyB0aGUgTm9kZS1zaWRlXG4gKiBhY2NlcHRhbmNlIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xsSW5PYnNpZGlhblBhcmFtczxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIENvbnRleHRJZH0gc2hhcmVkIGJ5IGBzdGFydGAgYW5kIGBwb2xsYCwgc28gYHN0YXJ0YCBjYW4gc3Rhc2hcbiAgICogbm9uLXNlcmlhbGl6YWJsZSBzdGF0ZSB0aGF0IGBwb2xsYCBsYXRlciByZWFkcy4gV2hlbiBvbWl0dGVkLCBlYWNoIGNsb3N1cmVcbiAgICogZ2V0cyBhIGZyZXNoIGVtcHR5IGBjb250ZXh0YC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRJZD86IFRDb250ZXh0SWQ7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIHBhc3NlZCB0byBib3RoIGBzdGFydGAgYW5kIGBwb2xsYCAoc2VyaWFsaXplZCBsaWtlXG4gICAqIHtAbGluayBFdmFsSW5PYnNpZGlhblBhcmFtcy5pbnB1dH0pLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiBJbnB1dDtcblxuICAvKipcbiAgICogRGVsYXkgYmV0d2VlbiBgcG9sbGAgYXR0ZW1wdHMsIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwMGBcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsSW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjbG9zdXJlIHBvbGxlZCByZXBlYXRlZGx5IGluc2lkZSBPYnNpZGlhbi4gS2VlcCBpdCBzaG9ydCAod2VsbCB1bmRlciB0aGVcbiAgICogfjMwcyBDRFAgY2FwKTogaXQgc2hvdWxkIHJlYWQgYW5kIHJldHVybiBhIEpTT04tc2VyaWFsaXphYmxlIHN0YXR1cywgbm90XG4gICAqIGF3YWl0IHRoZSBsb25nIG9wZXJhdGlvbiBpdHNlbGYuXG4gICAqL1xuICBwb2xsKHRoaXM6IHZvaWQsIGlucHV0OiBDb21tb25Bcmd1bWVudHMgJiBDb250ZXh0QXJndW1lbnRzPFRDb250ZXh0SWQ+ICYgSW5wdXQpOiBQcm9taXNhYmxlPFBvbGxSZXN1bHQ+O1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBjbG9zdXJlIHJ1biAqKm9uY2UqKiBiZWZvcmUgcG9sbGluZyBiZWdpbnMsIHRvIGtpY2sgb2ZmIHRoZVxuICAgKiBsb25nLXJ1bm5pbmcgd29yayAoZmlyZS1hbmQtZm9yZ2V0IGZyb20gTm9kZSdzIHBlcnNwZWN0aXZlKS4gS2VlcCBpdCBzaG9ydCBcdTIwMTRcbiAgICogc3RhcnQgdGhlIHdvcmsgYW5kIHJldHVybjsgZG8gbm90IGF3YWl0IGl0IHRvIGNvbXBsZXRpb24gaGVyZS5cbiAgICovXG4gIHN0YXJ0Pyh0aGlzOiB2b2lkLCBpbnB1dDogQ29tbW9uQXJndW1lbnRzICYgQ29udGV4dEFyZ3VtZW50czxUQ29udGV4dElkPiAmIElucHV0KTogUHJvbWlzYWJsZTx1bmtub3duPjtcblxuICAvKipcbiAgICogVG90YWwgYnVkZ2V0IGJlZm9yZSB0aGUgcG9sbCByZWplY3RzLCBpbiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxMjAwMDBgXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRldGFpbCBhcHBlbmRlZCB0byB0aGUgdGltZW91dCBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dE1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSB0cmFuc3BvcnQgKGZvcndhcmRlZCB0byBldmVyeSB1bmRlcmx5aW5nIGBldmFsSW5PYnNpZGlhbmApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNwb3J0PzogT2JzaWRpYW5UcmFuc3BvcnQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBnaXZlbiBgcG9sbGAgcmVzdWx0IGlzIGFjY2VwdGFibGUsIGV2YWx1YXRlZCBpbiAqKk5vZGUqKi4gUmV0dXJuaW5nXG4gICAqIGB0cnVlYCByZXNvbHZlcyB7QGxpbmsgcG9sbEluT2JzaWRpYW59IHdpdGggdGhhdCByZXN1bHQuXG4gICAqL1xuICB1bnRpbCh0aGlzOiB2b2lkLCByZXN1bHQ6IFBvbGxSZXN1bHQpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgcGF0aCB0byBldmFsdWF0ZSBhZ2FpbnN0IChmb3J3YXJkZWQgdG8gZXZlcnkgdW5kZXJseWluZ1xuICAgKiBgZXZhbEluT2JzaWRpYW5gKS5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBLaWNrcyBvZmYgYW4gb3B0aW9uYWwgYHN0YXJ0YCBjbG9zdXJlIG9uY2UsIHRoZW4gcG9sbHMgYHBvbGxgIGZyb20gTm9kZSB1bnRpbFxuICogYHVudGlsYCBhY2NlcHRzIGEgcmVzdWx0IG9yIHRoZSB0aW1lb3V0IGVsYXBzZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwb2xsIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGFjY2VwdGVkIGBwb2xsYCByZXN1bHQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsSW5PYnNpZGlhbjxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuICBwYXJhbXM6IFBvbGxJbk9ic2lkaWFuUGFyYW1zPElucHV0LCBQb2xsUmVzdWx0LCBUQ29udGV4dElkPlxuKTogUHJvbWlzZTxQb2xsUmVzdWx0PiB7XG4gIGNvbnN0IHtcbiAgICBjb250ZXh0SWQsXG4gICAgaW5wdXQsXG4gICAgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcyA9IERFRkFVTFRfUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgcG9sbCxcbiAgICBzdGFydCxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBERUZBVUxUX1BPTExfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgdGltZW91dE1lc3NhZ2UsXG4gICAgdHJhbnNwb3J0LFxuICAgIHVudGlsLFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1bkV2YWw8UmVzdWx0PihjYWxsYmFjazogKGZ1bmN0aW9uQXJndW1lbnRzOiBDb21tb25Bcmd1bWVudHMgJiBDb250ZXh0QXJndW1lbnRzPFRDb250ZXh0SWQ+ICYgSW5wdXQpID0+IFByb21pc2FibGU8UmVzdWx0Pik6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgY29uc3QgZXZhbFBhcmFtczogRXZhbEluT2JzaWRpYW5QYXJhbXM8SW5wdXQsIFJlc3VsdCwgVENvbnRleHRJZD4gPSB7XG4gICAgICBjYWxsYmFjayxcbiAgICAgIC4uLihpbnB1dCAhPT0gdW5kZWZpbmVkICYmIHsgaW5wdXQgfSksXG4gICAgICAuLi4oY29udGV4dElkICE9PSB1bmRlZmluZWQgJiYgeyBjb250ZXh0SWQgfSksXG4gICAgICAuLi4odHJhbnNwb3J0ICE9PSB1bmRlZmluZWQgJiYgeyB0cmFuc3BvcnQgfSksXG4gICAgICAuLi4odmF1bHRQYXRoICE9PSB1bmRlZmluZWQgJiYgeyB2YXVsdFBhdGggfSlcbiAgICB9O1xuICAgIHJldHVybiBldmFsSW5PYnNpZGlhbjxJbnB1dCwgUmVzdWx0LCBUQ29udGV4dElkPihldmFsUGFyYW1zKTtcbiAgfVxuXG4gIGlmIChzdGFydCkge1xuICAgIGF3YWl0IHJ1bkV2YWwoc3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHBvbGxVbnRpbDxQb2xsUmVzdWx0Pih7XG4gICAgYXR0ZW1wdDogYXN5bmMgKCkgPT4gcnVuRXZhbChwb2xsKSxcbiAgICBpbnRlcnZhbEluTWlsbGlzZWNvbmRzLFxuICAgIG5vd0luTWlsbGlzZWNvbmRzOiAoKSA9PiBEYXRlLm5vdygpLFxuICAgIHNsZWVwOiBhc3luYyAobWlsbGlzZWNvbmRzOiBudW1iZXIpID0+IHtcbiAgICAgIGF3YWl0IHNsZWVwKG1pbGxpc2Vjb25kcyk7XG4gICAgfSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgdW50aWwsXG4gICAgLi4uKHRpbWVvdXRNZXNzYWdlICE9PSB1bmRlZmluZWQgJiYgeyB0aW1lb3V0TWVzc2FnZSB9KVxuICB9KTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0QkEsc0JBQW9DO0FBVXBDLHdCQUEwQjtBQUMxQiw4QkFBK0I7QUFDL0Isd0JBQTBCO0FBRTFCLE1BQU0sd0NBQXdDO0FBQzlDLE1BQU0sdUNBQXVDO0FBZ0Y3QyxlQUFzQixlQUNwQixRQUNxQjtBQUNyQixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBLHlCQUF5QjtBQUFBLElBQ3pCO0FBQUEsSUFDQTtBQUFBLElBQ0Esd0JBQXdCO0FBQUEsSUFDeEI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixpQkFBZSxRQUFnQixVQUE4SDtBQUMzSixVQUFNLGFBQThEO0FBQUEsTUFDbEU7QUFBQSxNQUNBLEdBQUksVUFBVSxVQUFhLEVBQUUsTUFBTTtBQUFBLE1BQ25DLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLE1BQzNDLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLE1BQzNDLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLElBQzdDO0FBQ0EsZUFBTyx3Q0FBMEMsVUFBVTtBQUFBLEVBQzdEO0FBRUEsTUFBSSxPQUFPO0FBQ1QsVUFBTSxRQUFRLEtBQUs7QUFBQSxFQUNyQjtBQUVBLGFBQU8sNkJBQXNCO0FBQUEsSUFDM0IsU0FBUyxZQUFZLFFBQVEsSUFBSTtBQUFBLElBQ2pDO0FBQUEsSUFDQSxtQkFBbUIsTUFBTSxLQUFLLElBQUk7QUFBQSxJQUNsQyxPQUFPLE9BQU8saUJBQXlCO0FBQ3JDLGdCQUFNLGdCQUFBQSxZQUFNLFlBQVk7QUFBQSxJQUMxQjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFJLG1CQUFtQixVQUFhLEVBQUUsZUFBZTtBQUFBLEVBQ3ZELENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFsic2xlZXAiXQp9Cg==
@@ -4,9 +4,10 @@
4
4
  * Node-side "kick off, then poll" helper over {@link evalInObsidian}.
5
5
  *
6
6
  * A single `evalInObsidian` closure cannot run longer than the transport's
7
- * per-eval cap — 30s by default on both, and a declared number rather than an
8
- * inherited one: desktop uses `commandTimeoutInMilliseconds`, Android sends
9
- * `scriptTimeoutInMilliseconds` as its W3C `timeouts.script` capability. Either
7
+ * per-eval cap — `DEFAULT_EVAL_CAP_IN_MILLISECONDS` (30s) on both, one shared
8
+ * declared number rather than an inherited one: desktop enforces it as
9
+ * `commandTimeoutInMilliseconds`, Android as `scriptTimeoutInMilliseconds`,
10
+ * which it also sends as its W3C `timeouts.script` capability. Either
10
11
  * way an overrun is reported as `EvalCapExceededError`, which names the
11
12
  * cap and points here. So a long-running in-Obsidian operation (e.g. a whole
12
13
  * plugin/vault bootstrap) cannot be awaited inside one closure. This helper does
@@ -59,4 +59,4 @@ function attachProcessCapture(child, params) {
59
59
  0 && (module.exports = {
60
60
  attachProcessCapture
61
61
  });
62
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Byb2Nlc3MtY2FwdHVyZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEF0dGFjaGVzIG91dHB1dCBjYXB0dXJlIGFuZCBleGl0IG9ic2VydmF0aW9uIHRvIGEgc3Bhd25lZCBjaGlsZCBwcm9jZXNzLlxuICpcbiAqIEEgbG9uZy1ydW5uaW5nIGNoaWxkIHNwYXduZWQgd2l0aCBwaXBlZCBzdGRpbyBuZWVkcyB0aHJlZSB0aGluZ3MgZG9uZSB0byBpdCxcbiAqIGFuZCBnZXR0aW5nIGFueSBvZiB0aGVtIHdyb25nIGlzIGl0cyBvd24gYnVnOiBpdHMgcGlwZXMgbXVzdCBiZSAqKmRyYWluZWQqKlxuICogKGEgZnVsbCBPUyBwaXBlIGJ1ZmZlciBibG9ja3MgdGhlIHdyaXRlciBcdTIwMTQgYSBjaGF0dHkgcmVuZGVyZXIgd291bGQgaGFuZyB0aGVcbiAqIGFwcCBpdCBiZWxvbmdzIHRvKSwgaXRzIG91dHB1dCBtdXN0IGJlIGtlcHQgKipib3VuZGVkKiogKGFuIGhvdXIgb2YgbG9ncyBpc1xuICogbm90IGEgZGlhZ25vc3RpYyksIGFuZCBpdHMgYGV4aXRgIC8gYGVycm9yYCBtdXN0IGJlICoqcmVjb3JkZWQqKiBzbyBhIGNhbGxlclxuICogdGhhdCBsYXRlciBmaW5kcyB0aGUgcHJvY2VzcyB1bnJlYWNoYWJsZSBjYW4gc2F5IHdoeSBpbnN0ZWFkIG9mIGd1ZXNzaW5nLlxuICpcbiAqIEV4dHJhY3RlZCBzbyB0aGUgc3RhdGUgbWFjaGluZSBpcyB1bml0LXRlc3RhYmxlOiB0aGUgbGF1bmNoZXJzIHRoYXQgdXNlIGl0XG4gKiAoYG9ic2lkaWFuLWluc3RhbmNlLnRzYCwgYW5kIHRoZSBlbXVsYXRvci9BcHBpdW0gc3Bhd25zIGluXG4gKiBgdHJhbnNwb3J0LWZhY3RvcnkudHNgKSBhcmUgaW50ZWdyYXRpb24tdGltZSBnbHVlIGV4Y2x1ZGVkIGZyb20gdW5pdCB0ZXN0cyxcbiAqIHdoaWNoIGlzIGhvdyB0aGUgb3duZWQgT2JzaWRpYW4gaW5zdGFuY2UgY2FtZSB0byBiZSBzcGF3bmVkIGBzdGRpbzogJ2lnbm9yZSdgXG4gKiB3aXRoIG5vIGBleGl0YCBsaXN0ZW5lciBhdCBhbGwgXHUyMDE0IGl0cyBkZWF0aCB3YXMgdW5vYnNlcnZhYmxlIGJ5IGNvbnN0cnVjdGlvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgdHlwZSB7IFJlYWRhYmxlIH0gZnJvbSAnbm9kZTpzdHJlYW0nO1xuXG5pbXBvcnQgdHlwZSB7IFByb2Nlc3NFeGl0SW5mbyB9IGZyb20gJy4vcHJvY2Vzcy1leGl0LW1lc3NhZ2UuY2pzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYXR0YWNoUHJvY2Vzc0NhcHR1cmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaFByb2Nlc3NDYXB0dXJlUGFyYW1zIHtcbiAgLyoqXG4gICAqIEhvdyBtYW55IGNoYXJhY3RlcnMgb2YgdGhlIG1vc3QgcmVjZW50IG91dHB1dCB0byBrZWVwLiBPbGRlciBvdXRwdXQgaXNcbiAgICogZHJvcHBlZCBmcm9tIHRoZSBmcm9udCBhcyBuZXcgb3V0cHV0IGFycml2ZXMuXG4gICAqL1xuICByZWFkb25seSBtYXhPdXRwdXRMZW5ndGhJbkNoYXJhY3RlcnM6IG51bWJlcjtcblxuICAvKipcbiAgICogQ2FsbGVkIGZvciBldmVyeSBjaHVuayBhcyBpdCBhcnJpdmVzLCBmb3IgY2FsbGVycyB0aGF0IHdhbnQgdGhlIG91dHB1dFxuICAgKiAqKmxpdmUqKiAobG9nZ2VkIGFzIHRoZSBwcm9jZXNzIHJ1bnMpIHJhdGhlciB0aGFuIG9ubHkgYXMgYSBwb3N0LW1vcnRlbVxuICAgKiB0YWlsLiBGaXJlcyByZWdhcmRsZXNzIG9mIHtAbGluayBQcm9jZXNzQ2FwdHVyZS5zdG9wQ2FwdHVyZX0sIHdoaWNoIGZyZWV6ZXNcbiAgICogdGhlIHJldGFpbmVkIHRhaWwgYW5kIG5vdGhpbmcgZWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IG9uQ2h1bms/OiAoKGNodW5rOiBQcm9jZXNzT3V0cHV0Q2h1bmspID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgY2hpbGQgcHJvY2VzcydzIGNhcHR1cmVkIG91dHB1dCBhbmQgZXhpdCBzdGF0dXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0NhcHR1cmUge1xuICAvKipcbiAgUmV0dXJucyB0aGUgZXhpdCAvIHNwYXduLWZhaWx1cmUgZGV0YWlscyBvbmNlIHRoZSBwcm9jZXNzIGlzIG5vIGxvbmdlciBydW5uaW5nLCBvdGhlcndpc2UgYHVuZGVmaW5lZGAuXG4gICAqL1xuICByZWFkRXhpdEluZm86ICgpID0+IFByb2Nlc3NFeGl0SW5mbyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgUmV0dXJucyB0aGUgY2FwdHVyZWQgc3Rkb3V0K3N0ZGVyciwgYm91bmRlZCB0byB0aGUgbW9zdCByZWNlbnQgb3V0cHV0LlxuICAgKi9cbiAgcmVhZE91dHB1dDogKCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdG9wcyBhY2N1bXVsYXRpbmcgb3V0cHV0LCBmcmVlemluZyB0aGUgdGFpbCBhdCB3aGF0IGhhcyBhcnJpdmVkIHNvIGZhci5cbiAgICogQ2FsbCBvbmNlIHN0YXJ0dXAgaGFzIHN1Y2NlZWRlZCBhbmQgdGhlIHRhaWwgaGFzIHNlcnZlZCBpdHMgcHVycG9zZS5cbiAgICpcbiAgICogVGhlIGBkYXRhYCBsaXN0ZW5lcnMgc3RheSBhdHRhY2hlZCBkZWxpYmVyYXRlbHksIHNvIHRoZSBwaXBlcyBrZWVwIGRyYWluaW5nXG4gICAqIGZvciB0aGUgcmVzdCBvZiB0aGUgcHJvY2VzcydzIGxpZmUuXG4gICAqL1xuICBzdG9wQ2FwdHVyZTogKCkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBPbmUgY2h1bmsgb2YgYSBjaGlsZCBwcm9jZXNzJ3Mgb3V0cHV0LCBhbmQgd2hpY2ggc3RyZWFtIGl0IGNhbWUgZnJvbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzT3V0cHV0Q2h1bmsge1xuICAvKipcbiAgVGhlIHN0cmVhbSB0aGUgY2h1bmsgd2FzIHdyaXR0ZW4gdG8uXG4gICAqL1xuICByZWFkb25seSBzdHJlYW06ICdzdGRlcnInIHwgJ3N0ZG91dCc7XG5cbiAgLyoqXG4gIFRoZSBjaHVuaydzIHRleHQuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGB1bnJlZmAgYSBwaXBlZCBzdGRpbyBzdHJlYW0gY2FycmllcyB0aHJvdWdoIGl0cyB1bmRlcmx5aW5nIHNvY2tldCwgd2hpY2hcbiAqIGBSZWFkYWJsZWAgYWxvbmUgZG9lcyBub3QgZGVjbGFyZS5cbiAqL1xuaW50ZXJmYWNlIFN0cmVhbVdpdGhVbnJlZiB7XG4gIHVucmVmOiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEF0dGFjaGVzIG91dHB1dCBjYXB0dXJlIGFuZCBleGl0IG9ic2VydmF0aW9uIHRvIGFuIGFscmVhZHktc3Bhd25lZCBwcm9jZXNzLlxuICpcbiAqIFRvbGVyYXRlcyBhIHByb2Nlc3Mgc3Bhd25lZCB3aXRob3V0IHBpcGVzIChgc3RkaW86ICdpZ25vcmUnYCBsZWF2ZXNcbiAqIGBzdGRvdXRgIC8gYHN0ZGVycmAgYG51bGxgKTogdGhlIGV4aXQgaGFsZiBzdGlsbCB3b3JrcywgYW5kIHRoZSBjYXB0dXJlZFxuICogb3V0cHV0IHN0YXlzIGVtcHR5LlxuICpcbiAqIEBwYXJhbSBjaGlsZCAtIFRoZSBzcGF3bmVkIHByb2Nlc3MuXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHRhaWwgYnVkZ2V0LCBhbmQgYW4gb3B0aW9uYWwgbGl2ZS1vdXRwdXQgY2FsbGJhY2suXG4gKiBAcmV0dXJucyBSZWFkZXJzIGZvciB0aGUgY2FwdHVyZWQgb3V0cHV0IGFuZCB0aGUgZXhpdCBzdGF0dXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2hQcm9jZXNzQ2FwdHVyZShjaGlsZDogQ2hpbGRQcm9jZXNzLCBwYXJhbXM6IEF0dGFjaFByb2Nlc3NDYXB0dXJlUGFyYW1zKTogUHJvY2Vzc0NhcHR1cmUge1xuICBjb25zdCB7IG1heE91dHB1dExlbmd0aEluQ2hhcmFjdGVycywgb25DaHVuayB9ID0gcGFyYW1zO1xuXG4gIGxldCBjYXB0dXJlZE91dHB1dCA9ICcnO1xuICBsZXQgZXhpdEluZm86IFByb2Nlc3NFeGl0SW5mbyB8IHVuZGVmaW5lZDtcbiAgbGV0IGlzQ2FwdHVyaW5nID0gdHJ1ZTtcblxuICBhdHRhY2hTdHJlYW0oY2hpbGQuc3Rkb3V0LCAnc3Rkb3V0Jyk7XG4gIGF0dGFjaFN0cmVhbShjaGlsZC5zdGRlcnIsICdzdGRlcnInKTtcblxuICBjaGlsZC5vbmNlKCdleGl0JywgKGNvZGU6IG51bGwgfCBudW1iZXIsIHNpZ25hbDogTm9kZUpTLlNpZ25hbHMgfCBudWxsKSA9PiB7XG4gICAgZXhpdEluZm8gPSB7IGNvZGUsIHNpZ25hbCB9O1xuICB9KTtcblxuICAvKlxuICAgKiBBIHNwYXduIGZhaWx1cmUgKGUuZy4gRU5PRU5UIGZvciBhIG1pc3NpbmcgYmluYXJ5KSBlbWl0cyAnZXJyb3InLCBub3RcbiAgICogJ2V4aXQnLiBSZWNvcmQgaXQgYXMgYSBzeW50aGV0aWMgZXhpdCBzbyBhIGNhbGxlciBwb2xsaW5nIGZvciByZWFkaW5lc3MgY2FuXG4gICAqIGZhaWwgZmFzdCBpbnN0ZWFkIG9mIHNwaW5uaW5nIG91dCBpdHMgd2hvbGUgYnVkZ2V0IGFnYWluc3QgYSBwcm9jZXNzIHRoYXRcbiAgICogbmV2ZXIgZXhpc3RlZC5cbiAgICovXG4gIGNoaWxkLm9uY2UoJ2Vycm9yJywgKGVycm9yOiBFcnJvcikgPT4ge1xuICAgIGV4aXRJbmZvID0geyBjb2RlOiBudWxsLCBzaWduYWw6IG51bGwsIHNwYXduRXJyb3I6IGVycm9yLm1lc3NhZ2UgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICByZWFkRXhpdEluZm86ICgpID0+IGV4aXRJbmZvLFxuICAgIHJlYWRPdXRwdXQ6ICgpID0+IGNhcHR1cmVkT3V0cHV0LFxuICAgIHN0b3BDYXB0dXJlOiAoKTogdm9pZCA9PiB7XG4gICAgICBpc0NhcHR1cmluZyA9IGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBmdW5jdGlvbiBhdHRhY2hTdHJlYW0oc3RyZWFtOiBudWxsIHwgUmVhZGFibGUsIG5hbWU6IFByb2Nlc3NPdXRwdXRDaHVua1snc3RyZWFtJ10pOiB2b2lkIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN0cmVhbS5vbignZGF0YScsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICBjb25zdCB0ZXh0ID0gY2h1bmsudG9TdHJpbmcoKTtcbiAgICAgIG9uQ2h1bms/Lih7IHN0cmVhbTogbmFtZSwgdGV4dCB9KTtcbiAgICAgIGlmIChpc0NhcHR1cmluZykge1xuICAgICAgICBjYXB0dXJlZE91dHB1dCA9IChjYXB0dXJlZE91dHB1dCArIHRleHQpLnNsaWNlKC1tYXhPdXRwdXRMZW5ndGhJbkNoYXJhY3RlcnMpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLypcbiAgICAgKiBgY2hpbGQudW5yZWYoKWAgb25seSByZWxlYXNlcyB0aGUgcHJvY2VzcyBoYW5kbGU7IHRoZSBzdGRpbyBwaXBlcyBhcmVcbiAgICAgKiBzZXBhcmF0ZSBoYW5kbGVzIHRoYXQga2VlcCB0aGUgZXZlbnQgbG9vcCBhbGl2ZSBvbiB0aGVpciBvd24uIEEgaGFybmVzc1xuICAgICAqIHRoYXQgcGlwZXMgYSBkZXRhY2hlZCBjaGlsZCdzIG91dHB1dCB3b3VsZCB0aGVuIHJlZnVzZSB0byBleGl0IHVudGlsIHRoYXRcbiAgICAgKiBjaGlsZCBkaWVkIFx1MjAxNCB0aGUgb3Bwb3NpdGUgb2Ygd2hhdCBgZGV0YWNoZWRgICsgYHVucmVmYCB3YXMgYXNrZWQgZm9yLlxuICAgICAqXG4gICAgICogYHVucmVmYCBsaXZlcyBvbiB0aGUgdW5kZXJseWluZyBzb2NrZXQgcmF0aGVyIHRoYW4gb24gYFJlYWRhYmxlYCwgc28gaXQgaXNcbiAgICAgKiByZWFjaGVkIHN0cnVjdHVyYWxseTogYSBzdHJlYW0gdGhhdCBkb2VzIG5vdCBjYXJyeSBvbmUgc2ltcGx5IHNraXBzIHRoaXMuXG4gICAgICovXG4gICAgKHN0cmVhbSBhcyBQYXJ0aWFsPFN0cmVhbVdpdGhVbnJlZj4pLnVucmVmPy4oKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXFHTyxTQUFTLHFCQUFxQixPQUFxQixRQUFvRDtBQUM1RyxRQUFNLEVBQUUsNkJBQTZCLFFBQVEsSUFBSTtBQUVqRCxNQUFJLGlCQUFpQjtBQUNyQixNQUFJO0FBQ0osTUFBSSxjQUFjO0FBRWxCLGVBQWEsTUFBTSxRQUFRLFFBQVE7QUFDbkMsZUFBYSxNQUFNLFFBQVEsUUFBUTtBQUVuQyxRQUFNLEtBQUssUUFBUSxDQUFDLE1BQXFCLFdBQWtDO0FBQ3pFLGVBQVcsRUFBRSxNQUFNLE9BQU87QUFBQSxFQUM1QixDQUFDO0FBUUQsUUFBTSxLQUFLLFNBQVMsQ0FBQyxVQUFpQjtBQUNwQyxlQUFXLEVBQUUsTUFBTSxNQUFNLFFBQVEsTUFBTSxZQUFZLE1BQU0sUUFBUTtBQUFBLEVBQ25FLENBQUM7QUFFRCxTQUFPO0FBQUEsSUFDTCxjQUFjLE1BQU07QUFBQSxJQUNwQixZQUFZLE1BQU07QUFBQSxJQUNsQixhQUFhLE1BQVk7QUFDdkIsb0JBQWM7QUFBQSxJQUNoQjtBQUFBLEVBQ0Y7QUFFQSxXQUFTLGFBQWEsUUFBeUIsTUFBMEM7QUFDdkYsUUFBSSxDQUFDLFFBQVE7QUFDWDtBQUFBLElBQ0Y7QUFFQSxXQUFPLEdBQUcsUUFBUSxDQUFDLFVBQWtCO0FBQ25DLFlBQU0sT0FBTyxNQUFNLFNBQVM7QUFDNUIsZ0JBQVUsRUFBRSxRQUFRLE1BQU0sS0FBSyxDQUFDO0FBQ2hDLFVBQUksYUFBYTtBQUNmLDBCQUFrQixpQkFBaUIsTUFBTSxNQUFNLENBQUMsMkJBQTJCO0FBQUEsTUFDN0U7QUFBQSxJQUNGLENBQUM7QUFXRCxJQUFDLE9BQW9DLFFBQVE7QUFBQSxFQUMvQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
62
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Byb2Nlc3MtY2FwdHVyZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEF0dGFjaGVzIG91dHB1dCBjYXB0dXJlIGFuZCBleGl0IG9ic2VydmF0aW9uIHRvIGEgc3Bhd25lZCBjaGlsZCBwcm9jZXNzLlxuICpcbiAqIEEgbG9uZy1ydW5uaW5nIGNoaWxkIHNwYXduZWQgd2l0aCBwaXBlZCBzdGRpbyBuZWVkcyB0aHJlZSB0aGluZ3MgZG9uZSB0byBpdCxcbiAqIGFuZCBnZXR0aW5nIGFueSBvZiB0aGVtIHdyb25nIGlzIGl0cyBvd24gYnVnOiBpdHMgcGlwZXMgbXVzdCBiZSAqKmRyYWluZWQqKlxuICogKGEgZnVsbCBPUyBwaXBlIGJ1ZmZlciBibG9ja3MgdGhlIHdyaXRlciBcdTIwMTQgYSBjaGF0dHkgcmVuZGVyZXIgd291bGQgaGFuZyB0aGVcbiAqIGFwcCBpdCBiZWxvbmdzIHRvKSwgaXRzIG91dHB1dCBtdXN0IGJlIGtlcHQgKipib3VuZGVkKiogKGFuIGhvdXIgb2YgbG9ncyBpc1xuICogbm90IGEgZGlhZ25vc3RpYyksIGFuZCBpdHMgYGV4aXRgIC8gYGVycm9yYCBtdXN0IGJlICoqcmVjb3JkZWQqKiBzbyBhIGNhbGxlclxuICogdGhhdCBsYXRlciBmaW5kcyB0aGUgcHJvY2VzcyB1bnJlYWNoYWJsZSBjYW4gc2F5IHdoeSBpbnN0ZWFkIG9mIGd1ZXNzaW5nLlxuICpcbiAqIEV4dHJhY3RlZCBzbyB0aGUgc3RhdGUgbWFjaGluZSBpcyB1bml0LXRlc3RhYmxlOiB0aGUgbGF1bmNoZXJzIHRoYXQgdXNlIGl0XG4gKiAoYG9ic2lkaWFuLWluc3RhbmNlLnRzYCwgYW5kIHRoZSBlbXVsYXRvci9BcHBpdW0gc3Bhd25zIGluXG4gKiBgdHJhbnNwb3J0LWZhY3RvcnkudHNgKSBhcmUgaW50ZWdyYXRpb24tdGltZSBnbHVlIGV4Y2x1ZGVkIGZyb20gdW5pdCB0ZXN0cyxcbiAqIHdoaWNoIGlzIGhvdyB0aGUgb3duZWQgT2JzaWRpYW4gaW5zdGFuY2UgY2FtZSB0byBiZSBzcGF3bmVkIGBzdGRpbzogJ2lnbm9yZSdgXG4gKiB3aXRoIG5vIGBleGl0YCBsaXN0ZW5lciBhdCBhbGwgXHUyMDE0IGl0cyBkZWF0aCB3YXMgdW5vYnNlcnZhYmxlIGJ5IGNvbnN0cnVjdGlvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgdHlwZSB7IFJlYWRhYmxlIH0gZnJvbSAnbm9kZTpzdHJlYW0nO1xuXG5pbXBvcnQgdHlwZSB7IFByb2Nlc3NFeGl0SW5mbyB9IGZyb20gJy4vcHJvY2Vzcy1leGl0LW1lc3NhZ2UuY2pzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYXR0YWNoUHJvY2Vzc0NhcHR1cmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaFByb2Nlc3NDYXB0dXJlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIb3cgbWFueSBjaGFyYWN0ZXJzIG9mIHRoZSBtb3N0IHJlY2VudCBvdXRwdXQgdG8ga2VlcC4gT2xkZXIgb3V0cHV0IGlzXG4gICAqIGRyb3BwZWQgZnJvbSB0aGUgZnJvbnQgYXMgbmV3IG91dHB1dCBhcnJpdmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4T3V0cHV0TGVuZ3RoSW5DaGFyYWN0ZXJzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENhbGxlZCBmb3IgZXZlcnkgY2h1bmsgYXMgaXQgYXJyaXZlcywgZm9yIGNhbGxlcnMgdGhhdCB3YW50IHRoZSBvdXRwdXRcbiAgICogKipsaXZlKiogKGxvZ2dlZCBhcyB0aGUgcHJvY2VzcyBydW5zKSByYXRoZXIgdGhhbiBvbmx5IGFzIGEgcG9zdC1tb3J0ZW1cbiAgICogdGFpbC4gRmlyZXMgcmVnYXJkbGVzcyBvZiB7QGxpbmsgUHJvY2Vzc0NhcHR1cmUuc3RvcENhcHR1cmV9LCB3aGljaCBmcmVlemVzXG4gICAqIHRoZSByZXRhaW5lZCB0YWlsIGFuZCBub3RoaW5nIGVsc2UuXG4gICAqL1xuICByZWFkb25seSBvbkNodW5rPzogKChjaHVuazogUHJvY2Vzc091dHB1dENodW5rKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBIGNoaWxkIHByb2Nlc3MncyBjYXB0dXJlZCBvdXRwdXQgYW5kIGV4aXQgc3RhdHVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NDYXB0dXJlIHtcbiAgLyoqXG4gIFJldHVybnMgdGhlIGV4aXQgLyBzcGF3bi1mYWlsdXJlIGRldGFpbHMgb25jZSB0aGUgcHJvY2VzcyBpcyBubyBsb25nZXIgcnVubmluZywgb3RoZXJ3aXNlIGB1bmRlZmluZWRgLlxuICAgKi9cbiAgcmVhZEV4aXRJbmZvKCk6IFByb2Nlc3NFeGl0SW5mbyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgUmV0dXJucyB0aGUgY2FwdHVyZWQgc3Rkb3V0K3N0ZGVyciwgYm91bmRlZCB0byB0aGUgbW9zdCByZWNlbnQgb3V0cHV0LlxuICAgKi9cbiAgcmVhZE91dHB1dCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0b3BzIGFjY3VtdWxhdGluZyBvdXRwdXQsIGZyZWV6aW5nIHRoZSB0YWlsIGF0IHdoYXQgaGFzIGFycml2ZWQgc28gZmFyLlxuICAgKiBDYWxsIG9uY2Ugc3RhcnR1cCBoYXMgc3VjY2VlZGVkIGFuZCB0aGUgdGFpbCBoYXMgc2VydmVkIGl0cyBwdXJwb3NlLlxuICAgKlxuICAgKiBUaGUgYGRhdGFgIGxpc3RlbmVycyBzdGF5IGF0dGFjaGVkIGRlbGliZXJhdGVseSwgc28gdGhlIHBpcGVzIGtlZXAgZHJhaW5pbmdcbiAgICogZm9yIHRoZSByZXN0IG9mIHRoZSBwcm9jZXNzJ3MgbGlmZS5cbiAgICovXG4gIHN0b3BDYXB0dXJlKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogT25lIGNodW5rIG9mIGEgY2hpbGQgcHJvY2VzcydzIG91dHB1dCwgYW5kIHdoaWNoIHN0cmVhbSBpdCBjYW1lIGZyb20uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc091dHB1dENodW5rIHtcbiAgLyoqXG4gIFRoZSBzdHJlYW0gdGhlIGNodW5rIHdhcyB3cml0dGVuIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtOiAnc3RkZXJyJyB8ICdzdGRvdXQnO1xuXG4gIC8qKlxuICBUaGUgY2h1bmsncyB0ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBgdW5yZWZgIGEgcGlwZWQgc3RkaW8gc3RyZWFtIGNhcnJpZXMgdGhyb3VnaCBpdHMgdW5kZXJseWluZyBzb2NrZXQsIHdoaWNoXG4gKiBgUmVhZGFibGVgIGFsb25lIGRvZXMgbm90IGRlY2xhcmUuXG4gKi9cbmludGVyZmFjZSBTdHJlYW1XaXRoVW5yZWYge1xuICB1bnJlZigpOiB2b2lkO1xufVxuXG4vKipcbiAqIEF0dGFjaGVzIG91dHB1dCBjYXB0dXJlIGFuZCBleGl0IG9ic2VydmF0aW9uIHRvIGFuIGFscmVhZHktc3Bhd25lZCBwcm9jZXNzLlxuICpcbiAqIFRvbGVyYXRlcyBhIHByb2Nlc3Mgc3Bhd25lZCB3aXRob3V0IHBpcGVzIChgc3RkaW86ICdpZ25vcmUnYCBsZWF2ZXNcbiAqIGBzdGRvdXRgIC8gYHN0ZGVycmAgYG51bGxgKTogdGhlIGV4aXQgaGFsZiBzdGlsbCB3b3JrcywgYW5kIHRoZSBjYXB0dXJlZFxuICogb3V0cHV0IHN0YXlzIGVtcHR5LlxuICpcbiAqIEBwYXJhbSBjaGlsZCAtIFRoZSBzcGF3bmVkIHByb2Nlc3MuXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHRhaWwgYnVkZ2V0LCBhbmQgYW4gb3B0aW9uYWwgbGl2ZS1vdXRwdXQgY2FsbGJhY2suXG4gKiBAcmV0dXJucyBSZWFkZXJzIGZvciB0aGUgY2FwdHVyZWQgb3V0cHV0IGFuZCB0aGUgZXhpdCBzdGF0dXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2hQcm9jZXNzQ2FwdHVyZShjaGlsZDogQ2hpbGRQcm9jZXNzLCBwYXJhbXM6IEF0dGFjaFByb2Nlc3NDYXB0dXJlT3B0aW9ucyk6IFByb2Nlc3NDYXB0dXJlIHtcbiAgY29uc3QgeyBtYXhPdXRwdXRMZW5ndGhJbkNoYXJhY3RlcnMsIG9uQ2h1bmsgfSA9IHBhcmFtcztcblxuICBsZXQgY2FwdHVyZWRPdXRwdXQgPSAnJztcbiAgbGV0IGV4aXRJbmZvOiBQcm9jZXNzRXhpdEluZm8gfCB1bmRlZmluZWQ7XG4gIGxldCBpc0NhcHR1cmluZyA9IHRydWU7XG5cbiAgYXR0YWNoU3RyZWFtKGNoaWxkLnN0ZG91dCwgJ3N0ZG91dCcpO1xuICBhdHRhY2hTdHJlYW0oY2hpbGQuc3RkZXJyLCAnc3RkZXJyJyk7XG5cbiAgY2hpbGQub25jZSgnZXhpdCcsIChjb2RlOiBudWxsIHwgbnVtYmVyLCBzaWduYWw6IE5vZGVKUy5TaWduYWxzIHwgbnVsbCkgPT4ge1xuICAgIGV4aXRJbmZvID0geyBjb2RlLCBzaWduYWwgfTtcbiAgfSk7XG5cbiAgLypcbiAgICogQSBzcGF3biBmYWlsdXJlIChlLmcuIEVOT0VOVCBmb3IgYSBtaXNzaW5nIGJpbmFyeSkgZW1pdHMgJ2Vycm9yJywgbm90XG4gICAqICdleGl0Jy4gUmVjb3JkIGl0IGFzIGEgc3ludGhldGljIGV4aXQgc28gYSBjYWxsZXIgcG9sbGluZyBmb3IgcmVhZGluZXNzIGNhblxuICAgKiBmYWlsIGZhc3QgaW5zdGVhZCBvZiBzcGlubmluZyBvdXQgaXRzIHdob2xlIGJ1ZGdldCBhZ2FpbnN0IGEgcHJvY2VzcyB0aGF0XG4gICAqIG5ldmVyIGV4aXN0ZWQuXG4gICAqL1xuICBjaGlsZC5vbmNlKCdlcnJvcicsIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICBleGl0SW5mbyA9IHsgY29kZTogbnVsbCwgc2lnbmFsOiBudWxsLCBzcGF3bkVycm9yOiBlcnJvci5tZXNzYWdlIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcmVhZEV4aXRJbmZvOiAoKSA9PiBleGl0SW5mbyxcbiAgICByZWFkT3V0cHV0OiAoKSA9PiBjYXB0dXJlZE91dHB1dCxcbiAgICBzdG9wQ2FwdHVyZTogKCk6IHZvaWQgPT4ge1xuICAgICAgaXNDYXB0dXJpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gYXR0YWNoU3RyZWFtKHN0cmVhbTogbnVsbCB8IFJlYWRhYmxlLCBuYW1lOiBQcm9jZXNzT3V0cHV0Q2h1bmtbJ3N0cmVhbSddKTogdm9pZCB7XG4gICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdHJlYW0ub24oJ2RhdGEnLCAoY2h1bms6IEJ1ZmZlcikgPT4ge1xuICAgICAgY29uc3QgdGV4dCA9IGNodW5rLnRvU3RyaW5nKCk7XG4gICAgICBvbkNodW5rPy4oeyBzdHJlYW06IG5hbWUsIHRleHQgfSk7XG4gICAgICBpZiAoaXNDYXB0dXJpbmcpIHtcbiAgICAgICAgY2FwdHVyZWRPdXRwdXQgPSAoY2FwdHVyZWRPdXRwdXQgKyB0ZXh0KS5zbGljZSgtbWF4T3V0cHV0TGVuZ3RoSW5DaGFyYWN0ZXJzKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qXG4gICAgICogYGNoaWxkLnVucmVmKClgIG9ubHkgcmVsZWFzZXMgdGhlIHByb2Nlc3MgaGFuZGxlOyB0aGUgc3RkaW8gcGlwZXMgYXJlXG4gICAgICogc2VwYXJhdGUgaGFuZGxlcyB0aGF0IGtlZXAgdGhlIGV2ZW50IGxvb3AgYWxpdmUgb24gdGhlaXIgb3duLiBBIGhhcm5lc3NcbiAgICAgKiB0aGF0IHBpcGVzIGEgZGV0YWNoZWQgY2hpbGQncyBvdXRwdXQgd291bGQgdGhlbiByZWZ1c2UgdG8gZXhpdCB1bnRpbCB0aGF0XG4gICAgICogY2hpbGQgZGllZCBcdTIwMTQgdGhlIG9wcG9zaXRlIG9mIHdoYXQgYGRldGFjaGVkYCArIGB1bnJlZmAgd2FzIGFza2VkIGZvci5cbiAgICAgKlxuICAgICAqIGB1bnJlZmAgbGl2ZXMgb24gdGhlIHVuZGVybHlpbmcgc29ja2V0IHJhdGhlciB0aGFuIG9uIGBSZWFkYWJsZWAsIHNvIGl0IGlzXG4gICAgICogcmVhY2hlZCBzdHJ1Y3R1cmFsbHk6IGEgc3RyZWFtIHRoYXQgZG9lcyBub3QgY2Fycnkgb25lIHNpbXBseSBza2lwcyB0aGlzLlxuICAgICAqL1xuICAgIChzdHJlYW0gYXMgUGFydGlhbDxTdHJlYW1XaXRoVW5yZWY+KS51bnJlZj8uKCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFxR08sU0FBUyxxQkFBcUIsT0FBcUIsUUFBcUQ7QUFDN0csUUFBTSxFQUFFLDZCQUE2QixRQUFRLElBQUk7QUFFakQsTUFBSSxpQkFBaUI7QUFDckIsTUFBSTtBQUNKLE1BQUksY0FBYztBQUVsQixlQUFhLE1BQU0sUUFBUSxRQUFRO0FBQ25DLGVBQWEsTUFBTSxRQUFRLFFBQVE7QUFFbkMsUUFBTSxLQUFLLFFBQVEsQ0FBQyxNQUFxQixXQUFrQztBQUN6RSxlQUFXLEVBQUUsTUFBTSxPQUFPO0FBQUEsRUFDNUIsQ0FBQztBQVFELFFBQU0sS0FBSyxTQUFTLENBQUMsVUFBaUI7QUFDcEMsZUFBVyxFQUFFLE1BQU0sTUFBTSxRQUFRLE1BQU0sWUFBWSxNQUFNLFFBQVE7QUFBQSxFQUNuRSxDQUFDO0FBRUQsU0FBTztBQUFBLElBQ0wsY0FBYyxNQUFNO0FBQUEsSUFDcEIsWUFBWSxNQUFNO0FBQUEsSUFDbEIsYUFBYSxNQUFZO0FBQ3ZCLG9CQUFjO0FBQUEsSUFDaEI7QUFBQSxFQUNGO0FBRUEsV0FBUyxhQUFhLFFBQXlCLE1BQTBDO0FBQ3ZGLFFBQUksQ0FBQyxRQUFRO0FBQ1g7QUFBQSxJQUNGO0FBRUEsV0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFrQjtBQUNuQyxZQUFNLE9BQU8sTUFBTSxTQUFTO0FBQzVCLGdCQUFVLEVBQUUsUUFBUSxNQUFNLEtBQUssQ0FBQztBQUNoQyxVQUFJLGFBQWE7QUFDZiwwQkFBa0IsaUJBQWlCLE1BQU0sTUFBTSxDQUFDLDJCQUEyQjtBQUFBLE1BQzdFO0FBQUEsSUFDRixDQUFDO0FBV0QsSUFBQyxPQUFvQyxRQUFRO0FBQUEsRUFDL0M7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -21,7 +21,7 @@ import type { ProcessExitInfo } from './process-exit-message.cjs';
21
21
  /**
22
22
  * Parameters for {@link attachProcessCapture}.
23
23
  */
24
- export interface AttachProcessCaptureParams {
24
+ export interface AttachProcessCaptureOptions {
25
25
  /**
26
26
  * How many characters of the most recent output to keep. Older output is
27
27
  * dropped from the front as new output arrives.
@@ -42,11 +42,11 @@ export interface ProcessCapture {
42
42
  /**
43
43
  Returns the exit / spawn-failure details once the process is no longer running, otherwise `undefined`.
44
44
  */
45
- readExitInfo: () => ProcessExitInfo | undefined;
45
+ readExitInfo(): ProcessExitInfo | undefined;
46
46
  /**
47
47
  Returns the captured stdout+stderr, bounded to the most recent output.
48
48
  */
49
- readOutput: () => string;
49
+ readOutput(): string;
50
50
  /**
51
51
  * Stops accumulating output, freezing the tail at what has arrived so far.
52
52
  * Call once startup has succeeded and the tail has served its purpose.
@@ -54,7 +54,7 @@ export interface ProcessCapture {
54
54
  * The `data` listeners stay attached deliberately, so the pipes keep draining
55
55
  * for the rest of the process's life.
56
56
  */
57
- stopCapture: () => void;
57
+ stopCapture(): void;
58
58
  }
59
59
  /**
60
60
  * One chunk of a child process's output, and which stream it came from.
@@ -80,4 +80,4 @@ export interface ProcessOutputChunk {
80
80
  * @param params - The tail budget, and an optional live-output callback.
81
81
  * @returns Readers for the captured output and the exit status.
82
82
  */
83
- export declare function attachProcessCapture(child: ChildProcess, params: AttachProcessCaptureParams): ProcessCapture;
83
+ export declare function attachProcessCapture(child: ChildProcess, params: AttachProcessCaptureOptions): ProcessCapture;
@@ -50,4 +50,4 @@ function resolveReason(exitInfo) {
50
50
  appendProcessOutputTail,
51
51
  buildProcessExitMessage
52
52
  });
53
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Byb2Nlc3MtZXhpdC1tZXNzYWdlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSBidWlsZGVycyBmb3IgdGhlIGRpYWdub3N0aWMgbWVzc2FnZSBkZXNjcmliaW5nIGFuIGF1dG8tc3RhcnRlZCBjaGlsZFxuICogcHJvY2VzcyAodGhlIEFuZHJvaWQgZW11bGF0b3Igb3IgdGhlIEFwcGl1bSBzZXJ2ZXIpIHRoYXQgZmFpbGVkIGR1cmluZ1xuICogc3RhcnR1cCwgYXBwZW5kaW5nIHRoZSBjYXB0dXJlZCBvdXRwdXQgdGFpbCB3aGVuIGF2YWlsYWJsZS5cbiAqXG4gKiBBIHN0YXJ0dXAgZmFpbHMgdHdvIHdheXMgXHUyMDE0IHRoZSBwcm9jZXNzICoqZGllcyoqLCBvciBpdCAqKmhhbmdzKiogcGFzdCBhXG4gKiBidWRnZXQgXHUyMDE0IGFuZCB0aGUgY2FwdHVyZWQgdGFpbCBpcyBlcXVhbGx5IHRoZSBleHBsYW5hdGlvbiBpbiBib3RoLiBTbyB0aGVcbiAqIHRhaWwtYXBwZW5kaW5nIGhhbGYgaXMgaXRzIG93biBleHBvcnQsIHVzZWQgYnkgdGhlIHRpbWVvdXQgdGhyb3dzIHRoYXQgb25jZVxuICogcmVwb3J0ZWQgb25seSB0aGUgYnVkZ2V0IHRoZXkgYmxldy5cbiAqXG4gKiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1mYWN0b3J5YCAoZXhjbHVkZWQgZnJvbVxuICogdW5pdCB0ZXN0cykgc28gdGhlIG1lc3NhZ2UgZm9ybWF0dGluZyBzdGF5cyB1bml0LXRlc3RhYmxlIFx1MjAxNCB0aGUgbGF1bmNoZXJzXG4gKiB0aGVtc2VsdmVzIHNwYXduIHJlYWwgcHJvY2Vzc2VzLlxuICovXG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGFwcGVuZFByb2Nlc3NPdXRwdXRUYWlsfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBlbmRQcm9jZXNzT3V0cHV0VGFpbFBhcmFtcyB7XG4gIC8qKlxuICBUaGUgY2FwdHVyZWQgc3Rkb3V0K3N0ZGVyciB0YWlsIChlbXB0eSB3aGVuIG5vbmUgd2FzIGNhcHR1cmVkKS5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dDogc3RyaW5nO1xuXG4gIC8qKlxuICBMYWJlbCBmb3IgdGhlIGNhcHR1cmVkIG91dHB1dCBzZWN0aW9uIChlLmcuIGBcIkVtdWxhdG9yIG91dHB1dFwiYCkuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRMYWJlbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBidWlsZFByb2Nlc3NFeGl0TWVzc2FnZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRQcm9jZXNzRXhpdE1lc3NhZ2VQYXJhbXMge1xuICAvKipcbiAgVGhlIHByb2Nlc3MncyBleGl0IC8gc3Bhd24tZmFpbHVyZSBkZXRhaWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhpdEluZm86IFByb2Nlc3NFeGl0SW5mbztcblxuICAvKipcbiAgVGhlIGNhcHR1cmVkIHN0ZG91dCtzdGRlcnIgdGFpbCAoZW1wdHkgd2hlbiBub25lIHdhcyBjYXB0dXJlZCkuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcblxuICAvKipcbiAgTGFiZWwgZm9yIHRoZSBjYXB0dXJlZCBvdXRwdXQgc2VjdGlvbiAoZS5nLiBgXCJFbXVsYXRvciBvdXRwdXRcImApLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0TGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgSHVtYW4tcmVhZGFibGUgc3ViamVjdCBvZiB0aGUgcHJvY2VzcyAoZS5nLiBgXCJBbmRyb2lkIGVtdWxhdG9yXCJgKS5cbiAgICovXG4gIHJlYWRvbmx5IHN1YmplY3Q6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRhaWxzIG9mIGEgc3Bhd25lZCBjaGlsZCBwcm9jZXNzIHRoYXQgaGFzIGV4aXRlZCBvciBmYWlsZWQgdG8gc3Bhd24uXG4gKlxuICogQSBub3JtYWwgZXhpdCBzZXRzIGBjb2RlYC9gc2lnbmFsYCAoZXhhY3RseSBvbmUgaXMgbm9uLWBudWxsYCk7IGEgc3Bhd25cbiAqIGZhaWx1cmUgKGUuZy4gYEVOT0VOVGAgZm9yIGEgbWlzc2luZyBiaW5hcnkpIGxlYXZlcyBib3RoIGBudWxsYCBhbmQgc2V0c1xuICogYHNwYXduRXJyb3JgIHRvIHRoZSBmYWlsdXJlIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0V4aXRJbmZvIHtcbiAgLyoqXG4gIEV4aXQgY29kZSwgb3IgYG51bGxgIHdoZW4gdGVybWluYXRlZCBieSBhIHNpZ25hbCBvciB3aGVuIGl0IGZhaWxlZCB0byBzcGF3bi5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGU6IG51bGwgfCBudW1iZXI7XG5cbiAgLyoqXG4gIFRlcm1pbmF0aW5nIHNpZ25hbCwgb3IgYG51bGxgIHdoZW4gaXQgZXhpdGVkIG5vcm1hbGx5IG9yIGZhaWxlZCB0byBzcGF3bi5cbiAgICovXG4gIHJlYWRvbmx5IHNpZ25hbDogTm9kZUpTLlNpZ25hbHMgfCBudWxsO1xuXG4gIC8qKlxuICBUaGUgc3Bhd24tZmFpbHVyZSBtZXNzYWdlIHdoZW4gdGhlIHByb2Nlc3MgbmV2ZXIgc3RhcnRlZCAoZS5nLiBgRU5PRU5UYCksIG90aGVyd2lzZSBhYnNlbnQuXG4gICAqL1xuICByZWFkb25seSBzcGF3bkVycm9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFwcGVuZHMgYSBwcm9jZXNzJ3MgY2FwdHVyZWQgb3V0cHV0IHRhaWwgdG8gYSBtZXNzYWdlLCB3aGVuIHRoZXJlIGlzIG9uZS5cbiAqXG4gKiBTcGxpdCBvdXQgb2Yge0BsaW5rIGJ1aWxkUHJvY2Vzc0V4aXRNZXNzYWdlfSBzbyB0aGUgKip0aW1lb3V0KiogZmFpbHVyZXMgY2FuXG4gKiBjYXJyeSB0aGUgdGFpbCB0b28uIEEgcHJvY2VzcyB0aGF0IGRpZXMgZ2V0cyBpdHMgb3V0cHV0IGF0dGFjaGVkOyBvbmUgdGhhdFxuICogaGFuZ3MgdXNlZCB0byBnZXQgYE5vIG5ldyBlbXVsYXRvciBkZXZpY2UgYXBwZWFyZWQgd2l0aGluIDMwMDAwMG1zLmAgYW5kXG4gKiBub3RoaW5nIGVsc2UgXHUyMDE0IGV2ZW4gdGhvdWdoIHRoZSBsaW5lIHRoYXQgZXhwbGFpbnMgaXQgKGBGQVRBTCB8IFJ1bm5pbmdcbiAqIG11bHRpcGxlIGVtdWxhdG9ycyB3aXRoIHRoZSBzYW1lIEFWRCBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZWApIGhhZCBhbHJlYWR5XG4gKiBiZWVuIGNhcHR1cmVkLiBUaGUgZW11bGF0b3Igd3JpdGluZyBpdHMgb3duIGRpYWdub3NpcyBpcyB3b3J0aCBub3RoaW5nIGlmIHRoZVxuICogaGFybmVzcyByZWFkcyBpdCBvbiBvbmx5IG9uZSBvZiB0aGUgdHdvIHdheXMgYSBzdGFydHVwIGNhbiBmYWlsLlxuICpcbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGZhaWx1cmUgbWVzc2FnZSB0byBleHRlbmQuXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGNhcHR1cmVkIHRhaWwgYW5kIGl0cyBsYWJlbC5cbiAqIEByZXR1cm5zIFRoZSBtZXNzYWdlLCB3aXRoIHRoZSB0YWlsIGFwcGVuZGVkIHdoZW4gbm9uLWVtcHR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kUHJvY2Vzc091dHB1dFRhaWwobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM6IEFwcGVuZFByb2Nlc3NPdXRwdXRUYWlsUGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3QgdHJpbW1lZE91dHB1dCA9IHBhcmFtcy5vdXRwdXQudHJpbSgpO1xuICBpZiAodHJpbW1lZE91dHB1dC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIHJldHVybiBgJHttZXNzYWdlfVxcblxcbiR7cGFyYW1zLm91dHB1dExhYmVsfSAodGFpbCk6XFxuJHt0cmltbWVkT3V0cHV0fWA7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZGVzY3JpcHRpdmUgZXJyb3IgbWVzc2FnZSBmb3IgYW4gYXV0by1zdGFydGVkIGNoaWxkIHByb2Nlc3MgdGhhdFxuICogZXhpdGVkIChvciBmYWlsZWQgdG8gc3Bhd24pIGR1cmluZyBzdGFydHVwLCBhcHBlbmRpbmcgdGhlIGNhcHR1cmVkIG91dHB1dFxuICogdGFpbCB3aGVuIGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHN1YmplY3QsIGV4aXQgZGV0YWlscywgYW5kIGNhcHR1cmVkIG91dHB1dC5cbiAqIEByZXR1cm5zIEEgaHVtYW4tcmVhZGFibGUgZXJyb3IgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUHJvY2Vzc0V4aXRNZXNzYWdlKHBhcmFtczogQnVpbGRQcm9jZXNzRXhpdE1lc3NhZ2VQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IGV4aXRJbmZvLCBvdXRwdXQsIG91dHB1dExhYmVsLCBzdWJqZWN0IH0gPSBwYXJhbXM7XG5cbiAgcmV0dXJuIGFwcGVuZFByb2Nlc3NPdXRwdXRUYWlsKGAke3N1YmplY3R9ICR7cmVzb2x2ZVJlYXNvbihleGl0SW5mbyl9IGR1cmluZyBzdGFydHVwLmAsIHsgb3V0cHV0LCBvdXRwdXRMYWJlbCB9KTtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgd2h5IHRoZSBwcm9jZXNzIGlzIG5vIGxvbmdlciBydW5uaW5nLlxuICpcbiAqIEBwYXJhbSBleGl0SW5mbyAtIFRoZSBleGl0IC8gc3Bhd24tZmFpbHVyZSBkZXRhaWxzLlxuICogQHJldHVybnMgVGhlIHJlYXNvbiBjbGF1c2UuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVSZWFzb24oZXhpdEluZm86IFByb2Nlc3NFeGl0SW5mbyk6IHN0cmluZyB7XG4gIGlmIChleGl0SW5mby5zcGF3bkVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYGZhaWxlZCB0byBzdGFydCAoJHtleGl0SW5mby5zcGF3bkVycm9yfSlgO1xuICB9XG4gIGlmIChleGl0SW5mby5zaWduYWwgIT09IG51bGwpIHtcbiAgICByZXR1cm4gYHdhcyB0ZXJtaW5hdGVkIGJ5IHNpZ25hbCAke2V4aXRJbmZvLnNpZ25hbH1gO1xuICB9XG4gIHJldHVybiBgZXhpdGVkIHByZW1hdHVyZWx5IHdpdGggY29kZSAke2V4aXRJbmZvLmNvZGUgPT09IG51bGwgPyAnKG51bGwpJyA6IFN0cmluZyhleGl0SW5mby5jb2RlKX1gO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0dPLFNBQVMsd0JBQXdCLFNBQWlCLFFBQStDO0FBQ3RHLFFBQU0sZ0JBQWdCLE9BQU8sT0FBTyxLQUFLO0FBQ3pDLE1BQUksY0FBYyxXQUFXLEdBQUc7QUFDOUIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLEdBQUcsT0FBTztBQUFBO0FBQUEsRUFBTyxPQUFPLFdBQVc7QUFBQSxFQUFhLGFBQWE7QUFDdEU7QUFVTyxTQUFTLHdCQUF3QixRQUErQztBQUNyRixRQUFNLEVBQUUsVUFBVSxRQUFRLGFBQWEsUUFBUSxJQUFJO0FBRW5ELFNBQU8sd0JBQXdCLEdBQUcsT0FBTyxJQUFJLGNBQWMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsWUFBWSxDQUFDO0FBQ2pIO0FBUUEsU0FBUyxjQUFjLFVBQW1DO0FBQ3hELE1BQUksU0FBUyxlQUFlLFFBQVc7QUFDckMsV0FBTyxvQkFBb0IsU0FBUyxVQUFVO0FBQUEsRUFDaEQ7QUFDQSxNQUFJLFNBQVMsV0FBVyxNQUFNO0FBQzVCLFdBQU8sNEJBQTRCLFNBQVMsTUFBTTtBQUFBLEVBQ3BEO0FBQ0EsU0FBTyxnQ0FBZ0MsU0FBUyxTQUFTLE9BQU8sV0FBVyxPQUFPLFNBQVMsSUFBSSxDQUFDO0FBQ2xHOyIsCiAgIm5hbWVzIjogW10KfQo=
53
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Byb2Nlc3MtZXhpdC1tZXNzYWdlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSBidWlsZGVycyBmb3IgdGhlIGRpYWdub3N0aWMgbWVzc2FnZSBkZXNjcmliaW5nIGFuIGF1dG8tc3RhcnRlZCBjaGlsZFxuICogcHJvY2VzcyAodGhlIEFuZHJvaWQgZW11bGF0b3Igb3IgdGhlIEFwcGl1bSBzZXJ2ZXIpIHRoYXQgZmFpbGVkIGR1cmluZ1xuICogc3RhcnR1cCwgYXBwZW5kaW5nIHRoZSBjYXB0dXJlZCBvdXRwdXQgdGFpbCB3aGVuIGF2YWlsYWJsZS5cbiAqXG4gKiBBIHN0YXJ0dXAgZmFpbHMgdHdvIHdheXMgXHUyMDE0IHRoZSBwcm9jZXNzICoqZGllcyoqLCBvciBpdCAqKmhhbmdzKiogcGFzdCBhXG4gKiBidWRnZXQgXHUyMDE0IGFuZCB0aGUgY2FwdHVyZWQgdGFpbCBpcyBlcXVhbGx5IHRoZSBleHBsYW5hdGlvbiBpbiBib3RoLiBTbyB0aGVcbiAqIHRhaWwtYXBwZW5kaW5nIGhhbGYgaXMgaXRzIG93biBleHBvcnQsIHVzZWQgYnkgdGhlIHRpbWVvdXQgdGhyb3dzIHRoYXQgb25jZVxuICogcmVwb3J0ZWQgb25seSB0aGUgYnVkZ2V0IHRoZXkgYmxldy5cbiAqXG4gKiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1mYWN0b3J5YCAoZXhjbHVkZWQgZnJvbVxuICogdW5pdCB0ZXN0cykgc28gdGhlIG1lc3NhZ2UgZm9ybWF0dGluZyBzdGF5cyB1bml0LXRlc3RhYmxlIFx1MjAxNCB0aGUgbGF1bmNoZXJzXG4gKiB0aGVtc2VsdmVzIHNwYXduIHJlYWwgcHJvY2Vzc2VzLlxuICovXG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGFwcGVuZFByb2Nlc3NPdXRwdXRUYWlsfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBlbmRQcm9jZXNzT3V0cHV0VGFpbE9wdGlvbnMge1xuICAvKipcbiAgVGhlIGNhcHR1cmVkIHN0ZG91dCtzdGRlcnIgdGFpbCAoZW1wdHkgd2hlbiBub25lIHdhcyBjYXB0dXJlZCkuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcblxuICAvKipcbiAgTGFiZWwgZm9yIHRoZSBjYXB0dXJlZCBvdXRwdXQgc2VjdGlvbiAoZS5nLiBgXCJFbXVsYXRvciBvdXRwdXRcImApLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0TGFiZWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYnVpbGRQcm9jZXNzRXhpdE1lc3NhZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUHJvY2Vzc0V4aXRNZXNzYWdlUGFyYW1zIHtcbiAgLyoqXG4gIFRoZSBwcm9jZXNzJ3MgZXhpdCAvIHNwYXduLWZhaWx1cmUgZGV0YWlscy5cbiAgICovXG4gIHJlYWRvbmx5IGV4aXRJbmZvOiBQcm9jZXNzRXhpdEluZm87XG5cbiAgLyoqXG4gIFRoZSBjYXB0dXJlZCBzdGRvdXQrc3RkZXJyIHRhaWwgKGVtcHR5IHdoZW4gbm9uZSB3YXMgY2FwdHVyZWQpLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0OiBzdHJpbmc7XG5cbiAgLyoqXG4gIExhYmVsIGZvciB0aGUgY2FwdHVyZWQgb3V0cHV0IHNlY3Rpb24gKGUuZy4gYFwiRW11bGF0b3Igb3V0cHV0XCJgKS5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEh1bWFuLXJlYWRhYmxlIHN1YmplY3Qgb2YgdGhlIHByb2Nlc3MgKGUuZy4gYFwiQW5kcm9pZCBlbXVsYXRvclwiYCkuXG4gICAqL1xuICByZWFkb25seSBzdWJqZWN0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGV0YWlscyBvZiBhIHNwYXduZWQgY2hpbGQgcHJvY2VzcyB0aGF0IGhhcyBleGl0ZWQgb3IgZmFpbGVkIHRvIHNwYXduLlxuICpcbiAqIEEgbm9ybWFsIGV4aXQgc2V0cyBgY29kZWAvYHNpZ25hbGAgKGV4YWN0bHkgb25lIGlzIG5vbi1gbnVsbGApOyBhIHNwYXduXG4gKiBmYWlsdXJlIChlLmcuIGBFTk9FTlRgIGZvciBhIG1pc3NpbmcgYmluYXJ5KSBsZWF2ZXMgYm90aCBgbnVsbGAgYW5kIHNldHNcbiAqIGBzcGF3bkVycm9yYCB0byB0aGUgZmFpbHVyZSBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NFeGl0SW5mbyB7XG4gIC8qKlxuICBFeGl0IGNvZGUsIG9yIGBudWxsYCB3aGVuIHRlcm1pbmF0ZWQgYnkgYSBzaWduYWwgb3Igd2hlbiBpdCBmYWlsZWQgdG8gc3Bhd24uXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBudWxsIHwgbnVtYmVyO1xuXG4gIC8qKlxuICBUZXJtaW5hdGluZyBzaWduYWwsIG9yIGBudWxsYCB3aGVuIGl0IGV4aXRlZCBub3JtYWxseSBvciBmYWlsZWQgdG8gc3Bhd24uXG4gICAqL1xuICByZWFkb25seSBzaWduYWw6IE5vZGVKUy5TaWduYWxzIHwgbnVsbDtcblxuICAvKipcbiAgVGhlIHNwYXduLWZhaWx1cmUgbWVzc2FnZSB3aGVuIHRoZSBwcm9jZXNzIG5ldmVyIHN0YXJ0ZWQgKGUuZy4gYEVOT0VOVGApLCBvdGhlcndpc2UgYWJzZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc3Bhd25FcnJvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBcHBlbmRzIGEgcHJvY2VzcydzIGNhcHR1cmVkIG91dHB1dCB0YWlsIHRvIGEgbWVzc2FnZSwgd2hlbiB0aGVyZSBpcyBvbmUuXG4gKlxuICogU3BsaXQgb3V0IG9mIHtAbGluayBidWlsZFByb2Nlc3NFeGl0TWVzc2FnZX0gc28gdGhlICoqdGltZW91dCoqIGZhaWx1cmVzIGNhblxuICogY2FycnkgdGhlIHRhaWwgdG9vLiBBIHByb2Nlc3MgdGhhdCBkaWVzIGdldHMgaXRzIG91dHB1dCBhdHRhY2hlZDsgb25lIHRoYXRcbiAqIGhhbmdzIHVzZWQgdG8gZ2V0IGBObyBuZXcgZW11bGF0b3IgZGV2aWNlIGFwcGVhcmVkIHdpdGhpbiAzMDAwMDBtcy5gIGFuZFxuICogbm90aGluZyBlbHNlIFx1MjAxNCBldmVuIHRob3VnaCB0aGUgbGluZSB0aGF0IGV4cGxhaW5zIGl0IChgRkFUQUwgfCBSdW5uaW5nXG4gKiBtdWx0aXBsZSBlbXVsYXRvcnMgd2l0aCB0aGUgc2FtZSBBVkQgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmVgKSBoYWQgYWxyZWFkeVxuICogYmVlbiBjYXB0dXJlZC4gVGhlIGVtdWxhdG9yIHdyaXRpbmcgaXRzIG93biBkaWFnbm9zaXMgaXMgd29ydGggbm90aGluZyBpZiB0aGVcbiAqIGhhcm5lc3MgcmVhZHMgaXQgb24gb25seSBvbmUgb2YgdGhlIHR3byB3YXlzIGEgc3RhcnR1cCBjYW4gZmFpbC5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBmYWlsdXJlIG1lc3NhZ2UgdG8gZXh0ZW5kLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjYXB0dXJlZCB0YWlsIGFuZCBpdHMgbGFiZWwuXG4gKiBAcmV0dXJucyBUaGUgbWVzc2FnZSwgd2l0aCB0aGUgdGFpbCBhcHBlbmRlZCB3aGVuIG5vbi1lbXB0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZFByb2Nlc3NPdXRwdXRUYWlsKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zOiBBcHBlbmRQcm9jZXNzT3V0cHV0VGFpbE9wdGlvbnMpOiBzdHJpbmcge1xuICBjb25zdCB0cmltbWVkT3V0cHV0ID0gcGFyYW1zLm91dHB1dC50cmltKCk7XG4gIGlmICh0cmltbWVkT3V0cHV0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG5cbiAgcmV0dXJuIGAke21lc3NhZ2V9XFxuXFxuJHtwYXJhbXMub3V0cHV0TGFiZWx9ICh0YWlsKTpcXG4ke3RyaW1tZWRPdXRwdXR9YDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBkZXNjcmlwdGl2ZSBlcnJvciBtZXNzYWdlIGZvciBhbiBhdXRvLXN0YXJ0ZWQgY2hpbGQgcHJvY2VzcyB0aGF0XG4gKiBleGl0ZWQgKG9yIGZhaWxlZCB0byBzcGF3bikgZHVyaW5nIHN0YXJ0dXAsIGFwcGVuZGluZyB0aGUgY2FwdHVyZWQgb3V0cHV0XG4gKiB0YWlsIHdoZW4gYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgc3ViamVjdCwgZXhpdCBkZXRhaWxzLCBhbmQgY2FwdHVyZWQgb3V0cHV0LlxuICogQHJldHVybnMgQSBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQcm9jZXNzRXhpdE1lc3NhZ2UocGFyYW1zOiBCdWlsZFByb2Nlc3NFeGl0TWVzc2FnZVBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgZXhpdEluZm8sIG91dHB1dCwgb3V0cHV0TGFiZWwsIHN1YmplY3QgfSA9IHBhcmFtcztcblxuICByZXR1cm4gYXBwZW5kUHJvY2Vzc091dHB1dFRhaWwoYCR7c3ViamVjdH0gJHtyZXNvbHZlUmVhc29uKGV4aXRJbmZvKX0gZHVyaW5nIHN0YXJ0dXAuYCwgeyBvdXRwdXQsIG91dHB1dExhYmVsIH0pO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB3aHkgdGhlIHByb2Nlc3MgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcuXG4gKlxuICogQHBhcmFtIGV4aXRJbmZvIC0gVGhlIGV4aXQgLyBzcGF3bi1mYWlsdXJlIGRldGFpbHMuXG4gKiBAcmV0dXJucyBUaGUgcmVhc29uIGNsYXVzZS5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVJlYXNvbihleGl0SW5mbzogUHJvY2Vzc0V4aXRJbmZvKTogc3RyaW5nIHtcbiAgaWYgKGV4aXRJbmZvLnNwYXduRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBgZmFpbGVkIHRvIHN0YXJ0ICgke2V4aXRJbmZvLnNwYXduRXJyb3J9KWA7XG4gIH1cbiAgaWYgKGV4aXRJbmZvLnNpZ25hbCAhPT0gbnVsbCkge1xuICAgIHJldHVybiBgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsICR7ZXhpdEluZm8uc2lnbmFsfWA7XG4gIH1cbiAgcmV0dXJuIGBleGl0ZWQgcHJlbWF0dXJlbHkgd2l0aCBjb2RlICR7ZXhpdEluZm8uY29kZSA9PT0gbnVsbCA/ICcobnVsbCknIDogU3RyaW5nKGV4aXRJbmZvLmNvZGUpfWA7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnR08sU0FBUyx3QkFBd0IsU0FBaUIsUUFBZ0Q7QUFDdkcsUUFBTSxnQkFBZ0IsT0FBTyxPQUFPLEtBQUs7QUFDekMsTUFBSSxjQUFjLFdBQVcsR0FBRztBQUM5QixXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sR0FBRyxPQUFPO0FBQUE7QUFBQSxFQUFPLE9BQU8sV0FBVztBQUFBLEVBQWEsYUFBYTtBQUN0RTtBQVVPLFNBQVMsd0JBQXdCLFFBQStDO0FBQ3JGLFFBQU0sRUFBRSxVQUFVLFFBQVEsYUFBYSxRQUFRLElBQUk7QUFFbkQsU0FBTyx3QkFBd0IsR0FBRyxPQUFPLElBQUksY0FBYyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxZQUFZLENBQUM7QUFDakg7QUFRQSxTQUFTLGNBQWMsVUFBbUM7QUFDeEQsTUFBSSxTQUFTLGVBQWUsUUFBVztBQUNyQyxXQUFPLG9CQUFvQixTQUFTLFVBQVU7QUFBQSxFQUNoRDtBQUNBLE1BQUksU0FBUyxXQUFXLE1BQU07QUFDNUIsV0FBTyw0QkFBNEIsU0FBUyxNQUFNO0FBQUEsRUFDcEQ7QUFDQSxTQUFPLGdDQUFnQyxTQUFTLFNBQVMsT0FBTyxXQUFXLE9BQU8sU0FBUyxJQUFJLENBQUM7QUFDbEc7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -17,7 +17,7 @@
17
17
  /**
18
18
  * Parameters for {@link appendProcessOutputTail}.
19
19
  */
20
- export interface AppendProcessOutputTailParams {
20
+ export interface AppendProcessOutputTailOptions {
21
21
  /**
22
22
  The captured stdout+stderr tail (empty when none was captured).
23
23
  */
@@ -84,7 +84,7 @@ export interface ProcessExitInfo {
84
84
  * @param params - The captured tail and its label.
85
85
  * @returns The message, with the tail appended when non-empty.
86
86
  */
87
- export declare function appendProcessOutputTail(message: string, params: AppendProcessOutputTailParams): string;
87
+ export declare function appendProcessOutputTail(message: string, params: AppendProcessOutputTailOptions): string;
88
88
  /**
89
89
  * Builds a descriptive error message for an auto-started child process that
90
90
  * exited (or failed to spawn) during startup, appending the captured output
@@ -31,8 +31,8 @@ async function runObsidianVersionMatrix(params) {
31
31
  const { droppedSpecs, resolvedSpecs } = (0, import_version_matrix.resolveVersionSpecs)({
32
32
  manifest,
33
33
  // The default list must not break every consumer's gate when a channel is
34
- // Momentarily absent from the manifest; an explicitly requested specifier
35
- // That cannot resolve is a real error.
34
+ // momentarily absent from the manifest; an explicitly requested specifier
35
+ // that cannot resolve is a real error.
36
36
  shouldTolerateUnresolvableSpecs: isDefault,
37
37
  specs
38
38
  });
@@ -61,4 +61,4 @@ function logPlan(resolvedSpecs, entries) {
61
61
  0 && (module.exports = {
62
62
  runObsidianVersionMatrix
63
63
  });
64
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3J1bi12ZXJzaW9uLW1hdHJpeC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEludGVncmF0aW9uLXRpbWUgcnVubmVyIHRoYXQgZXhlY3V0ZXMgYSBzdWl0ZSBvbmNlIHBlciAqKmRpc3RpbmN0Kiogc3VwcG9ydGVkXG4gKiBPYnNpZGlhbiB2ZXJzaW9uLlxuICpcbiAqIFRoaW4gZ2x1ZSBvdmVyIHRoZSBwdXJlIGB2ZXJzaW9uLW1hdHJpeC50c2AgZGVjaXNpb24gbGF5ZXI6IHRoZSBvbmx5IHRoaW5nc1xuICogdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIHNpbmdsZSBtYW5pZmVzdCBmZXRjaCBhbmQgdGhlIGxvZ2dpbmcuIEV2ZXJ5dGhpbmdcbiAqIHRoYXQgZGVjaWRlcyBcdTIwMTQgbm9ybWFsaXppbmcgdGhlIHJlcXVlc3RlZCBzcGVjaWZpZXJzLCByZXNvbHZpbmcgdGhlbSxcbiAqIGRlLWR1cGxpY2F0aW5nIG9uIHRoZSByZXNvbHZlZCB2ZXJzaW9uLCBzZXF1ZW5jaW5nIHRoZSBydW5zLCBhbmQgYnVpbGRpbmcgdGhlXG4gKiBmYWlsdXJlIHN1bW1hcnkgXHUyMDE0IGlzIHB1cmUgYW5kIHVuaXQtdGVzdGVkIG5leHQgZG9vci5cbiAqXG4gKiBUaGUgbG9vcCBsaXZlcyBhYm92ZSB0aGUgdHJhbnNwb3J0IHJhdGhlciB0aGFuIGluc2lkZSBpdCBiZWNhdXNlIGEgdGVzdFxuICogZnJhbWV3b3JrJ3MgZ2xvYmFsIHNldHVwIGNhbm5vdCByZS1ydW4gaXRzIG93biB0ZXN0IGZpbGVzOiBpdCBsYXVuY2hlcyBvbmVcbiAqIGluc3RhbmNlIGZvciBvbmUgcnVuLiBLZWVwaW5nIHRoZSBsb29wIGZyYW1ld29yay1hZ25vc3RpYyAodGhlIGNhbGxlciBzdXBwbGllc1xuICogYHJ1bmApIGlzIHdoYXQgbGV0cyBWaXRlc3QsIEplc3QsIGFuZCBtYW51YWwgY29uc3VtZXJzIGFsbCBpbmhlcml0IGl0IChMNikuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgZ2x1ZSAobmV0d29yayBmZXRjaCArIGxvZ2dpbmcpIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5LFxuICBSZXNvbHZlZFZlcnNpb25TcGVjXG59IGZyb20gJy4vdmVyc2lvbi1tYXRyaXguY2pzJztcblxuaW1wb3J0IHsgbG9nIH0gZnJvbSAnLi9sb2cuY2pzJztcbmltcG9ydCB7IGZldGNoRGVza3RvcFJlbGVhc2VzTWFuaWZlc3QgfSBmcm9tICcuL29ic2lkaWFuLXZlcnNpb24tc3dpdGNoLmNqcyc7XG5pbXBvcnQge1xuICBidWlsZFZlcnNpb25NYXRyaXgsXG4gIGZvcm1hdFZlcnNpb25NYXRyaXhQbGFuLFxuICBmb3JtYXRWZXJzaW9uTWF0cml4UnVuSGVhZGVyLFxuICBoYXNDaGFubmVsU3BlYyxcbiAgcmVzb2x2ZVJlcXVlc3RlZFNwZWNzLFxuICByZXNvbHZlVmVyc2lvblNwZWNzLFxuICBydW5WZXJzaW9uTWF0cml4RW50cmllc1xufSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJ1bk9ic2lkaWFuVmVyc2lvbk1hdHJpeH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4UGFyYW1zIHtcbiAgLyoqXG4gICAqIFJ1bnMgdGhlIHN1aXRlcyBhZ2FpbnN0IG9uZSBjb25jcmV0ZSBPYnNpZGlhbiB2ZXJzaW9uLCB0aHJvd2luZyBvbiBmYWlsdXJlLlxuICAgKlxuICAgKiBUaGUgZW50cnkncyBgdmVyc2lvbmAgaXMgdGhlIGNvbmNyZXRlIGB4LnkuemAgdG8gcGluIFx1MjAxNCB0eXBpY2FsbHkgZm9yd2FyZGVkIHRvXG4gICAqIHRoZSB0ZXN0LXJ1bm5lciBjaGlsZCBhcyBgT0JTSURJQU5fVkVSU0lPTmAuXG4gICAqL1xuICByZWFkb25seSBydW46IChlbnRyeTogT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnkpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBzcGVjaWZpZXJzIHRvIHJ1biBhZ2FpbnN0OiBhbiBhcnJheSwgb3IgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nXG4gICAqIHNvIGFuIGVudiB2YXIgY2FuIGJlIHBhc3NlZCBzdHJhaWdodCB0aHJvdWdoLlxuICAgKlxuICAgKiBFYWNoIGFjY2VwdHMgYW4gZXhwbGljaXQgYCd4LnkueidgLCBgJ3B1YmxpYy1sYXRlc3QnYCwgb3IgYCdjYXRhbHlzdC1sYXRlc3QnYC5cbiAgICogRGVmYXVsdHMgdG8gYm90aCBlbmRzIG9mIHRoZSBzdXBwb3J0ZWQgcmFuZ2Ugd2hlbiBvbWl0dGVkIG9yIGVtcHR5LCBhbmRcbiAgICogdGhlIGxpc3QgaXMgYWx3YXlzIGRlLWR1cGxpY2F0ZWQgb24gdGhlICoqcmVzb2x2ZWQqKiB2ZXJzaW9uIFx1MjAxNCBzbyB3aGVuIHB1YmxpY1xuICAgKiBoYXMgY2F1Z2h0IHVwIHRvIGNhdGFseXN0LCB0aGUgc3VpdGVzIHJ1biBvbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbnM/OiByZWFkb25seSBzdHJpbmdbXSB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSdW5zIGEgc3VpdGUgb25jZSBwZXIgZGlzdGluY3Qgc3VwcG9ydGVkIE9ic2lkaWFuIHZlcnNpb24uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwZXItdmVyc2lvbiBydW5uZXIgYW5kIHRoZSByZXF1ZXN0ZWQgdmVyc2lvbnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgZXZlcnkgdmVyc2lvbiBoYXMgcnVuIHN1Y2Nlc3NmdWxseS5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgbm8gdmVyc2lvbiBjb3VsZCBiZSByZXNvbHZlZCwgb3IgYW4ge0BsaW5rIEFnZ3JlZ2F0ZUVycm9yfVxuICogICBuYW1pbmcgZXZlcnkgdmVyc2lvbiB3aG9zZSBydW4gZmFpbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4KHBhcmFtczogUnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcnVuLCB2ZXJzaW9ucyB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHsgaXNEZWZhdWx0LCBzcGVjcyB9ID0gcmVzb2x2ZVJlcXVlc3RlZFNwZWNzKHZlcnNpb25zKTtcbiAgY29uc3QgbWFuaWZlc3QgPSBoYXNDaGFubmVsU3BlYyhzcGVjcykgPyBhd2FpdCBmZXRjaERlc2t0b3BSZWxlYXNlc01hbmlmZXN0KCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHsgZHJvcHBlZFNwZWNzLCByZXNvbHZlZFNwZWNzIH0gPSByZXNvbHZlVmVyc2lvblNwZWNzKHtcbiAgICBtYW5pZmVzdCxcbiAgICAvLyBUaGUgZGVmYXVsdCBsaXN0IG11c3Qgbm90IGJyZWFrIGV2ZXJ5IGNvbnN1bWVyJ3MgZ2F0ZSB3aGVuIGEgY2hhbm5lbCBpc1xuICAgIC8vIE1vbWVudGFyaWx5IGFic2VudCBmcm9tIHRoZSBtYW5pZmVzdDsgYW4gZXhwbGljaXRseSByZXF1ZXN0ZWQgc3BlY2lmaWVyXG4gICAgLy8gVGhhdCBjYW5ub3QgcmVzb2x2ZSBpcyBhIHJlYWwgZXJyb3IuXG4gICAgc2hvdWxkVG9sZXJhdGVVbnJlc29sdmFibGVTcGVjczogaXNEZWZhdWx0LFxuICAgIHNwZWNzXG4gIH0pO1xuXG4gIGZvciAoY29uc3QgeyByZWFzb24sIHNwZWMgfSBvZiBkcm9wcGVkU3BlY3MpIHtcbiAgICBsb2dNYXRyaXgoYFNraXBwaW5nIFwiJHtzcGVjfVwiOiAke3JlYXNvbn1gKTtcbiAgfVxuXG4gIGNvbnN0IGVudHJpZXMgPSBidWlsZFZlcnNpb25NYXRyaXgocmVzb2x2ZWRTcGVjcyk7XG4gIGxvZ1BsYW4ocmVzb2x2ZWRTcGVjcywgZW50cmllcyk7XG5cbiAgYXdhaXQgcnVuVmVyc2lvbk1hdHJpeEVudHJpZXMoe1xuICAgIGVudHJpZXMsXG4gICAgb25FbnRyeVN0YXJ0OiAoaGVhZGVyUGFyYW1zKSA9PiB7XG4gICAgICBsb2dNYXRyaXgoZm9ybWF0VmVyc2lvbk1hdHJpeFJ1bkhlYWRlcihoZWFkZXJQYXJhbXMpKTtcbiAgICB9LFxuICAgIHJ1blxuICB9KTtcbn1cblxuLyoqXG4gKiBMb2dzIGEgbWF0cml4IG1lc3NhZ2UgdW5kZXIgYSBjb25zaXN0ZW50IHByZWZpeC5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAqL1xuZnVuY3Rpb24gbG9nTWF0cml4KG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBsb2coYFt2ZXJzaW9uLW1hdHJpeF0gJHttZXNzYWdlfWApO1xufVxuXG4vKipcbiAqIExvZ3Mgd2hhdCB0aGUgc3BlY2lmaWVycyByZXNvbHZlZCB0byBhbmQgaG93IG1hbnkgcnVucyB0aGF0IGltcGxpZXMuXG4gKlxuICogQHBhcmFtIHJlc29sdmVkU3BlY3MgLSBUaGUgcmVzb2x2ZWQgc3BlY2lmaWVycywgaW4gcmVxdWVzdGVkIG9yZGVyLlxuICogQHBhcmFtIGVudHJpZXMgLSBUaGUgZGUtZHVwbGljYXRlZCBtYXRyaXguXG4gKi9cbmZ1bmN0aW9uIGxvZ1BsYW4ocmVzb2x2ZWRTcGVjczogcmVhZG9ubHkgUmVzb2x2ZWRWZXJzaW9uU3BlY1tdLCBlbnRyaWVzOiByZWFkb25seSBPYnNpZGlhblZlcnNpb25NYXRyaXhFbnRyeVtdKTogdm9pZCB7XG4gIGZvciAoY29uc3QgbGluZSBvZiBmb3JtYXRWZXJzaW9uTWF0cml4UGxhbih7IGVudHJpZXMsIHJlc29sdmVkU3BlY3MgfSkpIHtcbiAgICBsb2dNYXRyaXgobGluZSk7XG4gIH1cbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkEsaUJBQW9CO0FBQ3BCLHFDQUE2QztBQUM3Qyw0QkFRTztBQWtDUCxlQUFzQix5QkFBeUIsUUFBdUQ7QUFDcEcsUUFBTSxFQUFFLEtBQUssU0FBUyxJQUFJO0FBRTFCLFFBQU0sRUFBRSxXQUFXLE1BQU0sUUFBSSw2Q0FBc0IsUUFBUTtBQUMzRCxRQUFNLGVBQVcsc0NBQWUsS0FBSyxJQUFJLFVBQU0sNkRBQTZCLElBQUk7QUFDaEYsUUFBTSxFQUFFLGNBQWMsY0FBYyxRQUFJLDJDQUFvQjtBQUFBLElBQzFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFJQSxpQ0FBaUM7QUFBQSxJQUNqQztBQUFBLEVBQ0YsQ0FBQztBQUVELGFBQVcsRUFBRSxRQUFRLEtBQUssS0FBSyxjQUFjO0FBQzNDLGNBQVUsYUFBYSxJQUFJLE1BQU0sTUFBTSxFQUFFO0FBQUEsRUFDM0M7QUFFQSxRQUFNLGNBQVUsMENBQW1CLGFBQWE7QUFDaEQsVUFBUSxlQUFlLE9BQU87QUFFOUIsWUFBTSwrQ0FBd0I7QUFBQSxJQUM1QjtBQUFBLElBQ0EsY0FBYyxDQUFDLGlCQUFpQjtBQUM5QixvQkFBVSxvREFBNkIsWUFBWSxDQUFDO0FBQUEsSUFDdEQ7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFPQSxTQUFTLFVBQVUsU0FBdUI7QUFDeEMsc0JBQUksb0JBQW9CLE9BQU8sRUFBRTtBQUNuQztBQVFBLFNBQVMsUUFBUSxlQUErQyxTQUFzRDtBQUNwSCxhQUFXLFlBQVEsK0NBQXdCLEVBQUUsU0FBUyxjQUFjLENBQUMsR0FBRztBQUN0RSxjQUFVLElBQUk7QUFBQSxFQUNoQjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
64
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3J1bi12ZXJzaW9uLW1hdHJpeC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEludGVncmF0aW9uLXRpbWUgcnVubmVyIHRoYXQgZXhlY3V0ZXMgYSBzdWl0ZSBvbmNlIHBlciAqKmRpc3RpbmN0Kiogc3VwcG9ydGVkXG4gKiBPYnNpZGlhbiB2ZXJzaW9uLlxuICpcbiAqIFRoaW4gZ2x1ZSBvdmVyIHRoZSBwdXJlIGB2ZXJzaW9uLW1hdHJpeC50c2AgZGVjaXNpb24gbGF5ZXI6IHRoZSBvbmx5IHRoaW5nc1xuICogdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIHNpbmdsZSBtYW5pZmVzdCBmZXRjaCBhbmQgdGhlIGxvZ2dpbmcuIEV2ZXJ5dGhpbmdcbiAqIHRoYXQgZGVjaWRlcyBcdTIwMTQgbm9ybWFsaXppbmcgdGhlIHJlcXVlc3RlZCBzcGVjaWZpZXJzLCByZXNvbHZpbmcgdGhlbSxcbiAqIGRlLWR1cGxpY2F0aW5nIG9uIHRoZSByZXNvbHZlZCB2ZXJzaW9uLCBzZXF1ZW5jaW5nIHRoZSBydW5zLCBhbmQgYnVpbGRpbmcgdGhlXG4gKiBmYWlsdXJlIHN1bW1hcnkgXHUyMDE0IGlzIHB1cmUgYW5kIHVuaXQtdGVzdGVkIG5leHQgZG9vci5cbiAqXG4gKiBUaGUgbG9vcCBsaXZlcyBhYm92ZSB0aGUgdHJhbnNwb3J0IHJhdGhlciB0aGFuIGluc2lkZSBpdCBiZWNhdXNlIGEgdGVzdFxuICogZnJhbWV3b3JrJ3MgZ2xvYmFsIHNldHVwIGNhbm5vdCByZS1ydW4gaXRzIG93biB0ZXN0IGZpbGVzOiBpdCBsYXVuY2hlcyBvbmVcbiAqIGluc3RhbmNlIGZvciBvbmUgcnVuLiBLZWVwaW5nIHRoZSBsb29wIGZyYW1ld29yay1hZ25vc3RpYyAodGhlIGNhbGxlciBzdXBwbGllc1xuICogYHJ1bmApIGlzIHdoYXQgbGV0cyBWaXRlc3QsIEplc3QsIGFuZCBtYW51YWwgY29uc3VtZXJzIGFsbCBpbmhlcml0IGl0IChMNikuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgZ2x1ZSAobmV0d29yayBmZXRjaCArIGxvZ2dpbmcpIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5LFxuICBSZXNvbHZlZFZlcnNpb25TcGVjXG59IGZyb20gJy4vdmVyc2lvbi1tYXRyaXguY2pzJztcblxuaW1wb3J0IHsgbG9nIH0gZnJvbSAnLi9sb2cuY2pzJztcbmltcG9ydCB7IGZldGNoRGVza3RvcFJlbGVhc2VzTWFuaWZlc3QgfSBmcm9tICcuL29ic2lkaWFuLXZlcnNpb24tc3dpdGNoLmNqcyc7XG5pbXBvcnQge1xuICBidWlsZFZlcnNpb25NYXRyaXgsXG4gIGZvcm1hdFZlcnNpb25NYXRyaXhQbGFuLFxuICBmb3JtYXRWZXJzaW9uTWF0cml4UnVuSGVhZGVyLFxuICBoYXNDaGFubmVsU3BlYyxcbiAgcmVzb2x2ZVJlcXVlc3RlZFNwZWNzLFxuICByZXNvbHZlVmVyc2lvblNwZWNzLFxuICBydW5WZXJzaW9uTWF0cml4RW50cmllc1xufSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJ1bk9ic2lkaWFuVmVyc2lvbk1hdHJpeH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4UGFyYW1zIHtcbiAgLyoqXG4gICAqIFJ1bnMgdGhlIHN1aXRlcyBhZ2FpbnN0IG9uZSBjb25jcmV0ZSBPYnNpZGlhbiB2ZXJzaW9uLCB0aHJvd2luZyBvbiBmYWlsdXJlLlxuICAgKlxuICAgKiBUaGUgZW50cnkncyBgdmVyc2lvbmAgaXMgdGhlIGNvbmNyZXRlIGB4LnkuemAgdG8gcGluIFx1MjAxNCB0eXBpY2FsbHkgZm9yd2FyZGVkIHRvXG4gICAqIHRoZSB0ZXN0LXJ1bm5lciBjaGlsZCBhcyBgT0JTSURJQU5fVkVSU0lPTmAuXG4gICAqL1xuICBydW4odGhpczogdm9pZCwgZW50cnk6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5KTogUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIHNwZWNpZmllcnMgdG8gcnVuIGFnYWluc3Q6IGFuIGFycmF5LCBvciBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmdcbiAgICogc28gYW4gZW52IHZhciBjYW4gYmUgcGFzc2VkIHN0cmFpZ2h0IHRocm91Z2guXG4gICAqXG4gICAqIEVhY2ggYWNjZXB0cyBhbiBleHBsaWNpdCBgJ3gueS56J2AsIGAncHVibGljLWxhdGVzdCdgLCBvciBgJ2NhdGFseXN0LWxhdGVzdCdgLlxuICAgKiBEZWZhdWx0cyB0byBib3RoIGVuZHMgb2YgdGhlIHN1cHBvcnRlZCByYW5nZSB3aGVuIG9taXR0ZWQgb3IgZW1wdHksIGFuZFxuICAgKiB0aGUgbGlzdCBpcyBhbHdheXMgZGUtZHVwbGljYXRlZCBvbiB0aGUgKipyZXNvbHZlZCoqIHZlcnNpb24gXHUyMDE0IHNvIHdoZW4gcHVibGljXG4gICAqIGhhcyBjYXVnaHQgdXAgdG8gY2F0YWx5c3QsIHRoZSBzdWl0ZXMgcnVuIG9uY2UuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9ucz86IHJlYWRvbmx5IHN0cmluZ1tdIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJ1bnMgYSBzdWl0ZSBvbmNlIHBlciBkaXN0aW5jdCBzdXBwb3J0ZWQgT2JzaWRpYW4gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBlci12ZXJzaW9uIHJ1bm5lciBhbmQgdGhlIHJlcXVlc3RlZCB2ZXJzaW9ucy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSBldmVyeSB2ZXJzaW9uIGhhcyBydW4gc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBFcnJvciBpZiBubyB2ZXJzaW9uIGNvdWxkIGJlIHJlc29sdmVkLCBvciBhbiB7QGxpbmsgQWdncmVnYXRlRXJyb3J9XG4gKiAgIG5hbWluZyBldmVyeSB2ZXJzaW9uIHdob3NlIHJ1biBmYWlsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5PYnNpZGlhblZlcnNpb25NYXRyaXgocGFyYW1zOiBSdW5PYnNpZGlhblZlcnNpb25NYXRyaXhQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBydW4sIHZlcnNpb25zIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgeyBpc0RlZmF1bHQsIHNwZWNzIH0gPSByZXNvbHZlUmVxdWVzdGVkU3BlY3ModmVyc2lvbnMpO1xuICBjb25zdCBtYW5pZmVzdCA9IGhhc0NoYW5uZWxTcGVjKHNwZWNzKSA/IGF3YWl0IGZldGNoRGVza3RvcFJlbGVhc2VzTWFuaWZlc3QoKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgeyBkcm9wcGVkU3BlY3MsIHJlc29sdmVkU3BlY3MgfSA9IHJlc29sdmVWZXJzaW9uU3BlY3Moe1xuICAgIG1hbmlmZXN0LFxuICAgIC8vIFRoZSBkZWZhdWx0IGxpc3QgbXVzdCBub3QgYnJlYWsgZXZlcnkgY29uc3VtZXIncyBnYXRlIHdoZW4gYSBjaGFubmVsIGlzXG4gICAgLy8gbW9tZW50YXJpbHkgYWJzZW50IGZyb20gdGhlIG1hbmlmZXN0OyBhbiBleHBsaWNpdGx5IHJlcXVlc3RlZCBzcGVjaWZpZXJcbiAgICAvLyB0aGF0IGNhbm5vdCByZXNvbHZlIGlzIGEgcmVhbCBlcnJvci5cbiAgICBzaG91bGRUb2xlcmF0ZVVucmVzb2x2YWJsZVNwZWNzOiBpc0RlZmF1bHQsXG4gICAgc3BlY3NcbiAgfSk7XG5cbiAgZm9yIChjb25zdCB7IHJlYXNvbiwgc3BlYyB9IG9mIGRyb3BwZWRTcGVjcykge1xuICAgIGxvZ01hdHJpeChgU2tpcHBpbmcgXCIke3NwZWN9XCI6ICR7cmVhc29ufWApO1xuICB9XG5cbiAgY29uc3QgZW50cmllcyA9IGJ1aWxkVmVyc2lvbk1hdHJpeChyZXNvbHZlZFNwZWNzKTtcbiAgbG9nUGxhbihyZXNvbHZlZFNwZWNzLCBlbnRyaWVzKTtcblxuICBhd2FpdCBydW5WZXJzaW9uTWF0cml4RW50cmllcyh7XG4gICAgZW50cmllcyxcbiAgICBvbkVudHJ5U3RhcnQ6IChoZWFkZXJQYXJhbXMpID0+IHtcbiAgICAgIGxvZ01hdHJpeChmb3JtYXRWZXJzaW9uTWF0cml4UnVuSGVhZGVyKGhlYWRlclBhcmFtcykpO1xuICAgIH0sXG4gICAgcnVuXG4gIH0pO1xufVxuXG4vKipcbiAqIExvZ3MgYSBtYXRyaXggbWVzc2FnZSB1bmRlciBhIGNvbnNpc3RlbnQgcHJlZml4LlxuICpcbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gbG9nLlxuICovXG5mdW5jdGlvbiBsb2dNYXRyaXgobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gIGxvZyhgW3ZlcnNpb24tbWF0cml4XSAke21lc3NhZ2V9YCk7XG59XG5cbi8qKlxuICogTG9ncyB3aGF0IHRoZSBzcGVjaWZpZXJzIHJlc29sdmVkIHRvIGFuZCBob3cgbWFueSBydW5zIHRoYXQgaW1wbGllcy5cbiAqXG4gKiBAcGFyYW0gcmVzb2x2ZWRTcGVjcyAtIFRoZSByZXNvbHZlZCBzcGVjaWZpZXJzLCBpbiByZXF1ZXN0ZWQgb3JkZXIuXG4gKiBAcGFyYW0gZW50cmllcyAtIFRoZSBkZS1kdXBsaWNhdGVkIG1hdHJpeC5cbiAqL1xuZnVuY3Rpb24gbG9nUGxhbihyZXNvbHZlZFNwZWNzOiByZWFkb25seSBSZXNvbHZlZFZlcnNpb25TcGVjW10sIGVudHJpZXM6IHJlYWRvbmx5IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5W10pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGZvcm1hdFZlcnNpb25NYXRyaXhQbGFuKHsgZW50cmllcywgcmVzb2x2ZWRTcGVjcyB9KSkge1xuICAgIGxvZ01hdHJpeChsaW5lKTtcbiAgfVxufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXlCQSxpQkFBb0I7QUFDcEIscUNBQTZDO0FBQzdDLDRCQVFPO0FBa0NQLGVBQXNCLHlCQUF5QixRQUF1RDtBQUNwRyxRQUFNLEVBQUUsS0FBSyxTQUFTLElBQUk7QUFFMUIsUUFBTSxFQUFFLFdBQVcsTUFBTSxRQUFJLDZDQUFzQixRQUFRO0FBQzNELFFBQU0sZUFBVyxzQ0FBZSxLQUFLLElBQUksVUFBTSw2REFBNkIsSUFBSTtBQUNoRixRQUFNLEVBQUUsY0FBYyxjQUFjLFFBQUksMkNBQW9CO0FBQUEsSUFDMUQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUlBLGlDQUFpQztBQUFBLElBQ2pDO0FBQUEsRUFDRixDQUFDO0FBRUQsYUFBVyxFQUFFLFFBQVEsS0FBSyxLQUFLLGNBQWM7QUFDM0MsY0FBVSxhQUFhLElBQUksTUFBTSxNQUFNLEVBQUU7QUFBQSxFQUMzQztBQUVBLFFBQU0sY0FBVSwwQ0FBbUIsYUFBYTtBQUNoRCxVQUFRLGVBQWUsT0FBTztBQUU5QixZQUFNLCtDQUF3QjtBQUFBLElBQzVCO0FBQUEsSUFDQSxjQUFjLENBQUMsaUJBQWlCO0FBQzlCLG9CQUFVLG9EQUE2QixZQUFZLENBQUM7QUFBQSxJQUN0RDtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUM7QUFDSDtBQU9BLFNBQVMsVUFBVSxTQUF1QjtBQUN4QyxzQkFBSSxvQkFBb0IsT0FBTyxFQUFFO0FBQ25DO0FBUUEsU0FBUyxRQUFRLGVBQStDLFNBQXNEO0FBQ3BILGFBQVcsWUFBUSwrQ0FBd0IsRUFBRSxTQUFTLGNBQWMsQ0FBQyxHQUFHO0FBQ3RFLGNBQVUsSUFBSTtBQUFBLEVBQ2hCO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -26,7 +26,7 @@ export interface RunObsidianVersionMatrixParams {
26
26
  * The entry's `version` is the concrete `x.y.z` to pin — typically forwarded to
27
27
  * the test-runner child as `OBSIDIAN_VERSION`.
28
28
  */
29
- readonly run: (entry: ObsidianVersionMatrixEntry) => Promise<void> | void;
29
+ run(this: void, entry: ObsidianVersionMatrixEntry): Promise<void> | void;
30
30
  /**
31
31
  * The version specifiers to run against: an array, or a comma-separated string
32
32
  * so an env var can be passed straight through.
@@ -316,4 +316,4 @@ function tryCreateLockFile(lockFilePath, label) {
316
316
  checkIsSetupLockHeld,
317
317
  tryAcquireSetupLock
318
318
  });
319
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NldHVwLWxvY2sudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDcm9zcy1wcm9jZXNzIGFkdmlzb3J5IGxvY2sgdGhhdCBzZXJpYWxpemVzIHdob2xlIGludGVncmF0aW9uLXRlc3QgcnVucy5cbiAqXG4gKiBUd28gdGVzdCBydW5zIHRoYXQgZHJpdmUgdGhlIHNhbWUgc2hhcmVkIHJlc291cmNlcyBjb3JydXB0IGVhY2ggb3RoZXI6IG9uXG4gKiBkZXNrdG9wIHRoZXkgc2hhcmUgdGhlIHNpbmdsZSBsb2NhbCBPYnNpZGlhbiBpbnN0YW5jZSwgaXRzIGBvYnNpZGlhbi5qc29uYFxuICogcmVnaXN0cnksIGFuZCB0aGUgQ0RQIHBvcnQ7IG9uIEFuZHJvaWQgdGhleSBzaGFyZSB0aGUgZW11bGF0b3IgYW5kIHRoZSBBcHBpdW1cbiAqIHNlcnZlci4gT25lIHJ1bidzIHNldHVwL3RlYXJkb3duIGtpbGxzIG9yIHJlY29uZmlndXJlcyB0aGUgaW5zdGFuY2UgdGhlIG90aGVyXG4gKiBydW4gaXMgbWlkLWV2YWwgb24gKG9ic2VydmVkIGFzIGBFQ09OTlJFRlVTRURgIG9yIFwidmF1bHQgbm90IG9wZW5cIiksIHNvIGJvdGhcbiAqIHJ1bnMgZmFpbC5cbiAqXG4gKiBUaGlzIGxvY2sgbWFrZXMgdGhlIHNlY29uZCBydW4gKip3YWl0KiogZm9yIHRoZSBmaXJzdCB0byBmaW5pc2ggaW5zdGVhZCBvZlxuICogcnVubmluZyBjb25jdXJyZW50bHkuIEl0IGlzIGhlbGQgZm9yIHRoZSBlbnRpcmUgcnVuOiBhY3F1aXJlZCBhdCB0aGUgc3RhcnQgb2ZcbiAqIHRoZSBjb3JlIHNldHVwIGFuZCByZWxlYXNlZCBieSB0aGUgY29yZSB0ZWFyZG93biAoYW5kIGJ5IHRoZSBwcm9jZXNzIGNsZWFudXBcbiAqIGhhbmRsZXJzKS4gVGhlIGxvY2sgaXMgYSBzZW50aW5lbCBmaWxlIGluIGEgc2hhcmVkIHRlbXAgZGlyZWN0b3J5LCBhbmQgaXRzXG4gKiBob2xkZXIga2VlcHMgYSAqKmhlYXJ0YmVhdCoqIHRpbWVzdGFtcCBpbnNpZGUgaXQgZnJlc2ggZm9yIGFzIGxvbmcgYXMgaXQgaG9sZHNcbiAqIHRoZSBsb2NrIFx1MjAxNCBzbyBhIHJ1biB0aGF0IGNyYXNoZWQgd2l0aG91dCByZWxlYXNpbmcgc3RvcHMgYmVhdGluZyBhbmQgdGhlIG5leHRcbiAqIHJ1biBkZXRlY3RzIHRoZSBsb2NrIGFzIHN0YWxlIGFuZCBzdGVhbHMgaXQuXG4gKlxuICogVGhlIGhlYXJ0YmVhdCwgbm90IHRoZSBob2xkZXIncyBQSUQsIGlzIHdoYXQgcHJvdmVzIGEgaG9sZGVyIGlzIHN0aWxsIHRoZXJlOiBhXG4gKiBQSUQgcHJvYmUgb25seSBhbnN3ZXJzIFwiZG9lcyAqYSogcHJvY2VzcyB3aXRoIHRoaXMgUElEIGV4aXN0XCIsIHdoaWNoIGFcbiAqIHJlY3ljbGVkIFBJRCBzYXRpc2ZpZXMgbG9uZyBhZnRlciB0aGUgcmVhbCBob2xkZXIgZGllZCBcdTIwMTQgbGVhdmluZyBldmVyeSBsYXRlclxuICogcnVuIHRvIGJsb2NrIGZvciB0aGUgZnVsbCBhY3F1aXNpdGlvbiB0aW1lb3V0LlxuICovXG5cbmltcG9ydCB7XG4gIG1rZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHdyaXRlRmlsZVN5bmNcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBob3N0bmFtZSxcbiAgdG1wZGlyXG59IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBlcnJvclRvU3RyaW5nIH0gZnJvbSAnLi9lcnJvci10by1zdHJpbmcuY2pzJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vbG9nLmNqcyc7XG5cbi8qKlxuICogVGhlIHNjb3BlIGV2ZXJ5IEFuZHJvaWQgcnVuIHNlcmlhbGl6ZXMgb246IHRoZSBBcHBpdW0gdHJhbnNwb3J0J3MgZ2xvYmFsXG4gKiBzZXR1cCwgYSBwcm9qZWN0IHRoYXQgdGFrZXMgdGhlIGxvY2sgaXRzZWxmLCBhbmQgdGhlIGVtdWxhdG9yIHJlYXBlciBhbGxcbiAqIGhhdmUgdG8gbmFtZSB0aGUgc2FtZSBvbmUsIG9yIHRoZXkgc2VyaWFsaXplIGFnYWluc3Qgbm90aGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFORFJPSURfU0VUVVBfTE9DS19TQ09QRSA9ICdhbmRyb2lkJztcblxuY29uc3QgTE9DS19ESVJfTkFNRSA9ICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcbmNvbnN0IExPQ0tfRklMRV9TVUZGSVggPSAnLnNldHVwLmxvY2snO1xuY29uc3QgUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSA1MDA7XG5jb25zdCBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORCA9IDEwMDA7XG5jb25zdCBTRUNPTkRTX1BFUl9NSU5VVEUgPSA2MDtcbmNvbnN0IEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9TRUNPTkRTID0gNTtcbmNvbnN0IEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSBIRUFSVEJFQVRfSU5URVJWQUxfSU5fU0VDT05EUyAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuLy8gR2VuZXJvdXMgb24gcHVycG9zZTogYSBkZWFkIGhvbGRlciBpcyBub3JtYWxseSBjYXVnaHQgaW5zdGFudGx5IGJ5IHRoZSBQSURcbi8vIFByb2JlLCBzbyB0aGlzIHRocmVzaG9sZCBvbmx5IGhhcyB0byBjb3ZlciB0aGUgcmVjeWNsZWQtUElEIGNhc2UuIFR3byBtaW51dGVzXG4vLyBLZWVwcyBhIGhvbGRlciB0aGF0IGJsb2NrcyBpdHMgZXZlbnQgbG9vcCBkdXJpbmcgaGVhdnkgc3luY2hyb25vdXMgd29yayAoYVxuLy8gTGFyZ2UgdmF1bHQgc3luYywgYW4gaW5zdGFsbGVyIHVucGFjaykgZnJvbSBiZWluZyByb2JiZWQgd2hpbGUgaXQgaXMgYWxpdmUuXG5jb25zdCBNSVNTRURfSEVBUlRCRUFUU19CRUZPUkVfU1RBTEUgPSAyNDtcbmNvbnN0IEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMgPSBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTICogTUlTU0VEX0hFQVJUQkVBVFNfQkVGT1JFX1NUQUxFO1xuY29uc3QgV0FJVF9MT0dfSU5URVJWQUxfSU5fU0VDT05EUyA9IDMwO1xuY29uc3QgV0FJVF9MT0dfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTID0gV0FJVF9MT0dfSU5URVJWQUxfSU5fU0VDT05EUyAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuY29uc3QgU1RBTEVfTE9DS19BR0VfSU5fTUlOVVRFUyA9IDMwO1xuY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTlVURVMgPSA2MDtcbmNvbnN0IFNUQUxFX0xPQ0tfQUdFX0lOX01JTExJU0VDT05EUyA9IFNUQUxFX0xPQ0tfQUdFX0lOX01JTlVURVMgKiBTRUNPTkRTX1BFUl9NSU5VVEUgKiBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSBERUZBVUxUX1RJTUVPVVRfSU5fTUlOVVRFUyAqIFNFQ09ORFNfUEVSX01JTlVURSAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuY29uc3QgUFJPQ0VTU19FWElTVEVOQ0VfUFJPQkVfU0lHTkFMID0gMDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYWNxdWlyZVNldHVwTG9ja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNxdWlyZVNldHVwTG9ja1BhcmFtcyB7XG4gIC8qKlxuICBTaG9ydCB0cmFuc3BvcnQgbGFiZWwgZm9yIGxvZyBtZXNzYWdlcyAoZS5nLiBgXCJvYnNpZGlhbi1jbGlcImApLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogTG9naWNhbCBzY29wZSB0aGUgbG9jayBzZXJpYWxpemVzIHdpdGhpbi4gUnVucyB0aGF0IHNoYXJlIHJlc291cmNlcyBtdXN0XG4gICAqIHVzZSB0aGUgc2FtZSBzY29wZSAoZS5nLiBgXCJkZXNrdG9wXCJgIGZvciB0aGUgQ0xJL0NEUCB0cmFuc3BvcnRzLCBgXCJhbmRyb2lkXCJgXG4gICAqIGZvciB0aGUgQXBwaXVtIHRyYW5zcG9ydCkuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHRpbWUgdG8gd2FpdCBmb3IgYSBjb21wZXRpbmcgcnVuIHRvIHJlbGVhc2UgdGhlIGxvY2sgYmVmb3JlIGdpdmluZ1xuICAgKiB1cCBhbmQgdGhyb3dpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEgaG91clxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgaGVsZCBzZXR1cCBsb2NrLiBSZWxlYXNlIGl0IG9uY2UgdGhlIHJ1bidzIHRlYXJkb3duIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHVwTG9jayB7XG4gIC8qKlxuICBSZWxlYXNlcyB0aGUgbG9jay4gU2FmZSB0byBjYWxsIG1vcmUgdGhhbiBvbmNlLlxuICAgKi9cbiAgcmVsZWFzZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayB0cnlBY3F1aXJlU2V0dXBMb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcnlBY3F1aXJlU2V0dXBMb2NrUGFyYW1zIHtcbiAgLyoqXG4gIFNob3J0IHRyYW5zcG9ydCBsYWJlbCBmb3IgbG9nIG1lc3NhZ2VzLCByZWNvcmRlZCBpbiB0aGUgbG9jayBmaWxlIGFzIHRoZSBob2xkZXIncy5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIExvZ2ljYWwgc2NvcGUgdGhlIGxvY2sgc2VyaWFsaXplcyB3aXRoaW4gXHUyMDE0IHNlZSB7QGxpbmsgQWNxdWlyZVNldHVwTG9ja1BhcmFtcy5zY29wZX0uXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhIHNhbWUtaG9zdCBob2xkZXIgd2hvc2UgUElEIGlzIHN0aWxsIGFsaXZlIG1heSBnbyB3aXRob3V0IGFcbiAgICogaGVhcnRiZWF0IGJlZm9yZSBpdHMgbG9jayBjb3VudHMgYXMgYWJhbmRvbmVkLlxuICAgKlxuICAgKiBBIGRlYWQgaG9sZGVyIFBJRCBpcyBhYmFuZG9uZWQgYXQgb25jZSB3aGF0ZXZlciB0aGlzIHNheXMuIFRoZSBkZWZhdWx0IGlzXG4gICAqIHRoZSB0aHJlc2hvbGQgZXZlcnkgd2FpdGluZyBydW4gc3RlYWxzIG9uOyBhIGNhbGxlciB0aGF0IGlzICphbHdheXMqIHdhaXRpbmdcbiAgICogXHUyMDE0IHRoZSBlbXVsYXRvciByZWFwZXIgXHUyMDE0IHBhc3NlcyBhIGZhciB3aWRlciBvbmUsIHNvIGEgbGl2ZSBydW4gdGhhdCBibG9ja3NcbiAgICogaXRzIGV2ZW50IGxvb3AgZm9yIGEgY291cGxlIG9mIG1pbnV0ZXMgaXMgbm90IHJvYmJlZCBvZiBpdHMgbG9jay5cbiAgICpcbiAgICogQGRlZmF1bHQgMiBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSBzdGFsZUFmdGVyU2lsZW5jZUluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVMb2NrSGFuZGxlfS5cbiAqL1xuaW50ZXJmYWNlIENyZWF0ZUxvY2tIYW5kbGVQYXJhbXMge1xuICAvKipcbiAgVGhlIHRyYW5zcG9ydCBsYWJlbCBvZiB0aGlzIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUgdGhpcyBydW4ganVzdCBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIGluZm8gdGhpcyBydW4gd3JvdGUgd2hlbiBpdCBhY3F1aXJlZCB0aGUgbG9jay5cbiAgICovXG4gIHJlYWRvbmx5IG93bkluZm86IExvY2tGaWxlSW5mbztcblxuICAvKipcbiAgVGhlIGxvY2sgc2NvcGUsIGZvciBsb2cgbWVzc2FnZXMuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVUaW1lb3V0RXJyb3J9LlxuICovXG5pbnRlcmZhY2UgQ3JlYXRlVGltZW91dEVycm9yUGFyYW1zIHtcbiAgLyoqXG4gIFRoZSBjdXJyZW50IGhvbGRlcidzIGxvY2sgaW5mbywgb3IgYG51bGxgIGlmIGl0IGNvdWxkIG5vdCBiZSByZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5mbzogTG9ja0ZpbGVJbmZvIHwgbnVsbDtcblxuICAvKipcbiAgVGhlIGxvY2sgc2NvcGUuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgdGltZW91dCB0aGF0IGVsYXBzZWQuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZm9ybWF0V2FpdE1lc3NhZ2V9LlxuICovXG5pbnRlcmZhY2UgRm9ybWF0V2FpdE1lc3NhZ2VQYXJhbXMge1xuICAvKipcbiAgVGhlIGN1cnJlbnQgaG9sZGVyJ3MgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gICAqL1xuICByZWFkb25seSBpbmZvOiBMb2NrRmlsZUluZm8gfCBudWxsO1xuXG4gIC8qKlxuICBUaGUgdHJhbnNwb3J0IGxhYmVsIG9mIHRoZSB3YWl0aW5nIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEhvdyBtdWNoIG9mIHRoZSBhY3F1aXNpdGlvbiB0aW1lb3V0IGlzIGxlZnQuXG4gICAqL1xuICByZWFkb25seSByZW1haW5pbmdJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgbG9jayBzY29wZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEhvdyBsb25nIHRoaXMgcnVuIGhhcyBiZWVuIHdhaXRpbmcgc28gZmFyLlxuICAgKi9cbiAgcmVhZG9ubHkgd2FpdGVkSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgSlNPTiBwYXlsb2FkIHN0b3JlZCBpbnNpZGUgYSBsb2NrIGZpbGUsIGlkZW50aWZ5aW5nIHRoZSBob2xkZXIuXG4gKi9cbmludGVyZmFjZSBMb2NrRmlsZUluZm8ge1xuICAvKipcbiAgV2hlbiB0aGUgbG9jayB3YXMgYWNxdWlyZWQgKGBEYXRlLm5vdygpYCBlcG9jaCBtaWxsaXNlY29uZHMpLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNxdWlyZWRBdEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGhvbGRlciBsYXN0IHByb3ZlZCBpdCB3YXMgc3RpbGwgYWxpdmUgKGBEYXRlLm5vdygpYCBlcG9jaFxuICAgKiBtaWxsaXNlY29uZHMpLCByZWZyZXNoZWQgZXZlcnkge0BsaW5rIEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFN9XG4gICAqIHdoaWxlIHRoZSBsb2NrIGlzIGhlbGQuXG4gICAqXG4gICAqIEFic2VudCBpbiBhIGxvY2sgZmlsZSB3cml0dGVuIGJ5IGFuIG9sZGVyIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLCB3aGljaFxuICAgKiBzdGFtcGVkIHRoZSBQSUQgYnV0IG5ldmVyIGJlYXQuXG4gICAqL1xuICByZWFkb25seSBoZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICBUaGUgaG9zdCB0aGF0IGhvbGRzIHRoZSBsb2NrIChQSUQgbGl2ZW5lc3MgaXMgb25seSB2YWxpZCBvbiB0aGUgc2FtZSBob3N0KS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSB0cmFuc3BvcnQgbGFiZWwgb2YgdGhlIGhvbGRpbmcgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgVGhlIHByb2Nlc3MgSUQgb2YgdGhlIGhvbGRpbmcgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlkOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGRpZFJlZnJlc2hIZWFydGJlYXR9LlxuICovXG5pbnRlcmZhY2UgUmVmcmVzaEhlYXJ0YmVhdFBhcmFtcyB7XG4gIC8qKlxuICBUaGUgdHJhbnNwb3J0IGxhYmVsIG9mIHRoaXMgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgVGhlIHBhdGggdG8gdGhlIGxvY2sgZmlsZSB0byByZWZyZXNoLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIGluZm8gdGhpcyBydW4gd3JvdGUgd2hlbiBpdCBhY3F1aXJlZCB0aGUgbG9jay5cbiAgICovXG4gIHJlYWRvbmx5IG93bkluZm86IExvY2tGaWxlSW5mbztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc3RlYWxTdGFsZUxvY2t9LlxuICovXG5pbnRlcmZhY2UgU3RlYWxTdGFsZUxvY2tQYXJhbXMge1xuICAvKipcbiAgVGhlIGFiYW5kb25lZCBob2xkZXIncyBsb2NrIGluZm8uXG4gICAqL1xuICByZWFkb25seSBpbmZvOiBMb2NrRmlsZUluZm87XG5cbiAgLyoqXG4gIFRoZSB0cmFuc3BvcnQgbGFiZWwgb2YgdGhlIHN0ZWFsaW5nIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUgdG8gcmVtb3ZlLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIHNjb3BlLCBmb3IgdGhlIGxvZyBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBY3F1aXJlcyB0aGUgY3Jvc3MtcHJvY2VzcyBzZXR1cCBsb2NrIGZvciB0aGUgZ2l2ZW4gc2NvcGUsIHdhaXRpbmcgdW50aWwgYW55XG4gKiBjb21wZXRpbmcgcnVuIHJlbGVhc2VzIGl0IChvciBpdHMgbG9jayBpcyBkZXRlY3RlZCBhcyBzdGFsZSkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBsb2NrIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIGhhbmRsZSB3aG9zZSB7QGxpbmsgU2V0dXBMb2NrLnJlbGVhc2V9IGZyZWVzIHRoZSBsb2NrLlxuICogQHRocm93cyBJZiB0aGUgbG9jayBjYW5ub3QgYmUgYWNxdWlyZWQgd2l0aGluIGB0aW1lb3V0SW5NaWxsaXNlY29uZHNgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWNxdWlyZVNldHVwTG9jayhwYXJhbXM6IEFjcXVpcmVTZXR1cExvY2tQYXJhbXMpOiBQcm9taXNlPFNldHVwTG9jaz4ge1xuICBjb25zdCB7XG4gICAgbGFiZWwsXG4gICAgc2NvcGVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgdGltZW91dEluTWlsbGlzZWNvbmRzID0gcGFyYW1zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTO1xuICBjb25zdCBsb2NrRmlsZVBhdGggPSBnZXRMb2NrRmlsZVBhdGgoc2NvcGUpO1xuICBta2RpclN5bmMoZ2V0TG9ja0RpcmVjdG9yeSgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBjb25zdCBzdGFydGVkQXRJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMgPSBzdGFydGVkQXRJbk1pbGxpc2Vjb25kcyArIHRpbWVvdXRJbk1pbGxpc2Vjb25kcztcbiAgbGV0IGxhc3RMb2dnZWRXYWl0QXRJbk1pbGxpc2Vjb25kczogbnVsbCB8IG51bWJlciA9IG51bGw7XG5cbiAgZm9yICg7Oykge1xuICAgIGNvbnN0IG93bkluZm8gPSB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGgsIGxhYmVsKTtcbiAgICBpZiAob3duSW5mbykge1xuICAgICAgcmV0dXJuIGNyZWF0ZUxvY2tIYW5kbGUoe1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgbG9ja0ZpbGVQYXRoLFxuICAgICAgICBvd25JbmZvLFxuICAgICAgICBzY29wZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5mbyA9IHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoKTtcbiAgICBpZiAoaW5mbyAmJiBjaGVja0lzTG9ja1N0YWxlKGluZm8sIEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMpKSB7XG4gICAgICBzdGVhbFN0YWxlTG9jayh7IGluZm8sIGxhYmVsLCBsb2NrRmlsZVBhdGgsIHNjb3BlIH0pO1xuICAgICAgLy8gUmV0cnkgaW1tZWRpYXRlbHkgXHUyMDE0IGJ1dCBzdGlsbCBob25vdXIgdGhlIGRlYWRsaW5lLCBzbyBhIGxvY2sgdGhhdCBhXG4gICAgICAvLyBDb21wZXRpbmcgcnVuIGtlZXBzIHJlY3JlYXRpbmcgY2Fubm90IHNwaW4gdGhpcyBsb29wIGZvcmV2ZXIuXG4gICAgICBpZiAoRGF0ZS5ub3coKSA+PSBkZWFkbGluZUluTWlsbGlzZWNvbmRzKSB7XG4gICAgICAgIHRocm93IGNyZWF0ZVRpbWVvdXRFcnJvcih7XG4gICAgICAgICAgaW5mbyxcbiAgICAgICAgICBzY29wZSxcbiAgICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBub3dJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gICAgaWYgKG5vd0luTWlsbGlzZWNvbmRzID49IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMpIHtcbiAgICAgIHRocm93IGNyZWF0ZVRpbWVvdXRFcnJvcih7XG4gICAgICAgIGluZm8sXG4gICAgICAgIHNjb3BlLFxuICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZExvZ1dhaXQgPSBsYXN0TG9nZ2VkV2FpdEF0SW5NaWxsaXNlY29uZHMgPT09IG51bGxcbiAgICAgIHx8IG5vd0luTWlsbGlzZWNvbmRzIC0gbGFzdExvZ2dlZFdhaXRBdEluTWlsbGlzZWNvbmRzID49IFdBSVRfTE9HX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUztcbiAgICBpZiAoc2hvdWxkTG9nV2FpdCkge1xuICAgICAgbGFzdExvZ2dlZFdhaXRBdEluTWlsbGlzZWNvbmRzID0gbm93SW5NaWxsaXNlY29uZHM7XG4gICAgICBsb2coZm9ybWF0V2FpdE1lc3NhZ2Uoe1xuICAgICAgICBpbmZvLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgcmVtYWluaW5nSW5NaWxsaXNlY29uZHM6IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMgLSBub3dJbk1pbGxpc2Vjb25kcyxcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIHdhaXRlZEluTWlsbGlzZWNvbmRzOiBub3dJbk1pbGxpc2Vjb25kcyAtIHN0YXJ0ZWRBdEluTWlsbGlzZWNvbmRzXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgZGVsYXkoUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMpO1xuICB9XG59XG5cbi8qKlxuICogUmVwb3J0cyB3aGV0aGVyIGEgcnVuIGN1cnJlbnRseSBob2xkcyB0aGUgc2V0dXAgbG9jayBmb3IgYSBzY29wZS5cbiAqXG4gKiBBIGxvY2sgZmlsZSB0aGF0IGV4aXN0cyBidXQgY2Fubm90IGJlIHJlYWQgY291bnRzIGFzIGhlbGQgXHUyMDE0IHRoZSBzYW1lIGFuc3dlclxuICoge0BsaW5rIGFjcXVpcmVTZXR1cExvY2t9IGdpdmVzIGJ5IHdhaXRpbmcgb24gaXQ6IGl0IGlzIGVpdGhlciBtaWQtd3JpdGUgb3JcbiAqIGNvcnJ1cHQsIGFuZCBlaXRoZXIgd2F5IG5vIHJ1biBjYW4gdGFrZSBpdC5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgbG9jayBzY29wZS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGEgaG9sZGVyIHRoYXQgaXMgbm90IHN0YWxlIG93bnMgdGhlIGxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lzU2V0dXBMb2NrSGVsZChzY29wZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGxldCB0ZXh0OiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgdGV4dCA9IHJlYWRGaWxlU3luYyhnZXRMb2NrRmlsZVBhdGgoc2NvcGUpLCAndXRmLTgnKTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICByZXR1cm4gZ2V0RXJyb3JDb2RlKGVycm9yKSAhPT0gJ0VOT0VOVCc7XG4gIH1cblxuICBsZXQgaW5mbzogTG9ja0ZpbGVJbmZvO1xuICB0cnkge1xuICAgIGluZm8gPSBKU09OLnBhcnNlKHRleHQpIGFzIExvY2tGaWxlSW5mbztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gIWNoZWNrSXNMb2NrU3RhbGUoaW5mbywgSEVBUlRCRUFUX1NUQUxFX0lOX01JTExJU0VDT05EUyk7XG59XG5cbi8qKlxuICogVGFrZXMgdGhlIHNldHVwIGxvY2sgZm9yIGEgc2NvcGUgaWYgaXQgaXMgZnJlZSBvciBhYmFuZG9uZWQsIHdpdGhvdXQgd2FpdGluZy5cbiAqXG4gKiBPbmUgYXR0ZW1wdDogYSBsaXZlIGhvbGRlciBcdTIwMTQgb3IgYSBsb2NrIGZpbGUgdGhhdCBjYW5ub3QgYmUgcmVhZCBcdTIwMTQgbWVhbnNcbiAqIGB1bmRlZmluZWRgLCBhbmQgdGhlIGNhbGxlciBkZWNpZGVzIHdoZXRoZXIgdG8gdHJ5IGFnYWluIGxhdGVyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbG9jayBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgQSBoYW5kbGUgd2hvc2Uge0BsaW5rIFNldHVwTG9jay5yZWxlYXNlfSBmcmVlcyB0aGUgbG9jaywgb3IgYHVuZGVmaW5lZGAgd2hpbGUgYW5vdGhlciBydW4gaG9sZHMgaXQuXG4gKiBAdGhyb3dzIElmIHRoZSBmaWxlIHN5c3RlbSBmYWlscyBmb3IgYW55IHJlYXNvbiBvdGhlciB0aGFuIHRoZSBsb2NrIGZpbGUgYWxyZWFkeSBleGlzdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUFjcXVpcmVTZXR1cExvY2socGFyYW1zOiBUcnlBY3F1aXJlU2V0dXBMb2NrUGFyYW1zKTogU2V0dXBMb2NrIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBsYWJlbCwgc2NvcGUgfSA9IHBhcmFtcztcbiAgY29uc3QgbG9ja0ZpbGVQYXRoID0gZ2V0TG9ja0ZpbGVQYXRoKHNjb3BlKTtcbiAgbWtkaXJTeW5jKGdldExvY2tEaXJlY3RvcnkoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgbGV0IG93bkluZm8gPSB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGgsIGxhYmVsKTtcbiAgaWYgKCFvd25JbmZvKSB7XG4gICAgY29uc3QgaW5mbyA9IHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoKTtcbiAgICBpZiAoIWluZm8gfHwgIWNoZWNrSXNMb2NrU3RhbGUoaW5mbywgcGFyYW1zLnN0YWxlQWZ0ZXJTaWxlbmNlSW5NaWxsaXNlY29uZHMgPz8gSEVBUlRCRUFUX1NUQUxFX0lOX01JTExJU0VDT05EUykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc3RlYWxTdGFsZUxvY2soeyBpbmZvLCBsYWJlbCwgbG9ja0ZpbGVQYXRoLCBzY29wZSB9KTtcbiAgICBvd25JbmZvID0gdHJ5Q3JlYXRlTG9ja0ZpbGUobG9ja0ZpbGVQYXRoLCBsYWJlbCk7XG4gICAgaWYgKCFvd25JbmZvKSB7XG4gICAgICAvLyBBbm90aGVyIHJ1biByZWNyZWF0ZWQgaXQgYmV0d2VlbiB0aGUgc3RlYWwgYW5kIHRoaXMgYXR0ZW1wdDsgaXQgaXMgdGhlaXJzIG5vdy5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUxvY2tIYW5kbGUoe1xuICAgIGxhYmVsLFxuICAgIGxvY2tGaWxlUGF0aCxcbiAgICBvd25JbmZvLFxuICAgIHNjb3BlXG4gIH0pO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGxvY2sgY2FuIGJlIGNvbnNpZGVyZWQgYWJhbmRvbmVkLlxuICpcbiAqIEEgbGl2ZSBob2xkZXIgcmVmcmVzaGVzIGl0cyBoZWFydGJlYXQgZXZlcnlcbiAqIHtAbGluayBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTfSwgc28gYSBoZWFydGJlYXQgdGhhdCBzdG9wcGVkIG1lYW5zXG4gKiB0aGUgaG9sZGVyIGlzIGdvbmUuIFRoYXQgaXMgdGhlIHByaW1hcnkgc2lnbmFsLCBiZWNhdXNlIHRoZSByZWNvcmRlZCBQSUQgYWxvbmVcbiAqIGNhbm5vdCBiZSB0cnVzdGVkOiB7QGxpbmsgY2hlY2tJc1Byb2Nlc3NBbGl2ZX0gb25seSBhbnN3ZXJzIFwiZG9lcyAqYSogcHJvY2Vzc1xuICogd2l0aCB0aGlzIFBJRCBleGlzdFwiLCB3aGljaCBhIHJlY3ljbGVkIFBJRCBzYXRpc2ZpZXMgbG9uZyBhZnRlciB0aGUgaG9sZGVyXG4gKiBkaWVkLlxuICpcbiAqIE9uIHRoZSBzYW1lIGhvc3QgYSBkZWFkIFBJRCBpcyBzdGlsbCBhbiBpbW1lZGlhdGUgZ2l2ZS1hd2F5LCBzbyBpdCBpcyBrZXB0IGFzXG4gKiBhIGZhc3QgcGF0aC4gT24gYSBkaWZmZXJlbnQgaG9zdCAoYSBzaGFyZWQvbmV0d29yayB0ZW1wIGRpcmVjdG9yeSkgdGhlIFBJRFxuICogY2Fubm90IGJlIHByb2JlZCBhdCBhbGwgYW5kIHRoZSB0d28gY2xvY2tzIG1heSBkaXNhZ3JlZSwgc28gdGhlIG11Y2ggd2lkZXJcbiAqIHtAbGluayBTVEFMRV9MT0NLX0FHRV9JTl9NSUxMSVNFQ09ORFN9IHRocmVzaG9sZCBpcyB1c2VkIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIGluZm8gLSBUaGUgcGFyc2VkIGxvY2sgaW5mby5cbiAqIEBwYXJhbSBoZWFydGJlYXRTdGFsZUluTWlsbGlzZWNvbmRzIC0gSG93IGxvbmcgYSBzYW1lLWhvc3QgaG9sZGVyIHdob3NlIFBJRCBpcyBhbGl2ZSBtYXkgc3RheSBzaWxlbnQuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGxvY2sgaXMgc3RhbGUgYW5kIG1heSBiZSBzdG9sZW4uXG4gKi9cbmZ1bmN0aW9uIGNoZWNrSXNMb2NrU3RhbGUoaW5mbzogTG9ja0ZpbGVJbmZvLCBoZWFydGJlYXRTdGFsZUluTWlsbGlzZWNvbmRzOiBudW1iZXIpOiBib29sZWFuIHtcbiAgY29uc3Qgc2lsZW50Rm9ySW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpIC0gZ2V0TGFzdFNlZW5BdEluTWlsbGlzZWNvbmRzKGluZm8pO1xuXG4gIGlmIChpbmZvLmhvc3RuYW1lID09PSBob3N0bmFtZSgpKSB7XG4gICAgcmV0dXJuICFjaGVja0lzUHJvY2Vzc0FsaXZlKGluZm8ucGlkKSB8fCBzaWxlbnRGb3JJbk1pbGxpc2Vjb25kcyA+IGhlYXJ0YmVhdFN0YWxlSW5NaWxsaXNlY29uZHM7XG4gIH1cblxuICByZXR1cm4gc2lsZW50Rm9ySW5NaWxsaXNlY29uZHMgPiBTVEFMRV9MT0NLX0FHRV9JTl9NSUxMSVNFQ09ORFM7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbG9jayBmaWxlIHN0aWxsIG5hbWVzIHRoaXMgcHJvY2VzcyBhcyBpdHMgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSBpbmZvIC0gVGhlIHBhcnNlZCBsb2NrIGluZm8uXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBwcm9jZXNzIGhvbGRzIHRoZSBsb2NrLlxuICovXG5mdW5jdGlvbiBjaGVja0lzT3duTG9jayhpbmZvOiBMb2NrRmlsZUluZm8pOiBib29sZWFuIHtcbiAgcmV0dXJuIGluZm8ucGlkID09PSBwcm9jZXNzLnBpZCAmJiBpbmZvLmhvc3RuYW1lID09PSBob3N0bmFtZSgpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcHJvY2VzcyB3aXRoIHRoZSBnaXZlbiBQSUQgaXMgY3VycmVudGx5IGFsaXZlLlxuICpcbiAqIEBwYXJhbSBwaWQgLSBUaGUgcHJvY2VzcyBJRCB0byBwcm9iZS5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvY2VzcyBleGlzdHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrSXNQcm9jZXNzQWxpdmUocGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBwcm9jZXNzLmtpbGwocGlkLCBQUk9DRVNTX0VYSVNURU5DRV9QUk9CRV9TSUdOQUwpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIC8vIGBFUEVSTWAgbWVhbnMgdGhlIHByb2Nlc3MgZXhpc3RzIGJ1dCBpcyBvd25lZCBieSBhbm90aGVyIHVzZXIgXHUyMDE0IHN0aWxsIGFsaXZlLlxuICAgIHJldHVybiBnZXRFcnJvckNvZGUoZXJyb3IpID09PSAnRVBFUk0nO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHtAbGluayBTZXR1cExvY2t9IGhhbmRsZSB0aGF0IGtlZXBzIHRoZSBsb2NrJ3MgaGVhcnRiZWF0IGZyZXNoIHdoaWxlXG4gKiBoZWxkIGFuZCByZW1vdmVzIHRoZSBsb2NrIGZpbGUgb24gcmVsZWFzZS5cbiAqXG4gKiBUaGUgaGVhcnRiZWF0IHRpbWVyIGlzIGB1bnJlZmBlZCBzbyBpdCBjYW4gbmV2ZXIga2VlcCB0aGUgcHJvY2VzcyBhbGl2ZSBvbiBpdHNcbiAqIG93biwgYW5kIGl0IHN0b3BzIGFzIHNvb24gYXMgdGhlIGxvY2sgZmlsZSBuYW1lcyBzb21lYm9keSBlbHNlIFx1MjAxNCBhIHJ1biB3aG9zZVxuICogbG9jayB3YXMgc3RvbGVuIG11c3Qgbm90IG92ZXJ3cml0ZSBpdHMgc3VjY2Vzc29yJ3MgbG9jaywgbm9yIGRlbGV0ZSBpdCBvblxuICogcmVsZWFzZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGhhbmRsZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIGxvY2sgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2NrSGFuZGxlKHBhcmFtczogQ3JlYXRlTG9ja0hhbmRsZVBhcmFtcyk6IFNldHVwTG9jayB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBsb2NrRmlsZVBhdGgsXG4gICAgb3duSW5mbyxcbiAgICBzY29wZVxuICB9ID0gcGFyYW1zO1xuICBsZXQgaXNSZWxlYXNlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGhlYXJ0YmVhdFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgIGNvbnN0IGlzU3RpbGxPdXJzID0gZGlkUmVmcmVzaEhlYXJ0YmVhdCh7XG4gICAgICBsYWJlbCxcbiAgICAgIGxvY2tGaWxlUGF0aCxcbiAgICAgIG93bkluZm9cbiAgICB9KTtcbiAgICBpZiAoaXNTdGlsbE91cnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2xlYXJJbnRlcnZhbChoZWFydGJlYXRUaW1lcik7XG4gICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIFRoZSAnJHtzY29wZX0nIHNldHVwIGxvY2sgaXMgbm8gbG9uZ2VyIG91cnMgXHUyMDE0IGFub3RoZXIgcnVuIHRvb2sgaXQgb3Zlci4gSGVhcnRiZWF0IHN0b3BwZWQuYCk7XG4gIH0sIEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMpO1xuICBoZWFydGJlYXRUaW1lci51bnJlZigpO1xuXG4gIHJldHVybiB7XG4gICAgcmVsZWFzZSgpOiB2b2lkIHtcbiAgICAgIGlmIChpc1JlbGVhc2VkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlzUmVsZWFzZWQgPSB0cnVlO1xuICAgICAgY2xlYXJJbnRlcnZhbChoZWFydGJlYXRUaW1lcik7XG5cbiAgICAgIGNvbnN0IGluZm8gPSByZWFkTG9ja0ZpbGVJbmZvKGxvY2tGaWxlUGF0aCk7XG4gICAgICBpZiAoaW5mbyAmJiAhY2hlY2tJc093bkxvY2soaW5mbykpIHtcbiAgICAgICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIExlYXZpbmcgdGhlICcke3Njb3BlfScgc2V0dXAgbG9jayBpbiBwbGFjZSBcdTIwMTQgaXQgbm93IGJlbG9uZ3MgdG8gJHtkZXNjcmliZUluZm8oaW5mbyl9LmApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBybVN5bmMobG9ja0ZpbGVQYXRoLCB7IGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGVycm9yIHRocm93biB3aGVuIHRoZSBsb2NrIGNvdWxkIG5vdCBiZSBhY3F1aXJlZCBpbiB0aW1lLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZXJyb3IgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBlcnJvciB0byB0aHJvdy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlVGltZW91dEVycm9yKHBhcmFtczogQ3JlYXRlVGltZW91dEVycm9yUGFyYW1zKTogRXJyb3Ige1xuICBjb25zdCB7XG4gICAgaW5mbyxcbiAgICBzY29wZSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgfSA9IHBhcmFtcztcbiAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICBgVGltZWQgb3V0IGFmdGVyICR7U3RyaW5nKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyl9bXMgd2FpdGluZyBmb3IgdGhlICcke3Njb3BlfScgaW50ZWdyYXRpb24tdGVzdCBzZXR1cCBsb2NrIGBcbiAgICAgICsgYGhlbGQgYnkgJHtkZXNjcmliZUhvbGRlcihpbmZvKX0uIEFub3RoZXIgaW50ZWdyYXRpb24tdGVzdCBydW4gaXMgc3RpbGwgaW4gcHJvZ3Jlc3MuYFxuICApO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGFmdGVyIHRoZSBnaXZlbiBkZWxheS4gVXNlZCB0byBwb2xsIGJldHdlZW4gbG9jay1hY3F1aXNpdGlvbiBhdHRlbXB0cy5cbiAqXG4gKiBAcGFyYW0gbWlsbGlzZWNvbmRzIC0gVGhlIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIHRoZSBkZWxheS5cbiAqL1xuZnVuY3Rpb24gZGVsYXkobWlsbGlzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dChyZXNvbHZlLCBtaWxsaXNlY29uZHMpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBsb2NrIGhvbGRlciBmb3IgbG9nL2Vycm9yXG4gKiBtZXNzYWdlcy5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBwYXJzZWQgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gKiBAcmV0dXJucyBBIGRlc2NyaXB0aW9uIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZGVzY3JpYmVIb2xkZXIoaW5mbzogTG9ja0ZpbGVJbmZvIHwgbnVsbCk6IHN0cmluZyB7XG4gIHJldHVybiBpbmZvID8gZGVzY3JpYmVJbmZvKGluZm8pIDogJ2Fub3RoZXIgcnVuJztcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEge0BsaW5rIExvY2tGaWxlSW5mb30gYXMgYSBzaG9ydCBpZGVudGlmaWVyIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBsb2NrIGluZm8uXG4gKiBAcmV0dXJucyBBIHN0cmluZyBsaWtlIGBwaWQgMTIzNCAob2JzaWRpYW4tY2xpKSBvbiBob3N0YC5cbiAqL1xuZnVuY3Rpb24gZGVzY3JpYmVJbmZvKGluZm86IExvY2tGaWxlSW5mbyk6IHN0cmluZyB7XG4gIHJldHVybiBgcGlkICR7U3RyaW5nKGluZm8ucGlkKX0gKCR7aW5mby5sYWJlbH0pIG9uICR7aW5mby5ob3N0bmFtZX1gO1xufVxuXG4vKipcbiAqIFJld3JpdGVzIHRoZSBsb2NrIGZpbGUgd2l0aCBhIGZyZXNoIGhlYXJ0YmVhdCB0aW1lc3RhbXAsIHNvIHdhaXRpbmcgcnVucyBjYW5cbiAqIHRlbGwgdGhpcyBob2xkZXIgYXBhcnQgZnJvbSBhIGNyYXNoZWQgb25lIHdob3NlIFBJRCBoYXMgYmVlbiByZWN5Y2xlZC5cbiAqXG4gKiBBIGxvY2sgZmlsZSB0aGF0IGlzIG1pc3Npbmcgb3IgdW5yZWFkYWJsZSBpcyBzdGlsbCB0cmVhdGVkIGFzIG91cnMgYW5kIHJld3JpdHRlbjpcbiAqIHRoaXMgcnVuIG5ldmVyIHJlbGVhc2VkLCBzbyBpdHMgY2xhaW0gc3RhbmRzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcmVmcmVzaCBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgYHRydWVgIHdoaWxlIHRoZSBsb2NrIGlzIHN0aWxsIG91cnMsIGBmYWxzZWAgb25jZSBhbm90aGVyIHJ1biBvd25zIGl0LlxuICovXG5mdW5jdGlvbiBkaWRSZWZyZXNoSGVhcnRiZWF0KHBhcmFtczogUmVmcmVzaEhlYXJ0YmVhdFBhcmFtcyk6IGJvb2xlYW4ge1xuICBjb25zdCB7XG4gICAgbGFiZWwsXG4gICAgbG9ja0ZpbGVQYXRoLFxuICAgIG93bkluZm9cbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBpbmZvID0gcmVhZExvY2tGaWxlSW5mbyhsb2NrRmlsZVBhdGgpO1xuICBpZiAoaW5mbyAmJiAhY2hlY2tJc093bkxvY2soaW5mbykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCByZWZyZXNoZWRJbmZvOiBMb2NrRmlsZUluZm8gPSB7XG4gICAgLi4ub3duSW5mbyxcbiAgICBoZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzOiBEYXRlLm5vdygpXG4gIH07XG4gIHRyeSB7XG4gICAgd3JpdGVGaWxlU3luYyhsb2NrRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHJlZnJlc2hlZEluZm8pKTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAvLyBOb3QgZmF0YWw6IHRoZSBsb2NrIGlzIHN0aWxsIGhlbGQgYW5kIHdpbGwgc3RpbGwgYmUgcmVsZWFzZWQuIE9ubHkgaXRzXG4gICAgLy8gSGVhcnRiZWF0IGdvZXMgc3RhbGUsIHdoaWNoIGF0IHdvcnN0IGxldHMgYSB3YWl0aW5nIHJ1biBzdGVhbCBpdC5cbiAgICBsb2coYFtpbnRlZ3JhdGlvbi1zZXR1cDoke2xhYmVsfV0gRmFpbGVkIHRvIHJlZnJlc2ggdGhlIHNldHVwIGxvY2sgaGVhcnRiZWF0OiAke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgYSBkdXJhdGlvbiBhcyBhIGNvbXBhY3QgYDFtIDMwc2AgLyBgNDVzYCBzdHJpbmcgZm9yIHByb2dyZXNzIGxvZ3MuXG4gKlxuICogQHBhcmFtIG1pbGxpc2Vjb25kcyAtIFRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGR1cmF0aW9uLlxuICovXG5mdW5jdGlvbiBmb3JtYXREdXJhdGlvbihtaWxsaXNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHRvdGFsU2Vjb25kcyA9IE1hdGgucm91bmQobWlsbGlzZWNvbmRzIC8gTUlMTElTRUNPTkRTX1BFUl9TRUNPTkQpO1xuICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcih0b3RhbFNlY29uZHMgLyBTRUNPTkRTX1BFUl9NSU5VVEUpO1xuICBjb25zdCBzZWNvbmRzID0gdG90YWxTZWNvbmRzICUgU0VDT05EU19QRVJfTUlOVVRFO1xuICByZXR1cm4gbWludXRlcyA+IDAgPyBgJHtTdHJpbmcobWludXRlcyl9bSAke1N0cmluZyhzZWNvbmRzKX1zYCA6IGAke1N0cmluZyhzZWNvbmRzKX1zYDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHBlcmlvZGljIFwic3RpbGwgd2FpdGluZ1wiIHByb2dyZXNzIGxpbmUsIHNvIGEgbGVnaXRpbWF0ZSBtdWx0aS1taW51dGVcbiAqIHdhaXQgaXMgZGlzdGluZ3Vpc2hhYmxlIGZyb20gYSBoYW5nIGluIHRoZSB0ZXJtaW5hbC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIG1lc3NhZ2UgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0V2FpdE1lc3NhZ2UocGFyYW1zOiBGb3JtYXRXYWl0TWVzc2FnZVBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBpbmZvLFxuICAgIGxhYmVsLFxuICAgIHJlbWFpbmluZ0luTWlsbGlzZWNvbmRzLFxuICAgIHNjb3BlLFxuICAgIHdhaXRlZEluTWlsbGlzZWNvbmRzXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGhlbGRGb3IgPSBpbmZvID8gYCwgaGVsZCBmb3IgJHtmb3JtYXREdXJhdGlvbihEYXRlLm5vdygpIC0gaW5mby5hY3F1aXJlZEF0SW5NaWxsaXNlY29uZHMpfWAgOiAnJztcbiAgcmV0dXJuIGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIFdhaXRpbmcgZm9yIHRoZSAnJHtzY29wZX0nIHNldHVwIGxvY2sgaGVsZCBieSAke2Rlc2NyaWJlSG9sZGVyKGluZm8pfSB0byBiZSByZWxlYXNlZCBgXG4gICAgKyBgKHdhaXRlZCAke2Zvcm1hdER1cmF0aW9uKHdhaXRlZEluTWlsbGlzZWNvbmRzKX0ke2hlbGRGb3J9LCBnaXZpbmcgdXAgaW4gJHtmb3JtYXREdXJhdGlvbihyZW1haW5pbmdJbk1pbGxpc2Vjb25kcyl9KS4uLmA7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGBjb2RlYCBmcm9tIGEgTm9kZS5qcyBzeXN0ZW0gZXJyb3IsIGlmIHByZXNlbnQuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIHRocm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBlcnJvciBjb2RlIHN0cmluZywgb3IgYHVuZGVmaW5lZGAgaWYgbm90IGEgY29kZWQgZXJyb3IuXG4gKi9cbmZ1bmN0aW9uIGdldEVycm9yQ29kZShlcnJvcjogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICdjb2RlJyBpbiBlcnJvciAmJiB0eXBlb2YgZXJyb3IuY29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXJyb3IuY29kZTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hlbiB0aGUgaG9sZGVyIHdhcyBsYXN0IGtub3duIHRvIGJlIGFsaXZlIFx1MjAxNCBpdHMgbW9zdCByZWNlbnQgaGVhcnRiZWF0LFxuICogZmFsbGluZyBiYWNrIHRvIGl0cyBhY3F1aXNpdGlvbiB0aW1lIGZvciBhIGxvY2sgZmlsZSB3cml0dGVuIGJ5IGFuIG9sZGVyXG4gKiB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZSB0aGF0IHN0YW1wZWQgbm8gaGVhcnRiZWF0IGF0IGFsbC5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBwYXJzZWQgbG9jayBpbmZvLlxuICogQHJldHVybnMgVGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGUgaG9sZGVyJ3MgbGFzdCBzaWduIG9mIGxpZmUuXG4gKi9cbmZ1bmN0aW9uIGdldExhc3RTZWVuQXRJbk1pbGxpc2Vjb25kcyhpbmZvOiBMb2NrRmlsZUluZm8pOiBudW1iZXIge1xuICByZXR1cm4gaW5mby5oZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzID8/IGluZm8uYWNxdWlyZWRBdEluTWlsbGlzZWNvbmRzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHNoYXJlZCBsb2NrIGRpcmVjdG9yeSBpbnNpZGUgdGhlIE9TIHRlbXAgZGlyZWN0b3J5LlxuICpcbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBsb2NrIGRpcmVjdG9yeS5cbiAqL1xuZnVuY3Rpb24gZ2V0TG9ja0RpcmVjdG9yeSgpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbih0bXBkaXIoKSwgTE9DS19ESVJfTkFNRSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbG9jayBmaWxlIHBhdGggZm9yIHRoZSBnaXZlbiBzY29wZS5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgbG9jayBzY29wZS5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBzY29wZSdzIGxvY2sgZmlsZS5cbiAqL1xuZnVuY3Rpb24gZ2V0TG9ja0ZpbGVQYXRoKHNjb3BlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbihnZXRMb2NrRGlyZWN0b3J5KCksIGAke3Njb3BlfSR7TE9DS19GSUxFX1NVRkZJWH1gKTtcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIHRoZSBsb2NrIGZpbGUsIGlmIGl0IGV4aXN0cyBhbmQgaXMgdmFsaWQgSlNPTi5cbiAqXG4gKiBAcGFyYW0gbG9ja0ZpbGVQYXRoIC0gVGhlIHBhdGggdG8gdGhlIGxvY2sgZmlsZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoOiBzdHJpbmcpOiBMb2NrRmlsZUluZm8gfCBudWxsIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMobG9ja0ZpbGVQYXRoLCAndXRmLTgnKSkgYXMgTG9ja0ZpbGVJbmZvO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZXMgYW4gYWJhbmRvbmVkIGhvbGRlcidzIGxvY2sgZmlsZSwgc2F5aW5nIHdob3NlIGl0IHdhcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGFiYW5kb25lZCBob2xkZXIsIGFuZCB3aG8gaXMgdGFraW5nIG92ZXIuXG4gKi9cbmZ1bmN0aW9uIHN0ZWFsU3RhbGVMb2NrKHBhcmFtczogU3RlYWxTdGFsZUxvY2tQYXJhbXMpOiB2b2lkIHtcbiAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtwYXJhbXMubGFiZWx9XSBTdGVhbGluZyBzdGFsZSAnJHtwYXJhbXMuc2NvcGV9JyBzZXR1cCBsb2NrIGZyb20gJHtkZXNjcmliZUluZm8ocGFyYW1zLmluZm8pfS5gKTtcbiAgcm1TeW5jKHBhcmFtcy5sb2NrRmlsZVBhdGgsIHsgZm9yY2U6IHRydWUgfSk7XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gYXRvbWljYWxseSBjcmVhdGUgdGhlIGxvY2sgZmlsZSAoZmFpbGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cykuXG4gKlxuICogQHBhcmFtIGxvY2tGaWxlUGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUuXG4gKiBAcGFyYW0gbGFiZWwgLSBUaGUgdHJhbnNwb3J0IGxhYmVsIHRvIHJlY29yZCBpbiB0aGUgbG9jayBmaWxlLlxuICogQHJldHVybnMgVGhlIGxvY2sgaW5mbyB3cml0dGVuIG9uIHN1Y2Nlc3MsIG9yIGBudWxsYCBpZiB0aGUgbG9jayBpcyBhbHJlYWR5IGhlbGQuXG4gKiBAdGhyb3dzIElmIHRoZSBmaWxlIHN5c3RlbSBmYWlscyBmb3IgYW55IHJlYXNvbiBvdGhlciB0aGFuIHRoZSBmaWxlIGV4aXN0aW5nLlxuICovXG5mdW5jdGlvbiB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGg6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IExvY2tGaWxlSW5mbyB8IG51bGwge1xuICBjb25zdCBub3dJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IGluZm86IExvY2tGaWxlSW5mbyA9IHtcbiAgICBhY3F1aXJlZEF0SW5NaWxsaXNlY29uZHM6IG5vd0luTWlsbGlzZWNvbmRzLFxuICAgIGhlYXJ0YmVhdEF0SW5NaWxsaXNlY29uZHM6IG5vd0luTWlsbGlzZWNvbmRzLFxuICAgIGhvc3RuYW1lOiBob3N0bmFtZSgpLFxuICAgIGxhYmVsLFxuICAgIHBpZDogcHJvY2Vzcy5waWRcbiAgfTtcblxuICB0cnkge1xuICAgIHdyaXRlRmlsZVN5bmMobG9ja0ZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShpbmZvKSwgeyBmbGFnOiAnd3gnIH0pO1xuICAgIHJldHVybiBpbmZvO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGlmIChnZXRFcnJvckNvZGUoZXJyb3IpID09PSAnRUVYSVNUJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQSxxQkFLTztBQUNQLHFCQUdPO0FBQ1AsdUJBQXFCO0FBQ3JCLDBCQUFvQjtBQUVwQiw2QkFBOEI7QUFDOUIsaUJBQW9CO0FBT2IsTUFBTSwyQkFBMkI7QUFFeEMsTUFBTSxnQkFBZ0I7QUFDdEIsTUFBTSxtQkFBbUI7QUFDekIsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSwwQkFBMEI7QUFDaEMsTUFBTSxxQkFBcUI7QUFDM0IsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSxxQ0FBcUMsZ0NBQWdDO0FBSzNFLE1BQU0saUNBQWlDO0FBQ3ZDLE1BQU0sa0NBQWtDLHFDQUFxQztBQUM3RSxNQUFNLCtCQUErQjtBQUNyQyxNQUFNLG9DQUFv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
319
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NldHVwLWxvY2sudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDcm9zcy1wcm9jZXNzIGFkdmlzb3J5IGxvY2sgdGhhdCBzZXJpYWxpemVzIHdob2xlIGludGVncmF0aW9uLXRlc3QgcnVucy5cbiAqXG4gKiBUd28gdGVzdCBydW5zIHRoYXQgZHJpdmUgdGhlIHNhbWUgc2hhcmVkIHJlc291cmNlcyBjb3JydXB0IGVhY2ggb3RoZXI6IG9uXG4gKiBkZXNrdG9wIHRoZXkgc2hhcmUgdGhlIHNpbmdsZSBsb2NhbCBPYnNpZGlhbiBpbnN0YW5jZSwgaXRzIGBvYnNpZGlhbi5qc29uYFxuICogcmVnaXN0cnksIGFuZCB0aGUgQ0RQIHBvcnQ7IG9uIEFuZHJvaWQgdGhleSBzaGFyZSB0aGUgZW11bGF0b3IgYW5kIHRoZSBBcHBpdW1cbiAqIHNlcnZlci4gT25lIHJ1bidzIHNldHVwL3RlYXJkb3duIGtpbGxzIG9yIHJlY29uZmlndXJlcyB0aGUgaW5zdGFuY2UgdGhlIG90aGVyXG4gKiBydW4gaXMgbWlkLWV2YWwgb24gKG9ic2VydmVkIGFzIGBFQ09OTlJFRlVTRURgIG9yIFwidmF1bHQgbm90IG9wZW5cIiksIHNvIGJvdGhcbiAqIHJ1bnMgZmFpbC5cbiAqXG4gKiBUaGlzIGxvY2sgbWFrZXMgdGhlIHNlY29uZCBydW4gKip3YWl0KiogZm9yIHRoZSBmaXJzdCB0byBmaW5pc2ggaW5zdGVhZCBvZlxuICogcnVubmluZyBjb25jdXJyZW50bHkuIEl0IGlzIGhlbGQgZm9yIHRoZSBlbnRpcmUgcnVuOiBhY3F1aXJlZCBhdCB0aGUgc3RhcnQgb2ZcbiAqIHRoZSBjb3JlIHNldHVwIGFuZCByZWxlYXNlZCBieSB0aGUgY29yZSB0ZWFyZG93biAoYW5kIGJ5IHRoZSBwcm9jZXNzIGNsZWFudXBcbiAqIGhhbmRsZXJzKS4gVGhlIGxvY2sgaXMgYSBzZW50aW5lbCBmaWxlIGluIGEgc2hhcmVkIHRlbXAgZGlyZWN0b3J5LCBhbmQgaXRzXG4gKiBob2xkZXIga2VlcHMgYSAqKmhlYXJ0YmVhdCoqIHRpbWVzdGFtcCBpbnNpZGUgaXQgZnJlc2ggZm9yIGFzIGxvbmcgYXMgaXQgaG9sZHNcbiAqIHRoZSBsb2NrIFx1MjAxNCBzbyBhIHJ1biB0aGF0IGNyYXNoZWQgd2l0aG91dCByZWxlYXNpbmcgc3RvcHMgYmVhdGluZyBhbmQgdGhlIG5leHRcbiAqIHJ1biBkZXRlY3RzIHRoZSBsb2NrIGFzIHN0YWxlIGFuZCBzdGVhbHMgaXQuXG4gKlxuICogVGhlIGhlYXJ0YmVhdCwgbm90IHRoZSBob2xkZXIncyBQSUQsIGlzIHdoYXQgcHJvdmVzIGEgaG9sZGVyIGlzIHN0aWxsIHRoZXJlOiBhXG4gKiBQSUQgcHJvYmUgb25seSBhbnN3ZXJzIFwiZG9lcyAqYSogcHJvY2VzcyB3aXRoIHRoaXMgUElEIGV4aXN0XCIsIHdoaWNoIGFcbiAqIHJlY3ljbGVkIFBJRCBzYXRpc2ZpZXMgbG9uZyBhZnRlciB0aGUgcmVhbCBob2xkZXIgZGllZCBcdTIwMTQgbGVhdmluZyBldmVyeSBsYXRlclxuICogcnVuIHRvIGJsb2NrIGZvciB0aGUgZnVsbCBhY3F1aXNpdGlvbiB0aW1lb3V0LlxuICovXG5cbmltcG9ydCB7XG4gIG1rZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHdyaXRlRmlsZVN5bmNcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBob3N0bmFtZSxcbiAgdG1wZGlyXG59IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBlcnJvclRvU3RyaW5nIH0gZnJvbSAnLi9lcnJvci10by1zdHJpbmcuY2pzJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vbG9nLmNqcyc7XG5cbi8qKlxuICogVGhlIHNjb3BlIGV2ZXJ5IEFuZHJvaWQgcnVuIHNlcmlhbGl6ZXMgb246IHRoZSBBcHBpdW0gdHJhbnNwb3J0J3MgZ2xvYmFsXG4gKiBzZXR1cCwgYSBwcm9qZWN0IHRoYXQgdGFrZXMgdGhlIGxvY2sgaXRzZWxmLCBhbmQgdGhlIGVtdWxhdG9yIHJlYXBlciBhbGxcbiAqIGhhdmUgdG8gbmFtZSB0aGUgc2FtZSBvbmUsIG9yIHRoZXkgc2VyaWFsaXplIGFnYWluc3Qgbm90aGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFORFJPSURfU0VUVVBfTE9DS19TQ09QRSA9ICdhbmRyb2lkJztcblxuY29uc3QgTE9DS19ESVJfTkFNRSA9ICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcbmNvbnN0IExPQ0tfRklMRV9TVUZGSVggPSAnLnNldHVwLmxvY2snO1xuY29uc3QgUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSA1MDA7XG5jb25zdCBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORCA9IDEwMDA7XG5jb25zdCBTRUNPTkRTX1BFUl9NSU5VVEUgPSA2MDtcbmNvbnN0IEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9TRUNPTkRTID0gNTtcbmNvbnN0IEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSBIRUFSVEJFQVRfSU5URVJWQUxfSU5fU0VDT05EUyAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuLy8gR2VuZXJvdXMgb24gcHVycG9zZTogYSBkZWFkIGhvbGRlciBpcyBub3JtYWxseSBjYXVnaHQgaW5zdGFudGx5IGJ5IHRoZSBQSURcbi8vIHByb2JlLCBzbyB0aGlzIHRocmVzaG9sZCBvbmx5IGhhcyB0byBjb3ZlciB0aGUgcmVjeWNsZWQtUElEIGNhc2UuIFR3byBtaW51dGVzXG4vLyBrZWVwcyBhIGhvbGRlciB0aGF0IGJsb2NrcyBpdHMgZXZlbnQgbG9vcCBkdXJpbmcgaGVhdnkgc3luY2hyb25vdXMgd29yayAoYVxuLy8gbGFyZ2UgdmF1bHQgc3luYywgYW4gaW5zdGFsbGVyIHVucGFjaykgZnJvbSBiZWluZyByb2JiZWQgd2hpbGUgaXQgaXMgYWxpdmUuXG5jb25zdCBNSVNTRURfSEVBUlRCRUFUU19CRUZPUkVfU1RBTEUgPSAyNDtcbmNvbnN0IEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMgPSBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTICogTUlTU0VEX0hFQVJUQkVBVFNfQkVGT1JFX1NUQUxFO1xuY29uc3QgV0FJVF9MT0dfSU5URVJWQUxfSU5fU0VDT05EUyA9IDMwO1xuY29uc3QgV0FJVF9MT0dfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTID0gV0FJVF9MT0dfSU5URVJWQUxfSU5fU0VDT05EUyAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuY29uc3QgU1RBTEVfTE9DS19BR0VfSU5fTUlOVVRFUyA9IDMwO1xuY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTlVURVMgPSA2MDtcbmNvbnN0IFNUQUxFX0xPQ0tfQUdFX0lOX01JTExJU0VDT05EUyA9IFNUQUxFX0xPQ0tfQUdFX0lOX01JTlVURVMgKiBTRUNPTkRTX1BFUl9NSU5VVEUgKiBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSBERUZBVUxUX1RJTUVPVVRfSU5fTUlOVVRFUyAqIFNFQ09ORFNfUEVSX01JTlVURSAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuY29uc3QgUFJPQ0VTU19FWElTVEVOQ0VfUFJPQkVfU0lHTkFMID0gMDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYWNxdWlyZVNldHVwTG9ja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNxdWlyZVNldHVwTG9ja1BhcmFtcyB7XG4gIC8qKlxuICBTaG9ydCB0cmFuc3BvcnQgbGFiZWwgZm9yIGxvZyBtZXNzYWdlcyAoZS5nLiBgXCJvYnNpZGlhbi1jbGlcImApLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogTG9naWNhbCBzY29wZSB0aGUgbG9jayBzZXJpYWxpemVzIHdpdGhpbi4gUnVucyB0aGF0IHNoYXJlIHJlc291cmNlcyBtdXN0XG4gICAqIHVzZSB0aGUgc2FtZSBzY29wZSAoZS5nLiBgXCJkZXNrdG9wXCJgIGZvciB0aGUgQ0xJL0NEUCB0cmFuc3BvcnRzLCBgXCJhbmRyb2lkXCJgXG4gICAqIGZvciB0aGUgQXBwaXVtIHRyYW5zcG9ydCkuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHRpbWUgdG8gd2FpdCBmb3IgYSBjb21wZXRpbmcgcnVuIHRvIHJlbGVhc2UgdGhlIGxvY2sgYmVmb3JlIGdpdmluZ1xuICAgKiB1cCBhbmQgdGhyb3dpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEgaG91clxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgaGVsZCBzZXR1cCBsb2NrLiBSZWxlYXNlIGl0IG9uY2UgdGhlIHJ1bidzIHRlYXJkb3duIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHVwTG9jayB7XG4gIC8qKlxuICBSZWxlYXNlcyB0aGUgbG9jay4gU2FmZSB0byBjYWxsIG1vcmUgdGhhbiBvbmNlLlxuICAgKi9cbiAgcmVsZWFzZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayB0cnlBY3F1aXJlU2V0dXBMb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcnlBY3F1aXJlU2V0dXBMb2NrUGFyYW1zIHtcbiAgLyoqXG4gIFNob3J0IHRyYW5zcG9ydCBsYWJlbCBmb3IgbG9nIG1lc3NhZ2VzLCByZWNvcmRlZCBpbiB0aGUgbG9jayBmaWxlIGFzIHRoZSBob2xkZXIncy5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIExvZ2ljYWwgc2NvcGUgdGhlIGxvY2sgc2VyaWFsaXplcyB3aXRoaW4gXHUyMDE0IHNlZSB7QGxpbmsgQWNxdWlyZVNldHVwTG9ja1BhcmFtcy5zY29wZX0uXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhIHNhbWUtaG9zdCBob2xkZXIgd2hvc2UgUElEIGlzIHN0aWxsIGFsaXZlIG1heSBnbyB3aXRob3V0IGFcbiAgICogaGVhcnRiZWF0IGJlZm9yZSBpdHMgbG9jayBjb3VudHMgYXMgYWJhbmRvbmVkLlxuICAgKlxuICAgKiBBIGRlYWQgaG9sZGVyIFBJRCBpcyBhYmFuZG9uZWQgYXQgb25jZSB3aGF0ZXZlciB0aGlzIHNheXMuIFRoZSBkZWZhdWx0IGlzXG4gICAqIHRoZSB0aHJlc2hvbGQgZXZlcnkgd2FpdGluZyBydW4gc3RlYWxzIG9uOyBhIGNhbGxlciB0aGF0IGlzICphbHdheXMqIHdhaXRpbmdcbiAgICogXHUyMDE0IHRoZSBlbXVsYXRvciByZWFwZXIgXHUyMDE0IHBhc3NlcyBhIGZhciB3aWRlciBvbmUsIHNvIGEgbGl2ZSBydW4gdGhhdCBibG9ja3NcbiAgICogaXRzIGV2ZW50IGxvb3AgZm9yIGEgY291cGxlIG9mIG1pbnV0ZXMgaXMgbm90IHJvYmJlZCBvZiBpdHMgbG9jay5cbiAgICpcbiAgICogQGRlZmF1bHQgMiBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSBzdGFsZUFmdGVyU2lsZW5jZUluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVMb2NrSGFuZGxlfS5cbiAqL1xuaW50ZXJmYWNlIENyZWF0ZUxvY2tIYW5kbGVQYXJhbXMge1xuICAvKipcbiAgVGhlIHRyYW5zcG9ydCBsYWJlbCBvZiB0aGlzIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUgdGhpcyBydW4ganVzdCBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIGluZm8gdGhpcyBydW4gd3JvdGUgd2hlbiBpdCBhY3F1aXJlZCB0aGUgbG9jay5cbiAgICovXG4gIHJlYWRvbmx5IG93bkluZm86IExvY2tGaWxlSW5mbztcblxuICAvKipcbiAgVGhlIGxvY2sgc2NvcGUsIGZvciBsb2cgbWVzc2FnZXMuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVUaW1lb3V0RXJyb3J9LlxuICovXG5pbnRlcmZhY2UgQ3JlYXRlVGltZW91dEVycm9yUGFyYW1zIHtcbiAgLyoqXG4gIFRoZSBjdXJyZW50IGhvbGRlcidzIGxvY2sgaW5mbywgb3IgYG51bGxgIGlmIGl0IGNvdWxkIG5vdCBiZSByZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5mbzogTG9ja0ZpbGVJbmZvIHwgbnVsbDtcblxuICAvKipcbiAgVGhlIGxvY2sgc2NvcGUuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgdGltZW91dCB0aGF0IGVsYXBzZWQuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZm9ybWF0V2FpdE1lc3NhZ2V9LlxuICovXG5pbnRlcmZhY2UgRm9ybWF0V2FpdE1lc3NhZ2VQYXJhbXMge1xuICAvKipcbiAgVGhlIGN1cnJlbnQgaG9sZGVyJ3MgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gICAqL1xuICByZWFkb25seSBpbmZvOiBMb2NrRmlsZUluZm8gfCBudWxsO1xuXG4gIC8qKlxuICBUaGUgdHJhbnNwb3J0IGxhYmVsIG9mIHRoZSB3YWl0aW5nIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEhvdyBtdWNoIG9mIHRoZSBhY3F1aXNpdGlvbiB0aW1lb3V0IGlzIGxlZnQuXG4gICAqL1xuICByZWFkb25seSByZW1haW5pbmdJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgbG9jayBzY29wZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEhvdyBsb25nIHRoaXMgcnVuIGhhcyBiZWVuIHdhaXRpbmcgc28gZmFyLlxuICAgKi9cbiAgcmVhZG9ubHkgd2FpdGVkSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgSlNPTiBwYXlsb2FkIHN0b3JlZCBpbnNpZGUgYSBsb2NrIGZpbGUsIGlkZW50aWZ5aW5nIHRoZSBob2xkZXIuXG4gKi9cbmludGVyZmFjZSBMb2NrRmlsZUluZm8ge1xuICAvKipcbiAgV2hlbiB0aGUgbG9jayB3YXMgYWNxdWlyZWQgKGBEYXRlLm5vdygpYCBlcG9jaCBtaWxsaXNlY29uZHMpLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNxdWlyZWRBdEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGhvbGRlciBsYXN0IHByb3ZlZCBpdCB3YXMgc3RpbGwgYWxpdmUgKGBEYXRlLm5vdygpYCBlcG9jaFxuICAgKiBtaWxsaXNlY29uZHMpLCByZWZyZXNoZWQgZXZlcnkge0BsaW5rIEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFN9XG4gICAqIHdoaWxlIHRoZSBsb2NrIGlzIGhlbGQuXG4gICAqXG4gICAqIEFic2VudCBpbiBhIGxvY2sgZmlsZSB3cml0dGVuIGJ5IGFuIG9sZGVyIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLCB3aGljaFxuICAgKiBzdGFtcGVkIHRoZSBQSUQgYnV0IG5ldmVyIGJlYXQuXG4gICAqL1xuICByZWFkb25seSBoZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICBUaGUgaG9zdCB0aGF0IGhvbGRzIHRoZSBsb2NrIChQSUQgbGl2ZW5lc3MgaXMgb25seSB2YWxpZCBvbiB0aGUgc2FtZSBob3N0KS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSB0cmFuc3BvcnQgbGFiZWwgb2YgdGhlIGhvbGRpbmcgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgVGhlIHByb2Nlc3MgSUQgb2YgdGhlIGhvbGRpbmcgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlkOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGRpZFJlZnJlc2hIZWFydGJlYXR9LlxuICovXG5pbnRlcmZhY2UgUmVmcmVzaEhlYXJ0YmVhdFBhcmFtcyB7XG4gIC8qKlxuICBUaGUgdHJhbnNwb3J0IGxhYmVsIG9mIHRoaXMgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgVGhlIHBhdGggdG8gdGhlIGxvY2sgZmlsZSB0byByZWZyZXNoLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIGluZm8gdGhpcyBydW4gd3JvdGUgd2hlbiBpdCBhY3F1aXJlZCB0aGUgbG9jay5cbiAgICovXG4gIHJlYWRvbmx5IG93bkluZm86IExvY2tGaWxlSW5mbztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc3RlYWxTdGFsZUxvY2t9LlxuICovXG5pbnRlcmZhY2UgU3RlYWxTdGFsZUxvY2tQYXJhbXMge1xuICAvKipcbiAgVGhlIGFiYW5kb25lZCBob2xkZXIncyBsb2NrIGluZm8uXG4gICAqL1xuICByZWFkb25seSBpbmZvOiBMb2NrRmlsZUluZm87XG5cbiAgLyoqXG4gIFRoZSB0cmFuc3BvcnQgbGFiZWwgb2YgdGhlIHN0ZWFsaW5nIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUgdG8gcmVtb3ZlLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIHNjb3BlLCBmb3IgdGhlIGxvZyBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBY3F1aXJlcyB0aGUgY3Jvc3MtcHJvY2VzcyBzZXR1cCBsb2NrIGZvciB0aGUgZ2l2ZW4gc2NvcGUsIHdhaXRpbmcgdW50aWwgYW55XG4gKiBjb21wZXRpbmcgcnVuIHJlbGVhc2VzIGl0IChvciBpdHMgbG9jayBpcyBkZXRlY3RlZCBhcyBzdGFsZSkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBsb2NrIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIGhhbmRsZSB3aG9zZSB7QGxpbmsgU2V0dXBMb2NrLnJlbGVhc2V9IGZyZWVzIHRoZSBsb2NrLlxuICogQHRocm93cyBJZiB0aGUgbG9jayBjYW5ub3QgYmUgYWNxdWlyZWQgd2l0aGluIGB0aW1lb3V0SW5NaWxsaXNlY29uZHNgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWNxdWlyZVNldHVwTG9jayhwYXJhbXM6IEFjcXVpcmVTZXR1cExvY2tQYXJhbXMpOiBQcm9taXNlPFNldHVwTG9jaz4ge1xuICBjb25zdCB7XG4gICAgbGFiZWwsXG4gICAgc2NvcGVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgdGltZW91dEluTWlsbGlzZWNvbmRzID0gcGFyYW1zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTO1xuICBjb25zdCBsb2NrRmlsZVBhdGggPSBnZXRMb2NrRmlsZVBhdGgoc2NvcGUpO1xuICBta2RpclN5bmMoZ2V0TG9ja0RpcmVjdG9yeSgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBjb25zdCBzdGFydGVkQXRJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMgPSBzdGFydGVkQXRJbk1pbGxpc2Vjb25kcyArIHRpbWVvdXRJbk1pbGxpc2Vjb25kcztcbiAgbGV0IGxhc3RMb2dnZWRXYWl0QXRJbk1pbGxpc2Vjb25kczogbnVsbCB8IG51bWJlciA9IG51bGw7XG5cbiAgZm9yICg7Oykge1xuICAgIGNvbnN0IG93bkluZm8gPSB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGgsIGxhYmVsKTtcbiAgICBpZiAob3duSW5mbykge1xuICAgICAgcmV0dXJuIGNyZWF0ZUxvY2tIYW5kbGUoe1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgbG9ja0ZpbGVQYXRoLFxuICAgICAgICBvd25JbmZvLFxuICAgICAgICBzY29wZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5mbyA9IHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoKTtcbiAgICBpZiAoaW5mbyAmJiBjaGVja0lzTG9ja1N0YWxlKGluZm8sIEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMpKSB7XG4gICAgICBzdGVhbFN0YWxlTG9jayh7IGluZm8sIGxhYmVsLCBsb2NrRmlsZVBhdGgsIHNjb3BlIH0pO1xuICAgICAgLy8gUmV0cnkgaW1tZWRpYXRlbHkgXHUyMDE0IGJ1dCBzdGlsbCBob25vdXIgdGhlIGRlYWRsaW5lLCBzbyBhIGxvY2sgdGhhdCBhXG4gICAgICAvLyBjb21wZXRpbmcgcnVuIGtlZXBzIHJlY3JlYXRpbmcgY2Fubm90IHNwaW4gdGhpcyBsb29wIGZvcmV2ZXIuXG4gICAgICBpZiAoRGF0ZS5ub3coKSA+PSBkZWFkbGluZUluTWlsbGlzZWNvbmRzKSB7XG4gICAgICAgIHRocm93IGNyZWF0ZVRpbWVvdXRFcnJvcih7XG4gICAgICAgICAgaW5mbyxcbiAgICAgICAgICBzY29wZSxcbiAgICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBub3dJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gICAgaWYgKG5vd0luTWlsbGlzZWNvbmRzID49IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMpIHtcbiAgICAgIHRocm93IGNyZWF0ZVRpbWVvdXRFcnJvcih7XG4gICAgICAgIGluZm8sXG4gICAgICAgIHNjb3BlLFxuICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZExvZ1dhaXQgPSBsYXN0TG9nZ2VkV2FpdEF0SW5NaWxsaXNlY29uZHMgPT09IG51bGxcbiAgICAgIHx8IG5vd0luTWlsbGlzZWNvbmRzIC0gbGFzdExvZ2dlZFdhaXRBdEluTWlsbGlzZWNvbmRzID49IFdBSVRfTE9HX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUztcbiAgICBpZiAoc2hvdWxkTG9nV2FpdCkge1xuICAgICAgbGFzdExvZ2dlZFdhaXRBdEluTWlsbGlzZWNvbmRzID0gbm93SW5NaWxsaXNlY29uZHM7XG4gICAgICBsb2coZm9ybWF0V2FpdE1lc3NhZ2Uoe1xuICAgICAgICBpbmZvLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgcmVtYWluaW5nSW5NaWxsaXNlY29uZHM6IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMgLSBub3dJbk1pbGxpc2Vjb25kcyxcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIHdhaXRlZEluTWlsbGlzZWNvbmRzOiBub3dJbk1pbGxpc2Vjb25kcyAtIHN0YXJ0ZWRBdEluTWlsbGlzZWNvbmRzXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgZGVsYXkoUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMpO1xuICB9XG59XG5cbi8qKlxuICogUmVwb3J0cyB3aGV0aGVyIGEgcnVuIGN1cnJlbnRseSBob2xkcyB0aGUgc2V0dXAgbG9jayBmb3IgYSBzY29wZS5cbiAqXG4gKiBBIGxvY2sgZmlsZSB0aGF0IGV4aXN0cyBidXQgY2Fubm90IGJlIHJlYWQgY291bnRzIGFzIGhlbGQgXHUyMDE0IHRoZSBzYW1lIGFuc3dlclxuICoge0BsaW5rIGFjcXVpcmVTZXR1cExvY2t9IGdpdmVzIGJ5IHdhaXRpbmcgb24gaXQ6IGl0IGlzIGVpdGhlciBtaWQtd3JpdGUgb3JcbiAqIGNvcnJ1cHQsIGFuZCBlaXRoZXIgd2F5IG5vIHJ1biBjYW4gdGFrZSBpdC5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgbG9jayBzY29wZS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGEgaG9sZGVyIHRoYXQgaXMgbm90IHN0YWxlIG93bnMgdGhlIGxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lzU2V0dXBMb2NrSGVsZChzY29wZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGxldCB0ZXh0OiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgdGV4dCA9IHJlYWRGaWxlU3luYyhnZXRMb2NrRmlsZVBhdGgoc2NvcGUpLCAndXRmLTgnKTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICByZXR1cm4gZ2V0RXJyb3JDb2RlKGVycm9yKSAhPT0gJ0VOT0VOVCc7XG4gIH1cblxuICBsZXQgaW5mbzogTG9ja0ZpbGVJbmZvO1xuICB0cnkge1xuICAgIGluZm8gPSBKU09OLnBhcnNlKHRleHQpIGFzIExvY2tGaWxlSW5mbztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gIWNoZWNrSXNMb2NrU3RhbGUoaW5mbywgSEVBUlRCRUFUX1NUQUxFX0lOX01JTExJU0VDT05EUyk7XG59XG5cbi8qKlxuICogVGFrZXMgdGhlIHNldHVwIGxvY2sgZm9yIGEgc2NvcGUgaWYgaXQgaXMgZnJlZSBvciBhYmFuZG9uZWQsIHdpdGhvdXQgd2FpdGluZy5cbiAqXG4gKiBPbmUgYXR0ZW1wdDogYSBsaXZlIGhvbGRlciBcdTIwMTQgb3IgYSBsb2NrIGZpbGUgdGhhdCBjYW5ub3QgYmUgcmVhZCBcdTIwMTQgbWVhbnNcbiAqIGB1bmRlZmluZWRgLCBhbmQgdGhlIGNhbGxlciBkZWNpZGVzIHdoZXRoZXIgdG8gdHJ5IGFnYWluIGxhdGVyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbG9jayBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgQSBoYW5kbGUgd2hvc2Uge0BsaW5rIFNldHVwTG9jay5yZWxlYXNlfSBmcmVlcyB0aGUgbG9jaywgb3IgYHVuZGVmaW5lZGAgd2hpbGUgYW5vdGhlciBydW4gaG9sZHMgaXQuXG4gKiBAdGhyb3dzIElmIHRoZSBmaWxlIHN5c3RlbSBmYWlscyBmb3IgYW55IHJlYXNvbiBvdGhlciB0aGFuIHRoZSBsb2NrIGZpbGUgYWxyZWFkeSBleGlzdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUFjcXVpcmVTZXR1cExvY2socGFyYW1zOiBUcnlBY3F1aXJlU2V0dXBMb2NrUGFyYW1zKTogU2V0dXBMb2NrIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBsYWJlbCwgc2NvcGUgfSA9IHBhcmFtcztcbiAgY29uc3QgbG9ja0ZpbGVQYXRoID0gZ2V0TG9ja0ZpbGVQYXRoKHNjb3BlKTtcbiAgbWtkaXJTeW5jKGdldExvY2tEaXJlY3RvcnkoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgbGV0IG93bkluZm8gPSB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGgsIGxhYmVsKTtcbiAgaWYgKCFvd25JbmZvKSB7XG4gICAgY29uc3QgaW5mbyA9IHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoKTtcbiAgICBpZiAoIWluZm8gfHwgIWNoZWNrSXNMb2NrU3RhbGUoaW5mbywgcGFyYW1zLnN0YWxlQWZ0ZXJTaWxlbmNlSW5NaWxsaXNlY29uZHMgPz8gSEVBUlRCRUFUX1NUQUxFX0lOX01JTExJU0VDT05EUykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc3RlYWxTdGFsZUxvY2soeyBpbmZvLCBsYWJlbCwgbG9ja0ZpbGVQYXRoLCBzY29wZSB9KTtcbiAgICBvd25JbmZvID0gdHJ5Q3JlYXRlTG9ja0ZpbGUobG9ja0ZpbGVQYXRoLCBsYWJlbCk7XG4gICAgaWYgKCFvd25JbmZvKSB7XG4gICAgICAvLyBBbm90aGVyIHJ1biByZWNyZWF0ZWQgaXQgYmV0d2VlbiB0aGUgc3RlYWwgYW5kIHRoaXMgYXR0ZW1wdDsgaXQgaXMgdGhlaXJzIG5vdy5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUxvY2tIYW5kbGUoe1xuICAgIGxhYmVsLFxuICAgIGxvY2tGaWxlUGF0aCxcbiAgICBvd25JbmZvLFxuICAgIHNjb3BlXG4gIH0pO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGxvY2sgY2FuIGJlIGNvbnNpZGVyZWQgYWJhbmRvbmVkLlxuICpcbiAqIEEgbGl2ZSBob2xkZXIgcmVmcmVzaGVzIGl0cyBoZWFydGJlYXQgZXZlcnlcbiAqIHtAbGluayBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTfSwgc28gYSBoZWFydGJlYXQgdGhhdCBzdG9wcGVkIG1lYW5zXG4gKiB0aGUgaG9sZGVyIGlzIGdvbmUuIFRoYXQgaXMgdGhlIHByaW1hcnkgc2lnbmFsLCBiZWNhdXNlIHRoZSByZWNvcmRlZCBQSUQgYWxvbmVcbiAqIGNhbm5vdCBiZSB0cnVzdGVkOiB7QGxpbmsgY2hlY2tJc1Byb2Nlc3NBbGl2ZX0gb25seSBhbnN3ZXJzIFwiZG9lcyAqYSogcHJvY2Vzc1xuICogd2l0aCB0aGlzIFBJRCBleGlzdFwiLCB3aGljaCBhIHJlY3ljbGVkIFBJRCBzYXRpc2ZpZXMgbG9uZyBhZnRlciB0aGUgaG9sZGVyXG4gKiBkaWVkLlxuICpcbiAqIE9uIHRoZSBzYW1lIGhvc3QgYSBkZWFkIFBJRCBpcyBzdGlsbCBhbiBpbW1lZGlhdGUgZ2l2ZS1hd2F5LCBzbyBpdCBpcyBrZXB0IGFzXG4gKiBhIGZhc3QgcGF0aC4gT24gYSBkaWZmZXJlbnQgaG9zdCAoYSBzaGFyZWQvbmV0d29yayB0ZW1wIGRpcmVjdG9yeSkgdGhlIFBJRFxuICogY2Fubm90IGJlIHByb2JlZCBhdCBhbGwgYW5kIHRoZSB0d28gY2xvY2tzIG1heSBkaXNhZ3JlZSwgc28gdGhlIG11Y2ggd2lkZXJcbiAqIHtAbGluayBTVEFMRV9MT0NLX0FHRV9JTl9NSUxMSVNFQ09ORFN9IHRocmVzaG9sZCBpcyB1c2VkIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIGluZm8gLSBUaGUgcGFyc2VkIGxvY2sgaW5mby5cbiAqIEBwYXJhbSBoZWFydGJlYXRTdGFsZUluTWlsbGlzZWNvbmRzIC0gSG93IGxvbmcgYSBzYW1lLWhvc3QgaG9sZGVyIHdob3NlIFBJRCBpcyBhbGl2ZSBtYXkgc3RheSBzaWxlbnQuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGxvY2sgaXMgc3RhbGUgYW5kIG1heSBiZSBzdG9sZW4uXG4gKi9cbmZ1bmN0aW9uIGNoZWNrSXNMb2NrU3RhbGUoaW5mbzogTG9ja0ZpbGVJbmZvLCBoZWFydGJlYXRTdGFsZUluTWlsbGlzZWNvbmRzOiBudW1iZXIpOiBib29sZWFuIHtcbiAgY29uc3Qgc2lsZW50Rm9ySW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpIC0gZ2V0TGFzdFNlZW5BdEluTWlsbGlzZWNvbmRzKGluZm8pO1xuXG4gIGlmIChpbmZvLmhvc3RuYW1lID09PSBob3N0bmFtZSgpKSB7XG4gICAgcmV0dXJuICFjaGVja0lzUHJvY2Vzc0FsaXZlKGluZm8ucGlkKSB8fCBzaWxlbnRGb3JJbk1pbGxpc2Vjb25kcyA+IGhlYXJ0YmVhdFN0YWxlSW5NaWxsaXNlY29uZHM7XG4gIH1cblxuICByZXR1cm4gc2lsZW50Rm9ySW5NaWxsaXNlY29uZHMgPiBTVEFMRV9MT0NLX0FHRV9JTl9NSUxMSVNFQ09ORFM7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbG9jayBmaWxlIHN0aWxsIG5hbWVzIHRoaXMgcHJvY2VzcyBhcyBpdHMgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSBpbmZvIC0gVGhlIHBhcnNlZCBsb2NrIGluZm8uXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBwcm9jZXNzIGhvbGRzIHRoZSBsb2NrLlxuICovXG5mdW5jdGlvbiBjaGVja0lzT3duTG9jayhpbmZvOiBMb2NrRmlsZUluZm8pOiBib29sZWFuIHtcbiAgcmV0dXJuIGluZm8ucGlkID09PSBwcm9jZXNzLnBpZCAmJiBpbmZvLmhvc3RuYW1lID09PSBob3N0bmFtZSgpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcHJvY2VzcyB3aXRoIHRoZSBnaXZlbiBQSUQgaXMgY3VycmVudGx5IGFsaXZlLlxuICpcbiAqIEBwYXJhbSBwaWQgLSBUaGUgcHJvY2VzcyBJRCB0byBwcm9iZS5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvY2VzcyBleGlzdHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrSXNQcm9jZXNzQWxpdmUocGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBwcm9jZXNzLmtpbGwocGlkLCBQUk9DRVNTX0VYSVNURU5DRV9QUk9CRV9TSUdOQUwpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIC8vIGBFUEVSTWAgbWVhbnMgdGhlIHByb2Nlc3MgZXhpc3RzIGJ1dCBpcyBvd25lZCBieSBhbm90aGVyIHVzZXIgXHUyMDE0IHN0aWxsIGFsaXZlLlxuICAgIHJldHVybiBnZXRFcnJvckNvZGUoZXJyb3IpID09PSAnRVBFUk0nO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHtAbGluayBTZXR1cExvY2t9IGhhbmRsZSB0aGF0IGtlZXBzIHRoZSBsb2NrJ3MgaGVhcnRiZWF0IGZyZXNoIHdoaWxlXG4gKiBoZWxkIGFuZCByZW1vdmVzIHRoZSBsb2NrIGZpbGUgb24gcmVsZWFzZS5cbiAqXG4gKiBUaGUgaGVhcnRiZWF0IHRpbWVyIGlzIGB1bnJlZmBlZCBzbyBpdCBjYW4gbmV2ZXIga2VlcCB0aGUgcHJvY2VzcyBhbGl2ZSBvbiBpdHNcbiAqIG93biwgYW5kIGl0IHN0b3BzIGFzIHNvb24gYXMgdGhlIGxvY2sgZmlsZSBuYW1lcyBzb21lYm9keSBlbHNlIFx1MjAxNCBhIHJ1biB3aG9zZVxuICogbG9jayB3YXMgc3RvbGVuIG11c3Qgbm90IG92ZXJ3cml0ZSBpdHMgc3VjY2Vzc29yJ3MgbG9jaywgbm9yIGRlbGV0ZSBpdCBvblxuICogcmVsZWFzZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGhhbmRsZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIGxvY2sgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2NrSGFuZGxlKHBhcmFtczogQ3JlYXRlTG9ja0hhbmRsZVBhcmFtcyk6IFNldHVwTG9jayB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBsb2NrRmlsZVBhdGgsXG4gICAgb3duSW5mbyxcbiAgICBzY29wZVxuICB9ID0gcGFyYW1zO1xuICBsZXQgaXNSZWxlYXNlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGhlYXJ0YmVhdFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgIGNvbnN0IGlzU3RpbGxPdXJzID0gZGlkUmVmcmVzaEhlYXJ0YmVhdCh7XG4gICAgICBsYWJlbCxcbiAgICAgIGxvY2tGaWxlUGF0aCxcbiAgICAgIG93bkluZm9cbiAgICB9KTtcbiAgICBpZiAoaXNTdGlsbE91cnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2xlYXJJbnRlcnZhbChoZWFydGJlYXRUaW1lcik7XG4gICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIFRoZSAnJHtzY29wZX0nIHNldHVwIGxvY2sgaXMgbm8gbG9uZ2VyIG91cnMgXHUyMDE0IGFub3RoZXIgcnVuIHRvb2sgaXQgb3Zlci4gSGVhcnRiZWF0IHN0b3BwZWQuYCk7XG4gIH0sIEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMpO1xuICBoZWFydGJlYXRUaW1lci51bnJlZigpO1xuXG4gIHJldHVybiB7XG4gICAgcmVsZWFzZSgpOiB2b2lkIHtcbiAgICAgIGlmIChpc1JlbGVhc2VkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlzUmVsZWFzZWQgPSB0cnVlO1xuICAgICAgY2xlYXJJbnRlcnZhbChoZWFydGJlYXRUaW1lcik7XG5cbiAgICAgIGNvbnN0IGluZm8gPSByZWFkTG9ja0ZpbGVJbmZvKGxvY2tGaWxlUGF0aCk7XG4gICAgICBpZiAoaW5mbyAmJiAhY2hlY2tJc093bkxvY2soaW5mbykpIHtcbiAgICAgICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIExlYXZpbmcgdGhlICcke3Njb3BlfScgc2V0dXAgbG9jayBpbiBwbGFjZSBcdTIwMTQgaXQgbm93IGJlbG9uZ3MgdG8gJHtkZXNjcmliZUluZm8oaW5mbyl9LmApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBybVN5bmMobG9ja0ZpbGVQYXRoLCB7IGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGVycm9yIHRocm93biB3aGVuIHRoZSBsb2NrIGNvdWxkIG5vdCBiZSBhY3F1aXJlZCBpbiB0aW1lLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZXJyb3IgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBlcnJvciB0byB0aHJvdy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlVGltZW91dEVycm9yKHBhcmFtczogQ3JlYXRlVGltZW91dEVycm9yUGFyYW1zKTogRXJyb3Ige1xuICBjb25zdCB7XG4gICAgaW5mbyxcbiAgICBzY29wZSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgfSA9IHBhcmFtcztcbiAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICBgVGltZWQgb3V0IGFmdGVyICR7U3RyaW5nKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyl9bXMgd2FpdGluZyBmb3IgdGhlICcke3Njb3BlfScgaW50ZWdyYXRpb24tdGVzdCBzZXR1cCBsb2NrIGBcbiAgICAgICsgYGhlbGQgYnkgJHtkZXNjcmliZUhvbGRlcihpbmZvKX0uIEFub3RoZXIgaW50ZWdyYXRpb24tdGVzdCBydW4gaXMgc3RpbGwgaW4gcHJvZ3Jlc3MuYFxuICApO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGFmdGVyIHRoZSBnaXZlbiBkZWxheS4gVXNlZCB0byBwb2xsIGJldHdlZW4gbG9jay1hY3F1aXNpdGlvbiBhdHRlbXB0cy5cbiAqXG4gKiBAcGFyYW0gbWlsbGlzZWNvbmRzIC0gVGhlIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIHRoZSBkZWxheS5cbiAqL1xuZnVuY3Rpb24gZGVsYXkobWlsbGlzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dChyZXNvbHZlLCBtaWxsaXNlY29uZHMpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBsb2NrIGhvbGRlciBmb3IgbG9nL2Vycm9yXG4gKiBtZXNzYWdlcy5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBwYXJzZWQgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gKiBAcmV0dXJucyBBIGRlc2NyaXB0aW9uIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZGVzY3JpYmVIb2xkZXIoaW5mbzogTG9ja0ZpbGVJbmZvIHwgbnVsbCk6IHN0cmluZyB7XG4gIHJldHVybiBpbmZvID8gZGVzY3JpYmVJbmZvKGluZm8pIDogJ2Fub3RoZXIgcnVuJztcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEge0BsaW5rIExvY2tGaWxlSW5mb30gYXMgYSBzaG9ydCBpZGVudGlmaWVyIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBsb2NrIGluZm8uXG4gKiBAcmV0dXJucyBBIHN0cmluZyBsaWtlIGBwaWQgMTIzNCAob2JzaWRpYW4tY2xpKSBvbiBob3N0YC5cbiAqL1xuZnVuY3Rpb24gZGVzY3JpYmVJbmZvKGluZm86IExvY2tGaWxlSW5mbyk6IHN0cmluZyB7XG4gIHJldHVybiBgcGlkICR7U3RyaW5nKGluZm8ucGlkKX0gKCR7aW5mby5sYWJlbH0pIG9uICR7aW5mby5ob3N0bmFtZX1gO1xufVxuXG4vKipcbiAqIFJld3JpdGVzIHRoZSBsb2NrIGZpbGUgd2l0aCBhIGZyZXNoIGhlYXJ0YmVhdCB0aW1lc3RhbXAsIHNvIHdhaXRpbmcgcnVucyBjYW5cbiAqIHRlbGwgdGhpcyBob2xkZXIgYXBhcnQgZnJvbSBhIGNyYXNoZWQgb25lIHdob3NlIFBJRCBoYXMgYmVlbiByZWN5Y2xlZC5cbiAqXG4gKiBBIGxvY2sgZmlsZSB0aGF0IGlzIG1pc3Npbmcgb3IgdW5yZWFkYWJsZSBpcyBzdGlsbCB0cmVhdGVkIGFzIG91cnMgYW5kIHJld3JpdHRlbjpcbiAqIHRoaXMgcnVuIG5ldmVyIHJlbGVhc2VkLCBzbyBpdHMgY2xhaW0gc3RhbmRzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcmVmcmVzaCBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgYHRydWVgIHdoaWxlIHRoZSBsb2NrIGlzIHN0aWxsIG91cnMsIGBmYWxzZWAgb25jZSBhbm90aGVyIHJ1biBvd25zIGl0LlxuICovXG5mdW5jdGlvbiBkaWRSZWZyZXNoSGVhcnRiZWF0KHBhcmFtczogUmVmcmVzaEhlYXJ0YmVhdFBhcmFtcyk6IGJvb2xlYW4ge1xuICBjb25zdCB7XG4gICAgbGFiZWwsXG4gICAgbG9ja0ZpbGVQYXRoLFxuICAgIG93bkluZm9cbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBpbmZvID0gcmVhZExvY2tGaWxlSW5mbyhsb2NrRmlsZVBhdGgpO1xuICBpZiAoaW5mbyAmJiAhY2hlY2tJc093bkxvY2soaW5mbykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCByZWZyZXNoZWRJbmZvOiBMb2NrRmlsZUluZm8gPSB7XG4gICAgLi4ub3duSW5mbyxcbiAgICBoZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzOiBEYXRlLm5vdygpXG4gIH07XG4gIHRyeSB7XG4gICAgd3JpdGVGaWxlU3luYyhsb2NrRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHJlZnJlc2hlZEluZm8pKTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAvLyBOb3QgZmF0YWw6IHRoZSBsb2NrIGlzIHN0aWxsIGhlbGQgYW5kIHdpbGwgc3RpbGwgYmUgcmVsZWFzZWQuIE9ubHkgaXRzXG4gICAgLy8gaGVhcnRiZWF0IGdvZXMgc3RhbGUsIHdoaWNoIGF0IHdvcnN0IGxldHMgYSB3YWl0aW5nIHJ1biBzdGVhbCBpdC5cbiAgICBsb2coYFtpbnRlZ3JhdGlvbi1zZXR1cDoke2xhYmVsfV0gRmFpbGVkIHRvIHJlZnJlc2ggdGhlIHNldHVwIGxvY2sgaGVhcnRiZWF0OiAke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgYSBkdXJhdGlvbiBhcyBhIGNvbXBhY3QgYDFtIDMwc2AgLyBgNDVzYCBzdHJpbmcgZm9yIHByb2dyZXNzIGxvZ3MuXG4gKlxuICogQHBhcmFtIG1pbGxpc2Vjb25kcyAtIFRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGR1cmF0aW9uLlxuICovXG5mdW5jdGlvbiBmb3JtYXREdXJhdGlvbihtaWxsaXNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHRvdGFsU2Vjb25kcyA9IE1hdGgucm91bmQobWlsbGlzZWNvbmRzIC8gTUlMTElTRUNPTkRTX1BFUl9TRUNPTkQpO1xuICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcih0b3RhbFNlY29uZHMgLyBTRUNPTkRTX1BFUl9NSU5VVEUpO1xuICBjb25zdCBzZWNvbmRzID0gdG90YWxTZWNvbmRzICUgU0VDT05EU19QRVJfTUlOVVRFO1xuICByZXR1cm4gbWludXRlcyA+IDAgPyBgJHtTdHJpbmcobWludXRlcyl9bSAke1N0cmluZyhzZWNvbmRzKX1zYCA6IGAke1N0cmluZyhzZWNvbmRzKX1zYDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHBlcmlvZGljIFwic3RpbGwgd2FpdGluZ1wiIHByb2dyZXNzIGxpbmUsIHNvIGEgbGVnaXRpbWF0ZSBtdWx0aS1taW51dGVcbiAqIHdhaXQgaXMgZGlzdGluZ3Vpc2hhYmxlIGZyb20gYSBoYW5nIGluIHRoZSB0ZXJtaW5hbC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIG1lc3NhZ2UgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0V2FpdE1lc3NhZ2UocGFyYW1zOiBGb3JtYXRXYWl0TWVzc2FnZVBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBpbmZvLFxuICAgIGxhYmVsLFxuICAgIHJlbWFpbmluZ0luTWlsbGlzZWNvbmRzLFxuICAgIHNjb3BlLFxuICAgIHdhaXRlZEluTWlsbGlzZWNvbmRzXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGhlbGRGb3IgPSBpbmZvID8gYCwgaGVsZCBmb3IgJHtmb3JtYXREdXJhdGlvbihEYXRlLm5vdygpIC0gaW5mby5hY3F1aXJlZEF0SW5NaWxsaXNlY29uZHMpfWAgOiAnJztcbiAgcmV0dXJuIGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIFdhaXRpbmcgZm9yIHRoZSAnJHtzY29wZX0nIHNldHVwIGxvY2sgaGVsZCBieSAke2Rlc2NyaWJlSG9sZGVyKGluZm8pfSB0byBiZSByZWxlYXNlZCBgXG4gICAgKyBgKHdhaXRlZCAke2Zvcm1hdER1cmF0aW9uKHdhaXRlZEluTWlsbGlzZWNvbmRzKX0ke2hlbGRGb3J9LCBnaXZpbmcgdXAgaW4gJHtmb3JtYXREdXJhdGlvbihyZW1haW5pbmdJbk1pbGxpc2Vjb25kcyl9KS4uLmA7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGBjb2RlYCBmcm9tIGEgTm9kZS5qcyBzeXN0ZW0gZXJyb3IsIGlmIHByZXNlbnQuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIHRocm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBlcnJvciBjb2RlIHN0cmluZywgb3IgYHVuZGVmaW5lZGAgaWYgbm90IGEgY29kZWQgZXJyb3IuXG4gKi9cbmZ1bmN0aW9uIGdldEVycm9yQ29kZShlcnJvcjogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICdjb2RlJyBpbiBlcnJvciAmJiB0eXBlb2YgZXJyb3IuY29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXJyb3IuY29kZTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hlbiB0aGUgaG9sZGVyIHdhcyBsYXN0IGtub3duIHRvIGJlIGFsaXZlIFx1MjAxNCBpdHMgbW9zdCByZWNlbnQgaGVhcnRiZWF0LFxuICogZmFsbGluZyBiYWNrIHRvIGl0cyBhY3F1aXNpdGlvbiB0aW1lIGZvciBhIGxvY2sgZmlsZSB3cml0dGVuIGJ5IGFuIG9sZGVyXG4gKiB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZSB0aGF0IHN0YW1wZWQgbm8gaGVhcnRiZWF0IGF0IGFsbC5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBwYXJzZWQgbG9jayBpbmZvLlxuICogQHJldHVybnMgVGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGUgaG9sZGVyJ3MgbGFzdCBzaWduIG9mIGxpZmUuXG4gKi9cbmZ1bmN0aW9uIGdldExhc3RTZWVuQXRJbk1pbGxpc2Vjb25kcyhpbmZvOiBMb2NrRmlsZUluZm8pOiBudW1iZXIge1xuICByZXR1cm4gaW5mby5oZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzID8/IGluZm8uYWNxdWlyZWRBdEluTWlsbGlzZWNvbmRzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHNoYXJlZCBsb2NrIGRpcmVjdG9yeSBpbnNpZGUgdGhlIE9TIHRlbXAgZGlyZWN0b3J5LlxuICpcbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBsb2NrIGRpcmVjdG9yeS5cbiAqL1xuZnVuY3Rpb24gZ2V0TG9ja0RpcmVjdG9yeSgpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbih0bXBkaXIoKSwgTE9DS19ESVJfTkFNRSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbG9jayBmaWxlIHBhdGggZm9yIHRoZSBnaXZlbiBzY29wZS5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgbG9jayBzY29wZS5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBzY29wZSdzIGxvY2sgZmlsZS5cbiAqL1xuZnVuY3Rpb24gZ2V0TG9ja0ZpbGVQYXRoKHNjb3BlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbihnZXRMb2NrRGlyZWN0b3J5KCksIGAke3Njb3BlfSR7TE9DS19GSUxFX1NVRkZJWH1gKTtcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIHRoZSBsb2NrIGZpbGUsIGlmIGl0IGV4aXN0cyBhbmQgaXMgdmFsaWQgSlNPTi5cbiAqXG4gKiBAcGFyYW0gbG9ja0ZpbGVQYXRoIC0gVGhlIHBhdGggdG8gdGhlIGxvY2sgZmlsZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoOiBzdHJpbmcpOiBMb2NrRmlsZUluZm8gfCBudWxsIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMobG9ja0ZpbGVQYXRoLCAndXRmLTgnKSkgYXMgTG9ja0ZpbGVJbmZvO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZXMgYW4gYWJhbmRvbmVkIGhvbGRlcidzIGxvY2sgZmlsZSwgc2F5aW5nIHdob3NlIGl0IHdhcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGFiYW5kb25lZCBob2xkZXIsIGFuZCB3aG8gaXMgdGFraW5nIG92ZXIuXG4gKi9cbmZ1bmN0aW9uIHN0ZWFsU3RhbGVMb2NrKHBhcmFtczogU3RlYWxTdGFsZUxvY2tQYXJhbXMpOiB2b2lkIHtcbiAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtwYXJhbXMubGFiZWx9XSBTdGVhbGluZyBzdGFsZSAnJHtwYXJhbXMuc2NvcGV9JyBzZXR1cCBsb2NrIGZyb20gJHtkZXNjcmliZUluZm8ocGFyYW1zLmluZm8pfS5gKTtcbiAgcm1TeW5jKHBhcmFtcy5sb2NrRmlsZVBhdGgsIHsgZm9yY2U6IHRydWUgfSk7XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gYXRvbWljYWxseSBjcmVhdGUgdGhlIGxvY2sgZmlsZSAoZmFpbGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cykuXG4gKlxuICogQHBhcmFtIGxvY2tGaWxlUGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUuXG4gKiBAcGFyYW0gbGFiZWwgLSBUaGUgdHJhbnNwb3J0IGxhYmVsIHRvIHJlY29yZCBpbiB0aGUgbG9jayBmaWxlLlxuICogQHJldHVybnMgVGhlIGxvY2sgaW5mbyB3cml0dGVuIG9uIHN1Y2Nlc3MsIG9yIGBudWxsYCBpZiB0aGUgbG9jayBpcyBhbHJlYWR5IGhlbGQuXG4gKiBAdGhyb3dzIElmIHRoZSBmaWxlIHN5c3RlbSBmYWlscyBmb3IgYW55IHJlYXNvbiBvdGhlciB0aGFuIHRoZSBmaWxlIGV4aXN0aW5nLlxuICovXG5mdW5jdGlvbiB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGg6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IExvY2tGaWxlSW5mbyB8IG51bGwge1xuICBjb25zdCBub3dJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IGluZm86IExvY2tGaWxlSW5mbyA9IHtcbiAgICBhY3F1aXJlZEF0SW5NaWxsaXNlY29uZHM6IG5vd0luTWlsbGlzZWNvbmRzLFxuICAgIGhlYXJ0YmVhdEF0SW5NaWxsaXNlY29uZHM6IG5vd0luTWlsbGlzZWNvbmRzLFxuICAgIGhvc3RuYW1lOiBob3N0bmFtZSgpLFxuICAgIGxhYmVsLFxuICAgIHBpZDogcHJvY2Vzcy5waWRcbiAgfTtcblxuICB0cnkge1xuICAgIHdyaXRlRmlsZVN5bmMobG9ja0ZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShpbmZvKSwgeyBmbGFnOiAnd3gnIH0pO1xuICAgIHJldHVybiBpbmZvO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGlmIChnZXRFcnJvckNvZGUoZXJyb3IpID09PSAnRUVYSVNUJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQSxxQkFLTztBQUNQLHFCQUdPO0FBQ1AsdUJBQXFCO0FBQ3JCLDBCQUFvQjtBQUVwQiw2QkFBOEI7QUFDOUIsaUJBQW9CO0FBT2IsTUFBTSwyQkFBMkI7QUFFeEMsTUFBTSxnQkFBZ0I7QUFDdEIsTUFBTSxtQkFBbUI7QUFDekIsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSwwQkFBMEI7QUFDaEMsTUFBTSxxQkFBcUI7QUFDM0IsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSxxQ0FBcUMsZ0NBQWdDO0FBSzNFLE1BQU0saUNBQWlDO0FBQ3ZDLE1BQU0sa0NBQWtDLHFDQUFxQztBQUM3RSxNQUFNLCtCQUErQjtBQUNyQyxNQUFNLG9DQUFv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