@liflig/cdk 3.24.1 → 3.24.3

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.
@@ -70,11 +70,17 @@ export declare class DatabaseAlarms extends constructs.Construct {
70
70
  */
71
71
  addStorageSpaceAlarms(props?: {
72
72
  /**
73
- * Set to `false` to disable both storage space alarms (low + critically low).
73
+ * Set to `false` to disable all storage space alarms (both low and critically low).
74
+ * Individual alarms can still be disabled even when this is true.
74
75
  * @default true
75
76
  */
76
77
  enabled?: boolean;
77
78
  lowStorageSpaceAlarm?: {
79
+ /**
80
+ * Set to `false` to disable the low storage space alarm.
81
+ * @default true
82
+ */
83
+ enabled?: boolean;
78
84
  /**
79
85
  * An action to use for CloudWatch alarm state changes instead of the default action
80
86
  */
@@ -92,6 +98,11 @@ export declare class DatabaseAlarms extends constructs.Construct {
92
98
  * Configuration for critically low storage alarm.
93
99
  */
94
100
  criticallyLowStorageSpaceAlarm?: {
101
+ /**
102
+ * Set to `false` to disable the critically low storage space alarm.
103
+ * @default true
104
+ */
105
+ enabled?: boolean;
95
106
  /**
96
107
  * An action to use for CloudWatch alarm state changes instead of the default action
97
108
  */
@@ -104,54 +104,57 @@ export class DatabaseAlarms extends constructs.Construct {
104
104
  * categorized as a "warning", while the other one can be considered an "alarm".
105
105
  */
106
106
  addStorageSpaceAlarms(props) {
107
- // If the top-level enabled flag is explicitly false, do nothing
108
- if (props?.enabled === false)
107
+ // If top-level enabled is explicitly false, skip all storage alarms
108
+ if (props?.enabled === false) {
109
109
  return;
110
- // Create Low Storage Space alarm
111
- const lowStorageSpaceAlarm = new cloudwatch.Metric({
112
- metricName: "FreeStorageSpace",
113
- namespace: "AWS/RDS",
114
- statistic: "Minimum",
115
- period: cdk.Duration.minutes(5),
116
- dimensionsMap: {
117
- DBInstanceIdentifier: this.databaseInstanceIdentifier,
118
- },
119
- }).createAlarm(this, "LowStorageSpaceAlarm", {
120
- alarmDescription: `Low storage space available on RDS database '${this.databaseInstanceIdentifier}'. ${props?.appendToAlarmDescription ?? ""}`,
121
- comparisonOperator: cloudwatch.ComparisonOperator.LESS_THAN_THRESHOLD,
122
- evaluationPeriods: 1,
123
- threshold: props?.lowStorageSpaceAlarm?.threshold?.toBytes() ??
124
- this.allocatedStorage.toBytes() * 0.25,
125
- treatMissingData: cloudwatch.TreatMissingData.IGNORE,
126
- });
127
- // Default to the warning action
128
- const lowAction = props?.lowStorageSpaceAlarm?.action ?? this.warningAction;
129
- lowStorageSpaceAlarm.addAlarmAction(lowAction);
130
- if (props?.lowStorageSpaceAlarm?.enableOkAlarm ?? true) {
131
- lowStorageSpaceAlarm.addOkAction(lowAction);
132
110
  }
133
- // Create Critically Low Storage Space alarm
134
- const criticallyLowStorageSpaceAlarm = new cloudwatch.Metric({
135
- metricName: "FreeStorageSpace",
136
- namespace: "AWS/RDS",
137
- statistic: "Minimum",
138
- period: cdk.Duration.minutes(5),
139
- dimensionsMap: {
140
- DBInstanceIdentifier: this.databaseInstanceIdentifier,
141
- },
142
- }).createAlarm(this, "CriticallyLowStorageSpaceAlarm", {
143
- alarmDescription: `Critically low storage space available on RDS database '${this.databaseInstanceIdentifier}'. ${props?.appendToAlarmDescription ?? ""}`,
144
- comparisonOperator: cloudwatch.ComparisonOperator.LESS_THAN_THRESHOLD,
145
- evaluationPeriods: 1,
146
- threshold: props?.criticallyLowStorageSpaceAlarm?.threshold?.toBytes() ??
147
- this.allocatedStorage.toBytes() * 0.05,
148
- treatMissingData: cloudwatch.TreatMissingData.IGNORE,
149
- });
150
- // Default to the alarm action
151
- const criticalAction = props?.criticallyLowStorageSpaceAlarm?.action ?? this.alarmAction;
152
- criticallyLowStorageSpaceAlarm.addAlarmAction(criticalAction);
153
- if (props?.criticallyLowStorageSpaceAlarm?.enableOkAlarm ?? true) {
154
- criticallyLowStorageSpaceAlarm.addOkAction(criticalAction);
111
+ if (props?.lowStorageSpaceAlarm?.enabled !== false) {
112
+ const lowStorageSpaceAlarm = new cloudwatch.Metric({
113
+ metricName: "FreeStorageSpace",
114
+ namespace: "AWS/RDS",
115
+ statistic: "Minimum",
116
+ period: cdk.Duration.minutes(5),
117
+ dimensionsMap: {
118
+ DBInstanceIdentifier: this.databaseInstanceIdentifier,
119
+ },
120
+ }).createAlarm(this, "LowStorageSpaceAlarm", {
121
+ alarmDescription: `Low storage space available on RDS database '${this.databaseInstanceIdentifier}'. ${props?.appendToAlarmDescription ?? ""}`,
122
+ comparisonOperator: cloudwatch.ComparisonOperator.LESS_THAN_THRESHOLD,
123
+ evaluationPeriods: 1,
124
+ threshold: props?.lowStorageSpaceAlarm?.threshold?.toBytes() ??
125
+ this.allocatedStorage.toBytes() * 0.25,
126
+ treatMissingData: cloudwatch.TreatMissingData.IGNORE,
127
+ });
128
+ // Default to the warning action
129
+ const lowAction = props?.lowStorageSpaceAlarm?.action ?? this.warningAction;
130
+ lowStorageSpaceAlarm.addAlarmAction(lowAction);
131
+ if (props?.lowStorageSpaceAlarm?.enableOkAlarm ?? true) {
132
+ lowStorageSpaceAlarm.addOkAction(lowAction);
133
+ }
134
+ }
135
+ if (props?.criticallyLowStorageSpaceAlarm?.enabled !== false) {
136
+ const criticallyLowStorageSpaceAlarm = new cloudwatch.Metric({
137
+ metricName: "FreeStorageSpace",
138
+ namespace: "AWS/RDS",
139
+ statistic: "Minimum",
140
+ period: cdk.Duration.minutes(5),
141
+ dimensionsMap: {
142
+ DBInstanceIdentifier: this.databaseInstanceIdentifier,
143
+ },
144
+ }).createAlarm(this, "CriticallyLowStorageSpaceAlarm", {
145
+ alarmDescription: `Critically low storage space available on RDS database '${this.databaseInstanceIdentifier}'. ${props?.appendToAlarmDescription ?? ""}`,
146
+ comparisonOperator: cloudwatch.ComparisonOperator.LESS_THAN_THRESHOLD,
147
+ evaluationPeriods: 1,
148
+ threshold: props?.criticallyLowStorageSpaceAlarm?.threshold?.toBytes() ??
149
+ this.allocatedStorage.toBytes() * 0.05,
150
+ treatMissingData: cloudwatch.TreatMissingData.IGNORE,
151
+ });
152
+ // Default to the alarm action
153
+ const criticalAction = props?.criticallyLowStorageSpaceAlarm?.action ?? this.alarmAction;
154
+ criticallyLowStorageSpaceAlarm.addAlarmAction(criticalAction);
155
+ if (props?.criticallyLowStorageSpaceAlarm?.enableOkAlarm ?? true) {
156
+ criticallyLowStorageSpaceAlarm.addOkAction(criticalAction);
157
+ }
155
158
  }
156
159
  }
157
160
  /**
@@ -188,4 +191,4 @@ export class DatabaseAlarms extends constructs.Construct {
188
191
  }
189
192
  }
190
193
  }
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtcy9kYXRhYmFzZS1hbGFybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUE7QUFDbEMsT0FBTyxLQUFLLFVBQVUsTUFBTSw0QkFBNEIsQ0FBQTtBQUV4RCxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQWtCeEMsNEhBQTRIO0FBQzVILE1BQU0sOEJBQThCLEdBRWhDO0lBQ0YsU0FBUyxFQUFFLEVBQUU7SUFDYixVQUFVLEVBQUUsR0FBRztJQUNmLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsR0FBRztJQUNkLFVBQVUsRUFBRSxHQUFHO0lBQ2YsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsR0FBRztJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLEdBQUc7SUFDakIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsR0FBRztJQUNqQixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtDQUNwQixDQUFBO0FBRUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVLENBQUMs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RCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbEMsVUFBVSxFQUFFLGdCQUFnQjtZQUM1QixTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDaEQsYUFBYSxFQUFFO2dCQUNiLG9CQUFvQixFQUFFLElBQUksQ0FBQywwQkFBMEI7YUFDdEQ7U0FDRixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUMxQyxnQkFBZ0IsRUFBRSxpQkFBaUIsSUFBSSxDQUFDLDBCQUEwQixpREFBaUQsS0FBSyxFQUFFLHdCQUF3QixJQUFJLEVBQUUsRUFBRTtZQUMxSixrQkFBa0IsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ3hFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxpQkFBaUIsSUFBSSxDQUFDO1lBQ2hELFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxJQUFJLEVBQUU7WUFDakMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU07U0FDckQsQ0FBQyxDQUFBO1FBQ0YsZ0NBQWdDO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQTtRQUNyRCxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQy9CLElBQUksS0FBSyxFQUFFLGFBQWEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzlCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCJcbmltcG9ydCB0eXBlICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlQWxhcm1zUHJvcHMge1xuICAvKipcbiAgICogVGhlIGFjdGlvbiB0byB1c2UgZm9yIGFsYXJtcyBzZW50IHRvIFwiYWxhcm1zXCIgU2xhY2sgY2hhbm5lbCxcbiAgICogZS5nLiwgY3JpdGljYWwgYWxlcnRzLlxuICAgKi9cbiAgYWxhcm1BY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHRvIHVzZSBmb3IgYWxhcm1zIHNlbnQgdG8gXCJ3YXJuaW5nXCIgU2xhY2sgY2hhbm5lbCxcbiAgICogZS5nLiwgbGVzcyBjcml0aWNhbCBhbGVydHMuXG4gICAqL1xuICB3YXJuaW5nQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICBpbnN0YW5jZUlkZW50aWZpZXI6IHN0cmluZ1xuICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGVcbiAgYWxsb2NhdGVkU3RvcmFnZTogY2RrLlNpemVcbn1cblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2J1cnN0YWJsZS1jcmVkaXRzLWJhc2VsaW5lLWNvbmNlcHRzLmh0bWwjZWFybmluZy1DUFUtY3JlZGl0c1xuY29uc3QgY3B1Q3JlZGl0QmFsYW5jZUJ5SW5zdGFuY2VUeXBlOiB7XG4gIFtpbnN0YW5jZVR5cGU6IHN0cmluZ106IG51bWJlclxufSA9IHtcbiAgXCJ0Mi5uYW5vXCI6IDcyLFxuICBcInQyLm1pY3JvXCI6IDE0NCxcbiAgXCJ0Mi5zbWFsbFwiOiAyODgsXG4gIFwidDIubWVkaXVtXCI6IDU3NixcbiAgXCJ0Mi5sYXJnZVwiOiA4NjQsXG4gIFwidDIueGxhcmdlXCI6IDEyOTYsXG4gIFwidDIuMnhsYXJnZVwiOiAxOTU4LjQsXG4gIFwidDMubmFub1wiOiAxNDQsXG4gIFwidDMubWljcm9cIjogMjg4LFxuICBcInQzLnNtYWxsXCI6IDU3NixcbiAgXCJ0My5tZWRpdW1cIjogNTc2LFxuICBcInQzLmxhcmdlXCI6IDg2NCxcbiAgXCJ0My54bGFyZ2VcIjogMjMwNCxcbiAgXCJ0My4yeGxhcmdlXCI6IDQ2MDgsXG4gIFwidDNhLm5hbm9cIjogMTQ0LFxuICBcInQzYS5taWNyb1wiOiAyODgsXG4gIFwidDNhLnNtYWxsXCI6IDU3NixcbiAgXCJ0M2EubWVkaXVtXCI6IDU3NixcbiAgXCJ0M2EubGFyZ2VcIjogODY0LFxuICBcInQzYS54bGFyZ2VcIjogMjMwNCxcbiAgXCJ0M2EuMnhsYXJnZVwiOiA0NjA4LFxuICBcInQ0Zy5uYW5vXCI6IDE0NCxcbiAgXCJ0NGcubWljcm9cIjogMjg4LFxuICBcInQ0Zy5zbWFsbFwiOiA1NzYsXG4gIFwidDRnLm1lZGl1bVwiOiA1NzYsXG4gIFwidDRnLmxhcmdlXCI6IDg2NCxcbiAgXCJ0NGcueGxhcmdlXCI6IDIzMDQsXG4gIFwidDRnLjJ4bGFyZ2VcIjogNDYwOCxcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlQWxhcm1zIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGFsYXJtQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IHdhcm5pbmdBY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXI6IHN0cmluZ1xuICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZVxuICBwcml2YXRlIHJlYWRvbmx5IGFsbG9jYXRlZFN0b3JhZ2U6IGNkay5TaXplXG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IERhdGFiYXNlQWxhcm1zUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuYWxhcm1BY3Rpb24gPSBwcm9wcy5hbGFybUFjdGlvblxuICAgIHRoaXMud2FybmluZ0FjdGlvbiA9IHByb3BzLndhcm5pbmdBY3Rpb25cbiAgICB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyID0gcHJvcHMuaW5zdGFuY2VJZGVudGlmaWVyXG4gICAgdGhpcy5pbnN0YW5jZVR5cGUgPSBwcm9wcy5pbnN0YW5jZVR5cGVcbiAgICB0aGlzLmFsbG9jYXRlZFN0b3JhZ2UgPSBwcm9wcy5hbGxvY2F0ZWRTdG9yYWdlXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCBhIENsb3VkV2F0Y2ggQWxhcm0gdGhhdCB0cmlnZ2VycyBpZiB0aGUgQ1BVIGNyZWRpdCBiYWxhbmNlIGZvclxuICAgKiBhIGJ1cnN0YWJsZSBpbnN0YW5jZSBicmVhY2ggYSBjZXJ0YWluIHRocmVzaG9sZC5cbiAgICpcbiAgICogTk9URTogVGhpcyBhbGFybSBpcyBvbmx5IGFwcGxpY2FibGUgZm9yIGJ1cnN0YWJsZSBpbnN0YW5jZXMsIGFuZCBhIGJhbGFuY2Ugb2YgMCBjcmVkaXRzIHdpbGwgb25seSBoYXZlIHBlcmZvcm1hbmNlXG4gICAqIGltcGxpY2F0aW9ucyBmb3IgVDIgaW5zdGFuY2VzLiBUMyBhbmQgVDRnIGluc3RhbmNlcyB3aWxsIGluc3RlYWQgY29zdCBtb3JlIGZvciBwcm9sb25nZWQgaGlnaCBDUFUgdXRpbGl6YXRpb24gYWZ0ZXJcbiAgICogdGhlIGJhbGFuY2UgaXMgZGVwbGV0ZWQuXG4gICAqL1xuICBhZGRDcHVDcmVkaXRzQWxhcm0oXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICBwcm9wcz86IHtcbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBDbG91ZFdhdGNoIEFsYXJtIHdpbGwgY2hhbmdlIGl0cyBzdGF0ZSB0byBBTEFSTSBpZiB0aGUgbnVtYmVyIG9mIENQVSBjcmVkaXRzIGRyb3BzIGJlbG93IHRoaXMgdGhyZXNob2xkLlxuICAgICAgICpcbiAgICAgICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYnVyc3RhYmxlLWNyZWRpdHMtYmFzZWxpbmUtY29uY2VwdHMuaHRtbCNlYXJuaW5nLUNQVS1jcmVkaXRzIGZvciBhbiBvdmVydmlldyBvZiBtYXhpbXVtIENQVSBjcmVkaXRzIGZvciB2YXJpb3VzIGluc3RhbmNlIHR5cGVzLlxuICAgICAgICpcbiAgICAgICAqIEBkZWZhdWx0IDEwJSBvZiB0aGUgbWF4aW11bSBlYXJuZWQgQ1BVIGNyZWRpdHMgZm9yIHRoZSBpbnN0YW5jZSB0eXBlLlxuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIGFsYXJtIGRlc2NyaXB0aW9uLCBsaWtlIFJ1bmJvb2sgVVJMIG9yIHN0ZXBzIHRvIHRyaWFnZS5cbiAgICAgICAqL1xuICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgfSxcbiAgKTogdm9pZCB7XG4gICAgLy8gQ1BVIGNyZWRpdHMgYWxhcm1zIGFyZSBvbmx5IGFwcGxpY2FibGUgdG8gYnVyc3RhYmxlIGluc3RhbmNlIHR5cGVzLlxuICAgIC8vIEV4cGxpY2l0bHkgdGhyb3cgaWYgYSBjYWxsZXIgdHJpZXMgdG8gY3JlYXRlIHRoaXMgYWxhcm0gZm9yIGFcbiAgICAvLyBub24tYnVyc3RhYmxlIGluc3RhbmNlLlxuICAgIGlmICghdGhpcy5pbnN0YW5jZVR5cGUuaXNCdXJzdGFibGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgYWRkQ3B1Q3JlZGl0c0FsYXJtOiBpbnN0YW5jZSB0eXBlICcke3RoaXMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCl9JyBpcyBub3QgYnVyc3RhYmxlOyB0aGlzIGFsYXJtIGlzIG9ubHkgYXBwbGljYWJsZSB0byBidXJzdGFibGUgaW5zdGFuY2UgdHlwZXMuYCxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0VGhyZXNob2xkID1cbiAgICAgIGNwdUNyZWRpdEJhbGFuY2VCeUluc3RhbmNlVHlwZVt0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpXSAqIDAuMVxuICAgIGNvbnN0IHRocmVzaG9sZCA9IHByb3BzPy50aHJlc2hvbGQgPz8gZGVmYXVsdFRocmVzaG9sZFxuICAgIGlmICghdGhyZXNob2xkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyB0aHJlc2hvbGQgc3VwcGxpZWQsIGFuZCB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgZGVmYXVsdCB2YWx1ZSBmb3IgaW5zdGFuY2UgdHlwZSAnJHt0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpfSdgLFxuICAgICAgKVxuICAgIH1cbiAgICBjb25zdCBjcmVkaXRzQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJDUFVDcmVkaXRCYWxhbmNlXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1JEU1wiLFxuICAgICAgc3RhdGlzdGljOiBcIk1pbmltdW1cIixcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCSW5zdGFuY2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNyZWRpdHNBbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgTGVzcyB0aGFuICR7dGhyZXNob2xkfSBDUFUgY3JlZGl0cyByZW1haW5pbmcgZm9yIFJEUyBkYXRhYmFzZSAnJHt0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyfScuICR7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcInQyLlwiKVxuICAgICAgICAgID8gXCJJZiB0aGlzIHJlYWNoZXMgMCwgdGhlIGluc3RhbmNlIHdpbGwgYmUgbGltaXRlZCB0byBhIGJhc2VsaW5lIENQVSB1dGlsaXphdGlvbi5cIlxuICAgICAgICAgIDogXCJJZiB0aGUgYmFsYW5jZSBpcyBkZXBsZXRlZCwgQVdTIGFkZHMgYWRkaXRpb25hbCBjaGFyZ2VzLlwiXG4gICAgICB9ICR7cHJvcHM/LmFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbiA/PyBcIlwifWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRocmVzaG9sZDogdGhyZXNob2xkLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuXG4gICAgLy8gRGVmYXVsdCB0byB0aGUgYWxhcm0gYWN0aW9uXG4gICAgY3JlZGl0c0FsYXJtLmFkZEFsYXJtQWN0aW9uKHByb3BzPy5hY3Rpb24gPz8gdGhpcy5hbGFybUFjdGlvbilcbiAgICBpZiAocHJvcHM/LmVuYWJsZU9rQWxhcm0gPz8gdHJ1ZSkge1xuICAgICAgY3JlZGl0c0FsYXJtLmFkZE9rQWN0aW9uKHByb3BzPy5hY3Rpb24gPz8gdGhpcy5hbGFybUFjdGlvbilcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCB0d28gQ2xvdWRXYXRjaCBBbGFybXMgZm9yIG1vbml0b3JpbmcgZGlzayBzdG9yYWdlIHNwYWNlOlxuICAgKiAxKSBvbmUgdGhhdCB0cmlnZ2VycyBpZiB0aGUgYXZhaWxhYmxlIGRpc2sgc3RvcmFnZSBzcGFjZSBpcyBsb3cuXG4gICAqIDIpIG9uZSB0aGF0IHRyaWdnZXJzIGlmIHRoZSBhdmFpbGFibGUgZGlzayBzdG9yYWdlIHNwYWNlIGlzIGNyaXRpY2FsbHkgbG93LlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gdXNlIGRpZmZlcmVudCBhbGFybSBhY3Rpb25zIGZvciB0aGUgdHdvIGFsYXJtcywgZS5nLiwgb25lIGNhbiBiZVxuICAgKiBjYXRlZ29yaXplZCBhcyBhIFwid2FybmluZ1wiLCB3aGlsZSB0aGUgb3RoZXIgb25lIGNhbiBiZSBjb25zaWRlcmVkIGFuIFwiYWxhcm1cIi5cbiAgICovXG4gIGFkZFN0b3JhZ2VTcGFjZUFsYXJtcyhwcm9wcz86IHtcbiAgICAvKipcbiAgICAgKiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIGJvdGggc3RvcmFnZSBzcGFjZSBhbGFybXMgKGxvdyArIGNyaXRpY2FsbHkgbG93KS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICBsb3dTdG9yYWdlU3BhY2VBbGFybT86IHtcbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDI1JSBvZiB0aGUgYWxsb2NhdGVkIHN0b3JhZ2UuXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgICAvKipcbiAgICAgICAqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgY3JpdGljYWxseSBsb3cgc3RvcmFnZSBhbGFybS5cbiAgICAgKi9cbiAgICBjcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA1JSBvZiB0aGUgYWxsb2NhdGVkIHN0b3JhZ2UuXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgICAvKipcbiAgICAgICAqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkIGV4dHJhIGluZm9ybWF0aW9uIHRvIHRoZSBhbGFybSBkZXNjcmlwdGlvbiwgbGlrZSBSdW5ib29rIFVSTCBvciBzdGVwcyB0byB0cmlhZ2UuXG4gICAgICovXG4gICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gIH0pOiB2b2lkIHtcbiAgICAvLyBJZiB0aGUgdG9wLWxldmVsIGVuYWJsZWQgZmxhZyBpcyBleHBsaWNpdGx5IGZhbHNlLCBkbyBub3RoaW5nXG4gICAgaWYgKHByb3BzPy5lbmFibGVkID09PSBmYWxzZSkgcmV0dXJuXG5cbiAgICAvLyBDcmVhdGUgTG93IFN0b3JhZ2UgU3BhY2UgYWxhcm1cbiAgICBjb25zdCBsb3dTdG9yYWdlU3BhY2VBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkZyZWVTdG9yYWdlU3BhY2VcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvUkRTXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiTWluaW11bVwiLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgREJJbnN0YW5jZUlkZW50aWZpZXI6IHRoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiTG93U3RvcmFnZVNwYWNlQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYExvdyBzdG9yYWdlIHNwYWNlIGF2YWlsYWJsZSBvbiBSRFMgZGF0YWJhc2UgJyR7dGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcn0nLiAke3Byb3BzPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24gPz8gXCJcIn1gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0aHJlc2hvbGQ6XG4gICAgICAgIHByb3BzPy5sb3dTdG9yYWdlU3BhY2VBbGFybT8udGhyZXNob2xkPy50b0J5dGVzKCkgPz9cbiAgICAgICAgdGhpcy5hbGxvY2F0ZWRTdG9yYWdlLnRvQnl0ZXMoKSAqIDAuMjUsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgIH0pXG5cbiAgICAvLyBEZWZhdWx0IHRvIHRoZSB3YXJuaW5nIGFjdGlvblxuICAgIGNvbnN0IGxvd0FjdGlvbiA9IHByb3BzPy5sb3dTdG9yYWdlU3BhY2VBbGFybT8uYWN0aW9uID8/IHRoaXMud2FybmluZ0FjdGlvblxuICAgIGxvd1N0b3JhZ2VTcGFjZUFsYXJtLmFkZEFsYXJtQWN0aW9uKGxvd0FjdGlvbilcbiAgICBpZiAocHJvcHM/Lmxvd1N0b3JhZ2VTcGFjZUFsYXJtPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgIGxvd1N0b3JhZ2VTcGFjZUFsYXJtLmFkZE9rQWN0aW9uKGxvd0FjdGlvbilcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgQ3JpdGljYWxseSBMb3cgU3RvcmFnZSBTcGFjZSBhbGFybVxuICAgIGNvbnN0IGNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkZyZWVTdG9yYWdlU3BhY2VcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvUkRTXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiTWluaW11bVwiLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgREJJbnN0YW5jZUlkZW50aWZpZXI6IHRoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiQ3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtXCIsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBDcml0aWNhbGx5IGxvdyBzdG9yYWdlIHNwYWNlIGF2YWlsYWJsZSBvbiBSRFMgZGF0YWJhc2UgJyR7dGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcn0nLiAke3Byb3BzPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24gPz8gXCJcIn1gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0aHJlc2hvbGQ6XG4gICAgICAgIHByb3BzPy5jcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0/LnRocmVzaG9sZD8udG9CeXRlcygpID8/XG4gICAgICAgIHRoaXMuYWxsb2NhdGVkU3RvcmFnZS50b0J5dGVzKCkgKiAwLjA1LFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuXG4gICAgLy8gRGVmYXVsdCB0byB0aGUgYWxhcm0gYWN0aW9uXG4gICAgY29uc3QgY3JpdGljYWxBY3Rpb24gPVxuICAgICAgcHJvcHM/LmNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybT8uYWN0aW9uID8/IHRoaXMuYWxhcm1BY3Rpb25cbiAgICBjcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0uYWRkQWxhcm1BY3Rpb24oY3JpdGljYWxBY3Rpb24pXG4gICAgaWYgKHByb3BzPy5jcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0/LmVuYWJsZU9rQWxhcm0gPz8gdHJ1ZSkge1xuICAgICAgY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtLmFkZE9rQWN0aW9uKGNyaXRpY2FsQWN0aW9uKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIGEgQ2xvdWRXYXRjaCBBbGFybSB0aGF0IHRyaWdnZXJzIGlmIHRoZSBhdmVyYWdlIENQVSB1dGlsaXphdGlvbiBmb3JcbiAgICogdGhlIFJEUyBpbnN0YW5jZSBleGNlZWRzIGEgZ2l2ZW4gdGhyZXNob2xkLlxuICAgKi9cbiAgYWRkQ3B1VXRpbGl6YXRpb25BbGFybShcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHByb3BzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogVGhlIHRocmVzaG9sZCBkZWZpbmVkIGFzIGEgcGVyY2VudGFnZSB0aGF0IGRldGVybWluZXMgaWYgQ1BVIHV0aWxpemF0aW9uIHNob3VsZCB0cmlnZ2VyIGFuIGFsYXJtIG9yIG5vdC5cbiAgICAgICAqIEBkZWZhdWx0IDgwXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA1XG4gICAgICAgKi9cbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDIgbWludXRlc1xuICAgICAgICovXG4gICAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIGFsYXJtIGRlc2NyaXB0aW9uLCBsaWtlIFJ1bmJvb2sgVVJMIG9yIHN0ZXBzIHRvIHRyaWFnZS5cbiAgICAgICAqL1xuICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgfSxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJDUFVVdGlsaXphdGlvblwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9SRFNcIixcbiAgICAgIHN0YXRpc3RpYzogXCJBdmVyYWdlXCIsXG4gICAgICBwZXJpb2Q6IHByb3BzPy5wZXJpb2QgPz8gY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCSW5zdGFuY2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNwdVV0aWxpemF0aW9uQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYFJEUyBkYXRhYmFzZSAnJHt0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyfScgaGFzIGEgaGlnaGVyIHRoYW4gZXhwZWN0ZWQgQ1BVIHV0aWxpemF0aW9uLiAke3Byb3BzPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24gPz8gXCJcIn1gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyA1LFxuICAgICAgdGhyZXNob2xkOiBwcm9wcz8udGhyZXNob2xkID8/IDgwLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuICAgIC8vIERlZmF1bHQgdG8gdGhlIHdhcm5pbmcgYWN0aW9uXG4gICAgY29uc3QgY3B1QWN0aW9uID0gcHJvcHM/LmFjdGlvbiA/PyB0aGlzLndhcm5pbmdBY3Rpb25cbiAgICBhbGFybS5hZGRBbGFybUFjdGlvbihjcHVBY3Rpb24pXG4gICAgaWYgKHByb3BzPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgIGFsYXJtLmFkZE9rQWN0aW9uKGNwdUFjdGlvbilcbiAgICB9XG4gIH1cbn1cbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtcy9kYXRhYmFzZS1hbGFybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUE7QUFDbEMsT0FBTyxLQUFLLFVBQVUsTUFBTSw0QkFBNEIsQ0FBQTtBQUV4RCxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQWtCeEMsNEhBQTRIO0FBQzVILE1BQU0sOEJBQThCLEdBRWhDO0lBQ0YsU0FBUyxFQUFFLEVBQUU7SUFDYixVQUFVLEVBQUUsR0FBRztJQUNmLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsR0FBRztJQUNkLFVBQVUsRUFBRSxHQUFHO0lBQ2YsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsR0FBRztJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLEdBQUc7SUFDakIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsR0FBRztJQUNqQixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtDQUNwQixDQUFBO0FBRUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVLENBQUMs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QyxTQUFTLENBQUMsQ0FBQTtRQUM5QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiXG5pbXBvcnQgdHlwZSAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiXG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUFsYXJtc1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gdXNlIGZvciBhbGFybXMgc2VudCB0byBcImFsYXJtc1wiIFNsYWNrIGNoYW5uZWwsXG4gICAqIGUuZy4sIGNyaXRpY2FsIGFsZXJ0cy5cbiAgICovXG4gIGFsYXJtQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAvKipcbiAgICogVGhlIGFjdGlvbiB0byB1c2UgZm9yIGFsYXJtcyBzZW50IHRvIFwid2FybmluZ1wiIFNsYWNrIGNoYW5uZWwsXG4gICAqIGUuZy4sIGxlc3MgY3JpdGljYWwgYWxlcnRzLlxuICAgKi9cbiAgd2FybmluZ0FjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgaW5zdGFuY2VJZGVudGlmaWVyOiBzdHJpbmdcbiAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlXG4gIGFsbG9jYXRlZFN0b3JhZ2U6IGNkay5TaXplXG59XG5cbi8vIEJhc2VkIG9uIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9idXJzdGFibGUtY3JlZGl0cy1iYXNlbGluZS1jb25jZXB0cy5odG1sI2Vhcm5pbmctQ1BVLWNyZWRpdHNcbmNvbnN0IGNwdUNyZWRpdEJhbGFuY2VCeUluc3RhbmNlVHlwZToge1xuICBbaW5zdGFuY2VUeXBlOiBzdHJpbmddOiBudW1iZXJcbn0gPSB7XG4gIFwidDIubmFub1wiOiA3MixcbiAgXCJ0Mi5taWNyb1wiOiAxNDQsXG4gIFwidDIuc21hbGxcIjogMjg4LFxuICBcInQyLm1lZGl1bVwiOiA1NzYsXG4gIFwidDIubGFyZ2VcIjogODY0LFxuICBcInQyLnhsYXJnZVwiOiAxMjk2LFxuICBcInQyLjJ4bGFyZ2VcIjogMTk1OC40LFxuICBcInQzLm5hbm9cIjogMTQ0LFxuICBcInQzLm1pY3JvXCI6IDI4OCxcbiAgXCJ0My5zbWFsbFwiOiA1NzYsXG4gIFwidDMubWVkaXVtXCI6IDU3NixcbiAgXCJ0My5sYXJnZVwiOiA4NjQsXG4gIFwidDMueGxhcmdlXCI6IDIzMDQsXG4gIFwidDMuMnhsYXJnZVwiOiA0NjA4LFxuICBcInQzYS5uYW5vXCI6IDE0NCxcbiAgXCJ0M2EubWljcm9cIjogMjg4LFxuICBcInQzYS5zbWFsbFwiOiA1NzYsXG4gIFwidDNhLm1lZGl1bVwiOiA1NzYsXG4gIFwidDNhLmxhcmdlXCI6IDg2NCxcbiAgXCJ0M2EueGxhcmdlXCI6IDIzMDQsXG4gIFwidDNhLjJ4bGFyZ2VcIjogNDYwOCxcbiAgXCJ0NGcubmFub1wiOiAxNDQsXG4gIFwidDRnLm1pY3JvXCI6IDI4OCxcbiAgXCJ0NGcuc21hbGxcIjogNTc2LFxuICBcInQ0Zy5tZWRpdW1cIjogNTc2LFxuICBcInQ0Zy5sYXJnZVwiOiA4NjQsXG4gIFwidDRnLnhsYXJnZVwiOiAyMzA0LFxuICBcInQ0Zy4yeGxhcmdlXCI6IDQ2MDgsXG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZUFsYXJtcyBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGFybUFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgcHJpdmF0ZSByZWFkb25seSB3YXJuaW5nQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGVcbiAgcHJpdmF0ZSByZWFkb25seSBhbGxvY2F0ZWRTdG9yYWdlOiBjZGsuU2l6ZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBEYXRhYmFzZUFsYXJtc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmFsYXJtQWN0aW9uID0gcHJvcHMuYWxhcm1BY3Rpb25cbiAgICB0aGlzLndhcm5pbmdBY3Rpb24gPSBwcm9wcy53YXJuaW5nQWN0aW9uXG4gICAgdGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllciA9IHByb3BzLmluc3RhbmNlSWRlbnRpZmllclxuICAgIHRoaXMuaW5zdGFuY2VUeXBlID0gcHJvcHMuaW5zdGFuY2VUeXBlXG4gICAgdGhpcy5hbGxvY2F0ZWRTdG9yYWdlID0gcHJvcHMuYWxsb2NhdGVkU3RvcmFnZVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgYSBDbG91ZFdhdGNoIEFsYXJtIHRoYXQgdHJpZ2dlcnMgaWYgdGhlIENQVSBjcmVkaXQgYmFsYW5jZSBmb3JcbiAgICogYSBidXJzdGFibGUgaW5zdGFuY2UgYnJlYWNoIGEgY2VydGFpbiB0aHJlc2hvbGQuXG4gICAqXG4gICAqIE5PVEU6IFRoaXMgYWxhcm0gaXMgb25seSBhcHBsaWNhYmxlIGZvciBidXJzdGFibGUgaW5zdGFuY2VzLCBhbmQgYSBiYWxhbmNlIG9mIDAgY3JlZGl0cyB3aWxsIG9ubHkgaGF2ZSBwZXJmb3JtYW5jZVxuICAgKiBpbXBsaWNhdGlvbnMgZm9yIFQyIGluc3RhbmNlcy4gVDMgYW5kIFQ0ZyBpbnN0YW5jZXMgd2lsbCBpbnN0ZWFkIGNvc3QgbW9yZSBmb3IgcHJvbG9uZ2VkIGhpZ2ggQ1BVIHV0aWxpemF0aW9uIGFmdGVyXG4gICAqIHRoZSBiYWxhbmNlIGlzIGRlcGxldGVkLlxuICAgKi9cbiAgYWRkQ3B1Q3JlZGl0c0FsYXJtKFxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgcHJvcHM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgQ2xvdWRXYXRjaCBBbGFybSB3aWxsIGNoYW5nZSBpdHMgc3RhdGUgdG8gQUxBUk0gaWYgdGhlIG51bWJlciBvZiBDUFUgY3JlZGl0cyBkcm9wcyBiZWxvdyB0aGlzIHRocmVzaG9sZC5cbiAgICAgICAqXG4gICAgICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2J1cnN0YWJsZS1jcmVkaXRzLWJhc2VsaW5lLWNvbmNlcHRzLmh0bWwjZWFybmluZy1DUFUtY3JlZGl0cyBmb3IgYW4gb3ZlcnZpZXcgb2YgbWF4aW11bSBDUFUgY3JlZGl0cyBmb3IgdmFyaW91cyBpbnN0YW5jZSB0eXBlcy5cbiAgICAgICAqXG4gICAgICAgKiBAZGVmYXVsdCAxMCUgb2YgdGhlIG1heGltdW0gZWFybmVkIENQVSBjcmVkaXRzIGZvciB0aGUgaW5zdGFuY2UgdHlwZS5cbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGV4dHJhIGluZm9ybWF0aW9uIHRvIHRoZSBhbGFybSBkZXNjcmlwdGlvbiwgbGlrZSBSdW5ib29rIFVSTCBvciBzdGVwcyB0byB0cmlhZ2UuXG4gICAgICAgKi9cbiAgICAgIGFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgIH0sXG4gICk6IHZvaWQge1xuICAgIC8vIENQVSBjcmVkaXRzIGFsYXJtcyBhcmUgb25seSBhcHBsaWNhYmxlIHRvIGJ1cnN0YWJsZSBpbnN0YW5jZSB0eXBlcy5cbiAgICAvLyBFeHBsaWNpdGx5IHRocm93IGlmIGEgY2FsbGVyIHRyaWVzIHRvIGNyZWF0ZSB0aGlzIGFsYXJtIGZvciBhXG4gICAgLy8gbm9uLWJ1cnN0YWJsZSBpbnN0YW5jZS5cbiAgICBpZiAoIXRoaXMuaW5zdGFuY2VUeXBlLmlzQnVyc3RhYmxlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGFkZENwdUNyZWRpdHNBbGFybTogaW5zdGFuY2UgdHlwZSAnJHt0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpfScgaXMgbm90IGJ1cnN0YWJsZTsgdGhpcyBhbGFybSBpcyBvbmx5IGFwcGxpY2FibGUgdG8gYnVyc3RhYmxlIGluc3RhbmNlIHR5cGVzLmAsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdFRocmVzaG9sZCA9XG4gICAgICBjcHVDcmVkaXRCYWxhbmNlQnlJbnN0YW5jZVR5cGVbdGhpcy5pbnN0YW5jZVR5cGUudG9TdHJpbmcoKV0gKiAwLjFcbiAgICBjb25zdCB0aHJlc2hvbGQgPSBwcm9wcz8udGhyZXNob2xkID8/IGRlZmF1bHRUaHJlc2hvbGRcbiAgICBpZiAoIXRocmVzaG9sZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm8gdGhyZXNob2xkIHN1cHBsaWVkLCBhbmQgdW5hYmxlIHRvIGRldGVybWluZSBhIGRlZmF1bHQgdmFsdWUgZm9yIGluc3RhbmNlIHR5cGUgJyR7dGhpcy5pbnN0YW5jZVR5cGUudG9TdHJpbmcoKX0nYCxcbiAgICAgIClcbiAgICB9XG4gICAgY29uc3QgY3JlZGl0c0FsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiQ1BVQ3JlZGl0QmFsYW5jZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9SRFNcIixcbiAgICAgIHN0YXRpc3RpYzogXCJNaW5pbXVtXCIsXG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkluc3RhbmNlSWRlbnRpZmllcjogdGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcixcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJDcmVkaXRzQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYExlc3MgdGhhbiAke3RocmVzaG9sZH0gQ1BVIGNyZWRpdHMgcmVtYWluaW5nIGZvciBSRFMgZGF0YWJhc2UgJyR7dGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcn0nLiAke1xuICAgICAgICB0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpLnN0YXJ0c1dpdGgoXCJ0Mi5cIilcbiAgICAgICAgICA/IFwiSWYgdGhpcyByZWFjaGVzIDAsIHRoZSBpbnN0YW5jZSB3aWxsIGJlIGxpbWl0ZWQgdG8gYSBiYXNlbGluZSBDUFUgdXRpbGl6YXRpb24uXCJcbiAgICAgICAgICA6IFwiSWYgdGhlIGJhbGFuY2UgaXMgZGVwbGV0ZWQsIEFXUyBhZGRzIGFkZGl0aW9uYWwgY2hhcmdlcy5cIlxuICAgICAgfSAke3Byb3BzPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24gPz8gXCJcIn1gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0aHJlc2hvbGQ6IHRocmVzaG9sZCxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSlcblxuICAgIC8vIERlZmF1bHQgdG8gdGhlIGFsYXJtIGFjdGlvblxuICAgIGNyZWRpdHNBbGFybS5hZGRBbGFybUFjdGlvbihwcm9wcz8uYWN0aW9uID8/IHRoaXMuYWxhcm1BY3Rpb24pXG4gICAgaWYgKHByb3BzPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgIGNyZWRpdHNBbGFybS5hZGRPa0FjdGlvbihwcm9wcz8uYWN0aW9uID8/IHRoaXMuYWxhcm1BY3Rpb24pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdHdvIENsb3VkV2F0Y2ggQWxhcm1zIGZvciBtb25pdG9yaW5nIGRpc2sgc3RvcmFnZSBzcGFjZTpcbiAgICogMSkgb25lIHRoYXQgdHJpZ2dlcnMgaWYgdGhlIGF2YWlsYWJsZSBkaXNrIHN0b3JhZ2Ugc3BhY2UgaXMgbG93LlxuICAgKiAyKSBvbmUgdGhhdCB0cmlnZ2VycyBpZiB0aGUgYXZhaWxhYmxlIGRpc2sgc3RvcmFnZSBzcGFjZSBpcyBjcml0aWNhbGx5IGxvdy5cbiAgICpcbiAgICogWW91IG1heSB3YW50IHRvIHVzZSBkaWZmZXJlbnQgYWxhcm0gYWN0aW9ucyBmb3IgdGhlIHR3byBhbGFybXMsIGUuZy4sIG9uZSBjYW4gYmVcbiAgICogY2F0ZWdvcml6ZWQgYXMgYSBcIndhcm5pbmdcIiwgd2hpbGUgdGhlIG90aGVyIG9uZSBjYW4gYmUgY29uc2lkZXJlZCBhbiBcImFsYXJtXCIuXG4gICAqL1xuICBhZGRTdG9yYWdlU3BhY2VBbGFybXMocHJvcHM/OiB7XG4gICAgLyoqXG4gICAgICogU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSBhbGwgc3RvcmFnZSBzcGFjZSBhbGFybXMgKGJvdGggbG93IGFuZCBjcml0aWNhbGx5IGxvdykuXG4gICAgICogSW5kaXZpZHVhbCBhbGFybXMgY2FuIHN0aWxsIGJlIGRpc2FibGVkIGV2ZW4gd2hlbiB0aGlzIGlzIHRydWUuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgbG93U3RvcmFnZVNwYWNlQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhlIGxvdyBzdG9yYWdlIHNwYWNlIGFsYXJtLlxuICAgICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMjUlIG9mIHRoZSBhbGxvY2F0ZWQgc3RvcmFnZS5cbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogY2RrLlNpemVcbiAgICAgIC8qKlxuICAgICAgICogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBjcml0aWNhbGx5IGxvdyBzdG9yYWdlIGFsYXJtLlxuICAgICAqL1xuICAgIGNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybT86IHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGUgY3JpdGljYWxseSBsb3cgc3RvcmFnZSBzcGFjZSBhbGFybS5cbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDUlIG9mIHRoZSBhbGxvY2F0ZWQgc3RvcmFnZS5cbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogY2RrLlNpemVcbiAgICAgIC8qKlxuICAgICAgICogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGQgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIGFsYXJtIGRlc2NyaXB0aW9uLCBsaWtlIFJ1bmJvb2sgVVJMIG9yIHN0ZXBzIHRvIHRyaWFnZS5cbiAgICAgKi9cbiAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgfSk6IHZvaWQge1xuICAgIC8vIElmIHRvcC1sZXZlbCBlbmFibGVkIGlzIGV4cGxpY2l0bHkgZmFsc2UsIHNraXAgYWxsIHN0b3JhZ2UgYWxhcm1zXG4gICAgaWYgKHByb3BzPy5lbmFibGVkID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChwcm9wcz8ubG93U3RvcmFnZVNwYWNlQWxhcm0/LmVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBsb3dTdG9yYWdlU3BhY2VBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICAgIG1ldHJpY05hbWU6IFwiRnJlZVN0b3JhZ2VTcGFjZVwiLFxuICAgICAgICBuYW1lc3BhY2U6IFwiQVdTL1JEU1wiLFxuICAgICAgICBzdGF0aXN0aWM6IFwiTWluaW11bVwiLFxuICAgICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgICAgREJJbnN0YW5jZUlkZW50aWZpZXI6IHRoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICAgIH0sXG4gICAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkxvd1N0b3JhZ2VTcGFjZUFsYXJtXCIsIHtcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYExvdyBzdG9yYWdlIHNwYWNlIGF2YWlsYWJsZSBvbiBSRFMgZGF0YWJhc2UgJyR7dGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcn0nLiAke3Byb3BzPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24gPz8gXCJcIn1gLFxuICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgICB0aHJlc2hvbGQ6XG4gICAgICAgICAgcHJvcHM/Lmxvd1N0b3JhZ2VTcGFjZUFsYXJtPy50aHJlc2hvbGQ/LnRvQnl0ZXMoKSA/P1xuICAgICAgICAgIHRoaXMuYWxsb2NhdGVkU3RvcmFnZS50b0J5dGVzKCkgKiAwLjI1LFxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgICAgfSlcblxuICAgICAgLy8gRGVmYXVsdCB0byB0aGUgd2FybmluZyBhY3Rpb25cbiAgICAgIGNvbnN0IGxvd0FjdGlvbiA9XG4gICAgICAgIHByb3BzPy5sb3dTdG9yYWdlU3BhY2VBbGFybT8uYWN0aW9uID8/IHRoaXMud2FybmluZ0FjdGlvblxuICAgICAgbG93U3RvcmFnZVNwYWNlQWxhcm0uYWRkQWxhcm1BY3Rpb24obG93QWN0aW9uKVxuICAgICAgaWYgKHByb3BzPy5sb3dTdG9yYWdlU3BhY2VBbGFybT8uZW5hYmxlT2tBbGFybSA/PyB0cnVlKSB7XG4gICAgICAgIGxvd1N0b3JhZ2VTcGFjZUFsYXJtLmFkZE9rQWN0aW9uKGxvd0FjdGlvbilcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzPy5jcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0/LmVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBjcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgICBtZXRyaWNOYW1lOiBcIkZyZWVTdG9yYWdlU3BhY2VcIixcbiAgICAgICAgbmFtZXNwYWNlOiBcIkFXUy9SRFNcIixcbiAgICAgICAgc3RhdGlzdGljOiBcIk1pbmltdW1cIixcbiAgICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICAgIERCSW5zdGFuY2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgICB9LFxuICAgICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJDcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm1cIiwge1xuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBgQ3JpdGljYWxseSBsb3cgc3RvcmFnZSBzcGFjZSBhdmFpbGFibGUgb24gUkRTIGRhdGFiYXNlICcke3RoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXJ9Jy4gJHtwcm9wcz8uYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uID8/IFwiXCJ9YCxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgICAgdGhyZXNob2xkOlxuICAgICAgICAgIHByb3BzPy5jcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0/LnRocmVzaG9sZD8udG9CeXRlcygpID8/XG4gICAgICAgICAgdGhpcy5hbGxvY2F0ZWRTdG9yYWdlLnRvQnl0ZXMoKSAqIDAuMDUsXG4gICAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgICB9KVxuXG4gICAgICAvLyBEZWZhdWx0IHRvIHRoZSBhbGFybSBhY3Rpb25cbiAgICAgIGNvbnN0IGNyaXRpY2FsQWN0aW9uID1cbiAgICAgICAgcHJvcHM/LmNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybT8uYWN0aW9uID8/IHRoaXMuYWxhcm1BY3Rpb25cbiAgICAgIGNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybS5hZGRBbGFybUFjdGlvbihjcml0aWNhbEFjdGlvbilcbiAgICAgIGlmIChwcm9wcz8uY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgICAgY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtLmFkZE9rQWN0aW9uKGNyaXRpY2FsQWN0aW9uKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIGEgQ2xvdWRXYXRjaCBBbGFybSB0aGF0IHRyaWdnZXJzIGlmIHRoZSBhdmVyYWdlIENQVSB1dGlsaXphdGlvbiBmb3JcbiAgICogdGhlIFJEUyBpbnN0YW5jZSBleGNlZWRzIGEgZ2l2ZW4gdGhyZXNob2xkLlxuICAgKi9cbiAgYWRkQ3B1VXRpbGl6YXRpb25BbGFybShcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHByb3BzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogVGhlIHRocmVzaG9sZCBkZWZpbmVkIGFzIGEgcGVyY2VudGFnZSB0aGF0IGRldGVybWluZXMgaWYgQ1BVIHV0aWxpemF0aW9uIHNob3VsZCB0cmlnZ2VyIGFuIGFsYXJtIG9yIG5vdC5cbiAgICAgICAqIEBkZWZhdWx0IDgwXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA1XG4gICAgICAgKi9cbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDIgbWludXRlc1xuICAgICAgICovXG4gICAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIGFsYXJtIGRlc2NyaXB0aW9uLCBsaWtlIFJ1bmJvb2sgVVJMIG9yIHN0ZXBzIHRvIHRyaWFnZS5cbiAgICAgICAqL1xuICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgfSxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJDUFVVdGlsaXphdGlvblwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9SRFNcIixcbiAgICAgIHN0YXRpc3RpYzogXCJBdmVyYWdlXCIsXG4gICAgICBwZXJpb2Q6IHByb3BzPy5wZXJpb2QgPz8gY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCSW5zdGFuY2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNwdVV0aWxpemF0aW9uQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYFJEUyBkYXRhYmFzZSAnJHt0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyfScgaGFzIGEgaGlnaGVyIHRoYW4gZXhwZWN0ZWQgQ1BVIHV0aWxpemF0aW9uLiAke3Byb3BzPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24gPz8gXCJcIn1gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyA1LFxuICAgICAgdGhyZXNob2xkOiBwcm9wcz8udGhyZXNob2xkID8/IDgwLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuICAgIC8vIERlZmF1bHQgdG8gdGhlIHdhcm5pbmcgYWN0aW9uXG4gICAgY29uc3QgY3B1QWN0aW9uID0gcHJvcHM/LmFjdGlvbiA/PyB0aGlzLndhcm5pbmdBY3Rpb25cbiAgICBhbGFybS5hZGRBbGFybUFjdGlvbihjcHVBY3Rpb24pXG4gICAgaWYgKHByb3BzPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgIGFsYXJtLmFkZE9rQWN0aW9uKGNwdUFjdGlvbilcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -40,10 +40,16 @@ export type DatabaseAlarmsConfig = {
40
40
  storageSpaceAlarms?: {
41
41
  /**
42
42
  * Set to `false` to disable all storage space alarms (both low and critically low).
43
+ * Individual alarms can still be disabled even when this is true.
43
44
  * @default true
44
45
  */
45
46
  enabled?: boolean;
46
47
  lowStorageSpaceAlarm?: {
48
+ /**
49
+ * Set to `false` to disable the low storage space alarm.
50
+ * @default true
51
+ */
52
+ enabled?: boolean;
47
53
  action?: cloudwatch.IAlarmAction;
48
54
  /** Whether to attach OK actions for this alarm. @default true */
49
55
  enableOkAlarm?: boolean;
@@ -51,6 +57,11 @@ export type DatabaseAlarmsConfig = {
51
57
  threshold?: cdk.Size;
52
58
  };
53
59
  criticallyLowStorageSpaceAlarm?: {
60
+ /**
61
+ * Set to `false` to disable the critically low storage space alarm.
62
+ * @default true
63
+ */
64
+ enabled?: boolean;
54
65
  action?: cloudwatch.IAlarmAction;
55
66
  /** Whether to attach OK actions for this alarm. @default true */
56
67
  enableOkAlarm?: boolean;
@@ -109,25 +120,6 @@ export interface DatabaseProps extends cdk.StackProps {
109
120
  * @default false
110
121
  */
111
122
  usePublicSubnets?: boolean;
112
- /**
113
- * Whether to enable automatic minor version upgrades for the database engine.
114
- *
115
- * Note: enabling this means the actual database version may drift from
116
- * what is specified in the IaC, as AWS applies upgrades outside of deployments.
117
- *
118
- * When enabled, consider also setting `preferredMaintenanceWindow`
119
- * to control when upgrades are applied.
120
- *
121
- * @default false
122
- */
123
- autoMinorVersionUpgrade?: boolean;
124
- /**
125
- * Weekly time range during which system maintenance can occur,
126
- * in UTC (e.g. "sun:03:00-sun:04:00").
127
- *
128
- * If not specified, AWS will choose a default window.
129
- */
130
- preferredMaintenanceWindow?: string;
131
123
  overrideDbOptions?: Partial<rds.DatabaseInstanceSourceProps>;
132
124
  /**
133
125
  * Configure database alarms.
@@ -27,8 +27,6 @@ export class Database extends constructs.Construct {
27
27
  subnetType: ec2.SubnetType.PUBLIC,
28
28
  }
29
29
  : undefined,
30
- autoMinorVersionUpgrade: props.autoMinorVersionUpgrade ?? false,
31
- preferredMaintenanceWindow: props.preferredMaintenanceWindow,
32
30
  multiAz: props.isMultiAz ?? true,
33
31
  // We default to 25 GiB storage instead of 100 GiB
34
32
  // if we do not specify.
@@ -39,10 +37,6 @@ export class Database extends constructs.Construct {
39
37
  };
40
38
  this.allocatedStorage = cdk.Size.gibibytes(options.allocatedStorage);
41
39
  this.instanceType = options.instanceType;
42
- if (options.autoMinorVersionUpgrade &&
43
- !options.preferredMaintenanceWindow) {
44
- cdk.Annotations.of(this).addWarningV2("@liflig/cdk:autoMinorVersionUpgradeWithoutMaintenanceWindow", "Auto minor version upgrade is enabled but no maintenance window is specified. AWS will choose a default maintenance window which may not suit your availability requirements.");
45
- }
46
40
  const db = props.snapshotIdentifier
47
41
  ? new rds.DatabaseInstanceFromSnapshot(this, "Resource", {
48
42
  ...options,
@@ -83,10 +77,14 @@ export class Database extends constructs.Construct {
83
77
  appendToAlarmDescription: alarms.cpuCreditsAlarm?.appendToAlarmDescription,
84
78
  });
85
79
  }
86
- if (alarms.storageSpaceAlarms?.enabled !== false)
80
+ if (alarms.storageSpaceAlarms) {
87
81
  dbAlarms.addStorageSpaceAlarms({
88
- ...alarms.storageSpaceAlarms,
82
+ enabled: alarms.storageSpaceAlarms.enabled,
83
+ lowStorageSpaceAlarm: alarms.storageSpaceAlarms.lowStorageSpaceAlarm,
84
+ criticallyLowStorageSpaceAlarm: alarms.storageSpaceAlarms.criticallyLowStorageSpaceAlarm,
85
+ appendToAlarmDescription: alarms.storageSpaceAlarms.appendToAlarmDescription,
89
86
  });
87
+ }
90
88
  if (alarms.cpuUtilizationAlarm?.enabled !== false) {
91
89
  dbAlarms.addCpuUtilizationAlarm({
92
90
  action: alarms.cpuUtilizationAlarm?.action,
@@ -103,4 +101,4 @@ export class Database extends constructs.Construct {
103
101
  this.connections.allowDefaultPortFrom(source);
104
102
  }
105
103
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmRzL2RhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFBO0FBRWxDLE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUE7QUFDMUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQTtBQUUxQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBK0kxQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ2hDLE1BQU0sQ0FBWTtJQUNsQixXQUFXLENBQWlCO0lBQzVCLGdCQUFnQixDQUF1QjtJQUN2QyxZQUFZLENBQWtCO0lBQzlCLGdCQUFnQixDQUFVO0lBRTFDLFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQTtRQUN2RCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQTtRQUVoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNwRCxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDLENBQUE7UUFFRixNQUFNLE9BQU8sR0FBb0M7WUFDL0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsVUFBVSxFQUFF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bXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB0eXBlICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcbmltcG9ydCAqIGFzIHJkcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJkc1wiXG5pbXBvcnQgdHlwZSAqIGFzIHNtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBEYXRhYmFzZUFsYXJtcyB9IGZyb20gXCIuLi9hbGFybXNcIlxuXG4vKipcbiAqIENvbmZpZ3VyZSBkYXRhYmFzZSBhbGFybXMuXG4gKlxuICogQWxhcm1zIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQgKHdoZW4geW91IHN1cHBseSBhbiBgYWxhcm1BY3Rpb25gIGFuZFxuICogYHdhcm5pbmdBY3Rpb25gKS4gVG8gZXhwbGljaXRseSBkaXNhYmxlIGF1dG9tYXRpYyBhbGFybXMgdXNlXG4gKiBgeyBlbmFibGVkOiBmYWxzZSB9YC5cbiAqL1xuZXhwb3J0IHR5cGUgRGF0YWJhc2VBbGFybXNDb25maWcgPVxuICB8IHsgZW5hYmxlZDogZmFsc2UgfVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogV2hlbiBhbGFybXMgYXJlIGVuYWJsZWQsIGJvdGggYWN0aW9ucyBhcmUgcmVxdWlyZWQuXG4gICAgICAgKi9cbiAgICAgIGFsYXJtQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgd2FybmluZ0FjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cblxuICAgICAgLyoqXG4gICAgICAgKiBDUFUgY3JlZGl0cyBhbGFybSBjb25maWdcbiAgICAgICAqL1xuICAgICAgY3B1Q3JlZGl0c0FsYXJtPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZSBpZiBpbnN0YW5jZSB0eXBlIGlzIGJ1cnN0YWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgICAgLyoqIEBkZWZhdWx0IDEwJSBvZiBtYXhpbXVtIGVhcm5lZCBjcmVkaXRzIGZvciBpbnN0YW5jZSB0eXBlICovXG4gICAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBTdG9yYWdlIHNwYWNlIGFsYXJtIG92ZXJyaWRlc1xuICAgICAgICovXG4gICAgICBzdG9yYWdlU3BhY2VBbGFybXM/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIGFsbCBzdG9yYWdlIHNwYWNlIGFsYXJtcyAoYm90aCBsb3cgYW5kIGNyaXRpY2FsbHkgbG93KS5cbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAgICAgKi9cbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgICAgbG93U3RvcmFnZVNwYWNlQWxhcm0/OiB7XG4gICAgICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgICAgICAvKiogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZSAqL1xuICAgICAgICAgIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG4gICAgICAgICAgLyoqIEBkZWZhdWx0IDI1JSBvZiBhbGxvY2F0ZWQgc3RvcmFnZSAqL1xuICAgICAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgICAgIH1cbiAgICAgICAgY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtPzoge1xuICAgICAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgICAgIC8qKiBAZGVmYXVsdCA1JSBvZiBhbGxvY2F0ZWQgc3RvcmFnZSAqL1xuICAgICAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgICAgIH1cbiAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogQ1BVIHV0aWxpemF0aW9uIGFsYXJtIG92ZXJyaWRlcy5cbiAgICAgICAqL1xuICAgICAgY3B1VXRpbGl6YXRpb25BbGFybT86IHtcbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgICAgLyoqIEBkZWZhdWx0IDgwICovXG4gICAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgICAvKiogQGRlZmF1bHQgNSAqL1xuICAgICAgICBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuICAgICAgICAvKiogQGRlZmF1bHQgMiBtaW51dGVzICovXG4gICAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgICAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAgIH1cbiAgICB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgdnBjOiBlYzIuSVZwY1xuICBlbmdpbmU6IHJkcy5JSW5zdGFuY2VFbmdpbmVcbiAgLyoqXG4gICAqIEBkZWZhdWx0IG1hc3RlclxuICAgKi9cbiAgbWFzdGVyVXNlcm5hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IGFwcFxuICAgKi9cbiAgZGF0YWJhc2VOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAyNVxuICAgKi9cbiAgYWxsb2NhdGVkU3RvcmFnZUdiPzogbnVtYmVyXG4gIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZVxuICBpbnN0YW5jZUlkZW50aWZpZXI6IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaXNNdWx0aUF6PzogYm9vbGVhblxuICAvKipcbiAgICogTXVzdCBub3QgYmUgcmVtb3ZlZCBvbmNlIGl0IGhhcyBiZWVuIHNldCwgYXMgY2hhbmdpbmcgdGhpc1xuICAgKiByZXN1bHRzIGluIGEgbmV3IERCIGluc3RhbmNlIGJlaW5nIGNyZWF0ZWQuXG4gICAqXG4gICAqIEFsc28sIHJlbWVtYmVyIHRvIGdpdmUgZGF0YWJhc2UgYSBuZXcgbmFtZSB3aGVuIGNoYW5naW5nIHRoaXMgcHJvcCwgb3IgZWxzZVxuICAgKiB0aGUgbmV3IGluc3RhbmNlIG5hbWUgd2lsbCBjcmFzaCB3aXRoIHRoZSBleGlzdGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHNuYXBzaG90SWRlbnRpZmllcj86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHVzZVB1YmxpY1N1Ym5ldHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBhdXRvbWF0aWMgbWlub3IgdmVyc2lvbiB1cGdyYWRlcyBmb3IgdGhlIGRhdGFiYXNlIGVuZ2luZS5cbiAgICpcbiAgICogTm90ZTogZW5hYmxpbmcgdGhpcyBtZWFucyB0aGUgYWN0dWFsIGRhdGFiYXNlIHZlcnNpb24gbWF5IGRyaWZ0IGZyb21cbiAgICogd2hhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIElhQywgYXMgQVdTIGFwcGxpZXMgdXBncmFkZXMgb3V0c2lkZSBvZiBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogV2hlbiBlbmFibGVkLCBjb25zaWRlciBhbHNvIHNldHRpbmcgYHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93YFxuICAgKiB0byBjb250cm9sIHdoZW4gdXBncmFkZXMgYXJlIGFwcGxpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBhdXRvTWlub3JWZXJzaW9uVXBncmFkZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFdlZWtseSB0aW1lIHJhbmdlIGR1cmluZyB3aGljaCBzeXN0ZW0gbWFpbnRlbmFuY2UgY2FuIG9jY3VyLFxuICAgKiBpbiBVVEMgKGUuZy4gXCJzdW46MDM6MDAtc3VuOjA0OjAwXCIpLlxuICAgKlxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBBV1Mgd2lsbCBjaG9vc2UgYSBkZWZhdWx0IHdpbmRvdy5cbiAgICovXG4gIHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93Pzogc3RyaW5nXG4gIG92ZXJyaWRlRGJPcHRpb25zPzogUGFydGlhbDxyZHMuRGF0YWJhc2VJbnN0YW5jZVNvdXJjZVByb3BzPlxuICAvKipcbiAgICogQ29uZmlndXJlIGRhdGFiYXNlIGFsYXJtcy5cbiAgICpcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBvbmUgb2YgdHdvIHNoYXBlczpcbiAgICogIC0gYHsgZW5hYmxlZDogZmFsc2UgfWAgdG8gZXhwbGljaXRseSBkaXNhYmxlIGF1dG9tYXRpYyBhbGFybXNcbiAgICogIC0gYHsgYWxhcm1BY3Rpb24sIHdhcm5pbmdBY3Rpb24gfWAgdG8gZW5hYmxlIGFsYXJtcyBhbmQgcHJvdmlkZSBib3RoIGNoYW5uZWxzXG4gICAqXG4gICAqIERlZmF1bHQ6IGVuYWJsZWQuXG4gICAqL1xuICBhbGFybXM6IERhdGFiYXNlQWxhcm1zQ29uZmlnXG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldDogc20uSVNlY3JldFxuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9uc1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VJbnN0YW5jZTogcmRzLklEYXRhYmFzZUluc3RhbmNlXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGVcbiAgcHVibGljIHJlYWRvbmx5IGFsbG9jYXRlZFN0b3JhZ2U6IGNkay5TaXplXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IG1hc3RlclVzZXJuYW1lID0gcHJvcHMubWFzdGVyVXNlcm5hbWUgPz8gXCJtYXN0ZXJcIlxuICAgIGNvbnN0IGRhdGFiYXNlTmFtZSA9IHByb3BzLmRhdGFiYXNlTmFtZSA/PyBcImFwcFwiXG5cbiAgICBjb25zdCBzZWNyZXQgPSBuZXcgcmRzLkRhdGFiYXNlU2VjcmV0KHRoaXMsIFwiU2VjcmV0XCIsIHtcbiAgICAgIHVzZXJuYW1lOiBtYXN0ZXJVc2VybmFtZSxcbiAgICB9KVxuXG4gICAgY29uc3Qgb3B0aW9uczogcmRzLkRhdGFiYXNlSW5zdGFuY2VTb3VyY2VQcm9wcyA9IHtcbiAgICAgIGVuZ2luZTogcHJvcHMuZW5naW5lLFxuICAgICAgYWxsb3dNYWpvclZlcnNpb25VcGdyYWRlOiB0cnVlLFxuICAgICAgaW5zdGFuY2VJZGVudGlmaWVyOiBwcm9wcy5pbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICBpbnN0YW5jZVR5cGU6IHByb3BzLmluc3RhbmNlVHlwZSxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgdnBjU3VibmV0czogcHJvcHMudXNlUHVibGljU3VibmV0c1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgYXV0b01pbm9yVmVyc2lvblVwZ3JhZGU6IHByb3BzLmF1dG9NaW5vclZlcnNpb25VcGdyYWRlID8/IGZhbHNlLFxuICAgICAgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6IHByb3BzLnByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93LFxuICAgICAgbXVsdGlBejogcHJvcHMuaXNNdWx0aUF6ID8/IHRydWUsXG4gICAgICAvLyBXZSBkZWZhdWx0IHRvIDI1IEdpQiBzdG9yYWdlIGluc3RlYWQgb2YgMTAwIEdpQlxuICAgICAgLy8gaWYgd2UgZG8gbm90IHNwZWNpZnkuXG4gICAgICBhbGxvY2F0ZWRTdG9yYWdlOiBwcm9wcy5hbGxvY2F0ZWRTdG9yYWdlR2IgPz8gMjUsXG4gICAgICAvLyBXZSBzcGVjaWZ5IG1heGltdW0gYmFja3VwIHJldGVudGlvbi5cbiAgICAgIGJhY2t1cFJldGVudGlvbjogY2RrLkR1cmF0aW9uLmRheXMoMzUpLFxuICAgICAgLi4ucHJvcHMub3ZlcnJpZGVEYk9wdGlvbnMsXG4gICAgfVxuICAgIHRoaXMuYWxsb2NhdGVkU3RvcmFnZSA9IGNkay5TaXplLmdpYmlieXRlcyhvcHRpb25zLmFsbG9jYXRlZFN0b3JhZ2UhKVxuICAgIHRoaXMuaW5zdGFuY2VUeXBlID0gb3B0aW9ucy5pbnN0YW5jZVR5cGUhXG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmF1dG9NaW5vclZlcnNpb25VcGdyYWRlICYmXG4gICAgICAhb3B0aW9ucy5wcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1xuICAgICkge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmdWMihcbiAgICAgICAgXCJAbGlmbGlnL2NkazphdXRvTWlub3JWZXJzaW9uVXBncmFkZVdpdGhvdXRNYWludGVuYW5jZVdpbmRvd1wiLFxuICAgICAgICBcIkF1dG8gbWlub3IgdmVyc2lvbiB1cGdyYWRlIGlzIGVuYWJsZWQgYnV0IG5vIG1haW50ZW5hbmNlIHdpbmRvdyBpcyBzcGVjaWZpZWQuIEFXUyB3aWxsIGNob29zZSBhIGRlZmF1bHQgbWFpbnRlbmFuY2Ugd2luZG93IHdoaWNoIG1heSBub3Qgc3VpdCB5b3VyIGF2YWlsYWJpbGl0eSByZXF1aXJlbWVudHMuXCIsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgZGIgPSBwcm9wcy5zbmFwc2hvdElkZW50aWZpZXJcbiAgICAgID8gbmV3IHJkcy5EYXRhYmFzZUluc3RhbmNlRnJvbVNuYXBzaG90KHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgc25hcHNob3RJZGVudGlmaWVyOiBwcm9wcy5zbmFwc2hvdElkZW50aWZpZXIsXG4gICAgICAgICAgY3JlZGVudGlhbHM6IHJkcy5TbmFwc2hvdENyZWRlbnRpYWxzLmZyb21TZWNyZXQoc2VjcmV0KSxcbiAgICAgICAgfSlcbiAgICAgIDogbmV3IHJkcy5EYXRhYmFzZUluc3RhbmNlKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgZGF0YWJhc2VOYW1lLFxuICAgICAgICAgIGNyZWRlbnRpYWxzOiByZHMuQ3JlZGVudGlhbHMuZnJvbVNlY3JldChzZWNyZXQpLFxuICAgICAgICAgIHN0b3JhZ2VFbmNyeXB0ZWQ6IHRydWUsXG4gICAgICAgIH0pXG5cbiAgICB0aGlzLmRhdGFiYXNlSW5zdGFuY2UgPSBkYlxuXG4gICAgdGhpcy5zZWNyZXQgPSBkYi5zZWNyZXQhXG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IGRiLmNvbm5lY3Rpb25zXG5cbiAgICAvLyBPdmVycmlkZSBpbiBjYXNlIHdlIGhhdmUgcGxhY2VkIGl0IGluIGEgcHVibGljIHN1Ym5ldC5cbiAgICAvLyBJdCB3b3VsZCBkZWZhdWx0IHRvIGJlaW5nIHB1YmxpYyBhY2Nlc3NpYmxlIHdoaWNoIHdlIGRvIG5vdCB3YW50LlxuICAgIDsoZGIubm9kZS5kZWZhdWx0Q2hpbGQgYXMgcmRzLkNmbkRCSW5zdGFuY2UpLnB1YmxpY2x5QWNjZXNzaWJsZSA9IGZhbHNlXG5cbiAgICBpZiAoXCJhbGFybUFjdGlvblwiIGluIHByb3BzLmFsYXJtcykge1xuICAgICAgY29uc3QgYWxhcm1zID0gcHJvcHMuYWxhcm1zXG5cbiAgICAgIGNvbnN0IGRiQWxhcm1zID0gbmV3IERhdGFiYXNlQWxhcm1zKHRoaXMsIFwiQWxhcm1zXCIsIHtcbiAgICAgICAgaW5zdGFuY2VJZGVudGlmaWVyOiBwcm9wcy5pbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgICBhbGxvY2F0ZWRTdG9yYWdlOiBjZGsuU2l6ZS5naWJpYnl0ZXMob3B0aW9ucy5hbGxvY2F0ZWRTdG9yYWdlISksXG4gICAgICAgIGFsYXJtQWN0aW9uOiBhbGFybXMuYWxhcm1BY3Rpb24sXG4gICAgICAgIHdhcm5pbmdBY3Rpb246IGFsYXJtcy53YXJuaW5nQWN0aW9uLFxuICAgICAgfSlcblxuICAgICAgLy8gRGVmYXVsdCBtYXBwaW5nOlxuICAgICAgLy8gLSBsb3cgQ1BVIGNyZWRpdHMgLT4gYWxhcm1cbiAgICAgIC8vIC0gY3JpdGljYWxseSBsb3cgc3RvcmFnZSAtPiBhbGFybVxuICAgICAgLy8gLSBsb3cgc3RvcmFnZSAtPiB3YXJuaW5nXG4gICAgICAvLyAtIGhpZ2ggQ1BVIHV0aWxpemF0aW9uIC0+IHdhcm5pbmdcbiAgICAgIC8vIE9ubHkgY3JlYXRlIHRoZSBDUFUgY3JlZGl0cyBhbGFybSBpZiB0aGUgaW5zdGFuY2UgdHlwZSBpcyBidXJzdGFibGUuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaW5zdGFuY2VUeXBlLmlzQnVyc3RhYmxlKCkgJiZcbiAgICAgICAgYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uZW5hYmxlZCAhPT0gZmFsc2VcbiAgICAgICkge1xuICAgICAgICBkYkFsYXJtcy5hZGRDcHVDcmVkaXRzQWxhcm0oe1xuICAgICAgICAgIGFjdGlvbjogYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uYWN0aW9uLFxuICAgICAgICAgIHRocmVzaG9sZDogYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8udGhyZXNob2xkLFxuICAgICAgICAgIGVuYWJsZU9rQWxhcm06IGFsYXJtcy5jcHVDcmVkaXRzQWxhcm0/LmVuYWJsZU9rQWxhcm0sXG4gICAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoYWxhcm1zLnN0b3JhZ2VTcGFjZUFsYXJtcz8uZW5hYmxlZCAhPT0gZmFsc2UpXG4gICAgICAgIGRiQWxhcm1zLmFkZFN0b3JhZ2VTcGFjZUFsYXJtcyh7XG4gICAgICAgICAgLi4uYWxhcm1zLnN0b3JhZ2VTcGFjZUFsYXJtcyxcbiAgICAgICAgfSlcblxuICAgICAgaWYgKGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5lbmFibGVkICE9PSBmYWxzZSkge1xuICAgICAgICBkYkFsYXJtcy5hZGRDcHVVdGlsaXphdGlvbkFsYXJtKHtcbiAgICAgICAgICBhY3Rpb246IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5hY3Rpb24sXG4gICAgICAgICAgdGhyZXNob2xkOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8udGhyZXNob2xkLFxuICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgcGVyaW9kOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8ucGVyaW9kLFxuICAgICAgICAgIGVuYWJsZU9rQWxhcm06IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5lbmFibGVPa0FsYXJtLFxuICAgICAgICAgIGFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFsbG93Q29ubmVjdGlvbkZyb20oc291cmNlOiBlYzIuSVNlY3VyaXR5R3JvdXApOiB2b2lkIHtcbiAgICB0aGlzLmNvbm5lY3Rpb25zLmFsbG93RGVmYXVsdFBvcnRGcm9tKHNvdXJjZSlcbiAgfVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmRzL2RhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFBO0FBRWxDLE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUE7QUFDMUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQTtBQUUxQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBdUkxQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ2hDLE1BQU0sQ0FBWTtJQUNsQixXQUFXLENBQWlCO0lBQzVCLGdCQUFnQixDQUF1QjtJQUN2QyxZQUFZLENBQWtCO0lBQzlCLGdCQUFnQixDQUFVO0lBRTFDLFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQTtRQUN2RCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQTtRQUVoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNwRCxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDLENBQUE7UUFFRixNQUFNLE9BQU8sR0FBb0M7WUFDL0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsVUFBVSxFQUFF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O1lBQ0osQ0FBQztZQUVELElBQUksTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzlCLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPO29CQUMxQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CO29CQUNwRSw4QkFBOEIsRUFDNUIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLDhCQUE4QjtvQkFDMUQsd0JBQXdCLEVBQ3RCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0I7aUJBQ3JELENBQUMsQ0FBQTtZQUNKLENBQUM7WUFFRCxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ2xELFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDOUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxNQUFNO29CQUMxQyxTQUFTLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFNBQVM7b0JBQ2hELGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxpQkFBaUI7b0JBQ2hFLE1BQU0sRUFBRSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsTUFBTTtvQkFDMUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxhQUFhO29CQUN4RCx3QkFBd0IsRUFDdEIsTUFBTSxDQUFDLG1CQUFtQixFQUFFLHdCQUF3QjtpQkFDdkQsQ0FBQyxDQUFBO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsTUFBMEI7UUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB0eXBlICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcbmltcG9ydCAqIGFzIHJkcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJkc1wiXG5pbXBvcnQgdHlwZSAqIGFzIHNtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBEYXRhYmFzZUFsYXJtcyB9IGZyb20gXCIuLi9hbGFybXNcIlxuXG4vKipcbiAqIENvbmZpZ3VyZSBkYXRhYmFzZSBhbGFybXMuXG4gKlxuICogQWxhcm1zIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQgKHdoZW4geW91IHN1cHBseSBhbiBgYWxhcm1BY3Rpb25gIGFuZFxuICogYHdhcm5pbmdBY3Rpb25gKS4gVG8gZXhwbGljaXRseSBkaXNhYmxlIGF1dG9tYXRpYyBhbGFybXMgdXNlXG4gKiBgeyBlbmFibGVkOiBmYWxzZSB9YC5cbiAqL1xuZXhwb3J0IHR5cGUgRGF0YWJhc2VBbGFybXNDb25maWcgPVxuICB8IHsgZW5hYmxlZDogZmFsc2UgfVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogV2hlbiBhbGFybXMgYXJlIGVuYWJsZWQsIGJvdGggYWN0aW9ucyBhcmUgcmVxdWlyZWQuXG4gICAgICAgKi9cbiAgICAgIGFsYXJtQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgd2FybmluZ0FjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cblxuICAgICAgLyoqXG4gICAgICAgKiBDUFUgY3JlZGl0cyBhbGFybSBjb25maWdcbiAgICAgICAqL1xuICAgICAgY3B1Q3JlZGl0c0FsYXJtPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZSBpZiBpbnN0YW5jZSB0eXBlIGlzIGJ1cnN0YWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgICAgLyoqIEBkZWZhdWx0IDEwJSBvZiBtYXhpbXVtIGVhcm5lZCBjcmVkaXRzIGZvciBpbnN0YW5jZSB0eXBlICovXG4gICAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBTdG9yYWdlIHNwYWNlIGFsYXJtIG92ZXJyaWRlc1xuICAgICAgICovXG4gICAgICBzdG9yYWdlU3BhY2VBbGFybXM/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIGFsbCBzdG9yYWdlIHNwYWNlIGFsYXJtcyAoYm90aCBsb3cgYW5kIGNyaXRpY2FsbHkgbG93KS5cbiAgICAgICAgICogSW5kaXZpZHVhbCBhbGFybXMgY2FuIHN0aWxsIGJlIGRpc2FibGVkIGV2ZW4gd2hlbiB0aGlzIGlzIHRydWUuXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAgICovXG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAgIGxvd1N0b3JhZ2VTcGFjZUFsYXJtPzoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhlIGxvdyBzdG9yYWdlIHNwYWNlIGFsYXJtLlxuICAgICAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmFibGVkPzogYm9vbGVhblxuICAgICAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgICAgIC8qKiBAZGVmYXVsdCAyNSUgb2YgYWxsb2NhdGVkIHN0b3JhZ2UgKi9cbiAgICAgICAgICB0aHJlc2hvbGQ/OiBjZGsuU2l6ZVxuICAgICAgICB9XG4gICAgICAgIGNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybT86IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoZSBjcml0aWNhbGx5IGxvdyBzdG9yYWdlIHNwYWNlIGFsYXJtLlxuICAgICAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbmFibGVkPzogYm9vbGVhblxuICAgICAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgICAgIC8qKiBAZGVmYXVsdCA1JSBvZiBhbGxvY2F0ZWQgc3RvcmFnZSAqL1xuICAgICAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgICAgIH1cbiAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogQ1BVIHV0aWxpemF0aW9uIGFsYXJtIG92ZXJyaWRlcy5cbiAgICAgICAqL1xuICAgICAgY3B1VXRpbGl6YXRpb25BbGFybT86IHtcbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgICAgLyoqIEBkZWZhdWx0IDgwICovXG4gICAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgICAvKiogQGRlZmF1bHQgNSAqL1xuICAgICAgICBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuICAgICAgICAvKiogQGRlZmF1bHQgMiBtaW51dGVzICovXG4gICAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgICAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAgIH1cbiAgICB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgdnBjOiBlYzIuSVZwY1xuICBlbmdpbmU6IHJkcy5JSW5zdGFuY2VFbmdpbmVcbiAgLyoqXG4gICAqIEBkZWZhdWx0IG1hc3RlclxuICAgKi9cbiAgbWFzdGVyVXNlcm5hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IGFwcFxuICAgKi9cbiAgZGF0YWJhc2VOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAyNVxuICAgKi9cbiAgYWxsb2NhdGVkU3RvcmFnZUdiPzogbnVtYmVyXG4gIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZVxuICBpbnN0YW5jZUlkZW50aWZpZXI6IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaXNNdWx0aUF6PzogYm9vbGVhblxuICAvKipcbiAgICogTXVzdCBub3QgYmUgcmVtb3ZlZCBvbmNlIGl0IGhhcyBiZWVuIHNldCwgYXMgY2hhbmdpbmcgdGhpc1xuICAgKiByZXN1bHRzIGluIGEgbmV3IERCIGluc3RhbmNlIGJlaW5nIGNyZWF0ZWQuXG4gICAqXG4gICAqIEFsc28sIHJlbWVtYmVyIHRvIGdpdmUgZGF0YWJhc2UgYSBuZXcgbmFtZSB3aGVuIGNoYW5naW5nIHRoaXMgcHJvcCwgb3IgZWxzZVxuICAgKiB0aGUgbmV3IGluc3RhbmNlIG5hbWUgd2lsbCBjcmFzaCB3aXRoIHRoZSBleGlzdGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHNuYXBzaG90SWRlbnRpZmllcj86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHVzZVB1YmxpY1N1Ym5ldHM/OiBib29sZWFuXG4gIG92ZXJyaWRlRGJPcHRpb25zPzogUGFydGlhbDxyZHMuRGF0YWJhc2VJbnN0YW5jZVNvdXJjZVByb3BzPlxuICAvKipcbiAgICogQ29uZmlndXJlIGRhdGFiYXNlIGFsYXJtcy5cbiAgICpcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBvbmUgb2YgdHdvIHNoYXBlczpcbiAgICogIC0gYHsgZW5hYmxlZDogZmFsc2UgfWAgdG8gZXhwbGljaXRseSBkaXNhYmxlIGF1dG9tYXRpYyBhbGFybXNcbiAgICogIC0gYHsgYWxhcm1BY3Rpb24sIHdhcm5pbmdBY3Rpb24gfWAgdG8gZW5hYmxlIGFsYXJtcyBhbmQgcHJvdmlkZSBib3RoIGNoYW5uZWxzXG4gICAqXG4gICAqIERlZmF1bHQ6IGVuYWJsZWQuXG4gICAqL1xuICBhbGFybXM6IERhdGFiYXNlQWxhcm1zQ29uZmlnXG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldDogc20uSVNlY3JldFxuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9uc1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VJbnN0YW5jZTogcmRzLklEYXRhYmFzZUluc3RhbmNlXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGVcbiAgcHVibGljIHJlYWRvbmx5IGFsbG9jYXRlZFN0b3JhZ2U6IGNkay5TaXplXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IG1hc3RlclVzZXJuYW1lID0gcHJvcHMubWFzdGVyVXNlcm5hbWUgPz8gXCJtYXN0ZXJcIlxuICAgIGNvbnN0IGRhdGFiYXNlTmFtZSA9IHByb3BzLmRhdGFiYXNlTmFtZSA/PyBcImFwcFwiXG5cbiAgICBjb25zdCBzZWNyZXQgPSBuZXcgcmRzLkRhdGFiYXNlU2VjcmV0KHRoaXMsIFwiU2VjcmV0XCIsIHtcbiAgICAgIHVzZXJuYW1lOiBtYXN0ZXJVc2VybmFtZSxcbiAgICB9KVxuXG4gICAgY29uc3Qgb3B0aW9uczogcmRzLkRhdGFiYXNlSW5zdGFuY2VTb3VyY2VQcm9wcyA9IHtcbiAgICAgIGVuZ2luZTogcHJvcHMuZW5naW5lLFxuICAgICAgYWxsb3dNYWpvclZlcnNpb25VcGdyYWRlOiB0cnVlLFxuICAgICAgaW5zdGFuY2VJZGVudGlmaWVyOiBwcm9wcy5pbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICBpbnN0YW5jZVR5cGU6IHByb3BzLmluc3RhbmNlVHlwZSxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgdnBjU3VibmV0czogcHJvcHMudXNlUHVibGljU3VibmV0c1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgbXVsdGlBejogcHJvcHMuaXNNdWx0aUF6ID8/IHRydWUsXG4gICAgICAvLyBXZSBkZWZhdWx0IHRvIDI1IEdpQiBzdG9yYWdlIGluc3RlYWQgb2YgMTAwIEdpQlxuICAgICAgLy8gaWYgd2UgZG8gbm90IHNwZWNpZnkuXG4gICAgICBhbGxvY2F0ZWRTdG9yYWdlOiBwcm9wcy5hbGxvY2F0ZWRTdG9yYWdlR2IgPz8gMjUsXG4gICAgICAvLyBXZSBzcGVjaWZ5IG1heGltdW0gYmFja3VwIHJldGVudGlvbi5cbiAgICAgIGJhY2t1cFJldGVudGlvbjogY2RrLkR1cmF0aW9uLmRheXMoMzUpLFxuICAgICAgLi4ucHJvcHMub3ZlcnJpZGVEYk9wdGlvbnMsXG4gICAgfVxuICAgIHRoaXMuYWxsb2NhdGVkU3RvcmFnZSA9IGNkay5TaXplLmdpYmlieXRlcyhvcHRpb25zLmFsbG9jYXRlZFN0b3JhZ2UhKVxuICAgIHRoaXMuaW5zdGFuY2VUeXBlID0gb3B0aW9ucy5pbnN0YW5jZVR5cGUhXG5cbiAgICBjb25zdCBkYiA9IHByb3BzLnNuYXBzaG90SWRlbnRpZmllclxuICAgICAgPyBuZXcgcmRzLkRhdGFiYXNlSW5zdGFuY2VGcm9tU25hcHNob3QodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBzbmFwc2hvdElkZW50aWZpZXI6IHByb3BzLnNuYXBzaG90SWRlbnRpZmllcixcbiAgICAgICAgICBjcmVkZW50aWFsczogcmRzLlNuYXBzaG90Q3JlZGVudGlhbHMuZnJvbVNlY3JldChzZWNyZXQpLFxuICAgICAgICB9KVxuICAgICAgOiBuZXcgcmRzLkRhdGFiYXNlSW5zdGFuY2UodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBkYXRhYmFzZU5hbWUsXG4gICAgICAgICAgY3JlZGVudGlhbHM6IHJkcy5DcmVkZW50aWFscy5mcm9tU2VjcmV0KHNlY3JldCksXG4gICAgICAgICAgc3RvcmFnZUVuY3J5cHRlZDogdHJ1ZSxcbiAgICAgICAgfSlcblxuICAgIHRoaXMuZGF0YWJhc2VJbnN0YW5jZSA9IGRiXG5cbiAgICB0aGlzLnNlY3JldCA9IGRiLnNlY3JldCFcbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gZGIuY29ubmVjdGlvbnNcblxuICAgIC8vIE92ZXJyaWRlIGluIGNhc2Ugd2UgaGF2ZSBwbGFjZWQgaXQgaW4gYSBwdWJsaWMgc3VibmV0LlxuICAgIC8vIEl0IHdvdWxkIGRlZmF1bHQgdG8gYmVpbmcgcHVibGljIGFjY2Vzc2libGUgd2hpY2ggd2UgZG8gbm90IHdhbnQuXG4gICAgOyhkYi5ub2RlLmRlZmF1bHRDaGlsZCBhcyByZHMuQ2ZuREJJbnN0YW5jZSkucHVibGljbHlBY2Nlc3NpYmxlID0gZmFsc2VcblxuICAgIGlmIChcImFsYXJtQWN0aW9uXCIgaW4gcHJvcHMuYWxhcm1zKSB7XG4gICAgICBjb25zdCBhbGFybXMgPSBwcm9wcy5hbGFybXNcblxuICAgICAgY29uc3QgZGJBbGFybXMgPSBuZXcgRGF0YWJhc2VBbGFybXModGhpcywgXCJBbGFybXNcIiwge1xuICAgICAgICBpbnN0YW5jZUlkZW50aWZpZXI6IHByb3BzLmluc3RhbmNlSWRlbnRpZmllcixcbiAgICAgICAgaW5zdGFuY2VUeXBlOiBwcm9wcy5pbnN0YW5jZVR5cGUsXG4gICAgICAgIGFsbG9jYXRlZFN0b3JhZ2U6IGNkay5TaXplLmdpYmlieXRlcyhvcHRpb25zLmFsbG9jYXRlZFN0b3JhZ2UhKSxcbiAgICAgICAgYWxhcm1BY3Rpb246IGFsYXJtcy5hbGFybUFjdGlvbixcbiAgICAgICAgd2FybmluZ0FjdGlvbjogYWxhcm1zLndhcm5pbmdBY3Rpb24sXG4gICAgICB9KVxuXG4gICAgICAvLyBEZWZhdWx0IG1hcHBpbmc6XG4gICAgICAvLyAtIGxvdyBDUFUgY3JlZGl0cyAtPiBhbGFybVxuICAgICAgLy8gLSBjcml0aWNhbGx5IGxvdyBzdG9yYWdlIC0+IGFsYXJtXG4gICAgICAvLyAtIGxvdyBzdG9yYWdlIC0+IHdhcm5pbmdcbiAgICAgIC8vIC0gaGlnaCBDUFUgdXRpbGl6YXRpb24gLT4gd2FybmluZ1xuICAgICAgLy8gT25seSBjcmVhdGUgdGhlIENQVSBjcmVkaXRzIGFsYXJtIGlmIHRoZSBpbnN0YW5jZSB0eXBlIGlzIGJ1cnN0YWJsZS5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pbnN0YW5jZVR5cGUuaXNCdXJzdGFibGUoKSAmJlxuICAgICAgICBhbGFybXMuY3B1Q3JlZGl0c0FsYXJtPy5lbmFibGVkICE9PSBmYWxzZVxuICAgICAgKSB7XG4gICAgICAgIGRiQWxhcm1zLmFkZENwdUNyZWRpdHNBbGFybSh7XG4gICAgICAgICAgYWN0aW9uOiBhbGFybXMuY3B1Q3JlZGl0c0FsYXJtPy5hY3Rpb24sXG4gICAgICAgICAgdGhyZXNob2xkOiBhbGFybXMuY3B1Q3JlZGl0c0FsYXJtPy50aHJlc2hvbGQsXG4gICAgICAgICAgZW5hYmxlT2tBbGFybTogYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uZW5hYmxlT2tBbGFybSxcbiAgICAgICAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgICBhbGFybXMuY3B1Q3JlZGl0c0FsYXJtPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24sXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGlmIChhbGFybXMuc3RvcmFnZVNwYWNlQWxhcm1zKSB7XG4gICAgICAgIGRiQWxhcm1zLmFkZFN0b3JhZ2VTcGFjZUFsYXJtcyh7XG4gICAgICAgICAgZW5hYmxlZDogYWxhcm1zLnN0b3JhZ2VTcGFjZUFsYXJtcy5lbmFibGVkLFxuICAgICAgICAgIGxvd1N0b3JhZ2VTcGFjZUFsYXJtOiBhbGFybXMuc3RvcmFnZVNwYWNlQWxhcm1zLmxvd1N0b3JhZ2VTcGFjZUFsYXJtLFxuICAgICAgICAgIGNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybTpcbiAgICAgICAgICAgIGFsYXJtcy5zdG9yYWdlU3BhY2VBbGFybXMuY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtLFxuICAgICAgICAgIGFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIGFsYXJtcy5zdG9yYWdlU3BhY2VBbGFybXMuYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoYWxhcm1zLmNwdVV0aWxpemF0aW9uQWxhcm0/LmVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICAgIGRiQWxhcm1zLmFkZENwdVV0aWxpemF0aW9uQWxhcm0oe1xuICAgICAgICAgIGFjdGlvbjogYWxhcm1zLmNwdVV0aWxpemF0aW9uQWxhcm0/LmFjdGlvbixcbiAgICAgICAgICB0aHJlc2hvbGQ6IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy50aHJlc2hvbGQsXG4gICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICBwZXJpb2Q6IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5wZXJpb2QsXG4gICAgICAgICAgZW5hYmxlT2tBbGFybTogYWxhcm1zLmNwdVV0aWxpemF0aW9uQWxhcm0/LmVuYWJsZU9rQWxhcm0sXG4gICAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgYWxhcm1zLmNwdVV0aWxpemF0aW9uQWxhcm0/LmFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbixcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWxsb3dDb25uZWN0aW9uRnJvbShzb3VyY2U6IGVjMi5JU2VjdXJpdHlHcm91cCk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdGlvbnMuYWxsb3dEZWZhdWx0UG9ydEZyb20oc291cmNlKVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liflig/cdk",
3
- "version": "3.24.1",
3
+ "version": "3.24.3",
4
4
  "description": "CDK library for Liflig",
5
5
  "type": "module",
6
6
  "repository": {
@@ -68,7 +68,7 @@
68
68
  "semantic-release": "25.0.3",
69
69
  "ts-jest": "29.4.9",
70
70
  "tsx": "4.21.0",
71
- "typedoc": "0.28.18",
71
+ "typedoc": "0.28.19",
72
72
  "typescript": "5.9.3"
73
73
  },
74
74
  "dependencies": {