@decaf-ts/for-nest 0.11.2-refactor → 0.11.2-refactor.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/for-nest.cjs +157 -139
  2. package/dist/for-nest.js +166 -148
  3. package/lib/cjs/auth/AuthInterceptor.cjs +5 -3
  4. package/lib/cjs/auth/constants.cjs +4 -3
  5. package/lib/cjs/cli-module.cjs +19 -4
  6. package/lib/cjs/constants.cjs +3 -4
  7. package/lib/cjs/controllers.cjs +5 -9
  8. package/lib/cjs/decaf-model/DecafModelModule.cjs +7 -3
  9. package/lib/cjs/decaf-model/FromModelController.cjs +22 -5
  10. package/lib/cjs/decaf-model/decorators/decorators.cjs +4 -4
  11. package/lib/cjs/decaf-model/index.cjs +2 -2
  12. package/lib/cjs/index.cjs +3 -3
  13. package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs +2 -4
  14. package/lib/cjs/module.cjs +3 -2
  15. package/lib/esm/auth/AuthInterceptor.js +5 -3
  16. package/lib/esm/auth/constants.js +2 -1
  17. package/lib/esm/cli-module.js +18 -3
  18. package/lib/esm/constants.js +1 -2
  19. package/lib/esm/controllers.js +4 -8
  20. package/lib/esm/decaf-model/DecafModelModule.js +6 -2
  21. package/lib/esm/decaf-model/FromModelController.js +22 -5
  22. package/lib/esm/decaf-model/decorators/decorators.js +2 -2
  23. package/lib/esm/decaf-model/index.js +1 -1
  24. package/lib/esm/index.js +3 -3
  25. package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +1 -3
  26. package/lib/esm/module.js +2 -1
  27. package/lib/types/auth/constants.d.cts +1 -0
  28. package/lib/types/auth/constants.d.mts +1 -0
  29. package/lib/types/constants.d.cts +0 -1
  30. package/lib/types/constants.d.mts +0 -1
  31. package/lib/types/decaf-model/FromModelController.d.cts +1 -1
  32. package/lib/types/decaf-model/FromModelController.d.mts +1 -1
  33. package/lib/types/decaf-model/decorators/decorators.d.cts +1 -1
  34. package/lib/types/decaf-model/decorators/decorators.d.mts +1 -1
  35. package/lib/types/decaf-model/index.d.cts +1 -0
  36. package/lib/types/decaf-model/index.d.mts +1 -0
  37. package/lib/types/index.d.cts +3 -3
  38. package/lib/types/index.d.mts +3 -3
  39. package/package.json +1 -1
