cdk-serverless 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/docs/constructs/assets/hierarchy.js +1 -1
  2. package/docs/constructs/assets/navigation.js +1 -1
  3. package/docs/constructs/assets/search.js +1 -1
  4. package/docs/constructs/classes/SingleTableDatastore.html +5 -4
  5. package/docs/constructs/classes/Workflow.html +1 -1
  6. package/docs/constructs/hierarchy.html +1 -1
  7. package/docs/constructs/interfaces/BaseApiProps.html +2 -2
  8. package/docs/constructs/interfaces/GraphQlApiProps.html +2 -2
  9. package/docs/constructs/interfaces/ISingleTableDatastore.html +3 -0
  10. package/docs/constructs/interfaces/RestApiProps.html +2 -2
  11. package/docs/constructs/modules.html +1 -1
  12. package/docs/projen/classes/Datastore.html +1 -1
  13. package/docs/projen/classes/GraphQlApi.html +1 -1
  14. package/docs/projen/classes/RestApi.html +1 -1
  15. package/docs/projen/classes/ServerlessProject.html +7 -4
  16. package/docs/projen/classes/Workflow.html +1 -1
  17. package/docs/projen/interfaces/ServerlessProjectOptions.html +199 -150
  18. package/lib/constructs/authentication.js +8 -9
  19. package/lib/constructs/base-api.d.ts +2 -2
  20. package/lib/constructs/base-api.js +3 -4
  21. package/lib/constructs/func.js +10 -11
  22. package/lib/constructs/graphql.js +6 -10
  23. package/lib/constructs/rest-api.js +2 -3
  24. package/lib/constructs/table.d.ts +8 -1
  25. package/lib/constructs/table.js +12 -4
  26. package/lib/constructs/workflow.js +2 -3
  27. package/lib/lambda/auth.js +6 -8
  28. package/lib/lambda/handler.js +7 -10
  29. package/lib/projen/core.js +3 -4
  30. package/lib/projen/graphql.js +3 -2
  31. package/lib/projen/lazy-textfile.js +2 -3
  32. package/lib/projen/workflow.js +3 -4
  33. package/lib/tests/integ-test-util.js +12 -19
  34. package/lib/tests/lambda-test-utils.js +8 -10
  35. package/package.json +7 -5
@@ -2,7 +2,6 @@
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
- var _a, _b, _c, _d, _e;
6
5
  Object.defineProperty(exports, "__esModule", { value: true });
7
6
  exports.AppSyncCognitoAuthorizer = exports.ApiGatewayv2CognitoAuthorizer = exports.ApiGatewayv1CognitoAuthorizer = exports.ApiGatewayv2JwtAuthorizer = exports.ApiGatewayv1JwtAuthorizer = exports.CognitoAuthorizer = exports.JwtAuthorizer = void 0;
8
7
  const process_1 = require("process");
@@ -10,11 +9,11 @@ const axios_1 = __importDefault(require("axios"));
10
9
  const jsonwebtoken_1 = require("jsonwebtoken");
11
10
  const jwk_to_pem_1 = __importDefault(require("jwk-to-pem"));
12
11
  const errors_1 = require("./errors");
13
- const cognitoPoolId = (_a = process_1.env.USER_POOL_ID) !== null && _a !== void 0 ? _a : '';
14
- const cognitoPoolRegion = (_c = (_b = process_1.env.USER_POOL_REGION) !== null && _b !== void 0 ? _b : process_1.env.AWS_REGION) !== null && _c !== void 0 ? _c : 'eu-central-1';
15
- const jwtIssuerUrl = cognitoPoolId ? `https://cognito-idp.${cognitoPoolRegion}.amazonaws.com/${cognitoPoolId}` : ((_d = process_1.env.JWT_ISSUER_URL) !== null && _d !== void 0 ? _d : '');
12
+ const cognitoPoolId = process_1.env.USER_POOL_ID ?? '';
13
+ const cognitoPoolRegion = process_1.env.USER_POOL_REGION ?? process_1.env.AWS_REGION ?? 'eu-central-1';
14
+ const jwtIssuerUrl = cognitoPoolId ? `https://cognito-idp.${cognitoPoolRegion}.amazonaws.com/${cognitoPoolId}` : (process_1.env.JWT_ISSUER_URL ?? '');
16
15
  const jwtJwksUrl = cognitoPoolId ? `${jwtIssuerUrl}/.well-known/jwks.json` : process_1.env.JWT_JWKS_URL;
17
- const jwtGroupClaim = cognitoPoolId ? 'cognito:groups' : ((_e = process_1.env.JWT_GROUP_CLAIM) !== null && _e !== void 0 ? _e : '');
16
+ const jwtGroupClaim = cognitoPoolId ? 'cognito:groups' : (process_1.env.JWT_GROUP_CLAIM ?? '');
18
17
  const jwtAudience = (process_1.env.JWT_AUDIENCE_URL && process_1.env.JWT_AUDIENCE_URL.length > 0) ? process_1.env.JWT_AUDIENCE_URL.split('||') : undefined;
19
18
  let cacheKeys;
