@lifeready/core 8.0.2 → 8.0.4
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 +31 -24
- 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/api/types/lr-graphql.types.js +1 -1
- package/esm2015/lib/scenario/scenario.service.js +24 -13
- package/esm2015/lib/scenario/scenario.types.js +1 -1
- package/esm2015/lib/trusted-party/trusted-party.service.js +16 -18
- package/esm2015/lib/trusted-party/trusted-party.types.js +1 -1
- package/fesm2015/lifeready-core.js +37 -28
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/api/types/lr-graphql.types.d.ts +6 -4
- package/lib/scenario/scenario.service.d.ts +57 -21
- package/lib/scenario/scenario.types.d.ts +1 -1
- package/lib/trusted-party/trusted-party.service.d.ts +16 -16
- package/lib/trusted-party/trusted-party.types.d.ts +5 -5
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -129,7 +129,7 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
129
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
130
|
return new LrMutation({
|
|
131
131
|
mutation: CreateDirectoryShareMutation,
|
|
132
|
-
variables: yield this.
|
|
132
|
+
variables: yield this.prepareCreateItemShareMutation(Object.assign(Object.assign({}, options), { isDirectory: true })),
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
}
|
|
@@ -142,18 +142,16 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
142
142
|
return __awaiter(this, void 0, void 0, function* () {
|
|
143
143
|
return new LrMutation({
|
|
144
144
|
mutation: CreateFileShareMutation,
|
|
145
|
-
variables: yield this.
|
|
145
|
+
variables: yield this.prepareCreateItemShareMutation(Object.assign(Object.assign({}, options), { isDirectory: false })),
|
|
146
146
|
});
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
|
-
|
|
149
|
+
prepareCreateItemShareMutation(options) {
|
|
150
150
|
return __awaiter(this, void 0, void 0, function* () {
|
|
151
151
|
const { itemId, itemKeyId, tpId, tpSharedKeyId, accessRole, isDirectory, shareType, } = options;
|
|
152
|
-
console.log('createSharedItemMutation()', itemKeyId);
|
|
153
152
|
const itemKey = yield this.keyGraph.getKey(itemKeyId, () => isDirectory
|
|
154
153
|
? this.itemService.getDirectoryKeyId(itemId)
|
|
155
154
|
: this.itemService.getFileKeyId(itemId));
|
|
156
|
-
console.log('createSharedItemMutation()', itemKey.id);
|
|
157
155
|
const wrappingKey = yield this.keyGraph.getKey(tpSharedKeyId, () => this.getTpCurrentUserSharedKey(tpId).then((res) => res.sharedKey.id));
|
|
158
156
|
const wrappedKey = yield this.keyGraph.wrapKey(wrappingKey, itemKey.jwk);
|
|
159
157
|
return {
|
|
@@ -178,7 +176,7 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
178
176
|
return __awaiter(this, void 0, void 0, function* () {
|
|
179
177
|
return new LrMutation({
|
|
180
178
|
mutation: UpdateDirectoryShareMutation,
|
|
181
|
-
variables: this.
|
|
179
|
+
variables: this.prepareUpdateItemShareMutation(options),
|
|
182
180
|
});
|
|
183
181
|
});
|
|
184
182
|
}
|
|
@@ -191,15 +189,15 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
191
189
|
return __awaiter(this, void 0, void 0, function* () {
|
|
192
190
|
return new LrMutation({
|
|
193
191
|
mutation: UpdateFileShareMutation,
|
|
194
|
-
variables: this.
|
|
192
|
+
variables: this.prepareUpdateItemShareMutation(options),
|
|
195
193
|
});
|
|
196
194
|
});
|
|
197
195
|
}
|
|
198
|
-
|
|
199
|
-
const {
|
|
196
|
+
prepareUpdateItemShareMutation(options) {
|
|
197
|
+
const { itemShareId, accessRole } = options;
|
|
200
198
|
return {
|
|
201
199
|
input: {
|
|
202
|
-
id:
|
|
200
|
+
id: itemShareId,
|
|
203
201
|
accessRole,
|
|
204
202
|
},
|
|
205
203
|
};
|
|
@@ -230,7 +228,7 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
230
228
|
return __awaiter(this, void 0, void 0, function* () {
|
|
231
229
|
return new LrMutation({
|
|
232
230
|
mutation: CompleteDetachedDirectoryShareMutation,
|
|
233
|
-
variables: yield this.
|
|
231
|
+
variables: yield this.prepareCompleteDetachedItemShareMutation(Object.assign(Object.assign({}, options), { isDirectory: true })),
|
|
234
232
|
});
|
|
235
233
|
});
|
|
236
234
|
}
|
|
@@ -243,21 +241,21 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
243
241
|
return __awaiter(this, void 0, void 0, function* () {
|
|
244
242
|
return new LrMutation({
|
|
245
243
|
mutation: CompleteDetachedFileShareMutation,
|
|
246
|
-
variables: yield this.
|
|
244
|
+
variables: yield this.prepareCompleteDetachedItemShareMutation(Object.assign(Object.assign({}, options), { isDirectory: false })),
|
|
247
245
|
});
|
|
248
246
|
});
|
|
249
247
|
}
|
|
250
|
-
|
|
248
|
+
prepareCompleteDetachedItemShareMutation(options) {
|
|
251
249
|
return __awaiter(this, void 0, void 0, function* () {
|
|
252
|
-
const {
|
|
250
|
+
const { itemShareId, itemKeyId, isDirectory } = options;
|
|
253
251
|
const itemKey = yield this.keyGraph.getKey(itemKeyId, () => isDirectory
|
|
254
|
-
? this.itemService.getDirectoryKeyIdFromDirectoryShare(
|
|
255
|
-
: this.itemService.getFileKeyIdFromFileShare(
|
|
252
|
+
? this.itemService.getDirectoryKeyIdFromDirectoryShare(itemShareId)
|
|
253
|
+
: this.itemService.getFileKeyIdFromFileShare(itemShareId));
|
|
256
254
|
const rootKey = this.keyService.currentRootKey;
|
|
257
255
|
const wrappedKey = yield this.keyGraph.wrapKey(rootKey, itemKey.jwk);
|
|
258
256
|
return {
|
|
259
257
|
input: {
|
|
260
|
-
id:
|
|
258
|
+
id: itemShareId,
|
|
261
259
|
keyId: itemKey.id,
|
|
262
260
|
wrappingKeyId: rootKey.id,
|
|
263
261
|
wrappedKey,
|
|
@@ -386,4 +384,4 @@ TrustedPartyService = __decorate([
|
|
|
386
384
|
})
|
|
387
385
|
], TrustedPartyService);
|
|
388
386
|
export { TrustedPartyService };
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsaUNBQWlDLEVBQ2pDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHVCQUF1QixHQUN4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxN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dkUsU0FBUyxDQUFDLEdBQUcsRUFDYixXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FBQztZQUVGLE9BQU8sSUFBSSxVQUFVLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsSUFBSTt3QkFDSixXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUU7d0JBQ3pCLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRTt3QkFDN0Isb0JBQW9CO3FCQUNyQjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVELHVGQUF1RjtJQUN2Rix1RkFBdUY7SUFDdkYsVUFBVTtJQUNWLHVGQUF1RjtJQUN2Rix1RkFBdUY7SUFDekUseUJBQXlCLENBQUMsSUFBb0I7O1lBQzFELE9BQU8sQ0FDTCxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUN6QixLQUFLLEVBQUUsMkJBQTJCO2dCQUNsQyxTQUFTLEVBQUU7b0JBQ1QsRUFBRSxFQUFFLElBQUk7aUJBQ1Q7YUFDRixDQUFDLENBQ0gsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDO1FBQzFDLENBQUM7S0FBQTtDQUNGLENBQUE7OztZQWpiQSxVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQTNDOEIsTUFBTTtZQUFoQixRQUFRO1lBT3BCLGVBQWU7WUFGZixXQUFXO1lBR1gsVUFBVTtZQUZWLGlCQUFpQjtZQUZqQixpQkFBaUI7O0FBd0NiLG1CQUFtQjtJQU4vQixpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsbUJBQW1CLENBOGEvQjtTQTlhWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHsgTHJNdXRhdGlvbiwgTHJTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgTHJSZWxheUlkSW5wdXQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9lbmNyeXB0aW9uL2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJdGVtU2VydmljZSB9IGZyb20gJy4uL2l0ZW0vaXRlbS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBLY0JhZFN0YXRlRXhjZXB0aW9uIH0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENvbXBsZXRlRGV0YWNoZWREaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICBDb21wbGV0ZURldGFjaGVkRmlsZVNoYXJlTXV0YXRpb24sXG4gIENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgQ3JlYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgQ3JlYXRlRmlsZVNoYXJlTXV0YXRpb24sXG4gIERlbGV0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gIERlbGV0ZVRwTXV0YXRpb24sXG4gIFJlcXVlc3RUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBSZXNwb25kVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgU2hhcmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgU2hhcmVGaWxlTXV0YXRpb24sXG4gIFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgVW5zaGFyZUZpbGVNdXRhdGlvbixcbiAgVXBkYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgVXBkYXRlRmlsZVNoYXJlTXV0YXRpb24sXG59IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eS5ncWwnO1xuaW1wb3J0IHsgVHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5IH0gZnJvbSAnLi90cnVzdGVkLXBhcnR5LmdxbC5wcml2YXRlJztcbmltcG9ydCB7XG4gIENvbXBsZXRlRGV0YWNoZWRTaGFyZWRJdGVtT3B0aW9ucyxcbiAgQ3JlYXRlU2hhcmVkSXRlbU9wdGlvbnMsXG4gIFNoYXJlSXRlbU9wdGlvbnMsXG4gIFVuc2hhcmVJdGVtT3B0aW9ucyxcbiAgVXBkYXRlU2hhcmVkSXRlbU9wdGlvbnMsXG59IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eS50eXBlcyc7XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcnVzdGVkUGFydHlTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpdGVtU2VydmljZTogSXRlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZGVsZXRlVHAodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVUcE11dGF0aW9uKHRwSWQpKTtcbiAgfVxuXG4gIGRlbGV0ZVRwTXV0YXRpb24odHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZVRwTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogdHBJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzaGFyZURpcmVjdG9yeShvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBzaGFyZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFNoYXJlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IGF3YWl0IHRoaXMucHJlcGFyZVNoYXJlSXRlbU11dGF0aW9uKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaXNEaXJlY3Rvcnk6IHRydWUsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNoYXJlRmlsZShvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuc2hhcmVGaWxlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgc2hhcmVGaWxlTXV0YXRpb24ob3B0aW9uczogU2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogU2hhcmVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IGF3YWl0IHRoaXMucHJlcGFyZVNoYXJlSXRlbU11dGF0aW9uKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaXNEaXJlY3Rvcnk6IGZhbHNlLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVTaGFyZUl0ZW1NdXRhdGlvbihcbiAgICBvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zICYge1xuICAgICAgaXNEaXJlY3Rvcnk6IGJvb2xlYW47XG4gICAgfVxuICApIHtcbiAgICBjb25zdCB7IGl0ZW1JZCwgaXRlbUtleUlkLCB0cElkLCB0cFNoYXJlZEtleUlkLCBhY2Nlc3NSb2xlLCBpc0RpcmVjdG9yeSB9ID1cbiAgICAgIG9wdGlvbnM7XG5cbiAgICBjb25zdCBpdGVtS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkoaXRlbUtleUlkLCAoKSA9PlxuICAgICAgaXNEaXJlY3RvcnlcbiAgICAgICAgPyB0aGlzLml0ZW1TZXJ2aWNlLmdldERpcmVjdG9yeUtleUlkKGl0ZW1JZClcbiAgICAgICAgOiB0aGlzLml0ZW1TZXJ2aWNlLmdldEZpbGVLZXlJZChpdGVtSWQpXG4gICAgKTtcbiAgICBjb25zdCB3cmFwcGluZ0tleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHRwU2hhcmVkS2V5SWQsICgpID0+XG4gICAgICB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCkudGhlbigocmVzKSA9PiByZXMuc2hhcmVkS2V5LmlkKVxuICAgICk7XG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleSh3cmFwcGluZ0tleSwgaXRlbUtleS5qd2spO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGlkOiBpdGVtSWQsXG4gICAgICAgIHRwSWQsXG4gICAgICAgIGFjY2Vzc1JvbGUsXG4gICAgICAgIGtleUlkOiBpdGVtS2V5LmlkLFxuICAgICAgICB3cmFwcGluZ0tleUlkOiB3cmFwcGluZ0tleS5pZCxcbiAgICAgICAgd3JhcHBlZEtleSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVEaXJlY3Rvcnkob3B0aW9uczogVW5zaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudW5zaGFyZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbihvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy51bnNoYXJlSXRlbU11dGF0aW9uKHsgLi4ub3B0aW9ucywgaXNEaXJlY3Rvcnk6IHRydWUgfSk7XG4gIH1cblxuICBhc3luYyB1bnNoYXJlRmlsZShvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51bnNoYXJlRmlsZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVGaWxlTXV0YXRpb24ob3B0aW9uczogVW5zaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMudW5zaGFyZUl0ZW1NdXRhdGlvbih7IC4uLm9wdGlvbnMsIGlzRGlyZWN0b3J5OiBmYWxzZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdW5zaGFyZUl0ZW1NdXRhdGlvbih7XG4gICAgaXRlbUlkLFxuICAgIHRwSWQsXG4gICAgaXNEaXJlY3RvcnksXG4gIH06IFVuc2hhcmVJdGVtT3B0aW9ucyAmIHsgaXNEaXJlY3Rvcnk6IGJvb2xlYW4gfSkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogaXNEaXJlY3RvcnkgPyBVbnNoYXJlRGlyZWN0b3J5TXV0YXRpb24gOiBVbnNoYXJlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IGl0ZW1JZCxcbiAgICAgICAgICB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZURpcmVjdG9yeVNoYXJlKG9wdGlvbnM6IENyZWF0ZVNoYXJlZEl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZVNoYXJlZEl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVTaGFyZWRJdGVtTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRmlsZVNoYXJlKG9wdGlvbnM6IENyZWF0ZVNoYXJlZEl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlRmlsZVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRmlsZVNoYXJlTXV0YXRpb24ob3B0aW9uczogQ3JlYXRlU2hhcmVkSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZUZpbGVTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVTaGFyZWRJdGVtTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogZmFsc2UsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNyZWF0ZVNoYXJlZEl0ZW1NdXRhdGlvbihcbiAgICBvcHRpb25zOiBDcmVhdGVTaGFyZWRJdGVtT3B0aW9ucyAmIHsgaXNEaXJlY3Rvcnk6IGJvb2xlYW4gfVxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBpdGVtSWQsXG4gICAgICBpdGVtS2V5SWQsXG4gICAgICB0cElkLFxuICAgICAgdHBTaGFyZWRLZXlJZCxcbiAgICAgIGFjY2Vzc1JvbGUsXG4gICAgICBpc0RpcmVjdG9yeSxcbiAgICAgIHNoYXJlVHlwZSxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnNvbGUubG9nKCdjcmVhdGVTaGFyZWRJdGVtTXV0YXRpb24oKScsIGl0ZW1LZXlJZCk7XG4gICAgY29uc3QgaXRlbUtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KGl0ZW1LZXlJZCwgKCkgPT5cbiAgICAgIGlzRGlyZWN0b3J5XG4gICAgICAgID8gdGhpcy5pdGVtU2VydmljZS5nZXREaXJlY3RvcnlLZXlJZChpdGVtSWQpXG4gICAgICAgIDogdGhpcy5pdGVtU2VydmljZS5nZXRGaWxlS2V5SWQoaXRlbUlkKVxuICAgICk7XG4gICAgY29uc29sZS5sb2coJ2NyZWF0ZVNoYXJlZEl0ZW1NdXRhdGlvbigpJywgaXRlbUtleS5pZCk7XG5cbiAgICBjb25zdCB3cmFwcGluZ0tleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHRwU2hhcmVkS2V5SWQsICgpID0+XG4gICAgICB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCkudGhlbigocmVzKSA9PiByZXMuc2hhcmVkS2V5LmlkKVxuICAgICk7XG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleSh3cmFwcGluZ0tleSwgaXRlbUtleS5qd2spO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGlkOiBpdGVtSWQsXG4gICAgICAgIHRwSWQsXG4gICAgICAgIGFjY2Vzc1JvbGUsXG4gICAgICAgIGtleUlkOiBpdGVtS2V5LmlkLFxuICAgICAgICB3cmFwcGluZ0tleUlkOiB3cmFwcGluZ0tleS5pZCxcbiAgICAgICAgd3JhcHBlZEtleSxcbiAgICAgICAgc2hhcmVUeXBlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGlyZWN0b3J5U2hhcmUob3B0aW9uczogVXBkYXRlU2hhcmVkSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51cGRhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24ob3B0aW9uczogVXBkYXRlU2hhcmVkSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHRoaXMucHJlcGFyZVVwZGF0ZVNoYXJlZEl0ZW1NdXRhdGlvbihvcHRpb25zKSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUZpbGVTaGFyZShvcHRpb25zOiBVcGRhdGVTaGFyZWRJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZVNoYXJlZEl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVGaWxlU2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogdGhpcy5wcmVwYXJlVXBkYXRlU2hhcmVkSXRlbU11dGF0aW9uKG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlVXBkYXRlU2hhcmVkSXRlbU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZVNoYXJlZEl0ZW1PcHRpb25zKSB7XG4gICAgY29uc3QgeyBzaGFyZWRJdGVtSWQsIGFjY2Vzc1JvbGUgfSA9IG9wdGlvbnM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgaWQ6IHNoYXJlZEl0ZW1JZCxcbiAgICAgICAgYWNjZXNzUm9sZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZURpcmVjdG9yeVNoYXJlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKGlkKSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZURldGFjaGVkRGlyZWN0b3J5U2hhcmUoXG4gICAgb3B0aW9uczogQ29tcGxldGVEZXRhY2hlZFNoYXJlZEl0ZW1PcHRpb25zXG4gICkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNvbXBsZXRlRGV0YWNoZWREaXJlY3RvcnlTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlRGV0YWNoZWREaXJlY3RvcnlTaGFyZU11dGF0aW9uKFxuICAgIG9wdGlvbnM6IENvbXBsZXRlRGV0YWNoZWRTaGFyZWRJdGVtT3B0aW9uc1xuICApIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENvbXBsZXRlRGV0YWNoZWREaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDb21wbGV0ZURldGFjaGVkU2hhcmVkSXRlbU11dGF0aW9uKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaXNEaXJlY3Rvcnk6IHRydWUsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlRGV0YWNoZWRGaWxlU2hhcmUob3B0aW9uczogQ29tcGxldGVEZXRhY2hlZFNoYXJlZEl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY29tcGxldGVEZXRhY2hlZEZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlRGV0YWNoZWRGaWxlU2hhcmVNdXRhdGlvbihcbiAgICBvcHRpb25zOiBDb21wbGV0ZURldGFjaGVkU2hhcmVkSXRlbU9wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDb21wbGV0ZURldGFjaGVkRmlsZVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IGF3YWl0IHRoaXMucHJlcGFyZUNvbXBsZXRlRGV0YWNoZWRTaGFyZWRJdGVtTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogZmFsc2UsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNvbXBsZXRlRGV0YWNoZWRTaGFyZWRJdGVtTXV0YXRpb24oXG4gICAgb3B0aW9uczogQ29tcGxldGVEZXRhY2hlZFNoYXJlZEl0ZW1PcHRpb25zICYgeyBpc0RpcmVjdG9yeTogYm9vbGVhbiB9XG4gICkge1xuICAgIGNvbnN0IHsgc2hhcmVkSXRlbUlkLCBpdGVtS2V5SWQsIGlzRGlyZWN0b3J5IH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgaXRlbUtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KGl0ZW1LZXlJZCwgKCkgPT5cbiAgICAgIGlzRGlyZWN0b3J5XG4gICAgICAgID8gdGhpcy5pdGVtU2VydmljZS5nZXREaXJlY3RvcnlLZXlJZEZyb21EaXJlY3RvcnlTaGFyZShzaGFyZWRJdGVtSWQpXG4gICAgICAgIDogdGhpcy5pdGVtU2VydmljZS5nZXRGaWxlS2V5SWRGcm9tRmlsZVNoYXJlKHNoYXJlZEl0ZW1JZClcbiAgICApO1xuXG4gICAgY29uc3Qgcm9vdEtleSA9IHRoaXMua2V5U2VydmljZS5jdXJyZW50Um9vdEtleTtcblxuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLndyYXBLZXkocm9vdEtleSwgaXRlbUtleS5qd2spO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGlkOiBzaGFyZWRJdGVtSWQsXG4gICAgICAgIGtleUlkOiBpdGVtS2V5LmlkLFxuICAgICAgICB3cmFwcGluZ0tleUlkOiByb290S2V5LmlkLFxuICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcmVxdWVzdE1rUmVzaGFyZU11dGF0aW9uKHRwSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgY29uc3QgdXNlclNoYXJlZEtleSA9IGF3YWl0IHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKTtcblxuICAgIGlmICh1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbignVFAgYWxyZWFkeSBoYXMgbWtTaGFyZWRLZXknKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXN0ZXJLZXkgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudE1hc3RlcktleTtcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlUGtjS2V5KCk7XG4gICAgY29uc3QgbWtXcmFwcGVkTWtQcmsgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBwcmsudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIGNvbnN0IHNoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHVzZXJTaGFyZWRLZXkuc2hhcmVkS2V5LmlkKTtcbiAgICBjb25zdCBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBzaGFyZWRLZXkuandrLFxuICAgICAge1xuICAgICAgICBwYms6IHByay50b0pTT04oKSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBSZXF1ZXN0VHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWFzdGVyS2V5SWQ6IG1hc3RlcktleS5pZCxcbiAgICAgICAgICBta1BiazogSlNPTi5zdHJpbmdpZnkocHJrLnRvSlNPTigpKSxcbiAgICAgICAgICBta1dyYXBwZWRNa1ByayxcbiAgICAgICAgICBzaGFyZWRLZXlJZDogc2hhcmVkS2V5LmlkLFxuICAgICAgICAgIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVzcG9uZE1rUmVzaGFyZSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIGNvbnN0IHVzZXJTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCk7XG5cbiAgICBpZiAoIXVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkpIHtcbiAgICAgIHRocm93IG5ldyBLY0JhZFN0YXRlRXhjZXB0aW9uKFxuICAgICAgICAnTm8gYWNjZXNzIHRvIHRoZSBta1NoYXJlZEtleSBzbyBjYW5ub3QgcmVzaGFyZSBpdCB3aXRoIFRQJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgc2hhcmVkS2V5LFxuICAgICAgdXNlclNoYXJlZEtleS5ta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyXG4gICAgKTtcbiAgICBjb25zdCBwYmsgPSBhd2FpdCBKV0suYXNLZXkocGxhaW5Na1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyLnBiayk7XG4gICAgY29uc3QgbWtTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShcbiAgICAgIHVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkuaWRcbiAgICApO1xuXG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlciA9IHtcbiAgICAgIG1rU2hhcmVkS2V5OiB7XG4gICAgICAgIGlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgandrOiBta1NoYXJlZEtleS5qd2sudG9KU09OKHRydWUpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gV3JhcCB3aXRoIHNoYXJlZEtleSB0aGVuIGFnYWluIHdpdGggUGJrXG4gICAgY29uc3QgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPVxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIHBiayxcbiAgICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgICAgc2hhcmVkS2V5Lmp3ayxcbiAgICAgICAgICBwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBta1NoYXJlZEtleUlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZU1rUmVzaGFyZSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIGNvbnN0IHVzZXJTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCk7XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgcHJrID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5ta1B4ay5pZCk7XG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIHNoYXJlZEtleSxcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAgcHJrLFxuICAgICAgICB1c2VyU2hhcmVkS2V5Lm1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIERvdWJsZSBjaGVjayBpdCdzIGEgdmFsaWQga2V5LlxuICAgIGNvbnN0IG1rU2hhcmVkS2V5OiBLZXkgPSB7XG4gICAgICBpZDogcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlci5ta1NoYXJlZEtleS5pZCxcbiAgICAgIGp3azogYXdhaXQgSldLLmFzS2V5KHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIubWtTaGFyZWRLZXkuandrKSxcbiAgICB9O1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRNYXN0ZXJLZXk7XG4gICAgY29uc3QgbWtXcmFwcGVkTWtTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBta1NoYXJlZEtleS5qd2sudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBtYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmlkLFxuICAgICAgICAgIG1rU2hhcmVkS2V5SWQ6IG1rU2hhcmVkS2V5LmlkLFxuICAgICAgICAgIG1rV3JhcHBlZE1rU2hhcmVkS2V5LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSGVscGVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHByaXZhdGUgYXN5bmMgZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLnRwLmN1cnJlbnRVc2VyU2hhcmVkS2V5LnVzZXJTaGFyZWRLZXk7XG4gIH1cbn1cbiJdfQ==
|
|
387
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsaUNBQWlDLEVBQ2pDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHVCQUF1QixHQUN4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxN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QUEyQjtnQkFDckMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxJQUFJO3dCQUNKLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRTt3QkFDekIsYUFBYSxFQUFFLFdBQVcsQ0FBQyxFQUFFO3dCQUM3QixvQkFBb0I7cUJBQ3JCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsdUZBQXVGO0lBQ3ZGLHVGQUF1RjtJQUN2RixVQUFVO0lBQ1YsdUZBQXVGO0lBQ3ZGLHVGQUF1RjtJQUN6RSx5QkFBeUIsQ0FBQyxJQUFvQjs7WUFDMUQsT0FBTyxDQUNMLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSwyQkFBMkI7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDVCxFQUFFLEVBQUUsSUFBSTtpQkFDVDthQUNGLENBQUMsQ0FDSCxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUM7UUFDMUMsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBL2FBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBM0M4QixNQUFNO1lBQWhCLFFBQVE7WUFPcEIsZUFBZTtZQUZmLFdBQVc7WUFHWCxVQUFVO1lBRlYsaUJBQWlCO1lBRmpCLGlCQUFpQjs7QUF3Q2IsbUJBQW1CO0lBTi9CLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxtQkFBbUIsQ0E0YS9CO1NBNWFZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBMck11dGF0aW9uLCBMclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBMclJlbGF5SWRJbnB1dCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vaXRlbS9pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXkgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IEtjQmFkU3RhdGVFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVEZXRhY2hlZERpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gIENvbXBsZXRlRGV0YWNoZWRGaWxlU2hhcmVNdXRhdGlvbixcbiAgQ29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBDcmVhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICBDcmVhdGVGaWxlU2hhcmVNdXRhdGlvbixcbiAgRGVsZXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgRGVsZXRlVHBNdXRhdGlvbixcbiAgUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gIFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBTaGFyZURpcmVjdG9yeU11dGF0aW9uLFxuICBTaGFyZUZpbGVNdXRhdGlvbixcbiAgVW5zaGFyZURpcmVjdG9yeU11dGF0aW9uLFxuICBVbnNoYXJlRmlsZU11dGF0aW9uLFxuICBVcGRhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICBVcGRhdGVGaWxlU2hhcmVNdXRhdGlvbixcbn0gZnJvbSAnLi90cnVzdGVkLXBhcnR5LmdxbCc7XG5pbXBvcnQgeyBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkgfSBmcm9tICcuL3RydXN0ZWQtcGFydHkuZ3FsLnByaXZhdGUnO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnMsXG4gIENyZWF0ZUl0ZW1TaGFyZU9wdGlvbnMsXG4gIFNoYXJlSXRlbU9wdGlvbnMsXG4gIFVuc2hhcmVJdGVtT3B0aW9ucyxcbiAgVXBkYXRlSXRlbVNoYXJlT3B0aW9ucyxcbn0gZnJvbSAnLi90cnVzdGVkLXBhcnR5LnR5cGVzJztcblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eVNlcnZpY2UgZXh0ZW5kcyBMclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIGl0ZW1TZXJ2aWNlOiBJdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBkZWxldGVUcCh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZVRwTXV0YXRpb24odHBJZCkpO1xuICB9XG5cbiAgZGVsZXRlVHBNdXRhdGlvbih0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlVHBNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkOiB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNoYXJlRGlyZWN0b3J5KG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zaGFyZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHNoYXJlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9uczogU2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogU2hhcmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogYXdhaXQgdGhpcy5wcmVwYXJlU2hhcmVJdGVtTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2hhcmVGaWxlKG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zaGFyZUZpbGVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBzaGFyZUZpbGVNdXRhdGlvbihvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBTaGFyZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogYXdhaXQgdGhpcy5wcmVwYXJlU2hhcmVJdGVtTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogZmFsc2UsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZVNoYXJlSXRlbU11dGF0aW9uKFxuICAgIG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMgJiB7XG4gICAgICBpc0RpcmVjdG9yeTogYm9vbGVhbjtcbiAgICB9XG4gICkge1xuICAgIGNvbnN0IHsgaXRlbUlkLCBpdGVtS2V5SWQsIHRwSWQsIHRwU2hhcmVkS2V5SWQsIGFjY2Vzc1JvbGUsIGlzRGlyZWN0b3J5IH0gPVxuICAgICAgb3B0aW9ucztcblxuICAgIGNvbnN0IGl0ZW1LZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShpdGVtS2V5SWQsICgpID0+XG4gICAgICBpc0RpcmVjdG9yeVxuICAgICAgICA/IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RGlyZWN0b3J5S2V5SWQoaXRlbUlkKVxuICAgICAgICA6IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RmlsZUtleUlkKGl0ZW1JZClcbiAgICApO1xuICAgIGNvbnN0IHdyYXBwaW5nS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodHBTaGFyZWRLZXlJZCwgKCkgPT5cbiAgICAgIHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKS50aGVuKChyZXMpID0+IHJlcy5zaGFyZWRLZXkuaWQpXG4gICAgKTtcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC53cmFwS2V5KHdyYXBwaW5nS2V5LCBpdGVtS2V5Lmp3ayk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgaWQ6IGl0ZW1JZCxcbiAgICAgICAgdHBJZCxcbiAgICAgICAgYWNjZXNzUm9sZSxcbiAgICAgICAga2V5SWQ6IGl0ZW1LZXkuaWQsXG4gICAgICAgIHdyYXBwaW5nS2V5SWQ6IHdyYXBwaW5nS2V5LmlkLFxuICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdW5zaGFyZURpcmVjdG9yeShvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51bnNoYXJlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgdW5zaGFyZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnM6IFVuc2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnVuc2hhcmVJdGVtTXV0YXRpb24oeyAuLi5vcHRpb25zLCBpc0RpcmVjdG9yeTogdHJ1ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVGaWxlKG9wdGlvbnM6IFVuc2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVuc2hhcmVGaWxlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgdW5zaGFyZUZpbGVNdXRhdGlvbihvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy51bnNoYXJlSXRlbU11dGF0aW9uKHsgLi4ub3B0aW9ucywgaXNEaXJlY3Rvcnk6IGZhbHNlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1bnNoYXJlSXRlbU11dGF0aW9uKHtcbiAgICBpdGVtSWQsXG4gICAgdHBJZCxcbiAgICBpc0RpcmVjdG9yeSxcbiAgfTogVW5zaGFyZUl0ZW1PcHRpb25zICYgeyBpc0RpcmVjdG9yeTogYm9vbGVhbiB9KSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBpc0RpcmVjdG9yeSA/IFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbiA6IFVuc2hhcmVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogaXRlbUlkLFxuICAgICAgICAgIHRwSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5U2hhcmUob3B0aW9uczogQ3JlYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNyZWF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbihvcHRpb25zOiBDcmVhdGVJdGVtU2hhcmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVJdGVtU2hhcmVNdXRhdGlvbih7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIGlzRGlyZWN0b3J5OiB0cnVlLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVGaWxlU2hhcmUob3B0aW9uczogQ3JlYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNyZWF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZUZpbGVTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVJdGVtU2hhcmVNdXRhdGlvbih7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIGlzRGlyZWN0b3J5OiBmYWxzZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ3JlYXRlSXRlbVNoYXJlTXV0YXRpb24oXG4gICAgb3B0aW9uczogQ3JlYXRlSXRlbVNoYXJlT3B0aW9ucyAmIHsgaXNEaXJlY3Rvcnk6IGJvb2xlYW4gfVxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBpdGVtSWQsXG4gICAgICBpdGVtS2V5SWQsXG4gICAgICB0cElkLFxuICAgICAgdHBTaGFyZWRLZXlJZCxcbiAgICAgIGFjY2Vzc1JvbGUsXG4gICAgICBpc0RpcmVjdG9yeSxcbiAgICAgIHNoYXJlVHlwZSxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGl0ZW1LZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShpdGVtS2V5SWQsICgpID0+XG4gICAgICBpc0RpcmVjdG9yeVxuICAgICAgICA/IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RGlyZWN0b3J5S2V5SWQoaXRlbUlkKVxuICAgICAgICA6IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RmlsZUtleUlkKGl0ZW1JZClcbiAgICApO1xuXG4gICAgY29uc3Qgd3JhcHBpbmdLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh0cFNoYXJlZEtleUlkLCAoKSA9PlxuICAgICAgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpLnRoZW4oKHJlcykgPT4gcmVzLnNoYXJlZEtleS5pZClcbiAgICApO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLndyYXBLZXkod3JhcHBpbmdLZXksIGl0ZW1LZXkuandrKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpbnB1dDoge1xuICAgICAgICBpZDogaXRlbUlkLFxuICAgICAgICB0cElkLFxuICAgICAgICBhY2Nlc3NSb2xlLFxuICAgICAgICBrZXlJZDogaXRlbUtleS5pZCxcbiAgICAgICAgd3JhcHBpbmdLZXlJZDogd3JhcHBpbmdLZXkuaWQsXG4gICAgICAgIHdyYXBwZWRLZXksXG4gICAgICAgIHNoYXJlVHlwZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpcmVjdG9yeVNoYXJlKG9wdGlvbnM6IFVwZGF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51cGRhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24ob3B0aW9uczogVXBkYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogVXBkYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogdGhpcy5wcmVwYXJlVXBkYXRlSXRlbVNoYXJlTXV0YXRpb24ob3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVGaWxlU2hhcmUob3B0aW9uczogVXBkYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZUZpbGVTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB0aGlzLnByZXBhcmVVcGRhdGVJdGVtU2hhcmVNdXRhdGlvbihvcHRpb25zKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZVVwZGF0ZUl0ZW1TaGFyZU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGl0ZW1TaGFyZUlkLCBhY2Nlc3NSb2xlIH0gPSBvcHRpb25zO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGlkOiBpdGVtU2hhcmVJZCxcbiAgICAgICAgYWNjZXNzUm9sZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZURpcmVjdG9yeVNoYXJlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKGlkKSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZURldGFjaGVkRGlyZWN0b3J5U2hhcmUoXG4gICAgb3B0aW9uczogQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY29tcGxldGVEZXRhY2hlZERpcmVjdG9yeVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVEZXRhY2hlZERpcmVjdG9yeVNoYXJlTXV0YXRpb24oXG4gICAgb3B0aW9uczogQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDb21wbGV0ZURldGFjaGVkRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogYXdhaXQgdGhpcy5wcmVwYXJlQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU11dGF0aW9uKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaXNEaXJlY3Rvcnk6IHRydWUsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlRGV0YWNoZWRGaWxlU2hhcmUob3B0aW9uczogQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jb21wbGV0ZURldGFjaGVkRmlsZVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVEZXRhY2hlZEZpbGVTaGFyZU11dGF0aW9uKFxuICAgIG9wdGlvbnM6IENvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ29tcGxldGVEZXRhY2hlZEZpbGVTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDb21wbGV0ZURldGFjaGVkSXRlbVNoYXJlTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogZmFsc2UsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVNdXRhdGlvbihcbiAgICBvcHRpb25zOiBDb21wbGV0ZURldGFjaGVkSXRlbVNoYXJlT3B0aW9ucyAmIHsgaXNEaXJlY3Rvcnk6IGJvb2xlYW4gfVxuICApIHtcbiAgICBjb25zdCB7IGl0ZW1TaGFyZUlkLCBpdGVtS2V5SWQsIGlzRGlyZWN0b3J5IH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgaXRlbUtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KGl0ZW1LZXlJZCwgKCkgPT5cbiAgICAgIGlzRGlyZWN0b3J5XG4gICAgICAgID8gdGhpcy5pdGVtU2VydmljZS5nZXREaXJlY3RvcnlLZXlJZEZyb21EaXJlY3RvcnlTaGFyZShpdGVtU2hhcmVJZClcbiAgICAgICAgOiB0aGlzLml0ZW1TZXJ2aWNlLmdldEZpbGVLZXlJZEZyb21GaWxlU2hhcmUoaXRlbVNoYXJlSWQpXG4gICAgKTtcblxuICAgIGNvbnN0IHJvb3RLZXkgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudFJvb3RLZXk7XG5cbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC53cmFwS2V5KHJvb3RLZXksIGl0ZW1LZXkuandrKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpbnB1dDoge1xuICAgICAgICBpZDogaXRlbVNoYXJlSWQsXG4gICAgICAgIGtleUlkOiBpdGVtS2V5LmlkLFxuICAgICAgICB3cmFwcGluZ0tleUlkOiByb290S2V5LmlkLFxuICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcmVxdWVzdE1rUmVzaGFyZU11dGF0aW9uKHRwSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgY29uc3QgdXNlclNoYXJlZEtleSA9IGF3YWl0IHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKTtcblxuICAgIGlmICh1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbignVFAgYWxyZWFkeSBoYXMgbWtTaGFyZWRLZXknKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXN0ZXJLZXkgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudE1hc3RlcktleTtcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlUGtjS2V5KCk7XG4gICAgY29uc3QgbWtXcmFwcGVkTWtQcmsgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBwcmsudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIGNvbnN0IHNoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHVzZXJTaGFyZWRLZXkuc2hhcmVkS2V5LmlkKTtcbiAgICBjb25zdCBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBzaGFyZWRLZXkuandrLFxuICAgICAge1xuICAgICAgICBwYms6IHByay50b0pTT04oKSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBSZXF1ZXN0VHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWFzdGVyS2V5SWQ6IG1hc3RlcktleS5pZCxcbiAgICAgICAgICBta1BiazogSlNPTi5zdHJpbmdpZnkocHJrLnRvSlNPTigpKSxcbiAgICAgICAgICBta1dyYXBwZWRNa1ByayxcbiAgICAgICAgICBzaGFyZWRLZXlJZDogc2hhcmVkS2V5LmlkLFxuICAgICAgICAgIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVzcG9uZE1rUmVzaGFyZSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIGNvbnN0IHVzZXJTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCk7XG5cbiAgICBpZiAoIXVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkpIHtcbiAgICAgIHRocm93IG5ldyBLY0JhZFN0YXRlRXhjZXB0aW9uKFxuICAgICAgICAnTm8gYWNjZXNzIHRvIHRoZSBta1NoYXJlZEtleSBzbyBjYW5ub3QgcmVzaGFyZSBpdCB3aXRoIFRQJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgc2hhcmVkS2V5LFxuICAgICAgdXNlclNoYXJlZEtleS5ta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyXG4gICAgKTtcbiAgICBjb25zdCBwYmsgPSBhd2FpdCBKV0suYXNLZXkocGxhaW5Na1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyLnBiayk7XG4gICAgY29uc3QgbWtTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShcbiAgICAgIHVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkuaWRcbiAgICApO1xuXG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlciA9IHtcbiAgICAgIG1rU2hhcmVkS2V5OiB7XG4gICAgICAgIGlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgandrOiBta1NoYXJlZEtleS5qd2sudG9KU09OKHRydWUpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gV3JhcCB3aXRoIHNoYXJlZEtleSB0aGVuIGFnYWluIHdpdGggUGJrXG4gICAgY29uc3QgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPVxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIHBiayxcbiAgICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgICAgc2hhcmVkS2V5Lmp3ayxcbiAgICAgICAgICBwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBta1NoYXJlZEtleUlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZU1rUmVzaGFyZSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIGNvbnN0IHVzZXJTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCk7XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgcHJrID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5ta1B4ay5pZCk7XG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIHNoYXJlZEtleSxcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAgcHJrLFxuICAgICAgICB1c2VyU2hhcmVkS2V5Lm1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIERvdWJsZSBjaGVjayBpdCdzIGEgdmFsaWQga2V5LlxuICAgIGNvbnN0IG1rU2hhcmVkS2V5OiBLZXkgPSB7XG4gICAgICBpZDogcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlci5ta1NoYXJlZEtleS5pZCxcbiAgICAgIGp3azogYXdhaXQgSldLLmFzS2V5KHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIubWtTaGFyZWRLZXkuandrKSxcbiAgICB9O1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRNYXN0ZXJLZXk7XG4gICAgY29uc3QgbWtXcmFwcGVkTWtTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBta1NoYXJlZEtleS5qd2sudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBtYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmlkLFxuICAgICAgICAgIG1rU2hhcmVkS2V5SWQ6IG1rU2hhcmVkS2V5LmlkLFxuICAgICAgICAgIG1rV3JhcHBlZE1rU2hhcmVkS2V5LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSGVscGVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHByaXZhdGUgYXN5bmMgZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLnRwLmN1cnJlbnRVc2VyU2hhcmVkS2V5LnVzZXJTaGFyZWRLZXk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90cnVzdGVkLXBhcnR5L3RydXN0ZWQtcGFydHkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjY2Vzc1JvbGVDaG9pY2UsXG4gIExyUmVsYXlJZElucHV0LFxuICBTaGFyZVR5cGVDaG9pY2UsXG59IGZyb20gJy4uL2FwaS90eXBlcyc7XG5cbi8vIElmIHh4eEtleUlkIG5vdCBnaXZlbiwgdGhlbiBmZXRjaCB0aGVtIHdpdGggQVBJIGNhbGxzXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlSXRlbU9wdGlvbnMge1xuICBpdGVtSWQ6IExyUmVsYXlJZElucHV0O1xuICBpdGVtS2V5SWQ/OiBMclJlbGF5SWRJbnB1dDtcbiAgdHBJZDogTHJSZWxheUlkSW5wdXQ7XG4gIHRwU2hhcmVkS2V5SWQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90cnVzdGVkLXBhcnR5L3RydXN0ZWQtcGFydHkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjY2Vzc1JvbGVDaG9pY2UsXG4gIExyUmVsYXlJZElucHV0LFxuICBTaGFyZVR5cGVDaG9pY2UsXG59IGZyb20gJy4uL2FwaS90eXBlcyc7XG5cbi8vIElmIHh4eEtleUlkIG5vdCBnaXZlbiwgdGhlbiBmZXRjaCB0aGVtIHdpdGggQVBJIGNhbGxzXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlSXRlbU9wdGlvbnMge1xuICBpdGVtSWQ6IExyUmVsYXlJZElucHV0O1xuICBpdGVtS2V5SWQ/OiBMclJlbGF5SWRJbnB1dDtcbiAgdHBJZDogTHJSZWxheUlkSW5wdXQ7XG4gIHRwU2hhcmVkS2V5SWQ/OiBMclJlbGF5SWRJbnB1dDtcbiAgYWNjZXNzUm9sZTogQWNjZXNzUm9sZUNob2ljZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnNoYXJlSXRlbU9wdGlvbnMge1xuICBpdGVtSWQ6IHN0cmluZztcbiAgdHBJZDogc3RyaW5nO1xufVxuXG4vLyBOZXcgSXRlbVNoYXJlIENSVUQgaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUl0ZW1TaGFyZU9wdGlvbnMge1xuICBpdGVtSWQ6IExyUmVsYXlJZElucHV0O1xuICBpdGVtS2V5SWQ/OiBMclJlbGF5SWRJbnB1dDtcbiAgdHBJZDogTHJSZWxheUlkSW5wdXQ7XG4gIHRwU2hhcmVkS2V5SWQ/OiBMclJlbGF5SWRJbnB1dDtcbiAgYWNjZXNzUm9sZTogQWNjZXNzUm9sZUNob2ljZTtcbiAgc2hhcmVUeXBlOiBTaGFyZVR5cGVDaG9pY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlSXRlbVNoYXJlT3B0aW9ucyB7XG4gIGl0ZW1TaGFyZUlkOiBMclJlbGF5SWRJbnB1dDtcbiAgYWNjZXNzUm9sZTogQWNjZXNzUm9sZUNob2ljZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV0ZURldGFjaGVkSXRlbVNoYXJlT3B0aW9ucyB7XG4gIGl0ZW1TaGFyZUlkOiBMclJlbGF5SWRJbnB1dDtcbiAgaXRlbUtleUlkPzogTHJSZWxheUlkSW5wdXQ7XG59XG4iXX0=
|
|
@@ -9016,17 +9016,28 @@ let ScenarioService = class ScenarioService extends LrService {
|
|
|
9016
9016
|
}
|
|
9017
9017
|
prepareReceiverDirectory(options, receiverSharedKey, assemblyKey) {
|
|
9018
9018
|
return __awaiter(this, void 0, void 0, function* () {
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9019
|
+
if (options.accessRole == AccessRoleChoice.DENY) {
|
|
9020
|
+
// Cryptographic access to item is not required.
|
|
9021
|
+
return {
|
|
9022
|
+
directoryId: options.directoryId,
|
|
9023
|
+
accessRole: options.accessRole,
|
|
9024
|
+
wrappedItemKey: null,
|
|
9025
|
+
sharedCipherData: null,
|
|
9026
|
+
};
|
|
9027
|
+
}
|
|
9028
|
+
else {
|
|
9029
|
+
// TODO this should be batched
|
|
9030
|
+
const directoryKey = yield this.itemService.getDirectoryKey(options.directoryId, options.directoryKeyId);
|
|
9031
|
+
const sharedCipherData = yield this.keyGraph.encryptToString(receiverSharedKey, options.sharedCipherDataClearJson || '');
|
|
9032
|
+
let wrappedItemKey = yield this.keyGraph.encryptToString(receiverSharedKey, directoryKey.jwk.toJSON(true));
|
|
9033
|
+
wrappedItemKey = yield this.keyGraph.encryptToString(assemblyKey, wrappedItemKey);
|
|
9034
|
+
return {
|
|
9035
|
+
directoryId: options.directoryId,
|
|
9036
|
+
accessRole: options.accessRole,
|
|
9037
|
+
wrappedItemKey,
|
|
9038
|
+
sharedCipherData,
|
|
9039
|
+
};
|
|
9040
|
+
}
|
|
9030
9041
|
});
|
|
9031
9042
|
}
|
|
9032
9043
|
prepareCreateReceiver(options, assemblyKey) {
|
|
@@ -10235,7 +10246,7 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
10235
10246
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10236
10247
|
return new LrMutation({
|
|
10237
10248
|
mutation: CreateDirectoryShareMutation,
|
|
10238
|
-
variables: yield this.
|
|
10249
|
+
variables: yield this.prepareCreateItemShareMutation(Object.assign(Object.assign({}, options), { isDirectory: true })),
|
|
10239
10250
|
});
|
|
10240
10251
|
});
|
|
10241
10252
|
}
|
|
@@ -10248,18 +10259,16 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
10248
10259
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10249
10260
|
return new LrMutation({
|
|
10250
10261
|
mutation: CreateFileShareMutation,
|
|
10251
|
-
variables: yield this.
|
|
10262
|
+
variables: yield this.prepareCreateItemShareMutation(Object.assign(Object.assign({}, options), { isDirectory: false })),
|
|
10252
10263
|
});
|
|
10253
10264
|
});
|
|
10254
10265
|
}
|
|
10255
|
-
|
|
10266
|
+
prepareCreateItemShareMutation(options) {
|
|
10256
10267
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10257
10268
|
const { itemId, itemKeyId, tpId, tpSharedKeyId, accessRole, isDirectory, shareType, } = options;
|
|
10258
|
-
console.log('createSharedItemMutation()', itemKeyId);
|
|
10259
10269
|
const itemKey = yield this.keyGraph.getKey(itemKeyId, () => isDirectory
|
|
10260
10270
|
? this.itemService.getDirectoryKeyId(itemId)
|
|
10261
10271
|
: this.itemService.getFileKeyId(itemId));
|
|
10262
|
-
console.log('createSharedItemMutation()', itemKey.id);
|
|
10263
10272
|
const wrappingKey = yield this.keyGraph.getKey(tpSharedKeyId, () => this.getTpCurrentUserSharedKey(tpId).then((res) => res.sharedKey.id));
|
|
10264
10273
|
const wrappedKey = yield this.keyGraph.wrapKey(wrappingKey, itemKey.jwk);
|
|
10265
10274
|
return {
|
|
@@ -10284,7 +10293,7 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
10284
10293
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10285
10294
|
return new LrMutation({
|
|
10286
10295
|
mutation: UpdateDirectoryShareMutation,
|
|
10287
|
-
variables: this.
|
|
10296
|
+
variables: this.prepareUpdateItemShareMutation(options),
|
|
10288
10297
|
});
|
|
10289
10298
|
});
|
|
10290
10299
|
}
|
|
@@ -10297,15 +10306,15 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
10297
10306
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10298
10307
|
return new LrMutation({
|
|
10299
10308
|
mutation: UpdateFileShareMutation,
|
|
10300
|
-
variables: this.
|
|
10309
|
+
variables: this.prepareUpdateItemShareMutation(options),
|
|
10301
10310
|
});
|
|
10302
10311
|
});
|
|
10303
10312
|
}
|
|
10304
|
-
|
|
10305
|
-
const {
|
|
10313
|
+
prepareUpdateItemShareMutation(options) {
|
|
10314
|
+
const { itemShareId, accessRole } = options;
|
|
10306
10315
|
return {
|
|
10307
10316
|
input: {
|
|
10308
|
-
id:
|
|
10317
|
+
id: itemShareId,
|
|
10309
10318
|
accessRole,
|
|
10310
10319
|
},
|
|
10311
10320
|
};
|
|
@@ -10336,7 +10345,7 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
10336
10345
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10337
10346
|
return new LrMutation({
|
|
10338
10347
|
mutation: CompleteDetachedDirectoryShareMutation,
|
|
10339
|
-
variables: yield this.
|
|
10348
|
+
variables: yield this.prepareCompleteDetachedItemShareMutation(Object.assign(Object.assign({}, options), { isDirectory: true })),
|
|
10340
10349
|
});
|
|
10341
10350
|
});
|
|
10342
10351
|
}
|
|
@@ -10349,21 +10358,21 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
10349
10358
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10350
10359
|
return new LrMutation({
|
|
10351
10360
|
mutation: CompleteDetachedFileShareMutation,
|
|
10352
|
-
variables: yield this.
|
|
10361
|
+
variables: yield this.prepareCompleteDetachedItemShareMutation(Object.assign(Object.assign({}, options), { isDirectory: false })),
|
|
10353
10362
|
});
|
|
10354
10363
|
});
|
|
10355
10364
|
}
|
|
10356
|
-
|
|
10365
|
+
prepareCompleteDetachedItemShareMutation(options) {
|
|
10357
10366
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10358
|
-
const {
|
|
10367
|
+
const { itemShareId, itemKeyId, isDirectory } = options;
|
|
10359
10368
|
const itemKey = yield this.keyGraph.getKey(itemKeyId, () => isDirectory
|
|
10360
|
-
? this.itemService.getDirectoryKeyIdFromDirectoryShare(
|
|
10361
|
-
: this.itemService.getFileKeyIdFromFileShare(
|
|
10369
|
+
? this.itemService.getDirectoryKeyIdFromDirectoryShare(itemShareId)
|
|
10370
|
+
: this.itemService.getFileKeyIdFromFileShare(itemShareId));
|
|
10362
10371
|
const rootKey = this.keyService.currentRootKey;
|
|
10363
10372
|
const wrappedKey = yield this.keyGraph.wrapKey(rootKey, itemKey.jwk);
|
|
10364
10373
|
return {
|
|
10365
10374
|
input: {
|
|
10366
|
-
id:
|
|
10375
|
+
id: itemShareId,
|
|
10367
10376
|
keyId: itemKey.id,
|
|
10368
10377
|
wrappingKeyId: rootKey.id,
|
|
10369
10378
|
wrappedKey,
|