@cdklabs/multi-az-observability 0.0.1-alpha.32 → 0.0.1-alpha.34
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 +4 -4
- package/API.md +6 -6
- package/lib/alarmsandrules/IOperationAlarmsAndRules.d.ts +3 -3
- package/lib/alarmsandrules/IOperationAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/IServiceAlarmsAndRules.d.ts +6 -2
- package/lib/alarmsandrules/IServiceAlarmsAndRules.js +1 -1
- package/lib/alarmsandrules/OperationAlarmsAndRules.d.ts +3 -3
- package/lib/alarmsandrules/OperationAlarmsAndRules.js +11 -11
- package/lib/alarmsandrules/ServiceAlarmsAndRules.d.ts +6 -2
- package/lib/alarmsandrules/ServiceAlarmsAndRules.js +9 -9
- package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
- package/lib/basic_observability/BasicServiceDashboard.js +2 -2
- package/lib/basic_observability/BasicServiceMultiAZObservability.js +1 -1
- package/lib/canaries/src/canary.zip +0 -0
- package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +10 -10
- package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +13 -13
- package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.d.ts +3 -1
- package/lib/dashboards/props/ServiceAvailabilityAndLatencyDashboardProps.js +1 -1
- package/lib/monitoring/src/monitoring-layer.zip +0 -0
- package/lib/outlier-detection/src/outlier-detection.zip +0 -0
- package/lib/outlier-detection/src/scipy-layer.zip +0 -0
- package/lib/services/CanaryMetrics.js +1 -1
- package/lib/services/CanaryTestMetricsOverride.js +1 -1
- package/lib/services/ContributorInsightRuleDetails.js +1 -1
- package/lib/services/InstrumentedServiceMultiAZObservability.js +3 -3
- package/lib/services/Operation.js +1 -1
- package/lib/services/OperationMetricDetails.js +1 -1
- package/lib/services/Service.js +1 -1
- package/lib/services/ServiceMetricDetails.js +1 -1
- package/lib/services/props/MetricDimensions.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -7385,7 +7385,7 @@
|
|
|
7385
7385
|
"elementtype": {
|
|
7386
7386
|
"fqn": "aws-cdk-lib.aws_cloudwatch.IAlarm"
|
|
7387
7387
|
},
|
|
7388
|
-
"kind": "
|
|
7388
|
+
"kind": "map"
|
|
7389
7389
|
}
|
|
7390
7390
|
}
|
|
7391
7391
|
},
|
|
@@ -7406,7 +7406,7 @@
|
|
|
7406
7406
|
"elementtype": {
|
|
7407
7407
|
"fqn": "aws-cdk-lib.aws_cloudwatch.IAlarm"
|
|
7408
7408
|
},
|
|
7409
|
-
"kind": "
|
|
7409
|
+
"kind": "map"
|
|
7410
7410
|
}
|
|
7411
7411
|
}
|
|
7412
7412
|
},
|
|
@@ -10387,6 +10387,6 @@
|
|
|
10387
10387
|
"symbolId": "src/services/props/ServiceProps:ServiceProps"
|
|
10388
10388
|
}
|
|
10389
10389
|
},
|
|
10390
|
-
"version": "0.0.1-alpha.
|
|
10391
|
-
"fingerprint": "
|
|
10390
|
+
"version": "0.0.1-alpha.34",
|
|
10391
|
+
"fingerprint": "aKp4DM9gnD7DGI8TTLCtrtzOAehmBkttZQ0qD34S4vA="
|
|
10392
10392
|
}
|
package/API.md
CHANGED
|
@@ -4895,8 +4895,8 @@ Service level alarms and rules using critical operations.
|
|
|
4895
4895
|
| --- | --- | --- |
|
|
4896
4896
|
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalFaultCountServerSideAlarm">regionalFaultCountServerSideAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for fault count exceeding a regional threshold for all critical operations. |
|
|
4897
4897
|
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.service">service</a></code> | <code><a href="#@cdklabs/multi-az-observability.IService">IService</a></code> | The service these alarms and rules are for. |
|
|
4898
|
-
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalAggregateIsolatedImpactAlarms">zonalAggregateIsolatedImpactAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm
|
|
4899
|
-
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalServerSideIsolatedImpactAlarms">zonalServerSideIsolatedImpactAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm
|
|
4898
|
+
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalAggregateIsolatedImpactAlarms">zonalAggregateIsolatedImpactAlarms</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_cloudwatch.IAlarm}</code> | The zonal aggregate isolated impact alarms. |
|
|
4899
|
+
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalServerSideIsolatedImpactAlarms">zonalServerSideIsolatedImpactAlarms</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_cloudwatch.IAlarm}</code> | The zonal server-side isolated impact alarms. |
|
|
4900
4900
|
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityCanaryAlarm">regionalAvailabilityCanaryAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for regional availability impact of any critical operation as measured by the canary. |
|
|
4901
4901
|
| <code><a href="#@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.regionalAvailabilityOrLatencyCanaryAlarm">regionalAvailabilityOrLatencyCanaryAlarm</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm</code> | An alarm for regional availability or latency impact of any critical operation as measured by the canary. |
|
|
4902
4902
|
|
|
@@ -4929,10 +4929,10 @@ The service these alarms and rules are for.
|
|
|
4929
4929
|
##### `zonalAggregateIsolatedImpactAlarms`<sup>Required</sup> <a name="zonalAggregateIsolatedImpactAlarms" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalAggregateIsolatedImpactAlarms"></a>
|
|
4930
4930
|
|
|
4931
4931
|
```typescript
|
|
4932
|
-
public readonly zonalAggregateIsolatedImpactAlarms:
|
|
4932
|
+
public readonly zonalAggregateIsolatedImpactAlarms: {[ key: string ]: IAlarm};
|
|
4933
4933
|
```
|
|
4934
4934
|
|
|
4935
|
-
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm
|
|
4935
|
+
- *Type:* {[ key: string ]: aws-cdk-lib.aws_cloudwatch.IAlarm}
|
|
4936
4936
|
|
|
4937
4937
|
The zonal aggregate isolated impact alarms.
|
|
4938
4938
|
|
|
@@ -4945,10 +4945,10 @@ that indicates it has isolated impact as measured by canaries or server-side.
|
|
|
4945
4945
|
##### `zonalServerSideIsolatedImpactAlarms`<sup>Required</sup> <a name="zonalServerSideIsolatedImpactAlarms" id="@cdklabs/multi-az-observability.IServiceAlarmsAndRules.property.zonalServerSideIsolatedImpactAlarms"></a>
|
|
4946
4946
|
|
|
4947
4947
|
```typescript
|
|
4948
|
-
public readonly zonalServerSideIsolatedImpactAlarms:
|
|
4948
|
+
public readonly zonalServerSideIsolatedImpactAlarms: {[ key: string ]: IAlarm};
|
|
4949
4949
|
```
|
|
4950
4950
|
|
|
4951
|
-
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm
|
|
4951
|
+
- *Type:* {[ key: string ]: aws-cdk-lib.aws_cloudwatch.IAlarm}
|
|
4952
4952
|
|
|
4953
4953
|
The zonal server-side isolated impact alarms.
|
|
4954
4954
|
|
|
@@ -27,13 +27,13 @@ export interface IOperationAlarmsAndRules {
|
|
|
27
27
|
/**
|
|
28
28
|
* The aggregate zonal alarm indexed by Availability Zone name.
|
|
29
29
|
*/
|
|
30
|
-
readonly
|
|
30
|
+
readonly aggregateZonalAlarms: {
|
|
31
31
|
[key: string]: IAlarm;
|
|
32
32
|
};
|
|
33
33
|
/**
|
|
34
34
|
* The server side zonal alarms and rules, indexed by Availability Zone name.
|
|
35
35
|
*/
|
|
36
|
-
readonly
|
|
36
|
+
readonly serverSideZonalAlarmsAndRules: {
|
|
37
37
|
[key: string]: IServerSideOperationZonalAlarmsAndRules;
|
|
38
38
|
};
|
|
39
39
|
/**
|
|
@@ -41,7 +41,7 @@ export interface IOperationAlarmsAndRules {
|
|
|
41
41
|
*
|
|
42
42
|
* @default - This is an empty dictionary if canary metric details are not provided
|
|
43
43
|
*/
|
|
44
|
-
readonly
|
|
44
|
+
readonly canaryZonalAlarmsAndRules?: {
|
|
45
45
|
[key: string]: ICanaryOperationZonalAlarmsAndRules;
|
|
46
46
|
};
|
|
47
47
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgSUFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uIH0gZnJvbSAnLi4vc2VydmljZXMvSU9wZXJhdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhbGFybXMgYW5kIHJ1bGVzIGZvciBhbiBvcGVyYXRpb24gZm9yIGJvdGggcmVnaW9uYWwgYW5kIHpvbmFsIG1ldHJpY3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiB0aGUgYWxhcm1zIGFuZCBydWxlcyBhcmUgY3JlYXRlZCBmb3JcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbjogSU9wZXJhdGlvbjtcblxuICAvKipcbiAgICogQW4gYWxhcm0gaW5kaWNhdGluZyByZWdpb25hbGx5IHNjb3BlZCBpbXBhY3QsIG5vdCB6b25hbFxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uYWxJbXBhY3RBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzPzogSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm0gaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYWdncmVnYXRlWm9uYWxBbGFybXM6IHtba2V5OiBzdHJpbmddOiBJQWxhcm19O1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgem9uYWwgYWxhcm1zIGFuZCBydWxlcywgaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM6IHtba2V5OiBzdHJpbmddOiBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXN9O1xuXG4gIC8qKlxuICAgKiBUaGUgY2FuYXJ5IHpvbmFsIGFsYXJtcyBhbmQgcnVsZXMsIGluZGV4ZWQgYnkgQXZhaWxhYmlsaXR5IFpvbmUgbmFtZS5cbiAgICogXG4gICAqIEBkZWZhdWx0IC0gVGhpcyBpcyBhbiBlbXB0eSBkaWN0aW9uYXJ5IGlmIGNhbmFyeSBtZXRyaWMgZGV0YWlscyBhcmUgbm90IHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlab25hbEFsYXJtc0FuZFJ1bGVzPzoge1trZXk6IHN0cmluZ106IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzfTtcbn1cbiJdfQ==
|
|
@@ -13,14 +13,18 @@ export interface IServiceAlarmsAndRules {
|
|
|
13
13
|
* triggers for availability or latency impact to any critical operation in that AZ
|
|
14
14
|
* that indicates it has isolated impact as measured by canaries or server-side.
|
|
15
15
|
*/
|
|
16
|
-
zonalAggregateIsolatedImpactAlarms:
|
|
16
|
+
zonalAggregateIsolatedImpactAlarms: {
|
|
17
|
+
[key: string]: IAlarm;
|
|
18
|
+
};
|
|
17
19
|
/**
|
|
18
20
|
* The zonal server-side isolated impact alarms. There is 1 alarm per AZ that triggers
|
|
19
21
|
* on availability or atency impact to any critical operation in that AZ. These are useful
|
|
20
22
|
* for deployment monitoring to not inadvertently fail when a canary can't contact an AZ
|
|
21
23
|
* during a deployment.
|
|
22
24
|
*/
|
|
23
|
-
zonalServerSideIsolatedImpactAlarms:
|
|
25
|
+
zonalServerSideIsolatedImpactAlarms: {
|
|
26
|
+
[key: string]: IAlarm;
|
|
27
|
+
};
|
|
24
28
|
/**
|
|
25
29
|
* An alarm for regional availability or latency impact of any critical operation as measured by the canary.
|
|
26
30
|
*/
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlcnZpY2VBbGFybXNBbmRSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXNhbmRydWxlcy9JU2VydmljZUFsYXJtc0FuZFJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL0lTZXJ2aWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGxldmVsIGFsYXJtcyBhbmQgcnVsZXMgdXNpbmcgY3JpdGljYWwgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlc2UgYWxhcm1zIGFuZCBydWxlcyBhcmUgZm9yXG4gICAqL1xuICBzZXJ2aWNlOiBJU2VydmljZTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIGFnZ3JlZ2F0ZSBpc29sYXRlZCBpbXBhY3QgYWxhcm1zLiBUaGVyZSBpcyAxIGFsYXJtIHBlciBBWiB0aGF0XG4gICAqIHRyaWdnZXJzIGZvciBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaXG4gICAqIHRoYXQgaW5kaWNhdGVzIGl0IGhhcyBpc29sYXRlZCBpbXBhY3QgYXMgbWVhc3VyZWQgYnkgY2FuYXJpZXMgb3Igc2VydmVyLXNpZGUuXG4gICAqL1xuICB6b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiB7W2tleTogc3RyaW5nXTogSUFsYXJtfTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIHNlcnZlci1zaWRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXQgdHJpZ2dlcnNcbiAgICogb24gYXZhaWxhYmlsaXR5IG9yIGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaLiBUaGVzZSBhcmUgdXNlZnVsXG4gICAqIGZvciBkZXBsb3ltZW50IG1vbml0b3JpbmcgdG8gbm90IGluYWR2ZXJ0ZW50bHkgZmFpbCB3aGVuIGEgY2FuYXJ5IGNhbid0IGNvbnRhY3QgYW4gQVpcbiAgICogZHVyaW5nIGEgZGVwbG95bWVudC5cbiAgICovXG4gIHpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiB7W2tleTogc3RyaW5nXTogSUFsYXJtfTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIHJlZ2lvbmFsIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgZmF1bHQgY291bnQgZXhjZWVkaW5nIGEgcmVnaW9uYWwgdGhyZXNob2xkIGZvciBhbGwgY3JpdGljYWwgb3BlcmF0aW9ucy5cbiAgICovXG4gIHJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xufVxuIl19
|
|
@@ -26,7 +26,7 @@ export declare class OperationAlarmsAndRules extends Construct implements IOpera
|
|
|
26
26
|
/**
|
|
27
27
|
* The aggregate zonal alarm indexed by Availability Zone Id.
|
|
28
28
|
*/
|
|
29
|
-
readonly
|
|
29
|
+
readonly aggregateZonalAlarms: {
|
|
30
30
|
[key: string]: IAlarm;
|
|
31
31
|
};
|
|
32
32
|
/**
|
|
@@ -36,7 +36,7 @@ export declare class OperationAlarmsAndRules extends Construct implements IOpera
|
|
|
36
36
|
/**
|
|
37
37
|
* The server side zonal alarms and rules, indexed by Availability Zone name.
|
|
38
38
|
*/
|
|
39
|
-
readonly
|
|
39
|
+
readonly serverSideZonalAlarmsAndRules: {
|
|
40
40
|
[key: string]: IServerSideOperationZonalAlarmsAndRules;
|
|
41
41
|
};
|
|
42
42
|
/**
|
|
@@ -44,7 +44,7 @@ export declare class OperationAlarmsAndRules extends Construct implements IOpera
|
|
|
44
44
|
*
|
|
45
45
|
* @default - This is an empty dictionary if canary metric details are not provided
|
|
46
46
|
*/
|
|
47
|
-
readonly
|
|
47
|
+
readonly canaryZonalAlarmsAndRules?: {
|
|
48
48
|
[key: string]: ICanaryOperationZonalAlarmsAndRules;
|
|
49
49
|
};
|
|
50
50
|
constructor(scope: Construct, id: string, props: OperationAlarmsAndRulesProps);
|
|
@@ -16,9 +16,9 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
|
|
|
16
16
|
constructor(scope, id, props) {
|
|
17
17
|
super(scope, id);
|
|
18
18
|
this.operation = props.operation;
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
19
|
+
this.aggregateZonalAlarms = {};
|
|
20
|
+
this.serverSideZonalAlarmsAndRules = {};
|
|
21
|
+
this.canaryZonalAlarmsAndRules = {};
|
|
22
22
|
let loadBalancerArn = '';
|
|
23
23
|
if (props.loadBalancer) {
|
|
24
24
|
loadBalancerArn = props.loadBalancer
|
|
@@ -60,7 +60,7 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
|
|
|
60
60
|
counter: index,
|
|
61
61
|
nameSuffix: '-server'
|
|
62
62
|
});
|
|
63
|
-
this.
|
|
63
|
+
this.serverSideZonalAlarmsAndRules[availabilityZone] = serverSideZonalAlarmsAndRules;
|
|
64
64
|
if (props.operation.canaryMetricDetails) {
|
|
65
65
|
let canaryZonalAlarmsAndRules = new CanaryOperationZonalAlarmsAndRules_1.CanaryOperationZonalAlarmsAndRules(this, props.operation.operationName +
|
|
66
66
|
'AZ' +
|
|
@@ -71,7 +71,7 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
|
|
|
71
71
|
counter: index,
|
|
72
72
|
nameSuffix: '-canary'
|
|
73
73
|
});
|
|
74
|
-
this.
|
|
74
|
+
this.canaryZonalAlarmsAndRules[availabilityZone] = canaryZonalAlarmsAndRules;
|
|
75
75
|
let aggAlarm = new aws_cloudwatch_1.CompositeAlarm(this, props.operation.operationName +
|
|
76
76
|
'AZ' +
|
|
77
77
|
index +
|
|
@@ -80,7 +80,7 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
|
|
|
80
80
|
'-' +
|
|
81
81
|
props.operation.operationName.toLowerCase() +
|
|
82
82
|
'-aggregate-isolated-az-impact',
|
|
83
|
-
alarmRule: aws_cloudwatch_1.AlarmRule.anyOf(this.
|
|
83
|
+
alarmRule: aws_cloudwatch_1.AlarmRule.anyOf(this.canaryZonalAlarmsAndRules[availabilityZone].isolatedImpactAlarm, this.serverSideZonalAlarmsAndRules[availabilityZone].isolatedImpactAlarm),
|
|
84
84
|
actionsEnabled: false,
|
|
85
85
|
alarmDescription: '{"loadBalancer":"' +
|
|
86
86
|
loadBalancerArn +
|
|
@@ -88,10 +88,10 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
|
|
|
88
88
|
availabilityZoneId +
|
|
89
89
|
'"}',
|
|
90
90
|
});
|
|
91
|
-
this.
|
|
91
|
+
this.aggregateZonalAlarms[availabilityZone] = aggAlarm;
|
|
92
92
|
}
|
|
93
93
|
else {
|
|
94
|
-
this.
|
|
94
|
+
this.aggregateZonalAlarms[availabilityZone] = this.serverSideZonalAlarmsAndRules[availabilityZone].isolatedImpactAlarm;
|
|
95
95
|
}
|
|
96
96
|
});
|
|
97
97
|
// Create a regional impact alarm that is triggered if regional
|
|
@@ -100,16 +100,16 @@ class OperationAlarmsAndRules extends constructs_1.Construct {
|
|
|
100
100
|
if (props.operation.canaryMetricDetails) {
|
|
101
101
|
this.regionalImpactAlarm = new aws_cloudwatch_1.CompositeAlarm(this, props.operation.operationName + "-regional-impact-alarm", {
|
|
102
102
|
compositeAlarmName: `${props.operation.service.serviceName.toLowerCase()}-${props.operation.operationName.toLowerCase()}-regional-impact`,
|
|
103
|
-
alarmRule: aws_cloudwatch_1.AlarmRule.allOf(aws_cloudwatch_1.AlarmRule.anyOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, this.canaryRegionalAlarmsAndRules.availabilityOrLatencyAlarm), aws_cloudwatch_1.AlarmRule.not(aws_cloudwatch_1.AlarmRule.anyOf(...Object.values(this.
|
|
103
|
+
alarmRule: aws_cloudwatch_1.AlarmRule.allOf(aws_cloudwatch_1.AlarmRule.anyOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, this.canaryRegionalAlarmsAndRules.availabilityOrLatencyAlarm), aws_cloudwatch_1.AlarmRule.not(aws_cloudwatch_1.AlarmRule.anyOf(...Object.values(this.aggregateZonalAlarms))))
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
107
|
this.regionalImpactAlarm = new aws_cloudwatch_1.CompositeAlarm(this, props.operation.operationName + "-regional-impact-alarm", {
|
|
108
108
|
compositeAlarmName: `${props.operation.service.serviceName.toLowerCase()}-${props.operation.operationName.toLowerCase()}-regional-impact`,
|
|
109
|
-
alarmRule: aws_cloudwatch_1.AlarmRule.allOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, aws_cloudwatch_1.AlarmRule.not(aws_cloudwatch_1.AlarmRule.anyOf(...Object.values(this.
|
|
109
|
+
alarmRule: aws_cloudwatch_1.AlarmRule.allOf(this.serverSideRegionalAlarmsAndRules.availabilityOrLatencyAlarm, aws_cloudwatch_1.AlarmRule.not(aws_cloudwatch_1.AlarmRule.anyOf(...Object.values(this.aggregateZonalAlarms))))
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
exports.OperationAlarmsAndRules = OperationAlarmsAndRules;
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zYW5kcnVsZXMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QywrREFBK0U7QUFFL0UsMkNBQXVDO0FBQ3ZDLG1HQUFnRztBQUNoRyw2RkFBMEY7QUFPMUYsMkdBQXdHO0FBQ3hHLHFHQUFrRztBQUdsRzs7R0FFRztBQUNILE1BQWEsdUJBQ1gsU0FBUSxzQkFBUztJQXVDakIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxFQUFFLENBQUM7UUFFdkMsSUFBSSxlQUFlLEdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLGVBQWUsR0FBSSxLQUFLLENBQUMsWUFBaUM7aUJBQ3ZELGVBQWUsQ0FBQztRQUNyQixDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsZ0NBQWdDO1lBQ25DLElBQUkscUZBQXlDLENBQzNDLElBQUksRUFDSixLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRywwQkFBMEIsRUFDMUQ7Z0JBQ0UseUJBQXlCLEVBQ3ZCLEtBQUssQ0FBQyxTQUFTLENBQUMsbUNBQW1DO2dCQUNyRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLDhCQUE4QjtnQkFDcEUsNkJBQTZCLEVB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QUFDLGFBQWEsR0FBRyx3QkFBd0IsRUFBRTtnQkFDNUcsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLGtCQUFrQjtnQkFDekksU0FBUyxFQUFFLDBCQUFTLENBQUMsS0FBSyxDQUN4QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsMEJBQTBCLEVBQ2hFLDBCQUFTLENBQUMsR0FBRyxDQUNYLDBCQUFTLENBQUMsS0FBSyxDQUNiLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FDL0MsQ0FDRixDQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRNRCwwREFzTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBBbGFybVJ1bGUsIENvbXBvc2l0ZUFsYXJtLCBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBCYXNlTG9hZEJhbGFuY2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9DYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IENhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0NhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzIH0gZnJvbSAnLi9wcm9wcy9PcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzJztcbmltcG9ydCB7IFNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9TZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL0lPcGVyYXRpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYWxhcm1zIGFuZCBydWxlcyBmb3IgYW4gb3BlcmF0aW9uIGZvciBib3RoIHJlZ2lvbmFsIGFuZCB6b25hbCBtZXRyaWNzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIHRoZSBhbGFybXMgYW5kIHJ1bGVzIGFyZSBjcmVhdGVkIGZvclxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uOiBJT3BlcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzPzogSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm0gaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBJZC5cbiAgICovXG4gIHJlYWRvbmx5IGFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBpbmRpY2F0aW5nIHJlZ2lvbmFsbHkgc2NvcGVkIGltcGFjdCwgbm90IHpvbmFsXG4gICAqL1xuICByZWFkb25seSByZWdpb25hbEltcGFjdEFsYXJtOiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSB6b25hbCBhbGFybXMgYW5kIHJ1bGVzLCBpbmRleGVkIGJ5IEF2YWlsYWJpbGl0eSBab25lIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlc01hcDoge1trZXk6IHN0cmluZ106IElTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc307XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgem9uYWwgYWxhcm1zIGFuZCBydWxlcywgaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBUaGlzIGlzIGFuIGVtcHR5IGRpY3Rpb25hcnkgaWYgY2FuYXJ5IG1ldHJpYyBkZXRhaWxzIGFyZSBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXNNYXA/OiB7W2tleTogc3RyaW5nXTogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXN9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMub3BlcmF0aW9uID0gcHJvcHMub3BlcmF0aW9uO1xuICAgIHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXNNYXAgPSB7fTtcbiAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzTWFwID0ge307XG4gICAgdGhpcy5jYW5hcnlab25hbEFsYXJtc0FuZFJ1bGVzTWFwID0ge307XG5cbiAgICBsZXQgbG9hZEJhbGFuY2VyQXJuOiBzdHJpbmcgPSAnJztcblxuICAgIGlmIChwcm9wcy5sb2FkQmFsYW5jZXIpIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybiA9IChwcm9wcy5sb2FkQmFsYW5jZXIgYXMgQmFzZUxvYWRCYWxhbmNlcilcbiAgICAgICAgLmxvYWRCYWxhbmNlckFybjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGVzIHRoZSByZWdpb25hbCBpbXBhY3QgYWxhcm1zIGFuZCBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGVzXG4gICAgLy8gZm9yIGNvbnRyaWJ1dG9ycyB0byByZWdpb25hbCBmYXVsdHMgYW5kIGxhdGVuY3lcbiAgICB0aGlzLnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgIG5ldyBTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnU2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6IHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM6IHByb3BzLm9wZXJhdGlvblxuICAgICAgICAgICAgLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1xuICAgICAgICAgICAgPyBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzXG4gICAgICAgICAgICA6IHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyxcbiAgICAgICAgICBuYW1lU3VmZml4OiAnLXNlcnZlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgLy8gSWYgY2FuYXJ5IG1ldHJpY3MgYXJlIGRlZmluZWQsIGNyZWF0ZSB0aGUgcmVnaW9uYWwgaW1wYWN0XG4gICAgLy8gYWxhcm1zIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgICAgbmV3IENhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdDYW5hcnlSZWdpb25hbEFsYXJtcycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIGxhdGVuY3lNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICctY2FuYXJ5JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgem9uYWwgaXNvbGF0ZWQgaW1wYWN0IGFsYXJtc1xuICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcy5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyA9IHByb3BzLmF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgbGV0IHNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzOiBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgPSBuZXcgU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAnQVonICtcbiAgICAgICAgICBpbmRleCArXG4gICAgICAgICAgJ1NlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wczogcHJvcHMsXG4gICAgICAgICAgY291bnRlcjogaW5kZXgsXG4gICAgICAgICAgbmFtZVN1ZmZpeDogJy1zZXJ2ZXInXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzTWFwW2F2YWlsYWJpbGl0eVpvbmVdID0gc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgICBsZXQgY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlczogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgPSBuZXcgQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ0NhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgICBvcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIGNvdW50ZXI6IGluZGV4LFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJy1jYW5hcnknXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXNNYXAhW2F2YWlsYWJpbGl0eVpvbmVdID0gY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlcztcblxuICAgICAgICBsZXQgYWdnQWxhcm06IElBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ0FnZ3JlZ2F0ZVpvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQgK1xuICAgICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICAgJy1hZ2dyZWdhdGUtaXNvbGF0ZWQtYXotaW1wYWN0JyxcbiAgICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXNNYXAhW2F2YWlsYWJpbGl0eVpvbmVdLmlzb2xhdGVkSW1wYWN0QWxhcm0sXG4gICAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNNYXBbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGFjdGlvbnNFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICd7XCJsb2FkQmFsYW5jZXJcIjpcIicgK1xuICAgICAgICAgICAgICBsb2FkQmFsYW5jZXJBcm4gK1xuICAgICAgICAgICAgICAnXCIsXCJhei1pZFwiOlwiJyArXG4gICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCArXG4gICAgICAgICAgICAgICdcIn0nLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwW2F2YWlsYWJpbGl0eVpvbmVdID0gYWdnQWxhcm07XG4gICAgICB9IGVsc2UgeyAgICAgICBcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc01hcFthdmFpbGFiaWxpdHlab25lXSA9IHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNNYXBbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybSAgICBcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHJlZ2lvbmFsIGltcGFjdCBhbGFybSB0aGF0IGlzIHRyaWdnZXJlZCBpZiByZWdpb25hbFxuICAgIC8vIG1ldHJpY3MgZm9yIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGRyb3AgYW5kIHRoZXJlIGlzbid0IGEgc2luZ2xlXG4gICAgLy8gQVogaW1wYWN0IGFsYXJtIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5yZWdpb25hbEltcGFjdEFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKHRoaXMsIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICsgXCItcmVnaW9uYWwtaW1wYWN0LWFsYXJtXCIsIHtcbiAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOiBgJHtwcm9wcy5vcGVyYXRpb24uc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpfS0ke3Byb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCl9LXJlZ2lvbmFsLWltcGFjdGAsXG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFsbE9mKFxuICAgICAgICAgIEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0sXG4gICAgICAgICAgICB0aGlzLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMhLmF2YWlsYWJpbGl0eU9yTGF0ZW5jeUFsYXJtXG4gICAgICAgICAgKSxcbiAgICAgICAgICBBbGFybVJ1bGUubm90KFxuICAgICAgICAgICAgQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXNNYXApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnJlZ2lvbmFsSW1wYWN0QWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyBcIi1yZWdpb25hbC1pbXBhY3QtYWxhcm1cIiwge1xuICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6IGAke3Byb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCl9LSR7cHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUudG9Mb3dlckNhc2UoKX0tcmVnaW9uYWwtaW1wYWN0YCxcbiAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYWxsT2YoXG4gICAgICAgICAgdGhpcy5zZXJ2ZXJTaWRlUmVnaW9uYWxBbGFybXNBbmRSdWxlcy5hdmFpbGFiaWxpdHlPckxhdGVuY3lBbGFybSwgICAgIFxuICAgICAgICAgIEFsYXJtUnVsZS5ub3QoXG4gICAgICAgICAgICBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXModGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc01hcClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSJdfQ==
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zYW5kcnVsZXMvT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QywrREFBK0U7QUFFL0UsMkNBQXVDO0FBQ3ZDLG1HQUFnRztBQUNoRyw2RkFBMEY7QUFPMUYsMkdBQXdHO0FBQ3hHLHFHQUFrRztBQUdsRzs7R0FFRztBQUNILE1BQWEsdUJBQ1gsU0FBUSxzQkFBUztJQXVDakIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFFcEMsSUFBSSxlQUFlLEdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLGVBQWUsR0FBSSxLQUFLLENBQUMsWUFBaUM7aUJBQ3ZELGVBQWUsQ0FBQztRQUNyQixDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsZ0NBQWdDO1lBQ25DLElBQUkscUZBQXlDLENBQzNDLElBQUksRUFDSixLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRywwQkFBMEIsRUFDMUQ7Z0JBQ0UseUJBQXlCLEVBQ3ZCLEtBQUssQ0FBQyxTQUFTLENBQUMsbUNBQW1DO2dCQUNyRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLDhCQUE4QjtnQkFDcEUsNkJBQTZCLEVB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QUFDLGFBQWEsR0FBRyx3QkFBd0IsRUFBRTtnQkFDNUcsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLGtCQUFrQjtnQkFDekksU0FBUyxFQUFFLDBCQUFTLENBQUMsS0FBSyxDQUN4QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsMEJBQTBCLEVBQ2hFLDBCQUFTLENBQUMsR0FBRyxDQUNYLDBCQUFTLENBQUMsS0FBSyxDQUNiLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FDNUMsQ0FDRixDQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRNRCwwREFzTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBBbGFybVJ1bGUsIENvbXBvc2l0ZUFsYXJtLCBJQWxhcm0gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBCYXNlTG9hZEJhbGFuY2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9DYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IENhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0NhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElDYW5hcnlPcGVyYXRpb25ab25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lPcGVyYXRpb25BbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzIH0gZnJvbSAnLi9wcm9wcy9PcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzJztcbmltcG9ydCB7IFNlcnZlclNpZGVPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9TZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbiB9IGZyb20gJy4uL3NlcnZpY2VzL0lPcGVyYXRpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYWxhcm1zIGFuZCBydWxlcyBmb3IgYW4gb3BlcmF0aW9uIGZvciBib3RoIHJlZ2lvbmFsIGFuZCB6b25hbCBtZXRyaWNzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25BbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIHRoZSBhbGFybXMgYW5kIHJ1bGVzIGFyZSBjcmVhdGVkIGZvclxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uOiBJT3BlcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmVyIHNpZGUgcmVnaW9uYWwgYWxhcm1zIGFuZCBydWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM6IElTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcztcblxuICAvKipcbiAgICogVGhlIGNhbmFyeSByZWdpb25hbCBhbGFybXMgYW5kIHJ1bGVzXG4gICAqL1xuICByZWFkb25seSBjYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzPzogSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBhZ2dyZWdhdGUgem9uYWwgYWxhcm0gaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBJZC5cbiAgICovXG4gIHJlYWRvbmx5IGFnZ3JlZ2F0ZVpvbmFsQWxhcm1zOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBpbmRpY2F0aW5nIHJlZ2lvbmFsbHkgc2NvcGVkIGltcGFjdCwgbm90IHpvbmFsXG4gICAqL1xuICByZWFkb25seSByZWdpb25hbEltcGFjdEFsYXJtOiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2ZXIgc2lkZSB6b25hbCBhbGFybXMgYW5kIHJ1bGVzLCBpbmRleGVkIGJ5IEF2YWlsYWJpbGl0eSBab25lIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlczoge1trZXk6IHN0cmluZ106IElTZXJ2ZXJTaWRlT3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlc307XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgem9uYWwgYWxhcm1zIGFuZCBydWxlcywgaW5kZXhlZCBieSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lLlxuICAgKiBcbiAgICogQGRlZmF1bHQgLSBUaGlzIGlzIGFuIGVtcHR5IGRpY3Rpb25hcnkgaWYgY2FuYXJ5IG1ldHJpYyBkZXRhaWxzIGFyZSBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXM/OiB7W2tleTogc3RyaW5nXTogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXN9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMub3BlcmF0aW9uID0gcHJvcHMub3BlcmF0aW9uO1xuICAgIHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXMgPSB7fTtcbiAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzID0ge307XG4gICAgdGhpcy5jYW5hcnlab25hbEFsYXJtc0FuZFJ1bGVzID0ge307XG5cbiAgICBsZXQgbG9hZEJhbGFuY2VyQXJuOiBzdHJpbmcgPSAnJztcblxuICAgIGlmIChwcm9wcy5sb2FkQmFsYW5jZXIpIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybiA9IChwcm9wcy5sb2FkQmFsYW5jZXIgYXMgQmFzZUxvYWRCYWxhbmNlcilcbiAgICAgICAgLmxvYWRCYWxhbmNlckFybjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGVzIHRoZSByZWdpb25hbCBpbXBhY3QgYWxhcm1zIGFuZCBjb250cmlidXRvciBpbnNpZ2h0IHJ1bGVzXG4gICAgLy8gZm9yIGNvbnRyaWJ1dG9ycyB0byByZWdpb25hbCBmYXVsdHMgYW5kIGxhdGVuY3lcbiAgICB0aGlzLnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgIG5ldyBTZXJ2ZXJTaWRlT3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyAnU2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHM6XG4gICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUF2YWlsYWJpbGl0eU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgbGF0ZW5jeU1ldHJpY0RldGFpbHM6IHByb3BzLm9wZXJhdGlvbi5zZXJ2ZXJTaWRlTGF0ZW5jeU1ldHJpY0RldGFpbHMsXG4gICAgICAgICAgY29udHJpYnV0b3JJbnNpZ2h0UnVsZURldGFpbHM6IHByb3BzLm9wZXJhdGlvblxuICAgICAgICAgICAgLnNlcnZlclNpZGVDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlsc1xuICAgICAgICAgICAgPyBwcm9wcy5vcGVyYXRpb24uc2VydmVyU2lkZUNvbnRyaWJ1dG9ySW5zaWdodFJ1bGVEZXRhaWxzXG4gICAgICAgICAgICA6IHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmRlZmF1bHRDb250cmlidXRvckluc2lnaHRSdWxlRGV0YWlscyxcbiAgICAgICAgICBuYW1lU3VmZml4OiAnLXNlcnZlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgLy8gSWYgY2FuYXJ5IG1ldHJpY3MgYXJlIGRlZmluZWQsIGNyZWF0ZSB0aGUgcmVnaW9uYWwgaW1wYWN0XG4gICAgLy8gYWxhcm1zIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzID1cbiAgICAgICAgbmV3IENhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZSArICdDYW5hcnlSZWdpb25hbEFsYXJtcycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXZhaWxhYmlsaXR5TWV0cmljRGV0YWlsczpcbiAgICAgICAgICAgICAgcHJvcHMub3BlcmF0aW9uLmNhbmFyeU1ldHJpY0RldGFpbHNcbiAgICAgICAgICAgICAgICAuY2FuYXJ5QXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIGxhdGVuY3lNZXRyaWNEZXRhaWxzOlxuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscy5jYW5hcnlMYXRlbmN5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICctY2FuYXJ5JyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgem9uYWwgaXNvbGF0ZWQgaW1wYWN0IGFsYXJtc1xuICAgIHByb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcy5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lSWQ6IHN0cmluZyA9IHByb3BzLmF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgbGV0IHNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzOiBJU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgPSBuZXcgU2VydmVyU2lkZU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAnQVonICtcbiAgICAgICAgICBpbmRleCArXG4gICAgICAgICAgJ1NlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzJyxcbiAgICAgICAge1xuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgb3BlcmF0aW9uQWxhcm1zQW5kUnVsZXNQcm9wczogcHJvcHMsXG4gICAgICAgICAgY291bnRlcjogaW5kZXgsXG4gICAgICAgICAgbmFtZVN1ZmZpeDogJy1zZXJ2ZXInXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNlcnZlclNpZGVab25hbEFsYXJtc0FuZFJ1bGVzW2F2YWlsYWJpbGl0eVpvbmVdID0gc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXM7XG5cbiAgICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgICBsZXQgY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlczogSUNhbmFyeU9wZXJhdGlvblpvbmFsQWxhcm1zQW5kUnVsZXMgPSBuZXcgQ2FuYXJ5T3BlcmF0aW9uWm9uYWxBbGFybXNBbmRSdWxlcyhcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ0NhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgICAgICBvcGVyYXRpb25BbGFybXNBbmRSdWxlc1Byb3BzOiBwcm9wcyxcbiAgICAgICAgICAgIGNvdW50ZXI6IGluZGV4LFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJy1jYW5hcnknXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMhW2F2YWlsYWJpbGl0eVpvbmVdID0gY2FuYXJ5Wm9uYWxBbGFybXNBbmRSdWxlcztcblxuICAgICAgICBsZXQgYWdnQWxhcm06IElBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICtcbiAgICAgICAgICAgICdBWicgK1xuICAgICAgICAgICAgaW5kZXggK1xuICAgICAgICAgICAgJ0FnZ3JlZ2F0ZVpvbmFsSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQgK1xuICAgICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgICBwcm9wcy5vcGVyYXRpb24ub3BlcmF0aW9uTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICAgJy1hZ2dyZWdhdGUtaXNvbGF0ZWQtYXotaW1wYWN0JyxcbiAgICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICB0aGlzLmNhbmFyeVpvbmFsQWxhcm1zQW5kUnVsZXMhW2F2YWlsYWJpbGl0eVpvbmVdLmlzb2xhdGVkSW1wYWN0QWxhcm0sXG4gICAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGFjdGlvbnNFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICd7XCJsb2FkQmFsYW5jZXJcIjpcIicgK1xuICAgICAgICAgICAgICBsb2FkQmFsYW5jZXJBcm4gK1xuICAgICAgICAgICAgICAnXCIsXCJhei1pZFwiOlwiJyArXG4gICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCArXG4gICAgICAgICAgICAgICdcIn0nLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zW2F2YWlsYWJpbGl0eVpvbmVdID0gYWdnQWxhcm07XG4gICAgICB9IGVsc2UgeyAgICAgICBcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtc1thdmFpbGFiaWxpdHlab25lXSA9IHRoaXMuc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybSAgICBcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHJlZ2lvbmFsIGltcGFjdCBhbGFybSB0aGF0IGlzIHRyaWdnZXJlZCBpZiByZWdpb25hbFxuICAgIC8vIG1ldHJpY3MgZm9yIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGRyb3AgYW5kIHRoZXJlIGlzbid0IGEgc2luZ2xlXG4gICAgLy8gQVogaW1wYWN0IGFsYXJtIFxuICAgIGlmIChwcm9wcy5vcGVyYXRpb24uY2FuYXJ5TWV0cmljRGV0YWlscykge1xuICAgICAgdGhpcy5yZWdpb25hbEltcGFjdEFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKHRoaXMsIHByb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lICsgXCItcmVnaW9uYWwtaW1wYWN0LWFsYXJtXCIsIHtcbiAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOiBgJHtwcm9wcy5vcGVyYXRpb24uc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpfS0ke3Byb3BzLm9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLnRvTG93ZXJDYXNlKCl9LXJlZ2lvbmFsLWltcGFjdGAsXG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFsbE9mKFxuICAgICAgICAgIEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAgIHRoaXMuc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMuYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0sXG4gICAgICAgICAgICB0aGlzLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMhLmF2YWlsYWJpbGl0eU9yTGF0ZW5jeUFsYXJtXG4gICAgICAgICAgKSxcbiAgICAgICAgICBBbGFybVJ1bGUubm90KFxuICAgICAgICAgICAgQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKHRoaXMuYWdncmVnYXRlWm9uYWxBbGFybXMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnJlZ2lvbmFsSW1wYWN0QWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgcHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgKyBcIi1yZWdpb25hbC1pbXBhY3QtYWxhcm1cIiwge1xuICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6IGAke3Byb3BzLm9wZXJhdGlvbi5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCl9LSR7cHJvcHMub3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUudG9Mb3dlckNhc2UoKX0tcmVnaW9uYWwtaW1wYWN0YCxcbiAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYWxsT2YoXG4gICAgICAgICAgdGhpcy5zZXJ2ZXJTaWRlUmVnaW9uYWxBbGFybXNBbmRSdWxlcy5hdmFpbGFiaWxpdHlPckxhdGVuY3lBbGFybSwgICAgIFxuICAgICAgICAgIEFsYXJtUnVsZS5ub3QoXG4gICAgICAgICAgICBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXModGhpcy5hZ2dyZWdhdGVab25hbEFsYXJtcylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSJdfQ==
|
|
@@ -16,14 +16,18 @@ export declare class ServiceAlarmsAndRules extends Construct implements IService
|
|
|
16
16
|
* triggers for availability or latency impact to any critical operation in that AZ
|
|
17
17
|
* that indicates it has isolated impact as measured by canaries or server-side.
|
|
18
18
|
*/
|
|
19
|
-
zonalAggregateIsolatedImpactAlarms:
|
|
19
|
+
zonalAggregateIsolatedImpactAlarms: {
|
|
20
|
+
[key: string]: IAlarm;
|
|
21
|
+
};
|
|
20
22
|
/**
|
|
21
23
|
* The zonal server-side isolated impact alarms. There is 1 alarm per AZ that triggers
|
|
22
24
|
* on availability or atency impact to any critical operation in that AZ. These are useful
|
|
23
25
|
* for deployment monitoring to not inadvertently fail when a canary can't contact an AZ
|
|
24
26
|
* during a deployment.
|
|
25
27
|
*/
|
|
26
|
-
zonalServerSideIsolatedImpactAlarms:
|
|
28
|
+
zonalServerSideIsolatedImpactAlarms: {
|
|
29
|
+
[key: string]: IAlarm;
|
|
30
|
+
};
|
|
27
31
|
/**
|
|
28
32
|
* An alarm for regional availability or latency impact of any critical operation as measured by the canary.
|
|
29
33
|
*/
|
|
@@ -19,12 +19,12 @@ class ServiceAlarmsAndRules extends constructs_1.Construct {
|
|
|
19
19
|
let criticalOperations = props.service.operations
|
|
20
20
|
.filter((x) => x.critical == true)
|
|
21
21
|
.map((x) => x.operationName);
|
|
22
|
-
this.zonalAggregateIsolatedImpactAlarms =
|
|
23
|
-
this.zonalServerSideIsolatedImpactAlarms =
|
|
22
|
+
this.zonalAggregateIsolatedImpactAlarms = {};
|
|
23
|
+
this.zonalServerSideIsolatedImpactAlarms = {};
|
|
24
24
|
props.service.availabilityZoneNames.forEach((availabilityZone, index) => {
|
|
25
25
|
let azLetter = availabilityZone.substring(availabilityZone.length - 1);
|
|
26
26
|
let availabilityZonedId = props.azMapper.availabilityZoneIdFromAvailabilityZoneLetter(azLetter);
|
|
27
|
-
this.zonalAggregateIsolatedImpactAlarms
|
|
27
|
+
this.zonalAggregateIsolatedImpactAlarms[availabilityZone] = new aws_cloudwatch_1.CompositeAlarm(this, 'AZ' + index + 'ServiceAggregateIsolatedImpactAlarm', {
|
|
28
28
|
compositeAlarmName: availabilityZonedId +
|
|
29
29
|
'-' +
|
|
30
30
|
props.service.serviceName.toLowerCase() +
|
|
@@ -34,9 +34,9 @@ class ServiceAlarmsAndRules extends constructs_1.Construct {
|
|
|
34
34
|
filtered[key] = value;
|
|
35
35
|
}
|
|
36
36
|
return filtered;
|
|
37
|
-
}, {})).map((x) => x.
|
|
38
|
-
})
|
|
39
|
-
this.zonalServerSideIsolatedImpactAlarms
|
|
37
|
+
}, {})).map((x) => x.aggregateZonalAlarms[availabilityZone])),
|
|
38
|
+
});
|
|
39
|
+
this.zonalServerSideIsolatedImpactAlarms[availabilityZone] = new aws_cloudwatch_1.CompositeAlarm(this, 'AZ' + index + 'ServiceServerSideIsolatedImpactAlarm', {
|
|
40
40
|
compositeAlarmName: availabilityZonedId +
|
|
41
41
|
'-' +
|
|
42
42
|
props.service.serviceName.toLowerCase() +
|
|
@@ -46,8 +46,8 @@ class ServiceAlarmsAndRules extends constructs_1.Construct {
|
|
|
46
46
|
filtered[key] = value;
|
|
47
47
|
}
|
|
48
48
|
return filtered;
|
|
49
|
-
}, {})).map((x) => x.
|
|
50
|
-
})
|
|
49
|
+
}, {})).map((x) => x.serverSideZonalAlarmsAndRules[availabilityZone].isolatedImpactAlarm)),
|
|
50
|
+
});
|
|
51
51
|
});
|
|
52
52
|
let keyPrefix = '';
|
|
53
53
|
let regionalOperationFaultCountMetrics = {};
|
|
@@ -185,4 +185,4 @@ class ServiceAlarmsAndRules extends constructs_1.Construct {
|
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
exports.ServiceAlarmsAndRules = ServiceAlarmsAndRules;
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL1NlcnZpY2VBbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBQ3RDLDZDQUFpQztBQUNqQywrREFRb0M7QUFDcEMsMkNBQXVDO0FBS3ZDLHdGQUFxRjtBQUVyRixnRkFBNkU7QUFDN0UsOERBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxxQkFDWCxTQUFRLHNCQUFTO0lBK0NqQixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLElBQUksa0JBQWtCLEdBQWEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVO2FBQ3hELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7YUFDakMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsRUFBRSxDQUFDO1FBRTlDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQXdCLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDdEYsSUFBSSxRQUFRLEdBQVcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRSxJQUFJLG1CQUFtQixHQUFXLEtBQUssQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQUMsUUFB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YXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgeyBGbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIEFsYXJtLFxuICBBbGFybVJ1bGUsXG4gIENvbXBhcmlzb25PcGVyYXRvcixcbiAgQ29tcG9zaXRlQWxhcm0sXG4gIElBbGFybSxcbiAgSU1ldHJpYyxcbiAgTWF0aEV4cHJlc3Npb24sXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzJztcbmltcG9ydCB7IElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMgfSBmcm9tICcuL0lTZXJ2aWNlQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgU2VydmljZUFsYXJtc0FuZFJ1bGVzUHJvcHMgfSBmcm9tICcuL3Byb3BzL1NlcnZpY2VBbGFybXNBbmRSdWxlc1Byb3BzJztcbmltcG9ydCB7IFJlZ2lvbmFsQXZhaWxhYmlsaXR5TWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvUmVnaW9uYWxBdmFpbGFiaWxpdHlNZXRyaWNzJztcbmltcG9ydCB7IElTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvSVNlcnZpY2UnO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5TWV0cmljVHlwZSB9IGZyb20gJy4uL3V0aWxpdGllcy9BdmFpbGFiaWxpdHlNZXRyaWNUeXBlJztcbmltcG9ydCB7IE1ldHJpY3NIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvTWV0cmljc0hlbHBlcic7XG5cbi8qKlxuICogU2VydmljZSBsZXZlbCBhbGFybXMgYW5kIHJ1bGVzIHVzaW5nIGNyaXRpY2FsIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2VBbGFybXNBbmRSdWxlc1xuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElTZXJ2aWNlQWxhcm1zQW5kUnVsZXMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgdGhlc2UgYWxhcm1zIGFuZCBydWxlcyBhcmUgZm9yXG4gICAqL1xuICBzZXJ2aWNlOiBJU2VydmljZTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIGFnZ3JlZ2F0ZSBpc29sYXRlZCBpbXBhY3QgYWxhcm1zLiBUaGVyZSBpcyAxIGFsYXJtIHBlciBBWiB0aGF0XG4gICAqIHRyaWdnZXJzIGZvciBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaXG4gICAqIHRoYXQgaW5kaWNhdGVzIGl0IGhhcyBpc29sYXRlZCBpbXBhY3QgYXMgbWVhc3VyZWQgYnkgY2FuYXJpZXMgb3Igc2VydmVyLXNpZGUuXG4gICAqL1xuICB6b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogVGhlIHpvbmFsIHNlcnZlci1zaWRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXQgdHJpZ2dlcnNcbiAgICogb24gYXZhaWxhYmlsaXR5IG9yIGF0ZW5jeSBpbXBhY3QgdG8gYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGF0IEFaLiBUaGVzZSBhcmUgdXNlZnVsXG4gICAqIGZvciBkZXBsb3ltZW50IG1vbml0b3JpbmcgdG8gbm90IGluYWR2ZXJ0ZW50bHkgZmFpbCB3aGVuIGEgY2FuYXJ5IGNhbid0IGNvbnRhY3QgYW4gQVpcbiAgICogZHVyaW5nIGEgZGVwbG95bWVudC5cbiAgICovXG4gIHpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zOiBJQWxhcm1bXTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIHJlZ2lvbmFsIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBjYW5hcnkuXG4gICAqL1xuICByZWdpb25hbEF2YWlsYWJpbGl0eUNhbmFyeUFsYXJtPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IG9yIGxhdGVuY3kgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgLy9yZWdpb25hbEF2YWlsYWJpbGl0eU9yTGF0ZW5jeVNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IGltcGFjdCBvZiBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGFzIG1lYXN1cmVkIGJ5IHRoZSBzZXJ2ZXItc2lkZS5cbiAgICovXG4gIC8vcmVnaW9uYWxBdmFpbGFiaWxpdHlTZXJ2ZXJTaWRlQWxhcm06IElBbGFybTtcblxuICAvKipcbiAgICogQW4gYWxhcm0gZm9yIGZhdWx0IGNvdW50IGV4Y2VlZGluZyBhIHJlZ2lvbmFsIHRocmVzaG9sZCBmb3IgYWxsIGNyaXRpY2FsIG9wZXJhdGlvbnMuXG4gICAqL1xuICByZWdpb25hbEZhdWx0Q291bnRTZXJ2ZXJTaWRlQWxhcm06IElBbGFybTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VydmljZUFsYXJtc0FuZFJ1bGVzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuc2VydmljZSA9IHByb3BzLnNlcnZpY2U7XG5cbiAgICBsZXQgY3JpdGljYWxPcGVyYXRpb25zOiBzdHJpbmdbXSA9IHByb3BzLnNlcnZpY2Uub3BlcmF0aW9uc1xuICAgICAgLmZpbHRlcigoeCkgPT4geC5jcml0aWNhbCA9PSB0cnVlKVxuICAgICAgLm1hcCgoeCkgPT4geC5vcGVyYXRpb25OYW1lKTtcbiAgICB0aGlzLnpvbmFsQWdncmVnYXRlSXNvbGF0ZWRJbXBhY3RBbGFybXMgPSBbXTtcbiAgICB0aGlzLnpvbmFsU2VydmVyU2lkZUlzb2xhdGVkSW1wYWN0QWxhcm1zID0gW107XG5cbiAgICBwcm9wcy5zZXJ2aWNlLmF2YWlsYWJpbGl0eVpvbmVOYW1lcy5mb3JFYWNoKChhdmFpbGFiaWxpdHlab25lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCBhekxldHRlcjogc3RyaW5nID0gYXZhaWxhYmlsaXR5Wm9uZS5zdWJzdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZS5sZW5ndGggLSAxKTtcbiAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lZElkOiBzdHJpbmcgPSBwcm9wcy5hek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG5cbiAgICAgIHRoaXMuem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtcy5wdXNoKFxuICAgICAgICBuZXcgQ29tcG9zaXRlQWxhcm0oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnQVonICsgaW5kZXggKyAnU2VydmljZUFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTpcbiAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZWRJZCArXG4gICAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgICAgICctaXNvbGF0ZWQtaW1wYWN0LWFnZ3JlZ2F0ZS1hbGFybScsXG4gICAgICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAgICAgLi4uT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhwcm9wcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNyaXRpY2FsT3BlcmF0aW9ucy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICkubWFwKCh4KSA9PiB4LmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zTWFwW2F2YWlsYWJpbGl0eVpvbmVdKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuem9uYWxTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybXMucHVzaChcbiAgICAgICAgbmV3IENvbXBvc2l0ZUFsYXJtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ0FaJyArIGluZGV4ICsgJ1NlcnZpY2VTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lZElkICtcbiAgICAgICAgICAgICAgJy0nICtcbiAgICAgICAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICAgJy1pc29sYXRlZC1pbXBhY3Qtc2VydmVyLXNpZGUtYWxhcm0nLFxuICAgICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgIChmaWx0ZXJlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjcml0aWNhbE9wZXJhdGlvbnMuaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLm1hcCgoeCkgPT4geC5zZXJ2ZXJTaWRlWm9uYWxBbGFybXNBbmRSdWxlc01hcFthdmFpbGFiaWxpdHlab25lXS5pc29sYXRlZEltcGFjdEFsYXJtKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsZXQga2V5UHJlZml4OiBzdHJpbmcgPSAnJztcblxuICAgIGxldCByZWdpb25hbE9wZXJhdGlvbkZhdWx0Q291bnRNZXRyaWNzOiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfSA9IHt9O1xuXG4gICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LmNyaXRpY2FsID09IHRydWUpXG4gICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICBrZXlQcmVmaXggPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKGtleVByZWZpeCk7XG5cbiAgICAgICAgcmVnaW9uYWxPcGVyYXRpb25GYXVsdENvdW50TWV0cmljc1trZXlQcmVmaXhdID1cbiAgICAgICAgICBSZWdpb25hbEF2YWlsYWJpbGl0eU1ldHJpY3MuY3JlYXRlUmVnaW9uYWxBdmFpbGFiaWxpdHlNZXRyaWMoe1xuICAgICAgICAgICAgbGFiZWw6IHgub3BlcmF0aW9uTmFtZSArICcgZmF1bHQgY291bnQnLFxuICAgICAgICAgICAgbWV0cmljRGV0YWlsczogeC5zZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG1ldHJpY1R5cGU6IEF2YWlsYWJpbGl0eU1ldHJpY1R5cGUuRkFVTFRfQ09VTlQsXG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIGxldCByZWdpb25hbEZhdWx0Q291bnQ6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgdXNpbmdNZXRyaWNzOiByZWdpb25hbE9wZXJhdGlvbkZhdWx0Q291bnRNZXRyaWNzLFxuICAgICAgZXhwcmVzc2lvbjogT2JqZWN0LmtleXMocmVnaW9uYWxPcGVyYXRpb25GYXVsdENvdW50TWV0cmljcykuam9pbignKycpLFxuICAgICAgbGFiZWw6IHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUgKyAnIGZhdWx0IGNvdW50JyxcbiAgICAgIHBlcmlvZDogcHJvcHMuc2VydmljZS5wZXJpb2QsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybSA9IG5ldyBBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnUmVnaW9uYWxGYXVsdENvdW50JyxcbiAgICAgIHtcbiAgICAgICAgYWxhcm1OYW1lOlxuICAgICAgICAgIEZuLnJlZignQVdTOjpSZWdpb24nKSArXG4gICAgICAgICAgJy0nICtcbiAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICctZmF1bHQtY291bnQnLFxuICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTogMyxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDUsXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgIHRocmVzaG9sZDogcHJvcHMuc2VydmljZS5mYXVsdENvdW50VGhyZXNob2xkLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICdDb3VudHMgZmF1bHRzIGZyb20gYWxsIGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGUgc2VydmljZScsXG4gICAgICAgIG1ldHJpYzogcmVnaW9uYWxGYXVsdENvdW50LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgbGV0IGNhbmFyeUFsYXJtczogSUFsYXJtW10gPSBPYmplY3QudmFsdWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgKSxcbiAgICApXG4gICAgICAucmVkdWNlKChmaWx0ZXJlZCwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZpbHRlcmVkLnB1c2godmFsdWUuY2FuYXJ5UmVnaW9uYWxBbGFybXNBbmRSdWxlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgfSwgW10gYXMgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNbXSlcbiAgICAgIC5tYXAoKHgpID0+IHguYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0pO1xuXG4gICAgaWYgKFxuICAgICAgY2FuYXJ5QWxhcm1zICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGNhbmFyeUFsYXJtcyAhPT0gbnVsbCAmJlxuICAgICAgY2FuYXJ5QWxhcm1zLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMucmVnaW9uYWxBdmFpbGFiaWxpdHlPckxhdGVuY3lDYW5hcnlBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1NlcnZpY2VDYW5hcnlBdmFpbGFiaWxpdHlPckxhdGVuY3lBZ2dyZWdhdGVBbGFybScsXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgICBGbi5yZWYoJ0FXUzo6UmVnaW9uJykgK1xuICAgICAgICAgICAgJy0nICtcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgICAnLWNhbmFyeS1hdmFpbGFiaWxpdHktb3ItbGF0ZW5jeS1hZ2dyZWdhdGUtYWxhcm0nLFxuICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKC4uLmNhbmFyeUFsYXJtcyksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjYW5hcnlBdmFpbGFiaWxpdHlBbGFybXM6IElBbGFybVtdID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHByb3BzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzKS5yZWR1Y2UoXG4gICAgICAgIChmaWx0ZXJlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgaWYgKGNyaXRpY2FsT3BlcmF0aW9ucy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgZmlsdGVyZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnJlZHVjZSgoZmlsdGVyZWQsIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZS5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmaWx0ZXJlZC5wdXNoKHZhbHVlLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgIH0sIFtdIGFzIElDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzW10pXG4gICAgICAubWFwKCh4KSA9PiB4LmF2YWlsYWJpbGl0eUFsYXJtKTtcblxuICAgIGlmIChcbiAgICAgIGNhbmFyeUF2YWlsYWJpbGl0eUFsYXJtcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBjYW5hcnlBdmFpbGFiaWxpdHlBbGFybXMgIT09IG51bGwgJiZcbiAgICAgIGNhbmFyeUF2YWlsYWJpbGl0eUFsYXJtcy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZ2lvbmFsQXZhaWxhYmlsaXR5Q2FuYXJ5QWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0oXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdTZXJ2aWNlQ2FuYXJ5QXZhaWxhYmlsaXR5QWdncmVnYXRlQWxhcm0nLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgJy1jYW5hcnktYXZhaWxhYmlsaXR5LWFnZ3JlZ2F0ZS1hbGFybScsXG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoLi4uY2FuYXJ5QXZhaWxhYmlsaXR5QWxhcm1zKSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyp0aGlzLnJlZ2lvbmFsQXZhaWxhYmlsaXR5T3JMYXRlbmN5U2VydmVyU2lkZUFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKFxuICAgICAgdGhpcyxcbiAgICAgICdTZXJ2aWNlU2VydmVyU2lkZUFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAge1xuICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAnLScgK1xuICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgJy1zZXJ2ZXItc2lkZS1hZ2dyZWdhdGUtYWxhcm0nLFxuICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgICAgICAubWFwKCh4KSA9PiB4LnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzKVxuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5hdmFpbGFiaWxpdHlPckxhdGVuY3lBbGFybSksXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICk7Ki9cblxuICAgIC8qdGhpcy5yZWdpb25hbEF2YWlsYWJpbGl0eVNlcnZlclNpZGVBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnU2VydmljZVNlcnZlclNpZGVBdmFpbGFiaWxpdHlBbGFybScsXG4gICAgICB7XG4gICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTpcbiAgICAgICAgICBGbi5yZWYoJ0FXUzo6UmVnaW9uJykgK1xuICAgICAgICAgICctJyArXG4gICAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAnLXNlcnZlci1zaWRlLWF2YWlsYWJpbGl0eS1hbGFybScsXG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhwcm9wcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykucmVkdWNlKFxuICAgICAgICAgICAgICAoZmlsdGVyZWQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjcml0aWNhbE9wZXJhdGlvbnMuaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKHgpID0+IHguc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMpXG4gICAgICAgICAgICAubWFwKCh4KSA9PiB4LmF2YWlsYWJpbGl0eUFsYXJtKSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgKTsqL1xuICB9XG59XG4iXX0=
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUFsYXJtc0FuZFJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtc2FuZHJ1bGVzL1NlcnZpY2VBbGFybXNBbmRSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBQ3RDLDZDQUFpQztBQUNqQywrREFRb0M7QUFDcEMsMkNBQXVDO0FBS3ZDLHdGQUFxRjtBQUVyRixnRkFBNkU7QUFDN0UsOERBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxxQkFDWCxTQUFRLHNCQUFTO0lBK0NqQixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLElBQUksa0JBQWtCLEdBQWEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVO2FBQ3hELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7YUFDakMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsRUFBRSxDQUFDO1FBRTlDLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQXdCLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDdEYsSUFBSSxRQUFRLEdBQVcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRSxJQUFJLG1CQUFtQixHQUFXLEtBQUssQ0FBQyxRQUFRLENBQUMsNENBQTRDLENBQUMsUUFB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bGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IEZuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQWxhcm0sXG4gIEFsYXJtUnVsZSxcbiAgQ29tcGFyaXNvbk9wZXJhdG9yLFxuICBDb21wb3NpdGVBbGFybSxcbiAgSUFsYXJtLFxuICBJTWV0cmljLFxuICBNYXRoRXhwcmVzc2lvbixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJQ2FuYXJ5T3BlcmF0aW9uUmVnaW9uYWxBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0gZnJvbSAnLi9JT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMnO1xuaW1wb3J0IHsgSVNlcnZpY2VBbGFybXNBbmRSdWxlcyB9IGZyb20gJy4vSVNlcnZpY2VBbGFybXNBbmRSdWxlcyc7XG5pbXBvcnQgeyBTZXJ2aWNlQWxhcm1zQW5kUnVsZXNQcm9wcyB9IGZyb20gJy4vcHJvcHMvU2VydmljZUFsYXJtc0FuZFJ1bGVzUHJvcHMnO1xuaW1wb3J0IHsgUmVnaW9uYWxBdmFpbGFiaWxpdHlNZXRyaWNzIH0gZnJvbSAnLi4vbWV0cmljcy9SZWdpb25hbEF2YWlsYWJpbGl0eU1ldHJpY3MnO1xuaW1wb3J0IHsgSVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9JU2VydmljZSc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlNZXRyaWNUeXBlIH0gZnJvbSAnLi4vdXRpbGl0aWVzL0F2YWlsYWJpbGl0eU1ldHJpY1R5cGUnO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyJztcblxuLyoqXG4gKiBTZXJ2aWNlIGxldmVsIGFsYXJtcyBhbmQgcnVsZXMgdXNpbmcgY3JpdGljYWwgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgU2VydmljZUFsYXJtc0FuZFJ1bGVzXG4gIGV4dGVuZHMgQ29uc3RydWN0XG4gIGltcGxlbWVudHMgSVNlcnZpY2VBbGFybXNBbmRSdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSB0aGVzZSBhbGFybXMgYW5kIHJ1bGVzIGFyZSBmb3JcbiAgICovXG4gIHNlcnZpY2U6IElTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgem9uYWwgYWdncmVnYXRlIGlzb2xhdGVkIGltcGFjdCBhbGFybXMuIFRoZXJlIGlzIDEgYWxhcm0gcGVyIEFaIHRoYXRcbiAgICogdHJpZ2dlcnMgZm9yIGF2YWlsYWJpbGl0eSBvciBsYXRlbmN5IGltcGFjdCB0byBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGluIHRoYXQgQVpcbiAgICogdGhhdCBpbmRpY2F0ZXMgaXQgaGFzIGlzb2xhdGVkIGltcGFjdCBhcyBtZWFzdXJlZCBieSBjYW5hcmllcyBvciBzZXJ2ZXItc2lkZS5cbiAgICovXG4gIHpvbmFsQWdncmVnYXRlSXNvbGF0ZWRJbXBhY3RBbGFybXM6IHtba2V5OiBzdHJpbmddOiBJQWxhcm19O1xuXG4gIC8qKlxuICAgKiBUaGUgem9uYWwgc2VydmVyLXNpZGUgaXNvbGF0ZWQgaW1wYWN0IGFsYXJtcy4gVGhlcmUgaXMgMSBhbGFybSBwZXIgQVogdGhhdCB0cmlnZ2Vyc1xuICAgKiBvbiBhdmFpbGFiaWxpdHkgb3IgYXRlbmN5IGltcGFjdCB0byBhbnkgY3JpdGljYWwgb3BlcmF0aW9uIGluIHRoYXQgQVouIFRoZXNlIGFyZSB1c2VmdWxcbiAgICogZm9yIGRlcGxveW1lbnQgbW9uaXRvcmluZyB0byBub3QgaW5hZHZlcnRlbnRseSBmYWlsIHdoZW4gYSBjYW5hcnkgY2FuJ3QgY29udGFjdCBhbiBBWlxuICAgKiBkdXJpbmcgYSBkZXBsb3ltZW50LlxuICAgKi9cbiAgem9uYWxTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybXM6IHtba2V5OiBzdHJpbmddOiBJQWxhcm19O1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgcmVnaW9uYWwgYXZhaWxhYmlsaXR5IG9yIGxhdGVuY3kgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIGNhbmFyeS5cbiAgICovXG4gIHJlZ2lvbmFsQXZhaWxhYmlsaXR5T3JMYXRlbmN5Q2FuYXJ5QWxhcm0/OiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIEFuIGFsYXJtIGZvciByZWdpb25hbCBhdmFpbGFiaWxpdHkgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIGNhbmFyeS5cbiAgICovXG4gIHJlZ2lvbmFsQXZhaWxhYmlsaXR5Q2FuYXJ5QWxhcm0/OiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIEFuIGFsYXJtIGZvciByZWdpb25hbCBhdmFpbGFiaWxpdHkgb3IgbGF0ZW5jeSBpbXBhY3Qgb2YgYW55IGNyaXRpY2FsIG9wZXJhdGlvbiBhcyBtZWFzdXJlZCBieSB0aGUgc2VydmVyLXNpZGUuXG4gICAqL1xuICAvL3JlZ2lvbmFsQXZhaWxhYmlsaXR5T3JMYXRlbmN5U2VydmVyU2lkZUFsYXJtOiBJQWxhcm07XG5cbiAgLyoqXG4gICAqIEFuIGFsYXJtIGZvciByZWdpb25hbCBhdmFpbGFiaWxpdHkgaW1wYWN0IG9mIGFueSBjcml0aWNhbCBvcGVyYXRpb24gYXMgbWVhc3VyZWQgYnkgdGhlIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgLy9yZWdpb25hbEF2YWlsYWJpbGl0eVNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBBbiBhbGFybSBmb3IgZmF1bHQgY291bnQgZXhjZWVkaW5nIGEgcmVnaW9uYWwgdGhyZXNob2xkIGZvciBhbGwgY3JpdGljYWwgb3BlcmF0aW9ucy5cbiAgICovXG4gIHJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybTogSUFsYXJtO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZXJ2aWNlQWxhcm1zQW5kUnVsZXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5zZXJ2aWNlID0gcHJvcHMuc2VydmljZTtcblxuICAgIGxldCBjcml0aWNhbE9wZXJhdGlvbnM6IHN0cmluZ1tdID0gcHJvcHMuc2VydmljZS5vcGVyYXRpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LmNyaXRpY2FsID09IHRydWUpXG4gICAgICAubWFwKCh4KSA9PiB4Lm9wZXJhdGlvbk5hbWUpO1xuICAgIHRoaXMuem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtcyA9IHt9O1xuICAgIHRoaXMuem9uYWxTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybXMgPSB7fTtcblxuICAgIHByb3BzLnNlcnZpY2UuYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLmZvckVhY2goKGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgbGV0IGF6TGV0dGVyOiBzdHJpbmcgPSBhdmFpbGFiaWxpdHlab25lLnN1YnN0cmluZyhhdmFpbGFiaWxpdHlab25lLmxlbmd0aCAtIDEpO1xuICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVkSWQ6IHN0cmluZyA9IHByb3BzLmF6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgdGhpcy56b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zW2F2YWlsYWJpbGl0eVpvbmVdID0gbmV3IENvbXBvc2l0ZUFsYXJtKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnQVonICsgaW5kZXggKyAnU2VydmljZUFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZWRJZCArXG4gICAgICAgICAgICAnLScgK1xuICAgICAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAgICctaXNvbGF0ZWQtaW1wYWN0LWFnZ3JlZ2F0ZS1hbGFybScsXG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhwcm9wcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykucmVkdWNlKFxuICAgICAgICAgICAgICAgIChmaWx0ZXJlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICkubWFwKCh4KSA9PiB4LmFnZ3JlZ2F0ZVpvbmFsQWxhcm1zW2F2YWlsYWJpbGl0eVpvbmVdKSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy56b25hbFNlcnZlclNpZGVJc29sYXRlZEltcGFjdEFsYXJtc1thdmFpbGFiaWxpdHlab25lXSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ0FaJyArIGluZGV4ICsgJ1NlcnZpY2VTZXJ2ZXJTaWRlSXNvbGF0ZWRJbXBhY3RBbGFybScsXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lZElkICtcbiAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgJy1pc29sYXRlZC1pbXBhY3Qtc2VydmVyLXNpZGUtYWxhcm0nLFxuICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgLi4uT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoZmlsdGVyZWQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGNyaXRpY2FsT3BlcmF0aW9ucy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKS5tYXAoKHgpID0+IHguc2VydmVyU2lkZVpvbmFsQWxhcm1zQW5kUnVsZXNbYXZhaWxhYmlsaXR5Wm9uZV0uaXNvbGF0ZWRJbXBhY3RBbGFybSksXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsZXQga2V5UHJlZml4OiBzdHJpbmcgPSAnJztcblxuICAgIGxldCByZWdpb25hbE9wZXJhdGlvbkZhdWx0Q291bnRNZXRyaWNzOiB7IFtrZXk6IHN0cmluZ106IElNZXRyaWMgfSA9IHt9O1xuXG4gICAgcHJvcHMuc2VydmljZS5vcGVyYXRpb25zXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LmNyaXRpY2FsID09IHRydWUpXG4gICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICBrZXlQcmVmaXggPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKGtleVByZWZpeCk7XG5cbiAgICAgICAgcmVnaW9uYWxPcGVyYXRpb25GYXVsdENvdW50TWV0cmljc1trZXlQcmVmaXhdID1cbiAgICAgICAgICBSZWdpb25hbEF2YWlsYWJpbGl0eU1ldHJpY3MuY3JlYXRlUmVnaW9uYWxBdmFpbGFiaWxpdHlNZXRyaWMoe1xuICAgICAgICAgICAgbGFiZWw6IHgub3BlcmF0aW9uTmFtZSArICcgZmF1bHQgY291bnQnLFxuICAgICAgICAgICAgbWV0cmljRGV0YWlsczogeC5zZXJ2ZXJTaWRlQXZhaWxhYmlsaXR5TWV0cmljRGV0YWlscyxcbiAgICAgICAgICAgIG1ldHJpY1R5cGU6IEF2YWlsYWJpbGl0eU1ldHJpY1R5cGUuRkFVTFRfQ09VTlQsXG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIGxldCByZWdpb25hbEZhdWx0Q291bnQ6IElNZXRyaWMgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgdXNpbmdNZXRyaWNzOiByZWdpb25hbE9wZXJhdGlvbkZhdWx0Q291bnRNZXRyaWNzLFxuICAgICAgZXhwcmVzc2lvbjogT2JqZWN0LmtleXMocmVnaW9uYWxPcGVyYXRpb25GYXVsdENvdW50TWV0cmljcykuam9pbignKycpLFxuICAgICAgbGFiZWw6IHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUgKyAnIGZhdWx0IGNvdW50JyxcbiAgICAgIHBlcmlvZDogcHJvcHMuc2VydmljZS5wZXJpb2QsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ2lvbmFsRmF1bHRDb3VudFNlcnZlclNpZGVBbGFybSA9IG5ldyBBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnUmVnaW9uYWxGYXVsdENvdW50JyxcbiAgICAgIHtcbiAgICAgICAgYWxhcm1OYW1lOlxuICAgICAgICAgIEZuLnJlZignQVdTOjpSZWdpb24nKSArXG4gICAgICAgICAgJy0nICtcbiAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICctZmF1bHQtY291bnQnLFxuICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTogMyxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDUsXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgIHRocmVzaG9sZDogcHJvcHMuc2VydmljZS5mYXVsdENvdW50VGhyZXNob2xkLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICdDb3VudHMgZmF1bHRzIGZyb20gYWxsIGNyaXRpY2FsIG9wZXJhdGlvbiBpbiB0aGUgc2VydmljZScsXG4gICAgICAgIG1ldHJpYzogcmVnaW9uYWxGYXVsdENvdW50LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgbGV0IGNhbmFyeUFsYXJtczogSUFsYXJtW10gPSBPYmplY3QudmFsdWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgKSxcbiAgICApXG4gICAgICAucmVkdWNlKChmaWx0ZXJlZCwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZpbHRlcmVkLnB1c2godmFsdWUuY2FuYXJ5UmVnaW9uYWxBbGFybXNBbmRSdWxlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgfSwgW10gYXMgSUNhbmFyeU9wZXJhdGlvblJlZ2lvbmFsQWxhcm1zQW5kUnVsZXNbXSlcbiAgICAgIC5tYXAoKHgpID0+IHguYXZhaWxhYmlsaXR5T3JMYXRlbmN5QWxhcm0pO1xuXG4gICAgaWYgKFxuICAgICAgY2FuYXJ5QWxhcm1zICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGNhbmFyeUFsYXJtcyAhPT0gbnVsbCAmJlxuICAgICAgY2FuYXJ5QWxhcm1zLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMucmVnaW9uYWxBdmFpbGFiaWxpdHlPckxhdGVuY3lDYW5hcnlBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1NlcnZpY2VDYW5hcnlBdmFpbGFiaWxpdHlPckxhdGVuY3lBZ2dyZWdhdGVBbGFybScsXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgICBGbi5yZWYoJ0FXUzo6UmVnaW9uJykgK1xuICAgICAgICAgICAgJy0nICtcbiAgICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgICAnLWNhbmFyeS1hdmFpbGFiaWxpdHktb3ItbGF0ZW5jeS1hZ2dyZWdhdGUtYWxhcm0nLFxuICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKC4uLmNhbmFyeUFsYXJtcyksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjYW5hcnlBdmFpbGFiaWxpdHlBbGFybXM6IElBbGFybVtdID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHByb3BzLnBlck9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzKS5yZWR1Y2UoXG4gICAgICAgIChmaWx0ZXJlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgaWYgKGNyaXRpY2FsT3BlcmF0aW9ucy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgICAgICAgZmlsdGVyZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBJT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMgfSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnJlZHVjZSgoZmlsdGVyZWQsIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZS5jYW5hcnlSZWdpb25hbEFsYXJtc0FuZFJ1bGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmaWx0ZXJlZC5wdXNoKHZhbHVlLmNhbmFyeVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgIH0sIFtdIGFzIElDYW5hcnlPcGVyYXRpb25SZWdpb25hbEFsYXJtc0FuZFJ1bGVzW10pXG4gICAgICAubWFwKCh4KSA9PiB4LmF2YWlsYWJpbGl0eUFsYXJtKTtcblxuICAgIGlmIChcbiAgICAgIGNhbmFyeUF2YWlsYWJpbGl0eUFsYXJtcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBjYW5hcnlBdmFpbGFiaWxpdHlBbGFybXMgIT09IG51bGwgJiZcbiAgICAgIGNhbmFyeUF2YWlsYWJpbGl0eUFsYXJtcy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZ2lvbmFsQXZhaWxhYmlsaXR5Q2FuYXJ5QWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0oXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdTZXJ2aWNlQ2FuYXJ5QXZhaWxhYmlsaXR5QWdncmVnYXRlQWxhcm0nLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOlxuICAgICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICBwcm9wcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgJy1jYW5hcnktYXZhaWxhYmlsaXR5LWFnZ3JlZ2F0ZS1hbGFybScsXG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoLi4uY2FuYXJ5QXZhaWxhYmlsaXR5QWxhcm1zKSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyp0aGlzLnJlZ2lvbmFsQXZhaWxhYmlsaXR5T3JMYXRlbmN5U2VydmVyU2lkZUFsYXJtID0gbmV3IENvbXBvc2l0ZUFsYXJtKFxuICAgICAgdGhpcyxcbiAgICAgICdTZXJ2aWNlU2VydmVyU2lkZUFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm0nLFxuICAgICAge1xuICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6XG4gICAgICAgICAgRm4ucmVmKCdBV1M6OlJlZ2lvbicpICtcbiAgICAgICAgICAnLScgK1xuICAgICAgICAgIHByb3BzLnNlcnZpY2Uuc2VydmljZU5hbWUudG9Mb3dlckNhc2UoKSArXG4gICAgICAgICAgJy1zZXJ2ZXItc2lkZS1hZ2dyZWdhdGUtYWxhcm0nLFxuICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMucGVyT3BlcmF0aW9uQWxhcm1zQW5kUnVsZXMpLnJlZHVjZShcbiAgICAgICAgICAgICAgKGZpbHRlcmVkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY3JpdGljYWxPcGVyYXRpb25zLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IElPcGVyYXRpb25BbGFybXNBbmRSdWxlcyB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgICAgICAubWFwKCh4KSA9PiB4LnNlcnZlclNpZGVSZWdpb25hbEFsYXJtc0FuZFJ1bGVzKVxuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5hdmFpbGFiaWxpdHlPckxhdGVuY3lBbGFybSksXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICk7Ki9cblxuICAgIC8qdGhpcy5yZWdpb25hbEF2YWlsYWJpbGl0eVNlcnZlclNpZGVBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnU2VydmljZVNlcnZlclNpZGVBdmFpbGFiaWxpdHlBbGFybScsXG4gICAgICB7XG4gICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTpcbiAgICAgICAgICBGbi5yZWYoJ0FXUzo6UmVnaW9uJykgK1xuICAgICAgICAgICctJyArXG4gICAgICAgICAgcHJvcHMuc2VydmljZS5zZXJ2aWNlTmFtZS50b0xvd2VyQ2FzZSgpICtcbiAgICAgICAgICAnLXNlcnZlci1zaWRlLWF2YWlsYWJpbGl0eS1hbGFybScsXG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhwcm9wcy5wZXJPcGVyYXRpb25BbGFybXNBbmRSdWxlcykucmVkdWNlKFxuICAgICAgICAgICAgICAoZmlsdGVyZWQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjcml0aWNhbE9wZXJhdGlvbnMuaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogSU9wZXJhdGlvbkFsYXJtc0FuZFJ1bGVzIH0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKHgpID0+IHguc2VydmVyU2lkZVJlZ2lvbmFsQWxhcm1zQW5kUnVsZXMpXG4gICAgICAgICAgICAubWFwKCh4KSA9PiB4LmF2YWlsYWJpbGl0eUFsYXJtKSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgKTsqL1xuICB9XG59XG4iXX0=
|
|
@@ -197,5 +197,5 @@ class AvailabilityZoneMapper extends constructs_1.Construct {
|
|
|
197
197
|
}
|
|
198
198
|
exports.AvailabilityZoneMapper = AvailabilityZoneMapper;
|
|
199
199
|
_a = JSII_RTTI_SYMBOL_1;
|
|
200
|
-
AvailabilityZoneMapper[_a] = { fqn: "@cdklabs/multi-az-observability.AvailabilityZoneMapper", version: "0.0.1-alpha.
|
|
200
|
+
AvailabilityZoneMapper[_a] = { fqn: "@cdklabs/multi-az-observability.AvailabilityZoneMapper", version: "0.0.1-alpha.34" };
|
|
201
201
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXZhaWxhYmlsaXR5Wm9uZU1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hem1hcHBlci9BdmFpbGFiaWxpdHlab25lTWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQU1xQjtBQUNyQixpREFRNkI7QUFDN0IsdURBTWdDO0FBQ2hDLG1EQUEwRTtBQUMxRSwyQ0FBdUM7QUFHdkMsOERBQTJEO0FBRTNEOztHQUVHO0FBQ0gsTUFBYSxzQkFDWCxTQUFRLHNCQUFTO0lBbUJqQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFtQztRQUVuQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCOzs7Ozs7Ozs7O1VBVUU7UUFFRixJQUFJLGlCQUFpQixHQUFtQixJQUFJLHVCQUFhLENBQ3ZELElBQUksRUFDSixtQkFBbUIsRUFDbkI7WUFDRSxJQUFJLEVBQUUsWUFBWTtZQUNsQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQ0FBb0M7cUJBQ3JDO29CQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNIO1NBQ0YsQ0FDRixDQUFDO1FBRUYsSUFBSSxnQkFBZ0IsR0FBbUIsSUFBSSx1QkFBYSxDQUN0RCxJQUFJLEVBQ0osa0JBQWtCLEVBQ2xCO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsVUFBVSxFQUFFO2dCQUNWLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7b0JBQzFDLE1BQU0sRUFB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TyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNkJBQTZCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0Q0FBNEMsQ0FBQyxNQUFjO1FBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNENBQTRDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5RCxDQUFDOztBQTlPSCx3REErT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQ3VzdG9tUmVzb3VyY2UsXG4gIER1cmF0aW9uLFxuICBGbixcbiAgUmVmZXJlbmNlLFxuICBSZW1vdmFsUG9saWN5LFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBFZmZlY3QsXG4gIElNYW5hZ2VkUG9saWN5LFxuICBJUm9sZSxcbiAgTWFuYWdlZFBvbGljeSxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEFyY2hpdGVjdHVyZSxcbiAgQ29kZSxcbiAgRnVuY3Rpb24sXG4gIElGdW5jdGlvbixcbiAgVHJhY2luZyxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBJTG9nR3JvdXAsIExvZ0dyb3VwLCBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4vSUF2YWlsYWJpbGl0eVpvbmVNYXBwZXInO1xuaW1wb3J0IHsgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlclByb3BzIH0gZnJvbSAnLi9wcm9wcy9BdmFpbGFiaWxpdHlab25lTWFwcGVyUHJvcHMnO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyJztcblxuLyoqXG4gKiBBIGNvbnN0cnVjdCB0aGF0IGFsbG93cyB5b3UgdG8gbWFwIEFaIG5hbWVzIHRvIGlkcyBhbmQgYmFja1xuICovXG5leHBvcnQgY2xhc3MgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlclxuICBleHRlbmRzIENvbnN0cnVjdFxuICBpbXBsZW1lbnRzIElBdmFpbGFiaWxpdHlab25lTWFwcGVyIHtcbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIG1hcHBpbmdcbiAgICovXG4gIGZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXAgZm9yIHRoZSBmdW5jdGlvbidzIGxvZ3NcbiAgICovXG4gIGxvZ0dyb3VwOiBJTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCB0byB1c2VcbiAgICogRm46OkdldEF0dCBmdW5jdGlvbnMgb24gdG8gcmV0cmlldmUgYXZhaWxhYmlsaXR5IHpvbmVcbiAgICogbmFtZXMgYW5kIGlkc1xuICAgKi9cbiAgbWFwcGVyOiBDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM/OiBBdmFpbGFiaWxpdHlab25lTWFwcGVyUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvKlxuICAgIGxldCBjdXJyZW50Tm9kZTogQ29uc3RydWN0IHwgdW5kZWZpbmVkID0gdGhpcy5ub2RlLnNjb3BlO1xuXG4gICAgd2hpbGUgKGN1cnJlbnROb2RlICE9PSB1bmRlZmluZWQgJiYgIShjdXJyZW50Tm9kZSBpbnN0YW5jZW9mIFN0YWNrKSkge1xuICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5ub2RlLnNjb3BlO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50Tm9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAoY3VycmVudE5vZGUgYXMgU3RhY2spLmFkZFRyYW5zZm9ybSgnQVdTOjpMYW5ndWFnZUV4dGVuc2lvbnMnKTtcbiAgICB9XG4gICAgKi9cblxuICAgIGxldCB4cmF5TWFuYWdlZFBvbGljeTogSU1hbmFnZWRQb2xpY3kgPSBuZXcgTWFuYWdlZFBvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICAnWHJheU1hbmFnZWRQb2xpY3knLFxuICAgICAge1xuICAgICAgICBwYXRoOiAnL2F6bWFwcGVyLycsXG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgJ3hyYXk6UHV0VHJhY2VTZWdtZW50cycsXG4gICAgICAgICAgICAgICd4cmF5OlB1dFRlbGVtZXRyeVJlY29yZHMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1J1bGVzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdUYXJnZXRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdTdGF0aXN0aWNTdW1tYXJpZXMnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGxldCBlYzJNYW5hZ2VkUG9saWN5OiBJTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgICdFQzJNYW5hZ2VkUG9saWN5JyxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJy9hem1hcHBlci8nLFxuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2VjMjpEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzJ10sXG4gICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBsZXQgZXhlY3V0aW9uUm9sZTogSVJvbGUgPSBuZXcgUm9sZSh0aGlzLCAnZXhlY3V0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBwYXRoOiAnL2F6bWFwcGVyLycsXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFt4cmF5TWFuYWdlZFBvbGljeSwgZWMyTWFuYWdlZFBvbGljeV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWxlOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8uLi9hem1hcHBlci9zcmMvaW5kZXgucHknKSxcbiAgICAgICd1dGYtOCcsXG4gICAgKTtcblxuICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgJ0F2YWlsYWJpbGl0eVpvbmVNYXBwZXJGdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgIGNvZGU6IENvZGUuZnJvbUlubGluZShmaWxlKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIHJvbGU6IGV4ZWN1dGlvblJvbGUsXG4gICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMjApLFxuICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgUkVHSU9OOiBGbi5yZWYoJ0FXUzo6UmVnaW9uJyksXG4gICAgICAgIFBBUlRJVElPTjogRm4ucmVmKCdBV1M6OlBhcnRpdGlvbicpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMubG9nR3JvdXAgPSBuZXcgTG9nR3JvdXAodGhpcywgJ0xvZ0dyb3VwJywge1xuICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9sYW1iZGEvJHt0aGlzLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZX1gLFxuICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBuZXcgTWFuYWdlZFBvbGljeSh0aGlzLCAnQ2xvdWRXYXRjaE1hbmFnZWRQb2xpY3knLCB7XG4gICAgICBwYXRoOiAnL2F6bWFwcGVyLycsXG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnbG9nczpDcmVhdGVMb2dTdHJlYW0nLCAnbG9nczpQdXRMb2dFdmVudHMnXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgIEZuLnN1YihcbiAgICAgICAgICAgICAgJ2Fybjoke0FXUzo6UGFydGl0aW9ufTpsb2dzOiR7QVdTOjpSZWdpb259OiR7QVdTOjpBY2NvdW50SWR9OmxvZy1ncm91cDonLFxuICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgIHRoaXMubG9nR3JvdXAubG9nR3JvdXBOYW1lICtcbiAgICAgICAgICAgICAgJzoqJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICByb2xlczogW2V4ZWN1dGlvblJvbGVdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5tYXBwZXIgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0F2YWlsYWJpbGl0eVpvbmVNYXBwZXInLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICBwcm9wZXJ0aWVzOlxuICAgICAgICBwcm9wcz8uYXZhaWxhYmlsaXR5Wm9uZU5hbWVzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHsgQXZhaWxhYmlsaXR5Wm9uZXM6IHByb3BzLmF2YWlsYWJpbGl0eVpvbmVOYW1lcyB9XG4gICAgICAgICAgOiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBJZCBmb3IgdGhlIGdpdmVuIEF2YWlsYWJpbGl0eSBab25lIE5hbWUgaW4gdGhpcyBhY2NvdW50XG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZUlkKGF2YWlsYWJpbGl0eVpvbmVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1hcHBlci5nZXRBdHRTdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEF2YWlsYWJpbGl0eSBab25lIE5hbWUgZm9yIHRoZSBnaXZlbiBBdmFpbGFiaWxpdHkgWm9uZSBJZCBpbiB0aGlzIGFjY291bnRcbiAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmVJZFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXZhaWxhYmlsaXR5Wm9uZU5hbWUoYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1hcHBlci5nZXRBdHRTdHJpbmcoYXZhaWxhYmlsaXR5Wm9uZUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBwcmVmaXggZm9yIHRoZSByZWdpb24gdXNlZCB3aXRoIEF2YWlsYWJpbGl0eSBab25lIElkcywgZm9yIGV4YW1wbGVcbiAgICogaW4gdXMtZWFzdC0xLCB0aGlzIHJldHVybnMgXCJ1c2UxXCJcbiAgICogQHJldHVybnNcbiAgICovXG4gIHJlZ2lvblByZWZpeEZvckF2YWlsYWJpbGl0eVpvbmVJZHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwZXIuZ2V0QXR0U3RyaW5nKEZuLnJlZignQVdTOjpSZWdpb24nKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBmb3IgQXZhaWxhYmlsaXR5IFpvbmUgSWRzIGZvciB0aGUgc3VwcGxpZWQgQXZhaWxhYmlsaXR5IFpvbmUgbmFtZXMsXG4gICAqIHRoZXkgYXJlIHJldHVybmVkIGluIHRoZSBzYW1lIG9yZGVyIHRoZSBuYW1lcyB3ZXJlIHByb3ZpZGVkXG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGF2YWlsYWJpbGl0eVpvbmVJZHNBc0FycmF5KGF2YWlsYWJpbGl0eVpvbmVOYW1lczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgbGV0IGlkczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXZhaWxhYmlsaXR5Wm9uZU5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZHMucHVzaCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVJZChhdmFpbGFiaWxpdHlab25lTmFtZXNbaV0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb21tYSBkZWxpbWl0ZWQgbGlzdCBvZiBBdmFpbGFiaWxpdHkgWm9uZSBJZHMgZm9yIHRoZSBzdXBwbGllZFxuICAgKiBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lcy4gWW91IGNhbiB1c2UgdGhpcyBzdHJpbmcgd2l0aCBGbi5TZWxlY3QoeCwgRm4uU3BsaXQoXCIsXCIsIGF6cykpIHRvXG4gICAqIGdldCBhIHNwZWNpZmljIEF2YWlsYWJpbGl0eSBab25lIElkXG4gICAqIEBwYXJhbSBhdmFpbGFiaWxpdHlab25lTmFtZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGF2YWlsYWJpbGl0eVpvbmVJZHNBc0NvbW1hRGVsaW1pdGVkTGlzdChcbiAgICBhdmFpbGFiaWxpdHlab25lTmFtZXM6IHN0cmluZ1tdLFxuICApOiBzdHJpbmcge1xuICAgIGxldCBpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF2YWlsYWJpbGl0eVpvbmVOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWRzLnB1c2godGhpcy5hdmFpbGFiaWxpdHlab25lSWQoYXZhaWxhYmlsaXR5Wm9uZU5hbWVzW2ldKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlkcy5qb2luKCcsJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvbW1hIGRlbGltaXRlZCBsaXN0IG9mIEF2YWlsYWJpbGl0eSBab25lIElkcyBmb3IgdGhlIHN1cHBsaWVkXG4gICAqIEF2YWlsYWJpbGl0eSBab25lIG5hbWVzLiBZb3UgY2FuIHVzZSB0aGlzIHN0cmluZyB3aXRoIEZuLlNlbGVjdCh4LCBGbi5TcGxpdChcIixcIiwgYXpzKSkgdG9cbiAgICogZ2V0IGEgc3BlY2lmaWMgQXZhaWxhYmlsaXR5IFpvbmUgSWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFsbEF2YWlsYWJpbGl0eVpvbmVJZHNBc0NvbW1hRGVsaW1pdGVkTGlzdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1hcHBlci5nZXRBdHRTdHJpbmcoJ0FsbEF2YWlsYWJpbGl0eVpvbmVJZHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRoYXQgY2FuIGJlIGNhc3QgdG8gYSBzdHJpbmcgYXJyYXkgd2l0aCBhbGwgb2YgdGhlXG4gICAqIEF2YWlsYWJpbGl0eSBab25lIElkc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYWxsQXZhaWxhYmlsaXR5Wm9uZUlkc0FzQXJyYXkoKTogUmVmZXJlbmNlIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwZXIuZ2V0QXR0KCdBbGxBdmFpbGFiaWxpdHlab25lSWRzQXJyYXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGxldHRlciBsaWtlIFwiZlwiIG9yIFwiYVwiLCByZXR1cm5zIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBJZCBmb3IgdGhhdFxuICAgKiBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lIGluIHRoaXMgYWNjb3VudFxuICAgKiBAcGFyYW0gbGV0dGVyXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihsZXR0ZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFwcGVyLmdldEF0dFN0cmluZyhsZXR0ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIG9mIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBuYW1lcyBpbiB0aGlzIFJlZ2lvbiBhcyBhIGNvbW1hIGRlbGltaXRlZFxuICAgKiBsaXN0LiBZb3UgY2FuIHVzZSB0aGlzIHN0cmluZyB3aXRoIEZuLlNlbGVjdCh4LCBGbi5TcGxpdChcIixcIiwgYXpzKSkgdG9cbiAgICogZ2V0IGEgc3BlY2lmaWMgQXZhaWxhYmlsaXR5IFpvbmUgTmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYWxsQXZhaWxhYmlsaXR5Wm9uZU5hbWVzQXNDb21tYURlbGltaXRlZExpc3QoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwZXIuZ2V0QXR0U3RyaW5nKCdBbGxBdmFpbGFiaWxpdHlab25lTmFtZXMnKTtcbiAgfVxufVxuIl19
|
|
@@ -15,7 +15,7 @@ class BasicServiceDashboard extends constructs_1.Construct {
|
|
|
15
15
|
throw new Error("You must define either ALBs or NAT Gateways for this service in order to create a dashboard.");
|
|
16
16
|
}
|
|
17
17
|
this.dashboard = new aws_cloudwatch_1.Dashboard(this, 'BasicServiceDashboard', {
|
|
18
|
-
dashboardName: `${props.serviceName.toLowerCase()}-per-az-health-${aws_cdk_lib_1.Aws.REGION}
|
|
18
|
+
dashboardName: `${props.serviceName.toLowerCase()}-per-az-health-${aws_cdk_lib_1.Aws.REGION}`,
|
|
19
19
|
defaultInterval: props.interval,
|
|
20
20
|
periodOverride: aws_cloudwatch_1.PeriodOverride.AUTO
|
|
21
21
|
});
|
|
@@ -39,4 +39,4 @@ class BasicServiceDashboard extends constructs_1.Construct {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
exports.BasicServiceDashboard = BasicServiceDashboard;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2ljX29ic2VydmFiaWxpdHkvQmFzaWNTZXJ2aWNlRGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsNkNBQWtDO0FBQ2xDLCtEQU1vQztBQUNwQywyQ0FBdUM7QUFFdkMsOEZBQTJGO0FBQzNGLG9FQUFpRTtBQUVqRSxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBSWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDBCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzVELGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLGtCQUFrQixpQkFBRyxDQUFDLE1BQU0sRUFBRTtZQUMvRSxlQUFlLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDL0IsY0FBYyxFQUFFLCtCQUFjLENBQUMsSUFBSTtTQUNwQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGtDQUFpQixDQUFDO1lBQzlDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztZQUMvRCxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLGtCQUFrQjtTQUMxQixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBRXpCLElBQUksMkJBQVUsQ0FBQztnQkFDYixRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxVQUFVLEVBQUUscUNBQW9CLENBQUMsV0FBVztnQkFDNUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLEVBQ0YsR0FBRywrREFBOEIsQ0FBQywyQkFBMkIsQ0FDekQsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFDbkMsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQ3RDLENBQ0YsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FDdkIsR0FBRyxxQ0FBaUIsQ0FBQyx5QkFBeUIsQ0FDNUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQ3hCLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLE1BQU0sRUFDWixLQUFLLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pGLENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF2REQsc0RBdURDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuaW1wb3J0IHsgQXdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQWxhcm1TdGF0dXNXaWRnZXQsXG4gIERhc2hib2FyZCxcbiAgUGVyaW9kT3ZlcnJpZGUsXG4gIFRleHRXaWRnZXQsXG4gIFRleHRXaWRnZXRCYWNrZ3JvdW5kLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2ljU2VydmljZURhc2hib2FyZFByb3BzIH0gZnJvbSAnLi9wcm9wcy9CYXNpY1NlcnZpY2VEYXNoYm9hcmRQcm9wcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck1ldHJpY3MgfSBmcm9tICcuLi9tZXRyaWNzL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcyc7XG5pbXBvcnQgeyBOYXRHYXRld2F5TWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvTmF0R2F0ZXdheU1ldHJpY3MnO1xuXG5leHBvcnQgY2xhc3MgQmFzaWNTZXJ2aWNlRGFzaGJvYXJkIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBkYXNoYm9hcmQ6IERhc2hib2FyZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzaWNTZXJ2aWNlRGFzaGJvYXJkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCEocHJvcHMuYWxicykgJiYgIShwcm9wcy5uYXRnd3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgbXVzdCBkZWZpbmUgZWl0aGVyIEFMQnMgb3IgTkFUIEdhdGV3YXlzIGZvciB0aGlzIHNlcnZpY2UgaW4gb3JkZXIgdG8gY3JlYXRlIGEgZGFzaGJvYXJkLlwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmRhc2hib2FyZCA9IG5ldyBEYXNoYm9hcmQodGhpcywgJ0Jhc2ljU2VydmljZURhc2hib2FyZCcsIHtcbiAgICAgIGRhc2hib2FyZE5hbWU6IGAke3Byb3BzLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCl9LXBlci1hei1oZWFsdGgtJHtBd3MuUkVHSU9OfWAsXG4gICAgICBkZWZhdWx0SW50ZXJ2YWw6IHByb3BzLmludGVydmFsLFxuICAgICAgcGVyaW9kT3ZlcnJpZGU6IFBlcmlvZE92ZXJyaWRlLkFVVE9cbiAgICB9KTtcblxuICAgIHRoaXMuZGFzaGJvYXJkLmFkZFdpZGdldHMobmV3IEFsYXJtU3RhdHVzV2lkZ2V0KHtcbiAgICAgIGFsYXJtczogT2JqZWN0LnZhbHVlcyhwcm9wcy56b25hbEFnZ3JlZ2F0ZUlzb2xhdGVkSW1wYWN0QWxhcm1zKSxcbiAgICAgIGhlaWdodDogMixcbiAgICAgIHdpZHRoOiAyNCxcbiAgICAgIHRpdGxlOiAnQWdncmVnYXRlIEFsYXJtcycsXG4gICAgfSkpO1xuXG4gICAgaWYgKHByb3BzLmFsYnMpIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmFkZFdpZGdldHMoXG5cbiAgICAgIG5ldyBUZXh0V2lkZ2V0KHtcbiAgICAgICAgbWFya2Rvd246IFwiIyMgKipMb2FkIEJhbGFuY2VyIE1ldHJpY3MqKlwiLFxuICAgICAgICBiYWNrZ3JvdW5kOiBUZXh0V2lkZ2V0QmFja2dyb3VuZC5UUkFOU1BBUkVOVCxcbiAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICB3aWR0aDogMjRcbiAgICAgIH0pLFxuICAgICAgLi4uQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzLmdlbmVyYXRlTG9hZEJhbGFuY2VyV2lkZ2V0cyhcbiAgICAgICAgICBwcm9wcy5hbGJzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VycyxcbiAgICAgICAgICBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgcHJvcHMuYWxicy5sYXRlbmN5U3RhdGlzdGljLFxuICAgICAgICAgIHByb3BzLmFsYnMubGF0ZW5jeVRocmVzaG9sZCxcbiAgICAgICAgICBwcm9wcy5hbGJzLmZhdWx0Q291bnRQZXJjZW50VGhyZXNob2xkXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvcHMubmF0Z3dzKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5hZGRXaWRnZXRzKFxuICAgICAgICAuLi5OYXRHYXRld2F5TWV0cmljcy5nZW5lcmF0ZU5hdEdhdGV3YXlXaWRnZXRzKFxuICAgICAgICAgIHByb3BzLm5hdGd3cy5uYXRHYXRld2F5cyxcbiAgICAgICAgICBwcm9wcy5hek1hcHBlcixcbiAgICAgICAgICBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgcHJvcHMubmF0Z3dzLnBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkID8gcHJvcHMubmF0Z3dzLnBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkIDogMC4wMVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|