@decaf-ts/for-nest 0.11.2-refactor.3 → 0.11.2-refactor.5

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 (40) hide show
  1. package/README.md +273 -1
  2. package/dist/for-nest.cjs +111 -346
  3. package/dist/for-nest.js +115 -349
  4. package/lib/cjs/controllers.cjs +4 -6
  5. package/lib/cjs/decaf-model/DecafModelModule.cjs +7 -2
  6. package/lib/cjs/decaf-model/FromModelController.cjs +210 -346
  7. package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs +2 -2
  8. package/lib/cjs/decaf-model/decorators/utils.cjs +4 -3
  9. package/lib/cjs/decaf-model/utils.cjs +10 -4
  10. package/lib/cjs/decorators.cjs +4 -3
  11. package/lib/cjs/events-module/utils.cjs +2 -2
  12. package/lib/cjs/factory/NestBootstraper.cjs +3 -4
  13. package/lib/cjs/index.cjs +3 -3
  14. package/lib/cjs/request/DecafRequestContext.cjs +2 -3
  15. package/lib/cjs/request/DecafResponseInterceptor.cjs +5 -3
  16. package/lib/cjs/swagger-types.cjs +2 -2
  17. package/lib/cjs/types.cjs +2 -2
  18. package/lib/cjs/webhooks/DecafWebhookModule.cjs +3 -2
  19. package/lib/cjs/webhooks/controllers.cjs +50 -55
  20. package/lib/esm/controllers.js +3 -5
  21. package/lib/esm/decaf-model/DecafModelModule.js +6 -1
  22. package/lib/esm/decaf-model/FromModelController.js +212 -348
  23. package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js +1 -1
  24. package/lib/esm/decaf-model/decorators/utils.js +3 -2
  25. package/lib/esm/decaf-model/utils.js +9 -3
  26. package/lib/esm/decorators.js +3 -2
  27. package/lib/esm/events-module/utils.js +1 -1
  28. package/lib/esm/factory/NestBootstraper.js +2 -3
  29. package/lib/esm/index.js +3 -3
  30. package/lib/esm/request/DecafRequestContext.js +1 -2
  31. package/lib/esm/request/DecafResponseInterceptor.js +4 -2
  32. package/lib/esm/swagger-types.js +1 -1
  33. package/lib/esm/types.js +1 -1
  34. package/lib/esm/webhooks/DecafWebhookModule.js +2 -1
  35. package/lib/esm/webhooks/controllers.js +49 -54
  36. package/lib/types/decaf-model/FromModelController.d.cts +3 -11
  37. package/lib/types/decaf-model/FromModelController.d.mts +3 -11
  38. package/lib/types/index.d.cts +3 -3
  39. package/lib/types/index.d.mts +3 -3
  40. package/package.json +7 -1
@@ -6,6 +6,7 @@ exports.Repository = Repository;
6
6
  const common_1 = require("@nestjs/common");
7
7
  const core_1 = require("@decaf-ts/core");
8
8
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
9
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
9
10
  const pendingProviders = new Map();
