@macedon-technologies/batman 1.28.0 → 1.29.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.
package/.jsii CHANGED
@@ -158,7 +158,7 @@
158
158
  },
159
159
  "locationInModule": {
160
160
  "filename": "src/BatmanProject.ts",
161
- "line": 71
161
+ "line": 82
162
162
  },
163
163
  "parameters": [
164
164
  {
@@ -172,7 +172,7 @@
172
172
  "kind": "class",
173
173
  "locationInModule": {
174
174
  "filename": "src/BatmanProject.ts",
175
- "line": 70
175
+ "line": 81
176
176
  },
177
177
  "name": "BatmanProject",
178
178
  "symbolId": "src/BatmanProject:BatmanProject"
@@ -303,6 +303,30 @@
303
303
  }
304
304
  }
305
305
  },
306
+ {
307
+ "abstract": true,
308
+ "docs": {
309
+ "default": "- only the default files",
310
+ "remarks": "Each entry is an exact file path\nrelative to the project root, in normalized POSIX form, using only\nletters, digits and `._@+-`, with no `.` or `..` segment; synth fails\non any other entry.",
311
+ "stability": "stable",
312
+ "summary": "Extra files that the PR attestation manifest also hashes, such as the project's own verification checks."
313
+ },
314
+ "immutable": true,
315
+ "locationInModule": {
316
+ "filename": "src/BatmanProject.ts",
317
+ "line": 77
318
+ },
319
+ "name": "attestationFiles",
320
+ "optional": true,
321
+ "type": {
322
+ "collection": {
323
+ "elementtype": {
324
+ "primitive": "string"
325
+ },
326
+ "kind": "array"
327
+ }
328
+ }
329
+ },
306
330
  {
307
331
  "abstract": true,
308
332
  "docs": {
@@ -812,7 +836,7 @@
812
836
  },
813
837
  "locationInModule": {
814
838
  "filename": "src/SoftwareFactoryFiles.ts",
815
- "line": 65
839
+ "line": 76
816
840
  },
817
841
  "parameters": [
818
842
  {
@@ -832,7 +856,7 @@
832
856
  "kind": "class",
833
857
  "locationInModule": {
834
858
  "filename": "src/SoftwareFactoryFiles.ts",
835
- "line": 64
859
+ "line": 75
836
860
  },
837
861
  "name": "SoftwareFactoryFiles",
838
862
  "symbolId": "src/SoftwareFactoryFiles:SoftwareFactoryFiles"
@@ -884,6 +908,30 @@
884
908
  "fqn": "@macedon-technologies/batman.WorkflowActionVersions"
885
909
  }
886
910
  },
911
+ {
912
+ "abstract": true,
913
+ "docs": {
914
+ "default": "- only the default files",
915
+ "remarks": "Each entry is an exact file path\nrelative to the project root, in normalized POSIX form, using only\nletters, digits and `._@+-`, with no `.` or `..` segment; synth fails\non any other entry.",
916
+ "stability": "stable",
917
+ "summary": "Extra files that the PR attestation manifest also hashes, such as the project's own verification checks."
918
+ },
919
+ "immutable": true,
920
+ "locationInModule": {
921
+ "filename": "src/SoftwareFactoryFiles.ts",
922
+ "line": 48
923
+ },
924
+ "name": "attestationFiles",
925
+ "optional": true,
926
+ "type": {
927
+ "collection": {
928
+ "elementtype": {
929
+ "primitive": "string"
930
+ },
931
+ "kind": "array"
932
+ }
933
+ }
934
+ },
887
935
  {
888
936
  "abstract": true,
889
937
  "docs": {
@@ -1283,6 +1331,6 @@
1283
1331
  "symbolId": "src/WorkflowAutoDiscover:WorkflowAutoDiscover"
1284
1332
  }
1285
1333
  },
1286
- "version": "1.28.0",
1287
- "fingerprint": "sIMdBmmJuZSfzcTh916j9IilxaSosKqanFdLlX/ej/A="
1334
+ "version": "1.29.0",
1335
+ "fingerprint": "dt1wlH22V+EIj+x/9WefgyfYIFcWaGRY6I39LcVxZNI="
1288
1336
  }
package/API.md CHANGED
@@ -4931,6 +4931,7 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4931
4931
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.actionVersions">actionVersions</a></code> | <code><a href="#@macedon-technologies/batman.WorkflowActionVersions">WorkflowActionVersions</a></code> | Overrides for the pinned action versions used by the generated GitHub Actions workflows. |
4932
4932
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.additionalCodeOwners">additionalCodeOwners</a></code> | <code>string[]</code> | Additional code owners to add to the CODEOWNERS file. |
4933
4933
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.additionalTags">additionalTags</a></code> | <code>{[ key: string ]: string}</code> | Additional tags to apply to all stacks. |
4934
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.attestationFiles">attestationFiles</a></code> | <code>string[]</code> | Extra files that the PR attestation manifest also hashes, such as the project's own verification checks. |
4934
4935
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.authorizerObjectVersion">authorizerObjectVersion</a></code> | <code>string</code> | Overrides the pinned S3 object version of the clerk-authorizer Lambda deployment package. |
4935
4936
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.e2eTesting">e2eTesting</a></code> | <code>boolean</code> | Whether the generated `web` app and its `PrDeployWorkflow` CI step include Playwright e2e testing support. |
4936
4937
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.n8nWorkflows">n8nWorkflows</a></code> | <code>boolean</code> | Enable n8n workflow auto-discovery and WorkflowProvider generation. |
@@ -7511,6 +7512,24 @@ Additional tags to apply to all stacks.
7511
7512
 
7512
7513
  ---
7513
7514
 
7515
+ ##### `attestationFiles`<sup>Optional</sup> <a name="attestationFiles" id="@macedon-technologies/batman.BatmanProjectOptions.property.attestationFiles"></a>
7516
+
7517
+ ```typescript
7518
+ public readonly attestationFiles: string[];
7519
+ ```
7520
+
7521
+ - *Type:* string[]
7522
+ - *Default:* only the default files
7523
+
7524
+ Extra files that the PR attestation manifest also hashes, such as the project's own verification checks.
7525
+
7526
+ Each entry is an exact file path
7527
+ relative to the project root, in normalized POSIX form, using only
7528
+ letters, digits and `._@+-`, with no `.` or `..` segment; synth fails
7529
+ on any other entry.
7530
+
7531
+ ---
7532
+
7514
7533
  ##### `authorizerObjectVersion`<sup>Optional</sup> <a name="authorizerObjectVersion" id="@macedon-technologies/batman.BatmanProjectOptions.property.authorizerObjectVersion"></a>
7515
7534
 
7516
7535
  ```typescript
@@ -7752,6 +7771,7 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7752
7771
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.actionVersions">actionVersions</a></code> | <code><a href="#@macedon-technologies/batman.WorkflowActionVersions">WorkflowActionVersions</a></code> | Overrides for the pinned action versions used by the generated GitHub Actions workflows. |
7753
7772
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.additionalCodeOwners">additionalCodeOwners</a></code> | <code>string[]</code> | Additional code owners to add to the CODEOWNERS file. |
7754
7773
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.additionalTags">additionalTags</a></code> | <code>{[ key: string ]: string}</code> | Additional tags to apply to all stacks. |
7774
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.attestationFiles">attestationFiles</a></code> | <code>string[]</code> | Extra files that the PR attestation manifest also hashes, such as the project's own verification checks. |
7755
7775
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.authorizerObjectVersion">authorizerObjectVersion</a></code> | <code>string</code> | Overrides the pinned S3 object version of the clerk-authorizer Lambda deployment package. |
7756
7776
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.e2eTesting">e2eTesting</a></code> | <code>boolean</code> | Whether the generated `web` app and its `PrDeployWorkflow` CI step include Playwright e2e testing support. |
7757
7777
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.n8nWorkflows">n8nWorkflows</a></code> | <code>boolean</code> | Enable n8n workflow auto-discovery and WorkflowProvider generation. |
@@ -10332,6 +10352,24 @@ Additional tags to apply to all stacks.
10332
10352
 
10333
10353
  ---
10334
10354
 
10355
+ ##### `attestationFiles`<sup>Optional</sup> <a name="attestationFiles" id="@macedon-technologies/batman.BootcampProjectOptions.property.attestationFiles"></a>
10356
+
10357
+ ```typescript
10358
+ public readonly attestationFiles: string[];
10359
+ ```
10360
+
10361
+ - *Type:* string[]
10362
+ - *Default:* only the default files
10363
+
10364
+ Extra files that the PR attestation manifest also hashes, such as the project's own verification checks.
10365
+
10366
+ Each entry is an exact file path
10367
+ relative to the project root, in normalized POSIX form, using only
10368
+ letters, digits and `._@+-`, with no `.` or `..` segment; synth fails
10369
+ on any other entry.
10370
+
10371
+ ---
10372
+
10335
10373
  ##### `authorizerObjectVersion`<sup>Optional</sup> <a name="authorizerObjectVersion" id="@macedon-technologies/batman.BootcampProjectOptions.property.authorizerObjectVersion"></a>
10336
10374
 
10337
10375
  ```typescript
@@ -10616,6 +10654,7 @@ const softwareFactoryFilesOptions: SoftwareFactoryFilesOptions = { ... }
10616
10654
  | --- | --- | --- |
10617
10655
  | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.repoName">repoName</a></code> | <code>string</code> | The bare repo name (e.g. `expense-tracker`), used to derive the factory's model names (`<repoName>-factory`, `<repoName>-issues`, `<repoName>-pr`, `<repoName>-shell*`) and vault name (`<repoName>-secrets`). |
10618
10656
  | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.actionVersions">actionVersions</a></code> | <code><a href="#@macedon-technologies/batman.WorkflowActionVersions">WorkflowActionVersions</a></code> | Overrides for the pinned action versions used by `verify-attestation.yml`. |
10657
+ | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.attestationFiles">attestationFiles</a></code> | <code>string[]</code> | Extra files that the PR attestation manifest also hashes, such as the project's own verification checks. |
10619
10658
  | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.baseBranch">baseBranch</a></code> | <code>string</code> | The branch the factory opens pull requests against. |
10620
10659
  | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.githubOwner">githubOwner</a></code> | <code>string</code> | The GitHub org/user the repo lives in. |
10621
10660
 
@@ -10645,6 +10684,24 @@ Overrides for the pinned action versions used by `verify-attestation.yml`.
10645
10684
 
10646
10685
  ---
10647
10686
 
10687
+ ##### `attestationFiles`<sup>Optional</sup> <a name="attestationFiles" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.attestationFiles"></a>
10688
+
10689
+ ```typescript
10690
+ public readonly attestationFiles: string[];
10691
+ ```
10692
+
10693
+ - *Type:* string[]
10694
+ - *Default:* only the default files
10695
+
10696
+ Extra files that the PR attestation manifest also hashes, such as the project's own verification checks.
10697
+
10698
+ Each entry is an exact file path
10699
+ relative to the project root, in normalized POSIX form, using only
10700
+ letters, digits and `._@+-`, with no `.` or `..` segment; synth fails
10701
+ on any other entry.
10702
+
10703
+ ---
10704
+
10648
10705
  ##### `baseBranch`<sup>Optional</sup> <a name="baseBranch" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.baseBranch"></a>
10649
10706
 
