@dbx-tools/appkit 0.9.4 → 0.9.6

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 (47) hide show
  1. package/README.md +9 -9
  2. package/index.ts +12 -6
  3. package/lib/index.d.ts +12 -6
  4. package/lib/index.js +9 -5
  5. package/lib/src/_cache-storage.js +10 -24
  6. package/lib/src/appkit.js +5 -5
  7. package/lib/src/brand-context.js +11 -0
  8. package/lib/src/bundle.d.ts +8 -8
  9. package/lib/src/bundle.js +8 -8
  10. package/lib/src/databricks.js +3 -3
  11. package/lib/src/identity.js +7 -7
  12. package/lib/src/lakebase-resolver.d.ts +1 -1
  13. package/lib/src/lakebase-resolver.js +22 -21
  14. package/lib/src/migration.d.ts +17 -0
  15. package/lib/src/migration.js +28 -0
  16. package/lib/src/pgaddress.d.ts +24 -97
  17. package/lib/src/pgaddress.js +32 -161
  18. package/lib/src/plugin-execution.d.ts +17 -0
  19. package/lib/src/plugin-execution.js +28 -0
  20. package/lib/src/{plugin.d.ts → plugin-registry.d.ts} +9 -13
  21. package/lib/src/plugin-registry.js +97 -0
  22. package/lib/src/provision.js +5 -5
  23. package/lib/src/tool-provider.d.ts +17 -0
  24. package/lib/src/tool-provider.js +20 -0
  25. package/lib/src/toolkit-entries.js +34 -0
  26. package/lib/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +5 -4
  28. package/src/_cache-storage.ts +12 -25
  29. package/src/appkit.ts +4 -6
  30. package/src/brand-context.ts +13 -0
  31. package/src/bundle.ts +11 -11
  32. package/src/databricks.ts +2 -2
  33. package/src/identity.ts +6 -6
  34. package/src/lakebase-resolver.ts +21 -20
  35. package/src/migration.ts +40 -0
  36. package/src/pgaddress.ts +46 -196
  37. package/src/plugin-execution.ts +42 -0
  38. package/src/{plugin.ts → plugin-registry.ts} +14 -17
  39. package/src/provision.ts +4 -4
  40. package/src/tool-provider.ts +34 -0
  41. package/lib/src/brand.js +0 -11
  42. package/lib/src/plugin.js +0 -97
  43. package/lib/src/toolkit.js +0 -34
  44. package/src/brand.ts +0 -13
  45. /package/lib/src/{brand.d.ts → brand-context.d.ts} +0 -0
  46. /package/lib/src/{toolkit.d.ts → toolkit-entries.d.ts} +0 -0
  47. /package/src/{toolkit.ts → toolkit-entries.ts} +0 -0
@@ -10,7 +10,7 @@
10
10
  * @module
11
11
  */
12
12
  import { Context } from "@databricks/sdk-experimental";
