aws-delivlib 13.4.11 → 13.5.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.
@@ -239,7 +239,7 @@
239
239
  }
240
240
  }
241
241
  },
242
- "28eabf1860a4204c00af2bc8e4ba354e21b983459443d591f01a75d2aba90f79": {
242
+ "1f5cc2e42efd685df9228cdf77d32305244dc29b4988dedbc0e72123110b3660": {
243
243
  "source": {
244
244
  "path": "delivlib-test.template.json",
245
245
  "packaging": "file"
@@ -247,7 +247,7 @@
247
247
  "destinations": {
248
248
  "712950704752-us-east-1": {
249
249
  "bucketName": "cdk-hnb659fds-assets-712950704752-us-east-1",
250
- "objectKey": "28eabf1860a4204c00af2bc8e4ba354e21b983459443d591f01a75d2aba90f79.json",
250
+ "objectKey": "1f5cc2e42efd685df9228cdf77d32305244dc29b4988dedbc0e72123110b3660.json",
251
251
  "region": "us-east-1",
252
252
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-file-publishing-role-712950704752-us-east-1"
253
253
  }
@@ -6625,6 +6625,7 @@
6625
6625
  "Cache": {
6626
6626
  "Type": "NO_CACHE"
6627
6627
  },
6628
+ "Description": "Automatic PR build for awslabs/aws-delivlib-sample",
6628
6629
  "EncryptionKey": "alias/aws/s3",
6629
6630
  "Triggers": {
6630
6631
  "FilterGroups": [
@@ -23,7 +23,7 @@
23
23
  "validateOnSynth": false,
24
24
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-deploy-role-712950704752-us-east-1",
25
25
  "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-cfn-exec-role-712950704752-us-east-1",
26
- "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-712950704752-us-east-1/28eabf1860a4204c00af2bc8e4ba354e21b983459443d591f01a75d2aba90f79.json",
26
+ "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-712950704752-us-east-1/1f5cc2e42efd685df9228cdf77d32305244dc29b4988dedbc0e72123110b3660.json",
27
27
  "requiresBootstrapStackVersion": 6,
28
28
  "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
29
29
  "additionalDependencies": [
@@ -2305,7 +2305,7 @@
2305
2305
  "trace": [
2306
2306
  "new Alarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/alarm.js:76:23)",
2307
2307
  "Metric.createAlarm (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-cloudwatch/lib/metric.js:211:16)",
2308
- "new AutoPullRequest (/home/runner/work/aws-delivlib/aws-delivlib/lib/pull-request/pr.js:107:99)",
2308
+ "new AutoPullRequest (/home/runner/work/aws-delivlib/aws-delivlib/lib/pull-request/pr.js:108:99)",
2309
2309
  "new AutoBump (/home/runner/work/aws-delivlib/aws-delivlib/lib/pull-request/bump.js:35:19)",
2310
2310
  "Pipeline.autoBump (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:218:26)",
2311
2311
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:170:18)",
@@ -2385,7 +2385,7 @@
2385
2385
  "type": "aws:cdk:logicalId",
2386
2386
  "data": "CodeCommitPipelineAutoBuildGitHubCodeBuildLogsSAR75EABC5D",
2387
2387
  "trace": [
2388
- "new AutoBuild (/home/runner/work/aws-delivlib/aws-delivlib/lib/auto-build.js:20:13)",
2388
+ "new AutoBuild (/home/runner/work/aws-delivlib/aws-delivlib/lib/auto-build.js:21:13)",
2389
2389
  "Pipeline.autoBuild (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:255:16)",
2390
2390
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:175:18)",
2391
2391
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:29:1)",
package/cdk.out/tree.json CHANGED
@@ -9089,6 +9089,7 @@
9089
9089
  "cache": {
9090
9090
  "type": "NO_CACHE"
9091
9091
  },
9092
+ "description": "Automatic PR build for awslabs/aws-delivlib-sample",
9092
9093
  "encryptionKey": "alias/aws/s3",
9093
9094
  "triggers": {
9094
9095
  "webhook": true,
package/lib/auto-build.js CHANGED
@@ -9,6 +9,7 @@ class AutoBuild extends monocdk_1.Construct {
9
9
  super(scope, id);
10
10
  this.project = new monocdk_1.aws_codebuild.Project(this, 'Project', {
11
11
  projectName: props.projectName,
12
+ description: `Automatic PR build for ${props.repo.describe()}`,
12
13
  source: props.repo.createBuildSource(this, (_a = props.webhook) !== null && _a !== void 0 ? _a : true, { branch: props.branch, branches: props.branches }),
13
14
  environment: (0, build_env_1.createBuildEnvironment)((_b = props.environment) !== null && _b !== void 0 ? _b : {}),
14
15
  badge: props.repo.allowsBadge,
@@ -33,4 +34,4 @@ class AutoBuild extends monocdk_1.Construct {
33
34
  }
34
35
  }
35
36
  exports.AutoBuild = AutoBuild;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1dG8tYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBSWlCO0FBQ2pCLDJDQUE0RTtBQTBGNUUsTUFBYSxTQUFVLFNBQVEsbUJBQVM7SUFPdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjs7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksdUJBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNwRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNySCxXQUFXLEVBQUUsSUFBQSxrQ0FBc0IsRUFBQyxNQUFBLEtBQUssQ0FBQyxXQUFXLG1DQUFJLEVBQUUsQ0FBQztZQUM1RCxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQzdCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzdFLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxxQkFBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFbEgsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLGlCQUFVLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtnQkFDNUQsUUFBUSxFQUFFO29CQUNSLGFBQWEsRUFBRSxrRkFBa0Y7b0JBQ2pHLGVBQWUsRUFBRSxPQUFPO2lCQUN6QjtnQkFDRCxVQUFVLEVBQUU7b0JBQ1Ysb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO29CQUM5QyxzQkFBc0IsRUFBRSxDQUFDLE1BQUEsS0FBSyxDQUFDLDZCQUE2QixtQ0FBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7b0JBQ2hGLGdCQUFnQixFQUFFLENBQUMsTUFBQSxLQUFLLENBQUMsbUJBQW1CLG1DQUFJLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtvQkFDaEUsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsZUFBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUMvRTthQUNGLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztDQUNGO0FBcENELDhCQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbnN0cnVjdCwgVG9rZW4sIFNlY3JldFZhbHVlLFxuICBhd3NfY29kZWJ1aWxkIGFzIGNvZGVidWlsZCxcbiAgYXdzX3NhbSBhcyBzZXJ2ZXJsZXNzLFxufSBmcm9tICdtb25vY2RrJztcbmltcG9ydCB7IEJ1aWxkRW52aXJvbm1lbnRQcm9wcywgY3JlYXRlQnVpbGRFbnZpcm9ubWVudCB9IGZyb20gJy4vYnVpbGQtZW52JztcbmltcG9ydCB7IElSZXBvIH0gZnJvbSAnLi9yZXBvJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRvQnVpbGRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEJ1aWxkIGVudmlyb25tZW50LlxuICAgKiBAZGVmYXVsdCAtIHNlZSBkZWZhdWx0cyBpbiBgQnVpbGRFbnZpcm9ubWVudFByb3BzYFxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBCdWlsZEVudmlyb25tZW50UHJvcHM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBDb2RlQnVpbGQgcHJvamVjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgQ2xvdWRGb3JtYXRpb24uXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogTWFrZSBidWlsZCBsb2dzIHB1YmxpYyBhbmQgcHVibGlzaGVzIGEgbGluayB0byBHaXRIdWIgUFIgZGlzY3Vzc2lvbi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vamxob29kL2dpdGh1Yi1jb2RlYnVpbGQtbG9nc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTG9ncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSB0aGUgcHJvamVjdCB0byByZXNwb25kIHRvIHdlYmhvb2tzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB3ZWJob29rPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwdWJsaXNoIGEgbGluayB0byBidWlsZCBsb2dzIHdoZW4gYnVpbGQgaXMgc3VjY2Vzc2Z1bC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vamxob29kL2dpdGh1Yi1jb2RlYnVpbGQtbG9ncyNhcHAtcGFyYW1ldGVyc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNMb2dzT25TdWNjZXNzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkZWxldGUgcHJldmlvdXNseSBwdWJsaXNoZWQgbGlua3MgdG8gYnVpbGQgbG9nc1xuICAgKiBiZWZvcmUgcG9zdGluZyBhIG5ldyBvbmUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2psaG9vZC9naXRodWItY29kZWJ1aWxkLWxvZ3MjYXBwLXBhcmFtZXRlcnNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUHJldmlvdXNQdWJsaWNMb2dzTGlua3M/OiBib29sZWFuO1xuXG4gIC8qIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCAqL1xuICAvKipcbiAgICogQnVpbGQgc3BlYyBmaWxlIHRvIHVzZSBmb3IgQXV0b0J1aWxkXG4gICAqXG4gICAqIEBkZWZhdWx0IEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtY29kZWJ1aWxkLXByb2plY3Qtc291cmNlLmh0bWwjY2ZuLWNvZGVidWlsZC1wcm9qZWN0LXNvdXJjZS1idWlsZHNwZWNcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkU3BlYz86IGNvZGVidWlsZC5CdWlsZFNwZWM7XG4gIC8qIHRzbGludDplbmFibGU6bWF4LWxpbmUtbGVuZ3RoICovXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0J1aWxkUHJvcHMgZXh0ZW5kcyBBdXRvQnVpbGRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IHRvIG1vbml0b3IuXG4gICAqXG4gICAqIE11c3QgYmUgYSBHaXRIdWIgcmVwb3NpdG9yeSBmb3IgYHB1YmxpY0xvZ3NgIHRvIGhhdmUgYW55IGVmZmVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG86IElSZXBvO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgYnJhbmNoIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGF1dG8tYnVpbGRzLlxuICAgKlxuICAgKiBTcGVjaWZ5IGF0IG1vc3Qgb25lIG9mIGBicmFuY2hgIGFuZCBgYnJhbmNoZXNgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFueSAmIGFsbCBicmFuY2hlcy5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBicmFuY2hlc2AgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNwZWNpZmljIGJyYW5jaCB0byBiZSBjb25zaWRlcmVkIGZvciBhdXRvLWJ1aWxkcy5cbiAgICpcbiAgICogU3BlY2lmeSBhdCBtb3N0IG9uZSBvZiBgYnJhbmNoYCBhbmQgYGJyYW5jaGVzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbnkgJiBhbGwgYnJhbmNoZXMuXG4gICAqL1xuICByZWFkb25seSBicmFuY2hlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgQXV0b0J1aWxkIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgYENvZGVCdWlsZGAgcHJvamVjdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjb2RlYnVpbGQuUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXV0b0J1aWxkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5wcm9qZWN0ID0gbmV3IGNvZGVidWlsZC5Qcm9qZWN0KHRoaXMsICdQcm9qZWN0Jywge1xuICAgICAgcHJvamVjdE5hbWU6IHByb3BzLnByb2plY3ROYW1lLFxuICAgICAgc291cmNlOiBwcm9wcy5yZXBvLmNyZWF0ZUJ1aWxkU291cmNlKHRoaXMsIHByb3BzLndlYmhvb2sgPz8gdHJ1ZSwgeyBicmFuY2g6IHByb3BzLmJyYW5jaCwgYnJhbmNoZXM6IHByb3BzLmJyYW5jaGVzIH0pLFxuICAgICAgZW52aXJvbm1lbnQ6IGNyZWF0ZUJ1aWxkRW52aXJvbm1lbnQocHJvcHMuZW52aXJvbm1lbnQgPz8ge30pLFxuICAgICAgYmFkZ2U6IHByb3BzLnJlcG8uYWxsb3dzQmFkZ2UsXG4gICAgICBidWlsZFNwZWM6IHByb3BzLmJ1aWxkU3BlYyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHB1YmxpY0xvZ3MgPSBwcm9wcy5wdWJsaWNMb2dzICE9PSB1bmRlZmluZWQgPyBwcm9wcy5wdWJsaWNMb2dzIDogZmFsc2U7XG4gICAgY29uc3QgZ2l0aHViVG9rZW4gPSBwcm9wcy5yZXBvLnRva2VuU2VjcmV0QXJuID8gU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIocHJvcHMucmVwby50b2tlblNlY3JldEFybikgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAocHVibGljTG9ncykge1xuICAgICAgbmV3IHNlcnZlcmxlc3MuQ2ZuQXBwbGljYXRpb24odGhpcywgJ0dpdEh1YkNvZGVCdWlsZExvZ3NTQVInLCB7XG4gICAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjI3NzE4NzcwOTYxNTphcHBsaWNhdGlvbnMvZ2l0aHViLWNvZGVidWlsZC1sb2dzJyxcbiAgICAgICAgICBzZW1hbnRpY1ZlcnNpb246ICcxLjQuMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBDb2RlQnVpbGRQcm9qZWN0TmFtZTogdGhpcy5wcm9qZWN0LnByb2plY3ROYW1lLFxuICAgICAgICAgIERlbGV0ZVByZXZpb3VzQ29tbWVudHM6IChwcm9wcy5kZWxldGVQcmV2aW91c1B1YmxpY0xvZ3NMaW5rcyA/PyB0cnVlKS50b1N0cmluZygpLFxuICAgICAgICAgIENvbW1lbnRPblN1Y2Nlc3M6IChwcm9wcy5wdWJsaWNMb2dzT25TdWNjZXNzID8/IHRydWUpLnRvU3RyaW5nKCksXG4gICAgICAgICAgLi4uZ2l0aHViVG9rZW4gPyB7IEdpdEh1Yk9BdXRoVG9rZW46IFRva2VuLmFzU3RyaW5nKGdpdGh1YlRva2VuKSB9IDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1dG8tYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBSWlCO0FBQ2pCLDJDQUE0RTtBQTBGNUUsTUFBYSxTQUFVLFNBQVEsbUJBQVM7SUFPdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjs7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksdUJBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNwRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLDBCQUEwQixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzlELE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFBLEtBQUssQ0FBQyxPQUFPLG1DQUFJLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckgsV0FBVyxFQUFFLElBQUEsa0NBQXNCLEVBQUMsTUFBQSxLQUFLLENBQUMsV0FBVyxtQ0FBSSxFQUFFLENBQUM7WUFDNUQsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVztZQUM3QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3RSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMscUJBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWxILElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxpQkFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7Z0JBQzVELFFBQVEsRUFBRTtvQkFDUixhQUFhLEVBQUUsa0ZBQWtGO29CQUNqRyxlQUFlLEVBQUUsT0FBTztpQkFDekI7Z0JBQ0QsVUFBVSxFQUFFO29CQUNWLG9CQUFvQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztvQkFDOUMsc0JBQXNCLEVBQUUsQ0FBQyxNQUFBLEtBQUssQ0FBQyw2QkFBNkIsbUNBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO29CQUNoRixnQkFBZ0IsRUFBRSxDQUFDLE1BQUEsS0FBSyxDQUFDLG1CQUFtQixtQ0FBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7b0JBQ2hFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLGVBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztpQkFDL0U7YUFDRixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRjtBQXJDRCw4QkFxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25zdHJ1Y3QsIFRva2VuLCBTZWNyZXRWYWx1ZSxcbiAgYXdzX2NvZGVidWlsZCBhcyBjb2RlYnVpbGQsXG4gIGF3c19zYW0gYXMgc2VydmVybGVzcyxcbn0gZnJvbSAnbW9ub2Nkayc7XG5pbXBvcnQgeyBCdWlsZEVudmlyb25tZW50UHJvcHMsIGNyZWF0ZUJ1aWxkRW52aXJvbm1lbnQgfSBmcm9tICcuL2J1aWxkLWVudic7XG5pbXBvcnQgeyBJUmVwbyB9IGZyb20gJy4vcmVwbyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0J1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBCdWlsZCBlbnZpcm9ubWVudC5cbiAgICogQGRlZmF1bHQgLSBzZWUgZGVmYXVsdHMgaW4gYEJ1aWxkRW52aXJvbm1lbnRQcm9wc2BcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogQnVpbGRFbnZpcm9ubWVudFByb3BzO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQ29kZUJ1aWxkIHByb2plY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IENsb3VkRm9ybWF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2UgYnVpbGQgbG9ncyBwdWJsaWMgYW5kIHB1Ymxpc2hlcyBhIGxpbmsgdG8gR2l0SHViIFBSIGRpc2N1c3Npb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2psaG9vZC9naXRodWItY29kZWJ1aWxkLWxvZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0xvZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgdGhlIHByb2plY3QgdG8gcmVzcG9uZCB0byB3ZWJob29rcy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgd2ViaG9vaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHVibGlzaCBhIGxpbmsgdG8gYnVpbGQgbG9ncyB3aGVuIGJ1aWxkIGlzIHN1Y2Nlc3NmdWwuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2psaG9vZC9naXRodWItY29kZWJ1aWxkLWxvZ3MjYXBwLXBhcmFtZXRlcnNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTG9nc09uU3VjY2Vzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVsZXRlIHByZXZpb3VzbHkgcHVibGlzaGVkIGxpbmtzIHRvIGJ1aWxkIGxvZ3NcbiAgICogYmVmb3JlIHBvc3RpbmcgYSBuZXcgb25lLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qbGhvb2QvZ2l0aHViLWNvZGVidWlsZC1sb2dzI2FwcC1wYXJhbWV0ZXJzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVByZXZpb3VzUHVibGljTG9nc0xpbmtzPzogYm9vbGVhbjtcblxuICAvKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cbiAgLyoqXG4gICAqIEJ1aWxkIHNwZWMgZmlsZSB0byB1c2UgZm9yIEF1dG9CdWlsZFxuICAgKlxuICAgKiBAZGVmYXVsdCBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWNvZGVidWlsZC1wcm9qZWN0LXNvdXJjZS5odG1sI2Nmbi1jb2RlYnVpbGQtcHJvamVjdC1zb3VyY2UtYnVpbGRzcGVjXG4gICAqL1xuICByZWFkb25seSBidWlsZFNwZWM/OiBjb2RlYnVpbGQuQnVpbGRTcGVjO1xuICAvKiB0c2xpbnQ6ZW5hYmxlOm1heC1saW5lLWxlbmd0aCAqL1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9CdWlsZFByb3BzIGV4dGVuZHMgQXV0b0J1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSB0byBtb25pdG9yLlxuICAgKlxuICAgKiBNdXN0IGJlIGEgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGBwdWJsaWNMb2dzYCB0byBoYXZlIGFueSBlZmZlY3QuXG4gICAqL1xuICByZWFkb25seSByZXBvOiBJUmVwbztcblxuICAvKipcbiAgICogVGhlIHNwZWNpZmljIGJyYW5jaCB0byBiZSBjb25zaWRlcmVkIGZvciBhdXRvLWJ1aWxkcy5cbiAgICpcbiAgICogU3BlY2lmeSBhdCBtb3N0IG9uZSBvZiBgYnJhbmNoYCBhbmQgYGJyYW5jaGVzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbnkgJiBhbGwgYnJhbmNoZXMuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgYnJhbmNoZXNgIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzcGVjaWZpYyBicmFuY2ggdG8gYmUgY29uc2lkZXJlZCBmb3IgYXV0by1idWlsZHMuXG4gICAqXG4gICAqIFNwZWNpZnkgYXQgbW9zdCBvbmUgb2YgYGJyYW5jaGAgYW5kIGBicmFuY2hlc2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYW55ICYgYWxsIGJyYW5jaGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9CdWlsZCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIGBDb2RlQnVpbGRgIHByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogY29kZWJ1aWxkLlByb2plY3Q7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF1dG9CdWlsZFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvamVjdCA9IG5ldyBjb2RlYnVpbGQuUHJvamVjdCh0aGlzLCAnUHJvamVjdCcsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9wcy5wcm9qZWN0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgQXV0b21hdGljIFBSIGJ1aWxkIGZvciAke3Byb3BzLnJlcG8uZGVzY3JpYmUoKX1gLFxuICAgICAgc291cmNlOiBwcm9wcy5yZXBvLmNyZWF0ZUJ1aWxkU291cmNlKHRoaXMsIHByb3BzLndlYmhvb2sgPz8gdHJ1ZSwgeyBicmFuY2g6IHByb3BzLmJyYW5jaCwgYnJhbmNoZXM6IHByb3BzLmJyYW5jaGVzIH0pLFxuICAgICAgZW52aXJvbm1lbnQ6IGNyZWF0ZUJ1aWxkRW52aXJvbm1lbnQocHJvcHMuZW52aXJvbm1lbnQgPz8ge30pLFxuICAgICAgYmFkZ2U6IHByb3BzLnJlcG8uYWxsb3dzQmFkZ2UsXG4gICAgICBidWlsZFNwZWM6IHByb3BzLmJ1aWxkU3BlYyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHB1YmxpY0xvZ3MgPSBwcm9wcy5wdWJsaWNMb2dzICE9PSB1bmRlZmluZWQgPyBwcm9wcy5wdWJsaWNMb2dzIDogZmFsc2U7XG4gICAgY29uc3QgZ2l0aHViVG9rZW4gPSBwcm9wcy5yZXBvLnRva2VuU2VjcmV0QXJuID8gU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIocHJvcHMucmVwby50b2tlblNlY3JldEFybikgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAocHVibGljTG9ncykge1xuICAgICAgbmV3IHNlcnZlcmxlc3MuQ2ZuQXBwbGljYXRpb24odGhpcywgJ0dpdEh1YkNvZGVCdWlsZExvZ3NTQVInLCB7XG4gICAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjI3NzE4NzcwOTYxNTphcHBsaWNhdGlvbnMvZ2l0aHViLWNvZGVidWlsZC1sb2dzJyxcbiAgICAgICAgICBzZW1hbnRpY1ZlcnNpb246ICcxLjQuMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBDb2RlQnVpbGRQcm9qZWN0TmFtZTogdGhpcy5wcm9qZWN0LnByb2plY3ROYW1lLFxuICAgICAgICAgIERlbGV0ZVByZXZpb3VzQ29tbWVudHM6IChwcm9wcy5kZWxldGVQcmV2aW91c1B1YmxpY0xvZ3NMaW5rcyA/PyB0cnVlKS50b1N0cmluZygpLFxuICAgICAgICAgIENvbW1lbnRPblN1Y2Nlc3M6IChwcm9wcy5wdWJsaWNMb2dzT25TdWNjZXNzID8/IHRydWUpLnRvU3RyaW5nKCksXG4gICAgICAgICAgLi4uZ2l0aHViVG9rZW4gPyB7IEdpdEh1Yk9BdXRoVG9rZW46IFRva2VuLmFzU3RyaW5nKGdpdGh1YlRva2VuKSB9IDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
package/lib/auto-build.ts CHANGED
@@ -105,6 +105,7 @@ export class AutoBuild extends Construct {
105
105
 
106
106
  this.project = new codebuild.Project(this, 'Project', {
107
107
  projectName: props.projectName,
108
+ description: `Automatic PR build for ${props.repo.describe()}`,
108
109
  source: props.repo.createBuildSource(this, props.webhook ?? true, { branch: props.branch, branches: props.branches }),
109
110
  environment: createBuildEnvironment(props.environment ?? {}),
110
111
  badge: props.repo.allowsBadge,
@@ -122,6 +122,12 @@ export interface AutoPullRequestProps extends AutoPullRequestOptions {
122
122
  * @default - don't look at open PRs
123
123
  */
124
124
  readonly skipIfOpenPrsWithLabels?: string[];
125
+ /**
126
+ * Description string for the CodeBuild project
127
+ *
128
+ * @default - No description
129
+ */
130
+ readonly projectDescription?: string;
125
131
  }
126
132
  /**
127
133
  * Properties for configuring the base branch of the PR.
@@ -76,6 +76,7 @@ class AutoPullRequest extends monocdk_1.Construct {
76
76
  commands.unshift('export SKIP=false');
77
77
  this.project = new monocdk_1.aws_codebuild.Project(this, 'PullRequest', {
78
78
  source: props.repo.createBuildSource(this, false, { cloneDepth }),
79
+ description: props.projectDescription,
79
80
  environment: (0, build_env_1.createBuildEnvironment)((_e = props.build) !== null && _e !== void 0 ? _e : {}),
80
81
  buildSpec: monocdk_1.aws_codebuild.BuildSpec.fromObject({
81
82
  version: '0.2',
@@ -219,4 +220,4 @@ class AutoPullRequest extends monocdk_1.Construct {
219
220
  }
220
221
  }
221
222
  exports.AutoPullRequest = AutoPullRequest;
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBTWlCO0FBQ2pCLDRDQUE2RTtBQUM3RSw0REFBOEM7QUFvTDlDOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLG1CQUFTO0lBa0I1QyxZQUFZLE1BQWlCLEVBQUUsRUFBVSxFQUFFLEtBQTJCOztRQUNwRSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFBLEtBQUssQ0FBQyxJQUFJLDBDQUFFLElBQUksbUNBQUksUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sbUNBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDO1FBRW5DLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNoRixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLENBQUMsVUFBVSxxQ0FBcUMsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUMzRjtTQUNGO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFX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TUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZHO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFFbEIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFLE9BQVk7UUFDM0QsT0FBTztZQUNMLGFBQWE7WUFDYixPQUFPO1lBQ1AsK0NBQStDO1lBQy9DLDJDQUEyQztZQUMzQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1lBQy9DLGdDQUFnQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtTQUN0RixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDaEQsT0FBTztZQUNMLGFBQWE7WUFDYixPQUFPO1lBQ1AsK0NBQStDO1lBQy9DLDJDQUEyQztZQUMzQywwQkFBMEIsR0FBRyxHQUFHO1NBQ2pDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztDQUVGO0FBM1FELDBDQTJRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbnN0cnVjdCwgRHVyYXRpb24sXG4gIGF3c19jbG91ZHdhdGNoIGFzIGNsb3Vkd2F0Y2gsXG4gIGF3c19jb2RlYnVpbGQgYXMgY2J1aWxkLFxuICBhd3NfZXZlbnRzIGFzIGV2ZW50cyxcbiAgYXdzX2V2ZW50c190YXJnZXRzIGFzIGV2ZW50c190YXJnZXRzLFxufSBmcm9tICdtb25vY2RrJztcbmltcG9ydCB7IEJ1aWxkRW52aXJvbm1lbnRQcm9wcywgY3JlYXRlQnVpbGRFbnZpcm9ubWVudCB9IGZyb20gJy4uL2J1aWxkLWVudic7XG5pbXBvcnQgKiBhcyBwZXJtaXNzaW9ucyBmcm9tICcuLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBXcml0YWJsZUdpdEh1YlJlcG8gfSBmcm9tICcuLi9yZXBvJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIFB1bGwgUmVxdWVzdCBKb2IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b1B1bGxSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBicmFuY2ggb2YgdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFzdGVyJ1xuICAgKi9cbiAgYmFzZT86IEJhc2U7XG5cbiAgLyoqXG4gICAqIFRydWUgaWYgeW91IG9ubHkgd2FudCB0byBwdXNoIHRoZSBoZWFkIGJyYW5jaCB3aXRob3V0IGNyZWF0aW5nIGEgUFIuXG4gICAqIFVzZWZ1bCB3aGVuIHVzZWQgYWxvbmcgd2l0aCAnY29tbWl0cycgdG8gZXhlY3V0ZSBhIGNvbW1pdC1hbmQtcHVzaCBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiAvLyBUT0RPOiBDb25zaWRlciBtb3ZpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIGEgc2VwYXJhdGUgY29uc3RydWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVzaE9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBNZXJnZSAke2hlYWR9IHRvICR7YmFzZX1gXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQm9keSB0aGUgUFIuIE5vdGUgdGhhdCB0aGUgYm9keSBpcyB1cGRhdGVkIHBvc3QgUFIgY3JlYXRpb24sXG4gICAqIHRoaXMgbWVhbnMgeW91IGNhbiB1c2UgdGhlICRQUl9OVU1CRVIgZW52IHZhcmlhYmxlIHRvIHJlZmVyIHRvIHRoZSBQUiBpdHNlbGYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYm9keS5cbiAgICovXG4gIGJvZHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhYmVscyBhcHBsaWVkIHRvIHRoZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsYWJlbHMuXG4gICAqL1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoZSBDb2RlQnVpbGQgam9iLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGJ1aWxkPzogQnVpbGRFbnZpcm9ubWVudFByb3BzO1xuXG4gIC8qKlxuICAgKiBHaXQgY2xvbmUgZGVwdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IDAgKGNsb25lcyB0aGUgZW50aXJlIHJlcG9zaXRvcnkgcmV2aXNpb25zKVxuICAgKi9cbiAgY2xvbmVEZXB0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogS2V5IHZhbHVlIHBhaXJzIG9mIHZhcmlhYmxlcyB0byBleHBvcnQuIFRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgZHluYW1pYyBldmFsdWF0aW9uIGluIGFueVxuICAgKiBzdWJzZXF1ZW50IGNvbW1hbmQuXG4gICAqXG4gICAqIEtleSAtIFZhcmlhYmxlIG5hbWUgKGUuZyBWRVJTSU9OKVxuICAgKiBWYWx1ZSAtIENvbW1hbmQgdGhhdCBldmFsdWF0ZXMgdG8gdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSAoZS5nICdnaXQgZGVzY3JpYmUnKVxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiBDb25maWd1cmUgYW4gZXhwb3J0IGluIHRoZSBmb3JtIG9mOlxuICAgKlxuICAgKiB7ICdWRVJTSU9OJzogJ2dpdCBkZXNjcmliZScgfVxuICAgKlxuICAgKiBVc2UgdGhlICRWRVJTSU9OIHZhcmlhYmxlIGluIHRoZSBQUiB0aXRsZTogJ2Nob3JlKHJlbGVhc2UpOiAkVkVSU0lPTidcbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZXNlIGV4cG9ydHMgYXJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBgY29tbWFuZHNgIGV4ZWN1dGlvbixcbiAgICogc28gdGhleSBoYXZlIGFjY2VzcyB0byB0aGUgYXJ0aWZhY3RzIHNhaWQgY29tbWFuZHMgcHJvZHVjZSAoZS5nIHZlcnNpb24gYnVtcCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhwb3J0c1xuICAgKi9cbiAgZXhwb3J0cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBzY2hlZHVsZSB0byBwcm9kdWNlIGFuIGF1dG9tYXRpYyBQUi5cbiAgICpcbiAgICogVGhlIGV4cHJlc3Npb24gY2FuIGJlIG9uZSBvZjpcbiAgICpcbiAgICogIC0gY3JvbiBleHByZXNzaW9uLCBzdWNoIGFzIFwiY3JvbigwIDEyICogKiA/ICopXCIgd2lsbCB0cmlnZ2VyIGV2ZXJ5IGRheSBhdCAxMnBtIFVUQ1xuICAgKiAgLSByYXRlIGV4cHJlc3Npb24sIHN1Y2ggYXMgXCJyYXRlKDEgZGF5KVwiIHdpbGwgdHJpZ2dlciBldmVyeSAyNCBob3VycyBmcm9tIHRoZSB0aW1lIG9mIGRlcGxveW1lbnRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL1NjaGVkdWxlZEV2ZW50cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2NoZWR1bGUsIHNob3VsZCBiZSB0cmlnZ2VyZWQgbWFudWFsbHkuXG4gICAqL1xuICBzY2hlZHVsZUV4cHJlc3Npb24/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvUHVsbFJlcXVlc3RQcm9wcyBleHRlbmRzIEF1dG9QdWxsUmVxdWVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gY3JlYXRlIGEgUFIgaW4uXG4gICAqL1xuICByZXBvOiBXcml0YWJsZUdpdEh1YlJlcG87XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGNvbW1hbmRzIHRvIHJ1biBhZ2FpbnN0IHRoZSBoZWFkIGJyYW5jaC5cbiAgICogVXNlZnVsIGZvciB0aGluZ3MgbGlrZSB2ZXJzaW9uIGJ1bXBzIG9yIGFueSBhdXRvLWdlbmVyYXRlZCBjb21taXRzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgeW91IGNhbm5vdCB1c2UgZXhwb3J0IGtleXMgaW4gdGhlc2UgY29tbWFuZHMgKFNlZSBgZXhwb3J0c2AgcHJvcGVydHkpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWFuZHMuXG4gICAqL1xuICBjb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZCBicmFuY2ggb2YgdGhlIFBSLlxuICAgKi9cbiAgaGVhZDogSGVhZDtcblxuICAvKipcbiAgICogVGhlIGV4aXQgY29kZSBvZiB0aGlzIGNvbW1hbmQgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0byBwcm9jZWVkIHdpdGggdGhlXG4gICAqIFBSIGNyZWF0aW9uLiBJZiBjb25maWd1cmVkLCB0aGlzIGNvbW1hbmQgaXMgdGhlIGZpcnN0IG9uZSB0byBydW4sIGFuZCBpZiBpdCBmYWlscywgYWxsXG4gICAqIG90aGVyIGNvbW1hbmRzIHdpbGwgYmUgc2tpcHBlZC5cbiAgICpcbiAgICogVGhpcyBjb21tYW5kIGlzIHRoZSBmaXJzdCB0byBleGVjdXRlLCBhbmQgc2hvdWxkIG5vdCBhc3N1bWUgYW55IHByZS1leGlzdGluZyBzdGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb25kaXRpb25cbiAgICovXG4gIGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYW55IFBSIGxhYmVsZWQgd2l0aCB0aGUgZ2l2ZW4gbGFiZWxzIGlzIHN0aWxsIG9wZW4sIG5vIG5ldyBQUiB3aWxsIGJlIGNyZWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBsb29rIGF0IG9wZW4gUFJzXG4gICAqL1xuICByZWFkb25seSBza2lwSWZPcGVuUHJzV2l0aExhYmVscz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGUgUFIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZSB7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCBuYW1lLlxuICAgKlxuICAgKiBUaGlzIGJyYW5jaCBtdXN0IGV4aXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFzdGVyJ1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyB0aGUgaGVhZCBicmFuY2ggb2YgdGhlIFBSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWQge1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggbmFtZS5cbiAgICpcbiAgICogVGhpcyBicmFuY2ggd2lsbCBiZSBjcmVhdGVkIGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2Ugc2hhIG9mIHRoZSBicmFuY2guXG4gICAqXG4gICAqIElmIHRoZSBnaXZlbiBicmFuY2ggYWxyZWFkeSBleGlzdHMsIHRoaXMgc2hhIHdpbGwgYmUgYXV0by1tZXJnZWQgb250byBpdC4gTm90ZSB0aGF0IGluIHN1Y2ggYSBjYXNlLFxuICAgKiB0aGUgUFIgY3JlYXRpb24gbWlnaHQgZmFpbCBpbiBjYXNlIHRoZXJlIGFyZSBtZXJnZSBjb25mbGljdHMuXG4gICAqXG4gICAqIElmIHRoZSBnaXZlbiBicmFuY2ggZG9lc24ndCBleGlzdCwgdGhlIG5ld2x5IGNyZWF0ZWQgYnJhbmNoIHdpbGwgYmUgYmFzZWQgb2YgdGhpcyBoYXNoLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgZHluYW1pYyBleHBvcnRzIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgYmFzZSBicmFuY2ggb2YgdGhlIHByLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBDb2RlQnVpbGQgam9iIHRoYXQsIHdoZW4gdHJpZ2dlcmVkLCBvcGVucyBhIEdpdEh1YiBQdWxsIFJlcXVlc3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRvUHVsbFJlcXVlc3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIC8qKlxuICAgKiBDbG91ZFdhdGNoIGFsYXJtIHRoYXQgd2lsbCBiZSB0cmlnZ2VyZWQgaWYgdGhlIGpvYiBmYWlscy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGFybTogY2xvdWR3YXRjaC5BbGFybTtcblxuICAvKipcbiAgICogVGhlIENvZGVCdWlsZCBwcm9qZWN0IHRoaXMgY29uc3RydWN0IGNyZWF0ZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogY2J1aWxkLklQcm9qZWN0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEF1dG9QdWxsUmVxdWVzdFByb3BzO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZUJyYW5jaDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGhlYWRTb3VyY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBleHBvcnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXV0b1B1bGxSZXF1ZXN0UHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuYmFzZUJyYW5jaCA9IHByb3BzLmJhc2U/Lm5hbWUgPz8gJ21hc3Rlcic7XG4gICAgdGhpcy5oZWFkU291cmNlID0gcHJvcHMuaGVhZC5zb3VyY2UgPz8gdGhpcy5iYXNlQnJhbmNoO1xuICAgIHRoaXMuZXhwb3J0cyA9IHByb3BzLmV4cG9ydHMgPz8ge307XG5cbiAgICBmb3IgKGNvbnN0IGV4IG9mIE9iamVjdC5rZXlzKHRoaXMuZXhwb3J0cykpIHtcbiAgICAgIGlmICh0aGlzLmhlYWRTb3VyY2UuaW5jbHVkZXMoYFxcJHske2V4fX1gKSB8fCB0aGlzLmhlYWRTb3VyY2UuaW5jbHVkZXMoYFxcJCR7ZXh9YCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBoZWFkIHNvdXJjZSAoJHt0aGlzLmhlYWRTb3VyY2V9KSBjYW5ub3QgY29udGFpbiBkeW5hbWljIGV4cG9ydHM6ICR7ZXh9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3NoS2V5U2VjcmV0ID0gcHJvcHMucmVwby5zc2hLZXlTZWNyZXQ7XG4gICAgY29uc3QgY29tbWl0RW1haWwgPSBwcm9wcy5yZXBvLmNvbW1pdEVtYWlsO1xuICAgIGNvbnN0IGNvbW1pdFVzZXJuYW1lID0gcHJvcHMucmVwby5jb21taXRVc2VybmFtZTtcbiAgICBjb25zdCBjbG9uZURlcHRoID0gcHJvcHMuY2xvbmVEZXB0aCA9PT0gdW5kZWZpbmVkID8gMCA6IHByb3BzLmNsb25lRGVwdGg7XG5cbiAgICBjb25zdCBuZWVkc0dpdEh1YlRva2VuU2VjcmV0ID0gIXRoaXMucHJvcHMucHVzaE9ubHkgfHwgISF0aGlzLnByb3BzLnNraXBJZk9wZW5QcnNXaXRoTGFiZWxzO1xuXG4gICAgbGV0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtcblxuICAgICAgLi4udGhpcy5jb25maWd1cmVTc2hBY2Nlc3MoKSxcblxuICAgICAgLy8gd2hlbiB0aGUgam9iIGlzIHRyaWdnZXJlZCBhcyBhIENvZGVQaXBlbGluZSBhY3Rpb24sIHRoZSB3b3JraW5nIGRpcmVjdG9yeVxuICAgICAgLy8gaXMgcG9wdWxhdGVkIHdpdGggdGhlIG91dHB1dCBhcnRpZmFjdCBvZiB0aGUgQ29kZUNvbW1pdFNvdXJjZUFjdGlvbiwgd2hpY2ggZG9lc24ndCBpbmNsdWRlXG4gICAgICAvLyB0aGUgLmdpdCBkaXJlY3RvcnkgaW4gdGhlIHppcHBlZCBzMyBhcmNoaXZlLiAoWWVhaCwgZnVuIHN0dWZmKS5cbiAgICAgIC8vIHNlZSBodHRwczovL2l0bmV4dC5pby9ob3ctdG8tYWNjZXNzLWdpdC1tZXRhZGF0YS1pbi1jb2RlYnVpbGQtd2hlbi11c2luZy1jb2RlcGlwZWxpbmUtY29kZWNvbW1pdC1jZWFjZjJjNWMxZGNcbiAgICAgIC4uLnRoaXMuY2xvbmVJZk5lZWRlZCgpLFxuICAgIF07XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jb25kaXRpb24pIHtcbiAgICAgIC8vIHRoZXJlJ3Mgbm8gd2F5IHRvIHN0b3AgYSBCdWlsZFNwZWMgZXhlY3V0aW9uIGhhbGZ3YXkgdGhyb3VnaCB3aXRob3V0IHRocm93aW5nIGFuIGVycm9yLiBCZWxpZXZlIG1lLCBJXG4gICAgICAvLyBjaGVja2VkIHRoZSBjb2RlLiBJbnN0ZWFkIHdlIGRlZmluZSBhIHZhcmlhYmxlIHRoYXQgd2Ugd2lsbCBzd2l0Y2ggYWxsIG90aGVyIGxpbmVzIG9uL29mZi5cbiAgICAgIGNvbW1hbmRzLnB1c2goYCR7dGhpcy5wcm9wcy5jb25kaXRpb259IGAgK1xuICAgICAgJyYmIHsgZWNobyBcXCdTa2lwIGNvbmRpdGlvbiBpcyBtZXQsIHNraXBwaW5nLi4uXFwnICYmIGV4cG9ydCBTS0lQPXRydWU7IH0gJyArXG4gICAgICAnfHwgeyBlY2hvIFxcJ1NraXAgY29uZGl0aW9uIGlzIG5vdCBtZXQsIGNvbnRpbnVpbmcuLi5cXCcgJiYgZXhwb3J0IFNLSVA9ZmFsc2U7IH0nKTtcbiAgICB9XG5cbiAgICAvLyByZWFkIHRoZSB0b2tlblxuICAgIGlmIChuZWVkc0dpdEh1YlRva2VuU2VjcmV0KSB7XG4gICAgICBjb21tYW5kcy5wdXNoKGBleHBvcnQgR0lUSFVCX1RPS0VOPSQoYXdzIHNlY3JldHNtYW5hZ2VyIGdldC1zZWNyZXQtdmFsdWUgLS1zZWNyZXQtaWQgXCIke3RoaXMucHJvcHMucmVwby50b2tlblNlY3JldEFybn1cIiAtLW91dHB1dD10ZXh0IC0tcXVlcnk9U2VjcmV0U3RyaW5nKWApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnNraXBJZk9wZW5QcnNXaXRoTGFiZWxzKSB7XG4gICAgICBjb21tYW5kcy5wdXNoKC4uLnRoaXMuc2tpcElmT3BlblBycyh0aGlzLnByb3BzLnNraXBJZk9wZW5QcnNXaXRoTGFiZWxzKSk7XG4gICAgfVxuXG4gICAgY29tbWFuZHMucHVzaChcbiAgICAgIC4uLnRoaXMuY3JlYXRlSGVhZCgpLFxuICAgICAgLi4udGhpcy5wdXNoSGVhZCgpLFxuICAgICk7XG5cbiAgICBpZiAoIXRoaXMucHJvcHMucHVzaE9ubHkpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goLi4udGhpcy5jcmVhdGVQdWxsUmVxdWVzdCgpKTtcbiAgICB9XG5cbiAgICAvLyB0b2dnbGUgYWxsIGNvbW1hbmRzIGFjY29yZGluZyB0byB0aGUgU0tJUCB2YXJpYWJsZS5cbiAgICBjb21tYW5kcyA9IGNvbW1hbmRzLm1hcCgoY29tbWFuZDogc3RyaW5nKSA9PiBgJFNLSVAgfHwgeyAke2NvbW1hbmR9IDsgfWApO1xuXG4gICAgLy8gaW50aWFsbHkgYWxsIGNvbW1hbmRzIGFyZSBlbmFibGVkLlxuICAgIGNvbW1hbmRzLnVuc2hpZnQoJ2V4cG9ydCBTS0lQPWZhbHNlJyk7XG5cbiAgICB0aGlzLnByb2plY3QgPSBuZXcgY2J1aWxkLlByb2plY3QodGhpcywgJ1B1bGxSZXF1ZXN0Jywge1xuICAgICAgc291cmNlOiBwcm9wcy5yZXBvLmNyZWF0ZUJ1aWxkU291cmNlKHRoaXMsIGZhbHNlLCB7IGNsb25lRGVwdGggfSksXG4gICAgICBlbnZpcm9ubWVudDogY3JlYXRlQnVpbGRFbnZpcm9ubWVudChwcm9wcy5idWlsZCA/PyB7fSksXG4gICAgICBidWlsZFNwZWM6IGNidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgIHZlcnNpb246ICcwLjInLFxuICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICBwcmVfYnVpbGQ6IHtcbiAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgIGBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCIke2NvbW1pdEVtYWlsfVwiYCxcbiAgICAgICAgICAgICAgYGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiJHtjb21taXRVc2VybmFtZX1cImAsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVpbGQ6IHsgY29tbWFuZHMgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucHJvamVjdC5yb2xlKSB7XG4gICAgICBwZXJtaXNzaW9ucy5ncmFudFNlY3JldFJlYWQoc3NoS2V5U2VjcmV0LCB0aGlzLnByb2plY3Qucm9sZSk7XG5cbiAgICAgIGlmIChuZWVkc0dpdEh1YlRva2VuU2VjcmV0KSB7XG4gICAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZCh7IHNlY3JldEFybjogcHJvcHMucmVwby50b2tlblNlY3JldEFybiB9LCB0aGlzLnByb2plY3Qucm9sZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNjaGVkdWxlRXhwcmVzc2lvbikge1xuICAgICAgY29uc3Qgc2NoZWR1bGUgPSBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbihwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb24pO1xuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdTY2hlZHVsZXInLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU2NoZWR1bGVzIGFuIGF1dG9tYXRpYyBQdWxsIFJlcXVlc3QgZm9yIHRoaXMgcmVwb3NpdG9yeScsXG4gICAgICAgIHNjaGVkdWxlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IGV2ZW50c190YXJnZXRzLkNvZGVCdWlsZFByb2plY3QodGhpcy5wcm9qZWN0KV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFsYXJtID0gdGhpcy5wcm9qZWN0Lm1ldHJpY0ZhaWxlZEJ1aWxkcyh7IHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcygzMDApIH0pLmNyZWF0ZUFsYXJtKHRoaXMsICdBdXRvUHVsbFJlcXVlc3RGYWlsZWRBbGFybScsIHtcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZUhlYWQoKTogc3RyaW5nW10ge1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGNoZWNrIGlmIGhlYWQgYnJhbmNoIGV4aXN0c1xuICAgICAgYGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgb3JpZ2luLyR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IGAgK1xuXG4gICAgICAvLyBjaGVja291dCBhbmQgbWVyZ2UgaWYgaXQgZG9lcyAodGhpcyBtaWdodCBmYWlsIGR1ZSB0byBtZXJnZSBjb25mbGljdHMpXG4gICAgICBgJiYgeyBnaXQgY2hlY2tvdXQgJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gJiYgZ2l0IG1lcmdlICR7dGhpcy5oZWFkU291cmNlfSAmJiAke3RoaXMucnVuQ29tbWFuZHMoKX07ICB9IGAgK1xuXG4gICAgICAvLyBjcmVhdGUgaWYgaXQgZG9lc250LiB3ZSBpbml0aWFsbHkgdXNlICd0ZW1wJyB0byBhbGxvdyB1c2luZyBleHBvcnRzIGluIHRoZSBoZWFkIGJyYW5jaCBuYW1lLiAoZS5nIGJ1bXAvJFZFUlNJT04pXG4gICAgICBgfHwgeyBnaXQgY2hlY2tvdXQgJHt0aGlzLmhlYWRTb3VyY2V9ICYmIGdpdCBjaGVja291dCAtYiB0ZW1wICYmICR7dGhpcy5ydW5Db21tYW5kcygpfSAmJiBnaXQgYnJhbmNoIC1NICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9OyB9YCxcblxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgY2xvbmVJZk5lZWRlZCgpOiBzdHJpbmdbXSB7XG5cbiAgICByZXR1cm4gW1xuICAgICAgLy8gY2hlY2sgaWYgLmdpdCBleGlzdFxuICAgICAgJ2xzIC5naXQgJyArXG5cbiAgICAgIC8vIGFsbCBnb29kXG4gICAgICAnJiYgeyBlY2hvIFwiLmdpdCBkaXJlY3RvcnkgZXhpc3RzXCI7ICB9ICcgK1xuXG4gICAgICAvLyBjbG9uZSBpZiBpdCBkb2Vzbid0XG4gICAgICBgfHwgeyBlY2hvIFwiLmdpdCBkaXJlY3RvcnkgZG9lc25vdCBleGlzdCAtIGNsb25pbmcuLi5cIiAmJiBnaXQgaW5pdCAuICYmIGdpdCByZW1vdGUgYWRkIG9yaWdpbiBnaXRAZ2l0aHViLmNvbToke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb30uZ2l0ICYmIGdpdCBmZXRjaCAmJiBnaXQgcmVzZXQgLS1oYXJkIG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH0gJiYgZ2l0IGJyYW5jaCAtTSAke3RoaXMuYmFzZUJyYW5jaH0gJiYgZ2l0IGNsZWFuIC1mcWR4OyB9YCxcblxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgcnVuQ29tbWFuZHMoKTogc3RyaW5nIHtcblxuICAgIGNvbnN0IHVzZXJDb21tYW5kcyA9IHRoaXMucHJvcHMuY29tbWFuZHMgPz8gW107XG4gICAgY29uc3QgZXhwb3J0cyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZXhwb3J0cykubWFwKGVudHJ5ID0+IGBleHBvcnQgJHtlbnRyeVswXX09JCgke2VudHJ5WzFdfSlgKTtcblxuICAgIHJldHVybiBbXG5cbiAgICAgIC4uLnVzZXJDb21tYW5kcyxcblxuICAgICAgLy8gZXhwb3J0cyBzaG91bGQgYmUgZXhlY3V0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHVzZXIgY29tbWFuZHMgKG5vdCBiZWZvcmUpXG4gICAgICAvLyBiZWNhdXNlIHRoZXkgbWlnaHQgbmVlZCBhY2Nlc3MgdG8gYXJ0aWZhY3RzIHByb2R1Y2VkIGJ5IHRoZW0gKGUuZyB2ZXJzaW9uIGZpbGUpLlxuICAgICAgLi4uZXhwb3J0cyxcblxuICAgICAgJ2VjaG8gRmluaXNoZWQgcnVubmluZyB1c2VyIGNvbW1hbmRzJyxcbiAgICBdLmpvaW4oJyAmJiAnKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVTc2hBY2Nlc3MoKTogc3RyaW5nW10ge1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICdhd3Mgc2VjcmV0c21hbmFnZXIgZ2V0LXNlY3JldC12YWx1ZSAnXG4gICAgICAgICsgYC0tc2VjcmV0LWlkIFwiJHt0aGlzLnByb3BzLnJlcG8uc3NoS2V5U2VjcmV0LnNlY3JldEFybn1cIiBgXG4gICAgICAgICsgJy0tb3V0cHV0PXRleHQgLS1xdWVyeT1TZWNyZXRTdHJpbmcgPiB+Ly5zc2gvaWRfcnNhJyxcbiAgICAgICdta2RpciAtcCB+Ly5zc2gnLFxuICAgICAgJ2NobW9kIDA2MDAgfi8uc3NoL2lkX3JzYSB+Ly5zc2gvY29uZmlnJyxcbiAgICAgICdzc2gta2V5c2NhbiAtdCByc2EgZ2l0aHViLmNvbSA+PiB+Ly5zc2gva25vd25faG9zdHMnLFxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgcHVzaEhlYWQoKTogc3RyaW5nW10ge1xuICAgIC8vIFdlIHdpbGwgZG8gbm90aGluZyBhbmQgc2V0IGBTS0lQPXRydWVgIGlmIHRoZSBoZWFkIHJlZiBpcyBhbiBhbmNlc3RvciBvZiB0aGUgYmFzZSBicmFuY2ggKG5vIFBSIGNvdWxkIGJlIGNyZWF0ZWQpXG4gICAgcmV0dXJuIFtcbiAgICAgIGBnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH1gXG4gICAgICAgICsgYCAmJiB7IGVjaG8gXCJTa2lwcGluZzogJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gaXMgYW4gYW5jZXN0b3Igb2Ygb3JpZ2luLyR7dGhpcy5iYXNlQnJhbmNofVwiOyBleHBvcnQgU0tJUD10cnVlOyB9YFxuICAgICAgICArIGAgfHwgeyBlY2hvIFwiUHVzaGluZzogJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gaXMgYWhlYWQgb2Ygb3JpZ2luLyR7dGhpcy5iYXNlQnJhbmNofVwiOyBleHBvcnQgU0tJUD1mYWxzZTsgfWAsXG4gICAgICBgZ2l0IHJlbW90ZSBhZGQgb3JpZ2luX3NzaCAke3RoaXMucHJvcHMucmVwby5yZXBvc2l0b3J5VXJsU3NofWAsXG4gICAgICAvLyBOZWVkIGAtLWF0b21pY2AsIG90aGVyd2lzZSBgZ2l0IHB1c2hgIG1pZ2h0IHN1Y2Nlc3NmdWxseSBwdXNoIHRoZSB0YWdzIGJ1dCBub3QgdG8gYG1haW5gLlxuICAgICAgYGdpdCBwdXNoIC0tYXRvbWljIC0tZm9sbG93LXRhZ3Mgb3JpZ2luX3NzaCAke3RoaXMucHJvcHMuaGVhZC5uYW1lfToke3RoaXMucHJvcHMuaGVhZC5uYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgc2tpcElmT3BlblBycyhsYWJlbHM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZpbHRlcnMgPSBbXG4gICAgICBgcmVwbzoke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb31gLFxuICAgICAgJ2lzOnByJyxcbiAgICAgICdpczpvcGVuJyxcbiAgICAgIC4uLmxhYmVscy5tYXAobCA9PiBgbGFiZWw6JHtsfWApLFxuICAgIF07XG5cbiAgICByZXR1cm4gW1xuICAgICAgYCR7dGhpcy5naXRodWJDdXJsR2V0KGAvc2VhcmNoL2lzc3Vlcz9xPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuam9pbignICcpKX1gLCAnLW8gc2VhcmNoLmpzb24nKX1gLFxuICAgICAgJ25vZGUgLWUgXFwncHJvY2Vzcy5leGl0Q29kZSA9IHJlcXVpcmUoXCIuL3NlYXJjaC5qc29uXCIpLnRvdGFsX2NvdW50XFwnJ1xuICAgICAgICArIGAgfHwgeyBlY2hvIFwiRm91bmQgb3BlbiBQUnMgd2l0aCBsYWJlbCAke2xhYmVsc30sIHNraXBwaW5nIFBSLlwiOyBleHBvcnQgU0tJUD10cnVlOyB9YCxcbiAgICBdO1xuICB9XG5cblxuICBwcml2YXRlIGNyZWF0ZVB1bGxSZXF1ZXN0KCk6IHN0cmluZ1tdIHtcblxuICAgIGNvbnN0IGhlYWQgPSB0aGlzLnByb3BzLmhlYWQubmFtZTtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5iYXNlQnJhbmNoO1xuXG4gICAgaWYgKGhlYWQgPT09IGJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSGVhZCBicmFuY2ggKFwiJHtiYXNlfVwiKSBpcyB0aGUgc2FtZSBhcyB0aGUgYmFzZSBicmFuY2ggKFwiJHtoZWFkfVwiKWApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB0aXRsZSA9IHByb3BzLnRpdGxlID8/IGBNZXJnZSAke2hlYWR9IHRvICR7YmFzZX1gO1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLnByb3BzLmJvZHkgPz8gJyc7XG5cbiAgICBjb25zdCBjcmVhdGVSZXF1ZXN0ID0geyB0aXRsZSwgYmFzZSwgaGVhZCB9O1xuXG4gICAgY29uc3QgY29tbWFuZHMgPSBbXTtcblxuICAgIC8vIGNyZWF0ZSB0aGUgUFJcbiAgICBjb21tYW5kcy5wdXNoKGAke3RoaXMuZ2l0aHViQ3VybCgnL3B1bGxzJywgJy1YIFBPU1QgLW8gcHIuanNvbicsIGNyZWF0ZVJlcXVlc3QpfSAmJiBleHBvcnQgUFJfTlVNQkVSPSQobm9kZSAtcCAncmVxdWlyZShcIi4vcHIuanNvblwiKS5udW1iZXInKWApO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBib2R5XG4gICAgY29tbWFuZHMucHVzaCh0aGlzLmdpdGh1YkN1cmwoJy9wdWxscy8kUFJfTlVNQkVSJywgJy1YIFBBVENIJywgeyBib2R5OiBib2R5IH0pKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmxhYmVscyAmJiB0aGlzLnByb3BzLmxhYmVscy5sZW5ndGggPiAwKSB7XG4gICAgLy8gYXBwbHkgbGFiZWxzLlxuICAgICAgY29tbWFuZHMucHVzaCh0aGlzLmdpdGh1YkN1cmwoJy9pc3N1ZXMvJFBSX05VTUJFUi9sYWJlbHMnLCAnLVggUE9TVCcsIHsgbGFiZWxzOiB0aGlzLnByb3BzLmxhYmVscyB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbW1hbmRzO1xuXG4gIH1cblxuICBwcml2YXRlIGdpdGh1YkN1cmwodXJpOiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZywgcmVxdWVzdDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2N1cmwgLS1mYWlsJyxcbiAgICAgIGNvbW1hbmQsXG4gICAgICAnLS1oZWFkZXIgXCJBdXRob3JpemF0aW9uOiB0b2tlbiAkR0lUSFVCX1RPS0VOXCInLFxuICAgICAgJy0taGVhZGVyIFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXCInLFxuICAgICAgYC1kICR7SlNPTi5zdHJpbmdpZnkoSlNPTi5zdHJpbmdpZnkocmVxdWVzdCkpfWAsXG4gICAgICBgaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8ke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb30ke3VyaX1gLFxuICAgIF0uam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnaXRodWJDdXJsR2V0KHVyaTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnY3VybCAtLWZhaWwnLFxuICAgICAgY29tbWFuZCxcbiAgICAgICctLWhlYWRlciBcIkF1dGhvcml6YXRpb246IHRva2VuICRHSVRIVUJfVE9LRU5cIicsXG4gICAgICAnLS1oZWFkZXIgXCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cIicsXG4gICAgICBgJ2h0dHBzOi8vYXBpLmdpdGh1Yi5jb20ke3VyaX0nYCxcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG59XG5cbiJdfQ==
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBTWlCO0FBQ2pCLDRDQUE2RTtBQUM3RSw0REFBOEM7QUEyTDlDOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLG1CQUFTO0lBa0I1QyxZQUFZLE1BQWlCLEVBQUUsRUFBVSxFQUFFLEtBQTJCOztRQUNwRSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxNQUFBLEtBQUssQ0FBQyxJQUFJLDBDQUFFLElBQUksbUNBQUksUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sbUNBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDO1FBRW5DLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNoRixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLENBQUMsVUFBVSxxQ0FBcUMsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUMzRjtTQUNGO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDM0MsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUV6RSxNQUFNLHNCQUFzQixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUM7UUFFNUYsSUFBSSxRQUFRLEdBQWE7WUFFdkIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFFNUIsNEVBQTRFO1lBQzVFLDZGQUE2RjtZQUM3RixrRUFBa0U7WUFDbEUsZ0hBQWdIO1lBQ2hILEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtTQUN4QixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUN4Qix3R0FBd0c7WUFDeEcsNkZBQTZGO1lBQzdGLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRztnQkFDeEMsMEVBQTBFO2dCQUMxRSxnRkFBZ0YsQ0FBQyxDQUFDO1NBQ25GO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksc0JBQXNCLEVBQUU7WUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQywwRUFBMEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyx1Q0FBdUMsQ0FBQyxDQUFDO1NBQ2hLO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFO1lBQ3RDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsUUFBUSxDQUFDLElBQUksQ0FDWCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDcEIsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQ25CLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDeEIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7U0FDNUM7UUFFRCxzREFBc0Q7UUFDdEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLGNBQWMsT0FBTyxNQUFNLENBQUMsQ0FBQztRQUUxRSxxQ0FBcUM7UUFDckMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx1QkFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3JELE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUNqRSxXQUFXLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUNyQyxXQUFXLEVBQUUsSUFBQSxrQ0FBc0IsRUFBQyxNQUFBLEtBQUssQ0FBQyxLQUFLLG1DQUFJLEVBQUUsQ0FBQztZQUN0RCxTQUFTLEVBQUUsdUJBQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO2dCQUNyQyxPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUU7b0JBQ04sU0FBUyxFQUFFO3dCQUNULFFBQVEsRUFBRTs0QkFDUixtQ0FBbUMsV0FBVyxHQUFHOzRCQUNqRCxrQ0FBa0MsY0FBYyxHQUFHO3lCQUNwRDtxQkFDRjtvQkFDRCxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUU7aUJBQ3BCO2FBQ0YsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDckIsV0FBVyxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU3RCxJQUFJLHNCQUFzQixFQUFFO2dCQUMxQixXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxRjtTQUNGO1FBRUQsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsTUFBTSxRQUFRLEdBQUcsb0JBQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RFLElBQUksb0JBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDakMsV0FBVyxFQUFFLHlEQUF5RDtnQkFDdEUsUUFBUTtnQkFDUixPQUFPLEVBQUUsQ0FBQyxJQUFJLDRCQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdELENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLGtCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQzlILFNBQVMsRUFBRSxDQUFDO1lBQ1osaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSx3QkFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU07U0FDckQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNPLFVBQVU7UUFFaEIsT0FBTztZQUNMLDhCQUE4QjtZQUM5QixpQ0FBaUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHO2dCQUV4RCx5RUFBeUU7Z0JBQ3pFLHFCQUFxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGlCQUFpQixJQUFJLENBQUMsVUFBVSxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTztnQkFFekcsbUhBQW1IO2dCQUNuSCxxQkFBcUIsSUFBSSxDQUFDLFVBQVUsK0JBQStCLElBQUksQ0FBQyxXQUFXLEVBQUUscUJBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSztTQUVwSSxDQUFDO0lBRUosQ0FBQztJQUVPLGFBQWE7UUFFbkIsT0FBTztZQUNMLHNCQUFzQjtZQUN0QixVQUFVO2dCQUVWLFdBQVc7Z0JBQ1gsd0NBQXdDO2dCQUV4QyxzQkFBc0I7Z0JBQ3RCLCtHQUErRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxnREFBZ0QsSUFBSSxDQUFDLFVBQVUscUJBQXFCLElBQUksQ0FBQyxVQUFVLHdCQUF3QjtTQUV4UixDQUFDO0lBRUosQ0FBQztJQUVPLFdBQVc7O1FBRWpCLE1BQU0sWUFBWSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLG1DQUFJLEVBQUUsQ0FBQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9GLE9BQU87WUFFTCxHQUFHLFlBQVk7WUFFZiw4RUFBOEU7WUFDOUUsbUZBQW1GO1lBQ25GLEdBQUcsT0FBTztZQUVWLHFDQUFxQztTQUN0QyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVqQixDQUFDO0lBRU8sa0JBQWtCO1FBRXhCLE9BQU87WUFDTCxzQ0FBc0M7a0JBQ2xDLGdCQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxJQUFJO2tCQUMxRCxvREFBb0Q7WUFDeEQsaUJBQWlCO1lBQ2pCLHdDQUF3QztZQUN4QyxxREFBcUQ7U0FDdEQsQ0FBQztJQUVKLENBQUM7SUFFTyxRQUFRO1FBQ2Qsb0hBQW9IO1FBQ3BILE9BQU87WUFDTCxnQ0FBZ0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLElBQUksQ0FBQyxVQUFVLEVBQUU7a0JBQzVFLHlCQUF5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLDZCQUE2QixJQUFJLENBQUMsVUFBVSx3QkFBd0I7a0JBQ2pILHdCQUF3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixJQUFJLENBQUMsVUFBVSx5QkFBeUI7WUFDL0csNkJBQTZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQy9ELDRGQUE0RjtZQUM1Riw4Q0FBOEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtTQUM3RixDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFnQjtRQUNwQyxNQUFNLE9BQU8sR0FBRztZQUNkLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN2RCxPQUFPO1lBQ1AsU0FBUztZQUNULEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7U0FDakMsQ0FBQztRQUVGLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLEVBQUU7WUFDdEcscUVBQXFFO2tCQUNqRSx5Q0FBeUMsTUFBTSxzQ0FBc0M7U0FDMUYsQ0FBQztJQUNKLENBQUM7SUFHTyxpQkFBaUI7O1FBRXZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRTdCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLHVDQUF1QyxJQUFJLElBQUksQ0FBQyxDQUFDO1NBQ3ZGO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixNQUFNLEtBQUssR0FBRyxNQUFBLEtBQUssQ0FBQyxLQUFLLG1DQUFJLFNBQVMsSUFBSSxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hELE1BQU0sSUFBSSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQztRQUVuQyxNQUFNLGFBQWEsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFNUMsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXBCLGdCQUFnQjtRQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLCtEQUErRCxDQUFDLENBQUM7UUFFaEosa0JBQWtCO1FBQ2xCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhGLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2RCxnQkFBZ0I7WUFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLEVBQUUsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZHO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFFbEIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxHQUFXLEVBQUUsT0FBZSxFQUFFLE9BQVk7UUFDM0QsT0FBTztZQUNMLGFBQWE7WUFDYixPQUFPO1lBQ1AsK0NBQStDO1lBQy9DLDJDQUEyQztZQUMzQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1lBQy9DLGdDQUFnQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtTQUN0RixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDaEQsT0FBTztZQUNMLGFBQWE7WUFDYixPQUFPO1lBQ1AsK0NBQStDO1lBQy9DLDJDQUEyQztZQUMzQywwQkFBMEIsR0FBRyxHQUFHO1NBQ2pDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztDQUVGO0FBNVFELDBDQTRRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbnN0cnVjdCwgRHVyYXRpb24sXG4gIGF3c19jbG91ZHdhdGNoIGFzIGNsb3Vkd2F0Y2gsXG4gIGF3c19jb2RlYnVpbGQgYXMgY2J1aWxkLFxuICBhd3NfZXZlbnRzIGFzIGV2ZW50cyxcbiAgYXdzX2V2ZW50c190YXJnZXRzIGFzIGV2ZW50c190YXJnZXRzLFxufSBmcm9tICdtb25vY2RrJztcbmltcG9ydCB7IEJ1aWxkRW52aXJvbm1lbnRQcm9wcywgY3JlYXRlQnVpbGRFbnZpcm9ubWVudCB9IGZyb20gJy4uL2J1aWxkLWVudic7XG5pbXBvcnQgKiBhcyBwZXJtaXNzaW9ucyBmcm9tICcuLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBXcml0YWJsZUdpdEh1YlJlcG8gfSBmcm9tICcuLi9yZXBvJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIFB1bGwgUmVxdWVzdCBKb2IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b1B1bGxSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBicmFuY2ggb2YgdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFzdGVyJ1xuICAgKi9cbiAgYmFzZT86IEJhc2U7XG5cbiAgLyoqXG4gICAqIFRydWUgaWYgeW91IG9ubHkgd2FudCB0byBwdXNoIHRoZSBoZWFkIGJyYW5jaCB3aXRob3V0IGNyZWF0aW5nIGEgUFIuXG4gICAqIFVzZWZ1bCB3aGVuIHVzZWQgYWxvbmcgd2l0aCAnY29tbWl0cycgdG8gZXhlY3V0ZSBhIGNvbW1pdC1hbmQtcHVzaCBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiAvLyBUT0RPOiBDb25zaWRlciBtb3ZpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIGEgc2VwYXJhdGUgY29uc3RydWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVzaE9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBNZXJnZSAke2hlYWR9IHRvICR7YmFzZX1gXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQm9keSB0aGUgUFIuIE5vdGUgdGhhdCB0aGUgYm9keSBpcyB1cGRhdGVkIHBvc3QgUFIgY3JlYXRpb24sXG4gICAqIHRoaXMgbWVhbnMgeW91IGNhbiB1c2UgdGhlICRQUl9OVU1CRVIgZW52IHZhcmlhYmxlIHRvIHJlZmVyIHRvIHRoZSBQUiBpdHNlbGYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYm9keS5cbiAgICovXG4gIGJvZHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhYmVscyBhcHBsaWVkIHRvIHRoZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsYWJlbHMuXG4gICAqL1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoZSBDb2RlQnVpbGQgam9iLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGJ1aWxkPzogQnVpbGRFbnZpcm9ubWVudFByb3BzO1xuXG4gIC8qKlxuICAgKiBHaXQgY2xvbmUgZGVwdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IDAgKGNsb25lcyB0aGUgZW50aXJlIHJlcG9zaXRvcnkgcmV2aXNpb25zKVxuICAgKi9cbiAgY2xvbmVEZXB0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogS2V5IHZhbHVlIHBhaXJzIG9mIHZhcmlhYmxlcyB0byBleHBvcnQuIFRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgZHluYW1pYyBldmFsdWF0aW9uIGluIGFueVxuICAgKiBzdWJzZXF1ZW50IGNvbW1hbmQuXG4gICAqXG4gICAqIEtleSAtIFZhcmlhYmxlIG5hbWUgKGUuZyBWRVJTSU9OKVxuICAgKiBWYWx1ZSAtIENvbW1hbmQgdGhhdCBldmFsdWF0ZXMgdG8gdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSAoZS5nICdnaXQgZGVzY3JpYmUnKVxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiBDb25maWd1cmUgYW4gZXhwb3J0IGluIHRoZSBmb3JtIG9mOlxuICAgKlxuICAgKiB7ICdWRVJTSU9OJzogJ2dpdCBkZXNjcmliZScgfVxuICAgKlxuICAgKiBVc2UgdGhlICRWRVJTSU9OIHZhcmlhYmxlIGluIHRoZSBQUiB0aXRsZTogJ2Nob3JlKHJlbGVhc2UpOiAkVkVSU0lPTidcbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZXNlIGV4cG9ydHMgYXJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBgY29tbWFuZHNgIGV4ZWN1dGlvbixcbiAgICogc28gdGhleSBoYXZlIGFjY2VzcyB0byB0aGUgYXJ0aWZhY3RzIHNhaWQgY29tbWFuZHMgcHJvZHVjZSAoZS5nIHZlcnNpb24gYnVtcCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhwb3J0c1xuICAgKi9cbiAgZXhwb3J0cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBzY2hlZHVsZSB0byBwcm9kdWNlIGFuIGF1dG9tYXRpYyBQUi5cbiAgICpcbiAgICogVGhlIGV4cHJlc3Npb24gY2FuIGJlIG9uZSBvZjpcbiAgICpcbiAgICogIC0gY3JvbiBleHByZXNzaW9uLCBzdWNoIGFzIFwiY3JvbigwIDEyICogKiA/ICopXCIgd2lsbCB0cmlnZ2VyIGV2ZXJ5IGRheSBhdCAxMnBtIFVUQ1xuICAgKiAgLSByYXRlIGV4cHJlc3Npb24sIHN1Y2ggYXMgXCJyYXRlKDEgZGF5KVwiIHdpbGwgdHJpZ2dlciBldmVyeSAyNCBob3VycyBmcm9tIHRoZSB0aW1lIG9mIGRlcGxveW1lbnRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL1NjaGVkdWxlZEV2ZW50cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2NoZWR1bGUsIHNob3VsZCBiZSB0cmlnZ2VyZWQgbWFudWFsbHkuXG4gICAqL1xuICBzY2hlZHVsZUV4cHJlc3Npb24/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvUHVsbFJlcXVlc3RQcm9wcyBleHRlbmRzIEF1dG9QdWxsUmVxdWVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gY3JlYXRlIGEgUFIgaW4uXG4gICAqL1xuICByZXBvOiBXcml0YWJsZUdpdEh1YlJlcG87XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGNvbW1hbmRzIHRvIHJ1biBhZ2FpbnN0IHRoZSBoZWFkIGJyYW5jaC5cbiAgICogVXNlZnVsIGZvciB0aGluZ3MgbGlrZSB2ZXJzaW9uIGJ1bXBzIG9yIGFueSBhdXRvLWdlbmVyYXRlZCBjb21taXRzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgeW91IGNhbm5vdCB1c2UgZXhwb3J0IGtleXMgaW4gdGhlc2UgY29tbWFuZHMgKFNlZSBgZXhwb3J0c2AgcHJvcGVydHkpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWFuZHMuXG4gICAqL1xuICBjb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZCBicmFuY2ggb2YgdGhlIFBSLlxuICAgKi9cbiAgaGVhZDogSGVhZDtcblxuICAvKipcbiAgICogVGhlIGV4aXQgY29kZSBvZiB0aGlzIGNvbW1hbmQgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0byBwcm9jZWVkIHdpdGggdGhlXG4gICAqIFBSIGNyZWF0aW9uLiBJZiBjb25maWd1cmVkLCB0aGlzIGNvbW1hbmQgaXMgdGhlIGZpcnN0IG9uZSB0byBydW4sIGFuZCBpZiBpdCBmYWlscywgYWxsXG4gICAqIG90aGVyIGNvbW1hbmRzIHdpbGwgYmUgc2tpcHBlZC5cbiAgICpcbiAgICogVGhpcyBjb21tYW5kIGlzIHRoZSBmaXJzdCB0byBleGVjdXRlLCBhbmQgc2hvdWxkIG5vdCBhc3N1bWUgYW55IHByZS1leGlzdGluZyBzdGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb25kaXRpb25cbiAgICovXG4gIGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYW55IFBSIGxhYmVsZWQgd2l0aCB0aGUgZ2l2ZW4gbGFiZWxzIGlzIHN0aWxsIG9wZW4sIG5vIG5ldyBQUiB3aWxsIGJlIGNyZWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBsb29rIGF0IG9wZW4gUFJzXG4gICAqL1xuICByZWFkb25seSBza2lwSWZPcGVuUHJzV2l0aExhYmVscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBzdHJpbmcgZm9yIHRoZSBDb2RlQnVpbGQgcHJvamVjdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0RGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgdGhlIGJhc2UgYnJhbmNoIG9mIHRoZSBQUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlIHtcblxuICAvKipcbiAgICogQnJhbmNoIG5hbWUuXG4gICAqXG4gICAqIFRoaXMgYnJhbmNoIG11c3QgZXhpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdtYXN0ZXInXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBoZWFkIGJyYW5jaCBvZiB0aGUgUFIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZCB7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCBuYW1lLlxuICAgKlxuICAgKiBUaGlzIGJyYW5jaCB3aWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBzaGEgb2YgdGhlIGJyYW5jaC5cbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGJyYW5jaCBhbHJlYWR5IGV4aXN0cywgdGhpcyBzaGEgd2lsbCBiZSBhdXRvLW1lcmdlZCBvbnRvIGl0LiBOb3RlIHRoYXQgaW4gc3VjaCBhIGNhc2UsXG4gICAqIHRoZSBQUiBjcmVhdGlvbiBtaWdodCBmYWlsIGluIGNhc2UgdGhlcmUgYXJlIG1lcmdlIGNvbmZsaWN0cy5cbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGJyYW5jaCBkb2Vzbid0IGV4aXN0LCB0aGUgbmV3bHkgY3JlYXRlZCBicmFuY2ggd2lsbCBiZSBiYXNlZCBvZiB0aGlzIGhhc2guXG4gICAqXG4gICAqIE5vdGUgdGhhdCBkeW5hbWljIGV4cG9ydHMgYXJlIG5vdCBhbGxvd2VkIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGUgcHIuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIENvZGVCdWlsZCBqb2IgdGhhdCwgd2hlbiB0cmlnZ2VyZWQsIG9wZW5zIGEgR2l0SHViIFB1bGwgUmVxdWVzdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9QdWxsUmVxdWVzdCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggYWxhcm0gdGhhdCB3aWxsIGJlIHRyaWdnZXJlZCBpZiB0aGUgam9iIGZhaWxzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFsYXJtOiBjbG91ZHdhdGNoLkFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgQ29kZUJ1aWxkIHByb2plY3QgdGhpcyBjb25zdHJ1Y3QgY3JlYXRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuSVByb2plY3Q7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQXV0b1B1bGxSZXF1ZXN0UHJvcHM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQnJhbmNoOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZFNvdXJjZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdXRvUHVsbFJlcXVlc3RQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5iYXNlQnJhbmNoID0gcHJvcHMuYmFzZT8ubmFtZSA/PyAnbWFzdGVyJztcbiAgICB0aGlzLmhlYWRTb3VyY2UgPSBwcm9wcy5oZWFkLnNvdXJjZSA/PyB0aGlzLmJhc2VCcmFuY2g7XG4gICAgdGhpcy5leHBvcnRzID0gcHJvcHMuZXhwb3J0cyA/PyB7fTtcblxuICAgIGZvciAoY29uc3QgZXggb2YgT2JqZWN0LmtleXModGhpcy5leHBvcnRzKSkge1xuICAgICAgaWYgKHRoaXMuaGVhZFNvdXJjZS5pbmNsdWRlcyhgXFwkeyR7ZXh9fWApIHx8IHRoaXMuaGVhZFNvdXJjZS5pbmNsdWRlcyhgXFwkJHtleH1gKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGhlYWQgc291cmNlICgke3RoaXMuaGVhZFNvdXJjZX0pIGNhbm5vdCBjb250YWluIGR5bmFtaWMgZXhwb3J0czogJHtleH1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzc2hLZXlTZWNyZXQgPSBwcm9wcy5yZXBvLnNzaEtleVNlY3JldDtcbiAgICBjb25zdCBjb21taXRFbWFpbCA9IHByb3BzLnJlcG8uY29tbWl0RW1haWw7XG4gICAgY29uc3QgY29tbWl0VXNlcm5hbWUgPSBwcm9wcy5yZXBvLmNvbW1pdFVzZXJuYW1lO1xuICAgIGNvbnN0IGNsb25lRGVwdGggPSBwcm9wcy5jbG9uZURlcHRoID09PSB1bmRlZmluZWQgPyAwIDogcHJvcHMuY2xvbmVEZXB0aDtcblxuICAgIGNvbnN0IG5lZWRzR2l0SHViVG9rZW5TZWNyZXQgPSAhdGhpcy5wcm9wcy5wdXNoT25seSB8fCAhIXRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHM7XG5cbiAgICBsZXQgY29tbWFuZHM6IHN0cmluZ1tdID0gW1xuXG4gICAgICAuLi50aGlzLmNvbmZpZ3VyZVNzaEFjY2VzcygpLFxuXG4gICAgICAvLyB3aGVuIHRoZSBqb2IgaXMgdHJpZ2dlcmVkIGFzIGEgQ29kZVBpcGVsaW5lIGFjdGlvbiwgdGhlIHdvcmtpbmcgZGlyZWN0b3J5XG4gICAgICAvLyBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgb3V0cHV0IGFydGlmYWN0IG9mIHRoZSBDb2RlQ29tbWl0U291cmNlQWN0aW9uLCB3aGljaCBkb2Vzbid0IGluY2x1ZGVcbiAgICAgIC8vIHRoZSAuZ2l0IGRpcmVjdG9yeSBpbiB0aGUgemlwcGVkIHMzIGFyY2hpdmUuIChZZWFoLCBmdW4gc3R1ZmYpLlxuICAgICAgLy8gc2VlIGh0dHBzOi8vaXRuZXh0LmlvL2hvdy10by1hY2Nlc3MtZ2l0LW1ldGFkYXRhLWluLWNvZGVidWlsZC13aGVuLXVzaW5nLWNvZGVwaXBlbGluZS1jb2RlY29tbWl0LWNlYWNmMmM1YzFkY1xuICAgICAgLi4udGhpcy5jbG9uZUlmTmVlZGVkKCksXG4gICAgXTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNvbmRpdGlvbikge1xuICAgICAgLy8gdGhlcmUncyBubyB3YXkgdG8gc3RvcCBhIEJ1aWxkU3BlYyBleGVjdXRpb24gaGFsZndheSB0aHJvdWdoIHdpdGhvdXQgdGhyb3dpbmcgYW4gZXJyb3IuIEJlbGlldmUgbWUsIElcbiAgICAgIC8vIGNoZWNrZWQgdGhlIGNvZGUuIEluc3RlYWQgd2UgZGVmaW5lIGEgdmFyaWFibGUgdGhhdCB3ZSB3aWxsIHN3aXRjaCBhbGwgb3RoZXIgbGluZXMgb24vb2ZmLlxuICAgICAgY29tbWFuZHMucHVzaChgJHt0aGlzLnByb3BzLmNvbmRpdGlvbn0gYCArXG4gICAgICAnJiYgeyBlY2hvIFxcJ1NraXAgY29uZGl0aW9uIGlzIG1ldCwgc2tpcHBpbmcuLi5cXCcgJiYgZXhwb3J0IFNLSVA9dHJ1ZTsgfSAnICtcbiAgICAgICd8fCB7IGVjaG8gXFwnU2tpcCBjb25kaXRpb24gaXMgbm90IG1ldCwgY29udGludWluZy4uLlxcJyAmJiBleHBvcnQgU0tJUD1mYWxzZTsgfScpO1xuICAgIH1cblxuICAgIC8vIHJlYWQgdGhlIHRva2VuXG4gICAgaWYgKG5lZWRzR2l0SHViVG9rZW5TZWNyZXQpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goYGV4cG9ydCBHSVRIVUJfVE9LRU49JChhd3Mgc2VjcmV0c21hbmFnZXIgZ2V0LXNlY3JldC12YWx1ZSAtLXNlY3JldC1pZCBcIiR7dGhpcy5wcm9wcy5yZXBvLnRva2VuU2VjcmV0QXJufVwiIC0tb3V0cHV0PXRleHQgLS1xdWVyeT1TZWNyZXRTdHJpbmcpYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHMpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goLi4udGhpcy5za2lwSWZPcGVuUHJzKHRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHMpKTtcbiAgICB9XG5cbiAgICBjb21tYW5kcy5wdXNoKFxuICAgICAgLi4udGhpcy5jcmVhdGVIZWFkKCksXG4gICAgICAuLi50aGlzLnB1c2hIZWFkKCksXG4gICAgKTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5wdXNoT25seSkge1xuICAgICAgY29tbWFuZHMucHVzaCguLi50aGlzLmNyZWF0ZVB1bGxSZXF1ZXN0KCkpO1xuICAgIH1cblxuICAgIC8vIHRvZ2dsZSBhbGwgY29tbWFuZHMgYWNjb3JkaW5nIHRvIHRoZSBTS0lQIHZhcmlhYmxlLlxuICAgIGNvbW1hbmRzID0gY29tbWFuZHMubWFwKChjb21tYW5kOiBzdHJpbmcpID0+IGAkU0tJUCB8fCB7ICR7Y29tbWFuZH0gOyB9YCk7XG5cbiAgICAvLyBpbnRpYWxseSBhbGwgY29tbWFuZHMgYXJlIGVuYWJsZWQuXG4gICAgY29tbWFuZHMudW5zaGlmdCgnZXhwb3J0IFNLSVA9ZmFsc2UnKTtcblxuICAgIHRoaXMucHJvamVjdCA9IG5ldyBjYnVpbGQuUHJvamVjdCh0aGlzLCAnUHVsbFJlcXVlc3QnLCB7XG4gICAgICBzb3VyY2U6IHByb3BzLnJlcG8uY3JlYXRlQnVpbGRTb3VyY2UodGhpcywgZmFsc2UsIHsgY2xvbmVEZXB0aCB9KSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5wcm9qZWN0RGVzY3JpcHRpb24sXG4gICAgICBlbnZpcm9ubWVudDogY3JlYXRlQnVpbGRFbnZpcm9ubWVudChwcm9wcy5idWlsZCA/PyB7fSksXG4gICAgICBidWlsZFNwZWM6IGNidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgIHZlcnNpb246ICcwLjInLFxuICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICBwcmVfYnVpbGQ6IHtcbiAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgIGBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCIke2NvbW1pdEVtYWlsfVwiYCxcbiAgICAgICAgICAgICAgYGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiJHtjb21taXRVc2VybmFtZX1cImAsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVpbGQ6IHsgY29tbWFuZHMgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucHJvamVjdC5yb2xlKSB7XG4gICAgICBwZXJtaXNzaW9ucy5ncmFudFNlY3JldFJlYWQoc3NoS2V5U2VjcmV0LCB0aGlzLnByb2plY3Qucm9sZSk7XG5cbiAgICAgIGlmIChuZWVkc0dpdEh1YlRva2VuU2VjcmV0KSB7XG4gICAgICAgIHBlcm1pc3Npb25zLmdyYW50U2VjcmV0UmVhZCh7IHNlY3JldEFybjogcHJvcHMucmVwby50b2tlblNlY3JldEFybiB9LCB0aGlzLnByb2plY3Qucm9sZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNjaGVkdWxlRXhwcmVzc2lvbikge1xuICAgICAgY29uc3Qgc2NoZWR1bGUgPSBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbihwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb24pO1xuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdTY2hlZHVsZXInLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU2NoZWR1bGVzIGFuIGF1dG9tYXRpYyBQdWxsIFJlcXVlc3QgZm9yIHRoaXMgcmVwb3NpdG9yeScsXG4gICAgICAgIHNjaGVkdWxlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IGV2ZW50c190YXJnZXRzLkNvZGVCdWlsZFByb2plY3QodGhpcy5wcm9qZWN0KV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFsYXJtID0gdGhpcy5wcm9qZWN0Lm1ldHJpY0ZhaWxlZEJ1aWxkcyh7IHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcygzMDApIH0pLmNyZWF0ZUFsYXJtKHRoaXMsICdBdXRvUHVsbFJlcXVlc3RGYWlsZWRBbGFybScsIHtcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNyZWF0ZUhlYWQoKTogc3RyaW5nW10ge1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGNoZWNrIGlmIGhlYWQgYnJhbmNoIGV4aXN0c1xuICAgICAgYGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgb3JpZ2luLyR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IGAgK1xuXG4gICAgICAvLyBjaGVja291dCBhbmQgbWVyZ2UgaWYgaXQgZG9lcyAodGhpcyBtaWdodCBmYWlsIGR1ZSB0byBtZXJnZSBjb25mbGljdHMpXG4gICAgICBgJiYgeyBnaXQgY2hlY2tvdXQgJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gJiYgZ2l0IG1lcmdlICR7dGhpcy5oZWFkU291cmNlfSAmJiAke3RoaXMucnVuQ29tbWFuZHMoKX07ICB9IGAgK1xuXG4gICAgICAvLyBjcmVhdGUgaWYgaXQgZG9lc250LiB3ZSBpbml0aWFsbHkgdXNlICd0ZW1wJyB0byBhbGxvdyB1c2luZyBleHBvcnRzIGluIHRoZSBoZWFkIGJyYW5jaCBuYW1lLiAoZS5nIGJ1bXAvJFZFUlNJT04pXG4gICAgICBgfHwgeyBnaXQgY2hlY2tvdXQgJHt0aGlzLmhlYWRTb3VyY2V9ICYmIGdpdCBjaGVja291dCAtYiB0ZW1wICYmICR7dGhpcy5ydW5Db21tYW5kcygpfSAmJiBnaXQgYnJhbmNoIC1NICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9OyB9YCxcblxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgY2xvbmVJZk5lZWRlZCgpOiBzdHJpbmdbXSB7XG5cbiAgICByZXR1cm4gW1xuICAgICAgLy8gY2hlY2sgaWYgLmdpdCBleGlzdFxuICAgICAgJ2xzIC5naXQgJyArXG5cbiAgICAgIC8vIGFsbCBnb29kXG4gICAgICAnJiYgeyBlY2hvIFwiLmdpdCBkaXJlY3RvcnkgZXhpc3RzXCI7ICB9ICcgK1xuXG4gICAgICAvLyBjbG9uZSBpZiBpdCBkb2Vzbid0XG4gICAgICBgfHwgeyBlY2hvIFwiLmdpdCBkaXJlY3RvcnkgZG9lc25vdCBleGlzdCAtIGNsb25pbmcuLi5cIiAmJiBnaXQgaW5pdCAuICYmIGdpdCByZW1vdGUgYWRkIG9yaWdpbiBnaXRAZ2l0aHViLmNvbToke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb30uZ2l0ICYmIGdpdCBmZXRjaCAmJiBnaXQgcmVzZXQgLS1oYXJkIG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH0gJiYgZ2l0IGJyYW5jaCAtTSAke3RoaXMuYmFzZUJyYW5jaH0gJiYgZ2l0IGNsZWFuIC1mcWR4OyB9YCxcblxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgcnVuQ29tbWFuZHMoKTogc3RyaW5nIHtcblxuICAgIGNvbnN0IHVzZXJDb21tYW5kcyA9IHRoaXMucHJvcHMuY29tbWFuZHMgPz8gW107XG4gICAgY29uc3QgZXhwb3J0cyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZXhwb3J0cykubWFwKGVudHJ5ID0+IGBleHBvcnQgJHtlbnRyeVswXX09JCgke2VudHJ5WzFdfSlgKTtcblxuICAgIHJldHVybiBbXG5cbiAgICAgIC4uLnVzZXJDb21tYW5kcyxcblxuICAgICAgLy8gZXhwb3J0cyBzaG91bGQgYmUgZXhlY3V0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHVzZXIgY29tbWFuZHMgKG5vdCBiZWZvcmUpXG4gICAgICAvLyBiZWNhdXNlIHRoZXkgbWlnaHQgbmVlZCBhY2Nlc3MgdG8gYXJ0aWZhY3RzIHByb2R1Y2VkIGJ5IHRoZW0gKGUuZyB2ZXJzaW9uIGZpbGUpLlxuICAgICAgLi4uZXhwb3J0cyxcblxuICAgICAgJ2VjaG8gRmluaXNoZWQgcnVubmluZyB1c2VyIGNvbW1hbmRzJyxcbiAgICBdLmpvaW4oJyAmJiAnKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVTc2hBY2Nlc3MoKTogc3RyaW5nW10ge1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICdhd3Mgc2VjcmV0c21hbmFnZXIgZ2V0LXNlY3JldC12YWx1ZSAnXG4gICAgICAgICsgYC0tc2VjcmV0LWlkIFwiJHt0aGlzLnByb3BzLnJlcG8uc3NoS2V5U2VjcmV0LnNlY3JldEFybn1cIiBgXG4gICAgICAgICsgJy0tb3V0cHV0PXRleHQgLS1xdWVyeT1TZWNyZXRTdHJpbmcgPiB+Ly5zc2gvaWRfcnNhJyxcbiAgICAgICdta2RpciAtcCB+Ly5zc2gnLFxuICAgICAgJ2NobW9kIDA2MDAgfi8uc3NoL2lkX3JzYSB+Ly5zc2gvY29uZmlnJyxcbiAgICAgICdzc2gta2V5c2NhbiAtdCByc2EgZ2l0aHViLmNvbSA+PiB+Ly5zc2gva25vd25faG9zdHMnLFxuICAgIF07XG5cbiAgfVxuXG4gIHByaXZhdGUgcHVzaEhlYWQoKTogc3RyaW5nW10ge1xuICAgIC8vIFdlIHdpbGwgZG8gbm90aGluZyBhbmQgc2V0IGBTS0lQPXRydWVgIGlmIHRoZSBoZWFkIHJlZiBpcyBhbiBhbmNlc3RvciBvZiB0aGUgYmFzZSBicmFuY2ggKG5vIFBSIGNvdWxkIGJlIGNyZWF0ZWQpXG4gICAgcmV0dXJuIFtcbiAgICAgIGBnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH1gXG4gICAgICAgICsgYCAmJiB7IGVjaG8gXCJTa2lwcGluZzogJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gaXMgYW4gYW5jZXN0b3Igb2Ygb3JpZ2luLyR7dGhpcy5iYXNlQnJhbmNofVwiOyBleHBvcnQgU0tJUD10cnVlOyB9YFxuICAgICAgICArIGAgfHwgeyBlY2hvIFwiUHVzaGluZzogJHt0aGlzLnByb3BzLmhlYWQubmFtZX0gaXMgYWhlYWQgb2Ygb3JpZ2luLyR7dGhpcy5iYXNlQnJhbmNofVwiOyBleHBvcnQgU0tJUD1mYWxzZTsgfWAsXG4gICAgICBgZ2l0IHJlbW90ZSBhZGQgb3JpZ2luX3NzaCAke3RoaXMucHJvcHMucmVwby5yZXBvc2l0b3J5VXJsU3NofWAsXG4gICAgICAvLyBOZWVkIGAtLWF0b21pY2AsIG90aGVyd2lzZSBgZ2l0IHB1c2hgIG1pZ2h0IHN1Y2Nlc3NmdWxseSBwdXNoIHRoZSB0YWdzIGJ1dCBub3QgdG8gYG1haW5gLlxuICAgICAgYGdpdCBwdXNoIC0tYXRvbWljIC0tZm9sbG93LXRhZ3Mgb3JpZ2luX3NzaCAke3RoaXMucHJvcHMuaGVhZC5uYW1lfToke3RoaXMucHJvcHMuaGVhZC5uYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgc2tpcElmT3BlblBycyhsYWJlbHM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZpbHRlcnMgPSBbXG4gICAgICBgcmVwbzoke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb31gLFxuICAgICAgJ2lzOnByJyxcbiAgICAgICdpczpvcGVuJyxcbiAgICAgIC4uLmxhYmVscy5tYXAobCA9PiBgbGFiZWw6JHtsfWApLFxuICAgIF07XG5cbiAgICByZXR1cm4gW1xuICAgICAgYCR7dGhpcy5naXRodWJDdXJsR2V0KGAvc2VhcmNoL2lzc3Vlcz9xPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuam9pbignICcpKX1gLCAnLW8gc2VhcmNoLmpzb24nKX1gLFxuICAgICAgJ25vZGUgLWUgXFwncHJvY2Vzcy5leGl0Q29kZSA9IHJlcXVpcmUoXCIuL3NlYXJjaC5qc29uXCIpLnRvdGFsX2NvdW50XFwnJ1xuICAgICAgICArIGAgfHwgeyBlY2hvIFwiRm91bmQgb3BlbiBQUnMgd2l0aCBsYWJlbCAke2xhYmVsc30sIHNraXBwaW5nIFBSLlwiOyBleHBvcnQgU0tJUD10cnVlOyB9YCxcbiAgICBdO1xuICB9XG5cblxuICBwcml2YXRlIGNyZWF0ZVB1bGxSZXF1ZXN0KCk6IHN0cmluZ1tdIHtcblxuICAgIGNvbnN0IGhlYWQgPSB0aGlzLnByb3BzLmhlYWQubmFtZTtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5iYXNlQnJhbmNoO1xuXG4gICAgaWYgKGhlYWQgPT09IGJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSGVhZCBicmFuY2ggKFwiJHtiYXNlfVwiKSBpcyB0aGUgc2FtZSBhcyB0aGUgYmFzZSBicmFuY2ggKFwiJHtoZWFkfVwiKWApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB0aXRsZSA9IHByb3BzLnRpdGxlID8/IGBNZXJnZSAke2hlYWR9IHRvICR7YmFzZX1gO1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLnByb3BzLmJvZHkgPz8gJyc7XG5cbiAgICBjb25zdCBjcmVhdGVSZXF1ZXN0ID0geyB0aXRsZSwgYmFzZSwgaGVhZCB9O1xuXG4gICAgY29uc3QgY29tbWFuZHMgPSBbXTtcblxuICAgIC8vIGNyZWF0ZSB0aGUgUFJcbiAgICBjb21tYW5kcy5wdXNoKGAke3RoaXMuZ2l0aHViQ3VybCgnL3B1bGxzJywgJy1YIFBPU1QgLW8gcHIuanNvbicsIGNyZWF0ZVJlcXVlc3QpfSAmJiBleHBvcnQgUFJfTlVNQkVSPSQobm9kZSAtcCAncmVxdWlyZShcIi4vcHIuanNvblwiKS5udW1iZXInKWApO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBib2R5XG4gICAgY29tbWFuZHMucHVzaCh0aGlzLmdpdGh1YkN1cmwoJy9wdWxscy8kUFJfTlVNQkVSJywgJy1YIFBBVENIJywgeyBib2R5OiBib2R5IH0pKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmxhYmVscyAmJiB0aGlzLnByb3BzLmxhYmVscy5sZW5ndGggPiAwKSB7XG4gICAgLy8gYXBwbHkgbGFiZWxzLlxuICAgICAgY29tbWFuZHMucHVzaCh0aGlzLmdpdGh1YkN1cmwoJy9pc3N1ZXMvJFBSX05VTUJFUi9sYWJlbHMnLCAnLVggUE9TVCcsIHsgbGFiZWxzOiB0aGlzLnByb3BzLmxhYmVscyB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbW1hbmRzO1xuXG4gIH1cblxuICBwcml2YXRlIGdpdGh1YkN1cmwodXJpOiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZywgcmVxdWVzdDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2N1cmwgLS1mYWlsJyxcbiAgICAgIGNvbW1hbmQsXG4gICAgICAnLS1oZWFkZXIgXCJBdXRob3JpemF0aW9uOiB0b2tlbiAkR0lUSFVCX1RPS0VOXCInLFxuICAgICAgJy0taGVhZGVyIFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXCInLFxuICAgICAgYC1kICR7SlNPTi5zdHJpbmdpZnkoSlNPTi5zdHJpbmdpZnkocmVxdWVzdCkpfWAsXG4gICAgICBgaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8ke3RoaXMucHJvcHMucmVwby5vd25lcn0vJHt0aGlzLnByb3BzLnJlcG8ucmVwb30ke3VyaX1gLFxuICAgIF0uam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnaXRodWJDdXJsR2V0KHVyaTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICAnY3VybCAtLWZhaWwnLFxuICAgICAgY29tbWFuZCxcbiAgICAgICctLWhlYWRlciBcIkF1dGhvcml6YXRpb246IHRva2VuICRHSVRIVUJfVE9LRU5cIicsXG4gICAgICAnLS1oZWFkZXIgXCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cIicsXG4gICAgICBgJ2h0dHBzOi8vYXBpLmdpdGh1Yi5jb20ke3VyaX0nYCxcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG59XG5cbiJdfQ==
@@ -142,6 +142,13 @@ export interface AutoPullRequestProps extends AutoPullRequestOptions {
142
142
  * @default - don't look at open PRs
143
143
  */
144
144
  readonly skipIfOpenPrsWithLabels?: string[];
145
+
146
+ /**
147
+ * Description string for the CodeBuild project
148
+ *
149
+ * @default - No description
150
+ */
151
+ readonly projectDescription?: string;
145
152
  }
146
153
 
147
154
  /**
@@ -274,6 +281,7 @@ export class AutoPullRequest extends Construct {
274
281
 
275
282
  this.project = new cbuild.Project(this, 'PullRequest', {
276
283
  source: props.repo.createBuildSource(this, false, { cloneDepth }),
284
+ description: props.projectDescription,
277
285
  environment: createBuildEnvironment(props.build ?? {}),
278
286
  buildSpec: cbuild.BuildSpec.fromObject({
279
287
  version: '0.2',
package/package.json CHANGED
@@ -77,7 +77,7 @@
77
77
  ],
78
78
  "main": "lib/index.js",
79
79
  "license": "Apache-2.0",
80
- "version": "13.4.11",
80
+ "version": "13.5.0",
81
81
  "jest": {
82
82
  "testMatch": [
83
83
  "**/lib/__tests__/**/?(*.)+(spec|test).js?(x)"