@@ -39,12 +39,14 @@ let AuthInterceptor = class AuthInterceptor {
39
39
  const modelName = this.reflector.get(constants_js_1.AUTH_META_KEY, ctx.getHandler()) ??
40
40
  this.reflector.get(constants_js_1.AUTH_META_KEY, ctx.getClass());
41
41
  const requiredRoles = this.reflector.getAllAndOverride(constants_js_1.REQUIRED_ROLES_KEY, [ctx.getHandler(), ctx.getClass()]);
42
+ const skipModelRoles = this.reflector.getAllAndOverride(constants_js_1.SKIP_MODEL_ROLES_KEY, [ctx.getHandler(), ctx.getClass()]);
43
+ const effectiveModel = skipModelRoles ? undefined : modelName;
42
44
  log.verbose(`Intercepted request${modelName ? ` for ${modelName}` : ""}`);
43
45
  if (isPublic) {
44
46
  log.debug(`Public route — skipping auth`);
45
47
  }
46
48
  else if (this.authHandler) {
47
- await this.authHandler.authorize(ctx, modelName, requiredRoles, this.requestContext);
49
+ await this.authHandler.authorize(ctx, effectiveModel, requiredRoles, this.requestContext);
48
50
  }
49
51
  else {
50
52
  log.debug(`No auth handler registered`);
@@ -84,5 +86,5 @@ exports.AuthInterceptor = AuthInterceptor = __decorate([
84
86
  __metadata("design:paramtypes", [core_1.Reflector,
85
87
  DecafRequestContext_js_1.DecafRequestContext, Object])
86
88
  ], AuthInterceptor);
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvQXV0aEludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBSVYsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLHVCQUFvQjtBQUU3RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNENBQXVDO0FBRzlELElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFDMUIsWUFDbUIsU0FBb0IsRUFDbEIsY0FBbUMsRUFDSCxXQUF5QjtRQUYzRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNILGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQzNFLENBQUM7SUFFSixLQUFLLENBQUMsU0FBUyxDQUNiLEdBQXFCLEVBQ3JCLElBQWlCO1FBRWpCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBVyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFVLGFBQWEsRUFBRTtZQUN4RSxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxRQUFRLEVBQUU7U0FDZixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMs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b3IsXG4gIEV4ZWN1dGlvbkNvbnRleHQsXG4gIENhbGxIYW5kbGVyLFxuICBJbmplY3QsXG4gIE9wdGlvbmFsLFxuICBTY29wZSxcbn0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBSZWZsZWN0b3IgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFJlcXVlc3RUb0NvbnRleHRUcmFuc2Zvcm1lciB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWh0dHAvc2VydmVyXCI7XG5cbmltcG9ydCB7IEFVVEhfSEFORExFUiwgQVVUSF9NRVRBX0tFWSwgSVNfUFVCTElDX0tFWSwgUkVRVUlSRURfUk9MRVNfS0VZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEF1dGhIYW5kbGVyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4uL3JlcXVlc3QvRGVjYWZSZXF1ZXN0Q29udGV4dFwiO1xuXG5ASW5qZWN0YWJsZSh7IHNjb3BlOiBTY29wZS5SRVFVRVNUIH0pXG5leHBvcnQgY2xhc3MgQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgTmVzdEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWZsZWN0b3I6IFJlZmxlY3RvcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVxdWVzdENvbnRleHQ6IERlY2FmUmVxdWVzdENvbnRleHQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX0hBTkRMRVIpIHByaXZhdGUgcmVhZG9ubHkgYXV0aEhhbmRsZXI/OiBBdXRoSGFuZGxlclxuICApIHt9XG5cbiAgYXN5bmMgaW50ZXJjZXB0KFxuICAgIGN0eDogRXhlY3V0aW9uQ29udGV4dCxcbiAgICBuZXh0OiBDYWxsSGFuZGxlclxuICApOiBQcm9taXNlPE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKHRoaXMgYXMgYW55KS5mb3IodGhpcy5pbnRlcmNlcHQpO1xuXG4gICAgY29uc3QgaXNQdWJsaWMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZTxib29sZWFuPihJU19QVUJMSUNfS0VZLCBbXG4gICAgICBjdHguZ2V0SGFuZGxlcigpLFxuICAgICAgY3R4LmdldENsYXNzKCksXG4gICAgXSk7XG5cbiAgICBjb25zdCBtb2RlbE5hbWUgPVxuICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0PHN0cmluZyB8IENvbnN0cnVjdG9yPihcbiAgICAgICAgQVVUSF9NRVRBX0tFWSxcbiAgICAgICAgY3R4LmdldEhhbmRsZXIoKVxuICAgICAgKSA/P1xuICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0PHN0cmluZyB8IENvbnN0cnVjdG9yPihBVVRIX01FVEFfS0VZLCBjdHguZ2V0Q2xhc3MoKSk7XG5cbiAgICBjb25zdCByZXF1aXJlZFJvbGVzID0gdGhpcy5yZWZsZWN0b3IuZ2V0QWxsQW5kT3ZlcnJpZGU8c3RyaW5nW10+KFxuICAgICAgUkVRVUlSRURfUk9MRVNfS0VZLFxuICAgICAgW2N0eC5nZXRIYW5kbGVyKCksIGN0eC5nZXRDbGFzcygpXVxuICAgICk7XG5cbiAgICBsb2cudmVyYm9zZShgSW50ZXJjZXB0ZWQgcmVxdWVzdCR7bW9kZWxOYW1lID8gYCBmb3IgJHttb2RlbE5hbWV9YCA6IFwiXCJ9YCk7XG5cbiAgICBpZiAoaXNQdWJsaWMpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUHVibGljIHJvdXRlIOKAlCBza2lwcGluZyBhdXRoYCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1dGhIYW5kbGVyKSB7XG4gICAgICBhd2FpdCB0aGlzLmF1dGhIYW5kbGVyLmF1dGhvcml6ZShcbiAgICAgICAgY3R4LFxuICAgICAgICBtb2RlbE5hbWUgYXMgc3RyaW5nIHwgQ29uc3RydWN0b3IsXG4gICAgICAgIHJlcXVpcmVkUm9sZXMsXG4gICAgICAgIHRoaXMucmVxdWVzdENvbnRleHRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5kZWJ1ZyhgTm8gYXV0aCBoYW5kbGVyIHJlZ2lzdGVyZWRgKTtcbiAgICB9XG5cbiAgICAvLyBUcmFuc2Zvcm1lcnMgcnVuIEFGVEVSIGF1dGggc28gdGhleSBjYW4gcmVhZCBhdXRoLXBvcHVsYXRlZCBmaWVsZHNcbiAgICAvLyAoZS5nLiBgdXNlcmApIGZyb20gdGhlIGNvbnRleHQgYW5kIG1hcCB0aGVtIHRvIGFkYXB0ZXItc3BlY2lmaWMga2V5c1xuICAgIC8vIChlLmcuIGBVVUlEYCBmb3IgUmFtQWRhcHRlcidzIEBjcmVhdGVkQnkvQHVwZGF0ZWRCeSBoYW5kbGVycykuXG4gICAgYXdhaXQgdGhpcy5hcHBseVRyYW5zZm9ybWVycygpO1xuXG4gICAgY29uc3QgdXNlciA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJ1c2VyXCIgYXMgYW55KTtcbiAgICBjb25zdCBvcmdhbml6YXRpb24gPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3JnYW5pemF0aW9uXCIgYXMgYW55KTtcbiAgICBpZiAodXNlciB8fCBvcmdhbml6YXRpb24pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRMb2cgPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldChcImxvZ2dlclwiIGFzIGFueSk7XG4gICAgICBjb25zdCBjaGlsZExvZyA9IGN1cnJlbnRMb2cuZm9yKHsgdXNlciwgb3JnYW5pemF0aW9uIH0pO1xuICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dC5hY2N1bXVsYXRlKHsgbG9nZ2VyOiBjaGlsZExvZyB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYXBwbHlUcmFuc2Zvcm1lcnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmxhdm91cnMgPSBBZGFwdGVyLmZsYXZvdXJzVG9UcmFuc2Zvcm0oKTtcbiAgICBpZiAoIWZsYXZvdXJzKSByZXR1cm47XG5cbiAgICBmb3IgKGNvbnN0IGZsYXZvdXIgb2YgZmxhdm91cnMpIHtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gQWRhcHRlci50cmFuc2Zvcm1lckZvcihcbiAgICAgICAgZmxhdm91clxuICAgICAgKSBhcyBSZXF1ZXN0VG9Db250ZXh0VHJhbnNmb3JtZXI8YW55PjtcbiAgICAgIGlmICghdHJhbnNmb3JtZXIpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgZnJvbSA9IGF3YWl0IHRyYW5zZm9ybWVyLmZyb20odGhpcy5yZXF1ZXN0Q29udGV4dCk7XG4gICAgICBpZiAoZnJvbSkgdGhpcy5yZXF1ZXN0Q29udGV4dC5hY2N1bXVsYXRlKGZyb20pO1xuICAgIH1cbiAgfVxufVxuIl19
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQXV0aEludGVyY2VwdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdB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ZUFBZSxHQUFHLFVBQVUsQ0FBQztJQUN6QixJQUFBLG1CQUFVLEVBQUMsRUFBRSxLQUFLLEVBQUUsY0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBQSxpQkFBUSxHQUFFLENBQUM7SUFDdEIsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFBLGVBQU0sRUFBQywyQkFBWSxDQUFDLENBQUM7SUFDaEMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsZ0JBQVM7UUFDdEMsNENBQW1CLEVBQUUsTUFBTSxDQUFDLENBQUM7Q0FDcEMsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUVwQiwwdlBBQTB2UCIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG52YXIgX19wYXJhbSA9ICh0aGlzICYmIHRoaXMuX19wYXJhbSkgfHwgZnVuY3Rpb24gKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxufTtcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwsIFNjb3BlLCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgUmVmbGVjdG9yIH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQVVUSF9IQU5ETEVSLCBBVVRIX01FVEFfS0VZLCBJU19QVUJMSUNfS0VZLCBSRVFVSVJFRF9ST0xFU19LRVkgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi8uLi9yZXF1ZXN0L0RlY2FmUmVxdWVzdENvbnRleHQuanNcIjtcbmxldCBBdXRoSW50ZXJjZXB0b3IgPSBjbGFzcyBBdXRoSW50ZXJjZXB0b3Ige1xuICAgIGNvbnN0cnVjdG9yKHJlZmxlY3RvciwgcmVxdWVzdENvbnRleHQsIGF1dGhIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMucmVmbGVjdG9yID0gcmVmbGVjdG9yO1xuICAgICAgICB0aGlzLnJlcXVlc3RDb250ZXh0ID0gcmVxdWVzdENvbnRleHQ7XG4gICAgICAgIHRoaXMuYXV0aEhhbmRsZXIgPSBhdXRoSGFuZGxlcjtcbiAgICB9XG4gICAgYXN5bmMgaW50ZXJjZXB0KGN0eCwgbmV4dCkge1xuICAgICAgICBjb25zdCBsb2cgPSBMb2dnaW5nLmZvcih0aGlzKS5mb3IodGhpcy5pbnRlcmNlcHQpO1xuICAgICAgICBjb25zdCBpc1B1YmxpYyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlKElTX1BVQkxJQ19LRVksIFtcbiAgICAgICAgICAgIGN0eC5nZXRIYW5kbGVyKCksXG4gICAgICAgICAgICBjdHguZ2V0Q2xhc3MoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IG1vZGVsTmFtZSA9IHRoaXMucmVmbGVjdG9yLmdldChBVVRIX01FVEFfS0VZLCBjdHguZ2V0SGFuZGxlcigpKSA/P1xuICAgICAgICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0KEFVVEhfTUVUQV9LRVksIGN0eC5nZXRDbGFzcygpKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRSb2xlcyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlKFJFUVVJUkVEX1JPTEVTX0tFWSwgW2N0eC5nZXRIYW5kbGVyKCksIGN0eC5nZXRDbGFzcygpXSk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBJbnRlcmNlcHRlZCByZXF1ZXN0JHttb2RlbE5hbWUgPyBgIGZvciAke21vZGVsTmFtZX1gIDogXCJcIn1gKTtcbiAgICAgICAgaWYgKGlzUHVibGljKSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYFB1YmxpYyByb3V0ZSDigJQgc2tpcHBpbmcgYXV0aGApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuYXV0aEhhbmRsZXIpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuYXV0aEhhbmRsZXIuYXV0aG9yaXplKGN0eCwgbW9kZWxOYW1lLCByZXF1aXJlZFJvbGVzLCB0aGlzLnJlcXVlc3RDb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgTm8gYXV0aCBoYW5kbGVyIHJlZ2lzdGVyZWRgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUcmFuc2Zvcm1lcnMgcnVuIEFGVEVSIGF1dGggc28gdGhleSBjYW4gcmVhZCBhdXRoLXBvcHVsYXRlZCBmaWVsZHNcbiAgICAgICAgLy8gKGUuZy4gYHVzZXJgKSBmcm9tIHRoZSBjb250ZXh0IGFuZCBtYXAgdGhlbSB0byBhZGFwdGVyLXNwZWNpZmljIGtleXNcbiAgICAgICAgLy8gKGUuZy4gYFVVSURgIGZvciBSYW1BZGFwdGVyJ3MgQGNyZWF0ZWRCeS9AdXBkYXRlZEJ5IGhhbmRsZXJzKS5cbiAgICAgICAgYXdhaXQgdGhpcy5hcHBseVRyYW5zZm9ybWVycygpO1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5yZXF1ZXN0Q29udGV4dC5nZXRPclVuZGVmaW5lZChcInVzZXJcIik7XG4gICAgICAgIGNvbnN0IG9yZ2FuaXphdGlvbiA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJvcmdhbml6YXRpb25cIik7XG4gICAgICAgIGlmICh1c2VyIHx8IG9yZ2FuaXphdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudExvZyA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0KFwibG9nZ2VyXCIpO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRMb2cgPSBjdXJyZW50TG9nLmZvcih7IHVzZXIsIG9yZ2FuaXphdGlvbiB9KTtcbiAgICAgICAgICAgIHRoaXMucmVxdWVzdENvbnRleHQuYWNjdW11bGF0ZSh7IGxvZ2dlcjogY2hpbGRMb2cgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKCk7XG4gICAgfVxuICAgIGFzeW5jIGFwcGx5VHJhbnNmb3JtZXJzKCkge1xuICAgICAgICBjb25zdCBmbGF2b3VycyA9IEFkYXB0ZXIuZmxhdm91cnNUb1RyYW5zZm9ybSgpO1xuICAgICAgICBpZiAoIWZsYXZvdXJzKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBmb3IgKGNvbnN0IGZsYXZvdXIgb2YgZmxhdm91cnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gQWRhcHRlci50cmFuc2Zvcm1lckZvcihmbGF2b3VyKTtcbiAgICAgICAgICAgIGlmICghdHJhbnNmb3JtZXIpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjb25zdCBmcm9tID0gYXdhaXQgdHJhbnNmb3JtZXIuZnJvbSh0aGlzLnJlcXVlc3RDb250ZXh0KTtcbiAgICAgICAgICAgIGlmIChmcm9tKVxuICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdENvbnRleHQuYWNjdW11bGF0ZShmcm9tKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5BdXRoSW50ZXJjZXB0b3IgPSBfX2RlY29yYXRlKFtcbiAgICBJbmplY3RhYmxlKHsgc2NvcGU6IFNjb3BlLlJFUVVFU1QgfSksXG4gICAgX19wYXJhbSgyLCBPcHRpb25hbCgpKSxcbiAgICBfX3BhcmFtKDIsIEluamVjdChBVVRIX0hBTkRMRVIpKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW1JlZmxlY3RvcixcbiAgICAgICAgRGVjYWZSZXF1ZXN0Q29udGV4dCwgT2JqZWN0XSlcbl0sIEF1dGhJbnRlcmNlcHRvcik7XG5leHBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVFYVjBhRWx1ZEdWeVkyVndkRzl5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJGMWRHZ3ZRWFYwYUVsdWRHVnlZMlZ3ZEc5eUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenRCUVVGQkxFOUJRVThzUlVGRFRDeFZRVUZWTEVWQlNWWXNUVUZCVFN4RlFVTk9MRkZCUVZFc1JVRkRVaXhMUVVGTExFZEJRMDRzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVONFFpeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc1kwRkJZeXhEUVVGRE8wRkJTWHBETEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1RVRkJUU3h0UWtGQmJVSXNRMEZCUXp0QlFVTTFReXhQUVVGUExFVkJRVVVzVDBGQlR5eEZRVUZGTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGSGVrTXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3hoUVVGaExFVkJRVVVzWVVGQllTeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxIVkNRVUZ2UWp0QlFVVTNSaXhQUVVGUExFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc05FTkJRWFZETzBGQlJ6bEVMRWxCUVUwc1pVRkJaU3hIUVVGeVFpeE5RVUZOTEdWQlFXVTdTVUZETVVJc1dVRkRiVUlzVTBGQmIwSXNSVUZEYkVJc1kwRkJiVU1zUlVGRFNDeFhRVUY1UWp0UlFVWXpSQ3hqUVVGVExFZEJRVlFzVTBGQlV5eERRVUZYTzFGQlEyeENMRzFDUVVGakxFZEJRV1FzWTBGQll5eERRVUZ4UWp0UlFVTklMR2RDUVVGWExFZEJRVmdzVjBGQlZ5eERRVUZqTzBsQlF6TkZMRU5CUVVNN1NVRkZTaXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVU5pTEVkQlFYRkNMRVZCUTNKQ0xFbEJRV2xDTzFGQlJXcENMRTFCUVUwc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCVnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVVjZSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMR2xDUVVGcFFpeERRVUZWTEdGQlFXRXNSVUZCUlR0WlFVTjRSU3hIUVVGSExFTkJRVU1zVlVGQlZTeEZRVUZGTzFsQlEyaENMRWRCUVVjc1EwRkJReXhSUVVGUkxFVkJRVVU3VTBGRFppeERRVUZETEVOQlFVTTdVVUZGU0N4TlFVRk5MRk5CUVZNc1IwRkRZaXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZEYUVJc1lVRkJZU3hGUVVOaUxFZEJRVWNzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZEYWtJN1dVRkRSQ3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCZFVJc1lVRkJZU3hGUVVGRkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlRGRkxFMUJRVTBzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc2FVSkJRV2xDTEVOQlEzQkVMR3RDUVVGclFpeEZRVU5zUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFVkJRVVVzUlVGQlJTeEhRVUZITEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNc1EwRkRia01zUTBGQlF6dFJRVVZHTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc2MwSkJRWE5DTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hUUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVVeFJTeEpRVUZKTEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUTJJc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5dzRRa0ZCT0VJc1EwRkJReXhEUVVGRE8xRkJRelZETEVOQlFVTTdZVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU0xUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVTBGQlV5eERRVU01UWl4SFFVRkhMRVZCUTBnc1UwRkJhVU1zUlVGRGFrTXNZVUZCWVN4RlFVTmlMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRM0JDTEVOQlFVTTdVVUZEU2l4RFFVRkRPMkZCUVUwc1EwRkJRenRaUVVOT0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zUTBGQlF6dFJRVU14UXl4RFFVRkRPMUZCUlVRc2NVVkJRWEZGTzFGQlEzSkZMSFZGUVVGMVJUdFJRVU4yUlN4cFJVRkJhVVU3VVVGRGFrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXp0UlFVVXZRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMR05CUVdNc1EwRkJReXhOUVVGaExFTkJRVU1zUTBGQlF6dFJRVU12UkN4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEdOQlFXTXNRMEZCUXl4alFVRnhRaXhEUVVGRExFTkJRVU03VVVGREwwVXNTVUZCU1N4SlFVRkpMRWxCUVVrc1dVRkJXU3hGUVVGRkxFTkJRVU03V1VGRGVrSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCWlN4RFFVRkRMRU5CUVVNN1dVRkROVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTNoRUxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxGRkJRVkVzUlVGQlV5eERRVUZETEVOQlFVTTdVVUZET1VRc1EwRkJRenRSUVVWRUxFOUJRVThzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMGxCUTNaQ0xFTkJRVU03U1VGRlV5eExRVUZMTEVOQlFVTXNhVUpCUVdsQ08xRkJReTlDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMUZCUXk5RExFbEJRVWtzUTBGQlF5eFJRVUZSTzFsQlFVVXNUMEZCVHp0UlFVVjBRaXhMUVVGTExFMUJRVTBzVDBGQlR5eEpRVUZKTEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUXk5Q0xFMUJRVTBzVjBGQlZ5eEhRVUZITEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUTNoRExFOUJRVThzUTBGRE5FSXNRMEZCUXp0WlFVTjBReXhKUVVGSkxFTkJRVU1zVjBGQlZ6dG5Ra0ZCUlN4VFFVRlRPMWxCUXpOQ0xFMUJRVTBzU1VGQlNTeEhRVUZITEUxQlFVMHNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdXVUZEZWtRc1NVRkJTU3hKUVVGSk8yZENRVUZGTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEycEVMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wTkJRMFlzUTBGQlFUdEJRVEZGV1N4bFFVRmxPMGxCUkROQ0xGVkJRVlVzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03U1VGTGFFTXNWMEZCUVN4UlFVRlJMRVZCUVVVc1EwRkJRVHRKUVVGRkxGZEJRVUVzVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkJPM0ZEUVVaTUxGTkJRVk03VVVGRFJpeHRRa0ZCYlVJN1IwRklOME1zWlVGQlpTeERRVEJGTTBJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JKYm1wbFkzUmhZbXhsTEZ4dUlDQk9aWE4wU1c1MFpYSmpaWEIwYjNJc1hHNGdJRVY0WldOMWRHbHZia052Ym5SbGVIUXNYRzRnSUVOaGJHeElZVzVrYkdWeUxGeHVJQ0JKYm1wbFkzUXNYRzRnSUU5d2RHbHZibUZzTEZ4dUlDQlRZMjl3WlN4Y2JuMGdabkp2YlNCY0lrQnVaWE4wYW5NdlkyOXRiVzl1WENJN1hHNXBiWEJ2Y25RZ2V5QlNaV1pzWldOMGIzSWdmU0JtY205dElGd2lRRzVsYzNScWN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QlBZbk5sY25aaFlteGxJSDBnWm5KdmJTQmNJbko0YW5OY0lqdGNibHh1YVcxd2IzSjBJSHNnUTI5dWMzUnlkV04wYjNJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUV4dloyZHBibWNnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJ4dloyZHBibWRjSWp0Y2JtbHRjRzl5ZENCN0lFRmtZWEIwWlhJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lGSmxjWFZsYzNSVWIwTnZiblJsZUhSVWNtRnVjMlp2Y20xbGNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZabTl5TFdoMGRIQXZjMlZ5ZG1WeVhDSTdYRzVjYm1sdGNHOXlkQ0I3SUVGVlZFaGZTRUZPUkV4RlVpd2dRVlZVU0Y5TlJWUkJYMHRGV1N3Z1NWTmZVRlZDVEVsRFgwdEZXU3dnVWtWUlZVbFNSVVJmVWs5TVJWTmZTMFZaSUgwZ1puSnZiU0JjSWk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN0lFRjFkR2hJWVc1a2JHVnlJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCRVpXTmhabEpsY1hWbGMzUkRiMjUwWlhoMElIMGdabkp2YlNCY0lpNHVMM0psY1hWbGMzUXZSR1ZqWVdaU1pYRjFaWE4wUTI5dWRHVjRkRndpTzF4dVhHNUFTVzVxWldOMFlXSnNaU2g3SUhOamIzQmxPaUJUWTI5d1pTNVNSVkZWUlZOVUlIMHBYRzVsZUhCdmNuUWdZMnhoYzNNZ1FYVjBhRWx1ZEdWeVkyVndkRzl5SUdsdGNHeGxiV1Z1ZEhNZ1RtVnpkRWx1ZEdWeVkyVndkRzl5SUh0Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWEc0Z0lDQWdjSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQnlaV1pzWldOMGIzSTZJRkpsWm14bFkzUnZjaXhjYmlBZ0lDQndjbTkwWldOMFpXUWdjbVZoWkc5dWJIa2djbVZ4ZFdWemRFTnZiblJsZUhRNklFUmxZMkZtVW1WeGRXVnpkRU52Ym5SbGVIUXNYRzRnSUNBZ1FFOXdkR2x2Ym1Gc0tDa2dRRWx1YW1WamRDaEJWVlJJWDBoQlRrUk1SVklwSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWVhWMGFFaGhibVJzWlhJL09pQkJkWFJvU0dGdVpHeGxjbHh1SUNBcElIdDlYRzVjYmlBZ1lYTjVibU1nYVc1MFpYSmpaWEIwS0Z4dUlDQWdJR04wZURvZ1JYaGxZM1YwYVc5dVEyOXVkR1Y0ZEN4Y2JpQWdJQ0J1WlhoME9pQkRZV3hzU0dGdVpHeGxjbHh1SUNBcE9pQlFjbTl0YVhObFBFOWljMlZ5ZG1GaWJHVThZVzU1UGo0Z2UxeHVJQ0FnSUdOdmJuTjBJR3h2WnlBOUlFeHZaMmRwYm1jdVptOXlLSFJvYVhNZ1lYTWdZVzU1S1M1bWIzSW9kR2hwY3k1cGJuUmxjbU5sY0hRcE8xeHVYRzRnSUNBZ1kyOXVjM1FnYVhOUWRXSnNhV01nUFNCMGFHbHpMbkpsWm14bFkzUnZjaTVuWlhSQmJHeEJibVJQZG1WeWNtbGtaVHhpYjI5c1pXRnVQaWhKVTE5UVZVSk1TVU5mUzBWWkxDQmJYRzRnSUNBZ0lDQmpkSGd1WjJWMFNHRnVaR3hsY2lncExGeHVJQ0FnSUNBZ1kzUjRMbWRsZEVOc1lYTnpLQ2tzWEc0Z0lDQWdYU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnRiMlJsYkU1aGJXVWdQVnh1SUNBZ0lDQWdkR2hwY3k1eVpXWnNaV04wYjNJdVoyVjBQSE4wY21sdVp5QjhJRU52Ym5OMGNuVmpkRzl5UGloY2JpQWdJQ0FnSUNBZ1FWVlVTRjlOUlZSQlgwdEZXU3hjYmlBZ0lDQWdJQ0FnWTNSNExtZGxkRWhoYm1Sc1pYSW9LVnh1SUNBZ0lDQWdLU0EvUDF4dUlDQWdJQ0FnZEdocGN5NXlaV1pzWldOMGIzSXVaMlYwUEhOMGNtbHVaeUI4SUVOdmJuTjBjblZqZEc5eVBpaEJWVlJJWDAxRlZFRmZTMFZaTENCamRIZ3VaMlYwUTJ4aGMzTW9LU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnlaWEYxYVhKbFpGSnZiR1Z6SUQwZ2RHaHBjeTV5Wldac1pXTjBiM0l1WjJWMFFXeHNRVzVrVDNabGNuSnBaR1U4YzNSeWFXNW5XMTArS0Z4dUlDQWdJQ0FnVWtWUlZVbFNSVVJmVWs5TVJWTmZTMFZaTEZ4dUlDQWdJQ0FnVzJOMGVDNW5aWFJJWVc1a2JHVnlLQ2tzSUdOMGVDNW5aWFJEYkdGemN5Z3BYVnh1SUNBZ0lDazdYRzVjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnU1c1MFpYSmpaWEIwWldRZ2NtVnhkV1Z6ZENSN2JXOWtaV3hPWVcxbElEOGdZQ0JtYjNJZ0pIdHRiMlJsYkU1aGJXVjlZQ0E2SUZ3aVhDSjlZQ2s3WEc1Y2JpQWdJQ0JwWmlBb2FYTlFkV0pzYVdNcElIdGNiaUFnSUNBZ0lHeHZaeTVrWldKMVp5aGdVSFZpYkdsaklISnZkWFJsSU9LQWxDQnphMmx3Y0dsdVp5QmhkWFJvWUNrN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNoMGFHbHpMbUYxZEdoSVlXNWtiR1Z5S1NCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxtRjFkR2hJWVc1a2JHVnlMbUYxZEdodmNtbDZaU2hjYmlBZ0lDQWdJQ0FnWTNSNExGeHVJQ0FnSUNBZ0lDQnRiMlJsYkU1aGJXVWdZWE1nYzNSeWFXNW5JSHdnUTI5dWMzUnlkV04wYjNJc1hHNGdJQ0FnSUNBZ0lISmxjWFZwY21Wa1VtOXNaWE1zWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjbVZ4ZFdWemRFTnZiblJsZUhSY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhnVG04Z1lYVjBhQ0JvWVc1a2JHVnlJSEpsWjJsemRHVnlaV1JnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCVWNtRnVjMlp2Y20xbGNuTWdjblZ1SUVGR1ZFVlNJR0YxZEdnZ2MyOGdkR2hsZVNCallXNGdjbVZoWkNCaGRYUm9MWEJ2Y0hWc1lYUmxaQ0JtYVdWc1pITmNiaUFnSUNBdkx5QW9aUzVuTGlCZ2RYTmxjbUFwSUdaeWIyMGdkR2hsSUdOdmJuUmxlSFFnWVc1a0lHMWhjQ0IwYUdWdElIUnZJR0ZrWVhCMFpYSXRjM0JsWTJsbWFXTWdhMlY1YzF4dUlDQWdJQzh2SUNobExtY3VJR0JWVlVsRVlDQm1iM0lnVW1GdFFXUmhjSFJsY2lkeklFQmpjbVZoZEdWa1Fua3ZRSFZ3WkdGMFpXUkNlU0JvWVc1a2JHVnljeWt1WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVoY0hCc2VWUnlZVzV6Wm05eWJXVnljeWdwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkWE5sY2lBOUlIUm9hWE11Y21WeGRXVnpkRU52Ym5SbGVIUXVaMlYwVDNKVmJtUmxabWx1WldRb1hDSjFjMlZ5WENJZ1lYTWdZVzU1S1R0Y2JpQWdJQ0JqYjI1emRDQnZjbWRoYm1sNllYUnBiMjRnUFNCMGFHbHpMbkpsY1hWbGMzUkRiMjUwWlhoMExtZGxkRTl5Vlc1a1pXWnBibVZrS0Z3aWIzSm5ZVzVwZW1GMGFXOXVYQ0lnWVhNZ1lXNTVLVHRjYmlBZ0lDQnBaaUFvZFhObGNpQjhmQ0J2Y21kaGJtbDZZWFJwYjI0cElIdGNiaUFnSUNBZ0lHTnZibk4wSUdOMWNuSmxiblJNYjJjZ1BTQjBhR2x6TG5KbGNYVmxjM1JEYjI1MFpYaDBMbWRsZENoY0lteHZaMmRsY2x3aUlHRnpJR0Z1ZVNrN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYUdsc1pFeHZaeUE5SUdOMWNuSmxiblJNYjJjdVptOXlLSHNnZFhObGNpd2diM0puWVc1cGVtRjBhVzl1SUgwcE8xeHVJQ0FnSUNBZ2RHaHBjeTV5WlhGMVpYTjBRMjl1ZEdWNGRDNWhZMk4xYlhWc1lYUmxLSHNnYkc5bloyVnlPaUJqYUdsc1pFeHZaeUI5SUdGeklHRnVlU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxlSFF1YUdGdVpHeGxLQ2s3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1lYTjVibU1nWVhCd2JIbFVjbUZ1YzJadmNtMWxjbk1vS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ1pteGhkbTkxY25NZ1BTQkJaR0Z3ZEdWeUxtWnNZWFp2ZFhKelZHOVVjbUZ1YzJadmNtMG9LVHRjYmlBZ0lDQnBaaUFvSVdac1lYWnZkWEp6S1NCeVpYUjFjbTQ3WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdac1lYWnZkWElnYjJZZ1pteGhkbTkxY25NcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhSeVlXNXpabTl5YldWeUlEMGdRV1JoY0hSbGNpNTBjbUZ1YzJadmNtMWxja1p2Y2loY2JpQWdJQ0FnSUNBZ1pteGhkbTkxY2x4dUlDQWdJQ0FnS1NCaGN5QlNaWEYxWlhOMFZHOURiMjUwWlhoMFZISmhibk5tYjNKdFpYSThZVzU1UGp0Y2JpQWdJQ0FnSUdsbUlDZ2hkSEpoYm5ObWIzSnRaWElwSUdOdmJuUnBiblZsTzF4dUlDQWdJQ0FnWTI5dWMzUWdabkp2YlNBOUlHRjNZV2wwSUhSeVlXNXpabTl5YldWeUxtWnliMjBvZEdocGN5NXlaWEYxWlhOMFEyOXVkR1Y0ZENrN1hHNGdJQ0FnSUNCcFppQW9abkp2YlNrZ2RHaHBjeTV5WlhGMVpYTjBRMjl1ZEdWNGRDNWhZMk4xYlhWc1lYUmxLR1p5YjIwcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dUlsMTkiXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvQXV0aEludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBSVYsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHVCQUFvQjtBQUVuSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsNENBQXVDO0FBRzlELElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFDMUIsWUFDbUIsU0FBb0IsRUFDbEIsY0FBbUMsRUFDSCxXQUF5QjtRQUYzRCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNILGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQzNFLENBQUM7SUFFSixLQUFLLENBQUMsU0FBUyxDQUNiLEdBQXFCLEVBQ3JCLElBQWlCO1FBRWpCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBVyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFVLGFBQWEsRUFBRTtZQUN4RSxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxRQUFRLEVBQUU7U0FDZixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FD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M0IsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUtoQyxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQUUsV0FBQSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7cUNBRkwsU0FBUztRQUNGLG1CQUFtQjtHQUg3QyxlQUFlLENBaUYzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE5lc3RJbnRlcmNlcHRvcixcbiAgRXhlY3V0aW9uQ29udGV4dCxcbiAgQ2FsbEhhbmRsZXIsXG4gIEluamVjdCxcbiAgT3B0aW9uYWwsXG4gIFNjb3BlLFxufSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFJlZmxlY3RvciB9IGZyb20gXCJAbmVzdGpzL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgUmVxdWVzdFRvQ29udGV4dFRyYW5zZm9ybWVyIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcblxuaW1wb3J0IHsgQVVUSF9IQU5ETEVSLCBBVVRIX01FVEFfS0VZLCBJU19QVUJMSUNfS0VZLCBSRVFVSVJFRF9ST0xFU19LRVksIFNLSVBfTU9ERUxfUk9MRVNfS0VZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEF1dGhIYW5kbGVyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4uL3JlcXVlc3QvRGVjYWZSZXF1ZXN0Q29udGV4dFwiO1xuXG5ASW5qZWN0YWJsZSh7IHNjb3BlOiBTY29wZS5SRVFVRVNUIH0pXG5leHBvcnQgY2xhc3MgQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgTmVzdEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWZsZWN0b3I6IFJlZmxlY3RvcixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVxdWVzdENvbnRleHQ6IERlY2FmUmVxdWVzdENvbnRleHQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVRIX0hBTkRMRVIpIHByaXZhdGUgcmVhZG9ubHkgYXV0aEhhbmRsZXI/OiBBdXRoSGFuZGxlclxuICApIHt9XG5cbiAgYXN5bmMgaW50ZXJjZXB0KFxuICAgIGN0eDogRXhlY3V0aW9uQ29udGV4dCxcbiAgICBuZXh0OiBDYWxsSGFuZGxlclxuICApOiBQcm9taXNlPE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKHRoaXMgYXMgYW55KS5mb3IodGhpcy5pbnRlcmNlcHQpO1xuXG4gICAgY29uc3QgaXNQdWJsaWMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZTxib29sZWFuPihJU19QVUJMSUNfS0VZLCBbXG4gICAgICBjdHguZ2V0SGFuZGxlcigpLFxuICAgICAgY3R4LmdldENsYXNzKCksXG4gICAgXSk7XG5cbiAgICBjb25zdCBtb2RlbE5hbWUgPVxuICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0PHN0cmluZyB8IENvbnN0cnVjdG9yPihcbiAgICAgICAgQVVUSF9NRVRBX0tFWSxcbiAgICAgICAgY3R4LmdldEhhbmRsZXIoKVxuICAgICAgKSA/P1xuICAgICAgdGhpcy5yZWZsZWN0b3IuZ2V0PHN0cmluZyB8IENvbnN0cnVjdG9yPihBVVRIX01FVEFfS0VZLCBjdHguZ2V0Q2xhc3MoKSk7XG5cbiAgICBjb25zdCByZXF1aXJlZFJvbGVzID0gdGhpcy5yZWZsZWN0b3IuZ2V0QWxsQW5kT3ZlcnJpZGU8c3RyaW5nW10+KFxuICAgICAgUkVRVUlSRURfUk9MRVNfS0VZLFxuICAgICAgW2N0eC5nZXRIYW5kbGVyKCksIGN0eC5nZXRDbGFzcygpXVxuICAgICk7XG5cbiAgICBjb25zdCBza2lwTW9kZWxSb2xlcyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlPGJvb2xlYW4+KFxuICAgICAgU0tJUF9NT0RFTF9ST0xFU19LRVksXG4gICAgICBbY3R4LmdldEhhbmRsZXIoKSwgY3R4LmdldENsYXNzKCldXG4gICAgKTtcblxuICAgIGNvbnN0IGVmZmVjdGl2ZU1vZGVsID0gc2tpcE1vZGVsUm9sZXMgPyB1bmRlZmluZWQgOiBtb2RlbE5hbWU7XG5cbiAgICBsb2cudmVyYm9zZShgSW50ZXJjZXB0ZWQgcmVxdWVzdCR7bW9kZWxOYW1lID8gYCBmb3IgJHttb2RlbE5hbWV9YCA6IFwiXCJ9YCk7XG5cbiAgICBpZiAoaXNQdWJsaWMpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUHVibGljIHJvdXRlIOKAlCBza2lwcGluZyBhdXRoYCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1dGhIYW5kbGVyKSB7XG4gICAgICBhd2FpdCB0aGlzLmF1dGhIYW5kbGVyLmF1dGhvcml6ZShcbiAgICAgICAgY3R4LFxuICAgICAgICBlZmZlY3RpdmVNb2RlbCBhcyBzdHJpbmcgfCBDb25zdHJ1Y3RvcixcbiAgICAgICAgcmVxdWlyZWRSb2xlcyxcbiAgICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmRlYnVnKGBObyBhdXRoIGhhbmRsZXIgcmVnaXN0ZXJlZGApO1xuICAgIH1cblxuICAgIC8vIFRyYW5zZm9ybWVycyBydW4gQUZURVIgYXV0aCBzbyB0aGV5IGNhbiByZWFkIGF1dGgtcG9wdWxhdGVkIGZpZWxkc1xuICAgIC8vIChlLmcuIGB1c2VyYCkgZnJvbSB0aGUgY29udGV4dCBhbmQgbWFwIHRoZW0gdG8gYWRhcHRlci1zcGVjaWZpYyBrZXlzXG4gICAgLy8gKGUuZy4gYFVVSURgIGZvciBSYW1BZGFwdGVyJ3MgQGNyZWF0ZWRCeS9AdXBkYXRlZEJ5IGhhbmRsZXJzKS5cbiAgICBhd2FpdCB0aGlzLmFwcGx5VHJhbnNmb3JtZXJzKCk7XG5cbiAgICBjb25zdCB1c2VyID0gdGhpcy5yZXF1ZXN0Q29udGV4dC5nZXRPclVuZGVmaW5lZChcInVzZXJcIiBhcyBhbnkpO1xuICAgIGNvbnN0IG9yZ2FuaXphdGlvbiA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJvcmdhbml6YXRpb25cIiBhcyBhbnkpO1xuICAgIGlmICh1c2VyIHx8IG9yZ2FuaXphdGlvbikge1xuICAgICAgY29uc3QgY3VycmVudExvZyA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0KFwibG9nZ2VyXCIgYXMgYW55KTtcbiAgICAgIGNvbnN0IGNoaWxkTG9nID0gY3VycmVudExvZy5mb3IoeyB1c2VyLCBvcmdhbml6YXRpb24gfSk7XG4gICAgICB0aGlzLnJlcXVlc3RDb250ZXh0LmFjY3VtdWxhdGUoeyBsb2dnZXI6IGNoaWxkTG9nIH0gYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBhcHBseVRyYW5zZm9ybWVycygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmbGF2b3VycyA9IEFkYXB0ZXIuZmxhdm91cnNUb1RyYW5zZm9ybSgpO1xuICAgIGlmICghZmxhdm91cnMpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgZmxhdm91ciBvZiBmbGF2b3Vycykge1xuICAgICAgY29uc3QgdHJhbnNmb3JtZXIgPSBBZGFwdGVyLnRyYW5zZm9ybWVyRm9yKFxuICAgICAgICBmbGF2b3VyXG4gICAgICApIGFzIFJlcXVlc3RUb0NvbnRleHRUcmFuc2Zvcm1lcjxhbnk+O1xuICAgICAgaWYgKCF0cmFuc2Zvcm1lcikgY29udGludWU7XG4gICAgICBjb25zdCBmcm9tID0gYXdhaXQgdHJhbnNmb3JtZXIuZnJvbSh0aGlzLnJlcXVlc3RDb250ZXh0KTtcbiAgICAgIGlmIChmcm9tKSB0aGlzLnJlcXVlc3RDb250ZXh0LmFjY3VtdWxhdGUoZnJvbSk7XG4gICAgfVxuICB9XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQXV0aEludGVyY2VwdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdB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QkFDWixTQUFTO1lBQ2IsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN6RCxJQUFJLElBQUk7Z0JBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNMLENBQUM7Q0FDSixDQUFDO0FBUU8sMENBQWU7QUFQeEIsMEJBQUEsZUFBZSxHQUFHLFVBQVUsQ0FBQztJQUN6QixJQUFBLG1CQUFVLEVBQUMsRUFBRSxLQUFLLEVBQUUsY0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBQSxpQkFBUSxHQUFFLENBQUM7SUFDdEIsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFBLGVBQU0sRUFBQywyQkFBWSxDQUFDLENBQUM7SUFDaEMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsZ0JBQVM7UUFDdEMsNENBQW1CLEVBQUUsTUFBTSxDQUFDLENBQUM7Q0FDcEMsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUVwQixzMlFBQXMyUSIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG52YXIgX19wYXJhbSA9ICh0aGlzICYmIHRoaXMuX19wYXJhbSkgfHwgZnVuY3Rpb24gKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxufTtcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwsIFNjb3BlLCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgUmVmbGVjdG9yIH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQVVUSF9IQU5ETEVSLCBBVVRIX01FVEFfS0VZLCBJU19QVUJMSUNfS0VZLCBSRVFVSVJFRF9ST0xFU19LRVksIFNLSVBfTU9ERUxfUk9MRVNfS0VZIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4vLi4vcmVxdWVzdC9EZWNhZlJlcXVlc3RDb250ZXh0LmpzXCI7XG5sZXQgQXV0aEludGVyY2VwdG9yID0gY2xhc3MgQXV0aEludGVyY2VwdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihyZWZsZWN0b3IsIHJlcXVlc3RDb250ZXh0LCBhdXRoSGFuZGxlcikge1xuICAgICAgICB0aGlzLnJlZmxlY3RvciA9IHJlZmxlY3RvcjtcbiAgICAgICAgdGhpcy5yZXF1ZXN0Q29udGV4dCA9IHJlcXVlc3RDb250ZXh0O1xuICAgICAgICB0aGlzLmF1dGhIYW5kbGVyID0gYXV0aEhhbmRsZXI7XG4gICAgfVxuICAgIGFzeW5jIGludGVyY2VwdChjdHgsIG5leHQpIHtcbiAgICAgICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGhpcykuZm9yKHRoaXMuaW50ZXJjZXB0KTtcbiAgICAgICAgY29uc3QgaXNQdWJsaWMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZShJU19QVUJMSUNfS0VZLCBbXG4gICAgICAgICAgICBjdHguZ2V0SGFuZGxlcigpLFxuICAgICAgICAgICAgY3R4LmdldENsYXNzKCksXG4gICAgICAgIF0pO1xuICAgICAgICBjb25zdCBtb2RlbE5hbWUgPSB0aGlzLnJlZmxlY3Rvci5nZXQoQVVUSF9NRVRBX0tFWSwgY3R4LmdldEhhbmRsZXIoKSkgPz9cbiAgICAgICAgICAgIHRoaXMucmVmbGVjdG9yLmdldChBVVRIX01FVEFfS0VZLCBjdHguZ2V0Q2xhc3MoKSk7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUm9sZXMgPSB0aGlzLnJlZmxlY3Rvci5nZXRBbGxBbmRPdmVycmlkZShSRVFVSVJFRF9ST0xFU19LRVksIFtjdHguZ2V0SGFuZGxlcigpLCBjdHguZ2V0Q2xhc3MoKV0pO1xuICAgICAgICBjb25zdCBza2lwTW9kZWxSb2xlcyA9IHRoaXMucmVmbGVjdG9yLmdldEFsbEFuZE92ZXJyaWRlKFNLSVBfTU9ERUxfUk9MRVNfS0VZLCBbY3R4LmdldEhhbmRsZXIoKSwgY3R4LmdldENsYXNzKCldKTtcbiAgICAgICAgY29uc3QgZWZmZWN0aXZlTW9kZWwgPSBza2lwTW9kZWxSb2xlcyA/IHVuZGVmaW5lZCA6IG1vZGVsTmFtZTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYEludGVyY2VwdGVkIHJlcXVlc3Qke21vZGVsTmFtZSA/IGAgZm9yICR7bW9kZWxOYW1lfWAgOiBcIlwifWApO1xuICAgICAgICBpZiAoaXNQdWJsaWMpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUHVibGljIHJvdXRlIOKAlCBza2lwcGluZyBhdXRoYCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5hdXRoSGFuZGxlcikge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hdXRoSGFuZGxlci5hdXRob3JpemUoY3R4LCBlZmZlY3RpdmVNb2RlbCwgcmVxdWlyZWRSb2xlcywgdGhpcy5yZXF1ZXN0Q29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYE5vIGF1dGggaGFuZGxlciByZWdpc3RlcmVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHJhbnNmb3JtZXJzIHJ1biBBRlRFUiBhdXRoIHNvIHRoZXkgY2FuIHJlYWQgYXV0aC1wb3B1bGF0ZWQgZmllbGRzXG4gICAgICAgIC8vIChlLmcuIGB1c2VyYCkgZnJvbSB0aGUgY29udGV4dCBhbmQgbWFwIHRoZW0gdG8gYWRhcHRlci1zcGVjaWZpYyBrZXlzXG4gICAgICAgIC8vIChlLmcuIGBVVUlEYCBmb3IgUmFtQWRhcHRlcidzIEBjcmVhdGVkQnkvQHVwZGF0ZWRCeSBoYW5kbGVycykuXG4gICAgICAgIGF3YWl0IHRoaXMuYXBwbHlUcmFuc2Zvcm1lcnMoKTtcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMucmVxdWVzdENvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJ1c2VyXCIpO1xuICAgICAgICBjb25zdCBvcmdhbml6YXRpb24gPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3JnYW5pemF0aW9uXCIpO1xuICAgICAgICBpZiAodXNlciB8fCBvcmdhbml6YXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMb2cgPSB0aGlzLnJlcXVlc3RDb250ZXh0LmdldChcImxvZ2dlclwiKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkTG9nID0gY3VycmVudExvZy5mb3IoeyB1c2VyLCBvcmdhbml6YXRpb24gfSk7XG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RDb250ZXh0LmFjY3VtdWxhdGUoeyBsb2dnZXI6IGNoaWxkTG9nIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSgpO1xuICAgIH1cbiAgICBhc3luYyBhcHBseVRyYW5zZm9ybWVycygpIHtcbiAgICAgICAgY29uc3QgZmxhdm91cnMgPSBBZGFwdGVyLmZsYXZvdXJzVG9UcmFuc2Zvcm0oKTtcbiAgICAgICAgaWYgKCFmbGF2b3VycylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZm9yIChjb25zdCBmbGF2b3VyIG9mIGZsYXZvdXJzKSB7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lciA9IEFkYXB0ZXIudHJhbnNmb3JtZXJGb3IoZmxhdm91cik7XG4gICAgICAgICAgICBpZiAoIXRyYW5zZm9ybWVyKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3QgZnJvbSA9IGF3YWl0IHRyYW5zZm9ybWVyLmZyb20odGhpcy5yZXF1ZXN0Q29udGV4dCk7XG4gICAgICAgICAgICBpZiAoZnJvbSlcbiAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RDb250ZXh0LmFjY3VtdWxhdGUoZnJvbSk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuQXV0aEludGVyY2VwdG9yID0gX19kZWNvcmF0ZShbXG4gICAgSW5qZWN0YWJsZSh7IHNjb3BlOiBTY29wZS5SRVFVRVNUIH0pLFxuICAgIF9fcGFyYW0oMiwgT3B0aW9uYWwoKSksXG4gICAgX19wYXJhbSgyLCBJbmplY3QoQVVUSF9IQU5ETEVSKSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtSZWZsZWN0b3IsXG4gICAgICAgIERlY2FmUmVxdWVzdENvbnRleHQsIE9iamVjdF0pXG5dLCBBdXRoSW50ZXJjZXB0b3IpO1xuZXhwb3J0IHsgQXV0aEludGVyY2VwdG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lRWFYwYUVsdWRHVnlZMlZ3ZEc5eUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2YzNKakwyRjFkR2d2UVhWMGFFbHVkR1Z5WTJWd2RHOXlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenM3T3p0QlFVRkJMRTlCUVU4c1JVRkRUQ3hWUVVGVkxFVkJTVllzVFVGQlRTeEZRVU5PTEZGQlFWRXNSVUZEVWl4TFFVRkxMRWRCUTA0c1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTjRRaXhQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEUxQlFVMHNZMEZCWXl4RFFVRkRPMEZCU1hwRExFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF6dEJRVU0xUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkhla01zVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlN4aFFVRmhMRVZCUVVVc1lVRkJZU3hGUVVGRkxHdENRVUZyUWl4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEhWQ1FVRnZRanRCUVVWdVNDeFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVVVzTkVOQlFYVkRPMEZCUnpsRUxFbEJRVTBzWlVGQlpTeEhRVUZ5UWl4TlFVRk5MR1ZCUVdVN1NVRkRNVUlzV1VGRGJVSXNVMEZCYjBJc1JVRkRiRUlzWTBGQmJVTXNSVUZEU0N4WFFVRjVRanRSUVVZelJDeGpRVUZUTEVkQlFWUXNVMEZCVXl4RFFVRlhPMUZCUTJ4Q0xHMUNRVUZqTEVkQlFXUXNZMEZCWXl4RFFVRnhRanRSUVVOSUxHZENRVUZYTEVkQlFWZ3NWMEZCVnl4RFFVRmpPMGxCUXpORkxFTkJRVU03U1VGRlNpeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVTmlMRWRCUVhGQ0xFVkJRM0pDTEVsQlFXbENPMUZCUldwQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJWeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVWNlJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExHbENRVUZwUWl4RFFVRlZMR0ZCUVdFc1JVRkJSVHRaUVVONFJTeEhRVUZITEVOQlFVTXNWVUZCVlN4RlFVRkZPMWxCUTJoQ0xFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVTdVMEZEWml4RFFVRkRMRU5CUVVNN1VVRkZTQ3hOUVVGTkxGTkJRVk1zUjBGRFlpeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkRhRUlzWVVGQllTeEZRVU5pTEVkQlFVY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkRha0k3V1VGRFJDeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJkVUlzWVVGQllTeEZRVUZGTEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVEZGTEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zYVVKQlFXbENMRU5CUTNCRUxHdENRVUZyUWl4RlFVTnNRaXhEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGRGJrTXNRMEZCUXp0UlFVVkdMRTFCUVUwc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNhVUpCUVdsQ0xFTkJRM0pFTEc5Q1FVRnZRaXhGUVVOd1FpeERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZEYmtNc1EwRkJRenRSUVVWR0xFMUJRVTBzWTBGQll5eEhRVUZITEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdVVUZGT1VRc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eHpRa0ZCYzBJc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJURkZMRWxCUVVrc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRFlpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRGhDUVVFNFFpeERRVUZETEVOQlFVTTdVVUZETlVNc1EwRkJRenRoUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUXpWQ0xFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUXpsQ0xFZEJRVWNzUlVGRFNDeGpRVUZ6UXl4RlFVTjBReXhoUVVGaExFVkJRMklzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZEY0VJc1EwRkJRenRSUVVOS0xFTkJRVU03WVVGQlRTeERRVUZETzFsQlEwNHNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXcwUWtGQk5FSXNRMEZCUXl4RFFVRkRPMUZCUXpGRExFTkJRVU03VVVGRlJDeHhSVUZCY1VVN1VVRkRja1VzZFVWQlFYVkZPMUZCUTNaRkxHbEZRVUZwUlR0UlFVTnFSU3hOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hEUVVGRE8xRkJSUzlDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zWTBGQll5eERRVUZETEUxQlFXRXNRMEZCUXl4RFFVRkRPMUZCUXk5RUxFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1kwRkJZeXhEUVVGRExHTkJRWEZDTEVOQlFVTXNRMEZCUXp0UlFVTXZSU3hKUVVGSkxFbEJRVWtzU1VGQlNTeFpRVUZaTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGbExFTkJRVU1zUTBGQlF6dFpRVU0xUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGVFUXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRlRMRU5CUVVNc1EwRkJRenRSUVVNNVJDeERRVUZETzFGQlJVUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03U1VGRGRrSXNRMEZCUXp0SlFVVlRMRXRCUVVzc1EwRkJReXhwUWtGQmFVSTdVVUZETDBJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU03VVVGREwwTXNTVUZCU1N4RFFVRkRMRkZCUVZFN1dVRkJSU3hQUVVGUE8xRkJSWFJDTEV0QlFVc3NUVUZCVFN4UFFVRlBMRWxCUVVrc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGREwwSXNUVUZCVFN4WFFVRlhMRWRCUVVjc1QwRkJUeXhEUVVGRExHTkJRV01zUTBGRGVFTXNUMEZCVHl4RFFVTTBRaXhEUVVGRE8xbEJRM1JETEVsQlFVa3NRMEZCUXl4WFFVRlhPMmRDUVVGRkxGTkJRVk03V1VGRE0wSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRaUVVONlJDeEpRVUZKTEVsQlFVazdaMEpCUVVVc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRha1FzUTBGQlF6dEpRVU5JTEVOQlFVTTdRMEZEUml4RFFVRkJPMEZCYWtaWkxHVkJRV1U3U1VGRU0wSXNWVUZCVlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0SlFVdG9ReXhYUVVGQkxGRkJRVkVzUlVGQlJTeERRVUZCTzBsQlFVVXNWMEZCUVN4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVUU3Y1VOQlJrd3NVMEZCVXp0UlFVTkdMRzFDUVVGdFFqdEhRVWczUXl4bFFVRmxMRU5CYVVZelFpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVsdWFtVmpkR0ZpYkdVc1hHNGdJRTVsYzNSSmJuUmxjbU5sY0hSdmNpeGNiaUFnUlhobFkzVjBhVzl1UTI5dWRHVjRkQ3hjYmlBZ1EyRnNiRWhoYm1Sc1pYSXNYRzRnSUVsdWFtVmpkQ3hjYmlBZ1QzQjBhVzl1WVd3c1hHNGdJRk5qYjNCbExGeHVmU0JtY205dElGd2lRRzVsYzNScWN5OWpiMjF0YjI1Y0lqdGNibWx0Y0c5eWRDQjdJRkpsWm14bFkzUnZjaUI5SUdaeWIyMGdYQ0pBYm1WemRHcHpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRTlpYzJWeWRtRmliR1VnZlNCbWNtOXRJRndpY25ocWMxd2lPMXh1WEc1cGJYQnZjblFnZXlCRGIyNXpkSEoxWTNSdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dWFXMXdiM0owSUhzZ1RHOW5aMmx1WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdmJHOW5aMmx1WjF3aU8xeHVhVzF3YjNKMElIc2dRV1JoY0hSbGNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dVbVZ4ZFdWemRGUnZRMjl1ZEdWNGRGUnlZVzV6Wm05eWJXVnlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTltYjNJdGFIUjBjQzl6WlhKMlpYSmNJanRjYmx4dWFXMXdiM0owSUhzZ1FWVlVTRjlJUVU1RVRFVlNMQ0JCVlZSSVgwMUZWRUZmUzBWWkxDQkpVMTlRVlVKTVNVTmZTMFZaTENCU1JWRlZTVkpGUkY5U1QweEZVMTlMUlZrc0lGTkxTVkJmVFU5RVJVeGZVazlNUlZOZlMwVlpJSDBnWm5KdmJTQmNJaTR2WTI5dWMzUmhiblJ6WENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVGMWRHaElZVzVrYkdWeUlIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdleUJFWldOaFpsSmxjWFZsYzNSRGIyNTBaWGgwSUgwZ1puSnZiU0JjSWk0dUwzSmxjWFZsYzNRdlJHVmpZV1pTWlhGMVpYTjBRMjl1ZEdWNGRGd2lPMXh1WEc1QVNXNXFaV04wWVdKc1pTaDdJSE5qYjNCbE9pQlRZMjl3WlM1U1JWRlZSVk5VSUgwcFhHNWxlSEJ2Y25RZ1kyeGhjM01nUVhWMGFFbHVkR1Z5WTJWd2RHOXlJR2x0Y0d4bGJXVnVkSE1nVG1WemRFbHVkR1Z5WTJWd2RHOXlJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9YRzRnSUNBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCeVpXWnNaV04wYjNJNklGSmxabXhsWTNSdmNpeGNiaUFnSUNCd2NtOTBaV04wWldRZ2NtVmhaRzl1YkhrZ2NtVnhkV1Z6ZEVOdmJuUmxlSFE2SUVSbFkyRm1VbVZ4ZFdWemRFTnZiblJsZUhRc1hHNGdJQ0FnUUU5d2RHbHZibUZzS0NrZ1FFbHVhbVZqZENoQlZWUklYMGhCVGtSTVJWSXBJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dZWFYwYUVoaGJtUnNaWEkvT2lCQmRYUm9TR0Z1Wkd4bGNseHVJQ0FwSUh0OVhHNWNiaUFnWVhONWJtTWdhVzUwWlhKalpYQjBLRnh1SUNBZ0lHTjBlRG9nUlhobFkzVjBhVzl1UTI5dWRHVjRkQ3hjYmlBZ0lDQnVaWGgwT2lCRFlXeHNTR0Z1Wkd4bGNseHVJQ0FwT2lCUWNtOXRhWE5sUEU5aWMyVnlkbUZpYkdVOFlXNTVQajRnZTF4dUlDQWdJR052Ym5OMElHeHZaeUE5SUV4dloyZHBibWN1Wm05eUtIUm9hWE1nWVhNZ1lXNTVLUzVtYjNJb2RHaHBjeTVwYm5SbGNtTmxjSFFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdhWE5RZFdKc2FXTWdQU0IwYUdsekxuSmxabXhsWTNSdmNpNW5aWFJCYkd4QmJtUlBkbVZ5Y21sa1pUeGliMjlzWldGdVBpaEpVMTlRVlVKTVNVTmZTMFZaTENCYlhHNGdJQ0FnSUNCamRIZ3VaMlYwU0dGdVpHeGxjaWdwTEZ4dUlDQWdJQ0FnWTNSNExtZGxkRU5zWVhOektDa3NYRzRnSUNBZ1hTazdYRzVjYmlBZ0lDQmpiMjV6ZENCdGIyUmxiRTVoYldVZ1BWeHVJQ0FnSUNBZ2RHaHBjeTV5Wldac1pXTjBiM0l1WjJWMFBITjBjbWx1WnlCOElFTnZibk4wY25WamRHOXlQaWhjYmlBZ0lDQWdJQ0FnUVZWVVNGOU5SVlJCWDB0RldTeGNiaUFnSUNBZ0lDQWdZM1I0TG1kbGRFaGhibVJzWlhJb0tWeHVJQ0FnSUNBZ0tTQS9QMXh1SUNBZ0lDQWdkR2hwY3k1eVpXWnNaV04wYjNJdVoyVjBQSE4wY21sdVp5QjhJRU52Ym5OMGNuVmpkRzl5UGloQlZWUklYMDFGVkVGZlMwVlpMQ0JqZEhndVoyVjBRMnhoYzNNb0tTazdYRzVjYmlBZ0lDQmpiMjV6ZENCeVpYRjFhWEpsWkZKdmJHVnpJRDBnZEdocGN5NXlaV1pzWldOMGIzSXVaMlYwUVd4c1FXNWtUM1psY25KcFpHVThjM1J5YVc1blcxMCtLRnh1SUNBZ0lDQWdVa1ZSVlVsU1JVUmZVazlNUlZOZlMwVlpMRnh1SUNBZ0lDQWdXMk4wZUM1blpYUklZVzVrYkdWeUtDa3NJR04wZUM1blpYUkRiR0Z6Y3lncFhWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCamIyNXpkQ0J6YTJsd1RXOWtaV3hTYjJ4bGN5QTlJSFJvYVhNdWNtVm1iR1ZqZEc5eUxtZGxkRUZzYkVGdVpFOTJaWEp5YVdSbFBHSnZiMnhsWVc0K0tGeHVJQ0FnSUNBZ1UwdEpVRjlOVDBSRlRGOVNUMHhGVTE5TFJWa3NYRzRnSUNBZ0lDQmJZM1I0TG1kbGRFaGhibVJzWlhJb0tTd2dZM1I0TG1kbGRFTnNZWE56S0NsZFhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR1ZtWm1WamRHbDJaVTF2WkdWc0lEMGdjMnRwY0UxdlpHVnNVbTlzWlhNZ1B5QjFibVJsWm1sdVpXUWdPaUJ0YjJSbGJFNWhiV1U3WEc1Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoZ1NXNTBaWEpqWlhCMFpXUWdjbVZ4ZFdWemRDUjdiVzlrWld4T1lXMWxJRDhnWUNCbWIzSWdKSHR0YjJSbGJFNWhiV1Y5WUNBNklGd2lYQ0o5WUNrN1hHNWNiaUFnSUNCcFppQW9hWE5RZFdKc2FXTXBJSHRjYmlBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhnVUhWaWJHbGpJSEp2ZFhSbElPS0FsQ0J6YTJsd2NHbHVaeUJoZFhSb1lDazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaDBhR2x6TG1GMWRHaElZVzVrYkdWeUtTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbUYxZEdoSVlXNWtiR1Z5TG1GMWRHaHZjbWw2WlNoY2JpQWdJQ0FnSUNBZ1kzUjRMRnh1SUNBZ0lDQWdJQ0JsWm1abFkzUnBkbVZOYjJSbGJDQmhjeUJ6ZEhKcGJtY2dmQ0JEYjI1emRISjFZM1J2Y2l4Y2JpQWdJQ0FnSUNBZ2NtVnhkV2x5WldSU2IyeGxjeXhjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaWEYxWlhOMFEyOXVkR1Y0ZEZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdiRzluTG1SbFluVm5LR0JPYnlCaGRYUm9JR2hoYm1Sc1pYSWdjbVZuYVhOMFpYSmxaR0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZSeVlXNXpabTl5YldWeWN5QnlkVzRnUVVaVVJWSWdZWFYwYUNCemJ5QjBhR1Y1SUdOaGJpQnlaV0ZrSUdGMWRHZ3RjRzl3ZFd4aGRHVmtJR1pwWld4a2MxeHVJQ0FnSUM4dklDaGxMbWN1SUdCMWMyVnlZQ2tnWm5KdmJTQjBhR1VnWTI5dWRHVjRkQ0JoYm1RZ2JXRndJSFJvWlcwZ2RHOGdZV1JoY0hSbGNpMXpjR1ZqYVdacFl5QnJaWGx6WEc0Z0lDQWdMeThnS0dVdVp5NGdZRlZWU1VSZ0lHWnZjaUJTWVcxQlpHRndkR1Z5SjNNZ1FHTnlaV0YwWldSQ2VTOUFkWEJrWVhSbFpFSjVJR2hoYm1Sc1pYSnpLUzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbUZ3Y0d4NVZISmhibk5tYjNKdFpYSnpLQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQjFjMlZ5SUQwZ2RHaHBjeTV5WlhGMVpYTjBRMjl1ZEdWNGRDNW5aWFJQY2xWdVpHVm1hVzVsWkNoY0luVnpaWEpjSWlCaGN5QmhibmtwTzF4dUlDQWdJR052Ym5OMElHOXlaMkZ1YVhwaGRHbHZiaUE5SUhSb2FYTXVjbVZ4ZFdWemRFTnZiblJsZUhRdVoyVjBUM0pWYm1SbFptbHVaV1FvWENKdmNtZGhibWw2WVhScGIyNWNJaUJoY3lCaGJua3BPMXh1SUNBZ0lHbG1JQ2gxYzJWeUlIeDhJRzl5WjJGdWFYcGhkR2x2YmlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRXh2WnlBOUlIUm9hWE11Y21WeGRXVnpkRU52Ym5SbGVIUXVaMlYwS0Z3aWJHOW5aMlZ5WENJZ1lYTWdZVzU1S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR05vYVd4a1RHOW5JRDBnWTNWeWNtVnVkRXh2Wnk1bWIzSW9leUIxYzJWeUxDQnZjbWRoYm1sNllYUnBiMjRnZlNrN1hHNGdJQ0FnSUNCMGFHbHpMbkpsY1hWbGMzUkRiMjUwWlhoMExtRmpZM1Z0ZFd4aGRHVW9leUJzYjJkblpYSTZJR05vYVd4a1RHOW5JSDBnWVhNZ1lXNTVLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JtVjRkQzVvWVc1a2JHVW9LVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCaGMzbHVZeUJoY0hCc2VWUnlZVzV6Wm05eWJXVnljeWdwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCbWJHRjJiM1Z5Y3lBOUlFRmtZWEIwWlhJdVpteGhkbTkxY25OVWIxUnlZVzV6Wm05eWJTZ3BPMXh1SUNBZ0lHbG1JQ2doWm14aGRtOTFjbk1wSUhKbGRIVnlianRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWm14aGRtOTFjaUJ2WmlCbWJHRjJiM1Z5Y3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZEhKaGJuTm1iM0p0WlhJZ1BTQkJaR0Z3ZEdWeUxuUnlZVzV6Wm05eWJXVnlSbTl5S0Z4dUlDQWdJQ0FnSUNCbWJHRjJiM1Z5WEc0Z0lDQWdJQ0FwSUdGeklGSmxjWFZsYzNSVWIwTnZiblJsZUhSVWNtRnVjMlp2Y20xbGNqeGhibmsrTzF4dUlDQWdJQ0FnYVdZZ0tDRjBjbUZ1YzJadmNtMWxjaWtnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0JqYjI1emRDQm1jbTl0SUQwZ1lYZGhhWFFnZEhKaGJuTm1iM0p0WlhJdVpuSnZiU2gwYUdsekxuSmxjWFZsYzNSRGIyNTBaWGgwS1R0Y2JpQWdJQ0FnSUdsbUlDaG1jbTl0S1NCMGFHbHpMbkpsY1hWbGMzUkRiMjUwWlhoMExtRmpZM1Z0ZFd4aGRHVW9abkp2YlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REQUIRED_ROLES_KEY = exports.IS_PUBLIC_KEY = exports.AUTH_META_KEY = exports.AUTH_HANDLER = void 0;
3
+ exports.SKIP_MODEL_ROLES_KEY = exports.REQUIRED_ROLES_KEY = exports.IS_PUBLIC_KEY = exports.AUTH_META_KEY = exports.AUTH_HANDLER = void 0;
4
4
  exports.AUTH_HANDLER = Symbol("AUTH_HANDLER");
5
5
  exports.AUTH_META_KEY = "auth:meta";
6
6
  exports.IS_PUBLIC_KEY = "isPublic";
7
7
  exports.REQUIRED_ROLES_KEY = "requiredRoles";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBVVRIX0hBTkRMRVIgPSBTeW1ib2woXCJBVVRIX0hBTkRMRVJcIik7XG5leHBvcnQgY29uc3QgQVVUSF9NRVRBX0tFWSA9IFwiYXV0aDptZXRhXCI7XG5leHBvcnQgY29uc3QgSVNfUFVCTElDX0tFWSA9IFwiaXNQdWJsaWNcIjtcbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9ST0xFU19LRVkgPSBcInJlcXVpcmVkUm9sZXNcIjtcbiJdfQ==
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN0QyxRQUFBLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDNUIsUUFBQSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQzNCLFFBQUEsa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQ2xELDB1QkFBMHVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFVVEhfSEFORExFUiA9IFN5bWJvbChcIkFVVEhfSEFORExFUlwiKTtcbmV4cG9ydCBjb25zdCBBVVRIX01FVEFfS0VZID0gXCJhdXRoOm1ldGFcIjtcbmV4cG9ydCBjb25zdCBJU19QVUJMSUNfS0VZID0gXCJpc1B1YmxpY1wiO1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1JPTEVTX0tFWSA9IFwicmVxdWlyZWRSb2xlc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTI5dWMzUmhiblJ6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJGMWRHZ3ZZMjl1YzNSaGJuUnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFMUJRVTBzUTBGQlF5eE5RVUZOTEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03UVVGRGJrUXNUVUZCVFN4RFFVRkRMRTFCUVUwc1lVRkJZU3hIUVVGSExGZEJRVmNzUTBGQlF6dEJRVU42UXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hoUVVGaExFZEJRVWNzVlVGQlZTeERRVUZETzBGQlEzaERMRTFCUVUwc1EwRkJReXhOUVVGTkxHdENRVUZyUWl4SFFVRkhMR1ZCUVdVc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1WNGNHOXlkQ0JqYjI1emRDQkJWVlJJWDBoQlRrUk1SVklnUFNCVGVXMWliMndvWENKQlZWUklYMGhCVGtSTVJWSmNJaWs3WEc1bGVIQnZjblFnWTI5dWMzUWdRVlZVU0Y5TlJWUkJYMHRGV1NBOUlGd2lZWFYwYURwdFpYUmhYQ0k3WEc1bGVIQnZjblFnWTI5dWMzUWdTVk5mVUZWQ1RFbERYMHRGV1NBOUlGd2lhWE5RZFdKc2FXTmNJanRjYm1WNGNHOXlkQ0JqYjI1emRDQlNSVkZWU1ZKRlJGOVNUMHhGVTE5TFJWa2dQU0JjSW5KbGNYVnBjbVZrVW05c1pYTmNJanRjYmlKZGZRPT0iXX0=
8
+ exports.SKIP_MODEL_ROLES_KEY = "skipModelRoles";
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBVVRIX0hBTkRMRVIgPSBTeW1ib2woXCJBVVRIX0hBTkRMRVJcIik7XG5leHBvcnQgY29uc3QgQVVUSF9NRVRBX0tFWSA9IFwiYXV0aDptZXRhXCI7XG5leHBvcnQgY29uc3QgSVNfUFVCTElDX0tFWSA9IFwiaXNQdWJsaWNcIjtcbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9ST0xFU19LRVkgPSBcInJlcXVpcmVkUm9sZXNcIjtcbmV4cG9ydCBjb25zdCBTS0lQX01PREVMX1JPTEVTX0tFWSA9IFwic2tpcE1vZGVsUm9sZXNcIjtcbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN0QyxRQUFBLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDNUIsUUFBQSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQzNCLFFBQUEsa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQ3JDLFFBQUEsb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7QUFDckQsazNCQUFrM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVVUSF9IQU5ETEVSID0gU3ltYm9sKFwiQVVUSF9IQU5ETEVSXCIpO1xuZXhwb3J0IGNvbnN0IEFVVEhfTUVUQV9LRVkgPSBcImF1dGg6bWV0YVwiO1xuZXhwb3J0IGNvbnN0IElTX1BVQkxJQ19LRVkgPSBcImlzUHVibGljXCI7XG5leHBvcnQgY29uc3QgUkVRVUlSRURfUk9MRVNfS0VZID0gXCJyZXF1aXJlZFJvbGVzXCI7XG5leHBvcnQgY29uc3QgU0tJUF9NT0RFTF9ST0xFU19LRVkgPSBcInNraXBNb2RlbFJvbGVzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMjl1YzNSaGJuUnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMMkYxZEdndlkyOXVjM1JoYm5SekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEUxQlFVMHNRMEZCUXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdRVUZEYmtRc1RVRkJUU3hEUVVGRExFMUJRVTBzWVVGQllTeEhRVUZITEZkQlFWY3NRMEZCUXp0QlFVTjZReXhOUVVGTkxFTkJRVU1zVFVGQlRTeGhRVUZoTEVkQlFVY3NWVUZCVlN4RFFVRkRPMEZCUTNoRExFMUJRVTBzUTBGQlF5eE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExHVkJRV1VzUTBGQlF6dEJRVU5zUkN4TlFVRk5MRU5CUVVNc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4blFrRkJaMElzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQmpiMjV6ZENCQlZWUklYMGhCVGtSTVJWSWdQU0JUZVcxaWIyd29YQ0pCVlZSSVgwaEJUa1JNUlZKY0lpazdYRzVsZUhCdmNuUWdZMjl1YzNRZ1FWVlVTRjlOUlZSQlgwdEZXU0E5SUZ3aVlYVjBhRHB0WlhSaFhDSTdYRzVsZUhCdmNuUWdZMjl1YzNRZ1NWTmZVRlZDVEVsRFgwdEZXU0E5SUZ3aWFYTlFkV0pzYVdOY0lqdGNibVY0Y0c5eWRDQmpiMjV6ZENCU1JWRlZTVkpGUkY5U1QweEZVMTlMUlZrZ1BTQmNJbkpsY1hWcGNtVmtVbTlzWlhOY0lqdGNibVY0Y0c5eWRDQmpiMjV6ZENCVFMwbFFYMDFQUkVWTVgxSlBURVZUWDB0RldTQTlJRndpYzJ0cGNFMXZaR1ZzVW05c1pYTmNJanRjYmlKZGZRPT0iXX0=