13
- import { async } from "@dbx-tools/shared-core";
13
+ import { asyncUtils } from "@dbx-tools/shared-core";
14
14
  export function toContext(source, input) {
15
15
  if (!(source instanceof AbortController)) {
16
16
  if (source instanceof Context)
@@ -18,7 +18,7 @@ export function toContext(source, input) {
18
18
  return new Context({ cancellationToken: signalToCancellationToken(source) });
19
19
  }
20
20
  if (input instanceof AbortSignal) {
21
- async.tieAbortSignal(source, input);
21
+ asyncUtils.tieAbortSignal(source, input);
22
22
  }
23
23
  else if (input instanceof Context) {
24
24
  const token = input.cancellationToken;
@@ -64,4 +64,4 @@ function tieCancellationToken(controller, token) {
64
64
  }
65
65
  token.onCancellationRequested((reason) => controller.abort(reason));
66
66
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJyaWNrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYnJpY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBb0MvQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQXFDLEVBQUUsS0FBbUI7SUFDbEYsSUFBSSxDQUFDLENBQUMsTUFBTSxZQUFZLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDekMsSUFBSSxNQUFNLFlBQVksT0FBTztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7U0FBTSxJQUFJLEtBQUssWUFBWSxPQUFPLEVBQUUsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDdEMsSUFBSSxLQUFLO1lBQUUsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMseUJBQXlCLENBQUMsTUFBbUI7SUFDcEQsT0FBTztRQUNMLElBQUksdUJBQXVCO1lBQ3pCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDO1FBQ0QsdUJBQXVCLENBQUMsRUFBRTtZQUN4QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEIsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RSxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsb0JBQW9CLENBQUMsVUFBMkIsRUFBRSxLQUF3QjtJQUNqRixJQUFJLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2xDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixPQUFPO0lBQ1QsQ0FBQztJQUNELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyaWMgRGF0YWJyaWNrcyBTREsgZ2x1ZSAobm8gQXBwS2l0KTogYWRhcHQgV0hBVFdHIGNhbmNlbGxhdGlvblxuICogKGBBYm9ydFNpZ25hbGAgLyBgQWJvcnRDb250cm9sbGVyYCkgaW50byB0aGUgU0RLJ3MgYENvbnRleHRgIC9cbiAqIGBDYW5jZWxsYXRpb25Ub2tlbmAgc2hhcGVzIHNvIGEgc2luZ2xlIGBBYm9ydENvbnRyb2xsZXJgIGNhbiBkcml2ZSBldmVyeVxuICogaW4tZmxpZ2h0IFNESyBjYWxsLlxuICpcbiAqIFNlcnZlci1vbmx5OiBsZWFucyBvbiB0aGUgRGF0YWJyaWNrcyBTREsgYENvbnRleHRgLiBMaXZlcyBpbiBub2RlLWFwcGtpdCBzb1xuICogdGhlIGJyb3dzZXItc2FmZSBzaGFyZWQtY29yZSBzdGF5cyBTREstZnJlZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDYW5jZWxsYXRpb25Ub2tlbiB9IGZyb20gXCJAZGF0YWJyaWNrcy9zZGstZXhwZXJpbWVudGFsXCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIkBkYXRhYnJpY2tzL3Nkay1leHBlcmltZW50YWxcIjtcbmltcG9ydCB7IGFzeW5jIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcblxuLyoqIEVpdGhlciBhbiBTREsgYENvbnRleHRgIG9yIGEgV0hBVFdHIGBBYm9ydFNpZ25hbGAuICovXG5leHBvcnQgdHlwZSBDb250ZXh0TGlrZSA9IENvbnRleHQgfCBBYm9ydFNpZ25hbDtcblxuLyoqXG4gKiBXcmFwIGEgYENvbnRleHRgIChyZXR1cm5lZCBhcy1pcykgb3IgYEFib3J0U2lnbmFsYCAoYWRhcHRlZCkgYXMgYW4gU0RLIGBDb250ZXh0YC5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgZGF0YWJyaWNrcyB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdFwiO1xuICogaW1wb3J0IHsgZ2V0V29ya3NwYWNlQ2xpZW50IH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuICpcbiAqIGF3YWl0IGdldFdvcmtzcGFjZUNsaWVudCh7fSkuYXBpQ2xpZW50LnJlcXVlc3QoXG4gKiAgIHsgcGF0aDogXCIvYXBpLzIuMC9zZXJ2aW5nLWVuZHBvaW50c1wiLCBtZXRob2Q6IFwiR0VUXCIsIGhlYWRlcnM6IG5ldyBIZWFkZXJzKCksIHJhdzogZmFsc2UgfSxcbiAqICAgZGF0YWJyaWNrcy50b0NvbnRleHQocmVxdWVzdC5zaWduYWwpLFxuICogKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ29udGV4dChpbnB1dDogQ29udGV4dExpa2UpOiBDb250ZXh0O1xuLyoqXG4gKiBEZXJpdmUgYW4gU0RLIGBDb250ZXh0YCBmcm9tIGBjb250cm9sbGVyLnNpZ25hbGAsIG9wdGlvbmFsbHkgdHlpbmcgYGlucHV0YFxuICogaW50byB0aGUgY29udHJvbGxlciBzbyB0aGUgY29udHJvbGxlciBiZWNvbWVzIHRoZSBzaW5nbGUgY2FuY2VsbGF0aW9uXG4gKiBzb3VyY2UgZm9yIGRvd25zdHJlYW0gU0RLIGNhbGxzOlxuICpcbiAqICAgLSBgQWJvcnRTaWduYWxgOiBhYm9ydGluZyBpdCBwcm9wYWdhdGVzIGludG8gYGNvbnRyb2xsZXJgIChhbmQgZnJvbSB0aGVyZVxuICogICAgIGludG8gZXZlcnkgU0RLIGNhbGwgeW91IHBhc3MgdGhlIHJldHVybmVkIGNvbnRleHQgdG8pLlxuICogICAtIGBDb250ZXh0YDogaXRzIGBjYW5jZWxsYXRpb25Ub2tlbmAgaXMgdGllZCBpbnRvIGBjb250cm9sbGVyYCwgYW5kIGl0c1xuICogICAgIG90aGVyIGZpZWxkcyAoYGxvZ2dlcmAsIGBvcE5hbWVgLCBgcm9vdENsYXNzTmFtZWAsIGByb290Rm5OYW1lYCwgYG9wSWRgKVxuICogICAgIGFyZSBwcmVzZXJ2ZWQgaW4gdGhlIHJldHVybmVkIGBDb250ZXh0YC4gVGhlIHJldHVybmVkIGNvbnRleHQnc1xuICogICAgIGBjYW5jZWxsYXRpb25Ub2tlbmAgaXMgcmVwbGFjZWQgd2l0aCBvbmUgYmFja2VkIGJ5IGBjb250cm9sbGVyLnNpZ25hbGAuXG4gKlxuICogVGhlIHRpZSBpcyBvbmUtd2F5IChwYXJlbnQgLT4gY2hpbGQpOiBhYm9ydGluZyBgY29udHJvbGxlcmAgZGlyZWN0bHkgZG9lc1xuICogTk9UIGNhbmNlbCBgaW5wdXRgLiBTbyBhIHJlcXVlc3QtbGV2ZWwgY2FuY2VsICh5b3VyIGxvb3AncyBgdHJ5L2ZpbmFsbHkge1xuICogY29udHJvbGxlci5hYm9ydCgpIH1gKSB3b24ndCB0ZWFyIGRvd24gYSBjYWxsZXItc3VwcGxpZWQgQWJvcnRTaWduYWwgaXRcbiAqIGRpZG4ndCBvd24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0NvbnRleHQoY29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyLCBpbnB1dD86IENvbnRleHRMaWtlKTogQ29udGV4dDtcbmV4cG9ydCBmdW5jdGlvbiB0b0NvbnRleHQoc291cmNlOiBBYm9ydENvbnRyb2xsZXIgfCBDb250ZXh0TGlrZSwgaW5wdXQ/OiBDb250ZXh0TGlrZSk6IENvbnRleHQge1xuICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBBYm9ydENvbnRyb2xsZXIpKSB7XG4gICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIENvbnRleHQpIHJldHVybiBzb3VyY2U7XG4gICAgcmV0dXJuIG5ldyBDb250ZXh0KHsgY2FuY2VsbGF0aW9uVG9rZW46IHNpZ25hbFRvQ2FuY2VsbGF0aW9uVG9rZW4oc291cmNlKSB9KTtcbiAgfVxuICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBBYm9ydFNpZ25hbCkge1xuICAgIGFzeW5jLnRpZUFib3J0U2lnbmFsKHNvdXJjZSwgaW5wdXQpO1xuICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgQ29udGV4dCkge1xuICAgIGNvbnN0IHRva2VuID0gaW5wdXQuY2FuY2VsbGF0aW9uVG9rZW47XG4gICAgaWYgKHRva2VuKSB0aWVDYW5jZWxsYXRpb25Ub2tlbihzb3VyY2UsIHRva2VuKTtcbiAgICBjb25zdCBtZXJnZWQgPSBpbnB1dC5jb3B5KCk7XG4gICAgbWVyZ2VkLnNldEl0ZW1zKHsgY2FuY2VsbGF0aW9uVG9rZW46IHNpZ25hbFRvQ2FuY2VsbGF0aW9uVG9rZW4oc291cmNlLnNpZ25hbCkgfSk7XG4gICAgcmV0dXJuIG1lcmdlZDtcbiAgfVxuICByZXR1cm4gbmV3IENvbnRleHQoeyBjYW5jZWxsYXRpb25Ub2tlbjogc2lnbmFsVG9DYW5jZWxsYXRpb25Ub2tlbihzb3VyY2Uuc2lnbmFsKSB9KTtcbn1cblxuLyoqXG4gKiBBZGFwdCBhIFdIQVRXRyBgQWJvcnRTaWduYWxgIHRvIHRoZSBEYXRhYnJpY2tzIFNESydzIGBDYW5jZWxsYXRpb25Ub2tlbmBcbiAqIGludGVyZmFjZS4gVGhlIFNESydzIGBhcGktY2xpZW50LnRzYCBpbnRlcm5hbGx5IGNyZWF0ZXMgYW4gYEFib3J0Q29udHJvbGxlcmBcbiAqIGFuZCB3aXJlcyBgY2FuY2VsbGF0aW9uVG9rZW4ub25DYW5jZWxsYXRpb25SZXF1ZXN0ZWRgIHRvIGl0LCBzbyB0aGlzIGFkYXB0ZXJcbiAqIGlzIHRoZSBvbmUtbGluZSBicmlkZ2UgZnJvbSBcInBsYXRmb3JtLXN0YW5kYXJkIGNhbmNlbGxhdGlvblwiIHRvIFwidGhlIFNES1xuICogYWJvcnRzIHRoZSBmZXRjaCBvbiB5b3VyIGJlaGFsZlwiLlxuICovXG5mdW5jdGlvbiBzaWduYWxUb0NhbmNlbGxhdGlvblRva2VuKHNpZ25hbDogQWJvcnRTaWduYWwpOiBDYW5jZWxsYXRpb25Ub2tlbiB7XG4gIHJldHVybiB7XG4gICAgZ2V0IGlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCkge1xuICAgICAgcmV0dXJuIHNpZ25hbC5hYm9ydGVkO1xuICAgIH0sXG4gICAgb25DYW5jZWxsYXRpb25SZXF1ZXN0ZWQoY2IpIHtcbiAgICAgIGlmIChzaWduYWwuYWJvcnRlZCkge1xuICAgICAgICBjYihzaWduYWwucmVhc29uKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCAoKSA9PiBjYihzaWduYWwucmVhc29uKSwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogVGllIHRoZSBTREsncyBgQ2FuY2VsbGF0aW9uVG9rZW5gIGludGVyZmFjZSBiYWNrIGludG8gYW4gYEFib3J0Q29udHJvbGxlcmAuXG4gKiBNaXJyb3JzIGBhc3luYy50aWVBYm9ydFNpZ25hbGAgYnV0IGZvciB0aGUgU0RLJ3MgY2FuY2VsbGF0aW9uIHNoYXBlLCB1c2VkXG4gKiB3aGVuIGEgY2FsbGVyIGhhbmRzIHVzIGEgcHJlLWJ1aWx0IGBDb250ZXh0YCB3aG9zZSB0b2tlbiB3ZSB3YW50IHRvIGZvbGQgaW50b1xuICogb3VyIG93biBjb250cm9sbGVyLlxuICovXG5mdW5jdGlvbiB0aWVDYW5jZWxsYXRpb25Ub2tlbihjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIsIHRva2VuOiBDYW5jZWxsYXRpb25Ub2tlbik6IHZvaWQge1xuICBpZiAodG9rZW4uaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQpIHtcbiAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRva2VuLm9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKChyZWFzb24pID0+IGNvbnRyb2xsZXIuYWJvcnQocmVhc29uKSk7XG59XG4iXX0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJyaWNrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYnJpY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBb0NwRCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQXFDLEVBQUUsS0FBbUI7SUFDbEYsSUFBSSxDQUFDLENBQUMsTUFBTSxZQUFZLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDekMsSUFBSSxNQUFNLFlBQVksT0FBTztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7U0FBTSxJQUFJLEtBQUssWUFBWSxPQUFPLEVBQUUsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDdEMsSUFBSSxLQUFLO1lBQUUsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMseUJBQXlCLENBQUMsTUFBbUI7SUFDcEQsT0FBTztRQUNMLElBQUksdUJBQXVCO1lBQ3pCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDO1FBQ0QsdUJBQXVCLENBQUMsRUFBRTtZQUN4QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEIsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RSxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsb0JBQW9CLENBQUMsVUFBMkIsRUFBRSxLQUF3QjtJQUNqRixJQUFJLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2xDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixPQUFPO0lBQ1QsQ0FBQztJQUNELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyaWMgRGF0YWJyaWNrcyBTREsgZ2x1ZSAobm8gQXBwS2l0KTogYWRhcHQgV0hBVFdHIGNhbmNlbGxhdGlvblxuICogKGBBYm9ydFNpZ25hbGAgLyBgQWJvcnRDb250cm9sbGVyYCkgaW50byB0aGUgU0RLJ3MgYENvbnRleHRgIC9cbiAqIGBDYW5jZWxsYXRpb25Ub2tlbmAgc2hhcGVzIHNvIGEgc2luZ2xlIGBBYm9ydENvbnRyb2xsZXJgIGNhbiBkcml2ZSBldmVyeVxuICogaW4tZmxpZ2h0IFNESyBjYWxsLlxuICpcbiAqIFNlcnZlci1vbmx5OiBsZWFucyBvbiB0aGUgRGF0YWJyaWNrcyBTREsgYENvbnRleHRgLiBMaXZlcyBpbiBub2RlLWFwcGtpdCBzb1xuICogdGhlIGJyb3dzZXItc2FmZSBzaGFyZWQtY29yZSBzdGF5cyBTREstZnJlZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDYW5jZWxsYXRpb25Ub2tlbiB9IGZyb20gXCJAZGF0YWJyaWNrcy9zZGstZXhwZXJpbWVudGFsXCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIkBkYXRhYnJpY2tzL3Nkay1leHBlcmltZW50YWxcIjtcbmltcG9ydCB7IGFzeW5jVXRpbHMgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuXG4vKiogRWl0aGVyIGFuIFNESyBgQ29udGV4dGAgb3IgYSBXSEFUV0cgYEFib3J0U2lnbmFsYC4gKi9cbmV4cG9ydCB0eXBlIENvbnRleHRMaWtlID0gQ29udGV4dCB8IEFib3J0U2lnbmFsO1xuXG4vKipcbiAqIFdyYXAgYSBgQ29udGV4dGAgKHJldHVybmVkIGFzLWlzKSBvciBgQWJvcnRTaWduYWxgIChhZGFwdGVkKSBhcyBhbiBTREsgYENvbnRleHRgLlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBkYXRhYnJpY2tzIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG4gKiBpbXBvcnQgeyBnZXRXb3Jrc3BhY2VDbGllbnQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG4gKlxuICogYXdhaXQgZ2V0V29ya3NwYWNlQ2xpZW50KHt9KS5hcGlDbGllbnQucmVxdWVzdChcbiAqICAgeyBwYXRoOiBcIi9hcGkvMi4wL3NlcnZpbmctZW5kcG9pbnRzXCIsIG1ldGhvZDogXCJHRVRcIiwgaGVhZGVyczogbmV3IEhlYWRlcnMoKSwgcmF3OiBmYWxzZSB9LFxuICogICBkYXRhYnJpY2tzLnRvQ29udGV4dChyZXF1ZXN0LnNpZ25hbCksXG4gKiApO1xuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db250ZXh0KGlucHV0OiBDb250ZXh0TGlrZSk6IENvbnRleHQ7XG4vKipcbiAqIERlcml2ZSBhbiBTREsgYENvbnRleHRgIGZyb20gYGNvbnRyb2xsZXIuc2lnbmFsYCwgb3B0aW9uYWxseSB0eWluZyBgaW5wdXRgXG4gKiBpbnRvIHRoZSBjb250cm9sbGVyIHNvIHRoZSBjb250cm9sbGVyIGJlY29tZXMgdGhlIHNpbmdsZSBjYW5jZWxsYXRpb25cbiAqIHNvdXJjZSBmb3IgZG93bnN0cmVhbSBTREsgY2FsbHM6XG4gKlxuICogICAtIGBBYm9ydFNpZ25hbGA6IGFib3J0aW5nIGl0IHByb3BhZ2F0ZXMgaW50byBgY29udHJvbGxlcmAgKGFuZCBmcm9tIHRoZXJlXG4gKiAgICAgaW50byBldmVyeSBTREsgY2FsbCB5b3UgcGFzcyB0aGUgcmV0dXJuZWQgY29udGV4dCB0bykuXG4gKiAgIC0gYENvbnRleHRgOiBpdHMgYGNhbmNlbGxhdGlvblRva2VuYCBpcyB0aWVkIGludG8gYGNvbnRyb2xsZXJgLCBhbmQgaXRzXG4gKiAgICAgb3RoZXIgZmllbGRzIChgbG9nZ2VyYCwgYG9wTmFtZWAsIGByb290Q2xhc3NOYW1lYCwgYHJvb3RGbk5hbWVgLCBgb3BJZGApXG4gKiAgICAgYXJlIHByZXNlcnZlZCBpbiB0aGUgcmV0dXJuZWQgYENvbnRleHRgLiBUaGUgcmV0dXJuZWQgY29udGV4dCdzXG4gKiAgICAgYGNhbmNlbGxhdGlvblRva2VuYCBpcyByZXBsYWNlZCB3aXRoIG9uZSBiYWNrZWQgYnkgYGNvbnRyb2xsZXIuc2lnbmFsYC5cbiAqXG4gKiBUaGUgdGllIGlzIG9uZS13YXkgKHBhcmVudCAtPiBjaGlsZCk6IGFib3J0aW5nIGBjb250cm9sbGVyYCBkaXJlY3RseSBkb2VzXG4gKiBOT1QgY2FuY2VsIGBpbnB1dGAuIFNvIGEgcmVxdWVzdC1sZXZlbCBjYW5jZWwgKHlvdXIgbG9vcCdzIGB0cnkvZmluYWxseSB7XG4gKiBjb250cm9sbGVyLmFib3J0KCkgfWApIHdvbid0IHRlYXIgZG93biBhIGNhbGxlci1zdXBwbGllZCBBYm9ydFNpZ25hbCBpdFxuICogZGlkbid0IG93bi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ29udGV4dChjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIsIGlucHV0PzogQ29udGV4dExpa2UpOiBDb250ZXh0O1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ29udGV4dChzb3VyY2U6IEFib3J0Q29udHJvbGxlciB8IENvbnRleHRMaWtlLCBpbnB1dD86IENvbnRleHRMaWtlKTogQ29udGV4dCB7XG4gIGlmICghKHNvdXJjZSBpbnN0YW5jZW9mIEFib3J0Q29udHJvbGxlcikpIHtcbiAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgQ29udGV4dCkgcmV0dXJuIHNvdXJjZTtcbiAgICByZXR1cm4gbmV3IENvbnRleHQoeyBjYW5jZWxsYXRpb25Ub2tlbjogc2lnbmFsVG9DYW5jZWxsYXRpb25Ub2tlbihzb3VyY2UpIH0pO1xuICB9XG4gIGlmIChpbnB1dCBpbnN0YW5jZW9mIEFib3J0U2lnbmFsKSB7XG4gICAgYXN5bmNVdGlscy50aWVBYm9ydFNpZ25hbChzb3VyY2UsIGlucHV0KTtcbiAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIENvbnRleHQpIHtcbiAgICBjb25zdCB0b2tlbiA9IGlucHV0LmNhbmNlbGxhdGlvblRva2VuO1xuICAgIGlmICh0b2tlbikgdGllQ2FuY2VsbGF0aW9uVG9rZW4oc291cmNlLCB0b2tlbik7XG4gICAgY29uc3QgbWVyZ2VkID0gaW5wdXQuY29weSgpO1xuICAgIG1lcmdlZC5zZXRJdGVtcyh7IGNhbmNlbGxhdGlvblRva2VuOiBzaWduYWxUb0NhbmNlbGxhdGlvblRva2VuKHNvdXJjZS5zaWduYWwpIH0pO1xuICAgIHJldHVybiBtZXJnZWQ7XG4gIH1cbiAgcmV0dXJuIG5ldyBDb250ZXh0KHsgY2FuY2VsbGF0aW9uVG9rZW46IHNpZ25hbFRvQ2FuY2VsbGF0aW9uVG9rZW4oc291cmNlLnNpZ25hbCkgfSk7XG59XG5cbi8qKlxuICogQWRhcHQgYSBXSEFUV0cgYEFib3J0U2lnbmFsYCB0byB0aGUgRGF0YWJyaWNrcyBTREsncyBgQ2FuY2VsbGF0aW9uVG9rZW5gXG4gKiBpbnRlcmZhY2UuIFRoZSBTREsncyBgYXBpLWNsaWVudC50c2AgaW50ZXJuYWxseSBjcmVhdGVzIGFuIGBBYm9ydENvbnRyb2xsZXJgXG4gKiBhbmQgd2lyZXMgYGNhbmNlbGxhdGlvblRva2VuLm9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkYCB0byBpdCwgc28gdGhpcyBhZGFwdGVyXG4gKiBpcyB0aGUgb25lLWxpbmUgYnJpZGdlIGZyb20gXCJwbGF0Zm9ybS1zdGFuZGFyZCBjYW5jZWxsYXRpb25cIiB0byBcInRoZSBTREtcbiAqIGFib3J0cyB0aGUgZmV0Y2ggb24geW91ciBiZWhhbGZcIi5cbiAqL1xuZnVuY3Rpb24gc2lnbmFsVG9DYW5jZWxsYXRpb25Ub2tlbihzaWduYWw6IEFib3J0U2lnbmFsKTogQ2FuY2VsbGF0aW9uVG9rZW4ge1xuICByZXR1cm4ge1xuICAgIGdldCBpc0NhbmNlbGxhdGlvblJlcXVlc3RlZCgpIHtcbiAgICAgIHJldHVybiBzaWduYWwuYWJvcnRlZDtcbiAgICB9LFxuICAgIG9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKGNiKSB7XG4gICAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgY2Ioc2lnbmFsLnJlYXNvbik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgKCkgPT4gY2Ioc2lnbmFsLnJlYXNvbiksIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIFRpZSB0aGUgU0RLJ3MgYENhbmNlbGxhdGlvblRva2VuYCBpbnRlcmZhY2UgYmFjayBpbnRvIGFuIGBBYm9ydENvbnRyb2xsZXJgLlxuICogTWlycm9ycyBgYXN5bmMudGllQWJvcnRTaWduYWxgIGJ1dCBmb3IgdGhlIFNESydzIGNhbmNlbGxhdGlvbiBzaGFwZSwgdXNlZFxuICogd2hlbiBhIGNhbGxlciBoYW5kcyB1cyBhIHByZS1idWlsdCBgQ29udGV4dGAgd2hvc2UgdG9rZW4gd2Ugd2FudCB0byBmb2xkIGludG9cbiAqIG91ciBvd24gY29udHJvbGxlci5cbiAqL1xuZnVuY3Rpb24gdGllQ2FuY2VsbGF0aW9uVG9rZW4oY29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyLCB0b2tlbjogQ2FuY2VsbGF0aW9uVG9rZW4pOiB2b2lkIHtcbiAgaWYgKHRva2VuLmlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKSB7XG4gICAgY29udHJvbGxlci5hYm9ydCgpO1xuICAgIHJldHVybjtcbiAgfVxuICB0b2tlbi5vbkNhbmNlbGxhdGlvblJlcXVlc3RlZCgocmVhc29uKSA9PiBjb250cm9sbGVyLmFib3J0KHJlYXNvbikpO1xufVxuIl19
@@ -52,8 +52,8 @@
52
52
  * @module
53
53
  */
54
54
  import { ConfigurationError } from "@databricks/appkit";
55
- import { config } from "@dbx-tools/core";
56
- import { string, token } from "@dbx-tools/shared-core";
55
+ import { configUtils } from "@dbx-tools/core";
56
+ import { stringUtils, token } from "@dbx-tools/shared-core";
57
57
  /**
58
58
  * Header the Databricks Apps front door forwards the caller's OBO token on.
59
59
  * Its presence is what makes `asUser(req)` viable, so it is the signal
@@ -85,7 +85,7 @@ export const DEFAULT_IDENTITY_MODE = "user";
85
85
  * typo (`"obo"`, `"sp"`) is the likeliest way to get one.
86
86
  */
87
87
  export function resolveIdentityMode(configured, envKeys, field = "identity") {
88
- const raw = config.string(configured, envKeys, config.ENV_ONLY);
88
+ const raw = configUtils.string(configured, envKeys, configUtils.ENV_ONLY);
89
89
  if (raw === undefined)
90
90
  return DEFAULT_IDENTITY_MODE;
91
91
  const mode = raw.toLowerCase();
@@ -102,15 +102,15 @@ export function resolveIdentityMode(configured, envKeys, field = "identity") {
102
102
  * the first Databricks call.
103
103
  */
104
104
  export function requestAccessToken(req) {
105
- return string.trimToNull(req?.header(ACCESS_TOKEN_HEADER)) ?? undefined;
105
+ return stringUtils.trimToNull(req?.header(ACCESS_TOKEN_HEADER)) ?? undefined;
106
106
  }
107
107
  /** The forwarded user id on `req`, or `undefined`. */
108
108
  export function requestUserId(req) {
109
- return string.trimToNull(req?.header(USER_ID_HEADER)) ?? undefined;
109
+ return stringUtils.trimToNull(req?.header(USER_ID_HEADER)) ?? undefined;
110
110
  }
111
111
  /** The forwarded user email on `req`, or `undefined`. */
112
112
  export function requestUserEmail(req) {
113
- return string.trimToNull(req?.header(USER_EMAIL_HEADER)) ?? undefined;
113
+ return stringUtils.trimToNull(req?.header(USER_EMAIL_HEADER)) ?? undefined;
114
114
  }
115
115
  /**
116
116
  * Whether `req` should run its Databricks calls as the app service principal
@@ -135,4 +135,4 @@ export function useServicePrincipal(mode, req) {
135
135
  return false;
136
136
  return requestAccessToken(req) === undefined;
137
137
  }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWRlbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFFSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztBQUU3RCw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7QUFFbkQsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztBQUt6RCxvRkFBb0Y7QUFDcEYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUE0QixDQUFDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUU3Rjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBaUIsTUFBTSxDQUFDO0FBTzFEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxVQUE4QixFQUM5QixPQUFtQyxFQUNuQyxLQUFLLEdBQUcsVUFBVTtJQUVsQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hFLElBQUksR0FBRyxLQUFLLFNBQVM7UUFBRSxPQUFPLHFCQUFxQixDQUFDO0lBQ3BELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQWtCLENBQUM7SUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxNQUFNLElBQUksa0JBQWtCLENBQzFCLEdBQUcsS0FBSyxtQkFBbUIsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFDdkUsRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUE4QjtJQUMvRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQzFFLENBQUM7QUFFRCxzREFBc0Q7QUFDdEQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUE4QjtJQUMxRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNyRSxDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUE4QjtJQUM3RCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQ3hFLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBa0IsRUFBRSxHQUFtQjtJQUN6RSxJQUFJLElBQUksS0FBSyxtQkFBbUI7UUFBRSxPQUFPLElBQUksQ0FBQztJQUM5QyxJQUFJLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEMsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2hpY2ggRGF0YWJyaWNrcyBpZGVudGl0eSBhIHJlcXVlc3QncyB3b3Jrc3BhY2UgY2FsbHMgcnVuIGFzLlxuICpcbiAqIEFwcEtpdCBnaXZlcyBhIHBsdWdpbiB0d28gaWRlbnRpdGllczogdGhlIGFtYmllbnQgU0VSVklDRSBjb250ZXh0ICh0aGUgYXBwJ3NcbiAqIG93biBzZXJ2aWNlIHByaW5jaXBhbCkgYW5kIGEgcGVyLXJlcXVlc3QgVVNFUiBjb250ZXh0IGVudGVyZWQgd2l0aFxuICogYGFzVXNlcihyZXEpYCwgd2hpY2ggYXV0aGVudGljYXRlcyBhcyB0aGUgY2FsbGVyIG9uLWJlaGFsZi1vZiAoT0JPKS4gVGhlXG4gKiBjaG9pY2UgaXMgb25lIGNhbGwsIHNvIHRoZSB3aG9sZSBkZWNpc2lvbiBpcyBcImRvIHdlIGVudGVyIGBhc1VzZXJgIGZvciB0aGlzXG4gKiByZXF1ZXN0XCIuXG4gKlxuICogYGFzVXNlcihyZXEpYCBuZWVkcyB0aGUgT0JPIHRva2VuIHRoZSBwbGF0Zm9ybSBmcm9udCBkb29yIGZvcndhcmRzIG9uXG4gKiB7QGxpbmsgQUNDRVNTX1RPS0VOX0hFQURFUn0uIE1lYXN1cmVkIGFnYWluc3QgdGhlIGluc3RhbGxlZCBBcHBLaXQsIGl0c1xuICogYmVoYXZpb3Igd2hlbiB0aGF0IGhlYWRlciBpcyBhYnNlbnQgZGVwZW5kcyBFTlRJUkVMWSBvbiBgTk9ERV9FTlZgOlxuICpcbiAqIHwgYE5PREVfRU5WYCAgICB8IG5vIGB4LWZvcndhcmRlZC1hY2Nlc3MtdG9rZW5gICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8XG4gKiB8IGBkZXZlbG9wbWVudGAgfCBsb2dzIGEgd2FybmluZywgc2lsZW50bHkgcnVucyBhcyB0aGUgc2VydmljZSBwcmluY2lwYWwgfFxuICogfCBhbnl0aGluZyBlbHNlIHwgdGhyb3dzIGBBdXRoZW50aWNhdGlvbkVycm9yOiBNaXNzaW5nIHVzZXIgdG9rZW5gICAgICAgfFxuICpcbiAqIFRoYXQgcHJvZHVjdGlvbiB0aHJvdyBpcyBjb3JyZWN0IGZvciBhbiBhcHAgYmVoaW5kIHRoZSBEYXRhYnJpY2tzIGZyb250IGRvb3IsXG4gKiB3aGVyZSBhIG1pc3NpbmcgdG9rZW4gbWVhbnMgc29tZXRoaW5nIGlzIHdyb25nLiBJdCBpcyBmYXRhbCBmb3IgYW4gYXBwIHdob3NlXG4gKiB0cmFmZmljIGxlZ2l0aW1hdGVseSBhcnJpdmVzIFdJVEhPVVQgb25lOlxuICpcbiAqICAgLSBhIHB1YmxpYyB0dW5uZWwgKGBAZGJ4LXRvb2xzL3R1bm5lbGApLCB3aGVyZSBjYWxsZXJzIGF1dGhlbnRpY2F0ZSBieVxuICogICAgIGVtYWlsIE9UUCBhbmQgbm8gT0JPIHRva2VuIGV4aXN0cyB0byBmb3J3YXJkIC0gdGhlIGdhdGUgY2FuIHByb3ZlIFdITyB0aGVcbiAqICAgICBjYWxsZXIgaXMsIGJ1dCBpdCBjYW5ub3QgbWludCBhIERhdGFicmlja3MgY3JlZGVudGlhbCBmb3IgdGhlbTtcbiAqICAgLSBhbnkgcmV2ZXJzZSBwcm94eSwgd2ViaG9vaywgb3IgYm90IGNoYW5uZWwgKGBQT1NUIC9hcGkvdGVhbXMvbWVzc2FnZXNgKVxuICogICAgIHRoYXQgYXV0aGVudGljYXRlcyBpdHMgb3duIHdheS5cbiAqXG4gKiBTdWNoIGFuIGFwcCBtdXN0IG5vdCBydW4gd2l0aCBgTk9ERV9FTlY9ZGV2ZWxvcG1lbnRgIGp1c3QgdG8gZ2V0IHRoZSBmYWxsYmFjazpcbiAqIHRoYXQgZmxhZyBhbHNvIHJlbGF4ZXMgc2VjdXJlIGNvb2tpZXMsIEFwcEtpdCdzIG93biBkZXYgYWZmb3JkYW5jZXMsIGFuZFxuICogYGFsbG93VW5hdXRoZW50aWNhdGVkYCBlc2NhcGUgaGF0Y2hlcy4gSGVuY2Uge0BsaW5rIElkZW50aXR5TW9kZX06XG4gKlxuICogICAtIGBcInVzZXJcImAgLSBhbHdheXMgT0JPLiBQZXItdXNlciBhdHRyaWJ1dGlvbiBhbmQgcGVyLXVzZXIgR2VuaWUgLyBVbml0eVxuICogICAgIENhdGFsb2cgcm93IGZpbHRlcnMuIENvcnJlY3Qgd2hlbiBldmVyeSBjYWxsZXIgaXMgYSB3b3Jrc3BhY2UgbWVtYmVyLlxuICogICAtIGBcInNlcnZpY2UtcHJpbmNpcGFsXCJgIC0gYWx3YXlzIHRoZSBhcHAncyBvd24gaWRlbnRpdHkuIE5lZWRzIG5vIE9CT1xuICogICAgIHNjb3BlcyBhbmQgd29ya3MgZm9yIGFueSBjYWxsZXIsIGF0IHRoZSBjb3N0IG9mIHBlci11c2VyIGRhdGEgc2NvcGluZy5cbiAqICAgLSBgXCJhdXRvXCJgIC0gT0JPIHdoZW4gdGhlIHJlcXVlc3QgYWN0dWFsbHkgY2FycmllcyBhIHVzYWJsZSBPQk8gdG9rZW4sXG4gKiAgICAgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIG90aGVyd2lzZS4gT25lIGRlcGxveW1lbnQgdGhlbiBzZXJ2ZXMgQk9USCBkb29yc1xuICogICAgIGNvcnJlY3RseTogZnJvbnQtZG9vciByZXF1ZXN0cyBrZWVwIGZ1bGwgcGVyLXVzZXIgc2NvcGluZywgd2hpbGUgdHVubmVsIC9cbiAqICAgICB3ZWJob29rIHJlcXVlc3RzIGRlZ3JhZGUgdG8gdGhlIHNlcnZpY2UgcHJpbmNpcGFsIGluc3RlYWQgb2YgNTAwaW5nLlxuICpcbiAqIGBcImF1dG9cImAgZGVjaWRlcyBwZXIgUkVRVUVTVCwgbm90IHBlciBib290LCBiZWNhdXNlIGEgc2luZ2xlIGNvbnRhaW5lciBzZXJ2ZXNcbiAqIGJvdGggZG9vcnMgYXQgb25jZSAtIHRoZSB0dW5uZWwgZ2F0ZSBhbmQgdGhlIHBsYXRmb3JtIGZyb250IGRvb3Igc2hhcmUgYSBwb3J0XG4gKiAoc2VlIGBAZGJ4LXRvb2xzL3R1bm5lbGApLiBBIGJvb3QtdGltZSBmbGFnIHdvdWxkIGhhdmUgdG8gYmUgd3JvbmcgZm9yIG9uZVxuICogb2YgdGhlbS5cbiAqXG4gKiBXaGF0IHRoZSBzZXJ2aWNlIHByaW5jaXBhbCBkb2VzIE5PVCBjaGFuZ2UgaXMgV0hPIHRoZSByZXF1ZXN0IGJlbG9uZ3MgdG8uIFRoZVxuICogY2FsbGVyJ3MgaWRlbnRpdHkgc3RpbGwgYXJyaXZlcyBvbiB7QGxpbmsgVVNFUl9JRF9IRUFERVJ9IC9cbiAqIHtAbGluayBVU0VSX0VNQUlMX0hFQURFUn0sIHNvIG1lbW9yeSB0aHJlYWRzLCBjYWNoZSBuYW1lc3BhY2VzLCBhbmQgdHJhY2VcbiAqIGF0dHJpYnV0aW9uIHN0YXkgcGVyLXVzZXIuIE9ubHkgdGhlIERhdGFicmlja3MgY3JlZGVudGlhbCBpcyBzaGFyZWQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IENvbmZpZ3VyYXRpb25FcnJvciB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCJAZGJ4LXRvb2xzL2NvcmVcIjtcbmltcG9ydCB7IHN0cmluZywgdG9rZW4gfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuXG4vKipcbiAqIEhlYWRlciB0aGUgRGF0YWJyaWNrcyBBcHBzIGZyb250IGRvb3IgZm9yd2FyZHMgdGhlIGNhbGxlcidzIE9CTyB0b2tlbiBvbi5cbiAqIEl0cyBwcmVzZW5jZSBpcyB3aGF0IG1ha2VzIGBhc1VzZXIocmVxKWAgdmlhYmxlLCBzbyBpdCBpcyB0aGUgc2lnbmFsXG4gKiB7QGxpbmsgdXNlU2VydmljZVByaW5jaXBhbH0gcmVhZHMgaW4gYFwiYXV0b1wiYCBtb2RlLlxuICpcbiAqIFJlLWV4cG9ydGVkIGZyb20gYEBkYngtdG9vbHMvc2hhcmVkLWNvcmVgJ3MgYHRva2VuYCBtb2R1bGUgKHdoaWNoIHJlYWRzIHRoZVxuICogc2FtZSBoZWFkZXIgdG8gZGVjb2RlIE9BdXRoIHNjb3BlcykgcmF0aGVyIHRoYW4gcmUtc3BlbGxlZCwgc28gdGhlIG5hbWUgZm9yXG4gKiB0aGlzIHdpcmUgY29udHJhY3QgZXhpc3RzIG9uY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBBQ0NFU1NfVE9LRU5fSEVBREVSID0gdG9rZW4uQUNDRVNTX1RPS0VOX0hFQURFUjtcblxuLyoqIEhlYWRlciB0aGUgRGF0YWJyaWNrcyBBcHBzIGZyb250IGRvb3IgZm9yd2FyZHMgdGhlIGNhbGxlcidzIHVzZXIgaWQgb24uICovXG5leHBvcnQgY29uc3QgVVNFUl9JRF9IRUFERVIgPSB0b2tlbi5VU0VSX0lEX0hFQURFUjtcblxuLyoqIEhlYWRlciB0aGUgRGF0YWJyaWNrcyBBcHBzIGZyb250IGRvb3IgZm9yd2FyZHMgdGhlIGNhbGxlcidzIGVtYWlsIG9uLiAqL1xuZXhwb3J0IGNvbnN0IFVTRVJfRU1BSUxfSEVBREVSID0gdG9rZW4uVVNFUl9FTUFJTF9IRUFERVI7XG5cbi8qKiBJZGVudGl0eSBhIHJlcXVlc3QncyBEYXRhYnJpY2tzIGNhbGxzIHJ1biBhcy4gU2VlIHRoZSBtb2R1bGUgZG9jcy4gKi9cbmV4cG9ydCB0eXBlIElkZW50aXR5TW9kZSA9IFwidXNlclwiIHwgXCJzZXJ2aWNlLXByaW5jaXBhbFwiIHwgXCJhdXRvXCI7XG5cbi8qKiBFdmVyeSBhY2NlcHRlZCB7QGxpbmsgSWRlbnRpdHlNb2RlfSwgaW4gdGhlIG9yZGVyIGRvY3MgYW5kIHNjaGVtYXMgbGlzdCB0aGVtLiAqL1xuZXhwb3J0IGNvbnN0IElERU5USVRZX01PREVTOiByZWFkb25seSBJZGVudGl0eU1vZGVbXSA9IFtcInVzZXJcIiwgXCJzZXJ2aWNlLXByaW5jaXBhbFwiLCBcImF1dG9cIl07XG5cbi8qKlxuICogRGVmYXVsdCBtb2RlLiBgXCJ1c2VyXCJgIGtlZXBzIE9CTyB0aGUgb25seSBpZGVudGl0eSB1bmxlc3MgYW4gYXBwIG9wdHMgaW4sIHNvXG4gKiBhZG9wdGluZyB0aGlzIG9wdGlvbiBjYW4gbmV2ZXIgc2lsZW50bHkgd2lkZW4gYW4gZXhpc3RpbmcgYXBwJ3MgZGF0YSBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lERU5USVRZX01PREU6IElkZW50aXR5TW9kZSA9IFwidXNlclwiO1xuXG4vKiogVGhlIHN1YnNldCBvZiBgZXhwcmVzcy5SZXF1ZXN0YCB0aGlzIG1vZHVsZSByZWFkcyAtIG9uZSBoZWFkZXIgbG9va3VwLiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJCZWFyaW5nIHtcbiAgaGVhZGVyKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgY29uZmlndXJlZCBtb2RlOiBleHBsaWNpdCBjb25maWcgdmFsdWUsIHRoZW4gdGhlIGZpcnN0IG5vbi1lbXB0eVxuICogdmFyaWFibGUgYW1vbmcgYGVudktleXNgLCB0aGVuIHtAbGluayBERUZBVUxUX0lERU5USVRZX01PREV9LlxuICpcbiAqIEFuIHVucmVjb2duaXplZCB2YWx1ZSB0aHJvd3MgcmF0aGVyIHRoYW4gZmFsbGluZyBiYWNrLiBGYWxsaW5nIGJhY2sgd291bGRcbiAqIHNpbGVudGx5IGtlZXAgc2VydmluZyBPQk8gLSBhbmQgdGhlIHByb2R1Y3Rpb24gYEF1dGhlbnRpY2F0aW9uRXJyb3JgIGl0XG4gKiBwcm9kdWNlcyAtIHRvIGV4YWN0bHkgdGhlIGNhbGxlcnMgdGhlIG9wdGlvbiB3YXMgc2V0IHRvIGFjY29tbW9kYXRlLCBhbmQgYVxuICogdHlwbyAoYFwib2JvXCJgLCBgXCJzcFwiYCkgaXMgdGhlIGxpa2VsaWVzdCB3YXkgdG8gZ2V0IG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVJZGVudGl0eU1vZGUoXG4gIGNvbmZpZ3VyZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZW52S2V5czogc3RyaW5nIHwgcmVhZG9ubHkgc3RyaW5nW10sXG4gIGZpZWxkID0gXCJpZGVudGl0eVwiLFxuKTogSWRlbnRpdHlNb2RlIHtcbiAgY29uc3QgcmF3ID0gY29uZmlnLnN0cmluZyhjb25maWd1cmVkLCBlbnZLZXlzLCBjb25maWcuRU5WX09OTFkpO1xuICBpZiAocmF3ID09PSB1bmRlZmluZWQpIHJldHVybiBERUZBVUxUX0lERU5USVRZX01PREU7XG4gIGNvbnN0IG1vZGUgPSByYXcudG9Mb3dlckNhc2UoKSBhcyBJZGVudGl0eU1vZGU7XG4gIGlmICghSURFTlRJVFlfTU9ERVMuaW5jbHVkZXMobW9kZSkpIHtcbiAgICBjb25zdCBuYW1lcyA9IHR5cGVvZiBlbnZLZXlzID09PSBcInN0cmluZ1wiID8gZW52S2V5cyA6IGVudktleXMuam9pbihcIiAvIFwiKTtcbiAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFxuICAgICAgYCR7ZmllbGR9IG11c3QgYmUgb25lIG9mICR7SURFTlRJVFlfTU9ERVMuam9pbihcIiB8IFwiKX0gKGVudjogJHtuYW1lc30pYCxcbiAgICAgIHsgY29udGV4dDogeyBmaWVsZCwgZW52VmFyOiBuYW1lcywgcmVjZWl2ZWQ6IHJhdyB9IH0sXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbW9kZTtcbn1cblxuLyoqXG4gKiBUaGUgT0JPIHRva2VuIG9uIGByZXFgLCBvciBgdW5kZWZpbmVkYC4gUmVhZCB0aHJvdWdoIHRoZSBzYW1lIHRyaW0gYXMgZXZlcnlcbiAqIG90aGVyIGhlYWRlciwgc28gYSBoZWFkZXIgcHJlc2VudC1idXQtYmxhbmsgKHdoaWNoIHNvbWUgcHJveGllcyBlbWl0IGZvciBhblxuICogdW5zZXQgdXBzdHJlYW0gdmFsdWUpIGNvdW50cyBhcyBhYnNlbnQgcmF0aGVyIHRoYW4gYXMgYSB0b2tlbiB0aGF0IGZhaWxzIGF0XG4gKiB0aGUgZmlyc3QgRGF0YWJyaWNrcyBjYWxsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdEFjY2Vzc1Rva2VuKHJlcTogSGVhZGVyQmVhcmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBzdHJpbmcudHJpbVRvTnVsbChyZXE/LmhlYWRlcihBQ0NFU1NfVE9LRU5fSEVBREVSKSkgPz8gdW5kZWZpbmVkO1xufVxuXG4vKiogVGhlIGZvcndhcmRlZCB1c2VyIGlkIG9uIGByZXFgLCBvciBgdW5kZWZpbmVkYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0VXNlcklkKHJlcTogSGVhZGVyQmVhcmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBzdHJpbmcudHJpbVRvTnVsbChyZXE/LmhlYWRlcihVU0VSX0lEX0hFQURFUikpID8/IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoZSBmb3J3YXJkZWQgdXNlciBlbWFpbCBvbiBgcmVxYCwgb3IgYHVuZGVmaW5lZGAuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdFVzZXJFbWFpbChyZXE6IEhlYWRlckJlYXJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gc3RyaW5nLnRyaW1Ub051bGwocmVxPy5oZWFkZXIoVVNFUl9FTUFJTF9IRUFERVIpKSA/PyB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogV2hldGhlciBgcmVxYCBzaG91bGQgcnVuIGl0cyBEYXRhYnJpY2tzIGNhbGxzIGFzIHRoZSBhcHAgc2VydmljZSBwcmluY2lwYWxcbiAqIHJhdGhlciB0aGFuIE9CTy5cbiAqXG4gKiAtIGBcInNlcnZpY2UtcHJpbmNpcGFsXCJgIC0+IGFsd2F5cyBgdHJ1ZWAuXG4gKiAtIGBcInVzZXJcImAgLT4gYWx3YXlzIGBmYWxzZWAsIGV2ZW4gd2l0aCBubyB0b2tlbi4gVGhlIG1vZGUgaXMgYW4gZXhwbGljaXRcbiAqICAgYXNzZXJ0aW9uIHRoYXQgZXZlcnkgY2FsbGVyIGlzIE9CTy1jYXBhYmxlLCBzbyBhIG1pc3NpbmcgdG9rZW4gaXMgYSByZWFsXG4gKiAgIGVycm9yIGFuZCBtdXN0IHN1cmZhY2UgYXMgQXBwS2l0J3MgYEF1dGhlbnRpY2F0aW9uRXJyb3JgIHJhdGhlciB0aGFuIGJlaW5nXG4gKiAgIHF1aWV0bHkgZG93bmdyYWRlZCB0byBzaGFyZWQgZGF0YSBhY2Nlc3MuXG4gKiAtIGBcImF1dG9cImAgLT4gYHRydWVgIG9ubHkgd2hlbiB0aGUgcmVxdWVzdCBjYXJyaWVzIG5vIHVzYWJsZSBPQk8gdG9rZW4uXG4gKlxuICogQSByZXF1ZXN0IEFwcEtpdCB3aWxsIG5vdCBhY2NlcHQgZm9yIE9CTyBhbnl3YXkgKG5vIHRva2VuKSBjYW4gbmV2ZXIgYmVcbiAqIHNlcnZlZCBieSBlbnRlcmluZyBgYXNVc2VyYCwgc28gaW4gYFwiYXV0b1wiYCBtb2RlIHRoZSB0b2tlbiBjaGVjayBpcyB0aGUgd2hvbGVcbiAqIGRlY2lzaW9uOiBpdCBpcyB0aGUgc2FtZSBjb25kaXRpb24gQXBwS2l0IGl0c2VsZiBicmFuY2hlcyBvbiwganVzdCByZXNvbHZlZFxuICogYmVmb3JlIGl0IGNhbiB0aHJvdy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlcnZpY2VQcmluY2lwYWwobW9kZTogSWRlbnRpdHlNb2RlLCByZXE/OiBIZWFkZXJCZWFyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChtb2RlID09PSBcInNlcnZpY2UtcHJpbmNpcGFsXCIpIHJldHVybiB0cnVlO1xuICBpZiAobW9kZSA9PT0gXCJ1c2VyXCIpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHJlcXVlc3RBY2Nlc3NUb2tlbihyZXEpID09PSB1bmRlZmluZWQ7XG59XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWRlbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFFSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztBQUU3RCw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7QUFFbkQsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztBQUt6RCxvRkFBb0Y7QUFDcEYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUE0QixDQUFDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUU3Rjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBaUIsTUFBTSxDQUFDO0FBTzFEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxVQUE4QixFQUM5QixPQUFtQyxFQUNuQyxLQUFLLEdBQUcsVUFBVTtJQUVsQixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFFLElBQUksR0FBRyxLQUFLLFNBQVM7UUFBRSxPQUFPLHFCQUFxQixDQUFDO0lBQ3BELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQWtCLENBQUM7SUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxNQUFNLElBQUksa0JBQWtCLENBQzFCLEdBQUcsS0FBSyxtQkFBbUIsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFDdkUsRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUE4QjtJQUMvRCxPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQy9FLENBQUM7QUFFRCxzREFBc0Q7QUFDdEQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUE4QjtJQUMxRCxPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUMxRSxDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUE4QjtJQUM3RCxPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQzdFLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBa0IsRUFBRSxHQUFtQjtJQUN6RSxJQUFJLElBQUksS0FBSyxtQkFBbUI7UUFBRSxPQUFPLElBQUksQ0FBQztJQUM5QyxJQUFJLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEMsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2hpY2ggRGF0YWJyaWNrcyBpZGVudGl0eSBhIHJlcXVlc3QncyB3b3Jrc3BhY2UgY2FsbHMgcnVuIGFzLlxuICpcbiAqIEFwcEtpdCBnaXZlcyBhIHBsdWdpbiB0d28gaWRlbnRpdGllczogdGhlIGFtYmllbnQgU0VSVklDRSBjb250ZXh0ICh0aGUgYXBwJ3NcbiAqIG93biBzZXJ2aWNlIHByaW5jaXBhbCkgYW5kIGEgcGVyLXJlcXVlc3QgVVNFUiBjb250ZXh0IGVudGVyZWQgd2l0aFxuICogYGFzVXNlcihyZXEpYCwgd2hpY2ggYXV0aGVudGljYXRlcyBhcyB0aGUgY2FsbGVyIG9uLWJlaGFsZi1vZiAoT0JPKS4gVGhlXG4gKiBjaG9pY2UgaXMgb25lIGNhbGwsIHNvIHRoZSB3aG9sZSBkZWNpc2lvbiBpcyBcImRvIHdlIGVudGVyIGBhc1VzZXJgIGZvciB0aGlzXG4gKiByZXF1ZXN0XCIuXG4gKlxuICogYGFzVXNlcihyZXEpYCBuZWVkcyB0aGUgT0JPIHRva2VuIHRoZSBwbGF0Zm9ybSBmcm9udCBkb29yIGZvcndhcmRzIG9uXG4gKiB7QGxpbmsgQUNDRVNTX1RPS0VOX0hFQURFUn0uIE1lYXN1cmVkIGFnYWluc3QgdGhlIGluc3RhbGxlZCBBcHBLaXQsIGl0c1xuICogYmVoYXZpb3Igd2hlbiB0aGF0IGhlYWRlciBpcyBhYnNlbnQgZGVwZW5kcyBFTlRJUkVMWSBvbiBgTk9ERV9FTlZgOlxuICpcbiAqIHwgYE5PREVfRU5WYCAgICB8IG5vIGB4LWZvcndhcmRlZC1hY2Nlc3MtdG9rZW5gICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8XG4gKiB8IGBkZXZlbG9wbWVudGAgfCBsb2dzIGEgd2FybmluZywgc2lsZW50bHkgcnVucyBhcyB0aGUgc2VydmljZSBwcmluY2lwYWwgfFxuICogfCBhbnl0aGluZyBlbHNlIHwgdGhyb3dzIGBBdXRoZW50aWNhdGlvbkVycm9yOiBNaXNzaW5nIHVzZXIgdG9rZW5gICAgICAgfFxuICpcbiAqIFRoYXQgcHJvZHVjdGlvbiB0aHJvdyBpcyBjb3JyZWN0IGZvciBhbiBhcHAgYmVoaW5kIHRoZSBEYXRhYnJpY2tzIGZyb250IGRvb3IsXG4gKiB3aGVyZSBhIG1pc3NpbmcgdG9rZW4gbWVhbnMgc29tZXRoaW5nIGlzIHdyb25nLiBJdCBpcyBmYXRhbCBmb3IgYW4gYXBwIHdob3NlXG4gKiB0cmFmZmljIGxlZ2l0aW1hdGVseSBhcnJpdmVzIFdJVEhPVVQgb25lOlxuICpcbiAqICAgLSBhIHB1YmxpYyB0dW5uZWwgKGBAZGJ4LXRvb2xzL3R1bm5lbGApLCB3aGVyZSBjYWxsZXJzIGF1dGhlbnRpY2F0ZSBieVxuICogICAgIGVtYWlsIE9UUCBhbmQgbm8gT0JPIHRva2VuIGV4aXN0cyB0byBmb3J3YXJkIC0gdGhlIGdhdGUgY2FuIHByb3ZlIFdITyB0aGVcbiAqICAgICBjYWxsZXIgaXMsIGJ1dCBpdCBjYW5ub3QgbWludCBhIERhdGFicmlja3MgY3JlZGVudGlhbCBmb3IgdGhlbTtcbiAqICAgLSBhbnkgcmV2ZXJzZSBwcm94eSwgd2ViaG9vaywgb3IgYm90IGNoYW5uZWwgKGBQT1NUIC9hcGkvdGVhbXMvbWVzc2FnZXNgKVxuICogICAgIHRoYXQgYXV0aGVudGljYXRlcyBpdHMgb3duIHdheS5cbiAqXG4gKiBTdWNoIGFuIGFwcCBtdXN0IG5vdCBydW4gd2l0aCBgTk9ERV9FTlY9ZGV2ZWxvcG1lbnRgIGp1c3QgdG8gZ2V0IHRoZSBmYWxsYmFjazpcbiAqIHRoYXQgZmxhZyBhbHNvIHJlbGF4ZXMgc2VjdXJlIGNvb2tpZXMsIEFwcEtpdCdzIG93biBkZXYgYWZmb3JkYW5jZXMsIGFuZFxuICogYGFsbG93VW5hdXRoZW50aWNhdGVkYCBlc2NhcGUgaGF0Y2hlcy4gSGVuY2Uge0BsaW5rIElkZW50aXR5TW9kZX06XG4gKlxuICogICAtIGBcInVzZXJcImAgLSBhbHdheXMgT0JPLiBQZXItdXNlciBhdHRyaWJ1dGlvbiBhbmQgcGVyLXVzZXIgR2VuaWUgLyBVbml0eVxuICogICAgIENhdGFsb2cgcm93IGZpbHRlcnMuIENvcnJlY3Qgd2hlbiBldmVyeSBjYWxsZXIgaXMgYSB3b3Jrc3BhY2UgbWVtYmVyLlxuICogICAtIGBcInNlcnZpY2UtcHJpbmNpcGFsXCJgIC0gYWx3YXlzIHRoZSBhcHAncyBvd24gaWRlbnRpdHkuIE5lZWRzIG5vIE9CT1xuICogICAgIHNjb3BlcyBhbmQgd29ya3MgZm9yIGFueSBjYWxsZXIsIGF0IHRoZSBjb3N0IG9mIHBlci11c2VyIGRhdGEgc2NvcGluZy5cbiAqICAgLSBgXCJhdXRvXCJgIC0gT0JPIHdoZW4gdGhlIHJlcXVlc3QgYWN0dWFsbHkgY2FycmllcyBhIHVzYWJsZSBPQk8gdG9rZW4sXG4gKiAgICAgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIG90aGVyd2lzZS4gT25lIGRlcGxveW1lbnQgdGhlbiBzZXJ2ZXMgQk9USCBkb29yc1xuICogICAgIGNvcnJlY3RseTogZnJvbnQtZG9vciByZXF1ZXN0cyBrZWVwIGZ1bGwgcGVyLXVzZXIgc2NvcGluZywgd2hpbGUgdHVubmVsIC9cbiAqICAgICB3ZWJob29rIHJlcXVlc3RzIGRlZ3JhZGUgdG8gdGhlIHNlcnZpY2UgcHJpbmNpcGFsIGluc3RlYWQgb2YgNTAwaW5nLlxuICpcbiAqIGBcImF1dG9cImAgZGVjaWRlcyBwZXIgUkVRVUVTVCwgbm90IHBlciBib290LCBiZWNhdXNlIGEgc2luZ2xlIGNvbnRhaW5lciBzZXJ2ZXNcbiAqIGJvdGggZG9vcnMgYXQgb25jZSAtIHRoZSB0dW5uZWwgZ2F0ZSBhbmQgdGhlIHBsYXRmb3JtIGZyb250IGRvb3Igc2hhcmUgYSBwb3J0XG4gKiAoc2VlIGBAZGJ4LXRvb2xzL3R1bm5lbGApLiBBIGJvb3QtdGltZSBmbGFnIHdvdWxkIGhhdmUgdG8gYmUgd3JvbmcgZm9yIG9uZVxuICogb2YgdGhlbS5cbiAqXG4gKiBXaGF0IHRoZSBzZXJ2aWNlIHByaW5jaXBhbCBkb2VzIE5PVCBjaGFuZ2UgaXMgV0hPIHRoZSByZXF1ZXN0IGJlbG9uZ3MgdG8uIFRoZVxuICogY2FsbGVyJ3MgaWRlbnRpdHkgc3RpbGwgYXJyaXZlcyBvbiB7QGxpbmsgVVNFUl9JRF9IRUFERVJ9IC9cbiAqIHtAbGluayBVU0VSX0VNQUlMX0hFQURFUn0sIHNvIG1lbW9yeSB0aHJlYWRzLCBjYWNoZSBuYW1lc3BhY2VzLCBhbmQgdHJhY2VcbiAqIGF0dHJpYnV0aW9uIHN0YXkgcGVyLXVzZXIuIE9ubHkgdGhlIERhdGFicmlja3MgY3JlZGVudGlhbCBpcyBzaGFyZWQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IENvbmZpZ3VyYXRpb25FcnJvciB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IGNvbmZpZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZVwiO1xuaW1wb3J0IHsgc3RyaW5nVXRpbHMsIHRva2VuIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcblxuLyoqXG4gKiBIZWFkZXIgdGhlIERhdGFicmlja3MgQXBwcyBmcm9udCBkb29yIGZvcndhcmRzIHRoZSBjYWxsZXIncyBPQk8gdG9rZW4gb24uXG4gKiBJdHMgcHJlc2VuY2UgaXMgd2hhdCBtYWtlcyBgYXNVc2VyKHJlcSlgIHZpYWJsZSwgc28gaXQgaXMgdGhlIHNpZ25hbFxuICoge0BsaW5rIHVzZVNlcnZpY2VQcmluY2lwYWx9IHJlYWRzIGluIGBcImF1dG9cImAgbW9kZS5cbiAqXG4gKiBSZS1leHBvcnRlZCBmcm9tIGBAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlYCdzIGB0b2tlbmAgbW9kdWxlICh3aGljaCByZWFkcyB0aGVcbiAqIHNhbWUgaGVhZGVyIHRvIGRlY29kZSBPQXV0aCBzY29wZXMpIHJhdGhlciB0aGFuIHJlLXNwZWxsZWQsIHNvIHRoZSBuYW1lIGZvclxuICogdGhpcyB3aXJlIGNvbnRyYWN0IGV4aXN0cyBvbmNlLlxuICovXG5leHBvcnQgY29uc3QgQUNDRVNTX1RPS0VOX0hFQURFUiA9IHRva2VuLkFDQ0VTU19UT0tFTl9IRUFERVI7XG5cbi8qKiBIZWFkZXIgdGhlIERhdGFicmlja3MgQXBwcyBmcm9udCBkb29yIGZvcndhcmRzIHRoZSBjYWxsZXIncyB1c2VyIGlkIG9uLiAqL1xuZXhwb3J0IGNvbnN0IFVTRVJfSURfSEVBREVSID0gdG9rZW4uVVNFUl9JRF9IRUFERVI7XG5cbi8qKiBIZWFkZXIgdGhlIERhdGFicmlja3MgQXBwcyBmcm9udCBkb29yIGZvcndhcmRzIHRoZSBjYWxsZXIncyBlbWFpbCBvbi4gKi9cbmV4cG9ydCBjb25zdCBVU0VSX0VNQUlMX0hFQURFUiA9IHRva2VuLlVTRVJfRU1BSUxfSEVBREVSO1xuXG4vKiogSWRlbnRpdHkgYSByZXF1ZXN0J3MgRGF0YWJyaWNrcyBjYWxscyBydW4gYXMuIFNlZSB0aGUgbW9kdWxlIGRvY3MuICovXG5leHBvcnQgdHlwZSBJZGVudGl0eU1vZGUgPSBcInVzZXJcIiB8IFwic2VydmljZS1wcmluY2lwYWxcIiB8IFwiYXV0b1wiO1xuXG4vKiogRXZlcnkgYWNjZXB0ZWQge0BsaW5rIElkZW50aXR5TW9kZX0sIGluIHRoZSBvcmRlciBkb2NzIGFuZCBzY2hlbWFzIGxpc3QgdGhlbS4gKi9cbmV4cG9ydCBjb25zdCBJREVOVElUWV9NT0RFUzogcmVhZG9ubHkgSWRlbnRpdHlNb2RlW10gPSBbXCJ1c2VyXCIsIFwic2VydmljZS1wcmluY2lwYWxcIiwgXCJhdXRvXCJdO1xuXG4vKipcbiAqIERlZmF1bHQgbW9kZS4gYFwidXNlclwiYCBrZWVwcyBPQk8gdGhlIG9ubHkgaWRlbnRpdHkgdW5sZXNzIGFuIGFwcCBvcHRzIGluLCBzb1xuICogYWRvcHRpbmcgdGhpcyBvcHRpb24gY2FuIG5ldmVyIHNpbGVudGx5IHdpZGVuIGFuIGV4aXN0aW5nIGFwcCdzIGRhdGEgYWNjZXNzLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9JREVOVElUWV9NT0RFOiBJZGVudGl0eU1vZGUgPSBcInVzZXJcIjtcblxuLyoqIFRoZSBzdWJzZXQgb2YgYGV4cHJlc3MuUmVxdWVzdGAgdGhpcyBtb2R1bGUgcmVhZHMgLSBvbmUgaGVhZGVyIGxvb2t1cC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyQmVhcmluZyB7XG4gIGhlYWRlcihuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIGNvbmZpZ3VyZWQgbW9kZTogZXhwbGljaXQgY29uZmlnIHZhbHVlLCB0aGVuIHRoZSBmaXJzdCBub24tZW1wdHlcbiAqIHZhcmlhYmxlIGFtb25nIGBlbnZLZXlzYCwgdGhlbiB7QGxpbmsgREVGQVVMVF9JREVOVElUWV9NT0RFfS5cbiAqXG4gKiBBbiB1bnJlY29nbml6ZWQgdmFsdWUgdGhyb3dzIHJhdGhlciB0aGFuIGZhbGxpbmcgYmFjay4gRmFsbGluZyBiYWNrIHdvdWxkXG4gKiBzaWxlbnRseSBrZWVwIHNlcnZpbmcgT0JPIC0gYW5kIHRoZSBwcm9kdWN0aW9uIGBBdXRoZW50aWNhdGlvbkVycm9yYCBpdFxuICogcHJvZHVjZXMgLSB0byBleGFjdGx5IHRoZSBjYWxsZXJzIHRoZSBvcHRpb24gd2FzIHNldCB0byBhY2NvbW1vZGF0ZSwgYW5kIGFcbiAqIHR5cG8gKGBcIm9ib1wiYCwgYFwic3BcImApIGlzIHRoZSBsaWtlbGllc3Qgd2F5IHRvIGdldCBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSWRlbnRpdHlNb2RlKFxuICBjb25maWd1cmVkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGVudktleXM6IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBmaWVsZCA9IFwiaWRlbnRpdHlcIixcbik6IElkZW50aXR5TW9kZSB7XG4gIGNvbnN0IHJhdyA9IGNvbmZpZ1V0aWxzLnN0cmluZyhjb25maWd1cmVkLCBlbnZLZXlzLCBjb25maWdVdGlscy5FTlZfT05MWSk7XG4gIGlmIChyYXcgPT09IHVuZGVmaW5lZCkgcmV0dXJuIERFRkFVTFRfSURFTlRJVFlfTU9ERTtcbiAgY29uc3QgbW9kZSA9IHJhdy50b0xvd2VyQ2FzZSgpIGFzIElkZW50aXR5TW9kZTtcbiAgaWYgKCFJREVOVElUWV9NT0RFUy5pbmNsdWRlcyhtb2RlKSkge1xuICAgIGNvbnN0IG5hbWVzID0gdHlwZW9mIGVudktleXMgPT09IFwic3RyaW5nXCIgPyBlbnZLZXlzIDogZW52S2V5cy5qb2luKFwiIC8gXCIpO1xuICAgIHRocm93IG5ldyBDb25maWd1cmF0aW9uRXJyb3IoXG4gICAgICBgJHtmaWVsZH0gbXVzdCBiZSBvbmUgb2YgJHtJREVOVElUWV9NT0RFUy5qb2luKFwiIHwgXCIpfSAoZW52OiAke25hbWVzfSlgLFxuICAgICAgeyBjb250ZXh0OiB7IGZpZWxkLCBlbnZWYXI6IG5hbWVzLCByZWNlaXZlZDogcmF3IH0gfSxcbiAgICApO1xuICB9XG4gIHJldHVybiBtb2RlO1xufVxuXG4vKipcbiAqIFRoZSBPQk8gdG9rZW4gb24gYHJlcWAsIG9yIGB1bmRlZmluZWRgLiBSZWFkIHRocm91Z2ggdGhlIHNhbWUgdHJpbSBhcyBldmVyeVxuICogb3RoZXIgaGVhZGVyLCBzbyBhIGhlYWRlciBwcmVzZW50LWJ1dC1ibGFuayAod2hpY2ggc29tZSBwcm94aWVzIGVtaXQgZm9yIGFuXG4gKiB1bnNldCB1cHN0cmVhbSB2YWx1ZSkgY291bnRzIGFzIGFic2VudCByYXRoZXIgdGhhbiBhcyBhIHRva2VuIHRoYXQgZmFpbHMgYXRcbiAqIHRoZSBmaXJzdCBEYXRhYnJpY2tzIGNhbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0QWNjZXNzVG9rZW4ocmVxOiBIZWFkZXJCZWFyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHN0cmluZ1V0aWxzLnRyaW1Ub051bGwocmVxPy5oZWFkZXIoQUNDRVNTX1RPS0VOX0hFQURFUikpID8/IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoZSBmb3J3YXJkZWQgdXNlciBpZCBvbiBgcmVxYCwgb3IgYHVuZGVmaW5lZGAuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdFVzZXJJZChyZXE6IEhlYWRlckJlYXJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gc3RyaW5nVXRpbHMudHJpbVRvTnVsbChyZXE/LmhlYWRlcihVU0VSX0lEX0hFQURFUikpID8/IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoZSBmb3J3YXJkZWQgdXNlciBlbWFpbCBvbiBgcmVxYCwgb3IgYHVuZGVmaW5lZGAuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdFVzZXJFbWFpbChyZXE6IEhlYWRlckJlYXJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gc3RyaW5nVXRpbHMudHJpbVRvTnVsbChyZXE/LmhlYWRlcihVU0VSX0VNQUlMX0hFQURFUikpID8/IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGByZXFgIHNob3VsZCBydW4gaXRzIERhdGFicmlja3MgY2FsbHMgYXMgdGhlIGFwcCBzZXJ2aWNlIHByaW5jaXBhbFxuICogcmF0aGVyIHRoYW4gT0JPLlxuICpcbiAqIC0gYFwic2VydmljZS1wcmluY2lwYWxcImAgLT4gYWx3YXlzIGB0cnVlYC5cbiAqIC0gYFwidXNlclwiYCAtPiBhbHdheXMgYGZhbHNlYCwgZXZlbiB3aXRoIG5vIHRva2VuLiBUaGUgbW9kZSBpcyBhbiBleHBsaWNpdFxuICogICBhc3NlcnRpb24gdGhhdCBldmVyeSBjYWxsZXIgaXMgT0JPLWNhcGFibGUsIHNvIGEgbWlzc2luZyB0b2tlbiBpcyBhIHJlYWxcbiAqICAgZXJyb3IgYW5kIG11c3Qgc3VyZmFjZSBhcyBBcHBLaXQncyBgQXV0aGVudGljYXRpb25FcnJvcmAgcmF0aGVyIHRoYW4gYmVpbmdcbiAqICAgcXVpZXRseSBkb3duZ3JhZGVkIHRvIHNoYXJlZCBkYXRhIGFjY2Vzcy5cbiAqIC0gYFwiYXV0b1wiYCAtPiBgdHJ1ZWAgb25seSB3aGVuIHRoZSByZXF1ZXN0IGNhcnJpZXMgbm8gdXNhYmxlIE9CTyB0b2tlbi5cbiAqXG4gKiBBIHJlcXVlc3QgQXBwS2l0IHdpbGwgbm90IGFjY2VwdCBmb3IgT0JPIGFueXdheSAobm8gdG9rZW4pIGNhbiBuZXZlciBiZVxuICogc2VydmVkIGJ5IGVudGVyaW5nIGBhc1VzZXJgLCBzbyBpbiBgXCJhdXRvXCJgIG1vZGUgdGhlIHRva2VuIGNoZWNrIGlzIHRoZSB3aG9sZVxuICogZGVjaXNpb246IGl0IGlzIHRoZSBzYW1lIGNvbmRpdGlvbiBBcHBLaXQgaXRzZWxmIGJyYW5jaGVzIG9uLCBqdXN0IHJlc29sdmVkXG4gKiBiZWZvcmUgaXQgY2FuIHRocm93LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VydmljZVByaW5jaXBhbChtb2RlOiBJZGVudGl0eU1vZGUsIHJlcT86IEhlYWRlckJlYXJpbmcpOiBib29sZWFuIHtcbiAgaWYgKG1vZGUgPT09IFwic2VydmljZS1wcmluY2lwYWxcIikgcmV0dXJuIHRydWU7XG4gIGlmIChtb2RlID09PSBcInVzZXJcIikgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gcmVxdWVzdEFjY2Vzc1Rva2VuKHJlcSkgPT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -85,7 +85,7 @@ export declare function pollDelay(attempt: number, baseMs: number, signal?: Abor
85
85
  * Pull resolver inputs from `process.env`, parse the address blob, and
86
86
  * layer explicit config on top with this precedence:
87
87
  *
88
- * `config.<field>` > `coreConfig.resolveValue` (shared config sources) >
88
+ * `config.<field>` > `configUtils.resolveValue` (shared config sources) >
89
89
  * whatever {@link parseAddress} recovered from the
90
90
  * `endpoint` / `LAKEBASE_ENDPOINT` blob.
91
91
  *