10650
10707
  ```typescript
@@ -48,6 +48,16 @@ export interface BatmanProjectOptions extends AwsCdkTypeScriptAppOptions {
48
48
  * @default true
49
49
  */
50
50
  readonly e2eTesting?: boolean;
51
+ /**
52
+ * Extra files that the PR attestation manifest also hashes, such as the
53
+ * project's own verification checks. Each entry is an exact file path
54
+ * relative to the project root, in normalized POSIX form, using only
55
+ * letters, digits and `._@+-`, with no `.` or `..` segment; synth fails
56
+ * on any other entry.
57
+ *
58
+ * @default - only the default files
59
+ */
60
+ readonly attestationFiles?: string[];
51
61
  }
52
62
  export declare class BatmanProject extends AwsCdkTypeScriptApp {
53
63
  constructor(options: BatmanProjectOptions);
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
12
12
  const utils_1 = require("./utils");
13
13
  const ViteReactProject_1 = require("./ViteReactProject");
14
14
  class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.28.0" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.29.0" };
16
16
  constructor(options) {
17
17
  super({
18
18
  ...options,
@@ -101,6 +101,7 @@ class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
101
101
  repoName: options.name,
102
102
  baseBranch: options.defaultReleaseBranch,
103
103
  actionVersions: options.actionVersions,
104
+ attestationFiles: options.attestationFiles,
104
105
  });
105
106
  const viteReact = new ViteReactProject_1.ViteReactProject({
106
107
  name: options.name,
@@ -140,4 +141,4 @@ class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
140
141
  }
141
142
  }
142
143
  exports.BatmanProject = BatmanProject;
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmF0bWFuUHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXRtYW5Qcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4Q0FBb0Y7QUFDcEYsOENBQXNEO0FBQ3RELCtDQUEwRTtBQUMxRSxxREFBa0Q7QUFDbEQsMkRBQXdEO0FBQ3hELHVEQUFvRDtBQUNwRCxpRUFBOEQ7QUFDOUQsbUNBQXlDO0FBQ3pDLHlEQUFzRDtBQTZEdEQsTUFBYSxhQUFjLFNBQVEsNEJBQW1COztJQUNwRCxZQUFZLE9BQTZCO1FBQ3ZDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVM7WUFDM0Msb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixJQUFJLE1BQU07WUFDNUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLElBQUksRUFBRTtnQkFDSixtQkFBbUI7Z0JBQ25CLGdCQUFnQjtnQkFDaEIsV0FBVztnQkFDWCxJQUFJO2dCQUNKLHFCQUFxQjtnQkFDckIsMkJBQTJCO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLG1DQUFtQztnQkFDbkMsY0FBYztnQkFDZCxpQ0FBaUM7Z0JBQ2pDLFNBQVM7Z0JBQ1QsaUJBQWlCO2dCQUNqQixHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTthQUN0QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxxQ0FBcUM7Z0JBQ3JDLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO2FBQ3pCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1EQUFtRDtnQkFDbkQsY0FBYztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRTthQUMzQjtZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFH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LFlBQVksQ0FDaEIsa0dBQWtHLEVBQ2xHLFNBQVMsQ0FBQyxVQUFVLENBQ3JCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxFQUFFLDJFQUEyRTtZQUNqRixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQzlCLFdBQVcsRUFBRSw0RUFBNEU7WUFDekYsSUFBSSxFQUFFLHFHQUFxRztZQUMzRyxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCwyRUFBMkU7UUFDM0UsdUVBQXVFO1FBQ3ZFLGlFQUFpRTtRQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsS0FBSyxDQUFDLFdBQVcsR0FBRyxxRkFBcUYsQ0FBQztZQUMxRyxLQUFLLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDNUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBRUgsQ0FBQzs7QUE5SUgsc0NBK0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCwgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5pbXBvcnQgeyBHaXRodWJDcmVkZW50aWFscyB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uLCBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnIH0gZnJvbSAnLi9BcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBDb2RlT3duZXJzRmlsZSB9IGZyb20gJy4vQ29kZU93bmVyc0ZpbGUnO1xuaW1wb3J0IHsgRGF0YURvZ0FzcGVjdEZpbGUgfSBmcm9tICcuL0RhdGFEb2dBc3BlY3RGaWxlJztcbmltcG9ydCB7IEdpdEh1YlJvbGVzRmlsZSB9IGZyb20gJy4vR2l0SHViUm9sZXNGaWxlJztcbmltcG9ydCB7IFNvZnR3YXJlRmFjdG9yeUZpbGVzIH0gZnJvbSAnLi9Tb2Z0d2FyZUZhY3RvcnlGaWxlcyc7XG5pbXBvcnQgeyByZWFkbWVDb250ZW50cyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVml0ZVJlYWN0UHJvamVjdCB9IGZyb20gJy4vVml0ZVJlYWN0UHJvamVjdCc7XG5pbXBvcnQgeyBXb3JrZmxvd0FjdGlvblZlcnNpb25zIH0gZnJvbSAnLi9Xb3JrZmxvd0FjdGlvblZlcnNpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBCYXRtYW5Qcm9qZWN0T3B0aW9ucyBleHRlbmRzIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIHtcblxuICAvKipcbiAgICogRGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGV2OiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFnaW5nOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBQcm9kdWN0aW9uIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgdGFncyB0byBhcHBseSB0byBhbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBuOG4gd29ya2Zsb3cgYXV0by1kaXNjb3ZlcnkgYW5kIFdvcmtmbG93UHJvdmlkZXIgZ2VuZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbjhuV29ya2Zsb3dzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb2RlIG93bmVycyB0byBhZGQgdG8gdGhlIENPREVPV05FUlMgZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbENvZGVPd25lcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2Vic2l0ZSBkZXBlbmRlbmNpZXNcbiAgICovXG4gIHJlYWRvbmx5IHdlYnNpdGVEZXBzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGUgZ2VuZXJhdGVkIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvblZlcnNpb25zPzogV29ya2Zsb3dBY3Rpb25WZXJzaW9ucztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBwaW5uZWQgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBwaW5uZWQgaW4gQXBpQ29uc3RydWN0RmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplck9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdlbmVyYXRlZCBgd2ViYCBhcHAgYW5kIGl0cyBgUHJEZXBsb3lXb3JrZmxvd2AgQ0kgc3RlcCBpbmNsdWRlXG4gICAqIFBsYXl3cmlnaHQgZTJlIHRlc3Rpbmcgc3VwcG9ydC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZTJlVGVzdGluZz86IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IGNsYXNzIEJhdG1hblByb2plY3QgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQmF0bWFuUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY2RrVmVyc2lvbjogb3B0aW9ucy5jZGtWZXJzaW9uIHx8ICcyLjIyNC4wJyxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoIHx8ICdtYWluJyxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBidWlsZFdvcmtmbG93OiBmYWxzZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgJ0B0eXBlcy9hd3MtbGFtYmRhJyxcbiAgICAgICAgJ0B0eXBlcy9leHByZXNzJyxcbiAgICAgICAgJ0B0eXBlcy9wZycsXG4gICAgICAgICdwZycsXG4gICAgICAgICdAYXdzLXNkay9yZHMtc2lnbmVyJyxcbiAgICAgICAgJ2RhdGFkb2ctY2RrLWNvbnN0cnVjdHMtdjInLFxuICAgICAgICAnQGNka2xhYnMvYXdzLWxhbWJkYS1ydXN0JyxcbiAgICAgICAgJ0Bhd3MtbGFtYmRhLXBvd2VydG9vbHMvcGFyYW1ldGVycycsXG4gICAgICAgICdqc29ud2VidG9rZW4nLFxuICAgICAgICAnQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlcicsXG4gICAgICAgICdleHByZXNzJyxcbiAgICAgICAgJ3NlcnZlcmxlc3MtaHR0cCcsXG4gICAgICAgIC4uLm9wdGlvbnMuZGVwcyB8fCBbXSxcbiAgICAgIF0sXG4gICAgICBkZXZEZXBzOiBbXG4gICAgICAgICdAdHlwZXMvanNvbndlYnRva2VuJyxcbiAgICAgICAgJ25vZGVtb24nLFxuICAgICAgICAnY29uY3VycmVudGx5JyxcbiAgICAgICAgJ0BtYWNlZG9uLXRlY2hub2xvZ2llcy9iYXRtYW5AXjEuMC4wJyxcbiAgICAgICAgLi4ub3B0aW9ucy5kZXZEZXBzIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIGdpdGlnbm9yZTogW1xuICAgICAgICAnc3JjL2NvbnN0cnVjdHMvaGFuZGxlci9jbGVyay1hdXRob3JpemVyL3RhcmdldC8qKicsXG4gICAgICAgICcqKi8uRFNfU3RvcmUnLFxuICAgICAgICAuLi5vcHRpb25zLmdpdGlnbm9yZSB8fCBbXSxcbiAgICAgIF0sXG4gICAgICB0c2NvbmZpZzoge1xuICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnLFxuICAgICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMsXG4gICAgICAgICAgaXNvbGF0ZWRNb2R1bGVzOiB0cnVlLFxuICAgICAgICAgIGFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgbWluTm9kZVZlcnNpb246IG9wdGlvbnMubWluTm9kZVZlcnNpb24gfHwgJzIyJyxcbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICB3b3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogR2l0aHViQ3JlZGVudGlhbHMuZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oe1xuICAgICAgICAgICAgc2VjcmV0OiAnR0lUSFVCX1RPS0VOJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICByZWFkbWU6IHtcbiAgICAgICAgY29udGVudHM6IHJlYWRtZUNvbnRlbnRzKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5lMmVUZXN0aW5nID8/IHRydWUsIG9wdGlvbnMucGFja2FnZU1hbmFnZXIpLFxuICAgICAgfSxcbiAgICB9KTtcblxuXG4gICAgLy8gQ3JlYXRlIHN0YW5kYXJkIHByb2plY3QgZmlsZXNcbiAgICBjb25zdCBQUklNQVJZX0FDQ09VTlQgPSAnMDE1OTU1ODE3MjYzJztcbiAgICBjb25zdCBQUklNQVJZX1JFR0lPTiA9ICd1cy1lYXN0LTEnO1xuXG4gICAgbmV3IEFwcGxpY2F0aW9uKHRoaXMsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IGBtYWNlZG9uLXRlY2hub2xvZ2llcy8ke29wdGlvbnMubmFtZX1gLFxuICAgICAgZGV2OiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGV2LFxuICAgICAgfSxcbiAgICAgIHN0YWdpbmc6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5zdGFnaW5nLFxuICAgICAgfSxcbiAgICAgIHByb2Q6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXYsXG4gICAgICB9LFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IG9wdGlvbnMuYWRkaXRpb25hbFRhZ3MsXG4gICAgICBuOG5Xb3JrZmxvd3M6IG9wdGlvbnMubjhuV29ya2Zsb3dzLFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgICBhdXRob3JpemVyT2JqZWN0VmVyc2lvbjogb3B0aW9ucy5hdXRob3JpemVyT2JqZWN0VmVyc2lvbixcbiAgICAgIGUyZVRlc3Rpbmc6IG9wdGlvbnMuZTJlVGVzdGluZyxcbiAgICB9KTtcblxuICAgIG5ldyBHaXRIdWJSb2xlc0ZpbGUodGhpcywge1xuICAgICAgYWNjb3VudDogUFJJTUFSWV9BQ0NPVU5ULFxuICAgICAgcHJpbWFyeVJlZ2lvbjogUFJJTUFSWV9SRUdJT04sXG4gICAgfSk7XG5cbiAgICBuZXcgQ29kZU93bmVyc0ZpbGUodGhpcywge1xuICAgICAgYWRkaXRpb25hbE93bmVyczogb3B0aW9ucy5hZGRpdGlvbmFsQ29kZU93bmVycyxcbiAgICB9KTtcblxuICAgIG5ldyBEYXRhRG9nQXNwZWN0RmlsZSh0aGlzKTtcblxuICAgIG5ldyBTb2Z0d2FyZUZhY3RvcnlGaWxlcyh0aGlzLCB7XG4gICAgICByZXBvTmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgYmFzZUJyYW5jaDogb3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaCxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgdml0ZVJlYWN0ID0gbmV3IFZpdGVSZWFjdFByb2plY3Qoe1xuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICAgIHBhcmVudDogdGhpcyxcbiAgICAgIG91dGRpcjogJ3dlYicsXG4gICAgICBkZXBzOiBvcHRpb25zLndlYnNpdGVEZXBzLFxuICAgICAgZTJlVGVzdGluZzogb3B0aW9ucy5lMmVUZXN0aW5nLFxuICAgIH0pO1xuICAgIHZpdGVSZWFjdC5hZGRDb25maWdGaWVsZCgnc29tZXRoaW5nJywgJ251bWJlcicpO1xuICAgIHZpdGVSZWFjdC5hZGRDb25maWdGaWVsZCgnc29tZXRoaW5nRWxzZScsICdzdHJpbmcnKTtcblxuICAgIGNvbnN0IGNvbmN1cnJlbnRseSA9ICguLi5hcmdzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgcmV0dXJuIGBjb25jdXJyZW50bHkgJHthcmdzLm1hcChhID0+IGBcIiR7YX1cImApLmpvaW4oJyAnKX1gO1xuICAgIH07XG5cbiAgICB0aGlzLmFkZFRhc2soJ2RldicsIHtcbiAgICAgIGV4ZWM6IGNvbmN1cnJlbnRseShcbiAgICAgICAgJ25vZGVtb24gLS13YXRjaCAuL3NyYy9jb25zdHJ1Y3RzL2hhbmRsZXIgLS13YXRjaCAuL3NyYy9hcGkgLS13YXRjaCAuL2xvY2FsL2Rldi50cyAuL2xvY2FsL2Rldi50cycsXG4gICAgICAgIHZpdGVSZWFjdC5kZXZDb21tYW5kLFxuICAgICAgKSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkVGFzaygnY2RrOmRldicsIHtcbiAgICAgIGV4ZWM6ICdjZGsgLWEgXCJucHggdHMtbm9kZSAtUCB0c2NvbmZpZy5qc29uIC0tcHJlZmVyLXRzLWV4dHMgc3JjL0xvY2FsRGV2QXBwLnRzXCInLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2NkazpkZXY6aG90c3dhcCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95cyB5b3VyIHBlcnNvbmFsIGRldiBzdGFjayAoc3JjL0xvY2FsRGV2QXBwLnRzKSB3aXRoIGhvdHN3YXAtZmFsbGJhY2snLFxuICAgICAgZXhlYzogJ2NkayAtYSBcIm5weCB0cy1ub2RlIC1QIHRzY29uZmlnLmpzb24gLS1wcmVmZXItdHMtZXh0cyBzcmMvTG9jYWxEZXZBcHAudHNcIiBkZXBsb3kgLS1ob3Rzd2FwLWZhbGxiYWNrJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gcHJvamVuJ3MgQXdzQ2RrVHlwZVNjcmlwdEFwcCBkZWZhdWx0IGB3YXRjaGAgdGFzayB1c2VzIGJhcmUgYC0taG90c3dhcGAsXG4gICAgLy8gd2hpY2ggc2lsZW50bHkgaWdub3JlcyBub24taG90c3dhcHBhYmxlIGNoYW5nZXMgKGUuZy4gdGhlIE1pZ3JhdGlvbnNcbiAgICAvLyBjdXN0b20gcmVzb3VyY2UpIGluc3RlYWQgb2YgZmFsbGluZyBiYWNrIHRvIGEgZnVsbCBkZXBsb3ltZW50LlxuICAgIGNvbnN0IHdhdGNoID0gdGhpcy50YXNrcy50cnlGaW5kKCd3YXRjaCcpO1xuICAgIGlmICh3YXRjaCkge1xuICAgICAgd2F0Y2gucmVzZXQoKTtcbiAgICAgIHdhdGNoLmRlc2NyaXB0aW9uID0gJ1dhdGNoZXMgY2hhbmdlcyBpbiB5b3VyIHNvdXJjZSBjb2RlIGFuZCByZWJ1aWxkcyBhbmQgZGVwbG95cyB0byB0aGUgY3VycmVudCBhY2NvdW50JztcbiAgICAgIHdhdGNoLmV4ZWMoJ2NkayBkZXBsb3kgLS1ob3Rzd2FwLWZhbGxiYWNrJyk7XG4gICAgICB3YXRjaC5leGVjKCdjZGsgd2F0Y2gnKTtcbiAgICB9XG5cbiAgfVxufVxuIl19
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmF0bWFuUHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXRtYW5Qcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4Q0FBb0Y7QUFDcEYsOENBQXNEO0FBQ3RELCtDQUEwRTtBQUMxRSxxREFBa0Q7QUFDbEQsMkRBQXdEO0FBQ3hELHVEQUFvRDtBQUNwRCxpRUFBOEQ7QUFDOUQsbUNBQXlDO0FBQ3pDLHlEQUFzRDtBQXdFdEQsTUFBYSxhQUFjLFNBQVEsNEJBQW1COztJQUNwRCxZQUFZLE9BQTZCO1FBQ3ZDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVM7WUFDM0Msb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixJQUFJLE1BQU07WUFDNUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLElBQUksRUFBRTtnQkFDSixtQkFBbUI7Z0JBQ25CLGdCQUFnQjtnQkFDaEIsV0FBVztnQkFDWCxJQUFJO2dCQUNKLHFCQUFxQjtnQkFDckIsMkJBQTJCO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLG1DQUFtQztnQkFDbkMsY0FBYztnQkFDZCxpQ0FBaUM7Z0JBQ2pDLFNBQVM7Z0JBQ1QsaUJBQWlCO2dCQUNqQixHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTthQUN0QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxxQ0FBcUM7Z0JBQ3JDLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO2FBQ3pCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1EQUFtRDtnQkFDbkQsY0FBYztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRTthQUMzQjtZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFH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T0FBTyxDQUFDLEtBQUssRUFBRTtZQUNsQixJQUFJLEVBQUUsWUFBWSxDQUNoQixrR0FBa0csRUFDbEcsU0FBUyxDQUFDLFVBQVUsQ0FDckI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixJQUFJLEVBQUUsMkVBQTJFO1lBQ2pGLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDOUIsV0FBVyxFQUFFLDRFQUE0RTtZQUN6RixJQUFJLEVBQUUscUdBQXFHO1lBQzNHLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILDJFQUEyRTtRQUMzRSx1RUFBdUU7UUFDdkUsaUVBQWlFO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUMsV0FBVyxHQUFHLHFGQUFxRixDQUFDO1lBQzFHLEtBQUssQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUM1QyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFFSCxDQUFDOztBQS9JSCxzQ0FnSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwLCBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgQXBwbGljYXRpb24sIEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL0FwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvZGVPd25lcnNGaWxlIH0gZnJvbSAnLi9Db2RlT3duZXJzRmlsZSc7XG5pbXBvcnQgeyBEYXRhRG9nQXNwZWN0RmlsZSB9IGZyb20gJy4vRGF0YURvZ0FzcGVjdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNGaWxlIH0gZnJvbSAnLi9HaXRIdWJSb2xlc0ZpbGUnO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5RmlsZXMgfSBmcm9tICcuL1NvZnR3YXJlRmFjdG9yeUZpbGVzJztcbmltcG9ydCB7IHJlYWRtZUNvbnRlbnRzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBWaXRlUmVhY3RQcm9qZWN0IH0gZnJvbSAnLi9WaXRlUmVhY3RQcm9qZWN0JztcbmltcG9ydCB7IFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhdG1hblByb2plY3RPcHRpb25zIGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXY6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdpbmc6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZDogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCB0YWdzIHRvIGFwcGx5IHRvIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRW5hYmxlIG44biB3b3JrZmxvdyBhdXRvLWRpc2NvdmVyeSBhbmQgV29ya2Zsb3dQcm92aWRlciBnZW5lcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBuOG5Xb3JrZmxvd3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvZGUgb3duZXJzIHRvIGFkZCB0byB0aGUgQ09ERU9XTkVSUyBmaWxlXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsQ29kZU93bmVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXZWJzaXRlIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcmVhZG9ubHkgd2Vic2l0ZURlcHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvciB0aGUgcGlubmVkIGFjdGlvbiB2ZXJzaW9ucyB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uVmVyc2lvbnM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIHBpbm5lZCBTMyBvYmplY3QgdmVyc2lvbiBvZiB0aGUgY2xlcmstYXV0aG9yaXplciBMYW1iZGEgZGVwbG95bWVudCBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHBpbm5lZCBpbiBBcGlDb25zdHJ1Y3RGaWxlXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemVyT2JqZWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ2VuZXJhdGVkIGB3ZWJgIGFwcCBhbmQgaXRzIGBQckRlcGxveVdvcmtmbG93YCBDSSBzdGVwIGluY2x1ZGVcbiAgICogUGxheXdyaWdodCBlMmUgdGVzdGluZyBzdXBwb3J0LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlMmVUZXN0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXh0cmEgZmlsZXMgdGhhdCB0aGUgUFIgYXR0ZXN0YXRpb24gbWFuaWZlc3QgYWxzbyBoYXNoZXMsIHN1Y2ggYXMgdGhlXG4gICAqIHByb2plY3QncyBvd24gdmVyaWZpY2F0aW9uIGNoZWNrcy4gRWFjaCBlbnRyeSBpcyBhbiBleGFjdCBmaWxlIHBhdGhcbiAgICogcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgcm9vdCwgaW4gbm9ybWFsaXplZCBQT1NJWCBmb3JtLCB1c2luZyBvbmx5XG4gICAqIGxldHRlcnMsIGRpZ2l0cyBhbmQgYC5fQCstYCwgd2l0aCBubyBgLmAgb3IgYC4uYCBzZWdtZW50OyBzeW50aCBmYWlsc1xuICAgKiBvbiBhbnkgb3RoZXIgZW50cnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gb25seSB0aGUgZGVmYXVsdCBmaWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgYXR0ZXN0YXRpb25GaWxlcz86IHN0cmluZ1tdO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBCYXRtYW5Qcm9qZWN0IGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEJhdG1hblByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGNka1ZlcnNpb246IG9wdGlvbnMuY2RrVmVyc2lvbiB8fCAnMi4yMjQuMCcsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogb3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaCB8fCAnbWFpbicsXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgICAgYnVpbGRXb3JrZmxvdzogZmFsc2UsXG4gICAgICBkZXBzOiBbXG4gICAgICAgICdAdHlwZXMvYXdzLWxhbWJkYScsXG4gICAgICAgICdAdHlwZXMvZXhwcmVzcycsXG4gICAgICAgICdAdHlwZXMvcGcnLFxuICAgICAgICAncGcnLFxuICAgICAgICAnQGF3cy1zZGsvcmRzLXNpZ25lcicsXG4gICAgICAgICdkYXRhZG9nLWNkay1jb25zdHJ1Y3RzLXYyJyxcbiAgICAgICAgJ0BjZGtsYWJzL2F3cy1sYW1iZGEtcnVzdCcsXG4gICAgICAgICdAYXdzLWxhbWJkYS1wb3dlcnRvb2xzL3BhcmFtZXRlcnMnLFxuICAgICAgICAnanNvbndlYnRva2VuJyxcbiAgICAgICAgJ0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXInLFxuICAgICAgICAnZXhwcmVzcycsXG4gICAgICAgICdzZXJ2ZXJsZXNzLWh0dHAnLFxuICAgICAgICAuLi5vcHRpb25zLmRlcHMgfHwgW10sXG4gICAgICBdLFxuICAgICAgZGV2RGVwczogW1xuICAgICAgICAnQHR5cGVzL2pzb253ZWJ0b2tlbicsXG4gICAgICAgICdub2RlbW9uJyxcbiAgICAgICAgJ2NvbmN1cnJlbnRseScsXG4gICAgICAgICdAbWFjZWRvbi10ZWNobm9sb2dpZXMvYmF0bWFuQF4xLjAuMCcsXG4gICAgICAgIC4uLm9wdGlvbnMuZGV2RGVwcyB8fCBbXSxcbiAgICAgIF0sXG4gICAgICBnaXRpZ25vcmU6IFtcbiAgICAgICAgJ3NyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvY2xlcmstYXV0aG9yaXplci90YXJnZXQvKionLFxuICAgICAgICAnKiovLkRTX1N0b3JlJyxcbiAgICAgICAgLi4ub3B0aW9ucy5naXRpZ25vcmUgfHwgW10sXG4gICAgICBdLFxuICAgICAgdHNjb25maWc6IHtcbiAgICAgICAgLi4ub3B0aW9ucy50c2NvbmZpZyxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgLi4ub3B0aW9ucy50c2NvbmZpZz8uY29tcGlsZXJPcHRpb25zLFxuICAgICAgICAgIGlzb2xhdGVkTW9kdWxlczogdHJ1ZSxcbiAgICAgICAgICBhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIG1pbk5vZGVWZXJzaW9uOiBvcHRpb25zLm1pbk5vZGVWZXJzaW9uIHx8ICcyMicsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgd29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IEdpdGh1YkNyZWRlbnRpYWxzLmZyb21QZXJzb25hbEFjY2Vzc1Rva2VuKHtcbiAgICAgICAgICAgIHNlY3JldDogJ0dJVEhVQl9UT0tFTicsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVhZG1lOiB7XG4gICAgICAgIGNvbnRlbnRzOiByZWFkbWVDb250ZW50cyhvcHRpb25zLm5hbWUsIG9wdGlvbnMuZTJlVGVzdGluZyA/PyB0cnVlLCBvcHRpb25zLnBhY2thZ2VNYW5hZ2VyKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cblxuICAgIC8vIENyZWF0ZSBzdGFuZGFyZCBwcm9qZWN0IGZpbGVzXG4gICAgY29uc3QgUFJJTUFSWV9BQ0NPVU5UID0gJzAxNTk1NTgxNzI2Myc7XG4gICAgY29uc3QgUFJJTUFSWV9SRUdJT04gPSAndXMtZWFzdC0xJztcblxuICAgIG5ldyBBcHBsaWNhdGlvbih0aGlzLCB7XG4gICAgICBnaXRodWJSZXBvc2l0b3J5OiBgbWFjZWRvbi10ZWNobm9sb2dpZXMvJHtvcHRpb25zLm5hbWV9YCxcbiAgICAgIGRldjoge1xuICAgICAgICAuLi5vcHRpb25zLmRldixcbiAgICAgIH0sXG4gICAgICBzdGFnaW5nOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuc3RhZ2luZyxcbiAgICAgIH0sXG4gICAgICBwcm9kOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGV2LFxuICAgICAgfSxcbiAgICAgIGFkZGl0aW9uYWxUYWdzOiBvcHRpb25zLmFkZGl0aW9uYWxUYWdzLFxuICAgICAgbjhuV29ya2Zsb3dzOiBvcHRpb25zLm44bldvcmtmbG93cyxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgICAgYXV0aG9yaXplck9iamVjdFZlcnNpb246IG9wdGlvbnMuYXV0aG9yaXplck9iamVjdFZlcnNpb24sXG4gICAgICBlMmVUZXN0aW5nOiBvcHRpb25zLmUyZVRlc3RpbmcsXG4gICAgfSk7XG5cbiAgICBuZXcgR2l0SHViUm9sZXNGaWxlKHRoaXMsIHtcbiAgICAgIGFjY291bnQ6IFBSSU1BUllfQUNDT1VOVCxcbiAgICAgIHByaW1hcnlSZWdpb246IFBSSU1BUllfUkVHSU9OLFxuICAgIH0pO1xuXG4gICAgbmV3IENvZGVPd25lcnNGaWxlKHRoaXMsIHtcbiAgICAgIGFkZGl0aW9uYWxPd25lcnM6IG9wdGlvbnMuYWRkaXRpb25hbENvZGVPd25lcnMsXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YURvZ0FzcGVjdEZpbGUodGhpcyk7XG5cbiAgICBuZXcgU29mdHdhcmVGYWN0b3J5RmlsZXModGhpcywge1xuICAgICAgcmVwb05hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGJhc2VCcmFuY2g6IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2gsXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICAgIGF0dGVzdGF0aW9uRmlsZXM6IG9wdGlvbnMuYXR0ZXN0YXRpb25GaWxlcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZpdGVSZWFjdCA9IG5ldyBWaXRlUmVhY3RQcm9qZWN0KHtcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICBvdXRkaXI6ICd3ZWInLFxuICAgICAgZGVwczogb3B0aW9ucy53ZWJzaXRlRGVwcyxcbiAgICAgIGUyZVRlc3Rpbmc6IG9wdGlvbnMuZTJlVGVzdGluZyxcbiAgICB9KTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZycsICdudW1iZXInKTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZ0Vsc2UnLCAnc3RyaW5nJyk7XG5cbiAgICBjb25zdCBjb25jdXJyZW50bHkgPSAoLi4uYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIHJldHVybiBgY29uY3VycmVudGx5ICR7YXJncy5tYXAoYSA9PiBgXCIke2F9XCJgKS5qb2luKCcgJyl9YDtcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRUYXNrKCdkZXYnLCB7XG4gICAgICBleGVjOiBjb25jdXJyZW50bHkoXG4gICAgICAgICdub2RlbW9uIC0td2F0Y2ggLi9zcmMvY29uc3RydWN0cy9oYW5kbGVyIC0td2F0Y2ggLi9zcmMvYXBpIC0td2F0Y2ggLi9sb2NhbC9kZXYudHMgLi9sb2NhbC9kZXYudHMnLFxuICAgICAgICB2aXRlUmVhY3QuZGV2Q29tbWFuZCxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2NkazpkZXYnLCB7XG4gICAgICBleGVjOiAnY2RrIC1hIFwibnB4IHRzLW5vZGUgLVAgdHNjb25maWcuanNvbiAtLXByZWZlci10cy1leHRzIHNyYy9Mb2NhbERldkFwcC50c1wiJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRUYXNrKCdjZGs6ZGV2OmhvdHN3YXAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RlcGxveXMgeW91ciBwZXJzb25hbCBkZXYgc3RhY2sgKHNyYy9Mb2NhbERldkFwcC50cykgd2l0aCBob3Rzd2FwLWZhbGxiYWNrJyxcbiAgICAgIGV4ZWM6ICdjZGsgLWEgXCJucHggdHMtbm9kZSAtUCB0c2NvbmZpZy5qc29uIC0tcHJlZmVyLXRzLWV4dHMgc3JjL0xvY2FsRGV2QXBwLnRzXCIgZGVwbG95IC0taG90c3dhcC1mYWxsYmFjaycsXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIHByb2plbidzIEF3c0Nka1R5cGVTY3JpcHRBcHAgZGVmYXVsdCBgd2F0Y2hgIHRhc2sgdXNlcyBiYXJlIGAtLWhvdHN3YXBgLFxuICAgIC8vIHdoaWNoIHNpbGVudGx5IGlnbm9yZXMgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIChlLmcuIHRoZSBNaWdyYXRpb25zXG4gICAgLy8gY3VzdG9tIHJlc291cmNlKSBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byBhIGZ1bGwgZGVwbG95bWVudC5cbiAgICBjb25zdCB3YXRjaCA9IHRoaXMudGFza3MudHJ5RmluZCgnd2F0Y2gnKTtcbiAgICBpZiAod2F0Y2gpIHtcbiAgICAgIHdhdGNoLnJlc2V0KCk7XG4gICAgICB3YXRjaC5kZXNjcmlwdGlvbiA9ICdXYXRjaGVzIGNoYW5nZXMgaW4geW91ciBzb3VyY2UgY29kZSBhbmQgcmVidWlsZHMgYW5kIGRlcGxveXMgdG8gdGhlIGN1cnJlbnQgYWNjb3VudCc7XG4gICAgICB3YXRjaC5leGVjKCdjZGsgZGVwbG95IC0taG90c3dhcC1mYWxsYmFjaycpO1xuICAgICAgd2F0Y2guZXhlYygnY2RrIHdhdGNoJyk7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
12
12
  const utils_1 = require("./utils");
13
13
  const ViteReactProject_1 = require("./ViteReactProject");
14
14
  class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.28.0" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.29.0" };
16
16
  constructor(options) {
17
17
  super({
18
18
  ...options,
@@ -101,6 +101,7 @@ class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
101
101
  repoName: options.name,
102
102
  baseBranch: options.defaultReleaseBranch,
103
103
  actionVersions: options.actionVersions,
104
+ attestationFiles: options.attestationFiles,
104
105
  });
105
106
  const viteReact = new ViteReactProject_1.ViteReactProject({
106
107
  name: options.name,
@@ -125,4 +126,4 @@ class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
125
126
  }
126
127
  }
127
128
  exports.BootcampProject = BootcampProject;
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jvb3RjYW1wUHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsOENBQXdEO0FBQ3hELDhDQUFzRDtBQUV0RCwrREFBNEQ7QUFDNUQscURBQWtEO0FBQ2xELDJEQUF3RDtBQUN4RCx1REFBb0Q7QUFDcEQsaUVBQThEO0FBQzlELG1DQUF5QztBQUN6Qyx5REFBc0Q7QUFPdEQsTUFBYSxlQUFnQixTQUFRLDRCQUFtQjs7SUFDdEQsWUFBWSxPQUErQjtRQUN6QyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTO1lBQzNDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxNQUFNO1lBQzVELElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsS0FBSztZQUNwQixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CO2dCQUNuQixnQkFBZ0I7Z0JBQ2hCLFdBQVc7Z0JBQ1gsSUFBSTtnQkFDSixxQkFBcUI7Z0JBQ3JCLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2dCQUMxQixtQ0FBbUM7Z0JBQ25DLGNBQWM7Z0JBQ2QsaUNBQWlDO2dCQUNqQyxTQUFTO2dCQUNULGlCQUFpQjtnQkFDakIsYUFBYTtnQkFDYixHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTthQUN0QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxxQ0FBcUM7Z0JBQ3JDLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO2FBQ3pCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1EQUFtRDtnQkFDbkQsY0FBYztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRTthQUMzQjtZQUNELFFBQVEs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RUFDbEcsU0FBUyxDQUFDLFVBQVUsQ0FDckI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixJQUFJLEVBQUUsMkVBQTJFO1lBQ2pGLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUdMLENBQUM7O0FBOUhILDBDQStIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5pbXBvcnQgeyBHaXRodWJDcmVkZW50aWFscyB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViJztcbmltcG9ydCB7IEJhdG1hblByb2plY3RPcHRpb25zIH0gZnJvbSAnLi9CYXRtYW5Qcm9qZWN0JztcbmltcG9ydCB7IEJvb3RjYW1wQXBwbGljYXRpb24gfSBmcm9tICcuL0Jvb3RjYW1wQXBwbGljYXRpb24nO1xuaW1wb3J0IHsgQ29kZU93bmVyc0ZpbGUgfSBmcm9tICcuL0NvZGVPd25lcnNGaWxlJztcbmltcG9ydCB7IERhdGFEb2dBc3BlY3RGaWxlIH0gZnJvbSAnLi9EYXRhRG9nQXNwZWN0RmlsZSc7XG5pbXBvcnQgeyBHaXRIdWJSb2xlc0ZpbGUgfSBmcm9tICcuL0dpdEh1YlJvbGVzRmlsZSc7XG5pbXBvcnQgeyBTb2Z0d2FyZUZhY3RvcnlGaWxlcyB9IGZyb20gJy4vU29mdHdhcmVGYWN0b3J5RmlsZXMnO1xuaW1wb3J0IHsgcmVhZG1lQ29udGVudHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFZpdGVSZWFjdFByb2plY3QgfSBmcm9tICcuL1ZpdGVSZWFjdFByb2plY3QnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdGNhbXBQcm9qZWN0T3B0aW9ucyBleHRlbmRzIEJhdG1hblByb2plY3RPcHRpb25zIHtcblxufVxuXG5leHBvcnQgY2xhc3MgQm9vdGNhbXBQcm9qZWN0IGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEJvb3RjYW1wUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY2RrVmVyc2lvbjogb3B0aW9ucy5jZGtWZXJzaW9uIHx8ICcyLjIyNC4wJyxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoIHx8ICdtYWluJyxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBidWlsZFdvcmtmbG93OiBmYWxzZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgJ0B0eXBlcy9hd3MtbGFtYmRhJyxcbiAgICAgICAgJ0B0eXBlcy9leHByZXNzJyxcbiAgICAgICAgJ0B0eXBlcy9wZycsXG4gICAgICAgICdwZycsXG4gICAgICAgICdAYXdzLXNkay9yZHMtc2lnbmVyJyxcbiAgICAgICAgJ2RhdGFkb2ctY2RrLWNvbnN0cnVjdHMtdjInLFxuICAgICAgICAnQGNka2xhYnMvYXdzLWxhbWJkYS1ydXN0JyxcbiAgICAgICAgJ0Bhd3MtbGFtYmRhLXBvd2VydG9vbHMvcGFyYW1ldGVycycsXG4gICAgICAgICdqc29ud2VidG9rZW4nLFxuICAgICAgICAnQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlcicsXG4gICAgICAgICdleHByZXNzJyxcbiAgICAgICAgJ3NlcnZlcmxlc3MtaHR0cCcsXG4gICAgICAgICdjZGstcmRzLXNxbCcsXG4gICAgICAgIC4uLm9wdGlvbnMuZGVwcyB8fCBbXSxcbiAgICAgIF0sXG4gICAgICBkZXZEZXBzOiBbXG4gICAgICAgICdAdHlwZXMvanNvbndlYnRva2VuJyxcbiAgICAgICAgJ25vZGVtb24nLFxuICAgICAgICAnY29uY3VycmVudGx5JyxcbiAgICAgICAgJ0BtYWNlZG9uLXRlY2hub2xvZ2llcy9iYXRtYW5AXjEuMC4wJyxcbiAgICAgICAgLi4ub3B0aW9ucy5kZXZEZXBzIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIGdpdGlnbm9yZTogW1xuICAgICAgICAnc3JjL2NvbnN0cnVjdHMvaGFuZGxlci9jbGVyay1hdXRob3JpemVyL3RhcmdldC8qKicsXG4gICAgICAgICcqKi8uRFNfU3RvcmUnLFxuICAgICAgICAuLi5vcHRpb25zLmdpdGlnbm9yZSB8fCBbXSxcbiAgICAgIF0sXG4gICAgICB0c2NvbmZpZzoge1xuICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnLFxuICAgICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMsXG4gICAgICAgICAgaXNvbGF0ZWRNb2R1bGVzOiB0cnVlLFxuICAgICAgICAgIGFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgbWluTm9kZVZlcnNpb246IG9wdGlvbnMubWluTm9kZVZlcnNpb24gfHwgJzIyJyxcbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICB3b3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogR2l0aHViQ3JlZGVudGlhbHMuZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oe1xuICAgICAgICAgICAgc2VjcmV0OiAnR0lUSFVCX1RPS0VOJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICByZWFkbWU6IHtcbiAgICAgICAgY29udGVudHM6IHJlYWRtZUNvbnRlbnRzKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5lMmVUZXN0aW5nID8/IHRydWUsIG9wdGlvbnMucGFja2FnZU1hbmFnZXIpLFxuICAgICAgfSxcbiAgICB9KTtcblxuXG4gICAgLy8gQ3JlYXRlIHN0YW5kYXJkIHByb2plY3QgZmlsZXNcbiAgICBjb25zdCBQUklNQVJZX0FDQ09VTlQgPSAnMDE1OTU1ODE3MjYzJztcbiAgICBjb25zdCBQUklNQVJZX1JFR0lPTiA9ICd1cy1lYXN0LTEnO1xuXG4gICAgbmV3IEJvb3RjYW1wQXBwbGljYXRpb24odGhpcywge1xuICAgICAgZ2l0aHViUmVwb3NpdG9yeTogYG1hY2Vkb24tdGVjaG5vbG9naWVzLyR7b3B0aW9ucy5uYW1lfWAsXG4gICAgICBkZXY6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXYsXG4gICAgICB9LFxuICAgICAgc3RhZ2luZzoge1xuICAgICAgICAuLi5vcHRpb25zLnN0YWdpbmcsXG4gICAgICB9LFxuICAgICAgcHJvZDoge1xuICAgICAgICAuLi5vcHRpb25zLmRldixcbiAgICAgIH0sXG4gICAgICBhZGRpdGlvbmFsVGFnczogb3B0aW9ucy5hZGRpdGlvbmFsVGFncyxcbiAgICAgIG44bldvcmtmbG93czogb3B0aW9ucy5uOG5Xb3JrZmxvd3MsXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICAgIGUyZVRlc3Rpbmc6IG9wdGlvbnMuZTJlVGVzdGluZyxcbiAgICB9KTtcblxuICAgIG5ldyBHaXRIdWJSb2xlc0ZpbGUodGhpcywge1xuICAgICAgYWNjb3VudDogUFJJTUFSWV9BQ0NPVU5ULFxuICAgICAgcHJpbWFyeVJlZ2lvbjogUFJJTUFSWV9SRUdJT04sXG4gICAgfSk7XG5cbiAgICBuZXcgQ29kZU93bmVyc0ZpbGUodGhpcywge1xuICAgICAgYWRkaXRpb25hbE93bmVyczogb3B0aW9ucy5hZGRpdGlvbmFsQ29kZU93bmVycyxcbiAgICB9KTtcblxuICAgIG5ldyBEYXRhRG9nQXNwZWN0RmlsZSh0aGlzKTtcblxuICAgIG5ldyBTb2Z0d2FyZUZhY3RvcnlGaWxlcyh0aGlzLCB7XG4gICAgICByZXBvTmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgYmFzZUJyYW5jaDogb3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaCxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgdml0ZVJlYWN0ID0gbmV3IFZpdGVSZWFjdFByb2plY3Qoe1xuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICAgIHBhcmVudDogdGhpcyxcbiAgICAgIG91dGRpcjogJ3dlYicsXG4gICAgICBkZXBzOiBvcHRpb25zLndlYnNpdGVEZXBzLFxuICAgICAgZTJlVGVzdGluZzogb3B0aW9ucy5lMmVUZXN0aW5nLFxuICAgIH0pO1xuICAgIHZpdGVSZWFjdC5hZGRDb25maWdGaWVsZCgnc29tZXRoaW5nJywgJ251bWJlcicpO1xuICAgIHZpdGVSZWFjdC5hZGRDb25maWdGaWVsZCgnc29tZXRoaW5nRWxzZScsICdzdHJpbmcnKTtcblxuICAgIGNvbnN0IGNvbmN1cnJlbnRseSA9ICguLi5hcmdzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgcmV0dXJuIGBjb25jdXJyZW50bHkgJHthcmdzLm1hcChhID0+IGBcIiR7YX1cImApLmpvaW4oJyAnKX1gO1xuICAgIH07XG5cbiAgICB0aGlzLmFkZFRhc2soJ2RldicsIHtcbiAgICAgIGV4ZWM6IGNvbmN1cnJlbnRseShcbiAgICAgICAgJ25vZGVtb24gLS13YXRjaCAuL3NyYy9jb25zdHJ1Y3RzL2hhbmRsZXIgLS13YXRjaCAuL3NyYy9hcGkgLS13YXRjaCAuL2xvY2FsL2Rldi50cyAuL2xvY2FsL2Rldi50cycsXG4gICAgICAgIHZpdGVSZWFjdC5kZXZDb21tYW5kLFxuICAgICAgKSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkVGFzaygnY2RrOmRldicsIHtcbiAgICAgIGV4ZWM6ICdjZGsgLWEgXCJucHggdHMtbm9kZSAtUCB0c2NvbmZpZy5qc29uIC0tcHJlZmVyLXRzLWV4dHMgc3JjL0xvY2FsRGV2QXBwLnRzXCInLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cblxuICB9XG59XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBQcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jvb3RjYW1wUHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsOENBQXdEO0FBQ3hELDhDQUFzRDtBQUV0RCwrREFBNEQ7QUFDNUQscURBQWtEO0FBQ2xELDJEQUF3RDtBQUN4RCx1REFBb0Q7QUFDcEQsaUVBQThEO0FBQzlELG1DQUF5QztBQUN6Qyx5REFBc0Q7QUFPdEQsTUFBYSxlQUFnQixTQUFRLDRCQUFtQjs7SUFDdEQsWUFBWSxPQUErQjtRQUN6QyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTO1lBQzNDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxNQUFNO1lBQzVELElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsS0FBSztZQUNwQixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CO2dCQUNuQixnQkFBZ0I7Z0JBQ2hCLFdBQVc7Z0JBQ1gsSUFBSTtnQkFDSixxQkFBcUI7Z0JBQ3JCLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2dCQUMxQixtQ0FBbUM7Z0JBQ25DLGNBQWM7Z0JBQ2QsaUNBQWlDO2dCQUNqQyxTQUFTO2dCQUNULGlCQUFpQjtnQkFDakIsYUFBYTtnQkFDYixHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTthQUN0QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxxQ0FBcUM7Z0JBQ3JDLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO2FBQ3pCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1EQUFtRDtnQkFDbkQsY0FBYztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRTthQUMzQjtZQUNELFFBQVEs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O1lBQ2xCLElBQUksRUFBRSxZQUFZLENBQ2hCLGtHQUFrRyxFQUNsRyxTQUFTLENBQUMsVUFBVSxDQUNyQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3RCLElBQUksRUFBRSwyRUFBMkU7WUFDakYsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO0lBR0wsQ0FBQzs7QUEvSEgsMENBZ0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgQmF0bWFuUHJvamVjdE9wdGlvbnMgfSBmcm9tICcuL0JhdG1hblByb2plY3QnO1xuaW1wb3J0IHsgQm9vdGNhbXBBcHBsaWNhdGlvbiB9IGZyb20gJy4vQm9vdGNhbXBBcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBDb2RlT3duZXJzRmlsZSB9IGZyb20gJy4vQ29kZU93bmVyc0ZpbGUnO1xuaW1wb3J0IHsgRGF0YURvZ0FzcGVjdEZpbGUgfSBmcm9tICcuL0RhdGFEb2dBc3BlY3RGaWxlJztcbmltcG9ydCB7IEdpdEh1YlJvbGVzRmlsZSB9IGZyb20gJy4vR2l0SHViUm9sZXNGaWxlJztcbmltcG9ydCB7IFNvZnR3YXJlRmFjdG9yeUZpbGVzIH0gZnJvbSAnLi9Tb2Z0d2FyZUZhY3RvcnlGaWxlcyc7XG5pbXBvcnQgeyByZWFkbWVDb250ZW50cyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVml0ZVJlYWN0UHJvamVjdCB9IGZyb20gJy4vVml0ZVJlYWN0UHJvamVjdCc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBCb290Y2FtcFByb2plY3RPcHRpb25zIGV4dGVuZHMgQmF0bWFuUHJvamVjdE9wdGlvbnMge1xuXG59XG5cbmV4cG9ydCBjbGFzcyBCb290Y2FtcFByb2plY3QgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQm9vdGNhbXBQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBjZGtWZXJzaW9uOiBvcHRpb25zLmNka1ZlcnNpb24gfHwgJzIuMjI0LjAnLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2ggfHwgJ21haW4nLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIGJ1aWxkV29ya2Zsb3c6IGZhbHNlLFxuICAgICAgZGVwczogW1xuICAgICAgICAnQHR5cGVzL2F3cy1sYW1iZGEnLFxuICAgICAgICAnQHR5cGVzL2V4cHJlc3MnLFxuICAgICAgICAnQHR5cGVzL3BnJyxcbiAgICAgICAgJ3BnJyxcbiAgICAgICAgJ0Bhd3Mtc2RrL3Jkcy1zaWduZXInLFxuICAgICAgICAnZGF0YWRvZy1jZGstY29uc3RydWN0cy12MicsXG4gICAgICAgICdAY2RrbGFicy9hd3MtbGFtYmRhLXJ1c3QnLFxuICAgICAgICAnQGF3cy1sYW1iZGEtcG93ZXJ0b29scy9wYXJhbWV0ZXJzJyxcbiAgICAgICAgJ2pzb253ZWJ0b2tlbicsXG4gICAgICAgICdAYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyJyxcbiAgICAgICAgJ2V4cHJlc3MnLFxuICAgICAgICAnc2VydmVybGVzcy1odHRwJyxcbiAgICAgICAgJ2Nkay1yZHMtc3FsJyxcbiAgICAgICAgLi4ub3B0aW9ucy5kZXBzIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIGRldkRlcHM6IFtcbiAgICAgICAgJ0B0eXBlcy9qc29ud2VidG9rZW4nLFxuICAgICAgICAnbm9kZW1vbicsXG4gICAgICAgICdjb25jdXJyZW50bHknLFxuICAgICAgICAnQG1hY2Vkb24tdGVjaG5vbG9naWVzL2JhdG1hbkBeMS4wLjAnLFxuICAgICAgICAuLi5vcHRpb25zLmRldkRlcHMgfHwgW10sXG4gICAgICBdLFxuICAgICAgZ2l0aWdub3JlOiBbXG4gICAgICAgICdzcmMvY29uc3RydWN0cy9oYW5kbGVyL2NsZXJrLWF1dGhvcml6ZXIvdGFyZ2V0LyoqJyxcbiAgICAgICAgJyoqLy5EU19TdG9yZScsXG4gICAgICAgIC4uLm9wdGlvbnMuZ2l0aWdub3JlIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIC4uLm9wdGlvbnMudHNjb25maWcsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIC4uLm9wdGlvbnMudHNjb25maWc/LmNvbXBpbGVyT3B0aW9ucyxcbiAgICAgICAgICBpc29sYXRlZE1vZHVsZXM6IHRydWUsXG4gICAgICAgICAgYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBtaW5Ob2RlVmVyc2lvbjogb3B0aW9ucy5taW5Ob2RlVmVyc2lvbiB8fCAnMjInLFxuICAgICAgZGVwc1VwZ3JhZGVPcHRpb25zOiB7XG4gICAgICAgIHdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBHaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgICAgICBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlYWRtZToge1xuICAgICAgICBjb250ZW50czogcmVhZG1lQ29udGVudHMob3B0aW9ucy5uYW1lLCBvcHRpb25zLmUyZVRlc3RpbmcgPz8gdHJ1ZSwgb3B0aW9ucy5wYWNrYWdlTWFuYWdlciksXG4gICAgICB9LFxuICAgIH0pO1xuXG5cbiAgICAvLyBDcmVhdGUgc3RhbmRhcmQgcHJvamVjdCBmaWxlc1xuICAgIGNvbnN0IFBSSU1BUllfQUNDT1VOVCA9ICcwMTU5NTU4MTcyNjMnO1xuICAgIGNvbnN0IFBSSU1BUllfUkVHSU9OID0gJ3VzLWVhc3QtMSc7XG5cbiAgICBuZXcgQm9vdGNhbXBBcHBsaWNhdGlvbih0aGlzLCB7XG4gICAgICBnaXRodWJSZXBvc2l0b3J5OiBgbWFjZWRvbi10ZWNobm9sb2dpZXMvJHtvcHRpb25zLm5hbWV9YCxcbiAgICAgIGRldjoge1xuICAgICAgICAuLi5vcHRpb25zLmRldixcbiAgICAgIH0sXG4gICAgICBzdGFnaW5nOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuc3RhZ2luZyxcbiAgICAgIH0sXG4gICAgICBwcm9kOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGV2LFxuICAgICAgfSxcbiAgICAgIGFkZGl0aW9uYWxUYWdzOiBvcHRpb25zLmFkZGl0aW9uYWxUYWdzLFxuICAgICAgbjhuV29ya2Zsb3dzOiBvcHRpb25zLm44bldvcmtmbG93cyxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgICAgZTJlVGVzdGluZzogb3B0aW9ucy5lMmVUZXN0aW5nLFxuICAgIH0pO1xuXG4gICAgbmV3IEdpdEh1YlJvbGVzRmlsZSh0aGlzLCB7XG4gICAgICBhY2NvdW50OiBQUklNQVJZX0FDQ09VTlQsXG4gICAgICBwcmltYXJ5UmVnaW9uOiBQUklNQVJZX1JFR0lPTixcbiAgICB9KTtcblxuICAgIG5ldyBDb2RlT3duZXJzRmlsZSh0aGlzLCB7XG4gICAgICBhZGRpdGlvbmFsT3duZXJzOiBvcHRpb25zLmFkZGl0aW9uYWxDb2RlT3duZXJzLFxuICAgIH0pO1xuXG4gICAgbmV3IERhdGFEb2dBc3BlY3RGaWxlKHRoaXMpO1xuXG4gICAgbmV3IFNvZnR3YXJlRmFjdG9yeUZpbGVzKHRoaXMsIHtcbiAgICAgIHJlcG9OYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBiYXNlQnJhbmNoOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoLFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgICBhdHRlc3RhdGlvbkZpbGVzOiBvcHRpb25zLmF0dGVzdGF0aW9uRmlsZXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCB2aXRlUmVhY3QgPSBuZXcgVml0ZVJlYWN0UHJvamVjdCh7XG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAgICAgcGFyZW50OiB0aGlzLFxuICAgICAgb3V0ZGlyOiAnd2ViJyxcbiAgICAgIGRlcHM6IG9wdGlvbnMud2Vic2l0ZURlcHMsXG4gICAgICBlMmVUZXN0aW5nOiBvcHRpb25zLmUyZVRlc3RpbmcsXG4gICAgfSk7XG4gICAgdml0ZVJlYWN0LmFkZENvbmZpZ0ZpZWxkKCdzb21ldGhpbmcnLCAnbnVtYmVyJyk7XG4gICAgdml0ZVJlYWN0LmFkZENvbmZpZ0ZpZWxkKCdzb21ldGhpbmdFbHNlJywgJ3N0cmluZycpO1xuXG4gICAgY29uc3QgY29uY3VycmVudGx5ID0gKC4uLmFyZ3M6IHN0cmluZ1tdKSA9PiB7XG4gICAgICByZXR1cm4gYGNvbmN1cnJlbnRseSAke2FyZ3MubWFwKGEgPT4gYFwiJHthfVwiYCkuam9pbignICcpfWA7XG4gICAgfTtcblxuICAgIHRoaXMuYWRkVGFzaygnZGV2Jywge1xuICAgICAgZXhlYzogY29uY3VycmVudGx5KFxuICAgICAgICAnbm9kZW1vbiAtLXdhdGNoIC4vc3JjL2NvbnN0cnVjdHMvaGFuZGxlciAtLXdhdGNoIC4vc3JjL2FwaSAtLXdhdGNoIC4vbG9jYWwvZGV2LnRzIC4vbG9jYWwvZGV2LnRzJyxcbiAgICAgICAgdml0ZVJlYWN0LmRldkNvbW1hbmQsXG4gICAgICApLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRUYXNrKCdjZGs6ZGV2Jywge1xuICAgICAgZXhlYzogJ2NkayAtYSBcIm5weCB0cy1ub2RlIC1QIHRzY29uZmlnLmpzb24gLS1wcmVmZXItdHMtZXh0cyBzcmMvTG9jYWxEZXZBcHAudHNcIicsXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuXG4gIH1cbn1cbiJdfQ==
@@ -4,7 +4,7 @@ exports.CodeOwnersFile = void 0;
4
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const projen_1 = require("projen");
6
6
  class CodeOwnersFile extends projen_1.TextFile {
7
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.28.0" };
7
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.29.0" };
8
8
  constructor(project, options = {}) {
9
9
  const defaultOwners = ['* @macedon-technologies/platform', '* @macedon-technologies/ai-development-team'];
10
10
  const allOwners = [...defaultOwners, ...(options.additionalOwners || [])];
@@ -7,7 +7,7 @@ const javascript_1 = require("projen/lib/javascript");
7
7
  const utils_1 = require("./utils");
8
8
  const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
9
9
  class ProductionDeployWorkflow extends projen_1.YamlFile {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.28.0" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.29.0" };
11
11
  constructor(project, options) {
12
12
  const packageManager = project.package.packageManager;
13
13
  const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
@@ -5,6 +5,15 @@ export interface SoftwareFactoryAttestationOptions {
5
5
  * `models/@swamp/software-factory/<repoName>-factory.yaml`.
6
6
  */
7
7
  readonly repoName: string;
8
+ /**
9
+ * Extra files, relative to the project root, appended to MANIFEST_FILES after
10
+ * the defaults so the attestation also covers the project's own verification
11
+ * config. Each entry must be a normalized POSIX path of letters, digits and
12
+ * `._@+-`, with no `.` or `..` segment.
13
+ *
14
+ * @default - only the default files
15
+ */
16
+ readonly attestationFiles?: string[];
8
17
  }
9
18
  /**
10
19
  * The tamper-evident PR attestation mechanism: `manifest.ts` hashes the
@@ -2,6 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SoftwareFactoryAttestation = void 0;
4
4
  const projen_1 = require("projen");
5
+ const ATTESTATION_FILE_PATTERN = /^[A-Za-z0-9._@+-]+(\/[A-Za-z0-9._@+-]+)*$/;
6
+ function validateAttestationFile(file) {
7
+ const segments = file.split('/');
8
+ if (!ATTESTATION_FILE_PATTERN.test(file) || segments.includes('.') || segments.includes('..')) {
9
+ throw new Error(`Invalid attestationFiles entry ${JSON.stringify(file)}: expected a normalized POSIX path relative to the project root, ` +
10
+ 'using only letters, digits and ._@+- with no "." or ".." segment.');
11
+ }
12
+ }
5
13
  /**
6
14
  * The tamper-evident PR attestation mechanism: `manifest.ts` hashes the
7
15
  * files that determine what pre-pr-verify checked, `verify.ts` re-checks
@@ -11,6 +19,22 @@ const projen_1 = require("projen");
11
19
  */
12
20
  class SoftwareFactoryAttestation {
13
21
  constructor(project, options) {
22
+ const extraFiles = options.attestationFiles ?? [];
23
+ extraFiles.forEach(validateAttestationFile);
24
+ const manifestFiles = [...new Set([
25
+ 'workflows/workflow-pre-pr-verify.yaml',
26
+ 'workflows/workflow-openspec-plan-verify.yaml',
27
+ 'workflows/workflow-openspec-tasks-verify.yaml',
28
+ `models/@swamp/software-factory/${options.repoName}-factory.yaml`,
29
+ 'architecture-rules/rules.json',
30
+ 'architecture-rules/check.ts',
31
+ 'openspec-gates/check-tasks-complete.ts',
32
+ 'CLAUDE.md',
33
+ 'attestation/manifest.ts',
34
+ 'attestation/verify.ts',
35
+ '.projen/tasks.json',
36
+ ...extraFiles,
37
+ ])];
14
38
  new projen_1.TextFile(project, 'attestation/manifest.ts', {
15
39
  marker: true,
16
40
  lines: [
@@ -27,17 +51,7 @@ class SoftwareFactoryAttestation {
27
51
  "import { join } from 'node:path';",
28
52
  '',
29
53
  'export const MANIFEST_FILES: readonly string[] = [',
30
- " 'workflows/workflow-pre-pr-verify.yaml',",
31
- " 'workflows/workflow-openspec-plan-verify.yaml',",
32
- " 'workflows/workflow-openspec-tasks-verify.yaml',",
33
- ` 'models/@swamp/software-factory/${options.repoName}-factory.yaml',`,
34
- " 'architecture-rules/rules.json',",
35
- " 'architecture-rules/check.ts',",
36
- " 'openspec-gates/check-tasks-complete.ts',",
37
- " 'CLAUDE.md',",
38
- " 'attestation/manifest.ts',",
39
- " 'attestation/verify.ts',",
40
- " '.projen/tasks.json',",
54
+ ...manifestFiles.map((file) => ` '${file}',`),
41
55
  '];',
42
56
  '',
43
57
  'export interface Manifest {',
@@ -221,4 +235,4 @@ class SoftwareFactoryAttestation {
221
235
  }
222
236
  }
223
237
  exports.SoftwareFactoryAttestation = SoftwareFactoryAttestation;
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQTRDO0FBVzVDOzs7Ozs7R0FNRztBQUNILE1BQWEsMEJBQTBCO0lBQ3JDLFlBQVksT0FBb0IsRUFBRSxPQUEwQztRQUMxRSxJQUFJLGlCQUFRLENBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFO1lBQy9DLE1BQU0sRUFBRSxJQUFJO1lBQ1osS0FBSyxFQUFFO2dCQUNMLEtBQUs7Z0JBQ0wsNkVBQTZFO2dCQUM3RSx1RUFBdUU7Z0JBQ3ZFLHVFQUF1RTtnQkFDdkUsK0VBQStFO2dCQUMvRSw4RUFBOEU7Z0JBQzlFLHFDQUFxQztnQkFDckMsS0FBSztnQkFDTCwyQ0FBMkM7Z0JBQzNDLHlDQUF5QztnQkFDekMsbUNBQW1DO2dCQUNuQyxFQUFFO2dCQUNGLG9EQUFvRDtnQkFDcEQsNENBQTRDO2dCQUM1QyxtREFBbUQ7Z0JBQ25ELG9EQUFvRDtnQkFDcEQscUNBQXFDLE9BQU8sQ0FBQyxRQUFRLGlCQUFpQjtnQkFDdEUsb0NBQW9DO2dCQUNwQyxrQ0FBa0M7Z0JBQ2xDLDZDQUE2QztnQkFDN0MsZ0JBQWdCO2dCQUNoQiw4QkFBOEI7Z0JBQzlCLDRCQUE0QjtnQkFDNUIseUJBQXlCO2dCQUN6QixJQUFJO2dCQUNKLEVBQUU7Z0JBQ0YsNkJBQTZCO2dCQUM3Qix3QkFBd0I7Z0JBQ3hCLGtDQUFrQztnQkFDbEMsR0FBRztnQkFDSCxFQUFFO2dCQUNGLHVGQUF1RjtnQkFDdkYsNkNBQTZDO2dCQUM3QyxnREFBZ0Q7Z0JBQ2hELGtFQUFrRTtnQkFDbEUsZ0ZBQWdGO2dCQUNoRixLQUFLO2dCQUNMLDREQUE0RDtnQkFDNUQsR0FBRztnQkFDSCxFQUFFO2dCQUNGLGdDQUFnQztnQkFDaEMsNERBQTREO2dCQUM1RCxHQUFHO2FBQ0o7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGlCQUFRLENBQUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFO1lBQzdDLE1BQU0sRUFBRSxJQUFJO1lBQ1osS0FBSyxFQUFFO2dCQUNMLEtBQUs7Z0JBQ0wsNkVBQTZFO2dCQUM3RSxpREFBaUQ7Z0JBQ2pELHFDQUFxQyxPQUFPLENBQUMsUUFBUSx1Q0FBdUM7Z0JBQzVGLDhFQUE4RTtnQkFDOUUsMkVBQTJFO2dCQUMzRSwwRUFBMEU7Z0JBQzFFLDZFQUE2RTtnQkFDN0UsMkVBQTJFO2dCQUMzRSxLQUFLO2dCQUNMLHlDQUF5QztnQkFDekMsOERBQThEO2dCQUM5RCxFQUFFO2dCQUNGLHVEQUF1RDtnQkFDdkQsOEVBQThFO2dCQUM5RSwrRUFBK0U7Z0JBQy9FLDJFQUEyRTtnQkFDM0UsMkVBQTJFO2dCQUMzRSw0RUFBNEU7Z0JBQzVFLDJFQUEyRTtnQkFDM0UsRUFBRTtnQkFDRiwrQ0FBK0M7Z0JBQy9DLG1CQUFtQjtnQkFDbkIsbUJBQW1CO2dCQUNuQixHQUFHO2dCQUNILEVBQUU7Z0JBQ0YsMEVBQTBFO2dCQUMxRSxnRUFBZ0U7Z0JBQ2hFLFlBQVk7Z0JBQ1osc0NBQXNDO2dCQUN0QywyQkFBMkI7Z0JBQzNCLDZDQUE2QztnQkFDN0MsNkNBQTZDO2dCQUM3QyxrREFBa0Q7Z0JBQ2xELDRDQUE0QztnQkFDNUMsOEJBQThCO2dCQUM5QixNQUFNO2dCQUNOLEdBQUc7Z0JBQ0gsRUFBRTtnQkFDRiw4RUFBOEU7Z0JBQzlFLGlGQUFpRjtnQkFDakYsK0RBQStEO2dCQUMvRCw2REFBNkQ7Z0JBQzdELG9DQUFvQztnQkFDcEMsa0NBQWtDO2dCQUNsQyxrQkFBa0I7Z0JBQ2xCLCtDQUErQztnQkFDL0MsbUNBQW1DO2dCQUNuQyxpQ0FBaUM7Z0JBQ2pDLGdCQUFnQjtnQkFDaEIseURBQXlEO2dCQUN6RCxPQUFPO2dCQUNQLEtBQUs7Z0JBQ0wsZ0JBQWdCO2dCQUNoQixHQUFHO2dCQUNILEVBQUU7Z0JBQ0Ysb0VBQW9FO2dCQUNwRSxnQ0FBZ0M7Z0JBQ2hDLDJEQUEyRDtnQkFDM0QsNkJBQTZCO2dCQUM3QixxREFBcUQ7Z0JBQ3JELDhCQUE4QjtnQkFDOUIsV0FBVztnQkFDWCw0Q0FBNEM7Z0JBQzVDLHNEQUFzRDtnQkFDdEQsZUFBZTtnQkFDZixnRkFBZ0Y7Z0JBQ2hGLE9BQU87Z0JBQ1AsS0FBSztnQkFDTCxvQkFBb0I7Z0JBQ3BCLHFCQUFxQjtnQkFDckIseUhBQXlIO2dCQUN6SCx5R0FBeUc7Z0JBQ3pHLGdJQUFnSTtnQkFDaEksTUFBTTtnQkFDTixHQUFHO2dCQUNILEVBQUU7Z0JBQ0YscUVBQXFFO2dCQUNyRSxtQ0FBbUM7Z0JBQ25DLFNBQVM7Z0JBQ1QsaURBQWlEO2dCQUNqRCxtQkFBbUI7Z0JBQ25CLGdFQUFnRTtnQkFDaEUsS0FBSztnQkFDTCxFQUFFO2dCQUNGLGdDQUFnQztnQkFDaEMsRUFBRTtnQkFDRiw2Q0FBNkM7Z0JBQzdDLGtCQUFrQjtnQkFDbEIsMEdBQTBHO2dCQUMxRyxvRUFBb0U7Z0JBQ3BFLFFBQVE7Z0JBQ1IsS0FBSztnQkFDTCxFQUFFO2dCQUNGLDBDQUEwQztnQkFDMUMsa0ZBQWtGO2dCQUNsRixLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsZ0VBQWdFO2dCQUNoRSxrQ0FBa0M7Z0JBQ2xDLHVHQUF1RztnQkFDdkcsb0NBQW9DO2dCQUNwQyw4SkFBOEo7Z0JBQzlKLEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRixxQ0FBcUM7Z0JBQ3JDLG1EQUFtRDtnQkFDbkQsd0RBQXdEO2dCQUN4RCw2SkFBNko7Z0JBQzdKLE9BQU87Z0JBQ1AsS0FBSztnQkFDTCxxREFBcUQ7Z0JBQ3JELG9DQUFvQztnQkFDcEMsMEpBQTBKO2dCQUMxSixPQUFPO2dCQUNQLEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRixrQkFBa0I7Z0JBQ2xCLEdBQUc7Z0JBQ0gsRUFBRTtnQkFDRiw0RUFBNEU7Z0JBQzVFLDJEQUEyRDtnQkFDM0Qsc0RBQXNEO2dCQUN0RCwrQkFBK0I7Z0JBQy9CLDRFQUE0RTtnQkFDNUUsS0FBSztnQkFDTCxnQ0FBZ0M7Z0JBQ2hDLEdBQUc7Z0JBQ0gsRUFBRTtnQkFDRixnQ0FBZ0M7Z0JBQ2hDLGtFQUFrRTtnQkFDbEUsa0RBQWtEO2dCQUNsRCwwQ0FBMEM7Z0JBQzFDLDRCQUE0QjtnQkFDNUIsMkRBQTJEO2dCQUMzRCxtQ0FBbUM7Z0JBQ25DLHNDQUFzQztnQkFDdEMsT0FBTztnQkFDUCxzQkFBc0I7Z0JBQ3RCLEtBQUs7Z0JBQ0wsbUlBQW1JO2dCQUNuSSxHQUFHO2FBQ0o7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGlCQUFRLENBQUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFO1lBQ2pELE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFO2dCQUNILE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLGVBQWUsRUFBRTtvQkFDZixNQUFNLEVBQUUsSUFBSTtvQkFDWixPQUFPLEVBQUUsR0FBRztpQkFDYjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQzthQUMxQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXBORCxnRUFvTkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uRmlsZSwgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTm9kZVByb2plY3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvZnR3YXJlRmFjdG9yeUF0dGVzdGF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFyZSByZXBvIG5hbWUsIHVzZWQgdG8gcG9pbnQgTUFOSUZFU1RfRklMRVMgYXRcbiAgICogYG1vZGVscy9Ac3dhbXAvc29mdHdhcmUtZmFjdG9yeS88cmVwb05hbWU+LWZhY3RvcnkueWFtbGAuXG4gICAqL1xuICByZWFkb25seSByZXBvTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSB0YW1wZXItZXZpZGVudCBQUiBhdHRlc3RhdGlvbiBtZWNoYW5pc206IGBtYW5pZmVzdC50c2AgaGFzaGVzIHRoZVxuICogZmlsZXMgdGhhdCBkZXRlcm1pbmUgd2hhdCBwcmUtcHItdmVyaWZ5IGNoZWNrZWQsIGB2ZXJpZnkudHNgIHJlLWNoZWNrc1xuICogdGhvc2UgaGFzaGVzIChwbHVzIGNvbW1pdC9zdGF0dXMvZnJlc2huZXNzKSBhZ2FpbnN0IGEgUFIncyBlbWJlZGRlZFxuICogYDwhLS0gYXR0ZXN0YXRpb24tbWFuaWZlc3QgLS0+YCBibG9jayBhdCBtZXJnZSB0aW1lLiBGdWxseSBnZW5lcmljIGVuZ2luZVxuICogbG9naWMg4oCUIEJhdG1hbiBvd25zIGFuZCBldm9sdmVzIHRoZXNlLCBzbyBib3RoIGFyZSBtYW5hZ2VkIGBUZXh0RmlsZWBzLlxuICovXG5leHBvcnQgY2xhc3MgU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb25PcHRpb25zKSB7XG4gICAgbmV3IFRleHRGaWxlKHByb2plY3QsICdhdHRlc3RhdGlvbi9tYW5pZmVzdC50cycsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgICcvKionLFxuICAgICAgICAnICogU2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3Igd2hpY2ggZmlsZXNcXCcgY29udGVudCBkZXRlcm1pbmVzIFwid2FzIHRoaXMgUFInLFxuICAgICAgICAnICogYWN0dWFsbHkgdmVyaWZpZWQgYWdhaW5zdCB0aGUgcnVsZXMgaXQgY2xhaW1zLlwiIEhhc2hlZCBieSBib3RoIHRoZScsXG4gICAgICAgICcgKiBwcmUtcHItdmVyaWZ5IHdvcmtmbG93ICh0byBlbWJlZCBpbiB0aGUgUFJcXCdzIGF0dGVzdGF0aW9uKSBhbmQgdGhlJyxcbiAgICAgICAgJyAqIHZlcmlmeS1hdHRlc3RhdGlvbiBHaXRIdWIgQWN0aW9uICh0byBjaGVjayBub3RoaW5nIGRyaWZ0ZWQgc2luY2UpLiBLZWVwaW5nJyxcbiAgICAgICAgJyAqIG9uZSBsaXN0IGluIG9uZSBmaWxlIGlzIHdoYXQga2VlcHMgZ2VuZXJhdG9yIGFuZCBjaGVja2VyIGZyb20gZGlzYWdyZWVpbmcnLFxuICAgICAgICAnICogYWJvdXQgd2hhdCBcInRoZSBjb25maWdcIiBldmVuIGlzLicsXG4gICAgICAgICcgKi8nLFxuICAgICAgICBcImltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdub2RlOmNyeXB0byc7XCIsXG4gICAgICAgIFwiaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XCIsXG4gICAgICAgIFwiaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XCIsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGNvbnN0IE1BTklGRVNUX0ZJTEVTOiByZWFkb25seSBzdHJpbmdbXSA9IFsnLFxuICAgICAgICBcIiAgJ3dvcmtmbG93cy93b3JrZmxvdy1wcmUtcHItdmVyaWZ5LnlhbWwnLFwiLFxuICAgICAgICBcIiAgJ3dvcmtmbG93cy93b3JrZmxvdy1vcGVuc3BlYy1wbGFuLXZlcmlmeS55YW1sJyxcIixcbiAgICAgICAgXCIgICd3b3JrZmxvd3Mvd29ya2Zsb3ctb3BlbnNwZWMtdGFza3MtdmVyaWZ5LnlhbWwnLFwiLFxuICAgICAgICBgICAnbW9kZWxzL0Bzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5LyR7b3B0aW9ucy5yZXBvTmFtZX0tZmFjdG9yeS55YW1sJyxgLFxuICAgICAgICBcIiAgJ2FyY2hpdGVjdHVyZS1ydWxlcy9ydWxlcy5qc29uJyxcIixcbiAgICAgICAgXCIgICdhcmNoaXRlY3R1cmUtcnVsZXMvY2hlY2sudHMnLFwiLFxuICAgICAgICBcIiAgJ29wZW5zcGVjLWdhdGVzL2NoZWNrLXRhc2tzLWNvbXBsZXRlLnRzJyxcIixcbiAgICAgICAgXCIgICdDTEFVREUubWQnLFwiLFxuICAgICAgICBcIiAgJ2F0dGVzdGF0aW9uL21hbmlmZXN0LnRzJyxcIixcbiAgICAgICAgXCIgICdhdHRlc3RhdGlvbi92ZXJpZnkudHMnLFwiLFxuICAgICAgICBcIiAgJy5wcm9qZW4vdGFza3MuanNvbicsXCIsXG4gICAgICAgICddOycsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGludGVyZmFjZSBNYW5pZmVzdCB7JyxcbiAgICAgICAgJyAgZ2VuZXJhdGVkQXQ6IHN0cmluZzsnLFxuICAgICAgICAnICBmaWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICBcImV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTWFuaWZlc3QocmVwb1Jvb3Q6IHN0cmluZyA9IGpvaW4oX19kaXJuYW1lLCAnLi4nKSk6IE1hbmlmZXN0IHtcIixcbiAgICAgICAgJyAgY29uc3QgZmlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTsnLFxuICAgICAgICAnICBmb3IgKGNvbnN0IHJlbGF0aXZlUGF0aCBvZiBNQU5JRkVTVF9GSUxFUykgeycsXG4gICAgICAgICcgICAgY29uc3QgY29udGVudHMgPSByZWFkRmlsZVN5bmMoam9pbihyZXBvUm9vdCwgcmVsYXRpdmVQYXRoKSk7JyxcbiAgICAgICAgXCIgICAgZmlsZXNbcmVsYXRpdmVQYXRoXSA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShjb250ZW50cykuZGlnZXN0KCdoZXgnKTtcIixcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgIHJldHVybiB7IGdlbmVyYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIGZpbGVzIH07JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2lmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkgeycsXG4gICAgICAgICcgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGNvbXB1dGVNYW5pZmVzdCgpLCBudWxsLCAyKSk7JyxcbiAgICAgICAgJ30nLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBUZXh0RmlsZShwcm9qZWN0LCAnYXR0ZXN0YXRpb24vdmVyaWZ5LnRzJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgJy8qKicsXG4gICAgICAgICcgKiBDaGVja3MgdGhlIGA8IS0tIGF0dGVzdGF0aW9uLW1hbmlmZXN0IC4uLiAtLT5gIGJsb2NrIGEgZmFjdG9yeS1vcGVuZWQgUFInLFxuICAgICAgICAnICogZW1iZWRzIGluIGl0cyBib2R5IChzZWUgdGhlIG9wZW4tcHIgc3RhZ2UgaW4nLFxuICAgICAgICBgICogbW9kZWxzL0Bzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5LyR7b3B0aW9ucy5yZXBvTmFtZX0tZmFjdG9yeS55YW1sKSBhZ2FpbnN0IHJlYWxpdHkgYXQgdGhlYCxcbiAgICAgICAgJyAqIGNvbW1pdCBiZWluZyBtZXJnZWQuIFBlciBzdGFjazcyLmRldi9haS1icm9rZS10aGUtYXNzdW1wdGlvbnMtYmVoaW5kLWNpLzonLFxuICAgICAgICAnICogdGhpcyBwcm92ZXMgdGhlIHZlcmlmaWNhdGlvbi1yZWxldmFudCBjb25maWcgaGFzblxcJ3QgZHJpZnRlZCBzaW5jZSB0aGUnLFxuICAgICAgICAnICogYXR0ZXN0YXRpb24gd2FzIGdlbmVyYXRlZCDigJQgaXQgZG9lcyBOT1QgaW5kZXBlbmRlbnRseSBwcm92ZSB0aGUgdGVzdHMnLFxuICAgICAgICAnICogaW4gdGhhdCBhdHRlc3RhdGlvbiBhY3R1YWxseSByYW4uIFRoYXRcXCdzIGFuIGFjY2VwdGVkIGxpbWl0YXRpb24sIG5vdCBhbicsXG4gICAgICAgICcgKiBvdmVyc2lnaHQ7IHNlZSB0aGUgYXJ0aWNsZSBhbmQgYXR0ZXN0YXRpb24vbWFuaWZlc3QudHNcXCdzIG93biBjb21tZW50LicsXG4gICAgICAgICcgKi8nLFxuICAgICAgICBcImltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1wiLFxuICAgICAgICBcImltcG9ydCB7IGNvbXB1dGVNYW5pZmVzdCwgdHlwZSBNYW5pZmVzdCB9IGZyb20gJy4vbWFuaWZlc3QnO1wiLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2NvbnN0IE1BWF9BR0VfTVMgPSA3ICogMjQgKiA2MCAqIDYwICogMTAwMDsgLy8gNyBkYXlzJyxcbiAgICAgICAgJy8vIEdsb2JhbCwgYW5kIGRlbGliZXJhdGVseSBsb29zZSBhYm91dCB3aGF0XFwncyAqYmV0d2VlbiogdGhlIG1hcmtlciBhbmQgdGhlJyxcbiAgICAgICAgJy8vIGJsb2NrXFwncyBvd24gY2xvc2luZyBcIi0tPlwiIOKAlCBQUiBib2RpZXMgY2FuIChhbmQsIGl0IHR1cm5zIG91dCwgZG8pIG1lbnRpb24nLFxuICAgICAgICAnLy8gdGhlIGxpdGVyYWwgXCI8IS0tIGF0dGVzdGF0aW9uLW1hbmlmZXN0IC0tPlwiIHN5bnRheCBpbiBwcm9zZSBkZXNjcmliaW5nJyxcbiAgICAgICAgJy8vIHRoaXMgbWVjaGFuaXNtLiBFYWNoIG1hdGNoIGlzIGluZGVwZW5kZW50bHkgdmFsaWRhdGVkIGJlbG93OyBhIG1lbnRpb24nLFxuICAgICAgICAnLy8gd2l0aCBubyBKU09OIGluc2lkZSBpdCBpcyBza2lwcGVkIHJhdGhlciB0aGFuIHRyZWF0ZWQgYXMgYSBwYXJzZSBlcnJvci4nLFxuICAgICAgICAnY29uc3QgTUFOSUZFU1RfQkxPQ0tfUkUgPSAvPCEtLVxcXFxzKmF0dGVzdGF0aW9uLW1hbmlmZXN0KFtcXFxcc1xcXFxTXSo/KS0tPi9nOycsXG4gICAgICAgICcnLFxuICAgICAgICAnaW50ZXJmYWNlIEVtYmVkZGVkTWFuaWZlc3QgZXh0ZW5kcyBNYW5pZmVzdCB7JyxcbiAgICAgICAgJyAgY29tbWl0OiBzdHJpbmc7JyxcbiAgICAgICAgJyAgc3RhdHVzOiBzdHJpbmc7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2Z1bmN0aW9uIGlzRW1iZWRkZWRNYW5pZmVzdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEVtYmVkZGVkTWFuaWZlc3QgeycsXG4gICAgICAgICcgIGNvbnN0IGNhbmRpZGF0ZSA9IHZhbHVlIGFzIFBhcnRpYWw8RW1iZWRkZWRNYW5pZmVzdD4gfCBudWxsOycsXG4gICAgICAgICcgIHJldHVybiAoJyxcbiAgICAgICAgXCIgICAgdHlwZW9mIGNhbmRpZGF0ZSA9PT0gJ29iamVjdCcgJiZcIixcbiAgICAgICAgJyAgICBjYW5kaWRhdGUgIT09IG51bGwgJiYnLFxuICAgICAgICBcIiAgICB0eXBlb2YgY2FuZGlkYXRlLmNvbW1pdCA9PT0gJ3N0cmluZycgJiZcIixcbiAgICAgICAgXCIgICAgdHlwZW9mIGNhbmRpZGF0ZS5zdGF0dXMgPT09ICdzdHJpbmcnICYmXCIsXG4gICAgICAgIFwiICAgIHR5cGVvZiBjYW5kaWRhdGUuZ2VuZXJhdGVkQXQgPT09ICdzdHJpbmcnICYmXCIsXG4gICAgICAgIFwiICAgIHR5cGVvZiBjYW5kaWRhdGUuZmlsZXMgPT09ICdvYmplY3QnICYmXCIsXG4gICAgICAgICcgICAgY2FuZGlkYXRlLmZpbGVzICE9PSBudWxsJyxcbiAgICAgICAgJyAgKTsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICAnLy8gQmFsYW5jZWQtYnJhY2Ugc2NhbiByYXRoZXIgdGhhbiBhIHJlZ2V4IGZvciB0aGUgSlNPTiBpdHNlbGY6IHRoZSBtYW5pZmVzdCcsXG4gICAgICAgICcvLyBoYXMgbmVzdGVkIG9iamVjdHMgKGZpbGVzOiB7Li4ufSksIHNvIGEgbm9uLWdyZWVkeSBgXFxcXHsuKj9cXFxcfWAgd291bGQgc3RvcCBhdCcsXG4gICAgICAgICcvLyB0aGUgZmlyc3QgaW5uZXIgXCJ9XCIgaW5zdGVhZCBvZiB0aGUgcmVhbCBlbmQgb2YgdGhlIG9iamVjdC4nLFxuICAgICAgICAnZnVuY3Rpb24gZXh0cmFjdEJhbGFuY2VkSnNvbih0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHsnLFxuICAgICAgICBcIiAgY29uc3Qgc3RhcnQgPSB0ZXh0LmluZGV4T2YoJ3snKTtcIixcbiAgICAgICAgJyAgaWYgKHN0YXJ0ID09PSAtMSkgcmV0dXJuIG51bGw7JyxcbiAgICAgICAgJyAgbGV0IGRlcHRoID0gMDsnLFxuICAgICAgICAnICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7JyxcbiAgICAgICAgXCIgICAgaWYgKHRleHRbaV0gPT09ICd7JykgZGVwdGgrKztcIixcbiAgICAgICAgXCIgICAgZWxzZSBpZiAodGV4dFtpXSA9PT0gJ30nKSB7XCIsXG4gICAgICAgICcgICAgICBkZXB0aC0tOycsXG4gICAgICAgICcgICAgICBpZiAoZGVwdGggPT09IDApIHJldHVybiB0ZXh0LnNsaWNlKHN0YXJ0LCBpICsgMSk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgIHJldHVybiBudWxsOycsXG4gICAgICAgICd9JyxcbiAgICAgICAgJycsXG4gICAgICAgICdmdW5jdGlvbiBleHRyYWN0RW1iZWRkZWRNYW5pZmVzdChib2R5OiBzdHJpbmcpOiBFbWJlZGRlZE1hbmlmZXN0IHsnLFxuICAgICAgICAnICBsZXQgbWF0Y2hlZEFueUJsb2NrID0gZmFsc2U7JyxcbiAgICAgICAgJyAgZm9yIChjb25zdCBtYXRjaCBvZiBib2R5Lm1hdGNoQWxsKE1BTklGRVNUX0JMT0NLX1JFKSkgeycsXG4gICAgICAgICcgICAgbWF0Y2hlZEFueUJsb2NrID0gdHJ1ZTsnLFxuICAgICAgICAnICAgIGNvbnN0IGpzb25UZXh0ID0gZXh0cmFjdEJhbGFuY2VkSnNvbihtYXRjaFsxXSk7JyxcbiAgICAgICAgJyAgICBpZiAoIWpzb25UZXh0KSBjb250aW51ZTsnLFxuICAgICAgICAnICAgIHRyeSB7JyxcbiAgICAgICAgJyAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoanNvblRleHQpOycsXG4gICAgICAgICcgICAgICBpZiAoaXNFbWJlZGRlZE1hbmlmZXN0KHBhcnNlZCkpIHJldHVybiBwYXJzZWQ7JyxcbiAgICAgICAgJyAgICB9IGNhdGNoIHsnLFxuICAgICAgICAnICAgICAgLy8gTm90IHRoaXMgb25lIOKAlCBrZWVwIGxvb2tpbmcgYXQgdGhlIG5leHQgYXR0ZXN0YXRpb24tbWFuaWZlc3QgbWVudGlvbi4nLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJyAgdGhyb3cgbmV3IEVycm9yKCcsXG4gICAgICAgICcgICAgbWF0Y2hlZEFueUJsb2NrJyxcbiAgICAgICAgXCIgICAgICA/ICdGb3VuZCA8IS0tIGF0dGVzdGF0aW9uLW1hbmlmZXN0IC0tPiBtZW50aW9uKHMpIGluIHRoZSBQUiBib2R5LCBidXQgbm9uZSBjb250YWluZWQgYSBjb21wbGV0ZSwgdmFsaWQgbWFuaWZlc3QuJ1wiLFxuICAgICAgICBcIiAgICAgIDogJ05vIDwhLS0gYXR0ZXN0YXRpb24tbWFuaWZlc3QgLS0+IGJsb2NrIGZvdW5kIGluIHRoZSBQUiBib2R5LiBUaGlzIFBSIHdhcyBuZXZlciB2ZXJpZmllZCBieSAnICtcIixcbiAgICAgICAgJyAgICAgICAgXFwncHJlLXByLXZlcmlmeSAob3IgdGhlIGJsb2NrIHdhcyByZW1vdmVkKSDigJQgcnVuIHRoZSBmYWN0b3J5XFxcXFxcJ3MgcHJlLXByLXZlcmlmeSB3b3JrZmxvdyBhbmQgcmUtb3Blbi91cGRhdGUgdGhlIFBSLlxcJywnLFxuICAgICAgICAnICApOycsXG4gICAgICAgICd9JyxcbiAgICAgICAgJycsXG4gICAgICAgICdmdW5jdGlvbiB2ZXJpZnkocHJCb2R5OiBzdHJpbmcsIGV4cGVjdGVkQ29tbWl0OiBzdHJpbmcpOiBzdHJpbmdbXSB7JyxcbiAgICAgICAgJyAgbGV0IGVtYmVkZGVkOiBFbWJlZGRlZE1hbmlmZXN0OycsXG4gICAgICAgICcgIHRyeSB7JyxcbiAgICAgICAgJyAgICBlbWJlZGRlZCA9IGV4dHJhY3RFbWJlZGRlZE1hbmlmZXN0KHByQm9keSk7JyxcbiAgICAgICAgJyAgfSBjYXRjaCAoZXJyKSB7JyxcbiAgICAgICAgJyAgICByZXR1cm4gW2VyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKV07JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIGlmIChlbWJlZGRlZC5jb21taXQgIT09IGV4cGVjdGVkQ29tbWl0KSB7JyxcbiAgICAgICAgJyAgICBlcnJvcnMucHVzaCgnLFxuICAgICAgICAnICAgICAgYEF0dGVzdGF0aW9uIGlzIGZvciBjb21taXQgJHtlbWJlZGRlZC5jb21taXR9LCBidXQgdGhlIFBSXFwncyBoZWFkIGNvbW1pdCBpcyAke2V4cGVjdGVkQ29tbWl0fS4gYCArJyxcbiAgICAgICAgXCIgICAgICAnTmV3IGNvbW1pdHMgd2VyZSBwdXNoZWQgd2l0aG91dCByZS1ydW5uaW5nIHByZS1wci12ZXJpZnkuJyxcIixcbiAgICAgICAgJyAgICApOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgXCIgIGlmIChlbWJlZGRlZC5zdGF0dXMgIT09ICdzdWNjZWVkZWQnKSB7XCIsXG4gICAgICAgICcgICAgZXJyb3JzLnB1c2goYEF0dGVzdGF0aW9uIHN0YXR1cyBpcyBcIiR7ZW1iZWRkZWQuc3RhdHVzfVwiLCBub3QgXCJzdWNjZWVkZWRcIi5gKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIGNvbnN0IGFnZU1zID0gRGF0ZS5ub3coKSAtIERhdGUucGFyc2UoZW1iZWRkZWQuZ2VuZXJhdGVkQXQpOycsXG4gICAgICAgICcgIGlmICghTnVtYmVyLmlzRmluaXRlKGFnZU1zKSkgeycsXG4gICAgICAgICcgICAgZXJyb3JzLnB1c2goYEF0dGVzdGF0aW9uIGdlbmVyYXRlZEF0IChcIiR7ZW1iZWRkZWQuZ2VuZXJhdGVkQXR9XCIpIGlzIG5vdCBhIHBhcnNlYWJsZSB0aW1lc3RhbXAuYCk7JyxcbiAgICAgICAgJyAgfSBlbHNlIGlmIChhZ2VNcyA+IE1BWF9BR0VfTVMpIHsnLFxuICAgICAgICAnICAgIGVycm9ycy5wdXNoKGBBdHRlc3RhdGlvbiBpcyAke01hdGguZmxvb3IoYWdlTXMgLyAoMjQgKiA2MCAqIDYwICogMTAwMCkpfSBkYXlzIG9sZCAobWF4ICR7TUFYX0FHRV9NUyAvICgyNCAqIDYwICogNjAgKiAxMDAwKX0pIOKAlCByZS1ydW4gcHJlLXByLXZlcmlmeS5gKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIGNvbnN0IGFjdHVhbCA9IGNvbXB1dGVNYW5pZmVzdCgpOycsXG4gICAgICAgICcgIGZvciAoY29uc3QgZmlsZSBvZiBPYmplY3Qua2V5cyhhY3R1YWwuZmlsZXMpKSB7JyxcbiAgICAgICAgJyAgICBpZiAoZW1iZWRkZWQuZmlsZXNbZmlsZV0gIT09IGFjdHVhbC5maWxlc1tmaWxlXSkgeycsXG4gICAgICAgICcgICAgICBlcnJvcnMucHVzaChgJHtmaWxlfSBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgYXR0ZXN0YXRpb24gd2FzIGdlbmVyYXRlZCAoZXhwZWN0ZWQgJHtlbWJlZGRlZC5maWxlc1tmaWxlXSA/PyBcXCdtaXNzaW5nXFwnfSwgZ290ICR7YWN0dWFsLmZpbGVzW2ZpbGVdfSkuYCk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgIGZvciAoY29uc3QgZmlsZSBvZiBPYmplY3Qua2V5cyhlbWJlZGRlZC5maWxlcykpIHsnLFxuICAgICAgICAnICAgIGlmICghKGZpbGUgaW4gYWN0dWFsLmZpbGVzKSkgeycsXG4gICAgICAgICcgICAgICBlcnJvcnMucHVzaChgJHtmaWxlfSBpcyBpbiB0aGUgYXR0ZXN0YXRpb24gbWFuaWZlc3QgYnV0IG5vIGxvbmdlciBpbiB0aGUgY3VycmVudCBmaWxlIGxpc3QgKGF0dGVzdGF0aW9uL21hbmlmZXN0LnRzXFwncyBNQU5JRkVTVF9GSUxFUyBjaGFuZ2VkKS5gKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHJldHVybiBlcnJvcnM7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2Z1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IHsgYm9keUZpbGU6IHN0cmluZzsgY29tbWl0OiBzdHJpbmcgfSB7JyxcbiAgICAgICAgXCIgIGNvbnN0IGJvZHlGaWxlID0gYXJndlthcmd2LmluZGV4T2YoJy0tYm9keS1maWxlJykgKyAxXTtcIixcbiAgICAgICAgXCIgIGNvbnN0IGNvbW1pdCA9IGFyZ3ZbYXJndi5pbmRleE9mKCctLWNvbW1pdCcpICsgMV07XCIsXG4gICAgICAgICcgIGlmICghYm9keUZpbGUgfHwgIWNvbW1pdCkgeycsXG4gICAgICAgIFwiICAgIHRocm93IG5ldyBFcnJvcignVXNhZ2U6IHZlcmlmeS50cyAtLWJvZHktZmlsZSA8cGF0aD4gLS1jb21taXQgPHNoYT4nKTtcIixcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgIHJldHVybiB7IGJvZHlGaWxlLCBjb21taXQgfTsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICAnaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7JyxcbiAgICAgICAgJyAgY29uc3QgeyBib2R5RmlsZSwgY29tbWl0IH0gPSBwYXJzZUFyZ3MocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKTsnLFxuICAgICAgICBcIiAgY29uc3QgcHJCb2R5ID0gcmVhZEZpbGVTeW5jKGJvZHlGaWxlLCAndXRmOCcpO1wiLFxuICAgICAgICAnICBjb25zdCBlcnJvcnMgPSB2ZXJpZnkocHJCb2R5LCBjb21taXQpOycsXG4gICAgICAgICcgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkgeycsXG4gICAgICAgIFwiICAgIGNvbnNvbGUuZXJyb3IoJ0F0dGVzdGF0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6XFxcXG4nKTtcIixcbiAgICAgICAgJyAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGVycm9ycykgeycsXG4gICAgICAgICcgICAgICBjb25zb2xlLmVycm9yKGAgIC0gJHtlcnJvcn1gKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnICAgIHByb2Nlc3MuZXhpdCgxKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJyAgY29uc29sZS5sb2coYEF0dGVzdGF0aW9uIHZlcmlmaWVkOiBjb21taXQgJHtjb21taXR9LCBhbGwgJHtPYmplY3Qua2V5cyhjb21wdXRlTWFuaWZlc3QoKS5maWxlcykubGVuZ3RofSB0cmFja2VkIGZpbGVzIG1hdGNoLmApOycsXG4gICAgICAgICd9JyxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgSnNvbkZpbGUocHJvamVjdCwgJ2F0dGVzdGF0aW9uL3RzY29uZmlnLmpzb24nLCB7XG4gICAgICBtYXJrZXI6IGZhbHNlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIGV4dGVuZHM6ICcuLi90c2NvbmZpZy5qc29uJyxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgbm9FbWl0OiB0cnVlLFxuICAgICAgICAgIHJvb3REaXI6ICcuJyxcbiAgICAgICAgfSxcbiAgICAgICAgaW5jbHVkZTogWycqLnRzJ10sXG4gICAgICAgIGV4Y2x1ZGU6IFsnbm9kZV9tb2R1bGVzJ10sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQTRDO0FBcUI1QyxNQUFNLHdCQUF3QixHQUFHLDJDQUEyQyxDQUFDO0FBRTdFLFNBQVMsdUJBQXVCLENBQUMsSUFBWTtJQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDOUYsTUFBTSxJQUFJLEtBQUssQ0FDYixrQ0FBa0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUVBQW1FO1lBQ3pILG1FQUFtRSxDQUNwRSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLDBCQUEwQjtJQUNyQyxZQUFZLE9BQW9CLEVBQUUsT0FBMEM7UUFDMUUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUNsRCxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDNUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDO2dCQUNoQyx1Q0FBdUM7Z0JBQ3ZDLDhDQUE4QztnQkFDOUMsK0NBQStDO2dCQUMvQyxrQ0FBa0MsT0FBTyxDQUFDLFFBQVEsZUFBZTtnQkFDakUsK0JBQStCO2dCQUMvQiw2QkFBNkI7Z0JBQzdCLHdDQUF3QztnQkFDeEMsV0FBVztnQkFDWCx5QkFBeUI7Z0JBQ3pCLHVCQUF1QjtnQkFDdkIsb0JBQW9CO2dCQUNwQixH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M0IsZUFBZSxFQUFFO29CQUNmLE1BQU0sRUFBRSxJQUFJO29CQUNaLE9BQU8sRUFBRSxHQUFHO2lCQUNiO2dCQUNELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztnQkFDakIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM05ELGdFQTJOQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpzb25GaWxlLCBUZXh0RmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBiYXJlIHJlcG8gbmFtZSwgdXNlZCB0byBwb2ludCBNQU5JRkVTVF9GSUxFUyBhdFxuICAgKiBgbW9kZWxzL0Bzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5LzxyZXBvTmFtZT4tZmFjdG9yeS55YW1sYC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGZpbGVzLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290LCBhcHBlbmRlZCB0byBNQU5JRkVTVF9GSUxFUyBhZnRlclxuICAgKiB0aGUgZGVmYXVsdHMgc28gdGhlIGF0dGVzdGF0aW9uIGFsc28gY292ZXJzIHRoZSBwcm9qZWN0J3Mgb3duIHZlcmlmaWNhdGlvblxuICAgKiBjb25maWcuIEVhY2ggZW50cnkgbXVzdCBiZSBhIG5vcm1hbGl6ZWQgUE9TSVggcGF0aCBvZiBsZXR0ZXJzLCBkaWdpdHMgYW5kXG4gICAqIGAuX0ArLWAsIHdpdGggbm8gYC5gIG9yIGAuLmAgc2VnbWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBvbmx5IHRoZSBkZWZhdWx0IGZpbGVzXG4gICAqL1xuICByZWFkb25seSBhdHRlc3RhdGlvbkZpbGVzPzogc3RyaW5nW107XG59XG5cbmNvbnN0IEFUVEVTVEFUSU9OX0ZJTEVfUEFUVEVSTiA9IC9eW0EtWmEtejAtOS5fQCstXSsoXFwvW0EtWmEtejAtOS5fQCstXSspKiQvO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZUF0dGVzdGF0aW9uRmlsZShmaWxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3Qgc2VnbWVudHMgPSBmaWxlLnNwbGl0KCcvJyk7XG4gIGlmICghQVRURVNUQVRJT05fRklMRV9QQVRURVJOLnRlc3QoZmlsZSkgfHwgc2VnbWVudHMuaW5jbHVkZXMoJy4nKSB8fCBzZWdtZW50cy5pbmNsdWRlcygnLi4nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGF0dGVzdGF0aW9uRmlsZXMgZW50cnkgJHtKU09OLnN0cmluZ2lmeShmaWxlKX06IGV4cGVjdGVkIGEgbm9ybWFsaXplZCBQT1NJWCBwYXRoIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QsIGAgK1xuICAgICAgJ3VzaW5nIG9ubHkgbGV0dGVycywgZGlnaXRzIGFuZCAuX0ArLSB3aXRoIG5vIFwiLlwiIG9yIFwiLi5cIiBzZWdtZW50LicsXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSB0YW1wZXItZXZpZGVudCBQUiBhdHRlc3RhdGlvbiBtZWNoYW5pc206IGBtYW5pZmVzdC50c2AgaGFzaGVzIHRoZVxuICogZmlsZXMgdGhhdCBkZXRlcm1pbmUgd2hhdCBwcmUtcHItdmVyaWZ5IGNoZWNrZWQsIGB2ZXJpZnkudHNgIHJlLWNoZWNrc1xuICogdGhvc2UgaGFzaGVzIChwbHVzIGNvbW1pdC9zdGF0dXMvZnJlc2huZXNzKSBhZ2FpbnN0IGEgUFIncyBlbWJlZGRlZFxuICogYDwhLS0gYXR0ZXN0YXRpb24tbWFuaWZlc3QgLS0+YCBibG9jayBhdCBtZXJnZSB0aW1lLiBGdWxseSBnZW5lcmljIGVuZ2luZVxuICogbG9naWMg4oCUIEJhdG1hbiBvd25zIGFuZCBldm9sdmVzIHRoZXNlLCBzbyBib3RoIGFyZSBtYW5hZ2VkIGBUZXh0RmlsZWBzLlxuICovXG5leHBvcnQgY2xhc3MgU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb25PcHRpb25zKSB7XG4gICAgY29uc3QgZXh0cmFGaWxlcyA9IG9wdGlvbnMuYXR0ZXN0YXRpb25GaWxlcyA/PyBbXTtcbiAgICBleHRyYUZpbGVzLmZvckVhY2godmFsaWRhdGVBdHRlc3RhdGlvbkZpbGUpO1xuICAgIGNvbnN0IG1hbmlmZXN0RmlsZXMgPSBbLi4ubmV3IFNldChbXG4gICAgICAnd29ya2Zsb3dzL3dvcmtmbG93LXByZS1wci12ZXJpZnkueWFtbCcsXG4gICAgICAnd29ya2Zsb3dzL3dvcmtmbG93LW9wZW5zcGVjLXBsYW4tdmVyaWZ5LnlhbWwnLFxuICAgICAgJ3dvcmtmbG93cy93b3JrZmxvdy1vcGVuc3BlYy10YXNrcy12ZXJpZnkueWFtbCcsXG4gICAgICBgbW9kZWxzL0Bzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5LyR7b3B0aW9ucy5yZXBvTmFtZX0tZmFjdG9yeS55YW1sYCxcbiAgICAgICdhcmNoaXRlY3R1cmUtcnVsZXMvcnVsZXMuanNvbicsXG4gICAgICAnYXJjaGl0ZWN0dXJlLXJ1bGVzL2NoZWNrLnRzJyxcbiAgICAgICdvcGVuc3BlYy1nYXRlcy9jaGVjay10YXNrcy1jb21wbGV0ZS50cycsXG4gICAgICAnQ0xBVURFLm1kJyxcbiAgICAgICdhdHRlc3RhdGlvbi9tYW5pZmVzdC50cycsXG4gICAgICAnYXR0ZXN0YXRpb24vdmVyaWZ5LnRzJyxcbiAgICAgICcucHJvamVuL3Rhc2tzLmpzb24nLFxuICAgICAgLi4uZXh0cmFGaWxlcyxcbiAgICBdKV07XG5cbiAgICBuZXcgVGV4dEZpbGUocHJvamVjdCwgJ2F0dGVzdGF0aW9uL21hbmlmZXN0LnRzJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgJy8qKicsXG4gICAgICAgICcgKiBTaW5nbGUgc291cmNlIG9mIHRydXRoIGZvciB3aGljaCBmaWxlc1xcJyBjb250ZW50IGRldGVybWluZXMgXCJ3YXMgdGhpcyBQUicsXG4gICAgICAgICcgKiBhY3R1YWxseSB2ZXJpZmllZCBhZ2FpbnN0IHRoZSBydWxlcyBpdCBjbGFpbXMuXCIgSGFzaGVkIGJ5IGJvdGggdGhlJyxcbiAgICAgICAgJyAqIHByZS1wci12ZXJpZnkgd29ya2Zsb3cgKHRvIGVtYmVkIGluIHRoZSBQUlxcJ3MgYXR0ZXN0YXRpb24pIGFuZCB0aGUnLFxuICAgICAgICAnICogdmVyaWZ5LWF0dGVzdGF0aW9uIEdpdEh1YiBBY3Rpb24gKHRvIGNoZWNrIG5vdGhpbmcgZHJpZnRlZCBzaW5jZSkuIEtlZXBpbmcnLFxuICAgICAgICAnICogb25lIGxpc3QgaW4gb25lIGZpbGUgaXMgd2hhdCBrZWVwcyBnZW5lcmF0b3IgYW5kIGNoZWNrZXIgZnJvbSBkaXNhZ3JlZWluZycsXG4gICAgICAgICcgKiBhYm91dCB3aGF0IFwidGhlIGNvbmZpZ1wiIGV2ZW4gaXMuJyxcbiAgICAgICAgJyAqLycsXG4gICAgICAgIFwiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ25vZGU6Y3J5cHRvJztcIixcbiAgICAgICAgXCJpbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcIixcbiAgICAgICAgXCJpbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcIixcbiAgICAgICAgJycsXG4gICAgICAgICdleHBvcnQgY29uc3QgTUFOSUZFU1RfRklMRVM6IHJlYWRvbmx5IHN0cmluZ1tdID0gWycsXG4gICAgICAgIC4uLm1hbmlmZXN0RmlsZXMubWFwKChmaWxlKSA9PiBgICAnJHtmaWxlfScsYCksXG4gICAgICAgICddOycsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGludGVyZmFjZSBNYW5pZmVzdCB7JyxcbiAgICAgICAgJyAgZ2VuZXJhdGVkQXQ6IHN0cmluZzsnLFxuICAgICAgICAnICBmaWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICBcImV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTWFuaWZlc3QocmVwb1Jvb3Q6IHN0cmluZyA9IGpvaW4oX19kaXJuYW1lLCAnLi4nKSk6IE1hbmlmZXN0IHtcIixcbiAgICAgICAgJyAgY29uc3QgZmlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTsnLFxuICAgICAgICAnICBmb3IgKGNvbnN0IHJlbGF0aXZlUGF0aCBvZiBNQU5JRkVTVF9GSUxFUykgeycsXG4gICAgICAgICcgICAgY29uc3QgY29udGVudHMgPSByZWFkRmlsZVN5bmMoam9pbihyZXBvUm9vdCwgcmVsYXRpdmVQYXRoKSk7JyxcbiAgICAgICAgXCIgICAgZmlsZXNbcmVsYXRpdmVQYXRoXSA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShjb250ZW50cykuZGlnZXN0KCdoZXgnKTtcIixcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgIHJldHVybiB7IGdlbmVyYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIGZpbGVzIH07JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2lmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkgeycsXG4gICAgICAgICcgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGNvbXB1dGVNYW5pZmVzdCgpLCBudWxsLCAyKSk7JyxcbiAgICAgICAgJ30nLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBUZXh0RmlsZShwcm9qZWN0LCAnYXR0ZXN0YXRpb24vdmVyaWZ5LnRzJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgJy8qKicsXG4gICAgICAgICcgKiBDaGVja3MgdGhlIGA8IS0tIGF0dGVzdGF0aW9uLW1hbmlmZXN0IC4uLiAtLT5gIGJsb2NrIGEgZmFjdG9yeS1vcGVuZWQgUFInLFxuICAgICAgICAnICogZW1iZWRzIGluIGl0cyBib2R5IChzZWUgdGhlIG9wZW4tcHIgc3RhZ2UgaW4nLFxuICAgICAgICBgICogbW9kZWxzL0Bzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5LyR7b3B0aW9ucy5yZXBvTmFtZX0tZmFjdG9yeS55YW1sKSBhZ2FpbnN0IHJlYWxpdHkgYXQgdGhlYCxcbiAgICAgICAgJyAqIGNvbW1pdCBiZWluZyBtZXJnZWQuIFBlciBzdGFjazcyLmRldi9haS1icm9rZS10aGUtYXNzdW1wdGlvbnMtYmVoaW5kLWNpLzonLFxuICAgICAgICAnICogdGhpcyBwcm92ZXMgdGhlIHZlcmlmaWNhdGlvbi1yZWxldmFudCBjb25maWcgaGFzblxcJ3QgZHJpZnRlZCBzaW5jZSB0aGUnLFxuICAgICAgICAnICogYXR0ZXN0YXRpb24gd2FzIGdlbmVyYXRlZCDigJQgaXQgZG9lcyBOT1QgaW5kZXBlbmRlbnRseSBwcm92ZSB0aGUgdGVzdHMnLFxuICAgICAgICAnICogaW4gdGhhdCBhdHRlc3RhdGlvbiBhY3R1YWxseSByYW4uIFRoYXRcXCdzIGFuIGFjY2VwdGVkIGxpbWl0YXRpb24sIG5vdCBhbicsXG4gICAgICAgICcgKiBvdmVyc2lnaHQ7IHNlZSB0aGUgYXJ0aWNsZSBhbmQgYXR0ZXN0YXRpb24vbWFuaWZlc3QudHNcXCdzIG93biBjb21tZW50LicsXG4gICAgICAgICcgKi8nLFxuICAgICAgICBcImltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1wiLFxuICAgICAgICBcImltcG9ydCB7IGNvbXB1dGVNYW5pZmVzdCwgdHlwZSBNYW5pZmVzdCB9IGZyb20gJy4vbWFuaWZlc3QnO1wiLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2NvbnN0IE1BWF9BR0VfTVMgPSA3ICogMjQgKiA2MCAqIDYwICogMTAwMDsgLy8gNyBkYXlzJyxcbiAgICAgICAgJy8vIEdsb2JhbCwgYW5kIGRlbGliZXJhdGVseSBsb29zZSBhYm91dCB3aGF0XFwncyAqYmV0d2VlbiogdGhlIG1hcmtlciBhbmQgdGhlJyxcbiAgICAgICAgJy8vIGJsb2NrXFwncyBvd24gY2xvc2luZyBcIi0tPlwiIOKAlCBQUiBib2RpZXMgY2FuIChhbmQsIGl0IHR1cm5zIG91dCwgZG8pIG1lbnRpb24nLFxuICAgICAgICAnLy8gdGhlIGxpdGVyYWwgXCI8IS0tIGF0dGVzdGF0aW9uLW1hbmlmZXN0IC0tPlwiIHN5bnRheCBpbiBwcm9zZSBkZXNjcmliaW5nJyxcbiAgICAgICAgJy8vIHRoaXMgbWVjaGFuaXNtLiBFYWNoIG1hdGNoIGlzIGluZGVwZW5kZW50bHkgdmFsaWRhdGVkIGJlbG93OyBhIG1lbnRpb24nLFxuICAgICAgICAnLy8gd2l0aCBubyBKU09OIGluc2lkZSBpdCBpcyBza2lwcGVkIHJhdGhlciB0aGFuIHRyZWF0ZWQgYXMgYSBwYXJzZSBlcnJvci4nLFxuICAgICAgICAnY29uc3QgTUFOSUZFU1RfQkxPQ0tfUkUgPSAvPCEtLVxcXFxzKmF0dGVzdGF0aW9uLW1hbmlmZXN0KFtcXFxcc1xcXFxTXSo/KS0tPi9nOycsXG4gICAgICAgICcnLFxuICAgICAgICAnaW50ZXJmYWNlIEVtYmVkZGVkTWFuaWZlc3QgZXh0ZW5kcyBNYW5pZmVzdCB7JyxcbiAgICAgICAgJyAgY29tbWl0OiBzdHJpbmc7JyxcbiAgICAgICAgJyAgc3RhdHVzOiBzdHJpbmc7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2Z1bmN0aW9uIGlzRW1iZWRkZWRNYW5pZmVzdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEVtYmVkZGVkTWFuaWZlc3QgeycsXG4gICAgICAgICcgIGNvbnN0IGNhbmRpZGF0ZSA9IHZhbHVlIGFzIFBhcnRpYWw8RW1iZWRkZWRNYW5pZmVzdD4gfCBudWxsOycsXG4gICAgICAgICcgIHJldHVybiAoJyxcbiAgICAgICAgXCIgICAgdHlwZW9mIGNhbmRpZGF0ZSA9PT0gJ29iamVjdCcgJiZcIixcbiAgICAgICAgJyAgICBjYW5kaWRhdGUgIT09IG51bGwgJiYnLFxuICAgICAgICBcIiAgICB0eXBlb2YgY2FuZGlkYXRlLmNvbW1pdCA9PT0gJ3N0cmluZycgJiZcIixcbiAgICAgICAgXCIgICAgdHlwZW9mIGNhbmRpZGF0ZS5zdGF0dXMgPT09ICdzdHJpbmcnICYmXCIsXG4gICAgICAgIFwiICAgIHR5cGVvZiBjYW5kaWRhdGUuZ2VuZXJhdGVkQXQgPT09ICdzdHJpbmcnICYmXCIsXG4gICAgICAgIFwiICAgIHR5cGVvZiBjYW5kaWRhdGUuZmlsZXMgPT09ICdvYmplY3QnICYmXCIsXG4gICAgICAgICcgICAgY2FuZGlkYXRlLmZpbGVzICE9PSBudWxsJyxcbiAgICAgICAgJyAgKTsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICAnLy8gQmFsYW5jZWQtYnJhY2Ugc2NhbiByYXRoZXIgdGhhbiBhIHJlZ2V4IGZvciB0aGUgSlNPTiBpdHNlbGY6IHRoZSBtYW5pZmVzdCcsXG4gICAgICAgICcvLyBoYXMgbmVzdGVkIG9iamVjdHMgKGZpbGVzOiB7Li4ufSksIHNvIGEgbm9uLWdyZWVkeSBgXFxcXHsuKj9cXFxcfWAgd291bGQgc3RvcCBhdCcsXG4gICAgICAgICcvLyB0aGUgZmlyc3QgaW5uZXIgXCJ9XCIgaW5zdGVhZCBvZiB0aGUgcmVhbCBlbmQgb2YgdGhlIG9iamVjdC4nLFxuICAgICAgICAnZnVuY3Rpb24gZXh0cmFjdEJhbGFuY2VkSnNvbih0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHsnLFxuICAgICAgICBcIiAgY29uc3Qgc3RhcnQgPSB0ZXh0LmluZGV4T2YoJ3snKTtcIixcbiAgICAgICAgJyAgaWYgKHN0YXJ0ID09PSAtMSkgcmV0dXJuIG51bGw7JyxcbiAgICAgICAgJyAgbGV0IGRlcHRoID0gMDsnLFxuICAgICAgICAnICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7JyxcbiAgICAgICAgXCIgICAgaWYgKHRleHRbaV0gPT09ICd7JykgZGVwdGgrKztcIixcbiAgICAgICAgXCIgICAgZWxzZSBpZiAodGV4dFtpXSA9PT0gJ30nKSB7XCIsXG4gICAgICAgICcgICAgICBkZXB0aC0tOycsXG4gICAgICAgICcgICAgICBpZiAoZGVwdGggPT09IDApIHJldHVybiB0ZXh0LnNsaWNlKHN0YXJ0LCBpICsgMSk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgIHJldHVybiBudWxsOycsXG4gICAgICAgICd9JyxcbiAgICAgICAgJycsXG4gICAgICAgICdmdW5jdGlvbiBleHRyYWN0RW1iZWRkZWRNYW5pZmVzdChib2R5OiBzdHJpbmcpOiBFbWJlZGRlZE1hbmlmZXN0IHsnLFxuICAgICAgICAnICBsZXQgbWF0Y2hlZEFueUJsb2NrID0gZmFsc2U7JyxcbiAgICAgICAgJyAgZm9yIChjb25zdCBtYXRjaCBvZiBib2R5Lm1hdGNoQWxsKE1BTklGRVNUX0JMT0NLX1JFKSkgeycsXG4gICAgICAgICcgICAgbWF0Y2hlZEFueUJsb2NrID0gdHJ1ZTsnLFxuICAgICAgICAnICAgIGNvbnN0IGpzb25UZXh0ID0gZXh0cmFjdEJhbGFuY2VkSnNvbihtYXRjaFsxXSk7JyxcbiAgICAgICAgJyAgICBpZiAoIWpzb25UZXh0KSBjb250aW51ZTsnLFxuICAgICAgICAnICAgIHRyeSB7JyxcbiAgICAgICAgJyAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoanNvblRleHQpOycsXG4gICAgICAgICcgICAgICBpZiAoaXNFbWJlZGRlZE1hbmlmZXN0KHBhcnNlZCkpIHJldHVybiBwYXJzZWQ7JyxcbiAgICAgICAgJyAgICB9IGNhdGNoIHsnLFxuICAgICAgICAnICAgICAgLy8gTm90IHRoaXMgb25lIOKAlCBrZWVwIGxvb2tpbmcgYXQgdGhlIG5leHQgYXR0ZXN0YXRpb24tbWFuaWZlc3QgbWVudGlvbi4nLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJyAgdGhyb3cgbmV3IEVycm9yKCcsXG4gICAgICAgICcgICAgbWF0Y2hlZEFueUJsb2NrJyxcbiAgICAgICAgXCIgICAgICA/ICdGb3VuZCA8IS0tIGF0dGVzdGF0aW9uLW1hbmlmZXN0IC0tPiBtZW50aW9uKHMpIGluIHRoZSBQUiBib2R5LCBidXQgbm9uZSBjb250YWluZWQgYSBjb21wbGV0ZSwgdmFsaWQgbWFuaWZlc3QuJ1wiLFxuICAgICAgICBcIiAgICAgIDogJ05vIDwhLS0gYXR0ZXN0YXRpb24tbWFuaWZlc3QgLS0+IGJsb2NrIGZvdW5kIGluIHRoZSBQUiBib2R5LiBUaGlzIFBSIHdhcyBuZXZlciB2ZXJpZmllZCBieSAnICtcIixcbiAgICAgICAgJyAgICAgICAgXFwncHJlLXByLXZlcmlmeSAob3IgdGhlIGJsb2NrIHdhcyByZW1vdmVkKSDigJQgcnVuIHRoZSBmYWN0b3J5XFxcXFxcJ3MgcHJlLXByLXZlcmlmeSB3b3JrZmxvdyBhbmQgcmUtb3Blbi91cGRhdGUgdGhlIFBSLlxcJywnLFxuICAgICAgICAnICApOycsXG4gICAgICAgICd9JyxcbiAgICAgICAgJycsXG4gICAgICAgICdmdW5jdGlvbiB2ZXJpZnkocHJCb2R5OiBzdHJpbmcsIGV4cGVjdGVkQ29tbWl0OiBzdHJpbmcpOiBzdHJpbmdbXSB7JyxcbiAgICAgICAgJyAgbGV0IGVtYmVkZGVkOiBFbWJlZGRlZE1hbmlmZXN0OycsXG4gICAgICAgICcgIHRyeSB7JyxcbiAgICAgICAgJyAgICBlbWJlZGRlZCA9IGV4dHJhY3RFbWJlZGRlZE1hbmlmZXN0KHByQm9keSk7JyxcbiAgICAgICAgJyAgfSBjYXRjaCAoZXJyKSB7JyxcbiAgICAgICAgJyAgICByZXR1cm4gW2VyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKV07JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIGlmIChlbWJlZGRlZC5jb21taXQgIT09IGV4cGVjdGVkQ29tbWl0KSB7JyxcbiAgICAgICAgJyAgICBlcnJvcnMucHVzaCgnLFxuICAgICAgICAnICAgICAgYEF0dGVzdGF0aW9uIGlzIGZvciBjb21taXQgJHtlbWJlZGRlZC5jb21taXR9LCBidXQgdGhlIFBSXFwncyBoZWFkIGNvbW1pdCBpcyAke2V4cGVjdGVkQ29tbWl0fS4gYCArJyxcbiAgICAgICAgXCIgICAgICAnTmV3IGNvbW1pdHMgd2VyZSBwdXNoZWQgd2l0aG91dCByZS1ydW5uaW5nIHByZS1wci12ZXJpZnkuJyxcIixcbiAgICAgICAgJyAgICApOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgXCIgIGlmIChlbWJlZGRlZC5zdGF0dXMgIT09ICdzdWNjZWVkZWQnKSB7XCIsXG4gICAgICAgICcgICAgZXJyb3JzLnB1c2goYEF0dGVzdGF0aW9uIHN0YXR1cyBpcyBcIiR7ZW1iZWRkZWQuc3RhdHVzfVwiLCBub3QgXCJzdWNjZWVkZWRcIi5gKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIGNvbnN0IGFnZU1zID0gRGF0ZS5ub3coKSAtIERhdGUucGFyc2UoZW1iZWRkZWQuZ2VuZXJhdGVkQXQpOycsXG4gICAgICAgICcgIGlmICghTnVtYmVyLmlzRmluaXRlKGFnZU1zKSkgeycsXG4gICAgICAgICcgICAgZXJyb3JzLnB1c2goYEF0dGVzdGF0aW9uIGdlbmVyYXRlZEF0IChcIiR7ZW1iZWRkZWQuZ2VuZXJhdGVkQXR9XCIpIGlzIG5vdCBhIHBhcnNlYWJsZSB0aW1lc3RhbXAuYCk7JyxcbiAgICAgICAgJyAgfSBlbHNlIGlmIChhZ2VNcyA+IE1BWF9BR0VfTVMpIHsnLFxuICAgICAgICAnICAgIGVycm9ycy5wdXNoKGBBdHRlc3RhdGlvbiBpcyAke01hdGguZmxvb3IoYWdlTXMgLyAoMjQgKiA2MCAqIDYwICogMTAwMCkpfSBkYXlzIG9sZCAobWF4ICR7TUFYX0FHRV9NUyAvICgyNCAqIDYwICogNjAgKiAxMDAwKX0pIOKAlCByZS1ydW4gcHJlLXByLXZlcmlmeS5gKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIGNvbnN0IGFjdHVhbCA9IGNvbXB1dGVNYW5pZmVzdCgpOycsXG4gICAgICAgICcgIGZvciAoY29uc3QgZmlsZSBvZiBPYmplY3Qua2V5cyhhY3R1YWwuZmlsZXMpKSB7JyxcbiAgICAgICAgJyAgICBpZiAoZW1iZWRkZWQuZmlsZXNbZmlsZV0gIT09IGFjdHVhbC5maWxlc1tmaWxlXSkgeycsXG4gICAgICAgICcgICAgICBlcnJvcnMucHVzaChgJHtmaWxlfSBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgYXR0ZXN0YXRpb24gd2FzIGdlbmVyYXRlZCAoZXhwZWN0ZWQgJHtlbWJlZGRlZC5maWxlc1tmaWxlXSA/PyBcXCdtaXNzaW5nXFwnfSwgZ290ICR7YWN0dWFsLmZpbGVzW2ZpbGVdfSkuYCk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgIGZvciAoY29uc3QgZmlsZSBvZiBPYmplY3Qua2V5cyhlbWJlZGRlZC5maWxlcykpIHsnLFxuICAgICAgICAnICAgIGlmICghKGZpbGUgaW4gYWN0dWFsLmZpbGVzKSkgeycsXG4gICAgICAgICcgICAgICBlcnJvcnMucHVzaChgJHtmaWxlfSBpcyBpbiB0aGUgYXR0ZXN0YXRpb24gbWFuaWZlc3QgYnV0IG5vIGxvbmdlciBpbiB0aGUgY3VycmVudCBmaWxlIGxpc3QgKGF0dGVzdGF0aW9uL21hbmlmZXN0LnRzXFwncyBNQU5JRkVTVF9GSUxFUyBjaGFuZ2VkKS5gKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHJldHVybiBlcnJvcnM7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2Z1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IHsgYm9keUZpbGU6IHN0cmluZzsgY29tbWl0OiBzdHJpbmcgfSB7JyxcbiAgICAgICAgXCIgIGNvbnN0IGJvZHlGaWxlID0gYXJndlthcmd2LmluZGV4T2YoJy0tYm9keS1maWxlJykgKyAxXTtcIixcbiAgICAgICAgXCIgIGNvbnN0IGNvbW1pdCA9IGFyZ3ZbYXJndi5pbmRleE9mKCctLWNvbW1pdCcpICsgMV07XCIsXG4gICAgICAgICcgIGlmICghYm9keUZpbGUgfHwgIWNvbW1pdCkgeycsXG4gICAgICAgIFwiICAgIHRocm93IG5ldyBFcnJvcignVXNhZ2U6IHZlcmlmeS50cyAtLWJvZHktZmlsZSA8cGF0aD4gLS1jb21taXQgPHNoYT4nKTtcIixcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgIHJldHVybiB7IGJvZHlGaWxlLCBjb21taXQgfTsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICAnaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7JyxcbiAgICAgICAgJyAgY29uc3QgeyBib2R5RmlsZSwgY29tbWl0IH0gPSBwYXJzZUFyZ3MocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKTsnLFxuICAgICAgICBcIiAgY29uc3QgcHJCb2R5ID0gcmVhZEZpbGVTeW5jKGJvZHlGaWxlLCAndXRmOCcpO1wiLFxuICAgICAgICAnICBjb25zdCBlcnJvcnMgPSB2ZXJpZnkocHJCb2R5LCBjb21taXQpOycsXG4gICAgICAgICcgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkgeycsXG4gICAgICAgIFwiICAgIGNvbnNvbGUuZXJyb3IoJ0F0dGVzdGF0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6XFxcXG4nKTtcIixcbiAgICAgICAgJyAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGVycm9ycykgeycsXG4gICAgICAgICcgICAgICBjb25zb2xlLmVycm9yKGAgIC0gJHtlcnJvcn1gKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnICAgIHByb2Nlc3MuZXhpdCgxKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJyAgY29uc29sZS5sb2coYEF0dGVzdGF0aW9uIHZlcmlmaWVkOiBjb21taXQgJHtjb21taXR9LCBhbGwgJHtPYmplY3Qua2V5cyhjb21wdXRlTWFuaWZlc3QoKS5maWxlcykubGVuZ3RofSB0cmFja2VkIGZpbGVzIG1hdGNoLmApOycsXG4gICAgICAgICd9JyxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgSnNvbkZpbGUocHJvamVjdCwgJ2F0dGVzdGF0aW9uL3RzY29uZmlnLmpzb24nLCB7XG4gICAgICBtYXJrZXI6IGZhbHNlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIGV4dGVuZHM6ICcuLi90c2NvbmZpZy5qc29uJyxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgbm9FbWl0OiB0cnVlLFxuICAgICAgICAgIHJvb3REaXI6ICcuJyxcbiAgICAgICAgfSxcbiAgICAgICAgaW5jbHVkZTogWycqLnRzJ10sXG4gICAgICAgIGV4Y2x1ZGU6IFsnbm9kZV9tb2R1bGVzJ10sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -23,6 +23,16 @@ export interface SoftwareFactoryFilesOptions {
23
23
  * Overrides for the pinned action versions used by `verify-attestation.yml`.
24
24
  */
25
25
  readonly actionVersions?: WorkflowActionVersions;
26
+ /**
27
+ * Extra files that the PR attestation manifest also hashes, such as the
28
+ * project's own verification checks. Each entry is an exact file path
29
+ * relative to the project root, in normalized POSIX form, using only
30
+ * letters, digits and `._@+-`, with no `.` or `..` segment; synth fails
31
+ * on any other entry.
32
+ *
33
+ * @default - only the default files
34
+ */
35
+ readonly attestationFiles?: string[];
26
36
  }
27
37
  /**
28
38
  * Backports exman's swamp "software factory" pattern
@@ -34,9 +34,9 @@ const DEFAULT_GITHUB_OWNER = 'macedon-technologies';
34
34
  * workflows that wire them together) is templated.
35
35
  */
36
36
  class SoftwareFactoryFiles {
37
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.SoftwareFactoryFiles", version: "1.28.0" };
37
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.SoftwareFactoryFiles", version: "1.29.0" };
38
38
  constructor(project, options) {
39
- const { repoName, actionVersions } = options;
39
+ const { repoName, actionVersions, attestationFiles } = options;
40
40
  const githubOwner = options.githubOwner || DEFAULT_GITHUB_OWNER;
41
41
  const baseBranch = options.baseBranch || 'main';
42
42
  const secretsVault = `${repoName}-secrets`;
@@ -51,7 +51,7 @@ class SoftwareFactoryFiles {
51
51
  baseBranch,
52
52
  });
53
53
  new SoftwareFactoryArchitectureRules_1.SoftwareFactoryArchitectureRules(project);
54
- new SoftwareFactoryAttestation_1.SoftwareFactoryAttestation(project, { repoName });
54
+ new SoftwareFactoryAttestation_1.SoftwareFactoryAttestation(project, { repoName, attestationFiles });
55
55
  new SoftwareFactoryOpenSpecGates_1.SoftwareFactoryOpenSpecGates(project);
56
56
  new SoftwareFactoryWorkflows_1.SoftwareFactoryWorkflows(project, { repoName, actionVersions });
57
57
  new SoftwareFactoryBootstrap_1.SoftwareFactoryBootstrap(project);
@@ -102,4 +102,4 @@ class SoftwareFactoryFiles {
102
102
  }
103
103
  }
104
104
  exports.SoftwareFactoryFiles = SoftwareFactoryFiles;
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5RmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU29mdHdhcmVGYWN0b3J5RmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLHlGQUFzRjtBQUN0Riw2RUFBMEU7QUFDMUUseUVBQXNFO0FBQ3RFLG1FQUFnRTtBQUNoRSxpRkFBOEU7QUFDOUUseUVBQXNFO0FBR3RFLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUM7QUE4QnBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQWEsb0JBQW9COztJQUMvQixZQUFZLE9BQW9CLEVBQUUsT0FBb0M7UUFDcEUsTUFBTSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUNoRCxNQUFNLFlBQVksR0FBRyxHQUFHLFFBQVEsVUFBVSxDQUFDO1FBQzNDLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLHlFQUF5RTtRQUN6RSxNQUFNLGFBQWEsR0FBRyxpRUFBaUUsQ0FBQztRQUV4RixJQUFJLDZDQUFxQixDQUFDLE9BQU8sRUFBRTtZQUNqQyxRQUFRO1lBQ1IsV0FBVztZQUNYLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLG1FQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlDLElBQUksdURBQTBCLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUV0RCxJQUFJLDJEQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLElBQUksbURBQXdCLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFFcEUsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFO1lBQ3ZDLFdBQVcsRUFBRSxxRkFBcUY7WUFDbEcsSUFBSSxFQUFFLGdGQUFnRjtTQUN2RixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLFdBQVcsRUFBRSwyRkFBMkY7WUFDeEcsSUFBSSxFQUFFLHVGQUF1RjtZQUM3RixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFO1lBQ3RDLFdBQVcsRUFBRSx3R0FBd0c7WUFDckgsSUFBSSxFQUFFLHFFQUFxRTtTQUM1RSxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFO1lBQ3BDLFdBQVcsRUFBRSx5SEFBeUg7WUFDdEksSUFBSSxFQUFFLG1FQUFtRTtZQUN6RSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ2pDLFdBQVcsRUFBRSwrTEFBK0w7WUFDNU0sS0FBSyxFQUFFO2dCQUNMLEVBQUUsSUFBSSxFQUFFLG9GQUFvRixFQUFFO2dCQUM5RixFQUFFLElBQUksRUFBRSx1Q0FBdUMsWUFBWSxFQUFFLEVBQUU7Z0JBQy9EO29CQUNFLElBQUksRUFBRSwrQkFBK0IsWUFBWSwrQ0FBK0M7aUJBQ2pHO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCx3RUFBd0U7UUFDeEUsd0VBQXdFO1FBQ3hFLHlFQUF5RTtRQUN6RSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxELHVFQUF1RTtRQUN2RSx3RUFBd0U7UUFDeEUsdUVBQXVFO1FBQ3ZFLG1FQUFtRTtRQUNuRSxvREFBb0Q7UUFDcEQsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxZQUFZLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNwRCxPQUFPLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O0FBOUVILG9EQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IFNvZnR3YXJlRmFjdG9yeUFyY2hpdGVjdHVyZVJ1bGVzIH0gZnJvbSAnLi9Tb2Z0d2FyZUZhY3RvcnlBcmNoaXRlY3R1cmVSdWxlcyc7XG5pbXBvcnQgeyBTb2Z0d2FyZUZhY3RvcnlBdHRlc3RhdGlvbiB9IGZyb20gJy4vU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb24nO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5Qm9vdHN0cmFwIH0gZnJvbSAnLi9Tb2Z0d2FyZUZhY3RvcnlCb290c3RyYXAnO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5TW9kZWxzIH0gZnJvbSAnLi9Tb2Z0d2FyZUZhY3RvcnlNb2RlbHMnO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5T3BlblNwZWNHYXRlcyB9IGZyb20gJy4vU29mdHdhcmVGYWN0b3J5T3BlblNwZWNHYXRlcyc7XG5pbXBvcnQgeyBTb2Z0d2FyZUZhY3RvcnlXb3JrZmxvd3MgfSBmcm9tICcuL1NvZnR3YXJlRmFjdG9yeVdvcmtmbG93cyc7XG5pbXBvcnQgeyBXb3JrZmxvd0FjdGlvblZlcnNpb25zIH0gZnJvbSAnLi9Xb3JrZmxvd0FjdGlvblZlcnNpb25zJztcblxuY29uc3QgREVGQVVMVF9HSVRIVUJfT1dORVIgPSAnbWFjZWRvbi10ZWNobm9sb2dpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvZnR3YXJlRmFjdG9yeUZpbGVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFyZSByZXBvIG5hbWUgKGUuZy4gYGV4cGVuc2UtdHJhY2tlcmApLCB1c2VkIHRvIGRlcml2ZSB0aGUgZmFjdG9yeSdzXG4gICAqIG1vZGVsIG5hbWVzIChgPHJlcG9OYW1lPi1mYWN0b3J5YCwgYDxyZXBvTmFtZT4taXNzdWVzYCwgYDxyZXBvTmFtZT4tcHJgLFxuICAgKiBgPHJlcG9OYW1lPi1zaGVsbCpgKSBhbmQgdmF1bHQgbmFtZSAoYDxyZXBvTmFtZT4tc2VjcmV0c2ApLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiBvcmcvdXNlciB0aGUgcmVwbyBsaXZlcyBpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ21hY2Vkb24tdGVjaG5vbG9naWVzJ1xuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViT3duZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBicmFuY2ggdGhlIGZhY3Rvcnkgb3BlbnMgcHVsbCByZXF1ZXN0cyBhZ2FpbnN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VCcmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSBgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbGAuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG59XG5cbi8qKlxuICogQmFja3BvcnRzIGV4bWFuJ3Mgc3dhbXAgXCJzb2Z0d2FyZSBmYWN0b3J5XCIgcGF0dGVyblxuICogKG1hY2Vkb24tdGVjaG5vbG9naWVzL2V4bWFuIzEzKSBhcyBnZW5lcmF0ZWQgc2NhZmZvbGRpbmc6IGFcbiAqIGBAc3dhbXAvc29mdHdhcmUtZmFjdG9yeWAgc3RhdGUgbWFjaGluZSB0aGF0IGRyaXZlcyBhIEdpdEh1YiBpc3N1ZSBmcm9tXG4gKiBpbnRha2UgdGhyb3VnaCBhbiBvcGVuZWQgUFIsIGVuZm9yY2luZyBPcGVuU3BlYyB1c2FnZSwgYW4gYXJjaGl0ZWN0dXJlXG4gKiBydWxlIHJlZ2lzdHJ5LCBhbmQgYSBwcmUtUFIgdmVyaWZpY2F0aW9uIGdhdGUgd2hvc2UgYXR0ZXN0YXRpb24gaXNcbiAqIHJlLWNoZWNrZWQgYXQgbWVyZ2UgdGltZS5cbiAqXG4gKiBXaGF0IHN3YW1wIGl0c2VsZiB3b3VsZCBnZW5lcmF0ZSAoZXh0ZW5zaW9uIGRvY3MgcHVsbGVkIHZpYVxuICogYHN3YW1wIGV4dGVuc2lvbiBwdWxsYCwgYC5zd2FtcC55YW1sYCwgdGhlIHZhdWx0LCBhbmQgdGhlIFwic3dhbXAgbWFuYWdlZFxuICogc2VjdGlvblwiIGluIENMQVVERS5tZCkgaXMgZGVsaWJlcmF0ZWx5IE5PVCBoYW5kLXRlbXBsYXRlZCBoZXJlIOKAlCB0aG9zZSBhcmVcbiAqIHByb2R1Y2VkIGJ5IHRoZSByZWFsIGBzd2FtcGAgQ0xJLiBgc3dhbXAgaW5pdGAgaXMgaWRlbXBvdGVudCAoYSBuby1vcCBpZlxuICogdGhlIHJlcG8gaXMgYWxyZWFkeSBpbml0aWFsaXplZCksIHNvIGl0J3Mgd2lyZWQgaW50byB0aGUgcHJvamVjdCdzXG4gKiBgaW5zdGFsbGAvYGluc3RhbGw6Y2lgIHRhc2tzIGFuZCBydW5zIGF1dG9tYXRpY2FsbHkgb24gZXZlcnkgaW5zdGFsbCxcbiAqIGd1YXJkZWQgc28gaXQncyBhIHNpbGVudCBuby1vcCBvbiBhIG1hY2hpbmUgd2l0aG91dCBgc3dhbXBgIG9uIFBBVEggKGUuZy5cbiAqIENJKS4gVGhlIGV4dGVuc2lvbiBwdWxscyAoYXQgdGhlIHZlcnNpb25zIHBpbm5lZCBpbiB0aGUgcmVwbydzXG4gKiBgZXh0ZW5zaW9ucy9tb2RlbHMvdXBzdHJlYW1fZXh0ZW5zaW9ucy5qc29uYCkgYW5kIHZhdWx0IGNyZWF0aW9uIGFyZSBvbmUtdGltZSwgbm90IGlkZW1wb3RlbnRcbiAqIGluIGEgd2F5IHRoYXQncyBzYWZlIHRvIHJlcGVhdCBvbiBldmVyeSBpbnN0YWxsLCBzbyB0aGV5IHN0YXkgaW4gdGhlXG4gKiBgc3dhbXA6Ym9vdHN0cmFwYCB0YXNrIHRoaXMgY29uc3RydWN0IGFkZHMuIE9ubHkgZXhtYW4ncyBvd24gYXV0aG9yZWRcbiAqIGNvbmZpZyAodGhlIGZhY3RvcnkncyBzdGF0ZSBtYWNoaW5lLCB0aGUgYXJjaGl0ZWN0dXJlLXJ1bGUgZW5naW5lLCB0aGVcbiAqIGF0dGVzdGF0aW9uIG1lY2hhbmlzbSwgdGhlIE9wZW5TcGVjIHRhc2stY29tcGxldGlvbiBnYXRlLCB0aGUgbG9ja2ZpbGUtZHJpdmVuXG4gKiBleHRlbnNpb24gcHVsbCwgYW5kIHRoZSAzIHN3YW1wXG4gKiB3b3JrZmxvd3MgdGhhdCB3aXJlIHRoZW0gdG9nZXRoZXIpIGlzIHRlbXBsYXRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvZnR3YXJlRmFjdG9yeUZpbGVzIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IFNvZnR3YXJlRmFjdG9yeUZpbGVzT3B0aW9ucykge1xuICAgIGNvbnN0IHsgcmVwb05hbWUsIGFjdGlvblZlcnNpb25zIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGdpdGh1Yk93bmVyID0gb3B0aW9ucy5naXRodWJPd25lciB8fCBERUZBVUxUX0dJVEhVQl9PV05FUjtcbiAgICBjb25zdCBiYXNlQnJhbmNoID0gb3B0aW9ucy5iYXNlQnJhbmNoIHx8ICdtYWluJztcbiAgICBjb25zdCBzZWNyZXRzVmF1bHQgPSBgJHtyZXBvTmFtZX0tc2VjcmV0c2A7XG4gICAgLy8gQSBzaW5nbGUgcmVkaXJlY3Qgb25seTogcHJvamVuJ3MgYnVpbHQtaW4gY3Jvc3MtcGxhdGZvcm0gdGFzayBzaGVsbFxuICAgIC8vIChkYXgpIHJlamVjdHMgYSBjb21tYW5kIHdpdGggbW9yZSB0aGFuIG9uZSByZWRpcmVjdCAoZS5nLiBjb21iaW5pbmdcbiAgICAvLyBgPi9kZXYvbnVsbGAgd2l0aCBgMj4mMWApIHdpdGggXCJNdWx0aXBsZSByZWRpcmVjdHMgYXJlIGN1cnJlbnRseSBub3RcbiAgICAvLyBzdXBwb3J0ZWRcIiDigJQgY29uZmlybWVkIGJ5IGRvZ2Zvb2RpbmcgdGhpcyBjb25zdHJ1Y3Qgb24gdGhpcyB2ZXJ5IHJlcG8uXG4gICAgY29uc3Qgc3dhbXBJbml0U3RlcCA9ICdjb21tYW5kIC12IHN3YW1wID4vZGV2L251bGwgJiYgc3dhbXAgaW5pdCAtLXRvb2wgY2xhdWRlIHx8IHRydWUnO1xuXG4gICAgbmV3IFNvZnR3YXJlRmFjdG9yeU1vZGVscyhwcm9qZWN0LCB7XG4gICAgICByZXBvTmFtZSxcbiAgICAgIGdpdGh1Yk93bmVyLFxuICAgICAgYmFzZUJyYW5jaCxcbiAgICB9KTtcblxuICAgIG5ldyBTb2Z0d2FyZUZhY3RvcnlBcmNoaXRlY3R1cmVSdWxlcyhwcm9qZWN0KTtcblxuICAgIG5ldyBTb2Z0d2FyZUZhY3RvcnlBdHRlc3RhdGlvbihwcm9qZWN0LCB7IHJlcG9OYW1lIH0pO1xuXG4gICAgbmV3IFNvZnR3YXJlRmFjdG9yeU9wZW5TcGVjR2F0ZXMocHJvamVjdCk7XG5cbiAgICBuZXcgU29mdHdhcmVGYWN0b3J5V29ya2Zsb3dzKHByb2plY3QsIHsgcmVwb05hbWUsIGFjdGlvblZlcnNpb25zIH0pO1xuXG4gICAgbmV3IFNvZnR3YXJlRmFjdG9yeUJvb3RzdHJhcChwcm9qZWN0KTtcblxuICAgIHByb2plY3QuYWRkVGFzaygndmFsaWRhdGU6YXJjaGl0ZWN0dXJlJywge1xuICAgICAgZGVzY3JpcHRpb246ICdSdW4gdGhlIGFyY2hpdGVjdHVyZSBydWxlIHJlZ2lzdHJ5IChhcmNoaXRlY3R1cmUtcnVsZXMvcnVsZXMuanNvbikgYWdhaW5zdCB0aGUgcmVwbycsXG4gICAgICBleGVjOiAndHMtbm9kZSAtLXByb2plY3QgYXJjaGl0ZWN0dXJlLXJ1bGVzL3RzY29uZmlnLmpzb24gYXJjaGl0ZWN0dXJlLXJ1bGVzL2NoZWNrLnRzJyxcbiAgICB9KTtcblxuICAgIHByb2plY3QuYWRkVGFzaygnb3BlbnNwZWM6Y2hlY2stdGFza3MtY29tcGxldGUnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0ZhaWwgdW5sZXNzIGV2ZXJ5IHRhc2sgaW4gdGhlIG5hbWVkIE9wZW5TcGVjIGNoYW5nZSBpcyBjb21wbGV0ZSAodXNhZ2U6IC0tIDxjaGFuZ2Utc2x1Zz4pJyxcbiAgICAgIGV4ZWM6ICd0cy1ub2RlIC0tcHJvamVjdCBvcGVuc3BlYy1nYXRlcy90c2NvbmZpZy5qc29uIG9wZW5zcGVjLWdhdGVzL2NoZWNrLXRhc2tzLWNvbXBsZXRlLnRzJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5hZGRUYXNrKCdhdHRlc3RhdGlvbjptYW5pZmVzdCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUHJpbnQgU0hBMjU2IGNoZWNrc3VtcyBvZiB0aGUgZmlsZXMgYSBQUiBhdHRlc3RhdGlvbiBpcyB2ZXJpZmllZCBhZ2FpbnN0IChzZWUgYXR0ZXN0YXRpb24vbWFuaWZlc3QudHMpJyxcbiAgICAgIGV4ZWM6ICd0cy1ub2RlIC0tcHJvamVjdCBhdHRlc3RhdGlvbi90c2NvbmZpZy5qc29uIGF0dGVzdGF0aW9uL21hbmlmZXN0LnRzJyxcbiAgICB9KTtcblxuICAgIHByb2plY3QuYWRkVGFzaygnYXR0ZXN0YXRpb246dmVyaWZ5Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdWZXJpZnkgYSBQUlxcJ3MgZW1iZWRkZWQgYXR0ZXN0YXRpb24tbWFuaWZlc3QgYWdhaW5zdCB0aGUgY3VycmVudCBjaGVja291dCAodXNhZ2U6IC0tIC0tYm9keS1maWxlIDxwYXRoPiAtLWNvbW1pdCA8c2hhPiknLFxuICAgICAgZXhlYzogJ3RzLW5vZGUgLS1wcm9qZWN0IGF0dGVzdGF0aW9uL3RzY29uZmlnLmpzb24gYXR0ZXN0YXRpb24vdmVyaWZ5LnRzJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5hZGRUYXNrKCdzd2FtcDpib290c3RyYXAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ09uZS10aW1lIHNldHVwOiBwdWxsIHRoZSBzd2FtcCBleHRlbnNpb25zIGF0IHRoZSB2ZXJzaW9ucyBwaW5uZWQgaW4gZXh0ZW5zaW9ucy9tb2RlbHMvdXBzdHJlYW1fZXh0ZW5zaW9ucy5qc29uIGFuZCBjcmVhdGUgdGhlIHNlY3JldHMgdmF1bHQgKHN3YW1wIGluaXQgaXRzZWxmIGFscmVhZHkgcnVucyBvbiBldmVyeSBpbnN0YWxsKScsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7IGV4ZWM6ICd0cy1ub2RlIC0tcHJvamVjdCBzd2FtcC1ib290c3RyYXAvdHNjb25maWcuanNvbiBzd2FtcC1ib290c3RyYXAvcHVsbC1leHRlbnNpb25zLnRzJyB9LFxuICAgICAgICB7IGV4ZWM6IGBzd2FtcCB2YXVsdCBjcmVhdGUgbG9jYWxfZW5jcnlwdGlvbiAke3NlY3JldHNWYXVsdH1gIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiBgZWNobyBcIk5leHQ6IHN3YW1wIHZhdWx0IHB1dCAke3NlY3JldHNWYXVsdH0gR0lUSFVCX1RPS0VOIC0tcmVmcmVzaC1mcm9tICdnaCBhdXRoIHRva2VuJ1wiYCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBgc3dhbXAgaW5pdGAgaXMgc2FmZSB0byByZS1ydW4gKGlkZW1wb3RlbnQgd2hlbiBhbHJlYWR5IGluaXRpYWxpemVkKSxcbiAgICAvLyBzbyBldmVyeSBpbnN0YWxsIGtlZXBzIHRoZSByZXBvIGluaXRpYWxpemVkIHdpdGhvdXQgYSBzZXBhcmF0ZSBtYW51YWxcbiAgICAvLyBzdGVwIOKAlCBpbmNsdWRpbmcgb24gYSBmcmVzaCBjbG9uZSB0aGF0IGhhc24ndCBydW4gc3dhbXA6Ym9vdHN0cmFwIHlldC5cbiAgICBwcm9qZWN0LnBhY2thZ2UuaW5zdGFsbFRhc2suZXhlYyhzd2FtcEluaXRTdGVwKTtcbiAgICBwcm9qZWN0LnBhY2thZ2UuaW5zdGFsbENpVGFzay5leGVjKHN3YW1wSW5pdFN0ZXApO1xuXG4gICAgLy8gTWlycm9ycyB0aGUgcGF0dGVybnMgYHN3YW1wIGluaXRgIGl0c2VsZiB3b3VsZCBhcHBlbmQgdG8gLmdpdGlnbm9yZS5cbiAgICAvLyBwcm9qZW4ncyBJZ25vcmVGaWxlIGZ1bGx5IHJlZ2VuZXJhdGVzIC5naXRpZ25vcmUgZnJvbSBpdHMgb3duIHRyYWNrZWRcbiAgICAvLyBlbnRyaWVzIG9uIGV2ZXJ5IHN5bnRoLCBzbyBhbnl0aGluZyBgc3dhbXAgaW5pdGAgYXBwZW5kcyBvdXQtb2YtYmFuZFxuICAgIC8vIGdldHMgc2lsZW50bHkgd2lwZWQgYnkgdGhlIG5leHQgYG5weCBwcm9qZW5gIHJ1biAoY2F1Z2h0IGJ5IENJJ3NcbiAgICAvLyBzZWxmLW11dGF0aW9uIGNoZWNrKSB1bmxlc3MgaXQncyBhbHNvIGFkZGVkIGhlcmUuXG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoJy5zd2FtcC8nKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLnN3YW1wLXNvdXJjZXMueWFtbCcpO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKCcuY2xhdWRlL3dvcmt0cmVlcy8nKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLmNsYXVkZS9zZXR0aW5ncy5sb2NhbC5qc29uJyk7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoJy5jbGF1ZGUvc2NoZWR1bGVkX3Rhc2tzLmxvY2snKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLmNsYXVkZS9zY2hlZHVsZWRfdGFza3MuanNvbicpO1xuICB9XG59XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5RmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU29mdHdhcmVGYWN0b3J5RmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLHlGQUFzRjtBQUN0Riw2RUFBMEU7QUFDMUUseUVBQXNFO0FBQ3RFLG1FQUFnRTtBQUNoRSxpRkFBOEU7QUFDOUUseUVBQXNFO0FBR3RFLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUM7QUF5Q3BEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQWEsb0JBQW9COztJQUMvQixZQUFZLE9BQW9CLEVBQUUsT0FBb0M7UUFDcEUsTUFBTSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUNoRCxNQUFNLFlBQVksR0FBRyxHQUFHLFFBQVEsVUFBVSxDQUFDO1FBQzNDLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLHlFQUF5RTtRQUN6RSxNQUFNLGFBQWEsR0FBRyxpRUFBaUUsQ0FBQztRQUV4RixJQUFJLDZDQUFxQixDQUFDLE9BQU8sRUFBRTtZQUNqQyxRQUFRO1lBQ1IsV0FBVztZQUNYLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLG1FQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlDLElBQUksdURBQTBCLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUV4RSxJQUFJLDJEQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLElBQUksbURBQXdCLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFFcEUsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFO1lBQ3ZDLFdBQVcsRUFBRSxxRkFBcUY7WUFDbEcsSUFBSSxFQUFFLGdGQUFnRjtTQUN2RixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLFdBQVcsRUFBRSwyRkFBMkY7WUFDeEcsSUFBSSxFQUFFLHVGQUF1RjtZQUM3RixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFO1lBQ3RDLFdBQVcsRUFBRSx3R0FBd0c7WUFDckgsSUFBSSxFQUFFLHFFQUFxRTtTQUM1RSxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFO1lBQ3BDLFdBQVcsRUFBRSx5SEFBeUg7WUFDdEksSUFBSSxFQUFFLG1FQUFtRTtZQUN6RSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ2pDLFdBQVcsRUFBRSwrTEFBK0w7WUFDNU0sS0FBSyxFQUFFO2dCQUNMLEVBQUUsSUFBSSxFQUFFLG9GQUFvRixFQUFFO2dCQUM5RixFQUFFLElBQUksRUFBRSx1Q0FBdUMsWUFBWSxFQUFFLEVBQUU7Z0JBQy9EO29CQUNFLElBQUksRUFBRSwrQkFBK0IsWUFBWSwrQ0FBK0M7aUJBQ2pHO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCx3RUFBd0U7UUFDeEUsd0VBQXdFO1FBQ3hFLHlFQUF5RTtRQUN6RSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxELHVFQUF1RTtRQUN2RSx3RUFBd0U7UUFDeEUsdUVBQXVFO1FBQ3ZFLG1FQUFtRTtRQUNuRSxvREFBb0Q7UUFDcEQsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxZQUFZLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNwRCxPQUFPLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O0FBOUVILG9EQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IFNvZnR3YXJlRmFjdG9yeUFyY2hpdGVjdHVyZVJ1bGVzIH0gZnJvbSAnLi9Tb2Z0d2FyZUZhY3RvcnlBcmNoaXRlY3R1cmVSdWxlcyc7XG5pbXBvcnQgeyBTb2Z0d2FyZUZhY3RvcnlBdHRlc3RhdGlvbiB9IGZyb20gJy4vU29mdHdhcmVGYWN0b3J5QXR0ZXN0YXRpb24nO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5Qm9vdHN0cmFwIH0gZnJvbSAnLi9Tb2Z0d2FyZUZhY3RvcnlCb290c3RyYXAnO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5TW9kZWxzIH0gZnJvbSAnLi9Tb2Z0d2FyZUZhY3RvcnlNb2RlbHMnO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5T3BlblNwZWNHYXRlcyB9IGZyb20gJy4vU29mdHdhcmVGYWN0b3J5T3BlblNwZWNHYXRlcyc7XG5pbXBvcnQgeyBTb2Z0d2FyZUZhY3RvcnlXb3JrZmxvd3MgfSBmcm9tICcuL1NvZnR3YXJlRmFjdG9yeVdvcmtmbG93cyc7XG5pbXBvcnQgeyBXb3JrZmxvd0FjdGlvblZlcnNpb25zIH0gZnJvbSAnLi9Xb3JrZmxvd0FjdGlvblZlcnNpb25zJztcblxuY29uc3QgREVGQVVMVF9HSVRIVUJfT1dORVIgPSAnbWFjZWRvbi10ZWNobm9sb2dpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvZnR3YXJlRmFjdG9yeUZpbGVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFyZSByZXBvIG5hbWUgKGUuZy4gYGV4cGVuc2UtdHJhY2tlcmApLCB1c2VkIHRvIGRlcml2ZSB0aGUgZmFjdG9yeSdzXG4gICAqIG1vZGVsIG5hbWVzIChgPHJlcG9OYW1lPi1mYWN0b3J5YCwgYDxyZXBvTmFtZT4taXNzdWVzYCwgYDxyZXBvTmFtZT4tcHJgLFxuICAgKiBgPHJlcG9OYW1lPi1zaGVsbCpgKSBhbmQgdmF1bHQgbmFtZSAoYDxyZXBvTmFtZT4tc2VjcmV0c2ApLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiBvcmcvdXNlciB0aGUgcmVwbyBsaXZlcyBpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ21hY2Vkb24tdGVjaG5vbG9naWVzJ1xuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViT3duZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBicmFuY2ggdGhlIGZhY3Rvcnkgb3BlbnMgcHVsbCByZXF1ZXN0cyBhZ2FpbnN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VCcmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSBgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbGAuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG5cbiAgLyoqXG4gICAqIEV4dHJhIGZpbGVzIHRoYXQgdGhlIFBSIGF0dGVzdGF0aW9uIG1hbmlmZXN0IGFsc28gaGFzaGVzLCBzdWNoIGFzIHRoZVxuICAgKiBwcm9qZWN0J3Mgb3duIHZlcmlmaWNhdGlvbiBjaGVja3MuIEVhY2ggZW50cnkgaXMgYW4gZXhhY3QgZmlsZSBwYXRoXG4gICAqIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QsIGluIG5vcm1hbGl6ZWQgUE9TSVggZm9ybSwgdXNpbmcgb25seVxuICAgKiBsZXR0ZXJzLCBkaWdpdHMgYW5kIGAuX0ArLWAsIHdpdGggbm8gYC5gIG9yIGAuLmAgc2VnbWVudDsgc3ludGggZmFpbHNcbiAgICogb24gYW55IG90aGVyIGVudHJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG9ubHkgdGhlIGRlZmF1bHQgZmlsZXNcbiAgICovXG4gIHJlYWRvbmx5IGF0dGVzdGF0aW9uRmlsZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBCYWNrcG9ydHMgZXhtYW4ncyBzd2FtcCBcInNvZnR3YXJlIGZhY3RvcnlcIiBwYXR0ZXJuXG4gKiAobWFjZWRvbi10ZWNobm9sb2dpZXMvZXhtYW4jMTMpIGFzIGdlbmVyYXRlZCBzY2FmZm9sZGluZzogYVxuICogYEBzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5YCBzdGF0ZSBtYWNoaW5lIHRoYXQgZHJpdmVzIGEgR2l0SHViIGlzc3VlIGZyb21cbiAqIGludGFrZSB0aHJvdWdoIGFuIG9wZW5lZCBQUiwgZW5mb3JjaW5nIE9wZW5TcGVjIHVzYWdlLCBhbiBhcmNoaXRlY3R1cmVcbiAqIHJ1bGUgcmVnaXN0cnksIGFuZCBhIHByZS1QUiB2ZXJpZmljYXRpb24gZ2F0ZSB3aG9zZSBhdHRlc3RhdGlvbiBpc1xuICogcmUtY2hlY2tlZCBhdCBtZXJnZSB0aW1lLlxuICpcbiAqIFdoYXQgc3dhbXAgaXRzZWxmIHdvdWxkIGdlbmVyYXRlIChleHRlbnNpb24gZG9jcyBwdWxsZWQgdmlhXG4gKiBgc3dhbXAgZXh0ZW5zaW9uIHB1bGxgLCBgLnN3YW1wLnlhbWxgLCB0aGUgdmF1bHQsIGFuZCB0aGUgXCJzd2FtcCBtYW5hZ2VkXG4gKiBzZWN0aW9uXCIgaW4gQ0xBVURFLm1kKSBpcyBkZWxpYmVyYXRlbHkgTk9UIGhhbmQtdGVtcGxhdGVkIGhlcmUg4oCUIHRob3NlIGFyZVxuICogcHJvZHVjZWQgYnkgdGhlIHJlYWwgYHN3YW1wYCBDTEkuIGBzd2FtcCBpbml0YCBpcyBpZGVtcG90ZW50IChhIG5vLW9wIGlmXG4gKiB0aGUgcmVwbyBpcyBhbHJlYWR5IGluaXRpYWxpemVkKSwgc28gaXQncyB3aXJlZCBpbnRvIHRoZSBwcm9qZWN0J3NcbiAqIGBpbnN0YWxsYC9gaW5zdGFsbDpjaWAgdGFza3MgYW5kIHJ1bnMgYXV0b21hdGljYWxseSBvbiBldmVyeSBpbnN0YWxsLFxuICogZ3VhcmRlZCBzbyBpdCdzIGEgc2lsZW50IG5vLW9wIG9uIGEgbWFjaGluZSB3aXRob3V0IGBzd2FtcGAgb24gUEFUSCAoZS5nLlxuICogQ0kpLiBUaGUgZXh0ZW5zaW9uIHB1bGxzIChhdCB0aGUgdmVyc2lvbnMgcGlubmVkIGluIHRoZSByZXBvJ3NcbiAqIGBleHRlbnNpb25zL21vZGVscy91cHN0cmVhbV9leHRlbnNpb25zLmpzb25gKSBhbmQgdmF1bHQgY3JlYXRpb24gYXJlIG9uZS10aW1lLCBub3QgaWRlbXBvdGVudFxuICogaW4gYSB3YXkgdGhhdCdzIHNhZmUgdG8gcmVwZWF0IG9uIGV2ZXJ5IGluc3RhbGwsIHNvIHRoZXkgc3RheSBpbiB0aGVcbiAqIGBzd2FtcDpib290c3RyYXBgIHRhc2sgdGhpcyBjb25zdHJ1Y3QgYWRkcy4gT25seSBleG1hbidzIG93biBhdXRob3JlZFxuICogY29uZmlnICh0aGUgZmFjdG9yeSdzIHN0YXRlIG1hY2hpbmUsIHRoZSBhcmNoaXRlY3R1cmUtcnVsZSBlbmdpbmUsIHRoZVxuICogYXR0ZXN0YXRpb24gbWVjaGFuaXNtLCB0aGUgT3BlblNwZWMgdGFzay1jb21wbGV0aW9uIGdhdGUsIHRoZSBsb2NrZmlsZS1kcml2ZW5cbiAqIGV4dGVuc2lvbiBwdWxsLCBhbmQgdGhlIDMgc3dhbXBcbiAqIHdvcmtmbG93cyB0aGF0IHdpcmUgdGhlbSB0b2dldGhlcikgaXMgdGVtcGxhdGVkLlxuICovXG5leHBvcnQgY2xhc3MgU29mdHdhcmVGYWN0b3J5RmlsZXMge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogU29mdHdhcmVGYWN0b3J5RmlsZXNPcHRpb25zKSB7XG4gICAgY29uc3QgeyByZXBvTmFtZSwgYWN0aW9uVmVyc2lvbnMsIGF0dGVzdGF0aW9uRmlsZXMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgZ2l0aHViT3duZXIgPSBvcHRpb25zLmdpdGh1Yk93bmVyIHx8IERFRkFVTFRfR0lUSFVCX09XTkVSO1xuICAgIGNvbnN0IGJhc2VCcmFuY2ggPSBvcHRpb25zLmJhc2VCcmFuY2ggfHwgJ21haW4nO1xuICAgIGNvbnN0IHNlY3JldHNWYXVsdCA9IGAke3JlcG9OYW1lfS1zZWNyZXRzYDtcbiAgICAvLyBBIHNpbmdsZSByZWRpcmVjdCBvbmx5OiBwcm9qZW4ncyBidWlsdC1pbiBjcm9zcy1wbGF0Zm9ybSB0YXNrIHNoZWxsXG4gICAgLy8gKGRheCkgcmVqZWN0cyBhIGNvbW1hbmQgd2l0aCBtb3JlIHRoYW4gb25lIHJlZGlyZWN0IChlLmcuIGNvbWJpbmluZ1xuICAgIC8vIGA+L2Rldi9udWxsYCB3aXRoIGAyPiYxYCkgd2l0aCBcIk11bHRpcGxlIHJlZGlyZWN0cyBhcmUgY3VycmVudGx5IG5vdFxuICAgIC8vIHN1cHBvcnRlZFwiIOKAlCBjb25maXJtZWQgYnkgZG9nZm9vZGluZyB0aGlzIGNvbnN0cnVjdCBvbiB0aGlzIHZlcnkgcmVwby5cbiAgICBjb25zdCBzd2FtcEluaXRTdGVwID0gJ2NvbW1hbmQgLXYgc3dhbXAgPi9kZXYvbnVsbCAmJiBzd2FtcCBpbml0IC0tdG9vbCBjbGF1ZGUgfHwgdHJ1ZSc7XG5cbiAgICBuZXcgU29mdHdhcmVGYWN0b3J5TW9kZWxzKHByb2plY3QsIHtcbiAgICAgIHJlcG9OYW1lLFxuICAgICAgZ2l0aHViT3duZXIsXG4gICAgICBiYXNlQnJhbmNoLFxuICAgIH0pO1xuXG4gICAgbmV3IFNvZnR3YXJlRmFjdG9yeUFyY2hpdGVjdHVyZVJ1bGVzKHByb2plY3QpO1xuXG4gICAgbmV3IFNvZnR3YXJlRmFjdG9yeUF0dGVzdGF0aW9uKHByb2plY3QsIHsgcmVwb05hbWUsIGF0dGVzdGF0aW9uRmlsZXMgfSk7XG5cbiAgICBuZXcgU29mdHdhcmVGYWN0b3J5T3BlblNwZWNHYXRlcyhwcm9qZWN0KTtcblxuICAgIG5ldyBTb2Z0d2FyZUZhY3RvcnlXb3JrZmxvd3MocHJvamVjdCwgeyByZXBvTmFtZSwgYWN0aW9uVmVyc2lvbnMgfSk7XG5cbiAgICBuZXcgU29mdHdhcmVGYWN0b3J5Qm9vdHN0cmFwKHByb2plY3QpO1xuXG4gICAgcHJvamVjdC5hZGRUYXNrKCd2YWxpZGF0ZTphcmNoaXRlY3R1cmUnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1J1biB0aGUgYXJjaGl0ZWN0dXJlIHJ1bGUgcmVnaXN0cnkgKGFyY2hpdGVjdHVyZS1ydWxlcy9ydWxlcy5qc29uKSBhZ2FpbnN0IHRoZSByZXBvJyxcbiAgICAgIGV4ZWM6ICd0cy1ub2RlIC0tcHJvamVjdCBhcmNoaXRlY3R1cmUtcnVsZXMvdHNjb25maWcuanNvbiBhcmNoaXRlY3R1cmUtcnVsZXMvY2hlY2sudHMnLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5hZGRUYXNrKCdvcGVuc3BlYzpjaGVjay10YXNrcy1jb21wbGV0ZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRmFpbCB1bmxlc3MgZXZlcnkgdGFzayBpbiB0aGUgbmFtZWQgT3BlblNwZWMgY2hhbmdlIGlzIGNvbXBsZXRlICh1c2FnZTogLS0gPGNoYW5nZS1zbHVnPiknLFxuICAgICAgZXhlYzogJ3RzLW5vZGUgLS1wcm9qZWN0IG9wZW5zcGVjLWdhdGVzL3RzY29uZmlnLmpzb24gb3BlbnNwZWMtZ2F0ZXMvY2hlY2stdGFza3MtY29tcGxldGUudHMnLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmFkZFRhc2soJ2F0dGVzdGF0aW9uOm1hbmlmZXN0Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdQcmludCBTSEEyNTYgY2hlY2tzdW1zIG9mIHRoZSBmaWxlcyBhIFBSIGF0dGVzdGF0aW9uIGlzIHZlcmlmaWVkIGFnYWluc3QgKHNlZSBhdHRlc3RhdGlvbi9tYW5pZmVzdC50cyknLFxuICAgICAgZXhlYzogJ3RzLW5vZGUgLS1wcm9qZWN0IGF0dGVzdGF0aW9uL3RzY29uZmlnLmpzb24gYXR0ZXN0YXRpb24vbWFuaWZlc3QudHMnLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC5hZGRUYXNrKCdhdHRlc3RhdGlvbjp2ZXJpZnknLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1ZlcmlmeSBhIFBSXFwncyBlbWJlZGRlZCBhdHRlc3RhdGlvbi1tYW5pZmVzdCBhZ2FpbnN0IHRoZSBjdXJyZW50IGNoZWNrb3V0ICh1c2FnZTogLS0gLS1ib2R5LWZpbGUgPHBhdGg+IC0tY29tbWl0IDxzaGE+KScsXG4gICAgICBleGVjOiAndHMtbm9kZSAtLXByb2plY3QgYXR0ZXN0YXRpb24vdHNjb25maWcuanNvbiBhdHRlc3RhdGlvbi92ZXJpZnkudHMnLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmFkZFRhc2soJ3N3YW1wOmJvb3RzdHJhcCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnT25lLXRpbWUgc2V0dXA6IHB1bGwgdGhlIHN3YW1wIGV4dGVuc2lvbnMgYXQgdGhlIHZlcnNpb25zIHBpbm5lZCBpbiBleHRlbnNpb25zL21vZGVscy91cHN0cmVhbV9leHRlbnNpb25zLmpzb24gYW5kIGNyZWF0ZSB0aGUgc2VjcmV0cyB2YXVsdCAoc3dhbXAgaW5pdCBpdHNlbGYgYWxyZWFkeSBydW5zIG9uIGV2ZXJ5IGluc3RhbGwpJyxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHsgZXhlYzogJ3RzLW5vZGUgLS1wcm9qZWN0IHN3YW1wLWJvb3RzdHJhcC90c2NvbmZpZy5qc29uIHN3YW1wLWJvb3RzdHJhcC9wdWxsLWV4dGVuc2lvbnMudHMnIH0sXG4gICAgICAgIHsgZXhlYzogYHN3YW1wIHZhdWx0IGNyZWF0ZSBsb2NhbF9lbmNyeXB0aW9uICR7c2VjcmV0c1ZhdWx0fWAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6IGBlY2hvIFwiTmV4dDogc3dhbXAgdmF1bHQgcHV0ICR7c2VjcmV0c1ZhdWx0fSBHSVRIVUJfVE9LRU4gLS1yZWZyZXNoLWZyb20gJ2doIGF1dGggdG9rZW4nXCJgLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vIGBzd2FtcCBpbml0YCBpcyBzYWZlIHRvIHJlLXJ1biAoaWRlbXBvdGVudCB3aGVuIGFscmVhZHkgaW5pdGlhbGl6ZWQpLFxuICAgIC8vIHNvIGV2ZXJ5IGluc3RhbGwga2VlcHMgdGhlIHJlcG8gaW5pdGlhbGl6ZWQgd2l0aG91dCBhIHNlcGFyYXRlIG1hbnVhbFxuICAgIC8vIHN0ZXAg4oCUIGluY2x1ZGluZyBvbiBhIGZyZXNoIGNsb25lIHRoYXQgaGFzbid0IHJ1biBzd2FtcDpib290c3RyYXAgeWV0LlxuICAgIHByb2plY3QucGFja2FnZS5pbnN0YWxsVGFzay5leGVjKHN3YW1wSW5pdFN0ZXApO1xuICAgIHByb2plY3QucGFja2FnZS5pbnN0YWxsQ2lUYXNrLmV4ZWMoc3dhbXBJbml0U3RlcCk7XG5cbiAgICAvLyBNaXJyb3JzIHRoZSBwYXR0ZXJucyBgc3dhbXAgaW5pdGAgaXRzZWxmIHdvdWxkIGFwcGVuZCB0byAuZ2l0aWdub3JlLlxuICAgIC8vIHByb2plbidzIElnbm9yZUZpbGUgZnVsbHkgcmVnZW5lcmF0ZXMgLmdpdGlnbm9yZSBmcm9tIGl0cyBvd24gdHJhY2tlZFxuICAgIC8vIGVudHJpZXMgb24gZXZlcnkgc3ludGgsIHNvIGFueXRoaW5nIGBzd2FtcCBpbml0YCBhcHBlbmRzIG91dC1vZi1iYW5kXG4gICAgLy8gZ2V0cyBzaWxlbnRseSB3aXBlZCBieSB0aGUgbmV4dCBgbnB4IHByb2plbmAgcnVuIChjYXVnaHQgYnkgQ0knc1xuICAgIC8vIHNlbGYtbXV0YXRpb24gY2hlY2spIHVubGVzcyBpdCdzIGFsc28gYWRkZWQgaGVyZS5cbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLnN3YW1wLycpO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKCcuc3dhbXAtc291cmNlcy55YW1sJyk7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoJy5jbGF1ZGUvd29ya3RyZWVzLycpO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKCcuY2xhdWRlL3NldHRpbmdzLmxvY2FsLmpzb24nKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLmNsYXVkZS9zY2hlZHVsZWRfdGFza3MubG9jaycpO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKCcuY2xhdWRlL3NjaGVkdWxlZF90YXNrcy5qc29uJyk7XG4gIH1cbn1cbiJdfQ==
@@ -293,9 +293,13 @@ version: 1
293
293
  name: 'Verify Attestation',
294
294
  on: {
295
295
  pull_request: {
296
- types: ['opened', 'synchronize', 'reopened'],
296
+ types: ['opened', 'synchronize', 'reopened', 'edited'],
297
297
  },
298
298
  },
299
+ concurrency: {
300
+ 'group': 'verify-attestation-${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}',
301
+ 'cancel-in-progress': true,
302
+ },
299
303
  permissions: {
300
304
  'contents': 'read',
301
305
  'pull-requests': 'read',
@@ -355,4 +359,4 @@ version: 1
355
359
  }
356
360
  }
357
361
  exports.SoftwareFactoryWorkflows = SoftwareFactoryWorkflows;
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5V29ya2Zsb3dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NvZnR3YXJlRmFjdG9yeVdvcmtmbG93cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbUNBQThDO0FBQzlDLHNEQUF3RTtBQUN4RSxtQ0FBMkQ7QUFDM0QscUVBQXlGO0FBZXpGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkMsWUFBWSxPQUFvQixFQUFFLE9BQXdDO1FBQ3hFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQUcsR0FBRyxRQUFRLFFBQVEsQ0FBQztRQUN2QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsUUFBUSxxQkFBcUIsQ0FBQztRQUNoRSxNQUFNLGtCQUFrQixHQUFHLEdBQUcsUUFBUSxpQkFBaUIsQ0FBQztRQUV4RCx3RkFBd0Y7UUFDeEYsbUZBQW1GO1FBQ25GLDJGQUEyRjtRQUMzRix3RkFBd0Y7UUFDeEYsc0ZBQXNGO1FBQ3RGLDJGQUEyRjtRQUMzRixrRkFBa0Y7UUFDbEYscUZBQXFGO1FBQ3JGLHlGQUF5RjtRQUN6RixnQkFBZ0I7UUFDaEIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7K0JBUUYsQ0FBQztRQUU1QixJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDhDQUE4QyxFQUFFO1lBQ3RFLFFBQVEsRUFBRSxPQUFPLElBQUEsbUJBQVUsR0FBRTs7Ozs7Ozs7Ozs7Ozs7O0VBZWpDLG9CQUFvQjs7Ozs7Ozs7OzJCQVNLLFVBQVU7Ozs7Ozs7Ozs7Ozt3Q0FZRyxVQUFVOzs7O3FEQUlHLFVBQVU7Ozs7Ozs7Ozs7OztDQVk5RDtTQUNJLENBQUMsQ0FBQztRQUVILElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsK0NBQStDLEVBQUU7WUFDdkUsUUFBUSxFQUFFLE9BQU8sSUFBQSxtQkFBVSxHQUFFOzs7Ozs7Ozs7Ozs7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QUFDO0NBQ0Y7QUFyVkQsNERBcVZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBTYW1wbGVGaWxlLCBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOb2RlUGFja2FnZU1hbmFnZXIsIE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGluc3RhbGxDb21tYW5kLCBydW5TY3JpcHRDb21tYW5kIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyByZXNvbHZlQWN0aW9uVmVyc2lvbnMsIFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvZnR3YXJlRmFjdG9yeVdvcmtmbG93c09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGJhcmUgcmVwbyBuYW1lLCB1c2VkIHRvIGRlcml2ZSB0aGUgYDxyZXBvTmFtZT4tc2hlbGxbLWFyY2hpdGVjdHVyZXwtbWFuaWZlc3RdYFxuICAgKiBtb2RlbCBuYW1lcyB0aGVzZSB3b3JrZmxvd3MgZGlzcGF0Y2ggc2hlbGwgY29tbWFuZHMgdGhyb3VnaC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSBgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbGAuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG59XG5cbi8qKlxuICogVGhlIDMgc3dhbXAgd29ya2Zsb3dzIHRoZSBmYWN0b3J5J3MgZ2F0ZSBzdGFnZXMgcnVuIChvcGVuc3BlYy1wbGFuLXZlcmlmeSxcbiAqIG9wZW5zcGVjLXRhc2tzLXZlcmlmeSwgcHJlLXByLXZlcmlmeSksIHBsdXMgdGhlIEdpdEh1YiBBY3Rpb24gdGhhdFxuICogcmUtdmVyaWZpZXMgYSBQUidzIGVtYmVkZGVkIGF0dGVzdGF0aW9uIGF0IG1lcmdlIHRpbWUuXG4gKlxuICogVGhlIHN3YW1wIHdvcmtmbG93IFlBTUxzIGNhcnJ5IGEgc3dhbXAtYXNzaWduZWQgYGlkYCB0aGF0IG11c3Qgc3RheSBzdGFibGVcbiAqIGFjcm9zcyBzeW50aHMgKHN3YW1wIHVzZXMgaXQgYXMgdGhlIHdvcmtmbG93J3MgaWRlbnRpdHkpLCBzbyDigJQgbGlrZSB0aGVcbiAqIG1vZGVsIGluc3RhbmNlcyBpbiBgU29mdHdhcmVGYWN0b3J5TW9kZWxzYCDigJQgdGhleSdyZSBgU2FtcGxlRmlsZWBzLCB3cml0dGVuXG4gKiBvbmNlIGFuZCB0aGVuIG93bmVkIGJ5IHRoZSB0ZWFtLiBgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbGAgaGFzIG5vIHN1Y2hcbiAqIGlkZW50aXR5IGNvbnN0cmFpbnQgYW5kIGlzIGEgcGxhaW4gR2l0SHViIEFjdGlvbnMgd29ya2Zsb3csIHNvIGl0J3MgYnVpbHRcbiAqIHRoZSBzYW1lIG1hbmFnZWQgd2F5IGBQckRlcGxveVdvcmtmbG93YCBpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvZnR3YXJlRmFjdG9yeVdvcmtmbG93cyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBTb2Z0d2FyZUZhY3RvcnlXb3JrZmxvd3NPcHRpb25zKSB7XG4gICAgY29uc3QgeyByZXBvTmFtZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBzaGVsbE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsYDtcbiAgICBjb25zdCBzaGVsbEFyY2hpdGVjdHVyZU1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLWFyY2hpdGVjdHVyZWA7XG4gICAgY29uc3Qgc2hlbGxNYW5pZmVzdE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLW1hbmlmZXN0YDtcblxuICAgIC8vIEVhY2ggam9iIHN0ZXAncyBgcnVuOmAgYmVsb3cgZXhlY3V0ZXMgdGhyb3VnaCBzd2FtcCdzIGNvbW1hbmQvc2hlbGwgbW9kZWwsIHdoaWNoIHJ1bnNcbiAgICAvLyB0aGUgc3RyaW5nIHRocm91Z2ggdGhlIGhvc3QncyBuYXRpdmUgc2hlbGwg4oCUIGJhc2gvc2ggb24gbWFjT1MvTGludXgsIGJ1dCBXaW5kb3dzXG4gICAgLy8gUG93ZXJTaGVsbCA1LjEgb24gYSBXaW5kb3dzIGRldiBtYWNoaW5lLiBQb3dlclNoZWxsIDUuMSBoYXMgbm8gYCYmYC9gfHxgIGNoYWluIG9wZXJhdG9yc1xuICAgIC8vIGFuZCBhbGlhc2VzIGBybWAgdG8gYFJlbW92ZS1JdGVtYCAod2hvc2UgYC1mYCBpcyBhbWJpZ3VvdXMgd2l0aCBgLUZpbHRlcmApLiBJZiBhIHN0ZXBcbiAgICAvLyBoZXJlIG5lZWRzIG1vcmUgdGhhbiBvbmUgY29tbWFuZCwgcHJlZmVyIGEgc2luZ2xlIHBhY2thZ2UuanNvbiBzY3JpcHQgdGhhdCBkb2VzIHRoZVxuICAgIC8vIHNlcXVlbmNpbmcsIG9yIHVzZSBgO2AgdG8gc2VwYXJhdGUgY29tbWFuZHMgKGFjY2VwdGVkIGJ5IGJvdGggc2hlbGxzLCB0aG91Z2ggaXQgZG9lcyBub3RcbiAgICAvLyBzaG9ydC1jaXJjdWl0IG9uIGZhaWx1cmUg4oCUIHJlbHkgb24gdGhlIHdvcmtmbG93J3Mgb3duIGFzc2VydCBzdGVwIGZvciB0aGF0KS4gVG9cbiAgICAvLyBmb3JjZS1kZWxldGUgYSBmaWxlIHBvcnRhYmx5LCB1c2UgYG5vZGUgLWUgXCJyZXF1aXJlKCdmcycpLnJtU3luYygnPHBhdGg+Jywge2ZvcmNlOlxuICAgIC8vIHRydWV9KVwiYCBpbnN0ZWFkIG9mIGBybSAtZiA8cGF0aD5gIChzZWUgc2hlbGxQb3J0YWJsZVNlcXVlbmNlL3NoZWxsUG9ydGFibGVGb3JjZURlbGV0ZVxuICAgIC8vIGluIHV0aWxzLnRzKS5cbiAgICBjb25zdCBzaGVsbFBvcnRhYmlsaXR5Tm90ZSA9IGAjIFBvcnRhYmlsaXR5IG5vdGU6IFxcYHJ1bjpcXGAgYmVsb3cgZXhlY3V0ZXMgdGhyb3VnaCBzd2FtcCdzIGNvbW1hbmQvc2hlbGwgbW9kZWwsIHdoaWNoIHJ1bnNcbiMgdGhlIHN0cmluZyB0aHJvdWdoIHRoZSBob3N0J3MgbmF0aXZlIHNoZWxsIOKAlCBiYXNoL3NoIG9uIG1hY09TL0xpbnV4LCBidXQgV2luZG93c1xuIyBQb3dlclNoZWxsIDUuMSBvbiBhIFdpbmRvd3MgZGV2IG1hY2hpbmUuIFBvd2VyU2hlbGwgNS4xIGhhcyBubyBcXGAmJlxcYC9cXGB8fFxcYCBjaGFpbiBvcGVyYXRvcnNcbiMgYW5kIGFsaWFzZXMgXFxgcm1cXGAgdG8gXFxgUmVtb3ZlLUl0ZW1cXGAgKHdob3NlIFxcYC1mXFxgIGlzIGFtYmlndW91cyB3aXRoIFxcYC1GaWx0ZXJcXGApLiBJZiBhIHN0ZXAgaGVyZVxuIyBuZWVkcyBtb3JlIHRoYW4gb25lIGNvbW1hbmQsIHByZWZlciBhIHNpbmdsZSBwYWNrYWdlLmpzb24gc2NyaXB0IHRoYXQgZG9lcyB0aGVcbiMgc2VxdWVuY2luZywgb3IgdXNlIFxcYDtcXGAgdG8gc2VwYXJhdGUgY29tbWFuZHMgKGFjY2VwdGVkIGJ5IGJvdGggc2hlbGxzLCB0aG91Z2ggaXQgZG9lcyBub3RcbiMgc2hvcnQtY2lyY3VpdCBvbiBmYWlsdXJlIOKAlCByZWx5IG9uIHRoZSB3b3JrZmxvdydzIG93biBhc3NlcnQgc3RlcCBmb3IgdGhhdCkuIFRvXG4jIGZvcmNlLWRlbGV0ZSBhIGZpbGUgcG9ydGFibHksIHVzZSBcXGBub2RlIC1lIFwicmVxdWlyZSgnZnMnKS5ybVN5bmMoJzxwYXRoPicsIHtmb3JjZTogdHJ1ZX0pXCJcXGBcbiMgaW5zdGVhZCBvZiBcXGBybSAtZiA8cGF0aD5cXGAuYDtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsICd3b3JrZmxvd3Mvd29ya2Zsb3ctb3BlbnNwZWMtcGxhbi12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogb3BlbnNwZWMtcGxhbi12ZXJpZnlcbmRlc2NyaXB0aW9uOiA+LVxuICBGYWlscyB1bmxlc3MgdGhlIG5hbWVkIE9wZW5TcGVjIGNoYW5nZSBpcyB3ZWxsLWZvcm1lZCAocHJvcG9zYWwsIGRlc2lnbixcbiAgc3BlY3Mgd2l0aCBkZWx0YXMsIHRhc2tzIGFsbCBwcmVzZW50KSB2aWEgXFxgb3BlbnNwZWMgdmFsaWRhdGVcXGAuIEdhdGVzIHRoZVxuICBmYWN0b3J5J3MgcGxhbm5pbmcgc3RhZ2U6IGEgcmVxdWVzdCBjYW4ndCBwcm9jZWVkIHRvIGltcGxlbWVudGF0aW9uIHVudGlsXG4gIGl0J3MgYSByZWFsIE9wZW5TcGVjIGNoYW5nZSwgbm90IGp1c3QgcHJvc2UgaW4gYSBzd2FtcCBhcnRpZmFjdC5cbnRhZ3M6IHt9XG5pbnB1dHM6XG4gIHR5cGU6IG9iamVjdFxuICByZXF1aXJlZDogW2NoYW5nZVNsdWddXG4gIHByb3BlcnRpZXM6XG4gICAgY2hhbmdlU2x1ZzpcbiAgICAgIHR5cGU6IHN0cmluZ1xuICAgICAgZGVzY3JpcHRpb246IFRoZSBvcGVuc3BlYyBjaGFuZ2UgbmFtZSAob3BlbnNwZWMvY2hhbmdlcy88Y2hhbmdlU2x1Zz4vKS5cbiR7c2hlbGxQb3J0YWJpbGl0eU5vdGV9XG5qb2JzOlxuICAtIG5hbWU6IHZlcmlmeVxuICAgIGRlc2NyaXB0aW9uOiBWYWxpZGF0ZSB0aGUgT3BlblNwZWMgY2hhbmdlIGlzIGNvbXBsZXRlIGFuZCB3ZWxsLWZvcm1lZFxuICAgIHN0ZXBzOlxuICAgICAgLSBuYW1lOiB2YWxpZGF0ZVxuICAgICAgICBkZXNjcmlwdGlvbjogb3BlbnNwZWMgdmFsaWRhdGUgPGNoYW5nZVNsdWc+IC0tdHlwZSBjaGFuZ2VcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBtb2RlbF9tZXRob2RcbiAgICAgICAgICBtb2RlbElkT3JOYW1lOiAke3NoZWxsTW9kZWx9XG4gICAgICAgICAgbWV0aG9kTmFtZTogZXhlY3V0ZVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIHJ1bjogJ29wZW5zcGVjIHZhbGlkYXRlIFxcJHt7IGlucHV0cy5jaGFuZ2VTbHVnIH19IC0tdHlwZSBjaGFuZ2UnXG4gICAgICAgIGRlcGVuZHNPbjogW11cbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LXZhbGlkXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcGVuc3BlYyB2YWxpZGF0ZSBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBPcGVuU3BlYyBjaGFuZ2UgaXMgbm90IHZhbGlkL2NvbXBsZXRlIChtaXNzaW5nIHByb3Bvc2FsLCBkZXNpZ24sXG4gICAgICAgICAgICBzcGVjcyB3aXRoIGRlbHRhcywgb3IgdGFza3MpIOKAlCBzZWUgdGhlICR7c2hlbGxNb2RlbH0gcmVzdWx0IGRhdGFcbiAgICAgICAgICAgIGZvciBvcGVuc3BlYydzIG93biByZW1lZGlhdGlvbiBvdXRwdXRcbiAgICAgICAgICBzZXZlcml0eTogaGlnaFxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiB2YWxpZGF0ZVxuICAgICAgICAgICAgY29uZGl0aW9uOlxuICAgICAgICAgICAgICB0eXBlOiBzdWNjZWVkZWRcbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICBkZXBlbmRzT246IFtdXG4gICAgd2VpZ2h0OiAwXG52ZXJzaW9uOiAxXG5gLFxuICAgIH0pO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgJ3dvcmtmbG93cy93b3JrZmxvdy1vcGVuc3BlYy10YXNrcy12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogb3BlbnNwZWMtdGFza3MtdmVyaWZ5XG5kZXNjcmlwdGlvbjogPi1cbiAgRmFpbHMgdW5sZXNzIGV2ZXJ5IHRhc2sgaW4gdGhlIG5hbWVkIE9wZW5TcGVjIGNoYW5nZSdzIHRhc2tzLm1kIGlzIGNoZWNrZWRcbiAgb2ZmIChvcGVuc3BlYy1nYXRlcy9jaGVjay10YXNrcy1jb21wbGV0ZS50cywgdmlhIFxcYHBucG0gcnVuXG4gIG9wZW5zcGVjOmNoZWNrLXRhc2tzLWNvbXBsZXRlXFxgKS4gR2F0ZXMgdGhlIGZhY3RvcnkncyBpbXBsZW1lbnRpbmcgc3RhZ2U6XG4gIHdvcmsgaXNuJ3QgZG9uZSB1bnRpbCB0aGUgY2hhbmdlJ3Mgb3duIHRhc2sgbGlzdCBzYXlzIGl0J3MgZG9uZSwgbm90IGp1c3RcbiAgYmVjYXVzZSBhbiBhcnRpZmFjdCB3YXMgcmVjb3JkZWQuXG50YWdzOiB7fVxuaW5wdXRzOlxuICB0eXBlOiBvYmplY3RcbiAgcmVxdWlyZWQ6IFtjaGFuZ2VTbHVnXVxuICBwcm9wZXJ0aWVzOlxuICAgIGNoYW5nZVNsdWc6XG4gICAgICB0eXBlOiBzdHJpbmdcbiAgICAgIGRlc2NyaXB0aW9uOiBUaGUgb3BlbnNwZWMgY2hhbmdlIG5hbWUgKG9wZW5zcGVjL2NoYW5nZXMvPGNoYW5nZVNsdWc+LykuXG4ke3NoZWxsUG9ydGFiaWxpdHlOb3RlfVxuam9iczpcbiAgLSBuYW1lOiB2ZXJpZnlcbiAgICBkZXNjcmlwdGlvbjogQ2hlY2sgZXZlcnkgdGFzayBpbiB0aGUgY2hhbmdlJ3MgdGFza3MubWQgaXMgY29tcGxldGVcbiAgICBzdGVwczpcbiAgICAgIC0gbmFtZTogY2hlY2stdGFza3NcbiAgICAgICAgZGVzY3JpcHRpb246IHBucG0gcnVuIG9wZW5zcGVjOmNoZWNrLXRhc2tzLWNvbXBsZXRlIC0tIDxjaGFuZ2VTbHVnPlxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IG1vZGVsX21ldGhvZFxuICAgICAgICAgIG1vZGVsSWRPck5hbWU6ICR7c2hlbGxNb2RlbH1cbiAgICAgICAgICBtZXRob2ROYW1lOiBleGVjdXRlXG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgcnVuOiAncG5wbSBydW4gb3BlbnNwZWM6Y2hlY2stdGFza3MtY29tcGxldGUgLS0gXFwke3sgaW5wdXRzLmNoYW5nZVNsdWcgfX0nXG4gICAgICAgIGRlcGVuZHNPbjogW11cbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LXRhc2tzLWNvbXBsZXRlXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcGVuc3BlYzpjaGVjay10YXNrcy1jb21wbGV0ZSBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBPcGVuU3BlYyBjaGFuZ2UgaGFzIGluY29tcGxldGUgdGFza3Mg4oCUIHNlZSB0aGUgJHtzaGVsbE1vZGVsfVxuICAgICAgICAgICAgcmVzdWx0IGRhdGEgZm9yIHRoZSBjb21wbGV0ZWRUYXNrcy90b3RhbFRhc2tzIGJyZWFrZG93blxuICAgICAgICAgIHNldmVyaXR5OiBoaWdoXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IGNoZWNrLXRhc2tzXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgIGRlcGVuZHNPbjogW11cbiAgICB3ZWlnaHQ6IDBcbnZlcnNpb246IDFcbmAsXG4gICAgfSk7XG5cbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCAnd29ya2Zsb3dzL3dvcmtmbG93LXByZS1wci12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogcHJlLXByLXZlcmlmeVxuZGVzY3JpcHRpb246ID4tXG4gIFByZS1QUiB2ZXJpZmljYXRpb246IHJ1biB0aGUgc2FtZSBjaGVja3MgQ0kgd291bGQgcnVuLCBiZWZvcmUgdGhlIGZhY3RvcnlcbiAgb3BlbnMgYSBQUiByYXRoZXIgdGhhbiBhZnRlciDigJQgYnVpbGQvc3ludGgvdGVzdC9saW50IChwbnBtIGJ1aWxkKSBhbmQgdGhlXG4gIGFyY2hpdGVjdHVyZSBydWxlIHJlZ2lzdHJ5IChwbnBtIHZhbGlkYXRlOmFyY2hpdGVjdHVyZSkuIEJvdGggbXVzdCBwYXNzLlxudGFnczoge31cbiMgUmVxdWlyZWQgZXhwbGljaXRseSByYXRoZXIgdGhhbiByZWxpZWQgb24gYXMgYSBkZWZhdWx0LiBzd2FtcCBzdG9wcGVkIHJ1bm5pbmdcbiMgQHN3YW1wL3ZlcmlmaWNhdGlvbi1hdHRlc3RhdGlvbiBieSBkZWZhdWx0IGluIHYyMDI2MDgzMS4yMDIxMzcuMCAoc3dhbXAtY2x1YiMxOTE4KVxuIyBhbmQgc3RvcHBlZCBwcm92aWRpbmcgaXQgaW4gMjAyNjEwMDUuMTkwMDAzLjAuIEBzd2FtcC92ZXJpZmljYXRpb24tc3VtbWFyeSByZXBsYWNlc1xuIyBpdCwgd2l0aCB0aGUgc2FtZSBjb250ZW50IHVuZGVyIHRoZSBkYXRhIG5hbWUgcmVwb3J0LXN3YW1wLXZlcmlmaWNhdGlvbi1zdW1tYXJ5LlxuIyBBIHdvcmtmbG93IHRoYXQgcmVxdWlyZXMgYSByZXBvcnQgdGhlIGluc3RhbGxlZCBzd2FtcCBkb2VzIG5vdCBwcm92aWRlIHN0aWxsIGV4aXRzIDBcbiMgYW5kIHN0b3JlcyBhbiBlcnJvciByZXBvcnQgaW4gaXRzIHBsYWNlLCBzbyB0aGUgb3Blbi1wciBzdGFnZSB3b3VsZCBlbWJlZCB0aGF0LlxucmVwb3J0czpcbiAgcmVxdWlyZTpcbiAgICAtIFwiQHN3YW1wL3ZlcmlmaWNhdGlvbi1zdW1tYXJ5XCJcbmlucHV0czpcbiAgdHlwZTogb2JqZWN0XG4gIHByb3BlcnRpZXM6XG4gICAgY29tbWl0OlxuICAgICAgdHlwZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgVGhlIGNvbW1pdCBzaGEgYmVpbmcgdmVyaWZpZWQuIFJlYWQgYnkgdGhlIGJ1aWx0LWluXG4gICAgICAgIEBzd2FtcC92ZXJpZmljYXRpb24tc3VtbWFyeSByZXBvcnQncyBzdWJqZWN0LmNvbW1pdCDigJQgcGFzcyB0aGVcbiAgICAgICAgcmVhbCBIRUFEIHNoYSBvciB0aGUgcmVwb3J0IHJlbmRlcnMgXCJ1bmtub3duXCIuXG4gICAgYnJhbmNoOlxuICAgICAgdHlwZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogU2FtZSBhcyBjb21taXQsIGJ1dCBmb3IgQHN3YW1wL3ZlcmlmaWNhdGlvbi1zdW1tYXJ5J3Mgc3ViamVjdC5icmFuY2guXG4ke3NoZWxsUG9ydGFiaWxpdHlOb3RlfVxuam9iczpcbiAgLSBuYW1lOiB2ZXJpZnlcbiAgICBkZXNjcmlwdGlvbjogQnVpbGQvdGVzdC9saW50IHBsdXMgYXJjaGl0ZWN0dXJlLXJ1bGUgY2hlY2tzLCBnYXRpbmcgUFIgY3JlYXRpb25cbiAgICBzdGVwczpcbiAgICAgIC0gbmFtZTogYnVpbGRcbiAgICAgICAgZGVzY3JpcHRpb246IGNvbXBpbGUgLT4gY2RrIHN5bnRoIC0+IGplc3QgLT4gZXNsaW50IChleGlzdGluZyBwcm9qZW4gYnVpbGQgdGFzaylcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBtb2RlbF9tZXRob2RcbiAgICAgICAgICBtb2RlbElkT3JOYW1lOiAke3NoZWxsTW9kZWx9XG4gICAgICAgICAgbWV0aG9kTmFtZTogZXhlY3V0ZVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIHJ1bjogcG5wbSBidWlsZFxuICAgICAgICBkZXBlbmRzT246IFtdXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IGFzc2VydC1idWlsZFxuICAgICAgICBkZXNjcmlwdGlvbjogcG5wbSBidWlsZCBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBwbnBtIGJ1aWxkIGZhaWxlZCAoY29tcGlsZS9zeW50aC90ZXN0L2xpbnQpIOKAlCBzZWUgdGhlICR7c2hlbGxNb2RlbH1cbiAgICAgICAgICAgIHJlc3VsdCBkYXRhIGZvciBzdGRvdXQvc3RkZXJyXG4gICAgICAgICAgc2V2ZXJpdHk6IGhpZ2hcbiAgICAgICAgZGVwZW5kc09uOlxuICAgICAgICAgIC0gc3RlcDogYnVpbGRcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IGFyY2hpdGVjdHVyZVxuICAgICAgICBkZXNjcmlwdGlvbjogcnVuIHRoZSBhcmNoaXRlY3R1cmUgcnVsZSByZWdpc3RyeSAoYXJjaGl0ZWN0dXJlLXJ1bGVzL3J1bGVzLmpzb24pXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogbW9kZWxfbWV0aG9kXG4gICAgICAgICAgbW9kZWxJZE9yTmFtZTogJHtzaGVsbEFyY2hpdGVjdHVyZU1vZGVsfVxuICAgICAgICAgIG1ldGhvZE5hbWU6IGV4ZWN1dGVcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBydW46IHBucG0gcnVuIHZhbGlkYXRlOmFyY2hpdGVjdHVyZVxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiBhc3NlcnQtYnVpbGRcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IGFzc2VydC1hcmNoaXRlY3R1cmVcbiAgICAgICAgZGVzY3JpcHRpb246IGFyY2hpdGVjdHVyZSBydWxlIHJlZ2lzdHJ5IG11c3QgZXhpdCAwIChubyBlbmFibGVkLXJ1bGUgdmlvbGF0aW9ucylcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBhc3NlcnRcbiAgICAgICAgICBleHByOiA+LVxuICAgICAgICAgICAgZGF0YS5xdWVyeSgnbW9kZWxOYW1lID09IFwiJHtzaGVsbEFyY2hpdGVjdHVyZU1vZGVsfVwiICYmIG5hbWUgPT0gXCJyZXN1bHRcIiAmJlxuICAgICAgICAgICAgd29ya2Zsb3dSdW5JZCA9PSBcIicgKyBydW4uaWQgKyAnXCInKVswXS5hdHRyaWJ1dGVzLmV4aXRDb2RlID09IDBcbiAgICAgICAgICBtZXNzYWdlOiA+LVxuICAgICAgICAgICAgYXJjaGl0ZWN0dXJlIHJ1bGUgdmlvbGF0aW9uKHMpIGZvdW5kIOKAlCBzZWUgdGhlICR7c2hlbGxNb2RlbH0gcmVzdWx0XG4gICAgICAgICAgICBkYXRhIGZvciBkZXRhaWxzXG4gICAgICAgICAgc2V2ZXJpdHk6IGhpZ2hcbiAgICAgICAgZGVwZW5kc09uOlxuICAgICAgICAgIC0gc3RlcDogYXJjaGl0ZWN0dXJlXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgICAgLSBuYW1lOiBtYW5pZmVzdFxuICAgICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgICBjb21wdXRlIHRoZSBhdHRlc3RhdGlvbi1tYW5pZmVzdCBjaGVja3N1bXMgKGF0dGVzdGF0aW9uL21hbmlmZXN0LnRzKVxuICAgICAgICAgIHRoYXQgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbCByZS1jaGVja3MgYXQgbWVyZ2UgdGltZVxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IG1vZGVsX21ldGhvZFxuICAgICAgICAgIG1vZGVsSWRPck5hbWU6ICR7c2hlbGxNYW5pZmVzdE1vZGVsfVxuICAgICAgICAgIG1ldGhvZE5hbWU6IGV4ZWN1dGVcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBydW46IHBucG0gcnVuIGF0dGVzdGF0aW9uOm1hbmlmZXN0XG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IGFzc2VydC1hcmNoaXRlY3R1cmVcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IGFzc2VydC1tYW5pZmVzdFxuICAgICAgICBkZXNjcmlwdGlvbjogYXR0ZXN0YXRpb246bWFuaWZlc3QgbXVzdCBleGl0IDBcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBhc3NlcnRcbiAgICAgICAgICBleHByOiA+LVxuICAgICAgICAgICAgZGF0YS5xdWVyeSgnbW9kZWxOYW1lID09IFwiJHtzaGVsbE1hbmlmZXN0TW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBmYWlsZWQgdG8gY29tcHV0ZSB0aGUgYXR0ZXN0YXRpb24gbWFuaWZlc3Qg4oCUIHNlZSB0aGVcbiAgICAgICAgICAgICR7c2hlbGxNYW5pZmVzdE1vZGVsfSByZXN1bHQgZGF0YSBmb3Igc3Rkb3V0L3N0ZGVyclxuICAgICAgICAgIHNldmVyaXR5OiBoaWdoXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IG1hbmlmZXN0XG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgIGRlcGVuZHNPbjogW11cbiAgICB3ZWlnaHQ6IDBcbnZlcnNpb246IDFcbmAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwYWNrYWdlTWFuYWdlciA9IHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlcjtcbiAgICBjb25zdCBhY3Rpb25WZXJzaW9ucyA9IHJlc29sdmVBY3Rpb25WZXJzaW9ucyhvcHRpb25zLmFjdGlvblZlcnNpb25zKTtcblxuICAgIG5ldyBZYW1sRmlsZShwcm9qZWN0LCAnLmdpdGh1Yi93b3JrZmxvd3MvdmVyaWZ5LWF0dGVzdGF0aW9uLnltbCcsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6ICdWZXJpZnkgQXR0ZXN0YXRpb24nLFxuICAgICAgICBvbjoge1xuICAgICAgICAgIHB1bGxfcmVxdWVzdDoge1xuICAgICAgICAgICAgdHlwZXM6IFsnb3BlbmVkJywgJ3N5bmNocm9uaXplJywgJ3Jlb3BlbmVkJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAnY29udGVudHMnOiAncmVhZCcsXG4gICAgICAgICAgJ3B1bGwtcmVxdWVzdHMnOiAncmVhZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGpvYnM6IHtcbiAgICAgICAgICB2ZXJpZnk6IHtcbiAgICAgICAgICAgICdydW5zLW9uJzogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgICAgICAgJ3N0ZXBzJzogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5jaGVja291dCxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICAncmVmJzogJyR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQuc2hhIH19JyxcbiAgICAgICAgICAgICAgICAgICdwZXJzaXN0LWNyZWRlbnRpYWxzJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLi4uKHBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSA/IFt7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1NldHVwIHBucG0nLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLnBucG1BY3Rpb25TZXR1cCxcbiAgICAgICAgICAgICAgfV0gOiBbXSksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2V0dXAgTm9kZS5qcycsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuc2V0dXBOb2RlLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdub2RlLXZlcnNpb24nOiAnMjQnLFxuICAgICAgICAgICAgICAgICAgJ3BhY2thZ2UtbWFuYWdlci1jYWNoZSc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICAgICAgICAgICAgIHJ1bjogaW5zdGFsbENvbW1hbmQocGFja2FnZU1hbmFnZXIpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0ZldGNoIFBSIGJvZHknLFxuICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgR0hfVE9LRU46ICcke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICAnZ2ggcHIgdmlldyAke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5udW1iZXIgfX0gXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtLXJlcG8gJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19IFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLS1qc29uIGJvZHkgLXEgLmJvZHkgPiAvdG1wL3ByLWJvZHkubWQnLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnVmVyaWZ5IGF0dGVzdGF0aW9uJyxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgIGAke3J1blNjcmlwdENvbW1hbmQocGFja2FnZU1hbmFnZXIsICdhdHRlc3RhdGlvbjp2ZXJpZnknKX0gLS0gXFxcXGAsXG4gICAgICAgICAgICAgICAgICAnICAtLWJvZHktZmlsZSAvdG1wL3ByLWJvZHkubWQgXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtLWNvbW1pdCAke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnNoYSB9fScsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5V29ya2Zsb3dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NvZnR3YXJlRmFjdG9yeVdvcmtmbG93cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbUNBQThDO0FBQzlDLHNEQUF3RTtBQUN4RSxtQ0FBMkQ7QUFDM0QscUVBQXlGO0FBZXpGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkMsWUFBWSxPQUFvQixFQUFFLE9BQXdDO1FBQ3hFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQUcsR0FBRyxRQUFRLFFBQVEsQ0FBQztRQUN2QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsUUFBUSxxQkFBcUIsQ0FBQztRQUNoRSxNQUFNLGtCQUFrQixHQUFHLEdBQUcsUUFBUSxpQkFBaUIsQ0FBQztRQUV4RCx3RkFBd0Y7UUFDeEYsbUZBQW1GO1FBQ25GLDJGQUEyRjtRQUMzRix3RkFBd0Y7UUFDeEYsc0ZBQXNGO1FBQ3RGLDJGQUEyRjtRQUMzRixrRkFBa0Y7UUFDbEYscUZBQXFGO1FBQ3JGLHlGQUF5RjtRQUN6RixnQkFBZ0I7UUFDaEIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7K0JBUUYsQ0FBQztRQUU1QixJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDhDQUE4QyxFQUFFO1lBQ3RFLFFBQVEsRUFBRSxPQUFPLElBQUEsbUJBQVUsR0FBRTs7Ozs7Ozs7Ozs7Ozs7O0VBZWpDLG9CQUFvQjs7Ozs7Ozs7OzJCQVNLLFVBQVU7Ozs7Ozs7Ozs7Ozt3Q0FZRyxVQUFVOzs7O3FEQUlHLFVBQVU7Ozs7Ozs7Ozs7OztDQVk5RDtTQUNJLENBQUMsQ0FBQztRQUVILElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsK0NBQStDLEVBQUU7WUFDdkUsUUFBUSxFQUFFLE9BQU8sSUFBQSxtQkFBVSxHQUFFOzs7Ozs7Ozs7Ozs7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QUN2RCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7NkJBQ2I7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpWRCw0REF5VkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFNhbXBsZUZpbGUsIFlhbWxGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE5vZGVQYWNrYWdlTWFuYWdlciwgTm9kZVByb2plY3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgaW5zdGFsbENvbW1hbmQsIHJ1blNjcmlwdENvbW1hbmQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHJlc29sdmVBY3Rpb25WZXJzaW9ucywgV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyB9IGZyb20gJy4vV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29mdHdhcmVGYWN0b3J5V29ya2Zsb3dzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFyZSByZXBvIG5hbWUsIHVzZWQgdG8gZGVyaXZlIHRoZSBgPHJlcG9OYW1lPi1zaGVsbFstYXJjaGl0ZWN0dXJlfC1tYW5pZmVzdF1gXG4gICAqIG1vZGVsIG5hbWVzIHRoZXNlIHdvcmtmbG93cyBkaXNwYXRjaCBzaGVsbCBjb21tYW5kcyB0aHJvdWdoLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvciB0aGUgcGlubmVkIGFjdGlvbiB2ZXJzaW9ucyB1c2VkIGJ5IGB2ZXJpZnktYXR0ZXN0YXRpb24ueW1sYC5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvblZlcnNpb25zPzogV29ya2Zsb3dBY3Rpb25WZXJzaW9ucztcbn1cblxuLyoqXG4gKiBUaGUgMyBzd2FtcCB3b3JrZmxvd3MgdGhlIGZhY3RvcnkncyBnYXRlIHN0YWdlcyBydW4gKG9wZW5zcGVjLXBsYW4tdmVyaWZ5LFxuICogb3BlbnNwZWMtdGFza3MtdmVyaWZ5LCBwcmUtcHItdmVyaWZ5KSwgcGx1cyB0aGUgR2l0SHViIEFjdGlvbiB0aGF0XG4gKiByZS12ZXJpZmllcyBhIFBSJ3MgZW1iZWRkZWQgYXR0ZXN0YXRpb24gYXQgbWVyZ2UgdGltZS5cbiAqXG4gKiBUaGUgc3dhbXAgd29ya2Zsb3cgWUFNTHMgY2FycnkgYSBzd2FtcC1hc3NpZ25lZCBgaWRgIHRoYXQgbXVzdCBzdGF5IHN0YWJsZVxuICogYWNyb3NzIHN5bnRocyAoc3dhbXAgdXNlcyBpdCBhcyB0aGUgd29ya2Zsb3cncyBpZGVudGl0eSksIHNvIOKAlCBsaWtlIHRoZVxuICogbW9kZWwgaW5zdGFuY2VzIGluIGBTb2Z0d2FyZUZhY3RvcnlNb2RlbHNgIOKAlCB0aGV5J3JlIGBTYW1wbGVGaWxlYHMsIHdyaXR0ZW5cbiAqIG9uY2UgYW5kIHRoZW4gb3duZWQgYnkgdGhlIHRlYW0uIGB2ZXJpZnktYXR0ZXN0YXRpb24ueW1sYCBoYXMgbm8gc3VjaFxuICogaWRlbnRpdHkgY29uc3RyYWludCBhbmQgaXMgYSBwbGFpbiBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvdywgc28gaXQncyBidWlsdFxuICogdGhlIHNhbWUgbWFuYWdlZCB3YXkgYFByRGVwbG95V29ya2Zsb3dgIGlzLlxuICovXG5leHBvcnQgY2xhc3MgU29mdHdhcmVGYWN0b3J5V29ya2Zsb3dzIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IFNvZnR3YXJlRmFjdG9yeVdvcmtmbG93c09wdGlvbnMpIHtcbiAgICBjb25zdCB7IHJlcG9OYW1lIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHNoZWxsTW9kZWwgPSBgJHtyZXBvTmFtZX0tc2hlbGxgO1xuICAgIGNvbnN0IHNoZWxsQXJjaGl0ZWN0dXJlTW9kZWwgPSBgJHtyZXBvTmFtZX0tc2hlbGwtYXJjaGl0ZWN0dXJlYDtcbiAgICBjb25zdCBzaGVsbE1hbmlmZXN0TW9kZWwgPSBgJHtyZXBvTmFtZX0tc2hlbGwtbWFuaWZlc3RgO1xuXG4gICAgLy8gRWFjaCBqb2Igc3RlcCdzIGBydW46YCBiZWxvdyBleGVjdXRlcyB0aHJvdWdoIHN3YW1wJ3MgY29tbWFuZC9zaGVsbCBtb2RlbCwgd2hpY2ggcnVuc1xuICAgIC8vIHRoZSBzdHJpbmcgdGhyb3VnaCB0aGUgaG9zdCdzIG5hdGl2ZSBzaGVsbCDigJQgYmFzaC9zaCBvbiBtYWNPUy9MaW51eCwgYnV0IFdpbmRvd3NcbiAgICAvLyBQb3dlclNoZWxsIDUuMSBvbiBhIFdpbmRvd3MgZGV2IG1hY2hpbmUuIFBvd2VyU2hlbGwgNS4xIGhhcyBubyBgJiZgL2B8fGAgY2hhaW4gb3BlcmF0b3JzXG4gICAgLy8gYW5kIGFsaWFzZXMgYHJtYCB0byBgUmVtb3ZlLUl0ZW1gICh3aG9zZSBgLWZgIGlzIGFtYmlndW91cyB3aXRoIGAtRmlsdGVyYCkuIElmIGEgc3RlcFxuICAgIC8vIGhlcmUgbmVlZHMgbW9yZSB0aGFuIG9uZSBjb21tYW5kLCBwcmVmZXIgYSBzaW5nbGUgcGFja2FnZS5qc29uIHNjcmlwdCB0aGF0IGRvZXMgdGhlXG4gICAgLy8gc2VxdWVuY2luZywgb3IgdXNlIGA7YCB0byBzZXBhcmF0ZSBjb21tYW5kcyAoYWNjZXB0ZWQgYnkgYm90aCBzaGVsbHMsIHRob3VnaCBpdCBkb2VzIG5vdFxuICAgIC8vIHNob3J0LWNpcmN1aXQgb24gZmFpbHVyZSDigJQgcmVseSBvbiB0aGUgd29ya2Zsb3cncyBvd24gYXNzZXJ0IHN0ZXAgZm9yIHRoYXQpLiBUb1xuICAgIC8vIGZvcmNlLWRlbGV0ZSBhIGZpbGUgcG9ydGFibHksIHVzZSBgbm9kZSAtZSBcInJlcXVpcmUoJ2ZzJykucm1TeW5jKCc8cGF0aD4nLCB7Zm9yY2U6XG4gICAgLy8gdHJ1ZX0pXCJgIGluc3RlYWQgb2YgYHJtIC1mIDxwYXRoPmAgKHNlZSBzaGVsbFBvcnRhYmxlU2VxdWVuY2Uvc2hlbGxQb3J0YWJsZUZvcmNlRGVsZXRlXG4gICAgLy8gaW4gdXRpbHMudHMpLlxuICAgIGNvbnN0IHNoZWxsUG9ydGFiaWxpdHlOb3RlID0gYCMgUG9ydGFiaWxpdHkgbm90ZTogXFxgcnVuOlxcYCBiZWxvdyBleGVjdXRlcyB0aHJvdWdoIHN3YW1wJ3MgY29tbWFuZC9zaGVsbCBtb2RlbCwgd2hpY2ggcnVuc1xuIyB0aGUgc3RyaW5nIHRocm91Z2ggdGhlIGhvc3QncyBuYXRpdmUgc2hlbGwg4oCUIGJhc2gvc2ggb24gbWFjT1MvTGludXgsIGJ1dCBXaW5kb3dzXG4jIFBvd2VyU2hlbGwgNS4xIG9uIGEgV2luZG93cyBkZXYgbWFjaGluZS4gUG93ZXJTaGVsbCA1LjEgaGFzIG5vIFxcYCYmXFxgL1xcYHx8XFxgIGNoYWluIG9wZXJhdG9yc1xuIyBhbmQgYWxpYXNlcyBcXGBybVxcYCB0byBcXGBSZW1vdmUtSXRlbVxcYCAod2hvc2UgXFxgLWZcXGAgaXMgYW1iaWd1b3VzIHdpdGggXFxgLUZpbHRlclxcYCkuIElmIGEgc3RlcCBoZXJlXG4jIG5lZWRzIG1vcmUgdGhhbiBvbmUgY29tbWFuZCwgcHJlZmVyIGEgc2luZ2xlIHBhY2thZ2UuanNvbiBzY3JpcHQgdGhhdCBkb2VzIHRoZVxuIyBzZXF1ZW5jaW5nLCBvciB1c2UgXFxgO1xcYCB0byBzZXBhcmF0ZSBjb21tYW5kcyAoYWNjZXB0ZWQgYnkgYm90aCBzaGVsbHMsIHRob3VnaCBpdCBkb2VzIG5vdFxuIyBzaG9ydC1jaXJjdWl0IG9uIGZhaWx1cmUg4oCUIHJlbHkgb24gdGhlIHdvcmtmbG93J3Mgb3duIGFzc2VydCBzdGVwIGZvciB0aGF0KS4gVG9cbiMgZm9yY2UtZGVsZXRlIGEgZmlsZSBwb3J0YWJseSwgdXNlIFxcYG5vZGUgLWUgXCJyZXF1aXJlKCdmcycpLnJtU3luYygnPHBhdGg+Jywge2ZvcmNlOiB0cnVlfSlcIlxcYFxuIyBpbnN0ZWFkIG9mIFxcYHJtIC1mIDxwYXRoPlxcYC5gO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgJ3dvcmtmbG93cy93b3JrZmxvdy1vcGVuc3BlYy1wbGFuLXZlcmlmeS55YW1sJywge1xuICAgICAgY29udGVudHM6IGBpZDogJHtyYW5kb21VVUlEKCl9XG5uYW1lOiBvcGVuc3BlYy1wbGFuLXZlcmlmeVxuZGVzY3JpcHRpb246ID4tXG4gIEZhaWxzIHVubGVzcyB0aGUgbmFtZWQgT3BlblNwZWMgY2hhbmdlIGlzIHdlbGwtZm9ybWVkIChwcm9wb3NhbCwgZGVzaWduLFxuICBzcGVjcyB3aXRoIGRlbHRhcywgdGFza3MgYWxsIHByZXNlbnQpIHZpYSBcXGBvcGVuc3BlYyB2YWxpZGF0ZVxcYC4gR2F0ZXMgdGhlXG4gIGZhY3RvcnkncyBwbGFubmluZyBzdGFnZTogYSByZXF1ZXN0IGNhbid0IHByb2NlZWQgdG8gaW1wbGVtZW50YXRpb24gdW50aWxcbiAgaXQncyBhIHJlYWwgT3BlblNwZWMgY2hhbmdlLCBub3QganVzdCBwcm9zZSBpbiBhIHN3YW1wIGFydGlmYWN0LlxudGFnczoge31cbmlucHV0czpcbiAgdHlwZTogb2JqZWN0XG4gIHJlcXVpcmVkOiBbY2hhbmdlU2x1Z11cbiAgcHJvcGVydGllczpcbiAgICBjaGFuZ2VTbHVnOlxuICAgICAgdHlwZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogVGhlIG9wZW5zcGVjIGNoYW5nZSBuYW1lIChvcGVuc3BlYy9jaGFuZ2VzLzxjaGFuZ2VTbHVnPi8pLlxuJHtzaGVsbFBvcnRhYmlsaXR5Tm90ZX1cbmpvYnM6XG4gIC0gbmFtZTogdmVyaWZ5XG4gICAgZGVzY3JpcHRpb246IFZhbGlkYXRlIHRoZSBPcGVuU3BlYyBjaGFuZ2UgaXMgY29tcGxldGUgYW5kIHdlbGwtZm9ybWVkXG4gICAgc3RlcHM6XG4gICAgICAtIG5hbWU6IHZhbGlkYXRlXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcGVuc3BlYyB2YWxpZGF0ZSA8Y2hhbmdlU2x1Zz4gLS10eXBlIGNoYW5nZVxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IG1vZGVsX21ldGhvZFxuICAgICAgICAgIG1vZGVsSWRPck5hbWU6ICR7c2hlbGxNb2RlbH1cbiAgICAgICAgICBtZXRob2ROYW1lOiBleGVjdXRlXG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgcnVuOiAnb3BlbnNwZWMgdmFsaWRhdGUgXFwke3sgaW5wdXRzLmNoYW5nZVNsdWcgfX0gLS10eXBlIGNoYW5nZSdcbiAgICAgICAgZGVwZW5kc09uOiBbXVxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgICAgLSBuYW1lOiBhc3NlcnQtdmFsaWRcbiAgICAgICAgZGVzY3JpcHRpb246IG9wZW5zcGVjIHZhbGlkYXRlIG11c3QgZXhpdCAwXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogYXNzZXJ0XG4gICAgICAgICAgZXhwcjogPi1cbiAgICAgICAgICAgIGRhdGEucXVlcnkoJ21vZGVsTmFtZSA9PSBcIiR7c2hlbGxNb2RlbH1cIiAmJiBuYW1lID09IFwicmVzdWx0XCIgJiZcbiAgICAgICAgICAgIHdvcmtmbG93UnVuSWQgPT0gXCInICsgcnVuLmlkICsgJ1wiJylbMF0uYXR0cmlidXRlcy5leGl0Q29kZSA9PSAwXG4gICAgICAgICAgbWVzc2FnZTogPi1cbiAgICAgICAgICAgIE9wZW5TcGVjIGNoYW5nZSBpcyBub3QgdmFsaWQvY29tcGxldGUgKG1pc3NpbmcgcHJvcG9zYWwsIGRlc2lnbixcbiAgICAgICAgICAgIHNwZWNzIHdpdGggZGVsdGFzLCBvciB0YXNrcykg4oCUIHNlZSB0aGUgJHtzaGVsbE1vZGVsfSByZXN1bHQgZGF0YVxuICAgICAgICAgICAgZm9yIG9wZW5zcGVjJ3Mgb3duIHJlbWVkaWF0aW9uIG91dHB1dFxuICAgICAgICAgIHNldmVyaXR5OiBoaWdoXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IHZhbGlkYXRlXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgIGRlcGVuZHNPbjogW11cbiAgICB3ZWlnaHQ6IDBcbnZlcnNpb246IDFcbmAsXG4gICAgfSk7XG5cbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCAnd29ya2Zsb3dzL3dvcmtmbG93LW9wZW5zcGVjLXRhc2tzLXZlcmlmeS55YW1sJywge1xuICAgICAgY29udGVudHM6IGBpZDogJHtyYW5kb21VVUlEKCl9XG5uYW1lOiBvcGVuc3BlYy10YXNrcy12ZXJpZnlcbmRlc2NyaXB0aW9uOiA+LVxuICBGYWlscyB1bmxlc3MgZXZlcnkgdGFzayBpbiB0aGUgbmFtZWQgT3BlblNwZWMgY2hhbmdlJ3MgdGFza3MubWQgaXMgY2hlY2tlZFxuICBvZmYgKG9wZW5zcGVjLWdhdGVzL2NoZWNrLXRhc2tzLWNvbXBsZXRlLnRzLCB2aWEgXFxgcG5wbSBydW5cbiAgb3BlbnNwZWM6Y2hlY2stdGFza3MtY29tcGxldGVcXGApLiBHYXRlcyB0aGUgZmFjdG9yeSdzIGltcGxlbWVudGluZyBzdGFnZTpcbiAgd29yayBpc24ndCBkb25lIHVudGlsIHRoZSBjaGFuZ2UncyBvd24gdGFzayBsaXN0IHNheXMgaXQncyBkb25lLCBub3QganVzdFxuICBiZWNhdXNlIGFuIGFydGlmYWN0IHdhcyByZWNvcmRlZC5cbnRhZ3M6IHt9XG5pbnB1dHM6XG4gIHR5cGU6IG9iamVjdFxuICByZXF1aXJlZDogW2NoYW5nZVNsdWddXG4gIHByb3BlcnRpZXM6XG4gICAgY2hhbmdlU2x1ZzpcbiAgICAgIHR5cGU6IHN0cmluZ1xuICAgICAgZGVzY3JpcHRpb246IFRoZSBvcGVuc3BlYyBjaGFuZ2UgbmFtZSAob3BlbnNwZWMvY2hhbmdlcy88Y2hhbmdlU2x1Zz4vKS5cbiR7c2hlbGxQb3J0YWJpbGl0eU5vdGV9XG5qb2JzOlxuICAtIG5hbWU6IHZlcmlmeVxuICAgIGRlc2NyaXB0aW9uOiBDaGVjayBldmVyeSB0YXNrIGluIHRoZSBjaGFuZ2UncyB0YXNrcy5tZCBpcyBjb21wbGV0ZVxuICAgIHN0ZXBzOlxuICAgICAgLSBuYW1lOiBjaGVjay10YXNrc1xuICAgICAgICBkZXNjcmlwdGlvbjogcG5wbSBydW4gb3BlbnNwZWM6Y2hlY2stdGFza3MtY29tcGxldGUgLS0gPGNoYW5nZVNsdWc+XG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogbW9kZWxfbWV0aG9kXG4gICAgICAgICAgbW9kZWxJZE9yTmFtZTogJHtzaGVsbE1vZGVsfVxuICAgICAgICAgIG1ldGhvZE5hbWU6IGV4ZWN1dGVcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBydW46ICdwbnBtIHJ1biBvcGVuc3BlYzpjaGVjay10YXNrcy1jb21wbGV0ZSAtLSBcXCR7eyBpbnB1dHMuY2hhbmdlU2x1ZyB9fSdcbiAgICAgICAgZGVwZW5kc09uOiBbXVxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgICAgLSBuYW1lOiBhc3NlcnQtdGFza3MtY29tcGxldGVcbiAgICAgICAgZGVzY3JpcHRpb246IG9wZW5zcGVjOmNoZWNrLXRhc2tzLWNvbXBsZXRlIG11c3QgZXhpdCAwXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogYXNzZXJ0XG4gICAgICAgICAgZXhwcjogPi1cbiAgICAgICAgICAgIGRhdGEucXVlcnkoJ21vZGVsTmFtZSA9PSBcIiR7c2hlbGxNb2RlbH1cIiAmJiBuYW1lID09IFwicmVzdWx0XCIgJiZcbiAgICAgICAgICAgIHdvcmtmbG93UnVuSWQgPT0gXCInICsgcnVuLmlkICsgJ1wiJylbMF0uYXR0cmlidXRlcy5leGl0Q29kZSA9PSAwXG4gICAgICAgICAgbWVzc2FnZTogPi1cbiAgICAgICAgICAgIE9wZW5TcGVjIGNoYW5nZSBoYXMgaW5jb21wbGV0ZSB0YXNrcyDigJQgc2VlIHRoZSAke3NoZWxsTW9kZWx9XG4gICAgICAgICAgICByZXN1bHQgZGF0YSBmb3IgdGhlIGNvbXBsZXRlZFRhc2tzL3RvdGFsVGFza3MgYnJlYWtkb3duXG4gICAgICAgICAgc2V2ZXJpdHk6IGhpZ2hcbiAgICAgICAgZGVwZW5kc09uOlxuICAgICAgICAgIC0gc3RlcDogY2hlY2stdGFza3NcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgZGVwZW5kc09uOiBbXVxuICAgIHdlaWdodDogMFxudmVyc2lvbjogMVxuYCxcbiAgICB9KTtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsICd3b3JrZmxvd3Mvd29ya2Zsb3ctcHJlLXByLXZlcmlmeS55YW1sJywge1xuICAgICAgY29udGVudHM6IGBpZDogJHtyYW5kb21VVUlEKCl9XG5uYW1lOiBwcmUtcHItdmVyaWZ5XG5kZXNjcmlwdGlvbjogPi1cbiAgUHJlLVBSIHZlcmlmaWNhdGlvbjogcnVuIHRoZSBzYW1lIGNoZWNrcyBDSSB3b3VsZCBydW4sIGJlZm9yZSB0aGUgZmFjdG9yeVxuICBvcGVucyBhIFBSIHJhdGhlciB0aGFuIGFmdGVyIOKAlCBidWlsZC9zeW50aC90ZXN0L2xpbnQgKHBucG0gYnVpbGQpIGFuZCB0aGVcbiAgYXJjaGl0ZWN0dXJlIHJ1bGUgcmVnaXN0cnkgKHBucG0gdmFsaWRhdGU6YXJjaGl0ZWN0dXJlKS4gQm90aCBtdXN0IHBhc3MuXG50YWdzOiB7fVxuIyBSZXF1aXJlZCBleHBsaWNpdGx5IHJhdGhlciB0aGFuIHJlbGllZCBvbiBhcyBhIGRlZmF1bHQuIHN3YW1wIHN0b3BwZWQgcnVubmluZ1xuIyBAc3dhbXAvdmVyaWZpY2F0aW9uLWF0dGVzdGF0aW9uIGJ5IGRlZmF1bHQgaW4gdjIwMjYwODMxLjIwMjEzNy4wIChzd2FtcC1jbHViIzE5MTgpXG4jIGFuZCBzdG9wcGVkIHByb3ZpZGluZyBpdCBpbiAyMDI2MTAwNS4xOTAwMDMuMC4gQHN3YW1wL3ZlcmlmaWNhdGlvbi1zdW1tYXJ5IHJlcGxhY2VzXG4jIGl0LCB3aXRoIHRoZSBzYW1lIGNvbnRlbnQgdW5kZXIgdGhlIGRhdGEgbmFtZSByZXBvcnQtc3dhbXAtdmVyaWZpY2F0aW9uLXN1bW1hcnkuXG4jIEEgd29ya2Zsb3cgdGhhdCByZXF1aXJlcyBhIHJlcG9ydCB0aGUgaW5zdGFsbGVkIHN3YW1wIGRvZXMgbm90IHByb3ZpZGUgc3RpbGwgZXhpdHMgMFxuIyBhbmQgc3RvcmVzIGFuIGVycm9yIHJlcG9ydCBpbiBpdHMgcGxhY2UsIHNvIHRoZSBvcGVuLXByIHN0YWdlIHdvdWxkIGVtYmVkIHRoYXQuXG5yZXBvcnRzOlxuICByZXF1aXJlOlxuICAgIC0gXCJAc3dhbXAvdmVyaWZpY2F0aW9uLXN1bW1hcnlcIlxuaW5wdXRzOlxuICB0eXBlOiBvYmplY3RcbiAgcHJvcGVydGllczpcbiAgICBjb21taXQ6XG4gICAgICB0eXBlOiBzdHJpbmdcbiAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICBUaGUgY29tbWl0IHNoYSBiZWluZyB2ZXJpZmllZC4gUmVhZCBieSB0aGUgYnVpbHQtaW5cbiAgICAgICAgQHN3YW1wL3ZlcmlmaWNhdGlvbi1zdW1tYXJ5IHJlcG9ydCdzIHN1YmplY3QuY29tbWl0IOKAlCBwYXNzIHRoZVxuICAgICAgICByZWFsIEhFQUQgc2hhIG9yIHRoZSByZXBvcnQgcmVuZGVycyBcInVua25vd25cIi5cbiAgICBicmFuY2g6XG4gICAgICB0eXBlOiBzdHJpbmdcbiAgICAgIGRlc2NyaXB0aW9uOiBTYW1lIGFzIGNvbW1pdCwgYnV0IGZvciBAc3dhbXAvdmVyaWZpY2F0aW9uLXN1bW1hcnkncyBzdWJqZWN0LmJyYW5jaC5cbiR7c2hlbGxQb3J0YWJpbGl0eU5vdGV9XG5qb2JzOlxuICAtIG5hbWU6IHZlcmlmeVxuICAgIGRlc2NyaXB0aW9uOiBCdWlsZC90ZXN0L2xpbnQgcGx1cyBhcmNoaXRlY3R1cmUtcnVsZSBjaGVja3MsIGdhdGluZyBQUiBjcmVhdGlvblxuICAgIHN0ZXBzOlxuICAgICAgLSBuYW1lOiBidWlsZFxuICAgICAgICBkZXNjcmlwdGlvbjogY29tcGlsZSAtPiBjZGsgc3ludGggLT4gamVzdCAtPiBlc2xpbnQgKGV4aXN0aW5nIHByb2plbiBidWlsZCB0YXNrKVxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IG1vZGVsX21ldGhvZFxuICAgICAgICAgIG1vZGVsSWRPck5hbWU6ICR7c2hlbGxNb2RlbH1cbiAgICAgICAgICBtZXRob2ROYW1lOiBleGVjdXRlXG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgcnVuOiBwbnBtIGJ1aWxkXG4gICAgICAgIGRlcGVuZHNPbjogW11cbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LWJ1aWxkXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwbnBtIGJ1aWxkIG11c3QgZXhpdCAwXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogYXNzZXJ0XG4gICAgICAgICAgZXhwcjogPi1cbiAgICAgICAgICAgIGRhdGEucXVlcnkoJ21vZGVsTmFtZSA9PSBcIiR7c2hlbGxNb2RlbH1cIiAmJiBuYW1lID09IFwicmVzdWx0XCIgJiZcbiAgICAgICAgICAgIHdvcmtmbG93UnVuSWQgPT0gXCInICsgcnVuLmlkICsgJ1wiJylbMF0uYXR0cmlidXRlcy5leGl0Q29kZSA9PSAwXG4gICAgICAgICAgbWVzc2FnZTogPi1cbiAgICAgICAgICAgIHBucG0gYnVpbGQgZmFpbGVkIChjb21waWxlL3N5bnRoL3Rlc3QvbGludCkg4oCUIHNlZSB0aGUgJHtzaGVsbE1vZGVsfVxuICAgICAgICAgICAgcmVzdWx0IGRhdGEgZm9yIHN0ZG91dC9zdGRlcnJcbiAgICAgICAgICBzZXZlcml0eTogaGlnaFxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiBidWlsZFxuICAgICAgICAgICAgY29uZGl0aW9uOlxuICAgICAgICAgICAgICB0eXBlOiBzdWNjZWVkZWRcbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXJjaGl0ZWN0dXJlXG4gICAgICAgIGRlc2NyaXB0aW9uOiBydW4gdGhlIGFyY2hpdGVjdHVyZSBydWxlIHJlZ2lzdHJ5IChhcmNoaXRlY3R1cmUtcnVsZXMvcnVsZXMuanNvbilcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBtb2RlbF9tZXRob2RcbiAgICAgICAgICBtb2RlbElkT3JOYW1lOiAke3NoZWxsQXJjaGl0ZWN0dXJlTW9kZWx9XG4gICAgICAgICAgbWV0aG9kTmFtZTogZXhlY3V0ZVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIHJ1bjogcG5wbSBydW4gdmFsaWRhdGU6YXJjaGl0ZWN0dXJlXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IGFzc2VydC1idWlsZFxuICAgICAgICAgICAgY29uZGl0aW9uOlxuICAgICAgICAgICAgICB0eXBlOiBzdWNjZWVkZWRcbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LWFyY2hpdGVjdHVyZVxuICAgICAgICBkZXNjcmlwdGlvbjogYXJjaGl0ZWN0dXJlIHJ1bGUgcmVnaXN0cnkgbXVzdCBleGl0IDAgKG5vIGVuYWJsZWQtcnVsZSB2aW9sYXRpb25zKVxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsQXJjaGl0ZWN0dXJlTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBhcmNoaXRlY3R1cmUgcnVsZSB2aW9sYXRpb24ocykgZm91bmQg4oCUIHNlZSB0aGUgJHtzaGVsbE1vZGVsfSByZXN1bHRcbiAgICAgICAgICAgIGRhdGEgZm9yIGRldGFpbHNcbiAgICAgICAgICBzZXZlcml0eTogaGlnaFxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiBhcmNoaXRlY3R1cmVcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IG1hbmlmZXN0XG4gICAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICAgIGNvbXB1dGUgdGhlIGF0dGVzdGF0aW9uLW1hbmlmZXN0IGNoZWNrc3VtcyAoYXR0ZXN0YXRpb24vbWFuaWZlc3QudHMpXG4gICAgICAgICAgdGhhdCB2ZXJpZnktYXR0ZXN0YXRpb24ueW1sIHJlLWNoZWNrcyBhdCBtZXJnZSB0aW1lXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogbW9kZWxfbWV0aG9kXG4gICAgICAgICAgbW9kZWxJZE9yTmFtZTogJHtzaGVsbE1hbmlmZXN0TW9kZWx9XG4gICAgICAgICAgbWV0aG9kTmFtZTogZXhlY3V0ZVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIHJ1bjogcG5wbSBydW4gYXR0ZXN0YXRpb246bWFuaWZlc3RcbiAgICAgICAgZGVwZW5kc09uOlxuICAgICAgICAgIC0gc3RlcDogYXNzZXJ0LWFyY2hpdGVjdHVyZVxuICAgICAgICAgICAgY29uZGl0aW9uOlxuICAgICAgICAgICAgICB0eXBlOiBzdWNjZWVkZWRcbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LW1hbmlmZXN0XG4gICAgICAgIGRlc2NyaXB0aW9uOiBhdHRlc3RhdGlvbjptYW5pZmVzdCBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTWFuaWZlc3RNb2RlbH1cIiAmJiBuYW1lID09IFwicmVzdWx0XCIgJiZcbiAgICAgICAgICAgIHdvcmtmbG93UnVuSWQgPT0gXCInICsgcnVuLmlkICsgJ1wiJylbMF0uYXR0cmlidXRlcy5leGl0Q29kZSA9PSAwXG4gICAgICAgICAgbWVzc2FnZTogPi1cbiAgICAgICAgICAgIGZhaWxlZCB0byBjb21wdXRlIHRoZSBhdHRlc3RhdGlvbiBtYW5pZmVzdCDigJQgc2VlIHRoZVxuICAgICAgICAgICAgJHtzaGVsbE1hbmlmZXN0TW9kZWx9IHJlc3VsdCBkYXRhIGZvciBzdGRvdXQvc3RkZXJyXG4gICAgICAgICAgc2V2ZXJpdHk6IGhpZ2hcbiAgICAgICAgZGVwZW5kc09uOlxuICAgICAgICAgIC0gc3RlcDogbWFuaWZlc3RcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgZGVwZW5kc09uOiBbXVxuICAgIHdlaWdodDogMFxudmVyc2lvbjogMVxuYCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHBhY2thZ2VNYW5hZ2VyID0gcHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyO1xuICAgIGNvbnN0IGFjdGlvblZlcnNpb25zID0gcmVzb2x2ZUFjdGlvblZlcnNpb25zKG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMpO1xuXG4gICAgbmV3IFlhbWxGaWxlKHByb2plY3QsICcuZ2l0aHViL3dvcmtmbG93cy92ZXJpZnktYXR0ZXN0YXRpb24ueW1sJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgbmFtZTogJ1ZlcmlmeSBBdHRlc3RhdGlvbicsXG4gICAgICAgIG9uOiB7XG4gICAgICAgICAgcHVsbF9yZXF1ZXN0OiB7XG4gICAgICAgICAgICB0eXBlczogWydvcGVuZWQnLCAnc3luY2hyb25pemUnLCAncmVvcGVuZWQnLCAnZWRpdGVkJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY29uY3VycmVuY3k6IHtcbiAgICAgICAgICAnZ3JvdXAnOiAndmVyaWZ5LWF0dGVzdGF0aW9uLSR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm51bWJlciB9fS0ke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnNoYSB9fScsXG4gICAgICAgICAgJ2NhbmNlbC1pbi1wcm9ncmVzcyc6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgJ2NvbnRlbnRzJzogJ3JlYWQnLFxuICAgICAgICAgICdwdWxsLXJlcXVlc3RzJzogJ3JlYWQnLFxuICAgICAgICB9LFxuICAgICAgICBqb2JzOiB7XG4gICAgICAgICAgdmVyaWZ5OiB7XG4gICAgICAgICAgICAncnVucy1vbic6ICd1YnVudHUtbGF0ZXN0JyxcbiAgICAgICAgICAgICdzdGVwcyc6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuY2hlY2tvdXQsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ3JlZic6ICcke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnNoYSB9fScsXG4gICAgICAgICAgICAgICAgICAncGVyc2lzdC1jcmVkZW50aWFscyc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC4uLihwYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0gPyBbe1xuICAgICAgICAgICAgICAgIG5hbWU6ICdTZXR1cCBwbnBtJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5wbnBtQWN0aW9uU2V0dXAsXG4gICAgICAgICAgICAgIH1dIDogW10pLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLnNldHVwTm9kZSxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogJzI0JyxcbiAgICAgICAgICAgICAgICAgICdwYWNrYWdlLW1hbmFnZXItY2FjaGUnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgICAgICBydW46IGluc3RhbGxDb21tYW5kKHBhY2thZ2VNYW5hZ2VyKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdGZXRjaCBQUiBib2R5JyxcbiAgICAgICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgICAgIEdIX1RPS0VOOiAnJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAgICAgJ2doIHByIHZpZXcgJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubnVtYmVyIH19IFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLS1yZXBvICR7eyBnaXRodWIucmVwb3NpdG9yeSB9fSBcXFxcJyxcbiAgICAgICAgICAgICAgICAgICcgIC0tanNvbiBib2R5IC1xIC5ib2R5ID4gL3RtcC9wci1ib2R5Lm1kJyxcbiAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1ZlcmlmeSBhdHRlc3RhdGlvbicsXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICBgJHtydW5TY3JpcHRDb21tYW5kKHBhY2thZ2VNYW5hZ2VyLCAnYXR0ZXN0YXRpb246dmVyaWZ5Jyl9IC0tIFxcXFxgLFxuICAgICAgICAgICAgICAgICAgJyAgLS1ib2R5LWZpbGUgL3RtcC9wci1ib2R5Lm1kIFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLS1jb21taXQgJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5zaGEgfX0nLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -7,7 +7,7 @@ const javascript_1 = require("projen/lib/javascript");
7
7
  const utils_1 = require("./utils");
8
8
  const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
9
9
  class StagingDeployWorkflow extends projen_1.YamlFile {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.28.0" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.29.0" };
11
11
  constructor(project, options) {
12
12
  const packageManager = project.package.packageManager;
13
13
  const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
@@ -39,7 +39,7 @@ const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
40
  const projen_1 = require("projen");
41
41
  class WorkflowAutoDiscover extends projen_1.Component {
42
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.WorkflowAutoDiscover", version: "1.28.0" };
42
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.WorkflowAutoDiscover", version: "1.29.0" };
43
43
  constructor(project) {
44
44
  super(project);
45
45
  }
package/package.json CHANGED
@@ -49,7 +49,7 @@
49
49
  "main": "lib/index.js",
50
50
  "license": "Apache-2.0",
51
51
  "stability": "stable",
52
- "version": "1.28.0",
52
+ "version": "1.29.0",
53
53
  "jest": {
54
54
  "coverageProvider": "v8",
55
55
  "testMatch": [