@lifeready/core 5.0.9 → 5.0.11
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/bundles/lifeready-core.umd.js +1529 -737
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +1 -1
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/key.js +28 -0
- package/esm2015/lib/_common/types.js +1 -1
- package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
- package/esm2015/lib/auth/auth.types.js +1 -3
- package/esm2015/lib/auth/life-ready-auth.service.js +2 -2
- package/esm2015/lib/auth2/auth2.gql.private.js +78 -0
- package/esm2015/lib/auth2/auth2.service.js +596 -0
- package/esm2015/lib/auth2/auth2.types.js +21 -0
- package/esm2015/lib/contact-card/contact-card.service.js +3 -3
- package/esm2015/lib/contact-card/contact-card2.service.js +3 -3
- package/esm2015/lib/item2/item2.service.js +9 -9
- package/esm2015/lib/key/key-factory.service.js +1 -1
- package/esm2015/lib/key/key-graph.service.js +3 -3
- package/esm2015/lib/key/key-meta.service.js +2 -2
- package/esm2015/lib/key/key.service.js +7 -7
- package/esm2015/lib/key-exchange/key-exchange.service.js +24 -29
- package/esm2015/lib/key-exchange/key-exchange2.service.js +16 -17
- package/esm2015/lib/lbop/lbop.service.js +13 -14
- package/esm2015/lib/profile/profile.service.js +2 -2
- package/esm2015/lib/profile/profile.types.js +1 -1
- package/esm2015/lib/register/register.service.js +1 -1
- package/esm2015/lib/register/register.types.js +3 -0
- package/esm2015/lib/server-config/server-config.gql.js +1 -1
- package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +3 -3
- package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +2 -2
- package/esm2015/lib/tp-assembly/tp-assembly.js +3 -3
- package/esm2015/lib/trusted-party/trusted-party2.service.js +4 -4
- package/esm2015/public-api.js +4 -1
- package/fesm2015/lifeready-core.js +885 -203
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/key.d.ts +14 -0
- package/lib/_common/types.d.ts +6 -0
- package/lib/api/types/lr-graphql.types.d.ts +1 -0
- package/lib/auth/auth.types.d.ts +0 -6
- package/lib/auth2/auth2.gql.private.d.ts +12 -0
- package/lib/auth2/auth2.service.d.ts +70 -0
- package/lib/auth2/auth2.types.d.ts +50 -0
- package/lib/item2/item2.service.d.ts +3 -3
- package/lib/key/key-factory.service.d.ts +1 -0
- package/lib/key/key-graph.service.d.ts +2 -3
- package/lib/key/key.service.d.ts +6 -6
- package/lib/key-exchange/key-exchange.service.d.ts +3 -5
- package/lib/lbop/lbop.service.d.ts +3 -3
- package/lib/profile/profile.types.d.ts +2 -2
- package/lib/register/register.service.d.ts +1 -1
- package/lib/register/register.types.d.ts +6 -0
- package/lib/server-config/server-config.gql.d.ts +1 -1
- package/lib/server-config/server-config.service.d.ts +1 -1
- package/lib/shared-contact-card/shared-contact-card.service.d.ts +2 -2
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class KeyContainer {
|
|
2
|
+
constructor(_key, timeout) {
|
|
3
|
+
this._key = _key;
|
|
4
|
+
this.timer = setTimeout(() => {
|
|
5
|
+
this._key = null;
|
|
6
|
+
}, timeout);
|
|
7
|
+
}
|
|
8
|
+
get key() {
|
|
9
|
+
return this._key;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Clears the reference to the key, clears the timer, return the key.
|
|
13
|
+
* It's important to call this function when the key is no longer needed because
|
|
14
|
+
* the anonymous function in setTimeout() holds a reference to "this", and hence
|
|
15
|
+
* keeps the "this._key" reference until the timer expired. So if we have used
|
|
16
|
+
* the key before it expired, we should clear the "this._key" reference immediately.
|
|
17
|
+
*/
|
|
18
|
+
pop() {
|
|
19
|
+
const ret = this._key;
|
|
20
|
+
this._key = null;
|
|
21
|
+
if (this.timer) {
|
|
22
|
+
clearTimeout(this.timer);
|
|
23
|
+
this.timer = null;
|
|
24
|
+
}
|
|
25
|
+
return ret;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL19jb21tb24va2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFZO0lBR3ZCLFlBQW9CLElBQWUsRUFBRSxPQUFlO1FBQWhDLFNBQUksR0FBSixJQUFJLENBQVc7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEdBQUc7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDbkI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBLZXlDb250YWluZXIge1xuICBwcml2YXRlIHRpbWVyOiBOb2RlSlMuVGltZW91dDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9rZXk6IENyeXB0b0tleSwgdGltZW91dDogbnVtYmVyKSB7XG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fa2V5ID0gbnVsbDtcbiAgICB9LCB0aW1lb3V0KTtcbiAgfVxuICBnZXQga2V5KCk6IENyeXB0b0tleSB7XG4gICAgcmV0dXJuIHRoaXMuX2tleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIHJlZmVyZW5jZSB0byB0aGUga2V5LCBjbGVhcnMgdGhlIHRpbWVyLCByZXR1cm4gdGhlIGtleS5cbiAgICogSXQncyBpbXBvcnRhbnQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4gdGhlIGtleSBpcyBubyBsb25nZXIgbmVlZGVkIGJlY2F1c2VcbiAgICogdGhlIGFub255bW91cyBmdW5jdGlvbiBpbiBzZXRUaW1lb3V0KCkgaG9sZHMgYSByZWZlcmVuY2UgdG8gXCJ0aGlzXCIsIGFuZCBoZW5jZVxuICAgKiBrZWVwcyB0aGUgXCJ0aGlzLl9rZXlcIiByZWZlcmVuY2UgdW50aWwgdGhlIHRpbWVyIGV4cGlyZWQuIFNvIGlmIHdlIGhhdmUgdXNlZFxuICAgKiB0aGUga2V5IGJlZm9yZSBpdCBleHBpcmVkLCB3ZSBzaG91bGQgY2xlYXIgdGhlIFwidGhpcy5fa2V5XCIgcmVmZXJlbmNlIGltbWVkaWF0ZWx5LlxuICAgKi9cbiAgcG9wKCk6IENyeXB0b0tleSB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5fa2V5O1xuICAgIHRoaXMuX2tleSA9IG51bGw7XG4gICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvX2NvbW1vbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGFuZ2UgYSBzZXQgb2Ygc3BlY2lmaWVkIGtleXMgdG8gb3B0aW9uYWwsIHdoaWxlIHRoZSByZXN0IHJlbWFpbiB1bmNoYW5nZWRcbiAqL1xuZXhwb3J0IHR5cGUgU29tZVBhcnRpYWw8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gUGljazxQYXJ0aWFsPFQ+LCBLPiAmXG4gIE9taXQ8VCwgSz47XG5cbi8qKlxuICogQ2hhbmdlIGEgc2V0IG9mIHNwZWNpZmllZCBrZXlzIHRvIHJlcXVpcmVkLCB3aGlsZSB0aGUgcmVzdCByZW1haW4gdW5jaGFuZ2VkXG4gKi9cbmV4cG9ydCB0eXBlIFNvbWVSZXF1aXJlZDxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBQaWNrPFJlcXVpcmVkPFQ+LCBLPiAmXG4gIE9taXQ8VCwgSz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRnZTxUPiB7XG4gIG5vZGU6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzRWRnZXM8VD4ge1xuICBlZGdlczogRWRnZTxUPltdO1xufVxuXG5leHBvcnQgdHlwZSBNYXlBc3luYzxUPiA9IFQgfCBQcm9taXNlPFQ+O1xuIl19
|
|
@@ -135,4 +135,4 @@ export var PlanStateField;
|
|
|
135
135
|
PlanStateField["CANCELLED"] = "CANCELLED";
|
|
136
136
|
PlanStateField["EXPIRED"] = "EXPIRED";
|
|
137
137
|
})(PlanStateField || (PlanStateField = {}));
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUsUUFBUSxDQUFJLFVBQXlCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxDQUFOLElBQVksZUFFWDtBQUZELFdBQVksZUFBZTtJQUN6QiwwQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUI7QUFNRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQTBMRCxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLG1DQUFlLENBQUE7SUFDZixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDaEMsaURBQXVCLENBQUE7SUFDdkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFHakM7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLGlDQUFhLENBQUE7SUFDYixxQ0FBaUIsQ0FBQTtJQUNq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ckIsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLCtDQUFxQixDQUFBO0lBQ3JCLCtDQUFxQixDQUFBO0lBQ3JCLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUF3SUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQXdHRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLHlDQUF1QixDQUFBO0lBQ3ZCLG1DQUFpQixDQUFBO0lBQ2pCLHlDQUF1QixDQUFBO0lBQ3ZCLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIERhdGVUaW1lLFxuICBHZW5lcmljU2NhbGFyLFxuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgSlNPTlN0cmluZyxcbiAgTHJFbWFpbCxcbiAgTm9kZSxcbiAgVGltZVN0YW1wZWQsXG59IGZyb20gJy4vZ3JhcGhxbC50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBFZGdlczxUPihjb25uZWN0aW9uOiBDb25uZWN0aW9uPFQ+KSB7XG4gIHJldHVybiBjb25uZWN0aW9uLmVkZ2VzLm1hcCgoZWRnZSkgPT4gZWRnZS5ub2RlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlc05vZGUge1xuICBteVZhdWx0Pzogc3RyaW5nW107XG4gIHRwVmF1bHQ/OiBzdHJpbmdbXTtcbiAgc2hhcmVWYXVsdD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVc2VyRGVsZXRlU3RhdGUge1xuICBSRVFVRVNURUQgPSAnUkVRVUVTVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGVsZXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBVc2VyRGVsZXRlU3RhdGU7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZSB7XG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFuTm9kZSBleHRlbmRzIE5vZGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogSlNPTlN0cmluZztcbiAgc3RhdGU/OiBQbGFuU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBsYW5TdHJpcGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJzY3JpcHRpb25JZD86IHN0cmluZztcbiAgcHJpY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgcGxhbj86IFBsYW5Ob2RlO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RyaXBlPzogVXNlclBsYW5TdHJpcGVOb2RlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RyaXBlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY3VzdG9tZXI/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXNzS2V5UGFyYW1zPzogR2VuZXJpY1NjYWxhcjtcbiAgcGFzc0lkcFBhcmFtcz86IEdlbmVyaWNTY2FsYXI7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFzc0tleXM/OiBQYXNzS2V5Tm9kZVtdO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIHJvb3RLZXk/OiBLZXlOb2RlO1xuICBtYXN0ZXJLZXk/OiBLZXlOb2RlO1xuICBweGs/OiBLZXlOb2RlO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5vZGUgdHlwZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGludGVyZmFjZSBVc2VyTm9kZSBleHRlbmRzIE5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgY29udGFjdENhcmRzPzogQ29ubmVjdGlvbjxDb250YWN0Q2FyZE5vZGU+O1xuICBjdXJyZW50VXNlcktleT86IEN1cnJlbnRVc2VyS2V5Tm9kZTtcbiAgb3duZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgcmVjZWl2ZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgaXNDdXJyZW50VXNlcj86IGJvb2xlYW47XG4gIGhhdmVUcD86IGJvb2xlYW47XG4gIHN0cmlwZT86IFVzZXJTdHJpcGVOb2RlO1xuICB1c2VyUGxhbnM/OiBDb25uZWN0aW9uPFVzZXJQbGFuTm9kZT47XG4gIHVzZXJEZWxldGU/OiBVc2VyRGVsZXRlTm9kZTtcbiAgZmVhdHVyZXM/OiBGZWF0dXJlc05vZGU7XG4gIGZlYXR1cmVTdGF0ZT86IFVzZXJGZWF0dXJlU3RhdGU7XG4gIHNlc3Npb25FbmNyeXB0aW9uS2V5Pzogc3RyaW5nO1xuICBwbGFucz86IElzc3VlZFBsYW5Ob2RlW107XG4gIHBheW1lbnRNZXRob2RzPzogUGF5bWVudE1ldGhvZE5vZGVbXTtcbiAgYmlsbGluZ0hpc3Rvcnk/OiBCaWxsaW5nRmllbGRbXTtcbiAgYXZhaWxhYmxlUGxhbnM/OiBBdmFpbGFibGVQbGFuRmllbGRbXTtcbiAgY29uZmlnPzogSlNPTlN0cmluZztcbiAgY29uZmlnSnNvbj86IEpTT05PYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckZlYXR1cmVTdGF0ZSBleHRlbmRzIFRpbWVTdGFtcGVkIHtcbiAgbm90aWZpY2F0aW9uc0xhc3RWaWV3ZWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJUaW1lIHtcbiAgdGltZXN0YW1wPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBiaz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG93bmVyPzogVXNlck5vZGU7XG4gIHB1YmxpY0RhdGFTaWc/OiBzdHJpbmc7XG4gIHB1YmxpY1NlYXJjaGFibGVTaWc/OiBzdHJpbmc7XG4gIHNpZ1B4az86IEtleU5vZGU7XG4gIGRlZmF1bHRGcm9tPzogRGF0ZVRpbWU7XG4gIHB1YmxpY0RhdGE/OiBzdHJpbmc7XG4gIHB1YmxpY1NlYXJjaGFibGU/OiBzdHJpbmc7XG4gIGNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIGNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBrZXk/OiBLZXlOb2RlO1xuICBwbGFpbkRhdGE/OiBzdHJpbmc7XG4gIHBsYWluRGF0YVNpZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NDb250cm9sbGVkUmVzb3VyY2Uge1xuICBhY2Nlc3NSb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgcGVybWlzc2lvbnM/OiBQZXJtaXNzaW9uQ2hvaWNlW107XG4gIHRwQWNjZXNzUm9sZXM/OiBBY2Nlc3NSb2xlW107XG4gIGNvbmZpZGVudGlhbGl0eT86IENvbmZpZGVudGlhbFJlc291cmNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeU5vZGVcbiAgZXh0ZW5kcyBOb2RlLFxuICAgIFRpbWVTdGFtcGVkLFxuICAgIEFjY2Vzc0NvbnRyb2xsZWRSZXNvdXJjZSB7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YUpzb24/OiBKU09OT2JqZWN0O1xuICBjaXBoZXJNZXRhPzogc3RyaW5nO1xuICBjaXBoZXJNZXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXJjaGl2ZWQ/OiBib29sZWFuO1xuICBrZXlJZD86IElEO1xuICBjaGlsZEZpbGVMaW5rcz86IENvbm5lY3Rpb248RmlsZUxpbmtOb2RlPjtcbiAgY2hpbGREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RGlyZWN0b3J5TGlua05vZGU+O1xuICBwYXJlbnREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RGlyZWN0b3J5TGlua05vZGU+O1xuICBuUGFyZW50RGlyZWN0b3J5TGlua3M/OiBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Q7XG4gIG5DaGlsZERpcmVjdG9yeUxpbmtzPzogRGlyZWN0b3J5TGlua05vZGVMck5MaXN0O1xuICBuQ2hpbGRGaWxlTGlua3M/OiBGaWxlTGlua05vZGVMck5MaXN0O1xuICBkZXNjZW5kYW50cz86IERlc2NlbmRhbnRzO1xuICBsb2NrPzogTG9ja0ZpZWxkO1xuICBsb2NrVmVyc2lvbj86IHN0cmluZztcbiAgdHBTaGFyZWQ/OiBDb25uZWN0aW9uPFRwU2hhcmVkRGlyZWN0b3J5Tm9kZT47XG4gIG5UcFNoYXJlZD86IFRwU2hhcmVkRGlyZWN0b3J5Tm9kZUxyTkxpc3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCwgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgY3VycmVudFZlcnNpb24/OiBGaWxlVmVyc2lvbk5vZGU7XG4gIGFyY2hpdmVkPzogYm9vbGVhbjtcbiAgdmVyc2lvbnM/OiBDb25uZWN0aW9uPEZpbGVWZXJzaW9uTm9kZT47XG4gIGtleUlkPzogSUQ7XG4gIHBhcmVudERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxGaWxlTGlua05vZGU+O1xuICBuUGFyZW50RGlyZWN0b3J5TGlua3M/OiBGaWxlTGlua05vZGVMck5MaXN0O1xuICBsb2NrPzogTG9ja0ZpZWxkO1xuICBsb2NrVmVyc2lvbj86IHN0cmluZztcbiAgdHBTaGFyZWQ/OiBDb25uZWN0aW9uPFRwU2hhcmVkRmlsZU5vZGU+O1xuICBuVHBTaGFyZWQ/OiBUcFNoYXJlZEZpbGVOb2RlTHJOTGlzdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlMaW5rTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFyZW50RGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgY2hpbGREaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xuICBsaW5rVHlwZT86IExpbmtUeXBlRmllbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUxpbmtOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXJlbnREaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xuICBjaGlsZEZpbGU/OiBGaWxlTm9kZTtcbiAgbGlua1R5cGU/OiBMaW5rVHlwZUZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdCB7XG4gIGxpc3Q/OiBEaXJlY3RvcnlMaW5rTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaW5rTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogRmlsZUxpbmtOb2RlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTaGFyZWREaXJlY3RvcnlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBpdGVtPzogRGlyZWN0b3J5Tm9kZTtcbiAgdHA/OiBUcE5vZGU7XG4gIHJvbGU/OiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbiAgaXNJc3N1ZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwU2hhcmVkRGlyZWN0b3J5Tm9kZUxyTkxpc3Qge1xuICBsaXN0PzogVHBTaGFyZWREaXJlY3RvcnlOb2RlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTaGFyZWRGaWxlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgaXRlbT86IEZpbGVOb2RlO1xuICB0cD86IFRwTm9kZTtcbiAgcm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIGlzc3Vlcj86IFVzZXJOb2RlO1xuICBpc0lzc3Vlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTaGFyZWRGaWxlTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogVHBTaGFyZWRGaWxlTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NlbmRhbnRzIHtcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xuICBkaXJlY3Rvcmllc0NvdW50PzogbnVtYmVyO1xuICBmaWxlc0NvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBBY2Nlc3NSb2xlQ2hvaWNlIHtcbiAgUkVBREVSID0gJ1JFQURFUicsXG4gIFdSSVRFUiA9ICdXUklURVInLFxuICBBRE1JTiA9ICdBRE1JTicsXG4gIERFTlkgPSAnREVOWScsXG4gIE9XTkVSID0gJ09XTkVSJyxcbn1cblxuZXhwb3J0IGVudW0gQWNjZXNzUm9sZU1ldGhvZENob2ljZSB7XG4gIElOSEVSSVRFRCA9ICdJTkhFUklURUQnLFxuICBESVJFQ1QgPSAnRElSRUNUJyxcbn1cblxuZXhwb3J0IGVudW0gUGVybWlzc2lvbkNob2ljZSB7XG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIFNIQVJFID0gJ1NIQVJFJyxcbiAgQVJDSElWRSA9ICdBUkNISVZFJyxcbiAgQUNDRVNTX0FSQ0hJVkVEID0gJ0FDQ0VTU19BUkNISVZFRCcsXG4gIFVOQVJDSElWRSA9ICdVTkFSQ0hJVkUnLFxuICBTRVRfQ09ORklERU5USUFMID0gJ1NFVF9DT05GSURFTlRJQUwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZGVudGlhbFJlc291cmNlIHtcbiAgaXNDb25maWRlbnRpYWw/OiBib29sZWFuO1xuICBtZXRob2Q/OiBBY2Nlc3NSb2xlTWV0aG9kQ2hvaWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluaGVyaXRlZFJvbGUge1xuICByb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgc291cmNlPzogRGlyZWN0b3J5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NSb2xlIHtcbiAgaXNzdWVyPzogVXNlck5vZGU7XG4gIHN1YmplY3Q/OiBVc2VyTm9kZTtcbiAgcm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIG1ldGhvZD86IEFjY2Vzc1JvbGVNZXRob2RDaG9pY2U7XG4gIGluaGVyaXRlZFJvbGU/OiBJbmhlcml0ZWRSb2xlO1xuICB0cD86IFRwTm9kZTtcbiAgaXNJc3N1ZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBGaWxlT3BlcmF0aW9uRmllbGQge1xuICBDUkVBVEUgPSAnQ1JFQVRFJyxcbiAgUkVBRCA9ICdSRUFEJyxcbiAgVVBEQVRFID0gJ1VQREFURScsXG4gIFJFVkVSVCA9ICdSRVZFUlQnLFxuICBERUxFVEUgPSAnREVMRVRFJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlVmVyc2lvbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGZpbGU/OiBGaWxlTm9kZTtcbiAgc3RhdGU/OiBGaWxlU3RhdGVOb2RlO1xuICBvcGVyYXRpb24/OiBGaWxlT3BlcmF0aW9uRmllbGQ7XG4gIGF1dGhvcj86IFVzZXJOb2RlO1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWxlU3RhdGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwbGFpbk1ldGE/OiBKU09OU3RyaW5nO1xuICBwbGFpbk1ldGFKc29uPzogSlNPTk9iamVjdDtcbiAgY2lwaGVyTWV0YT86IHN0cmluZztcbiAgY2lwaGVyTWV0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGNvbnRlbnRSZXNvdXJjZT86IHN0cmluZztcbiAgdmVyc2lvbnM/OiBDb25uZWN0aW9uPEZpbGVWZXJzaW9uTm9kZT47XG4gIGtleUlkPzogSUQ7XG59XG5cbmV4cG9ydCBlbnVtIEtleUV4Y2hhbmdlT3RrU3RhdGUge1xuICBPVEtfSU5JVElBVEVEID0gJ09US19JTklUSUFURUQnLFxuICBPVEtfQUNDRVBURUQgPSAnT1RLX0FDQ0VQVEVEJyxcbiAgT1RLX0NPTVBMRVRFRCA9ICdPVEtfQ09NUExFVEVEJyxcbn1cblxuLy8gVGhlc2UgZmllbGRzIGFyZSBub3Qgb3B0aW9uYWwgYmVjYXVzZSB0aGV5IGFyZSBub3Qgd2l0aGluIHRoZSB1c2VyJ3MgY29udHJvbCB0byBzZWxlY3QgaW4gYSBncWwgcXVlcnkuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3RDYXJkU2hhcmVkQ2lwaGVyRGF0YSB7XG4gIC8vIFNoYXJlZCByZWFkIGFjY2VzcyBiZXR3ZWVuIGluaXRpYXRvciBhbmQgcmVzcG9uZGVyLiBCdXQgb25seSB0aGUgaW5pdGlhdG9yIGhhcyB3cml0ZSBhY2Nlc3MuXG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb246IEpTT05PYmplY3Q7XG59XG5cbi8qKlxuICogVGhlIGNvbnRlbnRzIG9mIHRoZSBvbmUtdGltZSBrZXkgY2lwaGVyXG4gKiBUaGVzZSBmaWVsZHMgYXJlIG5vdCBvcHRpb25hbCBiZWNhdXNlIHRoZXkgYXJlIG5vdCB3aXRoaW4gdGhlIHVzZXIncyBjb250cm9sIHRvIHNlbGVjdCBpbiBhIGdxbCBxdWVyeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdEtleUNpcGhlckNsZWFySnNvbjIge1xuICAvLyBVc2VkIHRvIGNvbmZpcm0gdG8gdGhlIGluaXRpYXRvciB0aGF0IHRoZSByZXNwb25kZXIgaGFzIGFjY2VzcyB0byB0aGUgb25lLXRpbWUga2V5LlxuICBub25jZTogc3RyaW5nO1xuICAvLyBEYXRhIHNlbnQgZnJvbSBpbml0aWF0b3IgdG8gdGhlIHJlc3BvbmRlclxuICBpbml0aWF0b3I6IHtcbiAgICBvbmVUaW1lUGJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjsgLy8gb25lLXRpbWUgcHVibGljIGVuY3J5cHRpb24ga2V5IHRoZSByZXNwb25kZXIgd2lsbCB1c2UgdG8gc2VuZCBkYXRhIGJhY2sgdG8gdGhlIGluaXRpYXRvclxuICAgIHBiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIHB1YmxpYyBlbmNyeXB0aW9uIGtleVxuICAgIHNpZ1BiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIHB1YmxpYyBzaWduaW5nIGtleVxuICAgIG1lc3NhZ2U/OiBKU09OT2JqZWN0O1xuICAgIGNvbnRhY3RDYXJkPzogQ29udGFjdENhcmRTaGFyZWRDaXBoZXJEYXRhO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV4Y2hhbmdlT3RrTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBLZXlFeGNoYW5nZU90a1N0YXRlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBta1NoYXJlZEtleT86IEtleU5vZGU7XG4gIGluaXRpYXRvclNpZ1B4az86IEtleU5vZGU7XG4gIHJlc3BvbmRlclNpZ1B4az86IEtleU5vZGU7XG4gIGluaXRpYXRvck9uZVRpbWVQYmtDaXBoZXI/OiBzdHJpbmc7XG4gIG90S2V5UGFyYW1zPzogc3RyaW5nO1xuICBvdEtleUNpcGhlcj86IHN0cmluZztcbiAgb3RLZXlDaXBoZXJDbGVhckpzb24/OiBPdEtleUNpcGhlckNsZWFySnNvbjI7XG4gIHJlc3BvbmRlclBia0NpcGhlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gS2V5RXhjaGFuZ2VTdGF0ZSB7XG4gIElOX1BST0dSRVNTID0gJ0lOX1BST0dSRVNTJyxcbiAgQ09NUExFVEVEID0gJ0NPTVBMRVRFRCcsXG4gIERFQ0xJTkVEID0gJ0RFQ0xJTkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIERFTEVURUQgPSAnREVMRVRFRCcsXG59XG5cbmV4cG9ydCBlbnVtIEtleUV4Y2hhbmdlTW9kZSB7XG4gIE9USyA9ICdPVEsnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV4Y2hhbmdlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgZXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICB0b2tlbj86IHN0cmluZztcbiAgdG9rZW5FeHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHN0YXRlPzogS2V5RXhjaGFuZ2VTdGF0ZTtcbiAgbW9kZT86IEtleUV4Y2hhbmdlTW9kZTtcbiAgaW5pdGlhdG9yPzogVXNlck5vZGU7XG4gIHJlc3BvbmRlcj86IFVzZXJOb2RlO1xuICBpbml0aWF0b3JSb290S2V5Q2lwaGVyPzogc3RyaW5nO1xuICByZXNwb25kZXJSb290S2V5Q2lwaGVyPzogc3RyaW5nO1xuICBpbml0aWF0b3JBY3Rpb25SZXF1aXJlZD86IGJvb2xlYW47XG4gIHJlc3BvbmRlckFjdGlvblJlcXVpcmVkPzogYm9vbGVhbjtcbiAgY3JlYXRlVHA/OiBib29sZWFuO1xuICBvdGs/OiBLZXlFeGNoYW5nZU90a05vZGU7XG4gIGlzSW5pdGlhdG9yPzogYm9vbGVhbjtcbiAgaXNFeHBpcmVkPzogYm9vbGVhbjtcbiAgcmVzcG9uZGVyRW1haWxBZGRyZXNzPzogTHJFbWFpbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRJdGVtcyB7XG4gIGRlc2NlbmRhbnRzOiBEZXNjZW5kYW50cztcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENvbnRhY3RDYXJkTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgb3duZXI/OiBVc2VyTm9kZTtcbiAgcmVjZWl2ZXI/OiBVc2VyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlckRhdGFTaWc/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFTaWdQeGs/OiBLZXlOb2RlO1xuICBvd25lckNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIG93bmVyQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIG93bmVyS2V5PzogS2V5Tm9kZTtcbiAgb3duZXJQbGFpbkRhdGE/OiBzdHJpbmc7XG4gIG93bmVyUGxhaW5EYXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIG93bmVyUGxhaW5EYXRhU2lnPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyS2V5PzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU2hhcmVkS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAga2V5RXhjaGFuZ2U/OiBLZXlFeGNoYW5nZU5vZGU7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgdXNlclByaz86IEtleU5vZGU7XG4gIHVzZXJTaWdQcms/OiBLZXlOb2RlO1xuICBvdGhlcj86IFVzZXJOb2RlO1xuICBvdGhlclBiaz86IEtleU5vZGU7XG4gIG90aGVyU2lnUGJrPzogS2V5Tm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtTaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBta1B4az86IEtleU5vZGU7XG4gIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXI/OiBzdHJpbmc7XG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyPzogc3RyaW5nO1xuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBta1Jlc2hhcmVSZXF1ZXN0U2VudD86IGJvb2xlYW47XG4gIG1rUmVzaGFyZVJlc3BvbnNlU2VudD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFVzZXJTaGFyZWRLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB1c2VyPzogVXNlck5vZGU7XG4gIG90aGVyPzogVXNlck5vZGU7XG4gIHVzZXJTaGFyZWRLZXk/OiBVc2VyU2hhcmVkS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgb3RoZXI/OiBVc2VyTm9kZTtcbiAgY3VycmVudFVzZXJTaGFyZWRLZXk/OiBDdXJyZW50VXNlclNoYXJlZEtleU5vZGU7XG4gIGlzQ29tcGxldGVkPzogYm9vbGVhbjtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ29udGFjdENhcmQ/OiBTaGFyZWRDb250YWN0Q2FyZE5vZGU7XG4gIG15Q29udGFjdENhcmQ/OiBTaGFyZWRDb250YWN0Q2FyZE5vZGU7XG4gIG15SXRlbXM/OiBTaGFyZWRJdGVtcztcbiAgdGhlaXJJdGVtcz86IFNoYXJlZEl0ZW1zO1xuICBteVNjZW5hcmlvcz86IENvbm5lY3Rpb248U2NlbmFyaW9Ob2RlPjtcbiAgc2hhcmVkU2NlbmFyaW9zPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb05vZGU+O1xufVxuXG5leHBvcnQgZW51bSBUcEFzc2VtYmx5U3RhdGUge1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgUkVTRVQgPSAnUkVTRVQnLFxufVxuXG5leHBvcnQgZW51bSBUcENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGVudW0gVHBDbGFpbUFwcHJvdmVyU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRBcHByb3ZhbCBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXBwcm92ZXJFbWFpbD86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXI/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uPzogSlNPTk9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92YWxOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICByZWNlaXZlckNpcGhlcj86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleT86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhcHByb3ZlckVtYWlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZlciB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBzdGF0ZT86IFRwQ2xhaW1BcHByb3ZlclN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJTdWJBc3NlbWJseSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgYXBwcm92ZXJzPzogVHBQYXNzd29yZFJlc2V0VXNlckFwcHJvdmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlckFzc2VtYmx5IHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBzdWJBc3NlbWJsaWVzPzogVHBQYXNzd29yZFJlc2V0VXNlclN1YkFzc2VtYmx5W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgcmVzZXRVc2VybmFtZT86IHN0cmluZztcbiAgc3RhdGU/OiBUcENsYWltU3RhdGU7XG4gIHBhc3NLZXk/OiBQYXNzS2V5Tm9kZTtcbiAgbWFzdGVyS2V5PzogS2V5Tm9kZTtcbiAgcHhrPzogS2V5Tm9kZTtcbiAgc2Vzc2lvbkVuY3J5cHRpb25LZXk/OiBzdHJpbmc7XG4gIGFwcHJvdmFscz86IFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGVbXTtcbiAgYXNzZW1ibHlDaXBoZXJEYXRhPzogc3RyaW5nO1xuICB3cmFwcGVkQXNzZW1ibHlLZXlWZXJpZmllclByaz86IHN0cmluZztcbiAgYXNzZW1ibHk/OiBUcFBhc3N3b3JkUmVzZXRVc2VyQXNzZW1ibHk7XG4gIHJlcXVlc3RBZ2FpbkFmdGVyPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXNzZW1ibHk/OiBUcEFzc2VtYmx5Tm9kZTtcbiAgcmVxdWVzdD86IFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlO1xuICBhcHBsaWVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBUcENsYWltU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGlkPzogSUQ7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgY2FuTWVldFF1b3J1bT86IGJvb2xlYW47XG4gIHN1YmplY3RLZXk/OiBLZXlOb2RlO1xuICBzdWJqZWN0Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgc3ViamVjdENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhc3NlbWJseUtleT86IEtleU5vZGU7XG4gIGFzc2VtYmx5Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgYXNzZW1ibHlDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgc3ViQXNzZW1ibGllcz86IENvbm5lY3Rpb248VHBTdWJBc3NlbWJseU5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwU3ViQXNzZW1ibHlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIHN1YmplY3RDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbj86IHN0cmluZztcbiAgYXBwcm92ZXJzPzogQ29ubmVjdGlvbjxUcEFzc2VtYmx5QXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5QXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICB0cD86IFRwTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcFBhc3N3b3JkUmVzZXROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBhc3NlbWJseT86IFNoYXJlZFRwQXNzZW1ibHlOb2RlO1xuICB0cD86IFRwTm9kZTtcbiAgc2hhcmVkUmVxdWVzdD86IFNoYXJlZFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwQXNzZW1ibHlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBhc0FwcHJvdmVycz86IENvbm5lY3Rpb248VHBBc3NlbWJseUFzQXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5QXNBcHByb3Zlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0UmVxdWVzdE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGNsYWltPzogU2hhcmVkVHBDbGFpbU5vZGU7XG4gIHB4az86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBDbGFpbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogVHBDbGFpbVN0YXRlO1xuICBhc0NsYWltQXBwcm92ZXJzPzogQ29ubmVjdGlvbjxTaGFyZWRUcENsYWltQXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcENsYWltQXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IFRwQ2xhaW1BcHByb3ZlclN0YXRlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJBcHByb3ZhbHM/OiBDb25uZWN0aW9uPFNoYXJlZFRwQ2xhaW1SZWNlaXZlckFwcHJvdmFsTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBDbGFpbVJlY2VpdmVyQXBwcm92YWxOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBweGs/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgZW51bSBMb2NrU3RhdGUge1xuICBVTkxPQ0tFRCA9ICdVTkxPQ0tFRCcsXG4gIE1VVEVYX0xPQ0tFRCA9ICdNVVRFWF9MT0NLRUQnLFxufVxuXG5leHBvcnQgZW51bSBTY2VuYXJpb1N0YXRlIHtcbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxuICBFTkFCTEVEID0gJ0VOQUJMRUQnLFxuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG59XG5cbmV4cG9ydCBlbnVtIENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGVudW0gQ2xhaW1BcHByb3ZlclN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG59XG5cbmV4cG9ydCBlbnVtIFNjZW5hcmlvTGFzdENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb0xhdGVzdENsYWltIHtcbiAgc3RhdGU/OiBTY2VuYXJpb0xhc3RDbGFpbVN0YXRlO1xuICBjcmVhdGVkPzogRGF0ZVRpbWU7XG4gIGNsYWltQWdhaW5BZnRlcj86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3ViamVjdD86IFVzZXJOb2RlO1xuICBzdWJqZWN0S2V5PzogS2V5Tm9kZTtcbiAgc3ViamVjdENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHN1YmplY3RDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXNzZW1ibHk/OiBUcEFzc2VtYmx5Tm9kZTtcbiAgc3RhdGU/OiBTY2VuYXJpb1N0YXRlO1xuICBjbGFpbWFudHM/OiBDb25uZWN0aW9uPFNjZW5hcmlvQ2xhaW1hbnROb2RlPjtcbiAgcmVjZWl2ZXJzPzogQ29ubmVjdGlvbjxTY2VuYXJpb1JlY2VpdmVyTm9kZT47XG4gIGNsYWltcz86IENvbm5lY3Rpb248U2NlbmFyaW9DbGFpbU5vZGU+O1xuICBjbGFpbT86IFNjZW5hcmlvQ2xhaW1Ob2RlO1xuICBhc3NlbWJseVN0YXRlPzogU2NlbmFyaW9Bc3NlbWJseVN0YXRlO1xuICBsYXRlc3RDbGFpbT86IFNjZW5hcmlvTGF0ZXN0Q2xhaW07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9DbGFpbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGNsYWltYW50PzogU2NlbmFyaW9DbGFpbWFudE5vZGU7XG4gIHN0YXRlPzogQ2xhaW1TdGF0ZTtcbiAgc2NlbmFyaW8/OiBTY2VuYXJpb05vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9Bc3NlbWJseVN0YXRlIHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBzdWJBc3NlbWJseVN0YXRlcz86IFNjZW5hcmlvU3ViQXNzZW1ibHlTdGF0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvU3ViQXNzZW1ibHlTdGF0ZSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgYXBwcm92ZXJTdGF0ZXM/OiBTY2VuYXJpb0Fzc2VtYmx5QXBwcm92ZXJTdGF0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQXNzZW1ibHlBcHByb3ZlclN0YXRlIHtcbiAgc3RhdGU/OiBUcENsYWltQXBwcm92ZXJTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHBiaz86IEtleU5vZGU7XG4gIHJlY2VpdmVyRGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPFNjZW5hcmlvUmVjZWl2ZXJEaXJlY3RvcnlOb2RlPjtcbiAgcmVjZWl2ZXJGaWxlcz86IENvbm5lY3Rpb248U2NlbmFyaW9SZWNlaXZlckZpbGVOb2RlPjtcbiAgdHA/OiBUcE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9SZWNlaXZlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBiaz86IEtleU5vZGU7XG59XG5cbmV4cG9ydCB0eXBlIFJlY2VpdmVyRGlyZWN0b3J5QWNjZXNzUm9sZSA9IEFjY2Vzc1JvbGVDaG9pY2U7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9SZWNlaXZlckl0ZW1Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICByZWNlaXZlcj86IFNoYXJlZFNjZW5hcmlvUmVjZWl2ZXJOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYWNjZXNzUm9sZT86IFJlY2VpdmVyRGlyZWN0b3J5QWNjZXNzUm9sZTtcbiAgd3JhcHBlZEl0ZW1LZXk/OiBzdHJpbmc7XG4gIGl0ZW1LZXk/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvUmVjZWl2ZXJEaXJlY3RvcnlOb2RlXG4gIGV4dGVuZHMgU2NlbmFyaW9SZWNlaXZlckl0ZW1Ob2RlIHtcbiAgZGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVyRmlsZU5vZGUgZXh0ZW5kcyBTY2VuYXJpb1JlY2VpdmVySXRlbU5vZGUge1xuICBmaWxlPzogRmlsZU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9DbGFpbWFudE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHRwPzogVHBOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN1YmplY3Q/OiBVc2VyTm9kZTtcbiAgc3RhdGU/OiBTY2VuYXJpb1N0YXRlO1xuICB0cD86IFRwTm9kZTtcbiAgYXNDbGFpbWFudD86IFNjZW5hcmlvQ2xhaW1hbnROb2RlO1xuICBhc1JlY2VpdmVyPzogU2NlbmFyaW9SZWNlaXZlck5vZGU7XG4gIGFzc2VtYmx5PzogU2hhcmVkVHBBc3NlbWJseU5vZGU7XG4gIHNoYXJlZENsYWltPzogU2hhcmVkU2NlbmFyaW9DbGFpbU5vZGU7XG4gIGFzc2VtYmx5U3RhdGU/OiBTY2VuYXJpb0Fzc2VtYmx5U3RhdGU7XG4gIGxhdGVzdENsYWltPzogU2NlbmFyaW9MYXRlc3RDbGFpbTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBDbGFpbVN0YXRlO1xuICBzaGFyZWRTY2VuYXJpbz86IFNoYXJlZFNjZW5hcmlvTm9kZTtcbiAgaXNDbGFpbWFudD86IGJvb2xlYW47XG4gIGFzQ2xhaW1SZWNlaXZlcj86IFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlck5vZGU7XG4gIGNsYWltPzogU2hhcmVkVHBDbGFpbU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbUFwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJzPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb1JlY2VpdmVyTm9kZT47XG4gIHN0YXRlPzogQ2xhaW1BcHByb3ZlclN0YXRlO1xuICBhcHByb3Zlcj86IFRwQXNzZW1ibHlBcHByb3Zlck5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZWQ/OiBEYXRlVGltZTtcbiAgYXBwcm92YWxzPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZWRBcHByb3ZhbE5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlZEFwcHJvdmFsTm9kZVxuICBleHRlbmRzIE5vZGUsXG4gICAgVGltZVN0YW1wZWQge1xuICByZWNlaXZlckNpcGhlcj86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHB4az86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGxhaW5EYXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgdGltZVJlYWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25NYW5hZ2VtZW50U3RhdGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGxhc3RWaWV3ZWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGVudW0gTGlua1R5cGVGaWVsZCB7XG4gIEhBUkQgPSAnSEFSRCcsXG4gIFNPRlQgPSAnU09GVCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNlbmRlcj86IFVzZXJOb2RlO1xuICByZWNlaXZlcj86IFVzZXJOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzZW5kZXJTaWdQYms/OiBLZXlOb2RlO1xuICBwbGFpbk1lc3NhZ2U/OiBzdHJpbmc7XG4gIHBsYWluTWVzc2FnZUpzb24/OiBzdHJpbmc7XG4gIHNpZ25lZENpcGhlck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNpZ25lZENpcGhlck1lc3NhZ2VDbGVhckpzb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9ja0ZpZWxkIHtcbiAgY3JlYXRlZD86IERhdGVUaW1lO1xuICBtb2RpZmllZD86IERhdGVUaW1lO1xuICBleHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHN0YXRlPzogTG9ja1N0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckNvbmZpZyB7XG4gIHJlbGF5Q29ubmVjdGlvbk1heExpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJsZVBsYW5GaWVsZCB7XG4gIGlzc3VlclVpZD86IHN0cmluZztcbiAgcGxhblVpZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHByaWNlT3B0aW9ucz86IFByaWNlT3B0aW9uRmllbGRbXTtcbiAgdHJpYWw/OiBUcmlhbFBlcmlvZEZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlT3B0aW9uRmllbGQge1xuICBwcmljZUlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYW1vdW50PzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgaW50ZXJ2YWxVbml0Pzogc3RyaW5nO1xuICBpbnRlcnZhbENvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWFsUGVyaW9kRmllbGQge1xuICB5ZWFycz86IG51bWJlcjtcbiAgbW9udGhzPzogbnVtYmVyO1xuICB3ZWVrcz86IG51bWJlcjtcbiAgZGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q2FwdHVyZUZpZWxkIHtcbiAgc3RyaXBlSW50ZW50SWQ/OiBzdHJpbmc7XG4gIHN0cmlwZUNsaWVudFNlY3JldD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50TWV0aG9kTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY2FyZD86IFBheW1lbnRDYXJkRmllbGQ7XG4gIGludm9pY2U/OiBQYXltZW50SW52b2ljZUZpZWxkO1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRDYXJkRmllbGQge1xuICBicmFuZD86IHN0cmluZztcbiAgbGFzdEZvdXJEaWdpdHM/OiBzdHJpbmc7XG4gIGV4cGlyeVllYXI/OiBudW1iZXI7XG4gIGV4cGlyeU1vbnRoPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRJbnZvaWNlRmllbGQge1xuICBlbWFpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9tb3Rpb25hbENvZGVGaWVsZCB7XG4gIGFtb3VudE9mZj86IG51bWJlcjtcbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIHBlcmNlbnRPZmY/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogc3RyaW5nO1xuICBkdXJhdGlvbkluTW9udGhzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcmlvZEZpZWxkIHtcbiAgc3RhcnQ/OiBEYXRlVGltZTtcbiAgZW5kPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVkUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjdXJyZW50U3RhdGVzPzogSXNzdWVkUGxhblN0YXRlTm9kZVtdO1xuICBjdXJyZW50UGVyaW9kPzogUGVyaW9kRmllbGQ7XG4gIGN1cnJlbnRQcmljZU9wdGlvbj86IFByaWNlT3B0aW9uRmllbGQ7XG4gIHVwY29taW5nSW52b2ljZT86IEJpbGxpbmdGaWVsZDtcbiAgYWx0ZXJuYXRpdmVQcmljZU9wdGlvbnM/OiBQcmljZU9wdGlvbkZpZWxkW107XG4gIHNjaGVkdWxlZFByaWNlQ2hhbmdlcz86IFByaWNlQ2hhbmdlRmllbGRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc3N1ZWRQbGFuU3RhdGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwZXJpb2RTdGFydD86IERhdGVUaW1lO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RhdGU/OiBQbGFuU3RhdGVGaWVsZDtcbn1cblxuZXhwb3J0IGVudW0gUGxhblN0YXRlRmllbGQge1xuICBUUklBTExJTkcgPSAnVFJJQUxMSU5HJyxcbiAgQUNUSVZFID0gJ0FDVElWRScsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbGxpbmdGaWVsZCB7XG4gIGludm9pY2VOdW1iZXI/OiBzdHJpbmc7XG4gIHRvdGFsPzogbnVtYmVyO1xuICBhbW91bnREdWU/OiBudW1iZXI7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBkb2N1bWVudFVybD86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBwZXJpb2RTdGFydD86IERhdGVUaW1lO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgZmluYWxpc2VkQXQ/OiBEYXRlVGltZTtcbiAgcGFpZEF0PzogRGF0ZVRpbWU7XG4gIHBhaWQ/OiBib29sZWFuO1xuICBuZXh0UGF5bWVudEF0dGVtcHQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmljZUNoYW5nZUZpZWxkIHtcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcHJpY2VPcHRpb24/OiBQcmljZU9wdGlvbkZpZWxkO1xufVxuIl19
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUsUUFBUSxDQUFJLFVBQXlCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxDQUFOLElBQVksZUFFWDtBQUZELFdBQVksZUFBZTtJQUN6QiwwQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUI7QUFNRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQTJMRCxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLG1DQUFlLENBQUE7SUFDZixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDaEMsaURBQXVCLENBQUE7SUFDdkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFHakM7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLGlDQUFhLENBQUE7SUFDYixxQ0FBaUIsQ0FBQTtJQUNq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ckIsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLCtDQUFxQixDQUFBO0lBQ3JCLCtDQUFxQixDQUFBO0lBQ3JCLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUF3SUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQXdHRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLHlDQUF1QixDQUFBO0lBQ3ZCLG1DQUFpQixDQUFBO0lBQ2pCLHlDQUF1QixDQUFBO0lBQ3ZCLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIERhdGVUaW1lLFxuICBHZW5lcmljU2NhbGFyLFxuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgSlNPTlN0cmluZyxcbiAgTHJFbWFpbCxcbiAgTm9kZSxcbiAgVGltZVN0YW1wZWQsXG59IGZyb20gJy4vZ3JhcGhxbC50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBFZGdlczxUPihjb25uZWN0aW9uOiBDb25uZWN0aW9uPFQ+KSB7XG4gIHJldHVybiBjb25uZWN0aW9uLmVkZ2VzLm1hcCgoZWRnZSkgPT4gZWRnZS5ub2RlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlc05vZGUge1xuICBteVZhdWx0Pzogc3RyaW5nW107XG4gIHRwVmF1bHQ/OiBzdHJpbmdbXTtcbiAgc2hhcmVWYXVsdD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVc2VyRGVsZXRlU3RhdGUge1xuICBSRVFVRVNURUQgPSAnUkVRVUVTVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGVsZXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBVc2VyRGVsZXRlU3RhdGU7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZSB7XG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFuTm9kZSBleHRlbmRzIE5vZGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogSlNPTlN0cmluZztcbiAgc3RhdGU/OiBQbGFuU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBsYW5TdHJpcGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJzY3JpcHRpb25JZD86IHN0cmluZztcbiAgcHJpY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgcGxhbj86IFBsYW5Ob2RlO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RyaXBlPzogVXNlclBsYW5TdHJpcGVOb2RlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RyaXBlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY3VzdG9tZXI/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXNzS2V5UGFyYW1zPzogR2VuZXJpY1NjYWxhcjtcbiAgcGFzc0lkcFBhcmFtcz86IEdlbmVyaWNTY2FsYXI7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFzc0tleXM/OiBQYXNzS2V5Tm9kZVtdO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIHJvb3RLZXk/OiBLZXlOb2RlO1xuICBtYXN0ZXJLZXk/OiBLZXlOb2RlO1xuICBweGs/OiBLZXlOb2RlO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5vZGUgdHlwZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGludGVyZmFjZSBVc2VyTm9kZSBleHRlbmRzIE5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgY29udGFjdENhcmRzPzogQ29ubmVjdGlvbjxDb250YWN0Q2FyZE5vZGU+O1xuICBjdXJyZW50VXNlcktleT86IEN1cnJlbnRVc2VyS2V5Tm9kZTtcbiAgb3duZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgcmVjZWl2ZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgaXNDdXJyZW50VXNlcj86IGJvb2xlYW47XG4gIGhhdmVUcD86IGJvb2xlYW47XG4gIHN0cmlwZT86IFVzZXJTdHJpcGVOb2RlO1xuICB1c2VyUGxhbnM/OiBDb25uZWN0aW9uPFVzZXJQbGFuTm9kZT47XG4gIHVzZXJEZWxldGU/OiBVc2VyRGVsZXRlTm9kZTtcbiAgZmVhdHVyZXM/OiBGZWF0dXJlc05vZGU7XG4gIGZlYXR1cmVTdGF0ZT86IFVzZXJGZWF0dXJlU3RhdGU7XG4gIHNlc3Npb25FbmNyeXB0aW9uS2V5Pzogc3RyaW5nO1xuICBwbGFucz86IElzc3VlZFBsYW5Ob2RlW107XG4gIHBheW1lbnRNZXRob2RzPzogUGF5bWVudE1ldGhvZE5vZGVbXTtcbiAgYmlsbGluZ0hpc3Rvcnk/OiBCaWxsaW5nRmllbGRbXTtcbiAgYXZhaWxhYmxlUGxhbnM/OiBBdmFpbGFibGVQbGFuRmllbGRbXTtcbiAgY29uZmlnPzogSlNPTlN0cmluZztcbiAgY29uZmlnSnNvbj86IEpTT05PYmplY3Q7XG4gIGRhdGVKb2luZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckZlYXR1cmVTdGF0ZSBleHRlbmRzIFRpbWVTdGFtcGVkIHtcbiAgbm90aWZpY2F0aW9uc0xhc3RWaWV3ZWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJUaW1lIHtcbiAgdGltZXN0YW1wPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBiaz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG93bmVyPzogVXNlck5vZGU7XG4gIHB1YmxpY0RhdGFTaWc/OiBzdHJpbmc7XG4gIHB1YmxpY1NlYXJjaGFibGVTaWc/OiBzdHJpbmc7XG4gIHNpZ1B4az86IEtleU5vZGU7XG4gIGRlZmF1bHRGcm9tPzogRGF0ZVRpbWU7XG4gIHB1YmxpY0RhdGE/OiBzdHJpbmc7XG4gIHB1YmxpY1NlYXJjaGFibGU/OiBzdHJpbmc7XG4gIGNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIGNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBrZXk/OiBLZXlOb2RlO1xuICBwbGFpbkRhdGE/OiBzdHJpbmc7XG4gIHBsYWluRGF0YVNpZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NDb250cm9sbGVkUmVzb3VyY2Uge1xuICBhY2Nlc3NSb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgcGVybWlzc2lvbnM/OiBQZXJtaXNzaW9uQ2hvaWNlW107XG4gIHRwQWNjZXNzUm9sZXM/OiBBY2Nlc3NSb2xlW107XG4gIGNvbmZpZGVudGlhbGl0eT86IENvbmZpZGVudGlhbFJlc291cmNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeU5vZGVcbiAgZXh0ZW5kcyBOb2RlLFxuICAgIFRpbWVTdGFtcGVkLFxuICAgIEFjY2Vzc0NvbnRyb2xsZWRSZXNvdXJjZSB7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YUpzb24/OiBKU09OT2JqZWN0O1xuICBjaXBoZXJNZXRhPzogc3RyaW5nO1xuICBjaXBoZXJNZXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXJjaGl2ZWQ/OiBib29sZWFuO1xuICBrZXlJZD86IElEO1xuICBjaGlsZEZpbGVMaW5rcz86IENvbm5lY3Rpb248RmlsZUxpbmtOb2RlPjtcbiAgY2hpbGREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RGlyZWN0b3J5TGlua05vZGU+O1xuICBwYXJlbnREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RGlyZWN0b3J5TGlua05vZGU+O1xuICBuUGFyZW50RGlyZWN0b3J5TGlua3M/OiBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Q7XG4gIG5DaGlsZERpcmVjdG9yeUxpbmtzPzogRGlyZWN0b3J5TGlua05vZGVMck5MaXN0O1xuICBuQ2hpbGRGaWxlTGlua3M/OiBGaWxlTGlua05vZGVMck5MaXN0O1xuICBkZXNjZW5kYW50cz86IERlc2NlbmRhbnRzO1xuICBsb2NrPzogTG9ja0ZpZWxkO1xuICBsb2NrVmVyc2lvbj86IHN0cmluZztcbiAgdHBTaGFyZWQ/OiBDb25uZWN0aW9uPFRwU2hhcmVkRGlyZWN0b3J5Tm9kZT47XG4gIG5UcFNoYXJlZD86IFRwU2hhcmVkRGlyZWN0b3J5Tm9kZUxyTkxpc3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCwgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgY3VycmVudFZlcnNpb24/OiBGaWxlVmVyc2lvbk5vZGU7XG4gIGFyY2hpdmVkPzogYm9vbGVhbjtcbiAgdmVyc2lvbnM/OiBDb25uZWN0aW9uPEZpbGVWZXJzaW9uTm9kZT47XG4gIGtleUlkPzogSUQ7XG4gIHBhcmVudERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxGaWxlTGlua05vZGU+O1xuICBuUGFyZW50RGlyZWN0b3J5TGlua3M/OiBGaWxlTGlua05vZGVMck5MaXN0O1xuICBsb2NrPzogTG9ja0ZpZWxkO1xuICBsb2NrVmVyc2lvbj86IHN0cmluZztcbiAgdHBTaGFyZWQ/OiBDb25uZWN0aW9uPFRwU2hhcmVkRmlsZU5vZGU+O1xuICBuVHBTaGFyZWQ/OiBUcFNoYXJlZEZpbGVOb2RlTHJOTGlzdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlMaW5rTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFyZW50RGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgY2hpbGREaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xuICBsaW5rVHlwZT86IExpbmtUeXBlRmllbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUxpbmtOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXJlbnREaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xuICBjaGlsZEZpbGU/OiBGaWxlTm9kZTtcbiAgbGlua1R5cGU/OiBMaW5rVHlwZUZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdCB7XG4gIGxpc3Q/OiBEaXJlY3RvcnlMaW5rTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaW5rTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogRmlsZUxpbmtOb2RlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTaGFyZWREaXJlY3RvcnlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBpdGVtPzogRGlyZWN0b3J5Tm9kZTtcbiAgdHA/OiBUcE5vZGU7XG4gIHJvbGU/OiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbiAgaXNJc3N1ZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwU2hhcmVkRGlyZWN0b3J5Tm9kZUxyTkxpc3Qge1xuICBsaXN0PzogVHBTaGFyZWREaXJlY3RvcnlOb2RlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTaGFyZWRGaWxlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgaXRlbT86IEZpbGVOb2RlO1xuICB0cD86IFRwTm9kZTtcbiAgcm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIGlzc3Vlcj86IFVzZXJOb2RlO1xuICBpc0lzc3Vlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTaGFyZWRGaWxlTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogVHBTaGFyZWRGaWxlTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NlbmRhbnRzIHtcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xuICBkaXJlY3Rvcmllc0NvdW50PzogbnVtYmVyO1xuICBmaWxlc0NvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBBY2Nlc3NSb2xlQ2hvaWNlIHtcbiAgUkVBREVSID0gJ1JFQURFUicsXG4gIFdSSVRFUiA9ICdXUklURVInLFxuICBBRE1JTiA9ICdBRE1JTicsXG4gIERFTlkgPSAnREVOWScsXG4gIE9XTkVSID0gJ09XTkVSJyxcbn1cblxuZXhwb3J0IGVudW0gQWNjZXNzUm9sZU1ldGhvZENob2ljZSB7XG4gIElOSEVSSVRFRCA9ICdJTkhFUklURUQnLFxuICBESVJFQ1QgPSAnRElSRUNUJyxcbn1cblxuZXhwb3J0IGVudW0gUGVybWlzc2lvbkNob2ljZSB7XG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIFNIQVJFID0gJ1NIQVJFJyxcbiAgQVJDSElWRSA9ICdBUkNISVZFJyxcbiAgQUNDRVNTX0FSQ0hJVkVEID0gJ0FDQ0VTU19BUkNISVZFRCcsXG4gIFVOQVJDSElWRSA9ICdVTkFSQ0hJVkUnLFxuICBTRVRfQ09ORklERU5USUFMID0gJ1NFVF9DT05GSURFTlRJQUwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZGVudGlhbFJlc291cmNlIHtcbiAgaXNDb25maWRlbnRpYWw/OiBib29sZWFuO1xuICBtZXRob2Q/OiBBY2Nlc3NSb2xlTWV0aG9kQ2hvaWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluaGVyaXRlZFJvbGUge1xuICByb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgc291cmNlPzogRGlyZWN0b3J5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NSb2xlIHtcbiAgaXNzdWVyPzogVXNlck5vZGU7XG4gIHN1YmplY3Q/OiBVc2VyTm9kZTtcbiAgcm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIG1ldGhvZD86IEFjY2Vzc1JvbGVNZXRob2RDaG9pY2U7XG4gIGluaGVyaXRlZFJvbGU/OiBJbmhlcml0ZWRSb2xlO1xuICB0cD86IFRwTm9kZTtcbiAgaXNJc3N1ZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBGaWxlT3BlcmF0aW9uRmllbGQge1xuICBDUkVBVEUgPSAnQ1JFQVRFJyxcbiAgUkVBRCA9ICdSRUFEJyxcbiAgVVBEQVRFID0gJ1VQREFURScsXG4gIFJFVkVSVCA9ICdSRVZFUlQnLFxuICBERUxFVEUgPSAnREVMRVRFJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlVmVyc2lvbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGZpbGU/OiBGaWxlTm9kZTtcbiAgc3RhdGU/OiBGaWxlU3RhdGVOb2RlO1xuICBvcGVyYXRpb24/OiBGaWxlT3BlcmF0aW9uRmllbGQ7XG4gIGF1dGhvcj86IFVzZXJOb2RlO1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWxlU3RhdGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwbGFpbk1ldGE/OiBKU09OU3RyaW5nO1xuICBwbGFpbk1ldGFKc29uPzogSlNPTk9iamVjdDtcbiAgY2lwaGVyTWV0YT86IHN0cmluZztcbiAgY2lwaGVyTWV0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGNvbnRlbnRSZXNvdXJjZT86IHN0cmluZztcbiAgdmVyc2lvbnM/OiBDb25uZWN0aW9uPEZpbGVWZXJzaW9uTm9kZT47XG4gIGtleUlkPzogSUQ7XG59XG5cbmV4cG9ydCBlbnVtIEtleUV4Y2hhbmdlT3RrU3RhdGUge1xuICBPVEtfSU5JVElBVEVEID0gJ09US19JTklUSUFURUQnLFxuICBPVEtfQUNDRVBURUQgPSAnT1RLX0FDQ0VQVEVEJyxcbiAgT1RLX0NPTVBMRVRFRCA9ICdPVEtfQ09NUExFVEVEJyxcbn1cblxuLy8gVGhlc2UgZmllbGRzIGFyZSBub3Qgb3B0aW9uYWwgYmVjYXVzZSB0aGV5IGFyZSBub3Qgd2l0aGluIHRoZSB1c2VyJ3MgY29udHJvbCB0byBzZWxlY3QgaW4gYSBncWwgcXVlcnkuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3RDYXJkU2hhcmVkQ2lwaGVyRGF0YSB7XG4gIC8vIFNoYXJlZCByZWFkIGFjY2VzcyBiZXR3ZWVuIGluaXRpYXRvciBhbmQgcmVzcG9uZGVyLiBCdXQgb25seSB0aGUgaW5pdGlhdG9yIGhhcyB3cml0ZSBhY2Nlc3MuXG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb246IEpTT05PYmplY3Q7XG59XG5cbi8qKlxuICogVGhlIGNvbnRlbnRzIG9mIHRoZSBvbmUtdGltZSBrZXkgY2lwaGVyXG4gKiBUaGVzZSBmaWVsZHMgYXJlIG5vdCBvcHRpb25hbCBiZWNhdXNlIHRoZXkgYXJlIG5vdCB3aXRoaW4gdGhlIHVzZXIncyBjb250cm9sIHRvIHNlbGVjdCBpbiBhIGdxbCBxdWVyeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdEtleUNpcGhlckNsZWFySnNvbjIge1xuICAvLyBVc2VkIHRvIGNvbmZpcm0gdG8gdGhlIGluaXRpYXRvciB0aGF0IHRoZSByZXNwb25kZXIgaGFzIGFjY2VzcyB0byB0aGUgb25lLXRpbWUga2V5LlxuICBub25jZTogc3RyaW5nO1xuICAvLyBEYXRhIHNlbnQgZnJvbSBpbml0aWF0b3IgdG8gdGhlIHJlc3BvbmRlclxuICBpbml0aWF0b3I6IHtcbiAgICBvbmVUaW1lUGJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjsgLy8gb25lLXRpbWUgcHVibGljIGVuY3J5cHRpb24ga2V5IHRoZSByZXNwb25kZXIgd2lsbCB1c2UgdG8gc2VuZCBkYXRhIGJhY2sgdG8gdGhlIGluaXRpYXRvclxuICAgIHBiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIHB1YmxpYyBlbmNyeXB0aW9uIGtleVxuICAgIHNpZ1BiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIHB1YmxpYyBzaWduaW5nIGtleVxuICAgIG1lc3NhZ2U/OiBKU09OT2JqZWN0O1xuICAgIGNvbnRhY3RDYXJkPzogQ29udGFjdENhcmRTaGFyZWRDaXBoZXJEYXRhO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV4Y2hhbmdlT3RrTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBLZXlFeGNoYW5nZU90a1N0YXRlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBta1NoYXJlZEtleT86IEtleU5vZGU7XG4gIGluaXRpYXRvclNpZ1B4az86IEtleU5vZGU7XG4gIHJlc3BvbmRlclNpZ1B4az86IEtleU5vZGU7XG4gIGluaXRpYXRvck9uZVRpbWVQYmtDaXBoZXI/OiBzdHJpbmc7XG4gIG90S2V5UGFyYW1zPzogc3RyaW5nO1xuICBvdEtleUNpcGhlcj86IHN0cmluZztcbiAgb3RLZXlDaXBoZXJDbGVhckpzb24/OiBPdEtleUNpcGhlckNsZWFySnNvbjI7XG4gIHJlc3BvbmRlclBia0NpcGhlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gS2V5RXhjaGFuZ2VTdGF0ZSB7XG4gIElOX1BST0dSRVNTID0gJ0lOX1BST0dSRVNTJyxcbiAgQ09NUExFVEVEID0gJ0NPTVBMRVRFRCcsXG4gIERFQ0xJTkVEID0gJ0RFQ0xJTkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIERFTEVURUQgPSAnREVMRVRFRCcsXG59XG5cbmV4cG9ydCBlbnVtIEtleUV4Y2hhbmdlTW9kZSB7XG4gIE9USyA9ICdPVEsnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV4Y2hhbmdlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgZXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICB0b2tlbj86IHN0cmluZztcbiAgdG9rZW5FeHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHN0YXRlPzogS2V5RXhjaGFuZ2VTdGF0ZTtcbiAgbW9kZT86IEtleUV4Y2hhbmdlTW9kZTtcbiAgaW5pdGlhdG9yPzogVXNlck5vZGU7XG4gIHJlc3BvbmRlcj86IFVzZXJOb2RlO1xuICBpbml0aWF0b3JSb290S2V5Q2lwaGVyPzogc3RyaW5nO1xuICByZXNwb25kZXJSb290S2V5Q2lwaGVyPzogc3RyaW5nO1xuICBpbml0aWF0b3JBY3Rpb25SZXF1aXJlZD86IGJvb2xlYW47XG4gIHJlc3BvbmRlckFjdGlvblJlcXVpcmVkPzogYm9vbGVhbjtcbiAgY3JlYXRlVHA/OiBib29sZWFuO1xuICBvdGs/OiBLZXlFeGNoYW5nZU90a05vZGU7XG4gIGlzSW5pdGlhdG9yPzogYm9vbGVhbjtcbiAgaXNFeHBpcmVkPzogYm9vbGVhbjtcbiAgcmVzcG9uZGVyRW1haWxBZGRyZXNzPzogTHJFbWFpbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRJdGVtcyB7XG4gIGRlc2NlbmRhbnRzOiBEZXNjZW5kYW50cztcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENvbnRhY3RDYXJkTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgb3duZXI/OiBVc2VyTm9kZTtcbiAgcmVjZWl2ZXI/OiBVc2VyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlckRhdGFTaWc/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFTaWdQeGs/OiBLZXlOb2RlO1xuICBvd25lckNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIG93bmVyQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIG93bmVyS2V5PzogS2V5Tm9kZTtcbiAgb3duZXJQbGFpbkRhdGE/OiBzdHJpbmc7XG4gIG93bmVyUGxhaW5EYXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIG93bmVyUGxhaW5EYXRhU2lnPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyS2V5PzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU2hhcmVkS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAga2V5RXhjaGFuZ2U/OiBLZXlFeGNoYW5nZU5vZGU7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgdXNlclByaz86IEtleU5vZGU7XG4gIHVzZXJTaWdQcms/OiBLZXlOb2RlO1xuICBvdGhlcj86IFVzZXJOb2RlO1xuICBvdGhlclBiaz86IEtleU5vZGU7XG4gIG90aGVyU2lnUGJrPzogS2V5Tm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtTaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBta1B4az86IEtleU5vZGU7XG4gIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXI/OiBzdHJpbmc7XG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyPzogc3RyaW5nO1xuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBta1Jlc2hhcmVSZXF1ZXN0U2VudD86IGJvb2xlYW47XG4gIG1rUmVzaGFyZVJlc3BvbnNlU2VudD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFVzZXJTaGFyZWRLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB1c2VyPzogVXNlck5vZGU7XG4gIG90aGVyPzogVXNlck5vZGU7XG4gIHVzZXJTaGFyZWRLZXk/OiBVc2VyU2hhcmVkS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgb3RoZXI/OiBVc2VyTm9kZTtcbiAgY3VycmVudFVzZXJTaGFyZWRLZXk/OiBDdXJyZW50VXNlclNoYXJlZEtleU5vZGU7XG4gIGlzQ29tcGxldGVkPzogYm9vbGVhbjtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ29udGFjdENhcmQ/OiBTaGFyZWRDb250YWN0Q2FyZE5vZGU7XG4gIG15Q29udGFjdENhcmQ/OiBTaGFyZWRDb250YWN0Q2FyZE5vZGU7XG4gIG15SXRlbXM/OiBTaGFyZWRJdGVtcztcbiAgdGhlaXJJdGVtcz86IFNoYXJlZEl0ZW1zO1xuICBteVNjZW5hcmlvcz86IENvbm5lY3Rpb248U2NlbmFyaW9Ob2RlPjtcbiAgc2hhcmVkU2NlbmFyaW9zPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb05vZGU+O1xufVxuXG5leHBvcnQgZW51bSBUcEFzc2VtYmx5U3RhdGUge1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgUkVTRVQgPSAnUkVTRVQnLFxufVxuXG5leHBvcnQgZW51bSBUcENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGVudW0gVHBDbGFpbUFwcHJvdmVyU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRBcHByb3ZhbCBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXBwcm92ZXJFbWFpbD86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXI/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uPzogSlNPTk9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92YWxOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICByZWNlaXZlckNpcGhlcj86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleT86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhcHByb3ZlckVtYWlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZlciB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBzdGF0ZT86IFRwQ2xhaW1BcHByb3ZlclN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJTdWJBc3NlbWJseSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgYXBwcm92ZXJzPzogVHBQYXNzd29yZFJlc2V0VXNlckFwcHJvdmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlckFzc2VtYmx5IHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBzdWJBc3NlbWJsaWVzPzogVHBQYXNzd29yZFJlc2V0VXNlclN1YkFzc2VtYmx5W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgcmVzZXRVc2VybmFtZT86IHN0cmluZztcbiAgc3RhdGU/OiBUcENsYWltU3RhdGU7XG4gIHBhc3NLZXk/OiBQYXNzS2V5Tm9kZTtcbiAgbWFzdGVyS2V5PzogS2V5Tm9kZTtcbiAgcHhrPzogS2V5Tm9kZTtcbiAgc2Vzc2lvbkVuY3J5cHRpb25LZXk/OiBzdHJpbmc7XG4gIGFwcHJvdmFscz86IFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGVbXTtcbiAgYXNzZW1ibHlDaXBoZXJEYXRhPzogc3RyaW5nO1xuICB3cmFwcGVkQXNzZW1ibHlLZXlWZXJpZmllclByaz86IHN0cmluZztcbiAgYXNzZW1ibHk/OiBUcFBhc3N3b3JkUmVzZXRVc2VyQXNzZW1ibHk7XG4gIHJlcXVlc3RBZ2FpbkFmdGVyPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXNzZW1ibHk/OiBUcEFzc2VtYmx5Tm9kZTtcbiAgcmVxdWVzdD86IFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlO1xuICBhcHBsaWVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBUcENsYWltU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGlkPzogSUQ7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgY2FuTWVldFF1b3J1bT86IGJvb2xlYW47XG4gIHN1YmplY3RLZXk/OiBLZXlOb2RlO1xuICBzdWJqZWN0Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgc3ViamVjdENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhc3NlbWJseUtleT86IEtleU5vZGU7XG4gIGFzc2VtYmx5Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgYXNzZW1ibHlDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgc3ViQXNzZW1ibGllcz86IENvbm5lY3Rpb248VHBTdWJBc3NlbWJseU5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwU3ViQXNzZW1ibHlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIHN1YmplY3RDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbj86IHN0cmluZztcbiAgYXBwcm92ZXJzPzogQ29ubmVjdGlvbjxUcEFzc2VtYmx5QXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5QXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICB0cD86IFRwTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcFBhc3N3b3JkUmVzZXROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBhc3NlbWJseT86IFNoYXJlZFRwQXNzZW1ibHlOb2RlO1xuICB0cD86IFRwTm9kZTtcbiAgc2hhcmVkUmVxdWVzdD86IFNoYXJlZFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwQXNzZW1ibHlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBhc0FwcHJvdmVycz86IENvbm5lY3Rpb248VHBBc3NlbWJseUFzQXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5QXNBcHByb3Zlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0UmVxdWVzdE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGNsYWltPzogU2hhcmVkVHBDbGFpbU5vZGU7XG4gIHB4az86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBDbGFpbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogVHBDbGFpbVN0YXRlO1xuICBhc0NsYWltQXBwcm92ZXJzPzogQ29ubmVjdGlvbjxTaGFyZWRUcENsYWltQXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcENsYWltQXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IFRwQ2xhaW1BcHByb3ZlclN0YXRlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJBcHByb3ZhbHM/OiBDb25uZWN0aW9uPFNoYXJlZFRwQ2xhaW1SZWNlaXZlckFwcHJvdmFsTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBDbGFpbVJlY2VpdmVyQXBwcm92YWxOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBweGs/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgZW51bSBMb2NrU3RhdGUge1xuICBVTkxPQ0tFRCA9ICdVTkxPQ0tFRCcsXG4gIE1VVEVYX0xPQ0tFRCA9ICdNVVRFWF9MT0NLRUQnLFxufVxuXG5leHBvcnQgZW51bSBTY2VuYXJpb1N0YXRlIHtcbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxuICBFTkFCTEVEID0gJ0VOQUJMRUQnLFxuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG59XG5cbmV4cG9ydCBlbnVtIENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGVudW0gQ2xhaW1BcHByb3ZlclN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG59XG5cbmV4cG9ydCBlbnVtIFNjZW5hcmlvTGFzdENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb0xhdGVzdENsYWltIHtcbiAgc3RhdGU/OiBTY2VuYXJpb0xhc3RDbGFpbVN0YXRlO1xuICBjcmVhdGVkPzogRGF0ZVRpbWU7XG4gIGNsYWltQWdhaW5BZnRlcj86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3ViamVjdD86IFVzZXJOb2RlO1xuICBzdWJqZWN0S2V5PzogS2V5Tm9kZTtcbiAgc3ViamVjdENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHN1YmplY3RDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXNzZW1ibHk/OiBUcEFzc2VtYmx5Tm9kZTtcbiAgc3RhdGU/OiBTY2VuYXJpb1N0YXRlO1xuICBjbGFpbWFudHM/OiBDb25uZWN0aW9uPFNjZW5hcmlvQ2xhaW1hbnROb2RlPjtcbiAgcmVjZWl2ZXJzPzogQ29ubmVjdGlvbjxTY2VuYXJpb1JlY2VpdmVyTm9kZT47XG4gIGNsYWltcz86IENvbm5lY3Rpb248U2NlbmFyaW9DbGFpbU5vZGU+O1xuICBjbGFpbT86IFNjZW5hcmlvQ2xhaW1Ob2RlO1xuICBhc3NlbWJseVN0YXRlPzogU2NlbmFyaW9Bc3NlbWJseVN0YXRlO1xuICBsYXRlc3RDbGFpbT86IFNjZW5hcmlvTGF0ZXN0Q2xhaW07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9DbGFpbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGNsYWltYW50PzogU2NlbmFyaW9DbGFpbWFudE5vZGU7XG4gIHN0YXRlPzogQ2xhaW1TdGF0ZTtcbiAgc2NlbmFyaW8/OiBTY2VuYXJpb05vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9Bc3NlbWJseVN0YXRlIHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBzdWJBc3NlbWJseVN0YXRlcz86IFNjZW5hcmlvU3ViQXNzZW1ibHlTdGF0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvU3ViQXNzZW1ibHlTdGF0ZSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgYXBwcm92ZXJTdGF0ZXM/OiBTY2VuYXJpb0Fzc2VtYmx5QXBwcm92ZXJTdGF0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQXNzZW1ibHlBcHByb3ZlclN0YXRlIHtcbiAgc3RhdGU/OiBUcENsYWltQXBwcm92ZXJTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHBiaz86IEtleU5vZGU7XG4gIHJlY2VpdmVyRGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPFNjZW5hcmlvUmVjZWl2ZXJEaXJlY3RvcnlOb2RlPjtcbiAgcmVjZWl2ZXJGaWxlcz86IENvbm5lY3Rpb248U2NlbmFyaW9SZWNlaXZlckZpbGVOb2RlPjtcbiAgdHA/OiBUcE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9SZWNlaXZlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBiaz86IEtleU5vZGU7XG59XG5cbmV4cG9ydCB0eXBlIFJlY2VpdmVyRGlyZWN0b3J5QWNjZXNzUm9sZSA9IEFjY2Vzc1JvbGVDaG9pY2U7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9SZWNlaXZlckl0ZW1Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICByZWNlaXZlcj86IFNoYXJlZFNjZW5hcmlvUmVjZWl2ZXJOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYWNjZXNzUm9sZT86IFJlY2VpdmVyRGlyZWN0b3J5QWNjZXNzUm9sZTtcbiAgd3JhcHBlZEl0ZW1LZXk/OiBzdHJpbmc7XG4gIGl0ZW1LZXk/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvUmVjZWl2ZXJEaXJlY3RvcnlOb2RlXG4gIGV4dGVuZHMgU2NlbmFyaW9SZWNlaXZlckl0ZW1Ob2RlIHtcbiAgZGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVyRmlsZU5vZGUgZXh0ZW5kcyBTY2VuYXJpb1JlY2VpdmVySXRlbU5vZGUge1xuICBmaWxlPzogRmlsZU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9DbGFpbWFudE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHRwPzogVHBOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN1YmplY3Q/OiBVc2VyTm9kZTtcbiAgc3RhdGU/OiBTY2VuYXJpb1N0YXRlO1xuICB0cD86IFRwTm9kZTtcbiAgYXNDbGFpbWFudD86IFNjZW5hcmlvQ2xhaW1hbnROb2RlO1xuICBhc1JlY2VpdmVyPzogU2NlbmFyaW9SZWNlaXZlck5vZGU7XG4gIGFzc2VtYmx5PzogU2hhcmVkVHBBc3NlbWJseU5vZGU7XG4gIHNoYXJlZENsYWltPzogU2hhcmVkU2NlbmFyaW9DbGFpbU5vZGU7XG4gIGFzc2VtYmx5U3RhdGU/OiBTY2VuYXJpb0Fzc2VtYmx5U3RhdGU7XG4gIGxhdGVzdENsYWltPzogU2NlbmFyaW9MYXRlc3RDbGFpbTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBDbGFpbVN0YXRlO1xuICBzaGFyZWRTY2VuYXJpbz86IFNoYXJlZFNjZW5hcmlvTm9kZTtcbiAgaXNDbGFpbWFudD86IGJvb2xlYW47XG4gIGFzQ2xhaW1SZWNlaXZlcj86IFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlck5vZGU7XG4gIGNsYWltPzogU2hhcmVkVHBDbGFpbU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbUFwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJzPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb1JlY2VpdmVyTm9kZT47XG4gIHN0YXRlPzogQ2xhaW1BcHByb3ZlclN0YXRlO1xuICBhcHByb3Zlcj86IFRwQXNzZW1ibHlBcHByb3Zlck5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZWQ/OiBEYXRlVGltZTtcbiAgYXBwcm92YWxzPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZWRBcHByb3ZhbE5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlZEFwcHJvdmFsTm9kZVxuICBleHRlbmRzIE5vZGUsXG4gICAgVGltZVN0YW1wZWQge1xuICByZWNlaXZlckNpcGhlcj86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHB4az86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGxhaW5EYXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgdGltZVJlYWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25NYW5hZ2VtZW50U3RhdGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGxhc3RWaWV3ZWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGVudW0gTGlua1R5cGVGaWVsZCB7XG4gIEhBUkQgPSAnSEFSRCcsXG4gIFNPRlQgPSAnU09GVCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNlbmRlcj86IFVzZXJOb2RlO1xuICByZWNlaXZlcj86IFVzZXJOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzZW5kZXJTaWdQYms/OiBLZXlOb2RlO1xuICBwbGFpbk1lc3NhZ2U/OiBzdHJpbmc7XG4gIHBsYWluTWVzc2FnZUpzb24/OiBzdHJpbmc7XG4gIHNpZ25lZENpcGhlck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNpZ25lZENpcGhlck1lc3NhZ2VDbGVhckpzb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9ja0ZpZWxkIHtcbiAgY3JlYXRlZD86IERhdGVUaW1lO1xuICBtb2RpZmllZD86IERhdGVUaW1lO1xuICBleHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHN0YXRlPzogTG9ja1N0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckNvbmZpZyB7XG4gIHJlbGF5Q29ubmVjdGlvbk1heExpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJsZVBsYW5GaWVsZCB7XG4gIGlzc3VlclVpZD86IHN0cmluZztcbiAgcGxhblVpZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHByaWNlT3B0aW9ucz86IFByaWNlT3B0aW9uRmllbGRbXTtcbiAgdHJpYWw/OiBUcmlhbFBlcmlvZEZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlT3B0aW9uRmllbGQge1xuICBwcmljZUlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYW1vdW50PzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgaW50ZXJ2YWxVbml0Pzogc3RyaW5nO1xuICBpbnRlcnZhbENvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWFsUGVyaW9kRmllbGQge1xuICB5ZWFycz86IG51bWJlcjtcbiAgbW9udGhzPzogbnVtYmVyO1xuICB3ZWVrcz86IG51bWJlcjtcbiAgZGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q2FwdHVyZUZpZWxkIHtcbiAgc3RyaXBlSW50ZW50SWQ/OiBzdHJpbmc7XG4gIHN0cmlwZUNsaWVudFNlY3JldD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50TWV0aG9kTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY2FyZD86IFBheW1lbnRDYXJkRmllbGQ7XG4gIGludm9pY2U/OiBQYXltZW50SW52b2ljZUZpZWxkO1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRDYXJkRmllbGQge1xuICBicmFuZD86IHN0cmluZztcbiAgbGFzdEZvdXJEaWdpdHM/OiBzdHJpbmc7XG4gIGV4cGlyeVllYXI/OiBudW1iZXI7XG4gIGV4cGlyeU1vbnRoPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRJbnZvaWNlRmllbGQge1xuICBlbWFpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9tb3Rpb25hbENvZGVGaWVsZCB7XG4gIGFtb3VudE9mZj86IG51bWJlcjtcbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIHBlcmNlbnRPZmY/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogc3RyaW5nO1xuICBkdXJhdGlvbkluTW9udGhzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcmlvZEZpZWxkIHtcbiAgc3RhcnQ/OiBEYXRlVGltZTtcbiAgZW5kPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVkUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjdXJyZW50U3RhdGVzPzogSXNzdWVkUGxhblN0YXRlTm9kZVtdO1xuICBjdXJyZW50UGVyaW9kPzogUGVyaW9kRmllbGQ7XG4gIGN1cnJlbnRQcmljZU9wdGlvbj86IFByaWNlT3B0aW9uRmllbGQ7XG4gIHVwY29taW5nSW52b2ljZT86IEJpbGxpbmdGaWVsZDtcbiAgYWx0ZXJuYXRpdmVQcmljZU9wdGlvbnM/OiBQcmljZU9wdGlvbkZpZWxkW107XG4gIHNjaGVkdWxlZFByaWNlQ2hhbmdlcz86IFByaWNlQ2hhbmdlRmllbGRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc3N1ZWRQbGFuU3RhdGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwZXJpb2RTdGFydD86IERhdGVUaW1lO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RhdGU/OiBQbGFuU3RhdGVGaWVsZDtcbn1cblxuZXhwb3J0IGVudW0gUGxhblN0YXRlRmllbGQge1xuICBUUklBTExJTkcgPSAnVFJJQUxMSU5HJyxcbiAgQUNUSVZFID0gJ0FDVElWRScsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbGxpbmdGaWVsZCB7XG4gIGludm9pY2VOdW1iZXI/OiBzdHJpbmc7XG4gIHRvdGFsPzogbnVtYmVyO1xuICBhbW91bnREdWU/OiBudW1iZXI7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBkb2N1bWVudFVybD86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBwZXJpb2RTdGFydD86IERhdGVUaW1lO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgZmluYWxpc2VkQXQ/OiBEYXRlVGltZTtcbiAgcGFpZEF0PzogRGF0ZVRpbWU7XG4gIHBhaWQ/OiBib29sZWFuO1xuICBuZXh0UGF5bWVudEF0dGVtcHQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmljZUNoYW5nZUZpZWxkIHtcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcHJpY2VPcHRpb24/OiBQcmljZU9wdGlvbkZpZWxkO1xufVxuIl19
|
|
@@ -9,12 +9,10 @@ export class CurrentUser {
|
|
|
9
9
|
}
|
|
10
10
|
export class LoginResult {
|
|
11
11
|
}
|
|
12
|
-
export class RegisterResult {
|
|
13
|
-
}
|
|
14
12
|
export var RecoveryStatus;
|
|
15
13
|
(function (RecoveryStatus) {
|
|
16
14
|
RecoveryStatus["NONE"] = "none";
|
|
17
15
|
RecoveryStatus["NEW_PASSWORD"] = "new-password";
|
|
18
16
|
RecoveryStatus["OLD_PASSWORD"] = "old-password";
|
|
19
17
|
})(RecoveryStatus || (RecoveryStatus = {}));
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hdXRoL2F1dGgudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBeUJoRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQUFyRDs7UUFJRSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FnQnZCO0FBTUQsTUFBTSxPQUFPLFdBQVc7Q0FLdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLCtCQUFhLENBQUE7SUFDYiwrQ0FBNkIsQ0FBQTtJQUM3QiwrQ0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2duaXRvVXNlciB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQge1xuICBKU09OT2JqZWN0LFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZSxcbiAgVXNlckRlbGV0ZU5vZGUsXG59IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJy4uL2FwaS90eXBlcy9ncmFwaHFsLnR5cGVzJztcbmltcG9ydCB7IFBhc3NJZHBQYXJhbXMsIFBhc3NLZXlQYXJhbXMgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IFVzZXJQbGFuIH0gZnJvbSAnLi4vcGxhbi9wbGFuLnR5cGVzJztcbmltcG9ydCB7XG4gIEN1cnJlbnRVc2VyS2V5LFxuICBGZWF0dXJlcyxcbiAgTWFpbkNvbnRhY3RDYXJkLFxufSBmcm9tICcuLi9wcm9maWxlL3Byb2ZpbGUudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlCdW5kbGUge1xuICBwYXNzS2V5UGFyYW1zOiBQYXNzS2V5UGFyYW1zO1xuICBwYXNzS2V5OiBKV0suS2V5O1xuICBwYXNzSWRwUGFyYW1zOiBQYXNzSWRwUGFyYW1zO1xuICBwYXNzSWRwOiBKV0suS2V5O1xuICBwYXNzSWRwVmVyaWZpZXI6IEpXSy5LZXk7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xufVxuXG5leHBvcnQgY2xhc3MgQ29nbml0b0NoYWxsZW5nZVVzZXIgZXh0ZW5kcyBDb2duaXRvVXNlciB7XG4gIHJlY292ZXJ5U3RhdHVzOiBSZWNvdmVyeVN0YXR1cztcbiAgY2hhbGxlbmdlTmFtZTogJ1NNU19NRkEnIHwgJ1NPRlRXQVJFX1RPS0VOX01GQSc7XG4gIGNoYWxsZW5nZVBhcmFtOiBKU09OT2JqZWN0O1xuICBpc1RwUGFzc3dvcmRSZXNldFVzZXIgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGNsYXNzIEN1cnJlbnRVc2VyIHtcbiAgaWQ6IHN0cmluZztcbiAgc3ViOiBzdHJpbmc7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIGN1cnJlbnRVc2VyS2V5OiBDdXJyZW50VXNlcktleTtcbiAgZW1haWw6IHN0cmluZztcbiAgZW1haWxWZXJpZmllZDogYm9vbGVhbjtcbiAgcGhvbmU6IHN0cmluZztcbiAgcGhvbmVWZXJpZmllZDogYm9vbGVhbjtcbiAgY29udGFjdENhcmQ6IE1haW5Db250YWN0Q2FyZDtcbiAgdXNlckRlbGV0ZT86IFVzZXJEZWxldGVOb2RlO1xuICB1c2VyUGxhbnM6IFVzZXJQbGFuW107XG4gIGZlYXR1cmVzOiBGZWF0dXJlcztcbiAgaGFzVFBWYXVsdEFjY2VzczogYm9vbGVhbjtcbiAgc2Vzc2lvbkVuY3J5cHRpb25LZXk6IHN0cmluZztcbiAgZGF0ZUpvaW5lZDogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlciBleHRlbmRzIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlIHtcbiAgc3ViOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dpblJlc3VsdCB7XG4gIGhhc0NoYWxsZW5nZTogYm9vbGVhbjtcbiAgY2hhbGxlbmdlPzogQ29nbml0b0NoYWxsZW5nZVVzZXI7XG4gIHVzZXI/OiBDdXJyZW50VXNlcjtcbiAgcmVzZXRVc2VyPzogVHBQYXNzd29yZFJlc2V0VXNlck5vZGU7XG59XG5cbmV4cG9ydCBlbnVtIFJlY292ZXJ5U3RhdHVzIHtcbiAgTk9ORSA9ICdub25lJyxcbiAgTkVXX1BBU1NXT1JEID0gJ25ldy1wYXNzd29yZCcsXG4gIE9MRF9QQVNTV09SRCA9ICdvbGQtcGFzc3dvcmQnLFxufVxuIl19
|
|
@@ -410,7 +410,7 @@ export class LifeReadyAuthService {
|
|
|
410
410
|
const passKey = (yield this.keyFactory.derivePassKey(Object.assign({ password }, resetUser.passKey.passKeyParams))).jwk;
|
|
411
411
|
yield this.idleService.persistMasterKey(yield this.keyGraphService.unwrapWithPassKey(resetUser.passKey.id, passKey, resetUser.masterKey.id));
|
|
412
412
|
}
|
|
413
|
-
this.keyService.
|
|
413
|
+
this.keyService.setKeys({
|
|
414
414
|
passKey: {
|
|
415
415
|
id: resetUser.passKey.id,
|
|
416
416
|
},
|
|
@@ -565,4 +565,4 @@ LifeReadyAuthService.ctorParameters = () => [
|
|
|
565
565
|
{ type: TpPasswordResetAssemblyController },
|
|
566
566
|
{ type: HttpClient }
|
|
567
567
|
];
|
|
568
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBMkIsTUFBTSxjQUFjLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsT0FBTyxFQUFZLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBWSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sRUFDTCxxQ0FBcUMsRUFDckMsaUNBQWlDLEdBQ2xDLE1BQU0sa0RBQWtELENBQUM7QUFDMUQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEcsT0FBTyxFQUNMLHNDQUFzQyxFQUN0QyxvQ0FBb0MsRUFDcEMseUNBQXlDLEdBQzFDLE1BQU0sNENBQTRDLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDOUYsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQzNCLHdCQUF3QixHQUN6QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBSUwsY0FBYyxHQUVmLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRXRCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFdBQWlDLEVBQUUsRUFBRTtJQUNsRSxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUM7QUFXRixNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLFlBQzZCLE1BQWdCLEVBQ25DLElBQWUsRUFDZixVQUE2QixFQUM3QixVQUFzQixFQUN0QixjQUE4QixFQUM5QixlQUFnQyxFQUNoQyxlQUFnQyxFQUNoQyxXQUF3QixFQUN4QixTQUEyQixFQUMzQiwrQkFBZ0UsRUFDaEUsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLGtCQUFxRCxFQUNyRCxJQUFnQjtRQWJHLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQUNoRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1DO1FBQ3JELFNBQUksR0FBSixJQUFJLENBQVk7UUF0QjFCLDhEQUE4RDtRQUN0RCxlQUFVLEdBQXVCLElBQUksYUFBYSxDQUFNLENBQUMsQ0FBQyxDQUFDO1FBR25FLHNGQUFzRjtRQUN0RixxRUFBcUU7UUFDN0Qsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQWtCbEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2hCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO2dCQUM3QixNQUFNLElBQUkscUJBQXFCLENBQzdCLHdEQUF3RCxDQUN6RCxDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7SUFFSyxVQUFVOztZQUNkLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDO0tBQUE7SUFFTSxVQUFVLENBQUMsUUFBZ0IsRUFBRSxRQUFtQjtRQUNyRCx5RUFBeUU7UUFDekUsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFdEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDJFQUEyRTtJQUMzRTs7T0FFRztJQUNLLHNCQUFzQixDQUFDLFFBQWdCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQ2hCLG1DQUFtQztZQUNuQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFDOUI7WUFDRSx5RUFBeUU7WUFDekUsNEVBQTRFO1lBQzVFLGdGQUFnRjtZQUNoRiw4RUFBOEU7WUFDOUUsRUFBRTtZQUNGLHlFQUF5RTtZQUN6RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVhLGFBQWEsQ0FBQyxRQUFtQjs7WUFDN0MsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQzNDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUU3QywyREFBMkQ7WUFDM0QsNkJBQTZCO1lBRTdCLE1BQU0sT0FBTyxHQUFHLENBQ2QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsaUJBQ2pDLFFBQVEsSUFDTCxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQ25ELENBQ0gsQ0FBQyxHQUFHLENBQUM7WUFFTixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQzVELFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFDckMsT0FBTyxFQUNQLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDeEMsQ0FBQztZQUVGLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVuRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUVwRSxPQUFPO2dCQUNMLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtnQkFDbEIsR0FBRyxFQUFFLFlBQVk7Z0JBQ2pCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtnQkFDOUIsY0FBYyxFQUFFLFdBQVcsQ0FBQyxjQUFjO2dCQUMxQyxLQUFLLEVBQUUsWUFBWTtnQkFDbkIsYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixhQUFhLEVBQUUsS0FBSztnQkFDcEIsV0FBVyxvQkFDTixDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUMvRDtnQkFDRCxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVU7Z0JBQ2xDLFNBQVM7Z0JBQ1QsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7Z0JBQzdELFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtnQkFDOUIsb0JBQW9CLEVBQUUsV0FBVyxDQUFDLG9CQUFvQjtnQkFDdEQsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO2FBQ25DLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFSyxpQkFBaUI7O1lBQ3JCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7S0FBQTtJQUVELGNBQWMsQ0FBQyxhQUFxQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUF3QjtRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsUUFBd0I7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVhLFlBQVksQ0FDeEIsWUFBb0IsRUFDcEIsUUFBbUIsRUFDbkIsYUFBNEIsRUFDNUIsY0FBOEI7O1lBRTlCLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLGlCQUN2RCxRQUFRLElBQ0wsYUFBYSxFQUNoQixDQUFDO1lBQ0gsa0RBQWtEO1lBQ2xELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ2pDLFlBQVksRUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FDekQsQ0FBQztZQUVGLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBRXJDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztLQUFBO0lBRWEsUUFBUSxDQUNwQixZQUFvQixFQUNwQixRQUFtQjs7WUFFbkIsaURBQWlEO1lBQ2pELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUNqRSxZQUFZLENBQ2IsQ0FBQztZQUVGLElBQ0UsZ0JBQWdCLENBQUMsb0JBQW9CLEtBQUssb0JBQW9CLENBQUMsVUFBVSxFQUN6RTtnQkFDQSxNQUFNLElBQUksMkJBQTJCLENBQUMsa0NBQWtDLENBQUMsQ0FBQzthQUMzRTtZQUVELElBQ0UsZ0JBQWdCLENBQUMsb0JBQW9CLEtBQUssb0JBQW9CLENBQUMsUUFBUSxFQUN2RTtnQkFDQSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ2pDLG1HQUFtRztnQkFDbkcsSUFBSTtvQkFDRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQ2xDLFlBQVksRUFDWixRQUFRLEVBQ1IsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQ2pDLGNBQWMsQ0FBQyxZQUFZLENBQzVCLENBQUM7b0JBQ0YseURBQXlEO29CQUV6RCxnQ0FBZ0M7b0JBQ2hDLHdFQUF3RTtvQkFFeEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO29CQUVuQyxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFBQyxPQUFPLEtBQUssRUFBRTtvQkFDZCwwQ0FBMEM7b0JBQzFDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyx3QkFBd0IsRUFBRTt3QkFDM0MsTUFBTSxLQUFLLENBQUM7cUJBQ2I7b0JBQ0QsaURBQWlEO2lCQUNsRDtnQkFFRCxnRkFBZ0Y7Z0JBQ2hGLElBQUk7b0JBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUNsQyxZQUFZLEVBQ1osUUFBUSxFQUNSLGdCQUFnQixDQUFDLG9CQUFvQixFQUNyQyxjQUFjLENBQUMsWUFBWSxDQUM1QixDQUFDO29CQUNGLHVCQUF1QjtvQkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO29CQUVuQyxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFBQyxPQUFPLEtBQUssRUFBRTtvQkFDZCwwQ0FBMEM7b0JBQzFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyx3QkFBd0I7d0JBQzNDLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixDQUN2QixzR0FBc0csQ0FDdkc7d0JBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQztpQkFDWDthQUNGO1lBRUQsK0NBQStDO1lBQy9DLElBQUksZ0JBQWdCLENBQUMsZUFBZSxFQUFFO2dCQUNwQyxJQUFJO29CQUNGLDRFQUE0RTtvQkFDNUUsOENBQThDO29CQUM5QyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7b0JBQy9DLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FDakMsS0FBSyxDQUFDLGFBQWEsRUFDbkIsUUFBUSxFQUNSLEtBQUssQ0FBQyxhQUFhLEVBQ25CLGNBQWMsQ0FBQyxJQUFJLENBQ3BCLENBQUM7b0JBQ0YsR0FBRyxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztvQkFFakMsT0FBTyxHQUFHLENBQUM7aUJBQ1o7Z0JBQUMsT0FBTyxHQUFHLEVBQUU7b0JBQ1osdUNBQXVDO2lCQUN4QzthQUNGO1lBRUQsd0JBQXdCO1lBQ3hCLE9BQU8sTUFBTSxJQUFJLENBQUMsWUFBWSxDQUM1QixZQUFZLEVBQ1osUUFBUSxFQUNSLGdCQUFnQixDQUFDLG9CQUFvQixFQUNyQyxjQUFjLENBQUMsSUFBSSxDQUNwQixDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRWEsMEJBQTBCOztZQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQkFDaEIsTUFBTSxHQUFHLEdBQ1AseUZBQXlGLENBQUM7b0JBQzVGLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3RCO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxJQUFJLENBQ1YsdUZBQXVGLENBQ3hGLENBQUM7aUJBQ0g7YUFDRjtpQkFBTTtnQkFDTCwrREFBK0Q7Z0JBQy9ELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvRCxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUMzQixJQUFJLFVBQVUsQ0FBQztvQkFDYixRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFOzRCQUNMLG9CQUFvQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQ2xDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDbEM7eUJBQ0Y7cUJBQ0Y7aUJBQ0YsQ0FBQyxFQUNGO29CQUNFLGVBQWUsRUFBRSxLQUFLO2lCQUN2QixDQUNGLENBQUM7Z0JBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQ3pFO1FBQ0gsQ0FBQztLQUFBO0lBRWEsY0FBYyxDQUFDLFdBQWlDOztZQUM1RCxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvQyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQzFDLENBQUM7S0FBQTtJQUVZLEtBQUssQ0FDaEIsWUFBb0IsRUFDcEIsUUFBbUIsRUFDbkIsRUFBRSwyQkFBMkIsR0FBRyxJQUFJLEtBQW1CLEVBQUU7OztZQUV6RCxJQUFJLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRS9ELElBQ0UsMkJBQTJCO2dCQUMzQixPQUFBLFdBQVcsQ0FBQyxTQUFTLDBDQUFFLEtBQUssTUFBSyxZQUFZLENBQUMsUUFBUSxFQUN0RDtnQkFDQSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JDLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQzVEO1lBRUQsT0FBTyxXQUFXLENBQUM7O0tBQ3BCO0lBRVksU0FBUyxDQUNwQixZQUFvQixFQUNwQixRQUFtQjs7WUFFbkIsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUVoRSw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUN2RDtZQUVELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV2QyxJQUFJLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRTtnQkFDckMsaURBQWlEO2dCQUNqRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQzNDO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3hELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLDhDQUE4QztnQkFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDdEM7UUFDSCxDQUFDO0tBQUE7SUFFRCwwRkFBMEY7SUFDN0UsV0FBVyxDQUN0QixTQUErQixFQUMvQixRQUFtQixFQUNuQixVQUFtQixFQUNuQixJQUFZOztZQUVaLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFeEUsa0VBQWtFO1lBRWxFLE1BQU0sV0FBVyxHQUFnQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUU1RSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFckMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUV4RCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxXQUFXLENBQUMseUJBQXlCLENBQUM7b0JBQ3BDLFNBQVMsRUFBRSxHQUFHLEVBQUU7d0JBQ2QsT0FBTztvQkFDVCxDQUFDO29CQUNELFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ25DLENBQUMsQ0FBQzthQUNKO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQUE7SUFFSyxzQkFBc0IsQ0FBQyxJQUEwQjs7WUFDckQsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLGNBQWMsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9DLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDaEQsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLEtBQUssY0FBYyxDQUFDLFlBQVk7aUJBQ3BFLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQztLQUFBO0lBRUssa0JBQWtCLENBQ3RCLE1BQU0sR0FBRyxLQUFLOztZQUVkLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBRS9ELElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFO2dCQUN6RSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQztLQUFBO0lBRUssWUFBWSxDQUFDLE1BQU0sR0FBRyxLQUFLOztZQUMvQixJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDcEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7YUFDOUI7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFbkQsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsOENBQThDO1lBRTlFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLENBQUM7S0FBQTtJQUVLLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSzs7WUFDMUIsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDekI7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FDcEMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQzNDLENBQUM7WUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDdEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsOENBQThDO1lBQzlFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO0tBQUE7SUFFTyxnQkFBZ0IsQ0FBQyxRQUFtQjtRQUMxQyxNQUFNLGNBQWMsR0FBRyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxDQUFDO1FBQ3pDLE9BQU8sQ0FDTCxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxNQUFNLElBQUcsQ0FBQztZQUMxQixjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRWEsUUFBUSxDQUNwQixXQUF3QixFQUN4QixRQUFvQjs7WUFFcEIsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQzNDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUU3QyxJQUFJLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsQ0FDL0MsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUNsRCxDQUFDO2FBQ0g7WUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRW5FLElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sT0FBTyxHQUFHLENBQ2QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsaUJBQ2pDLFFBQVEsSUFDTCxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQ25ELENBQ0gsQ0FBQyxHQUFHLENBQUM7Z0JBRU4sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUNyQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQzFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFDckMsT0FBTyxFQUNQLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDeEMsQ0FDRixDQUFDO2FBQ0g7WUFDRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUVwRSxPQUFPO2dCQUNMLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtnQkFDbEIsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDO2dCQUNqRCxRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7Z0JBQzlCLGNBQWMsRUFBRSxXQUFXLENBQUMsY0FBYztnQkFDMUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDO2dCQUNyRCxhQUFhLEVBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxLQUFLLE1BQU07Z0JBQ3BFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQztnQkFDNUQsYUFBYSxFQUNYLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsRUFBRSxjQUFjLENBQUM7b0JBQzlELE1BQU07Z0JBQ1IsV0FBVyxvQkFDTixDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUMvRDtnQkFDRCxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVU7Z0JBQ2xDLFNBQVM7Z0JBQ1QsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7Z0JBQzdELFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtnQkFDOUIsb0JBQW9CLEVBQUUsV0FBVyxDQUFDLG9CQUFvQjtnQkFDdEQsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO2FBQ25DLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFWSxNQUFNOzs7WUFDakIsb0NBQW9DO1lBQ3BDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRTNFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVqQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXhFLFVBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLDBDQUFFLFFBQVEsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUNuQzs7S0FDRjtJQUVPLGdCQUFnQixDQUN0QixhQUFxQixFQUNyQixjQUFzQztRQUV0QyxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUN2QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLGFBQWEsQ0FDckMsQ0FBQztRQUVGLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBRWEsYUFBYSxDQUN6QixRQUFvQjs7WUFFcEIsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3BFLEtBQUssRUFBRSx3QkFBd0I7YUFDaEMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxTQUFTLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsNkJBQTZCLENBQy9DLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FDaEQsQ0FBQzthQUNIO1lBRUQsa0JBQWtCO1lBQ2xCLElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sT0FBTyxHQUFHLENBQ2QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsaUJBQ2pDLFFBQVEsSUFDTCxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDbEMsQ0FDSCxDQUFDLEdBQUcsQ0FBQztnQkFFTixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQ3JDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FDMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQ3BCLE9BQU8sRUFDUCxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDdkIsQ0FDRixDQUFDO2FBQ0g7WUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztnQkFDM0IsT0FBTyxFQUFFO29CQUNQLEVBQUUsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7aUJBQ3pCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxFQUFFLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2lCQUMzQjthQUNGLENBQUMsQ0FBQztZQUVILE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQ25ELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUMzQyxDQUFDO1lBQ0YsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztZQUV6RCx1Q0FDSyxDQUFDLE1BQU0sSUFBSSxDQUFDLCtCQUErQixDQUFDLDhCQUE4QixDQUMzRSxTQUFTLENBQ1YsQ0FBQyxLQUNGLEdBQUcsSUFDSDtRQUNKLENBQUM7S0FBQTtJQUVZLGtCQUFrQjs7WUFDN0IsTUFBTSxXQUFXLEdBQWdCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQzVFLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRTFFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JDLFdBQVcsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQy9DLElBQUksR0FBRyxFQUFFO3dCQUNQLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQy9DLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDYjt5QkFBTTt3QkFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7d0JBQ3RDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDWjtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUssZUFBZSxDQUFDLFdBQXNCOztZQUMxQyxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEQsSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQyxRQUFRLEVBQUU7Z0JBQzdDLE1BQU0sSUFBSSxtQkFBbUIsQ0FDM0IsK0NBQStDLENBQ2hELENBQUM7YUFDSDtZQUVELGlFQUFpRTtZQUNqRSx1REFBdUQ7WUFDdkQsaUVBQWlFO1lBQ2pFLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTdELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQ3RELFdBQVcsRUFDWCxTQUFTLENBQUMsa0JBQWtCLENBQzdCLENBQUM7WUFFRixnQ0FBZ0M7WUFDaEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTVDLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU1RSxNQUFNLHVCQUF1QixHQUMzQixNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQzFDLFNBQVMsQ0FBQyxHQUFHLEVBQ2IsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDeEIsQ0FBQztZQUVKLG1CQUFtQjtZQUNuQixNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLGlCQUMxRCxRQUFRLEVBQUUsV0FBVyxJQUNsQixTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDbEMsQ0FBQztZQUVILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQzFELGdCQUFnQixDQUFDLEdBQUcsQ0FDckIsQ0FBQztZQUVGLGlFQUFpRTtZQUNqRSw2QkFBNkI7WUFDN0IsaUVBQWlFO1lBQ2pFLE1BQU0sU0FBUyxHQUFHLENBQ2hCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQzNCLElBQUksVUFBVSxDQUFDO2dCQUNiLFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsRUFBRTtpQkFDVjthQUNGLENBQUMsRUFDRjtnQkFDRSxlQUFlLEVBQUUsS0FBSzthQUN2QixDQUNGLENBQ0YsQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLENBQUM7WUFFekMscUJBQXFCO1lBQ3JCLGtFQUFrRTtZQUNsRSxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUNsRCxxQ0FBcUMsQ0FDdEMsQ0FBQztZQUVGLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUNqRSxXQUFXLEVBQ1gsU0FBUyxDQUFDLDZCQUE2QixDQUN4QyxDQUFDO1lBQ0YsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUN2RCxzQkFBc0IsRUFDdEIsU0FBUyxDQUNWLENBQUM7WUFFRixpRUFBaUU7WUFDakUsd0NBQXdDO1lBQ3hDLGlFQUFpRTtZQUNqRSxNQUFNLGVBQWUsR0FBRyxDQUN0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUMzQixJQUFJLFVBQVUsQ0FBQztnQkFDYixRQUFRLEVBQUUseUNBQXlDO2dCQUNuRCxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFO3dCQUNMLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztxQkFDakQ7aUJBQ0Y7YUFDRixDQUFDLEVBQ0Y7Z0JBQ0UsZUFBZSxFQUFFLEtBQUs7YUFDdkIsQ0FDRixDQUNGLENBQUMsaUNBQWlDLENBQUMsV0FBVyxDQUFDO1lBRWhELGlFQUFpRTtZQUNqRSwwREFBMEQ7WUFDMUQsaUVBQWlFO1lBQ2pFLGtFQUFrRTtZQUNsRSxpRUFBaUU7WUFDakUsOERBQThEO1lBQzlELG1FQUFtRTtZQUNuRSxpREFBaUQ7WUFFakQsOERBQThEO1lBQzlELE1BQU0sVUFBVSxHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sUUFBUSxHQUFHLENBQU8sSUFBSSxFQUFFLEVBQUU7b0JBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO3dCQUNuQyxPQUFPO3FCQUNSO29CQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUU3QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBRTNELHFDQUFxQztvQkFDckMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDM0IsSUFBSSxVQUFVLENBQUM7d0JBQ2IsUUFBUSxFQUFFLHNDQUFzQzt3QkFDaEQsU0FBUyxFQUFFOzRCQUNULEtBQUssRUFBRTtnQ0FDTCx1QkFBdUI7Z0NBQ3ZCLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRTs2QkFDMUI7eUJBQ0Y7cUJBQ0YsQ0FBQyxDQUNILENBQUM7b0JBRUYsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQyxDQUFBLENBQUM7Z0JBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7WUFFSCwwRkFBMEY7WUFDMUYsNkJBQTZCO1lBQzdCLElBQUksSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUU7Z0JBQ3JFLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyx1QkFBdUIsRUFBRTtnQkFDbEQsTUFBTSxJQUFJLHdCQUF3QixDQUNoQywwR0FBMEcsQ0FDM0csQ0FBQzthQUNIO1lBRUQsMEJBQTBCO1lBQzFCLCtFQUErRTtZQUMvRSwyQkFBMkI7WUFDM0IsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRXJFLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7S0FBQTtJQUVhLGtCQUFrQixDQUM5QixTQUFrQzs7WUFFbEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWhFLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDaEMsU0FBUyxDQUFDLFNBQVM7aUJBQ2hCLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDakUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FDNUIsR0FBRyxFQUNILFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FDMUMsQ0FDRixDQUNKLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQUE7Ozs7WUFsdUJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQVdJLE1BQU0sU0FBQyxTQUFTO1lBckVaLFNBQVM7WUFVVCxpQkFBaUI7WUFFakIsVUFBVTtZQUtWLGNBQWM7WUFOZCxlQUFlO1lBSWYsZUFBZTtZQU5mLFdBQVc7WUFKWCxnQkFBZ0I7WUFDaEIsK0JBQStCO1lBVS9CLGNBQWM7WUFSZCxpQkFBaUI7WUFlakIsaUNBQWlDO1lBMUJqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2duaXRvVXNlciB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBIdWIgfSBmcm9tICdAYXdzLWFtcGxpZnkvY29yZSc7XG5pbXBvcnQgeyBDb2duaXRvVXNlckF0dHJpYnV0ZSB9IGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMckdyYXBoUUxTZXJ2aWNlLCBMck11dGF0aW9uIH0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZSB9IGZyb20gJy4uL2FwaS9xdWVyeS1wcm9jZXNzb3IvdHAtcGFzc3dvcmQtcmVzZXQtcHJvY2Vzc29yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHBDbGFpbVN0YXRlLCBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElkbGVTZXJ2aWNlIH0gZnJvbSAnLi4vaWRsZS9pZGxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBQYXNzSWRwUGFyYW1zIH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBLY0NvbmZpZywgS0NfQ09ORklHIH0gZnJvbSAnLi4vbGlmZS1yZWFkeS5jb25maWcnO1xuaW1wb3J0IHsgUGFzc3dvcmRTZXJ2aWNlIH0gZnJvbSAnLi4vcGFzc3dvcmQvcGFzc3dvcmQuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzaXN0U2VydmljZSB9IGZyb20gJy4uL3BlcnNpc3QvcGVyc2lzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmVhdHVyZXMsIFBhc3N3b3JkQ2hhbmdlU3RhdHVzIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7XG4gIFRQX1BBU1NXT1JEX1JFU0VUX0NMSUVOVF9OT05DRV9MRU5HVEgsXG4gIFRQX1BBU1NXT1JEX1JFU0VUX1VTRVJOQU1FX1NVRkZJWCxcbn0gZnJvbSAnLi4vdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQuY29uc3RhbnRzJztcbmltcG9ydCB7IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlciB9IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LmNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gIENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvbixcbiAgUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG59IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LmdxbCc7XG5pbXBvcnQgeyBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnkgfSBmcm9tICcuLi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC5wcml2YXRlLmdxbCc7XG5pbXBvcnQge1xuICBLY0JhZFJlcXVlc3RFeGNlcHRpb24sXG4gIEtjQmFkU3RhdGVFeGNlcHRpb24sXG4gIEtjQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbixcbiAgS2NJbnRlcm5hbEVycm9yRXhjZXB0aW9uLFxufSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgZ2V0QWNjZXNzSnd0VG9rZW4gfSBmcm9tICcuLi9fY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IFNldFNlc3Npb25FbmNyeXB0aW9uS2V5TXV0YXRpb24gfSBmcm9tICcuL2F1dGguZ3FsJztcbmltcG9ydCB7XG4gIENvZ25pdG9DaGFsbGVuZ2VVc2VyLFxuICBDdXJyZW50VXNlcixcbiAgTG9naW5SZXN1bHQsXG4gIFJlY292ZXJ5U3RhdHVzLFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyLFxufSBmcm9tICcuL2F1dGgudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGlzZUF1dGggPSAoYXV0aFNlcnZpY2U6IExpZmVSZWFkeUF1dGhTZXJ2aWNlKSA9PiB7XG4gIHJldHVybiAoKSA9PiBhdXRoU2VydmljZS5pbml0aWFsaXNlKCk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIHRwUGFzc3dvcmRSZXNldEF1dG9Db21wbGV0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIExvZ291dExpc3RlbmVyID0gKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMaWZlUmVhZHlBdXRoU2VydmljZSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHByaXZhdGUgaHViU3ViamVjdDogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigxKTtcbiAgcHJpdmF0ZSBjdXJyZW50VXNlcjogQ3VycmVudFVzZXI7XG4gIHByaXZhdGUgY3VycmVudFJlc2V0VXNlcjogVHBQYXNzd29yZFJlc2V0VXNlcjtcbiAgLy8gQ291bGQgdXNlIHJ4anMgb2JzZXJ2YWJsZXMgaGVyZS4gQnV0IHRyeWluZyB0byBoYXZlIGtjLWNsaWVudCB1c2UgYXMgbGl0dGxlIGFuZ3VsYXJcbiAgLy8gZmVhdHVyZXMgYXMgcG9zc2libGUuIFJ4anMgaXMgbm90IHVzZWQgYW55d2hlcmUgZWxzZSBpbiBrYy1jbGllbnQuXG4gIHByaXZhdGUgbG9nb3V0TGlzdGVuZXJzID0gbmV3IFNldDxMb2dvdXRMaXN0ZW5lcj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEtDX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEtjQ29uZmlnLFxuICAgIHByaXZhdGUgYXV0aDogQXV0aENsYXNzLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGhTZXJ2aWNlOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICBwcml2YXRlIGlkbGVTZXJ2aWNlOiBJZGxlU2VydmljZSxcbiAgICBwcml2YXRlIGxyR3JhcGhRTDogTHJHcmFwaFFMU2VydmljZSxcbiAgICBwcml2YXRlIHRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2U6IFRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJzaXN0U2VydmljZTogUGVyc2lzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhc3NlbWJseUNvbnRyb2xsZXI6IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7XG4gICAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmRlYnVnICE9IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEtjQmFkUmVxdWVzdEV4Y2VwdGlvbihcbiAgICAgICAgICAnSW4gcHJvZHVjdGlvbiBtb2RlLCBcImNvbmZpZy5kZWJ1Z1wiIG11c3QgYmUgc2V0IHRvIG51bGwnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGlzZSgpIHtcbiAgICBIdWIubGlzdGVuKCdhdXRoJywgKGRhdGEpID0+IHRoaXMuaHViU3ViamVjdC5uZXh0KGRhdGEucGF5bG9hZCkpO1xuICB9XG5cbiAgcHVibGljIGRlYnVnTG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IENyeXB0b0tleSkge1xuICAgIC8vIFRoaXMgd2lsbCBmYWlsIGlmIGRlYnVnIGlzIG51bGwuIEJ1dCB3aGVuIGRlYnVnIGlzIG51bGwsIHRoaXMgZnVuY3Rpb25cbiAgICAvLyBzaG91bGQgbm90IGJlIGNhbGxlZC5cbiAgICB0aGlzLmNvbmZpZy5kZWJ1Zy51c2VybmFtZSA9IHVzZXJuYW1lO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVidWdMb2FkVXNlcihwYXNzd29yZCk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogTG9naW4gdXNpbmcgdGhlIHNlcnZlciBzaWRlIHNlc3Npb24gbWV0aG9kLlxuICAgKi9cbiAgcHJpdmF0ZSBkZWJ1Z0xvZ2luVXNpbmdTZXNzaW9uKHVzZXJuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KFxuICAgICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgK1xuICAgICAgICAgICdkZWJ1Z19vbmx5L3VzZXJzL2xvZ2luLz91c2VybmFtZT0nICtcbiAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQodXNlcm5hbWUpLFxuICAgICAgICB7XG4gICAgICAgICAgLy8gTm9uLW9idmlvdXMgYWxlcnQ6IGlmIHlvdSB3YW50IHRoZSBjb29raWVzIHRvIGJlIHNldCwgeW91IG11c3QgdXNlIHRoZVxuICAgICAgICAgIC8vIFwid2l0aENyZWRlbnRpYWxzXCIgaGVhZGVyLiBJIHdvdWxkIGhhdmUgdGhvdWdodCB0aGUgd2l0aENyZWRlbnRpYWxzIGhlYWRlclxuICAgICAgICAgIC8vIGlzIG9ubHkgdXNlZCB0byBzZW5kIHRoZSBjb29raWVzIHdpdGggdGhlIHJlcXVlc3RzLiBCdXQsIGlmIHlvdSBkb24ndCBpbmNsdWRlXG4gICAgICAgICAgLy8gdGhlIFwid2l0aENyZWRlbnRpYWxzXCIgaGVhZGVyLCB0aGUgY29va2llcyBpbiB0aGUgcmVzcG9uc2UgRE9FUyBOT1QgZ2V0IHNldCFcbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9mZXRjaC9pc3N1ZXMvMzg2I2lzc3VlY29tbWVudC0yNDMyMjkzODhcbiAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGVidWdMb2FkVXNlcihwYXNzd29yZDogQ3J5cHRvS2V5KTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGNvbnN0IHsgY3VycmVudFVzZXIsIGNvbnRhY3RDYXJkLCB1c2VyUGxhbnMgfSA9XG4gICAgICBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk7XG5cbiAgICAvLyBEZWJ1ZyBtb2RlIGNhbiBub3QgZGVhbCB3aXRoIHNlc3Npb24gZW5jcnlwdGlvbiBrZXkgeWV0LlxuICAgIC8vIE5PIFNFU1NJT04gRU5DUllQVElPTiBLRVkuXG5cbiAgICBjb25zdCBwYXNzS2V5ID0gKFxuICAgICAgYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NLZXkoe1xuICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgLi4uY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkucGFzc0tleS5wYXNzS2V5UGFyYW1zLFxuICAgICAgfSlcbiAgICApLmp3aztcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnVud3JhcFdpdGhQYXNzS2V5KFxuICAgICAgY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkucGFzc0tleS5pZCxcbiAgICAgIHBhc3NLZXksXG4gICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5tYXN0ZXJLZXkuaWRcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5wZXJzaXN0TWFzdGVyS2V5KG1hc3RlcktleSk7XG5cbiAgICBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5wb3B1bGF0ZUtleXMoY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBjdXJyZW50VXNlci5pZCxcbiAgICAgIHN1YjogJ0RFQlVHX01PREUnLFxuICAgICAgdXNlcm5hbWU6IGN1cnJlbnRVc2VyLnVzZXJuYW1lLFxuICAgICAgY3VycmVudFVzZXJLZXk6IGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LFxuICAgICAgZW1haWw6ICdERUJVR19NT0RFJyxcbiAgICAgIGVtYWlsVmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgcGhvbmU6ICdERUJVR19NT0RFJyxcbiAgICAgIHBob25lVmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgY29udGFjdENhcmQ6IHtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZGVjcnlwdENvbnRhY3RDYXJkKGNvbnRhY3RDYXJkKSksXG4gICAgICB9LFxuICAgICAgdXNlckRlbGV0ZTogY3VycmVudFVzZXIudXNlckRlbGV0ZSxcbiAgICAgIHVzZXJQbGFucyxcbiAgICAgIGhhc1RQVmF1bHRBY2Nlc3M6IHRoaXMubWFwVFBWYXVsdEFjY2VzcyhjdXJyZW50VXNlci5mZWF0dXJlcyksXG4gICAgICBmZWF0dXJlczogY3VycmVudFVzZXIuZmVhdHVyZXMsXG4gICAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgICBkYXRlSm9pbmVkOiBjdXJyZW50VXNlci5kYXRlSm9pbmVkLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXRBY2Nlc3NKd3RUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBnZXRBY2Nlc3NKd3RUb2tlbih0aGlzLmF1dGgpO1xuICB9XG5cbiAgaW1wb3J0UGFzc3dvcmQocGxhaW5QYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxDcnlwdG9LZXk+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlGYWN0b3J5LmltcG9ydFBhc3N3b3JkKHBsYWluUGFzc3dvcmQpO1xuICB9XG5cbiAgYWRkTG9nb3V0TGlzdGVuZXIoY2FsbGJhY2s6IExvZ291dExpc3RlbmVyKSB7XG4gICAgdGhpcy5sb2dvdXRMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlbW92ZUxvZ291dExpc3RlbmVyKGNhbGxiYWNrOiBMb2dvdXRMaXN0ZW5lcikge1xuICAgIHRoaXMubG9nb3V0TGlzdGVuZXJzLmRlbGV0ZShjYWxsYmFjayk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZ2luSWRwSW1wbChcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5LFxuICAgIHBhc3NJZHBQYXJhbXM6IFBhc3NJZHBQYXJhbXMsXG4gICAgcmVjb3ZlcnlTdGF0dXM6IFJlY292ZXJ5U3RhdHVzXG4gICk6IFByb21pc2U8Q29nbml0b0NoYWxsZW5nZVVzZXI+IHtcbiAgICBjb25zdCBwYXNzSWRwUmVzdWx0ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NJZHAoe1xuICAgICAgcGFzc3dvcmQsXG4gICAgICAuLi5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIFVzZSB0aGUgZGVyaXZlZCBwYXNzd29yZCB0byBzaWduaW4gd2l0aCBjb2duaXRvXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMuYXV0aC5zaWduSW4oXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKHBhc3NJZHBSZXN1bHQuandrKVxuICAgICk7XG5cbiAgICB1c2VyLnJlY292ZXJ5U3RhdHVzID0gcmVjb3ZlcnlTdGF0dXM7XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9naW5JZHAoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleVxuICApOiBQcm9taXNlPENvZ25pdG9DaGFsbGVuZ2VVc2VyPiB7XG4gICAgLy8gRG93bmxvYWQgdGhlIHNhbHQgbmVlZGVkIHRvIGRlcml2ZSB0aGUgUGFzc0lkcFxuICAgIGNvbnN0IHBhc3NJZHBBcGlSZXN1bHQgPSBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldFBhc3NJZHBQYXJhbXMoXG4gICAgICBlbWFpbE9yUGhvbmVcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgcGFzc0lkcEFwaVJlc3VsdC5wYXNzd29yZENoYW5nZVN0YXR1cyA9PT0gUGFzc3dvcmRDaGFuZ2VTdGF0dXMuSW5Qcm9ncmVzc1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEtjQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbignQSBwYXNzd29yZCBjaGFuZ2UgaXMgaW4gcHJvZ3Jlc3MnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwYXNzSWRwQXBpUmVzdWx0LnBhc3N3b3JkQ2hhbmdlU3RhdHVzID09PSBQYXNzd29yZENoYW5nZVN0YXR1cy5SZWNvdmVyeVxuICAgICkge1xuICAgICAgY29uc29sZS5sb2coJ0luIHJlY292ZXJ5IG1vZGUuJyk7XG4gICAgICAvLyBMZXQncyBzYXkgd2UgZG9uJ3Qga25vdyBpZiB0aGUgcGFzc3dvcmQgaXMgdGhlIG5ldyBvbmUgb3IgdGhlIG9sZCBvbmUuIFdlIGp1c3QgaGF2ZSB0byB0cnkgYm90aC5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvZ2luSWRwSW1wbChcbiAgICAgICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgcGFzc0lkcEFwaVJlc3VsdC5uZXdQYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRFxuICAgICAgICApO1xuICAgICAgICAvLyBOZXcgcGFzc3dvcmQgd29ya2VkLiBMZXQncyBzZXQgdG8gdGhlIGN1cnJlbnQgcGFzc3dvcmRcblxuICAgICAgICAvLyAtLVBvdGVudGlhbCBGYWlsdXJlIFBvaW50IDEtLVxuICAgICAgICAvLyBpZiBjaGFuZ2VQYXNzd29yZENvbXBsZXRlKCkgZG9lc24ndCBnZXQgY2FsbGVkLCB0aGVuIGl0IHNob3VsZCByZW1haW5cblxuICAgICAgICBjb25zb2xlLmxvZygnTmV3IHBhc3N3b3JkIHdvcmtzIScpO1xuXG4gICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSnVzdCBidWJibGUgdXAgYW55IG90aGVyIHR5cGUgb2YgZXJyb3IuXG4gICAgICAgIGlmIChlcnJvci5jb2RlICE9PSAnTm90QXV0aG9yaXplZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICAvLyBwYXNzLCB0cnkgYWdhaW4gYXNzdW1pbmcgaXQncyB0aGUgb2xkIHBhc3N3b3JkXG4gICAgICB9XG5cbiAgICAgIC8vIE5vdyBhc3N1bWUgaXQncyB0aGUgcHJldmlvdXMgcGFzc3dvcmQuIEFueSBleGNlcHRpb24gaXMgYWxsb3dlZCB0byBidWJibGUgdXAuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgZW1haWxPclBob25lLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICAgICAgUmVjb3ZlcnlTdGF0dXMuT0xEX1BBU1NXT1JEXG4gICAgICAgICk7XG4gICAgICAgIC8vIE9sZCBwYXNzd29yZCB3b3JrZWQuXG4gICAgICAgIGNvbnNvbGUubG9nKCdPbGQgcGFzc3dvcmQgd29ya3MhJyk7XG5cbiAgICAgICAgcmV0dXJuIHVzZXI7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBKdXN0IGJ1YmJsZSB1cCBhbnkgb3RoZXIgdHlwZSBvZiBlcnJvci5cbiAgICAgICAgdGhyb3cgZXJyb3IuY29kZSA9PT0gJ05vdEF1dGhvcml6ZWRFeGNlcHRpb24nXG4gICAgICAgICAgPyBuZXcgS2NCYWRSZXF1ZXN0RXhjZXB0aW9uKFxuICAgICAgICAgICAgICAnVGhlIHBhc3N3b3JkIGNoYW5nZSByZXF1ZXN0IHdhcyBpbnRlcnJ1cHRlZCwgcGxlYXNlIHRyeSB0byBsb2dpbiB3aXRoIGJvdGggeW91ciBuZXcgYW5kIG9sZCBwYXNzd29yZCdcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGVycm9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyeSBhZ2FpbnN0IGFzIHRoZSBUUCBwYXNzd29yZCByZXNldCBhY2NvdW50XG4gICAgaWYgKHBhc3NJZHBBcGlSZXN1bHQudHBQYXNzd29yZFJlc2V0KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUUCBwYXNzd29yZCByZXNldCBpcyBpbiBwcm9jZXNzLiBXZSBuZWVkIHRvIHRyeSB0aGUgcGFzc3dvcmQgYWdhaW5zdCBib3RoXG4gICAgICAgIC8vIG9yaWdpbmFsIGFjY291bnQgYW5kIHRoZSBuZXcgcmVzZXQgYWNjb3VudC5cbiAgICAgICAgY29uc3QgcmVzZXQgPSBwYXNzSWRwQXBpUmVzdWx0LnRwUGFzc3dvcmRSZXNldDtcbiAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgcmVzZXQucmVzZXRVc2VybmFtZSxcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICByZXNldC5wYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5PTkVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0LmlzVHBQYXNzd29yZFJlc2V0VXNlciA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBjb250aW51ZSwgdHJ5IGFnYWluIGFzIHJlZ3VsYXIgdXNlci5cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMb2dpbiBhcyByZWd1bGFyIHVzZXJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICBwYXNzd29yZCxcbiAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICBSZWNvdmVyeVN0YXR1cy5OT05FXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU2Vzc2lvbkVuY3J5cHRpb25LZXkoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRpc2FibGVTZXNzaW9uRW5jcnlwdGlvbktleSkge1xuICAgICAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zdCBtc2cgPVxuICAgICAgICAgICdZb3Ugc2hvdWxkIG5vdCBzZXQgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PVRydWUgaW4gbW9kZSBwcm9kLiBJdCBkZWZhdWx0cyB0byBmYWxzZS4nO1xuICAgICAgICBjb25zb2xlLmVycm9yKG1zZyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdZb3UgaGF2ZSBzZXQgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PVRydWUuIE1ha2Ugc3VyZSBub3QgdG8gZG8gdGhpcyBpbiBwcm9kIG1vZGUuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTZXQgdGhlIHNlc3Npb24ga2V5IHRvIGEgbmV3IGVuY3J5cHRpb24ga2V5IGZvciB0aGlzIHNlc3Npb25cbiAgICAgIGNvbnN0IHNlc3Npb25FbmNyeXB0aW9uS2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogU2V0U2Vzc2lvbkVuY3J5cHRpb25LZXlNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5OiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICBzZXNzaW9uRW5jcnlwdGlvbktleS50b0pTT04odHJ1ZSlcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KHNlc3Npb25FbmNyeXB0aW9uS2V5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVBvc3RBdXRoKGNvZ25pdG9Vc2VyOiBDb2duaXRvQ2hhbGxlbmdlVXNlcikge1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlUGFzc3dvcmRSZWNvdmVyeShjb2duaXRvVXNlcik7XG4gICAgYXdhaXQgdGhpcy5oYW5kbGVTZXNzaW9uRW5jcnlwdGlvbktleSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luKFxuICAgIGVtYWlsT3JQaG9uZTogc3RyaW5nLFxuICAgIHBhc3N3b3JkOiBDcnlwdG9LZXksXG4gICAgeyB0cFBhc3N3b3JkUmVzZXRBdXRvQ29tcGxldGUgPSB0cnVlIH06IExvZ2luT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIGxldCBsb2dpblJlc3VsdCA9IGF3YWl0IHRoaXMubG9naW5JbXBsKGVtYWlsT3JQaG9uZSwgcGFzc3dvcmQpO1xuXG4gICAgaWYgKFxuICAgICAgdHBQYXNzd29yZFJlc2V0QXV0b0NvbXBsZXRlICYmXG4gICAgICBsb2dpblJlc3VsdC5yZXNldFVzZXI/LnN0YXRlID09PSBUcENsYWltU3RhdGUuQVBQUk9WRURcbiAgICApIHtcbiAgICAgIGF3YWl0IHRoaXMuY29tcGxldGVSZXF1ZXN0KHBhc3N3b3JkKTtcbiAgICAgIGxvZ2luUmVzdWx0ID0gYXdhaXQgdGhpcy5sb2dpbkltcGwoZW1haWxPclBob25lLCBwYXNzd29yZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvZ2luUmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luSW1wbChcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5XG4gICk6IFByb21pc2U8TG9naW5SZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZ291dCgpO1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcChlbWFpbE9yUGhvbmUsIHBhc3N3b3JkKTtcblxuICAgIC8vIHRvZG86IE1lZXQgTUZBIGNoYWxsZW5nZXMuXG4gICAgaWYgKFsnU01TX01GQScsICdTT0ZUV0FSRV9UT0tFTl9NRkEnXS5pbmNsdWRlcyhjb2duaXRvVXNlci5jaGFsbGVuZ2VOYW1lKSkge1xuICAgICAgcmV0dXJuIHsgaGFzQ2hhbGxlbmdlOiB0cnVlLCBjaGFsbGVuZ2U6IGNvZ25pdG9Vc2VyIH07XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5oYW5kbGVQb3N0QXV0aChjb2duaXRvVXNlcik7XG5cbiAgICBpZiAoY29nbml0b1VzZXIuaXNUcFBhc3N3b3JkUmVzZXRVc2VyKSB7XG4gICAgICAvLyBBc3N1bWluZyB0aGVyZSBpcyBubyBNRkEgb24gdGhlIFRQIHJlc2V0IHVzZXIuXG4gICAgICBjb25zdCByZXNldFVzZXIgPSBhd2FpdCB0aGlzLmxvYWRSZXNldFVzZXIocGFzc3dvcmQpO1xuICAgICAgcmV0dXJuIHsgaGFzQ2hhbGxlbmdlOiBmYWxzZSwgcmVzZXRVc2VyIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvYWRVc2VyKGNvZ25pdG9Vc2VyLCBwYXNzd29yZCk7XG4gICAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogZmFsc2UsIHVzZXIgfTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPIDxBWj4gV2UgbmVlZCB0byBoYW5kbGUgdGhlIGlzVHBQYXNzd29yZFJlc2V0VXNlcj1UcnVlIGNhc2UgaGVyZSBhZnRlciBNRkEgYXMgd2VsbC5cbiAgcHVibGljIGFzeW5jIHZlcmlmeUxvZ2luKFxuICAgIGNoYWxsZW5nZTogQ29nbml0b0NoYWxsZW5nZVVzZXIsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleSxcbiAgICByZW1lbWJlck1lOiBib29sZWFuLFxuICAgIGNvZGU6IHN0cmluZ1xuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyPiB7XG4gICAgYXdhaXQgdGhpcy5hdXRoLmNvbmZpcm1TaWduSW4oY2hhbGxlbmdlLCBjb2RlLCBjaGFsbGVuZ2UuY2hhbGxlbmdlTmFtZSk7XG5cbiAgICAvLyBUT0RPOiB0aGlzLmF1dGguY29uZmlybVNpZ25JbigpIGNvdWxkIHJldHVybiBhbm90aGVyIGNoYWxsZW5nZS5cblxuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcblxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUG9zdEF1dGgoY2hhbGxlbmdlKTtcblxuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvYWRVc2VyKGNvZ25pdG9Vc2VyLCBwYXNzd29yZCk7XG5cbiAgICBpZiAocmVtZW1iZXJNZSkge1xuICAgICAgY29nbml0b1VzZXIuc2V0RGV2aWNlU3RhdHVzUmVtZW1iZXJlZCh7XG4gICAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSxcbiAgICAgICAgb25GYWlsdXJlOiAoZSkgPT4gY29uc29sZS5lcnJvcihlKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlUGFzc3dvcmRSZWNvdmVyeSh1c2VyOiBDb2duaXRvQ2hhbGxlbmdlVXNlcikge1xuICAgIGlmICh1c2VyLnJlY292ZXJ5U3RhdHVzICE9PSBSZWNvdmVyeVN0YXR1cy5OT05FKSB7XG4gICAgICBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jaGFuZ2VQYXNzd29yZENvbXBsZXRlKHtcbiAgICAgICAgdXNlTmV3UGFzc3dvcmQ6IHVzZXIucmVjb3ZlcnlTdGF0dXMgPT09IFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJPclJlc2V0VXNlcihcbiAgICByZWxvYWQgPSBmYWxzZVxuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyIHwgVHBQYXNzd29yZFJlc2V0VXNlcj4ge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpO1xuXG4gICAgaWYgKGNvZ25pdG9Vc2VyLmdldFVzZXJuYW1lKCkuZW5kc1dpdGgoVFBfUEFTU1dPUkRfUkVTRVRfVVNFUk5BTUVfU1VGRklYKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzZXRVc2VyKHJlbG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFVzZXIocmVsb2FkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRSZXNldFVzZXIocmVsb2FkID0gZmFsc2UpOiBQcm9taXNlPFRwUGFzc3dvcmRSZXNldFVzZXI+IHtcbiAgICBpZiAoIXJlbG9hZCAmJiB0aGlzLmN1cnJlbnRSZXNldFVzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNldFVzZXI7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50UmVzZXRVc2VyID0gYXdhaXQgdGhpcy5sb2FkUmVzZXRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNldFVzZXI7XG4gIH1cblxuICBhc3luYyBnZXRVc2VyKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGlmICghcmVsb2FkICYmIHRoaXMuY3VycmVudFVzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRVc2VyO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihcbiAgICAgIGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKVxuICAgICk7XG4gICAgY29uc29sZS5sb2coJ1N0YXJ0aW5nIGlkbGUgc2VydmljZS4nKTtcbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVFBWYXVsdEFjY2VzcyhmZWF0dXJlcz86IEZlYXR1cmVzKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdHBWYXVsdEZlYXR1cmUgPSBmZWF0dXJlcz8udHBWYXVsdDtcbiAgICByZXR1cm4gKFxuICAgICAgdHBWYXVsdEZlYXR1cmU/Lmxlbmd0aCA+IDAgJiZcbiAgICAgIHRwVmF1bHRGZWF0dXJlLnNvbWUoKGZlYXR1cmUpID0+IGZlYXR1cmUudG9VcHBlckNhc2UoKSA9PT0gJ0FDQ0VTUycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFVzZXIoXG4gICAgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyLFxuICAgIHBhc3N3b3JkPzogQ3J5cHRvS2V5XG4gICk6IFByb21pc2U8Q3VycmVudFVzZXI+IHtcbiAgICBjb25zdCB7IGN1cnJlbnRVc2VyLCBjb250YWN0Q2FyZCwgdXNlclBsYW5zIH0gPVxuICAgICAgYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuXG4gICAgaWYgKGN1cnJlbnRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkoY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJBdHRyaWJ1dGVzID0gYXdhaXQgdGhpcy5hdXRoLnVzZXJBdHRyaWJ1dGVzKGNvZ25pdG9Vc2VyKTtcblxuICAgIGlmIChwYXNzd29yZCkge1xuICAgICAgY29uc3QgcGFzc0tleSA9IChcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NLZXkoe1xuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIC4uLmN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LnBhc3NLZXkucGFzc0tleVBhcmFtcyxcbiAgICAgICAgfSlcbiAgICAgICkuandrO1xuXG4gICAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnBlcnNpc3RNYXN0ZXJLZXkoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnVud3JhcFdpdGhQYXNzS2V5KFxuICAgICAgICAgIGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5tYXN0ZXJLZXkuaWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UucG9wdWxhdGVLZXlzKGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5KTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogY3VycmVudFVzZXIuaWQsXG4gICAgICBzdWI6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnc3ViJywgdXNlckF0dHJpYnV0ZXMpLFxuICAgICAgdXNlcm5hbWU6IGN1cnJlbnRVc2VyLnVzZXJuYW1lLFxuICAgICAgY3VycmVudFVzZXJLZXk6IGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LFxuICAgICAgZW1haWw6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnZW1haWwnLCB1c2VyQXR0cmlidXRlcyksXG4gICAgICBlbWFpbFZlcmlmaWVkOlxuICAgICAgICB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ2VtYWlsX3ZlcmlmaWVkJywgdXNlckF0dHJpYnV0ZXMpID09PSAndHJ1ZScsXG4gICAgICBwaG9uZTogdGhpcy5nZXRVc2VyQXR0cmlidXRlKCdwaG9uZV9udW1iZXInLCB1c2VyQXR0cmlidXRlcyksXG4gICAgICBwaG9uZVZlcmlmaWVkOlxuICAgICAgICB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ3Bob25lX251bWJlcl92ZXJpZmllZCcsIHVzZXJBdHRyaWJ1dGVzKSA9PT1cbiAgICAgICAgJ3RydWUnLFxuICAgICAgY29udGFjdENhcmQ6IHtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZGVjcnlwdENvbnRhY3RDYXJkKGNvbnRhY3RDYXJkKSksXG4gICAgICB9LFxuICAgICAgdXNlckRlbGV0ZTogY3VycmVudFVzZXIudXNlckRlbGV0ZSxcbiAgICAgIHVzZXJQbGFucyxcbiAgICAgIGhhc1RQVmF1bHRBY2Nlc3M6IHRoaXMubWFwVFBWYXVsdEFjY2VzcyhjdXJyZW50VXNlci5mZWF0dXJlcyksXG4gICAgICBmZWF0dXJlczogY3VycmVudFVzZXIuZmVhdHVyZXMsXG4gICAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgICBkYXRlSm9pbmVkOiBjdXJyZW50VXNlci5kYXRlSm9pbmVkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgd2F0Y2hBdXRoKCkge1xuICAgIHJldHVybiB0aGlzLmh1YlN1YmplY3Q7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIE5vdGlmeSBhbGwgbGlzdGVuZXJzIHRvIGNsZWFuIHVwLlxuICAgIGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLmxvZ291dExpc3RlbmVyc10ubWFwKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSkpO1xuXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IG51bGw7XG4gICAgdGhpcy5rZXlTZXJ2aWNlLnB1cmdlS2V5cygpO1xuICAgIHRoaXMua2V5R3JhcGhTZXJ2aWNlLnB1cmdlS2V5cygpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuYXV0aC5zaWduT3V0KCksIHRoaXMucHJvZmlsZVNlcnZpY2Uuc2lnbk91dCgpXSk7XG5cbiAgICBpZiAodGhpcy5jb25maWcuZGVidWc/LnVzZXJuYW1lKSB7XG4gICAgICB0aGlzLmNvbmZpZy5kZWJ1Zy51c2VybmFtZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRVc2VyQXR0cmlidXRlKFxuICAgIGF0dHJpYnV0ZU5hbWU6IHN0cmluZyxcbiAgICB1c2VyQXR0cmlidXRlczogQ29nbml0b1VzZXJBdHRyaWJ1dGVbXVxuICApIHtcbiAgICBjb25zdCB1c2VyQXR0cmlidXRlID0gdXNlckF0dHJpYnV0ZXMuZmluZChcbiAgICAgICh4KSA9PiB4LmdldE5hbWUoKSA9PT0gYXR0cmlidXRlTmFtZVxuICAgICk7XG5cbiAgICByZXR1cm4gdXNlckF0dHJpYnV0ZSA/IHVzZXJBdHRyaWJ1dGUuZ2V0VmFsdWUoKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRSZXNldFVzZXIoXG4gICAgcGFzc3dvcmQ/OiBDcnlwdG9LZXlcbiAgKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyPiB7XG4gICAgY29uc3QgeyB0cFBhc3N3b3JkUmVzZXRVc2VyOiByZXNldFVzZXIgfSA9IGF3YWl0IHRoaXMubHJHcmFwaFFMLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnksXG4gICAgfSk7XG5cbiAgICBpZiAocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGtleXNcbiAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHBhc3NLZXkgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzS2V5KHtcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzS2V5UGFyYW1zLFxuICAgICAgICB9KVxuICAgICAgKS5qd2s7XG5cbiAgICAgIGF3YWl0IHRoaXMuaWRsZVNlcnZpY2UucGVyc2lzdE1hc3RlcktleShcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UudW53cmFwV2l0aFBhc3NLZXkoXG4gICAgICAgICAgcmVzZXRVc2VyLnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICByZXNldFVzZXIubWFzdGVyS2V5LmlkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5rZXlTZXJ2aWNlLnBvcHVsYXRlS2V5cyh7XG4gICAgICBwYXNzS2V5OiB7XG4gICAgICAgIGlkOiByZXNldFVzZXIucGFzc0tleS5pZCxcbiAgICAgIH0sXG4gICAgICBtYXN0ZXJLZXk6IHtcbiAgICAgICAgaWQ6IHJlc2V0VXNlci5tYXN0ZXJLZXkuaWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgdXNlckF0dHJpYnV0ZXMgPSBhd2FpdCB0aGlzLmF1dGgudXNlckF0dHJpYnV0ZXMoXG4gICAgICBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKClcbiAgICApO1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnc3ViJywgdXNlckF0dHJpYnV0ZXMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihhd2FpdCB0aGlzLnRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2UucHJvY2Vzc1RwUGFzc3dvcmRSZXNldFVzZXJOb2RlKFxuICAgICAgICByZXNldFVzZXJcbiAgICAgICkpLFxuICAgICAgc3ViLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVmcmVzaEFjY2Vzc1Rva2VuKCkge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcbiAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBjb2duaXRvVXNlci5nZXRTaWduSW5Vc2VyU2Vzc2lvbigpLmdldFJlZnJlc2hUb2tlbigpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvZ25pdG9Vc2VyLnJlZnJlc2hTZXNzaW9uKHJlZnJlc2hUb2tlbiwgKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVmcmVzaGluZyB0b2tlbjogJywgZXJyKTtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnVG9rZW4gcmVmcmVzaCBjb21wbGV0ZScpO1xuICAgICAgICAgIHJlc29sdmUoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVSZXF1ZXN0KG5ld1Bhc3N3b3JkOiBDcnlwdG9LZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXNldFVzZXIgPSBhd2FpdCB0aGlzLmdldFJlc2V0VXNlcih0cnVlKTtcblxuICAgIGlmIChyZXNldFVzZXIuc3RhdGUgIT09IFRwQ2xhaW1TdGF0ZS5BUFBST1ZFRCkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdQYXNzd29yZCByZXNldCByZXF1ZXN0IGhhcyBub3QgYmVlbiBhcHByb3ZlZC4nXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gUHJlcGFyZSBhbGwgbWF0ZXJpYWxzIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gZXJyb3JzLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgYXNzZW1ibHlLZXkgPSBhd2FpdCB0aGlzLnJlY292ZXJBc3NlbWJseUtleShyZXNldFVzZXIpO1xuXG4gICAgY29uc3QgeyByb290S2V5IH0gPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICBhc3NlbWJseUtleSxcbiAgICAgIHJlc2V0VXNlci5hc3NlbWJseUNpcGhlckRhdGFcbiAgICApO1xuXG4gICAgLy8gTWFraW5nIHN1cmUgaXQncyBhIHZhbGlkIGtleS5cbiAgICBjb25zdCByb290S2V5SndrID0gYXdhaXQgSldLLmFzS2V5KHJvb3RLZXkpO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UuZ2V0S2V5KHJlc2V0VXNlci5tYXN0ZXJLZXkuaWQpO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5V3JhcHBlZFJvb3RLZXkgPVxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICAgIHJvb3RLZXlKd2sudG9KU09OKHRydWUpXG4gICAgICApO1xuXG4gICAgLy8gVGhlIG5ldyBwYXNzd29yZFxuICAgIGNvbnN0IG5ld1Bhc3NJZHBSZXN1bHQgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuZGVyaXZlUGFzc0lkcCh7XG4gICAgICBwYXNzd29yZDogbmV3UGFzc3dvcmQsXG4gICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbmV3SWRwUGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKFxuICAgICAgbmV3UGFzc0lkcFJlc3VsdC5qd2tcbiAgICApO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBHZXQgYXNzZW1ibHkga2V5IGNoYWxsZW5nZVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgY2hhbGxlbmdlID0gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uLFxuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgaW5wdXQ6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgaW5jbHVkZUtleUdyYXBoOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICkuY3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZS5jaGFsbGVuZ2U7XG5cbiAgICAvLyBTaWduIHRoZSBjaGFsbGVuZ2VcbiAgICAvLyBHZW5lcmF0ZSBhIGNsaWVudCBzaWRlIG5vbmNlIHRoYXQncyBubyBpbiB0aGUgc2VydmVyJ3MgY29udHJvbC5cbiAgICBjaGFsbGVuZ2UuY2xpZW50Tm9uY2UgPSB0aGlzLmtleUZhY3RvcnkucmFuZG9tU3RyaW5nKFxuICAgICAgVFBfUEFTU1dPUkRfUkVTRVRfQ0xJRU5UX05PTkNFX0xFTkdUSFxuICAgICk7XG5cbiAgICBjb25zdCBhc3NlbWJseUtleVZlcmlmaWVyUHJrID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgYXNzZW1ibHlLZXksXG4gICAgICByZXNldFVzZXIud3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmtcbiAgICApO1xuICAgIGNvbnN0IHNpZ25lZENoYWxsZW5nZSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihcbiAgICAgIGFzc2VtYmx5S2V5VmVyaWZpZXJQcmssXG4gICAgICBjaGFsbGVuZ2VcbiAgICApO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBDaGFuZ2UgcGFzc3dvcmQgZm9yIHRoZSBvcmlnaW5hbCB1c2VyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCB0ZW1wSWRwUGFzc3dvcmQgPSAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgICAgbmV3IExyTXV0YXRpb24oe1xuICAgICAgICAgIG11dGF0aW9uOiBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIHNpZ25lZENoYWxsZW5nZTogSlNPTi5zdHJpbmdpZnkoc2lnbmVkQ2hhbGxlbmdlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICApXG4gICAgKS5wcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3QuaWRwUGFzc3dvcmQ7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIExvZ2luIGFzIHRoZSBvcmlnaW5hbCB1c2VyIHVzaW5nIG5ldyB0ZW1wb3JhcnkgcGFzc3dvcmRcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvcmlnaW5hbCBhY2NvdW50J3MgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZFxuICAgIC8vIHRvIGEgdGVtcG9yYXJ5IHBhc3N3b3JkLiBJdCBpcyBubyBsb25nZXIgcG9zc2libGUgZm9yIHRoZSB1c2VyXG4gICAgLy8gdG8gdXNlIHRoZSBvcmlnaW5hbCBwYXNzd29yZCB0byBsb2dpbi4gQW55IHN1Y2Nlc3NmdWwgbG9naW5cbiAgICAvLyBjYW4gb25seSBiZSB1c2luZyB0aGUgdGVtcG9yYXJ5IHBhc3N3b3JkLiBTbyBpdCdzIHNhZmUgdG8gYXNzdW1lXG4gICAgLy8gdGhhdCB3ZSB3YW50IHRvIFwiY29tcGxldGVcIiB0aGUgcGFzc3dvcmQgcmVzZXQuXG5cbiAgICAvLyBUaGUgbWF5YmUgMkZBIHNvIHdlIGxpc3RlbiBmb3IgdGhlIGF1dGggZXZlbnQgZnJvbSBBbXBsaWZ5LlxuICAgIGNvbnN0IHJldFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSBhc3luYyAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5wYXlsb2FkLmV2ZW50ICE9PSAnc2lnbkluJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIEh1Yi5yZW1vdmUoJ2F1dGgnLCBsaXN0ZW5lcik7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5hdXRoLnNpZ25JbihyZXNldFVzZXIudXNlcm5hbWUsIG5ld0lkcFBhc3N3b3JkKTtcblxuICAgICAgICAvLyBTd2l0Y2ggb3ZlciB0byB0aGUgbmV3IHNldCBvZiBrZXlzXG4gICAgICAgIGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFxuICAgICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICAgIG11dGF0aW9uOiBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgIG1hc3RlcktleVdyYXBwZWRSb290S2V5LFxuICAgICAgICAgICAgICAgIG1hc3RlcktleUlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcblxuICAgICAgSHViLmxpc3RlbignYXV0aCcsIGxpc3RlbmVyKTtcbiAgICB9KTtcblxuICAgIC8vIFNpZ25pbiBhcyB0aGUgb3JpZ2luYWwgdXNlci4gUGFzc3dvcmQgaGFzIGJlZW4gcmVzZXQgdG8gdGVtcG9yYXJ5IG9uZS4gSXQgc2hvdWxkIHJldHVyblxuICAgIC8vIHdpdGggTkVXX1BBU1NXT1JEX1JFUVVJUkVEXG4gICAgbGV0IHVzZXIgPSBhd2FpdCB0aGlzLmF1dGguc2lnbkluKHJlc2V0VXNlci51c2VybmFtZSwgdGVtcElkcFBhc3N3b3JkLCB7XG4gICAgICBub1Byb3h5OiAndHJ1ZScsXG4gICAgfSk7XG5cbiAgICBpZiAodXNlci5jaGFsbGVuZ2VOYW1lICE9PSAnTkVXX1BBU1NXT1JEX1JFUVVJUkVEJykge1xuICAgICAgdGhyb3cgbmV3IEtjSW50ZXJuYWxFcnJvckV4Y2VwdGlvbihcbiAgICAgICAgJ0V4cGVjdGluZyBDb2duaXRvIHRvIGhhdmUgZG9uZSBhIHBhc3N3b3JkIHJlc2V0IGFmdGVyIGNhbGwgdG8gUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24uJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgbmV3IHBhc3N3b3JkIG9uIElkcFxuICAgIC8vIHRoZSBhd3NGZXRjaCgpIGZ1bmN0aW9uIHBhc3NlcyBORVdfUEFTU1dPUkRfUkVRVUlSRUQgZGlyZWN0bHkgdG8gQVdTIHdpdGhvdXRcbiAgICAvLyBnb2luZyB0aHJvdWdoIHRoZSBwcm94eS5cbiAgICB1c2VyID0gYXdhaXQgdGhpcy5hdXRoLmNvbXBsZXRlTmV3UGFzc3dvcmQodXNlciwgbmV3SWRwUGFzc3dvcmQsIHt9KTtcblxuICAgIHJldHVybiByZXRQcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWNvdmVyQXNzZW1ibHlLZXkoXG4gICAgcmVzZXRVc2VyOiBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZVxuICApOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRLZXkocmVzZXRVc2VyLnB4ay5pZCk7XG5cbiAgICBjb25zdCBwYXJ0aWFscyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcmVzZXRVc2VyLmFwcHJvdmFsc1xuICAgICAgICAuZmlsdGVyKChhcHByb3ZhbCkgPT4gISFhcHByb3ZhbC5yZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleSlcbiAgICAgICAgLm1hcCgoYXBwcm92YWwpID0+XG4gICAgICAgICAgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgICAgICAgcHJrLFxuICAgICAgICAgICAgYXBwcm92YWwucmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuYXNzZW1ibHlDb250cm9sbGVyLnJlY292ZXJBc3NlbWJseUtleShwYXJ0aWFscyk7XG4gIH1cbn1cbiJdfQ==
|
|
568
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBMkIsTUFBTSxjQUFjLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsT0FBTyxFQUFZLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxP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TUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWhFLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDaEMsU0FBUyxDQUFDLFNBQVM7aUJBQ2hCLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDakUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FDNUIsR0FBRyxFQUNILFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FDMUMsQ0FDRixDQUNKLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQUE7Ozs7WUFsdUJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQVdJLE1BQU0sU0FBQyxTQUFTO1lBckVaLFNBQVM7WUFVVCxpQkFBaUI7WUFFakIsVUFBVTtZQUtWLGNBQWM7WUFOZCxlQUFlO1lBSWYsZUFBZTtZQU5mLFdBQVc7WUFKWCxnQkFBZ0I7WUFDaEIsK0JBQStCO1lBVS9CLGNBQWM7WUFSZCxpQkFBaUI7WUFlakIsaUNBQWlDO1lBMUJqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2duaXRvVXNlciB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBIdWIgfSBmcm9tICdAYXdzLWFtcGxpZnkvY29yZSc7XG5pbXBvcnQgeyBDb2duaXRvVXNlckF0dHJpYnV0ZSB9IGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMckdyYXBoUUxTZXJ2aWNlLCBMck11dGF0aW9uIH0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZSB9IGZyb20gJy4uL2FwaS9xdWVyeS1wcm9jZXNzb3IvdHAtcGFzc3dvcmQtcmVzZXQtcHJvY2Vzc29yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHBDbGFpbVN0YXRlLCBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElkbGVTZXJ2aWNlIH0gZnJvbSAnLi4vaWRsZS9pZGxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBQYXNzSWRwUGFyYW1zIH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBLY0NvbmZpZywgS0NfQ09ORklHIH0gZnJvbSAnLi4vbGlmZS1yZWFkeS5jb25maWcnO1xuaW1wb3J0IHsgUGFzc3dvcmRTZXJ2aWNlIH0gZnJvbSAnLi4vcGFzc3dvcmQvcGFzc3dvcmQuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzaXN0U2VydmljZSB9IGZyb20gJy4uL3BlcnNpc3QvcGVyc2lzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmVhdHVyZXMsIFBhc3N3b3JkQ2hhbmdlU3RhdHVzIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7XG4gIFRQX1BBU1NXT1JEX1JFU0VUX0NMSUVOVF9OT05DRV9MRU5HVEgsXG4gIFRQX1BBU1NXT1JEX1JFU0VUX1VTRVJOQU1FX1NVRkZJWCxcbn0gZnJvbSAnLi4vdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQuY29uc3RhbnRzJztcbmltcG9ydCB7IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlciB9IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LmNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gIENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvbixcbiAgUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG59IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LmdxbCc7XG5pbXBvcnQgeyBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnkgfSBmcm9tICcuLi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC5wcml2YXRlLmdxbCc7XG5pbXBvcnQge1xuICBLY0JhZFJlcXVlc3RFeGNlcHRpb24sXG4gIEtjQmFkU3RhdGVFeGNlcHRpb24sXG4gIEtjQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbixcbiAgS2NJbnRlcm5hbEVycm9yRXhjZXB0aW9uLFxufSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgZ2V0QWNjZXNzSnd0VG9rZW4gfSBmcm9tICcuLi9fY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IFNldFNlc3Npb25FbmNyeXB0aW9uS2V5TXV0YXRpb24gfSBmcm9tICcuL2F1dGguZ3FsJztcbmltcG9ydCB7XG4gIENvZ25pdG9DaGFsbGVuZ2VVc2VyLFxuICBDdXJyZW50VXNlcixcbiAgTG9naW5SZXN1bHQsXG4gIFJlY292ZXJ5U3RhdHVzLFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyLFxufSBmcm9tICcuL2F1dGgudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGlzZUF1dGggPSAoYXV0aFNlcnZpY2U6IExpZmVSZWFkeUF1dGhTZXJ2aWNlKSA9PiB7XG4gIHJldHVybiAoKSA9PiBhdXRoU2VydmljZS5pbml0aWFsaXNlKCk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIHRwUGFzc3dvcmRSZXNldEF1dG9Db21wbGV0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIExvZ291dExpc3RlbmVyID0gKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMaWZlUmVhZHlBdXRoU2VydmljZSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHByaXZhdGUgaHViU3ViamVjdDogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigxKTtcbiAgcHJpdmF0ZSBjdXJyZW50VXNlcjogQ3VycmVudFVzZXI7XG4gIHByaXZhdGUgY3VycmVudFJlc2V0VXNlcjogVHBQYXNzd29yZFJlc2V0VXNlcjtcbiAgLy8gQ291bGQgdXNlIHJ4anMgb2JzZXJ2YWJsZXMgaGVyZS4gQnV0IHRyeWluZyB0byBoYXZlIGtjLWNsaWVudCB1c2UgYXMgbGl0dGxlIGFuZ3VsYXJcbiAgLy8gZmVhdHVyZXMgYXMgcG9zc2libGUuIFJ4anMgaXMgbm90IHVzZWQgYW55d2hlcmUgZWxzZSBpbiBrYy1jbGllbnQuXG4gIHByaXZhdGUgbG9nb3V0TGlzdGVuZXJzID0gbmV3IFNldDxMb2dvdXRMaXN0ZW5lcj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEtDX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEtjQ29uZmlnLFxuICAgIHByaXZhdGUgYXV0aDogQXV0aENsYXNzLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGhTZXJ2aWNlOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICBwcml2YXRlIGlkbGVTZXJ2aWNlOiBJZGxlU2VydmljZSxcbiAgICBwcml2YXRlIGxyR3JhcGhRTDogTHJHcmFwaFFMU2VydmljZSxcbiAgICBwcml2YXRlIHRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2U6IFRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJzaXN0U2VydmljZTogUGVyc2lzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhc3NlbWJseUNvbnRyb2xsZXI6IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7XG4gICAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmRlYnVnICE9IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEtjQmFkUmVxdWVzdEV4Y2VwdGlvbihcbiAgICAgICAgICAnSW4gcHJvZHVjdGlvbiBtb2RlLCBcImNvbmZpZy5kZWJ1Z1wiIG11c3QgYmUgc2V0IHRvIG51bGwnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGlzZSgpIHtcbiAgICBIdWIubGlzdGVuKCdhdXRoJywgKGRhdGEpID0+IHRoaXMuaHViU3ViamVjdC5uZXh0KGRhdGEucGF5bG9hZCkpO1xuICB9XG5cbiAgcHVibGljIGRlYnVnTG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IENyeXB0b0tleSkge1xuICAgIC8vIFRoaXMgd2lsbCBmYWlsIGlmIGRlYnVnIGlzIG51bGwuIEJ1dCB3aGVuIGRlYnVnIGlzIG51bGwsIHRoaXMgZnVuY3Rpb25cbiAgICAvLyBzaG91bGQgbm90IGJlIGNhbGxlZC5cbiAgICB0aGlzLmNvbmZpZy5kZWJ1Zy51c2VybmFtZSA9IHVzZXJuYW1lO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVidWdMb2FkVXNlcihwYXNzd29yZCk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogTG9naW4gdXNpbmcgdGhlIHNlcnZlciBzaWRlIHNlc3Npb24gbWV0aG9kLlxuICAgKi9cbiAgcHJpdmF0ZSBkZWJ1Z0xvZ2luVXNpbmdTZXNzaW9uKHVzZXJuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KFxuICAgICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgK1xuICAgICAgICAgICdkZWJ1Z19vbmx5L3VzZXJzL2xvZ2luLz91c2VybmFtZT0nICtcbiAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQodXNlcm5hbWUpLFxuICAgICAgICB7XG4gICAgICAgICAgLy8gTm9uLW9idmlvdXMgYWxlcnQ6IGlmIHlvdSB3YW50IHRoZSBjb29raWVzIHRvIGJlIHNldCwgeW91IG11c3QgdXNlIHRoZVxuICAgICAgICAgIC8vIFwid2l0aENyZWRlbnRpYWxzXCIgaGVhZGVyLiBJIHdvdWxkIGhhdmUgdGhvdWdodCB0aGUgd2l0aENyZWRlbnRpYWxzIGhlYWRlclxuICAgICAgICAgIC8vIGlzIG9ubHkgdXNlZCB0byBzZW5kIHRoZSBjb29raWVzIHdpdGggdGhlIHJlcXVlc3RzLiBCdXQsIGlmIHlvdSBkb24ndCBpbmNsdWRlXG4gICAgICAgICAgLy8gdGhlIFwid2l0aENyZWRlbnRpYWxzXCIgaGVhZGVyLCB0aGUgY29va2llcyBpbiB0aGUgcmVzcG9uc2UgRE9FUyBOT1QgZ2V0IHNldCFcbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9mZXRjaC9pc3N1ZXMvMzg2I2lzc3VlY29tbWVudC0yNDMyMjkzODhcbiAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGVidWdMb2FkVXNlcihwYXNzd29yZDogQ3J5cHRvS2V5KTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGNvbnN0IHsgY3VycmVudFVzZXIsIGNvbnRhY3RDYXJkLCB1c2VyUGxhbnMgfSA9XG4gICAgICBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk7XG5cbiAgICAvLyBEZWJ1ZyBtb2RlIGNhbiBub3QgZGVhbCB3aXRoIHNlc3Npb24gZW5jcnlwdGlvbiBrZXkgeWV0LlxuICAgIC8vIE5PIFNFU1NJT04gRU5DUllQVElPTiBLRVkuXG5cbiAgICBjb25zdCBwYXNzS2V5ID0gKFxuICAgICAgYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NLZXkoe1xuICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgLi4uY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkucGFzc0tleS5wYXNzS2V5UGFyYW1zLFxuICAgICAgfSlcbiAgICApLmp3aztcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnVud3JhcFdpdGhQYXNzS2V5KFxuICAgICAgY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkucGFzc0tleS5pZCxcbiAgICAgIHBhc3NLZXksXG4gICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5tYXN0ZXJLZXkuaWRcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5wZXJzaXN0TWFzdGVyS2V5KG1hc3RlcktleSk7XG5cbiAgICBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5wb3B1bGF0ZUtleXMoY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBjdXJyZW50VXNlci5pZCxcbiAgICAgIHN1YjogJ0RFQlVHX01PREUnLFxuICAgICAgdXNlcm5hbWU6IGN1cnJlbnRVc2VyLnVzZXJuYW1lLFxuICAgICAgY3VycmVudFVzZXJLZXk6IGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LFxuICAgICAgZW1haWw6ICdERUJVR19NT0RFJyxcbiAgICAgIGVtYWlsVmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgcGhvbmU6ICdERUJVR19NT0RFJyxcbiAgICAgIHBob25lVmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgY29udGFjdENhcmQ6IHtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZGVjcnlwdENvbnRhY3RDYXJkKGNvbnRhY3RDYXJkKSksXG4gICAgICB9LFxuICAgICAgdXNlckRlbGV0ZTogY3VycmVudFVzZXIudXNlckRlbGV0ZSxcbiAgICAgIHVzZXJQbGFucyxcbiAgICAgIGhhc1RQVmF1bHRBY2Nlc3M6IHRoaXMubWFwVFBWYXVsdEFjY2VzcyhjdXJyZW50VXNlci5mZWF0dXJlcyksXG4gICAgICBmZWF0dXJlczogY3VycmVudFVzZXIuZmVhdHVyZXMsXG4gICAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgICBkYXRlSm9pbmVkOiBjdXJyZW50VXNlci5kYXRlSm9pbmVkLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXRBY2Nlc3NKd3RUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBnZXRBY2Nlc3NKd3RUb2tlbih0aGlzLmF1dGgpO1xuICB9XG5cbiAgaW1wb3J0UGFzc3dvcmQocGxhaW5QYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxDcnlwdG9LZXk+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlGYWN0b3J5LmltcG9ydFBhc3N3b3JkKHBsYWluUGFzc3dvcmQpO1xuICB9XG5cbiAgYWRkTG9nb3V0TGlzdGVuZXIoY2FsbGJhY2s6IExvZ291dExpc3RlbmVyKSB7XG4gICAgdGhpcy5sb2dvdXRMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlbW92ZUxvZ291dExpc3RlbmVyKGNhbGxiYWNrOiBMb2dvdXRMaXN0ZW5lcikge1xuICAgIHRoaXMubG9nb3V0TGlzdGVuZXJzLmRlbGV0ZShjYWxsYmFjayk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZ2luSWRwSW1wbChcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5LFxuICAgIHBhc3NJZHBQYXJhbXM6IFBhc3NJZHBQYXJhbXMsXG4gICAgcmVjb3ZlcnlTdGF0dXM6IFJlY292ZXJ5U3RhdHVzXG4gICk6IFByb21pc2U8Q29nbml0b0NoYWxsZW5nZVVzZXI+IHtcbiAgICBjb25zdCBwYXNzSWRwUmVzdWx0ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NJZHAoe1xuICAgICAgcGFzc3dvcmQsXG4gICAgICAuLi5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIFVzZSB0aGUgZGVyaXZlZCBwYXNzd29yZCB0byBzaWduaW4gd2l0aCBjb2duaXRvXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMuYXV0aC5zaWduSW4oXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKHBhc3NJZHBSZXN1bHQuandrKVxuICAgICk7XG5cbiAgICB1c2VyLnJlY292ZXJ5U3RhdHVzID0gcmVjb3ZlcnlTdGF0dXM7XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9naW5JZHAoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleVxuICApOiBQcm9taXNlPENvZ25pdG9DaGFsbGVuZ2VVc2VyPiB7XG4gICAgLy8gRG93bmxvYWQgdGhlIHNhbHQgbmVlZGVkIHRvIGRlcml2ZSB0aGUgUGFzc0lkcFxuICAgIGNvbnN0IHBhc3NJZHBBcGlSZXN1bHQgPSBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldFBhc3NJZHBQYXJhbXMoXG4gICAgICBlbWFpbE9yUGhvbmVcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgcGFzc0lkcEFwaVJlc3VsdC5wYXNzd29yZENoYW5nZVN0YXR1cyA9PT0gUGFzc3dvcmRDaGFuZ2VTdGF0dXMuSW5Qcm9ncmVzc1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEtjQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbignQSBwYXNzd29yZCBjaGFuZ2UgaXMgaW4gcHJvZ3Jlc3MnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwYXNzSWRwQXBpUmVzdWx0LnBhc3N3b3JkQ2hhbmdlU3RhdHVzID09PSBQYXNzd29yZENoYW5nZVN0YXR1cy5SZWNvdmVyeVxuICAgICkge1xuICAgICAgY29uc29sZS5sb2coJ0luIHJlY292ZXJ5IG1vZGUuJyk7XG4gICAgICAvLyBMZXQncyBzYXkgd2UgZG9uJ3Qga25vdyBpZiB0aGUgcGFzc3dvcmQgaXMgdGhlIG5ldyBvbmUgb3IgdGhlIG9sZCBvbmUuIFdlIGp1c3QgaGF2ZSB0byB0cnkgYm90aC5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvZ2luSWRwSW1wbChcbiAgICAgICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgcGFzc0lkcEFwaVJlc3VsdC5uZXdQYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRFxuICAgICAgICApO1xuICAgICAgICAvLyBOZXcgcGFzc3dvcmQgd29ya2VkLiBMZXQncyBzZXQgdG8gdGhlIGN1cnJlbnQgcGFzc3dvcmRcblxuICAgICAgICAvLyAtLVBvdGVudGlhbCBGYWlsdXJlIFBvaW50IDEtLVxuICAgICAgICAvLyBpZiBjaGFuZ2VQYXNzd29yZENvbXBsZXRlKCkgZG9lc24ndCBnZXQgY2FsbGVkLCB0aGVuIGl0IHNob3VsZCByZW1haW5cblxuICAgICAgICBjb25zb2xlLmxvZygnTmV3IHBhc3N3b3JkIHdvcmtzIScpO1xuXG4gICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSnVzdCBidWJibGUgdXAgYW55IG90aGVyIHR5cGUgb2YgZXJyb3IuXG4gICAgICAgIGlmIChlcnJvci5jb2RlICE9PSAnTm90QXV0aG9yaXplZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICAvLyBwYXNzLCB0cnkgYWdhaW4gYXNzdW1pbmcgaXQncyB0aGUgb2xkIHBhc3N3b3JkXG4gICAgICB9XG5cbiAgICAgIC8vIE5vdyBhc3N1bWUgaXQncyB0aGUgcHJldmlvdXMgcGFzc3dvcmQuIEFueSBleGNlcHRpb24gaXMgYWxsb3dlZCB0byBidWJibGUgdXAuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgZW1haWxPclBob25lLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICAgICAgUmVjb3ZlcnlTdGF0dXMuT0xEX1BBU1NXT1JEXG4gICAgICAgICk7XG4gICAgICAgIC8vIE9sZCBwYXNzd29yZCB3b3JrZWQuXG4gICAgICAgIGNvbnNvbGUubG9nKCdPbGQgcGFzc3dvcmQgd29ya3MhJyk7XG5cbiAgICAgICAgcmV0dXJuIHVzZXI7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBKdXN0IGJ1YmJsZSB1cCBhbnkgb3RoZXIgdHlwZSBvZiBlcnJvci5cbiAgICAgICAgdGhyb3cgZXJyb3IuY29kZSA9PT0gJ05vdEF1dGhvcml6ZWRFeGNlcHRpb24nXG4gICAgICAgICAgPyBuZXcgS2NCYWRSZXF1ZXN0RXhjZXB0aW9uKFxuICAgICAgICAgICAgICAnVGhlIHBhc3N3b3JkIGNoYW5nZSByZXF1ZXN0IHdhcyBpbnRlcnJ1cHRlZCwgcGxlYXNlIHRyeSB0byBsb2dpbiB3aXRoIGJvdGggeW91ciBuZXcgYW5kIG9sZCBwYXNzd29yZCdcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGVycm9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyeSBhZ2FpbnN0IGFzIHRoZSBUUCBwYXNzd29yZCByZXNldCBhY2NvdW50XG4gICAgaWYgKHBhc3NJZHBBcGlSZXN1bHQudHBQYXNzd29yZFJlc2V0KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUUCBwYXNzd29yZCByZXNldCBpcyBpbiBwcm9jZXNzLiBXZSBuZWVkIHRvIHRyeSB0aGUgcGFzc3dvcmQgYWdhaW5zdCBib3RoXG4gICAgICAgIC8vIG9yaWdpbmFsIGFjY291bnQgYW5kIHRoZSBuZXcgcmVzZXQgYWNjb3VudC5cbiAgICAgICAgY29uc3QgcmVzZXQgPSBwYXNzSWRwQXBpUmVzdWx0LnRwUGFzc3dvcmRSZXNldDtcbiAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgcmVzZXQucmVzZXRVc2VybmFtZSxcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICByZXNldC5wYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5PTkVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0LmlzVHBQYXNzd29yZFJlc2V0VXNlciA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBjb250aW51ZSwgdHJ5IGFnYWluIGFzIHJlZ3VsYXIgdXNlci5cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMb2dpbiBhcyByZWd1bGFyIHVzZXJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICBwYXNzd29yZCxcbiAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICBSZWNvdmVyeVN0YXR1cy5OT05FXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU2Vzc2lvbkVuY3J5cHRpb25LZXkoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRpc2FibGVTZXNzaW9uRW5jcnlwdGlvbktleSkge1xuICAgICAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zdCBtc2cgPVxuICAgICAgICAgICdZb3Ugc2hvdWxkIG5vdCBzZXQgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PVRydWUgaW4gbW9kZSBwcm9kLiBJdCBkZWZhdWx0cyB0byBmYWxzZS4nO1xuICAgICAgICBjb25zb2xlLmVycm9yKG1zZyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdZb3UgaGF2ZSBzZXQgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PVRydWUuIE1ha2Ugc3VyZSBub3QgdG8gZG8gdGhpcyBpbiBwcm9kIG1vZGUuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTZXQgdGhlIHNlc3Npb24ga2V5IHRvIGEgbmV3IGVuY3J5cHRpb24ga2V5IGZvciB0aGlzIHNlc3Npb25cbiAgICAgIGNvbnN0IHNlc3Npb25FbmNyeXB0aW9uS2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogU2V0U2Vzc2lvbkVuY3J5cHRpb25LZXlNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5OiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICBzZXNzaW9uRW5jcnlwdGlvbktleS50b0pTT04odHJ1ZSlcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KHNlc3Npb25FbmNyeXB0aW9uS2V5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVBvc3RBdXRoKGNvZ25pdG9Vc2VyOiBDb2duaXRvQ2hhbGxlbmdlVXNlcikge1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlUGFzc3dvcmRSZWNvdmVyeShjb2duaXRvVXNlcik7XG4gICAgYXdhaXQgdGhpcy5oYW5kbGVTZXNzaW9uRW5jcnlwdGlvbktleSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luKFxuICAgIGVtYWlsT3JQaG9uZTogc3RyaW5nLFxuICAgIHBhc3N3b3JkOiBDcnlwdG9LZXksXG4gICAgeyB0cFBhc3N3b3JkUmVzZXRBdXRvQ29tcGxldGUgPSB0cnVlIH06IExvZ2luT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIGxldCBsb2dpblJlc3VsdCA9IGF3YWl0IHRoaXMubG9naW5JbXBsKGVtYWlsT3JQaG9uZSwgcGFzc3dvcmQpO1xuXG4gICAgaWYgKFxuICAgICAgdHBQYXNzd29yZFJlc2V0QXV0b0NvbXBsZXRlICYmXG4gICAgICBsb2dpblJlc3VsdC5yZXNldFVzZXI/LnN0YXRlID09PSBUcENsYWltU3RhdGUuQVBQUk9WRURcbiAgICApIHtcbiAgICAgIGF3YWl0IHRoaXMuY29tcGxldGVSZXF1ZXN0KHBhc3N3b3JkKTtcbiAgICAgIGxvZ2luUmVzdWx0ID0gYXdhaXQgdGhpcy5sb2dpbkltcGwoZW1haWxPclBob25lLCBwYXNzd29yZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvZ2luUmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luSW1wbChcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5XG4gICk6IFByb21pc2U8TG9naW5SZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZ291dCgpO1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcChlbWFpbE9yUGhvbmUsIHBhc3N3b3JkKTtcblxuICAgIC8vIHRvZG86IE1lZXQgTUZBIGNoYWxsZW5nZXMuXG4gICAgaWYgKFsnU01TX01GQScsICdTT0ZUV0FSRV9UT0tFTl9NRkEnXS5pbmNsdWRlcyhjb2duaXRvVXNlci5jaGFsbGVuZ2VOYW1lKSkge1xuICAgICAgcmV0dXJuIHsgaGFzQ2hhbGxlbmdlOiB0cnVlLCBjaGFsbGVuZ2U6IGNvZ25pdG9Vc2VyIH07XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5oYW5kbGVQb3N0QXV0aChjb2duaXRvVXNlcik7XG5cbiAgICBpZiAoY29nbml0b1VzZXIuaXNUcFBhc3N3b3JkUmVzZXRVc2VyKSB7XG4gICAgICAvLyBBc3N1bWluZyB0aGVyZSBpcyBubyBNRkEgb24gdGhlIFRQIHJlc2V0IHVzZXIuXG4gICAgICBjb25zdCByZXNldFVzZXIgPSBhd2FpdCB0aGlzLmxvYWRSZXNldFVzZXIocGFzc3dvcmQpO1xuICAgICAgcmV0dXJuIHsgaGFzQ2hhbGxlbmdlOiBmYWxzZSwgcmVzZXRVc2VyIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvYWRVc2VyKGNvZ25pdG9Vc2VyLCBwYXNzd29yZCk7XG4gICAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogZmFsc2UsIHVzZXIgfTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPIDxBWj4gV2UgbmVlZCB0byBoYW5kbGUgdGhlIGlzVHBQYXNzd29yZFJlc2V0VXNlcj1UcnVlIGNhc2UgaGVyZSBhZnRlciBNRkEgYXMgd2VsbC5cbiAgcHVibGljIGFzeW5jIHZlcmlmeUxvZ2luKFxuICAgIGNoYWxsZW5nZTogQ29nbml0b0NoYWxsZW5nZVVzZXIsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleSxcbiAgICByZW1lbWJlck1lOiBib29sZWFuLFxuICAgIGNvZGU6IHN0cmluZ1xuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyPiB7XG4gICAgYXdhaXQgdGhpcy5hdXRoLmNvbmZpcm1TaWduSW4oY2hhbGxlbmdlLCBjb2RlLCBjaGFsbGVuZ2UuY2hhbGxlbmdlTmFtZSk7XG5cbiAgICAvLyBUT0RPOiB0aGlzLmF1dGguY29uZmlybVNpZ25JbigpIGNvdWxkIHJldHVybiBhbm90aGVyIGNoYWxsZW5nZS5cblxuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcblxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUG9zdEF1dGgoY2hhbGxlbmdlKTtcblxuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvYWRVc2VyKGNvZ25pdG9Vc2VyLCBwYXNzd29yZCk7XG5cbiAgICBpZiAocmVtZW1iZXJNZSkge1xuICAgICAgY29nbml0b1VzZXIuc2V0RGV2aWNlU3RhdHVzUmVtZW1iZXJlZCh7XG4gICAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSxcbiAgICAgICAgb25GYWlsdXJlOiAoZSkgPT4gY29uc29sZS5lcnJvcihlKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlUGFzc3dvcmRSZWNvdmVyeSh1c2VyOiBDb2duaXRvQ2hhbGxlbmdlVXNlcikge1xuICAgIGlmICh1c2VyLnJlY292ZXJ5U3RhdHVzICE9PSBSZWNvdmVyeVN0YXR1cy5OT05FKSB7XG4gICAgICBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jaGFuZ2VQYXNzd29yZENvbXBsZXRlKHtcbiAgICAgICAgdXNlTmV3UGFzc3dvcmQ6IHVzZXIucmVjb3ZlcnlTdGF0dXMgPT09IFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJPclJlc2V0VXNlcihcbiAgICByZWxvYWQgPSBmYWxzZVxuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyIHwgVHBQYXNzd29yZFJlc2V0VXNlcj4ge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpO1xuXG4gICAgaWYgKGNvZ25pdG9Vc2VyLmdldFVzZXJuYW1lKCkuZW5kc1dpdGgoVFBfUEFTU1dPUkRfUkVTRVRfVVNFUk5BTUVfU1VGRklYKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzZXRVc2VyKHJlbG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFVzZXIocmVsb2FkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRSZXNldFVzZXIocmVsb2FkID0gZmFsc2UpOiBQcm9taXNlPFRwUGFzc3dvcmRSZXNldFVzZXI+IHtcbiAgICBpZiAoIXJlbG9hZCAmJiB0aGlzLmN1cnJlbnRSZXNldFVzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNldFVzZXI7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50UmVzZXRVc2VyID0gYXdhaXQgdGhpcy5sb2FkUmVzZXRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNldFVzZXI7XG4gIH1cblxuICBhc3luYyBnZXRVc2VyKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGlmICghcmVsb2FkICYmIHRoaXMuY3VycmVudFVzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRVc2VyO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihcbiAgICAgIGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKVxuICAgICk7XG4gICAgY29uc29sZS5sb2coJ1N0YXJ0aW5nIGlkbGUgc2VydmljZS4nKTtcbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVFBWYXVsdEFjY2VzcyhmZWF0dXJlcz86IEZlYXR1cmVzKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdHBWYXVsdEZlYXR1cmUgPSBmZWF0dXJlcz8udHBWYXVsdDtcbiAgICByZXR1cm4gKFxuICAgICAgdHBWYXVsdEZlYXR1cmU/Lmxlbmd0aCA+IDAgJiZcbiAgICAgIHRwVmF1bHRGZWF0dXJlLnNvbWUoKGZlYXR1cmUpID0+IGZlYXR1cmUudG9VcHBlckNhc2UoKSA9PT0gJ0FDQ0VTUycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFVzZXIoXG4gICAgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyLFxuICAgIHBhc3N3b3JkPzogQ3J5cHRvS2V5XG4gICk6IFByb21pc2U8Q3VycmVudFVzZXI+IHtcbiAgICBjb25zdCB7IGN1cnJlbnRVc2VyLCBjb250YWN0Q2FyZCwgdXNlclBsYW5zIH0gPVxuICAgICAgYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuXG4gICAgaWYgKGN1cnJlbnRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkoY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJBdHRyaWJ1dGVzID0gYXdhaXQgdGhpcy5hdXRoLnVzZXJBdHRyaWJ1dGVzKGNvZ25pdG9Vc2VyKTtcblxuICAgIGlmIChwYXNzd29yZCkge1xuICAgICAgY29uc3QgcGFzc0tleSA9IChcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NLZXkoe1xuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIC4uLmN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LnBhc3NLZXkucGFzc0tleVBhcmFtcyxcbiAgICAgICAgfSlcbiAgICAgICkuandrO1xuXG4gICAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnBlcnNpc3RNYXN0ZXJLZXkoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnVud3JhcFdpdGhQYXNzS2V5KFxuICAgICAgICAgIGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5tYXN0ZXJLZXkuaWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UucG9wdWxhdGVLZXlzKGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5KTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogY3VycmVudFVzZXIuaWQsXG4gICAgICBzdWI6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnc3ViJywgdXNlckF0dHJpYnV0ZXMpLFxuICAgICAgdXNlcm5hbWU6IGN1cnJlbnRVc2VyLnVzZXJuYW1lLFxuICAgICAgY3VycmVudFVzZXJLZXk6IGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LFxuICAgICAgZW1haWw6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnZW1haWwnLCB1c2VyQXR0cmlidXRlcyksXG4gICAgICBlbWFpbFZlcmlmaWVkOlxuICAgICAgICB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ2VtYWlsX3ZlcmlmaWVkJywgdXNlckF0dHJpYnV0ZXMpID09PSAndHJ1ZScsXG4gICAgICBwaG9uZTogdGhpcy5nZXRVc2VyQXR0cmlidXRlKCdwaG9uZV9udW1iZXInLCB1c2VyQXR0cmlidXRlcyksXG4gICAgICBwaG9uZVZlcmlmaWVkOlxuICAgICAgICB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ3Bob25lX251bWJlcl92ZXJpZmllZCcsIHVzZXJBdHRyaWJ1dGVzKSA9PT1cbiAgICAgICAgJ3RydWUnLFxuICAgICAgY29udGFjdENhcmQ6IHtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZGVjcnlwdENvbnRhY3RDYXJkKGNvbnRhY3RDYXJkKSksXG4gICAgICB9LFxuICAgICAgdXNlckRlbGV0ZTogY3VycmVudFVzZXIudXNlckRlbGV0ZSxcbiAgICAgIHVzZXJQbGFucyxcbiAgICAgIGhhc1RQVmF1bHRBY2Nlc3M6IHRoaXMubWFwVFBWYXVsdEFjY2VzcyhjdXJyZW50VXNlci5mZWF0dXJlcyksXG4gICAgICBmZWF0dXJlczogY3VycmVudFVzZXIuZmVhdHVyZXMsXG4gICAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgICBkYXRlSm9pbmVkOiBjdXJyZW50VXNlci5kYXRlSm9pbmVkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgd2F0Y2hBdXRoKCkge1xuICAgIHJldHVybiB0aGlzLmh1YlN1YmplY3Q7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIE5vdGlmeSBhbGwgbGlzdGVuZXJzIHRvIGNsZWFuIHVwLlxuICAgIGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLmxvZ291dExpc3RlbmVyc10ubWFwKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSkpO1xuXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IG51bGw7XG4gICAgdGhpcy5rZXlTZXJ2aWNlLnB1cmdlS2V5cygpO1xuICAgIHRoaXMua2V5R3JhcGhTZXJ2aWNlLnB1cmdlS2V5cygpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuYXV0aC5zaWduT3V0KCksIHRoaXMucHJvZmlsZVNlcnZpY2Uuc2lnbk91dCgpXSk7XG5cbiAgICBpZiAodGhpcy5jb25maWcuZGVidWc/LnVzZXJuYW1lKSB7XG4gICAgICB0aGlzLmNvbmZpZy5kZWJ1Zy51c2VybmFtZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRVc2VyQXR0cmlidXRlKFxuICAgIGF0dHJpYnV0ZU5hbWU6IHN0cmluZyxcbiAgICB1c2VyQXR0cmlidXRlczogQ29nbml0b1VzZXJBdHRyaWJ1dGVbXVxuICApIHtcbiAgICBjb25zdCB1c2VyQXR0cmlidXRlID0gdXNlckF0dHJpYnV0ZXMuZmluZChcbiAgICAgICh4KSA9PiB4LmdldE5hbWUoKSA9PT0gYXR0cmlidXRlTmFtZVxuICAgICk7XG5cbiAgICByZXR1cm4gdXNlckF0dHJpYnV0ZSA/IHVzZXJBdHRyaWJ1dGUuZ2V0VmFsdWUoKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRSZXNldFVzZXIoXG4gICAgcGFzc3dvcmQ/OiBDcnlwdG9LZXlcbiAgKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyPiB7XG4gICAgY29uc3QgeyB0cFBhc3N3b3JkUmVzZXRVc2VyOiByZXNldFVzZXIgfSA9IGF3YWl0IHRoaXMubHJHcmFwaFFMLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnksXG4gICAgfSk7XG5cbiAgICBpZiAocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGtleXNcbiAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHBhc3NLZXkgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzS2V5KHtcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzS2V5UGFyYW1zLFxuICAgICAgICB9KVxuICAgICAgKS5qd2s7XG5cbiAgICAgIGF3YWl0IHRoaXMuaWRsZVNlcnZpY2UucGVyc2lzdE1hc3RlcktleShcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UudW53cmFwV2l0aFBhc3NLZXkoXG4gICAgICAgICAgcmVzZXRVc2VyLnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICByZXNldFVzZXIubWFzdGVyS2V5LmlkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5rZXlTZXJ2aWNlLnNldEtleXMoe1xuICAgICAgcGFzc0tleToge1xuICAgICAgICBpZDogcmVzZXRVc2VyLnBhc3NLZXkuaWQsXG4gICAgICB9LFxuICAgICAgbWFzdGVyS2V5OiB7XG4gICAgICAgIGlkOiByZXNldFVzZXIubWFzdGVyS2V5LmlkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHVzZXJBdHRyaWJ1dGVzID0gYXdhaXQgdGhpcy5hdXRoLnVzZXJBdHRyaWJ1dGVzKFxuICAgICAgYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpXG4gICAgKTtcbiAgICBjb25zdCBzdWIgPSB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ3N1YicsIHVzZXJBdHRyaWJ1dGVzKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi4oYXdhaXQgdGhpcy50cFBhc3N3b3JkUmVzZXRQcm9jZXNzb3JTZXJ2aWNlLnByb2Nlc3NUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZShcbiAgICAgICAgcmVzZXRVc2VyXG4gICAgICApKSxcbiAgICAgIHN1YixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlZnJlc2hBY2Nlc3NUb2tlbigpIHtcbiAgICBjb25zdCBjb2duaXRvVXNlcjogQ29nbml0b1VzZXIgPSBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKCk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gY29nbml0b1VzZXIuZ2V0U2lnbkluVXNlclNlc3Npb24oKS5nZXRSZWZyZXNoVG9rZW4oKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb2duaXRvVXNlci5yZWZyZXNoU2Vzc2lvbihyZWZyZXNoVG9rZW4sIChlcnIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlZnJlc2hpbmcgdG9rZW46ICcsIGVycik7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1Rva2VuIHJlZnJlc2ggY29tcGxldGUnKTtcbiAgICAgICAgICByZXNvbHZlKDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlUmVxdWVzdChuZXdQYXNzd29yZDogQ3J5cHRvS2V5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVzZXRVc2VyID0gYXdhaXQgdGhpcy5nZXRSZXNldFVzZXIodHJ1ZSk7XG5cbiAgICBpZiAocmVzZXRVc2VyLnN0YXRlICE9PSBUcENsYWltU3RhdGUuQVBQUk9WRUQpIHtcbiAgICAgIHRocm93IG5ldyBLY0JhZFN0YXRlRXhjZXB0aW9uKFxuICAgICAgICAnUGFzc3dvcmQgcmVzZXQgcmVxdWVzdCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFByZXBhcmUgYWxsIG1hdGVyaWFscyB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIGVycm9ycy5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGFzc2VtYmx5S2V5ID0gYXdhaXQgdGhpcy5yZWNvdmVyQXNzZW1ibHlLZXkocmVzZXRVc2VyKTtcblxuICAgIGNvbnN0IHsgcm9vdEtleSB9ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgYXNzZW1ibHlLZXksXG4gICAgICByZXNldFVzZXIuYXNzZW1ibHlDaXBoZXJEYXRhXG4gICAgKTtcblxuICAgIC8vIE1ha2luZyBzdXJlIGl0J3MgYSB2YWxpZCBrZXkuXG4gICAgY29uc3Qgcm9vdEtleUp3ayA9IGF3YWl0IEpXSy5hc0tleShyb290S2V5KTtcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLmdldEtleShyZXNldFVzZXIubWFzdGVyS2V5LmlkKTtcblxuICAgIGNvbnN0IG1hc3RlcktleVdyYXBwZWRSb290S2V5ID1cbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICBtYXN0ZXJLZXkuandrLFxuICAgICAgICByb290S2V5SndrLnRvSlNPTih0cnVlKVxuICAgICAgKTtcblxuICAgIC8vIFRoZSBuZXcgcGFzc3dvcmRcbiAgICBjb25zdCBuZXdQYXNzSWRwUmVzdWx0ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NJZHAoe1xuICAgICAgcGFzc3dvcmQ6IG5ld1Bhc3N3b3JkLFxuICAgICAgLi4ucmVzZXRVc2VyLnBhc3NLZXkucGFzc0lkcFBhcmFtcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IG5ld0lkcFBhc3N3b3JkID0gdGhpcy5wYXNzd29yZFNlcnZpY2UuZ2V0UGFzc0lkcFN0cmluZyhcbiAgICAgIG5ld1Bhc3NJZHBSZXN1bHQuandrXG4gICAgKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gR2V0IGFzc2VtYmx5IGtleSBjaGFsbGVuZ2VcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGNoYWxsZW5nZSA9IChcbiAgICAgIGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFxuICAgICAgICBuZXcgTHJNdXRhdGlvbih7XG4gICAgICAgICAgbXV0YXRpb246IENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7fSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIGluY2x1ZGVLZXlHcmFwaDogZmFsc2UsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICApLmNyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2UuY2hhbGxlbmdlO1xuXG4gICAgLy8gU2lnbiB0aGUgY2hhbGxlbmdlXG4gICAgLy8gR2VuZXJhdGUgYSBjbGllbnQgc2lkZSBub25jZSB0aGF0J3Mgbm8gaW4gdGhlIHNlcnZlcidzIGNvbnRyb2wuXG4gICAgY2hhbGxlbmdlLmNsaWVudE5vbmNlID0gdGhpcy5rZXlGYWN0b3J5LnJhbmRvbVN0cmluZyhcbiAgICAgIFRQX1BBU1NXT1JEX1JFU0VUX0NMSUVOVF9OT05DRV9MRU5HVEhcbiAgICApO1xuXG4gICAgY29uc3QgYXNzZW1ibHlLZXlWZXJpZmllclByayA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIGFzc2VtYmx5S2V5LFxuICAgICAgcmVzZXRVc2VyLndyYXBwZWRBc3NlbWJseUtleVZlcmlmaWVyUHJrXG4gICAgKTtcbiAgICBjb25zdCBzaWduZWRDaGFsbGVuZ2UgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oXG4gICAgICBhc3NlbWJseUtleVZlcmlmaWVyUHJrLFxuICAgICAgY2hhbGxlbmdlXG4gICAgKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQ2hhbmdlIHBhc3N3b3JkIGZvciB0aGUgb3JpZ2luYWwgdXNlclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgdGVtcElkcFBhc3N3b3JkID0gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICBzaWduZWRDaGFsbGVuZ2U6IEpTT04uc3RyaW5naWZ5KHNpZ25lZENoYWxsZW5nZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgaW5jbHVkZUtleUdyYXBoOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICkucHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0LmlkcFBhc3N3b3JkO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBMb2dpbiBhcyB0aGUgb3JpZ2luYWwgdXNlciB1c2luZyBuZXcgdGVtcG9yYXJ5IHBhc3N3b3JkXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgb3JpZ2luYWwgYWNjb3VudCdzIHBhc3N3b3JkIGhhcyBiZWVuIGNoYW5nZWRcbiAgICAvLyB0byBhIHRlbXBvcmFyeSBwYXNzd29yZC4gSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIGZvciB0aGUgdXNlclxuICAgIC8vIHRvIHVzZSB0aGUgb3JpZ2luYWwgcGFzc3dvcmQgdG8gbG9naW4uIEFueSBzdWNjZXNzZnVsIGxvZ2luXG4gICAgLy8gY2FuIG9ubHkgYmUgdXNpbmcgdGhlIHRlbXBvcmFyeSBwYXNzd29yZC4gU28gaXQncyBzYWZlIHRvIGFzc3VtZVxuICAgIC8vIHRoYXQgd2Ugd2FudCB0byBcImNvbXBsZXRlXCIgdGhlIHBhc3N3b3JkIHJlc2V0LlxuXG4gICAgLy8gVGhlIG1heWJlIDJGQSBzbyB3ZSBsaXN0ZW4gZm9yIHRoZSBhdXRoIGV2ZW50IGZyb20gQW1wbGlmeS5cbiAgICBjb25zdCByZXRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gYXN5bmMgKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEucGF5bG9hZC5ldmVudCAhPT0gJ3NpZ25JbicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBIdWIucmVtb3ZlKCdhdXRoJywgbGlzdGVuZXIpO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuYXV0aC5zaWduSW4ocmVzZXRVc2VyLnVzZXJuYW1lLCBuZXdJZHBQYXNzd29yZCk7XG5cbiAgICAgICAgLy8gU3dpdGNoIG92ZXIgdG8gdGhlIG5ldyBzZXQgb2Yga2V5c1xuICAgICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgICAgICBuZXcgTHJNdXRhdGlvbih7XG4gICAgICAgICAgICBtdXRhdGlvbjogQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICBtYXN0ZXJLZXlXcmFwcGVkUm9vdEtleSxcbiAgICAgICAgICAgICAgICBtYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH07XG5cbiAgICAgIEh1Yi5saXN0ZW4oJ2F1dGgnLCBsaXN0ZW5lcik7XG4gICAgfSk7XG5cbiAgICAvLyBTaWduaW4gYXMgdGhlIG9yaWdpbmFsIHVzZXIuIFBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0IHRvIHRlbXBvcmFyeSBvbmUuIEl0IHNob3VsZCByZXR1cm5cbiAgICAvLyB3aXRoIE5FV19QQVNTV09SRF9SRVFVSVJFRFxuICAgIGxldCB1c2VyID0gYXdhaXQgdGhpcy5hdXRoLnNpZ25JbihyZXNldFVzZXIudXNlcm5hbWUsIHRlbXBJZHBQYXNzd29yZCwge1xuICAgICAgbm9Qcm94eTogJ3RydWUnLFxuICAgIH0pO1xuXG4gICAgaWYgKHVzZXIuY2hhbGxlbmdlTmFtZSAhPT0gJ05FV19QQVNTV09SRF9SRVFVSVJFRCcpIHtcbiAgICAgIHRocm93IG5ldyBLY0ludGVybmFsRXJyb3JFeGNlcHRpb24oXG4gICAgICAgICdFeHBlY3RpbmcgQ29nbml0byB0byBoYXZlIGRvbmUgYSBwYXNzd29yZCByZXNldCBhZnRlciBjYWxsIHRvIFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gU2V0IG5ldyBwYXNzd29yZCBvbiBJZHBcbiAgICAvLyB0aGUgYXdzRmV0Y2goKSBmdW5jdGlvbiBwYXNzZXMgTkVXX1BBU1NXT1JEX1JFUVVJUkVEIGRpcmVjdGx5IHRvIEFXUyB3aXRob3V0XG4gICAgLy8gZ29pbmcgdGhyb3VnaCB0aGUgcHJveHkuXG4gICAgdXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jb21wbGV0ZU5ld1Bhc3N3b3JkKHVzZXIsIG5ld0lkcFBhc3N3b3JkLCB7fSk7XG5cbiAgICByZXR1cm4gcmV0UHJvbWlzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVjb3ZlckFzc2VtYmx5S2V5KFxuICAgIHJlc2V0VXNlcjogVHBQYXNzd29yZFJlc2V0VXNlck5vZGVcbiAgKTogUHJvbWlzZTxKV0suS2V5PiB7XG4gICAgY29uc3QgcHJrID0gYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UuZ2V0S2V5KHJlc2V0VXNlci5weGsuaWQpO1xuXG4gICAgY29uc3QgcGFydGlhbHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHJlc2V0VXNlci5hcHByb3ZhbHNcbiAgICAgICAgLmZpbHRlcigoYXBwcm92YWwpID0+ICEhYXBwcm92YWwucmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXkpXG4gICAgICAgIC5tYXAoKGFwcHJvdmFsKSA9PlxuICAgICAgICAgIHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAgICAgIHByayxcbiAgICAgICAgICAgIGFwcHJvdmFsLnJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmFzc2VtYmx5Q29udHJvbGxlci5yZWNvdmVyQXNzZW1ibHlLZXkocGFydGlhbHMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { gqlTyped } from '../_common/ast';
|
|
2
|
+
import { KeyGraphFragment } from '../_common/queries.gql';
|
|
3
|
+
export const CurrentUserQuery = gqlTyped `
|
|
4
|
+
query {
|
|
5
|
+
currentUser {
|
|
6
|
+
id
|
|
7
|
+
username
|
|
8
|
+
currentUserKey {
|
|
9
|
+
passKey {
|
|
10
|
+
id
|
|
11
|
+
passKeyParams
|
|
12
|
+
passIdpParams
|
|
13
|
+
wrappedPassIdpVerifierPrk
|
|
14
|
+
created
|
|
15
|
+
}
|
|
16
|
+
masterKey {
|
|
17
|
+
id
|
|
18
|
+
}
|
|
19
|
+
rootKey {
|
|
20
|
+
id
|
|
21
|
+
}
|
|
22
|
+
pxk {
|
|
23
|
+
id
|
|
24
|
+
}
|
|
25
|
+
sigPxk {
|
|
26
|
+
id
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
sessionEncryptionKey
|
|
30
|
+
}
|
|
31
|
+
keyGraph {
|
|
32
|
+
...KeyGraphFragment
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
${KeyGraphFragment}
|
|
36
|
+
`;
|
|
37
|
+
export const ResetUserQuery = gqlTyped `
|
|
38
|
+
query ResetUserQuery {
|
|
39
|
+
tpPasswordResetUser {
|
|
40
|
+
username
|
|
41
|
+
sessionEncryptionKey
|
|
42
|
+
state
|
|
43
|
+
passKey {
|
|
44
|
+
id
|
|
45
|
+
passKeyParams
|
|
46
|
+
passIdpParams
|
|
47
|
+
}
|
|
48
|
+
masterKey {
|
|
49
|
+
id
|
|
50
|
+
}
|
|
51
|
+
pxk {
|
|
52
|
+
id
|
|
53
|
+
}
|
|
54
|
+
assembly {
|
|
55
|
+
singleReject
|
|
56
|
+
quorum
|
|
57
|
+
subAssemblies {
|
|
58
|
+
singleReject
|
|
59
|
+
quorum
|
|
60
|
+
approvers {
|
|
61
|
+
name
|
|
62
|
+
email
|
|
63
|
+
state
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
approvals {
|
|
68
|
+
id
|
|
69
|
+
modified
|
|
70
|
+
approverEmail
|
|
71
|
+
receiverCipher
|
|
72
|
+
receiverCipherPartialAssemblyKey
|
|
73
|
+
}
|
|
74
|
+
assemblyCipherData
|
|
75
|
+
wrappedAssemblyKeyVerifierPrk
|
|
76
|
+
}
|
|
77
|
+
}`;
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aDIuZ3FsLnByaXZhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXV0aDIvYXV0aDIuZ3FsLnByaXZhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTzFELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBZ0M5RCxnQkFBZ0I7Q0FDakIsQ0FBQztBQWlCRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlLCBVc2VyTm9kZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBVc2VyS2V5cyB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBncWxUeXBlZCB9IGZyb20gJy4uL19jb21tb24vYXN0JztcbmltcG9ydCB7IEtleUdyYXBoRnJhZ21lbnQgfSBmcm9tICcuLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcblxuZXhwb3J0IGludGVyZmFjZSBDdXJyZW50VXNlclF1ZXJ5UmVzdWx0IHtcbiAgY3VycmVudFVzZXI6IFBpY2s8UmVxdWlyZWQ8VXNlck5vZGU+LCAndXNlcm5hbWUnIHwgJ3Nlc3Npb25FbmNyeXB0aW9uS2V5Jz4gJiB7XG4gICAgY3VycmVudFVzZXJLZXk6IFVzZXJLZXlzO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IEN1cnJlbnRVc2VyUXVlcnkgPSBncWxUeXBlZDxDdXJyZW50VXNlclF1ZXJ5UmVzdWx0PmBcbnF1ZXJ5IHtcbiAgY3VycmVudFVzZXIge1xuICAgIGlkXG4gICAgdXNlcm5hbWVcbiAgICBjdXJyZW50VXNlcktleSB7XG4gICAgICBwYXNzS2V5IHtcbiAgICAgICAgaWRcbiAgICAgICAgcGFzc0tleVBhcmFtc1xuICAgICAgICBwYXNzSWRwUGFyYW1zXG4gICAgICAgIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcmtcbiAgICAgICAgY3JlYXRlZFxuICAgICAgfVxuICAgICAgbWFzdGVyS2V5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIHJvb3RLZXkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgICAgcHhrIHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIHNpZ1B4ayB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgfVxuICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5XG4gIH1cbiAga2V5R3JhcGgge1xuICAgIC4uLktleUdyYXBoRnJhZ21lbnRcbiAgfVxufVxuJHtLZXlHcmFwaEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNldFVzZXJRdWVyeVJlc3VsdCB7XG4gIHRwUGFzc3dvcmRSZXNldFVzZXI6IFBpY2s8XG4gICAgUmVxdWlyZWQ8VHBQYXNzd29yZFJlc2V0VXNlck5vZGU+LFxuICAgIHwgJ3VzZXJuYW1lJ1xuICAgIHwgJ3Nlc3Npb25FbmNyeXB0aW9uS2V5J1xuICAgIHwgJ3N0YXRlJ1xuICAgIHwgJ3Bhc3NLZXknXG4gICAgfCAnbWFzdGVyS2V5J1xuICAgIHwgJ3B4aydcbiAgICB8ICdhc3NlbWJseSdcbiAgICB8ICdhcHByb3ZhbHMnXG4gICAgfCAnYXNzZW1ibHlDaXBoZXJEYXRhJ1xuICAgIHwgJ3dyYXBwZWRBc3NlbWJseUtleVZlcmlmaWVyUHJrJ1xuICA+O1xufVxuZXhwb3J0IGNvbnN0IFJlc2V0VXNlclF1ZXJ5ID0gZ3FsVHlwZWQ8UmVzZXRVc2VyUXVlcnlSZXN1bHQ+YFxucXVlcnkgUmVzZXRVc2VyUXVlcnkge1xuICB0cFBhc3N3b3JkUmVzZXRVc2VyIHtcbiAgICB1c2VybmFtZVxuICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5XG4gICAgc3RhdGVcbiAgICBwYXNzS2V5IHtcbiAgICAgIGlkXG4gICAgICBwYXNzS2V5UGFyYW1zXG4gICAgICBwYXNzSWRwUGFyYW1zXG4gICAgfVxuICAgIG1hc3RlcktleSB7XG4gICAgICBpZFxuICAgIH1cbiAgICBweGsge1xuICAgICAgaWRcbiAgICB9XG4gICAgYXNzZW1ibHkge1xuICAgICAgc2luZ2xlUmVqZWN0XG4gICAgICBxdW9ydW1cbiAgICAgIHN1YkFzc2VtYmxpZXMge1xuICAgICAgICBzaW5nbGVSZWplY3RcbiAgICAgICAgcXVvcnVtXG4gICAgICAgIGFwcHJvdmVycyB7XG4gICAgICAgICAgbmFtZVxuICAgICAgICAgIGVtYWlsXG4gICAgICAgICAgc3RhdGVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBhcHByb3ZhbHMge1xuICAgICAgaWRcbiAgICAgIG1vZGlmaWVkXG4gICAgICBhcHByb3ZlckVtYWlsXG4gICAgICByZWNlaXZlckNpcGhlclxuICAgICAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICB9XG4gICAgYXNzZW1ibHlDaXBoZXJEYXRhXG4gICAgd3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmtcbiAgfVxufWA7XG4iXX0=
|