10
11
  /**
11
12
  * @description Drains the providers registered by {@link Service}/{@link Repository} usages.
@@ -50,7 +51,7 @@ function Service(key) {
50
51
  resolved = paramTypes[parameterIndex];
51
52
  }
52
53
  if (typeof resolved === "undefined") {
53
- throw new Error(`@Service() could not determine an injection type for parameter ${parameterIndex} of ${target.name}. Provide an explicit argument, e.g. @Service(SomeService).`);
54
+ throw new db_decorators_1.InternalError(`@Service() could not determine an injection type for parameter ${parameterIndex} of ${target.name}. Provide an explicit argument, e.g. @Service(SomeService).`);
54
55
  }
55
56
  const asModel = typeof resolved !== "string" && isModelConstructor(resolved);
56
57
  const token = asModel
@@ -81,5 +82,5 @@ function Repository(model, flavour) {
81
82
  return (0, common_1.Inject)(token)(target, propertyKey, parameterIndex);
82
83
  };
83
84
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixVQUFVLElBQUksY0FBYyxFQUM1QixPQUFPLElBQUksV0FBVyxHQUN2QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU92RCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO0FBRWpFOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsVUFBeUI7SUFDaEUsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTztJQUN4QyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLEtBQWM7SUFDeEMsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxDQUFDLFNBQVMsWUFBWSxLQUFLLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsS0FBdUI7SUFDaEQsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FDM0IsS0FBdUIsRUFDdkIsT0FBZ0I7SUFFaEIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksY0FBYyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUM7QUFDcEYsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUErQjtJQUNyRCxPQUFPLENBQ0wsTUFBYyxFQUNkLFdBQXdDLEVBQ3hDLGNBQXNCLEVBQ2hCLEVBQUU7UUFDUixJQUFJLFFBQVEsR0FBMEMsR0FBRyxDQUFDO1FBQzFELElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsTUFBTSxVQUFVLEdBQ2QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekQsUUFBUSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUNiLGtFQUFrRSxjQUFjLE9BQVEsTUFBMkIsQ0FBQyxJQUFJLDZEQUE2RCxDQUN0TCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxNQUFNLEtBQUssR0FBRyxPQUFPO1lBQ25CLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUE0QixDQUFDO1lBQ2pELENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFxQyxDQUFDLENBQUM7UUFFaEUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUMzQixJQUFJLE9BQU87Z0JBQUUsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQTRCLENBQUMsQ0FBQztZQUN4RSxPQUFPLE9BQU8sUUFBUSxLQUFLLFFBQVE7Z0JBQ2pDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBNEIsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQ3hCLEtBQXVCLEVBQ3ZCLE9BQWdCO0lBRWhCLE9BQU8sQ0FDTCxNQUFjLEVBQ2QsV0FBd0MsRUFDeEMsY0FBc0IsRUFDaEIsRUFBRTtRQUNSLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQge1xuICBpbmplY3RhYmxlU2VydmljZUtleSxcbiAgTW9kZWxTZXJ2aWNlLFxuICBSZXBvc2l0b3J5IGFzIENvcmVSZXBvc2l0b3J5LFxuICBTZXJ2aWNlIGFzIENvcmVTZXJ2aWNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5leHBvcnQgdHlwZSBEZWNhZkZhY3RvcnlQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogc3RyaW5nO1xuICB1c2VGYWN0b3J5OiAoKSA9PiB1bmtub3duO1xufTtcblxuY29uc3QgcGVuZGluZ1Byb3ZpZGVycyA9IG5ldyBNYXA8c3RyaW5nLCBEZWNhZkZhY3RvcnlQcm92aWRlcj4oKTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRHJhaW5zIHRoZSBwcm92aWRlcnMgcmVnaXN0ZXJlZCBieSB7QGxpbmsgU2VydmljZX0ve0BsaW5rIFJlcG9zaXRvcnl9IHVzYWdlcy5cbiAqIEBzdW1tYXJ5IENvbnN1bWVkIGJ5IHtAbGluayBEZWNhZkNvcmVNb2R1bGUuZm9yUm9vdH0gdG8gd2lyZSB0aGUgdG9rZW5zIHRoYXQgdGhvc2UgcGFyYW1ldGVyXG4gKiBkZWNvcmF0b3JzIHJlZmVyZW5jZSBiYWNrIGludG8gTmVzdCdzIERJIGNvbnRhaW5lciwgc2luY2UgYSBwYXJhbWV0ZXIgZGVjb3JhdG9yIGFsb25lIGNhbm5vdFxuICogc3VwcGx5IGEgcHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWdpc3RlcmVkRGVjYWZQcm92aWRlcnMoKTogRGVjYWZGYWN0b3J5UHJvdmlkZXJbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHBlbmRpbmdQcm92aWRlcnMudmFsdWVzKCkpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlclByb3ZpZGVyKHRva2VuOiBzdHJpbmcsIHVzZUZhY3Rvcnk6ICgpID0+IHVua25vd24pOiB2b2lkIHtcbiAgaWYgKHBlbmRpbmdQcm92aWRlcnMuaGFzKHRva2VuKSkgcmV0dXJuO1xuICBwZW5kaW5nUHJvdmlkZXJzLnNldCh0b2tlbiwgeyBwcm92aWRlOiB0b2tlbiwgdXNlRmFjdG9yeSB9KTtcbn1cblxuZnVuY3Rpb24gaXNNb2RlbENvbnN0cnVjdG9yKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQ29uc3RydWN0b3I8YW55PiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJiB2YWx1ZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBNb2RlbDtcbn1cblxuZnVuY3Rpb24gbW9kZWxTZXJ2aWNlVG9rZW4obW9kZWw6IENvbnN0cnVjdG9yPGFueT4pOiBzdHJpbmcge1xuICByZXR1cm4gYCR7bW9kZWwubmFtZX1TZXJ2aWNlYDtcbn1cblxuZnVuY3Rpb24gbW9kZWxSZXBvc2l0b3J5VG9rZW4oXG4gIG1vZGVsOiBDb25zdHJ1Y3Rvcjxhbnk+LFxuICBmbGF2b3VyPzogc3RyaW5nXG4pOiBzdHJpbmcge1xuICByZXR1cm4gZmxhdm91ciA/IGAke21vZGVsLm5hbWV9UmVwb3NpdG9yeUAke2ZsYXZvdXJ9YCA6IGAke21vZGVsLm5hbWV9UmVwb3NpdG9yeWA7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYgc2VydmljZS5cbiAqIEBzdW1tYXJ5IFRyYW5zbGF0ZXMgZGVjYWYncyBzZXJ2aWNlIHJlc29sdXRpb24gQVBJcyBpbnRvIGEgTmVzdCBgQEluamVjdCgpYCBjYWxsOlxuICogLSBgQFNlcnZpY2UoU29tZU1vZGVsKWAgaW5qZWN0cyB0aGUgYE1vZGVsU2VydmljZTxTb21lTW9kZWw+YCBzaW5nbGV0b24gZm9yIHRoYXQgbW9kZWxcbiAqICAgKHZpYSB7QGxpbmsgTW9kZWxTZXJ2aWNlLmZvck1vZGVsfSkuXG4gKiAtIGBAU2VydmljZShTb21lU2VydmljZUNsYXNzKWAgb3IgYEBTZXJ2aWNlKFwiYWxpYXNcIilgIGluamVjdHMgdGhlIG1hdGNoaW5nIGBAc2VydmljZSgpYC1kZWNvcmF0ZWRcbiAqICAgZGVjYWYge0BsaW5rIENvcmVTZXJ2aWNlfSAodmlhIHtAbGluayBDb3JlU2VydmljZS5nZXR9KS5cbiAqIC0gYEBTZXJ2aWNlKClgIGluZmVycyB0aGUgcGFyYW1ldGVyJ3MgdHlwZSBmcm9tIGVtaXR0ZWQgY29uc3RydWN0b3IgbWV0YWRhdGEgYW5kIHJlc29sdmVzIGl0IHRoZVxuICogICBzYW1lIHdheSwgcHJvdmlkZWQgdGhlIHBhcmFtZXRlciBpcyB0eXBlZCBhcyBhIGNvbmNyZXRlIGNsYXNzIChnZW5lcmljcyBsaWtlIGBNb2RlbFNlcnZpY2U8WD5gXG4gKiAgIGFyZSBlcmFzZWQgYXQgcnVudGltZSwgc28gdGhlIG1vZGVsLXNlcnZpY2UgZm9ybSBhbHdheXMgcmVxdWlyZXMgYW4gZXhwbGljaXQgYXJndW1lbnQpLlxuICogQHBhcmFtIGtleSB0aGUgbW9kZWwgY2xhc3MsIHNlcnZpY2UgY2xhc3MsIG9yIGFsaWFzIHRvIHJlc29sdmUuIE9taXQgdG8gaW5mZXIgZnJvbSB0aGUgcGFyYW1ldGVyIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlKGtleT86IHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4pOiBQYXJhbWV0ZXJEZWNvcmF0b3Ige1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogb2JqZWN0LFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wgfCB1bmRlZmluZWQsXG4gICAgcGFyYW1ldGVySW5kZXg6IG51bWJlclxuICApOiB2b2lkID0+IHtcbiAgICBsZXQgcmVzb2x2ZWQ6IHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4gfCB1bmRlZmluZWQgPSBrZXk7XG4gICAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uc3QgcGFyYW1UeXBlczogYW55W10gPVxuICAgICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgdGFyZ2V0KSB8fCBbXTtcbiAgICAgIHJlc29sdmVkID0gcGFyYW1UeXBlc1twYXJhbWV0ZXJJbmRleF07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEBTZXJ2aWNlKCkgY291bGQgbm90IGRldGVybWluZSBhbiBpbmplY3Rpb24gdHlwZSBmb3IgcGFyYW1ldGVyICR7cGFyYW1ldGVySW5kZXh9IG9mICR7KHRhcmdldCBhcyBDb25zdHJ1Y3Rvcjxhbnk+KS5uYW1lfS4gUHJvdmlkZSBhbiBleHBsaWNpdCBhcmd1bWVudCwgZS5nLiBAU2VydmljZShTb21lU2VydmljZSkuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBhc01vZGVsID0gdHlwZW9mIHJlc29sdmVkICE9PSBcInN0cmluZ1wiICYmIGlzTW9kZWxDb25zdHJ1Y3RvcihyZXNvbHZlZCk7XG4gICAgY29uc3QgdG9rZW4gPSBhc01vZGVsXG4gICAgICA/IG1vZGVsU2VydmljZVRva2VuKHJlc29sdmVkIGFzIENvbnN0cnVjdG9yPGFueT4pXG4gICAgICA6IGluamVjdGFibGVTZXJ2aWNlS2V5KHJlc29sdmVkIGFzIHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4pO1xuXG4gICAgcmVnaXN0ZXJQcm92aWRlcih0b2tlbiwgKCkgPT4ge1xuICAgICAgaWYgKGFzTW9kZWwpIHJldHVybiBNb2RlbFNlcnZpY2UuZm9yTW9kZWwocmVzb2x2ZWQgYXMgQ29uc3RydWN0b3I8YW55Pik7XG4gICAgICByZXR1cm4gdHlwZW9mIHJlc29sdmVkID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gQ29yZVNlcnZpY2UuZ2V0KHJlc29sdmVkKVxuICAgICAgICA6IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZCBhcyBDb25zdHJ1Y3Rvcjxhbnk+KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBJbmplY3QodG9rZW4pKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiB7QGxpbmsgQ29yZVJlcG9zaXRvcnl9IGZvciBgbW9kZWxgLlxuICogQHN1bW1hcnkgVW5saWtlIHtAbGluayBTZXJ2aWNlfSwgYG1vZGVsYCBpcyBhbHdheXMgdHJlYXRlZCBhcyBhIE1vZGVsIGNsYXNzOiB0aGUgc2FtZSBjbGFzcyBwYXNzZWRcbiAqIHRvIGBAU2VydmljZShtb2RlbClgIGFuZCBgQFJlcG9zaXRvcnkobW9kZWwpYCByZXNvbHZlcyB0byB0d28gZGlmZmVyZW50IGluamVjdGVkIG9iamVjdHMgKGFcbiAqIGBNb2RlbFNlcnZpY2U8TT5gIHZzIGEgYFJlcG9zaXRvcnk8TT5gIHJlc3BlY3RpdmVseSksIHZpYSB7QGxpbmsgQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWx9LlxuICogQHBhcmFtIG1vZGVsIHRoZSBtb2RlbCBjbGFzcyB0byByZXNvbHZlIGEgcmVwb3NpdG9yeSBmb3IuXG4gKiBAcGFyYW0gZmxhdm91ciBvcHRpb25hbCBhZGFwdGVyIGZsYXZvdXIvYWxpYXMsIGZvcndhcmRlZCB0byB7QGxpbmsgQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWx9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gUmVwb3NpdG9yeShcbiAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4sXG4gIGZsYXZvdXI/OiBzdHJpbmdcbik6IFBhcmFtZXRlckRlY29yYXRvciB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBvYmplY3QsXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBwYXJhbWV0ZXJJbmRleDogbnVtYmVyXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHRva2VuID0gbW9kZWxSZXBvc2l0b3J5VG9rZW4obW9kZWwsIGZsYXZvdXIpO1xuICAgIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sICgpID0+IENvcmVSZXBvc2l0b3J5LmZvck1vZGVsKG1vZGVsLCBmbGF2b3VyKSk7XG4gICAgcmV0dXJuIEluamVjdCh0b2tlbikodGFyZ2V0LCBwcm9wZXJ0eUtleSwgcGFyYW1ldGVySW5kZXgpO1xuICB9O1xufVxuIl19
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxrRUFFQztBQTJCRCwwQkF1QkM7QUFTRCxnQ0FNQztBQTdFRCwyQ0FBd0M7QUFDeEMseUNBQTJIO0FBQzNILHlFQUF1RDtBQUN2RCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDbkM7Ozs7O0dBS0c7QUFDSCxTQUFnQiwyQkFBMkI7SUFDdkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUNELFNBQVMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFVBQVU7SUFDdkMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQzNCLE9BQU87SUFDWCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFDRCxTQUFTLGtCQUFrQixDQUFDLEtBQUs7SUFDN0IsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxDQUFDLFNBQVMsWUFBWSw0QkFBSyxDQUFDO0FBQzNFLENBQUM7QUFDRCxTQUFTLGlCQUFpQixDQUFDLEtBQUs7SUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNsQyxDQUFDO0FBQ0QsU0FBUyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTztJQUN4QyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxjQUFjLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQztBQUN0RixDQUFDO0FBQ0Q7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixPQUFPLENBQUMsR0FBRztJQUN2QixPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsRUFBRTtRQUMzQyxJQUFJLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDbkIsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxRSxRQUFRLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLGNBQWMsT0FBTyxNQUFNLENBQUMsSUFBSSw2REFBNkQsQ0FBQyxDQUFDO1FBQ3JMLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQUcsT0FBTztZQUNqQixDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFBLDJCQUFvQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDekIsSUFBSSxPQUFPO2dCQUNQLE9BQU8sbUJBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsT0FBTyxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUMvQixDQUFDLENBQUMsY0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxjQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFBLGVBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPO0lBQ3JDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUFFO1FBQzNDLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFBLGVBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRCw4eFNBQTh4UyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZVNlcnZpY2VLZXksIE1vZGVsU2VydmljZSwgUmVwb3NpdG9yeSBhcyBDb3JlUmVwb3NpdG9yeSwgU2VydmljZSBhcyBDb3JlU2VydmljZSwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuY29uc3QgcGVuZGluZ1Byb3ZpZGVycyA9IG5ldyBNYXAoKTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIERyYWlucyB0aGUgcHJvdmlkZXJzIHJlZ2lzdGVyZWQgYnkge0BsaW5rIFNlcnZpY2V9L3tAbGluayBSZXBvc2l0b3J5fSB1c2FnZXMuXG4gKiBAc3VtbWFyeSBDb25zdW1lZCBieSB7QGxpbmsgRGVjYWZDb3JlTW9kdWxlLmZvclJvb3R9IHRvIHdpcmUgdGhlIHRva2VucyB0aGF0IHRob3NlIHBhcmFtZXRlclxuICogZGVjb3JhdG9ycyByZWZlcmVuY2UgYmFjayBpbnRvIE5lc3QncyBESSBjb250YWluZXIsIHNpbmNlIGEgcGFyYW1ldGVyIGRlY29yYXRvciBhbG9uZSBjYW5ub3RcbiAqIHN1cHBseSBhIHByb3ZpZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVnaXN0ZXJlZERlY2FmUHJvdmlkZXJzKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHBlbmRpbmdQcm92aWRlcnMudmFsdWVzKCkpO1xufVxuZnVuY3Rpb24gcmVnaXN0ZXJQcm92aWRlcih0b2tlbiwgdXNlRmFjdG9yeSkge1xuICAgIGlmIChwZW5kaW5nUHJvdmlkZXJzLmhhcyh0b2tlbikpXG4gICAgICAgIHJldHVybjtcbiAgICBwZW5kaW5nUHJvdmlkZXJzLnNldCh0b2tlbiwgeyBwcm92aWRlOiB0b2tlbiwgdXNlRmFjdG9yeSB9KTtcbn1cbmZ1bmN0aW9uIGlzTW9kZWxDb25zdHJ1Y3Rvcih2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJiB2YWx1ZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBNb2RlbDtcbn1cbmZ1bmN0aW9uIG1vZGVsU2VydmljZVRva2VuKG1vZGVsKSB7XG4gICAgcmV0dXJuIGAke21vZGVsLm5hbWV9U2VydmljZWA7XG59XG5mdW5jdGlvbiBtb2RlbFJlcG9zaXRvcnlUb2tlbihtb2RlbCwgZmxhdm91cikge1xuICAgIHJldHVybiBmbGF2b3VyID8gYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5QCR7Zmxhdm91cn1gIDogYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5YDtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYgc2VydmljZS5cbiAqIEBzdW1tYXJ5IFRyYW5zbGF0ZXMgZGVjYWYncyBzZXJ2aWNlIHJlc29sdXRpb24gQVBJcyBpbnRvIGEgTmVzdCBgQEluamVjdCgpYCBjYWxsOlxuICogLSBgQFNlcnZpY2UoU29tZU1vZGVsKWAgaW5qZWN0cyB0aGUgYE1vZGVsU2VydmljZTxTb21lTW9kZWw+YCBzaW5nbGV0b24gZm9yIHRoYXQgbW9kZWxcbiAqICAgKHZpYSB7QGxpbmsgTW9kZWxTZXJ2aWNlLmZvck1vZGVsfSkuXG4gKiAtIGBAU2VydmljZShTb21lU2VydmljZUNsYXNzKWAgb3IgYEBTZXJ2aWNlKFwiYWxpYXNcIilgIGluamVjdHMgdGhlIG1hdGNoaW5nIGBAc2VydmljZSgpYC1kZWNvcmF0ZWRcbiAqICAgZGVjYWYge0BsaW5rIENvcmVTZXJ2aWNlfSAodmlhIHtAbGluayBDb3JlU2VydmljZS5nZXR9KS5cbiAqIC0gYEBTZXJ2aWNlKClgIGluZmVycyB0aGUgcGFyYW1ldGVyJ3MgdHlwZSBmcm9tIGVtaXR0ZWQgY29uc3RydWN0b3IgbWV0YWRhdGEgYW5kIHJlc29sdmVzIGl0IHRoZVxuICogICBzYW1lIHdheSwgcHJvdmlkZWQgdGhlIHBhcmFtZXRlciBpcyB0eXBlZCBhcyBhIGNvbmNyZXRlIGNsYXNzIChnZW5lcmljcyBsaWtlIGBNb2RlbFNlcnZpY2U8WD5gXG4gKiAgIGFyZSBlcmFzZWQgYXQgcnVudGltZSwgc28gdGhlIG1vZGVsLXNlcnZpY2UgZm9ybSBhbHdheXMgcmVxdWlyZXMgYW4gZXhwbGljaXQgYXJndW1lbnQpLlxuICogQHBhcmFtIGtleSB0aGUgbW9kZWwgY2xhc3MsIHNlcnZpY2UgY2xhc3MsIG9yIGFsaWFzIHRvIHJlc29sdmUuIE9taXQgdG8gaW5mZXIgZnJvbSB0aGUgcGFyYW1ldGVyIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlKGtleSkge1xuICAgIHJldHVybiAodGFyZ2V0LCBwcm9wZXJ0eUtleSwgcGFyYW1ldGVySW5kZXgpID0+IHtcbiAgICAgICAgbGV0IHJlc29sdmVkID0ga2V5O1xuICAgICAgICBpZiAodHlwZW9mIHJlc29sdmVkID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbVR5cGVzID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIHRhcmdldCkgfHwgW107XG4gICAgICAgICAgICByZXNvbHZlZCA9IHBhcmFtVHlwZXNbcGFyYW1ldGVySW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQFNlcnZpY2UoKSBjb3VsZCBub3QgZGV0ZXJtaW5lIGFuIGluamVjdGlvbiB0eXBlIGZvciBwYXJhbWV0ZXIgJHtwYXJhbWV0ZXJJbmRleH0gb2YgJHt0YXJnZXQubmFtZX0uIFByb3ZpZGUgYW4gZXhwbGljaXQgYXJndW1lbnQsIGUuZy4gQFNlcnZpY2UoU29tZVNlcnZpY2UpLmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFzTW9kZWwgPSB0eXBlb2YgcmVzb2x2ZWQgIT09IFwic3RyaW5nXCIgJiYgaXNNb2RlbENvbnN0cnVjdG9yKHJlc29sdmVkKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBhc01vZGVsXG4gICAgICAgICAgICA/IG1vZGVsU2VydmljZVRva2VuKHJlc29sdmVkKVxuICAgICAgICAgICAgOiBpbmplY3RhYmxlU2VydmljZUtleShyZXNvbHZlZCk7XG4gICAgICAgIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhc01vZGVsKVxuICAgICAgICAgICAgICAgIHJldHVybiBNb2RlbFNlcnZpY2UuZm9yTW9kZWwocmVzb2x2ZWQpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiByZXNvbHZlZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgID8gQ29yZVNlcnZpY2UuZ2V0KHJlc29sdmVkKVxuICAgICAgICAgICAgICAgIDogQ29yZVNlcnZpY2UuZ2V0KHJlc29sdmVkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBJbmplY3QodG9rZW4pKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KTtcbiAgICB9O1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiB7QGxpbmsgQ29yZVJlcG9zaXRvcnl9IGZvciBgbW9kZWxgLlxuICogQHN1bW1hcnkgVW5saWtlIHtAbGluayBTZXJ2aWNlfSwgYG1vZGVsYCBpcyBhbHdheXMgdHJlYXRlZCBhcyBhIE1vZGVsIGNsYXNzOiB0aGUgc2FtZSBjbGFzcyBwYXNzZWRcbiAqIHRvIGBAU2VydmljZShtb2RlbClgIGFuZCBgQFJlcG9zaXRvcnkobW9kZWwpYCByZXNvbHZlcyB0byB0d28gZGlmZmVyZW50IGluamVjdGVkIG9iamVjdHMgKGFcbiAqIGBNb2RlbFNlcnZpY2U8TT5gIHZzIGEgYFJlcG9zaXRvcnk8TT5gIHJlc3BlY3RpdmVseSksIHZpYSB7QGxpbmsgQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWx9LlxuICogQHBhcmFtIG1vZGVsIHRoZSBtb2RlbCBjbGFzcyB0byByZXNvbHZlIGEgcmVwb3NpdG9yeSBmb3IuXG4gKiBAcGFyYW0gZmxhdm91ciBvcHRpb25hbCBhZGFwdGVyIGZsYXZvdXIvYWxpYXMsIGZvcndhcmRlZCB0byB7QGxpbmsgQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWx9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gUmVwb3NpdG9yeShtb2RlbCwgZmxhdm91cikge1xuICAgIHJldHVybiAodGFyZ2V0LCBwcm9wZXJ0eUtleSwgcGFyYW1ldGVySW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBtb2RlbFJlcG9zaXRvcnlUb2tlbihtb2RlbCwgZmxhdm91cik7XG4gICAgICAgIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sICgpID0+IENvcmVSZXBvc2l0b3J5LmZvck1vZGVsKG1vZGVsLCBmbGF2b3VyKSk7XG4gICAgICAgIHJldHVybiBJbmplY3QodG9rZW4pKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KTtcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdWamIzSmhkRzl5Y3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTlrWldOdmNtRjBiM0p6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVWNFF5eFBRVUZQTEVWQlEwd3NiMEpCUVc5Q0xFVkJRM0JDTEZsQlFWa3NSVUZEV2l4VlFVRlZMRWxCUVVrc1kwRkJZeXhGUVVNMVFpeFBRVUZQTEVsQlFVa3NWMEZCVnl4SFFVTjJRaXhOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUTNoQ0xFOUJRVThzUlVGQlJTeExRVUZMTEVWQlFVVXNUVUZCVFN4blEwRkJaME1zUTBGQlF6dEJRVTkyUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RlFVRm5ReXhEUVVGRE8wRkJSV3BGT3pzN096dEhRVXRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMREpDUVVFeVFqdEpRVU42UXl4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU12UXl4RFFVRkRPMEZCUlVRc1UwRkJVeXhuUWtGQlowSXNRMEZCUXl4TFFVRmhMRVZCUVVVc1ZVRkJlVUk3U1VGRGFFVXNTVUZCU1N4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUVVVc1QwRkJUenRKUVVONFF5eG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlF6bEVMRU5CUVVNN1FVRkZSQ3hUUVVGVExHdENRVUZyUWl4RFFVRkRMRXRCUVdNN1NVRkRlRU1zVDBGQlR5eFBRVUZQTEV0QlFVc3NTMEZCU3l4VlFVRlZMRWxCUVVrc1MwRkJTeXhEUVVGRExGTkJRVk1zV1VGQldTeExRVUZMTEVOQlFVTTdRVUZEZWtVc1EwRkJRenRCUVVWRUxGTkJRVk1zYVVKQlFXbENMRU5CUVVNc1MwRkJkVUk3U1VGRGFFUXNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhKUVVGSkxGTkJRVk1zUTBGQlF6dEJRVU5vUXl4RFFVRkRPMEZCUlVRc1UwRkJVeXh2UWtGQmIwSXNRMEZETTBJc1MwRkJkVUlzUlVGRGRrSXNUMEZCWjBJN1NVRkZhRUlzVDBGQlR5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzWTBGQll5eFBRVUZQTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTTdRVUZEY0VZc1EwRkJRenRCUVVWRU96czdPenM3T3pzN096dEhRVmRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMRTlCUVU4c1EwRkJReXhIUVVFclFqdEpRVU55UkN4UFFVRlBMRU5CUTB3c1RVRkJZeXhGUVVOa0xGZEJRWGRETEVWQlEzaERMR05CUVhOQ0xFVkJRMmhDTEVWQlFVVTdVVUZEVWl4SlFVRkpMRkZCUVZFc1IwRkJNRU1zUjBGQlJ5eERRVUZETzFGQlF6RkVMRWxCUVVrc1QwRkJUeXhSUVVGUkxFdEJRVXNzVjBGQlZ5eEZRVUZGTEVOQlFVTTdXVUZEY0VNc1RVRkJUU3hWUVVGVkxFZEJRMlFzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRla1FzVVVGQlVTeEhRVUZITEZWQlFWVXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRSUVVONFF5eERRVUZETzFGQlEwUXNTVUZCU1N4UFFVRlBMRkZCUVZFc1MwRkJTeXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU53UXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVOaUxHdEZRVUZyUlN4alFVRmpMRTlCUVZFc1RVRkJNa0lzUTBGQlF5eEpRVUZKTERaRVFVRTJSQ3hEUVVOMFRDeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFOUJRVThzVVVGQlVTeExRVUZMTEZGQlFWRXNTVUZCU1N4clFrRkJhMElzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eFBRVUZQTzFsQlEyNUNMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4UlFVRTBRaXhEUVVGRE8xbEJRMnBFTEVOQlFVTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eFJRVUZ4UXl4RFFVRkRMRU5CUVVNN1VVRkZhRVVzWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJUdFpRVU16UWl4SlFVRkpMRTlCUVU4N1owSkJRVVVzVDBGQlR5eFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVRSQ0xFTkJRVU1zUTBGQlF6dFpRVU40UlN4UFFVRlBMRTlCUVU4c1VVRkJVU3hMUVVGTExGRkJRVkU3WjBKQlEycERMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXp0blFrRkRNMElzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJORUlzUTBGQlF5eERRVUZETzFGQlEzQkVMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSVWdzVDBGQlR5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeGpRVUZqTEVOQlFVTXNRMEZCUXp0SlFVTTFSQ3hEUVVGRExFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFZRVUZWTEVOQlEzaENMRXRCUVhWQ0xFVkJRM1pDTEU5QlFXZENPMGxCUldoQ0xFOUJRVThzUTBGRFRDeE5RVUZqTEVWQlEyUXNWMEZCZDBNc1JVRkRlRU1zWTBGQmMwSXNSVUZEYUVJc1JVRkJSVHRSUVVOU0xFMUJRVTBzUzBGQlN5eEhRVUZITEc5Q1FVRnZRaXhEUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnVSQ3huUWtGQlowSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU4yUlN4UFFVRlBMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJRelZFTEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkpibXBsWTNRZ2ZTQm1jbTl0SUZ3aVFHNWxjM1JxY3k5amIyMXRiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFTnZibk4wY25WamRHOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JwYm1wbFkzUmhZbXhsVTJWeWRtbGpaVXRsZVN4Y2JpQWdUVzlrWld4VFpYSjJhV05sTEZ4dUlDQlNaWEJ2YzJsMGIzSjVJR0Z6SUVOdmNtVlNaWEJ2YzJsMGIzSjVMRnh1SUNCVFpYSjJhV05sSUdGeklFTnZjbVZUWlhKMmFXTmxMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUUxdlpHVnNJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCRVpXTmhaa1poWTNSdmNubFFjbTkyYVdSbGNpQTlJSHRjYmlBZ2NISnZkbWxrWlRvZ2MzUnlhVzVuTzF4dUlDQjFjMlZHWVdOMGIzSjVPaUFvS1NBOVBpQjFibXR1YjNkdU8xeHVmVHRjYmx4dVkyOXVjM1FnY0dWdVpHbHVaMUJ5YjNacFpHVnljeUE5SUc1bGR5Qk5ZWEE4YzNSeWFXNW5MQ0JFWldOaFprWmhZM1J2Y25sUWNtOTJhV1JsY2o0b0tUdGNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JISmhhVzV6SUhSb1pTQndjbTkyYVdSbGNuTWdjbVZuYVhOMFpYSmxaQ0JpZVNCN1FHeHBibXNnVTJWeWRtbGpaWDB2ZTBCc2FXNXJJRkpsY0c5emFYUnZjbmw5SUhWellXZGxjeTVjYmlBcUlFQnpkVzF0WVhKNUlFTnZibk4xYldWa0lHSjVJSHRBYkdsdWF5QkVaV05oWmtOdmNtVk5iMlIxYkdVdVptOXlVbTl2ZEgwZ2RHOGdkMmx5WlNCMGFHVWdkRzlyWlc1eklIUm9ZWFFnZEdodmMyVWdjR0Z5WVcxbGRHVnlYRzRnS2lCa1pXTnZjbUYwYjNKeklISmxabVZ5Wlc1alpTQmlZV05ySUdsdWRHOGdUbVZ6ZENkeklFUkpJR052Ym5SaGFXNWxjaXdnYzJsdVkyVWdZU0J3WVhKaGJXVjBaWElnWkdWamIzSmhkRzl5SUdGc2IyNWxJR05oYm01dmRGeHVJQ29nYzNWd2NHeDVJR0VnY0hKdmRtbGtaWEl1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm5aWFJTWldkcGMzUmxjbVZrUkdWallXWlFjbTkyYVdSbGNuTW9LVG9nUkdWallXWkdZV04wYjNKNVVISnZkbWxrWlhKYlhTQjdYRzRnSUhKbGRIVnliaUJCY25KaGVTNW1jbTl0S0hCbGJtUnBibWRRY205MmFXUmxjbk11ZG1Gc2RXVnpLQ2twTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJ5WldkcGMzUmxjbEJ5YjNacFpHVnlLSFJ2YTJWdU9pQnpkSEpwYm1jc0lIVnpaVVpoWTNSdmNuazZJQ2dwSUQwK0lIVnVhMjV2ZDI0cE9pQjJiMmxrSUh0Y2JpQWdhV1lnS0hCbGJtUnBibWRRY205MmFXUmxjbk11YUdGektIUnZhMlZ1S1NrZ2NtVjBkWEp1TzF4dUlDQndaVzVrYVc1blVISnZkbWxrWlhKekxuTmxkQ2gwYjJ0bGJpd2dleUJ3Y205MmFXUmxPaUIwYjJ0bGJpd2dkWE5sUm1GamRHOXllU0I5S1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYVhOTmIyUmxiRU52Ym5OMGNuVmpkRzl5S0haaGJIVmxPaUIxYm10dWIzZHVLVG9nZG1Gc2RXVWdhWE1nUTI5dWMzUnlkV04wYjNJOFlXNTVQaUI3WEc0Z0lISmxkSFZ5YmlCMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQW1KaUIyWVd4MVpTNXdjbTkwYjNSNWNHVWdhVzV6ZEdGdVkyVnZaaUJOYjJSbGJEdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2JXOWtaV3hUWlhKMmFXTmxWRzlyWlc0b2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwT2lCemRISnBibWNnZTF4dUlDQnlaWFIxY200Z1lDUjdiVzlrWld3dWJtRnRaWDFUWlhKMmFXTmxZRHRjYm4xY2JseHVablZ1WTNScGIyNGdiVzlrWld4U1pYQnZjMmwwYjNKNVZHOXJaVzRvWEc0Z0lHMXZaR1ZzT2lCRGIyNXpkSEoxWTNSdmNqeGhibmsrTEZ4dUlDQm1iR0YyYjNWeVB6b2djM1J5YVc1blhHNHBPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnWm14aGRtOTFjaUEvSUdBa2UyMXZaR1ZzTG01aGJXVjlVbVZ3YjNOcGRHOXllVUFrZTJac1lYWnZkWEo5WUNBNklHQWtlMjF2WkdWc0xtNWhiV1Y5VW1Wd2IzTnBkRzl5ZVdBN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnZibk4wY25WamRHOXlJSEJoY21GdFpYUmxjaUJrWldOdmNtRjBiM0lnZEdoaGRDQnBibXBsWTNSeklHRWdaR1ZqWVdZZ2MyVnlkbWxqWlM1Y2JpQXFJRUJ6ZFcxdFlYSjVJRlJ5WVc1emJHRjBaWE1nWkdWallXWW5jeUJ6WlhKMmFXTmxJSEpsYzI5c2RYUnBiMjRnUVZCSmN5QnBiblJ2SUdFZ1RtVnpkQ0JnUUVsdWFtVmpkQ2dwWUNCallXeHNPbHh1SUNvZ0xTQmdRRk5sY25acFkyVW9VMjl0WlUxdlpHVnNLV0FnYVc1cVpXTjBjeUIwYUdVZ1lFMXZaR1ZzVTJWeWRtbGpaVHhUYjIxbFRXOWtaV3crWUNCemFXNW5iR1YwYjI0Z1ptOXlJSFJvWVhRZ2JXOWtaV3hjYmlBcUlDQWdLSFpwWVNCN1FHeHBibXNnVFc5a1pXeFRaWEoyYVdObExtWnZjazF2WkdWc2ZTa3VYRzRnS2lBdElHQkFVMlZ5ZG1salpTaFRiMjFsVTJWeWRtbGpaVU5zWVhOektXQWdiM0lnWUVCVFpYSjJhV05sS0Z3aVlXeHBZWE5jSWlsZ0lHbHVhbVZqZEhNZ2RHaGxJRzFoZEdOb2FXNW5JR0JBYzJWeWRtbGpaU2dwWUMxa1pXTnZjbUYwWldSY2JpQXFJQ0FnWkdWallXWWdlMEJzYVc1cklFTnZjbVZUWlhKMmFXTmxmU0FvZG1saElIdEFiR2x1YXlCRGIzSmxVMlZ5ZG1salpTNW5aWFI5S1M1Y2JpQXFJQzBnWUVCVFpYSjJhV05sS0NsZ0lHbHVabVZ5Y3lCMGFHVWdjR0Z5WVcxbGRHVnlKM01nZEhsd1pTQm1jbTl0SUdWdGFYUjBaV1FnWTI5dWMzUnlkV04wYjNJZ2JXVjBZV1JoZEdFZ1lXNWtJSEpsYzI5c2RtVnpJR2wwSUhSb1pWeHVJQ29nSUNCellXMWxJSGRoZVN3Z2NISnZkbWxrWldRZ2RHaGxJSEJoY21GdFpYUmxjaUJwY3lCMGVYQmxaQ0JoY3lCaElHTnZibU55WlhSbElHTnNZWE56SUNoblpXNWxjbWxqY3lCc2FXdGxJR0JOYjJSbGJGTmxjblpwWTJVOFdENWdYRzRnS2lBZ0lHRnlaU0JsY21GelpXUWdZWFFnY25WdWRHbHRaU3dnYzI4Z2RHaGxJRzF2WkdWc0xYTmxjblpwWTJVZ1ptOXliU0JoYkhkaGVYTWdjbVZ4ZFdseVpYTWdZVzRnWlhod2JHbGphWFFnWVhKbmRXMWxiblFwTGx4dUlDb2dRSEJoY21GdElHdGxlU0IwYUdVZ2JXOWtaV3dnWTJ4aGMzTXNJSE5sY25acFkyVWdZMnhoYzNNc0lHOXlJR0ZzYVdGeklIUnZJSEpsYzI5c2RtVXVJRTl0YVhRZ2RHOGdhVzVtWlhJZ1puSnZiU0IwYUdVZ2NHRnlZVzFsZEdWeUlIUjVjR1V1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQlRaWEoyYVdObEtHdGxlVDg2SUhOMGNtbHVaeUI4SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwT2lCUVlYSmhiV1YwWlhKRVpXTnZjbUYwYjNJZ2UxeHVJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lIUmhjbWRsZERvZ2IySnFaV04wTEZ4dUlDQWdJSEJ5YjNCbGNuUjVTMlY1T2lCemRISnBibWNnZkNCemVXMWliMndnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnY0dGeVlXMWxkR1Z5U1c1a1pYZzZJRzUxYldKbGNseHVJQ0FwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0JzWlhRZ2NtVnpiMngyWldRNklITjBjbWx1WnlCOElFTnZibk4wY25WamRHOXlQR0Z1ZVQ0Z2ZDQjFibVJsWm1sdVpXUWdQU0JyWlhrN1hHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCeVpYTnZiSFpsWkNBOVBUMGdYQ0oxYm1SbFptbHVaV1JjSWlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY0dGeVlXMVVlWEJsY3pvZ1lXNTVXMTBnUFZ4dUlDQWdJQ0FnSUNCU1pXWnNaV04wTG1kbGRFMWxkR0ZrWVhSaEtGd2laR1Z6YVdkdU9uQmhjbUZ0ZEhsd1pYTmNJaXdnZEdGeVoyVjBLU0I4ZkNCYlhUdGNiaUFnSUNBZ0lISmxjMjlzZG1Wa0lEMGdjR0Z5WVcxVWVYQmxjMXR3WVhKaGJXVjBaWEpKYm1SbGVGMDdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2NtVnpiMngyWldRZ1BUMDlJRndpZFc1a1pXWnBibVZrWENJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1lFQlRaWEoyYVdObEtDa2dZMjkxYkdRZ2JtOTBJR1JsZEdWeWJXbHVaU0JoYmlCcGJtcGxZM1JwYjI0Z2RIbHdaU0JtYjNJZ2NHRnlZVzFsZEdWeUlDUjdjR0Z5WVcxbGRHVnlTVzVrWlhoOUlHOW1JQ1I3S0hSaGNtZGxkQ0JoY3lCRGIyNXpkSEoxWTNSdmNqeGhibmsrS1M1dVlXMWxmUzRnVUhKdmRtbGtaU0JoYmlCbGVIQnNhV05wZENCaGNtZDFiV1Z1ZEN3Z1pTNW5MaUJBVTJWeWRtbGpaU2hUYjIxbFUyVnlkbWxqWlNrdVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JoYzAxdlpHVnNJRDBnZEhsd1pXOW1JSEpsYzI5c2RtVmtJQ0U5UFNCY0luTjBjbWx1WjF3aUlDWW1JR2x6VFc5a1pXeERiMjV6ZEhKMVkzUnZjaWh5WlhOdmJIWmxaQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RHOXJaVzRnUFNCaGMwMXZaR1ZzWEc0Z0lDQWdJQ0EvSUcxdlpHVnNVMlZ5ZG1salpWUnZhMlZ1S0hKbGMyOXNkbVZrSUdGeklFTnZibk4wY25WamRHOXlQR0Z1ZVQ0cFhHNGdJQ0FnSUNBNklHbHVhbVZqZEdGaWJHVlRaWEoyYVdObFMyVjVLSEpsYzI5c2RtVmtJR0Z6SUhOMGNtbHVaeUI4SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwTzF4dVhHNGdJQ0FnY21WbmFYTjBaWEpRY205MmFXUmxjaWgwYjJ0bGJpd2dLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLR0Z6VFc5a1pXd3BJSEpsZEhWeWJpQk5iMlJsYkZObGNuWnBZMlV1Wm05eVRXOWtaV3dvY21WemIyeDJaV1FnWVhNZ1EyOXVjM1J5ZFdOMGIzSThZVzU1UGlrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEhsd1pXOW1JSEpsYzI5c2RtVmtJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lEOGdRMjl5WlZObGNuWnBZMlV1WjJWMEtISmxjMjlzZG1Wa0tWeHVJQ0FnSUNBZ0lDQTZJRU52Y21WVFpYSjJhV05sTG1kbGRDaHlaWE52YkhabFpDQmhjeUJEYjI1emRISjFZM1J2Y2p4aGJuaytLVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQkpibXBsWTNRb2RHOXJaVzRwS0hSaGNtZGxkQ3dnY0hKdmNHVnlkSGxMWlhrc0lIQmhjbUZ0WlhSbGNrbHVaR1Y0S1R0Y2JpQWdmVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTI5dWMzUnlkV04wYjNJZ2NHRnlZVzFsZEdWeUlHUmxZMjl5WVhSdmNpQjBhR0YwSUdsdWFtVmpkSE1nWVNCa1pXTmhaaUI3UUd4cGJtc2dRMjl5WlZKbGNHOXphWFJ2Y25sOUlHWnZjaUJnYlc5a1pXeGdMbHh1SUNvZ1FITjFiVzFoY25rZ1ZXNXNhV3RsSUh0QWJHbHVheUJUWlhKMmFXTmxmU3dnWUcxdlpHVnNZQ0JwY3lCaGJIZGhlWE1nZEhKbFlYUmxaQ0JoY3lCaElFMXZaR1ZzSUdOc1lYTnpPaUIwYUdVZ2MyRnRaU0JqYkdGemN5QndZWE56WldSY2JpQXFJSFJ2SUdCQVUyVnlkbWxqWlNodGIyUmxiQ2xnSUdGdVpDQmdRRkpsY0c5emFYUnZjbmtvYlc5a1pXd3BZQ0J5WlhOdmJIWmxjeUIwYnlCMGQyOGdaR2xtWm1WeVpXNTBJR2x1YW1WamRHVmtJRzlpYW1WamRITWdLR0ZjYmlBcUlHQk5iMlJsYkZObGNuWnBZMlU4VFQ1Z0lIWnpJR0VnWUZKbGNHOXphWFJ2Y25rOFRUNWdJSEpsYzNCbFkzUnBkbVZzZVNrc0lIWnBZU0I3UUd4cGJtc2dRMjl5WlZKbGNHOXphWFJ2Y25rdVptOXlUVzlrWld4OUxseHVJQ29nUUhCaGNtRnRJRzF2WkdWc0lIUm9aU0J0YjJSbGJDQmpiR0Z6Y3lCMGJ5QnlaWE52YkhabElHRWdjbVZ3YjNOcGRHOXllU0JtYjNJdVhHNGdLaUJBY0dGeVlXMGdabXhoZG05MWNpQnZjSFJwYjI1aGJDQmhaR0Z3ZEdWeUlHWnNZWFp2ZFhJdllXeHBZWE1zSUdadmNuZGhjbVJsWkNCMGJ5QjdRR3hwYm1zZ1EyOXlaVkpsY0c5emFYUnZjbmt1Wm05eVRXOWtaV3g5TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdVbVZ3YjNOcGRHOXllU2hjYmlBZ2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRzWEc0Z0lHWnNZWFp2ZFhJL09pQnpkSEpwYm1kY2JpazZJRkJoY21GdFpYUmxja1JsWTI5eVlYUnZjaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnZEdGeVoyVjBPaUJ2WW1wbFkzUXNYRzRnSUNBZ2NISnZjR1Z5ZEhsTFpYazZJSE4wY21sdVp5QjhJSE41YldKdmJDQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQndZWEpoYldWMFpYSkpibVJsZURvZ2JuVnRZbVZ5WEc0Z0lDazZJSFp2YVdRZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnYlc5a1pXeFNaWEJ2YzJsMGIzSjVWRzlyWlc0b2JXOWtaV3dzSUdac1lYWnZkWElwTzF4dUlDQWdJSEpsWjJsemRHVnlVSEp2ZG1sa1pYSW9kRzlyWlc0c0lDZ3BJRDArSUVOdmNtVlNaWEJ2YzJsMGIzSjVMbVp2Y2sxdlpHVnNLRzF2WkdWc0xDQm1iR0YyYjNWeUtTazdYRzRnSUNBZ2NtVjBkWEp1SUVsdWFtVmpkQ2gwYjJ0bGJpa29kR0Z5WjJWMExDQndjbTl3WlhKMGVVdGxlU3dnY0dGeVlXMWxkR1Z5U1c1a1pYZ3BPMXh1SUNCOU8xeHVmVnh1SWwxOSJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixVQUFVLElBQUksY0FBYyxFQUM1QixPQUFPLElBQUksV0FBVyxHQUN2QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztBQUVqRTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFVBQXlCO0lBQ2hFLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU87SUFDeEMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxLQUFjO0lBQ3hDLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxTQUFTLFlBQVksS0FBSyxDQUFDO0FBQ3pFLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQXVCO0lBQ2hELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDaEMsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLEtBQXVCLEVBQ3ZCLE9BQWdCO0lBRWhCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLGNBQWMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDO0FBQ3BGLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBK0I7SUFDckQsT0FBTyxDQUNMLE1BQWMsRUFDZCxXQUF3QyxFQUN4QyxjQUFzQixFQUNoQixFQUFFO1FBQ1IsSUFBSSxRQUFRLEdBQTBDLEdBQUcsQ0FBQztRQUMxRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sVUFBVSxHQUNkLE9BQU8sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pELFFBQVEsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLGFBQWEsQ0FDckIsa0VBQWtFLGNBQWMsT0FBUSxNQUEyQixDQUFDLElBQUksNkRBQTZELENBQ3RMLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sS0FBSyxHQUFHLE9BQU87WUFDbkIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQTRCLENBQUM7WUFDakQsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFFBQXFDLENBQUMsQ0FBQztRQUVoRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzNCLElBQUksT0FBTztnQkFBRSxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBNEIsQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sT0FBTyxRQUFRLEtBQUssUUFBUTtnQkFDakMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUMzQixDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUE0QixDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsS0FBdUIsRUFDdkIsT0FBZ0I7SUFFaEIsT0FBTyxDQUNMLE1BQWMsRUFDZCxXQUF3QyxFQUN4QyxjQUFzQixFQUNoQixFQUFFO1FBQ1IsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIGluamVjdGFibGVTZXJ2aWNlS2V5LFxuICBNb2RlbFNlcnZpY2UsXG4gIFJlcG9zaXRvcnkgYXMgQ29yZVJlcG9zaXRvcnksXG4gIFNlcnZpY2UgYXMgQ29yZVNlcnZpY2UsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmV4cG9ydCB0eXBlIERlY2FmRmFjdG9yeVByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBzdHJpbmc7XG4gIHVzZUZhY3Rvcnk6ICgpID0+IHVua25vd247XG59O1xuXG5jb25zdCBwZW5kaW5nUHJvdmlkZXJzID0gbmV3IE1hcDxzdHJpbmcsIERlY2FmRmFjdG9yeVByb3ZpZGVyPigpO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEcmFpbnMgdGhlIHByb3ZpZGVycyByZWdpc3RlcmVkIGJ5IHtAbGluayBTZXJ2aWNlfS97QGxpbmsgUmVwb3NpdG9yeX0gdXNhZ2VzLlxuICogQHN1bW1hcnkgQ29uc3VtZWQgYnkge0BsaW5rIERlY2FmQ29yZU1vZHVsZS5mb3JSb290fSB0byB3aXJlIHRoZSB0b2tlbnMgdGhhdCB0aG9zZSBwYXJhbWV0ZXJcbiAqIGRlY29yYXRvcnMgcmVmZXJlbmNlIGJhY2sgaW50byBOZXN0J3MgREkgY29udGFpbmVyLCBzaW5jZSBhIHBhcmFtZXRlciBkZWNvcmF0b3IgYWxvbmUgY2Fubm90XG4gKiBzdXBwbHkgYSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZ2lzdGVyZWREZWNhZlByb3ZpZGVycygpOiBEZWNhZkZhY3RvcnlQcm92aWRlcltdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20ocGVuZGluZ1Byb3ZpZGVycy52YWx1ZXMoKSk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW46IHN0cmluZywgdXNlRmFjdG9yeTogKCkgPT4gdW5rbm93bik6IHZvaWQge1xuICBpZiAocGVuZGluZ1Byb3ZpZGVycy5oYXModG9rZW4pKSByZXR1cm47XG4gIHBlbmRpbmdQcm92aWRlcnMuc2V0KHRva2VuLCB7IHByb3ZpZGU6IHRva2VuLCB1c2VGYWN0b3J5IH0pO1xufVxuXG5mdW5jdGlvbiBpc01vZGVsQ29uc3RydWN0b3IodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBDb25zdHJ1Y3Rvcjxhbnk+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIE1vZGVsO1xufVxuXG5mdW5jdGlvbiBtb2RlbFNlcnZpY2VUb2tlbihtb2RlbDogQ29uc3RydWN0b3I8YW55Pik6IHN0cmluZyB7XG4gIHJldHVybiBgJHttb2RlbC5uYW1lfVNlcnZpY2VgO1xufVxuXG5mdW5jdGlvbiBtb2RlbFJlcG9zaXRvcnlUb2tlbihcbiAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4sXG4gIGZsYXZvdXI/OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIHJldHVybiBmbGF2b3VyID8gYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5QCR7Zmxhdm91cn1gIDogYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5YDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiBzZXJ2aWNlLlxuICogQHN1bW1hcnkgVHJhbnNsYXRlcyBkZWNhZidzIHNlcnZpY2UgcmVzb2x1dGlvbiBBUElzIGludG8gYSBOZXN0IGBASW5qZWN0KClgIGNhbGw6XG4gKiAtIGBAU2VydmljZShTb21lTW9kZWwpYCBpbmplY3RzIHRoZSBgTW9kZWxTZXJ2aWNlPFNvbWVNb2RlbD5gIHNpbmdsZXRvbiBmb3IgdGhhdCBtb2RlbFxuICogICAodmlhIHtAbGluayBNb2RlbFNlcnZpY2UuZm9yTW9kZWx9KS5cbiAqIC0gYEBTZXJ2aWNlKFNvbWVTZXJ2aWNlQ2xhc3MpYCBvciBgQFNlcnZpY2UoXCJhbGlhc1wiKWAgaW5qZWN0cyB0aGUgbWF0Y2hpbmcgYEBzZXJ2aWNlKClgLWRlY29yYXRlZFxuICogICBkZWNhZiB7QGxpbmsgQ29yZVNlcnZpY2V9ICh2aWEge0BsaW5rIENvcmVTZXJ2aWNlLmdldH0pLlxuICogLSBgQFNlcnZpY2UoKWAgaW5mZXJzIHRoZSBwYXJhbWV0ZXIncyB0eXBlIGZyb20gZW1pdHRlZCBjb25zdHJ1Y3RvciBtZXRhZGF0YSBhbmQgcmVzb2x2ZXMgaXQgdGhlXG4gKiAgIHNhbWUgd2F5LCBwcm92aWRlZCB0aGUgcGFyYW1ldGVyIGlzIHR5cGVkIGFzIGEgY29uY3JldGUgY2xhc3MgKGdlbmVyaWNzIGxpa2UgYE1vZGVsU2VydmljZTxYPmBcbiAqICAgYXJlIGVyYXNlZCBhdCBydW50aW1lLCBzbyB0aGUgbW9kZWwtc2VydmljZSBmb3JtIGFsd2F5cyByZXF1aXJlcyBhbiBleHBsaWNpdCBhcmd1bWVudCkuXG4gKiBAcGFyYW0ga2V5IHRoZSBtb2RlbCBjbGFzcywgc2VydmljZSBjbGFzcywgb3IgYWxpYXMgdG8gcmVzb2x2ZS4gT21pdCB0byBpbmZlciBmcm9tIHRoZSBwYXJhbWV0ZXIgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlcnZpY2Uoa2V5Pzogc3RyaW5nIHwgQ29uc3RydWN0b3I8YW55Pik6IFBhcmFtZXRlckRlY29yYXRvciB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBvYmplY3QsXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBwYXJhbWV0ZXJJbmRleDogbnVtYmVyXG4gICk6IHZvaWQgPT4ge1xuICAgIGxldCByZXNvbHZlZDogc3RyaW5nIHwgQ29uc3RydWN0b3I8YW55PiB8IHVuZGVmaW5lZCA9IGtleTtcbiAgICBpZiAodHlwZW9mIHJlc29sdmVkID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBjb25zdCBwYXJhbVR5cGVzOiBhbnlbXSA9XG4gICAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCB0YXJnZXQpIHx8IFtdO1xuICAgICAgcmVzb2x2ZWQgPSBwYXJhbVR5cGVzW3BhcmFtZXRlckluZGV4XTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBAU2VydmljZSgpIGNvdWxkIG5vdCBkZXRlcm1pbmUgYW4gaW5qZWN0aW9uIHR5cGUgZm9yIHBhcmFtZXRlciAke3BhcmFtZXRlckluZGV4fSBvZiAkeyh0YXJnZXQgYXMgQ29uc3RydWN0b3I8YW55PikubmFtZX0uIFByb3ZpZGUgYW4gZXhwbGljaXQgYXJndW1lbnQsIGUuZy4gQFNlcnZpY2UoU29tZVNlcnZpY2UpLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYXNNb2RlbCA9IHR5cGVvZiByZXNvbHZlZCAhPT0gXCJzdHJpbmdcIiAmJiBpc01vZGVsQ29uc3RydWN0b3IocmVzb2x2ZWQpO1xuICAgIGNvbnN0IHRva2VuID0gYXNNb2RlbFxuICAgICAgPyBtb2RlbFNlcnZpY2VUb2tlbihyZXNvbHZlZCBhcyBDb25zdHJ1Y3Rvcjxhbnk+KVxuICAgICAgOiBpbmplY3RhYmxlU2VydmljZUtleShyZXNvbHZlZCBhcyBzdHJpbmcgfCBDb25zdHJ1Y3Rvcjxhbnk+KTtcblxuICAgIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sICgpID0+IHtcbiAgICAgIGlmIChhc01vZGVsKSByZXR1cm4gTW9kZWxTZXJ2aWNlLmZvck1vZGVsKHJlc29sdmVkIGFzIENvbnN0cnVjdG9yPGFueT4pO1xuICAgICAgcmV0dXJuIHR5cGVvZiByZXNvbHZlZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZClcbiAgICAgICAgOiBDb3JlU2VydmljZS5nZXQocmVzb2x2ZWQgYXMgQ29uc3RydWN0b3I8YW55Pik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYge0BsaW5rIENvcmVSZXBvc2l0b3J5fSBmb3IgYG1vZGVsYC5cbiAqIEBzdW1tYXJ5IFVubGlrZSB7QGxpbmsgU2VydmljZX0sIGBtb2RlbGAgaXMgYWx3YXlzIHRyZWF0ZWQgYXMgYSBNb2RlbCBjbGFzczogdGhlIHNhbWUgY2xhc3MgcGFzc2VkXG4gKiB0byBgQFNlcnZpY2UobW9kZWwpYCBhbmQgYEBSZXBvc2l0b3J5KG1vZGVsKWAgcmVzb2x2ZXMgdG8gdHdvIGRpZmZlcmVudCBpbmplY3RlZCBvYmplY3RzIChhXG4gKiBgTW9kZWxTZXJ2aWNlPE0+YCB2cyBhIGBSZXBvc2l0b3J5PE0+YCByZXNwZWN0aXZlbHkpLCB2aWEge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqIEBwYXJhbSBtb2RlbCB0aGUgbW9kZWwgY2xhc3MgdG8gcmVzb2x2ZSBhIHJlcG9zaXRvcnkgZm9yLlxuICogQHBhcmFtIGZsYXZvdXIgb3B0aW9uYWwgYWRhcHRlciBmbGF2b3VyL2FsaWFzLCBmb3J3YXJkZWQgdG8ge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJlcG9zaXRvcnkoXG4gIG1vZGVsOiBDb25zdHJ1Y3Rvcjxhbnk+LFxuICBmbGF2b3VyPzogc3RyaW5nXG4pOiBQYXJhbWV0ZXJEZWNvcmF0b3Ige1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogb2JqZWN0LFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wgfCB1bmRlZmluZWQsXG4gICAgcGFyYW1ldGVySW5kZXg6IG51bWJlclxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCB0b2tlbiA9IG1vZGVsUmVwb3NpdG9yeVRva2VuKG1vZGVsLCBmbGF2b3VyKTtcbiAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiBDb3JlUmVwb3NpdG9yeS5mb3JNb2RlbChtb2RlbCwgZmxhdm91cikpO1xuICAgIHJldHVybiBJbmplY3QodG9rZW4pKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KTtcbiAgfTtcbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxrRUFFQztBQTJCRCwwQkF1QkM7QUFTRCxnQ0FNQztBQTlFRCwyQ0FBd0M7QUFDeEMseUNBQTJIO0FBQzNILHlFQUF1RDtBQUN2RCwyREFBd0Q7QUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ25DOzs7OztHQUtHO0FBQ0gsU0FBZ0IsMkJBQTJCO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFDRCxTQUFTLGdCQUFnQixDQUFDLEtBQUssRUFBRSxVQUFVO0lBQ3ZDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUMzQixPQUFPO0lBQ1gsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBQ0QsU0FBUyxrQkFBa0IsQ0FBQyxLQUFLO0lBQzdCLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxTQUFTLFlBQVksNEJBQUssQ0FBQztBQUMzRSxDQUFDO0FBQ0QsU0FBUyxpQkFBaUIsQ0FBQyxLQUFLO0lBQzVCLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDbEMsQ0FBQztBQUNELFNBQVMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU87SUFDeEMsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksY0FBYyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUM7QUFDdEYsQ0FBQztBQUNEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLEdBQUc7SUFDdkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEVBQUU7UUFDM0MsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ25CLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUUsUUFBUSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksNkJBQWEsQ0FBQyxrRUFBa0UsY0FBYyxPQUFPLE1BQU0sQ0FBQyxJQUFJLDZEQUE2RCxDQUFDLENBQUM7UUFDN0wsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxNQUFNLEtBQUssR0FBRyxPQUFPO1lBQ2pCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDN0IsQ0FBQyxDQUFDLElBQUEsMkJBQW9CLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUN6QixJQUFJLE9BQU87Z0JBQ1AsT0FBTyxtQkFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxPQUFPLE9BQU8sUUFBUSxLQUFLLFFBQVE7Z0JBQy9CLENBQUMsQ0FBQyxjQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLGNBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUEsZUFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU87SUFDckMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEVBQUU7UUFDM0MsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUEsZUFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNELHM3U0FBczdTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBpbmplY3RhYmxlU2VydmljZUtleSwgTW9kZWxTZXJ2aWNlLCBSZXBvc2l0b3J5IGFzIENvcmVSZXBvc2l0b3J5LCBTZXJ2aWNlIGFzIENvcmVTZXJ2aWNlLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5jb25zdCBwZW5kaW5nUHJvdmlkZXJzID0gbmV3IE1hcCgpO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gRHJhaW5zIHRoZSBwcm92aWRlcnMgcmVnaXN0ZXJlZCBieSB7QGxpbmsgU2VydmljZX0ve0BsaW5rIFJlcG9zaXRvcnl9IHVzYWdlcy5cbiAqIEBzdW1tYXJ5IENvbnN1bWVkIGJ5IHtAbGluayBEZWNhZkNvcmVNb2R1bGUuZm9yUm9vdH0gdG8gd2lyZSB0aGUgdG9rZW5zIHRoYXQgdGhvc2UgcGFyYW1ldGVyXG4gKiBkZWNvcmF0b3JzIHJlZmVyZW5jZSBiYWNrIGludG8gTmVzdCdzIERJIGNvbnRhaW5lciwgc2luY2UgYSBwYXJhbWV0ZXIgZGVjb3JhdG9yIGFsb25lIGNhbm5vdFxuICogc3VwcGx5IGEgcHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWdpc3RlcmVkRGVjYWZQcm92aWRlcnMoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20ocGVuZGluZ1Byb3ZpZGVycy52YWx1ZXMoKSk7XG59XG5mdW5jdGlvbiByZWdpc3RlclByb3ZpZGVyKHRva2VuLCB1c2VGYWN0b3J5KSB7XG4gICAgaWYgKHBlbmRpbmdQcm92aWRlcnMuaGFzKHRva2VuKSlcbiAgICAgICAgcmV0dXJuO1xuICAgIHBlbmRpbmdQcm92aWRlcnMuc2V0KHRva2VuLCB7IHByb3ZpZGU6IHRva2VuLCB1c2VGYWN0b3J5IH0pO1xufVxuZnVuY3Rpb24gaXNNb2RlbENvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIE1vZGVsO1xufVxuZnVuY3Rpb24gbW9kZWxTZXJ2aWNlVG9rZW4obW9kZWwpIHtcbiAgICByZXR1cm4gYCR7bW9kZWwubmFtZX1TZXJ2aWNlYDtcbn1cbmZ1bmN0aW9uIG1vZGVsUmVwb3NpdG9yeVRva2VuKG1vZGVsLCBmbGF2b3VyKSB7XG4gICAgcmV0dXJuIGZsYXZvdXIgPyBgJHttb2RlbC5uYW1lfVJlcG9zaXRvcnlAJHtmbGF2b3VyfWAgOiBgJHttb2RlbC5uYW1lfVJlcG9zaXRvcnlgO1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiBzZXJ2aWNlLlxuICogQHN1bW1hcnkgVHJhbnNsYXRlcyBkZWNhZidzIHNlcnZpY2UgcmVzb2x1dGlvbiBBUElzIGludG8gYSBOZXN0IGBASW5qZWN0KClgIGNhbGw6XG4gKiAtIGBAU2VydmljZShTb21lTW9kZWwpYCBpbmplY3RzIHRoZSBgTW9kZWxTZXJ2aWNlPFNvbWVNb2RlbD5gIHNpbmdsZXRvbiBmb3IgdGhhdCBtb2RlbFxuICogICAodmlhIHtAbGluayBNb2RlbFNlcnZpY2UuZm9yTW9kZWx9KS5cbiAqIC0gYEBTZXJ2aWNlKFNvbWVTZXJ2aWNlQ2xhc3MpYCBvciBgQFNlcnZpY2UoXCJhbGlhc1wiKWAgaW5qZWN0cyB0aGUgbWF0Y2hpbmcgYEBzZXJ2aWNlKClgLWRlY29yYXRlZFxuICogICBkZWNhZiB7QGxpbmsgQ29yZVNlcnZpY2V9ICh2aWEge0BsaW5rIENvcmVTZXJ2aWNlLmdldH0pLlxuICogLSBgQFNlcnZpY2UoKWAgaW5mZXJzIHRoZSBwYXJhbWV0ZXIncyB0eXBlIGZyb20gZW1pdHRlZCBjb25zdHJ1Y3RvciBtZXRhZGF0YSBhbmQgcmVzb2x2ZXMgaXQgdGhlXG4gKiAgIHNhbWUgd2F5LCBwcm92aWRlZCB0aGUgcGFyYW1ldGVyIGlzIHR5cGVkIGFzIGEgY29uY3JldGUgY2xhc3MgKGdlbmVyaWNzIGxpa2UgYE1vZGVsU2VydmljZTxYPmBcbiAqICAgYXJlIGVyYXNlZCBhdCBydW50aW1lLCBzbyB0aGUgbW9kZWwtc2VydmljZSBmb3JtIGFsd2F5cyByZXF1aXJlcyBhbiBleHBsaWNpdCBhcmd1bWVudCkuXG4gKiBAcGFyYW0ga2V5IHRoZSBtb2RlbCBjbGFzcywgc2VydmljZSBjbGFzcywgb3IgYWxpYXMgdG8gcmVzb2x2ZS4gT21pdCB0byBpbmZlciBmcm9tIHRoZSBwYXJhbWV0ZXIgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlcnZpY2Uoa2V5KSB7XG4gICAgcmV0dXJuICh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCkgPT4ge1xuICAgICAgICBsZXQgcmVzb2x2ZWQgPSBrZXk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtVHlwZXMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgdGFyZ2V0KSB8fCBbXTtcbiAgICAgICAgICAgIHJlc29sdmVkID0gcGFyYW1UeXBlc1twYXJhbWV0ZXJJbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEBTZXJ2aWNlKCkgY291bGQgbm90IGRldGVybWluZSBhbiBpbmplY3Rpb24gdHlwZSBmb3IgcGFyYW1ldGVyICR7cGFyYW1ldGVySW5kZXh9IG9mICR7dGFyZ2V0Lm5hbWV9LiBQcm92aWRlIGFuIGV4cGxpY2l0IGFyZ3VtZW50LCBlLmcuIEBTZXJ2aWNlKFNvbWVTZXJ2aWNlKS5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhc01vZGVsID0gdHlwZW9mIHJlc29sdmVkICE9PSBcInN0cmluZ1wiICYmIGlzTW9kZWxDb25zdHJ1Y3RvcihyZXNvbHZlZCk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYXNNb2RlbFxuICAgICAgICAgICAgPyBtb2RlbFNlcnZpY2VUb2tlbihyZXNvbHZlZClcbiAgICAgICAgICAgIDogaW5qZWN0YWJsZVNlcnZpY2VLZXkocmVzb2x2ZWQpO1xuICAgICAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXNNb2RlbClcbiAgICAgICAgICAgICAgICByZXR1cm4gTW9kZWxTZXJ2aWNlLmZvck1vZGVsKHJlc29sdmVkKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgcmVzb2x2ZWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZClcbiAgICAgICAgICAgICAgICA6IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gICAgfTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYge0BsaW5rIENvcmVSZXBvc2l0b3J5fSBmb3IgYG1vZGVsYC5cbiAqIEBzdW1tYXJ5IFVubGlrZSB7QGxpbmsgU2VydmljZX0sIGBtb2RlbGAgaXMgYWx3YXlzIHRyZWF0ZWQgYXMgYSBNb2RlbCBjbGFzczogdGhlIHNhbWUgY2xhc3MgcGFzc2VkXG4gKiB0byBgQFNlcnZpY2UobW9kZWwpYCBhbmQgYEBSZXBvc2l0b3J5KG1vZGVsKWAgcmVzb2x2ZXMgdG8gdHdvIGRpZmZlcmVudCBpbmplY3RlZCBvYmplY3RzIChhXG4gKiBgTW9kZWxTZXJ2aWNlPE0+YCB2cyBhIGBSZXBvc2l0b3J5PE0+YCByZXNwZWN0aXZlbHkpLCB2aWEge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqIEBwYXJhbSBtb2RlbCB0aGUgbW9kZWwgY2xhc3MgdG8gcmVzb2x2ZSBhIHJlcG9zaXRvcnkgZm9yLlxuICogQHBhcmFtIGZsYXZvdXIgb3B0aW9uYWwgYWRhcHRlciBmbGF2b3VyL2FsaWFzLCBmb3J3YXJkZWQgdG8ge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJlcG9zaXRvcnkobW9kZWwsIGZsYXZvdXIpIHtcbiAgICByZXR1cm4gKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gbW9kZWxSZXBvc2l0b3J5VG9rZW4obW9kZWwsIGZsYXZvdXIpO1xuICAgICAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiBDb3JlUmVwb3NpdG9yeS5mb3JNb2RlbChtb2RlbCwgZmxhdm91cikpO1xuICAgICAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHVmpiM0poZEc5eWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5a1pXTnZjbUYwYjNKekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVjRReXhQUVVGUExFVkJRMHdzYjBKQlFXOUNMRVZCUTNCQ0xGbEJRVmtzUlVGRFdpeFZRVUZWTEVsQlFVa3NZMEZCWXl4RlFVTTFRaXhQUVVGUExFbEJRVWtzVjBGQlZ5eEhRVU4yUWl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlEzaENMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeG5RMEZCWjBNc1EwRkJRenRCUVVOMlJDeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZQZUVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJaME1zUTBGQlF6dEJRVVZxUlRzN096czdSMEZMUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3d5UWtGQk1rSTdTVUZEZWtNc1QwRkJUeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZETDBNc1EwRkJRenRCUVVWRUxGTkJRVk1zWjBKQlFXZENMRU5CUVVNc1MwRkJZU3hGUVVGRkxGVkJRWGxDTzBsQlEyaEZMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVGRkxFOUJRVTg3U1VGRGVFTXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTTVSQ3hEUVVGRE8wRkJSVVFzVTBGQlV5eHJRa0ZCYTBJc1EwRkJReXhMUVVGak8wbEJRM2hETEU5QlFVOHNUMEZCVHl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFRRVUZUTEZsQlFWa3NTMEZCU3l4RFFVRkRPMEZCUTNwRkxFTkJRVU03UVVGRlJDeFRRVUZUTEdsQ1FVRnBRaXhEUVVGRExFdEJRWFZDTzBsQlEyaEVMRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zU1VGQlNTeFRRVUZUTEVOQlFVTTdRVUZEYUVNc1EwRkJRenRCUVVWRUxGTkJRVk1zYjBKQlFXOUNMRU5CUXpOQ0xFdEJRWFZDTEVWQlEzWkNMRTlCUVdkQ08wbEJSV2hDTEU5QlFVOHNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTEdOQlFXTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRPMEZCUTNCR0xFTkJRVU03UVVGRlJEczdPenM3T3pzN096czdSMEZYUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hQUVVGUExFTkJRVU1zUjBGQkswSTdTVUZEY2tRc1QwRkJUeXhEUVVOTUxFMUJRV01zUlVGRFpDeFhRVUYzUXl4RlFVTjRReXhqUVVGelFpeEZRVU5vUWl4RlFVRkZPMUZCUTFJc1NVRkJTU3hSUVVGUkxFZEJRVEJETEVkQlFVY3NRMEZCUXp0UlFVTXhSQ3hKUVVGSkxFOUJRVThzVVVGQlVTeExRVUZMTEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNCRExFMUJRVTBzVlVGQlZTeEhRVU5rTEU5QlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNc2JVSkJRVzFDTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xbEJRM3BFTEZGQlFWRXNSMEZCUnl4VlFVRlZMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGRGVFTXNRMEZCUXp0UlFVTkVMRWxCUVVrc1QwRkJUeXhSUVVGUkxFdEJRVXNzVjBGQlZ5eEZRVUZGTEVOQlFVTTdXVUZEY0VNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNhMFZCUVd0RkxHTkJRV01zVDBGQlVTeE5RVUV5UWl4RFFVRkRMRWxCUVVrc05rUkJRVFpFTEVOQlEzUk1MRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJSVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NUMEZCVHl4UlFVRlJMRXRCUVVzc1VVRkJVU3hKUVVGSkxHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRemRGTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTlCUVU4N1dVRkRia0lzUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExGRkJRVFJDTEVOQlFVTTdXVUZEYWtRc1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRkZCUVhGRExFTkJRVU1zUTBGQlF6dFJRVVZvUlN4blFrRkJaMElzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZPMWxCUXpOQ0xFbEJRVWtzVDBGQlR6dG5Ra0ZCUlN4UFFVRlBMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQk5FSXNRMEZCUXl4RFFVRkRPMWxCUTNoRkxFOUJRVThzVDBGQlR5eFJRVUZSTEV0QlFVc3NVVUZCVVR0blFrRkRha01zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRE8yZENRVU16UWl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUUwUWl4RFFVRkRMRU5CUVVNN1VVRkRjRVFzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4UFFVRlBMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJRelZFTEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSRHM3T3pzN096dEhRVTlITzBGQlEwZ3NUVUZCVFN4VlFVRlZMRlZCUVZVc1EwRkRlRUlzUzBGQmRVSXNSVUZEZGtJc1QwRkJaMEk3U1VGRmFFSXNUMEZCVHl4RFFVTk1MRTFCUVdNc1JVRkRaQ3hYUVVGM1F5eEZRVU40UXl4alFVRnpRaXhGUVVOb1FpeEZRVUZGTzFGQlExSXNUVUZCVFN4TFFVRkxMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMjVFTEdkQ1FVRm5RaXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4alFVRmpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNaRkxFOUJRVThzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzWTBGQll5eERRVUZETEVOQlFVTTdTVUZETlVRc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRWx1YW1WamRDQjlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dRMjl1YzNSeWRXTjBiM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdYRzRnSUdsdWFtVmpkR0ZpYkdWVFpYSjJhV05sUzJWNUxGeHVJQ0JOYjJSbGJGTmxjblpwWTJVc1hHNGdJRkpsY0c5emFYUnZjbmtnWVhNZ1EyOXlaVkpsY0c5emFYUnZjbmtzWEc0Z0lGTmxjblpwWTJVZ1lYTWdRMjl5WlZObGNuWnBZMlVzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1RXOWtaV3dnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJ2Y2kxMllXeHBaR0YwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJKYm5SbGNtNWhiRVZ5Y205eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUVSbFkyRm1SbUZqZEc5eWVWQnliM1pwWkdWeUlEMGdlMXh1SUNCd2NtOTJhV1JsT2lCemRISnBibWM3WEc0Z0lIVnpaVVpoWTNSdmNuazZJQ2dwSUQwK0lIVnVhMjV2ZDI0N1hHNTlPMXh1WEc1amIyNXpkQ0J3Wlc1a2FXNW5VSEp2ZG1sa1pYSnpJRDBnYm1WM0lFMWhjRHh6ZEhKcGJtY3NJRVJsWTJGbVJtRmpkRzl5ZVZCeWIzWnBaR1Z5UGlncE8xeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRWNtRnBibk1nZEdobElIQnliM1pwWkdWeWN5QnlaV2RwYzNSbGNtVmtJR0o1SUh0QWJHbHVheUJUWlhKMmFXTmxmUzk3UUd4cGJtc2dVbVZ3YjNOcGRHOXllWDBnZFhOaFoyVnpMbHh1SUNvZ1FITjFiVzFoY25rZ1EyOXVjM1Z0WldRZ1lua2dlMEJzYVc1cklFUmxZMkZtUTI5eVpVMXZaSFZzWlM1bWIzSlNiMjkwZlNCMGJ5QjNhWEpsSUhSb1pTQjBiMnRsYm5NZ2RHaGhkQ0IwYUc5elpTQndZWEpoYldWMFpYSmNiaUFxSUdSbFkyOXlZWFJ2Y25NZ2NtVm1aWEpsYm1ObElHSmhZMnNnYVc1MGJ5Qk9aWE4wSjNNZ1JFa2dZMjl1ZEdGcGJtVnlMQ0J6YVc1alpTQmhJSEJoY21GdFpYUmxjaUJrWldOdmNtRjBiM0lnWVd4dmJtVWdZMkZ1Ym05MFhHNGdLaUJ6ZFhCd2JIa2dZU0J3Y205MmFXUmxjaTVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRkpsWjJsemRHVnlaV1JFWldOaFpsQnliM1pwWkdWeWN5Z3BPaUJFWldOaFprWmhZM1J2Y25sUWNtOTJhV1JsY2x0ZElIdGNiaUFnY21WMGRYSnVJRUZ5Y21GNUxtWnliMjBvY0dWdVpHbHVaMUJ5YjNacFpHVnljeTUyWVd4MVpYTW9LU2s3WEc1OVhHNWNibVoxYm1OMGFXOXVJSEpsWjJsemRHVnlVSEp2ZG1sa1pYSW9kRzlyWlc0NklITjBjbWx1Wnl3Z2RYTmxSbUZqZEc5eWVUb2dLQ2tnUFQ0Z2RXNXJibTkzYmlrNklIWnZhV1FnZTF4dUlDQnBaaUFvY0dWdVpHbHVaMUJ5YjNacFpHVnljeTVvWVhNb2RHOXJaVzRwS1NCeVpYUjFjbTQ3WEc0Z0lIQmxibVJwYm1kUWNtOTJhV1JsY25NdWMyVjBLSFJ2YTJWdUxDQjdJSEJ5YjNacFpHVTZJSFJ2YTJWdUxDQjFjMlZHWVdOMGIzSjVJSDBwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJwYzAxdlpHVnNRMjl1YzNSeWRXTjBiM0lvZG1Gc2RXVTZJSFZ1YTI1dmQyNHBPaUIyWVd4MVpTQnBjeUJEYjI1emRISjFZM1J2Y2p4aGJuaytJSHRjYmlBZ2NtVjBkWEp1SUhSNWNHVnZaaUIyWVd4MVpTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUlDWW1JSFpoYkhWbExuQnliM1J2ZEhsd1pTQnBibk4wWVc1alpXOW1JRTF2WkdWc08xeHVmVnh1WEc1bWRXNWpkR2x2YmlCdGIyUmxiRk5sY25acFkyVlViMnRsYmlodGIyUmxiRG9nUTI5dWMzUnlkV04wYjNJOFlXNTVQaWs2SUhOMGNtbHVaeUI3WEc0Z0lISmxkSFZ5YmlCZ0pIdHRiMlJsYkM1dVlXMWxmVk5sY25acFkyVmdPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnRiMlJsYkZKbGNHOXphWFJ2Y25sVWIydGxiaWhjYmlBZ2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRzWEc0Z0lHWnNZWFp2ZFhJL09pQnpkSEpwYm1kY2JpazZJSE4wY21sdVp5QjdYRzRnSUhKbGRIVnliaUJtYkdGMmIzVnlJRDhnWUNSN2JXOWtaV3d1Ym1GdFpYMVNaWEJ2YzJsMGIzSjVRQ1I3Wm14aGRtOTFjbjFnSURvZ1lDUjdiVzlrWld3dWJtRnRaWDFTWlhCdmMybDBiM0o1WUR0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyOXVjM1J5ZFdOMGIzSWdjR0Z5WVcxbGRHVnlJR1JsWTI5eVlYUnZjaUIwYUdGMElHbHVhbVZqZEhNZ1lTQmtaV05oWmlCelpYSjJhV05sTGx4dUlDb2dRSE4xYlcxaGNua2dWSEpoYm5Oc1lYUmxjeUJrWldOaFppZHpJSE5sY25acFkyVWdjbVZ6YjJ4MWRHbHZiaUJCVUVseklHbHVkRzhnWVNCT1pYTjBJR0JBU1c1cVpXTjBLQ2xnSUdOaGJHdzZYRzRnS2lBdElHQkFVMlZ5ZG1salpTaFRiMjFsVFc5a1pXd3BZQ0JwYm1wbFkzUnpJSFJvWlNCZ1RXOWtaV3hUWlhKMmFXTmxQRk52YldWTmIyUmxiRDVnSUhOcGJtZHNaWFJ2YmlCbWIzSWdkR2hoZENCdGIyUmxiRnh1SUNvZ0lDQW9kbWxoSUh0QWJHbHVheUJOYjJSbGJGTmxjblpwWTJVdVptOXlUVzlrWld4OUtTNWNiaUFxSUMwZ1lFQlRaWEoyYVdObEtGTnZiV1ZUWlhKMmFXTmxRMnhoYzNNcFlDQnZjaUJnUUZObGNuWnBZMlVvWENKaGJHbGhjMXdpS1dBZ2FXNXFaV04wY3lCMGFHVWdiV0YwWTJocGJtY2dZRUJ6WlhKMmFXTmxLQ2xnTFdSbFkyOXlZWFJsWkZ4dUlDb2dJQ0JrWldOaFppQjdRR3hwYm1zZ1EyOXlaVk5sY25acFkyVjlJQ2gyYVdFZ2UwQnNhVzVySUVOdmNtVlRaWEoyYVdObExtZGxkSDBwTGx4dUlDb2dMU0JnUUZObGNuWnBZMlVvS1dBZ2FXNW1aWEp6SUhSb1pTQndZWEpoYldWMFpYSW5jeUIwZVhCbElHWnliMjBnWlcxcGRIUmxaQ0JqYjI1emRISjFZM1J2Y2lCdFpYUmhaR0YwWVNCaGJtUWdjbVZ6YjJ4MlpYTWdhWFFnZEdobFhHNGdLaUFnSUhOaGJXVWdkMkY1TENCd2NtOTJhV1JsWkNCMGFHVWdjR0Z5WVcxbGRHVnlJR2x6SUhSNWNHVmtJR0Z6SUdFZ1kyOXVZM0psZEdVZ1kyeGhjM01nS0dkbGJtVnlhV056SUd4cGEyVWdZRTF2WkdWc1UyVnlkbWxqWlR4WVBtQmNiaUFxSUNBZ1lYSmxJR1Z5WVhObFpDQmhkQ0J5ZFc1MGFXMWxMQ0J6YnlCMGFHVWdiVzlrWld3dGMyVnlkbWxqWlNCbWIzSnRJR0ZzZDJGNWN5QnlaWEYxYVhKbGN5QmhiaUJsZUhCc2FXTnBkQ0JoY21kMWJXVnVkQ2t1WEc0Z0tpQkFjR0Z5WVcwZ2EyVjVJSFJvWlNCdGIyUmxiQ0JqYkdGemN5d2djMlZ5ZG1salpTQmpiR0Z6Y3l3Z2IzSWdZV3hwWVhNZ2RHOGdjbVZ6YjJ4MlpTNGdUMjFwZENCMGJ5QnBibVpsY2lCbWNtOXRJSFJvWlNCd1lYSmhiV1YwWlhJZ2RIbHdaUzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlGTmxjblpwWTJVb2EyVjVQem9nYzNSeWFXNW5JSHdnUTI5dWMzUnlkV04wYjNJOFlXNTVQaWs2SUZCaGNtRnRaWFJsY2tSbFkyOXlZWFJ2Y2lCN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ2RHRnlaMlYwT2lCdlltcGxZM1FzWEc0Z0lDQWdjSEp2Y0dWeWRIbExaWGs2SUhOMGNtbHVaeUI4SUhONWJXSnZiQ0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0J3WVhKaGJXVjBaWEpKYm1SbGVEb2diblZ0WW1WeVhHNGdJQ2s2SUhadmFXUWdQVDRnZTF4dUlDQWdJR3hsZENCeVpYTnZiSFpsWkRvZ2MzUnlhVzVuSUh3Z1EyOXVjM1J5ZFdOMGIzSThZVzU1UGlCOElIVnVaR1ZtYVc1bFpDQTlJR3RsZVR0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhKbGMyOXNkbVZrSUQwOVBTQmNJblZ1WkdWbWFXNWxaRndpS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J3WVhKaGJWUjVjR1Z6T2lCaGJubGJYU0E5WEc0Z0lDQWdJQ0FnSUZKbFpteGxZM1F1WjJWMFRXVjBZV1JoZEdFb1hDSmtaWE5wWjI0NmNHRnlZVzEwZVhCbGMxd2lMQ0IwWVhKblpYUXBJSHg4SUZ0ZE8xeHVJQ0FnSUNBZ2NtVnpiMngyWldRZ1BTQndZWEpoYlZSNWNHVnpXM0JoY21GdFpYUmxja2x1WkdWNFhUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCeVpYTnZiSFpsWkNBOVBUMGdYQ0oxYm1SbFptbHVaV1JjSWlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUdCQVUyVnlkbWxqWlNncElHTnZkV3hrSUc1dmRDQmtaWFJsY20xcGJtVWdZVzRnYVc1cVpXTjBhVzl1SUhSNWNHVWdabTl5SUhCaGNtRnRaWFJsY2lBa2UzQmhjbUZ0WlhSbGNrbHVaR1Y0ZlNCdlppQWtleWgwWVhKblpYUWdZWE1nUTI5dWMzUnlkV04wYjNJOFlXNTVQaWt1Ym1GdFpYMHVJRkJ5YjNacFpHVWdZVzRnWlhod2JHbGphWFFnWVhKbmRXMWxiblFzSUdVdVp5NGdRRk5sY25acFkyVW9VMjl0WlZObGNuWnBZMlVwTG1CY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdZWE5OYjJSbGJDQTlJSFI1Y0dWdlppQnlaWE52YkhabFpDQWhQVDBnWENKemRISnBibWRjSWlBbUppQnBjMDF2WkdWc1EyOXVjM1J5ZFdOMGIzSW9jbVZ6YjJ4MlpXUXBPMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnWVhOTmIyUmxiRnh1SUNBZ0lDQWdQeUJ0YjJSbGJGTmxjblpwWTJWVWIydGxiaWh5WlhOdmJIWmxaQ0JoY3lCRGIyNXpkSEoxWTNSdmNqeGhibmsrS1Z4dUlDQWdJQ0FnT2lCcGJtcGxZM1JoWW14bFUyVnlkbWxqWlV0bGVTaHlaWE52YkhabFpDQmhjeUJ6ZEhKcGJtY2dmQ0JEYjI1emRISjFZM1J2Y2p4aGJuaytLVHRjYmx4dUlDQWdJSEpsWjJsemRHVnlVSEp2ZG1sa1pYSW9kRzlyWlc0c0lDZ3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaGhjMDF2WkdWc0tTQnlaWFIxY200Z1RXOWtaV3hUWlhKMmFXTmxMbVp2Y2sxdlpHVnNLSEpsYzI5c2RtVmtJR0Z6SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSFI1Y0dWdlppQnlaWE52YkhabFpDQTlQVDBnWENKemRISnBibWRjSWx4dUlDQWdJQ0FnSUNBL0lFTnZjbVZUWlhKMmFXTmxMbWRsZENoeVpYTnZiSFpsWkNsY2JpQWdJQ0FnSUNBZ09pQkRiM0psVTJWeWRtbGpaUzVuWlhRb2NtVnpiMngyWldRZ1lYTWdRMjl1YzNSeWRXTjBiM0k4WVc1NVBpazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnlaWFIxY200Z1NXNXFaV04wS0hSdmEyVnVLU2gwWVhKblpYUXNJSEJ5YjNCbGNuUjVTMlY1TENCd1lYSmhiV1YwWlhKSmJtUmxlQ2s3WEc0Z0lIMDdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ym5OMGNuVmpkRzl5SUhCaGNtRnRaWFJsY2lCa1pXTnZjbUYwYjNJZ2RHaGhkQ0JwYm1wbFkzUnpJR0VnWkdWallXWWdlMEJzYVc1cklFTnZjbVZTWlhCdmMybDBiM0o1ZlNCbWIzSWdZRzF2WkdWc1lDNWNiaUFxSUVCemRXMXRZWEo1SUZWdWJHbHJaU0I3UUd4cGJtc2dVMlZ5ZG1salpYMHNJR0J0YjJSbGJHQWdhWE1nWVd4M1lYbHpJSFJ5WldGMFpXUWdZWE1nWVNCTmIyUmxiQ0JqYkdGemN6b2dkR2hsSUhOaGJXVWdZMnhoYzNNZ2NHRnpjMlZrWEc0Z0tpQjBieUJnUUZObGNuWnBZMlVvYlc5a1pXd3BZQ0JoYm1RZ1lFQlNaWEJ2YzJsMGIzSjVLRzF2WkdWc0tXQWdjbVZ6YjJ4MlpYTWdkRzhnZEhkdklHUnBabVpsY21WdWRDQnBibXBsWTNSbFpDQnZZbXBsWTNSeklDaGhYRzRnS2lCZ1RXOWtaV3hUWlhKMmFXTmxQRTArWUNCMmN5QmhJR0JTWlhCdmMybDBiM0o1UEUwK1lDQnlaWE53WldOMGFYWmxiSGtwTENCMmFXRWdlMEJzYVc1cklFTnZjbVZTWlhCdmMybDBiM0o1TG1admNrMXZaR1ZzZlM1Y2JpQXFJRUJ3WVhKaGJTQnRiMlJsYkNCMGFHVWdiVzlrWld3Z1kyeGhjM01nZEc4Z2NtVnpiMngyWlNCaElISmxjRzl6YVhSdmNua2dabTl5TGx4dUlDb2dRSEJoY21GdElHWnNZWFp2ZFhJZ2IzQjBhVzl1WVd3Z1lXUmhjSFJsY2lCbWJHRjJiM1Z5TDJGc2FXRnpMQ0JtYjNKM1lYSmtaV1FnZEc4Z2UwQnNhVzVySUVOdmNtVlNaWEJ2YzJsMGIzSjVMbVp2Y2sxdlpHVnNmUzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlGSmxjRzl6YVhSdmNua29YRzRnSUcxdlpHVnNPaUJEYjI1emRISjFZM1J2Y2p4aGJuaytMRnh1SUNCbWJHRjJiM1Z5UHpvZ2MzUnlhVzVuWEc0cE9pQlFZWEpoYldWMFpYSkVaV052Y21GMGIzSWdlMXh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJSFJoY21kbGREb2diMkpxWldOMExGeHVJQ0FnSUhCeWIzQmxjblI1UzJWNU9pQnpkSEpwYm1jZ2ZDQnplVzFpYjJ3Z2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ2NHRnlZVzFsZEdWeVNXNWtaWGc2SUc1MWJXSmxjbHh1SUNBcE9pQjJiMmxrSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0IwYjJ0bGJpQTlJRzF2WkdWc1VtVndiM05wZEc5eWVWUnZhMlZ1S0cxdlpHVnNMQ0JtYkdGMmIzVnlLVHRjYmlBZ0lDQnlaV2RwYzNSbGNsQnliM1pwWkdWeUtIUnZhMlZ1TENBb0tTQTlQaUJEYjNKbFVtVndiM05wZEc5eWVTNW1iM0pOYjJSbGJDaHRiMlJsYkN3Z1pteGhkbTkxY2lrcE8xeHVJQ0FnSUhKbGRIVnliaUJKYm1wbFkzUW9kRzlyWlc0cEtIUmhjbWRsZEN3Z2NISnZjR1Z5ZEhsTFpYa3NJSEJoY21GdFpYUmxja2x1WkdWNEtUdGNiaUFnZlR0Y2JuMWNiaUpkZlE9PSJdfQ==
@@ -25,5 +25,5 @@ function normalizeEventResponse(args) {
25
25
  console.debug(`Normalized event response for model ${modelName}, operation ${operation}, id ${id}:`, serializedPayload);
26
26
  return [modelName, operation, id, serializedPayload];
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZlbnRzLW1vZHVsZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsc0JBQXNCLENBQUMsSUFBVztJQUNoRCxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBRW5ELE1BQU0sU0FBUyxHQUFHLFdBQVcsRUFBRSxJQUFJLElBQUksV0FBVyxDQUFDO0lBRW5ELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDOUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUM7Z0JBQ0gsSUFBSSxPQUFPLENBQUMsQ0FBQyxTQUFTLEtBQUssVUFBVTtvQkFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFFNUQsT0FBTyxDQUFDLElBQUksQ0FDVixvQkFBb0IsU0FBUyw2Q0FBNkMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDLEVBQUUsQ0FDbkksQ0FBQztnQkFDRixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFBQyxPQUFPLEdBQVksRUFBRSxDQUFDO2dCQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxTQUFTLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDckUsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFLLFVBQVU7WUFDbEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDckIsQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVE7Z0JBQzNCLENBQUMsQ0FBQyxPQUFPO2dCQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWhDLE9BQU8sQ0FBQyxLQUFLLENBQ1gsdUNBQXVDLFNBQVMsZUFBZSxTQUFTLFFBQVEsRUFBRSxHQUFHLEVBQ3JGLGlCQUFpQixDQUNsQixDQUFDO0lBRUYsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRXZlbnRSZXNwb25zZShhcmdzOiBhbnlbXSk6IHVua25vd25bXSB7XG4gIGNvbnN0IFttb2RlbENvbnN0ciwgb3BlcmF0aW9uLCBpZCwgcGF5bG9hZF0gPSBhcmdzO1xuXG4gIGNvbnN0IG1vZGVsTmFtZSA9IG1vZGVsQ29uc3RyPy5uYW1lID8/IG1vZGVsQ29uc3RyO1xuXG4gIGNvbnN0IHNlcmlhbGl6ZWRQYXlsb2FkID0gQXJyYXkuaXNBcnJheShwYXlsb2FkKVxuICAgID8gcGF5bG9hZC5tYXAoKGUpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGUuc2VyaWFsaXplID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBlLnNlcmlhbGl6ZSgpO1xuXG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFBheWxvYWQgaXRlbSBmb3IgJHttb2RlbE5hbWV9IGRvZXMgbm90IGhhdmUgc2VyaWFsaXplIG1ldGhvZCBhbmQgaXMgYW4gJHt0eXBlb2YgZX0sIGF0dGVtcHRpbmcgdG8gc3RyaW5naWZ5IGRpcmVjdGx5LiBJdGVtOiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiBlID09PSBcInN0cmluZ1wiID8gZSA6IEpTT04uc3RyaW5naWZ5KGUpO1xuICAgICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYEZhaWxlZCB0byBzZXJpYWxpemUgcGF5bG9hZCBmb3IgJHttb2RlbE5hbWV9OiAke2Vycn1gKTtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIDogcGF5bG9hZCAmJiB0eXBlb2YgcGF5bG9hZC5zZXJpYWxpemUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyBwYXlsb2FkLnNlcmlhbGl6ZSgpXG4gICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gcGF5bG9hZFxuICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpO1xuXG4gIGNvbnNvbGUuZGVidWcoXG4gICAgYE5vcm1hbGl6ZWQgZXZlbnQgcmVzcG9uc2UgZm9yIG1vZGVsICR7bW9kZWxOYW1lfSwgb3BlcmF0aW9uICR7b3BlcmF0aW9ufSwgaWQgJHtpZH06YCxcbiAgICBzZXJpYWxpemVkUGF5bG9hZFxuICApO1xuXG4gIHJldHVybiBbbW9kZWxOYW1lLCBvcGVyYXRpb24sIGlkLCBzZXJpYWxpemVkUGF5bG9hZF07XG59XG4iXX0=
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQXVCQztBQXZCRCxTQUFnQixzQkFBc0IsQ0FBQyxJQUFJO0lBQ3ZDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDbkQsTUFBTSxTQUFTLEdBQUcsV0FBVyxFQUFFLElBQUksSUFBSSxXQUFXLENBQUM7SUFDbkQsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQztnQkFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLFNBQVMsS0FBSyxVQUFVO29CQUNqQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsU0FBUyw2Q0FBNkMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqSixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFDRCxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsbUNBQW1DLFNBQVMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRSxPQUFPLFNBQVMsQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssVUFBVTtZQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNyQixDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUTtnQkFDekIsQ0FBQyxDQUFDLE9BQU87Z0JBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsU0FBUyxlQUFlLFNBQVMsUUFBUSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hILE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFDRCwwckdBQTByRyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVFdmVudFJlc3BvbnNlKGFyZ3MpIHtcbiAgICBjb25zdCBbbW9kZWxDb25zdHIsIG9wZXJhdGlvbiwgaWQsIHBheWxvYWRdID0gYXJncztcbiAgICBjb25zdCBtb2RlbE5hbWUgPSBtb2RlbENvbnN0cj8ubmFtZSA/PyBtb2RlbENvbnN0cjtcbiAgICBjb25zdCBzZXJpYWxpemVkUGF5bG9hZCA9IEFycmF5LmlzQXJyYXkocGF5bG9hZClcbiAgICAgICAgPyBwYXlsb2FkLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGUuc2VyaWFsaXplID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlLnNlcmlhbGl6ZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgUGF5bG9hZCBpdGVtIGZvciAke21vZGVsTmFtZX0gZG9lcyBub3QgaGF2ZSBzZXJpYWxpemUgbWV0aG9kIGFuZCBpcyBhbiAke3R5cGVvZiBlfSwgYXR0ZW1wdGluZyB0byBzdHJpbmdpZnkgZGlyZWN0bHkuIEl0ZW06ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIGUgPT09IFwic3RyaW5nXCIgPyBlIDogSlNPTi5zdHJpbmdpZnkoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gc2VyaWFsaXplIHBheWxvYWQgZm9yICR7bW9kZWxOYW1lfTogJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgOiBwYXlsb2FkICYmIHR5cGVvZiBwYXlsb2FkLnNlcmlhbGl6ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICA/IHBheWxvYWQuc2VyaWFsaXplKClcbiAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpO1xuICAgIGNvbnNvbGUuZGVidWcoYE5vcm1hbGl6ZWQgZXZlbnQgcmVzcG9uc2UgZm9yIG1vZGVsICR7bW9kZWxOYW1lfSwgb3BlcmF0aW9uICR7b3BlcmF0aW9ufSwgaWQgJHtpZH06YCwgc2VyaWFsaXplZFBheWxvYWQpO1xuICAgIHJldHVybiBbbW9kZWxOYW1lLCBvcGVyYXRpb24sIGlkLCBzZXJpYWxpemVkUGF5bG9hZF07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTl6Y21NdlpYWmxiblJ6TFcxdlpIVnNaUzkxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZGUVN4TlFVRk5MRlZCUVZVc2MwSkJRWE5DTEVOQlFVTXNTVUZCVnp0SlFVTm9SQ3hOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETzBsQlJXNUVMRTFCUVUwc1UwRkJVeXhIUVVGSExGZEJRVmNzUlVGQlJTeEpRVUZKTEVsQlFVa3NWMEZCVnl4RFFVRkRPMGxCUlc1RUxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTTdVVUZET1VNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVOb1FpeEpRVUZKTEVOQlFVTTdaMEpCUTBnc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eFRRVUZUTEV0QlFVc3NWVUZCVlR0dlFrRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0blFrRkZOVVFzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4dlFrRkJiMElzVTBGQlV5dzJRMEZCTmtNc1QwRkJUeXhEUVVGRExEWkRRVUUyUXl4RFFVRkRMRVZCUVVVc1EwRkRia2tzUTBGQlF6dG5Ra0ZEUml4UFFVRlBMRTlCUVU4c1EwRkJReXhMUVVGTExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNaRUxFTkJRVU03V1VGQlF5eFBRVUZQTEVkQlFWa3NSVUZCUlN4RFFVRkRPMmRDUVVOMFFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFEUVVGdFF5eFRRVUZUTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRGNrVXNUMEZCVHl4VFFVRlRMRU5CUVVNN1dVRkRia0lzUTBGQlF6dFJRVU5JTEVOQlFVTXNRMEZCUXp0UlFVTktMRU5CUVVNc1EwRkJReXhQUVVGUExFbEJRVWtzVDBGQlR5eFBRVUZQTEVOQlFVTXNVMEZCVXl4TFFVRkxMRlZCUVZVN1dVRkRiRVFzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRVZCUVVVN1dVRkRja0lzUTBGQlF5eERRVUZETEU5QlFVOHNUMEZCVHl4TFFVRkxMRkZCUVZFN1owSkJRek5DTEVOQlFVTXNRMEZCUXl4UFFVRlBPMmRDUVVOVUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJSV2hETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUTFnc2RVTkJRWFZETEZOQlFWTXNaVUZCWlN4VFFVRlRMRkZCUVZFc1JVRkJSU3hIUVVGSExFVkJRM0pHTEdsQ1FVRnBRaXhEUVVOc1FpeERRVUZETzBsQlJVWXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVVzUlVGQlJTeEZRVUZGTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03UVVGRGRrUXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFMXZaR1ZzSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYjNJdGRtRnNhV1JoZEdsdmJsd2lPMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYm05eWJXRnNhWHBsUlhabGJuUlNaWE53YjI1elpTaGhjbWR6T2lCaGJubGJYU2s2SUhWdWEyNXZkMjViWFNCN1hHNGdJR052Ym5OMElGdHRiMlJsYkVOdmJuTjBjaXdnYjNCbGNtRjBhVzl1TENCcFpDd2djR0Y1Ykc5aFpGMGdQU0JoY21kek8xeHVYRzRnSUdOdmJuTjBJRzF2WkdWc1RtRnRaU0E5SUcxdlpHVnNRMjl1YzNSeVB5NXVZVzFsSUQ4L0lHMXZaR1ZzUTI5dWMzUnlPMXh1WEc0Z0lHTnZibk4wSUhObGNtbGhiR2w2WldSUVlYbHNiMkZrSUQwZ1FYSnlZWGt1YVhOQmNuSmhlU2h3WVhsc2IyRmtLVnh1SUNBZ0lEOGdjR0Y1Ykc5aFpDNXRZWEFvS0dVcElEMCtJSHRjYmlBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdVdWMyVnlhV0ZzYVhwbElEMDlQU0JjSW1aMWJtTjBhVzl1WENJcElISmxkSFZ5YmlCbExuTmxjbWxoYkdsNlpTZ3BPMXh1WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1M1lYSnVLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lGQmhlV3h2WVdRZ2FYUmxiU0JtYjNJZ0pIdHRiMlJsYkU1aGJXVjlJR1J2WlhNZ2JtOTBJR2hoZG1VZ2MyVnlhV0ZzYVhwbElHMWxkR2h2WkNCaGJtUWdhWE1nWVc0Z0pIdDBlWEJsYjJZZ1pYMHNJR0YwZEdWdGNIUnBibWNnZEc4Z2MzUnlhVzVuYVdaNUlHUnBjbVZqZEd4NUxpQkpkR1Z0T2lBa2UyVjlZRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUjVjR1Z2WmlCbElEMDlQU0JjSW5OMGNtbHVaMXdpSUQ4Z1pTQTZJRXBUVDA0dWMzUnlhVzVuYVdaNUtHVXBPMXh1SUNBZ0lDQWdJQ0I5SUdOaGRHTm9JQ2hsY25JNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emIyeGxMbmRoY200b1lFWmhhV3hsWkNCMGJ5QnpaWEpwWVd4cGVtVWdjR0Y1Ykc5aFpDQm1iM0lnSkh0dGIyUmxiRTVoYldWOU9pQWtlMlZ5Y24xZ0tUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5S1Z4dUlDQWdJRG9nY0dGNWJHOWhaQ0FtSmlCMGVYQmxiMllnY0dGNWJHOWhaQzV6WlhKcFlXeHBlbVVnUFQwOUlGd2lablZ1WTNScGIyNWNJbHh1SUNBZ0lDQWdQeUJ3WVhsc2IyRmtMbk5sY21saGJHbDZaU2dwWEc0Z0lDQWdJQ0E2SUhSNWNHVnZaaUJ3WVhsc2IyRmtJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lEOGdjR0Y1Ykc5aFpGeHVJQ0FnSUNBZ0lDQTZJRXBUVDA0dWMzUnlhVzVuYVdaNUtIQmhlV3h2WVdRcE8xeHVYRzRnSUdOdmJuTnZiR1V1WkdWaWRXY29YRzRnSUNBZ1lFNXZjbTFoYkdsNlpXUWdaWFpsYm5RZ2NtVnpjRzl1YzJVZ1ptOXlJRzF2WkdWc0lDUjdiVzlrWld4T1lXMWxmU3dnYjNCbGNtRjBhVzl1SUNSN2IzQmxjbUYwYVc5dWZTd2dhV1FnSkh0cFpIMDZZQ3hjYmlBZ0lDQnpaWEpwWVd4cGVtVmtVR0Y1Ykc5aFpGeHVJQ0FwTzF4dVhHNGdJSEpsZEhWeWJpQmJiVzlrWld4T1lXMWxMQ0J2Y0dWeVlYUnBiMjRzSUdsa0xDQnpaWEpwWVd4cGVtVmtVR0Y1Ykc5aFpGMDdYRzU5WEc0aVhYMD0iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZlbnRzLW1vZHVsZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsc0JBQXNCLENBQUMsSUFBVztJQUNoRCxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBRW5ELE1BQU0sU0FBUyxHQUFHLFdBQVcsRUFBRSxJQUFJLElBQUksV0FBVyxDQUFDO0lBRW5ELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDOUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUM7Z0JBQ0gsSUFBSSxPQUFPLENBQUMsQ0FBQyxTQUFTLEtBQUssVUFBVTtvQkFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFFNUQsT0FBTyxDQUFDLElBQUksQ0FDVixvQkFBb0IsU0FBUyw2Q0FBNkMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDLEVBQUUsQ0FDbkksQ0FBQztnQkFDRixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFBQyxPQUFPLEdBQVksRUFBRSxDQUFDO2dCQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxTQUFTLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDckUsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFLLFVBQVU7WUFDbEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDckIsQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVE7Z0JBQzNCLENBQUMsQ0FBQyxPQUFPO2dCQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWhDLE9BQU8sQ0FBQyxLQUFLLENBQ1gsdUNBQXVDLFNBQVMsZUFBZSxTQUFTLFFBQVEsRUFBRSxHQUFHLEVBQ3JGLGlCQUFpQixDQUNsQixDQUFDO0lBRUYsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVFdmVudFJlc3BvbnNlKGFyZ3M6IGFueVtdKTogdW5rbm93bltdIHtcbiAgY29uc3QgW21vZGVsQ29uc3RyLCBvcGVyYXRpb24sIGlkLCBwYXlsb2FkXSA9IGFyZ3M7XG5cbiAgY29uc3QgbW9kZWxOYW1lID0gbW9kZWxDb25zdHI/Lm5hbWUgPz8gbW9kZWxDb25zdHI7XG5cbiAgY29uc3Qgc2VyaWFsaXplZFBheWxvYWQgPSBBcnJheS5pc0FycmF5KHBheWxvYWQpXG4gICAgPyBwYXlsb2FkLm1hcCgoZSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICh0eXBlb2YgZS5zZXJpYWxpemUgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIGUuc2VyaWFsaXplKCk7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgUGF5bG9hZCBpdGVtIGZvciAke21vZGVsTmFtZX0gZG9lcyBub3QgaGF2ZSBzZXJpYWxpemUgbWV0aG9kIGFuZCBpcyBhbiAke3R5cGVvZiBlfSwgYXR0ZW1wdGluZyB0byBzdHJpbmdpZnkgZGlyZWN0bHkuIEl0ZW06ICR7ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIGUgPT09IFwic3RyaW5nXCIgPyBlIDogSlNPTi5zdHJpbmdpZnkoZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHNlcmlhbGl6ZSBwYXlsb2FkIGZvciAke21vZGVsTmFtZX06ICR7ZXJyfWApO1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBwYXlsb2FkICYmIHR5cGVvZiBwYXlsb2FkLnNlcmlhbGl6ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICA/IHBheWxvYWQuc2VyaWFsaXplKClcbiAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCk7XG5cbiAgY29uc29sZS5kZWJ1ZyhcbiAgICBgTm9ybWFsaXplZCBldmVudCByZXNwb25zZSBmb3IgbW9kZWwgJHttb2RlbE5hbWV9LCBvcGVyYXRpb24gJHtvcGVyYXRpb259LCBpZCAke2lkfTpgLFxuICAgIHNlcmlhbGl6ZWRQYXlsb2FkXG4gICk7XG5cbiAgcmV0dXJuIFttb2RlbE5hbWUsIG9wZXJhdGlvbiwgaWQsIHNlcmlhbGl6ZWRQYXlsb2FkXTtcbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQXVCQztBQXZCRCxTQUFnQixzQkFBc0IsQ0FBQyxJQUFJO0lBQ3ZDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDbkQsTUFBTSxTQUFTLEdBQUcsV0FBVyxFQUFFLElBQUksSUFBSSxXQUFXLENBQUM7SUFDbkQsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQztnQkFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLFNBQVMsS0FBSyxVQUFVO29CQUNqQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsU0FBUyw2Q0FBNkMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqSixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFDRCxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsbUNBQW1DLFNBQVMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRSxPQUFPLFNBQVMsQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssVUFBVTtZQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNyQixDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUTtnQkFDekIsQ0FBQyxDQUFDLE9BQU87Z0JBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsU0FBUyxlQUFlLFNBQVMsUUFBUSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hILE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFDRCwwbUdBQTBtRyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVFdmVudFJlc3BvbnNlKGFyZ3MpIHtcbiAgICBjb25zdCBbbW9kZWxDb25zdHIsIG9wZXJhdGlvbiwgaWQsIHBheWxvYWRdID0gYXJncztcbiAgICBjb25zdCBtb2RlbE5hbWUgPSBtb2RlbENvbnN0cj8ubmFtZSA/PyBtb2RlbENvbnN0cjtcbiAgICBjb25zdCBzZXJpYWxpemVkUGF5bG9hZCA9IEFycmF5LmlzQXJyYXkocGF5bG9hZClcbiAgICAgICAgPyBwYXlsb2FkLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGUuc2VyaWFsaXplID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlLnNlcmlhbGl6ZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgUGF5bG9hZCBpdGVtIGZvciAke21vZGVsTmFtZX0gZG9lcyBub3QgaGF2ZSBzZXJpYWxpemUgbWV0aG9kIGFuZCBpcyBhbiAke3R5cGVvZiBlfSwgYXR0ZW1wdGluZyB0byBzdHJpbmdpZnkgZGlyZWN0bHkuIEl0ZW06ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIGUgPT09IFwic3RyaW5nXCIgPyBlIDogSlNPTi5zdHJpbmdpZnkoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gc2VyaWFsaXplIHBheWxvYWQgZm9yICR7bW9kZWxOYW1lfTogJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgOiBwYXlsb2FkICYmIHR5cGVvZiBwYXlsb2FkLnNlcmlhbGl6ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICA/IHBheWxvYWQuc2VyaWFsaXplKClcbiAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpO1xuICAgIGNvbnNvbGUuZGVidWcoYE5vcm1hbGl6ZWQgZXZlbnQgcmVzcG9uc2UgZm9yIG1vZGVsICR7bW9kZWxOYW1lfSwgb3BlcmF0aW9uICR7b3BlcmF0aW9ufSwgaWQgJHtpZH06YCwgc2VyaWFsaXplZFBheWxvYWQpO1xuICAgIHJldHVybiBbbW9kZWxOYW1lLCBvcGVyYXRpb24sIGlkLCBzZXJpYWxpemVkUGF5bG9hZF07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTl6Y21NdlpYWmxiblJ6TFcxdlpIVnNaUzkxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4TlFVRk5MRlZCUVZVc2MwSkJRWE5DTEVOQlFVTXNTVUZCVnp0SlFVTm9SQ3hOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETzBsQlJXNUVMRTFCUVUwc1UwRkJVeXhIUVVGSExGZEJRVmNzUlVGQlJTeEpRVUZKTEVsQlFVa3NWMEZCVnl4RFFVRkRPMGxCUlc1RUxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTTdVVUZET1VNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVOb1FpeEpRVUZKTEVOQlFVTTdaMEpCUTBnc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eFRRVUZUTEV0QlFVc3NWVUZCVlR0dlFrRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0blFrRkZOVVFzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZEVml4dlFrRkJiMElzVTBGQlV5dzJRMEZCTmtNc1QwRkJUeXhEUVVGRExEWkRRVUUyUXl4RFFVRkRMRVZCUVVVc1EwRkRia2tzUTBGQlF6dG5Ra0ZEUml4UFFVRlBMRTlCUVU4c1EwRkJReXhMUVVGTExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNaRUxFTkJRVU03V1VGQlF5eFBRVUZQTEVkQlFWa3NSVUZCUlN4RFFVRkRPMmRDUVVOMFFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFEUVVGdFF5eFRRVUZUTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRGNrVXNUMEZCVHl4VFFVRlRMRU5CUVVNN1dVRkRia0lzUTBGQlF6dFJRVU5JTEVOQlFVTXNRMEZCUXp0UlFVTktMRU5CUVVNc1EwRkJReXhQUVVGUExFbEJRVWtzVDBGQlR5eFBRVUZQTEVOQlFVTXNVMEZCVXl4TFFVRkxMRlZCUVZVN1dVRkRiRVFzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRVZCUVVVN1dVRkRja0lzUTBGQlF5eERRVUZETEU5QlFVOHNUMEZCVHl4TFFVRkxMRkZCUVZFN1owSkJRek5DTEVOQlFVTXNRMEZCUXl4UFFVRlBPMmRDUVVOVUxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJSV2hETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUTFnc2RVTkJRWFZETEZOQlFWTXNaVUZCWlN4VFFVRlRMRkZCUVZFc1JVRkJSU3hIUVVGSExFVkJRM0pHTEdsQ1FVRnBRaXhEUVVOc1FpeERRVUZETzBsQlJVWXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVVzUlVGQlJTeEZRVUZGTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03UVVGRGRrUXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltVjRjRzl5ZENCbWRXNWpkR2x2YmlCdWIzSnRZV3hwZW1WRmRtVnVkRkpsYzNCdmJuTmxLR0Z5WjNNNklHRnVlVnRkS1RvZ2RXNXJibTkzYmx0ZElIdGNiaUFnWTI5dWMzUWdXMjF2WkdWc1EyOXVjM1J5TENCdmNHVnlZWFJwYjI0c0lHbGtMQ0J3WVhsc2IyRmtYU0E5SUdGeVozTTdYRzVjYmlBZ1kyOXVjM1FnYlc5a1pXeE9ZVzFsSUQwZ2JXOWtaV3hEYjI1emRISS9MbTVoYldVZ1B6OGdiVzlrWld4RGIyNXpkSEk3WEc1Y2JpQWdZMjl1YzNRZ2MyVnlhV0ZzYVhwbFpGQmhlV3h2WVdRZ1BTQkJjbkpoZVM1cGMwRnljbUY1S0hCaGVXeHZZV1FwWEc0Z0lDQWdQeUJ3WVhsc2IyRmtMbTFoY0Nnb1pTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1pTNXpaWEpwWVd4cGVtVWdQVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpa2djbVYwZFhKdUlHVXVjMlZ5YVdGc2FYcGxLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExuZGhjbTRvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmdVR0Y1Ykc5aFpDQnBkR1Z0SUdadmNpQWtlMjF2WkdWc1RtRnRaWDBnWkc5bGN5QnViM1FnYUdGMlpTQnpaWEpwWVd4cGVtVWdiV1YwYUc5a0lHRnVaQ0JwY3lCaGJpQWtlM1I1Y0dWdlppQmxmU3dnWVhSMFpXMXdkR2x1WnlCMGJ5QnpkSEpwYm1kcFpua2daR2x5WldOMGJIa3VJRWwwWlcwNklDUjdaWDFnWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlHVWdQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QmxJRG9nU2xOUFRpNXpkSEpwYm1kcFpua29aU2s3WEc0Z0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNqb2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGdSbUZwYkdWa0lIUnZJSE5sY21saGJHbDZaU0J3WVhsc2IyRmtJR1p2Y2lBa2UyMXZaR1ZzVG1GdFpYMDZJQ1I3WlhKeWZXQXBPMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwcFhHNGdJQ0FnT2lCd1lYbHNiMkZrSUNZbUlIUjVjR1Z2WmlCd1lYbHNiMkZrTG5ObGNtbGhiR2w2WlNBOVBUMGdYQ0ptZFc1amRHbHZibHdpWEc0Z0lDQWdJQ0EvSUhCaGVXeHZZV1F1YzJWeWFXRnNhWHBsS0NsY2JpQWdJQ0FnSURvZ2RIbHdaVzltSUhCaGVXeHZZV1FnUFQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdQeUJ3WVhsc2IyRmtYRzRnSUNBZ0lDQWdJRG9nU2xOUFRpNXpkSEpwYm1kcFpua29jR0Y1Ykc5aFpDazdYRzVjYmlBZ1kyOXVjMjlzWlM1a1pXSjFaeWhjYmlBZ0lDQmdUbTl5YldGc2FYcGxaQ0JsZG1WdWRDQnlaWE53YjI1elpTQm1iM0lnYlc5a1pXd2dKSHR0YjJSbGJFNWhiV1Y5TENCdmNHVnlZWFJwYjI0Z0pIdHZjR1Z5WVhScGIyNTlMQ0JwWkNBa2UybGtmVHBnTEZ4dUlDQWdJSE5sY21saGJHbDZaV1JRWVhsc2IyRmtYRzRnSUNrN1hHNWNiaUFnY21WMGRYSnVJRnR0YjJSbGJFNWhiV1VzSUc5d1pYSmhkR2x2Yml3Z2FXUXNJSE5sY21saGJHbDZaV1JRWVhsc2IyRmtYVHRjYm4xY2JpSmRmUT09Il19
@@ -155,9 +155,8 @@ class NestBootstraper {
155
155
  const helmet = require("helmet"); // Dynamic import to avoid hard dependency
156
156
  this.app.use(helmet(options));
157
157
  this.logger.log("Helmet middleware enabled successfully.");
158
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
159
158
  }
160
- catch (e) {
159
+ catch {
161
160
  this.logger.warn("Helmet not installed. Skipping middleware.");
162
161
  }
163
162
  return this;
@@ -264,5 +263,5 @@ class NestBootstraper {
264
263
  }
265
264
  }
266
265
  exports.NestBootstraper = NestBootstraper;
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdEJvb3RzdHJhcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZhY3RvcnkvTmVzdEJvb3RzdHJhcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxNQUFNLEdBR1AsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsOEJBQXFCO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsMkJBQWtCO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsMEJBQWlCO0FBNENyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUkxQjs7Ozs7Ozs7O09BU0c7SUFDSyxNQUFNLEtBQUssTUFBTTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLFdBQVc7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQXFCO1FBQ3JDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQXFCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxJQUFJLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFH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QkFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSU5lc3RBcHBsaWNhdGlvbixcbiAgTG9nZ2VyLFxuICBOZXN0SW50ZXJjZXB0b3IsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZFeGNlcHRpb25GaWx0ZXIgfSBmcm9tIFwiLi9leGNlcHRpb25zXCI7XG5pbXBvcnQgeyBTd2FnZ2VyQnVpbGRlciB9IGZyb20gXCIuL29wZW5hcGlcIjtcbmltcG9ydCB7IENvcnNPcHRpb25zIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uL2ludGVyZmFjZXMvZXh0ZXJuYWwvY29ycy1vcHRpb25zLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgQ29yc0Vycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBEZWZpbmVzIGFsbCBjdXN0b21pemFibGUgcGFyYW1ldGVycyBmb3IgU3dhZ2dlciBzZXR1cC5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhpcyBpbnRlcmZhY2UgYWxsb3dzIGRldmVsb3BlcnMgdG8gY3VzdG9taXplIGhvdyBTd2FnZ2VyIFVJIGlzIGNvbmZpZ3VyZWRcbiAqIHdpdGhpbiB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLiBJdCBpbmNsdWRlcyBwYXJhbWV0ZXJzIGZvciB0aXRsZXMsIHBhdGhzLFxuICogY29sb3Igc2NoZW1lcywgYW5kIGFzc2V0IHBhdGhzIHRvIHRhaWxvciB0aGUgQVBJIGRvY3VtZW50YXRpb24gZXhwZXJpZW5jZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSBUaXRsZSBkaXNwbGF5ZWQgaW4gU3dhZ2dlciBVSS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbiAtIERlc2NyaXB0aW9uIHNob3duIGJlbG93IHRoZSB0aXRsZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uIC0gQVBJIHZlcnNpb24gZGlzcGxheWVkIGluIHRoZSBkb2N1bWVudGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoXSAtIE9wdGlvbmFsIHBhdGggd2hlcmUgU3dhZ2dlciB3aWxsIGJlIGF2YWlsYWJsZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3BlcnNpc3RBdXRob3JpemF0aW9uXSAtIFdoZXRoZXIgYXV0aG9yaXphdGlvbiB0b2tlbnMgcGVyc2lzdCBhY3Jvc3MgcmVsb2Fkcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXNzZXRzUGF0aF0gLSBQYXRoIHRvIGN1c3RvbSBhc3NldHMgZm9yIFN3YWdnZXIgVUkuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RvcGJhckJnQ29sb3JdIC0gQ3VzdG9tIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBTd2FnZ2VyIHRvcCBiYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RvcGJhckljb25QYXRoXSAtIFBhdGggdG8gYSBjdXN0b20gaWNvbiBkaXNwbGF5ZWQgaW4gdGhlIHRvcCBiYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2Zhdmljb25QYXRoXSAtIFBhdGggdG8gYSBjdXN0b20gZmF2aWNvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2FnZ2VyU2V0dXBPcHRpb25zIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBwZXJzaXN0QXV0aG9yaXphdGlvbj86IGJvb2xlYW47XG4gIGFzc2V0c1BhdGg/OiBzdHJpbmc7XG4gIHRvcGJhckJnQ29sb3I/OiBzdHJpbmc7XG4gIHRvcGJhckljb25QYXRoPzogc3RyaW5nO1xuICBmYXZpY29uUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggdG8gZXhwb3NlIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gaW4gSlNPTiBmb3JtYXQuXG4gICAqIEV4YW1wbGU6IC9hcGkvb3BlbmFwaS5qc29uXG4gICAqL1xuICBvcGVuQXBpSnNvblBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGV4cG9zZSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIFlBTUwgZm9ybWF0LlxuICAgKiBSZXF1aXJlcyAneWFtbCcgcGFja2FnZSBhcyBwZWVyIGRlcGVuZGVuY3kuXG4gICAqIEV4YW1wbGU6IC9hcGkvb3BlbmFwaS55YW1sXG4gICAqL1xuICBvcGVuQXBpWWFtbFBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBIGZsdWVudCwgc3RhdGljIGJvb3RzdHJhcCBjbGFzcyBmb3IgaW5pdGlhbGl6aW5nIGFuZCBjb25maWd1cmluZyBhIE5lc3RKUyBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBOZXN0Qm9vdHN0cmFwZXJgIGNsYXNzIHByb3ZpZGVzIGEgY2hhaW5hYmxlIEFQSSBmb3IgY29uZmlndXJpbmdcbiAqIGEgTmVzdEpTIGFwcGxpY2F0aW9uIGluc3RhbmNlLiBJdCBpbmNsdWRlcyBidWlsdC1pbiBtZXRob2RzIGZvciBlbmFibGluZ1xuICogQ09SUywgSGVsbWV0IHNlY3VyaXR5LCBTd2FnZ2VyIGRvY3VtZW50YXRpb24sIGdsb2JhbCBwaXBlcywgZmlsdGVycyxcbiAqIGludGVyY2VwdG9ycywgYW5kIHN0YXJ0aW5nIHRoZSBzZXJ2ZXIuXG4gKlxuICogVGhpcyBjbGFzcyBwcm9tb3RlcyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNlcyByZXBldGl0aXZlIHNldHVwIGNvZGVcbiAqIGFjcm9zcyBtdWx0aXBsZSBOZXN0SlMgcHJvamVjdHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBOZXN0RmFjdG9yeSB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbiAqIGltcG9ydCB7IEFwcE1vZHVsZSB9IGZyb20gXCIuL2FwcC5tb2R1bGVcIjtcbiAqIGltcG9ydCB7IE15TG9nZ2VyIH0gZnJvbSBcIi4vTXlMb2dnZXJcIjtcbiAqIGltcG9ydCB7IE5lc3RCb290c3RyYXBlciB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLW5lc3RcIjtcbiAqXG4gKiBhc3luYyBmdW5jdGlvbiBib290c3RyYXAoKSB7XG4gKiAgIGNvbnN0IGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShBcHBNb2R1bGUpO1xuICpcbiAqICAgYXdhaXQgTmVzdEJvb3RzdHJhcGVyXG4gKiAgICAgLmluaXRpYWxpemUoYXBwKVxuICogICAgIC5lbmFibGVMb2dnZXIobmV3IE15TG9nZ2VyKCkpXG4gKiAgICAgLmVuYWJsZUNvcnMoW1wiaHR0cDovL2xvY2FsaG9zdDo0MjAwXCJdKVxuICogICAgIC51c2VIZWxtZXQoKVxuICogICAgIC5zZXR1cFN3YWdnZXIoe1xuICogICAgICAgdGl0bGU6IFwiT3BlbkFQSSBieSBUcmFkZU1hcmvihKJcIixcbiAqICAgICAgIGRlc2NyaXB0aW9uOiBcIlRyYWRlTWFya+KEoiBBUEkgZG9jdW1lbnRhdGlvblwiLFxuICogICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICogICAgICAgcGF0aDogXCJhcGlcIixcbiAqICAgICAgIHBlcnNpc3RBdXRob3JpemF0aW9uOiB0cnVlLFxuICogICAgICAgdG9wYmFyQmdDb2xvcjogXCIjMkMzRTUwXCIsXG4gKiAgICAgICB0b3BiYXJJY29uUGF0aDogXCIvYXNzZXRzL2xvZ28uc3ZnXCIsXG4gKiAgICAgICBmYXZpY29uUGF0aDogXCIvYXNzZXRzL2Zhdmljb24uaWNvXCJcbiAqICAgICB9KVxuICogICAgIC51c2VHbG9iYWxGaWx0ZXJzKClcbiAqICAgICAudXNlR2xvYmFsUGlwZXMoLi4uKVxuICogICAgIC51c2VHbG9iYWxJbnRlcmNlcHRvcnMoLi4uKVxuICogICAgIC5zdGFydCgzMDAwKTtcbiAqIH1cbiAqXG4gKiBib290c3RyYXAoKTtcbiAqIGBgYFxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXN0Qm9vdHN0cmFwZXIge1xuICBwcml2YXRlIHN0YXRpYyBhcHA6IElOZXN0QXBwbGljYXRpb247XG4gIHByaXZhdGUgc3RhdGljIF9sb2dnZXI6IExvZ2dlcjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbG9nZ2VyIGluc3RhbmNlLCBjcmVhdGluZyBhIGRlZmF1bHQgb25lIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIEVuc3VyZXMgdGhhdCBhIHZhbGlkIGBMb2dnZXJgIGluc3RhbmNlIGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICogZm9yIGxvZ2dpbmcgYm9vdHN0cmFwLXJlbGF0ZWQgbWVzc2FnZXMuXG4gICAqXG4gICAqIEByZXR1cm4ge0xvZ2dlcn0gVGhlIGFjdGl2ZSBsb2dnZXIgaW5zdGFuY2UuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXQgbG9nZ2VyKCk6IExvZ2dlciB7XG4gICAgaWYgKCF0aGlzLl9sb2dnZXIpIHtcbiAgICAgIC8vIGZhbGxiYWNrXG4gICAgICB0aGlzLl9sb2dnZXIgPSBuZXcgTG9nZ2VyKFwiTmVzdEJvb3RzdHJhcFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJvb3RzdHJhcHBlciB3aXRoIGEgZ2l2ZW4gTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBCaW5kcyB0aGUgcHJvdmlkZWQgTmVzdEpTIGFwcCBpbnN0YW5jZSB0byB0aGUgYm9vdHN0cmFwcGVyLCBlbmFibGluZ1xuICAgKiBjaGFpbmVkIGNvbmZpZ3VyYXRpb24gbWV0aG9kcy5cbiAgICpcbiAgICogQHBhcmFtIHtJTmVzdEFwcGxpY2F0aW9ufSBhcHAgLSBUaGUgTmVzdEpTIGFwcGxpY2F0aW9uIGluc3RhbmNlIHRvIGluaXRpYWxpemUuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24gbWV0aG9kcy5cbiAgICovXG4gIHN0YXRpYyBpbml0aWFsaXplKGFwcDogSU5lc3RBcHBsaWNhdGlvbikge1xuICAgIHRoaXMuYXBwID0gYXBwO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFbmFibGVzIG9yIHJlcGxhY2VzIHRoZSBnbG9iYWwgbG9nZ2VyIGZvciB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBJZiBhIGN1c3RvbSBsb2dnZXIgaXMgcHJvdmlkZWQsIGl0IHJlcGxhY2VzIHRoZSBkZWZhdWx0IGxvZ2dlci4gT3RoZXJ3aXNlLFxuICAgKiBhIG5ldyBsb2dnZXIgbmFtZWQgYFwiTmVzdEJvb3RzdHJhcFwiYCBpcyB1c2VkLiBUaGlzIGxvZ2dlciBpcyBhbHNvIHJlZ2lzdGVyZWRcbiAgICogd2l0aCB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0xvZ2dlcn0gW2N1c3RvbUxvZ2dlcl0gLSBPcHRpb25hbCBjdXN0b20gbG9nZ2VyIGluc3RhbmNlLlxuICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZy5cbiAgICovXG4gIHN0YXRpYyBlbmFibGVMb2dnZXIoY3VzdG9tTG9nZ2VyPzogTG9nZ2VyKSB7XG4gICAgdGhpcy5fbG9nZ2VyID0gY3VzdG9tTG9nZ2VyIHx8IG5ldyBMb2dnZXIoXCJOZXN0Qm9vdHN0cmFwXCIpO1xuICAgIHRoaXMuYXBwLnVzZUxvZ2dlcih0aGlzLl9sb2dnZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFbmFibGVzIENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIChDT1JTKSBmb3IgdGhlIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBBbGxvd3MgZGVmaW5pbmcgZWl0aGVyIGEgd2lsZGNhcmQgb3JpZ2luIChgXCIqXCJgKSBvciBhIGxpc3Qgb2YgYWxsb3dlZCBvcmlnaW5zLlxuICAgKiBBdXRvbWF0aWNhbGx5IGFjY2VwdHMgbG9jYWwgZGV2ZWxvcG1lbnQgcmVxdWVzdHMgYW5kIHRob3NlIHdpdGhvdXQgb3JpZ2luIGhlYWRlcnMuXG4gICAqIFRocm93cyBhIGBDb3JzRXJyb3JgIGZvciB1bmF1dGhvcml6ZWQgb3JpZ2lucy5cbiAgICpcbiAgICogQHBhcmFtIHsnKicgfCBzdHJpbmdbXX0gW29yaWdpbnM9W11dIC0gTGlzdCBvZiBhbGxvd2VkIG9yaWdpbnMgb3IgYFwiKlwiYCB0byBhbGxvdyBhbGwuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthbGxvd01ldGhvZHM9WydHRVQnLCAnUE9TVCcsICdQVVQnLCAnREVMRVRFJ11dIC0gQWxsb3dlZCBIVFRQIG1ldGhvZHMuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqL1xuICBzdGF0aWMgZW5hYmxlQ29ycyhcbiAgICBvcmlnaW5zOiBcIipcIiB8IHN0cmluZ1tdID0gW10sXG4gICAgYWxsb3dNZXRob2RzOiBzdHJpbmdbXSA9IFtcIkdFVFwiLCBcIlBPU1RcIiwgXCJQVVRcIiwgXCJERUxFVEVcIl1cbiAgKSB7XG4gICAgY29uc3QgYWxsb3dlZE9yaWdpbnMgPVxuICAgICAgb3JpZ2lucyA9PT0gXCIqXCIgPyBcIipcIiA6IG9yaWdpbnMubWFwKChvKSA9PiBvLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGNvbnN0IGNvcnNPcHRpb25zOiBDb3JzT3B0aW9ucyA9IHtcbiAgICAgIG9yaWdpbjogKG9yaWdpbiwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgLy8gQWxsb3cgcmVxdWVzdCB3aXRob3V0IG9yaWdpbi4uLlxuICAgICAgICBpZiAoIW9yaWdpbikgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRydWUpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBhbGxvd2VkT3JpZ2lucyA9PT0gXCIqXCIgfHxcbiAgICAgICAgICAoQXJyYXkuaXNBcnJheShhbGxvd2VkT3JpZ2lucykgJiZcbiAgICAgICAgICAgIGFsbG93ZWRPcmlnaW5zLmluY2x1ZGVzKG9yaWdpbi50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2sobmV3IENvcnNFcnJvcihgT3JpZ2luICR7b3JpZ2lufSBub3QgYWxsb3dlZGApKTtcbiAgICAgIH0sXG4gICAgICBjcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIG1ldGhvZHM6IGFsbG93TWV0aG9kcy5qb2luKFwiLFwiKSxcbiAgICB9O1xuXG4gICAgdGhpcy5hcHAuZW5hYmxlQ29ycyhjb3JzT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFwcGxpZXMgdGhlIEhlbG1ldCBtaWRkbGV3YXJlIGZvciBlbmhhbmNlZCBzZWN1cml0eS5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRHluYW1pY2FsbHkgbG9hZHMgdGhlIGBoZWxtZXRgIHBhY2thZ2UgaWYgYXZhaWxhYmxlIGFuZCByZWdpc3RlcnMgaXRcbiAgICogYXMgbWlkZGxld2FyZSB0byBpbXByb3ZlIEhUVFAgaGVhZGVyIHNlY3VyaXR5LiBJZiBub3QgaW5zdGFsbGVkLCBsb2dzIGEgd2FybmluZ1xuICAgKiBhbmQgY29udGludWVzIGV4ZWN1dGlvbiB3aXRob3V0IHRocm93aW5nIGVycm9ycy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbb3B0aW9uc10gLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIHBhc3NlZCB0byBIZWxtZXQuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBzdGF0aWMgdXNlSGVsbWV0KG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICBjb25zdCBoZWxtZXQgPSByZXF1aXJlKFwiaGVsbWV0XCIpOyAvLyBEeW5hbWljIGltcG9ydCB0byBhdm9pZCBoYXJkIGRlcGVuZGVuY3lcbiAgICAgIHRoaXMuYXBwLnVzZShoZWxtZXQob3B0aW9ucykpO1xuICAgICAgdGhpcy5sb2dnZXIubG9nKFwiSGVsbWV0IG1pZGRsZXdhcmUgZW5hYmxlZCBzdWNjZXNzZnVsbHkuXCIpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcIkhlbG1ldCBub3QgaW5zdGFsbGVkLiBTa2lwcGluZyBtaWRkbGV3YXJlLlwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ29uZmlndXJlcyBhbmQgaW5pdGlhbGl6ZXMgU3dhZ2dlciBVSSBmb3IgQVBJIGRvY3VtZW50YXRpb24uXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIFVzZXMgdGhlIGBTd2FnZ2VyQnVpbGRlcmAgdXRpbGl0eSB0byBjb25maWd1cmUgQVBJIGRvY3VtZW50YXRpb25cbiAgICogd2l0aCBkZXRhaWxlZCBjdXN0b21pemF0aW9uIGZvciB0aXRsZSwgdmVyc2lvbiwgcGF0aHMsIGFuZCBjb2xvcnMuXG4gICAqIFN3YWdnZXIgaXMgYXV0b21hdGljYWxseSBleHBvc2VkIGF0IHRoZSBjb25maWd1cmVkIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSB7U3dhZ2dlclNldHVwT3B0aW9uc30gb3B0aW9ucyAtIFN3YWdnZXIgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgc3RhdGljIHNldHVwU3dhZ2dlcihvcHRpb25zOiBTd2FnZ2VyU2V0dXBPcHRpb25zKSB7XG4gICAgY29uc3Qgc3dhZ2dlciA9IG5ldyBTd2FnZ2VyQnVpbGRlcih0aGlzLmFwcCwge1xuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgIHBhdGg6IG9wdGlvbnMucGF0aCB8fCBcImFwaVwiLFxuICAgICAgcGVyc2lzdEF1dGhvcml6YXRpb246IG9wdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb24gPz8gdHJ1ZSxcbiAgICAgIGFzc2V0c1BhdGg6IG9wdGlvbnMuYXNzZXRzUGF0aCxcbiAgICAgIGZhdmljb25GaWxlUGF0aDogb3B0aW9ucy5mYXZpY29uUGF0aCxcbiAgICAgIHRvcGJhckljb25GaWxlUGF0aDogb3B0aW9ucy50b3BiYXJJY29uUGF0aCxcbiAgICAgIHRvcGJhckJnQ29sb3I6IG9wdGlvbnMudG9wYmFyQmdDb2xvcixcbiAgICAgIG9wZW5BcGlKc29uUGF0aDogb3B0aW9ucy5vcGVuQXBpSnNvblBhdGgsXG4gICAgICBvcGVuQXBpWWFtbFBhdGg6IG9wdGlvbnMub3BlbkFwaVlhbWxQYXRoLFxuICAgIH0pO1xuICAgIHN3YWdnZXIuc2V0dXBTd2FnZ2VyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgdmFsaWRhdGlvbiBwaXBlcy5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRW5hYmxlcyByZXF1ZXN0IHBheWxvYWQgdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb24gZ2xvYmFsbHkgYWNyb3NzXG4gICAqIHRoZSBlbnRpcmUgTmVzdEpTIGFwcGxpY2F0aW9uLiBNdWx0aXBsZSBwaXBlcyBjYW4gYmUgY2hhaW5lZCB0b2dldGhlclxuICAgKiBmb3IgbW9kdWxhciBpbnB1dCB2YWxpZGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLlBpcGVUcmFuc2Zvcm1bXX0gcGlwZXMgLSBQaXBlIGluc3RhbmNlcyB0byByZWdpc3RlciBnbG9iYWxseS5cbiAgICogQHJldHVybiB7TmVzdEJvb3RzdHJhcGVyfSBSZXR1cm5zIHRoZSBjbGFzcyBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsUGlwZXMoLi4ucGlwZXM6IFBpcGVUcmFuc2Zvcm1bXSkge1xuICAgIGlmIChwaXBlcy5sZW5ndGggPiAwKSB0aGlzLmFwcC51c2VHbG9iYWxQaXBlcyguLi5waXBlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgZXhjZXB0aW9uIGZpbHRlcnMuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIElmIG5vIGZpbHRlcnMgYXJlIHByb3ZpZGVkLCBpdCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVycyBhIGRlZmF1bHRcbiAgICogc2V0IG9mIHN0YW5kYXJkIGV4Y2VwdGlvbiBmaWx0ZXJzIGZvciBjb21tb24gZXJyb3IgdHlwZXMgbGlrZVxuICAgKiBgSHR0cEV4Y2VwdGlvbmAsIGBWYWxpZGF0aW9uRXhjZXB0aW9uYCwgYENvbmZsaWN0RXhjZXB0aW9uYCwgYW5kIG90aGVycy5cbiAgICpcbiAgICogQHBhcmFtIHsuLi5FeGNlcHRpb25GaWx0ZXJbXX0gZmlsdGVycyAtIE9wdGlvbmFsIGZpbHRlcnMgdG8gYXBwbHkgZ2xvYmFsbHkuXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsRmlsdGVycyguLi5maWx0ZXJzOiBhbnlbXSkge1xuICAgIHRoaXMuYXBwLnVzZUdsb2JhbEZpbHRlcnMoXG4gICAgICAuLi4oZmlsdGVycy5sZW5ndGggPiAwID8gZmlsdGVycyA6IFtuZXcgRGVjYWZFeGNlcHRpb25GaWx0ZXIoKV0pXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBpbnRlcmNlcHRvcnMgZm9yIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHRyYW5zZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBJbnRlcmNlcHRvcnMgYWxsb3cgYWR2YW5jZWQgcmVxdWVzdC9yZXNwb25zZSBtYW5pcHVsYXRpb24gc3VjaCBhc1xuICAgKiBzZXJpYWxpemF0aW9uLCBsb2dnaW5nLCBvciB0cmFuc2Zvcm1hdGlvbi4gTXVsdGlwbGUgaW50ZXJjZXB0b3JzXG4gICAqIGNhbiBiZSBhZGRlZCBmb3IgbW9kdWxhciBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLk5lc3RJbnRlcmNlcHRvcltdfSBpbnRlcmNlcHRvcnMgLSBJbnRlcmNlcHRvciBpbnN0YW5jZXMgdG8gcmVnaXN0ZXIuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsSW50ZXJjZXB0b3JzKC4uLmludGVyY2VwdG9yczogTmVzdEludGVyY2VwdG9yW10pIHtcbiAgICBpZiAoaW50ZXJjZXB0b3JzLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLmFwcC51c2VHbG9iYWxJbnRlcmNlcHRvcnMoLi4uaW50ZXJjZXB0b3JzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU3RhcnRzIHRoZSBOZXN0SlMgYXBwbGljYXRpb24gYW5kIGJpbmRzIGl0IHRvIHRoZSBnaXZlbiBwb3J0IGFuZCBob3N0LlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBMaXN0ZW5zIG9uIHRoZSBzcGVjaWZpZWQgcG9ydCBhbmQgb3B0aW9uYWxseSBhIGhvc3QuIE9uY2Ugc3RhcnRlZCxcbiAgICogbG9ncyB0aGUgYXBwbGljYXRpb24gVVJMIGZvciBlYXN5IGFjY2Vzcy4gVGhlIHN0YXJ0dXAgcHJvY2VzcyByZXNvbHZlc1xuICAgKiBvbmNlIHRoZSBhcHBsaWNhdGlvbiBpcyBzdWNjZXNzZnVsbHkgcnVubmluZy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3J0PTMwMDBdIC0gUG9ydCBudW1iZXIgdG8gbGlzdGVuIG9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2hvc3RdIC0gT3B0aW9uYWwgaG9zdCBvciBJUCBhZGRyZXNzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2xvZz10cnVlXSAtIFdoZXRoZXIgdG8gbG9nIHRoZSBhcHBsaWNhdGlvbiBVUkwgdXBvbiBzdGFydHVwLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBSZXNvbHZlcyBvbmNlIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN0YXJ0KFxuICAgIHBvcnQ6IG51bWJlciA9IE51bWJlcihwcm9jZXNzLmVudi5QT1JUKSB8fCAzMDAwLFxuICAgIGhvc3Q6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBsb2c6IGJvb2xlYW4gPSB0cnVlXG4gICkge1xuICAgIHRoaXMuYXBwLmxpc3Rlbihwb3J0LCBob3N0IGFzIGFueSkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuYXBwLmdldFVybCgpO1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coYPCfmoAgQXBwbGljYXRpb24gaXMgcnVubmluZyBhdDogJHt1cmx9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdEJvb3RzdHJhcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTmVzdEJvb3RzdHJhcGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF5QztBQUN6QyxvREFBNkQ7QUFDN0QsaURBQW9EO0FBQ3BELGdEQUE4QztBQUM5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFhLGVBQWU7SUFDeEI7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxLQUFLLE1BQU07UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLFdBQVc7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNEOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0Q7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVk7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLElBQUksSUFBSSxlQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLFlBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztRQUMzRSxNQUFNLGNBQWMs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LENBQUM7Q0FDSjtBQWpORCwwQ0FpTkM7QUFDRCxzdm9CQUFzdm9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyLCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZFeGNlcHRpb25GaWx0ZXIgfSBmcm9tIFwiLi9leGNlcHRpb25zL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBTd2FnZ2VyQnVpbGRlciB9IGZyb20gXCIuL29wZW5hcGkvaW5kZXguanNcIjtcbmltcG9ydCB7IENvcnNFcnJvciB9IGZyb20gXCIuL2Vycm9ycy9pbmRleC5qc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEEgZmx1ZW50LCBzdGF0aWMgYm9vdHN0cmFwIGNsYXNzIGZvciBpbml0aWFsaXppbmcgYW5kIGNvbmZpZ3VyaW5nIGEgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICpcbiAqIEBzdW1tYXJ5XG4gKiBUaGUgYE5lc3RCb290c3RyYXBlcmAgY2xhc3MgcHJvdmlkZXMgYSBjaGFpbmFibGUgQVBJIGZvciBjb25maWd1cmluZ1xuICogYSBOZXN0SlMgYXBwbGljYXRpb24gaW5zdGFuY2UuIEl0IGluY2x1ZGVzIGJ1aWx0LWluIG1ldGhvZHMgZm9yIGVuYWJsaW5nXG4gKiBDT1JTLCBIZWxtZXQgc2VjdXJpdHksIFN3YWdnZXIgZG9jdW1lbnRhdGlvbiwgZ2xvYmFsIHBpcGVzLCBmaWx0ZXJzLFxuICogaW50ZXJjZXB0b3JzLCBhbmQgc3RhcnRpbmcgdGhlIHNlcnZlci5cbiAqXG4gKiBUaGlzIGNsYXNzIHByb21vdGVzIGNvbnNpc3RlbmN5IGFuZCByZWR1Y2VzIHJlcGV0aXRpdmUgc2V0dXAgY29kZVxuICogYWNyb3NzIG11bHRpcGxlIE5lc3RKUyBwcm9qZWN0cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IE5lc3RGYWN0b3J5IH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuICogaW1wb3J0IHsgQXBwTW9kdWxlIH0gZnJvbSBcIi4vYXBwLm1vZHVsZVwiO1xuICogaW1wb3J0IHsgTXlMb2dnZXIgfSBmcm9tIFwiLi9NeUxvZ2dlclwiO1xuICogaW1wb3J0IHsgTmVzdEJvb3RzdHJhcGVyIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItbmVzdFwiO1xuICpcbiAqIGFzeW5jIGZ1bmN0aW9uIGJvb3RzdHJhcCgpIHtcbiAqICAgY29uc3QgYXBwID0gYXdhaXQgTmVzdEZhY3RvcnkuY3JlYXRlKEFwcE1vZHVsZSk7XG4gKlxuICogICBhd2FpdCBOZXN0Qm9vdHN0cmFwZXJcbiAqICAgICAuaW5pdGlhbGl6ZShhcHApXG4gKiAgICAgLmVuYWJsZUxvZ2dlcihuZXcgTXlMb2dnZXIoKSlcbiAqICAgICAuZW5hYmxlQ29ycyhbXCJodHRwOi8vbG9jYWxob3N0OjQyMDBcIl0pXG4gKiAgICAgLnVzZUhlbG1ldCgpXG4gKiAgICAgLnNldHVwU3dhZ2dlcih7XG4gKiAgICAgICB0aXRsZTogXCJPcGVuQVBJIGJ5IFRyYWRlTWFya+KEolwiLFxuICogICAgICAgZGVzY3JpcHRpb246IFwiVHJhZGVNYXJr4oSiIEFQSSBkb2N1bWVudGF0aW9uXCIsXG4gKiAgICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gKiAgICAgICBwYXRoOiBcImFwaVwiLFxuICogICAgICAgcGVyc2lzdEF1dGhvcml6YXRpb246IHRydWUsXG4gKiAgICAgICB0b3BiYXJCZ0NvbG9yOiBcIiMyQzNFNTBcIixcbiAqICAgICAgIHRvcGJhckljb25QYXRoOiBcIi9hc3NldHMvbG9nby5zdmdcIixcbiAqICAgICAgIGZhdmljb25QYXRoOiBcIi9hc3NldHMvZmF2aWNvbi5pY29cIlxuICogICAgIH0pXG4gKiAgICAgLnVzZUdsb2JhbEZpbHRlcnMoKVxuICogICAgIC51c2VHbG9iYWxQaXBlcyguLi4pXG4gKiAgICAgLnVzZUdsb2JhbEludGVyY2VwdG9ycyguLi4pXG4gKiAgICAgLnN0YXJ0KDMwMDApO1xuICogfVxuICpcbiAqIGJvb3RzdHJhcCgpO1xuICogYGBgXG4gKiBAY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIE5lc3RCb290c3RyYXBlciB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBsb2dnZXIgaW5zdGFuY2UsIGNyZWF0aW5nIGEgZGVmYXVsdCBvbmUgaWYgbm90IHNldC5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogRW5zdXJlcyB0aGF0IGEgdmFsaWQgYExvZ2dlcmAgaW5zdGFuY2UgaXMgYWx3YXlzIGF2YWlsYWJsZVxuICAgICAqIGZvciBsb2dnaW5nIGJvb3RzdHJhcC1yZWxhdGVkIG1lc3NhZ2VzLlxuICAgICAqXG4gICAgICogQHJldHVybiB7TG9nZ2VyfSBUaGUgYWN0aXZlIGxvZ2dlciBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0IGxvZ2dlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9sb2dnZXIpIHtcbiAgICAgICAgICAgIC8vIGZhbGxiYWNrXG4gICAgICAgICAgICB0aGlzLl9sb2dnZXIgPSBuZXcgTG9nZ2VyKFwiTmVzdEJvb3RzdHJhcFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fbG9nZ2VyO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBJbml0aWFsaXplcyB0aGUgYm9vdHN0cmFwcGVyIHdpdGggYSBnaXZlbiBOZXN0SlMgYXBwbGljYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIEJpbmRzIHRoZSBwcm92aWRlZCBOZXN0SlMgYXBwIGluc3RhbmNlIHRvIHRoZSBib290c3RyYXBwZXIsIGVuYWJsaW5nXG4gICAgICogY2hhaW5lZCBjb25maWd1cmF0aW9uIG1ldGhvZHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0lOZXN0QXBwbGljYXRpb259IGFwcCAtIFRoZSBOZXN0SlMgYXBwbGljYXRpb24gaW5zdGFuY2UgdG8gaW5pdGlhbGl6ZS5cbiAgICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZyBjb25maWd1cmF0aW9uIG1ldGhvZHMuXG4gICAgICovXG4gICAgc3RhdGljIGluaXRpYWxpemUoYXBwKSB7XG4gICAgICAgIHRoaXMuYXBwID0gYXBwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRW5hYmxlcyBvciByZXBsYWNlcyB0aGUgZ2xvYmFsIGxvZ2dlciBmb3IgdGhlIE5lc3RKUyBhcHBsaWNhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogSWYgYSBjdXN0b20gbG9nZ2VyIGlzIHByb3ZpZGVkLCBpdCByZXBsYWNlcyB0aGUgZGVmYXVsdCBsb2dnZXIuIE90aGVyd2lzZSxcbiAgICAgKiBhIG5ldyBsb2dnZXIgbmFtZWQgYFwiTmVzdEJvb3RzdHJhcFwiYCBpcyB1c2VkLiBUaGlzIGxvZ2dlciBpcyBhbHNvIHJlZ2lzdGVyZWRcbiAgICAgKiB3aXRoIHRoZSBOZXN0SlMgYXBwbGljYXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0xvZ2dlcn0gW2N1c3RvbUxvZ2dlcl0gLSBPcHRpb25hbCBjdXN0b20gbG9nZ2VyIGluc3RhbmNlLlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nLlxuICAgICAqL1xuICAgIHN0YXRpYyBlbmFibGVMb2dnZXIoY3VzdG9tTG9nZ2VyKSB7XG4gICAgICAgIHRoaXMuX2xvZ2dlciA9IGN1c3RvbUxvZ2dlciB8fCBuZXcgTG9nZ2VyKFwiTmVzdEJvb3RzdHJhcFwiKTtcbiAgICAgICAgdGhpcy5hcHAudXNlTG9nZ2VyKHRoaXMuX2xvZ2dlcik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBFbmFibGVzIENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIChDT1JTKSBmb3IgdGhlIGFwcGxpY2F0aW9uLlxuICAgICAqXG4gICAgICogQHN1bW1hcnlcbiAgICAgKiBBbGxvd3MgZGVmaW5pbmcgZWl0aGVyIGEgd2lsZGNhcmQgb3JpZ2luIChgXCIqXCJgKSBvciBhIGxpc3Qgb2YgYWxsb3dlZCBvcmlnaW5zLlxuICAgICAqIEF1dG9tYXRpY2FsbHkgYWNjZXB0cyBsb2NhbCBkZXZlbG9wbWVudCByZXF1ZXN0cyBhbmQgdGhvc2Ugd2l0aG91dCBvcmlnaW4gaGVhZGVycy5cbiAgICAgKiBUaHJvd3MgYSBgQ29yc0Vycm9yYCBmb3IgdW5hdXRob3JpemVkIG9yaWdpbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0geycqJyB8IHN0cmluZ1tdfSBbb3JpZ2lucz1bXV0gLSBMaXN0IG9mIGFsbG93ZWQgb3JpZ2lucyBvciBgXCIqXCJgIHRvIGFsbG93IGFsbC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbYWxsb3dNZXRob2RzPVsnR0VUJywgJ1BPU1QnLCAnUFVUJywgJ0RFTEVURSddXSAtIEFsbG93ZWQgSFRUUCBtZXRob2RzLlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKi9cbiAgICBzdGF0aWMgZW5hYmxlQ29ycyhvcmlnaW5zID0gW10sIGFsbG93TWV0aG9kcyA9IFtcIkdFVFwiLCBcIlBPU1RcIiwgXCJQVVRcIiwgXCJERUxFVEVcIl0pIHtcbiAgICAgICAgY29uc3QgYWxsb3dlZE9yaWdpbnMgPSBvcmlnaW5zID09PSBcIipcIiA/IFwiKlwiIDogb3JpZ2lucy5tYXAoKG8pID0+IG8udHJpbSgpLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICBjb25zdCBjb3JzT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG9yaWdpbjogKG9yaWdpbiwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgICAgICAgICAvLyBBbGxvdyByZXF1ZXN0IHdpdGhvdXQgb3JpZ2luLi4uXG4gICAgICAgICAgICAgICAgaWYgKCFvcmlnaW4pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBpZiAoYWxsb3dlZE9yaWdpbnMgPT09IFwiKlwiIHx8XG4gICAgICAgICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KGFsbG93ZWRPcmlnaW5zKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZE9yaWdpbnMuaW5jbHVkZXMob3JpZ2luLnRvTG93ZXJDYXNlKCkpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBDb3JzRXJyb3IoYE9yaWdpbiAke29yaWdpbn0gbm90IGFsbG93ZWRgKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBtZXRob2RzOiBhbGxvd01ldGhvZHMuam9pbihcIixcIiksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYXBwLmVuYWJsZUNvcnMoY29yc09wdGlvbnMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQXBwbGllcyB0aGUgSGVsbWV0IG1pZGRsZXdhcmUgZm9yIGVuaGFuY2VkIHNlY3VyaXR5LlxuICAgICAqXG4gICAgICogQHN1bW1hcnlcbiAgICAgKiBEeW5hbWljYWxseSBsb2FkcyB0aGUgYGhlbG1ldGAgcGFja2FnZSBpZiBhdmFpbGFibGUgYW5kIHJlZ2lzdGVycyBpdFxuICAgICAqIGFzIG1pZGRsZXdhcmUgdG8gaW1wcm92ZSBIVFRQIGhlYWRlciBzZWN1cml0eS4gSWYgbm90IGluc3RhbGxlZCwgbG9ncyBhIHdhcm5pbmdcbiAgICAgKiBhbmQgY29udGludWVzIGV4ZWN1dGlvbiB3aXRob3V0IHRocm93aW5nIGVycm9ycy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW29wdGlvbnNdIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBwYXNzZWQgdG8gSGVsbWV0LlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIHVzZUhlbG1ldChvcHRpb25zKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgICAgICAgICAgY29uc3QgaGVsbWV0ID0gcmVxdWlyZShcImhlbG1ldFwiKTsgLy8gRHluYW1pYyBpbXBvcnQgdG8gYXZvaWQgaGFyZCBkZXBlbmRlbmN5XG4gICAgICAgICAgICB0aGlzLmFwcC51c2UoaGVsbWV0KG9wdGlvbnMpKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhcIkhlbG1ldCBtaWRkbGV3YXJlIGVuYWJsZWQgc3VjY2Vzc2Z1bGx5LlwiKTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcIkhlbG1ldCBub3QgaW5zdGFsbGVkLiBTa2lwcGluZyBtaWRkbGV3YXJlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQ29uZmlndXJlcyBhbmQgaW5pdGlhbGl6ZXMgU3dhZ2dlciBVSSBmb3IgQVBJIGRvY3VtZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIFVzZXMgdGhlIGBTd2FnZ2VyQnVpbGRlcmAgdXRpbGl0eSB0byBjb25maWd1cmUgQVBJIGRvY3VtZW50YXRpb25cbiAgICAgKiB3aXRoIGRldGFpbGVkIGN1c3RvbWl6YXRpb24gZm9yIHRpdGxlLCB2ZXJzaW9uLCBwYXRocywgYW5kIGNvbG9ycy5cbiAgICAgKiBTd2FnZ2VyIGlzIGF1dG9tYXRpY2FsbHkgZXhwb3NlZCBhdCB0aGUgY29uZmlndXJlZCBwYXRoLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTd2FnZ2VyU2V0dXBPcHRpb25zfSBvcHRpb25zIC0gU3dhZ2dlciBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAgICogQHJldHVybiB7TmVzdEJvb3RzdHJhcGVyfSBSZXR1cm5zIHRoZSBjbGFzcyBmb3IgY2hhaW5pbmcgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzdGF0aWMgc2V0dXBTd2FnZ2VyKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgc3dhZ2dlciA9IG5ldyBTd2FnZ2VyQnVpbGRlcih0aGlzLmFwcCwge1xuICAgICAgICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aCB8fCBcImFwaVwiLFxuICAgICAgICAgICAgcGVyc2lzdEF1dGhvcml6YXRpb246IG9wdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb24gPz8gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2V0c1BhdGg6IG9wdGlvbnMuYXNzZXRzUGF0aCxcbiAgICAgICAgICAgIGZhdmljb25GaWxlUGF0aDogb3B0aW9ucy5mYXZpY29uUGF0aCxcbiAgICAgICAgICAgIHRvcGJhckljb25GaWxlUGF0aDogb3B0aW9ucy50b3BiYXJJY29uUGF0aCxcbiAgICAgICAgICAgIHRvcGJhckJnQ29sb3I6IG9wdGlvbnMudG9wYmFyQmdDb2xvcixcbiAgICAgICAgICAgIG9wZW5BcGlKc29uUGF0aDogb3B0aW9ucy5vcGVuQXBpSnNvblBhdGgsXG4gICAgICAgICAgICBvcGVuQXBpWWFtbFBhdGg6IG9wdGlvbnMub3BlbkFwaVlhbWxQYXRoLFxuICAgICAgICB9KTtcbiAgICAgICAgc3dhZ2dlci5zZXR1cFN3YWdnZXIoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgdmFsaWRhdGlvbiBwaXBlcy5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogRW5hYmxlcyByZXF1ZXN0IHBheWxvYWQgdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb24gZ2xvYmFsbHkgYWNyb3NzXG4gICAgICogdGhlIGVudGlyZSBOZXN0SlMgYXBwbGljYXRpb24uIE11bHRpcGxlIHBpcGVzIGNhbiBiZSBjaGFpbmVkIHRvZ2V0aGVyXG4gICAgICogZm9yIG1vZHVsYXIgaW5wdXQgdmFsaWRhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Li4uUGlwZVRyYW5zZm9ybVtdfSBwaXBlcyAtIFBpcGUgaW5zdGFuY2VzIHRvIHJlZ2lzdGVyIGdsb2JhbGx5LlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nLlxuICAgICAqL1xuICAgIHN0YXRpYyB1c2VHbG9iYWxQaXBlcyguLi5waXBlcykge1xuICAgICAgICBpZiAocGlwZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHRoaXMuYXBwLnVzZUdsb2JhbFBpcGVzKC4uLnBpcGVzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgZXhjZXB0aW9uIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIElmIG5vIGZpbHRlcnMgYXJlIHByb3ZpZGVkLCBpdCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVycyBhIGRlZmF1bHRcbiAgICAgKiBzZXQgb2Ygc3RhbmRhcmQgZXhjZXB0aW9uIGZpbHRlcnMgZm9yIGNvbW1vbiBlcnJvciB0eXBlcyBsaWtlXG4gICAgICogYEh0dHBFeGNlcHRpb25gLCBgVmFsaWRhdGlvbkV4Y2VwdGlvbmAsIGBDb25mbGljdEV4Y2VwdGlvbmAsIGFuZCBvdGhlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gey4uLkV4Y2VwdGlvbkZpbHRlcltdfSBmaWx0ZXJzIC0gT3B0aW9uYWwgZmlsdGVycyB0byBhcHBseSBnbG9iYWxseS5cbiAgICAgKi9cbiAgICBzdGF0aWMgdXNlR2xvYmFsRmlsdGVycyguLi5maWx0ZXJzKSB7XG4gICAgICAgIHRoaXMuYXBwLnVzZUdsb2JhbEZpbHRlcnMoLi4uKGZpbHRlcnMubGVuZ3RoID4gMCA/IGZpbHRlcnMgOiBbbmV3IERlY2FmRXhjZXB0aW9uRmlsdGVyKCldKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBSZWdpc3RlcnMgZ2xvYmFsIGludGVyY2VwdG9ycyBmb3IgcmVxdWVzdCBhbmQgcmVzcG9uc2UgdHJhbnNmb3JtYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIEludGVyY2VwdG9ycyBhbGxvdyBhZHZhbmNlZCByZXF1ZXN0L3Jlc3BvbnNlIG1hbmlwdWxhdGlvbiBzdWNoIGFzXG4gICAgICogc2VyaWFsaXphdGlvbiwgbG9nZ2luZywgb3IgdHJhbnNmb3JtYXRpb24uIE11bHRpcGxlIGludGVyY2VwdG9yc1xuICAgICAqIGNhbiBiZSBhZGRlZCBmb3IgbW9kdWxhciBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHsuLi5OZXN0SW50ZXJjZXB0b3JbXX0gaW50ZXJjZXB0b3JzIC0gSW50ZXJjZXB0b3IgaW5zdGFuY2VzIHRvIHJlZ2lzdGVyLlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIHVzZUdsb2JhbEludGVyY2VwdG9ycyguLi5pbnRlcmNlcHRvcnMpIHtcbiAgICAgICAgaWYgKGludGVyY2VwdG9ycy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgdGhpcy5hcHAudXNlR2xvYmFsSW50ZXJjZXB0b3JzKC4uLmludGVyY2VwdG9ycyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBTdGFydHMgdGhlIE5lc3RKUyBhcHBsaWNhdGlvbiBhbmQgYmluZHMgaXQgdG8gdGhlIGdpdmVuIHBvcnQgYW5kIGhvc3QuXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIExpc3RlbnMgb24gdGhlIHNwZWNpZmllZCBwb3J0IGFuZCBvcHRpb25hbGx5IGEgaG9zdC4gT25jZSBzdGFydGVkLFxuICAgICAqIGxvZ3MgdGhlIGFwcGxpY2F0aW9uIFVSTCBmb3IgZWFzeSBhY2Nlc3MuIFRoZSBzdGFydHVwIHByb2Nlc3MgcmVzb2x2ZXNcbiAgICAgKiBvbmNlIHRoZSBhcHBsaWNhdGlvbiBpcyBzdWNjZXNzZnVsbHkgcnVubmluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9ydD0zMDAwXSAtIFBvcnQgbnVtYmVyIHRvIGxpc3RlbiBvbi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2hvc3RdIC0gT3B0aW9uYWwgaG9zdCBvciBJUCBhZGRyZXNzIHRvIGJpbmQgdG8uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbbG9nPXRydWVdIC0gV2hldGhlciB0byBsb2cgdGhlIGFwcGxpY2F0aW9uIFVSTCB1cG9uIHN0YXJ0dXAuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgb25jZSB0aGUgYXBwbGljYXRpb24gc3RhcnRzIHN1Y2Nlc3NmdWxseS5cbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgc3RhcnQocG9ydCA9IE51bWJlcihwcm9jZXNzLmVudi5QT1JUKSB8fCAzMDAwLCBob3N0ID0gdW5kZWZpbmVkLCBsb2cgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuYXBwLmxpc3Rlbihwb3J0LCBob3N0KS50aGVuKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLmFwcC5nZXRVcmwoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYPCfmoAgQXBwbGljYXRpb24gaXMgcnVubmluZyBhdDogJHt1cmx9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVRtVnpkRUp2YjNSemRISmhjR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJaaFkzUnZjbmt2VG1WemRFSnZiM1J6ZEhKaGNHVnlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGRlRDeE5RVUZOTEVkQlIxQXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU40UWl4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNPRUpCUVhGQ08wRkJRM0JFTEU5QlFVOHNSVUZCUlN4alFVRmpMRVZCUVVVc01rSkJRV3RDTzBGQlJUTkRMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzTUVKQlFXbENPMEZCTkVOeVF6czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSMEVyUTBjN1FVRkRTQ3hOUVVGTkxFOUJRVThzWlVGQlpUdEpRVWt4UWpzN096czdPenM3TzA5QlUwYzdTVUZEU3l4TlFVRk5MRXRCUVVzc1RVRkJUVHRSUVVOMlFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8xbEJRMnhDTEZkQlFWYzdXVUZEV0N4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUXpkRExFTkJRVU03VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNN1NVRkRkRUlzUTBGQlF6dEpRVVZFT3pzN096czdPenM3TzA5QlZVYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRWEZDTzFGQlEzSkRMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlEyWXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenM3TzA5QlYwYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExGbEJRWEZDTzFGQlEzWkRMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzV1VGQldTeEpRVUZKTEVsQlFVa3NUVUZCVFN4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRek5FTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnFReXhQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN096dFBRV0ZITzBsQlEwZ3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkRaaXhWUVVFd1FpeEZRVUZGTEVWQlF6VkNMR1ZCUVhsQ0xFTkJRVU1zUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRE8xRkJSWHBFTEUxQlFVMHNZMEZCWXl4SFFVTnNRaXhQUVVGUExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWEpGTEUxQlFVMHNWMEZCVnl4SFFVRm5RanRaUVVNdlFpeE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVU3WjBKQlF6TkNMR3REUVVGclF6dG5Ra0ZEYkVNc1NVRkJTU3hEUVVGRExFMUJRVTA3YjBKQlFVVXNUMEZCVHl4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVVjZReXhKUVVORkxHTkJRV01zUzBGQlN5eEhRVUZITzI5Q1FVTjBRaXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRPM2RDUVVNMVFpeGpRVUZqTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlEyaEVMRU5CUVVNN2IwSkJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU01UWl4RFFVRkRPMmRDUVVWRUxGRkJRVkVzUTBGQlF5eEpRVUZKTEZOQlFWTXNRMEZCUXl4VlFVRlZMRTFCUVUwc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14UkN4RFFVRkRPMWxCUTBRc1YwRkJWeXhGUVVGRkxFbEJRVWs3V1VGRGFrSXNUMEZCVHl4RlFVRkZMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzFOQlEyaERMRU5CUVVNN1VVRkZSaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOcVF5eFBRVUZQTEVsQlFVa3NRMEZCUXp0SlFVTmtMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3VDBGWFJ6dEpRVU5JTEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJOa0k3VVVGRE5VTXNTVUZCU1N4RFFVRkRPMWxCUTBnc2FVVkJRV2xGTzFsQlEycEZMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMREJEUVVFd1F6dFpRVU0xUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNNVFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXg1UTBGQmVVTXNRMEZCUXl4RFFVRkRPMWxCUXpORUxEWkVRVUUyUkR0UlFVTXZSQ3hEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZOTEVWQlFVVXNRMEZCUXp0WlFVTm9RaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl3MFEwRkJORU1zUTBGQlF5eERRVUZETzFGQlEycEZMRU5CUVVNN1VVRkZSQ3hQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN1QwRlhSenRKUVVOSUxFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCTkVJN1VVRkRPVU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJUdFpRVU16UXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXM3V1VGRGNFSXNWMEZCVnl4RlFVRkZMRTlCUVU4c1EwRkJReXhYUVVGWE8xbEJRMmhETEU5QlFVOHNSVUZCUlN4UFFVRlBMRU5CUVVNc1QwRkJUenRaUVVONFFpeEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWxCUVVrc1NVRkJTU3hMUVVGTE8xbEJRek5DTEc5Q1FVRnZRaXhGUVVGRkxFOUJRVThzUTBGQlF5eHZRa0ZCYjBJc1NVRkJTU3hKUVVGSk8xbEJRekZFTEZWQlFWVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1ZVRkJWVHRaUVVNNVFpeGxRVUZsTEVWQlFVVXNUMEZCVHl4RFFVRkRMRmRCUVZjN1dVRkRjRU1zYTBKQlFXdENMRVZCUVVVc1QwRkJUeXhEUVVGRExHTkJRV003V1VGRE1VTXNZVUZCWVN4RlFVRkZMRTlCUVU4c1EwRkJReXhoUVVGaE8xbEJRM0JETEdWQlFXVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1pVRkJaVHRaUVVONFF5eGxRVUZsTEVWQlFVVXNUMEZCVHl4RFFVRkRMR1ZCUVdVN1UwRkRla01zUTBGQlF5eERRVUZETzFGQlEwZ3NUMEZCVHl4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8xRkJRM1pDTEU5QlFVOHNTVUZCU1N4RFFVRkRPMGxCUTJRc1EwRkJRenRKUVVWRU96czdPenM3T3pzN096dFBRVmRITzBsQlEwZ3NUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVGSExFdEJRWE5DTzFGQlF6ZERMRWxCUVVrc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETzFsQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3p0UFFWVkhPMGxCUTBnc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVVjc1QwRkJZenRSUVVOMlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVU4yUWl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEc5Q1FVRnZRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVU5xUlN4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU03U1VGRFpDeERRVUZETzBsQlJVUTdPenM3T3pzN096czdPMDlCVjBjN1NVRkRTQ3hOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1IwRkJSeXhaUVVFclFqdFJRVU0zUkN4SlFVRkpMRmxCUVZrc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF6dFpRVU42UWl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRGJFUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenM3T3pzN1QwRmhSenRKUVVOSUxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVTm9RaXhQUVVGbExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFbEJRVWtzUlVGREwwTXNUMEZCTWtJc1UwRkJVeXhGUVVOd1F5eE5RVUZsTEVsQlFVazdVVUZGYmtJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVZjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVsQlFVa3NSVUZCUlR0WlFVTnFSQ3hKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTlNMRTFCUVUwc1IwRkJSeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGNFTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zYVVOQlFXbERMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRE1VUXNRMEZCUXp0UlFVTklMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0Y2JpQWdTVTVsYzNSQmNIQnNhV05oZEdsdmJpeGNiaUFnVEc5bloyVnlMRnh1SUNCT1pYTjBTVzUwWlhKalpYQjBiM0lzWEc0Z0lGQnBjR1ZVY21GdWMyWnZjbTBzWEc1OUlHWnliMjBnWENKQWJtVnpkR3B6TDJOdmJXMXZibHdpTzF4dWFXMXdiM0owSUhzZ1JHVmpZV1pGZUdObGNIUnBiMjVHYVd4MFpYSWdmU0JtY205dElGd2lMaTlsZUdObGNIUnBiMjV6WENJN1hHNXBiWEJ2Y25RZ2V5QlRkMkZuWjJWeVFuVnBiR1JsY2lCOUlHWnliMjBnWENJdUwyOXdaVzVoY0dsY0lqdGNibWx0Y0c5eWRDQjdJRU52Y25OUGNIUnBiMjV6SUgwZ1puSnZiU0JjSWtCdVpYTjBhbk12WTI5dGJXOXVMMmx1ZEdWeVptRmpaWE12WlhoMFpYSnVZV3d2WTI5eWN5MXZjSFJwYjI1ekxtbHVkR1Z5Wm1GalpWd2lPMXh1YVcxd2IzSjBJSHNnUTI5eWMwVnljbTl5SUgwZ1puSnZiU0JjSWk0dlpYSnliM0p6WENJN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1WEc0Z0tpQkVaV1pwYm1WeklHRnNiQ0JqZFhOMGIyMXBlbUZpYkdVZ2NHRnlZVzFsZEdWeWN5Qm1iM0lnVTNkaFoyZGxjaUJ6WlhSMWNDNWNiaUFxWEc0Z0tpQkFjM1Z0YldGeWVWeHVJQ29nVkdocGN5QnBiblJsY21aaFkyVWdZV3hzYjNkeklHUmxkbVZzYjNCbGNuTWdkRzhnWTNWemRHOXRhWHBsSUdodmR5QlRkMkZuWjJWeUlGVkpJR2x6SUdOdmJtWnBaM1Z5WldSY2JpQXFJSGRwZEdocGJpQjBhR1VnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1TGlCSmRDQnBibU5zZFdSbGN5QndZWEpoYldWMFpYSnpJR1p2Y2lCMGFYUnNaWE1zSUhCaGRHaHpMRnh1SUNvZ1kyOXNiM0lnYzJOb1pXMWxjeXdnWVc1a0lHRnpjMlYwSUhCaGRHaHpJSFJ2SUhSaGFXeHZjaUIwYUdVZ1FWQkpJR1J2WTNWdFpXNTBZWFJwYjI0Z1pYaHdaWEpwWlc1alpTNWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHbDBiR1VnTFNCVWFYUnNaU0JrYVhOd2JHRjVaV1FnYVc0Z1UzZGhaMmRsY2lCVlNTNWNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JrWlhOamNtbHdkR2x2YmlBdElFUmxjMk55YVhCMGFXOXVJSE5vYjNkdUlHSmxiRzkzSUhSb1pTQjBhWFJzWlM1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjJaWEp6YVc5dUlDMGdRVkJKSUhabGNuTnBiMjRnWkdsemNHeGhlV1ZrSUdsdUlIUm9aU0JrYjJOMWJXVnVkR0YwYVc5dUxseHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR3WVhSb1hTQXRJRTl3ZEdsdmJtRnNJSEJoZEdnZ2QyaGxjbVVnVTNkaFoyZGxjaUIzYVd4c0lHSmxJR0YyWVdsc1lXSnNaUzVjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1czQmxjbk5wYzNSQmRYUm9iM0pwZW1GMGFXOXVYU0F0SUZkb1pYUm9aWElnWVhWMGFHOXlhWHBoZEdsdmJpQjBiMnRsYm5NZ2NHVnljMmx6ZENCaFkzSnZjM01nY21Wc2IyRmtjeTVjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYllYTnpaWFJ6VUdGMGFGMGdMU0JRWVhSb0lIUnZJR04xYzNSdmJTQmhjM05sZEhNZ1ptOXlJRk4zWVdkblpYSWdWVWt1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1czUnZjR0poY2tKblEyOXNiM0pkSUMwZ1EzVnpkRzl0SUdKaFkydG5jbTkxYm1RZ1kyOXNiM0lnWm05eUlIUm9aU0JUZDJGbloyVnlJSFJ2Y0NCaVlYSXVYRzRnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzNSdmNHSmhja2xqYjI1UVlYUm9YU0F0SUZCaGRHZ2dkRzhnWVNCamRYTjBiMjBnYVdOdmJpQmthWE53YkdGNVpXUWdhVzRnZEdobElIUnZjQ0JpWVhJdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMlpoZG1samIyNVFZWFJvWFNBdElGQmhkR2dnZEc4Z1lTQmpkWE4wYjIwZ1ptRjJhV052Ymk1Y2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JUZDJGbloyVnlVMlYwZFhCUGNIUnBiMjV6SUh0Y2JpQWdkR2wwYkdVNklITjBjbWx1Wnp0Y2JpQWdaR1Z6WTNKcGNIUnBiMjQ2SUhOMGNtbHVaenRjYmlBZ2RtVnljMmx2YmpvZ2MzUnlhVzVuTzF4dUlDQndZWFJvUHpvZ2MzUnlhVzVuTzF4dUlDQndaWEp6YVhOMFFYVjBhRzl5YVhwaGRHbHZiajg2SUdKdmIyeGxZVzQ3WEc0Z0lHRnpjMlYwYzFCaGRHZy9PaUJ6ZEhKcGJtYzdYRzRnSUhSdmNHSmhja0puUTI5c2IzSS9PaUJ6ZEhKcGJtYzdYRzRnSUhSdmNHSmhja2xqYjI1UVlYUm9Qem9nYzNSeWFXNW5PMXh1SUNCbVlYWnBZMjl1VUdGMGFEODZJSE4wY21sdVp6dGNiaUFnTHlvcVhHNGdJQ0FxSUZCaGRHZ2dkRzhnWlhod2IzTmxJSFJvWlNCUGNHVnVRVkJKSUhOd1pXTnBabWxqWVhScGIyNGdhVzRnU2xOUFRpQm1iM0p0WVhRdVhHNGdJQ0FxSUVWNFlXMXdiR1U2SUM5aGNHa3ZiM0JsYm1Gd2FTNXFjMjl1WEc0Z0lDQXFMMXh1SUNCdmNHVnVRWEJwU25OdmJsQmhkR2cvT2lCemRISnBibWM3WEc0Z0lDOHFLbHh1SUNBZ0tpQlFZWFJvSUhSdklHVjRjRzl6WlNCMGFHVWdUM0JsYmtGUVNTQnpjR1ZqYVdacFkyRjBhVzl1SUdsdUlGbEJUVXdnWm05eWJXRjBMbHh1SUNBZ0tpQlNaWEYxYVhKbGN5QW5lV0Z0YkNjZ2NHRmphMkZuWlNCaGN5QndaV1Z5SUdSbGNHVnVaR1Z1WTNrdVhHNGdJQ0FxSUVWNFlXMXdiR1U2SUM5aGNHa3ZiM0JsYm1Gd2FTNTVZVzFzWEc0Z0lDQXFMMXh1SUNCdmNHVnVRWEJwV1dGdGJGQmhkR2cvT2lCemRISnBibWM3WEc1OVhHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1WEc0Z0tpQkJJR1pzZFdWdWRDd2djM1JoZEdsaklHSnZiM1J6ZEhKaGNDQmpiR0Z6Y3lCbWIzSWdhVzVwZEdsaGJHbDZhVzVuSUdGdVpDQmpiMjVtYVdkMWNtbHVaeUJoSUU1bGMzUktVeUJoY0hCc2FXTmhkR2x2Ymk1Y2JpQXFYRzRnS2lCQWMzVnRiV0Z5ZVZ4dUlDb2dWR2hsSUdCT1pYTjBRbTl2ZEhOMGNtRndaWEpnSUdOc1lYTnpJSEJ5YjNacFpHVnpJR0VnWTJoaGFXNWhZbXhsSUVGUVNTQm1iM0lnWTI5dVptbG5kWEpwYm1kY2JpQXFJR0VnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1SUdsdWMzUmhibU5sTGlCSmRDQnBibU5zZFdSbGN5QmlkV2xzZEMxcGJpQnRaWFJvYjJSeklHWnZjaUJsYm1GaWJHbHVaMXh1SUNvZ1EwOVNVeXdnU0dWc2JXVjBJSE5sWTNWeWFYUjVMQ0JUZDJGbloyVnlJR1J2WTNWdFpXNTBZWFJwYjI0c0lHZHNiMkpoYkNCd2FYQmxjeXdnWm1sc2RHVnljeXhjYmlBcUlHbHVkR1Z5WTJWd2RHOXljeXdnWVc1a0lITjBZWEowYVc1bklIUm9aU0J6WlhKMlpYSXVYRzRnS2x4dUlDb2dWR2hwY3lCamJHRnpjeUJ3Y205dGIzUmxjeUJqYjI1emFYTjBaVzVqZVNCaGJtUWdjbVZrZFdObGN5QnlaWEJsZEdsMGFYWmxJSE5sZEhWd0lHTnZaR1ZjYmlBcUlHRmpjbTl6Y3lCdGRXeDBhWEJzWlNCT1pYTjBTbE1nY0hKdmFtVmpkSE11WEc0Z0tseHVJQ29nUUdWNFlXMXdiR1ZjYmlBcUlHQmdZSFJ6WEc0Z0tpQnBiWEJ2Y25RZ2V5Qk9aWE4wUm1GamRHOXllU0I5SUdaeWIyMGdYQ0pBYm1WemRHcHpMMk52Y21WY0lqdGNiaUFxSUdsdGNHOXlkQ0I3SUVGd2NFMXZaSFZzWlNCOUlHWnliMjBnWENJdUwyRndjQzV0YjJSMWJHVmNJanRjYmlBcUlHbHRjRzl5ZENCN0lFMTVURzluWjJWeUlIMGdabkp2YlNCY0lpNHZUWGxNYjJkblpYSmNJanRjYmlBcUlHbHRjRzl5ZENCN0lFNWxjM1JDYjI5MGMzUnlZWEJsY2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlptOXlMVzVsYzNSY0lqdGNiaUFxWEc0Z0tpQmhjM2x1WXlCbWRXNWpkR2x2YmlCaWIyOTBjM1J5WVhBb0tTQjdYRzRnS2lBZ0lHTnZibk4wSUdGd2NDQTlJR0YzWVdsMElFNWxjM1JHWVdOMGIzSjVMbU55WldGMFpTaEJjSEJOYjJSMWJHVXBPMXh1SUNwY2JpQXFJQ0FnWVhkaGFYUWdUbVZ6ZEVKdmIzUnpkSEpoY0dWeVhHNGdLaUFnSUNBZ0xtbHVhWFJwWVd4cGVtVW9ZWEJ3S1Z4dUlDb2dJQ0FnSUM1bGJtRmliR1ZNYjJkblpYSW9ibVYzSUUxNVRHOW5aMlZ5S0NrcFhHNGdLaUFnSUNBZ0xtVnVZV0pzWlVOdmNuTW9XMXdpYUhSMGNEb3ZMMnh2WTJGc2FHOXpkRG8wTWpBd1hDSmRLVnh1SUNvZ0lDQWdJQzUxYzJWSVpXeHRaWFFvS1Z4dUlDb2dJQ0FnSUM1elpYUjFjRk4zWVdkblpYSW9lMXh1SUNvZ0lDQWdJQ0FnZEdsMGJHVTZJRndpVDNCbGJrRlFTU0JpZVNCVWNtRmtaVTFoY212aWhLSmNJaXhjYmlBcUlDQWdJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQmNJbFJ5WVdSbFRXRnlhK0tFb2lCQlVFa2daRzlqZFcxbGJuUmhkR2x2Ymx3aUxGeHVJQ29nSUNBZ0lDQWdkbVZ5YzJsdmJqb2dYQ0l4TGpBdU1Gd2lMRnh1SUNvZ0lDQWdJQ0FnY0dGMGFEb2dYQ0poY0dsY0lpeGNiaUFxSUNBZ0lDQWdJSEJsY25OcGMzUkJkWFJvYjNKcGVtRjBhVzl1T2lCMGNuVmxMRnh1SUNvZ0lDQWdJQ0FnZEc5d1ltRnlRbWREYjJ4dmNqb2dYQ0lqTWtNelJUVXdYQ0lzWEc0Z0tpQWdJQ0FnSUNCMGIzQmlZWEpKWTI5dVVHRjBhRG9nWENJdllYTnpaWFJ6TDJ4dloyOHVjM1puWENJc1hHNGdLaUFnSUNBZ0lDQm1ZWFpwWTI5dVVHRjBhRG9nWENJdllYTnpaWFJ6TDJaaGRtbGpiMjR1YVdOdlhDSmNiaUFxSUNBZ0lDQjlLVnh1SUNvZ0lDQWdJQzUxYzJWSGJHOWlZV3hHYVd4MFpYSnpLQ2xjYmlBcUlDQWdJQ0F1ZFhObFIyeHZZbUZzVUdsd1pYTW9MaTR1S1Z4dUlDb2dJQ0FnSUM1MWMyVkhiRzlpWVd4SmJuUmxjbU5sY0hSdmNuTW9MaTR1S1Z4dUlDb2dJQ0FnSUM1emRHRnlkQ2d6TURBd0tUdGNiaUFxSUgxY2JpQXFYRzRnS2lCaWIyOTBjM1J5WVhBb0tUdGNiaUFxSUdCZ1lGeHVJQ29nUUdOc1lYTnpYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJPWlhOMFFtOXZkSE4wY21Gd1pYSWdlMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJoY0hBNklFbE9aWE4wUVhCd2JHbGpZWFJwYjI0N1hHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklGOXNiMmRuWlhJNklFeHZaMmRsY2p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdJQ0FxSUZKbGRIVnlibk1nZEdobElHTjFjbkpsYm5RZ2JHOW5aMlZ5SUdsdWMzUmhibU5sTENCamNtVmhkR2x1WnlCaElHUmxabUYxYkhRZ2IyNWxJR2xtSUc1dmRDQnpaWFF1WEc0Z0lDQXFYRzRnSUNBcUlFQnpkVzF0WVhKNVhHNGdJQ0FxSUVWdWMzVnlaWE1nZEdoaGRDQmhJSFpoYkdsa0lHQk1iMmRuWlhKZ0lHbHVjM1JoYm1ObElHbHpJR0ZzZDJGNWN5QmhkbUZwYkdGaWJHVmNiaUFnSUNvZ1ptOXlJR3h2WjJkcGJtY2dZbTl2ZEhOMGNtRndMWEpsYkdGMFpXUWdiV1Z6YzJGblpYTXVYRzRnSUNBcVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTB4dloyZGxjbjBnVkdobElHRmpkR2wyWlNCc2IyZG5aWElnYVc1emRHRnVZMlV1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJuWlhRZ2JHOW5aMlZ5S0NrNklFeHZaMmRsY2lCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TGw5c2IyZG5aWElwSUh0Y2JpQWdJQ0FnSUM4dklHWmhiR3hpWVdOclhHNGdJQ0FnSUNCMGFHbHpMbDlzYjJkblpYSWdQU0J1WlhjZ1RHOW5aMlZ5S0Z3aVRtVnpkRUp2YjNSemRISmhjRndpS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDJ4dloyZGxjanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNWNiaUFnSUNvZ1NXNXBkR2xoYkdsNlpYTWdkR2hsSUdKdmIzUnpkSEpoY0hCbGNpQjNhWFJvSUdFZ1oybDJaVzRnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1TGx4dUlDQWdLbHh1SUNBZ0tpQkFjM1Z0YldGeWVWeHVJQ0FnS2lCQ2FXNWtjeUIwYUdVZ2NISnZkbWxrWldRZ1RtVnpkRXBUSUdGd2NDQnBibk4wWVc1alpTQjBieUIwYUdVZ1ltOXZkSE4wY21Gd2NHVnlMQ0JsYm1GaWJHbHVaMXh1SUNBZ0tpQmphR0ZwYm1Wa0lHTnZibVpwWjNWeVlYUnBiMjRnYldWMGFHOWtjeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0SlRtVnpkRUZ3Y0d4cFkyRjBhVzl1ZlNCaGNIQWdMU0JVYUdVZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUlHbHVjM1JoYm1ObElIUnZJR2x1YVhScFlXeHBlbVV1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMDVsYzNSQ2IyOTBjM1J5WVhCbGNuMGdVbVYwZFhKdWN5QjBhR1VnWTJ4aGMzTWdabTl5SUdOb1lXbHVhVzVuSUdOdmJtWnBaM1Z5WVhScGIyNGdiV1YwYUc5a2N5NWNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QnBibWwwYVdGc2FYcGxLR0Z3Y0RvZ1NVNWxjM1JCY0hCc2FXTmhkR2x2YmlrZ2UxeHVJQ0FnSUhSb2FYTXVZWEJ3SUQwZ1lYQndPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJseHVJQ0FnS2lCRmJtRmliR1Z6SUc5eUlISmxjR3hoWTJWeklIUm9aU0JuYkc5aVlXd2diRzluWjJWeUlHWnZjaUIwYUdVZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBYzNWdGJXRnllVnh1SUNBZ0tpQkpaaUJoSUdOMWMzUnZiU0JzYjJkblpYSWdhWE1nY0hKdmRtbGtaV1FzSUdsMElISmxjR3hoWTJWeklIUm9aU0JrWldaaGRXeDBJR3h2WjJkbGNpNGdUM1JvWlhKM2FYTmxMRnh1SUNBZ0tpQmhJRzVsZHlCc2IyZG5aWElnYm1GdFpXUWdZRndpVG1WemRFSnZiM1J6ZEhKaGNGd2lZQ0JwY3lCMWMyVmtMaUJVYUdseklHeHZaMmRsY2lCcGN5QmhiSE52SUhKbFoybHpkR1Z5WldSY2JpQWdJQ29nZDJsMGFDQjBhR1VnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UweHZaMmRsY24wZ1cyTjFjM1J2YlV4dloyZGxjbDBnTFNCUGNIUnBiMjVoYkNCamRYTjBiMjBnYkc5bloyVnlJR2x1YzNSaGJtTmxMbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdE9aWE4wUW05dmRITjBjbUZ3WlhKOUlGSmxkSFZ5Ym5NZ2RHaGxJR05zWVhOeklHWnZjaUJqYUdGcGJtbHVaeTVjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJsYm1GaWJHVk1iMmRuWlhJb1kzVnpkRzl0VEc5bloyVnlQem9nVEc5bloyVnlLU0I3WEc0Z0lDQWdkR2hwY3k1ZmJHOW5aMlZ5SUQwZ1kzVnpkRzl0VEc5bloyVnlJSHg4SUc1bGR5Qk1iMmRuWlhJb1hDSk9aWE4wUW05dmRITjBjbUZ3WENJcE8xeHVJQ0FnSUhSb2FYTXVZWEJ3TG5WelpVeHZaMmRsY2loMGFHbHpMbDlzYjJkblpYSXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJseHVJQ0FnS2lCRmJtRmliR1Z6SUVOeWIzTnpMVTl5YVdkcGJpQlNaWE52ZFhKalpTQlRhR0Z5YVc1bklDaERUMUpUS1NCbWIzSWdkR2hsSUdGd2NHeHBZMkYwYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBYzNWdGJXRnllVnh1SUNBZ0tpQkJiR3h2ZDNNZ1pHVm1hVzVwYm1jZ1pXbDBhR1Z5SUdFZ2QybHNaR05oY21RZ2IzSnBaMmx1SUNoZ1hDSXFYQ0pnS1NCdmNpQmhJR3hwYzNRZ2IyWWdZV3hzYjNkbFpDQnZjbWxuYVc1ekxseHVJQ0FnS2lCQmRYUnZiV0YwYVdOaGJHeDVJR0ZqWTJWd2RITWdiRzlqWVd3Z1pHVjJaV3h2Y0cxbGJuUWdjbVZ4ZFdWemRITWdZVzVrSUhSb2IzTmxJSGRwZEdodmRYUWdiM0pwWjJsdUlHaGxZV1JsY25NdVhHNGdJQ0FxSUZSb2NtOTNjeUJoSUdCRGIzSnpSWEp5YjNKZ0lHWnZjaUIxYm1GMWRHaHZjbWw2WldRZ2IzSnBaMmx1Y3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIc25LaWNnZkNCemRISnBibWRiWFgwZ1cyOXlhV2RwYm5NOVcxMWRJQzBnVEdsemRDQnZaaUJoYkd4dmQyVmtJRzl5YVdkcGJuTWdiM0lnWUZ3aUtsd2lZQ0IwYnlCaGJHeHZkeUJoYkd3dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5XMTE5SUZ0aGJHeHZkMDFsZEdodlpITTlXeWRIUlZRbkxDQW5VRTlUVkNjc0lDZFFWVlFuTENBblJFVk1SVlJGSjExZElDMGdRV3hzYjNkbFpDQklWRlJRSUcxbGRHaHZaSE11WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMDVsYzNSQ2IyOTBjM1J5WVhCbGNuMGdVbVYwZFhKdWN5QjBhR1VnWTJ4aGMzTWdabTl5SUdOb1lXbHVhVzVuSUdOdmJtWnBaM1Z5WVhScGIyNHVYRzRnSUNBcVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1pXNWhZbXhsUTI5eWN5aGNiaUFnSUNCdmNtbG5hVzV6T2lCY0lpcGNJaUI4SUhOMGNtbHVaMXRkSUQwZ1cxMHNYRzRnSUNBZ1lXeHNiM2ROWlhSb2IyUnpPaUJ6ZEhKcGJtZGJYU0E5SUZ0Y0lrZEZWRndpTENCY0lsQlBVMVJjSWl3Z1hDSlFWVlJjSWl3Z1hDSkVSVXhGVkVWY0lsMWNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdZV3hzYjNkbFpFOXlhV2RwYm5NZ1BWeHVJQ0FnSUNBZ2IzSnBaMmx1Y3lBOVBUMGdYQ0lxWENJZ1B5QmNJaXBjSWlBNklHOXlhV2RwYm5NdWJXRndLQ2h2S1NBOVBpQnZMblJ5YVcwb0tTNTBiMHh2ZDJWeVEyRnpaU2dwS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR052Y25OUGNIUnBiMjV6T2lCRGIzSnpUM0IwYVc5dWN5QTlJSHRjYmlBZ0lDQWdJRzl5YVdkcGJqb2dLRzl5YVdkcGJpd2dZMkZzYkdKaFkyc3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdRV3hzYjNjZ2NtVnhkV1Z6ZENCM2FYUm9iM1YwSUc5eWFXZHBiaTR1TGx4dUlDQWdJQ0FnSUNCcFppQW9JVzl5YVdkcGJpa2djbVYwZFhKdUlHTmhiR3hpWVdOcktHNTFiR3dzSUhSeWRXVXBPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJQ0JoYkd4dmQyVmtUM0pwWjJsdWN5QTlQVDBnWENJcVhDSWdmSHhjYmlBZ0lDQWdJQ0FnSUNBb1FYSnlZWGt1YVhOQmNuSmhlU2hoYkd4dmQyVmtUM0pwWjJsdWN5a2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnNiRzkzWldSUGNtbG5hVzV6TG1sdVkyeDFaR1Z6S0c5eWFXZHBiaTUwYjB4dmQyVnlRMkZ6WlNncEtTbGNiaUFnSUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOaGJHeGlZV05yS0c1MWJHd3NJSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnWTJGc2JHSmhZMnNvYm1WM0lFTnZjbk5GY25KdmNpaGdUM0pwWjJsdUlDUjdiM0pwWjJsdWZTQnViM1FnWVd4c2IzZGxaR0FwS1R0Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCamNtVmtaVzUwYVdGc2N6b2dkSEoxWlN4Y2JpQWdJQ0FnSUcxbGRHaHZaSE02SUdGc2JHOTNUV1YwYUc5a2N5NXFiMmx1S0Z3aUxGd2lLU3hjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdkR2hwY3k1aGNIQXVaVzVoWW14bFEyOXljeWhqYjNKelQzQjBhVzl1Y3lrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1WEc0Z0lDQXFJRUZ3Y0d4cFpYTWdkR2hsSUVobGJHMWxkQ0J0YVdSa2JHVjNZWEpsSUdadmNpQmxibWhoYm1ObFpDQnpaV04xY21sMGVTNWNiaUFnSUNwY2JpQWdJQ29nUUhOMWJXMWhjbmxjYmlBZ0lDb2dSSGx1WVcxcFkyRnNiSGtnYkc5aFpITWdkR2hsSUdCb1pXeHRaWFJnSUhCaFkydGhaMlVnYVdZZ1lYWmhhV3hoWW14bElHRnVaQ0J5WldkcGMzUmxjbk1nYVhSY2JpQWdJQ29nWVhNZ2JXbGtaR3hsZDJGeVpTQjBieUJwYlhCeWIzWmxJRWhVVkZBZ2FHVmhaR1Z5SUhObFkzVnlhWFI1TGlCSlppQnViM1FnYVc1emRHRnNiR1ZrTENCc2IyZHpJR0VnZDJGeWJtbHVaMXh1SUNBZ0tpQmhibVFnWTI5dWRHbHVkV1Z6SUdWNFpXTjFkR2x2YmlCM2FYUm9iM1YwSUhSb2NtOTNhVzVuSUdWeWNtOXljeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK2ZTQmJiM0IwYVc5dWMxMGdMU0JQY0hScGIyNWhiQ0JqYjI1bWFXZDFjbUYwYVc5dUlIQmhjM05sWkNCMGJ5QklaV3h0WlhRdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTA1bGMzUkNiMjkwYzNSeVlYQmxjbjBnVW1WMGRYSnVjeUIwYUdVZ1kyeGhjM01nWm05eUlHTm9ZV2x1YVc1bklHTnZibVpwWjNWeVlYUnBiMjR1WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nZFhObFNHVnNiV1YwS0c5d2RHbHZibk0vT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0tTQjdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym04dGNtVnhkV2x5WlMxcGJYQnZjblJ6WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h0WlhRZ1BTQnlaWEYxYVhKbEtGd2lhR1ZzYldWMFhDSXBPeUF2THlCRWVXNWhiV2xqSUdsdGNHOXlkQ0IwYnlCaGRtOXBaQ0JvWVhKa0lHUmxjR1Z1WkdWdVkzbGNiaUFnSUNBZ0lIUm9hWE11WVhCd0xuVnpaU2hvWld4dFpYUW9iM0IwYVc5dWN5a3BPMXh1SUNBZ0lDQWdkR2hwY3k1c2IyZG5aWEl1Ykc5bktGd2lTR1ZzYldWMElHMXBaR1JzWlhkaGNtVWdaVzVoWW14bFpDQnpkV05qWlhOelpuVnNiSGt1WENJcE8xeHVJQ0FnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUdGdWVTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1c2IyZG5aWEl1ZDJGeWJpaGNJa2hsYkcxbGRDQnViM1FnYVc1emRHRnNiR1ZrTGlCVGEybHdjR2x1WnlCdGFXUmtiR1YzWVhKbExsd2lLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNWNiaUFnSUNvZ1EyOXVabWxuZFhKbGN5QmhibVFnYVc1cGRHbGhiR2w2WlhNZ1UzZGhaMmRsY2lCVlNTQm1iM0lnUVZCSklHUnZZM1Z0Wlc1MFlYUnBiMjR1WEc0Z0lDQXFYRzRnSUNBcUlFQnpkVzF0WVhKNVhHNGdJQ0FxSUZWelpYTWdkR2hsSUdCVGQyRm5aMlZ5UW5WcGJHUmxjbUFnZFhScGJHbDBlU0IwYnlCamIyNW1hV2QxY21VZ1FWQkpJR1J2WTNWdFpXNTBZWFJwYjI1Y2JpQWdJQ29nZDJsMGFDQmtaWFJoYVd4bFpDQmpkWE4wYjIxcGVtRjBhVzl1SUdadmNpQjBhWFJzWlN3Z2RtVnljMmx2Yml3Z2NHRjBhSE1zSUdGdVpDQmpiMnh2Y25NdVhHNGdJQ0FxSUZOM1lXZG5aWElnYVhNZ1lYVjBiMjFoZEdsallXeHNlU0JsZUhCdmMyVmtJR0YwSUhSb1pTQmpiMjVtYVdkMWNtVmtJSEJoZEdndVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdVM2RoWjJkbGNsTmxkSFZ3VDNCMGFXOXVjMzBnYjNCMGFXOXVjeUF0SUZOM1lXZG5aWElnWTI5dVptbG5kWEpoZEdsdmJpQnZjSFJwYjI1ekxseHVJQ0FnS2lCQWNtVjBkWEp1SUh0T1pYTjBRbTl2ZEhOMGNtRndaWEo5SUZKbGRIVnlibk1nZEdobElHTnNZWE56SUdadmNpQmphR0ZwYm1sdVp5QmpiMjVtYVdkMWNtRjBhVzl1TGx4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUhObGRIVndVM2RoWjJkbGNpaHZjSFJwYjI1ek9pQlRkMkZuWjJWeVUyVjBkWEJQY0hScGIyNXpLU0I3WEc0Z0lDQWdZMjl1YzNRZ2MzZGhaMmRsY2lBOUlHNWxkeUJUZDJGbloyVnlRblZwYkdSbGNpaDBhR2x6TG1Gd2NDd2dlMXh1SUNBZ0lDQWdkR2wwYkdVNklHOXdkR2x2Ym5NdWRHbDBiR1VzWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ2IzQjBhVzl1Y3k1a1pYTmpjbWx3ZEdsdmJpeGNiaUFnSUNBZ0lIWmxjbk5wYjI0NklHOXdkR2x2Ym5NdWRtVnljMmx2Yml4Y2JpQWdJQ0FnSUhCaGRHZzZJRzl3ZEdsdmJuTXVjR0YwYUNCOGZDQmNJbUZ3YVZ3aUxGeHVJQ0FnSUNBZ2NHVnljMmx6ZEVGMWRHaHZjbWw2WVhScGIyNDZJRzl3ZEdsdmJuTXVjR1Z5YzJsemRFRjFkR2h2Y21sNllYUnBiMjRnUHo4Z2RISjFaU3hjYmlBZ0lDQWdJR0Z6YzJWMGMxQmhkR2c2SUc5d2RHbHZibk11WVhOelpYUnpVR0YwYUN4Y2JpQWdJQ0FnSUdaaGRtbGpiMjVHYVd4bFVHRjBhRG9nYjNCMGFXOXVjeTVtWVhacFkyOXVVR0YwYUN4Y2JpQWdJQ0FnSUhSdmNHSmhja2xqYjI1R2FXeGxVR0YwYURvZ2IzQjBhVzl1Y3k1MGIzQmlZWEpKWTI5dVVHRjBhQ3hjYmlBZ0lDQWdJSFJ2Y0dKaGNrSm5RMjlzYjNJNklHOXdkR2x2Ym5NdWRHOXdZbUZ5UW1kRGIyeHZjaXhjYmlBZ0lDQWdJRzl3Wlc1QmNHbEtjMjl1VUdGMGFEb2diM0IwYVc5dWN5NXZjR1Z1UVhCcFNuTnZibEJoZEdnc1hHNGdJQ0FnSUNCdmNHVnVRWEJwV1dGdGJGQmhkR2c2SUc5d2RHbHZibk11YjNCbGJrRndhVmxoYld4UVlYUm9MRnh1SUNBZ0lIMHBPMXh1SUNBZ0lITjNZV2RuWlhJdWMyVjBkWEJUZDJGbloyVnlLQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVYRzRnSUNBcUlGSmxaMmx6ZEdWeWN5QnZibVVnYjNJZ2JXOXlaU0JuYkc5aVlXd2dkbUZzYVdSaGRHbHZiaUJ3YVhCbGN5NWNiaUFnSUNwY2JpQWdJQ29nUUhOMWJXMWhjbmxjYmlBZ0lDb2dSVzVoWW14bGN5QnlaWEYxWlhOMElIQmhlV3h2WVdRZ2RtRnNhV1JoZEdsdmJpQmhibVFnZEhKaGJuTm1iM0p0WVhScGIyNGdaMnh2WW1Gc2JIa2dZV055YjNOelhHNGdJQ0FxSUhSb1pTQmxiblJwY21VZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUxpQk5kV3gwYVhCc1pTQndhWEJsY3lCallXNGdZbVVnWTJoaGFXNWxaQ0IwYjJkbGRHaGxjbHh1SUNBZ0tpQm1iM0lnYlc5a2RXeGhjaUJwYm5CMWRDQjJZV3hwWkdGMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZXk0dUxsQnBjR1ZVY21GdWMyWnZjbTFiWFgwZ2NHbHdaWE1nTFNCUWFYQmxJR2x1YzNSaGJtTmxjeUIwYnlCeVpXZHBjM1JsY2lCbmJHOWlZV3hzZVM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3VG1WemRFSnZiM1J6ZEhKaGNHVnlmU0JTWlhSMWNtNXpJSFJvWlNCamJHRnpjeUJtYjNJZ1kyaGhhVzVwYm1jdVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2RYTmxSMnh2WW1Gc1VHbHdaWE1vTGk0dWNHbHdaWE02SUZCcGNHVlVjbUZ1YzJadmNtMWJYU2tnZTF4dUlDQWdJR2xtSUNod2FYQmxjeTVzWlc1bmRHZ2dQaUF3S1NCMGFHbHpMbUZ3Y0M1MWMyVkhiRzlpWVd4UWFYQmxjeWd1TGk1d2FYQmxjeWs3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVYRzRnSUNBcUlGSmxaMmx6ZEdWeWN5QnZibVVnYjNJZ2JXOXlaU0JuYkc5aVlXd2daWGhqWlhCMGFXOXVJR1pwYkhSbGNuTXVYRzRnSUNBcVhHNGdJQ0FxSUVCemRXMXRZWEo1WEc0Z0lDQXFJRWxtSUc1dklHWnBiSFJsY25NZ1lYSmxJSEJ5YjNacFpHVmtMQ0JwZENCaGRYUnZiV0YwYVdOaGJHeDVJSEpsWjJsemRHVnljeUJoSUdSbFptRjFiSFJjYmlBZ0lDb2djMlYwSUc5bUlITjBZVzVrWVhKa0lHVjRZMlZ3ZEdsdmJpQm1hV3gwWlhKeklHWnZjaUJqYjIxdGIyNGdaWEp5YjNJZ2RIbHdaWE1nYkdsclpWeHVJQ0FnS2lCZ1NIUjBjRVY0WTJWd2RHbHZibUFzSUdCV1lXeHBaR0YwYVc5dVJYaGpaWEIwYVc5dVlDd2dZRU52Ym1ac2FXTjBSWGhqWlhCMGFXOXVZQ3dnWVc1a0lHOTBhR1Z5Y3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVGZUdObGNIUnBiMjVHYVd4MFpYSmJYWDBnWm1sc2RHVnljeUF0SUU5d2RHbHZibUZzSUdacGJIUmxjbk1nZEc4Z1lYQndiSGtnWjJ4dlltRnNiSGt1WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nZFhObFIyeHZZbUZzUm1sc2RHVnljeWd1TGk1bWFXeDBaWEp6T2lCaGJubGJYU2tnZTF4dUlDQWdJSFJvYVhNdVlYQndMblZ6WlVkc2IySmhiRVpwYkhSbGNuTW9YRzRnSUNBZ0lDQXVMaTRvWm1sc2RHVnljeTVzWlc1bmRHZ2dQaUF3SUQ4Z1ptbHNkR1Z5Y3lBNklGdHVaWGNnUkdWallXWkZlR05sY0hScGIyNUdhV3gwWlhJb0tWMHBYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI1Y2JpQWdJQ29nVW1WbmFYTjBaWEp6SUdkc2IySmhiQ0JwYm5SbGNtTmxjSFJ2Y25NZ1ptOXlJSEpsY1hWbGMzUWdZVzVrSUhKbGMzQnZibk5sSUhSeVlXNXpabTl5YldGMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWMzVnRiV0Z5ZVZ4dUlDQWdLaUJKYm5SbGNtTmxjSFJ2Y25NZ1lXeHNiM2NnWVdSMllXNWpaV1FnY21WeGRXVnpkQzl5WlhOd2IyNXpaU0J0WVc1cGNIVnNZWFJwYjI0Z2MzVmphQ0JoYzF4dUlDQWdLaUJ6WlhKcFlXeHBlbUYwYVc5dUxDQnNiMmRuYVc1bkxDQnZjaUIwY21GdWMyWnZjbTFoZEdsdmJpNGdUWFZzZEdsd2JHVWdhVzUwWlhKalpYQjBiM0p6WEc0Z0lDQXFJR05oYmlCaVpTQmhaR1JsWkNCbWIzSWdiVzlrZFd4aGNpQmpiMjVtYVdkMWNtRjBhVzl1TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMazVsYzNSSmJuUmxjbU5sY0hSdmNsdGRmU0JwYm5SbGNtTmxjSFJ2Y25NZ0xTQkpiblJsY21ObGNIUnZjaUJwYm5OMFlXNWpaWE1nZEc4Z2NtVm5hWE4wWlhJdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTA1bGMzUkNiMjkwYzNSeVlYQmxjbjBnVW1WMGRYSnVjeUIwYUdVZ1kyeGhjM01nWm05eUlHTm9ZV2x1YVc1bklHTnZibVpwWjNWeVlYUnBiMjR1WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nZFhObFIyeHZZbUZzU1c1MFpYSmpaWEIwYjNKektDNHVMbWx1ZEdWeVkyVndkRzl5Y3pvZ1RtVnpkRWx1ZEdWeVkyVndkRzl5VzEwcElIdGNiaUFnSUNCcFppQW9hVzUwWlhKalpYQjBiM0p6TG14bGJtZDBhQ0ErSURBcFhHNGdJQ0FnSUNCMGFHbHpMbUZ3Y0M1MWMyVkhiRzlpWVd4SmJuUmxjbU5sY0hSdmNuTW9MaTR1YVc1MFpYSmpaWEIwYjNKektUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI1Y2JpQWdJQ29nVTNSaGNuUnpJSFJvWlNCT1pYTjBTbE1nWVhCd2JHbGpZWFJwYjI0Z1lXNWtJR0pwYm1SeklHbDBJSFJ2SUhSb1pTQm5hWFpsYmlCd2IzSjBJR0Z1WkNCb2IzTjBMbHh1SUNBZ0tseHVJQ0FnS2lCQWMzVnRiV0Z5ZVZ4dUlDQWdLaUJNYVhOMFpXNXpJRzl1SUhSb1pTQnpjR1ZqYVdacFpXUWdjRzl5ZENCaGJtUWdiM0IwYVc5dVlXeHNlU0JoSUdodmMzUXVJRTl1WTJVZ2MzUmhjblJsWkN4Y2JpQWdJQ29nYkc5bmN5QjBhR1VnWVhCd2JHbGpZWFJwYjI0Z1ZWSk1JR1p2Y2lCbFlYTjVJR0ZqWTJWemN5NGdWR2hsSUhOMFlYSjBkWEFnY0hKdlkyVnpjeUJ5WlhOdmJIWmxjMXh1SUNBZ0tpQnZibU5sSUhSb1pTQmhjSEJzYVdOaGRHbHZiaUJwY3lCemRXTmpaWE56Wm5Wc2JIa2djblZ1Ym1sdVp5NWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR3YjNKMFBUTXdNREJkSUMwZ1VHOXlkQ0J1ZFcxaVpYSWdkRzhnYkdsemRHVnVJRzl1TGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMmh2YzNSZElDMGdUM0IwYVc5dVlXd2dhRzl6ZENCdmNpQkpVQ0JoWkdSeVpYTnpJSFJ2SUdKcGJtUWdkRzh1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMnh2WnoxMGNuVmxYU0F0SUZkb1pYUm9aWElnZEc4Z2JHOW5JSFJvWlNCaGNIQnNhV05oZEdsdmJpQlZVa3dnZFhCdmJpQnpkR0Z5ZEhWd0xseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEhadmFXUStmU0JTWlhOdmJIWmxjeUJ2Ym1ObElIUm9aU0JoY0hCc2FXTmhkR2x2YmlCemRHRnlkSE1nYzNWalkyVnpjMloxYkd4NUxseHVJQ0FnS2k5Y2JpQWdjM1JoZEdsaklHRnplVzVqSUhOMFlYSjBLRnh1SUNBZ0lIQnZjblE2SUc1MWJXSmxjaUE5SUU1MWJXSmxjaWh3Y205alpYTnpMbVZ1ZGk1UVQxSlVLU0I4ZkNBek1EQXdMRnh1SUNBZ0lHaHZjM1E2SUhOMGNtbHVaeUI4SUhWdVpHVm1hVzVsWkNBOUlIVnVaR1ZtYVc1bFpDeGNiaUFnSUNCc2IyYzZJR0p2YjJ4bFlXNGdQU0IwY25WbFhHNGdJQ2tnZTF4dUlDQWdJSFJvYVhNdVlYQndMbXhwYzNSbGJpaHdiM0owTENCb2IzTjBJR0Z6SUdGdWVTa3VkR2hsYmloaGMzbHVZeUFvS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvYkc5bktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIVnliQ0E5SUdGM1lXbDBJSFJvYVhNdVlYQndMbWRsZEZWeWJDZ3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxteHZaMmRsY2k1c2IyY29ZUENmbW9BZ1FYQndiR2xqWVhScGIyNGdhWE1nY25WdWJtbHVaeUJoZERvZ0pIdDFjbXg5WUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNGdJSDFjYm4xY2JpSmRmUT09Il19
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdEJvb3RzdHJhcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZhY3RvcnkvTmVzdEJvb3RzdHJhcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxNQUFNLEdBR1AsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsOEJBQXFCO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsMkJBQWtCO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsMEJBQWlCO0FBNENyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUkxQjs7Ozs7Ozs7O09BU0c7SUFDSyxNQUFNLEtBQUssTUFBTTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLFdBQVc7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQXFCO1FBQ3JDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQXFCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxJQUFJLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFH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QyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSU5lc3RBcHBsaWNhdGlvbixcbiAgTG9nZ2VyLFxuICBOZXN0SW50ZXJjZXB0b3IsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZFeGNlcHRpb25GaWx0ZXIgfSBmcm9tIFwiLi9leGNlcHRpb25zXCI7XG5pbXBvcnQgeyBTd2FnZ2VyQnVpbGRlciB9IGZyb20gXCIuL29wZW5hcGlcIjtcbmltcG9ydCB7IENvcnNPcHRpb25zIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uL2ludGVyZmFjZXMvZXh0ZXJuYWwvY29ycy1vcHRpb25zLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgQ29yc0Vycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBEZWZpbmVzIGFsbCBjdXN0b21pemFibGUgcGFyYW1ldGVycyBmb3IgU3dhZ2dlciBzZXR1cC5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhpcyBpbnRlcmZhY2UgYWxsb3dzIGRldmVsb3BlcnMgdG8gY3VzdG9taXplIGhvdyBTd2FnZ2VyIFVJIGlzIGNvbmZpZ3VyZWRcbiAqIHdpdGhpbiB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLiBJdCBpbmNsdWRlcyBwYXJhbWV0ZXJzIGZvciB0aXRsZXMsIHBhdGhzLFxuICogY29sb3Igc2NoZW1lcywgYW5kIGFzc2V0IHBhdGhzIHRvIHRhaWxvciB0aGUgQVBJIGRvY3VtZW50YXRpb24gZXhwZXJpZW5jZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSBUaXRsZSBkaXNwbGF5ZWQgaW4gU3dhZ2dlciBVSS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbiAtIERlc2NyaXB0aW9uIHNob3duIGJlbG93IHRoZSB0aXRsZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uIC0gQVBJIHZlcnNpb24gZGlzcGxheWVkIGluIHRoZSBkb2N1bWVudGF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IFtwYXRoXSAtIE9wdGlvbmFsIHBhdGggd2hlcmUgU3dhZ2dlciB3aWxsIGJlIGF2YWlsYWJsZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3BlcnNpc3RBdXRob3JpemF0aW9uXSAtIFdoZXRoZXIgYXV0aG9yaXphdGlvbiB0b2tlbnMgcGVyc2lzdCBhY3Jvc3MgcmVsb2Fkcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXNzZXRzUGF0aF0gLSBQYXRoIHRvIGN1c3RvbSBhc3NldHMgZm9yIFN3YWdnZXIgVUkuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RvcGJhckJnQ29sb3JdIC0gQ3VzdG9tIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBTd2FnZ2VyIHRvcCBiYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RvcGJhckljb25QYXRoXSAtIFBhdGggdG8gYSBjdXN0b20gaWNvbiBkaXNwbGF5ZWQgaW4gdGhlIHRvcCBiYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2Zhdmljb25QYXRoXSAtIFBhdGggdG8gYSBjdXN0b20gZmF2aWNvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2FnZ2VyU2V0dXBPcHRpb25zIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBwZXJzaXN0QXV0aG9yaXphdGlvbj86IGJvb2xlYW47XG4gIGFzc2V0c1BhdGg/OiBzdHJpbmc7XG4gIHRvcGJhckJnQ29sb3I/OiBzdHJpbmc7XG4gIHRvcGJhckljb25QYXRoPzogc3RyaW5nO1xuICBmYXZpY29uUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggdG8gZXhwb3NlIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gaW4gSlNPTiBmb3JtYXQuXG4gICAqIEV4YW1wbGU6IC9hcGkvb3BlbmFwaS5qc29uXG4gICAqL1xuICBvcGVuQXBpSnNvblBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGV4cG9zZSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGluIFlBTUwgZm9ybWF0LlxuICAgKiBSZXF1aXJlcyAneWFtbCcgcGFja2FnZSBhcyBwZWVyIGRlcGVuZGVuY3kuXG4gICAqIEV4YW1wbGU6IC9hcGkvb3BlbmFwaS55YW1sXG4gICAqL1xuICBvcGVuQXBpWWFtbFBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBIGZsdWVudCwgc3RhdGljIGJvb3RzdHJhcCBjbGFzcyBmb3IgaW5pdGlhbGl6aW5nIGFuZCBjb25maWd1cmluZyBhIE5lc3RKUyBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBOZXN0Qm9vdHN0cmFwZXJgIGNsYXNzIHByb3ZpZGVzIGEgY2hhaW5hYmxlIEFQSSBmb3IgY29uZmlndXJpbmdcbiAqIGEgTmVzdEpTIGFwcGxpY2F0aW9uIGluc3RhbmNlLiBJdCBpbmNsdWRlcyBidWlsdC1pbiBtZXRob2RzIGZvciBlbmFibGluZ1xuICogQ09SUywgSGVsbWV0IHNlY3VyaXR5LCBTd2FnZ2VyIGRvY3VtZW50YXRpb24sIGdsb2JhbCBwaXBlcywgZmlsdGVycyxcbiAqIGludGVyY2VwdG9ycywgYW5kIHN0YXJ0aW5nIHRoZSBzZXJ2ZXIuXG4gKlxuICogVGhpcyBjbGFzcyBwcm9tb3RlcyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNlcyByZXBldGl0aXZlIHNldHVwIGNvZGVcbiAqIGFjcm9zcyBtdWx0aXBsZSBOZXN0SlMgcHJvamVjdHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBOZXN0RmFjdG9yeSB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbiAqIGltcG9ydCB7IEFwcE1vZHVsZSB9IGZyb20gXCIuL2FwcC5tb2R1bGVcIjtcbiAqIGltcG9ydCB7IE15TG9nZ2VyIH0gZnJvbSBcIi4vTXlMb2dnZXJcIjtcbiAqIGltcG9ydCB7IE5lc3RCb290c3RyYXBlciB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLW5lc3RcIjtcbiAqXG4gKiBhc3luYyBmdW5jdGlvbiBib290c3RyYXAoKSB7XG4gKiAgIGNvbnN0IGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShBcHBNb2R1bGUpO1xuICpcbiAqICAgYXdhaXQgTmVzdEJvb3RzdHJhcGVyXG4gKiAgICAgLmluaXRpYWxpemUoYXBwKVxuICogICAgIC5lbmFibGVMb2dnZXIobmV3IE15TG9nZ2VyKCkpXG4gKiAgICAgLmVuYWJsZUNvcnMoW1wiaHR0cDovL2xvY2FsaG9zdDo0MjAwXCJdKVxuICogICAgIC51c2VIZWxtZXQoKVxuICogICAgIC5zZXR1cFN3YWdnZXIoe1xuICogICAgICAgdGl0bGU6IFwiT3BlbkFQSSBieSBUcmFkZU1hcmvihKJcIixcbiAqICAgICAgIGRlc2NyaXB0aW9uOiBcIlRyYWRlTWFya+KEoiBBUEkgZG9jdW1lbnRhdGlvblwiLFxuICogICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICogICAgICAgcGF0aDogXCJhcGlcIixcbiAqICAgICAgIHBlcnNpc3RBdXRob3JpemF0aW9uOiB0cnVlLFxuICogICAgICAgdG9wYmFyQmdDb2xvcjogXCIjMkMzRTUwXCIsXG4gKiAgICAgICB0b3BiYXJJY29uUGF0aDogXCIvYXNzZXRzL2xvZ28uc3ZnXCIsXG4gKiAgICAgICBmYXZpY29uUGF0aDogXCIvYXNzZXRzL2Zhdmljb24uaWNvXCJcbiAqICAgICB9KVxuICogICAgIC51c2VHbG9iYWxGaWx0ZXJzKClcbiAqICAgICAudXNlR2xvYmFsUGlwZXMoLi4uKVxuICogICAgIC51c2VHbG9iYWxJbnRlcmNlcHRvcnMoLi4uKVxuICogICAgIC5zdGFydCgzMDAwKTtcbiAqIH1cbiAqXG4gKiBib290c3RyYXAoKTtcbiAqIGBgYFxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXN0Qm9vdHN0cmFwZXIge1xuICBwcml2YXRlIHN0YXRpYyBhcHA6IElOZXN0QXBwbGljYXRpb247XG4gIHByaXZhdGUgc3RhdGljIF9sb2dnZXI6IExvZ2dlcjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbG9nZ2VyIGluc3RhbmNlLCBjcmVhdGluZyBhIGRlZmF1bHQgb25lIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIEVuc3VyZXMgdGhhdCBhIHZhbGlkIGBMb2dnZXJgIGluc3RhbmNlIGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICogZm9yIGxvZ2dpbmcgYm9vdHN0cmFwLXJlbGF0ZWQgbWVzc2FnZXMuXG4gICAqXG4gICAqIEByZXR1cm4ge0xvZ2dlcn0gVGhlIGFjdGl2ZSBsb2dnZXIgaW5zdGFuY2UuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXQgbG9nZ2VyKCk6IExvZ2dlciB7XG4gICAgaWYgKCF0aGlzLl9sb2dnZXIpIHtcbiAgICAgIC8vIGZhbGxiYWNrXG4gICAgICB0aGlzLl9sb2dnZXIgPSBuZXcgTG9nZ2VyKFwiTmVzdEJvb3RzdHJhcFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJvb3RzdHJhcHBlciB3aXRoIGEgZ2l2ZW4gTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBCaW5kcyB0aGUgcHJvdmlkZWQgTmVzdEpTIGFwcCBpbnN0YW5jZSB0byB0aGUgYm9vdHN0cmFwcGVyLCBlbmFibGluZ1xuICAgKiBjaGFpbmVkIGNvbmZpZ3VyYXRpb24gbWV0aG9kcy5cbiAgICpcbiAgICogQHBhcmFtIHtJTmVzdEFwcGxpY2F0aW9ufSBhcHAgLSBUaGUgTmVzdEpTIGFwcGxpY2F0aW9uIGluc3RhbmNlIHRvIGluaXRpYWxpemUuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24gbWV0aG9kcy5cbiAgICovXG4gIHN0YXRpYyBpbml0aWFsaXplKGFwcDogSU5lc3RBcHBsaWNhdGlvbikge1xuICAgIHRoaXMuYXBwID0gYXBwO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFbmFibGVzIG9yIHJlcGxhY2VzIHRoZSBnbG9iYWwgbG9nZ2VyIGZvciB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBJZiBhIGN1c3RvbSBsb2dnZXIgaXMgcHJvdmlkZWQsIGl0IHJlcGxhY2VzIHRoZSBkZWZhdWx0IGxvZ2dlci4gT3RoZXJ3aXNlLFxuICAgKiBhIG5ldyBsb2dnZXIgbmFtZWQgYFwiTmVzdEJvb3RzdHJhcFwiYCBpcyB1c2VkLiBUaGlzIGxvZ2dlciBpcyBhbHNvIHJlZ2lzdGVyZWRcbiAgICogd2l0aCB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0xvZ2dlcn0gW2N1c3RvbUxvZ2dlcl0gLSBPcHRpb25hbCBjdXN0b20gbG9nZ2VyIGluc3RhbmNlLlxuICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZy5cbiAgICovXG4gIHN0YXRpYyBlbmFibGVMb2dnZXIoY3VzdG9tTG9nZ2VyPzogTG9nZ2VyKSB7XG4gICAgdGhpcy5fbG9nZ2VyID0gY3VzdG9tTG9nZ2VyIHx8IG5ldyBMb2dnZXIoXCJOZXN0Qm9vdHN0cmFwXCIpO1xuICAgIHRoaXMuYXBwLnVzZUxvZ2dlcih0aGlzLl9sb2dnZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFbmFibGVzIENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIChDT1JTKSBmb3IgdGhlIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBBbGxvd3MgZGVmaW5pbmcgZWl0aGVyIGEgd2lsZGNhcmQgb3JpZ2luIChgXCIqXCJgKSBvciBhIGxpc3Qgb2YgYWxsb3dlZCBvcmlnaW5zLlxuICAgKiBBdXRvbWF0aWNhbGx5IGFjY2VwdHMgbG9jYWwgZGV2ZWxvcG1lbnQgcmVxdWVzdHMgYW5kIHRob3NlIHdpdGhvdXQgb3JpZ2luIGhlYWRlcnMuXG4gICAqIFRocm93cyBhIGBDb3JzRXJyb3JgIGZvciB1bmF1dGhvcml6ZWQgb3JpZ2lucy5cbiAgICpcbiAgICogQHBhcmFtIHsnKicgfCBzdHJpbmdbXX0gW29yaWdpbnM9W11dIC0gTGlzdCBvZiBhbGxvd2VkIG9yaWdpbnMgb3IgYFwiKlwiYCB0byBhbGxvdyBhbGwuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthbGxvd01ldGhvZHM9WydHRVQnLCAnUE9TVCcsICdQVVQnLCAnREVMRVRFJ11dIC0gQWxsb3dlZCBIVFRQIG1ldGhvZHMuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqL1xuICBzdGF0aWMgZW5hYmxlQ29ycyhcbiAgICBvcmlnaW5zOiBcIipcIiB8IHN0cmluZ1tdID0gW10sXG4gICAgYWxsb3dNZXRob2RzOiBzdHJpbmdbXSA9IFtcIkdFVFwiLCBcIlBPU1RcIiwgXCJQVVRcIiwgXCJERUxFVEVcIl1cbiAgKSB7XG4gICAgY29uc3QgYWxsb3dlZE9yaWdpbnMgPVxuICAgICAgb3JpZ2lucyA9PT0gXCIqXCIgPyBcIipcIiA6IG9yaWdpbnMubWFwKChvKSA9PiBvLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGNvbnN0IGNvcnNPcHRpb25zOiBDb3JzT3B0aW9ucyA9IHtcbiAgICAgIG9yaWdpbjogKG9yaWdpbiwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgLy8gQWxsb3cgcmVxdWVzdCB3aXRob3V0IG9yaWdpbi4uLlxuICAgICAgICBpZiAoIW9yaWdpbikgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRydWUpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBhbGxvd2VkT3JpZ2lucyA9PT0gXCIqXCIgfHxcbiAgICAgICAgICAoQXJyYXkuaXNBcnJheShhbGxvd2VkT3JpZ2lucykgJiZcbiAgICAgICAgICAgIGFsbG93ZWRPcmlnaW5zLmluY2x1ZGVzKG9yaWdpbi50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2sobmV3IENvcnNFcnJvcihgT3JpZ2luICR7b3JpZ2lufSBub3QgYWxsb3dlZGApKTtcbiAgICAgIH0sXG4gICAgICBjcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIG1ldGhvZHM6IGFsbG93TWV0aG9kcy5qb2luKFwiLFwiKSxcbiAgICB9O1xuXG4gICAgdGhpcy5hcHAuZW5hYmxlQ29ycyhjb3JzT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFwcGxpZXMgdGhlIEhlbG1ldCBtaWRkbGV3YXJlIGZvciBlbmhhbmNlZCBzZWN1cml0eS5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRHluYW1pY2FsbHkgbG9hZHMgdGhlIGBoZWxtZXRgIHBhY2thZ2UgaWYgYXZhaWxhYmxlIGFuZCByZWdpc3RlcnMgaXRcbiAgICogYXMgbWlkZGxld2FyZSB0byBpbXByb3ZlIEhUVFAgaGVhZGVyIHNlY3VyaXR5LiBJZiBub3QgaW5zdGFsbGVkLCBsb2dzIGEgd2FybmluZ1xuICAgKiBhbmQgY29udGludWVzIGV4ZWN1dGlvbiB3aXRob3V0IHRocm93aW5nIGVycm9ycy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbb3B0aW9uc10gLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIHBhc3NlZCB0byBIZWxtZXQuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBzdGF0aWMgdXNlSGVsbWV0KG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICBjb25zdCBoZWxtZXQgPSByZXF1aXJlKFwiaGVsbWV0XCIpOyAvLyBEeW5hbWljIGltcG9ydCB0byBhdm9pZCBoYXJkIGRlcGVuZGVuY3lcbiAgICAgIHRoaXMuYXBwLnVzZShoZWxtZXQob3B0aW9ucykpO1xuICAgICAgdGhpcy5sb2dnZXIubG9nKFwiSGVsbWV0IG1pZGRsZXdhcmUgZW5hYmxlZCBzdWNjZXNzZnVsbHkuXCIpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcIkhlbG1ldCBub3QgaW5zdGFsbGVkLiBTa2lwcGluZyBtaWRkbGV3YXJlLlwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQ29uZmlndXJlcyBhbmQgaW5pdGlhbGl6ZXMgU3dhZ2dlciBVSSBmb3IgQVBJIGRvY3VtZW50YXRpb24uXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIFVzZXMgdGhlIGBTd2FnZ2VyQnVpbGRlcmAgdXRpbGl0eSB0byBjb25maWd1cmUgQVBJIGRvY3VtZW50YXRpb25cbiAgICogd2l0aCBkZXRhaWxlZCBjdXN0b21pemF0aW9uIGZvciB0aXRsZSwgdmVyc2lvbiwgcGF0aHMsIGFuZCBjb2xvcnMuXG4gICAqIFN3YWdnZXIgaXMgYXV0b21hdGljYWxseSBleHBvc2VkIGF0IHRoZSBjb25maWd1cmVkIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSB7U3dhZ2dlclNldHVwT3B0aW9uc30gb3B0aW9ucyAtIFN3YWdnZXIgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgc3RhdGljIHNldHVwU3dhZ2dlcihvcHRpb25zOiBTd2FnZ2VyU2V0dXBPcHRpb25zKSB7XG4gICAgY29uc3Qgc3dhZ2dlciA9IG5ldyBTd2FnZ2VyQnVpbGRlcih0aGlzLmFwcCwge1xuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgIHBhdGg6IG9wdGlvbnMucGF0aCB8fCBcImFwaVwiLFxuICAgICAgcGVyc2lzdEF1dGhvcml6YXRpb246IG9wdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb24gPz8gdHJ1ZSxcbiAgICAgIGFzc2V0c1BhdGg6IG9wdGlvbnMuYXNzZXRzUGF0aCxcbiAgICAgIGZhdmljb25GaWxlUGF0aDogb3B0aW9ucy5mYXZpY29uUGF0aCxcbiAgICAgIHRvcGJhckljb25GaWxlUGF0aDogb3B0aW9ucy50b3BiYXJJY29uUGF0aCxcbiAgICAgIHRvcGJhckJnQ29sb3I6IG9wdGlvbnMudG9wYmFyQmdDb2xvcixcbiAgICAgIG9wZW5BcGlKc29uUGF0aDogb3B0aW9ucy5vcGVuQXBpSnNvblBhdGgsXG4gICAgICBvcGVuQXBpWWFtbFBhdGg6IG9wdGlvbnMub3BlbkFwaVlhbWxQYXRoLFxuICAgIH0pO1xuICAgIHN3YWdnZXIuc2V0dXBTd2FnZ2VyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgdmFsaWRhdGlvbiBwaXBlcy5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRW5hYmxlcyByZXF1ZXN0IHBheWxvYWQgdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb24gZ2xvYmFsbHkgYWNyb3NzXG4gICAqIHRoZSBlbnRpcmUgTmVzdEpTIGFwcGxpY2F0aW9uLiBNdWx0aXBsZSBwaXBlcyBjYW4gYmUgY2hhaW5lZCB0b2dldGhlclxuICAgKiBmb3IgbW9kdWxhciBpbnB1dCB2YWxpZGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLlBpcGVUcmFuc2Zvcm1bXX0gcGlwZXMgLSBQaXBlIGluc3RhbmNlcyB0byByZWdpc3RlciBnbG9iYWxseS5cbiAgICogQHJldHVybiB7TmVzdEJvb3RzdHJhcGVyfSBSZXR1cm5zIHRoZSBjbGFzcyBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsUGlwZXMoLi4ucGlwZXM6IFBpcGVUcmFuc2Zvcm1bXSkge1xuICAgIGlmIChwaXBlcy5sZW5ndGggPiAwKSB0aGlzLmFwcC51c2VHbG9iYWxQaXBlcyguLi5waXBlcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgZXhjZXB0aW9uIGZpbHRlcnMuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIElmIG5vIGZpbHRlcnMgYXJlIHByb3ZpZGVkLCBpdCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVycyBhIGRlZmF1bHRcbiAgICogc2V0IG9mIHN0YW5kYXJkIGV4Y2VwdGlvbiBmaWx0ZXJzIGZvciBjb21tb24gZXJyb3IgdHlwZXMgbGlrZVxuICAgKiBgSHR0cEV4Y2VwdGlvbmAsIGBWYWxpZGF0aW9uRXhjZXB0aW9uYCwgYENvbmZsaWN0RXhjZXB0aW9uYCwgYW5kIG90aGVycy5cbiAgICpcbiAgICogQHBhcmFtIHsuLi5FeGNlcHRpb25GaWx0ZXJbXX0gZmlsdGVycyAtIE9wdGlvbmFsIGZpbHRlcnMgdG8gYXBwbHkgZ2xvYmFsbHkuXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsRmlsdGVycyguLi5maWx0ZXJzOiBhbnlbXSkge1xuICAgIHRoaXMuYXBwLnVzZUdsb2JhbEZpbHRlcnMoXG4gICAgICAuLi4oZmlsdGVycy5sZW5ndGggPiAwID8gZmlsdGVycyA6IFtuZXcgRGVjYWZFeGNlcHRpb25GaWx0ZXIoKV0pXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVnaXN0ZXJzIGdsb2JhbCBpbnRlcmNlcHRvcnMgZm9yIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHRyYW5zZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBJbnRlcmNlcHRvcnMgYWxsb3cgYWR2YW5jZWQgcmVxdWVzdC9yZXNwb25zZSBtYW5pcHVsYXRpb24gc3VjaCBhc1xuICAgKiBzZXJpYWxpemF0aW9uLCBsb2dnaW5nLCBvciB0cmFuc2Zvcm1hdGlvbi4gTXVsdGlwbGUgaW50ZXJjZXB0b3JzXG4gICAqIGNhbiBiZSBhZGRlZCBmb3IgbW9kdWxhciBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gey4uLk5lc3RJbnRlcmNlcHRvcltdfSBpbnRlcmNlcHRvcnMgLSBJbnRlcmNlcHRvciBpbnN0YW5jZXMgdG8gcmVnaXN0ZXIuXG4gICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBzdGF0aWMgdXNlR2xvYmFsSW50ZXJjZXB0b3JzKC4uLmludGVyY2VwdG9yczogTmVzdEludGVyY2VwdG9yW10pIHtcbiAgICBpZiAoaW50ZXJjZXB0b3JzLmxlbmd0aCA+IDApXG4gICAgICB0aGlzLmFwcC51c2VHbG9iYWxJbnRlcmNlcHRvcnMoLi4uaW50ZXJjZXB0b3JzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU3RhcnRzIHRoZSBOZXN0SlMgYXBwbGljYXRpb24gYW5kIGJpbmRzIGl0IHRvIHRoZSBnaXZlbiBwb3J0IGFuZCBob3N0LlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBMaXN0ZW5zIG9uIHRoZSBzcGVjaWZpZWQgcG9ydCBhbmQgb3B0aW9uYWxseSBhIGhvc3QuIE9uY2Ugc3RhcnRlZCxcbiAgICogbG9ncyB0aGUgYXBwbGljYXRpb24gVVJMIGZvciBlYXN5IGFjY2Vzcy4gVGhlIHN0YXJ0dXAgcHJvY2VzcyByZXNvbHZlc1xuICAgKiBvbmNlIHRoZSBhcHBsaWNhdGlvbiBpcyBzdWNjZXNzZnVsbHkgcnVubmluZy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3J0PTMwMDBdIC0gUG9ydCBudW1iZXIgdG8gbGlzdGVuIG9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2hvc3RdIC0gT3B0aW9uYWwgaG9zdCBvciBJUCBhZGRyZXNzIHRvIGJpbmQgdG8uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2xvZz10cnVlXSAtIFdoZXRoZXIgdG8gbG9nIHRoZSBhcHBsaWNhdGlvbiBVUkwgdXBvbiBzdGFydHVwLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBSZXNvbHZlcyBvbmNlIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN0YXJ0KFxuICAgIHBvcnQ6IG51bWJlciA9IE51bWJlcihwcm9jZXNzLmVudi5QT1JUKSB8fCAzMDAwLFxuICAgIGhvc3Q6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBsb2c6IGJvb2xlYW4gPSB0cnVlXG4gICkge1xuICAgIHRoaXMuYXBwLmxpc3Rlbihwb3J0LCBob3N0IGFzIGFueSkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuYXBwLmdldFVybCgpO1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coYPCfmoAgQXBwbGljYXRpb24gaXMgcnVubmluZyBhdDogJHt1cmx9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdEJvb3RzdHJhcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTmVzdEJvb3RzdHJhcGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF5QztBQUN6QyxvREFBNkQ7QUFDN0QsaURBQW9EO0FBQ3BELGdEQUE4QztBQUM5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFhLGVBQWU7SUFDeEI7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxLQUFLLE1BQU07UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLFdBQVc7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNEOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUc7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0Q7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVk7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLElBQUksSUFBSSxlQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLFlBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztRQUMzRSxNQUFNLGNBQWMs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O0FBQ0QsOG1vQkFBOG1vQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlciwgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IERlY2FmRXhjZXB0aW9uRmlsdGVyIH0gZnJvbSBcIi4vZXhjZXB0aW9ucy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgU3dhZ2dlckJ1aWxkZXIgfSBmcm9tIFwiLi9vcGVuYXBpL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBDb3JzRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMvaW5kZXguanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBIGZsdWVudCwgc3RhdGljIGJvb3RzdHJhcCBjbGFzcyBmb3IgaW5pdGlhbGl6aW5nIGFuZCBjb25maWd1cmluZyBhIE5lc3RKUyBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBOZXN0Qm9vdHN0cmFwZXJgIGNsYXNzIHByb3ZpZGVzIGEgY2hhaW5hYmxlIEFQSSBmb3IgY29uZmlndXJpbmdcbiAqIGEgTmVzdEpTIGFwcGxpY2F0aW9uIGluc3RhbmNlLiBJdCBpbmNsdWRlcyBidWlsdC1pbiBtZXRob2RzIGZvciBlbmFibGluZ1xuICogQ09SUywgSGVsbWV0IHNlY3VyaXR5LCBTd2FnZ2VyIGRvY3VtZW50YXRpb24sIGdsb2JhbCBwaXBlcywgZmlsdGVycyxcbiAqIGludGVyY2VwdG9ycywgYW5kIHN0YXJ0aW5nIHRoZSBzZXJ2ZXIuXG4gKlxuICogVGhpcyBjbGFzcyBwcm9tb3RlcyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNlcyByZXBldGl0aXZlIHNldHVwIGNvZGVcbiAqIGFjcm9zcyBtdWx0aXBsZSBOZXN0SlMgcHJvamVjdHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBOZXN0RmFjdG9yeSB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbiAqIGltcG9ydCB7IEFwcE1vZHVsZSB9IGZyb20gXCIuL2FwcC5tb2R1bGVcIjtcbiAqIGltcG9ydCB7IE15TG9nZ2VyIH0gZnJvbSBcIi4vTXlMb2dnZXJcIjtcbiAqIGltcG9ydCB7IE5lc3RCb290c3RyYXBlciB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLW5lc3RcIjtcbiAqXG4gKiBhc3luYyBmdW5jdGlvbiBib290c3RyYXAoKSB7XG4gKiAgIGNvbnN0IGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShBcHBNb2R1bGUpO1xuICpcbiAqICAgYXdhaXQgTmVzdEJvb3RzdHJhcGVyXG4gKiAgICAgLmluaXRpYWxpemUoYXBwKVxuICogICAgIC5lbmFibGVMb2dnZXIobmV3IE15TG9nZ2VyKCkpXG4gKiAgICAgLmVuYWJsZUNvcnMoW1wiaHR0cDovL2xvY2FsaG9zdDo0MjAwXCJdKVxuICogICAgIC51c2VIZWxtZXQoKVxuICogICAgIC5zZXR1cFN3YWdnZXIoe1xuICogICAgICAgdGl0bGU6IFwiT3BlbkFQSSBieSBUcmFkZU1hcmvihKJcIixcbiAqICAgICAgIGRlc2NyaXB0aW9uOiBcIlRyYWRlTWFya+KEoiBBUEkgZG9jdW1lbnRhdGlvblwiLFxuICogICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICogICAgICAgcGF0aDogXCJhcGlcIixcbiAqICAgICAgIHBlcnNpc3RBdXRob3JpemF0aW9uOiB0cnVlLFxuICogICAgICAgdG9wYmFyQmdDb2xvcjogXCIjMkMzRTUwXCIsXG4gKiAgICAgICB0b3BiYXJJY29uUGF0aDogXCIvYXNzZXRzL2xvZ28uc3ZnXCIsXG4gKiAgICAgICBmYXZpY29uUGF0aDogXCIvYXNzZXRzL2Zhdmljb24uaWNvXCJcbiAqICAgICB9KVxuICogICAgIC51c2VHbG9iYWxGaWx0ZXJzKClcbiAqICAgICAudXNlR2xvYmFsUGlwZXMoLi4uKVxuICogICAgIC51c2VHbG9iYWxJbnRlcmNlcHRvcnMoLi4uKVxuICogICAgIC5zdGFydCgzMDAwKTtcbiAqIH1cbiAqXG4gKiBib290c3RyYXAoKTtcbiAqIGBgYFxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXN0Qm9vdHN0cmFwZXIge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbG9nZ2VyIGluc3RhbmNlLCBjcmVhdGluZyBhIGRlZmF1bHQgb25lIGlmIG5vdCBzZXQuXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIEVuc3VyZXMgdGhhdCBhIHZhbGlkIGBMb2dnZXJgIGluc3RhbmNlIGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICAgKiBmb3IgbG9nZ2luZyBib290c3RyYXAtcmVsYXRlZCBtZXNzYWdlcy5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge0xvZ2dlcn0gVGhlIGFjdGl2ZSBsb2dnZXIgaW5zdGFuY2UuXG4gICAgICovXG4gICAgc3RhdGljIGdldCBsb2dnZXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5fbG9nZ2VyKSB7XG4gICAgICAgICAgICAvLyBmYWxsYmFja1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyID0gbmV3IExvZ2dlcihcIk5lc3RCb290c3RyYXBcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvZ2dlcjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogSW5pdGlhbGl6ZXMgdGhlIGJvb3RzdHJhcHBlciB3aXRoIGEgZ2l2ZW4gTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgICAqXG4gICAgICogQHN1bW1hcnlcbiAgICAgKiBCaW5kcyB0aGUgcHJvdmlkZWQgTmVzdEpTIGFwcCBpbnN0YW5jZSB0byB0aGUgYm9vdHN0cmFwcGVyLCBlbmFibGluZ1xuICAgICAqIGNoYWluZWQgY29uZmlndXJhdGlvbiBtZXRob2RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtJTmVzdEFwcGxpY2F0aW9ufSBhcHAgLSBUaGUgTmVzdEpTIGFwcGxpY2F0aW9uIGluc3RhbmNlIHRvIGluaXRpYWxpemUuXG4gICAgICogQHJldHVybiB7TmVzdEJvb3RzdHJhcGVyfSBSZXR1cm5zIHRoZSBjbGFzcyBmb3IgY2hhaW5pbmcgY29uZmlndXJhdGlvbiBtZXRob2RzLlxuICAgICAqL1xuICAgIHN0YXRpYyBpbml0aWFsaXplKGFwcCkge1xuICAgICAgICB0aGlzLmFwcCA9IGFwcDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEVuYWJsZXMgb3IgcmVwbGFjZXMgdGhlIGdsb2JhbCBsb2dnZXIgZm9yIHRoZSBOZXN0SlMgYXBwbGljYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIElmIGEgY3VzdG9tIGxvZ2dlciBpcyBwcm92aWRlZCwgaXQgcmVwbGFjZXMgdGhlIGRlZmF1bHQgbG9nZ2VyLiBPdGhlcndpc2UsXG4gICAgICogYSBuZXcgbG9nZ2VyIG5hbWVkIGBcIk5lc3RCb290c3RyYXBcImAgaXMgdXNlZC4gVGhpcyBsb2dnZXIgaXMgYWxzbyByZWdpc3RlcmVkXG4gICAgICogd2l0aCB0aGUgTmVzdEpTIGFwcGxpY2F0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtMb2dnZXJ9IFtjdXN0b21Mb2dnZXJdIC0gT3B0aW9uYWwgY3VzdG9tIGxvZ2dlciBpbnN0YW5jZS5cbiAgICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZy5cbiAgICAgKi9cbiAgICBzdGF0aWMgZW5hYmxlTG9nZ2VyKGN1c3RvbUxvZ2dlcikge1xuICAgICAgICB0aGlzLl9sb2dnZXIgPSBjdXN0b21Mb2dnZXIgfHwgbmV3IExvZ2dlcihcIk5lc3RCb290c3RyYXBcIik7XG4gICAgICAgIHRoaXMuYXBwLnVzZUxvZ2dlcih0aGlzLl9sb2dnZXIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRW5hYmxlcyBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyAoQ09SUykgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogQWxsb3dzIGRlZmluaW5nIGVpdGhlciBhIHdpbGRjYXJkIG9yaWdpbiAoYFwiKlwiYCkgb3IgYSBsaXN0IG9mIGFsbG93ZWQgb3JpZ2lucy5cbiAgICAgKiBBdXRvbWF0aWNhbGx5IGFjY2VwdHMgbG9jYWwgZGV2ZWxvcG1lbnQgcmVxdWVzdHMgYW5kIHRob3NlIHdpdGhvdXQgb3JpZ2luIGhlYWRlcnMuXG4gICAgICogVGhyb3dzIGEgYENvcnNFcnJvcmAgZm9yIHVuYXV0aG9yaXplZCBvcmlnaW5zLlxuICAgICAqXG4gICAgICogQHBhcmFtIHsnKicgfCBzdHJpbmdbXX0gW29yaWdpbnM9W11dIC0gTGlzdCBvZiBhbGxvd2VkIG9yaWdpbnMgb3IgYFwiKlwiYCB0byBhbGxvdyBhbGwuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gW2FsbG93TWV0aG9kcz1bJ0dFVCcsICdQT1NUJywgJ1BVVCcsICdERUxFVEUnXV0gLSBBbGxvd2VkIEhUVFAgbWV0aG9kcy5cbiAgICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZyBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICovXG4gICAgc3RhdGljIGVuYWJsZUNvcnMob3JpZ2lucyA9IFtdLCBhbGxvd01ldGhvZHMgPSBbXCJHRVRcIiwgXCJQT1NUXCIsIFwiUFVUXCIsIFwiREVMRVRFXCJdKSB7XG4gICAgICAgIGNvbnN0IGFsbG93ZWRPcmlnaW5zID0gb3JpZ2lucyA9PT0gXCIqXCIgPyBcIipcIiA6IG9yaWdpbnMubWFwKChvKSA9PiBvLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgY29uc3QgY29yc09wdGlvbnMgPSB7XG4gICAgICAgICAgICBvcmlnaW46IChvcmlnaW4sIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQWxsb3cgcmVxdWVzdCB3aXRob3V0IG9yaWdpbi4uLlxuICAgICAgICAgICAgICAgIGlmICghb3JpZ2luKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGFsbG93ZWRPcmlnaW5zID09PSBcIipcIiB8fFxuICAgICAgICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheShhbGxvd2VkT3JpZ2lucykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRPcmlnaW5zLmluY2x1ZGVzKG9yaWdpbi50b0xvd2VyQ2FzZSgpKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWxsYmFjayhuZXcgQ29yc0Vycm9yKGBPcmlnaW4gJHtvcmlnaW59IG5vdCBhbGxvd2VkYCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgbWV0aG9kczogYWxsb3dNZXRob2RzLmpvaW4oXCIsXCIpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmFwcC5lbmFibGVDb3JzKGNvcnNPcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEFwcGxpZXMgdGhlIEhlbG1ldCBtaWRkbGV3YXJlIGZvciBlbmhhbmNlZCBzZWN1cml0eS5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogRHluYW1pY2FsbHkgbG9hZHMgdGhlIGBoZWxtZXRgIHBhY2thZ2UgaWYgYXZhaWxhYmxlIGFuZCByZWdpc3RlcnMgaXRcbiAgICAgKiBhcyBtaWRkbGV3YXJlIHRvIGltcHJvdmUgSFRUUCBoZWFkZXIgc2VjdXJpdHkuIElmIG5vdCBpbnN0YWxsZWQsIGxvZ3MgYSB3YXJuaW5nXG4gICAgICogYW5kIGNvbnRpbnVlcyBleGVjdXRpb24gd2l0aG91dCB0aHJvd2luZyBlcnJvcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFtvcHRpb25zXSAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gcGFzc2VkIHRvIEhlbG1ldC5cbiAgICAgKiBAcmV0dXJuIHtOZXN0Qm9vdHN0cmFwZXJ9IFJldHVybnMgdGhlIGNsYXNzIGZvciBjaGFpbmluZyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHN0YXRpYyB1c2VIZWxtZXQob3B0aW9ucykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICAgICAgICAgIGNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7IC8vIER5bmFtaWMgaW1wb3J0IHRvIGF2b2lkIGhhcmQgZGVwZW5kZW5jeVxuICAgICAgICAgICAgdGhpcy5hcHAudXNlKGhlbG1ldChvcHRpb25zKSk7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coXCJIZWxtZXQgbWlkZGxld2FyZSBlbmFibGVkIHN1Y2Nlc3NmdWxseS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcIkhlbG1ldCBub3QgaW5zdGFsbGVkLiBTa2lwcGluZyBtaWRkbGV3YXJlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogQ29uZmlndXJlcyBhbmQgaW5pdGlhbGl6ZXMgU3dhZ2dlciBVSSBmb3IgQVBJIGRvY3VtZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIFVzZXMgdGhlIGBTd2FnZ2VyQnVpbGRlcmAgdXRpbGl0eSB0byBjb25maWd1cmUgQVBJIGRvY3VtZW50YXRpb25cbiAgICAgKiB3aXRoIGRldGFpbGVkIGN1c3RvbWl6YXRpb24gZm9yIHRpdGxlLCB2ZXJzaW9uLCBwYXRocywgYW5kIGNvbG9ycy5cbiAgICAgKiBTd2FnZ2VyIGlzIGF1dG9tYXRpY2FsbHkgZXhwb3NlZCBhdCB0aGUgY29uZmlndXJlZCBwYXRoLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTd2FnZ2VyU2V0dXBPcHRpb25zfSBvcHRpb25zIC0gU3dhZ2dlciBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAgICogQHJldHVybiB7TmVzdEJvb3RzdHJhcGVyfSBSZXR1cm5zIHRoZSBjbGFzcyBmb3IgY2hhaW5pbmcgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzdGF0aWMgc2V0dXBTd2FnZ2VyKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgc3dhZ2dlciA9IG5ldyBTd2FnZ2VyQnVpbGRlcih0aGlzLmFwcCwge1xuICAgICAgICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aCB8fCBcImFwaVwiLFxuICAgICAgICAgICAgcGVyc2lzdEF1dGhvcml6YXRpb246IG9wdGlvbnMucGVyc2lzdEF1dGhvcml6YXRpb24gPz8gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2V0c1BhdGg6IG9wdGlvbnMuYXNzZXRzUGF0aCxcbiAgICAgICAgICAgIGZhdmljb25GaWxlUGF0aDogb3B0aW9ucy5mYXZpY29uUGF0aCxcbiAgICAgICAgICAgIHRvcGJhckljb25GaWxlUGF0aDogb3B0aW9ucy50b3BiYXJJY29uUGF0aCxcbiAgICAgICAgICAgIHRvcGJhckJnQ29sb3I6IG9wdGlvbnMudG9wYmFyQmdDb2xvcixcbiAgICAgICAgICAgIG9wZW5BcGlKc29uUGF0aDogb3B0aW9ucy5vcGVuQXBpSnNvblBhdGgsXG4gICAgICAgICAgICBvcGVuQXBpWWFtbFBhdGg6IG9wdGlvbnMub3BlbkFwaVlhbWxQYXRoLFxuICAgICAgICB9KTtcbiAgICAgICAgc3dhZ2dlci5zZXR1cFN3YWdnZXIoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgdmFsaWRhdGlvbiBwaXBlcy5cbiAgICAgKlxuICAgICAqIEBzdW1tYXJ5XG4gICAgICogRW5hYmxlcyByZXF1ZXN0IHBheWxvYWQgdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb24gZ2xvYmFsbHkgYWNyb3NzXG4gICAgICogdGhlIGVudGlyZSBOZXN0SlMgYXBwbGljYXRpb24uIE11bHRpcGxlIHBpcGVzIGNhbiBiZSBjaGFpbmVkIHRvZ2V0aGVyXG4gICAgICogZm9yIG1vZHVsYXIgaW5wdXQgdmFsaWRhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Li4uUGlwZVRyYW5zZm9ybVtdfSBwaXBlcyAtIFBpcGUgaW5zdGFuY2VzIHRvIHJlZ2lzdGVyIGdsb2JhbGx5LlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nLlxuICAgICAqL1xuICAgIHN0YXRpYyB1c2VHbG9iYWxQaXBlcyguLi5waXBlcykge1xuICAgICAgICBpZiAocGlwZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHRoaXMuYXBwLnVzZUdsb2JhbFBpcGVzKC4uLnBpcGVzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFJlZ2lzdGVycyBvbmUgb3IgbW9yZSBnbG9iYWwgZXhjZXB0aW9uIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIElmIG5vIGZpbHRlcnMgYXJlIHByb3ZpZGVkLCBpdCBhdXRvbWF0aWNhbGx5IHJlZ2lzdGVycyBhIGRlZmF1bHRcbiAgICAgKiBzZXQgb2Ygc3RhbmRhcmQgZXhjZXB0aW9uIGZpbHRlcnMgZm9yIGNvbW1vbiBlcnJvciB0eXBlcyBsaWtlXG4gICAgICogYEh0dHBFeGNlcHRpb25gLCBgVmFsaWRhdGlvbkV4Y2VwdGlvbmAsIGBDb25mbGljdEV4Y2VwdGlvbmAsIGFuZCBvdGhlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gey4uLkV4Y2VwdGlvbkZpbHRlcltdfSBmaWx0ZXJzIC0gT3B0aW9uYWwgZmlsdGVycyB0byBhcHBseSBnbG9iYWxseS5cbiAgICAgKi9cbiAgICBzdGF0aWMgdXNlR2xvYmFsRmlsdGVycyguLi5maWx0ZXJzKSB7XG4gICAgICAgIHRoaXMuYXBwLnVzZUdsb2JhbEZpbHRlcnMoLi4uKGZpbHRlcnMubGVuZ3RoID4gMCA/IGZpbHRlcnMgOiBbbmV3IERlY2FmRXhjZXB0aW9uRmlsdGVyKCldKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBSZWdpc3RlcnMgZ2xvYmFsIGludGVyY2VwdG9ycyBmb3IgcmVxdWVzdCBhbmQgcmVzcG9uc2UgdHJhbnNmb3JtYXRpb24uXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIEludGVyY2VwdG9ycyBhbGxvdyBhZHZhbmNlZCByZXF1ZXN0L3Jlc3BvbnNlIG1hbmlwdWxhdGlvbiBzdWNoIGFzXG4gICAgICogc2VyaWFsaXphdGlvbiwgbG9nZ2luZywgb3IgdHJhbnNmb3JtYXRpb24uIE11bHRpcGxlIGludGVyY2VwdG9yc1xuICAgICAqIGNhbiBiZSBhZGRlZCBmb3IgbW9kdWxhciBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHsuLi5OZXN0SW50ZXJjZXB0b3JbXX0gaW50ZXJjZXB0b3JzIC0gSW50ZXJjZXB0b3IgaW5zdGFuY2VzIHRvIHJlZ2lzdGVyLlxuICAgICAqIEByZXR1cm4ge05lc3RCb290c3RyYXBlcn0gUmV0dXJucyB0aGUgY2xhc3MgZm9yIGNoYWluaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIHVzZUdsb2JhbEludGVyY2VwdG9ycyguLi5pbnRlcmNlcHRvcnMpIHtcbiAgICAgICAgaWYgKGludGVyY2VwdG9ycy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgdGhpcy5hcHAudXNlR2xvYmFsSW50ZXJjZXB0b3JzKC4uLmludGVyY2VwdG9ycyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBTdGFydHMgdGhlIE5lc3RKUyBhcHBsaWNhdGlvbiBhbmQgYmluZHMgaXQgdG8gdGhlIGdpdmVuIHBvcnQgYW5kIGhvc3QuXG4gICAgICpcbiAgICAgKiBAc3VtbWFyeVxuICAgICAqIExpc3RlbnMgb24gdGhlIHNwZWNpZmllZCBwb3J0IGFuZCBvcHRpb25hbGx5IGEgaG9zdC4gT25jZSBzdGFydGVkLFxuICAgICAqIGxvZ3MgdGhlIGFwcGxpY2F0aW9uIFVSTCBmb3IgZWFzeSBhY2Nlc3MuIFRoZSBzdGFydHVwIHByb2Nlc3MgcmVzb2x2ZXNcbiAgICAgKiBvbmNlIHRoZSBhcHBsaWNhdGlvbiBpcyBzdWNjZXNzZnVsbHkgcnVubmluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9ydD0zMDAwXSAtIFBvcnQgbnVtYmVyIHRvIGxpc3RlbiBvbi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2hvc3RdIC0gT3B0aW9uYWwgaG9zdCBvciBJUCBhZGRyZXNzIHRvIGJpbmQgdG8uXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbbG9nPXRydWVdIC0gV2hldGhlciB0byBsb2cgdGhlIGFwcGxpY2F0aW9uIFVSTCB1cG9uIHN0YXJ0dXAuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgb25jZSB0aGUgYXBwbGljYXRpb24gc3RhcnRzIHN1Y2Nlc3NmdWxseS5cbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgc3RhcnQocG9ydCA9IE51bWJlcihwcm9jZXNzLmVudi5QT1JUKSB8fCAzMDAwLCBob3N0ID0gdW5kZWZpbmVkLCBsb2cgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuYXBwLmxpc3Rlbihwb3J0LCBob3N0KS50aGVuKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLmFwcC5nZXRVcmwoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYPCfmoAgQXBwbGljYXRpb24gaXMgcnVubmluZyBhdDogJHt1cmx9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVRtVnpkRUp2YjNSemRISmhjR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJaaFkzUnZjbmt2VG1WemRFSnZiM1J6ZEhKaGNHVnlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGRlRDeE5RVUZOTEVkQlIxQXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU40UWl4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNPRUpCUVhGQ08wRkJRM0JFTEU5QlFVOHNSVUZCUlN4alFVRmpMRVZCUVVVc01rSkJRV3RDTzBGQlJUTkRMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzTUVKQlFXbENPMEZCTkVOeVF6czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSMEVyUTBjN1FVRkRTQ3hOUVVGTkxFOUJRVThzWlVGQlpUdEpRVWt4UWpzN096czdPenM3TzA5QlUwYzdTVUZEU3l4TlFVRk5MRXRCUVVzc1RVRkJUVHRSUVVOMlFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8xbEJRMnhDTEZkQlFWYzdXVUZEV0N4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUXpkRExFTkJRVU03VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNN1NVRkRkRUlzUTBGQlF6dEpRVVZFT3pzN096czdPenM3TzA5QlZVYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRWEZDTzFGQlEzSkRMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlEyWXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenM3TzA5QlYwYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExGbEJRWEZDTzFGQlEzWkRMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzV1VGQldTeEpRVUZKTEVsQlFVa3NUVUZCVFN4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRek5FTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnFReXhQUVVGUExFbEJRVWtzUTBGQlF6dEpRVU5rTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN096dFBRV0ZITzBsQlEwZ3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkRaaXhWUVVFd1FpeEZRVUZGTEVWQlF6VkNMR1ZCUVhsQ0xFTkJRVU1zUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1VVRkJVU3hEUVVGRE8xRkJSWHBFTEUxQlFVMHNZMEZCWXl4SFFVTnNRaXhQUVVGUExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWEpGTEUxQlFVMHNWMEZCVnl4SFFVRm5RanRaUVVNdlFpeE5RVUZOTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVU3WjBKQlF6TkNMR3REUVVGclF6dG5Ra0ZEYkVNc1NVRkJTU3hEUVVGRExFMUJRVTA3YjBKQlFVVXNUMEZCVHl4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVVjZReXhKUVVORkxHTkJRV01zUzBGQlN5eEhRVUZITzI5Q1FVTjBRaXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRPM2RDUVVNMVFpeGpRVUZqTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlEyaEVMRU5CUVVNN2IwSkJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU01UWl4RFFVRkRPMmRDUVVWRUxGRkJRVkVzUTBGQlF5eEpRVUZKTEZOQlFWTXNRMEZCUXl4VlFVRlZMRTFCUVUwc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14UkN4RFFVRkRPMWxCUTBRc1YwRkJWeXhGUVVGRkxFbEJRVWs3V1VGRGFrSXNUMEZCVHl4RlFVRkZMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzFOQlEyaERMRU5CUVVNN1VVRkZSaXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOcVF5eFBRVUZQTEVsQlFVa3NRMEZCUXp0SlFVTmtMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3VDBGWFJ6dEpRVU5JTEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJOa0k3VVVGRE5VTXNTVUZCU1N4RFFVRkRPMWxCUTBnc2FVVkJRV2xGTzFsQlEycEZMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMREJEUVVFd1F6dFpRVU0xUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNNVFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXg1UTBGQmVVTXNRMEZCUXl4RFFVRkRPMUZCUXpkRUxFTkJRVU03VVVGQlF5eE5RVUZOTEVOQlFVTTdXVUZEVUN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5dzBRMEZCTkVNc1EwRkJReXhEUVVGRE8xRkJRMnBGTEVOQlFVTTdVVUZGUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdUMEZYUnp0SlFVTklMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQk5FSTdVVUZET1VNc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSVHRaUVVNelF5eExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzN1dVRkRjRUlzVjBGQlZ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4WFFVRlhPMWxCUTJoRExFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNUMEZCVHp0WlFVTjRRaXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVa3NTVUZCU1N4TFFVRkxPMWxCUXpOQ0xHOUNRVUZ2UWl4RlFVRkZMRTlCUVU4c1EwRkJReXh2UWtGQmIwSXNTVUZCU1N4SlFVRkpPMWxCUXpGRUxGVkJRVlVzUlVGQlJTeFBRVUZQTEVOQlFVTXNWVUZCVlR0WlFVTTVRaXhsUVVGbExFVkJRVVVzVDBGQlR5eERRVUZETEZkQlFWYzdXVUZEY0VNc2EwSkJRV3RDTEVWQlFVVXNUMEZCVHl4RFFVRkRMR05CUVdNN1dVRkRNVU1zWVVGQllTeEZRVUZGTEU5QlFVOHNRMEZCUXl4aFFVRmhPMWxCUTNCRExHVkJRV1VzUlVGQlJTeFBRVUZQTEVOQlFVTXNaVUZCWlR0WlFVTjRReXhsUVVGbExFVkJRVVVzVDBGQlR5eERRVUZETEdWQlFXVTdVMEZEZWtNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMUZCUTNaQ0xFOUJRVThzU1VGQlNTeERRVUZETzBsQlEyUXNRMEZCUXp0SlFVVkVPenM3T3pzN096czdPenRQUVZkSE8wbEJRMGdzVFVGQlRTeERRVUZETEdOQlFXTXNRMEZCUXl4SFFVRkhMRXRCUVhOQ08xRkJRemRETEVsQlFVa3NTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRE8xbEJRVVVzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4alFVRmpMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU40UkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJEczdPenM3T3pzN096dFBRVlZITzBsQlEwZ3NUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVkQlFVY3NUMEZCWXp0UlFVTjJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhEUVVOMlFpeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVOcVJTeERRVUZETzFGQlEwWXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenM3TzA5QlYwYzdTVUZEU0N4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNSMEZCUnl4WlFVRXJRanRSUVVNM1JDeEpRVUZKTEZsQlFWa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJRenRaUVVONlFpeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRiRVFzVDBGQlR5eEpRVUZKTEVOQlFVTTdTVUZEWkN4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdUMEZoUnp0SlFVTklMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVU5vUWl4UFFVRmxMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRWxCUVVrc1JVRkRMME1zVDBGQk1rSXNVMEZCVXl4RlFVTndReXhOUVVGbExFbEJRVWs3VVVGRmJrSXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFWY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFbEJRVWtzUlVGQlJUdFpRVU5xUkN4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU5TTEUxQlFVMHNSMEZCUnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0blFrRkRjRU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc2FVTkJRV2xETEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRNVVFzUTBGQlF6dFJRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTB3c1EwRkJRenREUVVOR0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdGNiaUFnU1U1bGMzUkJjSEJzYVdOaGRHbHZiaXhjYmlBZ1RHOW5aMlZ5TEZ4dUlDQk9aWE4wU1c1MFpYSmpaWEIwYjNJc1hHNGdJRkJwY0dWVWNtRnVjMlp2Y20wc1hHNTlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dSR1ZqWVdaRmVHTmxjSFJwYjI1R2FXeDBaWElnZlNCbWNtOXRJRndpTGk5bGVHTmxjSFJwYjI1elhDSTdYRzVwYlhCdmNuUWdleUJUZDJGbloyVnlRblZwYkdSbGNpQjlJR1p5YjIwZ1hDSXVMMjl3Wlc1aGNHbGNJanRjYm1sdGNHOXlkQ0I3SUVOdmNuTlBjSFJwYjI1eklIMGdabkp2YlNCY0lrQnVaWE4wYW5NdlkyOXRiVzl1TDJsdWRHVnlabUZqWlhNdlpYaDBaWEp1WVd3dlkyOXljeTF2Y0hScGIyNXpMbWx1ZEdWeVptRmpaVndpTzF4dWFXMXdiM0owSUhzZ1EyOXljMFZ5Y205eUlIMGdabkp2YlNCY0lpNHZaWEp5YjNKelhDSTdYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdLaUJFWldacGJtVnpJR0ZzYkNCamRYTjBiMjFwZW1GaWJHVWdjR0Z5WVcxbGRHVnljeUJtYjNJZ1UzZGhaMmRsY2lCelpYUjFjQzVjYmlBcVhHNGdLaUJBYzNWdGJXRnllVnh1SUNvZ1ZHaHBjeUJwYm5SbGNtWmhZMlVnWVd4c2IzZHpJR1JsZG1Wc2IzQmxjbk1nZEc4Z1kzVnpkRzl0YVhwbElHaHZkeUJUZDJGbloyVnlJRlZKSUdseklHTnZibVpwWjNWeVpXUmNiaUFxSUhkcGRHaHBiaUIwYUdVZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUxpQkpkQ0JwYm1Oc2RXUmxjeUJ3WVhKaGJXVjBaWEp6SUdadmNpQjBhWFJzWlhNc0lIQmhkR2h6TEZ4dUlDb2dZMjlzYjNJZ2MyTm9aVzFsY3l3Z1lXNWtJR0Z6YzJWMElIQmhkR2h6SUhSdklIUmhhV3h2Y2lCMGFHVWdRVkJKSUdSdlkzVnRaVzUwWVhScGIyNGdaWGh3WlhKcFpXNWpaUzVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkR2wwYkdVZ0xTQlVhWFJzWlNCa2FYTndiR0Y1WldRZ2FXNGdVM2RoWjJkbGNpQlZTUzVjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCa1pYTmpjbWx3ZEdsdmJpQXRJRVJsYzJOeWFYQjBhVzl1SUhOb2IzZHVJR0psYkc5M0lIUm9aU0IwYVhSc1pTNWNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IyWlhKemFXOXVJQzBnUVZCSklIWmxjbk5wYjI0Z1pHbHpjR3hoZVdWa0lHbHVJSFJvWlNCa2IyTjFiV1Z1ZEdGMGFXOXVMbHh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0d1lYUm9YU0F0SUU5d2RHbHZibUZzSUhCaGRHZ2dkMmhsY21VZ1UzZGhaMmRsY2lCM2FXeHNJR0psSUdGMllXbHNZV0pzWlM1Y2JpQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXM0JsY25OcGMzUkJkWFJvYjNKcGVtRjBhVzl1WFNBdElGZG9aWFJvWlhJZ1lYVjBhRzl5YVhwaGRHbHZiaUIwYjJ0bGJuTWdjR1Z5YzJsemRDQmhZM0p2YzNNZ2NtVnNiMkZrY3k1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJZWE56WlhSelVHRjBhRjBnTFNCUVlYUm9JSFJ2SUdOMWMzUnZiU0JoYzNObGRITWdabTl5SUZOM1lXZG5aWElnVlVrdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXM1J2Y0dKaGNrSm5RMjlzYjNKZElDMGdRM1Z6ZEc5dElHSmhZMnRuY205MWJtUWdZMjlzYjNJZ1ptOXlJSFJvWlNCVGQyRm5aMlZ5SUhSdmNDQmlZWEl1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1czUnZjR0poY2tsamIyNVFZWFJvWFNBdElGQmhkR2dnZEc4Z1lTQmpkWE4wYjIwZ2FXTnZiaUJrYVhOd2JHRjVaV1FnYVc0Z2RHaGxJSFJ2Y0NCaVlYSXVYRzRnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzJaaGRtbGpiMjVRWVhSb1hTQXRJRkJoZEdnZ2RHOGdZU0JqZFhOMGIyMGdabUYyYVdOdmJpNWNiaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCVGQyRm5aMlZ5VTJWMGRYQlBjSFJwYjI1eklIdGNiaUFnZEdsMGJHVTZJSE4wY21sdVp6dGNiaUFnWkdWelkzSnBjSFJwYjI0NklITjBjbWx1Wnp0Y2JpQWdkbVZ5YzJsdmJqb2djM1J5YVc1bk8xeHVJQ0J3WVhSb1B6b2djM1J5YVc1bk8xeHVJQ0J3WlhKemFYTjBRWFYwYUc5eWFYcGhkR2x2Ymo4NklHSnZiMnhsWVc0N1hHNGdJR0Z6YzJWMGMxQmhkR2cvT2lCemRISnBibWM3WEc0Z0lIUnZjR0poY2tKblEyOXNiM0kvT2lCemRISnBibWM3WEc0Z0lIUnZjR0poY2tsamIyNVFZWFJvUHpvZ2MzUnlhVzVuTzF4dUlDQm1ZWFpwWTI5dVVHRjBhRDg2SUhOMGNtbHVaenRjYmlBZ0x5b3FYRzRnSUNBcUlGQmhkR2dnZEc4Z1pYaHdiM05sSUhSb1pTQlBjR1Z1UVZCSklITndaV05wWm1sallYUnBiMjRnYVc0Z1NsTlBUaUJtYjNKdFlYUXVYRzRnSUNBcUlFVjRZVzF3YkdVNklDOWhjR2t2YjNCbGJtRndhUzVxYzI5dVhHNGdJQ0FxTDF4dUlDQnZjR1Z1UVhCcFNuTnZibEJoZEdnL09pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJRWVhSb0lIUnZJR1Y0Y0c5elpTQjBhR1VnVDNCbGJrRlFTU0J6Y0dWamFXWnBZMkYwYVc5dUlHbHVJRmxCVFV3Z1ptOXliV0YwTGx4dUlDQWdLaUJTWlhGMWFYSmxjeUFuZVdGdGJDY2djR0ZqYTJGblpTQmhjeUJ3WldWeUlHUmxjR1Z1WkdWdVkza3VYRzRnSUNBcUlFVjRZVzF3YkdVNklDOWhjR2t2YjNCbGJtRndhUzU1WVcxc1hHNGdJQ0FxTDF4dUlDQnZjR1Z1UVhCcFdXRnRiRkJoZEdnL09pQnpkSEpwYm1jN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdLaUJCSUdac2RXVnVkQ3dnYzNSaGRHbGpJR0p2YjNSemRISmhjQ0JqYkdGemN5Qm1iM0lnYVc1cGRHbGhiR2w2YVc1bklHRnVaQ0JqYjI1bWFXZDFjbWx1WnlCaElFNWxjM1JLVXlCaGNIQnNhV05oZEdsdmJpNWNiaUFxWEc0Z0tpQkFjM1Z0YldGeWVWeHVJQ29nVkdobElHQk9aWE4wUW05dmRITjBjbUZ3WlhKZ0lHTnNZWE56SUhCeWIzWnBaR1Z6SUdFZ1kyaGhhVzVoWW14bElFRlFTU0JtYjNJZ1kyOXVabWxuZFhKcGJtZGNiaUFxSUdFZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUlHbHVjM1JoYm1ObExpQkpkQ0JwYm1Oc2RXUmxjeUJpZFdsc2RDMXBiaUJ0WlhSb2IyUnpJR1p2Y2lCbGJtRmliR2x1WjF4dUlDb2dRMDlTVXl3Z1NHVnNiV1YwSUhObFkzVnlhWFI1TENCVGQyRm5aMlZ5SUdSdlkzVnRaVzUwWVhScGIyNHNJR2RzYjJKaGJDQndhWEJsY3l3Z1ptbHNkR1Z5Y3l4Y2JpQXFJR2x1ZEdWeVkyVndkRzl5Y3l3Z1lXNWtJSE4wWVhKMGFXNW5JSFJvWlNCelpYSjJaWEl1WEc0Z0tseHVJQ29nVkdocGN5QmpiR0Z6Y3lCd2NtOXRiM1JsY3lCamIyNXphWE4wWlc1amVTQmhibVFnY21Wa2RXTmxjeUJ5WlhCbGRHbDBhWFpsSUhObGRIVndJR052WkdWY2JpQXFJR0ZqY205emN5QnRkV3gwYVhCc1pTQk9aWE4wU2xNZ2NISnZhbVZqZEhNdVhHNGdLbHh1SUNvZ1FHVjRZVzF3YkdWY2JpQXFJR0JnWUhSelhHNGdLaUJwYlhCdmNuUWdleUJPWlhOMFJtRmpkRzl5ZVNCOUlHWnliMjBnWENKQWJtVnpkR3B6TDJOdmNtVmNJanRjYmlBcUlHbHRjRzl5ZENCN0lFRndjRTF2WkhWc1pTQjlJR1p5YjIwZ1hDSXVMMkZ3Y0M1dGIyUjFiR1ZjSWp0Y2JpQXFJR2x0Y0c5eWRDQjdJRTE1VEc5bloyVnlJSDBnWm5KdmJTQmNJaTR2VFhsTWIyZG5aWEpjSWp0Y2JpQXFJR2x0Y0c5eWRDQjdJRTVsYzNSQ2IyOTBjM1J5WVhCbGNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZabTl5TFc1bGMzUmNJanRjYmlBcVhHNGdLaUJoYzNsdVl5Qm1kVzVqZEdsdmJpQmliMjkwYzNSeVlYQW9LU0I3WEc0Z0tpQWdJR052Ym5OMElHRndjQ0E5SUdGM1lXbDBJRTVsYzNSR1lXTjBiM0o1TG1OeVpXRjBaU2hCY0hCTmIyUjFiR1VwTzF4dUlDcGNiaUFxSUNBZ1lYZGhhWFFnVG1WemRFSnZiM1J6ZEhKaGNHVnlYRzRnS2lBZ0lDQWdMbWx1YVhScFlXeHBlbVVvWVhCd0tWeHVJQ29nSUNBZ0lDNWxibUZpYkdWTWIyZG5aWElvYm1WM0lFMTVURzluWjJWeUtDa3BYRzRnS2lBZ0lDQWdMbVZ1WVdKc1pVTnZjbk1vVzF3aWFIUjBjRG92TDJ4dlkyRnNhRzl6ZERvME1qQXdYQ0pkS1Z4dUlDb2dJQ0FnSUM1MWMyVklaV3h0WlhRb0tWeHVJQ29nSUNBZ0lDNXpaWFIxY0ZOM1lXZG5aWElvZTF4dUlDb2dJQ0FnSUNBZ2RHbDBiR1U2SUZ3aVQzQmxia0ZRU1NCaWVTQlVjbUZrWlUxaGNtdmloS0pjSWl4Y2JpQXFJQ0FnSUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJjSWxSeVlXUmxUV0Z5YStLRW9pQkJVRWtnWkc5amRXMWxiblJoZEdsdmJsd2lMRnh1SUNvZ0lDQWdJQ0FnZG1WeWMybHZiam9nWENJeExqQXVNRndpTEZ4dUlDb2dJQ0FnSUNBZ2NHRjBhRG9nWENKaGNHbGNJaXhjYmlBcUlDQWdJQ0FnSUhCbGNuTnBjM1JCZFhSb2IzSnBlbUYwYVc5dU9pQjBjblZsTEZ4dUlDb2dJQ0FnSUNBZ2RHOXdZbUZ5UW1kRGIyeHZjam9nWENJak1rTXpSVFV3WENJc1hHNGdLaUFnSUNBZ0lDQjBiM0JpWVhKSlkyOXVVR0YwYURvZ1hDSXZZWE56WlhSekwyeHZaMjh1YzNablhDSXNYRzRnS2lBZ0lDQWdJQ0JtWVhacFkyOXVVR0YwYURvZ1hDSXZZWE56WlhSekwyWmhkbWxqYjI0dWFXTnZYQ0pjYmlBcUlDQWdJQ0I5S1Z4dUlDb2dJQ0FnSUM1MWMyVkhiRzlpWVd4R2FXeDBaWEp6S0NsY2JpQXFJQ0FnSUNBdWRYTmxSMnh2WW1Gc1VHbHdaWE1vTGk0dUtWeHVJQ29nSUNBZ0lDNTFjMlZIYkc5aVlXeEpiblJsY21ObGNIUnZjbk1vTGk0dUtWeHVJQ29nSUNBZ0lDNXpkR0Z5ZENnek1EQXdLVHRjYmlBcUlIMWNiaUFxWEc0Z0tpQmliMjkwYzNSeVlYQW9LVHRjYmlBcUlHQmdZRnh1SUNvZ1FHTnNZWE56WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCT1pYTjBRbTl2ZEhOMGNtRndaWElnZTF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCaGNIQTZJRWxPWlhOMFFYQndiR2xqWVhScGIyNDdYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJRjlzYjJkblpYSTZJRXh2WjJkbGNqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVYRzRnSUNBcUlGSmxkSFZ5Ym5NZ2RHaGxJR04xY25KbGJuUWdiRzluWjJWeUlHbHVjM1JoYm1ObExDQmpjbVZoZEdsdVp5QmhJR1JsWm1GMWJIUWdiMjVsSUdsbUlHNXZkQ0J6WlhRdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVYRzRnSUNBcUlFVnVjM1Z5WlhNZ2RHaGhkQ0JoSUhaaGJHbGtJR0JNYjJkblpYSmdJR2x1YzNSaGJtTmxJR2x6SUdGc2QyRjVjeUJoZG1GcGJHRmliR1ZjYmlBZ0lDb2dabTl5SUd4dloyZHBibWNnWW05dmRITjBjbUZ3TFhKbGJHRjBaV1FnYldWemMyRm5aWE11WEc0Z0lDQXFYRzRnSUNBcUlFQnlaWFIxY200Z2UweHZaMmRsY24wZ1ZHaGxJR0ZqZEdsMlpTQnNiMmRuWlhJZ2FXNXpkR0Z1WTJVdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCblpYUWdiRzluWjJWeUtDazZJRXh2WjJkbGNpQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxsOXNiMmRuWlhJcElIdGNiaUFnSUNBZ0lDOHZJR1poYkd4aVlXTnJYRzRnSUNBZ0lDQjBhR2x6TGw5c2IyZG5aWElnUFNCdVpYY2dURzluWjJWeUtGd2lUbVZ6ZEVKdmIzUnpkSEpoY0Z3aUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgyeHZaMmRsY2p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjVjYmlBZ0lDb2dTVzVwZEdsaGJHbDZaWE1nZEdobElHSnZiM1J6ZEhKaGNIQmxjaUIzYVhSb0lHRWdaMmwyWlc0Z1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBYzNWdGJXRnllVnh1SUNBZ0tpQkNhVzVrY3lCMGFHVWdjSEp2ZG1sa1pXUWdUbVZ6ZEVwVElHRndjQ0JwYm5OMFlXNWpaU0IwYnlCMGFHVWdZbTl2ZEhOMGNtRndjR1Z5TENCbGJtRmliR2x1WjF4dUlDQWdLaUJqYUdGcGJtVmtJR052Ym1acFozVnlZWFJwYjI0Z2JXVjBhRzlrY3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdEpUbVZ6ZEVGd2NHeHBZMkYwYVc5dWZTQmhjSEFnTFNCVWFHVWdUbVZ6ZEVwVElHRndjR3hwWTJGMGFXOXVJR2x1YzNSaGJtTmxJSFJ2SUdsdWFYUnBZV3hwZW1VdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTA1bGMzUkNiMjkwYzNSeVlYQmxjbjBnVW1WMGRYSnVjeUIwYUdVZ1kyeGhjM01nWm05eUlHTm9ZV2x1YVc1bklHTnZibVpwWjNWeVlYUnBiMjRnYldWMGFHOWtjeTVjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJwYm1sMGFXRnNhWHBsS0dGd2NEb2dTVTVsYzNSQmNIQnNhV05oZEdsdmJpa2dlMXh1SUNBZ0lIUm9hWE11WVhCd0lEMGdZWEJ3TzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZibHh1SUNBZ0tpQkZibUZpYkdWeklHOXlJSEpsY0d4aFkyVnpJSFJvWlNCbmJHOWlZV3dnYkc5bloyVnlJR1p2Y2lCMGFHVWdUbVZ6ZEVwVElHRndjR3hwWTJGMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWMzVnRiV0Z5ZVZ4dUlDQWdLaUJKWmlCaElHTjFjM1J2YlNCc2IyZG5aWElnYVhNZ2NISnZkbWxrWldRc0lHbDBJSEpsY0d4aFkyVnpJSFJvWlNCa1pXWmhkV3gwSUd4dloyZGxjaTRnVDNSb1pYSjNhWE5sTEZ4dUlDQWdLaUJoSUc1bGR5QnNiMmRuWlhJZ2JtRnRaV1FnWUZ3aVRtVnpkRUp2YjNSemRISmhjRndpWUNCcGN5QjFjMlZrTGlCVWFHbHpJR3h2WjJkbGNpQnBjeUJoYkhOdklISmxaMmx6ZEdWeVpXUmNiaUFnSUNvZ2QybDBhQ0IwYUdVZ1RtVnpkRXBUSUdGd2NHeHBZMkYwYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlMHh2WjJkbGNuMGdXMk4xYzNSdmJVeHZaMmRsY2wwZ0xTQlBjSFJwYjI1aGJDQmpkWE4wYjIwZ2JHOW5aMlZ5SUdsdWMzUmhibU5sTGx4dUlDQWdLaUJBY21WMGRYSnVJSHRPWlhOMFFtOXZkSE4wY21Gd1pYSjlJRkpsZEhWeWJuTWdkR2hsSUdOc1lYTnpJR1p2Y2lCamFHRnBibWx1Wnk1Y2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCbGJtRmliR1ZNYjJkblpYSW9ZM1Z6ZEc5dFRHOW5aMlZ5UHpvZ1RHOW5aMlZ5S1NCN1hHNGdJQ0FnZEdocGN5NWZiRzluWjJWeUlEMGdZM1Z6ZEc5dFRHOW5aMlZ5SUh4OElHNWxkeUJNYjJkblpYSW9YQ0pPWlhOMFFtOXZkSE4wY21Gd1hDSXBPMXh1SUNBZ0lIUm9hWE11WVhCd0xuVnpaVXh2WjJkbGNpaDBhR2x6TGw5c2IyZG5aWElwTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZibHh1SUNBZ0tpQkZibUZpYkdWeklFTnliM056TFU5eWFXZHBiaUJTWlhOdmRYSmpaU0JUYUdGeWFXNW5JQ2hEVDFKVEtTQm1iM0lnZEdobElHRndjR3hwWTJGMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWMzVnRiV0Z5ZVZ4dUlDQWdLaUJCYkd4dmQzTWdaR1ZtYVc1cGJtY2daV2wwYUdWeUlHRWdkMmxzWkdOaGNtUWdiM0pwWjJsdUlDaGdYQ0lxWENKZ0tTQnZjaUJoSUd4cGMzUWdiMllnWVd4c2IzZGxaQ0J2Y21sbmFXNXpMbHh1SUNBZ0tpQkJkWFJ2YldGMGFXTmhiR3g1SUdGalkyVndkSE1nYkc5allXd2daR1YyWld4dmNHMWxiblFnY21WeGRXVnpkSE1nWVc1a0lIUm9iM05sSUhkcGRHaHZkWFFnYjNKcFoybHVJR2hsWVdSbGNuTXVYRzRnSUNBcUlGUm9jbTkzY3lCaElHQkRiM0p6UlhKeWIzSmdJR1p2Y2lCMWJtRjFkR2h2Y21sNlpXUWdiM0pwWjJsdWN5NWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHNuS2ljZ2ZDQnpkSEpwYm1kYlhYMGdXMjl5YVdkcGJuTTlXMTFkSUMwZ1RHbHpkQ0J2WmlCaGJHeHZkMlZrSUc5eWFXZHBibk1nYjNJZ1lGd2lLbHdpWUNCMGJ5QmhiR3h2ZHlCaGJHd3VYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuVzExOUlGdGhiR3h2ZDAxbGRHaHZaSE05V3lkSFJWUW5MQ0FuVUU5VFZDY3NJQ2RRVlZRbkxDQW5SRVZNUlZSRkoxMWRJQzBnUVd4c2IzZGxaQ0JJVkZSUUlHMWxkR2h2WkhNdVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTA1bGMzUkNiMjkwYzNSeVlYQmxjbjBnVW1WMGRYSnVjeUIwYUdVZ1kyeGhjM01nWm05eUlHTm9ZV2x1YVc1bklHTnZibVpwWjNWeVlYUnBiMjR1WEc0Z0lDQXFYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaVzVoWW14bFEyOXljeWhjYmlBZ0lDQnZjbWxuYVc1ek9pQmNJaXBjSWlCOElITjBjbWx1WjF0ZElEMGdXMTBzWEc0Z0lDQWdZV3hzYjNkTlpYUm9iMlJ6T2lCemRISnBibWRiWFNBOUlGdGNJa2RGVkZ3aUxDQmNJbEJQVTFSY0lpd2dYQ0pRVlZSY0lpd2dYQ0pFUlV4RlZFVmNJbDFjYmlBZ0tTQjdYRzRnSUNBZ1kyOXVjM1FnWVd4c2IzZGxaRTl5YVdkcGJuTWdQVnh1SUNBZ0lDQWdiM0pwWjJsdWN5QTlQVDBnWENJcVhDSWdQeUJjSWlwY0lpQTZJRzl5YVdkcGJuTXViV0Z3S0NodktTQTlQaUJ2TG5SeWFXMG9LUzUwYjB4dmQyVnlRMkZ6WlNncEtUdGNibHh1SUNBZ0lHTnZibk4wSUdOdmNuTlBjSFJwYjI1ek9pQkRiM0p6VDNCMGFXOXVjeUE5SUh0Y2JpQWdJQ0FnSUc5eWFXZHBiam9nS0c5eWFXZHBiaXdnWTJGc2JHSmhZMnNwSUQwK0lIdGNiaUFnSUNBZ0lDQWdMeThnUVd4c2IzY2djbVZ4ZFdWemRDQjNhWFJvYjNWMElHOXlhV2RwYmk0dUxseHVJQ0FnSUNBZ0lDQnBaaUFvSVc5eWFXZHBiaWtnY21WMGRYSnVJR05oYkd4aVlXTnJLRzUxYkd3c0lIUnlkV1VwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNCaGJHeHZkMlZrVDNKcFoybHVjeUE5UFQwZ1hDSXFYQ0lnZkh4Y2JpQWdJQ0FnSUNBZ0lDQW9RWEp5WVhrdWFYTkJjbkpoZVNoaGJHeHZkMlZrVDNKcFoybHVjeWtnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJR0ZzYkc5M1pXUlBjbWxuYVc1ekxtbHVZMngxWkdWektHOXlhV2RwYmk1MGIweHZkMlZ5UTJGelpTZ3BLU2xjYmlBZ0lDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTmhiR3hpWVdOcktHNTFiR3dzSUhSeWRXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ1kyRnNiR0poWTJzb2JtVjNJRU52Y25ORmNuSnZjaWhnVDNKcFoybHVJQ1I3YjNKcFoybHVmU0J1YjNRZ1lXeHNiM2RsWkdBcEtUdGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQmpjbVZrWlc1MGFXRnNjem9nZEhKMVpTeGNiaUFnSUNBZ0lHMWxkR2h2WkhNNklHRnNiRzkzVFdWMGFHOWtjeTVxYjJsdUtGd2lMRndpS1N4Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnZEdocGN5NWhjSEF1Wlc1aFlteGxRMjl5Y3loamIzSnpUM0IwYVc5dWN5azdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdJQ0FxSUVGd2NHeHBaWE1nZEdobElFaGxiRzFsZENCdGFXUmtiR1YzWVhKbElHWnZjaUJsYm1oaGJtTmxaQ0J6WldOMWNtbDBlUzVjYmlBZ0lDcGNiaUFnSUNvZ1FITjFiVzFoY25sY2JpQWdJQ29nUkhsdVlXMXBZMkZzYkhrZ2JHOWhaSE1nZEdobElHQm9aV3h0WlhSZ0lIQmhZMnRoWjJVZ2FXWWdZWFpoYVd4aFlteGxJR0Z1WkNCeVpXZHBjM1JsY25NZ2FYUmNiaUFnSUNvZ1lYTWdiV2xrWkd4bGQyRnlaU0IwYnlCcGJYQnliM1psSUVoVVZGQWdhR1ZoWkdWeUlITmxZM1Z5YVhSNUxpQkpaaUJ1YjNRZ2FXNXpkR0ZzYkdWa0xDQnNiMmR6SUdFZ2QyRnlibWx1WjF4dUlDQWdLaUJoYm1RZ1kyOXVkR2x1ZFdWeklHVjRaV04xZEdsdmJpQjNhWFJvYjNWMElIUm9jbTkzYVc1bklHVnljbTl5Y3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdFNaV052Y21ROGMzUnlhVzVuTENCaGJuaytmU0JiYjNCMGFXOXVjMTBnTFNCUGNIUnBiMjVoYkNCamIyNW1hV2QxY21GMGFXOXVJSEJoYzNObFpDQjBieUJJWld4dFpYUXVYRzRnSUNBcUlFQnlaWFIxY200Z2UwNWxjM1JDYjI5MGMzUnlZWEJsY24wZ1VtVjBkWEp1Y3lCMGFHVWdZMnhoYzNNZ1ptOXlJR05vWVdsdWFXNW5JR052Ym1acFozVnlZWFJwYjI0dVhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ2RYTmxTR1ZzYldWMEtHOXdkR2x2Ym5NL09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytLU0I3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtOHRjbVZ4ZFdseVpTMXBiWEJ2Y25SelhHNGdJQ0FnSUNCamIyNXpkQ0JvWld4dFpYUWdQU0J5WlhGMWFYSmxLRndpYUdWc2JXVjBYQ0lwT3lBdkx5QkVlVzVoYldsaklHbHRjRzl5ZENCMGJ5QmhkbTlwWkNCb1lYSmtJR1JsY0dWdVpHVnVZM2xjYmlBZ0lDQWdJSFJvYVhNdVlYQndMblZ6WlNob1pXeHRaWFFvYjNCMGFXOXVjeWtwTzF4dUlDQWdJQ0FnZEdocGN5NXNiMmRuWlhJdWJHOW5LRndpU0dWc2JXVjBJRzFwWkdSc1pYZGhjbVVnWlc1aFlteGxaQ0J6ZFdOalpYTnpablZzYkhrdVhDSXBPMXh1SUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVzYjJkblpYSXVkMkZ5YmloY0lraGxiRzFsZENCdWIzUWdhVzV6ZEdGc2JHVmtMaUJUYTJsd2NHbHVaeUJ0YVdSa2JHVjNZWEpsTGx3aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI1Y2JpQWdJQ29nUTI5dVptbG5kWEpsY3lCaGJtUWdhVzVwZEdsaGJHbDZaWE1nVTNkaFoyZGxjaUJWU1NCbWIzSWdRVkJKSUdSdlkzVnRaVzUwWVhScGIyNHVYRzRnSUNBcVhHNGdJQ0FxSUVCemRXMXRZWEo1WEc0Z0lDQXFJRlZ6WlhNZ2RHaGxJR0JUZDJGbloyVnlRblZwYkdSbGNtQWdkWFJwYkdsMGVTQjBieUJqYjI1bWFXZDFjbVVnUVZCSklHUnZZM1Z0Wlc1MFlYUnBiMjVjYmlBZ0lDb2dkMmwwYUNCa1pYUmhhV3hsWkNCamRYTjBiMjFwZW1GMGFXOXVJR1p2Y2lCMGFYUnNaU3dnZG1WeWMybHZiaXdnY0dGMGFITXNJR0Z1WkNCamIyeHZjbk11WEc0Z0lDQXFJRk4zWVdkblpYSWdhWE1nWVhWMGIyMWhkR2xqWVd4c2VTQmxlSEJ2YzJWa0lHRjBJSFJvWlNCamIyNW1hV2QxY21Wa0lIQmhkR2d1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1UzZGhaMmRsY2xObGRIVndUM0IwYVc5dWMzMGdiM0IwYVc5dWN5QXRJRk4zWVdkblpYSWdZMjl1Wm1sbmRYSmhkR2x2YmlCdmNIUnBiMjV6TGx4dUlDQWdLaUJBY21WMGRYSnVJSHRPWlhOMFFtOXZkSE4wY21Gd1pYSjlJRkpsZEhWeWJuTWdkR2hsSUdOc1lYTnpJR1p2Y2lCamFHRnBibWx1WnlCamIyNW1hV2QxY21GMGFXOXVMbHh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJSE5sZEhWd1UzZGhaMmRsY2lodmNIUnBiMjV6T2lCVGQyRm5aMlZ5VTJWMGRYQlBjSFJwYjI1ektTQjdYRzRnSUNBZ1kyOXVjM1FnYzNkaFoyZGxjaUE5SUc1bGR5QlRkMkZuWjJWeVFuVnBiR1JsY2loMGFHbHpMbUZ3Y0N3Z2UxeHVJQ0FnSUNBZ2RHbDBiR1U2SUc5d2RHbHZibk11ZEdsMGJHVXNYRzRnSUNBZ0lDQmtaWE5qY21sd2RHbHZiam9nYjNCMGFXOXVjeTVrWlhOamNtbHdkR2x2Yml4Y2JpQWdJQ0FnSUhabGNuTnBiMjQ2SUc5d2RHbHZibk11ZG1WeWMybHZiaXhjYmlBZ0lDQWdJSEJoZEdnNklHOXdkR2x2Ym5NdWNHRjBhQ0I4ZkNCY0ltRndhVndpTEZ4dUlDQWdJQ0FnY0dWeWMybHpkRUYxZEdodmNtbDZZWFJwYjI0NklHOXdkR2x2Ym5NdWNHVnljMmx6ZEVGMWRHaHZjbWw2WVhScGIyNGdQejhnZEhKMVpTeGNiaUFnSUNBZ0lHRnpjMlYwYzFCaGRHZzZJRzl3ZEdsdmJuTXVZWE56WlhSelVHRjBhQ3hjYmlBZ0lDQWdJR1poZG1samIyNUdhV3hsVUdGMGFEb2diM0IwYVc5dWN5NW1ZWFpwWTI5dVVHRjBhQ3hjYmlBZ0lDQWdJSFJ2Y0dKaGNrbGpiMjVHYVd4bFVHRjBhRG9nYjNCMGFXOXVjeTUwYjNCaVlYSkpZMjl1VUdGMGFDeGNiaUFnSUNBZ0lIUnZjR0poY2tKblEyOXNiM0k2SUc5d2RHbHZibk11ZEc5d1ltRnlRbWREYjJ4dmNpeGNiaUFnSUNBZ0lHOXdaVzVCY0dsS2MyOXVVR0YwYURvZ2IzQjBhVzl1Y3k1dmNHVnVRWEJwU25OdmJsQmhkR2dzWEc0Z0lDQWdJQ0J2Y0dWdVFYQnBXV0Z0YkZCaGRHZzZJRzl3ZEdsdmJuTXViM0JsYmtGd2FWbGhiV3hRWVhSb0xGeHVJQ0FnSUgwcE8xeHVJQ0FnSUhOM1lXZG5aWEl1YzJWMGRYQlRkMkZuWjJWeUtDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdJQ0FxSUZKbFoybHpkR1Z5Y3lCdmJtVWdiM0lnYlc5eVpTQm5iRzlpWVd3Z2RtRnNhV1JoZEdsdmJpQndhWEJsY3k1Y2JpQWdJQ3BjYmlBZ0lDb2dRSE4xYlcxaGNubGNiaUFnSUNvZ1JXNWhZbXhsY3lCeVpYRjFaWE4wSUhCaGVXeHZZV1FnZG1Gc2FXUmhkR2x2YmlCaGJtUWdkSEpoYm5ObWIzSnRZWFJwYjI0Z1oyeHZZbUZzYkhrZ1lXTnliM056WEc0Z0lDQXFJSFJvWlNCbGJuUnBjbVVnVG1WemRFcFRJR0Z3Y0d4cFkyRjBhVzl1TGlCTmRXeDBhWEJzWlNCd2FYQmxjeUJqWVc0Z1ltVWdZMmhoYVc1bFpDQjBiMmRsZEdobGNseHVJQ0FnS2lCbWIzSWdiVzlrZFd4aGNpQnBibkIxZENCMllXeHBaR0YwYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdleTR1TGxCcGNHVlVjbUZ1YzJadmNtMWJYWDBnY0dsd1pYTWdMU0JRYVhCbElHbHVjM1JoYm1ObGN5QjBieUJ5WldkcGMzUmxjaUJuYkc5aVlXeHNlUzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdUbVZ6ZEVKdmIzUnpkSEpoY0dWeWZTQlNaWFIxY201eklIUm9aU0JqYkdGemN5Qm1iM0lnWTJoaGFXNXBibWN1WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nZFhObFIyeHZZbUZzVUdsd1pYTW9MaTR1Y0dsd1pYTTZJRkJwY0dWVWNtRnVjMlp2Y20xYlhTa2dlMXh1SUNBZ0lHbG1JQ2h3YVhCbGN5NXNaVzVuZEdnZ1BpQXdLU0IwYUdsekxtRndjQzUxYzJWSGJHOWlZV3hRYVhCbGN5Z3VMaTV3YVhCbGN5azdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dVhHNGdJQ0FxSUZKbFoybHpkR1Z5Y3lCdmJtVWdiM0lnYlc5eVpTQm5iRzlpWVd3Z1pYaGpaWEIwYVc5dUlHWnBiSFJsY25NdVhHNGdJQ0FxWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVYRzRnSUNBcUlFbG1JRzV2SUdacGJIUmxjbk1nWVhKbElIQnliM1pwWkdWa0xDQnBkQ0JoZFhSdmJXRjBhV05oYkd4NUlISmxaMmx6ZEdWeWN5QmhJR1JsWm1GMWJIUmNiaUFnSUNvZ2MyVjBJRzltSUhOMFlXNWtZWEprSUdWNFkyVndkR2x2YmlCbWFXeDBaWEp6SUdadmNpQmpiMjF0YjI0Z1pYSnliM0lnZEhsd1pYTWdiR2xyWlZ4dUlDQWdLaUJnU0hSMGNFVjRZMlZ3ZEdsdmJtQXNJR0JXWVd4cFpHRjBhVzl1UlhoalpYQjBhVzl1WUN3Z1lFTnZibVpzYVdOMFJYaGpaWEIwYVc5dVlDd2dZVzVrSUc5MGFHVnljeTVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUhzdUxpNUZlR05sY0hScGIyNUdhV3gwWlhKYlhYMGdabWxzZEdWeWN5QXRJRTl3ZEdsdmJtRnNJR1pwYkhSbGNuTWdkRzhnWVhCd2JIa2daMnh2WW1Gc2JIa3VYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdkWE5sUjJ4dlltRnNSbWxzZEdWeWN5Z3VMaTVtYVd4MFpYSnpPaUJoYm5sYlhTa2dlMXh1SUNBZ0lIUm9hWE11WVhCd0xuVnpaVWRzYjJKaGJFWnBiSFJsY25Nb1hHNGdJQ0FnSUNBdUxpNG9abWxzZEdWeWN5NXNaVzVuZEdnZ1BpQXdJRDhnWm1sc2RHVnljeUE2SUZ0dVpYY2dSR1ZqWVdaRmVHTmxjSFJwYjI1R2FXeDBaWElvS1YwcFhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjVjYmlBZ0lDb2dVbVZuYVhOMFpYSnpJR2RzYjJKaGJDQnBiblJsY21ObGNIUnZjbk1nWm05eUlISmxjWFZsYzNRZ1lXNWtJSEpsYzNCdmJuTmxJSFJ5WVc1elptOXliV0YwYVc5dUxseHVJQ0FnS2x4dUlDQWdLaUJBYzNWdGJXRnllVnh1SUNBZ0tpQkpiblJsY21ObGNIUnZjbk1nWVd4c2IzY2dZV1IyWVc1alpXUWdjbVZ4ZFdWemRDOXlaWE53YjI1elpTQnRZVzVwY0hWc1lYUnBiMjRnYzNWamFDQmhjMXh1SUNBZ0tpQnpaWEpwWVd4cGVtRjBhVzl1TENCc2IyZG5hVzVuTENCdmNpQjBjbUZ1YzJadmNtMWhkR2x2Ymk0Z1RYVnNkR2x3YkdVZ2FXNTBaWEpqWlhCMGIzSnpYRzRnSUNBcUlHTmhiaUJpWlNCaFpHUmxaQ0JtYjNJZ2JXOWtkV3hoY2lCamIyNW1hV2QxY21GMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZXk0dUxrNWxjM1JKYm5SbGNtTmxjSFJ2Y2x0ZGZTQnBiblJsY21ObGNIUnZjbk1nTFNCSmJuUmxjbU5sY0hSdmNpQnBibk4wWVc1alpYTWdkRzhnY21WbmFYTjBaWEl1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMDVsYzNSQ2IyOTBjM1J5WVhCbGNuMGdVbVYwZFhKdWN5QjBhR1VnWTJ4aGMzTWdabTl5SUdOb1lXbHVhVzVuSUdOdmJtWnBaM1Z5WVhScGIyNHVYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdkWE5sUjJ4dlltRnNTVzUwWlhKalpYQjBiM0p6S0M0dUxtbHVkR1Z5WTJWd2RHOXljem9nVG1WemRFbHVkR1Z5WTJWd2RHOXlXMTBwSUh0Y2JpQWdJQ0JwWmlBb2FXNTBaWEpqWlhCMGIzSnpMbXhsYm1kMGFDQStJREFwWEc0Z0lDQWdJQ0IwYUdsekxtRndjQzUxYzJWSGJHOWlZV3hKYm5SbGNtTmxjSFJ2Y25Nb0xpNHVhVzUwWlhKalpYQjBiM0p6S1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjVjYmlBZ0lDb2dVM1JoY25SeklIUm9aU0JPWlhOMFNsTWdZWEJ3YkdsallYUnBiMjRnWVc1a0lHSnBibVJ6SUdsMElIUnZJSFJvWlNCbmFYWmxiaUJ3YjNKMElHRnVaQ0JvYjNOMExseHVJQ0FnS2x4dUlDQWdLaUJBYzNWdGJXRnllVnh1SUNBZ0tpQk1hWE4wWlc1eklHOXVJSFJvWlNCemNHVmphV1pwWldRZ2NHOXlkQ0JoYm1RZ2IzQjBhVzl1WVd4c2VTQmhJR2h2YzNRdUlFOXVZMlVnYzNSaGNuUmxaQ3hjYmlBZ0lDb2diRzluY3lCMGFHVWdZWEJ3YkdsallYUnBiMjRnVlZKTUlHWnZjaUJsWVhONUlHRmpZMlZ6Y3k0Z1ZHaGxJSE4wWVhKMGRYQWdjSEp2WTJWemN5QnlaWE52YkhabGMxeHVJQ0FnS2lCdmJtTmxJSFJvWlNCaGNIQnNhV05oZEdsdmJpQnBjeUJ6ZFdOalpYTnpablZzYkhrZ2NuVnVibWx1Wnk1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHdiM0owUFRNd01EQmRJQzBnVUc5eWRDQnVkVzFpWlhJZ2RHOGdiR2x6ZEdWdUlHOXVMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyaHZjM1JkSUMwZ1QzQjBhVzl1WVd3Z2FHOXpkQ0J2Y2lCSlVDQmhaR1J5WlhOeklIUnZJR0pwYm1RZ2RHOHVYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyeHZaejEwY25WbFhTQXRJRmRvWlhSb1pYSWdkRzhnYkc5bklIUm9aU0JoY0hCc2FXTmhkR2x2YmlCVlVrd2dkWEJ2YmlCemRHRnlkSFZ3TGx4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQSFp2YVdRK2ZTQlNaWE52YkhabGN5QnZibU5sSUhSb1pTQmhjSEJzYVdOaGRHbHZiaUJ6ZEdGeWRITWdjM1ZqWTJWemMyWjFiR3g1TGx4dUlDQWdLaTljYmlBZ2MzUmhkR2xqSUdGemVXNWpJSE4wWVhKMEtGeHVJQ0FnSUhCdmNuUTZJRzUxYldKbGNpQTlJRTUxYldKbGNpaHdjbTlqWlhOekxtVnVkaTVRVDFKVUtTQjhmQ0F6TURBd0xGeHVJQ0FnSUdodmMzUTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ0E5SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0JzYjJjNklHSnZiMnhsWVc0Z1BTQjBjblZsWEc0Z0lDa2dlMXh1SUNBZ0lIUm9hWE11WVhCd0xteHBjM1JsYmlod2IzSjBMQ0JvYjNOMElHRnpJR0Z1ZVNrdWRHaGxiaWhoYzNsdVl5QW9LU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9iRzluS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhWeWJDQTlJR0YzWVdsMElIUm9hWE11WVhCd0xtZGxkRlZ5YkNncE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG14dloyZGxjaTVzYjJjb1lQQ2Ztb0FnUVhCd2JHbGpZWFJwYjI0Z2FYTWdjblZ1Ym1sdVp5QmhkRG9nSkh0MWNteDlZQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
package/lib/cjs/index.cjs CHANGED
@@ -60,21 +60,21 @@ __exportStar(require("./events-module/index.cjs"), exports);
60
60
  * @constant
61
61
  * @type {string}
62
62
  */
63
- exports.VERSION = "0.11.2-refactor.3";
63
+ exports.VERSION = "0.11.2-refactor.4";
64
64
  /**
65
65
  * @description Represents the current commit hash of the module build.
66
66
  * @summary Stores the current git commit hash for the package. The build replaces
67
67
  * the placeholder with the actual commit hash at publish time.
68
68
  * @const COMMIT
69
69
  */
70
- exports.COMMIT = "d657fc5";
70
+ exports.COMMIT = "1b4f98c";
71
71
  /**
72
72
  * @description Represents the full version string of the module.
73
73
  * @summary Stores the semver version and commit hash for the package.
74
74
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
75
75
  * @const FULL_VERSION
76
76
  */
77
- exports.FULL_VERSION = "0.11.2-refactor.3-d657fc5";
77
+ exports.FULL_VERSION = "0.11.2-refactor.4-1b4f98c";
78
78
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
79
79
  decoration_1.Metadata.allowReregistration(true);
80
80
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);