cdk8s-plus-33 2.3.13 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +360 -224
- package/docs/java.md +216 -0
- package/docs/plus/volume.md +46 -0
- package/docs/python.md +310 -2
- package/docs/typescript.md +192 -0
- package/lib/api-resource.js +2 -2
- package/lib/base.js +2 -2
- package/lib/config-map.js +1 -1
- package/lib/container.js +6 -6
- package/lib/cron-job.js +1 -1
- package/lib/daemon-set.js +1 -1
- package/lib/deployment.js +3 -3
- package/lib/handler.js +1 -1
- package/lib/horizontal-pod-autoscaler.js +4 -4
- package/lib/imports/k8s.js +173 -173
- package/lib/ingress.js +2 -2
- package/lib/job.js +1 -1
- package/lib/namespace.js +2 -2
- package/lib/network-policy.js +3 -3
- package/lib/pod.d.ts +4 -4
- package/lib/pod.js +22 -18
- package/lib/probe.js +1 -1
- package/lib/pv.js +4 -4
- package/lib/pvc.js +1 -1
- package/lib/role-binding.js +4 -4
- package/lib/role.js +2 -2
- package/lib/secret.js +6 -6
- package/lib/service-account.js +1 -1
- package/lib/service.js +1 -1
- package/lib/stateful-set.d.ts +53 -16
- package/lib/stateful-set.js +78 -8
- package/lib/volume.d.ts +6 -2
- package/lib/volume.js +9 -3
- package/lib/workload.js +2 -2
- package/package.json +4 -4
package/lib/stateful-set.js
CHANGED
|
@@ -6,6 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
const cdk8s_1 = require("cdk8s");
|
|
7
7
|
const container = require("./container");
|
|
8
8
|
const k8s = require("./imports/k8s");
|
|
9
|
+
const k8s_1 = require("./imports/k8s");
|
|
9
10
|
const service = require("./service");
|
|
10
11
|
const workload = require("./workload");
|
|
11
12
|
/**
|
|
@@ -62,18 +63,32 @@ class StatefulSet extends workload.Workload {
|
|
|
62
63
|
this.service = props.service ?? this._createHeadlessService();
|
|
63
64
|
this.apiObject.addDependency(this.service);
|
|
64
65
|
this.replicas = props.replicas;
|
|
65
|
-
this.strategy = props.strategy ?? StatefulSetUpdateStrategy.rollingUpdate()
|
|
66
|
-
|
|
66
|
+
this.strategy = props.strategy ?? StatefulSetUpdateStrategy.rollingUpdate();
|
|
67
|
+
this.podManagementPolicy = props.podManagementPolicy ?? PodManagementPolicy.ORDERED_READY;
|
|
67
68
|
this.minReady = props.minReady ?? cdk8s_1.Duration.seconds(0);
|
|
69
|
+
props?.volumeClaimTemplates?.forEach(template => this.addVolumeClaimTemplate(template));
|
|
68
70
|
this.service.select(this);
|
|
69
71
|
if (this.isolate) {
|
|
70
72
|
this.connections.isolate();
|
|
71
73
|
}
|
|
72
74
|
}
|
|
75
|
+
addVolumeClaimTemplate(template) {
|
|
76
|
+
if (this.volumeClaimTemplates?.some(t => t.name === template.name)) {
|
|
77
|
+
throw new Error(`A volume claim template with name "${template.name}" already exists`);
|
|
78
|
+
}
|
|
79
|
+
this.volumeClaimTemplates = this.volumeClaimTemplates
|
|
80
|
+
? [...this.volumeClaimTemplates, template]
|
|
81
|
+
: [template];
|
|
82
|
+
}
|
|
73
83
|
_createHeadlessService() {
|
|
74
84
|
const myPorts = container.extractContainerPorts(this);
|
|
75
85
|
const myPortNumbers = myPorts.map(p => p.number);
|
|
76
|
-
const ports = myPorts.map(p => ({
|
|
86
|
+
const ports = myPorts.map(p => ({
|
|
87
|
+
port: p.number,
|
|
88
|
+
targetPort: p.number,
|
|
89
|
+
protocol: p.protocol,
|
|
90
|
+
name: p.name,
|
|
91
|
+
}));
|
|
77
92
|
if (ports.length === 0) {
|
|
78
93
|
throw new Error(`Unable to create a service for the stateful set ${this.name}: StatefulSet ports cannot be determined.`);
|
|
79
94
|
}
|
|
@@ -94,8 +109,8 @@ class StatefulSet extends workload.Workload {
|
|
|
94
109
|
});
|
|
95
110
|
}
|
|
96
111
|
/**
|
|
97
|
-
|
|
98
|
-
|
|
112
|
+
* @internal
|
|
113
|
+
*/
|
|
99
114
|
_toKube() {
|
|
100
115
|
return {
|
|
101
116
|
replicas: this.hasAutoscaler ? undefined : (this.replicas ?? 1),
|
|
@@ -107,9 +122,38 @@ class StatefulSet extends workload.Workload {
|
|
|
107
122
|
},
|
|
108
123
|
selector: this._toLabelSelector(),
|
|
109
124
|
podManagementPolicy: this.podManagementPolicy,
|
|
125
|
+
volumeClaimTemplates: this._toPersistentVolumeClaims(),
|
|
110
126
|
updateStrategy: this.strategy._toKube(),
|
|
111
127
|
};
|
|
112
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* @internal
|
|
131
|
+
*/
|
|
132
|
+
_toPodSpec() {
|
|
133
|
+
const podSpec = super._toPodSpec();
|
|
134
|
+
return {
|
|
135
|
+
...podSpec,
|
|
136
|
+
volumes: this._filterPodSpecVolumes(podSpec),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
142
|
+
_filterPodSpecVolumes(podSpec) {
|
|
143
|
+
// When using volumeClaimTemplates, the volumes with matching names should not be included in the pod spec
|
|
144
|
+
if (this.volumeClaimTemplates && podSpec.volumes) {
|
|
145
|
+
const volumeClaimNames = this.volumeClaimTemplates.map(vct => vct.name);
|
|
146
|
+
const volumesWithNoTemplates = podSpec.volumes.filter(vol => !volumeClaimNames.includes(vol.name));
|
|
147
|
+
// If there are no volumes after filtering, don't include volumes property
|
|
148
|
+
if (volumesWithNoTemplates.length === 0) {
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
return volumesWithNoTemplates;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
113
157
|
/**
|
|
114
158
|
* @see IScalable.markHasAutoscaler()
|
|
115
159
|
*/
|
|
@@ -128,10 +172,36 @@ class StatefulSet extends workload.Workload {
|
|
|
128
172
|
replicas: this.replicas,
|
|
129
173
|
};
|
|
130
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
178
|
+
_toPersistentVolumeClaims() {
|
|
179
|
+
const volumeNames = this.containers.flatMap(it => it.mounts).map(mount => mount.volume.name);
|
|
180
|
+
this.volumeClaimTemplates?.forEach(t => {
|
|
181
|
+
if (!volumeNames.includes(t.name)) {
|
|
182
|
+
throw new Error(`Volume claim template with name "${t.name}" is not used by any container mount`);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
return this.volumeClaimTemplates?.map(template => {
|
|
186
|
+
const resources = template.storage
|
|
187
|
+
? { requests: { storage: k8s_1.Quantity.fromString(template.storage.asString()) } }
|
|
188
|
+
: {};
|
|
189
|
+
return {
|
|
190
|
+
metadata: {
|
|
191
|
+
name: template.name,
|
|
192
|
+
},
|
|
193
|
+
spec: {
|
|
194
|
+
accessModes: template.accessModes,
|
|
195
|
+
storageClassName: template.storageClassName,
|
|
196
|
+
resources,
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
});
|
|
200
|
+
}
|
|
131
201
|
}
|
|
132
202
|
exports.StatefulSet = StatefulSet;
|
|
133
203
|
_a = JSII_RTTI_SYMBOL_1;
|
|
134
|
-
StatefulSet[_a] = { fqn: "cdk8s-plus-33.StatefulSet", version: "2.
|
|
204
|
+
StatefulSet[_a] = { fqn: "cdk8s-plus-33.StatefulSet", version: "2.4.0" };
|
|
135
205
|
/**
|
|
136
206
|
* StatefulSet update strategies.
|
|
137
207
|
*/
|
|
@@ -170,5 +240,5 @@ class StatefulSetUpdateStrategy {
|
|
|
170
240
|
}
|
|
171
241
|
exports.StatefulSetUpdateStrategy = StatefulSetUpdateStrategy;
|
|
172
242
|
_b = JSII_RTTI_SYMBOL_1;
|
|
173
|
-
StatefulSetUpdateStrategy[_b] = { fqn: "cdk8s-plus-33.StatefulSetUpdateStrategy", version: "2.
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVmdWwtc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YXRlZnVsLXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFrRDtBQUVsRCx5Q0FBeUM7QUFFekMscUNBQXFDO0FBQ3JDLHFDQUFxQztBQUNyQyx1Q0FBdUM7QUFFdkM7Ozs7Ozs7Ozs7R0FVRztBQUNILElBQVksbUJBR1g7QUFIRCxXQUFZLG1CQUFtQjtJQUM3QixxREFBOEIsQ0FBQTtJQUM5Qiw0Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFHOUI7QUErQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxNQUFhLFdBQVksU0FBUSxRQUFRLENBQUMsUUFBUTtJQWlDaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQVBWLGlCQUFZLEdBQUcsY0FBYyxDQUFDO1FBRXZDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBTzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDekQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLElBQUksRUFBRSxZQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1NBQ2xELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5RCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLFFBQVEsR0FB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QyxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7U0FDeEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJO1lBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVU7WUFDckMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO0lBQ0osQ0FBQzs7QUF6SEgsa0NBMEhDOzs7QUF3QkQ7O0dBRUc7QUFDSCxNQUFhLHlCQUF5QjtJQUVwQzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxJQUFJLHlCQUF5QixDQUFDO1lBQ25DLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBeUQsRUFBRTtRQUVyRixPQUFPLElBQUkseUJBQXlCLENBQUM7WUFDbkMsSUFBSSxFQUFFLGVBQWU7WUFDckIsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxRQUF1QztRQUF2QyxhQUFRLEdBQVIsUUFBUSxDQUErQjtJQUFHLENBQUM7SUFFaEY7O09BRUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O0FBbENILDhEQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaU9iamVjdCwgTGF6eSwgRHVyYXRpb24gfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNvbnRhaW5lciBmcm9tICcuL2NvbnRhaW5lcic7XG5pbXBvcnQgeyBJU2NhbGFibGUsIFNjYWxpbmdUYXJnZXQgfSBmcm9tICcuL2hvcml6b250YWwtcG9kLWF1dG9zY2FsZXInO1xuaW1wb3J0ICogYXMgazhzIGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuaW1wb3J0ICogYXMgc2VydmljZSBmcm9tICcuL3NlcnZpY2UnO1xuaW1wb3J0ICogYXMgd29ya2xvYWQgZnJvbSAnLi93b3JrbG9hZCc7XG5cbi8qKlxuICogQ29udHJvbHMgaG93IHBvZHMgYXJlIGNyZWF0ZWQgZHVyaW5nIGluaXRpYWwgc2NhbGUgdXAsIHdoZW4gcmVwbGFjaW5nIHBvZHMgb24gbm9kZXMsXG4gKiBvciB3aGVuIHNjYWxpbmcgZG93bi5cbiAqXG4gKiBUaGUgZGVmYXVsdCBwb2xpY3kgaXMgYE9yZGVyZWRSZWFkeWAsIHdoZXJlIHBvZHMgYXJlIGNyZWF0ZWQgaW4gaW5jcmVhc2luZyBvcmRlclxuICogKHBvZC0wLCB0aGVuIHBvZC0xLCBldGMpIGFuZCB0aGUgY29udHJvbGxlciB3aWxsIHdhaXQgdW50aWwgZWFjaCBwb2QgaXMgcmVhZHkgYmVmb3JlXG4gKiBjb250aW51aW5nLiBXaGVuIHNjYWxpbmcgZG93biwgdGhlIHBvZHMgYXJlIHJlbW92ZWQgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICpcbiAqIFRoZSBhbHRlcm5hdGl2ZSBwb2xpY3kgaXMgYFBhcmFsbGVsYCB3aGljaCB3aWxsIGNyZWF0ZSBwb2RzIGluIHBhcmFsbGVsIHRvIG1hdGNoIHRoZVxuICogZGVzaXJlZCBzY2FsZSB3aXRob3V0IHdhaXRpbmcsIGFuZCBvbiBzY2FsZSBkb3duIHdpbGwgZGVsZXRlIGFsbCBwb2RzIGF0IG9uY2UuXG4gKi9cbmV4cG9ydCBlbnVtIFBvZE1hbmFnZW1lbnRQb2xpY3kge1xuICBPUkRFUkVEX1JFQURZID0gJ09yZGVyZWRSZWFkeScsXG4gIFBBUkFMTEVMID0gJ1BhcmFsbGVsJyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBpbml0aWFsaXphdGlvbiBvZiBgU3RhdGVmdWxTZXRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlZnVsU2V0UHJvcHMgZXh0ZW5kcyB3b3JrbG9hZC5Xb3JrbG9hZFByb3BzIHtcbiAgLyoqXG4gICAqIFNlcnZpY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHN0YXRlZnVsc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgbmV3IGhlYWRsZXNzIHNlcnZpY2Ugd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZT86IHNlcnZpY2UuU2VydmljZTtcblxuICAvKipcbiAgICAqIE51bWJlciBvZiBkZXNpcmVkIHBvZHMuXG4gICAgKlxuICAgICogQGRlZmF1bHQgMVxuICAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICogUG9kIG1hbmFnZW1lbnQgcG9saWN5IHRvIHVzZSBmb3IgdGhpcyBzdGF0ZWZ1bHNldC5cbiAgICAqXG4gICAgKiBAZGVmYXVsdCBQb2RNYW5hZ2VtZW50UG9saWN5Lk9SREVSRURfUkVBRFlcbiAgICAqL1xuICByZWFkb25seSBwb2RNYW5hZ2VtZW50UG9saWN5PzogUG9kTWFuYWdlbWVudFBvbGljeTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBTdGF0ZWZ1bFNldFVwZGF0ZVN0cmF0ZWd5IHRoYXQgd2lsbCBiZSBlbXBsb3llZCB0byB1cGRhdGUgUG9kcyBpbiB0aGUgU3RhdGVmdWxTZXQgd2hlbiBhIHJldmlzaW9uIGlzIG1hZGUgdG8gVGVtcGxhdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUm9sbGluZ1VwZGF0ZSB3aXRoIHBhcnRpdGlvbiBzZXQgdG8gMFxuICAgKi9cbiAgcmVhZG9ubHkgc3RyYXRlZ3k/OiBTdGF0ZWZ1bFNldFVwZGF0ZVN0cmF0ZWd5O1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIGR1cmF0aW9uIGZvciB3aGljaCBhIG5ld2x5IGNyZWF0ZWQgcG9kIHNob3VsZCBiZSByZWFkeSB3aXRob3V0IGFueSBvZiBpdHMgY29udGFpbmVyIGNyYXNoaW5nLFxuICAgKiBmb3IgaXQgdG8gYmUgY29uc2lkZXJlZCBhdmFpbGFibGUuIFplcm8gbWVhbnMgdGhlIHBvZCB3aWxsIGJlIGNvbnNpZGVyZWQgYXZhaWxhYmxlIGFzIHNvb24gYXMgaXQgaXMgcmVhZHkuXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFN0YXRlZnVsU2V0TWluUmVhZHlTZWNvbmRzIGZlYXR1cmUgZ2F0ZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvY29udHJvbGxlcnMvZGVwbG95bWVudC8jbWluLXJlYWR5LXNlY29uZHNcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygwKVxuICAgKi9cbiAgcmVhZG9ubHkgbWluUmVhZHk/OiBEdXJhdGlvbjtcblxufVxuXG4vKipcbiAqIFN0YXRlZnVsU2V0IGlzIHRoZSB3b3JrbG9hZCBBUEkgb2JqZWN0IHVzZWQgdG8gbWFuYWdlIHN0YXRlZnVsIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBNYW5hZ2VzIHRoZSBkZXBsb3ltZW50IGFuZCBzY2FsaW5nIG9mIGEgc2V0IG9mIFBvZHMsIGFuZCBwcm92aWRlcyBndWFyYW50ZWVzXG4gKiBhYm91dCB0aGUgb3JkZXJpbmcgYW5kIHVuaXF1ZW5lc3Mgb2YgdGhlc2UgUG9kcy5cbiAqXG4gKiBMaWtlIGEgRGVwbG95bWVudCwgYSBTdGF0ZWZ1bFNldCBtYW5hZ2VzIFBvZHMgdGhhdCBhcmUgYmFzZWQgb24gYW4gaWRlbnRpY2FsXG4gKiBjb250YWluZXIgc3BlYy4gVW5saWtlIGEgRGVwbG95bWVudCwgYSBTdGF0ZWZ1bFNldCBtYWludGFpbnMgYSBzdGlja3kgaWRlbnRpdHlcbiAqIGZvciBlYWNoIG9mIHRoZWlyIFBvZHMuIFRoZXNlIHBvZHMgYXJlIGNyZWF0ZWQgZnJvbSB0aGUgc2FtZSBzcGVjLCBidXQgYXJlIG5vdFxuICogaW50ZXJjaGFuZ2VhYmxlOiBlYWNoIGhhcyBhIHBlcnNpc3RlbnQgaWRlbnRpZmllciB0aGF0IGl0IG1haW50YWlucyBhY3Jvc3MgYW55XG4gKiByZXNjaGVkdWxpbmcuXG4gKlxuICogSWYgeW91IHdhbnQgdG8gdXNlIHN0b3JhZ2Ugdm9sdW1lcyB0byBwcm92aWRlIHBlcnNpc3RlbmNlIGZvciB5b3VyIHdvcmtsb2FkLCB5b3VcbiAqIGNhbiB1c2UgYSBTdGF0ZWZ1bFNldCBhcyBwYXJ0IG9mIHRoZSBzb2x1dGlvbi4gQWx0aG91Z2ggaW5kaXZpZHVhbCBQb2RzIGluIGEgU3RhdGVmdWxTZXRcbiAqIGFyZSBzdXNjZXB0aWJsZSB0byBmYWlsdXJlLCB0aGUgcGVyc2lzdGVudCBQb2QgaWRlbnRpZmllcnMgbWFrZSBpdCBlYXNpZXIgdG8gbWF0Y2ggZXhpc3RpbmdcbiAqIHZvbHVtZXMgdG8gdGhlIG5ldyBQb2RzIHRoYXQgcmVwbGFjZSBhbnkgdGhhdCBoYXZlIGZhaWxlZC5cbiAqXG4gKiBVc2luZyBTdGF0ZWZ1bFNldHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLVxuICogU3RhdGVmdWxTZXRzIGFyZSB2YWx1YWJsZSBmb3IgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nLlxuICpcbiAqIC0gU3RhYmxlLCB1bmlxdWUgbmV0d29yayBpZGVudGlmaWVycy5cbiAqIC0gU3RhYmxlLCBwZXJzaXN0ZW50IHN0b3JhZ2UuXG4gKiAtIE9yZGVyZWQsIGdyYWNlZnVsIGRlcGxveW1lbnQgYW5kIHNjYWxpbmcuXG4gKiAtIE9yZGVyZWQsIGF1dG9tYXRlZCByb2xsaW5nIHVwZGF0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGF0ZWZ1bFNldCBleHRlbmRzIHdvcmtsb2FkLldvcmtsb2FkIGltcGxlbWVudHMgSVNjYWxhYmxlIHtcbiAgLyoqXG4gICAgKiBOdW1iZXIgb2YgZGVzaXJlZCBwb2RzLlxuICAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICAqIE1hbmFnZW1lbnQgcG9saWN5IHRvIHVzZSBmb3IgdGhlIHNldC5cbiAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcG9kTWFuYWdlbWVudFBvbGljeTogUG9kTWFuYWdlbWVudFBvbGljeTtcblxuICAvKipcbiAgICogVGhlIHVwZGF0ZSBzdGFydGVneSBvZiB0aGlzIHN0YXRlZnVsIHNldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdHJhdGVneTogU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneTtcblxuICAvKipcbiAgICogTWluaW11bSBkdXJhdGlvbiBmb3Igd2hpY2ggYSBuZXdseSBjcmVhdGVkIHBvZCBzaG91bGQgYmUgcmVhZHkgd2l0aG91dFxuICAgKiBhbnkgb2YgaXRzIGNvbnRhaW5lciBjcmFzaGluZywgZm9yIGl0IHRvIGJlIGNvbnNpZGVyZWQgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1pblJlYWR5OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICAqIEBzZWUgYmFzZS5SZXNvdXJjZS5hcGlPYmplY3RcbiAgICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBpT2JqZWN0OiBBcGlPYmplY3Q7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlVHlwZSA9ICdzdGF0ZWZ1bHNldHMnO1xuXG4gIHB1YmxpYyBoYXNBdXRvc2NhbGVyID0gZmFsc2U7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IHNlcnZpY2UuU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhdGVmdWxTZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5hcGlPYmplY3QgPSBuZXcgazhzLkt1YmVTdGF0ZWZ1bFNldCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBtZXRhZGF0YTogcHJvcHMubWV0YWRhdGEsXG4gICAgICBzcGVjOiBMYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuX3RvS3ViZSgpIH0pLFxuICAgIH0pO1xuICAgIHRoaXMuc2VydmljZSA9IHByb3BzLnNlcnZpY2UgPz8gdGhpcy5fY3JlYXRlSGVhZGxlc3NTZXJ2aWNlKCk7XG5cbiAgICB0aGlzLmFwaU9iamVjdC5hZGREZXBlbmRlbmN5KHRoaXMuc2VydmljZSk7XG5cbiAgICB0aGlzLnJlcGxpY2FzID0gcHJvcHMucmVwbGljYXM7XG4gICAgdGhpcy5zdHJhdGVneSA9IHByb3BzLnN0cmF0ZWd5ID8/IFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3kucm9sbGluZ1VwZGF0ZSgpLFxuICAgIHRoaXMucG9kTWFuYWdlbWVudFBvbGljeSA9IHByb3BzLnBvZE1hbmFnZW1lbnRQb2xpY3kgPz8gUG9kTWFuYWdlbWVudFBvbGljeS5PUkRFUkVEX1JFQURZO1xuICAgIHRoaXMubWluUmVhZHkgPSBwcm9wcy5taW5SZWFkeSA/PyBEdXJhdGlvbi5zZWNvbmRzKDApO1xuXG4gICAgdGhpcy5zZXJ2aWNlLnNlbGVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmlzb2xhdGUpIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbnMuaXNvbGF0ZSgpO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlSGVhZGxlc3NTZXJ2aWNlKCkge1xuXG4gICAgY29uc3QgbXlQb3J0cyA9IGNvbnRhaW5lci5leHRyYWN0Q29udGFpbmVyUG9ydHModGhpcyk7XG4gICAgY29uc3QgbXlQb3J0TnVtYmVycyA9IG15UG9ydHMubWFwKHAgPT4gcC5udW1iZXIpO1xuICAgIGNvbnN0IHBvcnRzOiBzZXJ2aWNlLlNlcnZpY2VQb3J0W10gPSBteVBvcnRzLm1hcChwID0+ICh7IHBvcnQ6IHAubnVtYmVyLCB0YXJnZXRQb3J0OiBwLm51bWJlciwgcHJvdG9jb2w6IHAucHJvdG9jb2wsIG5hbWU6IHAubmFtZSB9KSk7XG4gICAgaWYgKHBvcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gY3JlYXRlIGEgc2VydmljZSBmb3IgdGhlIHN0YXRlZnVsIHNldCAke3RoaXMubmFtZX06IFN0YXRlZnVsU2V0IHBvcnRzIGNhbm5vdCBiZSBkZXRlcm1pbmVkLmApO1xuICAgIH1cblxuICAgIC8vIHZhbGlkYXRlIHRoZSBwb3J0cyBhcmUgb3duZWQgYnkgb3VyIGNvbnRhaW5lcnNcbiAgICBmb3IgKGNvbnN0IHBvcnQgb2YgcG9ydHMpIHtcbiAgICAgIGNvbnN0IHRhcmdldFBvcnQgPSBwb3J0LnRhcmdldFBvcnQgPz8gcG9ydC5wb3J0O1xuICAgICAgaWYgKCFteVBvcnROdW1iZXJzLmluY2x1ZGVzKHRhcmdldFBvcnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGV4cG9zZSBzdGF0ZWZ1bCBzZXQgJHt0aGlzLm5hbWV9IHZpYSBhIHNlcnZpY2U6IFBvcnQgJHt0YXJnZXRQb3J0fSBpcyBub3QgZXhwb3NlZCBieSBhbnkgY29udGFpbmVyYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YWRhdGE6IGFueSA9IHsgbmFtZXNwYWNlOiB0aGlzLm1ldGFkYXRhLm5hbWVzcGFjZSB9O1xuICAgIHJldHVybiBuZXcgc2VydmljZS5TZXJ2aWNlKHRoaXMsICdTZXJ2aWNlJywge1xuICAgICAgc2VsZWN0b3I6IHRoaXMsXG4gICAgICBwb3J0cyxcbiAgICAgIG1ldGFkYXRhLFxuICAgICAgY2x1c3RlcklQOiAnTm9uZScsXG4gICAgICB0eXBlOiBzZXJ2aWNlLlNlcnZpY2VUeXBlLkNMVVNURVJfSVAsXG4gICAgfSk7XG5cbiAgfVxuXG4gIC8qKlxuICAgICogQGludGVybmFsXG4gICAgKi9cbiAgcHVibGljIF90b0t1YmUoKTogazhzLlN0YXRlZnVsU2V0U3BlYyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcGxpY2FzOiB0aGlzLmhhc0F1dG9zY2FsZXIgPyB1bmRlZmluZWQgOiAodGhpcy5yZXBsaWNhcyA/PyAxKSxcbiAgICAgIHNlcnZpY2VOYW1lOiB0aGlzLnNlcnZpY2UubmFtZSxcbiAgICAgIG1pblJlYWR5U2Vjb25kczogdGhpcy5taW5SZWFkeS50b1NlY29uZHMoKSxcbiAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgIG1ldGFkYXRhOiB0aGlzLnBvZE1ldGFkYXRhLnRvSnNvbigpLFxuICAgICAgICBzcGVjOiB0aGlzLl90b1BvZFNwZWMoKSxcbiAgICAgIH0sXG4gICAgICBzZWxlY3RvcjogdGhpcy5fdG9MYWJlbFNlbGVjdG9yKCksXG4gICAgICBwb2RNYW5hZ2VtZW50UG9saWN5OiB0aGlzLnBvZE1hbmFnZW1lbnRQb2xpY3ksXG4gICAgICB1cGRhdGVTdHJhdGVneTogdGhpcy5zdHJhdGVneS5fdG9LdWJlKCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIElTY2FsYWJsZS5tYXJrSGFzQXV0b3NjYWxlcigpXG4gICAqL1xuICBwdWJsaWMgbWFya0hhc0F1dG9zY2FsZXIoKSB7XG4gICAgdGhpcy5oYXNBdXRvc2NhbGVyID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIElTY2FsYWJsZS50b1NjYWxpbmdUYXJnZXQoKVxuICAgKi9cbiAgcHVibGljIHRvU2NhbGluZ1RhcmdldCgpOiBTY2FsaW5nVGFyZ2V0IHtcbiAgICByZXR1cm4ge1xuICAgICAga2luZDogdGhpcy5hcGlPYmplY3Qua2luZCxcbiAgICAgIGFwaVZlcnNpb246IHRoaXMuYXBpT2JqZWN0LmFwaVZlcnNpb24sXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBjb250YWluZXJzOiB0aGlzLmNvbnRhaW5lcnMsXG4gICAgICByZXBsaWNhczogdGhpcy5yZXBsaWNhcyxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3kucm9sbGluZ1VwZGF0ZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneVJvbGxpbmdVcGRhdGVPcHRpb25zIHtcblxuICAvKipcbiAgICogSWYgc3BlY2lmaWVkLCBhbGwgUG9kcyB3aXRoIGFuIG9yZGluYWwgdGhhdCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHBhcnRpdGlvbiB3aWxsXG4gICAqIGJlIHVwZGF0ZWQgd2hlbiB0aGUgU3RhdGVmdWxTZXQncyAuc3BlYy50ZW1wbGF0ZSBpcyB1cGRhdGVkLiBBbGwgUG9kcyB3aXRoIGFuIG9yZGluYWwgdGhhdFxuICAgKiBpcyBsZXNzIHRoYW4gdGhlIHBhcnRpdGlvbiB3aWxsIG5vdCBiZSB1cGRhdGVkLCBhbmQsIGV2ZW4gaWYgdGhleSBhcmUgZGVsZXRlZCwgdGhleSB3aWxsIGJlXG4gICAqIHJlY3JlYXRlZCBhdCB0aGUgcHJldmlvdXMgdmVyc2lvbi5cbiAgICpcbiAgICogSWYgdGhlIHBhcnRpdGlvbiBpcyBncmVhdGVyIHRoYW4gcmVwbGljYXMsIHVwZGF0ZXMgdG8gdGhlIHBvZCB0ZW1wbGF0ZSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIFBvZHMuXG4gICAqIEluIG1vc3QgY2FzZXMgeW91IHdpbGwgbm90IG5lZWQgdG8gdXNlIGEgcGFydGl0aW9uLCBidXQgdGhleSBhcmUgdXNlZnVsIGlmIHlvdSB3YW50IHRvIHN0YWdlIGFuXG4gICAqIHVwZGF0ZSwgcm9sbCBvdXQgYSBjYW5hcnksIG9yIHBlcmZvcm0gYSBwaGFzZWQgcm9sbCBvdXQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL2NvbnRyb2xsZXJzL3N0YXRlZnVsc2V0LyNwYXJ0aXRpb25zXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbj86IG51bWJlcjtcblxufVxuXG4vKipcbiAqIFN0YXRlZnVsU2V0IHVwZGF0ZSBzdHJhdGVnaWVzLlxuICovXG5leHBvcnQgY2xhc3MgU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneSB7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250cm9sbGVyIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgdXBkYXRlIHRoZSBQb2RzIGluIGEgU3RhdGVmdWxTZXQuXG4gICAqIFVzZXJzIG11c3QgbWFudWFsbHkgZGVsZXRlIFBvZHMgdG8gY2F1c2UgdGhlIGNvbnRyb2xsZXIgdG8gY3JlYXRlIG5ldyBQb2RzXG4gICAqIHRoYXQgcmVmbGVjdCBtb2RpZmljYXRpb25zLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbkRlbGV0ZSgpOiBTdGF0ZWZ1bFNldFVwZGF0ZVN0cmF0ZWd5IHtcbiAgICByZXR1cm4gbmV3IFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3koe1xuICAgICAgdHlwZTogJ09uRGVsZXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29udHJvbGxlciB3aWxsIGRlbGV0ZSBhbmQgcmVjcmVhdGUgZWFjaCBQb2QgaW4gdGhlIFN0YXRlZnVsU2V0LlxuICAgKiBJdCB3aWxsIHByb2NlZWQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgUG9kIHRlcm1pbmF0aW9uIChmcm9tIHRoZSBsYXJnZXN0IG9yZGluYWwgdG8gdGhlIHNtYWxsZXN0KSxcbiAgICogdXBkYXRpbmcgZWFjaCBQb2Qgb25lIGF0IGEgdGltZS4gVGhlIEt1YmVybmV0ZXMgY29udHJvbCBwbGFuZSB3YWl0cyB1bnRpbCBhbiB1cGRhdGVkXG4gICAqIFBvZCBpcyBSdW5uaW5nIGFuZCBSZWFkeSBwcmlvciB0byB1cGRhdGluZyBpdHMgcHJlZGVjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJvbGxpbmdVcGRhdGUob3B0aW9uczogU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneVJvbGxpbmdVcGRhdGVPcHRpb25zID0ge30pOiBTdGF0ZWZ1bFNldFVwZGF0ZVN0cmF0ZWd5IHtcblxuICAgIHJldHVybiBuZXcgU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneSh7XG4gICAgICB0eXBlOiAnUm9sbGluZ1VwZGF0ZScsXG4gICAgICByb2xsaW5nVXBkYXRlOiB7IHBhcnRpdGlvbjogb3B0aW9ucy5wYXJ0aXRpb24gPz8gMCB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0cmF0ZWd5OiBrOHMuU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneSkge31cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyYXRlZ3k7XG4gIH1cblxufVxuIl19
|
|
243
|
+
StatefulSetUpdateStrategy[_b] = { fqn: "cdk8s-plus-33.StatefulSetUpdateStrategy", version: "2.4.0" };
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVmdWwtc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YXRlZnVsLXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFrRDtBQUVsRCx5Q0FBeUM7QUFFekMscUNBQXFDO0FBQ3JDLHVDQUE4RztBQUU5RyxxQ0FBcUM7QUFDckMsdUNBQXVDO0FBRXZDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxJQUFZLG1CQUdYO0FBSEQsV0FBWSxtQkFBbUI7SUFDN0IscURBQThCLENBQUE7SUFDOUIsNENBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLG1CQUFtQixtQ0FBbkIsbUJBQW1CLFFBRzlCO0FBeUREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsUUFBUSxDQUFDLFFBQVE7SUFtQ2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFUVixpQkFBWSxHQUFHLGNBQWMsQ0FBQztRQUV2QyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQVMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3pELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixJQUFJLEVBQUUsWUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztTQUNsRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNDLElBQUks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QyxFQUFFO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxRQUF1QztRQUF2QyxhQUFRLEdBQVIsUUFBUSxDQUErQjtJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O0FBbkNILDhEQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaU9iamVjdCwgTGF6eSwgRHVyYXRpb24gfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNvbnRhaW5lciBmcm9tICcuL2NvbnRhaW5lcic7XG5pbXBvcnQgeyBJU2NhbGFibGUsIFNjYWxpbmdUYXJnZXQgfSBmcm9tICcuL2hvcml6b250YWwtcG9kLWF1dG9zY2FsZXInO1xuaW1wb3J0ICogYXMgazhzIGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuaW1wb3J0IHsgS3ViZVBlcnNpc3RlbnRWb2x1bWVDbGFpbVByb3BzLCBQb2RTcGVjLCBRdWFudGl0eSwgVm9sdW1lUmVzb3VyY2VSZXF1aXJlbWVudHMgfSBmcm9tICcuL2ltcG9ydHMvazhzJztcbmltcG9ydCB7IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVByb3BzIH0gZnJvbSAnLi9wdmMnO1xuaW1wb3J0ICogYXMgc2VydmljZSBmcm9tICcuL3NlcnZpY2UnO1xuaW1wb3J0ICogYXMgd29ya2xvYWQgZnJvbSAnLi93b3JrbG9hZCc7XG5cbi8qKlxuICogQ29udHJvbHMgaG93IHBvZHMgYXJlIGNyZWF0ZWQgZHVyaW5nIGluaXRpYWwgc2NhbGUgdXAsIHdoZW4gcmVwbGFjaW5nIHBvZHMgb24gbm9kZXMsXG4gKiBvciB3aGVuIHNjYWxpbmcgZG93bi5cbiAqXG4gKiBUaGUgZGVmYXVsdCBwb2xpY3kgaXMgYE9yZGVyZWRSZWFkeWAsIHdoZXJlIHBvZHMgYXJlIGNyZWF0ZWQgaW4gaW5jcmVhc2luZyBvcmRlclxuICogKHBvZC0wLCB0aGVuIHBvZC0xLCBldGMpIGFuZCB0aGUgY29udHJvbGxlciB3aWxsIHdhaXQgdW50aWwgZWFjaCBwb2QgaXMgcmVhZHkgYmVmb3JlXG4gKiBjb250aW51aW5nLiBXaGVuIHNjYWxpbmcgZG93biwgdGhlIHBvZHMgYXJlIHJlbW92ZWQgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICpcbiAqIFRoZSBhbHRlcm5hdGl2ZSBwb2xpY3kgaXMgYFBhcmFsbGVsYCB3aGljaCB3aWxsIGNyZWF0ZSBwb2RzIGluIHBhcmFsbGVsIHRvIG1hdGNoIHRoZVxuICogZGVzaXJlZCBzY2FsZSB3aXRob3V0IHdhaXRpbmcsIGFuZCBvbiBzY2FsZSBkb3duIHdpbGwgZGVsZXRlIGFsbCBwb2RzIGF0IG9uY2UuXG4gKi9cbmV4cG9ydCBlbnVtIFBvZE1hbmFnZW1lbnRQb2xpY3kge1xuICBPUkRFUkVEX1JFQURZID0gJ09yZGVyZWRSZWFkeScsXG4gIFBBUkFMTEVMID0gJ1BhcmFsbGVsJyxcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBpbml0aWFsaXphdGlvbiBvZiBgU3RhdGVmdWxTZXRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlZnVsU2V0UHJvcHMgZXh0ZW5kcyB3b3JrbG9hZC5Xb3JrbG9hZFByb3BzIHtcbiAgLyoqXG4gICAqIFNlcnZpY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHN0YXRlZnVsc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgbmV3IGhlYWRsZXNzIHNlcnZpY2Ugd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZT86IHNlcnZpY2UuU2VydmljZTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGRlc2lyZWQgcG9kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGljYXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFBvZCBtYW5hZ2VtZW50IHBvbGljeSB0byB1c2UgZm9yIHRoaXMgc3RhdGVmdWxzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFBvZE1hbmFnZW1lbnRQb2xpY3kuT1JERVJFRF9SRUFEWVxuICAgKi9cbiAgcmVhZG9ubHkgcG9kTWFuYWdlbWVudFBvbGljeT86IFBvZE1hbmFnZW1lbnRQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneSB0aGF0IHdpbGwgYmUgZW1wbG95ZWQgdG8gdXBkYXRlIFBvZHMgaW4gdGhlIFN0YXRlZnVsU2V0IHdoZW4gYSByZXZpc2lvbiBpcyBtYWRlIHRvIFRlbXBsYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJvbGxpbmdVcGRhdGUgd2l0aCBwYXJ0aXRpb24gc2V0IHRvIDBcbiAgICovXG4gIHJlYWRvbmx5IHN0cmF0ZWd5PzogU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneTtcblxuICAvKipcbiAgICogTWluaW11bSBkdXJhdGlvbiBmb3Igd2hpY2ggYSBuZXdseSBjcmVhdGVkIHBvZCBzaG91bGQgYmUgcmVhZHkgd2l0aG91dCBhbnkgb2YgaXRzIGNvbnRhaW5lciBjcmFzaGluZyxcbiAgICogZm9yIGl0IHRvIGJlIGNvbnNpZGVyZWQgYXZhaWxhYmxlLiBaZXJvIG1lYW5zIHRoZSBwb2Qgd2lsbCBiZSBjb25zaWRlcmVkIGF2YWlsYWJsZSBhcyBzb29uIGFzIGl0IGlzIHJlYWR5LlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBTdGF0ZWZ1bFNldE1pblJlYWR5U2Vjb25kcyBmZWF0dXJlIGdhdGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL2NvbnRyb2xsZXJzL2RlcGxveW1lbnQvI21pbi1yZWFkeS1zZWNvbmRzXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLnNlY29uZHMoMClcbiAgICovXG4gIHJlYWRvbmx5IG1pblJlYWR5PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gdGVtcGxhdGVzIHRoYXQgd2lsbCBiZSBjcmVhdGVkIGZvciBlYWNoIHBvZCBpbiB0aGUgU3RhdGVmdWxTZXQuXG4gICAqIFRoZSBTdGF0ZWZ1bFNldCBjb250cm9sbGVyIGNyZWF0ZXMgYSBQVkMgYW5kIGEgUFYgZm9yIGVhY2ggdGVtcGxhdGUgYmFzZWQgb24gdGhlIHBvZCdzIG9yZGluYWwgaW5kZXgsXG4gICAqIGVuc3VyaW5nIHN0YWJsZSBzdG9yYWdlIGFjcm9zcyBwb2QgcmVzdGFydHMgYW5kIHJlc2NoZWR1bGluZy5cbiAgICpcbiAgICogRWFjaCBjbGFpbSBpbiB0aGlzIGxpc3QgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBtYXRjaGluZyAoYnkgbmFtZSkgdm9sdW1lTW91bnQgaW4gb25lIG9mIHRoZSBjb250YWluZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZvbHVtZSBjbGFpbSB0ZW1wbGF0ZXMgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lQ2xhaW1UZW1wbGF0ZXM/OiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1UZW1wbGF0ZVByb3BzW107XG59XG5cbi8qKlxuICogU3RhdGVmdWxTZXQgaXMgdGhlIHdvcmtsb2FkIEFQSSBvYmplY3QgdXNlZCB0byBtYW5hZ2Ugc3RhdGVmdWwgYXBwbGljYXRpb25zLlxuICpcbiAqIE1hbmFnZXMgdGhlIGRlcGxveW1lbnQgYW5kIHNjYWxpbmcgb2YgYSBzZXQgb2YgUG9kcywgYW5kIHByb3ZpZGVzIGd1YXJhbnRlZXNcbiAqIGFib3V0IHRoZSBvcmRlcmluZyBhbmQgdW5pcXVlbmVzcyBvZiB0aGVzZSBQb2RzLlxuICpcbiAqIExpa2UgYSBEZXBsb3ltZW50LCBhIFN0YXRlZnVsU2V0IG1hbmFnZXMgUG9kcyB0aGF0IGFyZSBiYXNlZCBvbiBhbiBpZGVudGljYWxcbiAqIGNvbnRhaW5lciBzcGVjLiBVbmxpa2UgYSBEZXBsb3ltZW50LCBhIFN0YXRlZnVsU2V0IG1haW50YWlucyBhIHN0aWNreSBpZGVudGl0eVxuICogZm9yIGVhY2ggb2YgdGhlaXIgUG9kcy4gVGhlc2UgcG9kcyBhcmUgY3JlYXRlZCBmcm9tIHRoZSBzYW1lIHNwZWMsIGJ1dCBhcmUgbm90XG4gKiBpbnRlcmNoYW5nZWFibGU6IGVhY2ggaGFzIGEgcGVyc2lzdGVudCBpZGVudGlmaWVyIHRoYXQgaXQgbWFpbnRhaW5zIGFjcm9zcyBhbnlcbiAqIHJlc2NoZWR1bGluZy5cbiAqXG4gKiBJZiB5b3Ugd2FudCB0byB1c2Ugc3RvcmFnZSB2b2x1bWVzIHRvIHByb3ZpZGUgcGVyc2lzdGVuY2UgZm9yIHlvdXIgd29ya2xvYWQsIHlvdVxuICogY2FuIHVzZSBhIFN0YXRlZnVsU2V0IGFzIHBhcnQgb2YgdGhlIHNvbHV0aW9uLiBBbHRob3VnaCBpbmRpdmlkdWFsIFBvZHMgaW4gYSBTdGF0ZWZ1bFNldFxuICogYXJlIHN1c2NlcHRpYmxlIHRvIGZhaWx1cmUsIHRoZSBwZXJzaXN0ZW50IFBvZCBpZGVudGlmaWVycyBtYWtlIGl0IGVhc2llciB0byBtYXRjaCBleGlzdGluZ1xuICogdm9sdW1lcyB0byB0aGUgbmV3IFBvZHMgdGhhdCByZXBsYWNlIGFueSB0aGF0IGhhdmUgZmFpbGVkLlxuICpcbiAqIFVzaW5nIFN0YXRlZnVsU2V0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTdGF0ZWZ1bFNldHMgYXJlIHZhbHVhYmxlIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcuXG4gKlxuICogLSBTdGFibGUsIHVuaXF1ZSBuZXR3b3JrIGlkZW50aWZpZXJzLlxuICogLSBTdGFibGUsIHBlcnNpc3RlbnQgc3RvcmFnZS5cbiAqIC0gT3JkZXJlZCwgZ3JhY2VmdWwgZGVwbG95bWVudCBhbmQgc2NhbGluZy5cbiAqIC0gT3JkZXJlZCwgYXV0b21hdGVkIHJvbGxpbmcgdXBkYXRlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YXRlZnVsU2V0IGV4dGVuZHMgd29ya2xvYWQuV29ya2xvYWQgaW1wbGVtZW50cyBJU2NhbGFibGUge1xuICAvKipcbiAgICogTnVtYmVyIG9mIGRlc2lyZWQgcG9kcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWFuYWdlbWVudCBwb2xpY3kgdG8gdXNlIGZvciB0aGUgc2V0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBvZE1hbmFnZW1lbnRQb2xpY3k6IFBvZE1hbmFnZW1lbnRQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFRoZSB1cGRhdGUgc3RhcnRlZ3kgb2YgdGhpcyBzdGF0ZWZ1bCBzZXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RyYXRlZ3k6IFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gZHVyYXRpb24gZm9yIHdoaWNoIGEgbmV3bHkgY3JlYXRlZCBwb2Qgc2hvdWxkIGJlIHJlYWR5IHdpdGhvdXRcbiAgICogYW55IG9mIGl0cyBjb250YWluZXIgY3Jhc2hpbmcsIGZvciBpdCB0byBiZSBjb25zaWRlcmVkIGF2YWlsYWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtaW5SZWFkeTogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEBzZWUgYmFzZS5SZXNvdXJjZS5hcGlPYmplY3RcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBhcGlPYmplY3Q6IEFwaU9iamVjdDtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2VUeXBlID0gJ3N0YXRlZnVsc2V0cyc7XG5cbiAgcHVibGljIGhhc0F1dG9zY2FsZXIgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZTogc2VydmljZS5TZXJ2aWNlO1xuXG4gIHB1YmxpYyB2b2x1bWVDbGFpbVRlbXBsYXRlcz86IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVRlbXBsYXRlUHJvcHNbXTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhdGVmdWxTZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5hcGlPYmplY3QgPSBuZXcgazhzLkt1YmVTdGF0ZWZ1bFNldCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBtZXRhZGF0YTogcHJvcHMubWV0YWRhdGEsXG4gICAgICBzcGVjOiBMYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuX3RvS3ViZSgpIH0pLFxuICAgIH0pO1xuICAgIHRoaXMuc2VydmljZSA9IHByb3BzLnNlcnZpY2UgPz8gdGhpcy5fY3JlYXRlSGVhZGxlc3NTZXJ2aWNlKCk7XG5cbiAgICB0aGlzLmFwaU9iamVjdC5hZGREZXBlbmRlbmN5KHRoaXMuc2VydmljZSk7XG5cbiAgICB0aGlzLnJlcGxpY2FzID0gcHJvcHMucmVwbGljYXM7XG4gICAgdGhpcy5zdHJhdGVneSA9IHByb3BzLnN0cmF0ZWd5ID8/IFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3kucm9sbGluZ1VwZGF0ZSgpO1xuICAgIHRoaXMucG9kTWFuYWdlbWVudFBvbGljeSA9IHByb3BzLnBvZE1hbmFnZW1lbnRQb2xpY3kgPz8gUG9kTWFuYWdlbWVudFBvbGljeS5PUkRFUkVEX1JFQURZO1xuICAgIHRoaXMubWluUmVhZHkgPSBwcm9wcy5taW5SZWFkeSA/PyBEdXJhdGlvbi5zZWNvbmRzKDApO1xuICAgIHByb3BzPy52b2x1bWVDbGFpbVRlbXBsYXRlcz8uZm9yRWFjaCh0ZW1wbGF0ZSA9PiB0aGlzLmFkZFZvbHVtZUNsYWltVGVtcGxhdGUodGVtcGxhdGUpKTtcbiAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0KHRoaXMpO1xuXG4gICAgaWYgKHRoaXMuaXNvbGF0ZSkge1xuICAgICAgdGhpcy5jb25uZWN0aW9ucy5pc29sYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZFZvbHVtZUNsYWltVGVtcGxhdGUodGVtcGxhdGU6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVRlbXBsYXRlUHJvcHMpIHtcbiAgICBpZiAodGhpcy52b2x1bWVDbGFpbVRlbXBsYXRlcz8uc29tZSh0ID0+IHQubmFtZSA9PT0gdGVtcGxhdGUubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQSB2b2x1bWUgY2xhaW0gdGVtcGxhdGUgd2l0aCBuYW1lIFwiJHt0ZW1wbGF0ZS5uYW1lfVwiIGFscmVhZHkgZXhpc3RzYCk7XG4gICAgfVxuICAgIHRoaXMudm9sdW1lQ2xhaW1UZW1wbGF0ZXMgPSB0aGlzLnZvbHVtZUNsYWltVGVtcGxhdGVzXG4gICAgICA/IFsuLi50aGlzLnZvbHVtZUNsYWltVGVtcGxhdGVzLCB0ZW1wbGF0ZV1cbiAgICAgIDogW3RlbXBsYXRlXTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUhlYWRsZXNzU2VydmljZSgpIHtcbiAgICBjb25zdCBteVBvcnRzID0gY29udGFpbmVyLmV4dHJhY3RDb250YWluZXJQb3J0cyh0aGlzKTtcbiAgICBjb25zdCBteVBvcnROdW1iZXJzID0gbXlQb3J0cy5tYXAocCA9PiBwLm51bWJlcik7XG4gICAgY29uc3QgcG9ydHM6IHNlcnZpY2UuU2VydmljZVBvcnRbXSA9IG15UG9ydHMubWFwKHAgPT4gKHtcbiAgICAgIHBvcnQ6IHAubnVtYmVyLFxuICAgICAgdGFyZ2V0UG9ydDogcC5udW1iZXIsXG4gICAgICBwcm90b2NvbDogcC5wcm90b2NvbCxcbiAgICAgIG5hbWU6IHAubmFtZSxcbiAgICB9KSk7XG4gICAgaWYgKHBvcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gY3JlYXRlIGEgc2VydmljZSBmb3IgdGhlIHN0YXRlZnVsIHNldCAke3RoaXMubmFtZX06IFN0YXRlZnVsU2V0IHBvcnRzIGNhbm5vdCBiZSBkZXRlcm1pbmVkLmApO1xuICAgIH1cblxuICAgIC8vIHZhbGlkYXRlIHRoZSBwb3J0cyBhcmUgb3duZWQgYnkgb3VyIGNvbnRhaW5lcnNcbiAgICBmb3IgKGNvbnN0IHBvcnQgb2YgcG9ydHMpIHtcbiAgICAgIGNvbnN0IHRhcmdldFBvcnQgPSBwb3J0LnRhcmdldFBvcnQgPz8gcG9ydC5wb3J0O1xuICAgICAgaWYgKCFteVBvcnROdW1iZXJzLmluY2x1ZGVzKHRhcmdldFBvcnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGV4cG9zZSBzdGF0ZWZ1bCBzZXQgJHt0aGlzLm5hbWV9IHZpYSBhIHNlcnZpY2U6IFBvcnQgJHt0YXJnZXRQb3J0fSBpcyBub3QgZXhwb3NlZCBieSBhbnkgY29udGFpbmVyYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YWRhdGE6IGFueSA9IHsgbmFtZXNwYWNlOiB0aGlzLm1ldGFkYXRhLm5hbWVzcGFjZSB9O1xuICAgIHJldHVybiBuZXcgc2VydmljZS5TZXJ2aWNlKHRoaXMsICdTZXJ2aWNlJywge1xuICAgICAgc2VsZWN0b3I6IHRoaXMsXG4gICAgICBwb3J0cyxcbiAgICAgIG1ldGFkYXRhLFxuICAgICAgY2x1c3RlcklQOiAnTm9uZScsXG4gICAgICB0eXBlOiBzZXJ2aWNlLlNlcnZpY2VUeXBlLkNMVVNURVJfSVAsXG4gICAgfSk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfdG9LdWJlKCk6IGs4cy5TdGF0ZWZ1bFNldFNwZWMge1xuICAgIHJldHVybiB7XG4gICAgICByZXBsaWNhczogdGhpcy5oYXNBdXRvc2NhbGVyID8gdW5kZWZpbmVkIDogKHRoaXMucmVwbGljYXMgPz8gMSksXG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlLm5hbWUsXG4gICAgICBtaW5SZWFkeVNlY29uZHM6IHRoaXMubWluUmVhZHkudG9TZWNvbmRzKCksXG4gICAgICB0ZW1wbGF0ZToge1xuICAgICAgICBtZXRhZGF0YTogdGhpcy5wb2RNZXRhZGF0YS50b0pzb24oKSxcbiAgICAgICAgc3BlYzogdGhpcy5fdG9Qb2RTcGVjKCksXG4gICAgICB9LFxuICAgICAgc2VsZWN0b3I6IHRoaXMuX3RvTGFiZWxTZWxlY3RvcigpLFxuICAgICAgcG9kTWFuYWdlbWVudFBvbGljeTogdGhpcy5wb2RNYW5hZ2VtZW50UG9saWN5LFxuICAgICAgdm9sdW1lQ2xhaW1UZW1wbGF0ZXM6IHRoaXMuX3RvUGVyc2lzdGVudFZvbHVtZUNsYWltcygpLFxuICAgICAgdXBkYXRlU3RyYXRlZ3k6IHRoaXMuc3RyYXRlZ3kuX3RvS3ViZSgpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvUG9kU3BlYygpOiBrOHMuUG9kU3BlYyB7XG4gICAgY29uc3QgcG9kU3BlYyA9IHN1cGVyLl90b1BvZFNwZWMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucG9kU3BlYyxcbiAgICAgIHZvbHVtZXM6IHRoaXMuX2ZpbHRlclBvZFNwZWNWb2x1bWVzKHBvZFNwZWMpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIF9maWx0ZXJQb2RTcGVjVm9sdW1lcyhwb2RTcGVjOiBQb2RTcGVjKSB7XG4gICAgLy8gV2hlbiB1c2luZyB2b2x1bWVDbGFpbVRlbXBsYXRlcywgdGhlIHZvbHVtZXMgd2l0aCBtYXRjaGluZyBuYW1lcyBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGluIHRoZSBwb2Qgc3BlY1xuICAgIGlmICh0aGlzLnZvbHVtZUNsYWltVGVtcGxhdGVzICYmIHBvZFNwZWMudm9sdW1lcykge1xuICAgICAgY29uc3Qgdm9sdW1lQ2xhaW1OYW1lcyA9IHRoaXMudm9sdW1lQ2xhaW1UZW1wbGF0ZXMubWFwKHZjdCA9PiB2Y3QubmFtZSk7XG4gICAgICBjb25zdCB2b2x1bWVzV2l0aE5vVGVtcGxhdGVzID0gcG9kU3BlYy52b2x1bWVzLmZpbHRlcih2b2wgPT4gIXZvbHVtZUNsYWltTmFtZXMuaW5jbHVkZXModm9sLm5hbWUpKTtcblxuICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHZvbHVtZXMgYWZ0ZXIgZmlsdGVyaW5nLCBkb24ndCBpbmNsdWRlIHZvbHVtZXMgcHJvcGVydHlcbiAgICAgIGlmICh2b2x1bWVzV2l0aE5vVGVtcGxhdGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZvbHVtZXNXaXRoTm9UZW1wbGF0ZXM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQHNlZSBJU2NhbGFibGUubWFya0hhc0F1dG9zY2FsZXIoKVxuICAgKi9cbiAgcHVibGljIG1hcmtIYXNBdXRvc2NhbGVyKCkge1xuICAgIHRoaXMuaGFzQXV0b3NjYWxlciA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQHNlZSBJU2NhbGFibGUudG9TY2FsaW5nVGFyZ2V0KClcbiAgICovXG4gIHB1YmxpYyB0b1NjYWxpbmdUYXJnZXQoKTogU2NhbGluZ1RhcmdldCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQ6IHRoaXMuYXBpT2JqZWN0LmtpbmQsXG4gICAgICBhcGlWZXJzaW9uOiB0aGlzLmFwaU9iamVjdC5hcGlWZXJzaW9uLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgY29udGFpbmVyczogdGhpcy5jb250YWluZXJzLFxuICAgICAgcmVwbGljYXM6IHRoaXMucmVwbGljYXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX3RvUGVyc2lzdGVudFZvbHVtZUNsYWltcygpOiBLdWJlUGVyc2lzdGVudFZvbHVtZUNsYWltUHJvcHNbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgdm9sdW1lTmFtZXMgPSB0aGlzLmNvbnRhaW5lcnMuZmxhdE1hcChpdCA9PiBpdC5tb3VudHMpLm1hcChtb3VudCA9PiBtb3VudC52b2x1bWUubmFtZSk7XG4gICAgdGhpcy52b2x1bWVDbGFpbVRlbXBsYXRlcz8uZm9yRWFjaCh0ID0+IHtcbiAgICAgIGlmICghdm9sdW1lTmFtZXMuaW5jbHVkZXModC5uYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFZvbHVtZSBjbGFpbSB0ZW1wbGF0ZSB3aXRoIG5hbWUgXCIke3QubmFtZX1cIiBpcyBub3QgdXNlZCBieSBhbnkgY29udGFpbmVyIG1vdW50YCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMudm9sdW1lQ2xhaW1UZW1wbGF0ZXM/Lm1hcCh0ZW1wbGF0ZSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZXM6IFZvbHVtZVJlc291cmNlUmVxdWlyZW1lbnRzID0gdGVtcGxhdGUuc3RvcmFnZVxuICAgICAgICA/IHsgcmVxdWVzdHM6IHsgc3RvcmFnZTogUXVhbnRpdHkuZnJvbVN0cmluZyh0ZW1wbGF0ZS5zdG9yYWdlLmFzU3RyaW5nKCkpIH0gfVxuICAgICAgICA6IHt9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICBuYW1lOiB0ZW1wbGF0ZS5uYW1lLFxuICAgICAgICB9LFxuICAgICAgICBzcGVjOiB7XG4gICAgICAgICAgYWNjZXNzTW9kZXM6IHRlbXBsYXRlLmFjY2Vzc01vZGVzLFxuICAgICAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IHRlbXBsYXRlLnN0b3JhZ2VDbGFzc05hbWUsXG4gICAgICAgICAgcmVzb3VyY2VzLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBTdGF0ZWZ1bFNldFVwZGF0ZVN0cmF0ZWd5LnJvbGxpbmdVcGRhdGVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3lSb2xsaW5nVXBkYXRlT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIElmIHNwZWNpZmllZCwgYWxsIFBvZHMgd2l0aCBhbiBvcmRpbmFsIHRoYXQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwYXJ0aXRpb24gd2lsbFxuICAgKiBiZSB1cGRhdGVkIHdoZW4gdGhlIFN0YXRlZnVsU2V0J3MgLnNwZWMudGVtcGxhdGUgaXMgdXBkYXRlZC4gQWxsIFBvZHMgd2l0aCBhbiBvcmRpbmFsIHRoYXRcbiAgICogaXMgbGVzcyB0aGFuIHRoZSBwYXJ0aXRpb24gd2lsbCBub3QgYmUgdXBkYXRlZCwgYW5kLCBldmVuIGlmIHRoZXkgYXJlIGRlbGV0ZWQsIHRoZXkgd2lsbCBiZVxuICAgKiByZWNyZWF0ZWQgYXQgdGhlIHByZXZpb3VzIHZlcnNpb24uXG4gICAqXG4gICAqIElmIHRoZSBwYXJ0aXRpb24gaXMgZ3JlYXRlciB0aGFuIHJlcGxpY2FzLCB1cGRhdGVzIHRvIHRoZSBwb2QgdGVtcGxhdGUgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBQb2RzLlxuICAgKiBJbiBtb3N0IGNhc2VzIHlvdSB3aWxsIG5vdCBuZWVkIHRvIHVzZSBhIHBhcnRpdGlvbiwgYnV0IHRoZXkgYXJlIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBzdGFnZSBhblxuICAgKiB1cGRhdGUsIHJvbGwgb3V0IGEgY2FuYXJ5LCBvciBwZXJmb3JtIGEgcGhhc2VkIHJvbGwgb3V0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9jb250cm9sbGVycy9zdGF0ZWZ1bHNldC8jcGFydGl0aW9uc1xuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBwYXJ0aXRpb24/OiBudW1iZXI7XG5cbn1cblxuLyoqXG4gKiBTdGF0ZWZ1bFNldCB1cGRhdGUgc3RyYXRlZ2llcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3kge1xuXG4gIC8qKlxuICAgKiBUaGUgY29udHJvbGxlciB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUgUG9kcyBpbiBhIFN0YXRlZnVsU2V0LlxuICAgKiBVc2VycyBtdXN0IG1hbnVhbGx5IGRlbGV0ZSBQb2RzIHRvIGNhdXNlIHRoZSBjb250cm9sbGVyIHRvIGNyZWF0ZSBuZXcgUG9kc1xuICAgKiB0aGF0IHJlZmxlY3QgbW9kaWZpY2F0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb25EZWxldGUoKTogU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneSB7XG4gICAgcmV0dXJuIG5ldyBTdGF0ZWZ1bFNldFVwZGF0ZVN0cmF0ZWd5KHtcbiAgICAgIHR5cGU6ICdPbkRlbGV0ZScsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGNvbnRyb2xsZXIgd2lsbCBkZWxldGUgYW5kIHJlY3JlYXRlIGVhY2ggUG9kIGluIHRoZSBTdGF0ZWZ1bFNldC5cbiAgICogSXQgd2lsbCBwcm9jZWVkIGluIHRoZSBzYW1lIG9yZGVyIGFzIFBvZCB0ZXJtaW5hdGlvbiAoZnJvbSB0aGUgbGFyZ2VzdCBvcmRpbmFsIHRvIHRoZSBzbWFsbGVzdCksXG4gICAqIHVwZGF0aW5nIGVhY2ggUG9kIG9uZSBhdCBhIHRpbWUuIFRoZSBLdWJlcm5ldGVzIGNvbnRyb2wgcGxhbmUgd2FpdHMgdW50aWwgYW4gdXBkYXRlZFxuICAgKiBQb2QgaXMgUnVubmluZyBhbmQgUmVhZHkgcHJpb3IgdG8gdXBkYXRpbmcgaXRzIHByZWRlY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByb2xsaW5nVXBkYXRlKG9wdGlvbnM6IFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3lSb2xsaW5nVXBkYXRlT3B0aW9ucyA9IHt9KTogU3RhdGVmdWxTZXRVcGRhdGVTdHJhdGVneSB7XG5cbiAgICByZXR1cm4gbmV3IFN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3koe1xuICAgICAgdHlwZTogJ1JvbGxpbmdVcGRhdGUnLFxuICAgICAgcm9sbGluZ1VwZGF0ZTogeyBwYXJ0aXRpb246IG9wdGlvbnMucGFydGl0aW9uID8/IDAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdHJhdGVneTogazhzLlN0YXRlZnVsU2V0VXBkYXRlU3RyYXRlZ3kpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfdG9LdWJlKCk6IGs4cy5TdGF0ZWZ1bFNldFVwZGF0ZVN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneTtcbiAgfVxuXG59XG5cbi8qKlxuICogQSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0gdGVtcGxhdGUgZm9yIFN0YXRlZnVsU2V0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNpc3RlbnRWb2x1bWVDbGFpbVRlbXBsYXRlUHJvcHMgZXh0ZW5kcyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2xhaW0gdGhhdCB0aGUgU3RhdGVmdWxTZXQgY29udHJvbGxlciB3aWxsIGNyZWF0ZSBmb3IgZWFjaCBwb2QuXG4gICAqIFRoaXMgd2lsbCBiZSB1c2VkIHRvIG5hbWUgdGhlIGNyZWF0ZWQgUFZDIGluIHRoZSBmb3JtYXQgPGNsYWltLW5hbWU+LTxwb2QtbmFtZT5cbiAgICpcbiAgICogVGhpcyBuYW1lIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhIHZvbHVtZSBtb3VudCBpbiBvbmUgb2YgdGhlIGNvbnRhaW5lcnMuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG4iXX0=
|
package/lib/volume.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Size } from 'cdk8s';
|
|
2
|
-
import {
|
|
2
|
+
import { Construct, IConstruct } from 'constructs';
|
|
3
3
|
import * as configmap from './config-map';
|
|
4
4
|
import * as k8s from './imports/k8s';
|
|
5
5
|
import * as pvc from './pvc';
|
|
@@ -157,7 +157,11 @@ export declare class Volume extends Construct implements IStorage {
|
|
|
157
157
|
*/
|
|
158
158
|
static fromCsi(scope: Construct, id: string, driver: string, options?: CsiVolumeOptions): Volume;
|
|
159
159
|
/**
|
|
160
|
-
|
|
160
|
+
* Create a volume with an arbitrary name and no configuration.
|
|
161
|
+
*/
|
|
162
|
+
static fromName(scope: Construct, id: string, name: string): Volume;
|
|
163
|
+
/**
|
|
164
|
+
* @internal
|
|
161
165
|
*/
|
|
162
166
|
private static renderItems;
|
|
163
167
|
private constructor();
|
package/lib/volume.js
CHANGED
|
@@ -234,6 +234,12 @@ class Volume extends constructs_1.Construct {
|
|
|
234
234
|
},
|
|
235
235
|
});
|
|
236
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Create a volume with an arbitrary name and no configuration.
|
|
239
|
+
*/
|
|
240
|
+
static fromName(scope, id, name) {
|
|
241
|
+
return new Volume(scope, id, name, {});
|
|
242
|
+
}
|
|
237
243
|
constructor(scope, id, name, config) {
|
|
238
244
|
super(scope, id);
|
|
239
245
|
this.name = name;
|
|
@@ -255,9 +261,9 @@ class Volume extends constructs_1.Construct {
|
|
|
255
261
|
}
|
|
256
262
|
exports.Volume = Volume;
|
|
257
263
|
_a = JSII_RTTI_SYMBOL_1;
|
|
258
|
-
Volume[_a] = { fqn: "cdk8s-plus-33.Volume", version: "2.
|
|
264
|
+
Volume[_a] = { fqn: "cdk8s-plus-33.Volume", version: "2.4.0" };
|
|
259
265
|
/**
|
|
260
|
-
|
|
266
|
+
* @internal
|
|
261
267
|
*/
|
|
262
268
|
Volume.renderItems = (items) => {
|
|
263
269
|
if (!items) {
|
|
@@ -368,4 +374,4 @@ var HostPathVolumeType;
|
|
|
368
374
|
*/
|
|
369
375
|
HostPathVolumeType["BLOCK_DEVICE"] = "BlockDevice";
|
|
370
376
|
})(HostPathVolumeType || (exports.HostPathVolumeType = HostPathVolumeType = {}));
|
|
371
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZvbHVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFvQztBQUNwQywyQ0FBbUQ7QUFFbkQscUNBQXFDO0FBZXJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUNILE1BQWEsTUFBTyxTQUFRLHNCQUFTO0lBRW5DOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksTUFBTSxDQUFDLHdCQUF3QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQWdCLEVBQUUsVUFBNkMsRUFBRTtRQUNwSSxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLFFBQVEsRUFBRSxFQUFFO1lBQzlELG9CQUFvQixFQUFFO2dCQUNwQixRQUFRO2dCQUNSLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU07Z0JBQ2hDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztnQkFDNUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSzthQUNwQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBZ0IsRUFBRSxPQUFlLEVBQUUsVUFBa0MsRUFBRTtRQUMvSCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxhQUFhLFFBQVEsRUFBRSxFQUFFO1lBQ3BFLFNBQVMsRUFBRTtnQkFDVCxRQUFRO2dCQUNSLE9BQU87Z0JBQ1AsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksb0NBQW9DLENBQUMsSUFBSTtnQkFDN0UsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTTtnQkFDaEMsSUFBSSxFQUFFLE9BQU8sQ0FB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J2NkazhzJztcbmltcG9ydCB7IElDb25zdHJ1Y3QsIENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgY29uZmlnbWFwIGZyb20gJy4vY29uZmlnLW1hcCc7XG5pbXBvcnQgKiBhcyBrOHMgZnJvbSAnLi9pbXBvcnRzL2s4cyc7XG5pbXBvcnQgKiBhcyBwdmMgZnJvbSAnLi9wdmMnO1xuaW1wb3J0ICogYXMgc2VjcmV0IGZyb20gJy4vc2VjcmV0JztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcGllY2Ugb2Ygc3RvcmFnZSBpbiB0aGUgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU3RvcmFnZSBleHRlbmRzIElDb25zdHJ1Y3Qge1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoZSBwaWVjZSBvZiBzdG9yYWdlIGludG8gYSBjb25jcmV0ZSB2b2x1bWUuXG4gICAqL1xuICBhc1ZvbHVtZSgpOiBWb2x1bWU7XG59XG5cbi8qKlxuICogVm9sdW1lIHJlcHJlc2VudHMgYSBuYW1lZCB2b2x1bWUgaW4gYSBwb2QgdGhhdCBtYXkgYmUgYWNjZXNzZWQgYnkgYW55XG4gKiBjb250YWluZXIgaW4gdGhlIHBvZC5cbiAqXG4gKiBEb2NrZXIgYWxzbyBoYXMgYSBjb25jZXB0IG9mIHZvbHVtZXMsIHRob3VnaCBpdCBpcyBzb21ld2hhdCBsb29zZXIgYW5kIGxlc3NcbiAqIG1hbmFnZWQuIEluIERvY2tlciwgYSB2b2x1bWUgaXMgc2ltcGx5IGEgZGlyZWN0b3J5IG9uIGRpc2sgb3IgaW4gYW5vdGhlclxuICogQ29udGFpbmVyLiBMaWZldGltZXMgYXJlIG5vdCBtYW5hZ2VkIGFuZCB1bnRpbCB2ZXJ5IHJlY2VudGx5IHRoZXJlIHdlcmUgb25seVxuICogbG9jYWwtZGlzay1iYWNrZWQgdm9sdW1lcy4gRG9ja2VyIG5vdyBwcm92aWRlcyB2b2x1bWUgZHJpdmVycywgYnV0IHRoZVxuICogZnVuY3Rpb25hbGl0eSBpcyB2ZXJ5IGxpbWl0ZWQgZm9yIG5vdyAoZS5nLiBhcyBvZiBEb2NrZXIgMS43IG9ubHkgb25lIHZvbHVtZVxuICogZHJpdmVyIGlzIGFsbG93ZWQgcGVyIENvbnRhaW5lciBhbmQgdGhlcmUgaXMgbm8gd2F5IHRvIHBhc3MgcGFyYW1ldGVycyB0b1xuICogdm9sdW1lcykuXG4gKlxuICogQSBLdWJlcm5ldGVzIHZvbHVtZSwgb24gdGhlIG90aGVyIGhhbmQsIGhhcyBhbiBleHBsaWNpdCBsaWZldGltZSAtIHRoZSBzYW1lXG4gKiBhcyB0aGUgUG9kIHRoYXQgZW5jbG9zZXMgaXQuIENvbnNlcXVlbnRseSwgYSB2b2x1bWUgb3V0bGl2ZXMgYW55IENvbnRhaW5lcnNcbiAqIHRoYXQgcnVuIHdpdGhpbiB0aGUgUG9kLCBhbmQgZGF0YSBpcyBwcmVzZXJ2ZWQgYWNyb3NzIENvbnRhaW5lciByZXN0YXJ0cy4gT2ZcbiAqIGNvdXJzZSwgd2hlbiBhIFBvZCBjZWFzZXMgdG8gZXhpc3QsIHRoZSB2b2x1bWUgd2lsbCBjZWFzZSB0byBleGlzdCwgdG9vLlxuICogUGVyaGFwcyBtb3JlIGltcG9ydGFudGx5IHRoYW4gdGhpcywgS3ViZXJuZXRlcyBzdXBwb3J0cyBtYW55IHR5cGVzIG9mXG4gKiB2b2x1bWVzLCBhbmQgYSBQb2QgY2FuIHVzZSBhbnkgbnVtYmVyIG9mIHRoZW0gc2ltdWx0YW5lb3VzbHkuXG4gKlxuICogQXQgaXRzIGNvcmUsIGEgdm9sdW1lIGlzIGp1c3QgYSBkaXJlY3RvcnksIHBvc3NpYmx5IHdpdGggc29tZSBkYXRhIGluIGl0LFxuICogd2hpY2ggaXMgYWNjZXNzaWJsZSB0byB0aGUgQ29udGFpbmVycyBpbiBhIFBvZC4gSG93IHRoYXQgZGlyZWN0b3J5IGNvbWVzIHRvXG4gKiBiZSwgdGhlIG1lZGl1bSB0aGF0IGJhY2tzIGl0LCBhbmQgdGhlIGNvbnRlbnRzIG9mIGl0IGFyZSBkZXRlcm1pbmVkIGJ5IHRoZVxuICogcGFydGljdWxhciB2b2x1bWUgdHlwZSB1c2VkLlxuICpcbiAqIFRvIHVzZSBhIHZvbHVtZSwgYSBQb2Qgc3BlY2lmaWVzIHdoYXQgdm9sdW1lcyB0byBwcm92aWRlIGZvciB0aGUgUG9kICh0aGVcbiAqIC5zcGVjLnZvbHVtZXMgZmllbGQpIGFuZCB3aGVyZSB0byBtb3VudCB0aG9zZSBpbnRvIENvbnRhaW5lcnMgKHRoZVxuICogLnNwZWMuY29udGFpbmVyc1sqXS52b2x1bWVNb3VudHMgZmllbGQpLlxuICpcbiAqIEEgcHJvY2VzcyBpbiBhIGNvbnRhaW5lciBzZWVzIGEgZmlsZXN5c3RlbSB2aWV3IGNvbXBvc2VkIGZyb20gdGhlaXIgRG9ja2VyXG4gKiBpbWFnZSBhbmQgdm9sdW1lcy4gVGhlIERvY2tlciBpbWFnZSBpcyBhdCB0aGUgcm9vdCBvZiB0aGUgZmlsZXN5c3RlbVxuICogaGllcmFyY2h5LCBhbmQgYW55IHZvbHVtZXMgYXJlIG1vdW50ZWQgYXQgdGhlIHNwZWNpZmllZCBwYXRocyB3aXRoaW4gdGhlXG4gKiBpbWFnZS4gVm9sdW1lcyBjYW4gbm90IG1vdW50IG9udG8gb3RoZXIgdm9sdW1lc1xuICovXG5leHBvcnQgY2xhc3MgVm9sdW1lIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVN0b3JhZ2Uge1xuXG4gIC8qKlxuICAgKiBNb3VudHMgYW4gQW1hem9uIFdlYiBTZXJ2aWNlcyAoQVdTKSBFQlMgdm9sdW1lIGludG8geW91ciBwb2QuXG4gICAqIFVubGlrZSBlbXB0eURpciwgd2hpY2ggaXMgZXJhc2VkIHdoZW4gYSBwb2QgaXMgcmVtb3ZlZCwgdGhlIGNvbnRlbnRzIG9mIGFuIEVCUyB2b2x1bWUgYXJlXG4gICAqIHBlcnNpc3RlZCBhbmQgdGhlIHZvbHVtZSBpcyB1bm1vdW50ZWQuIFRoaXMgbWVhbnMgdGhhdCBhbiBFQlMgdm9sdW1lIGNhbiBiZSBwcmUtcG9wdWxhdGVkIHdpdGggZGF0YSxcbiAgICogYW5kIHRoYXQgZGF0YSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gcG9kcy5cbiAgICpcbiAgICogVGhlcmUgYXJlIHNvbWUgcmVzdHJpY3Rpb25zIHdoZW4gdXNpbmcgYW4gYXdzRWxhc3RpY0Jsb2NrU3RvcmUgdm9sdW1lOlxuICAgKlxuICAgKiAtIHRoZSBub2RlcyBvbiB3aGljaCBwb2RzIGFyZSBydW5uaW5nIG11c3QgYmUgQVdTIEVDMiBpbnN0YW5jZXMuXG4gICAqIC0gdGhvc2UgaW5zdGFuY2VzIG5lZWQgdG8gYmUgaW4gdGhlIHNhbWUgcmVnaW9uIGFuZCBhdmFpbGFiaWxpdHkgem9uZSBhcyB0aGUgRUJTIHZvbHVtZS5cbiAgICogLSBFQlMgb25seSBzdXBwb3J0cyBhIHNpbmdsZSBFQzIgaW5zdGFuY2UgbW91bnRpbmcgYSB2b2x1bWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bd3NFbGFzdGljQmxvY2tTdG9yZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCB2b2x1bWVJZDogc3RyaW5nLCBvcHRpb25zOiBBd3NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZU9wdGlvbnMgPSB7fSk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBvcHRpb25zLm5hbWUgPz8gYGVicy0ke3ZvbHVtZUlkfWAsIHtcbiAgICAgIGF3c0VsYXN0aWNCbG9ja1N0b3JlOiB7XG4gICAgICAgIHZvbHVtZUlkLFxuICAgICAgICBmc1R5cGU6IG9wdGlvbnMuZnNUeXBlID8/ICdleHQ0JyxcbiAgICAgICAgcGFydGl0aW9uOiBvcHRpb25zLnBhcnRpdGlvbixcbiAgICAgICAgcmVhZE9ubHk6IG9wdGlvbnMucmVhZE9ubHkgPz8gZmFsc2UsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdW50cyBhIE1pY3Jvc29mdCBBenVyZSBEYXRhIERpc2sgaW50byBhIHBvZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUF6dXJlRGlzayhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBkaXNrTmFtZTogc3RyaW5nLCBkaXNrVXJpOiBzdHJpbmcsIG9wdGlvbnM6IEF6dXJlRGlza1ZvbHVtZU9wdGlvbnMgPSB7fSk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBvcHRpb25zLm5hbWUgPz8gYGF6dXJlZGlzay0ke2Rpc2tOYW1lfWAsIHtcbiAgICAgIGF6dXJlRGlzazoge1xuICAgICAgICBkaXNrTmFtZSxcbiAgICAgICAgZGlza1VyaSxcbiAgICAgICAgY2FjaGluZ01vZGU6IG9wdGlvbnMuY2FjaGluZ01vZGUgPz8gQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZUNhY2hpbmdNb2RlLk5PTkUsXG4gICAgICAgIGZzVHlwZTogb3B0aW9ucy5mc1R5cGUgPz8gJ2V4dDQnLFxuICAgICAgICBraW5kOiBvcHRpb25zLmtpbmQgPz8gQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZUtpbmQuU0hBUkVELFxuICAgICAgICByZWFkT25seTogb3B0aW9ucy5yZWFkT25seSA/PyBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTW91bnRzIGEgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIHBlcnNpc3RlbnQgZGlzayAoUEQpIGludG8geW91ciBQb2QuXG4gICAqIFVubGlrZSBlbXB0eURpciwgd2hpY2ggaXMgZXJhc2VkIHdoZW4gYSBwb2QgaXMgcmVtb3ZlZCwgdGhlIGNvbnRlbnRzIG9mIGEgUEQgYXJlXG4gICAqIHByZXNlcnZlZCBhbmQgdGhlIHZvbHVtZSBpcyBtZXJlbHkgdW5tb3VudGVkLiBUaGlzIG1lYW5zIHRoYXQgYSBQRCBjYW4gYmUgcHJlLXBvcHVsYXRlZFxuICAgKiB3aXRoIGRhdGEsIGFuZCB0aGF0IGRhdGEgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIHBvZHMuXG4gICAqXG4gICAqIFRoZXJlIGFyZSBzb21lIHJlc3RyaWN0aW9ucyB3aGVuIHVzaW5nIGEgZ2NlUGVyc2lzdGVudERpc2s6XG4gICAqXG4gICAqIC0gdGhlIG5vZGVzIG9uIHdoaWNoIFBvZHMgYXJlIHJ1bm5pbmcgbXVzdCBiZSBHQ0UgVk1zXG4gICAqIC0gdGhvc2UgVk1zIG5lZWQgdG8gYmUgaW4gdGhlIHNhbWUgR0NFIHByb2plY3QgYW5kIHpvbmUgYXMgdGhlIHBlcnNpc3RlbnQgZGlza1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tR2NlUGVyc2lzdGVudERpc2soc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcGROYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEdDRVBlcnNpc3RlbnREaXNrVm9sdW1lT3B0aW9ucyA9IHt9KTogVm9sdW1lIHtcbiAgICByZXR1cm4gbmV3IFZvbHVtZShzY29wZSwgaWQsIG9wdGlvbnMubmFtZSA/PyBgZ2NlZGlzay0ke3BkTmFtZX1gLCB7XG4gICAgICBnY2VQZXJzaXN0ZW50RGlzazoge1xuICAgICAgICBwZE5hbWUsXG4gICAgICAgIGZzVHlwZTogb3B0aW9ucy5mc1R5cGUgPz8gJ2V4dDQnLFxuICAgICAgICBwYXJ0aXRpb246IG9wdGlvbnMucGFydGl0aW9uLFxuICAgICAgICByZWFkT25seTogb3B0aW9ucy5yZWFkT25seSA/PyBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUG9wdWxhdGUgdGhlIHZvbHVtZSBmcm9tIGEgQ29uZmlnTWFwLlxuICAgKlxuICAgKiBUaGUgY29uZmlnTWFwIHJlc291cmNlIHByb3ZpZGVzIGEgd2F5IHRvIGluamVjdCBjb25maWd1cmF0aW9uIGRhdGEgaW50b1xuICAgKiBQb2RzLiBUaGUgZGF0YSBzdG9yZWQgaW4gYSBDb25maWdNYXAgb2JqZWN0IGNhbiBiZSByZWZlcmVuY2VkIGluIGEgdm9sdW1lXG4gICAqIG9mIHR5cGUgY29uZmlnTWFwIGFuZCB0aGVuIGNvbnN1bWVkIGJ5IGNvbnRhaW5lcml6ZWQgYXBwbGljYXRpb25zIHJ1bm5pbmdcbiAgICogaW4gYSBQb2QuXG4gICAqXG4gICAqIFdoZW4gcmVmZXJlbmNpbmcgYSBjb25maWdNYXAgb2JqZWN0LCB5b3UgY2FuIHNpbXBseSBwcm92aWRlIGl0cyBuYW1lIGluIHRoZVxuICAgKiB2b2x1bWUgdG8gcmVmZXJlbmNlIGl0LiBZb3UgY2FuIGFsc28gY3VzdG9taXplIHRoZSBwYXRoIHRvIHVzZSBmb3IgYVxuICAgKiBzcGVjaWZpYyBlbnRyeSBpbiB0aGUgQ29uZmlnTWFwLlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnTWFwIFRoZSBjb25maWcgbWFwIHRvIHVzZSB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Db25maWdNYXAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29uZmlnTWFwOiBjb25maWdtYXAuSUNvbmZpZ01hcCwgb3B0aW9uczogQ29uZmlnTWFwVm9sdW1lT3B0aW9ucyA9IHsgfSk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBvcHRpb25zLm5hbWUgPz8gYGNvbmZpZ21hcC0ke2NvbmZpZ01hcC5uYW1lfWAsIHtcbiAgICAgIGNvbmZpZ01hcDoge1xuICAgICAgICBuYW1lOiBjb25maWdNYXAubmFtZSxcbiAgICAgICAgZGVmYXVsdE1vZGU6IG9wdGlvbnMuZGVmYXVsdE1vZGUsXG4gICAgICAgIG9wdGlvbmFsOiBvcHRpb25zLm9wdGlvbmFsLFxuICAgICAgICBpdGVtczogVm9sdW1lLnJlbmRlckl0ZW1zKG9wdGlvbnMuaXRlbXMpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBlbXB0eURpciB2b2x1bWUgaXMgZmlyc3QgY3JlYXRlZCB3aGVuIGEgUG9kIGlzIGFzc2lnbmVkIHRvIGEgTm9kZSwgYW5kXG4gICAqIGV4aXN0cyBhcyBsb25nIGFzIHRoYXQgUG9kIGlzIHJ1bm5pbmcgb24gdGhhdCBub2RlLiBBcyB0aGUgbmFtZSBzYXlzLCBpdCBpc1xuICAgKiBpbml0aWFsbHkgZW1wdHkuIENvbnRhaW5lcnMgaW4gdGhlIFBvZCBjYW4gYWxsIHJlYWQgYW5kIHdyaXRlIHRoZSBzYW1lXG4gICAqIGZpbGVzIGluIHRoZSBlbXB0eURpciB2b2x1bWUsIHRob3VnaCB0aGF0IHZvbHVtZSBjYW4gYmUgbW91bnRlZCBhdCB0aGUgc2FtZVxuICAgKiBvciBkaWZmZXJlbnQgcGF0aHMgaW4gZWFjaCBDb250YWluZXIuIFdoZW4gYSBQb2QgaXMgcmVtb3ZlZCBmcm9tIGEgbm9kZSBmb3JcbiAgICogYW55IHJlYXNvbiwgdGhlIGRhdGEgaW4gdGhlIGVtcHR5RGlyIGlzIGRlbGV0ZWQgZm9yZXZlci5cbiAgICpcbiAgICogQHNlZSBodHRwOi8va3ViZXJuZXRlcy5pby9kb2NzL3VzZXItZ3VpZGUvdm9sdW1lcyNlbXB0eWRpclxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUVtcHR5RGlyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgb3B0aW9uczogRW1wdHlEaXJWb2x1bWVPcHRpb25zID0geyB9KTogVm9sdW1lIHtcbiAgICByZXR1cm4gbmV3IFZvbHVtZShzY29wZSwgaWQsIG5hbWUsIHtcbiAgICAgIGVtcHR5RGlyOiB7XG4gICAgICAgIG1lZGl1bTogb3B0aW9ucy5tZWRpdW0sXG4gICAgICAgIHNpemVMaW1pdDogb3B0aW9ucy5zaXplTGltaXRcbiAgICAgICAgICA/IGs4cy5RdWFudGl0eS5mcm9tU3RyaW5nKGAke29wdGlvbnMuc2l6ZUxpbWl0LnRvTWViaWJ5dGVzKCl9TWlgKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZSB0aGUgdm9sdW1lIGZyb20gYSBTZWNyZXQuXG4gICAqXG4gICAqIEEgc2VjcmV0IHZvbHVtZSBpcyB1c2VkIHRvIHBhc3Mgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHBhc3N3b3JkcywgdG8gUG9kcy5cbiAgICogWW91IGNhbiBzdG9yZSBzZWNyZXRzIGluIHRoZSBLdWJlcm5ldGVzIEFQSSBhbmQgbW91bnQgdGhlbSBhcyBmaWxlcyBmb3IgdXNlIGJ5IHBvZHNcbiAgICogd2l0aG91dCBjb3VwbGluZyB0byBLdWJlcm5ldGVzIGRpcmVjdGx5LlxuICAgKlxuICAgKiBzZWNyZXQgdm9sdW1lcyBhcmUgYmFja2VkIGJ5IHRtcGZzIChhIFJBTS1iYWNrZWQgZmlsZXN5c3RlbSlcbiAgICogc28gdGhleSBhcmUgbmV2ZXIgd3JpdHRlbiB0byBub24tdm9sYXRpbGUgc3RvcmFnZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMvI3NlY3JldFxuICAgKlxuICAgKiBAcGFyYW0gc2VjciBUaGUgc2VjcmV0IHRvIHVzZSB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWNyZXQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2Vjcjogc2VjcmV0LklTZWNyZXQsIG9wdGlvbnM6IFNlY3JldFZvbHVtZU9wdGlvbnMgPSB7IH0pOiBWb2x1bWUge1xuICAgIHJldHVybiBuZXcgVm9sdW1lKHNjb3BlLCBpZCwgb3B0aW9ucy5uYW1lID8/IGBzZWNyZXQtJHtzZWNyLm5hbWV9YCwge1xuICAgICAgc2VjcmV0OiB7XG4gICAgICAgIHNlY3JldE5hbWU6IHNlY3IubmFtZSxcbiAgICAgICAgZGVmYXVsdE1vZGU6IG9wdGlvbnMuZGVmYXVsdE1vZGUsXG4gICAgICAgIG9wdGlvbmFsOiBvcHRpb25zLm9wdGlvbmFsLFxuICAgICAgICBpdGVtczogVm9sdW1lLnJlbmRlckl0ZW1zKG9wdGlvbnMuaXRlbXMpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIG1vdW50IGEgUGVyc2lzdGVudFZvbHVtZSBpbnRvIGEgUG9kLlxuICAgKiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1zIGFyZSBhIHdheSBmb3IgdXNlcnMgdG8gXCJjbGFpbVwiIGR1cmFibGUgc3RvcmFnZSAoc3VjaCBhcyBhIEdDRSBQZXJzaXN0ZW50RGlzayBvciBhbiBpU0NTSSB2b2x1bWUpXG4gICAqIHdpdGhvdXQga25vd2luZyB0aGUgZGV0YWlscyBvZiB0aGUgcGFydGljdWxhciBjbG91ZCBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3BlcnNpc3RlbnQtdm9sdW1lcy9cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBlcnNpc3RlbnRWb2x1bWVDbGFpbShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLFxuICAgIGNsYWltOiBwdmMuSVBlcnNpc3RlbnRWb2x1bWVDbGFpbSxcbiAgICBvcHRpb25zOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1Wb2x1bWVPcHRpb25zID0ge30pOiBWb2x1bWUge1xuICAgIHJldHVybiBuZXcgVm9sdW1lKHNjb3BlLCBpZCwgb3B0aW9ucy5uYW1lID8/IGBwdmMtJHtjbGFpbS5uYW1lfWAsIHtcbiAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbToge1xuICAgICAgICBjbGFpbU5hbWU6IGNsYWltLm5hbWUsXG4gICAgICAgIHJlYWRPbmx5OiBvcHRpb25zLnJlYWRPbmx5ID8/IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIG1vdW50IGEgZmlsZSBvciBkaXJlY3RvcnkgZnJvbSB0aGUgaG9zdCBub2RlJ3MgZmlsZXN5c3RlbSBpbnRvIGEgUG9kLlxuICAgKiBUaGlzIGlzIG5vdCBzb21ldGhpbmcgdGhhdCBtb3N0IFBvZHMgd2lsbCBuZWVkLCBidXQgaXQgb2ZmZXJzIGEgcG93ZXJmdWxcbiAgICogZXNjYXBlIGhhdGNoIGZvciBzb21lIGFwcGxpY2F0aW9ucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMvI2hvc3RwYXRoXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Ib3N0UGF0aChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEhvc3RQYXRoVm9sdW1lT3B0aW9ucyk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBuYW1lLCB7XG4gICAgICBob3N0UGF0aDoge1xuICAgICAgICBwYXRoOiBvcHRpb25zLnBhdGgsXG4gICAgICAgIHR5cGU6IG9wdGlvbnMudHlwZSA/PyBIb3N0UGF0aFZvbHVtZVR5cGUuREVGQVVMVCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCB0byBtb3VudCBhbiBORlMgc2hhcmUgaW50byBhIFBvZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMvI25mc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTmZzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgb3B0aW9uczogTmZzVm9sdW1lT3B0aW9ucyk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBuYW1lLCB7XG4gICAgICBuZnM6IHtcbiAgICAgICAgc2VydmVyOiBvcHRpb25zLnNlcnZlcixcbiAgICAgICAgcGF0aDogb3B0aW9ucy5wYXRoLFxuICAgICAgICByZWFkT25seTogb3B0aW9ucy5yZWFkT25seSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUG9wdWxhdGUgdGhlIHZvbHVtZSBmcm9tIGEgQ1NJIGRyaXZlciwgZm9yIGV4YW1wbGUgdGhlIFNlY3JldHMgU3RvcmUgQ1NJXG4gICAqIERyaXZlcjogaHR0cHM6Ly9zZWNyZXRzLXN0b3JlLWNzaS1kcml2ZXIuc2lncy5rOHMuaW8vaW50cm9kdWN0aW9uLmh0bWwuXG4gICAqIFdoaWNoIGluIHR1cm4gbmVlZHMgYW4gYXNzb2NpYXRlZCBwcm92aWRlciB0byBzb3VyY2UgdGhlIHNlY3JldHMsIHN1Y2ggYXNcbiAgICogdGhlIEFXUyBTZWNyZXRzIE1hbmFnZXIgYW5kIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmUgcHJvdmlkZXI6XG4gICAqIGh0dHBzOi8vYXdzLmdpdGh1Yi5pby9zZWNyZXRzLXN0b3JlLWNzaS1kcml2ZXItcHJvdmlkZXItYXdzLy5cbiAgICpcbiAgICogQHBhcmFtIGRyaXZlciBUaGUgbmFtZSBvZiB0aGUgQ1NJIGRyaXZlciB0byB1c2UgdG8gcG9wdWxhdGUgdGhlIHZvbHVtZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIENTSSB2b2x1bWUsIGluY2x1ZGluZyBkcml2ZXItc3BlY2lmaWMgb25lcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNzaShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBkcml2ZXI6IHN0cmluZywgb3B0aW9uczogQ3NpVm9sdW1lT3B0aW9ucyA9IHsgfSk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBvcHRpb25zLm5hbWUgPz8gTmFtZXMudG9EbnNMYWJlbChzY29wZSwgeyBleHRyYTogW2lkXSB9KSwge1xuICAgICAgY3NpOiB7XG4gICAgICAgIGRyaXZlcjogZHJpdmVyLFxuICAgICAgICBmc1R5cGU6IG9wdGlvbnMuZnNUeXBlLFxuICAgICAgICByZWFkT25seTogb3B0aW9ucy5yZWFkT25seSxcbiAgICAgICAgdm9sdW1lQXR0cmlidXRlczogb3B0aW9ucy5hdHRyaWJ1dGVzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZW5kZXJJdGVtcyA9IChpdGVtcz86IHsgW2tleTogc3RyaW5nXTogUGF0aE1hcHBpbmcgfSk6IHVuZGVmaW5lZCB8IEFycmF5PGs4cy5LZXlUb1BhdGg+ID0+IHtcbiAgICBpZiAoIWl0ZW1zKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8azhzLktleVRvUGF0aD4oKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhpdGVtcykuc29ydCgpKSB7XG4gICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgIGtleSxcbiAgICAgICAgcGF0aDogaXRlbXNba2V5XS5wYXRoLFxuICAgICAgICBtb2RlOiBpdGVtc1trZXldLm1vZGUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuXG4gIHByaXZhdGUgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBPbWl0PGs4cy5Wb2x1bWUsICduYW1lJz4pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMubmFtZSA9IG5hbWUuc2xpY2UoMCwgNjMpO1xuICB9XG5cbiAgcHVibGljIGFzVm9sdW1lKCk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuVm9sdW1lIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgLi4udGhpcy5jb25maWcsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgb2YgYFZvbHVtZS5mcm9tR2NlUGVyc2lzdGVudERpc2tgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdDRVBlcnNpc3RlbnREaXNrVm9sdW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdm9sdW1lIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0by1nZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gdHlwZSBvZiB0aGUgdm9sdW1lIHRoYXQgeW91IHdhbnQgdG8gbW91bnQuXG4gICAqIFRpcDogRW5zdXJlIHRoYXQgdGhlIGZpbGVzeXN0ZW0gdHlwZSBpcyBzdXBwb3J0ZWQgYnkgdGhlIGhvc3Qgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMjYXdzZWxhc3RpY2Jsb2Nrc3RvcmVcbiAgICogQGRlZmF1bHQgJ2V4dDQnXG4gICAqL1xuICByZWFkb25seSBmc1R5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gaW4gdGhlIHZvbHVtZSB0aGF0IHlvdSB3YW50IHRvIG1vdW50LiBJZiBvbWl0dGVkLCB0aGUgZGVmYXVsdCBpcyB0byBtb3VudCBieSB2b2x1bWUgbmFtZS5cbiAgICogRXhhbXBsZXM6IEZvciB2b2x1bWUgL2Rldi9zZGExLCB5b3Ugc3BlY2lmeSB0aGUgcGFydGl0aW9uIGFzIFwiMVwiLlxuICAgKiBTaW1pbGFybHksIHRoZSB2b2x1bWUgcGFydGl0aW9uIGZvciAvZGV2L3NkYSBpcyBcIjBcIiAob3IgeW91IGNhbiBsZWF2ZSB0aGUgcHJvcGVydHkgZW1wdHkpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHBhcnRpdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmeSBcInRydWVcIiB0byBmb3JjZSBhbmQgc2V0IHRoZSBSZWFkT25seSBwcm9wZXJ0eSBpbiBWb2x1bWVNb3VudHMgdG8gXCJ0cnVlXCIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS92b2x1bWVzI2F3c2VsYXN0aWNibG9ja3N0b3JlXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBPcHRpb25zIG9mIGBWb2x1bWUuZnJvbUF6dXJlRGlza2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXp1cmVEaXNrVm9sdW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdm9sdW1lIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0by1nZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvc3QgQ2FjaGluZyBtb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVDYWNoaW5nTW9kZS5OT05FLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGluZ01vZGU/OiBBenVyZURpc2tQZXJzaXN0ZW50Vm9sdW1lQ2FjaGluZ01vZGU7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gdHlwZSB0byBtb3VudC4gTXVzdCBiZSBhIGZpbGVzeXN0ZW0gdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGhvc3Qgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2V4dDQnXG4gICAqL1xuICByZWFkb25seSBmc1R5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEtpbmQgb2YgZGlzay5cbiAgICpcbiAgICogQGRlZmF1bHQgQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZUtpbmQuU0hBUkVEXG4gICAqL1xuICByZWFkb25seSBraW5kPzogQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZUtpbmQ7XG5cbiAgLyoqXG4gICAqIEZvcmNlIHRoZSBSZWFkT25seSBzZXR0aW5nIGluIFZvbHVtZU1vdW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRPbmx5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIG9mIGBWb2x1bWUuZnJvbUF3c0VsYXN0aWNCbG9ja1N0b3JlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHZvbHVtZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG8tZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaWxlc3lzdGVtIHR5cGUgb2YgdGhlIHZvbHVtZSB0aGF0IHlvdSB3YW50IHRvIG1vdW50LlxuICAgKiBUaXA6IEVuc3VyZSB0aGF0IHRoZSBmaWxlc3lzdGVtIHR5cGUgaXMgc3VwcG9ydGVkIGJ5IHRoZSBob3N0IG9wZXJhdGluZyBzeXN0ZW0uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS92b2x1bWVzI2F3c2VsYXN0aWNibG9ja3N0b3JlXG4gICAqIEBkZWZhdWx0ICdleHQ0J1xuICAgKi9cbiAgcmVhZG9ubHkgZnNUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydGl0aW9uIGluIHRoZSB2b2x1bWUgdGhhdCB5b3Ugd2FudCB0byBtb3VudC4gSWYgb21pdHRlZCwgdGhlIGRlZmF1bHQgaXMgdG8gbW91bnQgYnkgdm9sdW1lIG5hbWUuXG4gICAqIEV4YW1wbGVzOiBGb3Igdm9sdW1lIC9kZXYvc2RhMSwgeW91IHNwZWNpZnkgdGhlIHBhcnRpdGlvbiBhcyBcIjFcIi5cbiAgICogU2ltaWxhcmx5LCB0aGUgdm9sdW1lIHBhcnRpdGlvbiBmb3IgL2Rldi9zZGEgaXMgXCIwXCIgKG9yIHlvdSBjYW4gbGVhdmUgdGhlIHByb3BlcnR5IGVtcHR5KS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBwYXJ0aXRpb24uXG4gICAqL1xuICByZWFkb25seSBwYXJ0aXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgXCJ0cnVlXCIgdG8gZm9yY2UgYW5kIHNldCB0aGUgUmVhZE9ubHkgcHJvcGVydHkgaW4gVm9sdW1lTW91bnRzIHRvIFwidHJ1ZVwiLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2Uvdm9sdW1lcyNhd3NlbGFzdGljYmxvY2tzdG9yZVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZE9ubHk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBDb25maWdNYXAtYmFzZWQgdm9sdW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ01hcFZvbHVtZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHZvbHVtZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG8tZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNb2RlIGJpdHMgdG8gdXNlIG9uIGNyZWF0ZWQgZmlsZXMgYnkgZGVmYXVsdC4gTXVzdCBiZSBhIHZhbHVlIGJldHdlZW4gMCBhbmRcbiAgICogMDc3Ny4gRGVmYXVsdHMgdG8gMDY0NC4gRGlyZWN0b3JpZXMgd2l0aGluIHRoZSBwYXRoIGFyZSBub3QgYWZmZWN0ZWQgYnlcbiAgICogdGhpcyBzZXR0aW5nLiBUaGlzIG1pZ2h0IGJlIGluIGNvbmZsaWN0IHdpdGggb3RoZXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGVcbiAgICogZmlsZSBtb2RlLCBsaWtlIGZzR3JvdXAsIGFuZCB0aGUgcmVzdWx0IGNhbiBiZSBvdGhlciBtb2RlIGJpdHMgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAwNjQ0LiBEaXJlY3RvcmllcyB3aXRoaW4gdGhlIHBhdGggYXJlIG5vdCBhZmZlY3RlZCBieSB0aGlzXG4gICAqIHNldHRpbmcuIFRoaXMgbWlnaHQgYmUgaW4gY29uZmxpY3Qgd2l0aCBvdGhlciBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBmaWxlXG4gICAqIG1vZGUsIGxpa2UgZnNHcm91cCwgYW5kIHRoZSByZXN1bHQgY2FuIGJlIG90aGVyIG1vZGUgYml0cyBzZXQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0TW9kZT86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSBDb25maWdNYXAgb3IgaXRzIGtleXMgbXVzdCBiZSBkZWZpbmVkLlxuICAgKiBAZGVmYXVsdCAtIHVuZG9jdW1lbnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9uYWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiB1bnNwZWNpZmllZCwgZWFjaCBrZXktdmFsdWUgcGFpciBpbiB0aGUgRGF0YSBmaWVsZCBvZiB0aGUgcmVmZXJlbmNlZFxuICAgKiBDb25maWdNYXAgd2lsbCBiZSBwcm9qZWN0ZWQgaW50byB0aGUgdm9sdW1lIGFzIGEgZmlsZSB3aG9zZSBuYW1lIGlzIHRoZSBrZXlcbiAgICogYW5kIGNvbnRlbnQgaXMgdGhlIHZhbHVlLiBJZiBzcGVjaWZpZWQsIHRoZSBsaXN0ZWQga2V5cyB3aWxsIGJlIHByb2plY3RlZFxuICAgKiBpbnRvIHRoZSBzcGVjaWZpZWQgcGF0aHMsIGFuZCB1bmxpc3RlZCBrZXlzIHdpbGwgbm90IGJlIHByZXNlbnQuIElmIGEga2V5XG4gICAqIGlzIHNwZWNpZmllZCB3aGljaCBpcyBub3QgcHJlc2VudCBpbiB0aGUgQ29uZmlnTWFwLCB0aGUgdm9sdW1lIHNldHVwIHdpbGxcbiAgICogZXJyb3IgdW5sZXNzIGl0IGlzIG1hcmtlZCBvcHRpb25hbC4gUGF0aHMgbXVzdCBiZSByZWxhdGl2ZSBhbmQgbWF5IG5vdFxuICAgKiBjb250YWluIHRoZSAnLi4nIHBhdGggb3Igc3RhcnQgd2l0aCAnLi4nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG1hcHBpbmdcbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1zPzogeyBba2V5OiBzdHJpbmddOiBQYXRoTWFwcGluZyB9O1xufVxuXG4vKipcbiAqIE1hcHMgYSBzdHJpbmcga2V5IHRvIGEgcGF0aCB3aXRoaW4gYSB2b2x1bWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0aE1hcHBpbmcge1xuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIGZpbGUgdG8gbWFwIHRoZSBrZXkgdG8uIE1heSBub3QgYmUgYW4gYWJzb2x1dGVcbiAgICogcGF0aC4gTWF5IG5vdCBjb250YWluIHRoZSBwYXRoIGVsZW1lbnQgJy4uJy4gTWF5IG5vdCBzdGFydCB3aXRoIHRoZSBzdHJpbmdcbiAgICogJy4uJy5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWw6IG1vZGUgYml0cyB0byB1c2Ugb24gdGhpcyBmaWxlLCBtdXN0IGJlIGEgdmFsdWUgYmV0d2VlbiAwIGFuZFxuICAgKiAwNzc3LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgdm9sdW1lIGRlZmF1bHRNb2RlIHdpbGwgYmUgdXNlZC4gVGhpcyBtaWdodCBiZVxuICAgKiBpbiBjb25mbGljdCB3aXRoIG90aGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGZpbGUgbW9kZSwgbGlrZSBmc0dyb3VwLCBhbmRcbiAgICogdGhlIHJlc3VsdCBjYW4gYmUgb3RoZXIgbW9kZSBiaXRzIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igdm9sdW1lcyBwb3B1bGF0ZWQgd2l0aCBhbiBlbXB0eSBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1wdHlEaXJWb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGVtcHR5RGlyIHZvbHVtZXMgYXJlIHN0b3JlZCBvbiB3aGF0ZXZlciBtZWRpdW0gaXMgYmFja2luZyB0aGVcbiAgICogbm9kZSAtIHRoYXQgbWlnaHQgYmUgZGlzayBvciBTU0Qgb3IgbmV0d29yayBzdG9yYWdlLCBkZXBlbmRpbmcgb24geW91clxuICAgKiBlbnZpcm9ubWVudC4gSG93ZXZlciwgeW91IGNhbiBzZXQgdGhlIGVtcHR5RGlyLm1lZGl1bSBmaWVsZCB0b1xuICAgKiBgRW1wdHlEaXJNZWRpdW0uTUVNT1JZYCB0byB0ZWxsIEt1YmVybmV0ZXMgdG8gbW91bnQgYSB0bXBmcyAoUkFNLWJhY2tlZFxuICAgKiBmaWxlc3lzdGVtKSBmb3IgeW91IGluc3RlYWQuIFdoaWxlIHRtcGZzIGlzIHZlcnkgZmFzdCwgYmUgYXdhcmUgdGhhdCB1bmxpa2VcbiAgICogZGlza3MsIHRtcGZzIGlzIGNsZWFyZWQgb24gbm9kZSByZWJvb3QgYW5kIGFueSBmaWxlcyB5b3Ugd3JpdGUgd2lsbCBjb3VudFxuICAgKiBhZ2FpbnN0IHlvdXIgQ29udGFpbmVyJ3MgbWVtb3J5IGxpbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBFbXB0eURpck1lZGl1bS5ERUZBVUxUXG4gICAqL1xuICByZWFkb25seSBtZWRpdW0/OiBFbXB0eURpck1lZGl1bTtcblxuICAvKipcbiAgICogVG90YWwgYW1vdW50IG9mIGxvY2FsIHN0b3JhZ2UgcmVxdWlyZWQgZm9yIHRoaXMgRW1wdHlEaXIgdm9sdW1lLiBUaGUgc2l6ZVxuICAgKiBsaW1pdCBpcyBhbHNvIGFwcGxpY2FibGUgZm9yIG1lbW9yeSBtZWRpdW0uIFRoZSBtYXhpbXVtIHVzYWdlIG9uIG1lbW9yeVxuICAgKiBtZWRpdW0gRW1wdHlEaXIgd291bGQgYmUgdGhlIG1pbmltdW0gdmFsdWUgYmV0d2VlbiB0aGUgU2l6ZUxpbWl0IHNwZWNpZmllZFxuICAgKiBoZXJlIGFuZCB0aGUgc3VtIG9mIG1lbW9yeSBsaW1pdHMgb2YgYWxsIGNvbnRhaW5lcnMgaW4gYSBwb2QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGltaXQgaXMgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBzaXplTGltaXQ/OiBTaXplO1xufVxuXG4vKipcbiAqIFRoZSBtZWRpdW0gb24gd2hpY2ggdG8gc3RvcmUgdGhlIHZvbHVtZS5cbiAqL1xuZXhwb3J0IGVudW0gRW1wdHlEaXJNZWRpdW0ge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdm9sdW1lIG9mIHRoZSBiYWNraW5nIG5vZGUuXG4gICAqL1xuICBERUZBVUxUID0gJycsXG5cbiAgLyoqXG4gICAqIE1vdW50IGEgdG1wZnMgKFJBTS1iYWNrZWQgZmlsZXN5c3RlbSkgZm9yIHlvdSBpbnN0ZWFkLiBXaGlsZSB0bXBmcyBpcyB2ZXJ5XG4gICAqIGZhc3QsIGJlIGF3YXJlIHRoYXQgdW5saWtlIGRpc2tzLCB0bXBmcyBpcyBjbGVhcmVkIG9uIG5vZGUgcmVib290IGFuZCBhbnlcbiAgICogZmlsZXMgeW91IHdyaXRlIHdpbGwgY291bnQgYWdhaW5zdCB5b3VyIENvbnRhaW5lcidzIG1lbW9yeSBsaW1pdC5cbiAgICovXG4gIE1FTU9SWSA9ICdNZW1vcnknLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgUGVyc2lzdGVudFZvbHVtZUNsYWltLWJhc2VkIHZvbHVtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1Wb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB2b2x1bWUgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXJpdmVkIGZyb20gdGhlIFBWQyBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2lsbCBmb3JjZSB0aGUgUmVhZE9ubHkgc2V0dGluZyBpbiBWb2x1bWVNb3VudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgU2VjcmV0LWJhc2VkIHZvbHVtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRWb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB2b2x1bWUgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvLWdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogTW9kZSBiaXRzIHRvIHVzZSBvbiBjcmVhdGVkIGZpbGVzIGJ5IGRlZmF1bHQuIE11c3QgYmUgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kXG4gICAqIDA3NzcuIERlZmF1bHRzIHRvIDA2NDQuIERpcmVjdG9yaWVzIHdpdGhpbiB0aGUgcGF0aCBhcmUgbm90IGFmZmVjdGVkIGJ5XG4gICAqIHRoaXMgc2V0dGluZy4gVGhpcyBtaWdodCBiZSBpbiBjb25mbGljdCB3aXRoIG90aGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlXG4gICAqIGZpbGUgbW9kZSwgbGlrZSBmc0dyb3VwLCBhbmQgdGhlIHJlc3VsdCBjYW4gYmUgb3RoZXIgbW9kZSBiaXRzIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMDY0NC4gRGlyZWN0b3JpZXMgd2l0aGluIHRoZSBwYXRoIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhpc1xuICAgKiBzZXR0aW5nLiBUaGlzIG1pZ2h0IGJlIGluIGNvbmZsaWN0IHdpdGggb3RoZXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgZmlsZVxuICAgKiBtb2RlLCBsaWtlIGZzR3JvdXAsIGFuZCB0aGUgcmVzdWx0IGNhbiBiZSBvdGhlciBtb2RlIGJpdHMgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdE1vZGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgc2VjcmV0IG9yIGl0cyBrZXlzIG11c3QgYmUgZGVmaW5lZC5cbiAgICogQGRlZmF1bHQgLSB1bmRvY3VtZW50ZWRcbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbmFsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgdW5zcGVjaWZpZWQsIGVhY2gga2V5LXZhbHVlIHBhaXIgaW4gdGhlIERhdGEgZmllbGQgb2YgdGhlIHJlZmVyZW5jZWRcbiAgICogc2VjcmV0IHdpbGwgYmUgcHJvamVjdGVkIGludG8gdGhlIHZvbHVtZSBhcyBhIGZpbGUgd2hvc2UgbmFtZSBpcyB0aGUga2V5XG4gICAqIGFuZCBjb250ZW50IGlzIHRoZSB2YWx1ZS4gSWYgc3BlY2lmaWVkLCB0aGUgbGlzdGVkIGtleXMgd2lsbCBiZSBwcm9qZWN0ZWRcbiAgICogaW50byB0aGUgc3BlY2lmaWVkIHBhdGhzLCBhbmQgdW5saXN0ZWQga2V5cyB3aWxsIG5vdCBiZSBwcmVzZW50LiBJZiBhIGtleVxuICAgKiBpcyBzcGVjaWZpZWQgd2hpY2ggaXMgbm90IHByZXNlbnQgaW4gdGhlIHNlY3JldCwgdGhlIHZvbHVtZSBzZXR1cCB3aWxsXG4gICAqIGVycm9yIHVubGVzcyBpdCBpcyBtYXJrZWQgb3B0aW9uYWwuIFBhdGhzIG11c3QgYmUgcmVsYXRpdmUgYW5kIG1heSBub3RcbiAgICogY29udGFpbiB0aGUgJy4uJyBwYXRoIG9yIHN0YXJ0IHdpdGggJy4uJy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBtYXBwaW5nXG4gICAqL1xuICByZWFkb25seSBpdGVtcz86IHsgW2tleTogc3RyaW5nXTogUGF0aE1hcHBpbmcgfTtcblxufVxuXG4vKipcbiAqIEF6dXJlIERpc2sga2luZHMuXG4gKi9cbmV4cG9ydCBlbnVtIEF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVLaW5kIHtcblxuICAvKipcbiAgICogTXVsdGlwbGUgYmxvYiBkaXNrcyBwZXIgc3RvcmFnZSBhY2NvdW50LlxuICAgKi9cbiAgU0hBUkVEID0gJ1NoYXJlZCcsXG5cbiAgLyoqXG4gICAqIFNpbmdsZSBibG9iIGRpc2sgcGVyIHN0b3JhZ2UgYWNjb3VudC5cbiAgICovXG4gIERFRElDQVRFRCA9ICdEZWRpY2F0ZWQnLFxuXG4gIC8qKlxuICAgKiBBenVyZSBtYW5hZ2VkIGRhdGEgZGlzay5cbiAgICovXG4gIE1BTkFHRUQgPSAnTWFuYWdlZCcsXG59XG5cbi8qKlxuICogQXp1cmUgZGlzayBjYWNoaW5nIG1vZGVzLlxuICovXG5leHBvcnQgZW51bSBBenVyZURpc2tQZXJzaXN0ZW50Vm9sdW1lQ2FjaGluZ01vZGUge1xuXG4gIC8qKlxuICAgKiBOb25lLlxuICAgKi9cbiAgTk9ORSA9ICdOb25lJyxcblxuICAvKipcbiAgICogUmVhZE9ubHkuXG4gICAqL1xuICBSRUFEX09OTFkgPSAnUmVhZE9ubHknLFxuXG4gIC8qKlxuICAgKiBSZWFkV3JpdGUuXG4gICAqL1xuICBSRUFEX1dSSVRFID0gJ1JlYWRXcml0ZScsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYSBIb3N0UGF0aFZvbHVtZS1iYXNlZCB2b2x1bWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdFBhdGhWb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkgb24gdGhlIGhvc3QuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBwYXRoIGZvdW5kIG9uIHRoZSBob3N0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBIb3N0UGF0aFZvbHVtZVR5cGUuREVGQVVMVFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IEhvc3RQYXRoVm9sdW1lVHlwZTtcblxufVxuXG4vKipcbiAqIEhvc3QgcGF0aCB0eXBlcy5cbiAqL1xuZXhwb3J0IGVudW0gSG9zdFBhdGhWb2x1bWVUeXBlIHtcbiAgLyoqXG4gICAqIEVtcHR5IHN0cmluZyAoZGVmYXVsdCkgaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHdoaWNoIG1lYW5zIHRoYXQgbm9cbiAgICogY2hlY2tzIHdpbGwgYmUgcGVyZm9ybWVkIGJlZm9yZSBtb3VudGluZyB0aGUgaG9zdFBhdGggdm9sdW1lLlxuICAgKi9cbiAgREVGQVVMVCA9ICcnLFxuXG4gIC8qKlxuICAgKiBJZiBub3RoaW5nIGV4aXN0cyBhdCB0aGUgZ2l2ZW4gcGF0aCwgYW4gZW1wdHkgZGlyZWN0b3J5IHdpbGwgYmUgY3JlYXRlZFxuICAgKiB0aGVyZSBhcyBuZWVkZWQgd2l0aCBwZXJtaXNzaW9uIHNldCB0byAwNzU1LCBoYXZpbmcgdGhlIHNhbWUgZ3JvdXAgYW5kXG4gICAqIG93bmVyc2hpcCB3aXRoIEt1YmVsZXQuXG4gICAqL1xuICBESVJFQ1RPUllfT1JfQ1JFQVRFID0gJ0RpcmVjdG9yeU9yQ3JlYXRlJyxcblxuICAvKipcbiAgICogQSBkaXJlY3RvcnkgbXVzdCBleGlzdCBhdCB0aGUgZ2l2ZW4gcGF0aC5cbiAgICovXG4gIERJUkVDVE9SWSA9ICdEaXJlY3RvcnknLFxuXG4gIC8qKlxuICAgKiBJZiBub3RoaW5nIGV4aXN0cyBhdCB0aGUgZ2l2ZW4gcGF0aCwgYW4gZW1wdHkgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgdGhlcmVcbiAgICogYXMgbmVlZGVkIHdpdGggcGVybWlzc2lvbiBzZXQgdG8gMDY0NCwgaGF2aW5nIHRoZSBzYW1lIGdyb3VwIGFuZCBvd25lcnNoaXBcbiAgICogd2l0aCBLdWJlbGV0LlxuICAgKi9cbiAgRklMRV9PUl9DUkVBVEUgPSAnRmlsZU9yQ3JlYXRlJyxcblxuICAvKipcbiAgICogQSBmaWxlIG11c3QgZXhpc3QgYXQgdGhlIGdpdmVuIHBhdGguXG4gICAqL1xuICBGSUxFID0gJ0ZpbGUnLFxuXG4gIC8qKlxuICAgKiBBIFVOSVggc29ja2V0IG11c3QgZXhpc3QgYXQgdGhlIGdpdmVuIHBhdGguXG4gICAqL1xuICBTT0NLRVQgPSAnU29ja2V0JyxcblxuICAvKipcbiAgICogQSBjaGFyYWN0ZXIgZGV2aWNlIG11c3QgZXhpc3QgYXQgdGhlIGdpdmVuIHBhdGguXG4gICAqL1xuICBDSEFSX0RFVklDRSA9ICdDaGFyRGV2aWNlJyxcblxuICAvKipcbiAgICogQSBibG9jayBkZXZpY2UgbXVzdCBleGlzdCBhdCB0aGUgZ2l2ZW4gcGF0aC5cbiAgICovXG4gIEJMT0NLX0RFVklDRSA9ICdCbG9ja0RldmljZScsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIE5GUyBiYXNlZCB2b2x1bWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmZzVm9sdW1lT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFNlcnZlciBpcyB0aGUgaG9zdG5hbWUgb3IgSVAgYWRkcmVzcyBvZiB0aGUgTkZTIHNlcnZlci5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgd2lsbCBmb3JjZSB0aGUgTkZTIGV4cG9ydCB0byBiZSBtb3VudGVkIHdpdGggcmVhZC1vbmx5IHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBhdGggdGhhdCBpcyBleHBvcnRlZCBieSB0aGUgTkZTIHNlcnZlclxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBDU0kgZHJpdmVyIGJhc2VkIHZvbHVtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDc2lWb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB2b2x1bWUgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvLWdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbGVzeXN0ZW0gdHlwZSB0byBtb3VudC4gRXguIFwiZXh0NFwiLCBcInhmc1wiLCBcIm50ZnNcIi4gSWYgbm90IHByb3ZpZGVkLFxuICAgKiB0aGUgZW1wdHkgdmFsdWUgaXMgcGFzc2VkIHRvIHRoZSBhc3NvY2lhdGVkIENTSSBkcml2ZXIsIHdoaWNoIHdpbGxcbiAgICogZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGZpbGVzeXN0ZW0gdG8gYXBwbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZHJpdmVyLWRlcGVuZGVudFxuICAgKi9cbiAgcmVhZG9ubHkgZnNUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBtb3VudGVkIHZvbHVtZSBzaG91bGQgYmUgcmVhZC1vbmx5IG9yIG5vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZE9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbnkgZHJpdmVyLXNwZWNpZmljIGF0dHJpYnV0ZXMgdG8gcGFzcyB0byB0aGUgQ1NJIHZvbHVtZSBidWlsZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59Il19
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZvbHVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFvQztBQUNwQywyQ0FBbUQ7QUFFbkQscUNBQXFDO0FBZXJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUNILE1BQWEsTUFBTyxTQUFRLHNCQUFTO0lBRW5DOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksTUFBTSxDQUFDLHdCQUF3QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQWdCLEVBQUUsVUFBNkMsRUFBRTtRQUNwSSxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLFFBQVEsRUFBRSxFQUFFO1lBQzlELG9CQUFvQixFQUFFO2dCQUNwQixRQUFRO2dCQUNSLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU07Z0JBQ2hDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztnQkFDNUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSzthQUNwQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBZ0IsRUFBRSxPQUFlLEVBQUUsVUFBa0MsRUFBRTtRQUMvSCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxhQUFhLFFBQVEsRUFBRSxFQUFFO1lBQ3BFLFNBQVMsRUFBRTtnQkFDVCxRQUFRO2dCQUNSLE9BQU87Z0JBQ1AsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksb0NBQW9DLENBQUMsSUFBSTtnQkFDN0UsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTTtnQkFDaEMsSUFBSSxFQUFFLE9BQU8sQ0FB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QUVHO0lBQ0gsZ0RBQTBCLENBQUE7SUFFMUI7O09BRUc7SUFDSCxrREFBNEIsQ0FBQTtBQUM5QixDQUFDLEVBN0NXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBNkM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hbWVzLCBTaXplIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBjb25maWdtYXAgZnJvbSAnLi9jb25maWctbWFwJztcbmltcG9ydCAqIGFzIGs4cyBmcm9tICcuL2ltcG9ydHMvazhzJztcbmltcG9ydCAqIGFzIHB2YyBmcm9tICcuL3B2Yyc7XG5pbXBvcnQgKiBhcyBzZWNyZXQgZnJvbSAnLi9zZWNyZXQnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwaWVjZSBvZiBzdG9yYWdlIGluIHRoZSBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTdG9yYWdlIGV4dGVuZHMgSUNvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhlIHBpZWNlIG9mIHN0b3JhZ2UgaW50byBhIGNvbmNyZXRlIHZvbHVtZS5cbiAgICovXG4gIGFzVm9sdW1lKCk6IFZvbHVtZTtcbn1cblxuLyoqXG4gKiBWb2x1bWUgcmVwcmVzZW50cyBhIG5hbWVkIHZvbHVtZSBpbiBhIHBvZCB0aGF0IG1heSBiZSBhY2Nlc3NlZCBieSBhbnlcbiAqIGNvbnRhaW5lciBpbiB0aGUgcG9kLlxuICpcbiAqIERvY2tlciBhbHNvIGhhcyBhIGNvbmNlcHQgb2Ygdm9sdW1lcywgdGhvdWdoIGl0IGlzIHNvbWV3aGF0IGxvb3NlciBhbmQgbGVzc1xuICogbWFuYWdlZC4gSW4gRG9ja2VyLCBhIHZvbHVtZSBpcyBzaW1wbHkgYSBkaXJlY3Rvcnkgb24gZGlzayBvciBpbiBhbm90aGVyXG4gKiBDb250YWluZXIuIExpZmV0aW1lcyBhcmUgbm90IG1hbmFnZWQgYW5kIHVudGlsIHZlcnkgcmVjZW50bHkgdGhlcmUgd2VyZSBvbmx5XG4gKiBsb2NhbC1kaXNrLWJhY2tlZCB2b2x1bWVzLiBEb2NrZXIgbm93IHByb3ZpZGVzIHZvbHVtZSBkcml2ZXJzLCBidXQgdGhlXG4gKiBmdW5jdGlvbmFsaXR5IGlzIHZlcnkgbGltaXRlZCBmb3Igbm93IChlLmcuIGFzIG9mIERvY2tlciAxLjcgb25seSBvbmUgdm9sdW1lXG4gKiBkcml2ZXIgaXMgYWxsb3dlZCBwZXIgQ29udGFpbmVyIGFuZCB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBwYXJhbWV0ZXJzIHRvXG4gKiB2b2x1bWVzKS5cbiAqXG4gKiBBIEt1YmVybmV0ZXMgdm9sdW1lLCBvbiB0aGUgb3RoZXIgaGFuZCwgaGFzIGFuIGV4cGxpY2l0IGxpZmV0aW1lIC0gdGhlIHNhbWVcbiAqIGFzIHRoZSBQb2QgdGhhdCBlbmNsb3NlcyBpdC4gQ29uc2VxdWVudGx5LCBhIHZvbHVtZSBvdXRsaXZlcyBhbnkgQ29udGFpbmVyc1xuICogdGhhdCBydW4gd2l0aGluIHRoZSBQb2QsIGFuZCBkYXRhIGlzIHByZXNlcnZlZCBhY3Jvc3MgQ29udGFpbmVyIHJlc3RhcnRzLiBPZlxuICogY291cnNlLCB3aGVuIGEgUG9kIGNlYXNlcyB0byBleGlzdCwgdGhlIHZvbHVtZSB3aWxsIGNlYXNlIHRvIGV4aXN0LCB0b28uXG4gKiBQZXJoYXBzIG1vcmUgaW1wb3J0YW50bHkgdGhhbiB0aGlzLCBLdWJlcm5ldGVzIHN1cHBvcnRzIG1hbnkgdHlwZXMgb2ZcbiAqIHZvbHVtZXMsIGFuZCBhIFBvZCBjYW4gdXNlIGFueSBudW1iZXIgb2YgdGhlbSBzaW11bHRhbmVvdXNseS5cbiAqXG4gKiBBdCBpdHMgY29yZSwgYSB2b2x1bWUgaXMganVzdCBhIGRpcmVjdG9yeSwgcG9zc2libHkgd2l0aCBzb21lIGRhdGEgaW4gaXQsXG4gKiB3aGljaCBpcyBhY2Nlc3NpYmxlIHRvIHRoZSBDb250YWluZXJzIGluIGEgUG9kLiBIb3cgdGhhdCBkaXJlY3RvcnkgY29tZXMgdG9cbiAqIGJlLCB0aGUgbWVkaXVtIHRoYXQgYmFja3MgaXQsIGFuZCB0aGUgY29udGVudHMgb2YgaXQgYXJlIGRldGVybWluZWQgYnkgdGhlXG4gKiBwYXJ0aWN1bGFyIHZvbHVtZSB0eXBlIHVzZWQuXG4gKlxuICogVG8gdXNlIGEgdm9sdW1lLCBhIFBvZCBzcGVjaWZpZXMgd2hhdCB2b2x1bWVzIHRvIHByb3ZpZGUgZm9yIHRoZSBQb2QgKHRoZVxuICogLnNwZWMudm9sdW1lcyBmaWVsZCkgYW5kIHdoZXJlIHRvIG1vdW50IHRob3NlIGludG8gQ29udGFpbmVycyAodGhlXG4gKiAuc3BlYy5jb250YWluZXJzWypdLnZvbHVtZU1vdW50cyBmaWVsZCkuXG4gKlxuICogQSBwcm9jZXNzIGluIGEgY29udGFpbmVyIHNlZXMgYSBmaWxlc3lzdGVtIHZpZXcgY29tcG9zZWQgZnJvbSB0aGVpciBEb2NrZXJcbiAqIGltYWdlIGFuZCB2b2x1bWVzLiBUaGUgRG9ja2VyIGltYWdlIGlzIGF0IHRoZSByb290IG9mIHRoZSBmaWxlc3lzdGVtXG4gKiBoaWVyYXJjaHksIGFuZCBhbnkgdm9sdW1lcyBhcmUgbW91bnRlZCBhdCB0aGUgc3BlY2lmaWVkIHBhdGhzIHdpdGhpbiB0aGVcbiAqIGltYWdlLiBWb2x1bWVzIGNhbiBub3QgbW91bnQgb250byBvdGhlciB2b2x1bWVzXG4gKi9cbmV4cG9ydCBjbGFzcyBWb2x1bWUgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJU3RvcmFnZSB7XG5cbiAgLyoqXG4gICAqIE1vdW50cyBhbiBBbWF6b24gV2ViIFNlcnZpY2VzIChBV1MpIEVCUyB2b2x1bWUgaW50byB5b3VyIHBvZC5cbiAgICogVW5saWtlIGVtcHR5RGlyLCB3aGljaCBpcyBlcmFzZWQgd2hlbiBhIHBvZCBpcyByZW1vdmVkLCB0aGUgY29udGVudHMgb2YgYW4gRUJTIHZvbHVtZSBhcmVcbiAgICogcGVyc2lzdGVkIGFuZCB0aGUgdm9sdW1lIGlzIHVubW91bnRlZC4gVGhpcyBtZWFucyB0aGF0IGFuIEVCUyB2b2x1bWUgY2FuIGJlIHByZS1wb3B1bGF0ZWQgd2l0aCBkYXRhLFxuICAgKiBhbmQgdGhhdCBkYXRhIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBwb2RzLlxuICAgKlxuICAgKiBUaGVyZSBhcmUgc29tZSByZXN0cmljdGlvbnMgd2hlbiB1c2luZyBhbiBhd3NFbGFzdGljQmxvY2tTdG9yZSB2b2x1bWU6XG4gICAqXG4gICAqIC0gdGhlIG5vZGVzIG9uIHdoaWNoIHBvZHMgYXJlIHJ1bm5pbmcgbXVzdCBiZSBBV1MgRUMyIGluc3RhbmNlcy5cbiAgICogLSB0aG9zZSBpbnN0YW5jZXMgbmVlZCB0byBiZSBpbiB0aGUgc2FtZSByZWdpb24gYW5kIGF2YWlsYWJpbGl0eSB6b25lIGFzIHRoZSBFQlMgdm9sdW1lLlxuICAgKiAtIEVCUyBvbmx5IHN1cHBvcnRzIGEgc2luZ2xlIEVDMiBpbnN0YW5jZSBtb3VudGluZyBhIHZvbHVtZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUF3c0VsYXN0aWNCbG9ja1N0b3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHZvbHVtZUlkOiBzdHJpbmcsIG9wdGlvbnM6IEF3c0VsYXN0aWNCbG9ja1N0b3JlVm9sdW1lT3B0aW9ucyA9IHt9KTogVm9sdW1lIHtcbiAgICByZXR1cm4gbmV3IFZvbHVtZShzY29wZSwgaWQsIG9wdGlvbnMubmFtZSA/PyBgZWJzLSR7dm9sdW1lSWR9YCwge1xuICAgICAgYXdzRWxhc3RpY0Jsb2NrU3RvcmU6IHtcbiAgICAgICAgdm9sdW1lSWQsXG4gICAgICAgIGZzVHlwZTogb3B0aW9ucy5mc1R5cGUgPz8gJ2V4dDQnLFxuICAgICAgICBwYXJ0aXRpb246IG9wdGlvbnMucGFydGl0aW9uLFxuICAgICAgICByZWFkT25seTogb3B0aW9ucy5yZWFkT25seSA/PyBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTW91bnRzIGEgTWljcm9zb2Z0IEF6dXJlIERhdGEgRGlzayBpbnRvIGEgcG9kLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXp1cmVEaXNrKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGRpc2tOYW1lOiBzdHJpbmcsIGRpc2tVcmk6IHN0cmluZywgb3B0aW9uczogQXp1cmVEaXNrVm9sdW1lT3B0aW9ucyA9IHt9KTogVm9sdW1lIHtcbiAgICByZXR1cm4gbmV3IFZvbHVtZShzY29wZSwgaWQsIG9wdGlvbnMubmFtZSA/PyBgYXp1cmVkaXNrLSR7ZGlza05hbWV9YCwge1xuICAgICAgYXp1cmVEaXNrOiB7XG4gICAgICAgIGRpc2tOYW1lLFxuICAgICAgICBkaXNrVXJpLFxuICAgICAgICBjYWNoaW5nTW9kZTogb3B0aW9ucy5jYWNoaW5nTW9kZSA/PyBBenVyZURpc2tQZXJzaXN0ZW50Vm9sdW1lQ2FjaGluZ01vZGUuTk9ORSxcbiAgICAgICAgZnNUeXBlOiBvcHRpb25zLmZzVHlwZSA/PyAnZXh0NCcsXG4gICAgICAgIGtpbmQ6IG9wdGlvbnMua2luZCA/PyBBenVyZURpc2tQZXJzaXN0ZW50Vm9sdW1lS2luZC5TSEFSRUQsXG4gICAgICAgIHJlYWRPbmx5OiBvcHRpb25zLnJlYWRPbmx5ID8/IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3VudHMgYSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSkgcGVyc2lzdGVudCBkaXNrIChQRCkgaW50byB5b3VyIFBvZC5cbiAgICogVW5saWtlIGVtcHR5RGlyLCB3aGljaCBpcyBlcmFzZWQgd2hlbiBhIHBvZCBpcyByZW1vdmVkLCB0aGUgY29udGVudHMgb2YgYSBQRCBhcmVcbiAgICogcHJlc2VydmVkIGFuZCB0aGUgdm9sdW1lIGlzIG1lcmVseSB1bm1vdW50ZWQuIFRoaXMgbWVhbnMgdGhhdCBhIFBEIGNhbiBiZSBwcmUtcG9wdWxhdGVkXG4gICAqIHdpdGggZGF0YSwgYW5kIHRoYXQgZGF0YSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gcG9kcy5cbiAgICpcbiAgICogVGhlcmUgYXJlIHNvbWUgcmVzdHJpY3Rpb25zIHdoZW4gdXNpbmcgYSBnY2VQZXJzaXN0ZW50RGlzazpcbiAgICpcbiAgICogLSB0aGUgbm9kZXMgb24gd2hpY2ggUG9kcyBhcmUgcnVubmluZyBtdXN0IGJlIEdDRSBWTXNcbiAgICogLSB0aG9zZSBWTXMgbmVlZCB0byBiZSBpbiB0aGUgc2FtZSBHQ0UgcHJvamVjdCBhbmQgem9uZSBhcyB0aGUgcGVyc2lzdGVudCBkaXNrXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21HY2VQZXJzaXN0ZW50RGlzayhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwZE5hbWU6IHN0cmluZywgb3B0aW9uczogR0NFUGVyc2lzdGVudERpc2tWb2x1bWVPcHRpb25zID0ge30pOiBWb2x1bWUge1xuICAgIHJldHVybiBuZXcgVm9sdW1lKHNjb3BlLCBpZCwgb3B0aW9ucy5uYW1lID8/IGBnY2VkaXNrLSR7cGROYW1lfWAsIHtcbiAgICAgIGdjZVBlcnNpc3RlbnREaXNrOiB7XG4gICAgICAgIHBkTmFtZSxcbiAgICAgICAgZnNUeXBlOiBvcHRpb25zLmZzVHlwZSA/PyAnZXh0NCcsXG4gICAgICAgIHBhcnRpdGlvbjogb3B0aW9ucy5wYXJ0aXRpb24sXG4gICAgICAgIHJlYWRPbmx5OiBvcHRpb25zLnJlYWRPbmx5ID8/IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZSB0aGUgdm9sdW1lIGZyb20gYSBDb25maWdNYXAuXG4gICAqXG4gICAqIFRoZSBjb25maWdNYXAgcmVzb3VyY2UgcHJvdmlkZXMgYSB3YXkgdG8gaW5qZWN0IGNvbmZpZ3VyYXRpb24gZGF0YSBpbnRvXG4gICAqIFBvZHMuIFRoZSBkYXRhIHN0b3JlZCBpbiBhIENvbmZpZ01hcCBvYmplY3QgY2FuIGJlIHJlZmVyZW5jZWQgaW4gYSB2b2x1bWVcbiAgICogb2YgdHlwZSBjb25maWdNYXAgYW5kIHRoZW4gY29uc3VtZWQgYnkgY29udGFpbmVyaXplZCBhcHBsaWNhdGlvbnMgcnVubmluZ1xuICAgKiBpbiBhIFBvZC5cbiAgICpcbiAgICogV2hlbiByZWZlcmVuY2luZyBhIGNvbmZpZ01hcCBvYmplY3QsIHlvdSBjYW4gc2ltcGx5IHByb3ZpZGUgaXRzIG5hbWUgaW4gdGhlXG4gICAqIHZvbHVtZSB0byByZWZlcmVuY2UgaXQuIFlvdSBjYW4gYWxzbyBjdXN0b21pemUgdGhlIHBhdGggdG8gdXNlIGZvciBhXG4gICAqIHNwZWNpZmljIGVudHJ5IGluIHRoZSBDb25maWdNYXAuXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWdNYXAgVGhlIGNvbmZpZyBtYXAgdG8gdXNlIHRvIHBvcHVsYXRlIHRoZSB2b2x1bWUuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbmZpZ01hcChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25maWdNYXA6IGNvbmZpZ21hcC5JQ29uZmlnTWFwLCBvcHRpb25zOiBDb25maWdNYXBWb2x1bWVPcHRpb25zID0ge30pOiBWb2x1bWUge1xuICAgIHJldHVybiBuZXcgVm9sdW1lKHNjb3BlLCBpZCwgb3B0aW9ucy5uYW1lID8/IGBjb25maWdtYXAtJHtjb25maWdNYXAubmFtZX1gLCB7XG4gICAgICBjb25maWdNYXA6IHtcbiAgICAgICAgbmFtZTogY29uZmlnTWFwLm5hbWUsXG4gICAgICAgIGRlZmF1bHRNb2RlOiBvcHRpb25zLmRlZmF1bHRNb2RlLFxuICAgICAgICBvcHRpb25hbDogb3B0aW9ucy5vcHRpb25hbCxcbiAgICAgICAgaXRlbXM6IFZvbHVtZS5yZW5kZXJJdGVtcyhvcHRpb25zLml0ZW1zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQW4gZW1wdHlEaXIgdm9sdW1lIGlzIGZpcnN0IGNyZWF0ZWQgd2hlbiBhIFBvZCBpcyBhc3NpZ25lZCB0byBhIE5vZGUsIGFuZFxuICAgKiBleGlzdHMgYXMgbG9uZyBhcyB0aGF0IFBvZCBpcyBydW5uaW5nIG9uIHRoYXQgbm9kZS4gQXMgdGhlIG5hbWUgc2F5cywgaXQgaXNcbiAgICogaW5pdGlhbGx5IGVtcHR5LiBDb250YWluZXJzIGluIHRoZSBQb2QgY2FuIGFsbCByZWFkIGFuZCB3cml0ZSB0aGUgc2FtZVxuICAgKiBmaWxlcyBpbiB0aGUgZW1wdHlEaXIgdm9sdW1lLCB0aG91Z2ggdGhhdCB2b2x1bWUgY2FuIGJlIG1vdW50ZWQgYXQgdGhlIHNhbWVcbiAgICogb3IgZGlmZmVyZW50IHBhdGhzIGluIGVhY2ggQ29udGFpbmVyLiBXaGVuIGEgUG9kIGlzIHJlbW92ZWQgZnJvbSBhIG5vZGUgZm9yXG4gICAqIGFueSByZWFzb24sIHRoZSBkYXRhIGluIHRoZSBlbXB0eURpciBpcyBkZWxldGVkIGZvcmV2ZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL3ZvbHVtZXMjZW1wdHlkaXJcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FbXB0eURpcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEVtcHR5RGlyVm9sdW1lT3B0aW9ucyA9IHt9KTogVm9sdW1lIHtcbiAgICByZXR1cm4gbmV3IFZvbHVtZShzY29wZSwgaWQsIG5hbWUsIHtcbiAgICAgIGVtcHR5RGlyOiB7XG4gICAgICAgIG1lZGl1bTogb3B0aW9ucy5tZWRpdW0sXG4gICAgICAgIHNpemVMaW1pdDogb3B0aW9ucy5zaXplTGltaXRcbiAgICAgICAgICA/IGs4cy5RdWFudGl0eS5mcm9tU3RyaW5nKGAke29wdGlvbnMuc2l6ZUxpbWl0LnRvTWViaWJ5dGVzKCl9TWlgKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZSB0aGUgdm9sdW1lIGZyb20gYSBTZWNyZXQuXG4gICAqXG4gICAqIEEgc2VjcmV0IHZvbHVtZSBpcyB1c2VkIHRvIHBhc3Mgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHBhc3N3b3JkcywgdG8gUG9kcy5cbiAgICogWW91IGNhbiBzdG9yZSBzZWNyZXRzIGluIHRoZSBLdWJlcm5ldGVzIEFQSSBhbmQgbW91bnQgdGhlbSBhcyBmaWxlcyBmb3IgdXNlIGJ5IHBvZHNcbiAgICogd2l0aG91dCBjb3VwbGluZyB0byBLdWJlcm5ldGVzIGRpcmVjdGx5LlxuICAgKlxuICAgKiBzZWNyZXQgdm9sdW1lcyBhcmUgYmFja2VkIGJ5IHRtcGZzIChhIFJBTS1iYWNrZWQgZmlsZXN5c3RlbSlcbiAgICogc28gdGhleSBhcmUgbmV2ZXIgd3JpdHRlbiB0byBub24tdm9sYXRpbGUgc3RvcmFnZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMvI3NlY3JldFxuICAgKlxuICAgKiBAcGFyYW0gc2VjciBUaGUgc2VjcmV0IHRvIHVzZSB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWNyZXQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2Vjcjogc2VjcmV0LklTZWNyZXQsIG9wdGlvbnM6IFNlY3JldFZvbHVtZU9wdGlvbnMgPSB7fSk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBvcHRpb25zLm5hbWUgPz8gYHNlY3JldC0ke3NlY3IubmFtZX1gLCB7XG4gICAgICBzZWNyZXQ6IHtcbiAgICAgICAgc2VjcmV0TmFtZTogc2Vjci5uYW1lLFxuICAgICAgICBkZWZhdWx0TW9kZTogb3B0aW9ucy5kZWZhdWx0TW9kZSxcbiAgICAgICAgb3B0aW9uYWw6IG9wdGlvbnMub3B0aW9uYWwsXG4gICAgICAgIGl0ZW1zOiBWb2x1bWUucmVuZGVySXRlbXMob3B0aW9ucy5pdGVtcyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gbW91bnQgYSBQZXJzaXN0ZW50Vm9sdW1lIGludG8gYSBQb2QuXG4gICAqIFBlcnNpc3RlbnRWb2x1bWVDbGFpbXMgYXJlIGEgd2F5IGZvciB1c2VycyB0byBcImNsYWltXCIgZHVyYWJsZSBzdG9yYWdlIChzdWNoIGFzIGEgR0NFIFBlcnNpc3RlbnREaXNrIG9yIGFuIGlTQ1NJIHZvbHVtZSlcbiAgICogd2l0aG91dCBrbm93aW5nIHRoZSBkZXRhaWxzIG9mIHRoZSBwYXJ0aWN1bGFyIGNsb3VkIGVudmlyb25tZW50LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2UvcGVyc2lzdGVudC12b2x1bWVzL1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUGVyc2lzdGVudFZvbHVtZUNsYWltKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsXG4gICAgY2xhaW06IHB2Yy5JUGVyc2lzdGVudFZvbHVtZUNsYWltLFxuICAgIG9wdGlvbnM6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVZvbHVtZU9wdGlvbnMgPSB7fSk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBvcHRpb25zLm5hbWUgPz8gYHB2Yy0ke2NsYWltLm5hbWV9YCwge1xuICAgICAgcGVyc2lzdGVudFZvbHVtZUNsYWltOiB7XG4gICAgICAgIGNsYWltTmFtZTogY2xhaW0ubmFtZSxcbiAgICAgICAgcmVhZE9ubHk6IG9wdGlvbnMucmVhZE9ubHkgPz8gZmFsc2UsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gbW91bnQgYSBmaWxlIG9yIGRpcmVjdG9yeSBmcm9tIHRoZSBob3N0IG5vZGUncyBmaWxlc3lzdGVtIGludG8gYSBQb2QuXG4gICAqIFRoaXMgaXMgbm90IHNvbWV0aGluZyB0aGF0IG1vc3QgUG9kcyB3aWxsIG5lZWQsIGJ1dCBpdCBvZmZlcnMgYSBwb3dlcmZ1bFxuICAgKiBlc2NhcGUgaGF0Y2ggZm9yIHNvbWUgYXBwbGljYXRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2Uvdm9sdW1lcy8jaG9zdHBhdGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUhvc3RQYXRoKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgb3B0aW9uczogSG9zdFBhdGhWb2x1bWVPcHRpb25zKTogVm9sdW1lIHtcbiAgICByZXR1cm4gbmV3IFZvbHVtZShzY29wZSwgaWQsIG5hbWUsIHtcbiAgICAgIGhvc3RQYXRoOiB7XG4gICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aCxcbiAgICAgICAgdHlwZTogb3B0aW9ucy50eXBlID8/IEhvc3RQYXRoVm9sdW1lVHlwZS5ERUZBVUxULFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIG1vdW50IGFuIE5GUyBzaGFyZSBpbnRvIGEgUG9kLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2Uvdm9sdW1lcy8jbmZzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21OZnMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nLCBvcHRpb25zOiBOZnNWb2x1bWVPcHRpb25zKTogVm9sdW1lIHtcbiAgICByZXR1cm4gbmV3IFZvbHVtZShzY29wZSwgaWQsIG5hbWUsIHtcbiAgICAgIG5mczoge1xuICAgICAgICBzZXJ2ZXI6IG9wdGlvbnMuc2VydmVyLFxuICAgICAgICBwYXRoOiBvcHRpb25zLnBhdGgsXG4gICAgICAgIHJlYWRPbmx5OiBvcHRpb25zLnJlYWRPbmx5LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZSB0aGUgdm9sdW1lIGZyb20gYSBDU0kgZHJpdmVyLCBmb3IgZXhhbXBsZSB0aGUgU2VjcmV0cyBTdG9yZSBDU0lcbiAgICogRHJpdmVyOiBodHRwczovL3NlY3JldHMtc3RvcmUtY3NpLWRyaXZlci5zaWdzLms4cy5pby9pbnRyb2R1Y3Rpb24uaHRtbC5cbiAgICogV2hpY2ggaW4gdHVybiBuZWVkcyBhbiBhc3NvY2lhdGVkIHByb3ZpZGVyIHRvIHNvdXJjZSB0aGUgc2VjcmV0cywgc3VjaCBhc1xuICAgKiB0aGUgQVdTIFNlY3JldHMgTWFuYWdlciBhbmQgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZSBwcm92aWRlcjpcbiAgICogaHR0cHM6Ly9hd3MuZ2l0aHViLmlvL3NlY3JldHMtc3RvcmUtY3NpLWRyaXZlci1wcm92aWRlci1hd3MvLlxuICAgKlxuICAgKiBAcGFyYW0gZHJpdmVyIFRoZSBuYW1lIG9mIHRoZSBDU0kgZHJpdmVyIHRvIHVzZSB0byBwb3B1bGF0ZSB0aGUgdm9sdW1lLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgQ1NJIHZvbHVtZSwgaW5jbHVkaW5nIGRyaXZlci1zcGVjaWZpYyBvbmVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ3NpKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGRyaXZlcjogc3RyaW5nLCBvcHRpb25zOiBDc2lWb2x1bWVPcHRpb25zID0ge30pOiBWb2x1bWUge1xuICAgIHJldHVybiBuZXcgVm9sdW1lKHNjb3BlLCBpZCwgb3B0aW9ucy5uYW1lID8/IE5hbWVzLnRvRG5zTGFiZWwoc2NvcGUsIHsgZXh0cmE6IFtpZF0gfSksIHtcbiAgICAgIGNzaToge1xuICAgICAgICBkcml2ZXI6IGRyaXZlcixcbiAgICAgICAgZnNUeXBlOiBvcHRpb25zLmZzVHlwZSxcbiAgICAgICAgcmVhZE9ubHk6IG9wdGlvbnMucmVhZE9ubHksXG4gICAgICAgIHZvbHVtZUF0dHJpYnV0ZXM6IG9wdGlvbnMuYXR0cmlidXRlcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgdm9sdW1lIHdpdGggYW4gYXJiaXRyYXJ5IG5hbWUgYW5kIG5vIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21OYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyBWb2x1bWUoc2NvcGUsIGlkLCBuYW1lLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZW5kZXJJdGVtcyA9IChpdGVtcz86IHsgW2tleTogc3RyaW5nXTogUGF0aE1hcHBpbmcgfSk6IHVuZGVmaW5lZCB8IEFycmF5PGs4cy5LZXlUb1BhdGg+ID0+IHtcbiAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8azhzLktleVRvUGF0aD4oKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhpdGVtcykuc29ydCgpKSB7XG4gICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgIGtleSxcbiAgICAgICAgcGF0aDogaXRlbXNba2V5XS5wYXRoLFxuICAgICAgICBtb2RlOiBpdGVtc1trZXldLm1vZGUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBPbWl0PGs4cy5Wb2x1bWUsICduYW1lJz4pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMubmFtZSA9IG5hbWUuc2xpY2UoMCwgNjMpO1xuICB9XG5cbiAgcHVibGljIGFzVm9sdW1lKCk6IFZvbHVtZSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuVm9sdW1lIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgLi4udGhpcy5jb25maWcsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgb2YgYFZvbHVtZS5mcm9tR2NlUGVyc2lzdGVudERpc2tgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdDRVBlcnNpc3RlbnREaXNrVm9sdW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdm9sdW1lIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0by1nZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gdHlwZSBvZiB0aGUgdm9sdW1lIHRoYXQgeW91IHdhbnQgdG8gbW91bnQuXG4gICAqIFRpcDogRW5zdXJlIHRoYXQgdGhlIGZpbGVzeXN0ZW0gdHlwZSBpcyBzdXBwb3J0ZWQgYnkgdGhlIGhvc3Qgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9zdG9yYWdlL3ZvbHVtZXMjYXdzZWxhc3RpY2Jsb2Nrc3RvcmVcbiAgICogQGRlZmF1bHQgJ2V4dDQnXG4gICAqL1xuICByZWFkb25seSBmc1R5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gaW4gdGhlIHZvbHVtZSB0aGF0IHlvdSB3YW50IHRvIG1vdW50LiBJZiBvbWl0dGVkLCB0aGUgZGVmYXVsdCBpcyB0byBtb3VudCBieSB2b2x1bWUgbmFtZS5cbiAgICogRXhhbXBsZXM6IEZvciB2b2x1bWUgL2Rldi9zZGExLCB5b3Ugc3BlY2lmeSB0aGUgcGFydGl0aW9uIGFzIFwiMVwiLlxuICAgKiBTaW1pbGFybHksIHRoZSB2b2x1bWUgcGFydGl0aW9uIGZvciAvZGV2L3NkYSBpcyBcIjBcIiAob3IgeW91IGNhbiBsZWF2ZSB0aGUgcHJvcGVydHkgZW1wdHkpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHBhcnRpdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmeSBcInRydWVcIiB0byBmb3JjZSBhbmQgc2V0IHRoZSBSZWFkT25seSBwcm9wZXJ0eSBpbiBWb2x1bWVNb3VudHMgdG8gXCJ0cnVlXCIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS92b2x1bWVzI2F3c2VsYXN0aWNibG9ja3N0b3JlXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBPcHRpb25zIG9mIGBWb2x1bWUuZnJvbUF6dXJlRGlza2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXp1cmVEaXNrVm9sdW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdm9sdW1lIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0by1nZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvc3QgQ2FjaGluZyBtb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVDYWNoaW5nTW9kZS5OT05FLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGluZ01vZGU/OiBBenVyZURpc2tQZXJzaXN0ZW50Vm9sdW1lQ2FjaGluZ01vZGU7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gdHlwZSB0byBtb3VudC4gTXVzdCBiZSBhIGZpbGVzeXN0ZW0gdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGhvc3Qgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2V4dDQnXG4gICAqL1xuICByZWFkb25seSBmc1R5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEtpbmQgb2YgZGlzay5cbiAgICpcbiAgICogQGRlZmF1bHQgQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZUtpbmQuU0hBUkVEXG4gICAqL1xuICByZWFkb25seSBraW5kPzogQXp1cmVEaXNrUGVyc2lzdGVudFZvbHVtZUtpbmQ7XG5cbiAgLyoqXG4gICAqIEZvcmNlIHRoZSBSZWFkT25seSBzZXR0aW5nIGluIFZvbHVtZU1vdW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRPbmx5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIG9mIGBWb2x1bWUuZnJvbUF3c0VsYXN0aWNCbG9ja1N0b3JlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHZvbHVtZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG8tZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaWxlc3lzdGVtIHR5cGUgb2YgdGhlIHZvbHVtZSB0aGF0IHlvdSB3YW50IHRvIG1vdW50LlxuICAgKiBUaXA6IEVuc3VyZSB0aGF0IHRoZSBmaWxlc3lzdGVtIHR5cGUgaXMgc3VwcG9ydGVkIGJ5IHRoZSBob3N0IG9wZXJhdGluZyBzeXN0ZW0uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvc3RvcmFnZS92b2x1bWVzI2F3c2VsYXN0aWNibG9ja3N0b3JlXG4gICAqIEBkZWZhdWx0ICdleHQ0J1xuICAgKi9cbiAgcmVhZG9ubHkgZnNUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydGl0aW9uIGluIHRoZSB2b2x1bWUgdGhhdCB5b3Ugd2FudCB0byBtb3VudC4gSWYgb21pdHRlZCwgdGhlIGRlZmF1bHQgaXMgdG8gbW91bnQgYnkgdm9sdW1lIG5hbWUuXG4gICAqIEV4YW1wbGVzOiBGb3Igdm9sdW1lIC9kZXYvc2RhMSwgeW91IHNwZWNpZnkgdGhlIHBhcnRpdGlvbiBhcyBcIjFcIi5cbiAgICogU2ltaWxhcmx5LCB0aGUgdm9sdW1lIHBhcnRpdGlvbiBmb3IgL2Rldi9zZGEgaXMgXCIwXCIgKG9yIHlvdSBjYW4gbGVhdmUgdGhlIHByb3BlcnR5IGVtcHR5KS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBwYXJ0aXRpb24uXG4gICAqL1xuICByZWFkb25seSBwYXJ0aXRpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgXCJ0cnVlXCIgdG8gZm9yY2UgYW5kIHNldCB0aGUgUmVhZE9ubHkgcHJvcGVydHkgaW4gVm9sdW1lTW91bnRzIHRvIFwidHJ1ZVwiLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3N0b3JhZ2Uvdm9sdW1lcyNhd3NlbGFzdGljYmxvY2tzdG9yZVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZE9ubHk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBDb25maWdNYXAtYmFzZWQgdm9sdW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ01hcFZvbHVtZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHZvbHVtZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF1dG8tZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNb2RlIGJpdHMgdG8gdXNlIG9uIGNyZWF0ZWQgZmlsZXMgYnkgZGVmYXVsdC4gTXVzdCBiZSBhIHZhbHVlIGJldHdlZW4gMCBhbmRcbiAgICogMDc3Ny4gRGVmYXVsdHMgdG8gMDY0NC4gRGlyZWN0b3JpZXMgd2l0aGluIHRoZSBwYXRoIGFyZSBub3QgYWZmZWN0ZWQgYnlcbiAgICogdGhpcyBzZXR0aW5nLiBUaGlzIG1pZ2h0IGJlIGluIGNvbmZsaWN0IHdpdGggb3RoZXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGVcbiAgICogZmlsZSBtb2RlLCBsaWtlIGZzR3JvdXAsIGFuZCB0aGUgcmVzdWx0IGNhbiBiZSBvdGhlciBtb2RlIGJpdHMgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAwNjQ0LiBEaXJlY3RvcmllcyB3aXRoaW4gdGhlIHBhdGggYXJlIG5vdCBhZmZlY3RlZCBieSB0aGlzXG4gICAqIHNldHRpbmcuIFRoaXMgbWlnaHQgYmUgaW4gY29uZmxpY3Qgd2l0aCBvdGhlciBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBmaWxlXG4gICAqIG1vZGUsIGxpa2UgZnNHcm91cCwgYW5kIHRoZSByZXN1bHQgY2FuIGJlIG90aGVyIG1vZGUgYml0cyBzZXQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0TW9kZT86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSBDb25maWdNYXAgb3IgaXRzIGtleXMgbXVzdCBiZSBkZWZpbmVkLlxuICAgKiBAZGVmYXVsdCAtIHVuZG9jdW1lbnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9uYWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiB1bnNwZWNpZmllZCwgZWFjaCBrZXktdmFsdWUgcGFpciBpbiB0aGUgRGF0YSBmaWVsZCBvZiB0aGUgcmVmZXJlbmNlZFxuICAgKiBDb25maWdNYXAgd2lsbCBiZSBwcm9qZWN0ZWQgaW50byB0aGUgdm9sdW1lIGFzIGEgZmlsZSB3aG9zZSBuYW1lIGlzIHRoZSBrZXlcbiAgICogYW5kIGNvbnRlbnQgaXMgdGhlIHZhbHVlLiBJZiBzcGVjaWZpZWQsIHRoZSBsaXN0ZWQga2V5cyB3aWxsIGJlIHByb2plY3RlZFxuICAgKiBpbnRvIHRoZSBzcGVjaWZpZWQgcGF0aHMsIGFuZCB1bmxpc3RlZCBrZXlzIHdpbGwgbm90IGJlIHByZXNlbnQuIElmIGEga2V5XG4gICAqIGlzIHNwZWNpZmllZCB3aGljaCBpcyBub3QgcHJlc2VudCBpbiB0aGUgQ29uZmlnTWFwLCB0aGUgdm9sdW1lIHNldHVwIHdpbGxcbiAgICogZXJyb3IgdW5sZXNzIGl0IGlzIG1hcmtlZCBvcHRpb25hbC4gUGF0aHMgbXVzdCBiZSByZWxhdGl2ZSBhbmQgbWF5IG5vdFxuICAgKiBjb250YWluIHRoZSAnLi4nIHBhdGggb3Igc3RhcnQgd2l0aCAnLi4nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG1hcHBpbmdcbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1zPzogeyBba2V5OiBzdHJpbmddOiBQYXRoTWFwcGluZyB9O1xufVxuXG4vKipcbiAqIE1hcHMgYSBzdHJpbmcga2V5IHRvIGEgcGF0aCB3aXRoaW4gYSB2b2x1bWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0aE1hcHBpbmcge1xuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIGZpbGUgdG8gbWFwIHRoZSBrZXkgdG8uIE1heSBub3QgYmUgYW4gYWJzb2x1dGVcbiAgICogcGF0aC4gTWF5IG5vdCBjb250YWluIHRoZSBwYXRoIGVsZW1lbnQgJy4uJy4gTWF5IG5vdCBzdGFydCB3aXRoIHRoZSBzdHJpbmdcbiAgICogJy4uJy5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWw6IG1vZGUgYml0cyB0byB1c2Ugb24gdGhpcyBmaWxlLCBtdXN0IGJlIGEgdmFsdWUgYmV0d2VlbiAwIGFuZFxuICAgKiAwNzc3LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgdm9sdW1lIGRlZmF1bHRNb2RlIHdpbGwgYmUgdXNlZC4gVGhpcyBtaWdodCBiZVxuICAgKiBpbiBjb25mbGljdCB3aXRoIG90aGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGZpbGUgbW9kZSwgbGlrZSBmc0dyb3VwLCBhbmRcbiAgICogdGhlIHJlc3VsdCBjYW4gYmUgb3RoZXIgbW9kZSBiaXRzIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igdm9sdW1lcyBwb3B1bGF0ZWQgd2l0aCBhbiBlbXB0eSBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1wdHlEaXJWb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGVtcHR5RGlyIHZvbHVtZXMgYXJlIHN0b3JlZCBvbiB3aGF0ZXZlciBtZWRpdW0gaXMgYmFja2luZyB0aGVcbiAgICogbm9kZSAtIHRoYXQgbWlnaHQgYmUgZGlzayBvciBTU0Qgb3IgbmV0d29yayBzdG9yYWdlLCBkZXBlbmRpbmcgb24geW91clxuICAgKiBlbnZpcm9ubWVudC4gSG93ZXZlciwgeW91IGNhbiBzZXQgdGhlIGVtcHR5RGlyLm1lZGl1bSBmaWVsZCB0b1xuICAgKiBgRW1wdHlEaXJNZWRpdW0uTUVNT1JZYCB0byB0ZWxsIEt1YmVybmV0ZXMgdG8gbW91bnQgYSB0bXBmcyAoUkFNLWJhY2tlZFxuICAgKiBmaWxlc3lzdGVtKSBmb3IgeW91IGluc3RlYWQuIFdoaWxlIHRtcGZzIGlzIHZlcnkgZmFzdCwgYmUgYXdhcmUgdGhhdCB1bmxpa2VcbiAgICogZGlza3MsIHRtcGZzIGlzIGNsZWFyZWQgb24gbm9kZSByZWJvb3QgYW5kIGFueSBmaWxlcyB5b3Ugd3JpdGUgd2lsbCBjb3VudFxuICAgKiBhZ2FpbnN0IHlvdXIgQ29udGFpbmVyJ3MgbWVtb3J5IGxpbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBFbXB0eURpck1lZGl1bS5ERUZBVUxUXG4gICAqL1xuICByZWFkb25seSBtZWRpdW0/OiBFbXB0eURpck1lZGl1bTtcblxuICAvKipcbiAgICogVG90YWwgYW1vdW50IG9mIGxvY2FsIHN0b3JhZ2UgcmVxdWlyZWQgZm9yIHRoaXMgRW1wdHlEaXIgdm9sdW1lLiBUaGUgc2l6ZVxuICAgKiBsaW1pdCBpcyBhbHNvIGFwcGxpY2FibGUgZm9yIG1lbW9yeSBtZWRpdW0uIFRoZSBtYXhpbXVtIHVzYWdlIG9uIG1lbW9yeVxuICAgKiBtZWRpdW0gRW1wdHlEaXIgd291bGQgYmUgdGhlIG1pbmltdW0gdmFsdWUgYmV0d2VlbiB0aGUgU2l6ZUxpbWl0IHNwZWNpZmllZFxuICAgKiBoZXJlIGFuZCB0aGUgc3VtIG9mIG1lbW9yeSBsaW1pdHMgb2YgYWxsIGNvbnRhaW5lcnMgaW4gYSBwb2QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGltaXQgaXMgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBzaXplTGltaXQ/OiBTaXplO1xufVxuXG4vKipcbiAqIFRoZSBtZWRpdW0gb24gd2hpY2ggdG8gc3RvcmUgdGhlIHZvbHVtZS5cbiAqL1xuZXhwb3J0IGVudW0gRW1wdHlEaXJNZWRpdW0ge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdm9sdW1lIG9mIHRoZSBiYWNraW5nIG5vZGUuXG4gICAqL1xuICBERUZBVUxUID0gJycsXG5cbiAgLyoqXG4gICAqIE1vdW50IGEgdG1wZnMgKFJBTS1iYWNrZWQgZmlsZXN5c3RlbSkgZm9yIHlvdSBpbnN0ZWFkLiBXaGlsZSB0bXBmcyBpcyB2ZXJ5XG4gICAqIGZhc3QsIGJlIGF3YXJlIHRoYXQgdW5saWtlIGRpc2tzLCB0bXBmcyBpcyBjbGVhcmVkIG9uIG5vZGUgcmVib290IGFuZCBhbnlcbiAgICogZmlsZXMgeW91IHdyaXRlIHdpbGwgY291bnQgYWdhaW5zdCB5b3VyIENvbnRhaW5lcidzIG1lbW9yeSBsaW1pdC5cbiAgICovXG4gIE1FTU9SWSA9ICdNZW1vcnknLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgUGVyc2lzdGVudFZvbHVtZUNsYWltLWJhc2VkIHZvbHVtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1Wb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB2b2x1bWUgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXJpdmVkIGZyb20gdGhlIFBWQyBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2lsbCBmb3JjZSB0aGUgUmVhZE9ubHkgc2V0dGluZyBpbiBWb2x1bWVNb3VudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG5cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgU2VjcmV0LWJhc2VkIHZvbHVtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRWb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB2b2x1bWUgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvLWdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogTW9kZSBiaXRzIHRvIHVzZSBvbiBjcmVhdGVkIGZpbGVzIGJ5IGRlZmF1bHQuIE11c3QgYmUgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kXG4gICAqIDA3NzcuIERlZmF1bHRzIHRvIDA2NDQuIERpcmVjdG9yaWVzIHdpdGhpbiB0aGUgcGF0aCBhcmUgbm90IGFmZmVjdGVkIGJ5XG4gICAqIHRoaXMgc2V0dGluZy4gVGhpcyBtaWdodCBiZSBpbiBjb25mbGljdCB3aXRoIG90aGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlXG4gICAqIGZpbGUgbW9kZSwgbGlrZSBmc0dyb3VwLCBhbmQgdGhlIHJlc3VsdCBjYW4gYmUgb3RoZXIgbW9kZSBiaXRzIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMDY0NC4gRGlyZWN0b3JpZXMgd2l0aGluIHRoZSBwYXRoIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhpc1xuICAgKiBzZXR0aW5nLiBUaGlzIG1pZ2h0IGJlIGluIGNvbmZsaWN0IHdpdGggb3RoZXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgZmlsZVxuICAgKiBtb2RlLCBsaWtlIGZzR3JvdXAsIGFuZCB0aGUgcmVzdWx0IGNhbiBiZSBvdGhlciBtb2RlIGJpdHMgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdE1vZGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgc2VjcmV0IG9yIGl0cyBrZXlzIG11c3QgYmUgZGVmaW5lZC5cbiAgICogQGRlZmF1bHQgLSB1bmRvY3VtZW50ZWRcbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbmFsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgdW5zcGVjaWZpZWQsIGVhY2gga2V5LXZhbHVlIHBhaXIgaW4gdGhlIERhdGEgZmllbGQgb2YgdGhlIHJlZmVyZW5jZWRcbiAgICogc2VjcmV0IHdpbGwgYmUgcHJvamVjdGVkIGludG8gdGhlIHZvbHVtZSBhcyBhIGZpbGUgd2hvc2UgbmFtZSBpcyB0aGUga2V5XG4gICAqIGFuZCBjb250ZW50IGlzIHRoZSB2YWx1ZS4gSWYgc3BlY2lmaWVkLCB0aGUgbGlzdGVkIGtleXMgd2lsbCBiZSBwcm9qZWN0ZWRcbiAgICogaW50byB0aGUgc3BlY2lmaWVkIHBhdGhzLCBhbmQgdW5saXN0ZWQga2V5cyB3aWxsIG5vdCBiZSBwcmVzZW50LiBJZiBhIGtleVxuICAgKiBpcyBzcGVjaWZpZWQgd2hpY2ggaXMgbm90IHByZXNlbnQgaW4gdGhlIHNlY3JldCwgdGhlIHZvbHVtZSBzZXR1cCB3aWxsXG4gICAqIGVycm9yIHVubGVzcyBpdCBpcyBtYXJrZWQgb3B0aW9uYWwuIFBhdGhzIG11c3QgYmUgcmVsYXRpdmUgYW5kIG1heSBub3RcbiAgICogY29udGFpbiB0aGUgJy4uJyBwYXRoIG9yIHN0YXJ0IHdpdGggJy4uJy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBtYXBwaW5nXG4gICAqL1xuICByZWFkb25seSBpdGVtcz86IHsgW2tleTogc3RyaW5nXTogUGF0aE1hcHBpbmcgfTtcblxufVxuXG4vKipcbiAqIEF6dXJlIERpc2sga2luZHMuXG4gKi9cbmV4cG9ydCBlbnVtIEF6dXJlRGlza1BlcnNpc3RlbnRWb2x1bWVLaW5kIHtcblxuICAvKipcbiAgICogTXVsdGlwbGUgYmxvYiBkaXNrcyBwZXIgc3RvcmFnZSBhY2NvdW50LlxuICAgKi9cbiAgU0hBUkVEID0gJ1NoYXJlZCcsXG5cbiAgLyoqXG4gICAqIFNpbmdsZSBibG9iIGRpc2sgcGVyIHN0b3JhZ2UgYWNjb3VudC5cbiAgICovXG4gIERFRElDQVRFRCA9ICdEZWRpY2F0ZWQnLFxuXG4gIC8qKlxuICAgKiBBenVyZSBtYW5hZ2VkIGRhdGEgZGlzay5cbiAgICovXG4gIE1BTkFHRUQgPSAnTWFuYWdlZCcsXG59XG5cbi8qKlxuICogQXp1cmUgZGlzayBjYWNoaW5nIG1vZGVzLlxuICovXG5leHBvcnQgZW51bSBBenVyZURpc2tQZXJzaXN0ZW50Vm9sdW1lQ2FjaGluZ01vZGUge1xuXG4gIC8qKlxuICAgKiBOb25lLlxuICAgKi9cbiAgTk9ORSA9ICdOb25lJyxcblxuICAvKipcbiAgICogUmVhZE9ubHkuXG4gICAqL1xuICBSRUFEX09OTFkgPSAnUmVhZE9ubHknLFxuXG4gIC8qKlxuICAgKiBSZWFkV3JpdGUuXG4gICAqL1xuICBSRUFEX1dSSVRFID0gJ1JlYWRXcml0ZScsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYSBIb3N0UGF0aFZvbHVtZS1iYXNlZCB2b2x1bWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdFBhdGhWb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkgb24gdGhlIGhvc3QuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBwYXRoIGZvdW5kIG9uIHRoZSBob3N0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBIb3N0UGF0aFZvbHVtZVR5cGUuREVGQVVMVFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IEhvc3RQYXRoVm9sdW1lVHlwZTtcblxufVxuXG4vKipcbiAqIEhvc3QgcGF0aCB0eXBlcy5cbiAqL1xuZXhwb3J0IGVudW0gSG9zdFBhdGhWb2x1bWVUeXBlIHtcbiAgLyoqXG4gICAqIEVtcHR5IHN0cmluZyAoZGVmYXVsdCkgaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHdoaWNoIG1lYW5zIHRoYXQgbm9cbiAgICogY2hlY2tzIHdpbGwgYmUgcGVyZm9ybWVkIGJlZm9yZSBtb3VudGluZyB0aGUgaG9zdFBhdGggdm9sdW1lLlxuICAgKi9cbiAgREVGQVVMVCA9ICcnLFxuXG4gIC8qKlxuICAgKiBJZiBub3RoaW5nIGV4aXN0cyBhdCB0aGUgZ2l2ZW4gcGF0aCwgYW4gZW1wdHkgZGlyZWN0b3J5IHdpbGwgYmUgY3JlYXRlZFxuICAgKiB0aGVyZSBhcyBuZWVkZWQgd2l0aCBwZXJtaXNzaW9uIHNldCB0byAwNzU1LCBoYXZpbmcgdGhlIHNhbWUgZ3JvdXAgYW5kXG4gICAqIG93bmVyc2hpcCB3aXRoIEt1YmVsZXQuXG4gICAqL1xuICBESVJFQ1RPUllfT1JfQ1JFQVRFID0gJ0RpcmVjdG9yeU9yQ3JlYXRlJyxcblxuICAvKipcbiAgICogQSBkaXJlY3RvcnkgbXVzdCBleGlzdCBhdCB0aGUgZ2l2ZW4gcGF0aC5cbiAgICovXG4gIERJUkVDVE9SWSA9ICdEaXJlY3RvcnknLFxuXG4gIC8qKlxuICAgKiBJZiBub3RoaW5nIGV4aXN0cyBhdCB0aGUgZ2l2ZW4gcGF0aCwgYW4gZW1wdHkgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgdGhlcmVcbiAgICogYXMgbmVlZGVkIHdpdGggcGVybWlzc2lvbiBzZXQgdG8gMDY0NCwgaGF2aW5nIHRoZSBzYW1lIGdyb3VwIGFuZCBvd25lcnNoaXBcbiAgICogd2l0aCBLdWJlbGV0LlxuICAgKi9cbiAgRklMRV9PUl9DUkVBVEUgPSAnRmlsZU9yQ3JlYXRlJyxcblxuICAvKipcbiAgICogQSBmaWxlIG11c3QgZXhpc3QgYXQgdGhlIGdpdmVuIHBhdGguXG4gICAqL1xuICBGSUxFID0gJ0ZpbGUnLFxuXG4gIC8qKlxuICAgKiBBIFVOSVggc29ja2V0IG11c3QgZXhpc3QgYXQgdGhlIGdpdmVuIHBhdGguXG4gICAqL1xuICBTT0NLRVQgPSAnU29ja2V0JyxcblxuICAvKipcbiAgICogQSBjaGFyYWN0ZXIgZGV2aWNlIG11c3QgZXhpc3QgYXQgdGhlIGdpdmVuIHBhdGguXG4gICAqL1xuICBDSEFSX0RFVklDRSA9ICdDaGFyRGV2aWNlJyxcblxuICAvKipcbiAgICogQSBibG9jayBkZXZpY2UgbXVzdCBleGlzdCBhdCB0aGUgZ2l2ZW4gcGF0aC5cbiAgICovXG4gIEJMT0NLX0RFVklDRSA9ICdCbG9ja0RldmljZScsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIE5GUyBiYXNlZCB2b2x1bWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmZzVm9sdW1lT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFNlcnZlciBpcyB0aGUgaG9zdG5hbWUgb3IgSVAgYWRkcmVzcyBvZiB0aGUgTkZTIHNlcnZlci5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgd2lsbCBmb3JjZSB0aGUgTkZTIGV4cG9ydCB0byBiZSBtb3VudGVkIHdpdGggcmVhZC1vbmx5IHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBhdGggdGhhdCBpcyBleHBvcnRlZCBieSB0aGUgTkZTIHNlcnZlclxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBDU0kgZHJpdmVyIGJhc2VkIHZvbHVtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDc2lWb2x1bWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB2b2x1bWUgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvLWdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbGVzeXN0ZW0gdHlwZSB0byBtb3VudC4gRXguIFwiZXh0NFwiLCBcInhmc1wiLCBcIm50ZnNcIi4gSWYgbm90IHByb3ZpZGVkLFxuICAgKiB0aGUgZW1wdHkgdmFsdWUgaXMgcGFzc2VkIHRvIHRoZSBhc3NvY2lhdGVkIENTSSBkcml2ZXIsIHdoaWNoIHdpbGxcbiAgICogZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGZpbGVzeXN0ZW0gdG8gYXBwbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZHJpdmVyLWRlcGVuZGVudFxuICAgKi9cbiAgcmVhZG9ubHkgZnNUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBtb3VudGVkIHZvbHVtZSBzaG91bGQgYmUgcmVhZC1vbmx5IG9yIG5vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZE9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbnkgZHJpdmVyLXNwZWNpZmljIGF0dHJpYnV0ZXMgdG8gcGFzcyB0byB0aGUgQ1NJIHZvbHVtZSBidWlsZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgYXR0cmlidXRlcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG4iXX0=
|
package/lib/workload.js
CHANGED
|
@@ -101,7 +101,7 @@ class Workload extends pod.AbstractPod {
|
|
|
101
101
|
}
|
|
102
102
|
exports.Workload = Workload;
|
|
103
103
|
_a = JSII_RTTI_SYMBOL_1;
|
|
104
|
-
Workload[_a] = { fqn: "cdk8s-plus-33.Workload", version: "2.
|
|
104
|
+
Workload[_a] = { fqn: "cdk8s-plus-33.Workload", version: "2.4.0" };
|
|
105
105
|
/**
|
|
106
106
|
* Controls the pod scheduling strategy of this workload.
|
|
107
107
|
* It offers some additional API's on top of the core pod scheduling.
|
|
@@ -118,5 +118,5 @@ class WorkloadScheduling extends pod.PodScheduling {
|
|
|
118
118
|
}
|
|
119
119
|
exports.WorkloadScheduling = WorkloadScheduling;
|
|
120
120
|
_b = JSII_RTTI_SYMBOL_1;
|
|
121
|
-
WorkloadScheduling[_b] = { fqn: "cdk8s-plus-33.WorkloadScheduling", version: "2.
|
|
121
|
+
WorkloadScheduling[_b] = { fqn: "cdk8s-plus-33.WorkloadScheduling", version: "2.4.0" };
|
|
122
122
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2xvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvd29ya2xvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBOEU7QUFHOUUsNkJBQTZCO0FBQzdCLG1DQUEyQztBQXFEM0M7Ozs7R0FJRztBQUNILE1BQXNCLFFBQVMsU0FBUSxHQUFHLENBQUMsV0FBVztJQWdCcEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQVRULGlCQUFZLEdBQTJCLEVBQUUsQ0FBQztRQUMxQyxzQkFBaUIsR0FBK0IsRUFBRSxDQUFDO1FBVWxFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBRXBDLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUYsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsV0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlB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Q29udGVudCI6WyJpbXBvcnQgeyBBcGlPYmplY3RNZXRhZGF0YSwgQXBpT2JqZWN0TWV0YWRhdGFEZWZpbml0aW9uLCBOYW1lcyB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgazhzIGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuaW1wb3J0ICogYXMgcG9kIGZyb20gJy4vcG9kJztcbmltcG9ydCB7IHVuZGVmaW5lZElmRW1wdHkgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBgV29ya2xvYWRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtsb2FkUHJvcHMgZXh0ZW5kcyBwb2QuQWJzdHJhY3RQb2RQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBwb2QgbWV0YWRhdGEgb2YgdGhpcyB3b3JrbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IHBvZE1ldGFkYXRhPzogQXBpT2JqZWN0TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWxsb2NhdGVzIGEgcG9kIGxhYmVsIHNlbGVjdG9yIGZvciB0aGlzIHdvcmtsb2FkIGFuZCBhZGRcbiAgICogaXQgdG8gdGhlIHBvZCBtZXRhZGF0YS4gVGhpcyBlbnN1cmVzIHRoaXMgd29ya2xvYWQgbWFuYWdlcyBwb2RzIGNyZWF0ZWQgYnlcbiAgICogaXRzIHBvZCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBzcHJlYWQgcG9kcyBhY3Jvc3MgaG9zdG5hbWUgYW5kIHpvbmVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3NjaGVkdWxpbmctZXZpY3Rpb24vdG9wb2xvZ3ktc3ByZWFkLWNvbnN0cmFpbnRzLyNpbnRlcm5hbC1kZWZhdWx0LWNvbnN0cmFpbnRzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzcHJlYWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG4gKiByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJlbFNlbGVjdG9yUmVxdWlyZW1lbnQge1xuICAvKipcbiAgICogVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0b3I6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5XG4gICAqIG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbiAgICogdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgd29ya2xvYWQgaXMgYW4gYXBwbGljYXRpb24gcnVubmluZyBvbiBLdWJlcm5ldGVzLiBXaGV0aGVyIHlvdXIgd29ya2xvYWQgaXMgYSBzaW5nbGVcbiAqIGNvbXBvbmVudCBvciBzZXZlcmFsIHRoYXQgd29yayB0b2dldGhlciwgb24gS3ViZXJuZXRlcyB5b3UgcnVuIGl0IGluc2lkZSBhIHNldCBvZiBwb2RzLlxuICogSW4gS3ViZXJuZXRlcywgYSBQb2QgcmVwcmVzZW50cyBhIHNldCBvZiBydW5uaW5nIGNvbnRhaW5lcnMgb24geW91ciBjbHVzdGVyLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya2xvYWQgZXh0ZW5kcyBwb2QuQWJzdHJhY3RQb2Qge1xuXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uczogcG9kLlBvZENvbm5lY3Rpb25zO1xuXG4gIHB1YmxpYyByZWFkb25seSBzY2hlZHVsaW5nOiBXb3JrbG9hZFNjaGVkdWxpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzcHJlYWQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWF0Y2hMYWJlbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbWF0Y2hFeHByZXNzaW9uczogTGFiZWxTZWxlY3RvclJlcXVpcmVtZW50W10gPSBbXTtcblxuICBwcml2YXRlIF9wb2RNZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhRGVmaW5pdGlvbjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wczogV29ya2xvYWRQcm9wcztcbiAgcHJpdmF0ZSByZWFkb25seSBfbWF0Y2hlcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXb3JrbG9hZFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLl9wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuc2NoZWR1bGluZyA9IG5ldyBXb3JrbG9hZFNjaGVkdWxpbmcodGhpcyk7XG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IG5ldyBwb2QuUG9kQ29ubmVjdGlvbnModGhpcyk7XG4gICAgdGhpcy5zcHJlYWQgPSBwcm9wcy5zcHJlYWQgPz8gZmFsc2U7XG5cbiAgICB0aGlzLl9tYXRjaGVyID0gTmFtZXMudG9MYWJlbFZhbHVlKHRoaXMpO1xuXG4gICAgaWYgKHByb3BzLnNlbGVjdCA/PyB0cnVlKSB7XG4gICAgICB0aGlzLnNlbGVjdChwb2QuTGFiZWxTZWxlY3Rvci5vZih7IGxhYmVsczogeyBbcG9kLlBvZC5BRERSRVNTX0xBQkVMXTogdGhpcy5fbWF0Y2hlciB9IH0pKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1ldGFkYXRhIG9mIHBvZHMgaW4gdGhpcyB3b3JrbG9hZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcG9kTWV0YWRhdGEoKTogQXBpT2JqZWN0TWV0YWRhdGFEZWZpbml0aW9uIHtcbiAgICBpZiAoIXRoaXMuX3BvZE1ldGFkYXRhKSB7XG4gICAgICB0aGlzLl9wb2RNZXRhZGF0YSA9IG5ldyBBcGlPYmplY3RNZXRhZGF0YURlZmluaXRpb24oe1xuICAgICAgICAuLi50aGlzLl9wcm9wcy5wb2RNZXRhZGF0YSxcbiAgICAgICAgYXBpT2JqZWN0OiB0aGlzLmFwaU9iamVjdCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fcG9kTWV0YWRhdGEuYWRkTGFiZWwocG9kLlBvZC5BRERSRVNTX0xBQkVMLCB0aGlzLl9tYXRjaGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3BvZE1ldGFkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBzZWxlY3RvcnMgZm9yIHRoaXMgd29ya2xvYWQuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KC4uLnNlbGVjdG9yczogcG9kLkxhYmVsU2VsZWN0b3JbXSkge1xuICAgIGZvciAoY29uc3Qgc2VsZWN0b3Igb2Ygc2VsZWN0b3JzKSB7XG4gICAgICBjb25zdCBrdWJlID0gc2VsZWN0b3IuX3RvS3ViZSgpO1xuICAgICAgdGhpcy5fbWF0Y2hFeHByZXNzaW9ucy5wdXNoKC4uLmt1YmUubWF0Y2hFeHByZXNzaW9ucyA/PyBbXSk7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhrdWJlLm1hdGNoTGFiZWxzID8/IHt9KSkge1xuICAgICAgICB0aGlzLl9tYXRjaExhYmVsc1trZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBtYXRjaGVycyB0aGlzIHdvcmtsb2FkIHdpbGwgdXNlIGluIG9yZGVyIHRvIHNlbGVjdCBwb2RzLlxuICAgKlxuICAgKiBSZXR1cm5zIGEgYSBjb3B5LiBVc2UgYHNlbGVjdCgpYCB0byBhZGQgbGFiZWwgbWF0Y2hlcnMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1hdGNoTGFiZWxzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB7IC4uLnRoaXMuX21hdGNoTGFiZWxzIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gbWF0Y2hlcnMgdGhpcyB3b3JrbG9hZCB3aWxsIHVzZSBpbiBvcmRlciB0byBzZWxlY3QgcG9kcy5cbiAgICpcbiAgICogUmV0dXJucyBhIGEgY29weS4gVXNlIGBzZWxlY3QoKWAgdG8gYWRkIGV4cHJlc3Npb24gbWF0Y2hlcnMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1hdGNoRXhwcmVzc2lvbnMoKTogTGFiZWxTZWxlY3RvclJlcXVpcmVtZW50W10ge1xuICAgIHJldHVybiBbLi4udGhpcy5fbWF0Y2hFeHByZXNzaW9uc107XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvTGFiZWxTZWxlY3RvcigpOiBrOHMuTGFiZWxTZWxlY3RvciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1hdGNoRXhwcmVzc2lvbnM6IHVuZGVmaW5lZElmRW1wdHkodGhpcy5fbWF0Y2hFeHByZXNzaW9ucyksXG4gICAgICBtYXRjaExhYmVsczogdW5kZWZpbmVkSWZFbXB0eSh0aGlzLl9tYXRjaExhYmVscyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfdG9Qb2RTcGVjKCk6IGs4cy5Qb2RTcGVjIHtcbiAgICBpZiAodGhpcy5zcHJlYWQpIHtcbiAgICAgIHtcbiAgICAgICAgdGhpcy5zY2hlZHVsaW5nLnNwcmVhZCh7XG4gICAgICAgICAgdG9wb2xvZ3k6IHBvZC5Ub3BvbG9neS5IT1NUTkFNRSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2NoZWR1bGluZy5zcHJlYWQoe1xuICAgICAgICAgIHRvcG9sb2d5OiBwb2QuVG9wb2xvZ3kuWk9ORSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVkdWxpbmcgPSB0aGlzLnNjaGVkdWxpbmcuX3RvS3ViZSgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLl90b1BvZFNwZWMoKSxcbiAgICAgIGFmZmluaXR5OiBzY2hlZHVsaW5nLmFmZmluaXR5LFxuICAgICAgbm9kZU5hbWU6IHNjaGVkdWxpbmcubm9kZU5hbWUsXG4gICAgICB0b2xlcmF0aW9uczogc2NoZWR1bGluZy50b2xlcmF0aW9ucyxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYFdvcmtsb2FkU2NoZWR1bGluZy5zcHJlYWRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtsb2FkU2NoZWR1bGluZ1NwcmVhZE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHNwcmVhZCBpcyBvcHRpb25hbCwgd2l0aCB0aGlzIHdlaWdodCBzY29yZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB3ZWlnaHQuIHNwcmVhZCBpcyBhc3N1bWVkIHRvIGJlIHJlcXVpcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgd2VpZ2h0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGljaCB0b3BvbG9neSB0byBzcHJlYWQgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVG9wb2xvZ3kuSE9TVE5BTUVcbiAgICovXG4gIHJlYWRvbmx5IHRvcG9sb2d5PzogcG9kLlRvcG9sb2d5O1xuXG59XG5cbi8qKlxuICogQ29udHJvbHMgdGhlIHBvZCBzY2hlZHVsaW5nIHN0cmF0ZWd5IG9mIHRoaXMgd29ya2xvYWQuXG4gKiBJdCBvZmZlcnMgc29tZSBhZGRpdGlvbmFsIEFQSSdzIG9uIHRvcCBvZiB0aGUgY29yZSBwb2Qgc2NoZWR1bGluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIFdvcmtsb2FkU2NoZWR1bGluZyBleHRlbmRzIHBvZC5Qb2RTY2hlZHVsaW5nIHtcblxuICAvKipcbiAgICogU3ByZWFkIHRoZSBwb2RzIGluIHRoaXMgd29ya2xvYWQgYnkgdGhlIHRvcG9sb2d5IGtleS5cbiAgICogQSBzcHJlYWQgaXMgYSBzZXBhcmF0aW9uIG9mIHRoZSBwb2QgZnJvbSBpdHNlbGYgYW5kIGlzIHVzZWQgdG9cbiAgICogYmFsYW5jZSBvdXQgcG9kIHJlcGxpY2FzIGFjcm9zcyBhIGdpdmVuIHRvcG9sb2d5LlxuICAgKi9cbiAgcHVibGljIHNwcmVhZChvcHRpb25zOiBXb3JrbG9hZFNjaGVkdWxpbmdTcHJlYWRPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLnNlcGFyYXRlKHRoaXMuaW5zdGFuY2UsIHsgd2VpZ2h0OiBvcHRpb25zLndlaWdodCwgdG9wb2xvZ3k6IG9wdGlvbnMudG9wb2xvZ3kgPz8gcG9kLlRvcG9sb2d5LkhPU1ROQU1FIH0pO1xuICB9XG5cbn0iXX0=
|
package/package.json
CHANGED
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
"organization": false
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@cdk8s/projen-common": "^0.0.
|
|
50
|
+
"@cdk8s/projen-common": "^0.0.630",
|
|
51
51
|
"@stylistic/eslint-plugin": "^2",
|
|
52
52
|
"@types/jest": "^27",
|
|
53
53
|
"@types/node": "16.18.78",
|
|
54
54
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
55
55
|
"@typescript-eslint/parser": "^8",
|
|
56
56
|
"cdk8s": "2.70.21",
|
|
57
|
-
"cdk8s-cli": "^2.202.
|
|
57
|
+
"cdk8s-cli": "^2.202.3",
|
|
58
58
|
"commit-and-tag-version": "^12",
|
|
59
59
|
"constructs": "10.3.0",
|
|
60
60
|
"eslint": "^9",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"jsii-docgen": "^3.8.31",
|
|
68
68
|
"jsii-pacmak": "^1.116.0",
|
|
69
69
|
"jsii-rosetta": "~5.8.0",
|
|
70
|
-
"projen": "^0.98.
|
|
70
|
+
"projen": "^0.98.1",
|
|
71
71
|
"snake-case": "^3.0.4",
|
|
72
72
|
"ts-jest": "^27",
|
|
73
73
|
"ts-node": "^10",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"publishConfig": {
|
|
105
105
|
"access": "public"
|
|
106
106
|
},
|
|
107
|
-
"version": "2.
|
|
107
|
+
"version": "2.4.0",
|
|
108
108
|
"jest": {
|
|
109
109
|
"coverageProvider": "v8",
|
|
110
110
|
"testMatch": [
|