20
19
  const getPublicKeys = async (jwksUrl) => {
@@ -218,9 +217,8 @@ class ApiGatewayv2JwtAuthorizer extends JwtAuthorizer {
218
217
  * by decoding a JWT token from the 'Authorization' header.
219
218
  */
220
219
  async authenticate() {
221
- var _a, _b;
222
220
  // Try to get the claims from the event
223
- this.claims = (_b = (_a = this.event.requestContext.authorizer) === null || _a === void 0 ? void 0 : _a.jwt) === null || _b === void 0 ? void 0 : _b.claims;
221
+ this.claims = this.event.requestContext.authorizer?.jwt?.claims;
224
222
  // If no pool ID is defined or claims exist, return early
225
223
  if (!cognitoPoolId || this.claims) {
226
224
  return;
@@ -306,4 +304,4 @@ class AppSyncCognitoAuthorizer extends CognitoAuthorizer {
306
304
  }
307
305
  }
308
306
  exports.AppSyncCognitoAuthorizer = AppSyncCognitoAuthorizer;
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGEvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEscUNBQThCO0FBQzlCLGtEQUEwQjtBQUMxQiwrQ0FBcUU7QUFDckUsNERBQWtDO0FBRWxDLHFDQUFnRTtBQUVoRSxNQUFNLGFBQWEsR0FBRyxNQUFBLGFBQUcsQ0FBQyxZQUFZLG1DQUFJLEVBQUUsQ0FBQztBQUM3QyxNQUFNLGlCQUFpQixHQUFHLE1BQUEsTUFBQSxhQUFHLENBQUMsZ0JBQWdCLG1DQUFJLGFBQUcsQ0FBQyxVQUFVLG1DQUFJLGNBQWMsQ0FBQztBQUVuRixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixpQkFBaUIsa0JBQWtCLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQUEsYUFBRyxDQUFDLGNBQWMsbUNBQUksRUFBRSxDQUFDLENBQUM7QUFDNUksTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksd0JBQXdCLENBQUMsQ0FBQyxDQUFDLGFBQUcsQ0FBQyxZQUFZLENBQUM7QUFDOUYsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFBLGFBQUcsQ0FBQyxlQUFlLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3JGLE1BQU0sV0FBVyxHQUFHLENBQUMsYUFBRyxDQUFDLGdCQUFnQixJQUFJLGFBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQTZCN0gsSUFBSSxTQUEwQyxDQUFDO0FBRS9DLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxPQUFlLEVBQWdDLEVBQUU7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cG9ydCBBeGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyB2ZXJpZnksIEp3dEhlYWRlciwgU2lnbmluZ0tleUNhbGxiYWNrIH0gZnJvbSAnanNvbndlYnRva2VuJztcbmltcG9ydCBqd2tUb1BlbSBmcm9tICdqd2stdG8tcGVtJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnbGFtYmRhLWxvZyc7XG5pbXBvcnQgeyBGb3JiaWRkZW5FcnJvciwgVW5hdXRoZW50aWNhdGVkRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5cbmNvbnN0IGNvZ25pdG9Qb29sSWQgPSBlbnYuVVNFUl9QT09MX0lEID8/ICcnO1xuY29uc3QgY29nbml0b1Bvb2xSZWdpb24gPSBlbnYuVVNFUl9QT09MX1JFR0lPTiA/PyBlbnYuQVdTX1JFR0lPTiA/PyAnZXUtY2VudHJhbC0xJztcblxuY29uc3Qgand0SXNzdWVyVXJsID0gY29nbml0b1Bvb2xJZCA/IGBodHRwczovL2NvZ25pdG8taWRwLiR7Y29nbml0b1Bvb2xSZWdpb259LmFtYXpvbmF3cy5jb20vJHtjb2duaXRvUG9vbElkfWAgOiAoZW52LkpXVF9JU1NVRVJfVVJMID8/ICcnKTtcbmNvbnN0IGp3dEp3a3NVcmwgPSBjb2duaXRvUG9vbElkID8gYCR7and0SXNzdWVyVXJsfS8ud2VsbC1rbm93bi9qd2tzLmpzb25gIDogZW52LkpXVF9KV0tTX1VSTDtcbmNvbnN0IGp3dEdyb3VwQ2xhaW0gPSBjb2duaXRvUG9vbElkID8gJ2NvZ25pdG86Z3JvdXBzJyA6IChlbnYuSldUX0dST1VQX0NMQUlNID8/ICcnKTtcbmNvbnN0IGp3dEF1ZGllbmNlID0gKGVudi5KV1RfQVVESUVOQ0VfVVJMICYmIGVudi5KV1RfQVVESUVOQ0VfVVJMLmxlbmd0aCA+IDApID8gZW52LkpXVF9BVURJRU5DRV9VUkwuc3BsaXQoJ3x8JykgOiB1bmRlZmluZWQ7XG5cbmludGVyZmFjZSBQdWJsaWNLZXkge1xuICBhbGc6IHN0cmluZztcbiAgZTogc3RyaW5nO1xuICBraWQ6IHN0cmluZztcbiAga3R5OiBzdHJpbmc7XG4gIG46IHN0cmluZztcbiAgdXNlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQdWJsaWNLZXlNZXRhIHtcbiAgaW5zdGFuY2U6IFB1YmxpY0tleTtcbiAgcGVtOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQdWJsaWNLZXlzIHtcbiAga2V5czogUHVibGljS2V5W107XG59XG5cbmludGVyZmFjZSBJc3N1ZXJNZXRhZGF0YSB7XG4gIGp3a3NfdXJpPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5pbnRlcmZhY2UgTWFwT2ZLaWRUb1B1YmxpY0tleSB7XG4gIFtrZXk6IHN0cmluZ106IFB1YmxpY0tleU1ldGE7XG59XG5cbmxldCBjYWNoZUtleXM6IE1hcE9mS2lkVG9QdWJsaWNLZXkgfCB1bmRlZmluZWQ7XG5cbmNvbnN0IGdldFB1YmxpY0tleXMgPSBhc3luYyAoandrc1VybDogc3RyaW5nKTogUHJvbWlzZTxNYXBPZktpZFRvUHVibGljS2V5PiA9PiB7XG4gIGlmICghY2FjaGVLZXlzKSB7XG4gICAgY29uc3QgcHVibGljS2V5czogUHVibGljS2V5cyA9IChhd2FpdCBBeGlvcy5nZXQ8UHVibGljS2V5cz4oandrc1VybCkpLmRhdGE7XG4gICAgY2FjaGVLZXlzID0gcHVibGljS2V5cy5rZXlzLnJlZHVjZSgoYWdnLCBjdXJyZW50KSA9PiB7XG4gICAgICBjb25zdCBwZW0gPSBqd2tUb1BlbShjdXJyZW50IGFzIGp3a1RvUGVtLkpXSyk7XG4gICAgICBhZ2dbY3VycmVudC5raWRdID0geyBpbnN0YW5jZTogY3VycmVudCwgcGVtIH07XG4gICAgICByZXR1cm4gYWdnO1xuICAgIH0sIHt9IGFzIE1hcE9mS2lkVG9QdWJsaWNLZXkpO1xuICAgIHJldHVybiBjYWNoZUtleXM7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNhY2hlS2V5cztcbiAgfVxufTtcblxuLy8gR3JhYiB0aGUgSldLUyBVUkkgZnJvbSB0aGUgSldUIGlzc3VlcidzIG1ldGFkYXRhXG5jb25zdCBnZXRKd2tzVXJpID0gYXN5bmMgKGRpc2NvdmVyeVVyaTogc3RyaW5nLCBqd2tzVXJpPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgaWYgKGp3a3NVcmkpIHtcbiAgICByZXR1cm4gandrc1VyaTtcbiAgfVxuICBjb25zdCB3ZWxsS25vd25VcmkgPSBgJHtkaXNjb3ZlcnlVcml9Ly53ZWxsLWtub3duYDtcbiAgY29uc3QgaXNzdWVyTWV0YWRhdGEgPSAoYXdhaXQgQXhpb3MuZ2V0PElzc3Vlck1ldGFkYXRhPih3ZWxsS25vd25VcmkpKS5kYXRhO1xuICBpZiAoIWlzc3Vlck1ldGFkYXRhLmp3a3NfdXJpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJc3N1ZXIgZG9lcyBub3Qgb2ZmZXIgSldLUyBlbmRwb2ludCcpO1xuICB9XG4gIHJldHVybiBpc3N1ZXJNZXRhZGF0YS5qd2tzX3VyaTtcbn07XG5cbmNvbnN0IHByb21pc2VkVmVyaWZ5ID0gKHRva2VuOiBzdHJpbmcsIGlzc3VlclVyaTogc3RyaW5nLCBqd2tzVXJpPzogc3RyaW5nKTogUHJvbWlzZTx7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfT4gPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHZlcmlmeSh0b2tlbiwgKGhlYWRlcjogSnd0SGVhZGVyLCBjYjogU2lnbmluZ0tleUNhbGxiYWNrKSA9PiB7XG4gICAgICBpZiAoIWhlYWRlci5raWQpIHtcbiAgICAgICAgY2IobmV3IEVycm9yKCdubyBrZXkgaWQgZm91bmQnKSk7XG4gICAgICB9XG4gICAgICBnZXRKd2tzVXJpKGlzc3VlclVyaSwgandrc1VyaSkudGhlbihnZXRQdWJsaWNLZXlzKS50aGVuKChrZXlzKSA9PiB7XG4gICAgICAgIGNiKG51bGwsIGtleXNbaGVhZGVyLmtpZCFdLnBlbSk7XG4gICAgICB9LCBjYik7XG4gICAgfSwgeyBpc3N1ZXI6IGlzc3VlclVyaSwgYXVkaWVuY2U6IGp3dEF1ZGllbmNlIH0sIChlcnIsIGRlY29kZWQpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKGRlY29kZWQgYXMgeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbi8qKlxuICogQSBnZW5lcmljIEpXVCBhdXRob3JpemVyIGJhc2UgY2xhc3MsIHByZXN1cHBvc2luZyB0aGUgcHJlc2VuY2Ugb2YgYW4gaXNzdWVyLCBhIG51bWJlciBvZiBhdXRob3JpemF0aW9uIGNsYWltcywgYW5cbiAqIGFkbWluIHBlcm1pc3Npb24gY2xhaW0gYW5kIG9wdGlvbmFsbHkgYSBzZXBhcmF0ZSBVUkwgdG8gYSBKV0tTIHRvIHVzZSBpZiB0aGUgaXNzdWVycyB3ZWxsLWtub3duIFVSTCBkb2VzIG5vdFxuICogcG9pbnQgdG8gaXQgaW4gaXRzIG1ldGFkYXRhLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSnd0QXV0aG9yaXplciB7XG5cbiAgLyoqXG4gICAqIFRoZSBjbGFpbXMgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlci5cbiAgICovXG4gIHByb3RlY3RlZCBjbGFpbXM/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgc3RyaW5nW10gfTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGlzc3VlclVybDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBncm91cENsYWltOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIGFkbWluQ2xhaW06IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgandrc1VybD86IHN0cmluZyxcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBncm91cHMgdGhlIHVzZXIgYmVsb25ncyB0bywgb3IgYW4gZW1wdHkgYXJyYXkgaWYgdGhlIHVzZXJcbiAgICogaXMgbm90IGF1dGhlbnRpY2F0ZWQgb3IgaGFzIG5vIGdyb3Vwcy5cbiAgICovXG4gIHB1YmxpYyBnZXRHcm91cHMoKTogc3RyaW5nW10ge1xuICAgIGlmICghdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSB8fCAhdGhpcy5jbGFpbXMhLmhhc093blByb3BlcnR5KHRoaXMuZ3JvdXBDbGFpbSkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2xhaW1zIVt0aGlzLmdyb3VwQ2xhaW1dIGFzIHVua25vd24gYXMgc3RyaW5nW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIGJlbG9uZ3MgdG8gdGhlIHNwZWNpZmllZCBncm91cCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKiBAcGFyYW0gZ3JvdXAgVGhlIG5hbWUgb2YgdGhlIGdyb3VwIHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGhhc0dyb3VwKGdyb3VwOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyAnY29nbml0bzpncm91cHMnOiBbICdhZG1pbicgXSxcbiAgICByZXR1cm4gdGhpcy5nZXRHcm91cHMoKS5pbmNsdWRlcyhncm91cCk7XG4gIH1cblxuICAvKipcbiAgICogQXV0aGVudGljYXRlcyB0aGUgdXNlciBhbmQgc2V0cyB0aGUgY2xhaW1zLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGF1dGhlbnRpY2F0ZSgpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHVzZXIgaXMgYXV0aGVudGljYXRlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jbGFpbXMgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gVW5hdXRoZW50aWNhdGVkRXJyb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0QXV0aGVudGljYXRlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNBdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIHRocm93IG5ldyBVbmF1dGhlbnRpY2F0ZWRFcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYSBGb3JiaWRkZW5FcnJvciBpZiB0aGUgdXNlciBpcyBub3QgYXV0aGVudGljYXRlZCBvciBkb2VzIG5vdCBiZWxvbmdcbiAgICogdG8gdGhlIHNwZWNpZmllZCBncm91cC5cbiAgICogQHBhcmFtIGdyb3VwIFRoZSBuYW1lIG9mIHRoZSBncm91cCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBhc3NlcnRHcm91cChncm91cDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnRBdXRoZW50aWNhdGVkKCk7XG4gICAgaWYgKCF0aGlzLmhhc0dyb3VwKGdyb3VwKSkge1xuICAgICAgdGhyb3cgbmV3IEZvcmJpZGRlbkVycm9yKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdXNlciBiZWxvbmdzIHRvIHRoZSAnYWRtaW4nIGdyb3VwLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgaXNBZG1pbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNHcm91cCh0aGlzLmFkbWluQ2xhaW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBhIEZvcmJpZGRlbkVycm9yIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkIG9yIGlzIG5vdCBhbiBhZG1pbi5cbiAgICovXG4gIHB1YmxpYyBhc3NlcnRBZG1pbigpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2VydEdyb3VwKHRoaXMuYWRtaW5DbGFpbSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZW1haWwgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlci5cbiAgICovXG4gIHB1YmxpYyBnZXRFTWFpbCgpOiBzdHJpbmcge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIHJldHVybiB0aGlzLmNsYWltcyEuZW1haWwgYXMgc3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN1YmplY3Qgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlci5cbiAgICovXG4gIHB1YmxpYyBnZXRTdWJqZWN0KCk6IHN0cmluZyB7XG4gICAgdGhpcy5hc3NlcnRBdXRoZW50aWNhdGVkKCk7XG4gICAgcmV0dXJuIHRoaXMuY2xhaW1zIS5zdWIgYXMgc3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBjbGFpbSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwgb3IgdW5kZWZpbmVkIGlmIHRoZVxuICAgKiBjbGFpbSBkb2VzIG5vdCBleGlzdC5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNsYWltIHRvIHJldHJpZXZlLlxuICAgKi9cbiAgcHVibGljIGdldENsYWltKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgdGhpcy5hc3NlcnRBdXRoZW50aWNhdGVkKCk7XG4gICAgcmV0dXJuIHRoaXMuY2xhaW1zIVtuYW1lXTtcbiAgfVxufVxuXG4vKipcbiAqIENvZ25pdG9BdXRob3JpemVyIGlzIGFuIGFic3RyYWN0IGNsYXNzIHJlcHJlc2VudGluZyBhbiBhdXRob3JpemVyXG4gKiB0aGF0IGNhbiBiZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZSBhbmQgYXV0aG9yaXplIGEgdXNlciB0aHJvdWdoIENvZ25pdG8uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb2duaXRvQXV0aG9yaXplciBleHRlbmRzIEp3dEF1dGhvcml6ZXIge1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihqd3RJc3N1ZXJVcmwsIGp3dEdyb3VwQ2xhaW0sICdhZG1pbicpO1xuICB9XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBhdXRob3JpemF0aW9uIG9uIEFQSSBHYXRld2F5IHYxIChSZXN0IEFQSSkgdXNpbmcgSldULlxuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheXYxSnd0QXV0aG9yaXplciBleHRlbmRzIEp3dEF1dGhvcml6ZXIge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBldmVudDogQVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eVdpdGhDb2duaXRvQXV0aG9yaXplckV2ZW50LCAvL0ZJWE1FOiBMZWFybiBhYm91dCBwb3NzaWJsZSByZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyIHNvdXJjZXMgaW4gQVBJIGdhdGV3YXlcbiAgICBhZG1pbkNsYWltOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIF9sb2dnZXI6IGxvZ2dlci5MYW1iZGFMb2csXG4gICkge1xuICAgIHN1cGVyKGp3dElzc3VlclVybCwgand0R3JvdXBDbGFpbSwgYWRtaW5DbGFpbSwgand0Sndrc1VybCk7XG4gIH1cblxuICAvKipcbiAgICogQXV0aGVudGljYXRlcyB0aGUgdXNlciB1c2luZyB0aGUgY2xhaW1zIHByb3ZpZGVkIGJ5IHRoZSBBUEkgR2F0ZXdheSBldmVudCBvclxuICAgKiBieSBkZWNvZGluZyBhIEpXVCB0b2tlbiBmcm9tIHRoZSAnQXV0aG9yaXphdGlvbicgaGVhZGVyLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGF1dGhlbnRpY2F0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIC8vIENvdWxkIGJlIGFsbW9zdCB0aGUgZXhhY3Qgc2FtZSBjb2RlIGFzIENvZ25pdG8gaWYgd2UgY2FuIHNwZWNpZnkgb3VyIG93biBBdXRob3JpemVyIGluIHRoZSBldmVudCdzIHJlcXVlc3QgY29udGV4dFxuICAgIGlmICh0aGlzLmV2ZW50LnJlcXVlc3RDb250ZXh0LmF1dGhvcml6ZXIgJiYgdGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyLmNsYWltcykge1xuICAgICAgdGhpcy5jbGFpbXMgPSB0aGlzLmV2ZW50LnJlcXVlc3RDb250ZXh0LmF1dGhvcml6ZXIuY2xhaW1zO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsYWltcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGF1dGhIZWFkZXIgPSB0aGlzLmV2ZW50LmhlYWRlcnMuYXV0aG9yaXphdGlvbjtcbiAgICBpZiAoIWF1dGhIZWFkZXIgfHwgIWF1dGhIZWFkZXIuc3RhcnRzV2l0aCgnQmVhcmVyICcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gYXV0aEhlYWRlci5zdWJzdHJpbmcoJ0JlYXJlciAnLmxlbmd0aCk7XG5cbiAgICAvLyBWZXJpZnkgdGhlIHRva2VuIGFuZCBzZXQgdGhlIGNsYWltcyBvbiB0aGUgZXZlbnQgYW5kIHRoaXMgb2JqZWN0XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsYWltczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSBhd2FpdCBwcm9taXNlZFZlcmlmeSh0b2tlbiwgdGhpcy5pc3N1ZXJVcmwsIHRoaXMuandrc1VybCk7XG4gICAgICB0aGlzLl9sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoY2xhaW1zKSk7XG5cbiAgICAgIHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplciA9IHsgY2xhaW1zIH07XG4gICAgICB0aGlzLmNsYWltcyA9IGNsYWltcztcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgdGhpcy5fbG9nZ2VyLmVycm9yKGVycik7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBKV1QgQXV0aG9yaXphdGlvbiBvbiBBUEkgR2F0ZXdheSB2MiAoSFRUUCBBUEkpLlxuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheXYySnd0QXV0aG9yaXplciBleHRlbmRzIEp3dEF1dGhvcml6ZXIge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlFdmVudFYyV2l0aEpXVEF1dGhvcml6ZXIsIHByb3RlY3RlZCBfbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nKSB7XG4gICAgc3VwZXIoand0SXNzdWVyVXJsLCAnY29nbml0bzpncm91cHMnLCAnYWRtaW4nLCBqd3RKd2tzVXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdXRoZW50aWNhdGVzIHRoZSB1c2VyIHVzaW5nIHRoZSBjbGFpbXMgcHJvdmlkZWQgYnkgdGhlIEFQSSBHYXRld2F5IGV2ZW50IG9yXG4gICAqIGJ5IGRlY29kaW5nIGEgSldUIHRva2VuIGZyb20gdGhlICdBdXRob3JpemF0aW9uJyBoZWFkZXIuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYXV0aGVudGljYXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRyeSB0byBnZXQgdGhlIGNsYWltcyBmcm9tIHRoZSBldmVudFxuICAgIHRoaXMuY2xhaW1zID0gdGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyPy5qd3Q/LmNsYWltcztcblxuICAgIC8vIElmIG5vIHBvb2wgSUQgaXMgZGVmaW5lZCBvciBjbGFpbXMgZXhpc3QsIHJldHVybiBlYXJseVxuICAgIGlmICghY29nbml0b1Bvb2xJZCB8fCB0aGlzLmNsYWltcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgdGhlIHRva2VuIGZyb20gdGhlIEF1dGhvcml6YXRpb24gaGVhZGVyXG4gICAgY29uc3QgYXV0aEhlYWRlciA9IHRoaXMuZXZlbnQuaGVhZGVycy5hdXRob3JpemF0aW9uO1xuICAgIGlmICghYXV0aEhlYWRlciB8fCAhYXV0aEhlYWRlci5zdGFydHNXaXRoKCdCZWFyZXIgJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSBhdXRoSGVhZGVyLnN1YnN0cmluZygnQmVhcmVyICcubGVuZ3RoKTtcblxuICAgIC8vIFZlcmlmeSB0aGUgdG9rZW4gYW5kIHNldCB0aGUgY2xhaW1zIG9uIHRoZSBldmVudCBhbmQgdGhpcyBvYmplY3RcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2xhaW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IGF3YWl0IHByb21pc2VkVmVyaWZ5KHRva2VuLCB0aGlzLmlzc3VlclVybCwgdGhpcy5qd2tzVXJsKTtcbiAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhKU09OLnN0cmluZ2lmeShjbGFpbXMpKTtcblxuICAgICAgdGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyID0ge1xuICAgICAgICBqd3Q6IHtcbiAgICAgICAgICBjbGFpbXMsXG4gICAgICAgICAgc2NvcGVzOiBbJ29wZW5pZCcsICdlbWFpbCddLFxuICAgICAgICB9LFxuICAgICAgICBpbnRlZ3JhdGlvbkxhdGVuY3k6IDAsXG4gICAgICAgIHByaW5jaXBhbElkOiAndG9vbGJveCcsXG4gICAgICB9O1xuICAgICAgdGhpcy5jbGFpbXMgPSBjbGFpbXM7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcihlcnIpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwaUdhdGV3YXl2MUNvZ25pdG9BdXRob3JpemVyIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgYW4gQXBpR2F0ZXdheXYxSnd0QXV0aG9yaXplclxuICogYW5kIGltcGxlbWVudHMgYXV0aGVudGljYXRpb24gbG9naWMgZm9yIEFQSSBHYXRld2F5IHYxIHJlcXVlc3RzIHdoZW4gdXNpbmcgQ29nbml0by4uXG4gKi9cbmV4cG9ydCBjbGFzcyBBcGlHYXRld2F5djFDb2duaXRvQXV0aG9yaXplciBleHRlbmRzIEFwaUdhdGV3YXl2MUp3dEF1dGhvcml6ZXIge1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGF1dGhvcml6YXRpb24gY2hlY2suXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlXaXRoQ29nbml0b0F1dGhvcml6ZXJFdmVudCwgcHJvdGVjdGVkIF9sb2dnZXI6IGxvZ2dlci5MYW1iZGFMb2cpIHtcbiAgICBzdXBlcihldmVudCwgJ2FkbWluJywgX2xvZ2dlcik7XG4gIH1cbn1cblxuLyoqXG4gKiBBcGlHYXRld2F5djJDb2duaXRvQXV0aG9yaXplciBpcyBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBDb2duaXRvQXV0aG9yaXplclxuICogYW5kIGltcGxlbWVudHMgYXV0aGVudGljYXRpb24gbG9naWMgZm9yIEFQSSBHYXRld2F5IHYyIHJlcXVlc3RzIHdpdGggYVxuICogSldUIGF1dGhvcml6ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcGlHYXRld2F5djJDb2duaXRvQXV0aG9yaXplciBleHRlbmRzIEFwaUdhdGV3YXl2Mkp3dEF1dGhvcml6ZXIge1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGF1dGhvcml6YXRpb24gY2hlY2suXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlFdmVudFYyV2l0aEpXVEF1dGhvcml6ZXIsIHByb3RlY3RlZCBfbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nKSB7XG4gICAgc3VwZXIoZXZlbnQsIF9sb2dnZXIpO1xuICB9XG59XG5cbi8qKlxuICogQXBwU3luY0NvZ25pdG9BdXRob3JpemVyIGlzIGEgY2xhc3MgdGhhdCBleHRlbmRzIENvZ25pdG9BdXRob3JpemVyXG4gKiBhbmQgaW1wbGVtZW50cyBhdXRoZW50aWNhdGlvbiBsb2dpYyBmb3IgQXBwU3luYyByZXNvbHZlciBldmVudHMgd2l0aCBhXG4gKiBDb2duaXRvIGF1dGhvcml6ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBTeW5jQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBDb2duaXRvQXV0aG9yaXplciB7XG5cbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgYXV0aG9yaXphdGlvbiBjaGVjay5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBldmVudDogQVdTTGFtYmRhLkFwcFN5bmNSZXNvbHZlckV2ZW50PGFueT4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZXMgdGhlIHVzZXIgdXNpbmcgdGhlIGNsYWltcyBwcm92aWRlZCBieSB0aGUgQXBwU3luYyBldmVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhdXRoZW50aWNhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVHJ5IHRvIGdldCB0aGUgY2xhaW1zIGZyb20gdGhlIGV2ZW50XG4gICAgaWYgKHRoaXMuZXZlbnQuaWRlbnRpdHkpIHtcbiAgICAgIHRoaXMuY2xhaW1zID0gKHRoaXMuZXZlbnQuaWRlbnRpdHkgYXMgQVdTTGFtYmRhLkFwcFN5bmNJZGVudGl0eUNvZ25pdG8pLmNsYWltcztcbiAgICB9XG4gIH1cblxufVxuIl19
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGEvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxQ0FBOEI7QUFDOUIsa0RBQTBCO0FBQzFCLCtDQUFxRTtBQUNyRSw0REFBa0M7QUFFbEMscUNBQWdFO0FBRWhFLE1BQU0sYUFBYSxHQUFHLGFBQUcsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsYUFBRyxDQUFDLGdCQUFnQixJQUFJLGFBQUcsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDO0FBRW5GLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLGlCQUFpQixrQkFBa0IsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM1SSxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsYUFBRyxDQUFDLFlBQVksQ0FBQztBQUM5RixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQUcsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxhQUFHLENBQUMsZ0JBQWdCLElBQUksYUFBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBNkI3SCxJQUFJLFNBQTBDLENBQUM7QUFFL0MsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLE9BQWUsRUFBZ0MsRUFBRTtJQUM1RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7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S0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUEzQ0QsOERBMkNDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSw2QkFBOEIsU0FBUSx5QkFBeUI7SUFFMUU7O09BRUc7SUFDSCxZQUFzQixLQUEwRCxFQUFZLE9BQXlCO1FBQ25ILEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRFgsVUFBSyxHQUFMLEtBQUssQ0FBcUQ7UUFBWSxZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUVySCxDQUFDO0NBQ0Y7QUFSRCxzRUFRQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLDZCQUE4QixTQUFRLHlCQUF5QjtJQUUxRTs7T0FFRztJQUNILFlBQXNCLEtBQXdELEVBQVksT0FBeUI7UUFDakgsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQURGLFVBQUssR0FBTCxLQUFLLENBQW1EO1FBQVksWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFFbkgsQ0FBQztDQUNGO0FBUkQsc0VBUUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxpQkFBaUI7SUFFN0Q7O09BRUc7SUFDSCxZQUFzQixLQUEwQztRQUM5RCxLQUFLLEVBQUUsQ0FBQztRQURZLFVBQUssR0FBTCxLQUFLLENBQXFDO0lBRWhFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLHVDQUF1QztRQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQTZDLENBQUMsTUFBTSxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDO0NBRUY7QUFuQkQsNERBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW52IH0gZnJvbSAncHJvY2Vzcyc7XG5pbXBvcnQgQXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgdmVyaWZ5LCBKd3RIZWFkZXIsIFNpZ25pbmdLZXlDYWxsYmFjayB9IGZyb20gJ2pzb253ZWJ0b2tlbic7XG5pbXBvcnQgandrVG9QZW0gZnJvbSAnandrLXRvLXBlbSc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJ2xhbWJkYS1sb2cnO1xuaW1wb3J0IHsgRm9yYmlkZGVuRXJyb3IsIFVuYXV0aGVudGljYXRlZEVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG5jb25zdCBjb2duaXRvUG9vbElkID0gZW52LlVTRVJfUE9PTF9JRCA/PyAnJztcbmNvbnN0IGNvZ25pdG9Qb29sUmVnaW9uID0gZW52LlVTRVJfUE9PTF9SRUdJT04gPz8gZW52LkFXU19SRUdJT04gPz8gJ2V1LWNlbnRyYWwtMSc7XG5cbmNvbnN0IGp3dElzc3VlclVybCA9IGNvZ25pdG9Qb29sSWQgPyBgaHR0cHM6Ly9jb2duaXRvLWlkcC4ke2NvZ25pdG9Qb29sUmVnaW9ufS5hbWF6b25hd3MuY29tLyR7Y29nbml0b1Bvb2xJZH1gIDogKGVudi5KV1RfSVNTVUVSX1VSTCA/PyAnJyk7XG5jb25zdCBqd3RKd2tzVXJsID0gY29nbml0b1Bvb2xJZCA/IGAke2p3dElzc3VlclVybH0vLndlbGwta25vd24vandrcy5qc29uYCA6IGVudi5KV1RfSldLU19VUkw7XG5jb25zdCBqd3RHcm91cENsYWltID0gY29nbml0b1Bvb2xJZCA/ICdjb2duaXRvOmdyb3VwcycgOiAoZW52LkpXVF9HUk9VUF9DTEFJTSA/PyAnJyk7XG5jb25zdCBqd3RBdWRpZW5jZSA9IChlbnYuSldUX0FVRElFTkNFX1VSTCAmJiBlbnYuSldUX0FVRElFTkNFX1VSTC5sZW5ndGggPiAwKSA/IGVudi5KV1RfQVVESUVOQ0VfVVJMLnNwbGl0KCd8fCcpIDogdW5kZWZpbmVkO1xuXG5pbnRlcmZhY2UgUHVibGljS2V5IHtcbiAgYWxnOiBzdHJpbmc7XG4gIGU6IHN0cmluZztcbiAga2lkOiBzdHJpbmc7XG4gIGt0eTogc3RyaW5nO1xuICBuOiBzdHJpbmc7XG4gIHVzZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUHVibGljS2V5TWV0YSB7XG4gIGluc3RhbmNlOiBQdWJsaWNLZXk7XG4gIHBlbTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUHVibGljS2V5cyB7XG4gIGtleXM6IFB1YmxpY0tleVtdO1xufVxuXG5pbnRlcmZhY2UgSXNzdWVyTWV0YWRhdGEge1xuICBqd2tzX3VyaT86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuaW50ZXJmYWNlIE1hcE9mS2lkVG9QdWJsaWNLZXkge1xuICBba2V5OiBzdHJpbmddOiBQdWJsaWNLZXlNZXRhO1xufVxuXG5sZXQgY2FjaGVLZXlzOiBNYXBPZktpZFRvUHVibGljS2V5IHwgdW5kZWZpbmVkO1xuXG5jb25zdCBnZXRQdWJsaWNLZXlzID0gYXN5bmMgKGp3a3NVcmw6IHN0cmluZyk6IFByb21pc2U8TWFwT2ZLaWRUb1B1YmxpY0tleT4gPT4ge1xuICBpZiAoIWNhY2hlS2V5cykge1xuICAgIGNvbnN0IHB1YmxpY0tleXM6IFB1YmxpY0tleXMgPSAoYXdhaXQgQXhpb3MuZ2V0PFB1YmxpY0tleXM+KGp3a3NVcmwpKS5kYXRhO1xuICAgIGNhY2hlS2V5cyA9IHB1YmxpY0tleXMua2V5cy5yZWR1Y2UoKGFnZywgY3VycmVudCkgPT4ge1xuICAgICAgY29uc3QgcGVtID0gandrVG9QZW0oY3VycmVudCBhcyBqd2tUb1BlbS5KV0spO1xuICAgICAgYWdnW2N1cnJlbnQua2lkXSA9IHsgaW5zdGFuY2U6IGN1cnJlbnQsIHBlbSB9O1xuICAgICAgcmV0dXJuIGFnZztcbiAgICB9LCB7fSBhcyBNYXBPZktpZFRvUHVibGljS2V5KTtcbiAgICByZXR1cm4gY2FjaGVLZXlzO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjYWNoZUtleXM7XG4gIH1cbn07XG5cbi8vIEdyYWIgdGhlIEpXS1MgVVJJIGZyb20gdGhlIEpXVCBpc3N1ZXIncyBtZXRhZGF0YVxuY29uc3QgZ2V0Sndrc1VyaSA9IGFzeW5jIChkaXNjb3ZlcnlVcmk6IHN0cmluZywgandrc1VyaT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGlmIChqd2tzVXJpKSB7XG4gICAgcmV0dXJuIGp3a3NVcmk7XG4gIH1cbiAgY29uc3Qgd2VsbEtub3duVXJpID0gYCR7ZGlzY292ZXJ5VXJpfS8ud2VsbC1rbm93bmA7XG4gIGNvbnN0IGlzc3Vlck1ldGFkYXRhID0gKGF3YWl0IEF4aW9zLmdldDxJc3N1ZXJNZXRhZGF0YT4od2VsbEtub3duVXJpKSkuZGF0YTtcbiAgaWYgKCFpc3N1ZXJNZXRhZGF0YS5qd2tzX3VyaSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSXNzdWVyIGRvZXMgbm90IG9mZmVyIEpXS1MgZW5kcG9pbnQnKTtcbiAgfVxuICByZXR1cm4gaXNzdWVyTWV0YWRhdGEuandrc191cmk7XG59O1xuXG5jb25zdCBwcm9taXNlZFZlcmlmeSA9ICh0b2tlbjogc3RyaW5nLCBpc3N1ZXJVcmk6IHN0cmluZywgandrc1VyaT86IHN0cmluZyk6IFByb21pc2U8eyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB2ZXJpZnkodG9rZW4sIChoZWFkZXI6IEp3dEhlYWRlciwgY2I6IFNpZ25pbmdLZXlDYWxsYmFjaykgPT4ge1xuICAgICAgaWYgKCFoZWFkZXIua2lkKSB7XG4gICAgICAgIGNiKG5ldyBFcnJvcignbm8ga2V5IGlkIGZvdW5kJykpO1xuICAgICAgfVxuICAgICAgZ2V0Sndrc1VyaShpc3N1ZXJVcmksIGp3a3NVcmkpLnRoZW4oZ2V0UHVibGljS2V5cykudGhlbigoa2V5cykgPT4ge1xuICAgICAgICBjYihudWxsLCBrZXlzW2hlYWRlci5raWQhXS5wZW0pO1xuICAgICAgfSwgY2IpO1xuICAgIH0sIHsgaXNzdWVyOiBpc3N1ZXJVcmksIGF1ZGllbmNlOiBqd3RBdWRpZW5jZSB9LCAoZXJyLCBkZWNvZGVkKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShkZWNvZGVkIGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEEgZ2VuZXJpYyBKV1QgYXV0aG9yaXplciBiYXNlIGNsYXNzLCBwcmVzdXBwb3NpbmcgdGhlIHByZXNlbmNlIG9mIGFuIGlzc3VlciwgYSBudW1iZXIgb2YgYXV0aG9yaXphdGlvbiBjbGFpbXMsIGFuXG4gKiBhZG1pbiBwZXJtaXNzaW9uIGNsYWltIGFuZCBvcHRpb25hbGx5IGEgc2VwYXJhdGUgVVJMIHRvIGEgSldLUyB0byB1c2UgaWYgdGhlIGlzc3VlcnMgd2VsbC1rbm93biBVUkwgZG9lcyBub3RcbiAqIHBvaW50IHRvIGl0IGluIGl0cyBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEp3dEF1dGhvcml6ZXIge1xuXG4gIC8qKlxuICAgKiBUaGUgY2xhaW1zIG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2xhaW1zPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHN0cmluZ1tdIH07XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpc3N1ZXJVcmw6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgZ3JvdXBDbGFpbTogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBhZG1pbkNsYWltOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIGp3a3NVcmw/OiBzdHJpbmcsXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgZ3JvdXBzIHRoZSB1c2VyIGJlbG9uZ3MgdG8sIG9yIGFuIGVtcHR5IGFycmF5IGlmIHRoZSB1c2VyXG4gICAqIGlzIG5vdCBhdXRoZW50aWNhdGVkIG9yIGhhcyBubyBncm91cHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0R3JvdXBzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuaXNBdXRoZW50aWNhdGVkKCkgfHwgIXRoaXMuY2xhaW1zIS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmdyb3VwQ2xhaW0pKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNsYWltcyFbdGhpcy5ncm91cENsYWltXSBhcyB1bmtub3duIGFzIHN0cmluZ1tdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdXNlciBiZWxvbmdzIHRvIHRoZSBzcGVjaWZpZWQgZ3JvdXAsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHBhcmFtIGdyb3VwIFRoZSBuYW1lIG9mIHRoZSBncm91cCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBoYXNHcm91cChncm91cDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gJ2NvZ25pdG86Z3JvdXBzJzogWyAnYWRtaW4nIF0sXG4gICAgcmV0dXJuIHRoaXMuZ2V0R3JvdXBzKCkuaW5jbHVkZXMoZ3JvdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZXMgdGhlIHVzZXIgYW5kIHNldHMgdGhlIGNsYWltcy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhdXRoZW50aWNhdGUoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2xhaW1zICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhyb3dzIGFuIFVuYXV0aGVudGljYXRlZEVycm9yIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkLlxuICAgKi9cbiAgcHVibGljIGFzc2VydEF1dGhlbnRpY2F0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgVW5hdXRoZW50aWNhdGVkRXJyb3IoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhyb3dzIGEgRm9yYmlkZGVuRXJyb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQgb3IgZG9lcyBub3QgYmVsb25nXG4gICAqIHRvIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gICAqIEBwYXJhbSBncm91cCBUaGUgbmFtZSBvZiB0aGUgZ3JvdXAgdG8gY2hlY2suXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0R3JvdXAoZ3JvdXA6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIGlmICghdGhpcy5oYXNHcm91cChncm91cCkpIHtcbiAgICAgIHRocm93IG5ldyBGb3JiaWRkZW5FcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHVzZXIgYmVsb25ncyB0byB0aGUgJ2FkbWluJyBncm91cCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzQWRtaW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzR3JvdXAodGhpcy5hZG1pbkNsYWltKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYSBGb3JiaWRkZW5FcnJvciBpZiB0aGUgdXNlciBpcyBub3QgYXV0aGVudGljYXRlZCBvciBpcyBub3QgYW4gYWRtaW4uXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0QWRtaW4oKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnRHcm91cCh0aGlzLmFkbWluQ2xhaW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVtYWlsIG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0RU1haWwoKTogc3RyaW5nIHtcbiAgICB0aGlzLmFzc2VydEF1dGhlbnRpY2F0ZWQoKTtcbiAgICByZXR1cm4gdGhpcy5jbGFpbXMhLmVtYWlsIGFzIHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdWJqZWN0IG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0U3ViamVjdCgpOiBzdHJpbmcge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIHJldHVybiB0aGlzLmNsYWltcyEuc3ViIGFzIHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY2xhaW0gd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsIG9yIHVuZGVmaW5lZCBpZiB0aGVcbiAgICogY2xhaW0gZG9lcyBub3QgZXhpc3QuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjbGFpbSB0byByZXRyaWV2ZS5cbiAgICovXG4gIHB1YmxpYyBnZXRDbGFpbShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIHJldHVybiB0aGlzLmNsYWltcyFbbmFtZV07XG4gIH1cbn1cblxuLyoqXG4gKiBDb2duaXRvQXV0aG9yaXplciBpcyBhbiBhYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgYW4gYXV0aG9yaXplclxuICogdGhhdCBjYW4gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgYW5kIGF1dGhvcml6ZSBhIHVzZXIgdGhyb3VnaCBDb2duaXRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoand0SXNzdWVyVXJsLCBqd3RHcm91cENsYWltLCAnYWRtaW4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgYXV0aG9yaXphdGlvbiBvbiBBUEkgR2F0ZXdheSB2MSAoUmVzdCBBUEkpIHVzaW5nIEpXVC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUdhdGV3YXl2MUp3dEF1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlXaXRoQ29nbml0b0F1dGhvcml6ZXJFdmVudCwgLy9GSVhNRTogTGVhcm4gYWJvdXQgcG9zc2libGUgcmVxdWVzdENvbnRleHQuYXV0aG9yaXplciBzb3VyY2VzIGluIEFQSSBnYXRld2F5XG4gICAgYWRtaW5DbGFpbTogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBfbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nLFxuICApIHtcbiAgICBzdXBlcihqd3RJc3N1ZXJVcmwsIGp3dEdyb3VwQ2xhaW0sIGFkbWluQ2xhaW0sIGp3dEp3a3NVcmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZXMgdGhlIHVzZXIgdXNpbmcgdGhlIGNsYWltcyBwcm92aWRlZCBieSB0aGUgQVBJIEdhdGV3YXkgZXZlbnQgb3JcbiAgICogYnkgZGVjb2RpbmcgYSBKV1QgdG9rZW4gZnJvbSB0aGUgJ0F1dGhvcml6YXRpb24nIGhlYWRlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhdXRoZW50aWNhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICAvLyBDb3VsZCBiZSBhbG1vc3QgdGhlIGV4YWN0IHNhbWUgY29kZSBhcyBDb2duaXRvIGlmIHdlIGNhbiBzcGVjaWZ5IG91ciBvd24gQXV0aG9yaXplciBpbiB0aGUgZXZlbnQncyByZXF1ZXN0IGNvbnRleHRcbiAgICBpZiAodGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyICYmIHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplci5jbGFpbXMpIHtcbiAgICAgIHRoaXMuY2xhaW1zID0gdGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyLmNsYWltcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGFpbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhdXRoSGVhZGVyID0gdGhpcy5ldmVudC5oZWFkZXJzLmF1dGhvcml6YXRpb247XG4gICAgaWYgKCFhdXRoSGVhZGVyIHx8ICFhdXRoSGVhZGVyLnN0YXJ0c1dpdGgoJ0JlYXJlciAnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IGF1dGhIZWFkZXIuc3Vic3RyaW5nKCdCZWFyZXIgJy5sZW5ndGgpO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSB0b2tlbiBhbmQgc2V0IHRoZSBjbGFpbXMgb24gdGhlIGV2ZW50IGFuZCB0aGlzIG9iamVjdFxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjbGFpbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9ID0gYXdhaXQgcHJvbWlzZWRWZXJpZnkodG9rZW4sIHRoaXMuaXNzdWVyVXJsLCB0aGlzLmp3a3NVcmwpO1xuICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKEpTT04uc3RyaW5naWZ5KGNsYWltcykpO1xuXG4gICAgICB0aGlzLmV2ZW50LnJlcXVlc3RDb250ZXh0LmF1dGhvcml6ZXIgPSB7IGNsYWltcyB9O1xuICAgICAgdGhpcy5jbGFpbXMgPSBjbGFpbXM7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcihlcnIpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgSldUIEF1dGhvcml6YXRpb24gb24gQVBJIEdhdGV3YXkgdjIgKEhUVFAgQVBJKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUdhdGV3YXl2Mkp3dEF1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5RXZlbnRWMldpdGhKV1RBdXRob3JpemVyLCBwcm90ZWN0ZWQgX2xvZ2dlcjogbG9nZ2VyLkxhbWJkYUxvZykge1xuICAgIHN1cGVyKGp3dElzc3VlclVybCwgJ2NvZ25pdG86Z3JvdXBzJywgJ2FkbWluJywgand0Sndrc1VybCk7XG4gIH1cblxuICAvKipcbiAgICogQXV0aGVudGljYXRlcyB0aGUgdXNlciB1c2luZyB0aGUgY2xhaW1zIHByb3ZpZGVkIGJ5IHRoZSBBUEkgR2F0ZXdheSBldmVudCBvclxuICAgKiBieSBkZWNvZGluZyBhIEpXVCB0b2tlbiBmcm9tIHRoZSAnQXV0aG9yaXphdGlvbicgaGVhZGVyLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGF1dGhlbnRpY2F0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBUcnkgdG8gZ2V0IHRoZSBjbGFpbXMgZnJvbSB0aGUgZXZlbnRcbiAgICB0aGlzLmNsYWltcyA9IHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplcj8uand0Py5jbGFpbXM7XG5cbiAgICAvLyBJZiBubyBwb29sIElEIGlzIGRlZmluZWQgb3IgY2xhaW1zIGV4aXN0LCByZXR1cm4gZWFybHlcbiAgICBpZiAoIWNvZ25pdG9Qb29sSWQgfHwgdGhpcy5jbGFpbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IHRoZSB0b2tlbiBmcm9tIHRoZSBBdXRob3JpemF0aW9uIGhlYWRlclxuICAgIGNvbnN0IGF1dGhIZWFkZXIgPSB0aGlzLmV2ZW50LmhlYWRlcnMuYXV0aG9yaXphdGlvbjtcbiAgICBpZiAoIWF1dGhIZWFkZXIgfHwgIWF1dGhIZWFkZXIuc3RhcnRzV2l0aCgnQmVhcmVyICcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gYXV0aEhlYWRlci5zdWJzdHJpbmcoJ0JlYXJlciAnLmxlbmd0aCk7XG5cbiAgICAvLyBWZXJpZnkgdGhlIHRva2VuIGFuZCBzZXQgdGhlIGNsYWltcyBvbiB0aGUgZXZlbnQgYW5kIHRoaXMgb2JqZWN0XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsYWltczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSBhd2FpdCBwcm9taXNlZFZlcmlmeSh0b2tlbiwgdGhpcy5pc3N1ZXJVcmwsIHRoaXMuandrc1VybCk7XG4gICAgICB0aGlzLl9sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoY2xhaW1zKSk7XG5cbiAgICAgIHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplciA9IHtcbiAgICAgICAgand0OiB7XG4gICAgICAgICAgY2xhaW1zLFxuICAgICAgICAgIHNjb3BlczogWydvcGVuaWQnLCAnZW1haWwnXSxcbiAgICAgICAgfSxcbiAgICAgICAgaW50ZWdyYXRpb25MYXRlbmN5OiAwLFxuICAgICAgICBwcmluY2lwYWxJZDogJ3Rvb2xib3gnLFxuICAgICAgfTtcbiAgICAgIHRoaXMuY2xhaW1zID0gY2xhaW1zO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBcGlHYXRld2F5djFDb2duaXRvQXV0aG9yaXplciBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIGFuIEFwaUdhdGV3YXl2MUp3dEF1dGhvcml6ZXJcbiAqIGFuZCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0aW9uIGxvZ2ljIGZvciBBUEkgR2F0ZXdheSB2MSByZXF1ZXN0cyB3aGVuIHVzaW5nIENvZ25pdG8uLlxuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheXYxQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBBcGlHYXRld2F5djFKd3RBdXRob3JpemVyIHtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhdXRob3JpemF0aW9uIGNoZWNrLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5V2l0aENvZ25pdG9BdXRob3JpemVyRXZlbnQsIHByb3RlY3RlZCBfbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nKSB7XG4gICAgc3VwZXIoZXZlbnQsICdhZG1pbicsIF9sb2dnZXIpO1xuICB9XG59XG5cbi8qKlxuICogQXBpR2F0ZXdheXYyQ29nbml0b0F1dGhvcml6ZXIgaXMgYSBjbGFzcyB0aGF0IGV4dGVuZHMgQ29nbml0b0F1dGhvcml6ZXJcbiAqIGFuZCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0aW9uIGxvZ2ljIGZvciBBUEkgR2F0ZXdheSB2MiByZXF1ZXN0cyB3aXRoIGFcbiAqIEpXVCBhdXRob3JpemVyLlxuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheXYyQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBBcGlHYXRld2F5djJKd3RBdXRob3JpemVyIHtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhdXRob3JpemF0aW9uIGNoZWNrLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5RXZlbnRWMldpdGhKV1RBdXRob3JpemVyLCBwcm90ZWN0ZWQgX2xvZ2dlcjogbG9nZ2VyLkxhbWJkYUxvZykge1xuICAgIHN1cGVyKGV2ZW50LCBfbG9nZ2VyKTtcbiAgfVxufVxuXG4vKipcbiAqIEFwcFN5bmNDb2duaXRvQXV0aG9yaXplciBpcyBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBDb2duaXRvQXV0aG9yaXplclxuICogYW5kIGltcGxlbWVudHMgYXV0aGVudGljYXRpb24gbG9naWMgZm9yIEFwcFN5bmMgcmVzb2x2ZXIgZXZlbnRzIHdpdGggYVxuICogQ29nbml0byBhdXRob3JpemVyLlxuICovXG5leHBvcnQgY2xhc3MgQXBwU3luY0NvZ25pdG9BdXRob3JpemVyIGV4dGVuZHMgQ29nbml0b0F1dGhvcml6ZXIge1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGF1dGhvcml6YXRpb24gY2hlY2suXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BcHBTeW5jUmVzb2x2ZXJFdmVudDxhbnk+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdXRoZW50aWNhdGVzIHRoZSB1c2VyIHVzaW5nIHRoZSBjbGFpbXMgcHJvdmlkZWQgYnkgdGhlIEFwcFN5bmMgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYXV0aGVudGljYXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRyeSB0byBnZXQgdGhlIGNsYWltcyBmcm9tIHRoZSBldmVudFxuICAgIGlmICh0aGlzLmV2ZW50LmlkZW50aXR5KSB7XG4gICAgICB0aGlzLmNsYWltcyA9ICh0aGlzLmV2ZW50LmlkZW50aXR5IGFzIEFXU0xhbWJkYS5BcHBTeW5jSWRlbnRpdHlDb2duaXRvKS5jbGFpbXM7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -80,7 +80,6 @@ const createAuthorizer = (event, log) => {
80
80
  */
81
81
  const createHttpHandler = (handler) => {
82
82
  return async (event, context) => {
83
- var _a, _b;
84
83
  // Create an object to hold the context for this HTTP request
85
84
  const auth = createAuthorizer(event, lambda_log_1.default);
86
85
  const ctx = {
@@ -102,7 +101,7 @@ const createHttpHandler = (handler) => {
102
101
  const res = await handler(ctx, parseBody(event));
103
102
  // Construct and return the HTTP response
104
103
  return {
105
- statusCode: (_a = ctx.response.statusCode) !== null && _a !== void 0 ? _a : (res ? 200 : 204),
104
+ statusCode: ctx.response.statusCode ?? (res ? 200 : 204),
106
105
  headers: {
107
106
  'Content-Type': 'application/json',
108
107
  ...corsHeader(event),
@@ -141,7 +140,7 @@ const createHttpHandler = (handler) => {
141
140
  // For all other types of errors, log the error and return a 500 status code with the error message
142
141
  ctx.logger.error(error);
143
142
  return {
144
- statusCode: (_b = ctx.response.statusCode) !== null && _b !== void 0 ? _b : 500,
143
+ statusCode: ctx.response.statusCode ?? 500,
145
144
  headers: {
146
145
  'Content-Type': 'application/json',
147
146
  ...corsHeader(event),
@@ -161,7 +160,6 @@ exports.createHttpHandler = createHttpHandler;
161
160
  * @returns The parsed request body
162
161
  */
163
162
  function parseBody(event) {
164
- var _a;
165
163
  let body = event.body;
166
164
  // If the request body is base64-encoded, decode it
167
165
  if (event.body && event.isBase64Encoded) {
@@ -169,8 +167,8 @@ function parseBody(event) {
169
167
  body = buff.toString('utf8');
170
168
  }
171
169
  // If the request body is in JSON format, parse it into a JavaScript object
172
- if (event.headers && ((_a = event.headers['content-type']) === null || _a === void 0 ? void 0 : _a.includes('application/json'))) {
173
- return JSON.parse(body !== null && body !== void 0 ? body : '{}');
170
+ if (event.headers && event.headers['content-type']?.includes('application/json')) {
171
+ return JSON.parse(body ?? '{}');
174
172
  }
175
173
  // If the request body is not present or not in JSON format, return it as-is
176
174
  return body;
@@ -182,10 +180,9 @@ function parseBody(event) {
182
180
  * @returns An object containing the CORS headers.
183
181
  */
184
182
  function corsHeader(event) {
185
- var _a, _b, _c;
186
183
  return {
187
- 'Access-Control-Allow-Origin': (_b = (_a = event === null || event === void 0 ? void 0 : event.headers) === null || _a === void 0 ? void 0 : _a.origin) !== null && _b !== void 0 ? _b : '*', // Allow requests from the origin header, or allow any origin if not present
188
- 'Access-Control-Allow-Credentials': ((_c = event === null || event === void 0 ? void 0 : event.headers) === null || _c === void 0 ? void 0 : _c.origin) ? 'true' : 'false', // Include cookies in cross-origin requests if the origin header is present
184
+ 'Access-Control-Allow-Origin': event?.headers?.origin ?? '*', // Allow requests from the origin header, or allow any origin if not present
185
+ 'Access-Control-Allow-Credentials': event?.headers?.origin ? 'true' : 'false', // Include cookies in cross-origin requests if the origin header is present
189
186
  'Access-Control-Allow-Methods': '*', // Allow any HTTP method
190
187
  'Access-Control-Allow-Headers': 'Authorization, *', // Allow the Authorization header and any other headers
191
188
  };
@@ -224,4 +221,4 @@ const createAppSyncHandler = (handler) => {
224
221
  };
225
222
  };
226
223
  exports.createAppSyncHandler = createAppSyncHandler;
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGEvaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxQ0FBOEI7QUFDOUIsNERBQStDO0FBQy9DLGlDQU1nQjtBQUNoQixpREFBbUM7QUE2RG5DOztHQUVHO0FBQ0ksTUFBTSxtQ0FBbUMsR0FBRyxDQUErRCxPQUEwSCxFQUF1QixFQUFFO0lBQ25RLE9BQU8sSUFBQSx5QkFBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFGVyxRQUFBLG1DQUFtQyx1Q0FFOUM7QUFFRjs7R0FFRztBQUNJLE1BQU0sNkNBQTZDLEdBQUcsQ0FBc0MsT0FBNEUsRUFBdUIsRUFBRTtJQUN0TSxPQUFPLElBQUEseUJBQWlCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBRlcsUUFBQSw2Q0FBNkMsaURBRXhEO0FBRUY7O0dBRUc7QUFDSSxNQUFNLG9CQUFvQixHQUFHLENBQWdELE9BQTZFLEVBQXVCLEVBQUU7SUFDeEwsT0FBTyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUZXLFFBQUEsb0JBQW9CLHdCQUUvQjtBQUVGOztHQUVHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQXFGLEVBQUUsR0FBYyxFQUFFLEVBQUU7SUFDakksaUhBQWlIO0lBQ2pILElBQUksYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxvQ0FBNkIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkQsQ0FBQztTQUFNLENBQUM7UUFDTixnR0FBZ0c7UUFDaEcsT0FBTyxJQUFJLGdDQUF5QixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztBQUNI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QUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUM7WUFDSCxvQ0FBb0M7WUFDcEMsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JDLCtDQUErQztZQUMvQyxPQUFPLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLG1DQUFtQztZQUNuQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUE3QlMsUUFBQSxvQkFBb0Isd0JBNkI3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudiB9IGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0IGxvZ2dlciwgeyBMYW1iZGFMb2cgfSBmcm9tICdsYW1iZGEtbG9nJztcbmltcG9ydCB7XG4gIEFwaUdhdGV3YXl2MUNvZ25pdG9BdXRob3JpemVyLFxuICBBcGlHYXRld2F5djFKd3RBdXRob3JpemVyLFxuICBBcHBTeW5jQ29nbml0b0F1dGhvcml6ZXIsXG4gIENvZ25pdG9BdXRob3JpemVyLFxuICBKd3RBdXRob3JpemVyLFxufSBmcm9tICcuL2F1dGgnO1xuaW1wb3J0ICogYXMgZXJyb3JzIGZyb20gJy4vZXJyb3JzJztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBIVFRQIEFwaVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKlxuICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHByb3BlcnRpZXMgZm9yIGFuIEhUVFAgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlc3BvbnNlQ29udGV4dCB7XG4gIHN0YXR1c0NvZGU/OiBudW1iZXI7XG4gIGhlYWRlcnM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICBqc29uOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIGZvciBhbiBIVFRQIHJlcXVlc3QgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlckNvbnRleHQge1xuICBldmVudDogQVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eVdpdGhDb2duaXRvQXV0aG9yaXplckV2ZW50O1xuICBsYW1iZGFDb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dDtcbiAgbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nO1xuICByZXNwb25zZTogSHR0cFJlc3BvbnNlQ29udGV4dDtcbiAgYXV0aDogSnd0QXV0aG9yaXplcjtcbn1cblxuLyoqXG4gKiBBIHR5cGUgZGVmaW5pdGlvbiBmb3IgYW4gSFRUUCBoYW5kbGVyLlxuICovXG5leHBvcnQgdHlwZSBIdHRwSGFuZGxlcjxULCBSPiA9IChcbiAgY29udGV4dDogSHR0cEhhbmRsZXJDb250ZXh0LFxuICBib2R5OiBULFxuKSA9PiBQcm9taXNlPFI+O1xuXG4vKipcbiAqIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIGZvciBhbiBPcGVuQVBJIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb24ge1xuICByZXNwb25zZXM6IHtcbiAgICBbc3RhdHVzQ29kZTogbnVtYmVyXToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IGFueTtcbiAgICAgIH07XG4gICAgfSB8IGFueTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBIHR5cGUgZGVmaW5pdGlvbiBmb3IgYW4gQVBJIEdhdGV3YXkgdjEgcmVxdWVzdCBoYW5kbGVyLlxuICovXG5leHBvcnQgdHlwZSBBUElHYXRld2F5djFIYW5kbGVyID1cbiAgQVdTTGFtYmRhLkhhbmRsZXI8QVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eVdpdGhDb2duaXRvQXV0aG9yaXplckV2ZW50LCBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5UmVzdWx0IHwgdW5kZWZpbmVkPjtcblxuLyoqXG4gKiBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcHJvcGVydGllcyBmb3IgYW4gT3BlbkFQSSBvcGVyYXRpb24gd2l0aCBhIHJlcXVlc3QgYm9keS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25XaXRoUmVxdWVzdEJvZHkgZXh0ZW5kcyBPcGVyYXRpb24ge1xuICByZXF1ZXN0Qm9keTogeyBjb250ZW50OiB7ICdhcHBsaWNhdGlvbi9qc29uJzogYW55IH0gfTtcbn1cblxuLyoqXG4gKiBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGFuIEhUVFAgcmVxdWVzdCBoYW5kbGVyIGZvciBhbiBPcGVuQVBJIG9wZXJhdGlvbiB3aXRoIGEgcmVxdWVzdCBib2R5LlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlT3BlbkFwaUhhbmRsZXJXaXRoUmVxdWVzdEJvZHkgPSA8T1AgZXh0ZW5kcyBPcGVyYXRpb25XaXRoUmVxdWVzdEJvZHksIFNDIGV4dGVuZHMgbnVtYmVyID0gMjAwPihoYW5kbGVyOiBIdHRwSGFuZGxlcjxPUFsncmVxdWVzdEJvZHknXVsnY29udGVudCddWydhcHBsaWNhdGlvbi9qc29uJ10sIE9QWydyZXNwb25zZXMnXVtTQ11bJ2NvbnRlbnQnXVsnYXBwbGljYXRpb24vanNvbiddPik6IEFQSUdhdGV3YXl2MUhhbmRsZXIgPT4ge1xuICByZXR1cm4gY3JlYXRlSHR0cEhhbmRsZXIoaGFuZGxlcik7XG59O1xuXG4vKipcbiAqIEEgZmFjdG9yeSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYW4gSFRUUCByZXF1ZXN0IGhhbmRsZXIgZm9yIGFuIE9wZW5BUEkgb3BlcmF0aW9uIHdpdGggYSByZXF1ZXN0IGJvZHkgYW5kIG5vIHJlc3BvbnNlLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlT3BlbkFwaUhhbmRsZXJXaXRoUmVxdWVzdEJvZHlOb1Jlc3BvbnNlID0gPE9QIGV4dGVuZHMgT3BlcmF0aW9uV2l0aFJlcXVlc3RCb2R5PihoYW5kbGVyOiBIdHRwSGFuZGxlcjxPUFsncmVxdWVzdEJvZHknXVsnY29udGVudCddWydhcHBsaWNhdGlvbi9qc29uJ10sIHZvaWQ+KTogQVBJR2F0ZXdheXYxSGFuZGxlciA9PiB7XG4gIHJldHVybiBjcmVhdGVIdHRwSGFuZGxlcihoYW5kbGVyKTtcbn07XG5cbi8qKlxuICogQSBmYWN0b3J5IGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhbiBIVFRQIHJlcXVlc3QgaGFuZGxlciBmb3IgYW4gT3BlbkFQSSBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVPcGVuQXBpSGFuZGxlciA9IDxPUCBleHRlbmRzIE9wZXJhdGlvbiwgU0MgZXh0ZW5kcyBudW1iZXIgPSAyMDA+KGhhbmRsZXI6IEh0dHBIYW5kbGVyPGFueSwgT1BbJ3Jlc3BvbnNlcyddW1NDXVsnY29udGVudCddWydhcHBsaWNhdGlvbi9qc29uJ10+KTogQVBJR2F0ZXdheXYxSGFuZGxlciA9PiB7XG4gIHJldHVybiBjcmVhdGVIdHRwSGFuZGxlcihoYW5kbGVyKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlIGFuIGF1dGhvcml6ZXIgZm9yIHRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgY2hvc2VuIChKV1Qgb3IgQ29nbml0bykuXG4gKi9cbmNvbnN0IGNyZWF0ZUF1dGhvcml6ZXIgPSAoZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlFdmVudEJhc2U8QVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eUNvZ25pdG9BdXRob3JpemVyPiwgbG9nOiBMYW1iZGFMb2cpID0+IHtcbiAgLy8gSWYgQ29nbml0byBpcyB1c2VkLCBVU0VSX1BPT0xfSUQgaXMgaW5qZWN0ZWQgaW50byB0aGUgZnVuY3Rpb24ncyBlbnZpcm9ubWVudC4gQ3VycmVudGx5IGFzc3VtZXMgSldUIG90aGVyd2lzZS5cbiAgaWYgKGVudi5VU0VSX1BPT0xfSUQpIHtcbiAgICByZXR1cm4gbmV3IEFwaUdhdGV3YXl2MUNvZ25pdG9BdXRob3JpemVyKGV2ZW50LCBsb2cpO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgbWlnaHQgbmVlZCB0byBnZXQgbW9yZSBzb3BoaXN0aWNhdGVkIGlmIG1vcmUgYXV0aG9yaXphdGlvbiBtZXRob2RzIG5lZWQgdG8gYmUgc3VwcG9ydGVkLlxuICAgIHJldHVybiBuZXcgQXBpR2F0ZXdheXYxSnd0QXV0aG9yaXplcihldmVudCwgJ2FkbWluJywgbG9nKTtcbiAgfVxufTtcblxuLyoqXG4gKiBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGFuIEhUVFAgcmVxdWVzdCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlSHR0cEhhbmRsZXIgPVxuICA8VCwgUj4oaGFuZGxlcjogSHR0cEhhbmRsZXI8VCwgUj4pOiBBUElHYXRld2F5djFIYW5kbGVyID0+IHtcbiAgICByZXR1cm4gYXN5bmMgKGV2ZW50LCBjb250ZXh0KSA9PiB7XG4gICAgICAvLyBDcmVhdGUgYW4gb2JqZWN0IHRvIGhvbGQgdGhlIGNvbnRleHQgZm9yIHRoaXMgSFRUUCByZXF1ZXN0XG4gICAgICBjb25zdCBhdXRoID0gY3JlYXRlQXV0aG9yaXplcihldmVudCwgbG9nZ2VyIGFzIHVua25vd24gYXMgbG9nZ2VyLkxhbWJkYUxvZyk7XG4gICAgICBjb25zdCBjdHg6IEh0dHBIYW5kbGVyQ29udGV4dCA9IHtcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIGF1dGgsXG4gICAgICAgIGxhbWJkYUNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgIGxvZ2dlcjogbG9nZ2VyIGFzIHVua25vd24gYXMgbG9nZ2VyLkxhbWJkYUxvZyxcbiAgICAgICAgcmVzcG9uc2U6IHsgaGVhZGVyczoge30sIGpzb246IHRydWUgfSxcbiAgICAgIH07XG4gICAgICAvLyBBZGQgdGhlIHJlcXVlc3QgSUQgdG8gdGhlIGxvZ2dpbmcgbWV0YWRhdGEsIGFuZCBlbmFibGUgZGVidWcgbG9nZ2luZyBpZiB0aGUgREVCVUcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0IHRvIFwidHJ1ZVwiXG4gICAgICBjdHgubG9nZ2VyLm9wdGlvbnMubWV0YS5yZXF1ZXN0SWQgPSBjb250ZXh0LmF3c1JlcXVlc3RJZDtcbiAgICAgIGN0eC5sb2dnZXIub3B0aW9ucy5kZWJ1ZyA9IHByb2Nlc3MuZW52LkRFQlVHID09PSAndHJ1ZSc7XG5cbiAgICAgIC8vIExvZyB0aGUgZXZlbnQgb2JqZWN0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXNcbiAgICAgIGN0eC5sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gQXV0aGVudGljYXRlIHRoZSB1c2VyIHVzaW5nIHRoZSBDb2duaXRvIGF1dGhvcml6ZXJcbiAgICAgICAgYXdhaXQgY3R4LmF1dGguYXV0aGVudGljYXRlKCk7XG5cbiAgICAgICAgLy8gQ2FsbCB0aGUgdXNlci1kZWZpbmVkIGhhbmRsZXIgZnVuY3Rpb24sIHBhc3NpbmcgaW4gdGhlIHJlcXVlc3QgY29udGV4dCBvYmplY3QgYW5kIHRoZSBwYXJzZWQgcmVxdWVzdCBib2R5XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGhhbmRsZXIoY3R4LCBwYXJzZUJvZHkoZXZlbnQpKTtcblxuICAgICAgICAvLyBDb25zdHJ1Y3QgYW5kIHJldHVybiB0aGUgSFRUUCByZXNwb25zZVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXR1c0NvZGU6IGN0eC5yZXNwb25zZS5zdGF0dXNDb2RlID8/IChyZXMgPyAyMDAgOiAyMDQpLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAuLi5jb3JzSGVhZGVyKGV2ZW50KSxcbiAgICAgICAgICAgIC4uLmN0eC5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9keTogcmVzID8gKGN0eC5yZXNwb25zZS5qc29uID8gSlNPTi5zdHJpbmdpZnkocmVzKSA6IHJlcykgOiAnJyxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgLy8gSGFuZGxlIGFueSBlcnJvcnMgdGhhdCBvY2N1ciBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nXG5cbiAgICAgICAgLy8gSWYgdGhlIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIEh0dHBFcnJvciwgcmV0dXJuIGFuIEhUVFAgcmVzcG9uc2Ugd2l0aCB0aGUgZXJyb3Igc3RhdHVzIGNvZGUgYW5kIG1lc3NhZ2VcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgZXJyb3JzLkh0dHBFcnJvcikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBlcnJvci5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAuLi5jb3JzSGVhZGVyKGV2ZW50KSxcbiAgICAgICAgICAgICAgLi4uY3R4LnJlc3BvbnNlLmhlYWRlcnMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSBlcnJvciBpcyBhIEJvb20gZXJyb3IgKGZyb20gdGhlIGhhcGkuanMgZnJhbWV3b3JrKSwgcmV0dXJuIGFuIEhUVFAgcmVzcG9uc2Ugd2l0aCB0aGUgZXJyb3Igc3RhdHVzIGNvZGUgYW5kIHBheWxvYWRcbiAgICAgICAgaWYgKGVycm9yLmlzQm9vbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBlcnJvci5vdXRwdXQuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgLi4uZXJyb3Iub3V0cHV0LmhlYWRlcnMsXG4gICAgICAgICAgICAgIC4uLmNvcnNIZWFkZXIoZXZlbnQpLFxuICAgICAgICAgICAgICAuLi5jdHgucmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShlcnJvci5vdXRwdXQucGF5bG9hZCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3IgYWxsIG90aGVyIHR5cGVzIG9mIGVycm9ycywgbG9nIHRoZSBlcnJvciBhbmQgcmV0dXJuIGEgNTAwIHN0YXR1cyBjb2RlIHdpdGggdGhlIGVycm9yIG1lc3NhZ2VcbiAgICAgICAgY3R4LmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3RhdHVzQ29kZTogY3R4LnJlc3BvbnNlLnN0YXR1c0NvZGUgPz8gNTAwLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAuLi5jb3JzSGVhZGVyKGV2ZW50KSxcbiAgICAgICAgICAgIC4uLmN0eC5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9keTogZXJyb3IudG9TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gZXZlbnQgb2JqZWN0IHJlcHJlc2VudGluZyBhbiBBUEkgR2F0ZXdheSBQcm94eSBldmVudFxuICogd2l0aCBhIENvZ25pdG8gYXV0aG9yaXplciwgYW5kIGV4dHJhY3RzIGFuZCBwYXJzZXMgdGhlIHJlcXVlc3QgYm9keSwgaWYgcHJlc2VudC5cbiAqXG4gKiBAcGFyYW0gZXZlbnQgVGhlIEFQSSBHYXRld2F5IFByb3h5IGV2ZW50IHdpdGggYSBDb2duaXRvIGF1dGhvcml6ZXJcbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVxdWVzdCBib2R5XG4gKi9cbmZ1bmN0aW9uIHBhcnNlQm9keTxUPihldmVudDogQVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eVdpdGhDb2duaXRvQXV0aG9yaXplckV2ZW50KTogVCB7XG4gIGxldCBib2R5ID0gZXZlbnQuYm9keTtcblxuICAvLyBJZiB0aGUgcmVxdWVzdCBib2R5IGlzIGJhc2U2NC1lbmNvZGVkLCBkZWNvZGUgaXRcbiAgaWYgKGV2ZW50LmJvZHkgJiYgZXZlbnQuaXNCYXNlNjRFbmNvZGVkKSB7XG4gICAgY29uc3QgYnVmZiA9IEJ1ZmZlci5mcm9tKGV2ZW50LmJvZHkhLCAnYmFzZTY0Jyk7XG4gICAgYm9keSA9IGJ1ZmYudG9TdHJpbmcoJ3V0ZjgnKTtcbiAgfVxuXG4gIC8vIElmIHRoZSByZXF1ZXN0IGJvZHkgaXMgaW4gSlNPTiBmb3JtYXQsIHBhcnNlIGl0IGludG8gYSBKYXZhU2NyaXB0IG9iamVjdFxuICBpZiAoZXZlbnQuaGVhZGVycyAmJiBldmVudC5oZWFkZXJzWydjb250ZW50LXR5cGUnXT8uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGJvZHkgPz8gJ3t9Jyk7XG4gIH1cblxuICAvLyBJZiB0aGUgcmVxdWVzdCBib2R5IGlzIG5vdCBwcmVzZW50IG9yIG5vdCBpbiBKU09OIGZvcm1hdCwgcmV0dXJuIGl0IGFzLWlzXG4gIHJldHVybiBib2R5IGFzIGFueTtcbn1cblxuXG4vKipcbiAqIFJldHVybnMgdGhlIENPUlMgaGVhZGVycyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgQVBJIEdhdGV3YXkgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIGV2ZW50IC0gVGhlIEFQSSBHYXRld2F5IGV2ZW50IG9iamVjdC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBDT1JTIGhlYWRlcnMuXG4gKi9cbmZ1bmN0aW9uIGNvcnNIZWFkZXIoZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlXaXRoQ29nbml0b0F1dGhvcml6ZXJFdmVudCk6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgcmV0dXJuIHtcbiAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJzogZXZlbnQ/LmhlYWRlcnM/Lm9yaWdpbiA/PyAnKicsIC8vIEFsbG93IHJlcXVlc3RzIGZyb20gdGhlIG9yaWdpbiBoZWFkZXIsIG9yIGFsbG93IGFueSBvcmlnaW4gaWYgbm90IHByZXNlbnRcbiAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMnOiBldmVudD8uaGVhZGVycz8ub3JpZ2luID8gJ3RydWUnIDogJ2ZhbHNlJywgLy8gSW5jbHVkZSBjb29raWVzIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0cyBpZiB0aGUgb3JpZ2luIGhlYWRlciBpcyBwcmVzZW50XG4gICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnOiAnKicsIC8vIEFsbG93IGFueSBIVFRQIG1ldGhvZFxuICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJzogJ0F1dGhvcml6YXRpb24sIConLCAvLyBBbGxvdyB0aGUgQXV0aG9yaXphdGlvbiBoZWFkZXIgYW5kIGFueSBvdGhlciBoZWFkZXJzXG4gIH07XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEFwcFN5bmNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFRoZSBjb250ZXh0IGZvciB0aGUgQXBwU3luYyByZXNvbHZlciBmdW5jdGlvbi5cbiAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudCwgbGFtYmRhIGNvbnRleHQsIGxvZ2dlciwgYW5kIENvZ25pdG8gYXV0aG9yaXplci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBTeW5jSGFuZGxlckNvbnRleHQ8VD4ge1xuICBldmVudDogQVdTTGFtYmRhLkFwcFN5bmNSZXNvbHZlckV2ZW50PFQ+O1xuICBsYW1iZGFDb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dDtcbiAgbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nO1xuICBjb2duaXRvQXV0aDogQ29nbml0b0F1dGhvcml6ZXI7XG59XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgYW4gQXBwU3luYyByZXNvbHZlciBldmVudC5cbiAqIFJlY2VpdmVzIHRoZSBjb250ZXh0IG9iamVjdCBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCB0eXBlIEFwcFN5bmNIYW5kbGVyPFQsIFI+ID0gKFxuICBjb250ZXh0OiBBcHBTeW5jSGFuZGxlckNvbnRleHQ8VD4sXG4pID0+IFByb21pc2U8Uj47XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBcHBTeW5jIHJlc29sdmVyIGhhbmRsZXIgZnJvbSB0aGUgZ2l2ZW4gQXBwU3luY0hhbmRsZXIuXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBhcyBhbiBBcHBTeW5jIHJlc29sdmVyLlxuICpcbiAqIEBwYXJhbSBoYW5kbGVyIFRoZSBBcHBTeW5jSGFuZGxlciB0byB1c2UgYXMgdGhlIHJlc29sdmVyLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQXBwU3luY0hhbmRsZXIgPVxuICA8VCwgUj4oaGFuZGxlcjogQXBwU3luY0hhbmRsZXI8VCwgUj4pOiBBV1NMYW1iZGEuQXBwU3luY1Jlc29sdmVySGFuZGxlcjxULCBSPiA9PiB7XG4gICAgcmV0dXJuIGFzeW5jIChldmVudCwgY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgY3R4OiBBcHBTeW5jSGFuZGxlckNvbnRleHQ8VD4gPSB7XG4gICAgICAgIGV2ZW50LFxuICAgICAgICBsYW1iZGFDb250ZXh0OiBjb250ZXh0LFxuICAgICAgICBsb2dnZXI6IGxvZ2dlciBhcyB1bmtub3duIGFzIGxvZ2dlci5MYW1iZGFMb2csXG4gICAgICAgIGNvZ25pdG9BdXRoOiBuZXcgQXBwU3luY0NvZ25pdG9BdXRob3JpemVyKGV2ZW50KSxcbiAgICAgIH07XG5cbiAgICAgIC8vIHNldCB0aGUgbWV0YSBpbmZvcm1hdGlvbiBpbiBsb2dnZXJcbiAgICAgIGN0eC5sb2dnZXIub3B0aW9ucy5tZXRhLnJlcXVlc3RJZCA9IGNvbnRleHQuYXdzUmVxdWVzdElkO1xuICAgICAgLy8gc2V0IHRoZSBkZWJ1ZyBmbGFnIGZvciBsb2dnZXJcbiAgICAgIGN0eC5sb2dnZXIub3B0aW9ucy5kZWJ1ZyA9IHByb2Nlc3MuZW52LkRFQlVHID09PSAndHJ1ZSc7XG5cbiAgICAgIC8vIGxvZyB0aGUgcmVjZWl2ZWQgZXZlbnRcbiAgICAgIGN0eC5sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gYXV0aGVudGljYXRlIHRoZSBpbmNvbWluZyByZXF1ZXN0XG4gICAgICAgIGF3YWl0IGN0eC5jb2duaXRvQXV0aC5hdXRoZW50aWNhdGUoKTtcbiAgICAgICAgLy8gaW52b2tlIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIHdpdGggdGhlIGNvbnRleHRcbiAgICAgICAgcmV0dXJuIGF3YWl0IGhhbmRsZXIoY3R4KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgLy8gbG9nIHRoZSBlcnJvciBhbmQgdGhyb3cgaXQgYWdhaW5cbiAgICAgICAgY3R4LmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiJdfQ==
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGEvaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxQ0FBOEI7QUFDOUIsNERBQStDO0FBQy9DLGlDQU1nQjtBQUNoQixpREFBbUM7QUE2RG5DOztHQUVHO0FBQ0ksTUFBTSxtQ0FBbUMsR0FBRyxDQUErRCxPQUEwSCxFQUF1QixFQUFFO0lBQ25RLE9BQU8sSUFBQSx5QkFBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFGVyxRQUFBLG1DQUFtQyx1Q0FFOUM7QUFFRjs7R0FFRztBQUNJLE1BQU0sNkNBQTZDLEdBQUcsQ0FBc0MsT0FBNEUsRUFBdUIsRUFBRTtJQUN0TSxPQUFPLElBQUEseUJBQWlCLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBRlcsUUFBQSw2Q0FBNkMsaURBRXhEO0FBRUY7O0dBRUc7QUFDSSxNQUFNLG9CQUFvQixHQUFHLENBQWdELE9BQTZFLEVBQXVCLEVBQUU7SUFDeEwsT0FBTyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUZXLFFBQUEsb0JBQW9CLHdCQUUvQjtBQUVGOztHQUVHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQXFGLEVBQUUsR0FBYyxFQUFFLEVBQUU7SUFDakksaUhBQWlIO0lBQ2pILElBQUksYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxvQ0FBNkIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkQsQ0FBQztTQUFNLENBQUM7UUFDTixnR0FBZ0c7UUFDaEcsT0FBTyxJQUFJLGdDQUF5QixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztBQUNI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QUErQztZQUMvQyxPQUFPLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLG1DQUFtQztZQUNuQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUE3QlMsUUFBQSxvQkFBb0Isd0JBNkI3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudiB9IGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0IGxvZ2dlciwgeyBMYW1iZGFMb2cgfSBmcm9tICdsYW1iZGEtbG9nJztcbmltcG9ydCB7XG4gIEFwaUdhdGV3YXl2MUNvZ25pdG9BdXRob3JpemVyLFxuICBBcGlHYXRld2F5djFKd3RBdXRob3JpemVyLFxuICBBcHBTeW5jQ29nbml0b0F1dGhvcml6ZXIsXG4gIENvZ25pdG9BdXRob3JpemVyLFxuICBKd3RBdXRob3JpemVyLFxufSBmcm9tICcuL2F1dGgnO1xuaW1wb3J0ICogYXMgZXJyb3JzIGZyb20gJy4vZXJyb3JzJztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBIVFRQIEFwaVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKlxuICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHByb3BlcnRpZXMgZm9yIGFuIEhUVFAgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlc3BvbnNlQ29udGV4dCB7XG4gIHN0YXR1c0NvZGU/OiBudW1iZXI7XG4gIGhlYWRlcnM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICBqc29uOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIGZvciBhbiBIVFRQIHJlcXVlc3QgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlckNvbnRleHQge1xuICBldmVudDogQVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eVdpdGhDb2duaXRvQXV0aG9yaXplckV2ZW50O1xuICBsYW1iZGFDb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dDtcbiAgbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nO1xuICByZXNwb25zZTogSHR0cFJlc3BvbnNlQ29udGV4dDtcbiAgYXV0aDogSnd0QXV0aG9yaXplcjtcbn1cblxuLyoqXG4gKiBBIHR5cGUgZGVmaW5pdGlvbiBmb3IgYW4gSFRUUCBoYW5kbGVyLlxuICovXG5leHBvcnQgdHlwZSBIdHRwSGFuZGxlcjxULCBSPiA9IChcbiAgY29udGV4dDogSHR0cEhhbmRsZXJDb250ZXh0LFxuICBib2R5OiBULFxuKSA9PiBQcm9taXNlPFI+O1xuXG4vKipcbiAqIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIGZvciBhbiBPcGVuQVBJIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb24ge1xuICByZXNwb25zZXM6IHtcbiAgICBbc3RhdHVzQ29kZTogbnVtYmVyXToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IGFueTtcbiAgICAgIH07XG4gICAgfSB8IGFueTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBIHR5cGUgZGVmaW5pdGlvbiBmb3IgYW4gQVBJIEdhdGV3YXkgdjEgcmVxdWVzdCBoYW5kbGVyLlxuICovXG5leHBvcnQgdHlwZSBBUElHYXRld2F5djFIYW5kbGVyID1cbiAgQVdTTGFtYmRhLkhhbmRsZXI8QVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eVdpdGhDb2duaXRvQXV0aG9yaXplckV2ZW50LCBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5UmVzdWx0IHwgdW5kZWZpbmVkPjtcblxuLyoqXG4gKiBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcHJvcGVydGllcyBmb3IgYW4gT3BlbkFQSSBvcGVyYXRpb24gd2l0aCBhIHJlcXVlc3QgYm9keS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb25XaXRoUmVxdWVzdEJvZHkgZXh0ZW5kcyBPcGVyYXRpb24ge1xuICByZXF1ZXN0Qm9keTogeyBjb250ZW50OiB7ICdhcHBsaWNhdGlvbi9qc29uJzogYW55IH0gfTtcbn1cblxuLyoqXG4gKiBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGFuIEhUVFAgcmVxdWVzdCBoYW5kbGVyIGZvciBhbiBPcGVuQVBJIG9wZXJhdGlvbiB3aXRoIGEgcmVxdWVzdCBib2R5LlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlT3BlbkFwaUhhbmRsZXJXaXRoUmVxdWVzdEJvZHkgPSA8T1AgZXh0ZW5kcyBPcGVyYXRpb25XaXRoUmVxdWVzdEJvZHksIFNDIGV4dGVuZHMgbnVtYmVyID0gMjAwPihoYW5kbGVyOiBIdHRwSGFuZGxlcjxPUFsncmVxdWVzdEJvZHknXVsnY29udGVudCddWydhcHBsaWNhdGlvbi9qc29uJ10sIE9QWydyZXNwb25zZXMnXVtTQ11bJ2NvbnRlbnQnXVsnYXBwbGljYXRpb24vanNvbiddPik6IEFQSUdhdGV3YXl2MUhhbmRsZXIgPT4ge1xuICByZXR1cm4gY3JlYXRlSHR0cEhhbmRsZXIoaGFuZGxlcik7XG59O1xuXG4vKipcbiAqIEEgZmFjdG9yeSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYW4gSFRUUCByZXF1ZXN0IGhhbmRsZXIgZm9yIGFuIE9wZW5BUEkgb3BlcmF0aW9uIHdpdGggYSByZXF1ZXN0IGJvZHkgYW5kIG5vIHJlc3BvbnNlLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlT3BlbkFwaUhhbmRsZXJXaXRoUmVxdWVzdEJvZHlOb1Jlc3BvbnNlID0gPE9QIGV4dGVuZHMgT3BlcmF0aW9uV2l0aFJlcXVlc3RCb2R5PihoYW5kbGVyOiBIdHRwSGFuZGxlcjxPUFsncmVxdWVzdEJvZHknXVsnY29udGVudCddWydhcHBsaWNhdGlvbi9qc29uJ10sIHZvaWQ+KTogQVBJR2F0ZXdheXYxSGFuZGxlciA9PiB7XG4gIHJldHVybiBjcmVhdGVIdHRwSGFuZGxlcihoYW5kbGVyKTtcbn07XG5cbi8qKlxuICogQSBmYWN0b3J5IGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhbiBIVFRQIHJlcXVlc3QgaGFuZGxlciBmb3IgYW4gT3BlbkFQSSBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVPcGVuQXBpSGFuZGxlciA9IDxPUCBleHRlbmRzIE9wZXJhdGlvbiwgU0MgZXh0ZW5kcyBudW1iZXIgPSAyMDA+KGhhbmRsZXI6IEh0dHBIYW5kbGVyPGFueSwgT1BbJ3Jlc3BvbnNlcyddW1NDXVsnY29udGVudCddWydhcHBsaWNhdGlvbi9qc29uJ10+KTogQVBJR2F0ZXdheXYxSGFuZGxlciA9PiB7XG4gIHJldHVybiBjcmVhdGVIdHRwSGFuZGxlcihoYW5kbGVyKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlIGFuIGF1dGhvcml6ZXIgZm9yIHRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgY2hvc2VuIChKV1Qgb3IgQ29nbml0bykuXG4gKi9cbmNvbnN0IGNyZWF0ZUF1dGhvcml6ZXIgPSAoZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlFdmVudEJhc2U8QVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eUNvZ25pdG9BdXRob3JpemVyPiwgbG9nOiBMYW1iZGFMb2cpID0+IHtcbiAgLy8gSWYgQ29nbml0byBpcyB1c2VkLCBVU0VSX1BPT0xfSUQgaXMgaW5qZWN0ZWQgaW50byB0aGUgZnVuY3Rpb24ncyBlbnZpcm9ubWVudC4gQ3VycmVudGx5IGFzc3VtZXMgSldUIG90aGVyd2lzZS5cbiAgaWYgKGVudi5VU0VSX1BPT0xfSUQpIHtcbiAgICByZXR1cm4gbmV3IEFwaUdhdGV3YXl2MUNvZ25pdG9BdXRob3JpemVyKGV2ZW50LCBsb2cpO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgbWlnaHQgbmVlZCB0byBnZXQgbW9yZSBzb3BoaXN0aWNhdGVkIGlmIG1vcmUgYXV0aG9yaXphdGlvbiBtZXRob2RzIG5lZWQgdG8gYmUgc3VwcG9ydGVkLlxuICAgIHJldHVybiBuZXcgQXBpR2F0ZXdheXYxSnd0QXV0aG9yaXplcihldmVudCwgJ2FkbWluJywgbG9nKTtcbiAgfVxufTtcblxuLyoqXG4gKiBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGFuIEhUVFAgcmVxdWVzdCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlSHR0cEhhbmRsZXIgPVxuICA8VCwgUj4oaGFuZGxlcjogSHR0cEhhbmRsZXI8VCwgUj4pOiBBUElHYXRld2F5djFIYW5kbGVyID0+IHtcbiAgICByZXR1cm4gYXN5bmMgKGV2ZW50LCBjb250ZXh0KSA9PiB7XG4gICAgICAvLyBDcmVhdGUgYW4gb2JqZWN0IHRvIGhvbGQgdGhlIGNvbnRleHQgZm9yIHRoaXMgSFRUUCByZXF1ZXN0XG4gICAgICBjb25zdCBhdXRoID0gY3JlYXRlQXV0aG9yaXplcihldmVudCwgbG9nZ2VyIGFzIHVua25vd24gYXMgbG9nZ2VyLkxhbWJkYUxvZyk7XG4gICAgICBjb25zdCBjdHg6IEh0dHBIYW5kbGVyQ29udGV4dCA9IHtcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIGF1dGgsXG4gICAgICAgIGxhbWJkYUNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgIGxvZ2dlcjogbG9nZ2VyIGFzIHVua25vd24gYXMgbG9nZ2VyLkxhbWJkYUxvZyxcbiAgICAgICAgcmVzcG9uc2U6IHsgaGVhZGVyczoge30sIGpzb246IHRydWUgfSxcbiAgICAgIH07XG4gICAgICAvLyBBZGQgdGhlIHJlcXVlc3QgSUQgdG8gdGhlIGxvZ2dpbmcgbWV0YWRhdGEsIGFuZCBlbmFibGUgZGVidWcgbG9nZ2luZyBpZiB0aGUgREVCVUcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0IHRvIFwidHJ1ZVwiXG4gICAgICBjdHgubG9nZ2VyLm9wdGlvbnMubWV0YS5yZXF1ZXN0SWQgPSBjb250ZXh0LmF3c1JlcXVlc3RJZDtcbiAgICAgIGN0eC5sb2dnZXIub3B0aW9ucy5kZWJ1ZyA9IHByb2Nlc3MuZW52LkRFQlVHID09PSAndHJ1ZSc7XG5cbiAgICAgIC8vIExvZyB0aGUgZXZlbnQgb2JqZWN0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXNcbiAgICAgIGN0eC5sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gQXV0aGVudGljYXRlIHRoZSB1c2VyIHVzaW5nIHRoZSBDb2duaXRvIGF1dGhvcml6ZXJcbiAgICAgICAgYXdhaXQgY3R4LmF1dGguYXV0aGVudGljYXRlKCk7XG5cbiAgICAgICAgLy8gQ2FsbCB0aGUgdXNlci1kZWZpbmVkIGhhbmRsZXIgZnVuY3Rpb24sIHBhc3NpbmcgaW4gdGhlIHJlcXVlc3QgY29udGV4dCBvYmplY3QgYW5kIHRoZSBwYXJzZWQgcmVxdWVzdCBib2R5XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGhhbmRsZXIoY3R4LCBwYXJzZUJvZHkoZXZlbnQpKTtcblxuICAgICAgICAvLyBDb25zdHJ1Y3QgYW5kIHJldHVybiB0aGUgSFRUUCByZXNwb25zZVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXR1c0NvZGU6IGN0eC5yZXNwb25zZS5zdGF0dXNDb2RlID8/IChyZXMgPyAyMDAgOiAyMDQpLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAuLi5jb3JzSGVhZGVyKGV2ZW50KSxcbiAgICAgICAgICAgIC4uLmN0eC5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9keTogcmVzID8gKGN0eC5yZXNwb25zZS5qc29uID8gSlNPTi5zdHJpbmdpZnkocmVzKSA6IHJlcykgOiAnJyxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgLy8gSGFuZGxlIGFueSBlcnJvcnMgdGhhdCBvY2N1ciBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nXG5cbiAgICAgICAgLy8gSWYgdGhlIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIEh0dHBFcnJvciwgcmV0dXJuIGFuIEhUVFAgcmVzcG9uc2Ugd2l0aCB0aGUgZXJyb3Igc3RhdHVzIGNvZGUgYW5kIG1lc3NhZ2VcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgZXJyb3JzLkh0dHBFcnJvcikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBlcnJvci5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAuLi5jb3JzSGVhZGVyKGV2ZW50KSxcbiAgICAgICAgICAgICAgLi4uY3R4LnJlc3BvbnNlLmhlYWRlcnMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSBlcnJvciBpcyBhIEJvb20gZXJyb3IgKGZyb20gdGhlIGhhcGkuanMgZnJhbWV3b3JrKSwgcmV0dXJuIGFuIEhUVFAgcmVzcG9uc2Ugd2l0aCB0aGUgZXJyb3Igc3RhdHVzIGNvZGUgYW5kIHBheWxvYWRcbiAgICAgICAgaWYgKGVycm9yLmlzQm9vbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBlcnJvci5vdXRwdXQuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgLi4uZXJyb3Iub3V0cHV0LmhlYWRlcnMsXG4gICAgICAgICAgICAgIC4uLmNvcnNIZWFkZXIoZXZlbnQpLFxuICAgICAgICAgICAgICAuLi5jdHgucmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShlcnJvci5vdXRwdXQucGF5bG9hZCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3IgYWxsIG90aGVyIHR5cGVzIG9mIGVycm9ycywgbG9nIHRoZSBlcnJvciBhbmQgcmV0dXJuIGEgNTAwIHN0YXR1cyBjb2RlIHdpdGggdGhlIGVycm9yIG1lc3NhZ2VcbiAgICAgICAgY3R4LmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3RhdHVzQ29kZTogY3R4LnJlc3BvbnNlLnN0YXR1c0NvZGUgPz8gNTAwLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAuLi5jb3JzSGVhZGVyKGV2ZW50KSxcbiAgICAgICAgICAgIC4uLmN0eC5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9keTogZXJyb3IudG9TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gZXZlbnQgb2JqZWN0IHJlcHJlc2VudGluZyBhbiBBUEkgR2F0ZXdheSBQcm94eSBldmVudFxuICogd2l0aCBhIENvZ25pdG8gYXV0aG9yaXplciwgYW5kIGV4dHJhY3RzIGFuZCBwYXJzZXMgdGhlIHJlcXVlc3QgYm9keSwgaWYgcHJlc2VudC5cbiAqXG4gKiBAcGFyYW0gZXZlbnQgVGhlIEFQSSBHYXRld2F5IFByb3h5IGV2ZW50IHdpdGggYSBDb2duaXRvIGF1dGhvcml6ZXJcbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVxdWVzdCBib2R5XG4gKi9cbmZ1bmN0aW9uIHBhcnNlQm9keTxUPihldmVudDogQVdTTGFtYmRhLkFQSUdhdGV3YXlQcm94eVdpdGhDb2duaXRvQXV0aG9yaXplckV2ZW50KTogVCB7XG4gIGxldCBib2R5ID0gZXZlbnQuYm9keTtcblxuICAvLyBJZiB0aGUgcmVxdWVzdCBib2R5IGlzIGJhc2U2NC1lbmNvZGVkLCBkZWNvZGUgaXRcbiAgaWYgKGV2ZW50LmJvZHkgJiYgZXZlbnQuaXNCYXNlNjRFbmNvZGVkKSB7XG4gICAgY29uc3QgYnVmZiA9IEJ1ZmZlci5mcm9tKGV2ZW50LmJvZHkhLCAnYmFzZTY0Jyk7XG4gICAgYm9keSA9IGJ1ZmYudG9TdHJpbmcoJ3V0ZjgnKTtcbiAgfVxuXG4gIC8vIElmIHRoZSByZXF1ZXN0IGJvZHkgaXMgaW4gSlNPTiBmb3JtYXQsIHBhcnNlIGl0IGludG8gYSBKYXZhU2NyaXB0IG9iamVjdFxuICBpZiAoZXZlbnQuaGVhZGVycyAmJiBldmVudC5oZWFkZXJzWydjb250ZW50LXR5cGUnXT8uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGJvZHkgPz8gJ3t9Jyk7XG4gIH1cblxuICAvLyBJZiB0aGUgcmVxdWVzdCBib2R5IGlzIG5vdCBwcmVzZW50IG9yIG5vdCBpbiBKU09OIGZvcm1hdCwgcmV0dXJuIGl0IGFzLWlzXG4gIHJldHVybiBib2R5IGFzIGFueTtcbn1cblxuXG4vKipcbiAqIFJldHVybnMgdGhlIENPUlMgaGVhZGVycyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgQVBJIEdhdGV3YXkgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIGV2ZW50IC0gVGhlIEFQSSBHYXRld2F5IGV2ZW50IG9iamVjdC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBDT1JTIGhlYWRlcnMuXG4gKi9cbmZ1bmN0aW9uIGNvcnNIZWFkZXIoZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlXaXRoQ29nbml0b0F1dGhvcml6ZXJFdmVudCk6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgcmV0dXJuIHtcbiAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJzogZXZlbnQ/LmhlYWRlcnM/Lm9yaWdpbiA/PyAnKicsIC8vIEFsbG93IHJlcXVlc3RzIGZyb20gdGhlIG9yaWdpbiBoZWFkZXIsIG9yIGFsbG93IGFueSBvcmlnaW4gaWYgbm90IHByZXNlbnRcbiAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMnOiBldmVudD8uaGVhZGVycz8ub3JpZ2luID8gJ3RydWUnIDogJ2ZhbHNlJywgLy8gSW5jbHVkZSBjb29raWVzIGluIGNyb3NzLW9yaWdpbiByZXF1ZXN0cyBpZiB0aGUgb3JpZ2luIGhlYWRlciBpcyBwcmVzZW50XG4gICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnOiAnKicsIC8vIEFsbG93IGFueSBIVFRQIG1ldGhvZFxuICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJzogJ0F1dGhvcml6YXRpb24sIConLCAvLyBBbGxvdyB0aGUgQXV0aG9yaXphdGlvbiBoZWFkZXIgYW5kIGFueSBvdGhlciBoZWFkZXJzXG4gIH07XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEFwcFN5bmNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFRoZSBjb250ZXh0IGZvciB0aGUgQXBwU3luYyByZXNvbHZlciBmdW5jdGlvbi5cbiAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudCwgbGFtYmRhIGNvbnRleHQsIGxvZ2dlciwgYW5kIENvZ25pdG8gYXV0aG9yaXplci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBTeW5jSGFuZGxlckNvbnRleHQ8VD4ge1xuICBldmVudDogQVdTTGFtYmRhLkFwcFN5bmNSZXNvbHZlckV2ZW50PFQ+O1xuICBsYW1iZGFDb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dDtcbiAgbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nO1xuICBjb2duaXRvQXV0aDogQ29nbml0b0F1dGhvcml6ZXI7XG59XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgYW4gQXBwU3luYyByZXNvbHZlciBldmVudC5cbiAqIFJlY2VpdmVzIHRoZSBjb250ZXh0IG9iamVjdCBhbmQgcmV0dXJucyB0aGUgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCB0eXBlIEFwcFN5bmNIYW5kbGVyPFQsIFI+ID0gKFxuICBjb250ZXh0OiBBcHBTeW5jSGFuZGxlckNvbnRleHQ8VD4sXG4pID0+IFByb21pc2U8Uj47XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBcHBTeW5jIHJlc29sdmVyIGhhbmRsZXIgZnJvbSB0aGUgZ2l2ZW4gQXBwU3luY0hhbmRsZXIuXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBhcyBhbiBBcHBTeW5jIHJlc29sdmVyLlxuICpcbiAqIEBwYXJhbSBoYW5kbGVyIFRoZSBBcHBTeW5jSGFuZGxlciB0byB1c2UgYXMgdGhlIHJlc29sdmVyLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQXBwU3luY0hhbmRsZXIgPVxuICA8VCwgUj4oaGFuZGxlcjogQXBwU3luY0hhbmRsZXI8VCwgUj4pOiBBV1NMYW1iZGEuQXBwU3luY1Jlc29sdmVySGFuZGxlcjxULCBSPiA9PiB7XG4gICAgcmV0dXJuIGFzeW5jIChldmVudCwgY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgY3R4OiBBcHBTeW5jSGFuZGxlckNvbnRleHQ8VD4gPSB7XG4gICAgICAgIGV2ZW50LFxuICAgICAgICBsYW1iZGFDb250ZXh0OiBjb250ZXh0LFxuICAgICAgICBsb2dnZXI6IGxvZ2dlciBhcyB1bmtub3duIGFzIGxvZ2dlci5MYW1iZGFMb2csXG4gICAgICAgIGNvZ25pdG9BdXRoOiBuZXcgQXBwU3luY0NvZ25pdG9BdXRob3JpemVyKGV2ZW50KSxcbiAgICAgIH07XG5cbiAgICAgIC8vIHNldCB0aGUgbWV0YSBpbmZvcm1hdGlvbiBpbiBsb2dnZXJcbiAgICAgIGN0eC5sb2dnZXIub3B0aW9ucy5tZXRhLnJlcXVlc3RJZCA9IGNvbnRleHQuYXdzUmVxdWVzdElkO1xuICAgICAgLy8gc2V0IHRoZSBkZWJ1ZyBmbGFnIGZvciBsb2dnZXJcbiAgICAgIGN0eC5sb2dnZXIub3B0aW9ucy5kZWJ1ZyA9IHByb2Nlc3MuZW52LkRFQlVHID09PSAndHJ1ZSc7XG5cbiAgICAgIC8vIGxvZyB0aGUgcmVjZWl2ZWQgZXZlbnRcbiAgICAgIGN0eC5sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gYXV0aGVudGljYXRlIHRoZSBpbmNvbWluZyByZXF1ZXN0XG4gICAgICAgIGF3YWl0IGN0eC5jb2duaXRvQXV0aC5hdXRoZW50aWNhdGUoKTtcbiAgICAgICAgLy8gaW52b2tlIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIHdpdGggdGhlIGNvbnRleHRcbiAgICAgICAgcmV0dXJuIGF3YWl0IGhhbmRsZXIoY3R4KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgLy8gbG9nIHRoZSBlcnJvciBhbmQgdGhyb3cgaXQgYWdhaW5cbiAgICAgICAgY3R4LmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiJdfQ==
@@ -57,19 +57,18 @@ class ServerlessProject extends pj.awscdk.AwsCdkTypeScriptApp {
57
57
  * @param {ServerlessProjectOptions} options - The options for configuring the ServerlessProject.
58
58
  */
59
59
  constructor(options) {
60
- var _a, _b;
61
60
  super({
62
61
  ...options,
63
62
  projenrcTs: true,
64
63
  deps: [
65
- ...(_a = options.deps) !== null && _a !== void 0 ? _a : [],
64
+ ...options.deps ?? [],
66
65
  'uuid',
67
66
  'esbuild',
68
67
  'js-yaml',
69
68
  '@aws-sdk/client-s3',
70
69
  ],
71
70
  devDeps: [
72
- ...(_b = options.devDeps) !== null && _b !== void 0 ? _b : [],
71
+ ...options.devDeps ?? [],
73
72
  '@types/aws-lambda',
74
73
  '@types/uuid',
75
74
  '@types/lambda-log',
@@ -79,4 +78,4 @@ class ServerlessProject extends pj.awscdk.AwsCdkTypeScriptApp {
79
78
  }
80
79
  }
81
80
  exports.ServerlessProject = ServerlessProject;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFFaEIsUUFBQSxZQUFZLEdBQUcsZ0JBQWdCLENBQUM7QUFNN0M7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUI7SUFFbEU7Ozs7T0FJRztJQUNILFlBQVksT0FBaUM7O1FBQzNDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRTtnQkFDSixHQUFHLE1BQUEsT0FBTyxDQUFDLElBQUksbUNBQUksRUFBRTtnQkFDckIsTUFBTTtnQkFDTixTQUFTO2dCQUNULFNBQVM7Z0JBQ1Qsb0JBQW9CO2FBQ3JCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxFQUFFO2dCQUN4QixtQkFBbUI7Z0JBQ25CLGFBQWE7Z0JBQ2IsbUJBQW1CO2dCQUNuQixnQkFBZ0I7YUFDakI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUY7QUE1QkQsOENBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9ICdjZGstc2VydmVybGVzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVybGVzc1Byb2plY3RPcHRpb25zIGV4dGVuZHMgcGouYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIHtcbiAgLy8gQWRkaXRpb25hbCBvcHRpb25zIGNhbiBiZSBzcGVjaWZpZWQgaGVyZVxufVxuXG4vKipcbiAqIFRoZSBTZXJ2ZXJsZXNzUHJvamVjdCBjb25zdHJ1Y3Qgc2V0cyB1cCBhbiBBV1MgQ0RLIFR5cGVTY3JpcHQgcHJvamVjdCB3aXRoIHNlcnZlcmxlc3MgYXBwbGljYXRpb24gZGVwZW5kZW5jaWVzIGFuZCBjb25maWd1cmF0aW9ucy5cbiAqIFRoaXMgY29uc3RydWN0IGV4dGVuZHMgdGhlIHByb2plbiBBd3NDZGtUeXBlU2NyaXB0QXBwIHRvIGluY2x1ZGUgYWRkaXRpb25hbCBkZXBlbmRlbmNpZXMgYW5kIGRldmVsb3BtZW50IGRlcGVuZGVuY2llcyByZXF1aXJlZFxuICogZm9yIHNlcnZlcmxlc3MgYXBwbGljYXRpb25zLiBJdCBhbHNvIGVuYWJsZXMgVHlwZVNjcmlwdCBwcm9qZW4gY29uZmlndXJhdGlvbiAocHJvamVucmNUcykuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHByb2plY3QgPSBuZXcgU2VydmVybGVzc1Byb2plY3Qoe1xuICogICBuYW1lOiAnTXlTZXJ2ZXJsZXNzQXBwJyxcbiAqICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAqICAgY2RrVmVyc2lvbjogJzIuMTQwLjAnLFxuICogICBkZXBzOiBbJ2FkZGl0aW9uYWwtZGVwZW5kZW5jeSddLFxuICogICBkZXZEZXBzOiBbJ2FkZGl0aW9uYWwtZGV2LWRlcGVuZGVuY3knXSxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgU2VydmVybGVzc1Byb2plY3QgZXh0ZW5kcyBwai5hd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgU2VydmVybGVzc1Byb2plY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7U2VydmVybGVzc1Byb2plY3RPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBTZXJ2ZXJsZXNzUHJvamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNlcnZlcmxlc3NQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgICAgZGVwczogW1xuICAgICAgICAuLi5vcHRpb25zLmRlcHMgPz8gW10sXG4gICAgICAgICd1dWlkJyxcbiAgICAgICAgJ2VzYnVpbGQnLFxuICAgICAgICAnanMteWFtbCcsXG4gICAgICAgICdAYXdzLXNkay9jbGllbnQtczMnLFxuICAgICAgXSxcbiAgICAgIGRldkRlcHM6IFtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXZEZXBzID8/IFtdLFxuICAgICAgICAnQHR5cGVzL2F3cy1sYW1iZGEnLFxuICAgICAgICAnQHR5cGVzL3V1aWQnLFxuICAgICAgICAnQHR5cGVzL2xhbWJkYS1sb2cnLFxuICAgICAgICAnQHR5cGVzL2pzLXlhbWwnLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFFaEIsUUFBQSxZQUFZLEdBQUcsZ0JBQWdCLENBQUM7QUFNN0M7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUI7SUFFbEU7Ozs7T0FJRztJQUNILFlBQVksT0FBaUM7UUFDM0MsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFO2dCQUNKLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUNyQixNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsU0FBUztnQkFDVCxvQkFBb0I7YUFDckI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7Z0JBQ3hCLG1CQUFtQjtnQkFDbkIsYUFBYTtnQkFDYixtQkFBbUI7Z0JBQ25CLGdCQUFnQjthQUNqQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRjtBQTVCRCw4Q0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwaiBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9OQU1FID0gJ2Nkay1zZXJ2ZXJsZXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBwai5hd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuICAvLyBBZGRpdGlvbmFsIG9wdGlvbnMgY2FuIGJlIHNwZWNpZmllZCBoZXJlXG59XG5cbi8qKlxuICogVGhlIFNlcnZlcmxlc3NQcm9qZWN0IGNvbnN0cnVjdCBzZXRzIHVwIGFuIEFXUyBDREsgVHlwZVNjcmlwdCBwcm9qZWN0IHdpdGggc2VydmVybGVzcyBhcHBsaWNhdGlvbiBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb25zLlxuICogVGhpcyBjb25zdHJ1Y3QgZXh0ZW5kcyB0aGUgcHJvamVuIEF3c0Nka1R5cGVTY3JpcHRBcHAgdG8gaW5jbHVkZSBhZGRpdGlvbmFsIGRlcGVuZGVuY2llcyBhbmQgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzIHJlcXVpcmVkXG4gKiBmb3Igc2VydmVybGVzcyBhcHBsaWNhdGlvbnMuIEl0IGFsc28gZW5hYmxlcyBUeXBlU2NyaXB0IHByb2plbiBjb25maWd1cmF0aW9uIChwcm9qZW5yY1RzKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcHJvamVjdCA9IG5ldyBTZXJ2ZXJsZXNzUHJvamVjdCh7XG4gKiAgIG5hbWU6ICdNeVNlcnZlcmxlc3NBcHAnLFxuICogICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICogICBjZGtWZXJzaW9uOiAnMi4xNDAuMCcsXG4gKiAgIGRlcHM6IFsnYWRkaXRpb25hbC1kZXBlbmRlbmN5J10sXG4gKiAgIGRldkRlcHM6IFsnYWRkaXRpb25hbC1kZXYtZGVwZW5kZW5jeSddLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJ2ZXJsZXNzUHJvamVjdCBleHRlbmRzIHBqLmF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBTZXJ2ZXJsZXNzUHJvamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtTZXJ2ZXJsZXNzUHJvamVjdE9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIFNlcnZlcmxlc3NQcm9qZWN0LlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9uczogU2VydmVybGVzc1Byb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBkZXBzOiBbXG4gICAgICAgIC4uLm9wdGlvbnMuZGVwcyA/PyBbXSxcbiAgICAgICAgJ3V1aWQnLFxuICAgICAgICAnZXNidWlsZCcsXG4gICAgICAgICdqcy15YW1sJyxcbiAgICAgICAgJ0Bhd3Mtc2RrL2NsaWVudC1zMycsXG4gICAgICBdLFxuICAgICAgZGV2RGVwczogW1xuICAgICAgICAuLi5vcHRpb25zLmRldkRlcHMgPz8gW10sXG4gICAgICAgICdAdHlwZXMvYXdzLWxhbWJkYScsXG4gICAgICAgICdAdHlwZXMvdXVpZCcsXG4gICAgICAgICdAdHlwZXMvbGFtYmRhLWxvZycsXG4gICAgICAgICdAdHlwZXMvanMteWFtbCcsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
@@ -58,7 +58,8 @@ class GraphQlApi extends pj.Component {
58
58
  exec: `graphql-codegen -c ${this.codegenConfigFileName}`,
59
59
  description: 'Generate Types from the GraphQL specification',
60
60
  });
61
- app.preCompileTask.prependSpawn(generateTask);
61
+ app.defaultTask.spawn(generateTask);
62
+ app.preCompileTask.prependSpawn(generateTask); // This is kept for backwards compatibility
62
63
  const codegenConfig = {
63
64
  schema: [
64
65
  this.options.definitionFile,
@@ -122,4 +123,4 @@ type User {
122
123
  }
123
124
  }
124
125
  exports.GraphQlApi = GraphQlApi;
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vZ3JhcGhxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsaUNBQXNDO0FBT3RDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxFQUFFLENBQUMsU0FBUztJQUsxQyxZQUFZLEdBQWtDLEVBQVksT0FBMEI7UUFDbEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRDZDLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBR2xGLEdBQUcsQ0FBQyxVQUFVLENBQ1osc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3Qix1Q0FBdUMsRUFDdkMsbUJBQW1CLEVBQ25CLG1CQUFtQixDQUNwQixDQUFDO1FBQ0YsR0FBRyxDQUFDLE9BQU8sQ0FDVCxTQUFTLEVBQ1Qsb0JBQW9CLEVBQ3BCLFNBQVMsQ0FDVixDQUFDO1FBRUYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG1CQUFtQixPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7UUFDcEYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO1lBQ2hGLElBQUksRUFBRSxzQkFBc0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3hELFdBQVcsRUFBRSwrQ0FBK0M7U0FDN0QsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFOUMsTUFBTSxhQUFhLEdBQUc7WUFDcEIsTUFBTSxFQUFFO2dCQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYztnQkFDM0IsK0NBQStDO2FBQ2hEO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRTtvQkFDUCxPQUFPLEVBQUUsUUFBUTtvQkFDakIsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFFBQVEsRUFBRSxRQUFRO29CQUNsQixPQUFPLEVBQUUsUUFBUTtvQkFDakIsV0FBVyxFQUFFLFFBQVE7b0JBQ3JCLFlBQVksRUFBRSxRQUFRO29CQUN0QixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsWUFBWSxFQUFFLFFBQVE7b0JBQ3RCLE9BQU8sRUFBRSxRQUFRO2lCQUNsQjtnQkFDRCxVQUFVLEVBQUUsZUFBZTthQUM1QjtZQUNELFNBQVMsRUFBRTtnQkFDVCxDQUFDLDJCQUEyQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsRUFBRTtvQkFDcEYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDakYsR0FBRyxFQUFFLGFBQWE7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUseUJBQXlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3BJLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxhQUFhLENBQUMsTUFBTTs7OytDQUdMLG1CQUFZO3VDQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7O21CQUV0RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7ZUFJeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPOztxREFFa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7a0JBR3ZELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzs2QkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWM7Ozs7RUFJdEQsQ0FBQyxDQUFDO1FBRUEsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDM0QsUUFBUSxFQUFFOzs7Ozs7O0VBT2Q7U0FDRyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUY7QUE3RkQsZ0NBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSB9IGZyb20gJy4vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhRbEFwaU9wdGlvbnMge1xuICByZWFkb25seSBhcGlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmluaXRpb25GaWxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIEdyYXBoUWxBcGkgY29uc3RydWN0IHNldHMgdXAgYSBHcmFwaFFMIEFQSSBmb3IgYSBzZXJ2ZXJsZXNzIHByb2plY3QgdXNpbmcgcHJvamVuLlxuICogVGhpcyBjb25zdHJ1Y3QgZXh0ZW5kcyB0aGUgcHJvamVuIENvbXBvbmVudCB0byBpbmNsdWRlIGRlcGVuZGVuY2llcyBhbmQgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGZvciBHcmFwaFFMXG4gKiBhbmQgcHJvdmlkZXMgbWV0aG9kcyB0byBnZW5lcmF0ZSBUeXBlU2NyaXB0IHR5cGVzIGFuZCByZXNvbHZlcnMgZnJvbSBhIEdyYXBoUUwgc2NoZW1hIGRlZmluaXRpb24gZmlsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZ3JhcGhRbEFwaSA9IG5ldyBHcmFwaFFsQXBpKGFwcCwge1xuICogICBhcGlOYW1lOiAnTXlHcmFwaFFsQXBpJyxcbiAqICAgZGVmaW5pdGlvbkZpbGU6ICdzcmMvZ3JhcGhxbC9zY2hlbWEuZ3JhcGhxbCcsXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoUWxBcGkgZXh0ZW5kcyBwai5Db21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBjb2RlZ2VuQ29uZmlnRmlsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNvZGVnZW5Db25maWdGaWxlOiBwai5ZYW1sRmlsZTtcblxuICBjb25zdHJ1Y3RvcihhcHA6IHBqLmF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwLCBwcm90ZWN0ZWQgb3B0aW9uczogR3JhcGhRbEFwaU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHApO1xuXG4gICAgYXBwLmFkZERldkRlcHMoXG4gICAgICAnQGdyYXBocWwtY29kZWdlbi9jbGknLFxuICAgICAgJ0BncmFwaHFsLWNvZGVnZW4vdHlwZXNjcmlwdCcsXG4gICAgICAnQGdyYXBocWwtY29kZWdlbi90eXBlc2NyaXB0LXJlc29sdmVycycsXG4gICAgICAnQHR5cGVzL2F3cy1sYW1iZGEnLFxuICAgICAgJ0B0eXBlcy9sYW1iZGEtbG9nJyxcbiAgICApO1xuICAgIGFwcC5hZGREZXBzKFxuICAgICAgJ2dyYXBocWwnLFxuICAgICAgJ0Bhd3MtYXBwc3luYy91dGlscycsXG4gICAgICAnZXNidWlsZCcsXG4gICAgKTtcblxuICAgIHRoaXMuY29kZWdlbkNvbmZpZ0ZpbGVOYW1lID0gYGdyYXBocWwtY29kZWdlbi4ke29wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS55bWxgO1xuICAgIGNvbnN0IGdlbmVyYXRlVGFzayA9IGFwcC5hZGRUYXNrKGBnZW5lcmF0ZTphcGk6JHtvcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX1gLCB7XG4gICAgICBleGVjOiBgZ3JhcGhxbC1jb2RlZ2VuIC1jICR7dGhpcy5jb2RlZ2VuQ29uZmlnRmlsZU5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgVHlwZXMgZnJvbSB0aGUgR3JhcGhRTCBzcGVjaWZpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBhcHAucHJlQ29tcGlsZVRhc2sucHJlcGVuZFNwYXduKGdlbmVyYXRlVGFzayk7XG5cbiAgICBjb25zdCBjb2RlZ2VuQ29uZmlnID0ge1xuICAgICAgc2NoZW1hOiBbXG4gICAgICAgIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSxcbiAgICAgICAgJ25vZGVfbW9kdWxlcy9jZGstc2VydmVybGVzcy9maWxlcy9hd3MuZ3JhcGhxbCcsXG4gICAgICBdLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHNjYWxhcnM6IHtcbiAgICAgICAgICBBV1NEYXRlOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NVUkw6ICdzdHJpbmcnLFxuICAgICAgICAgIEFXU0VtYWlsOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NUaW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NEYXRlVGltZTogJ3N0cmluZycsXG4gICAgICAgICAgQVdTVGltZXN0YW1wOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NQaG9uZTogJ3N0cmluZycsXG4gICAgICAgICAgQVdTSVBBZGRyZXNzOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NKU09OOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWF5YmVWYWx1ZTogJ1QgfCB1bmRlZmluZWQnLFxuICAgICAgfSxcbiAgICAgIGdlbmVyYXRlczoge1xuICAgICAgICBbYC4vc3JjL2dlbmVyYXRlZC9ncmFwaHFsLiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkLnRzYF06IHtcbiAgICAgICAgICBwbHVnaW5zOiBbJ3R5cGVzY3JpcHQnLCAndHlwZXNjcmlwdC1yZXNvbHZlcnMnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuY29kZWdlbkNvbmZpZ0ZpbGUgPSBuZXcgcGouWWFtbEZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLmNvZGVnZW5Db25maWdGaWxlTmFtZSwge1xuICAgICAgb2JqOiBjb2RlZ2VuQ29uZmlnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29uc3RydWN0RmlsZSA9IG5ldyBwai5UZXh0RmlsZSh0aGlzLnByb2plY3QsIGBzcmMvZ2VuZXJhdGVkL2dyYXBocWwuJHt0aGlzLm9wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS1hcGkuZ2VuZXJhdGVkLnRzYCk7XG4gICAgY29uc3RydWN0RmlsZS5hZGRMaW5lKGAvLyAke2NvbnN0cnVjdEZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgR3JhcGhRbEFwaSwgR3JhcGhRbEFwaVByb3BzIH0gZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcbmltcG9ydCB7IFJlc29sdmVycyB9IGZyb20gJy4vZ3JhcGhxbC4ke3RoaXMub3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9LW1vZGVsLmdlbmVyYXRlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX1HcmFwaFFsQXBpUHJvcHMgZXh0ZW5kcyBPbWl0PEdyYXBoUWxBcGlQcm9wcywgJ2RlZmluaXRpb25GaWxlTmFtZScgfCAnYXBpTmFtZSc+IHtcbiAgLy9cbn1cblxuZXhwb3J0IGNsYXNzICR7dGhpcy5vcHRpb25zLmFwaU5hbWV9R3JhcGhRbEFwaSBleHRlbmRzIEdyYXBoUWxBcGk8UmVzb2x2ZXJzPiB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7dGhpcy5vcHRpb25zLmFwaU5hbWV9R3JhcGhRbEFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGFwaU5hbWU6ICcke3RoaXMub3B0aW9ucy5hcGlOYW1lfScsXG4gICAgICBkZWZpbml0aW9uRmlsZU5hbWU6ICcke3RoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZX0nLFxuICAgIH0pO1xuICB9XG5cbn1gKTtcblxuICAgIG5ldyBwai5TYW1wbGVGaWxlKHRoaXMucHJvamVjdCwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlLCB7XG4gICAgICBjb250ZW50czogYHR5cGUgUXVlcnkge1xuICB1c2VyczogW1VzZXJdXG59XG5cbnR5cGUgVXNlciB7XG4gIGlkOiBJRCFcbiAgbmFtZTogU3RyaW5nXG59YCxcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vZ3JhcGhxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsaUNBQXNDO0FBT3RDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxFQUFFLENBQUMsU0FBUztJQUsxQyxZQUFZLEdBQWtDLEVBQVksT0FBMEI7UUFDbEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRDZDLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBR2xGLEdBQUcsQ0FBQyxVQUFVLENBQ1osc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3Qix1Q0FBdUMsRUFDdkMsbUJBQW1CLEVBQ25CLG1CQUFtQixDQUNwQixDQUFDO1FBQ0YsR0FBRyxDQUFDLE9BQU8sQ0FDVCxTQUFTLEVBQ1Qsb0JBQW9CLEVBQ3BCLFNBQVMsQ0FDVixDQUFDO1FBRUYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG1CQUFtQixPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7UUFDcEYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO1lBQ2hGLElBQUksRUFBRSxzQkFBc0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3hELFdBQVcsRUFBRSwrQ0FBK0M7U0FDN0QsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLFdBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQywyQ0FBMkM7UUFFMUYsTUFBTSxhQUFhLEdBQUc7WUFDcEIsTUFBTSxFQUFFO2dCQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYztnQkFDM0IsK0NBQStDO2FBQ2hEO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRTtvQkFDUCxPQUFPLEVBQUUsUUFBUTtvQkFDakIsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLFFBQVEsRUFBRSxRQUFRO29CQUNsQixPQUFPLEVBQUUsUUFBUTtvQkFDakIsV0FBVyxFQUFFLFFBQVE7b0JBQ3JCLFlBQVksRUFBRSxRQUFRO29CQUN0QixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsWUFBWSxFQUFFLFFBQVE7b0JBQ3RCLE9BQU8sRUFBRSxRQUFRO2lCQUNsQjtnQkFDRCxVQUFVLEVBQUUsZUFBZTthQUM1QjtZQUNELFNBQVMsRUFBRTtnQkFDVCxDQUFDLDJCQUEyQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsRUFBRTtvQkFDcEYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDakYsR0FBRyxFQUFFLGFBQWE7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUseUJBQXlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3BJLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxhQUFhLENBQUMsTUFBTTs7OytDQUdMLG1CQUFZO3VDQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7O21CQUV0RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7ZUFJeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPOztxREFFa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7a0JBR3ZELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzs2QkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWM7Ozs7RUFJdEQsQ0FBQyxDQUFDO1FBRUEsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDM0QsUUFBUSxFQUFFOzs7Ozs7O0VBT2Q7U0FDRyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUY7QUE5RkQsZ0NBOEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSB9IGZyb20gJy4vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhRbEFwaU9wdGlvbnMge1xuICByZWFkb25seSBhcGlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmluaXRpb25GaWxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIEdyYXBoUWxBcGkgY29uc3RydWN0IHNldHMgdXAgYSBHcmFwaFFMIEFQSSBmb3IgYSBzZXJ2ZXJsZXNzIHByb2plY3QgdXNpbmcgcHJvamVuLlxuICogVGhpcyBjb25zdHJ1Y3QgZXh0ZW5kcyB0aGUgcHJvamVuIENvbXBvbmVudCB0byBpbmNsdWRlIGRlcGVuZGVuY2llcyBhbmQgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGZvciBHcmFwaFFMXG4gKiBhbmQgcHJvdmlkZXMgbWV0aG9kcyB0byBnZW5lcmF0ZSBUeXBlU2NyaXB0IHR5cGVzIGFuZCByZXNvbHZlcnMgZnJvbSBhIEdyYXBoUUwgc2NoZW1hIGRlZmluaXRpb24gZmlsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZ3JhcGhRbEFwaSA9IG5ldyBHcmFwaFFsQXBpKGFwcCwge1xuICogICBhcGlOYW1lOiAnTXlHcmFwaFFsQXBpJyxcbiAqICAgZGVmaW5pdGlvbkZpbGU6ICdzcmMvZ3JhcGhxbC9zY2hlbWEuZ3JhcGhxbCcsXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoUWxBcGkgZXh0ZW5kcyBwai5Db21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBjb2RlZ2VuQ29uZmlnRmlsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNvZGVnZW5Db25maWdGaWxlOiBwai5ZYW1sRmlsZTtcblxuICBjb25zdHJ1Y3RvcihhcHA6IHBqLmF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwLCBwcm90ZWN0ZWQgb3B0aW9uczogR3JhcGhRbEFwaU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHApO1xuXG4gICAgYXBwLmFkZERldkRlcHMoXG4gICAgICAnQGdyYXBocWwtY29kZWdlbi9jbGknLFxuICAgICAgJ0BncmFwaHFsLWNvZGVnZW4vdHlwZXNjcmlwdCcsXG4gICAgICAnQGdyYXBocWwtY29kZWdlbi90eXBlc2NyaXB0LXJlc29sdmVycycsXG4gICAgICAnQHR5cGVzL2F3cy1sYW1iZGEnLFxuICAgICAgJ0B0eXBlcy9sYW1iZGEtbG9nJyxcbiAgICApO1xuICAgIGFwcC5hZGREZXBzKFxuICAgICAgJ2dyYXBocWwnLFxuICAgICAgJ0Bhd3MtYXBwc3luYy91dGlscycsXG4gICAgICAnZXNidWlsZCcsXG4gICAgKTtcblxuICAgIHRoaXMuY29kZWdlbkNvbmZpZ0ZpbGVOYW1lID0gYGdyYXBocWwtY29kZWdlbi4ke29wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS55bWxgO1xuICAgIGNvbnN0IGdlbmVyYXRlVGFzayA9IGFwcC5hZGRUYXNrKGBnZW5lcmF0ZTphcGk6JHtvcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX1gLCB7XG4gICAgICBleGVjOiBgZ3JhcGhxbC1jb2RlZ2VuIC1jICR7dGhpcy5jb2RlZ2VuQ29uZmlnRmlsZU5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgVHlwZXMgZnJvbSB0aGUgR3JhcGhRTCBzcGVjaWZpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBhcHAuZGVmYXVsdFRhc2shLnNwYXduKGdlbmVyYXRlVGFzayk7XG4gICAgYXBwLnByZUNvbXBpbGVUYXNrLnByZXBlbmRTcGF3bihnZW5lcmF0ZVRhc2spOyAvLyBUaGlzIGlzIGtlcHQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5cbiAgICBjb25zdCBjb2RlZ2VuQ29uZmlnID0ge1xuICAgICAgc2NoZW1hOiBbXG4gICAgICAgIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSxcbiAgICAgICAgJ25vZGVfbW9kdWxlcy9jZGstc2VydmVybGVzcy9maWxlcy9hd3MuZ3JhcGhxbCcsXG4gICAgICBdLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHNjYWxhcnM6IHtcbiAgICAgICAgICBBV1NEYXRlOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NVUkw6ICdzdHJpbmcnLFxuICAgICAgICAgIEFXU0VtYWlsOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NUaW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NEYXRlVGltZTogJ3N0cmluZycsXG4gICAgICAgICAgQVdTVGltZXN0YW1wOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NQaG9uZTogJ3N0cmluZycsXG4gICAgICAgICAgQVdTSVBBZGRyZXNzOiAnc3RyaW5nJyxcbiAgICAgICAgICBBV1NKU09OOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWF5YmVWYWx1ZTogJ1QgfCB1bmRlZmluZWQnLFxuICAgICAgfSxcbiAgICAgIGdlbmVyYXRlczoge1xuICAgICAgICBbYC4vc3JjL2dlbmVyYXRlZC9ncmFwaHFsLiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkLnRzYF06IHtcbiAgICAgICAgICBwbHVnaW5zOiBbJ3R5cGVzY3JpcHQnLCAndHlwZXNjcmlwdC1yZXNvbHZlcnMnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuY29kZWdlbkNvbmZpZ0ZpbGUgPSBuZXcgcGouWWFtbEZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLmNvZGVnZW5Db25maWdGaWxlTmFtZSwge1xuICAgICAgb2JqOiBjb2RlZ2VuQ29uZmlnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29uc3RydWN0RmlsZSA9IG5ldyBwai5UZXh0RmlsZSh0aGlzLnByb2plY3QsIGBzcmMvZ2VuZXJhdGVkL2dyYXBocWwuJHt0aGlzLm9wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS1hcGkuZ2VuZXJhdGVkLnRzYCk7XG4gICAgY29uc3RydWN0RmlsZS5hZGRMaW5lKGAvLyAke2NvbnN0cnVjdEZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgR3JhcGhRbEFwaSwgR3JhcGhRbEFwaVByb3BzIH0gZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcbmltcG9ydCB7IFJlc29sdmVycyB9IGZyb20gJy4vZ3JhcGhxbC4ke3RoaXMub3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9LW1vZGVsLmdlbmVyYXRlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX1HcmFwaFFsQXBpUHJvcHMgZXh0ZW5kcyBPbWl0PEdyYXBoUWxBcGlQcm9wcywgJ2RlZmluaXRpb25GaWxlTmFtZScgfCAnYXBpTmFtZSc+IHtcbiAgLy9cbn1cblxuZXhwb3J0IGNsYXNzICR7dGhpcy5vcHRpb25zLmFwaU5hbWV9R3JhcGhRbEFwaSBleHRlbmRzIEdyYXBoUWxBcGk8UmVzb2x2ZXJzPiB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7dGhpcy5vcHRpb25zLmFwaU5hbWV9R3JhcGhRbEFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGFwaU5hbWU6ICcke3RoaXMub3B0aW9ucy5hcGlOYW1lfScsXG4gICAgICBkZWZpbml0aW9uRmlsZU5hbWU6ICcke3RoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZX0nLFxuICAgIH0pO1xuICB9XG5cbn1gKTtcblxuICAgIG5ldyBwai5TYW1wbGVGaWxlKHRoaXMucHJvamVjdCwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlLCB7XG4gICAgICBjb250ZW50czogYHR5cGUgUXVlcnkge1xuICB1c2VyczogW1VzZXJdXG59XG5cbnR5cGUgVXNlciB7XG4gIGlkOiBJRCFcbiAgbmFtZTogU3RyaW5nXG59YCxcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
@@ -11,13 +11,12 @@ class LazyTextFile extends projen_1.TextFile {
11
11
  * @param options Options
12
12
  */
13
13
  constructor(scope, filePath, options) {
14
- var _a;
15
14
  super(scope, filePath, options);
16
- this.content = (_a = options === null || options === void 0 ? void 0 : options.content) !== null && _a !== void 0 ? _a : (() => '');
15
+ this.content = options?.content ?? (() => '');
17
16
  }
18
17
  synthesizeContent(_) {
19
18
  return this.content(this);
20
19
  }
21
20
  }
22
21
  exports.LazyTextFile = LazyTextFile;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS10ZXh0ZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vbGF6eS10ZXh0ZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtQ0FBd0U7QUFTeEUsTUFBYSxZQUFhLFNBQVEsaUJBQVE7SUFJeEM7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFpQixFQUFFLFFBQWdCLEVBQUUsT0FBNkI7O1FBQzVFLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTyxtQ0FBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUFZO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFuQkQsb0NBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRmlsZUJhc2UsIEZpbGVCYXNlT3B0aW9ucywgSVJlc29sdmVyLCBUZXh0RmlsZSB9IGZyb20gJ3Byb2plbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eVRleHRGaWxlT3B0aW9ucyBleHRlbmRzIEZpbGVCYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBwcm92aWRlciBmb3IgdGhlIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBjb250ZW50OiAoZmlsZTogRmlsZUJhc2UpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIExhenlUZXh0RmlsZSBleHRlbmRzIFRleHRGaWxlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnQ6IChmaWxlOiBGaWxlQmFzZSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgdGV4dCBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvamVjdCBUaGUgcHJvamVjdFxuICAgKiBAcGFyYW0gZmlsZVBhdGggRmlsZSBwYXRoXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBJQ29uc3RydWN0LCBmaWxlUGF0aDogc3RyaW5nLCBvcHRpb25zPzogTGF6eVRleHRGaWxlT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBmaWxlUGF0aCwgb3B0aW9ucyk7XG4gICAgdGhpcy5jb250ZW50ID0gb3B0aW9ucz8uY29udGVudCA/PyAoKCkgPT4gJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KF86IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudCh0aGlzKTtcbiAgfVxufSJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS10ZXh0ZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vbGF6eS10ZXh0ZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtQ0FBd0U7QUFTeEUsTUFBYSxZQUFhLFNBQVEsaUJBQVE7SUFJeEM7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFpQixFQUFFLFFBQWdCLEVBQUUsT0FBNkI7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQW5CRCxvQ0FtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBGaWxlQmFzZSwgRmlsZUJhc2VPcHRpb25zLCBJUmVzb2x2ZXIsIFRleHRGaWxlIH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXp5VGV4dEZpbGVPcHRpb25zIGV4dGVuZHMgRmlsZUJhc2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IHByb3ZpZGVyIGZvciB0aGUgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IChmaWxlOiBGaWxlQmFzZSkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTGF6eVRleHRGaWxlIGV4dGVuZHMgVGV4dEZpbGUge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGVudDogKGZpbGU6IEZpbGVCYXNlKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSB0ZXh0IGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9qZWN0IFRoZSBwcm9qZWN0XG4gICAqIEBwYXJhbSBmaWxlUGF0aCBGaWxlIHBhdGhcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IElDb25zdHJ1Y3QsIGZpbGVQYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBMYXp5VGV4dEZpbGVPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGZpbGVQYXRoLCBvcHRpb25zKTtcbiAgICB0aGlzLmNvbnRlbnQgPSBvcHRpb25zPy5jb250ZW50ID8/ICgoKSA9PiAnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50KHRoaXMpO1xuICB9XG59Il19
@@ -82,10 +82,9 @@ class Workflow extends pj.Component {
82
82
  * @returns The content of the construct file.
83
83
  */
84
84
  createConstructFile(file) {
85
- var _a;
86
85
  const workflowDefinition = fs.readFileSync((0, path_1.join)(this.project.outdir, this.options.definitionFile)).toString();
87
- const matches = (_a = workflowDefinition.match(/\$\{[a-zA-Z0-9#]*\}/g)) === null || _a === void 0 ? void 0 : _a.map(match => match.substring(2, match.length - 1));
88
- const matchedVariables = (matches !== null && matches !== void 0 ? matches : []).map(varName => {
86
+ const matches = workflowDefinition.match(/\$\{[a-zA-Z0-9#]*\}/g)?.map(match => match.substring(2, match.length - 1));
87
+ const matchedVariables = (matches ?? []).map(varName => {
89
88
  if (varName.indexOf('#') < 0) {
90
89
  return { name: varName, fullName: varName, type: 'string' };
91
90
  }
@@ -155,4 +154,4 @@ export class ${this.options.workflowName}Workflow extends sls.Workflow {
155
154
  }
156
155
  }
157
156
  exports.Workflow = Workflow;
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVuL3dvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwrQkFBNEI7QUFDNUIsMkNBQTZCO0FBQzdCLGlDQUFzQztBQUN0QyxtREFBK0M7QUFhL0M7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsRUFBRSxDQUFDLFNBQVM7SUFFeEM7Ozs7O09BS0c7SUFDSCxZQUFZLEdBQWtDLEVBQVksT0FBd0I7UUFDaEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRDZDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBR2hGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsTUFBTSxFQUFFO29CQUNOLGFBQWEsRUFBRTt3QkFDYixJQUFJLEVBQUUsTUFBTTt3QkFDWixNQUFNLEVBQUU7NEJBQ04sS0FBSyxFQUFFLFVBQVU7eUJBQ2xCO3dCQUNELEdBQUcsRUFBRSxJQUFJO3FCQUNWO2lCQUNGO2FBQ0YsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksNEJBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDBCQUEwQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JLLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLG1CQUFtQixDQUFDLElBQWlCOztRQUM3QyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBQSxXQUFJLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlHLE1BQU0sT0FBTyxHQUFHLE1BQUEsa0JBQWtCLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNySCxNQUFNLGdCQUFnQixHQUF5QixDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzlELENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNOzs7Ozt3QkFLSixtQkFBWTs7bUJBRWpCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWTs7TUFFdEMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs7OztlQUloRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7O2dFQUV3QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7Ozs2QkFHNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjOztVQUU5QyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzs7OztFQUtsRixDQUFDO0lBQ0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sMkJBQTJCLENBQUMsR0FBdUI7UUFDM0QsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsS0FBSyxlQUFlO2dCQUNsQixPQUFPLFlBQVksR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDO1lBQ3pDLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLFlBQVksR0FBRyxDQUFDLElBQUksY0FBYyxDQUFDO1lBQzVDLEtBQUssUUFBUSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxZQUFZLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sNEJBQTRCLENBQUMsR0FBdUI7UUFDNUQsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsS0FBSyxlQUFlO2dCQUNsQixPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsd0JBQXdCLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQztZQUN2RSxLQUFLLGdCQUFnQjtnQkFDbkIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLHdCQUF3QixHQUFHLENBQUMsSUFBSSxlQUFlLENBQUM7WUFDekUsS0FBSyxRQUFRLENBQUM7WUFDZDtnQkFDRSxPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsd0JBQXdCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztDQUVGO0FBOUdELDRCQThHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHBqIGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBQQUNLQUdFX05BTUUgfSBmcm9tICcuL2NvcmUnO1xuaW1wb3J0IHsgTGF6eVRleHRGaWxlIH0gZnJvbSAnLi9sYXp5LXRleHRmaWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd09wdGlvbnMge1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmaW5pdGlvbkZpbGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFZhcmlhYmxlRGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IGZ1bGxOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBXb3JrZmxvdyBjb25zdHJ1Y3Qgc2V0cyB1cCBhbiBBV1MgU3RlcCBGdW5jdGlvbnMgd29ya2Zsb3cgZm9yIGEgc2VydmVybGVzcyBwcm9qZWN0IHVzaW5nIHByb2plbi5cbiAqIFRoaXMgY29uc3RydWN0IGV4dGVuZHMgdGhlIHByb2plbiBDb21wb25lbnQgdG8gZ2VuZXJhdGUgYSBzYW1wbGUgc3RhdGUgbWFjaGluZSBkZWZpbml0aW9uIGZpbGUgYW5kIGNvcnJlc3BvbmRpbmcgVHlwZVNjcmlwdCBjb25zdHJ1Y3QgZmlsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgd29ya2Zsb3cgPSBuZXcgV29ya2Zsb3coYXBwLCB7XG4gKiAgIHdvcmtmbG93TmFtZTogJ015V29ya2Zsb3cnLFxuICogICBkZWZpbml0aW9uRmlsZTogJ3N0YXRlbWFjaGluZS9kZWZpbml0aW9uLmpzb24nLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBXb3JrZmxvdyBleHRlbmRzIHBqLkNvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgV29ya2Zsb3cuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgQVdTIENESyBUeXBlU2NyaXB0IGFwcC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIFdvcmtmbG93LlxuICAgKi9cbiAgY29uc3RydWN0b3IoYXBwOiBwai5hd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJvdGVjdGVkIG9wdGlvbnM6IFdvcmtmbG93T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcCk7XG5cbiAgICBuZXcgcGouU2FtcGxlRmlsZSh0aGlzLnByb2plY3QsIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSwge1xuICAgICAgY29udGVudHM6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgU3RhcnRBdDogJ0hlbGxvIFdvcmxkJyxcbiAgICAgICAgU3RhdGVzOiB7XG4gICAgICAgICAgJ0hlbGxvIFdvcmxkJzoge1xuICAgICAgICAgICAgVHlwZTogJ1Bhc3MnLFxuICAgICAgICAgICAgUmVzdWx0OiB7XG4gICAgICAgICAgICAgIEhlbGxvOiAnJHt3b3JsZH0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEVuZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSwgdW5kZWZpbmVkLCAyKSxcbiAgICB9KTtcblxuICAgIG5ldyBMYXp5VGV4dEZpbGUodGhpcy5wcm9qZWN0LCBgc3JjL2dlbmVyYXRlZC93b3JrZmxvdy4ke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWUudG9Mb3dlckNhc2UoKX0uZ2VuZXJhdGVkLnRzYCwgeyBjb250ZW50OiB0aGlzLmNyZWF0ZUNvbnN0cnVjdEZpbGUuYmluZCh0aGlzKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBjb25zdHJ1Y3QgZmlsZSBjb250ZW50IGZvciB0aGUgZ2VuZXJhdGVkIFdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZSAtIFRoZSBmaWxlIG9iamVjdCB0byBjcmVhdGUgY29udGVudCBmb3IuXG4gICAqIEByZXR1cm5zIFRoZSBjb250ZW50IG9mIHRoZSBjb25zdHJ1Y3QgZmlsZS5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVDb25zdHJ1Y3RGaWxlKGZpbGU6IHBqLkZpbGVCYXNlKTogc3RyaW5nIHtcbiAgICBjb25zdCB3b3JrZmxvd0RlZmluaXRpb24gPSBmcy5yZWFkRmlsZVN5bmMoam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUpKS50b1N0cmluZygpO1xuICAgIGNvbnN0IG1hdGNoZXMgPSB3b3JrZmxvd0RlZmluaXRpb24ubWF0Y2goL1xcJFxce1thLXpBLVowLTkjXSpcXH0vZyk/Lm1hcChtYXRjaCA9PiBtYXRjaC5zdWJzdHJpbmcoMiwgbWF0Y2gubGVuZ3RoIC0gMSkpO1xuICAgIGNvbnN0IG1hdGNoZWRWYXJpYWJsZXM6IFZhcmlhYmxlRGVmaW5pdGlvbltdID0gKG1hdGNoZXMgPz8gW10pLm1hcCh2YXJOYW1lID0+IHtcbiAgICAgIGlmICh2YXJOYW1lLmluZGV4T2YoJyMnKSA8IDApIHtcbiAgICAgICAgcmV0dXJuIHsgbmFtZTogdmFyTmFtZSwgZnVsbE5hbWU6IHZhck5hbWUsIHR5cGU6ICdzdHJpbmcnIH07XG4gICAgICB9XG4gICAgICBjb25zdCBbbmFtZSwgdHlwZV0gPSB2YXJOYW1lLnNwbGl0KCcjJyk7XG4gICAgICByZXR1cm4geyBuYW1lLCB0eXBlLCBmdWxsTmFtZTogdmFyTmFtZSB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGAvLyAke2ZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJVGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzbHMgZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSAke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWV9V29ya2Zsb3dQcm9wcyBleHRlbmRzIE9taXQ8c2xzLldvcmtmbG93UHJvcHMsICdkZWZpbml0aW9uRmlsZU5hbWUnIHwgJ2RlZmluaXRpb25TdWJzdGl0dXRpb25zJz4ge1xuICByZWFkb25seSBzdGF0ZUNvbmZpZzoge1xuICAgICR7bWF0Y2hlZFZhcmlhYmxlcy5tYXAodiA9PiB0aGlzLnJlbmRlclN0YXRlQ29uZmlnRGVmaW5pdGlvbih2KSkuam9pbignXFxuJyl9XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyAke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWV9V29ya2Zsb3cgZXh0ZW5kcyBzbHMuV29ya2Zsb3cge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7dGhpcy5vcHRpb25zLndvcmtmbG93TmFtZX1Xb3JrZmxvd1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlZmluaXRpb25GaWxlTmFtZTogJyR7dGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlfScsXG4gICAgICBkZWZpbml0aW9uU3Vic3RpdHV0aW9uczoge1xuICAgICAgICAke21hdGNoZWRWYXJpYWJsZXMubWFwKHYgPT4gdGhpcy5yZW5kZXJEZWZpbml0aW9uU3Vic3RpdHV0aW9uKHYpKS5qb2luKCdcXG4nKX1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBzdGF0ZSBjb25maWd1cmF0aW9uIGRlZmluaXRpb24gZm9yIGEgZ2l2ZW4gdmFyaWFibGUuXG4gICAqXG4gICAqIEBwYXJhbSBkZWYgLSBUaGUgdmFyaWFibGUgZGVmaW5pdGlvbi5cbiAgICogQHJldHVybnMgVGhlIHN0YXRlIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbiBzdHJpbmcuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyU3RhdGVDb25maWdEZWZpbml0aW9uKGRlZjogVmFyaWFibGVEZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGRlZi50eXBlKSB7XG4gICAgICBjYXNlICdEeW5hbW9EQlRhYmxlJzpcbiAgICAgICAgcmV0dXJuIGByZWFkb25seSAke2RlZi5uYW1lfTogSVRhYmxlO2A7XG4gICAgICBjYXNlICdMYW1iZGFGdW5jdGlvbic6XG4gICAgICAgIHJldHVybiBgcmVhZG9ubHkgJHtkZWYubmFtZX06IElGdW5jdGlvbjtgO1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBgcmVhZG9ubHkgJHtkZWYubmFtZX06IHN0cmluZztgO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBkZWZpbml0aW9uIHN1YnN0aXR1dGlvbiBmb3IgYSBnaXZlbiB2YXJpYWJsZS5cbiAgICpcbiAgICogQHBhcmFtIGRlZiAtIFRoZSB2YXJpYWJsZSBkZWZpbml0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgZGVmaW5pdGlvbiBzdWJzdGl0dXRpb24gc3RyaW5nLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlbmRlckRlZmluaXRpb25TdWJzdGl0dXRpb24oZGVmOiBWYXJpYWJsZURlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZGVmLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0R5bmFtb0RCVGFibGUnOlxuICAgICAgICByZXR1cm4gYCcke2RlZi5mdWxsTmFtZX0nOiBwcm9wcy5zdGF0ZUNvbmZpZy4ke2RlZi5uYW1lfS50YWJsZU5hbWUsYDtcbiAgICAgIGNhc2UgJ0xhbWJkYUZ1bmN0aW9uJzpcbiAgICAgICAgcmV0dXJuIGAnJHtkZWYuZnVsbE5hbWV9JzogcHJvcHMuc3RhdGVDb25maWcuJHtkZWYubmFtZX0uZnVuY3Rpb25Bcm4sYDtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYCcke2RlZi5mdWxsTmFtZX0nOiBwcm9wcy5zdGF0ZUNvbmZpZy4ke2RlZi5uYW1lfSxgO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVuL3dvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwrQkFBNEI7QUFDNUIsMkNBQTZCO0FBQzdCLGlDQUFzQztBQUN0QyxtREFBK0M7QUFhL0M7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsRUFBRSxDQUFDLFNBQVM7SUFFeEM7Ozs7O09BS0c7SUFDSCxZQUFZLEdBQWtDLEVBQVksT0FBd0I7UUFDaEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRDZDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBR2hGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsTUFBTSxFQUFFO29CQUNOLGFBQWEsRUFBRTt3QkFDYixJQUFJLEVBQUUsTUFBTTt3QkFDWixNQUFNLEVBQUU7NEJBQ04sS0FBSyxFQUFFLFVBQVU7eUJBQ2xCO3dCQUNELEdBQUcsRUFBRSxJQUFJO3FCQUNWO2lCQUNGO2FBQ0YsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksNEJBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDBCQUEwQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JLLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLG1CQUFtQixDQUFDLElB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IGZyb20gJ2ZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHBqIGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBQQUNLQUdFX05BTUUgfSBmcm9tICcuL2NvcmUnO1xuaW1wb3J0IHsgTGF6eVRleHRGaWxlIH0gZnJvbSAnLi9sYXp5LXRleHRmaWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd09wdGlvbnMge1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmaW5pdGlvbkZpbGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFZhcmlhYmxlRGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IGZ1bGxOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBXb3JrZmxvdyBjb25zdHJ1Y3Qgc2V0cyB1cCBhbiBBV1MgU3RlcCBGdW5jdGlvbnMgd29ya2Zsb3cgZm9yIGEgc2VydmVybGVzcyBwcm9qZWN0IHVzaW5nIHByb2plbi5cbiAqIFRoaXMgY29uc3RydWN0IGV4dGVuZHMgdGhlIHByb2plbiBDb21wb25lbnQgdG8gZ2VuZXJhdGUgYSBzYW1wbGUgc3RhdGUgbWFjaGluZSBkZWZpbml0aW9uIGZpbGUgYW5kIGNvcnJlc3BvbmRpbmcgVHlwZVNjcmlwdCBjb25zdHJ1Y3QgZmlsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgd29ya2Zsb3cgPSBuZXcgV29ya2Zsb3coYXBwLCB7XG4gKiAgIHdvcmtmbG93TmFtZTogJ015V29ya2Zsb3cnLFxuICogICBkZWZpbml0aW9uRmlsZTogJ3N0YXRlbWFjaGluZS9kZWZpbml0aW9uLmpzb24nLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBXb3JrZmxvdyBleHRlbmRzIHBqLkNvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgV29ya2Zsb3cuXG4gICAqXG4gICAqIEBwYXJhbSBhcHAgLSBUaGUgQVdTIENESyBUeXBlU2NyaXB0IGFwcC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIFdvcmtmbG93LlxuICAgKi9cbiAgY29uc3RydWN0b3IoYXBwOiBwai5hd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJvdGVjdGVkIG9wdGlvbnM6IFdvcmtmbG93T3B0aW9ucykge1xuICAgIHN1cGVyKGFwcCk7XG5cbiAgICBuZXcgcGouU2FtcGxlRmlsZSh0aGlzLnByb2plY3QsIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSwge1xuICAgICAgY29udGVudHM6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgU3RhcnRBdDogJ0hlbGxvIFdvcmxkJyxcbiAgICAgICAgU3RhdGVzOiB7XG4gICAgICAgICAgJ0hlbGxvIFdvcmxkJzoge1xuICAgICAgICAgICAgVHlwZTogJ1Bhc3MnLFxuICAgICAgICAgICAgUmVzdWx0OiB7XG4gICAgICAgICAgICAgIEhlbGxvOiAnJHt3b3JsZH0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEVuZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSwgdW5kZWZpbmVkLCAyKSxcbiAgICB9KTtcblxuICAgIG5ldyBMYXp5VGV4dEZpbGUodGhpcy5wcm9qZWN0LCBgc3JjL2dlbmVyYXRlZC93b3JrZmxvdy4ke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWUudG9Mb3dlckNhc2UoKX0uZ2VuZXJhdGVkLnRzYCwgeyBjb250ZW50OiB0aGlzLmNyZWF0ZUNvbnN0cnVjdEZpbGUuYmluZCh0aGlzKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBjb25zdHJ1Y3QgZmlsZSBjb250ZW50IGZvciB0aGUgZ2VuZXJhdGVkIFdvcmtmbG93LlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZSAtIFRoZSBmaWxlIG9iamVjdCB0byBjcmVhdGUgY29udGVudCBmb3IuXG4gICAqIEByZXR1cm5zIFRoZSBjb250ZW50IG9mIHRoZSBjb25zdHJ1Y3QgZmlsZS5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVDb25zdHJ1Y3RGaWxlKGZpbGU6IHBqLkZpbGVCYXNlKTogc3RyaW5nIHtcbiAgICBjb25zdCB3b3JrZmxvd0RlZmluaXRpb24gPSBmcy5yZWFkRmlsZVN5bmMoam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUpKS50b1N0cmluZygpO1xuICAgIGNvbnN0IG1hdGNoZXMgPSB3b3JrZmxvd0RlZmluaXRpb24ubWF0Y2goL1xcJFxce1thLXpBLVowLTkjXSpcXH0vZyk/Lm1hcChtYXRjaCA9PiBtYXRjaC5zdWJzdHJpbmcoMiwgbWF0Y2gubGVuZ3RoIC0gMSkpO1xuICAgIGNvbnN0IG1hdGNoZWRWYXJpYWJsZXM6IFZhcmlhYmxlRGVmaW5pdGlvbltdID0gKG1hdGNoZXMgPz8gW10pLm1hcCh2YXJOYW1lID0+IHtcbiAgICAgIGlmICh2YXJOYW1lLmluZGV4T2YoJyMnKSA8IDApIHtcbiAgICAgICAgcmV0dXJuIHsgbmFtZTogdmFyTmFtZSwgZnVsbE5hbWU6IHZhck5hbWUsIHR5cGU6ICdzdHJpbmcnIH07XG4gICAgICB9XG4gICAgICBjb25zdCBbbmFtZSwgdHlwZV0gPSB2YXJOYW1lLnNwbGl0KCcjJyk7XG4gICAgICByZXR1cm4geyBuYW1lLCB0eXBlLCBmdWxsTmFtZTogdmFyTmFtZSB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGAvLyAke2ZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJVGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzbHMgZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSAke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWV9V29ya2Zsb3dQcm9wcyBleHRlbmRzIE9taXQ8c2xzLldvcmtmbG93UHJvcHMsICdkZWZpbml0aW9uRmlsZU5hbWUnIHwgJ2RlZmluaXRpb25TdWJzdGl0dXRpb25zJz4ge1xuICByZWFkb25seSBzdGF0ZUNvbmZpZzoge1xuICAgICR7bWF0Y2hlZFZhcmlhYmxlcy5tYXAodiA9PiB0aGlzLnJlbmRlclN0YXRlQ29uZmlnRGVmaW5pdGlvbih2KSkuam9pbignXFxuJyl9XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyAke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWV9V29ya2Zsb3cgZXh0ZW5kcyBzbHMuV29ya2Zsb3cge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7dGhpcy5vcHRpb25zLndvcmtmbG93TmFtZX1Xb3JrZmxvd1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlZmluaXRpb25GaWxlTmFtZTogJyR7dGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlfScsXG4gICAgICBkZWZpbml0aW9uU3Vic3RpdHV0aW9uczoge1xuICAgICAgICAke21hdGNoZWRWYXJpYWJsZXMubWFwKHYgPT4gdGhpcy5yZW5kZXJEZWZpbml0aW9uU3Vic3RpdHV0aW9uKHYpKS5qb2luKCdcXG4nKX1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBzdGF0ZSBjb25maWd1cmF0aW9uIGRlZmluaXRpb24gZm9yIGEgZ2l2ZW4gdmFyaWFibGUuXG4gICAqXG4gICAqIEBwYXJhbSBkZWYgLSBUaGUgdmFyaWFibGUgZGVmaW5pdGlvbi5cbiAgICogQHJldHVybnMgVGhlIHN0YXRlIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbiBzdHJpbmcuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyU3RhdGVDb25maWdEZWZpbml0aW9uKGRlZjogVmFyaWFibGVEZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGRlZi50eXBlKSB7XG4gICAgICBjYXNlICdEeW5hbW9EQlRhYmxlJzpcbiAgICAgICAgcmV0dXJuIGByZWFkb25seSAke2RlZi5uYW1lfTogSVRhYmxlO2A7XG4gICAgICBjYXNlICdMYW1iZGFGdW5jdGlvbic6XG4gICAgICAgIHJldHVybiBgcmVhZG9ubHkgJHtkZWYubmFtZX06IElGdW5jdGlvbjtgO1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBgcmVhZG9ubHkgJHtkZWYubmFtZX06IHN0cmluZztgO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBkZWZpbml0aW9uIHN1YnN0aXR1dGlvbiBmb3IgYSBnaXZlbiB2YXJpYWJsZS5cbiAgICpcbiAgICogQHBhcmFtIGRlZiAtIFRoZSB2YXJpYWJsZSBkZWZpbml0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgZGVmaW5pdGlvbiBzdWJzdGl0dXRpb24gc3RyaW5nLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlbmRlckRlZmluaXRpb25TdWJzdGl0dXRpb24oZGVmOiBWYXJpYWJsZURlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZGVmLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0R5bmFtb0RCVGFibGUnOlxuICAgICAgICByZXR1cm4gYCcke2RlZi5mdWxsTmFtZX0nOiBwcm9wcy5zdGF0ZUNvbmZpZy4ke2RlZi5uYW1lfS50YWJsZU5hbWUsYDtcbiAgICAgIGNhc2UgJ0xhbWJkYUZ1bmN0aW9uJzpcbiAgICAgICAgcmV0dXJuIGAnJHtkZWYuZnVsbE5hbWV9JzogcHJvcHMuc3RhdGVDb25maWcuJHtkZWYubmFtZX0uZnVuY3Rpb25Bcm4sYDtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYCcke2RlZi5mdWxsTmFtZX0nOiBwcm9wcy5zdGF0ZUNvbmZpZy4ke2RlZi5uYW1lfSxgO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=