construct-hub 0.4.414 → 0.4.416
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +182 -61
- package/.jsii.tabl.json +1 -1
- package/API.md +98 -0
- package/lib/api.d.ts +20 -0
- package/lib/api.js +8 -1
- package/lib/backend/orchestration/index.d.ts +5 -0
- package/lib/backend/orchestration/index.js +5 -3
- package/lib/construct-hub.d.ts +5 -1
- package/lib/construct-hub.js +4 -3
- package/lib/monitoring/index.d.ts +2 -1
- package/lib/monitoring/index.js +18 -1
- package/lib/package-sources/code-artifact.js +1 -1
- package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.bundle/index.js +3 -0
- package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.bundle/index.js.map +2 -2
- package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.js +4 -1
- package/lib/package-sources/npmjs.d.ts +5 -0
- package/lib/package-sources/npmjs.js +5 -3
- package/lib/package-tag/index.js +3 -3
- package/lib/package-tag-group/index.js +2 -2
- package/lib/preload-file/index.js +1 -1
- package/lib/s3/storage.js +1 -1
- package/lib/spdx-license.js +1 -1
- package/package.json +1 -1
package/lib/construct-hub.js
CHANGED
@@ -139,6 +139,7 @@ class ConstructHub extends constructs_1.Construct {
|
|
139
139
|
vpcSubnets,
|
140
140
|
vpcSecurityGroups,
|
141
141
|
feedBuilder,
|
142
|
+
alarmSeverities: props.alarmSeverities,
|
142
143
|
});
|
143
144
|
this.regenerateAllDocumentationPerPackage =
|
144
145
|
orchestration.regenerateAllDocumentationPerPackage;
|
@@ -202,7 +203,7 @@ class ConstructHub extends constructs_1.Construct {
|
|
202
203
|
// Set the base URL that will be used in the RSS/ATOM feed
|
203
204
|
feedBuilder.setConstructHubUrl(webApp.baseUrl);
|
204
205
|
const sources = new constructs_1.Construct(this, 'Sources');
|
205
|
-
const packageSources = (props.packageSources ?? [new package_sources_1.NpmJs()]).map((source) => source.bind(sources, {
|
206
|
+
const packageSources = (props.packageSources ?? [new package_sources_1.NpmJs({ alarmSeverities: props.alarmSeverities })]).map((source) => source.bind(sources, {
|
206
207
|
baseUrl: webApp.baseUrl,
|
207
208
|
denyList,
|
208
209
|
ingestion: this.ingestion,
|
@@ -403,7 +404,7 @@ class ConstructHub extends constructs_1.Construct {
|
|
403
404
|
}
|
404
405
|
exports.ConstructHub = ConstructHub;
|
405
406
|
_a = JSII_RTTI_SYMBOL_1;
|
406
|
-
ConstructHub[_a] = { fqn: "construct-hub.ConstructHub", version: "0.4.
|
407
|
+
ConstructHub[_a] = { fqn: "construct-hub.ConstructHub", version: "0.4.416" };
|
407
408
|
/**
|
408
409
|
* How possibly risky operations (such as doc-generation, which requires
|
409
410
|
* installing the indexed packages in order to trans-literate sample code) are
|
@@ -443,4 +444,4 @@ var Isolation;
|
|
443
444
|
*/
|
444
445
|
Isolation[Isolation["NO_INTERNET_ACCESS"] = 2] = "NO_INTERNET_ACCESS";
|
445
446
|
})(Isolation || (exports.Isolation = Isolation = {}));
|
446
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LWh1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3QtaHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0dBQTJFO0FBQzNFLDZDQUFvRDtBQUVwRCwyQ0FBMkM7QUFFM0MsaURBQTRFO0FBRTVFLHlDQUF5QztBQUN6QywrQ0FBdUQ7QUFHdkQsMkNBQXVDO0FBQ3ZDLHlFQUE0RTtBQUU1RSx1Q0FBZ0Q7QUFFaEQseURBQXFEO0FBQ3JELG1EQUFnRDtBQUNoRCx5REFBcUQ7QUFDckQsMkRBQXdEO0FBQ3hELDJEQUF1RDtBQUN2RCwyREFBNkQ7QUFDN0QsMERBQTZFO0FBQzdFLCtEQUEyRDtBQUMzRCwyREFBdUQ7QUFDdkQsMERBQXVEO0FBQ3ZELHVEQUF5RTtBQUN6RSw2Q0FBMEM7QUFDMUMsNkRBQXlEO0FBRXpELHVEQUEwQztBQUkxQywwQ0FBZ0Q7QUFDaEQsaURBQTZDO0FBQzdDLHFDQU1rQjtBQWtPbEI7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxzQkFBUztJQVV6QyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixRQUEyQixFQUFFO1FBRTdCLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFDRSxLQUFLLENBQUMscUJBQXFCLElBQUksSUFBSTtZQUNuQyxLQUFLLENBQUMsc0JBQXNCLElBQUksSUFBSSxFQUNwQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwSEFBMEgsQ0FDM0gsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUI7WUFDeEUsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsS0FBSyxDQUFDO1FBRVYsTUFBTSxjQUFjLEdBQUcsMEJBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtZQUN4RCxRQUFRLEVBQUUsS0FBSyxDQUFDLGVBQWU7U0FD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O0lBQ0gscUVBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQWpDVyxTQUFTLHlCQUFULFNBQVMsUUFpQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb24gfSBmcm9tICdAYXdzLWNkay9hd3Mtc2VydmljZWNhdGFsb2dhcHByZWdpc3RyeS1hbHBoYSc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgU3RhY2ssIFRhZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjdyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBBbnlQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGNyZWF0ZVJlc3RyaWN0ZWRTZWN1cml0eUdyb3VwcyB9IGZyb20gJy4vX2xpbWl0ZWQtaW50ZXJuZXQtYWNjZXNzJztcbmltcG9ydCB7IEFsYXJtQWN0aW9ucywgRG9tYWluIH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgRGVueUxpc3QsIEluZ2VzdGlvbiB9IGZyb20gJy4vYmFja2VuZCc7XG5pbXBvcnQgeyBEZW55TGlzdFJ1bGUgfSBmcm9tICcuL2JhY2tlbmQvZGVueS1saXN0L2FwaSc7XG5pbXBvcnQgeyBGZWVkQnVpbGRlciB9IGZyb20gJy4vYmFja2VuZC9mZWVkLWJ1aWxkZXInO1xuaW1wb3J0IHsgSW52ZW50b3J5IH0gZnJvbSAnLi9iYWNrZW5kL2ludmVudG9yeSc7XG5pbXBvcnQgeyBMaWNlbnNlTGlzdCB9IGZyb20gJy4vYmFja2VuZC9saWNlbnNlLWxpc3QnO1xuaW1wb3J0IHsgT3JjaGVzdHJhdGlvbiB9IGZyb20gJy4vYmFja2VuZC9vcmNoZXN0cmF0aW9uJztcbmltcG9ydCB7IFBhY2thZ2VTdGF0cyB9IGZyb20gJy4vYmFja2VuZC9wYWNrYWdlLXN0YXRzJztcbmltcG9ydCB7IFJlbGVhc2VOb3RlRmV0Y2hlciB9IGZyb20gJy4vYmFja2VuZC9yZWxlYXNlLW5vdGVzJztcbmltcG9ydCB7IENBVEFMT0dfS0VZLCBTVE9SQUdFX0tFWV9QUkVGSVggfSBmcm9tICcuL2JhY2tlbmQvc2hhcmVkL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBWZXJzaW9uVHJhY2tlciB9IGZyb20gJy4vYmFja2VuZC92ZXJzaW9uLXRyYWNrZXInO1xuaW1wb3J0IHsgQmFja2VuZERhc2hib2FyZCB9IGZyb20gJy4vYmFja2VuZC1kYXNoYm9hcmQnO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gJy4vY29kZWFydGlmYWN0L3JlcG9zaXRvcnknO1xuaW1wb3J0IHsgRG9tYWluUmVkaXJlY3QsIERvbWFpblJlZGlyZWN0U291cmNlIH0gZnJvbSAnLi9kb21haW4tcmVkaXJlY3QnO1xuaW1wb3J0IHsgTW9uaXRvcmluZyB9IGZyb20gJy4vbW9uaXRvcmluZyc7XG5pbXBvcnQgeyBPdmVydmlld0Rhc2hib2FyZCB9IGZyb20gJy4vb3ZlcnZpZXctZGFzaGJvYXJkJztcbmltcG9ydCB7IElQYWNrYWdlU291cmNlIH0gZnJvbSAnLi9wYWNrYWdlLXNvdXJjZSc7XG5pbXBvcnQgeyBOcG1KcyB9IGZyb20gJy4vcGFja2FnZS1zb3VyY2VzJztcbmltcG9ydCB7IFBhY2thZ2VUYWcgfSBmcm9tICcuL3BhY2thZ2UtdGFnJztcbmltcG9ydCB7IFBhY2thZ2VUYWdHcm91cCB9IGZyb20gJy4vcGFja2FnZS10YWctZ3JvdXAnO1xuaW1wb3J0IHsgUHJlbG9hZEZpbGUgfSBmcm9tICcuL3ByZWxvYWQtZmlsZSc7XG5pbXBvcnQgeyBTM1N0b3JhZ2VGYWN0b3J5IH0gZnJvbSAnLi9zMy9zdG9yYWdlJztcbmltcG9ydCB7IFNwZHhMaWNlbnNlIH0gZnJvbSAnLi9zcGR4LWxpY2Vuc2UnO1xuaW1wb3J0IHtcbiAgV2ViQXBwLFxuICBQYWNrYWdlTGlua0NvbmZpZyxcbiAgRmVhdHVyZWRQYWNrYWdlcyxcbiAgRmVhdHVyZUZsYWdzLFxuICBDYXRlZ29yeSxcbn0gZnJvbSAnLi93ZWJhcHAnO1xuaW1wb3J0IHsgSVN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBnZW5lcmF0aW5nIFJTUyBhbmQgQVRPTSBmZWVkIGZvciB0aGUgbGF0ZXN0IHBhY2thZ2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmVlZENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogR2l0aHViIHRva2VuIGZvciBnZW5lcmF0aW5nIHJlbGVhc2Ugbm90ZXMuIFdoZW4gbWlzc2luZyBubyByZWxlYXNlIG5vdGVzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBSU1MvQVRPTSBmZWVkXG4gICAqL1xuICByZWFkb25seSBnaXRodWJUb2tlblNlY3JldD86IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIFRpdGxlIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBmZWVkXG4gICAqL1xuICByZWFkb25seSBmZWVkVGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGRlc2NyaXB0aW9uIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBmZWVkXG4gICAqL1xuICByZWFkb25seSBmZWVkRGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIGBDb25zdHJ1Y3RIdWJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdEh1YlByb3BzIHtcbiAgLyoqXG4gICAqIENvbm5lY3QgdGhlIGh1YiB0byBhIGRvbWFpbiAocmVxdWlyZXMgYSBob3N0ZWQgem9uZSBhbmQgYSBjZXJ0aWZpY2F0ZSkuXG4gICAqL1xuICByZWFkb25seSBkb21haW4/OiBEb21haW47XG5cbiAgLyoqXG4gICAqIEFjdGlvbnMgdG8gcGVyZm9ybSB3aGVuIGFsYXJtcyBhcmUgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1BY3Rpb25zPzogQWxhcm1BY3Rpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNvbXB1dGUgZW52aXJvbm1lbnRzIGZvciBzZW5zaXRpdmUgdGFza3MgKHdoaWNoIG9wZXJhdGUgb25cbiAgICogdW4tdHJ1c3RlZCBjb21wbGV4IGRhdGEsIHN1Y2ggYXMgdGhlIHRyYW5zbGl0ZXJhdG9yLCB3aGljaCBvcGVyYXRlcyB3aXRoXG4gICAqIGV4dGVybmFsbHktc291cmNlZCBucG0gcGFja2FnZSB0YXJiYWxscykgc2hvdWxkIHJ1biBpbiBuZXR3b3JrLWlzb2xhdGVkXG4gICAqIGVudmlyb25tZW50cy4gVGhpcyBpbXBsaWVzIHRoZSBjcmVhdGlvbiBvZiBhZGRpdG9uYWwgcmVzb3VyY2VzLCBpbmNsdWRpbmc6XG4gICAqXG4gICAqIC0gQSBWUEMgd2l0aCBvbmx5IGlzb2xhdGVkIHN1Ym5ldHMuXG4gICAqIC0gVlBDIEVuZHBvaW50cyAoQ2xvdWRXYXRjaCBMb2dzLCBDb2RlQXJ0aWZhY3QsIENvZGVBcnRpZmFjdCBBUEksIFMzLCAuLi4pXG4gICAqIC0gQSBDb2RlQXJ0aWZhY3QgUmVwb3NpdG9yeSB3aXRoIGFuIGV4dGVybmFsIGNvbm5lY3Rpb24gdG8gbnBtanMuY29tXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBzZW5zaXRpdmVUYXNrSXNvbGF0aW9uIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlU2Vuc2l0aXZlVGFza3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNvbXB1dGUgZW52aXJvbm1lbnRzIGZvciBzZW5zaXRpdmUgdGFza3MgKHdoaWNoIG9wZXJhdGUgb25cbiAgICogdW4tdHJ1c3RlZCBjb21wbGV4IGRhdGEsIHN1Y2ggYXMgdGhlIHRyYW5zbGl0ZXJhdG9yLCB3aGljaCBvcGVyYXRlcyB3aXRoXG4gICAqIGV4dGVybmFsbHktc291cmNlZCBucG0gcGFja2FnZSB0YXJiYWxscykgc2hvdWxkIHJ1biBpbiBuZXR3b3JrLWlzb2xhdGVkXG4gICAqIGVudmlyb25tZW50cy4gVGhpcyBpbXBsaWVzIHRoZSBjcmVhdGlvbiBvZiBhZGRpdG9uYWwgcmVzb3VyY2VzLCBpbmNsdWRpbmc6XG4gICAqXG4gICAqIC0gQSBWUEMgd2l0aCBvbmx5IGlzb2xhdGVkIHN1Ym5ldHMuXG4gICAqIC0gVlBDIEVuZHBvaW50cyAoQ2xvdWRXYXRjaCBMb2dzLCBDb2RlQXJ0aWZhY3QsIENvZGVBcnRpZmFjdCBBUEksIFMzLCAuLi4pXG4gICAqIC0gQSBDb2RlQXJ0aWZhY3QgUmVwb3NpdG9yeSB3aXRoIGFuIGV4dGVybmFsIGNvbm5lY3Rpb24gdG8gbnBtanMuY29tXG4gICAqXG4gICAqIEBkZWZhdWx0IElzb2xhdGlvbi5OT19JTlRFUk5FVF9BQ0NFU1NcbiAgICovXG4gIHJlYWRvbmx5IHNlbnNpdGl2ZVRhc2tJc29sYXRpb24/OiBJc29sYXRpb247XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHRvIHJldGFpbiBDbG91ZFdhdGNoIGxvZ3MgZm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgUmV0ZW50aW9uRGF5cy5URU5fWUVBUlNcbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IFJldGVudGlvbkRheXM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBDbG91ZFdhdGNoIGRhc2hib2FyZCB0aGF0IHJlcHJlc2VudHMgdGhlIGhlYWx0aCBvZiBiYWNrZW5kXG4gICAqIHN5c3RlbXMuXG4gICAqL1xuICByZWFkb25seSBiYWNrZW5kRGFzaGJvYXJkTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2VzIHRvIGJsb2NrIGZyb20gdGhlIGNvbnN0cnVjdCBodWIuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBkZW55TGlzdD86IERlbnlMaXN0UnVsZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBzb3VyY2VzIHRvIHJlZ2lzdGVyIHdpdGggdGhpcyBDb25zdHJ1Y3RIdWIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBzdGFuZGFyZCBucG1qcy5jb20gcGFja2FnZSBzb3VyY2Ugd2lsbCBiZSBjb25maWd1cmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVNvdXJjZXM/OiBJUGFja2FnZVNvdXJjZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxsb3dlZCBsaWNlbnNlcyBmb3IgcGFja2FnZXMgaW5kZXhlZCBieSB0aGlzIGluc3RhbmNlIG9mIENvbnN0cnVjdEh1Yi5cbiAgICpcbiAgICogQGRlZmF1bHQgWy4uLlNwZHhMaWNlbnNlLmFwYWNoZSgpLC4uLlNwZHhMaWNlbnNlLmJzZCgpLC4uLlNwZHhMaWNlbnNlLmNkZGwoKSwuLi5TcGR4TGljZW5zZS5lcGwoKSxTcGR4TGljZW5zZS5JU0MsLi4uU3BkeExpY2Vuc2UubWl0KCksU3BkeExpY2Vuc2UuTVBMXzJfMF1cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRMaWNlbnNlcz86IFNwZHhMaWNlbnNlW107XG5cbiAgLyoqXG4gICAqIFdoZW4gdXNpbmcgYSBDb2RlQXJ0aWZhY3QgcGFja2FnZSBzb3VyY2UsIGl0IGlzIG9mdGVuIGRlc2lyYWJsZSB0byBoYXZlXG4gICAqIENvbnN0cnVjdEh1YiBwcm92aXNpb24gaXQncyBpbnRlcm5hbCBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yeSBpbiB0aGUgc2FtZVxuICAgKiBDb2RlQXJ0aWZhY3QgZG9tYWluLCBhbmQgdG8gY29uZmlndXJlIHRoZSBwYWNrYWdlIHNvdXJjZSByZXBvc2l0b3J5IGFzIGFuXG4gICAqIHVwc3RyZWFtIG9mIHRoZSBpbnRlcm5hbCByZXBvc2l0b3J5LiBUaGlzIHdheSwgYWxsIHBhY2thZ2VzIGluIHRoZSBzb3VyY2VcbiAgICogYXJlIGF2YWlsYWJsZSB0byBDb25zdHJ1Y3RIdWIncyBiYWNrZW5kIHByb2Nlc3NpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVBcnRpZmFjdERvbWFpbj86IENvZGVBcnRpZmFjdERvbWFpblByb3BzO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBjdXN0b20gcGFja2FnZSBwYWdlIGxpbmtzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZUxpbmtzPzogUGFja2FnZUxpbmtDb25maWdbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgY3VzdG9tIHBhY2thZ2UgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVRhZ3M/OiBQYWNrYWdlVGFnW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIGdyb3VwaW5nIGN1c3RvbSBwYWNrYWdlIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VUYWdHcm91cHM/OiBQYWNrYWdlVGFnR3JvdXBbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgcGFja2FnZXMgdG8gZmVhdHVyZSBvbiB0aGUgaG9tZSBwYWdlLlxuICAgKiBAZGVmYXVsdCAtIERpc3BsYXkgdGhlIDEwIG1vc3QgcmVjZW50bHkgdXBkYXRlZCBwYWNrYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgZmVhdHVyZWRQYWNrYWdlcz86IEZlYXR1cmVkUGFja2FnZXM7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBmZWF0dXJlIGZsYWdzIGZvciB0aGUgd2ViIGFwcC5cbiAgICovXG4gIHJlYWRvbmx5IGZlYXR1cmVGbGFncz86IEZlYXR1cmVGbGFncztcblxuICAvKipcbiAgICogQ29uZmlndXJlIHdoZXRoZXIgb3Igbm90IHRoZSBiYWNrZW5kIHNob3VsZCBwZXJpb2RpY2FsbHkgcXVlcnkgTlBNXG4gICAqIGZvciB0aGUgbnVtYmVyIG9mIGRvd25sb2FkcyBhIHBhY2thZ2UgaGFzIGluIHRoZSBwYXN0IHdlZWssIGFuZFxuICAgKiBkaXNwbGF5IGRvd25sb2FkIGNvdW50cyBvbiB0aGUgd2ViIGFwcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGlmIHBhY2thZ2VTb3VyY2VzIGlzIG5vdCBzcGVjaWZpZWQgKHRoZSBkZWZhdWx0cyBhcmVcbiAgICogdXNlZCksIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgZmV0Y2hQYWNrYWdlU3RhdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCcm93c2UgY2F0ZWdvcmllcy4gRWFjaCBjYXRlZ29yeSB3aWxsIGFwcGVhciBpbiB0aGUgaG9tZSBwYWdlIGFzIGEgYnV0dG9uXG4gICAqIHdpdGggYSBsaW5rIHRvIHRoZSByZWxldmFudCBzZWFyY2ggcXVlcnkuXG4gICAqL1xuICByZWFkb25seSBjYXRlZ29yaWVzPzogQ2F0ZWdvcnlbXTtcblxuICAvKipcbiAgICogV2lyZSBjb25zdHJ1Y3QgaHViIHRvIHVzZSB0aGUgZmFpbG92ZXIgc3RvcmFnZSBidWNrZXRzLlxuICAgKlxuICAgKiBEbyBub3QgYWN0aXZhdGUgdGhpcyBwcm9wZXJ0eSB1bnRpbCB5b3UndmUgcG9wdWxhdGVkIHlvdXIgZmFpbG92ZXIgYnVja2V0c1xuICAgKiB3aXRoIHRoZSBuZWNlc3NhcnkgZGF0YS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9jb25zdHJ1Y3QtaHViL2Jsb2IvZGV2L2RvY3Mvb3BlcmF0b3ItcnVuYm9vay5tZCNzdG9yYWdlLWRpc2FzdGVyXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmYWlsb3ZlclN0b3JhZ2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgZnJlcXVlbnRseSBhbGwgcGFja2FnZXMgc2hvdWxkIGdldCBmdWxseSByZXByb2Nlc3NlZC5cbiAgICpcbiAgICogU2VlIHRoZSBvcGVyYXRvciBydW5ib29rIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlcHJvY2Vzc2luZy5cbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9jb25zdHJ1Y3QtaHViL2Jsb2IvbWFpbi9kb2NzL29wZXJhdG9yLXJ1bmJvb2subWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBuZXZlclxuICAgKi9cbiAgcmVhZG9ubHkgcmVwcm9jZXNzRnJlcXVlbmN5PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgdmVyc2lvbnMgdGhhdCBoYXZlIGJlZW4gcHVibGlzaGVkIGJlZm9yZSB0aGlzIHRpbWUgd2luZG93IHdpbGwgbm90IGJlIHJlcHJvY2Vzc2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5kYXlzKDkwKVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwcm9jZXNzQWdlPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZG9tYWlucyB3aGljaCB3aWxsIGJlIHNldCB1cCB0byByZWRpcmVjdCB0byB0aGUgcHJpbWFyeVxuICAgKiBjb25zdHJ1Y3QgaHViIGRvbWFpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxEb21haW5zPzogRG9tYWluUmVkaXJlY3RTb3VyY2VbXTtcblxuICAvKipcbiAgICogSmF2YXNjcmlwdCB0byBydW4gb24gd2ViYXBwIGJlZm9yZSBhcHAgbG9hZHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBjcmVhdGUgYW4gZW1wdHkgZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJlbG9hZFNjcmlwdD86IFByZWxvYWRGaWxlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gQXBwUmVnaXN0cnkgYXBwbGljYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGFjayBjb250YWluaW5nXG4gICAqIHRoaXMgY29uc3RydWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhcHBSZWdpc3RyeUFwcGxpY2F0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgZ2VuZXJhdGluZyBSU1MvQXRvbSBmZWVkcyB3aXRoIHRoZSBsYXRlc3QgcGFja2FnZXMuIElmIHRoZSB2YWx1ZSBpcyBtaXNzaW5nXG4gICAqIHRoZSBnZW5lcmF0ZWQgUlNTL0FUT00gZmVlZCB3b3VsZCBub3QgY29udGFpbiByZWxlYXNlIG5vdGVzXG4gICAqL1xuICByZWFkb25seSBmZWVkQ29uZmlndXJhdGlvbj86IEZlZWRDb25maWd1cmF0aW9uO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIHBlcnRhaW5pbmcgdG8gYW4gZXhpc3RpbmcgQ29kZUFydGlmYWN0IERvbWFpbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQXJ0aWZhY3REb21haW5Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQ29kZUFydGlmYWN0IGRvbWFpbi5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW55IHVwc3RyZWFtIHJlcG9zaXRvcmllcyBpbiB0aGlzIENvZGVBcnRpZmFjdCBkb21haW4gdGhhdCBzaG91bGQgYmVcbiAgICogY29uZmlndXJlZCBvbiB0aGUgaW50ZXJuYWwgQ29kZUFydGlmYWN0IHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSB1cHN0cmVhbXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgSHViLlxuICovXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0SHViIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgaWFtLklHcmFudGFibGUge1xuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIG9wZXJhdG9ycyBjYW4gdXNlIHRvIHJlcHJvY2VzcyBhIHNwZWNpZmljIHBhY2thZ2UgdmVyc2lvblxuICAgKiB0aHJvdWdoIHRoZSBiYWNrZW5kIGRhdGEgcGlwZWxpbmUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVnZW5lcmF0ZUFsbERvY3VtZW50YXRpb25QZXJQYWNrYWdlOiBJU3RhdGVNYWNoaW5lO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5nZXN0aW9uOiBJbmdlc3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgbW9uaXRvcmluZzogTW9uaXRvcmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDb25zdHJ1Y3RIdWJQcm9wcyA9IHt9XG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5pc29sYXRlU2Vuc2l0aXZlVGFza3MgIT0gbnVsbCAmJlxuICAgICAgcHJvcHMuc2Vuc2l0aXZlVGFza0lzb2xhdGlvbiAhPSBudWxsXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdTdXBwbHlpbmcgYm90aCBpc29sYXRlU2Vuc2l0aXZlVGFza3MgYW5kIHNlbnNpdGl2ZVRhc2tJc29sYXRpb24gaXMgbm90IHN1cHBvcnRlZC4gUmVtb3ZlIHVzYWdlIG9mIGlzb2xhdGVTZW5zaXRpdmVUYXNrcy4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZEZldGNoUmVsZWFzZU5vdGVzID0gcHJvcHMuZmVlZENvbmZpZ3VyYXRpb24/LmdpdGh1YlRva2VuU2VjcmV0XG4gICAgICA/IHRydWVcbiAgICAgIDogZmFsc2U7XG5cbiAgICBjb25zdCBzdG9yYWdlRmFjdG9yeSA9IFMzU3RvcmFnZUZhY3RvcnkuZ2V0T3JDcmVhdGUodGhpcywge1xuICAgICAgZmFpbG92ZXI6IHByb3BzLmZhaWxvdmVyU3RvcmFnZSxcbiAgICB9KTtcblxuICAgIHRoaXMubW9uaXRvcmluZyA9IG5ldyBNb25pdG9yaW5nKHRoaXMsICdNb25pdG9yaW5nJywge1xuICAgICAgYWxhcm1BY3Rpb25zOiBwcm9wcy5hbGFybUFjdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBvdmVydmlld0Rhc2hib2FyZCA9IG5ldyBPdmVydmlld0Rhc2hib2FyZCh0aGlzLCAnT3ZlcnZpZXdEYXNoYm9hcmQnLCB7XG4gICAgICBsYW1iZGFTZXJ2aWNlQWxhcm1UaHJlc2hvbGQ6IDcwLFxuICAgICAgZGFzaGJvYXJkTmFtZTogcHJvcHMuYmFja2VuZERhc2hib2FyZE5hbWVcbiAgICAgICAgPyBgJHtwcm9wcy5iYWNrZW5kRGFzaGJvYXJkTmFtZX0tb3ZlcnZpZXdgXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGFja2FnZURhdGEgPSBzdG9yYWdlRmFjdG9yeS5uZXdCdWNrZXQodGhpcywgJ1BhY2thZ2VEYXRhJywge1xuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICBlbmNyeXB0aW9uOiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICBsaWZlY3ljbGVSdWxlczogW1xuICAgICAgICAvLyBBYm9ydCBtdWx0aS1wYXJ0IHVwbG9hZHMgYWZ0ZXIgMSBkYXlcbiAgICAgICAgeyBhYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWRBZnRlcjogRHVyYXRpb24uZGF5cygxKSB9LFxuICAgICAgICAvLyBUcmFuc2l0aW9uIG5vbi1jdXJyZW50IG9iamVjdCB2ZXJzaW9ucyB0byBJQSBhZnRlciAxIG1vbnRoXG4gICAgICAgIHtcbiAgICAgICAgICBub25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHN0b3JhZ2VDbGFzczogczMuU3RvcmFnZUNsYXNzLklORlJFUVVFTlRfQUNDRVNTLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uQWZ0ZXI6IER1cmF0aW9uLmRheXMoMzEpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICAvLyBQZXJtYW5lbnRseSBkZWxldGUgbm9uLWN1cnJlbnQgb2JqZWN0IHZlcnNpb25zIGFmdGVyIDMgbW9udGhzXG4gICAgICAgIHtcbiAgICAgICAgICBub25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoOTApLFxuICAgICAgICAgIGV4cGlyZWRPYmplY3REZWxldGVNYXJrZXI6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFBlcm1hbmVudGx5IGRlbGV0ZSBub24tY3VycmVudCB2ZXJzaW9ucyBvZiBjYXRhbG9nLmpzb24gZWFybGllclxuICAgICAgICB7IG5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cyg3KSwgcHJlZml4OiBDQVRBTE9HX0tFWSB9LFxuICAgICAgXSxcbiAgICAgIHZlcnNpb25lZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlzb2xhdGlvbiA9XG4gICAgICBwcm9wcy5zZW5zaXRpdmVUYXNrSXNvbGF0aW9uID8/XG4gICAgICAocHJvcHMuaXNvbGF0ZVNlbnNpdGl2ZVRhc2tzXG4gICAgICAgID8gSXNvbGF0aW9uLk5PX0lOVEVSTkVUX0FDQ0VTU1xuICAgICAgICA6IElzb2xhdGlvbi5VTkxJTUlURURfSU5URVJORVRfQUNDRVNTKTtcblxuICAgIC8vIENyZWF0ZSBhbiBpbnRlcm5hbCBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yeSBpZiB3ZSBydW4gaW4gbmV0d29yay1jb250cm9sbGVkIG1vZGUsIG9yIGlmIGEgZG9tYWluIGlzIHByb3ZpZGVkLlxuICAgIGNvbnN0IGNvZGVBcnRpZmFjdCA9XG4gICAgICBpc29sYXRpb24gPT09IElzb2xhdGlvbi5OT19JTlRFUk5FVF9BQ0NFU1MgfHxcbiAgICAgICAgcHJvcHMuY29kZUFydGlmYWN0RG9tYWluICE9IG51bGxcbiAgICAgICAgPyBuZXcgUmVwb3NpdG9yeSh0aGlzLCAnQ29kZUFydGlmYWN0Jywge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUHJveHkgdG8gbnBtanMuY29tIGZvciBDb25zdHJ1Y3RIdWInLFxuICAgICAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmNvZGVBcnRpZmFjdERvbWFpbj8ubmFtZSxcbiAgICAgICAgICBkb21haW5FeGlzdHM6IHByb3BzLmNvZGVBcnRpZmFjdERvbWFpbiAhPSBudWxsLFxuICAgICAgICAgIHVwc3RyZWFtczogcHJvcHMuY29kZUFydGlmYWN0RG9tYWluPy51cHN0cmVhbXMsXG4gICAgICAgIH0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHsgdnBjLCB2cGNFbmRwb2ludHMsIHZwY1N1Ym5ldHMsIHZwY1NlY3VyaXR5R3JvdXBzIH0gPSB0aGlzLmNyZWF0ZVZwYyhcbiAgICAgIGlzb2xhdGlvbixcbiAgICAgIGNvZGVBcnRpZmFjdFxuICAgICk7XG5cbiAgICBjb25zdCBkZW55TGlzdCA9IG5ldyBEZW55TGlzdCh0aGlzLCAnRGVueUxpc3QnLCB7XG4gICAgICBydWxlczogcHJvcHMuZGVueUxpc3QgPz8gW10sXG4gICAgICBwYWNrYWdlRGF0YUJ1Y2tldDogcGFja2FnZURhdGEsXG4gICAgICBwYWNrYWdlRGF0YUtleVByZWZpeDogU1RPUkFHRV9LRVlfUFJFRklYLFxuICAgICAgbW9uaXRvcmluZzogdGhpcy5tb25pdG9yaW5nLFxuICAgICAgb3ZlcnZpZXdEYXNoYm9hcmQ6IG92ZXJ2aWV3RGFzaGJvYXJkLFxuICAgIH0pO1xuXG4gICAgLy8gZGlzYWJsZSBmZXRjaGluZyBwYWNrYWdlIHN0YXRzIGJ5IGRlZmF1bHQgaWYgYSBkaWZmZXJlbnQgcGFja2FnZVxuICAgIC8vIHNvdXJjZSBpcyBjb25maWd1cmVkXG4gICAgY29uc3QgZmV0Y2hQYWNrYWdlU3RhdHMgPVxuICAgICAgcHJvcHMuZmV0Y2hQYWNrYWdlU3RhdHMgPz8gKHByb3BzLnBhY2thZ2VTb3VyY2VzID8gZmFsc2UgOiB0cnVlKTtcblxuICAgIGxldCBwYWNrYWdlU3RhdHM6IFBhY2thZ2VTdGF0cyB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzdGF0c0tleSA9ICdzdGF0cy5qc29uJztcbiAgICBpZiAoZmV0Y2hQYWNrYWdlU3RhdHMpIHtcbiAgICAgIHBhY2thZ2VTdGF0cyA9IG5ldyBQYWNrYWdlU3RhdHModGhpcywgJ1N0YXRzJywge1xuICAgICAgICBidWNrZXQ6IHBhY2thZ2VEYXRhLFxuICAgICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICAgIGxvZ1JldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uLFxuICAgICAgICBvYmplY3RLZXk6IHN0YXRzS2V5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyc2lvblRyYWNrZXIgPSBuZXcgVmVyc2lvblRyYWNrZXIodGhpcywgJ1ZlcnNpb25UcmFja2VyJywge1xuICAgICAgYnVja2V0OiBwYWNrYWdlRGF0YSxcbiAgICAgIG1vbml0b3Jpbmc6IHRoaXMubW9uaXRvcmluZyxcbiAgICAgIGxvZ1JldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZmVlZEJ1aWxkZXIgPSBuZXcgRmVlZEJ1aWxkZXIodGhpcywgJ0ZlZWRCdWlsZGVyJywge1xuICAgICAgYnVja2V0OiBwYWNrYWdlRGF0YSxcbiAgICAgIG92ZXJ2aWV3RGFzaGJvYXJkLFxuICAgICAgZmVlZERlc2NyaXB0aW9uOiBwcm9wcy5mZWVkQ29uZmlndXJhdGlvbj8uZmVlZERlc2NyaXB0aW9uLFxuICAgICAgZmVlZFRpdGxlOiBwcm9wcy5mZWVkQ29uZmlndXJhdGlvbj8uZmVlZFRpdGxlLFxuICAgICAgbW9uaXRvcmluZzogdGhpcy5tb25pdG9yaW5nLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3JjaGVzdHJhdGlvbiA9IG5ldyBPcmNoZXN0cmF0aW9uKHRoaXMsICdPcmNoZXN0cmF0aW9uJywge1xuICAgICAgYnVja2V0OiBwYWNrYWdlRGF0YSxcbiAgICAgIGNvZGVBcnRpZmFjdCxcbiAgICAgIGRlbnlMaXN0LFxuICAgICAgbG9nUmV0ZW50aW9uOiBwcm9wcy5sb2dSZXRlbnRpb24sXG4gICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICBvdmVydmlld0Rhc2hib2FyZDogb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgICB2cGMsXG4gICAgICB2cGNFbmRwb2ludHMsXG4gICAgICB2cGNTdWJuZXRzLFxuICAgICAgdnBjU2VjdXJpdHlHcm91cHMsXG4gICAgICBmZWVkQnVpbGRlcixcbiAgICB9KTtcbiAgICB0aGlzLnJlZ2VuZXJhdGVBbGxEb2N1bWVudGF0aW9uUGVyUGFja2FnZSA9XG4gICAgICBvcmNoZXN0cmF0aW9uLnJlZ2VuZXJhdGVBbGxEb2N1bWVudGF0aW9uUGVyUGFja2FnZTtcblxuICAgIC8vIHJlYnVpbGQgdGhlIGNhdGFsb2cgd2hlbiB0aGUgZGVueSBsaXN0IGNoYW5nZXMuXG4gICAgZGVueUxpc3QucHJ1bmUub25DaGFuZ2VJbnZva2Uob3JjaGVzdHJhdGlvbi5jYXRhbG9nQnVpbGRlci5mdW5jdGlvbik7XG5cbiAgICBjb25zdCBwYWNrYWdlVGFnc1NlcmlhbGl6ZWQgPVxuICAgICAgcHJvcHMucGFja2FnZVRhZ3M/Lm1hcCgoY29uZmlnKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIGNvbmRpdGlvbjogY29uZmlnLmNvbmRpdGlvbi5iaW5kKCksXG4gICAgICAgIH07XG4gICAgICB9KSA/PyBbXTtcblxuICAgIGxldCByZWxlYXNlTm90ZXM7XG4gICAgaWYgKHNob3VsZEZldGNoUmVsZWFzZU5vdGVzKSB7XG4gICAgICByZWxlYXNlTm90ZXMgPSBuZXcgUmVsZWFzZU5vdGVGZXRjaGVyKHRoaXMsICdSZWxlYXNlTm90ZXMnLCB7XG4gICAgICAgIGJ1Y2tldDogcGFja2FnZURhdGEsXG4gICAgICAgIGdpdEh1YkNyZWRlbnRpYWxzU2VjcmV0OiBwcm9wcy5mZWVkQ29uZmlndXJhdGlvbj8uZ2l0aHViVG9rZW5TZWNyZXQsXG4gICAgICAgIGZlZWRCdWlsZGVyLFxuICAgICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICAgIG92ZXJ2aWV3RGFzaGJvYXJkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5pbmdlc3Rpb24gPSBuZXcgSW5nZXN0aW9uKHRoaXMsICdJbmdlc3Rpb24nLCB7XG4gICAgICBidWNrZXQ6IHBhY2thZ2VEYXRhLFxuICAgICAgY29kZUFydGlmYWN0LFxuICAgICAgb3JjaGVzdHJhdGlvbixcbiAgICAgIGxvZ1JldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uLFxuICAgICAgbW9uaXRvcmluZzogdGhpcy5tb25pdG9yaW5nLFxuICAgICAgcGFja2FnZUxpbmtzOiBwcm9wcy5wYWNrYWdlTGlua3MsXG4gICAgICBwYWNrYWdlVGFnczogcGFja2FnZVRhZ3NTZXJpYWxpemVkLFxuICAgICAgcmVwcm9jZXNzRnJlcXVlbmN5OiBwcm9wcy5yZXByb2Nlc3NGcmVxdWVuY3ksXG4gICAgICByZXByb2Nlc3NBZ2U6IHByb3BzLnJlcHJvY2Vzc0FnZSxcbiAgICAgIHJlbGVhc2VOb3Rlc0ZldGNoUXVldWU6IHJlbGVhc2VOb3Rlcz8ucXVldWUsXG4gICAgICBvdmVydmlld0Rhc2hib2FyZDogb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgfSk7XG5cbiAgICBjb25zdCBsaWNlbnNlTGlzdCA9IG5ldyBMaWNlbnNlTGlzdCh0aGlzLCAnTGljZW5zZUxpc3QnLCB7XG4gICAgICBsaWNlbnNlczogcHJvcHMuYWxsb3dlZExpY2Vuc2VzID8/IFtcbiAgICAgICAgLi4uU3BkeExpY2Vuc2UuYXBhY2hlKCksXG4gICAgICAgIC4uLlNwZHhMaWNlbnNlLmJzZCgpLFxuICAgICAgICAuLi5TcGR4TGljZW5zZS5jZGRsKCksXG4gICAgICAgIC4uLlNwZHhMaWNlbnNlLmVwbCgpLFxuICAgICAgICBTcGR4TGljZW5zZS5JU0MsXG4gICAgICAgIC4uLlNwZHhMaWNlbnNlLm1pdCgpLFxuICAgICAgICBTcGR4TGljZW5zZS5NUExfMl8wLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdlYkFwcCA9IG5ldyBXZWJBcHAodGhpcywgJ1dlYkFwcCcsIHtcbiAgICAgIGRvbWFpbjogcHJvcHMuZG9tYWluLFxuICAgICAgbW9uaXRvcmluZzogdGhpcy5tb25pdG9yaW5nLFxuICAgICAgcGFja2FnZURhdGEsXG4gICAgICBwYWNrYWdlTGlua3M6IHByb3BzLnBhY2thZ2VMaW5rcyxcbiAgICAgIHBhY2thZ2VUYWdzOiBwYWNrYWdlVGFnc1NlcmlhbGl6ZWQsXG4gICAgICBwYWNrYWdlVGFnR3JvdXBzOiBwcm9wcy5wYWNrYWdlVGFnR3JvdXBzLFxuICAgICAgZmVhdHVyZWRQYWNrYWdlczogcHJvcHMuZmVhdHVyZWRQYWNrYWdlcyxcbiAgICAgIHBhY2thZ2VTdGF0cyxcbiAgICAgIGZlYXR1cmVGbGFnczogcHJvcHMuZmVhdHVyZUZsYWdzLFxuICAgICAgY2F0ZWdvcmllczogcHJvcHMuY2F0ZWdvcmllcyxcbiAgICAgIHByZWxvYWRTY3JpcHQ6IHByb3BzLnByZWxvYWRTY3JpcHQsXG4gICAgICBvdmVydmlld0Rhc2hib2FyZDogb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgICBpbmNsdWRlRmVlZExpbms6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBTZXQgdGhlIGJhc2UgVVJMIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBSU1MvQVRPTSBmZWVkXG4gICAgZmVlZEJ1aWxkZXIuc2V0Q29uc3RydWN0SHViVXJsKHdlYkFwcC5iYXNlVXJsKTtcblxuICAgIGNvbnN0IHNvdXJjZXMgPSBuZXcgQ29uc3RydWN0KHRoaXMsICdTb3VyY2VzJyk7XG4gICAgY29uc3QgcGFja2FnZVNvdXJjZXMgPSAocHJvcHMucGFja2FnZVNvdXJjZXMgPz8gW25ldyBOcG1KcygpXSkubWFwKFxuICAgICAgKHNvdXJjZSkgPT5cbiAgICAgICAgc291cmNlLmJpbmQoc291cmNlcywge1xuICAgICAgICAgIGJhc2VVcmw6IHdlYkFwcC5iYXNlVXJsLFxuICAgICAgICAgIGRlbnlMaXN0LFxuICAgICAgICAgIGluZ2VzdGlvbjogdGhpcy5pbmdlc3Rpb24sXG4gICAgICAgICAgbGljZW5zZUxpc3QsXG4gICAgICAgICAgbW9uaXRvcmluZzogdGhpcy5tb25pdG9yaW5nLFxuICAgICAgICAgIHF1ZXVlOiB0aGlzLmluZ2VzdGlvbi5xdWV1ZSxcbiAgICAgICAgICByZXBvc2l0b3J5OiBjb2RlQXJ0aWZhY3QsXG4gICAgICAgICAgb3ZlcnZpZXdEYXNoYm9hcmQ6IG92ZXJ2aWV3RGFzaGJvYXJkLFxuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBjb25zdCBpbnZlbnRvcnkgPSBuZXcgSW52ZW50b3J5KHRoaXMsICdJbnZlbnRvcnlDYW5hcnknLCB7XG4gICAgICBidWNrZXQ6IHBhY2thZ2VEYXRhLFxuICAgICAgbG9nUmV0ZW50aW9uOiBwcm9wcy5sb2dSZXRlbnRpb24sXG4gICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICBvdmVydmlld0Rhc2hib2FyZDogb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgfSk7XG5cbiAgICBuZXcgQmFja2VuZERhc2hib2FyZCh0aGlzLCAnQmFja2VuZERhc2hib2FyZCcsIHtcbiAgICAgIHBhY2thZ2VEYXRhLFxuICAgICAgZGFzaGJvYXJkTmFtZTogcHJvcHMuYmFja2VuZERhc2hib2FyZE5hbWUsXG4gICAgICBwYWNrYWdlU291cmNlcyxcbiAgICAgIGluZ2VzdGlvbjogdGhpcy5pbmdlc3Rpb24sXG4gICAgICBpbnZlbnRvcnksXG4gICAgICBvcmNoZXN0cmF0aW9uLFxuICAgICAgZGVueUxpc3QsXG4gICAgICBwYWNrYWdlU3RhdHMsXG4gICAgICB2ZXJzaW9uVHJhY2tlcixcbiAgICAgIHJlbGVhc2VOb3RlcyxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBkb21haW4gcmVkaXJlY3RzXG4gICAgaWYgKHByb3BzLmRvbWFpbikge1xuICAgICAgZm9yIChjb25zdCByZWRpcmN0U291cmNlIG9mIHByb3BzLmFkZGl0aW9uYWxEb21haW5zID8/IFtdKSB7XG4gICAgICAgIG5ldyBEb21haW5SZWRpcmVjdChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGBSZWRpcmVjdC0ke3JlZGlyY3RTb3VyY2UuaG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNvdXJjZTogcmVkaXJjdFNvdXJjZSxcbiAgICAgICAgICAgIHRhcmdldERvbWFpbk5hbWU6IHByb3BzLmRvbWFpbj8uem9uZS56b25lTmFtZSxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9wcy5hZGRpdGlvbmFsRG9tYWlucyAmJiBwcm9wcy5hZGRpdGlvbmFsRG9tYWlucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnQ2Fubm90IHNwZWNpZnkgXCJkb21haW5SZWRpcmVjdHNcIiBpZiBhIGRvbWFpbiBpcyBub3Qgc3BlY2lmaWVkJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5hcHBSZWdpc3RyeUFwcGxpY2F0aW9uID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IGFwcGxpY2F0aW9uID0gbmV3IEFwcGxpY2F0aW9uKHRoaXMsICdBcHBsaWNhdGlvbicsIHtcbiAgICAgICAgYXBwbGljYXRpb25OYW1lOiAnQ29uc3RydWN0SHViJyxcbiAgICAgIH0pO1xuICAgICAgYXBwbGljYXRpb24uYXNzb2NpYXRlQXBwbGljYXRpb25XaXRoU3RhY2soU3RhY2sub2YodGhpcykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaGlnaC1zZXZlcml0eSBhbGFybXMgZnJvbSB0aGlzIENvbnN0cnVjdEh1YiBpbnN0YW5jZS5cbiAgICogVGhlc2Ugd2FycmFudCBpbW1lZGlhdGUgYXR0ZW50aW9uIGFzIHRoZXkgYXJlIGluZGljYXRpdmUgb2YgYSBzeXN0ZW0gaGVhbHRoXG4gICAqIGlzc3VlLlxuICAgKi9cbiAgcHVibGljIGdldCBoaWdoU2V2ZXJpdHlBbGFybXMoKTogY3cuSUFsYXJtW10ge1xuICAgIC8vIE5vdGU6IHRoZSBhcnJheSBpcyBhbHJlYWR5IHJldHVybmVkIGJ5LWNvcHkgYnkgTW9uaXRvcmluZywgc28gbm90IGNvcHlpbmcgYWdhaW4uXG4gICAgcmV0dXJuIHRoaXMubW9uaXRvcmluZy5oaWdoU2V2ZXJpdHlBbGFybXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGxvdy1zZXZlcml0eSBhbGFybXMgZnJvbSB0aGlzIENvbnN0cnVjdEh1YiBpbnN0YW5jZS5cbiAgICogVGhlc2UgZG8gbm90IG5lY2Vzc2l0YXRlIGltbWVkaWF0ZSBhdHRlbnRpb24sIGFzIHRoZXkgZG8gbm90IGhhdmUgZGlyZWN0XG4gICAqIGN1c3RvbWVyLXZpc2libGUgaW1wYWN0LCBvciBoYW5kbGluZyBpcyBub3QgdGltZS1zZW5zaXRpdmUuIFRoZXkgaW5kaWNhdGVcbiAgICogdGhhdCBzb21ldGhpbmcgdW51c3VhbCAobm90IG5lY2Vzc2FyaWx5IGJhZCkgaXMgaGFwcGVuaW5nLlxuICAgKi9cbiAgcHVibGljIGdldCBtZWRpdW1TZXZlcml0eUFsYXJtcygpOiBjdy5JQWxhcm1bXSB7XG4gICAgLy8gTm90ZTogdGhlIGFycmF5IGlzIGFscmVhZHkgcmV0dXJuZWQgYnktY29weSBieSBNb25pdG9yaW5nLCBzbyBub3QgY29weWluZyBhZ2Fpbi5cbiAgICByZXR1cm4gdGhpcy5tb25pdG9yaW5nLm1lZGl1bVNldmVyaXR5QWxhcm1zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBsb3ctc2V2ZXJpdHkgYWxhcm1zIGZyb20gdGhpcyBDb25zdHJ1Y3RIdWIgaW5zdGFuY2UuXG4gICAqIFRoZXNlIGRvIG5vdCBuZWNlc3NpdGF0ZSBpbW1lZGlhdGUgYXR0ZW50aW9uLCBhcyB0aGV5IGRvIG5vdCBoYXZlIGRpcmVjdFxuICAgKiBjdXN0b21lci12aXNpYmxlIGltcGFjdCwgb3IgaGFuZGxpbmcgaXMgbm90IHRpbWUtc2Vuc2l0aXZlLiBUaGV5IGluZGljYXRlXG4gICAqIHRoYXQgc29tZXRoaW5nIHVudXN1YWwgKG5vdCBuZWNlc3NhcmlseSBiYWQpIGlzIGhhcHBlbmluZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgbG93U2V2ZXJpdHlBbGFybXMoKTogY3cuSUFsYXJtW10ge1xuICAgIC8vIE5vdGU6IHRoZSBhcnJheSBpcyBhbHJlYWR5IHJldHVybmVkIGJ5LWNvcHkgYnkgTW9uaXRvcmluZywgc28gbm90IGNvcHlpbmcgYWdhaW4uXG4gICAgcmV0dXJuIHRoaXMubW9uaXRvcmluZy5sb3dTZXZlcml0eUFsYXJtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgYWxhcm1zIGNvbmZpZ3VyZWQgYnkgdGhpcyBDb25zdHJ1Y3RIdWIgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFsbEFsYXJtcygpOiBjdy5JQWxhcm1bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmhpZ2hTZXZlcml0eUFsYXJtcywgLi4udGhpcy5sb3dTZXZlcml0eUFsYXJtcywgLi4udGhpcy5tZWRpdW1TZXZlcml0eUFsYXJtc107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdyYW50UHJpbmNpcGFsKCk6IGlhbS5JUHJpbmNpcGFsIHtcbiAgICByZXR1cm4gdGhpcy5pbmdlc3Rpb24uZ3JhbnRQcmluY2lwYWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluZ2VzdGlvblF1ZXVlKCk6IHNxcy5JUXVldWUge1xuICAgIHJldHVybiB0aGlzLmluZ2VzdGlvbi5xdWV1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVnBjKFxuICAgIGlzb2xhdGlvbjogSXNvbGF0aW9uLFxuICAgIGNvZGVBcnRpZmFjdDogUmVwb3NpdG9yeSB8IHVuZGVmaW5lZFxuICApIHtcbiAgICBpZiAoaXNvbGF0aW9uID09PSBJc29sYXRpb24uVU5MSU1JVEVEX0lOVEVSTkVUX0FDQ0VTUykge1xuICAgICAgcmV0dXJuIHsgdnBjOiB1bmRlZmluZWQsIHZwY0VuZHBvaW50czogdW5kZWZpbmVkLCB2cGNTdWJuZXRzOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICBjb25zdCBzdWJuZXRUeXBlID1cbiAgICAgIGlzb2xhdGlvbiA9PT0gSXNvbGF0aW9uLk5PX0lOVEVSTkVUX0FDQ0VTU1xuICAgICAgICA/IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfSVNPTEFURURcbiAgICAgICAgOiBlYzIuU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTO1xuICAgIGNvbnN0IHZwY1N1Ym5ldHMgPSB7IHN1Ym5ldFR5cGUgfTtcblxuICAgIGNvbnN0IHZwYyA9IG5ldyBlYzIuVnBjKHRoaXMsICdWUEMnLCB7XG4gICAgICBlbmFibGVEbnNIb3N0bmFtZXM6IHRydWUsXG4gICAgICBlbmFibGVEbnNTdXBwb3J0OiB0cnVlLFxuICAgICAgLy8gUHJvdmlzaW9uIG5vIE5BVCBnYXRld2F5cyBpZiB3ZSBhcmUgcnVubmluZyBJU09MQVRFRCAod2Ugd291bGRuJ3QgaGF2ZSBhIHB1YmxpYyBzdWJuZXQpXG4gICAgICBuYXRHYXRld2F5czpcbiAgICAgICAgc3VibmV0VHlwZSA9PT0gZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9JU09MQVRFRCA/IDAgOiB1bmRlZmluZWQsXG4gICAgICAvLyBQcmUtYWxsb2NhdGluZyBQVUJMSUMgLyBQUklWQVRFIC8gSU5URVJOQUwgc3VibmV0cywgcmVnYXJkbGVzcyBvZiB1c2UsIHNvIHdlIGRvbid0IGNyZWF0ZVxuICAgICAgLy8gYSB3aG9sZSBuZXcgVlBDIGlmIHdlIGV2ZXIgbmVlZCB0byBpbnRyb2R1Y2Ugc3VibmV0cyBvZiB0aGVzZSB0eXBlcy5cbiAgICAgIHN1Ym5ldENvbmZpZ3VyYXRpb246IFtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBQUklWQVRFIHN1Ym5ldCwgdGhlcmUgbXVzdCBhbHNvIGhhdmUgYSBQVUJMSUMgc3VibmV0IChmb3IgTkFUIGdhdGV3YXlzKS5cbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdQdWJsaWMnLFxuICAgICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICAgICAgICByZXNlcnZlZDogc3VibmV0VHlwZSA9PT0gZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9JU09MQVRFRCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdQcml2YXRlJyxcbiAgICAgICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTLFxuICAgICAgICAgIHJlc2VydmVkOiBzdWJuZXRUeXBlID09PSBlYzIuU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVELFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0lzb2xhdGVkJyxcbiAgICAgICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVELFxuICAgICAgICAgIHJlc2VydmVkOiBzdWJuZXRUeXBlICE9PSBlYzIuU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVELFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBUYWdzLm9mKHZwYy5ub2RlLmRlZmF1bHRDaGlsZCEpLmFkZCgnTmFtZScsIHZwYy5ub2RlLnBhdGgpO1xuXG4gICAgY29uc3Qgc2VjdXJpdHlHcm91cHMgPVxuICAgICAgc3VibmV0VHlwZSA9PT0gZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTU1xuICAgICAgICA/IGNyZWF0ZVJlc3RyaWN0ZWRTZWN1cml0eUdyb3Vwcyh0aGlzLCB2cGMpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQ3JlYXRpbmcgdGhlIENvZGVBcnRpZmFjdCBlbmRwb2ludHMgb25seSBpZiBhIHJlcG9zaXRvcnkgaXMgcHJlc2VudC5cbiAgICBjb25zdCBjb2RlQXJ0aWZhY3RFbmRwb2ludHMgPSBjb2RlQXJ0aWZhY3QgJiYge1xuICAgICAgY29kZUFydGlmYWN0QXBpOiB2cGMuYWRkSW50ZXJmYWNlRW5kcG9pbnQoJ0NvZGVBcnRpZmFjdC5BUEknLCB7XG4gICAgICAgIHByaXZhdGVEbnNFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgc2VydmljZTogbmV3IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UoJ2NvZGVhcnRpZmFjdC5hcGknKSxcbiAgICAgICAgc3VibmV0czogdnBjU3VibmV0cyxcbiAgICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB9KSxcbiAgICAgIGNvZGVBcnRpZmFjdDogdnBjLmFkZEludGVyZmFjZUVuZHBvaW50KCdDb2RlQXJ0aWZhY3QnLCB7XG4gICAgICAgIHByaXZhdGVEbnNFbmFibGVkOiB0cnVlLFxuICAgICAgICBzZXJ2aWNlOiBuZXcgZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZShcbiAgICAgICAgICAnY29kZWFydGlmYWN0LnJlcG9zaXRvcmllcydcbiAgICAgICAgKSxcbiAgICAgICAgc3VibmV0czogdnBjU3VibmV0cyxcbiAgICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgLy8gV2UnbGwgb25seSB1c2UgVlBDIGVuZHBvaW50cyBpZiB3ZSBhcmUgY29uZmlndXJlZCB0byBydW4gaW4gYW4gSVNPTEFURUQgc3VibmV0LlxuICAgIGNvbnN0IHZwY0VuZHBvaW50cyA9IHtcbiAgICAgIC4uLmNvZGVBcnRpZmFjdEVuZHBvaW50cyxcbiAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIHNvIHRoYXQgRUNTIHdvcmtsb2FkcyBjYW4gdXNlIHRoZSBhd3Nsb2dzIGRyaXZlclxuICAgICAgY2xvdWRXYXRjaExvZ3M6IHZwYy5hZGRJbnRlcmZhY2VFbmRwb2ludCgnQ2xvdWRXYXRjaC5Mb2dzJywge1xuICAgICAgICBwcml2YXRlRG5zRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgc2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5DTE9VRFdBVENIX0xPR1MsXG4gICAgICAgIHN1Ym5ldHM6IHZwY1N1Ym5ldHMsXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzLFxuICAgICAgfSksXG4gICAgICAvLyBUaGVzZSBhcmUgbmVlZGVkIGZvciBFQ1Mgd29ya2xvYWRzIHRvIGJlIGFibGUgdG8gcHVsbCBpbWFnZXNcbiAgICAgIGVjckFwaTogdnBjLmFkZEludGVyZmFjZUVuZHBvaW50KCdFQ1IuQVBJJywge1xuICAgICAgICBwcml2YXRlRG5zRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgc2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5FQ1IsXG4gICAgICAgIHN1Ym5ldHM6IHZwY1N1Ym5ldHMsXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzLFxuICAgICAgfSksXG4gICAgICBlY3I6IHZwYy5hZGRJbnRlcmZhY2VFbmRwb2ludCgnRUNSLkRvY2tlcicsIHtcbiAgICAgICAgcHJpdmF0ZURuc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIHNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuRUNSX0RPQ0tFUixcbiAgICAgICAgc3VibmV0czogdnBjU3VibmV0cyxcbiAgICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB9KSxcbiAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIChhbW9uZyBvdGhlcnMpIGZvciBDb2RlQXJ0aWZhY3QgcmVnaXN0cnkgdXNhZ2VcbiAgICAgIHMzOiB2cGMuYWRkR2F0ZXdheUVuZHBvaW50KCdTMycsIHtcbiAgICAgICAgc2VydmljZTogZWMyLkdhdGV3YXlWcGNFbmRwb2ludEF3c1NlcnZpY2UuUzMsXG4gICAgICAgIHN1Ym5ldHM6IFt2cGNTdWJuZXRzXSxcbiAgICAgIH0pLFxuICAgICAgLy8gVGhpcyBpcyB1c2VmdWwgZm9yIGdldHRpbmcgcmVzdWx0cyBmcm9tIEVDUyB0YXNrcyB3aXRoaW4gd29ya2Zsb3dzXG4gICAgICBzdGVwRnVuY3Rpb25zOiB2cGMuYWRkSW50ZXJmYWNlRW5kcG9pbnQoJ1N0ZXBGdW5jdGlvbnMnLCB7XG4gICAgICAgIHByaXZhdGVEbnNFbmFibGVkOiB0cnVlLFxuICAgICAgICBzZXJ2aWNlOiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLlNURVBfRlVOQ1RJT05TLFxuICAgICAgICBzdWJuZXRzOiB2cGNTdWJuZXRzLFxuICAgICAgICBzZWN1cml0eUdyb3VwcyxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICAvLyBUaGUgUzMgYWNjZXNzIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIENvZGVBcnRpZmFjdCBSZXBvc2l0b3J5IGFuZCBFQ1IgRG9ja2VyXG4gICAgLy8gZW5kcG9pbnRzIHRvIGJlIHVzZWQgKHRoZXkgc2VydmUgb2JqZWN0cyBmcm9tIFMzKS5cbiAgICB2cGNFbmRwb2ludHMuczMuYWRkVG9Qb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIC8vIFRoZSBpbi1yZWdpb24gQ29kZUFydGlmYWN0IFMzIEJ1Y2tldFxuICAgICAgICAgIC4uLihjb2RlQXJ0aWZhY3QgPyBbYCR7Y29kZUFydGlmYWN0LnMzQnVja2V0QXJufS8qYF0gOiBbXSksXG4gICAgICAgICAgLy8gVGhlIGluLXJlZ2lvbiBFQ1IgbGF5ZXIgYnVja2V0XG4gICAgICAgICAgYGFybjphd3M6czM6Ojpwcm9kLSR7U3RhY2sub2YodGhpcykucmVnaW9ufS1zdGFycG9ydC1sYXllci1idWNrZXQvKmAsXG4gICAgICAgIF0sXG4gICAgICAgIC8vIEl0IGRvZXNuJ3Qgc2VlbSB3ZSBjYW4gY29uc3RyYWluIHByaW5jaXBhbHMgZm9yIHRoZXNlIGdyYW50cyAodW5jbGVhclxuICAgICAgICAvLyB3aGljaCBwcmluY2lwYWwgdGhvc2UgY2FsbHMgYXJlIG1hZGUgZnJvbSwgb3IgaWYgdGhhdCBpcyBzb21ldGhpbmcgd2VcbiAgICAgICAgLy8gY291bGQgbmFtZSBoZXJlKS5cbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICAgIHNpZDogJ0FsbG93LUNvZGVBcnRpZmFjdC1hbmQtRUNSJyxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiB7IHZwYywgdnBjRW5kcG9pbnRzLCB2cGNTdWJuZXRzLCB2cGNTZWN1cml0eUdyb3Vwczogc2VjdXJpdHlHcm91cHMgfTtcbiAgfVxufVxuXG4vKipcbiAqIEhvdyBwb3NzaWJseSByaXNreSBvcGVyYXRpb25zIChzdWNoIGFzIGRvYy1nZW5lcmF0aW9uLCB3aGljaCByZXF1aXJlc1xuICogaW5zdGFsbGluZyB0aGUgaW5kZXhlZCBwYWNrYWdlcyBpbiBvcmRlciB0byB0cmFucy1saXRlcmF0ZSBzYW1wbGUgY29kZSkgYXJlXG4gKiBpc29sYXRlZCB0byBtaXRpZ2F0ZSBwb3NzaWJsZSBhcmJpdHJhcnkgY29kZSBleGVjdXRpb24gdnVsbmVyYWJpbGl0aWVzIGluIGFuZFxuICogYXJvdW5kIGBucG0gaW5zdGFsbGAgb3IgdGhlIHRyYW5zbGl0ZXJhdG9yJ3MgdXNlIG9mIHRoZSBUeXBlU2NyaXB0IGNvbXBpbGVyLlxuICovXG5leHBvcnQgZW51bSBJc29sYXRpb24ge1xuICAvKipcbiAgICogTm8gaXNvbGF0aW9uIGlzIGRvbmUgd2hhdHNvZXZlci4gVGhlIGRvYy1nZW5lcmF0aW9uIHByb2Nlc3Mgc3RpbGwgaXNcbiAgICogcHJvdmlzaW9uZWQgd2l0aCBsZWFzdC1wcml2aWxlZ2UgcGVybWlzc2lvbnMsIGJ1dCByZXRhaW5zIGNvbXBsZXRlIGFjY2Vzc1xuICAgKiB0byBpbnRlcm5ldC5cbiAgICpcbiAgICogV2hpbGUgdGhpcyBtYXhpbWl6ZXMgdGhlIGNoYW5jZXMgb2Ygc3VjY2Vzc2Z1bGx5IGluc3RhbGxpbmcgcGFja2FnZXMgKGFuZFxuICAgKiBoZW5jZSBzdWNjZXNzZnVsbHkgZ2VuZXJhdGluZyBkb2N1bWVudGF0aW9uIGZvciB0aG9zZSksIGl0IGlzIGFsc28gdGhlXG4gICAqIGxlYXN0IHNlY3VyZSBtb2RlIG9mIG9wZXJhdGlvbi5cbiAgICpcbiAgICogV2UgYWR2aXNlIHlvdSBvbmx5IGNvbnNpZGVyIHVzaW5nIHRoaXMgaXNvbGF0aW9uIG1vZGUgaWYgeW91IGFyZSBob3N0aW5nIGFcbiAgICogQ29uc3RydWN0SHViIGluc3RhbmNlIHRoYXQgb25seSBpbmRleGVzIHRydXN0ZWQgcGFja2FnZXMgKGluY2x1ZGluZ1xuICAgKiB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcykuXG4gICAqL1xuICBVTkxJTUlURURfSU5URVJORVRfQUNDRVNTLFxuXG4gIC8qKlxuICAgKiBUaGUgc2FtZSBwcm90ZWN0aW9ucyBhcyBgVU5MSU1JVEVEX0lOVEVSTkVUX0FDQ0VTU2AsIGV4Y2VwdCBvdXRib3VuZFxuICAgKiBpbnRlcm5ldCBjb25uZWN0aW9ucyBhcmUgbGltaXRlZCB0byBJUCBhZGRyZXNzIHJhbmdlcyBjb3JyZXNwb25kaW5nIHRvXG4gICAqIGhvc3RpbmcgZW5kcG9pbnRzIGZvciBucG1qcy5jb20uXG4gICAqL1xuICBMSU1JVEVEX0lOVEVSTkVUX0FDQ0VTUyxcblxuICAvKipcbiAgICogVGhlIHNhbWUgcHJvdGVjdGlvbnMgYXMgYExJTUlURURfSU5URVJORVRfQUNDRVNTYCwgZXhjZXB0IGFsbCByZW1haW5pbmdcbiAgICogaW50ZXJuZXQgYWNjZXNzIGlzIHJlbW92ZWQuIEFsbCB0cmFmZmljIHRvIEFXUyBzZXJ2aWNlIGVuZHBvaW50cyBpcyByb3V0ZWRcbiAgICogdGhyb3VnaCBWUEMgRW5kcG9pbnRzLCBhcyB0aGUgY29tcHV0ZSBub2RlcyBhcmUgamFpbGVkIGluIGEgY29tcGxldGVseVxuICAgKiBpc29sYXRlZCBWUEMuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIG1vc3Qgc2VjdXJlIChhbmQgcmVjb21tZW5kZWQpIG1vZGUgb2Ygb3BlcmF0aW9uIGZvclxuICAgKiBDb25zdHJ1Y3RIdWIgaW5zdGFuY2VzLlxuICAgKi9cbiAgTk9fSU5URVJORVRfQUNDRVNTLFxufVxuIl19
|
447
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LWh1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3QtaHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0dBQTJFO0FBQzNFLDZDQUFvRDtBQUVwRCwyQ0FBMkM7QUFFM0MsaURBQTRFO0FBRTVFLHlDQUF5QztBQUN6QywrQ0FBdUQ7QUFHdkQsMkNBQXVDO0FBQ3ZDLHlFQUE0RTtBQUU1RSx1Q0FBZ0Q7QUFFaEQseURBQXFEO0FBQ3JELG1EQUFnRDtBQUNoRCx5REFBcUQ7QUFDckQsMkRBQXdEO0FBQ3hELDJEQUF1RDtBQUN2RCwyREFBNkQ7QUFDN0QsMERBQTZFO0FBQzdFLCtEQUEyRDtBQUMzRCwyREFBdUQ7QUFDdkQsMERBQXVEO0FBQ3ZELHVEQUF5RTtBQUN6RSw2Q0FBMEM7QUFDMUMsNkRBQXlEO0FBRXpELHVEQUEwQztBQUkxQywwQ0FBZ0Q7QUFDaEQsaURBQTZDO0FBQzdDLHFDQU1rQjtBQXVPbEI7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxzQkFBUztJQVV6QyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixRQUEyQixFQUFFO1FBRTdCLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFDRSxLQUFLLENBQUMscUJBQXFCLElBQUksSUFBSTtZQUNuQyxLQUFLLENBQUMsc0JBQXNCLElBQUksSUFBSSxFQUNwQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwSEFBMEgsQ0FDM0gsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUI7WUFDeEUsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsS0FBSyxDQUFDO1FBRVYsTUFBTSxjQUFjLEdBQUcsMEJBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtZQUN4RCxRQUFRLEVBQUUsS0FBSyxDQUFDLGVBQWU7U0FD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O09BWUc7SUFDSCxtRkFBeUIsQ0FBQTtJQUV6Qjs7OztPQUlHO0lBQ0gsK0VBQXVCLENBQUE7SUFFdkI7Ozs7Ozs7O09BUUc7SUFDSCxxRUFBa0IsQ0FBQTtBQUNwQixDQUFDLEVBakNXLFNBQVMseUJBQVQsU0FBUyxRQWlDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1zZXJ2aWNlY2F0YWxvZ2FwcHJlZ2lzdHJ5LWFscGhhJztcbmltcG9ydCB7IER1cmF0aW9uLCBTdGFjaywgVGFncyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGN3IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFueVByaW5jaXBhbCwgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQmxvY2tQdWJsaWNBY2Nlc3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgc2VjcmV0c21hbmFnZXIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCAqIGFzIHNxcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3FzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgY3JlYXRlUmVzdHJpY3RlZFNlY3VyaXR5R3JvdXBzIH0gZnJvbSAnLi9fbGltaXRlZC1pbnRlcm5ldC1hY2Nlc3MnO1xuaW1wb3J0IHsgQWxhcm1BY3Rpb25zLCBBbGFybVNldmVyaXRpZXMsIERvbWFpbiB9IGZyb20gJy4vYXBpJztcbmltcG9ydCB7IERlbnlMaXN0LCBJbmdlc3Rpb24gfSBmcm9tICcuL2JhY2tlbmQnO1xuaW1wb3J0IHsgRGVueUxpc3RSdWxlIH0gZnJvbSAnLi9iYWNrZW5kL2RlbnktbGlzdC9hcGknO1xuaW1wb3J0IHsgRmVlZEJ1aWxkZXIgfSBmcm9tICcuL2JhY2tlbmQvZmVlZC1idWlsZGVyJztcbmltcG9ydCB7IEludmVudG9yeSB9IGZyb20gJy4vYmFja2VuZC9pbnZlbnRvcnknO1xuaW1wb3J0IHsgTGljZW5zZUxpc3QgfSBmcm9tICcuL2JhY2tlbmQvbGljZW5zZS1saXN0JztcbmltcG9ydCB7IE9yY2hlc3RyYXRpb24gfSBmcm9tICcuL2JhY2tlbmQvb3JjaGVzdHJhdGlvbic7XG5pbXBvcnQgeyBQYWNrYWdlU3RhdHMgfSBmcm9tICcuL2JhY2tlbmQvcGFja2FnZS1zdGF0cyc7XG5pbXBvcnQgeyBSZWxlYXNlTm90ZUZldGNoZXIgfSBmcm9tICcuL2JhY2tlbmQvcmVsZWFzZS1ub3Rlcyc7XG5pbXBvcnQgeyBDQVRBTE9HX0tFWSwgU1RPUkFHRV9LRVlfUFJFRklYIH0gZnJvbSAnLi9iYWNrZW5kL3NoYXJlZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgVmVyc2lvblRyYWNrZXIgfSBmcm9tICcuL2JhY2tlbmQvdmVyc2lvbi10cmFja2VyJztcbmltcG9ydCB7IEJhY2tlbmREYXNoYm9hcmQgfSBmcm9tICcuL2JhY2tlbmQtZGFzaGJvYXJkJztcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tICcuL2NvZGVhcnRpZmFjdC9yZXBvc2l0b3J5JztcbmltcG9ydCB7IERvbWFpblJlZGlyZWN0LCBEb21haW5SZWRpcmVjdFNvdXJjZSB9IGZyb20gJy4vZG9tYWluLXJlZGlyZWN0JztcbmltcG9ydCB7IE1vbml0b3JpbmcgfSBmcm9tICcuL21vbml0b3JpbmcnO1xuaW1wb3J0IHsgT3ZlcnZpZXdEYXNoYm9hcmQgfSBmcm9tICcuL292ZXJ2aWV3LWRhc2hib2FyZCc7XG5pbXBvcnQgeyBJUGFja2FnZVNvdXJjZSB9IGZyb20gJy4vcGFja2FnZS1zb3VyY2UnO1xuaW1wb3J0IHsgTnBtSnMgfSBmcm9tICcuL3BhY2thZ2Utc291cmNlcyc7XG5pbXBvcnQgeyBQYWNrYWdlVGFnIH0gZnJvbSAnLi9wYWNrYWdlLXRhZyc7XG5pbXBvcnQgeyBQYWNrYWdlVGFnR3JvdXAgfSBmcm9tICcuL3BhY2thZ2UtdGFnLWdyb3VwJztcbmltcG9ydCB7IFByZWxvYWRGaWxlIH0gZnJvbSAnLi9wcmVsb2FkLWZpbGUnO1xuaW1wb3J0IHsgUzNTdG9yYWdlRmFjdG9yeSB9IGZyb20gJy4vczMvc3RvcmFnZSc7XG5pbXBvcnQgeyBTcGR4TGljZW5zZSB9IGZyb20gJy4vc3BkeC1saWNlbnNlJztcbmltcG9ydCB7XG4gIFdlYkFwcCxcbiAgUGFja2FnZUxpbmtDb25maWcsXG4gIEZlYXR1cmVkUGFja2FnZXMsXG4gIEZlYXR1cmVGbGFncyxcbiAgQ2F0ZWdvcnksXG59IGZyb20gJy4vd2ViYXBwJztcbmltcG9ydCB7IElTdGF0ZU1hY2hpbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgZ2VuZXJhdGluZyBSU1MgYW5kIEFUT00gZmVlZCBmb3IgdGhlIGxhdGVzdCBwYWNrYWdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZlZWRDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIEdpdGh1YiB0b2tlbiBmb3IgZ2VuZXJhdGluZyByZWxlYXNlIG5vdGVzLiBXaGVuIG1pc3Npbmcgbm8gcmVsZWFzZSBub3RlcyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgUlNTL0FUT00gZmVlZFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViVG9rZW5TZWNyZXQ/OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBUaXRsZSB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgZmVlZFxuICAgKi9cbiAgcmVhZG9ubHkgZmVlZFRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBkZXNjcmlwdGlvbiB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgZmVlZFxuICAgKi9cbiAgcmVhZG9ubHkgZmVlZERlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciBgQ29uc3RydWN0SHViYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RIdWJQcm9wcyB7XG4gIC8qKlxuICAgKiBDb25uZWN0IHRoZSBodWIgdG8gYSBkb21haW4gKHJlcXVpcmVzIGEgaG9zdGVkIHpvbmUgYW5kIGEgY2VydGlmaWNhdGUpLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluPzogRG9tYWluO1xuXG4gIC8qKlxuICAgKiBBY3Rpb25zIHRvIHBlcmZvcm0gd2hlbiBhbGFybXMgYXJlIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtQWN0aW9ucz86IEFsYXJtQWN0aW9ucztcblxuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBzZXZlcml0aWVzIG9mIHZhcmlvdXMgYWxhcm1zLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1TZXZlcml0aWVzPzogQWxhcm1TZXZlcml0aWVzO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNvbXB1dGUgZW52aXJvbm1lbnRzIGZvciBzZW5zaXRpdmUgdGFza3MgKHdoaWNoIG9wZXJhdGUgb25cbiAgICogdW4tdHJ1c3RlZCBjb21wbGV4IGRhdGEsIHN1Y2ggYXMgdGhlIHRyYW5zbGl0ZXJhdG9yLCB3aGljaCBvcGVyYXRlcyB3aXRoXG4gICAqIGV4dGVybmFsbHktc291cmNlZCBucG0gcGFja2FnZSB0YXJiYWxscykgc2hvdWxkIHJ1biBpbiBuZXR3b3JrLWlzb2xhdGVkXG4gICAqIGVudmlyb25tZW50cy4gVGhpcyBpbXBsaWVzIHRoZSBjcmVhdGlvbiBvZiBhZGRpdG9uYWwgcmVzb3VyY2VzLCBpbmNsdWRpbmc6XG4gICAqXG4gICAqIC0gQSBWUEMgd2l0aCBvbmx5IGlzb2xhdGVkIHN1Ym5ldHMuXG4gICAqIC0gVlBDIEVuZHBvaW50cyAoQ2xvdWRXYXRjaCBMb2dzLCBDb2RlQXJ0aWZhY3QsIENvZGVBcnRpZmFjdCBBUEksIFMzLCAuLi4pXG4gICAqIC0gQSBDb2RlQXJ0aWZhY3QgUmVwb3NpdG9yeSB3aXRoIGFuIGV4dGVybmFsIGNvbm5lY3Rpb24gdG8gbnBtanMuY29tXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBzZW5zaXRpdmVUYXNrSXNvbGF0aW9uIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBpc29sYXRlU2Vuc2l0aXZlVGFza3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNvbXB1dGUgZW52aXJvbm1lbnRzIGZvciBzZW5zaXRpdmUgdGFza3MgKHdoaWNoIG9wZXJhdGUgb25cbiAgICogdW4tdHJ1c3RlZCBjb21wbGV4IGRhdGEsIHN1Y2ggYXMgdGhlIHRyYW5zbGl0ZXJhdG9yLCB3aGljaCBvcGVyYXRlcyB3aXRoXG4gICAqIGV4dGVybmFsbHktc291cmNlZCBucG0gcGFja2FnZSB0YXJiYWxscykgc2hvdWxkIHJ1biBpbiBuZXR3b3JrLWlzb2xhdGVkXG4gICAqIGVudmlyb25tZW50cy4gVGhpcyBpbXBsaWVzIHRoZSBjcmVhdGlvbiBvZiBhZGRpdG9uYWwgcmVzb3VyY2VzLCBpbmNsdWRpbmc6XG4gICAqXG4gICAqIC0gQSBWUEMgd2l0aCBvbmx5IGlzb2xhdGVkIHN1Ym5ldHMuXG4gICAqIC0gVlBDIEVuZHBvaW50cyAoQ2xvdWRXYXRjaCBMb2dzLCBDb2RlQXJ0aWZhY3QsIENvZGVBcnRpZmFjdCBBUEksIFMzLCAuLi4pXG4gICAqIC0gQSBDb2RlQXJ0aWZhY3QgUmVwb3NpdG9yeSB3aXRoIGFuIGV4dGVybmFsIGNvbm5lY3Rpb24gdG8gbnBtanMuY29tXG4gICAqXG4gICAqIEBkZWZhdWx0IElzb2xhdGlvbi5OT19JTlRFUk5FVF9BQ0NFU1NcbiAgICovXG4gIHJlYWRvbmx5IHNlbnNpdGl2ZVRhc2tJc29sYXRpb24/OiBJc29sYXRpb247XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHRvIHJldGFpbiBDbG91ZFdhdGNoIGxvZ3MgZm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgUmV0ZW50aW9uRGF5cy5URU5fWUVBUlNcbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IFJldGVudGlvbkRheXM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBDbG91ZFdhdGNoIGRhc2hib2FyZCB0aGF0IHJlcHJlc2VudHMgdGhlIGhlYWx0aCBvZiBiYWNrZW5kXG4gICAqIHN5c3RlbXMuXG4gICAqL1xuICByZWFkb25seSBiYWNrZW5kRGFzaGJvYXJkTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2VzIHRvIGJsb2NrIGZyb20gdGhlIGNvbnN0cnVjdCBodWIuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBkZW55TGlzdD86IERlbnlMaXN0UnVsZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBzb3VyY2VzIHRvIHJlZ2lzdGVyIHdpdGggdGhpcyBDb25zdHJ1Y3RIdWIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBzdGFuZGFyZCBucG1qcy5jb20gcGFja2FnZSBzb3VyY2Ugd2lsbCBiZSBjb25maWd1cmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVNvdXJjZXM/OiBJUGFja2FnZVNvdXJjZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxsb3dlZCBsaWNlbnNlcyBmb3IgcGFja2FnZXMgaW5kZXhlZCBieSB0aGlzIGluc3RhbmNlIG9mIENvbnN0cnVjdEh1Yi5cbiAgICpcbiAgICogQGRlZmF1bHQgWy4uLlNwZHhMaWNlbnNlLmFwYWNoZSgpLC4uLlNwZHhMaWNlbnNlLmJzZCgpLC4uLlNwZHhMaWNlbnNlLmNkZGwoKSwuLi5TcGR4TGljZW5zZS5lcGwoKSxTcGR4TGljZW5zZS5JU0MsLi4uU3BkeExpY2Vuc2UubWl0KCksU3BkeExpY2Vuc2UuTVBMXzJfMF1cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRMaWNlbnNlcz86IFNwZHhMaWNlbnNlW107XG5cbiAgLyoqXG4gICAqIFdoZW4gdXNpbmcgYSBDb2RlQXJ0aWZhY3QgcGFja2FnZSBzb3VyY2UsIGl0IGlzIG9mdGVuIGRlc2lyYWJsZSB0byBoYXZlXG4gICAqIENvbnN0cnVjdEh1YiBwcm92aXNpb24gaXQncyBpbnRlcm5hbCBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yeSBpbiB0aGUgc2FtZVxuICAgKiBDb2RlQXJ0aWZhY3QgZG9tYWluLCBhbmQgdG8gY29uZmlndXJlIHRoZSBwYWNrYWdlIHNvdXJjZSByZXBvc2l0b3J5IGFzIGFuXG4gICAqIHVwc3RyZWFtIG9mIHRoZSBpbnRlcm5hbCByZXBvc2l0b3J5LiBUaGlzIHdheSwgYWxsIHBhY2thZ2VzIGluIHRoZSBzb3VyY2VcbiAgICogYXJlIGF2YWlsYWJsZSB0byBDb25zdHJ1Y3RIdWIncyBiYWNrZW5kIHByb2Nlc3NpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVBcnRpZmFjdERvbWFpbj86IENvZGVBcnRpZmFjdERvbWFpblByb3BzO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBjdXN0b20gcGFja2FnZSBwYWdlIGxpbmtzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZUxpbmtzPzogUGFja2FnZUxpbmtDb25maWdbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgY3VzdG9tIHBhY2thZ2UgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVRhZ3M/OiBQYWNrYWdlVGFnW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIGdyb3VwaW5nIGN1c3RvbSBwYWNrYWdlIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VUYWdHcm91cHM/OiBQYWNrYWdlVGFnR3JvdXBbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgcGFja2FnZXMgdG8gZmVhdHVyZSBvbiB0aGUgaG9tZSBwYWdlLlxuICAgKiBAZGVmYXVsdCAtIERpc3BsYXkgdGhlIDEwIG1vc3QgcmVjZW50bHkgdXBkYXRlZCBwYWNrYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgZmVhdHVyZWRQYWNrYWdlcz86IEZlYXR1cmVkUGFja2FnZXM7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBmZWF0dXJlIGZsYWdzIGZvciB0aGUgd2ViIGFwcC5cbiAgICovXG4gIHJlYWRvbmx5IGZlYXR1cmVGbGFncz86IEZlYXR1cmVGbGFncztcblxuICAvKipcbiAgICogQ29uZmlndXJlIHdoZXRoZXIgb3Igbm90IHRoZSBiYWNrZW5kIHNob3VsZCBwZXJpb2RpY2FsbHkgcXVlcnkgTlBNXG4gICAqIGZvciB0aGUgbnVtYmVyIG9mIGRvd25sb2FkcyBhIHBhY2thZ2UgaGFzIGluIHRoZSBwYXN0IHdlZWssIGFuZFxuICAgKiBkaXNwbGF5IGRvd25sb2FkIGNvdW50cyBvbiB0aGUgd2ViIGFwcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGlmIHBhY2thZ2VTb3VyY2VzIGlzIG5vdCBzcGVjaWZpZWQgKHRoZSBkZWZhdWx0cyBhcmVcbiAgICogdXNlZCksIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgZmV0Y2hQYWNrYWdlU3RhdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCcm93c2UgY2F0ZWdvcmllcy4gRWFjaCBjYXRlZ29yeSB3aWxsIGFwcGVhciBpbiB0aGUgaG9tZSBwYWdlIGFzIGEgYnV0dG9uXG4gICAqIHdpdGggYSBsaW5rIHRvIHRoZSByZWxldmFudCBzZWFyY2ggcXVlcnkuXG4gICAqL1xuICByZWFkb25seSBjYXRlZ29yaWVzPzogQ2F0ZWdvcnlbXTtcblxuICAvKipcbiAgICogV2lyZSBjb25zdHJ1Y3QgaHViIHRvIHVzZSB0aGUgZmFpbG92ZXIgc3RvcmFnZSBidWNrZXRzLlxuICAgKlxuICAgKiBEbyBub3QgYWN0aXZhdGUgdGhpcyBwcm9wZXJ0eSB1bnRpbCB5b3UndmUgcG9wdWxhdGVkIHlvdXIgZmFpbG92ZXIgYnVja2V0c1xuICAgKiB3aXRoIHRoZSBuZWNlc3NhcnkgZGF0YS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9jb25zdHJ1Y3QtaHViL2Jsb2IvZGV2L2RvY3Mvb3BlcmF0b3ItcnVuYm9vay5tZCNzdG9yYWdlLWRpc2FzdGVyXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmYWlsb3ZlclN0b3JhZ2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgZnJlcXVlbnRseSBhbGwgcGFja2FnZXMgc2hvdWxkIGdldCBmdWxseSByZXByb2Nlc3NlZC5cbiAgICpcbiAgICogU2VlIHRoZSBvcGVyYXRvciBydW5ib29rIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlcHJvY2Vzc2luZy5cbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2RrbGFicy9jb25zdHJ1Y3QtaHViL2Jsb2IvbWFpbi9kb2NzL29wZXJhdG9yLXJ1bmJvb2subWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBuZXZlclxuICAgKi9cbiAgcmVhZG9ubHkgcmVwcm9jZXNzRnJlcXVlbmN5PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgdmVyc2lvbnMgdGhhdCBoYXZlIGJlZW4gcHVibGlzaGVkIGJlZm9yZSB0aGlzIHRpbWUgd2luZG93IHdpbGwgbm90IGJlIHJlcHJvY2Vzc2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5kYXlzKDkwKVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwcm9jZXNzQWdlPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZG9tYWlucyB3aGljaCB3aWxsIGJlIHNldCB1cCB0byByZWRpcmVjdCB0byB0aGUgcHJpbWFyeVxuICAgKiBjb25zdHJ1Y3QgaHViIGRvbWFpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxEb21haW5zPzogRG9tYWluUmVkaXJlY3RTb3VyY2VbXTtcblxuICAvKipcbiAgICogSmF2YXNjcmlwdCB0byBydW4gb24gd2ViYXBwIGJlZm9yZSBhcHAgbG9hZHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBjcmVhdGUgYW4gZW1wdHkgZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJlbG9hZFNjcmlwdD86IFByZWxvYWRGaWxlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gQXBwUmVnaXN0cnkgYXBwbGljYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGFjayBjb250YWluaW5nXG4gICAqIHRoaXMgY29uc3RydWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhcHBSZWdpc3RyeUFwcGxpY2F0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgZ2VuZXJhdGluZyBSU1MvQXRvbSBmZWVkcyB3aXRoIHRoZSBsYXRlc3QgcGFja2FnZXMuIElmIHRoZSB2YWx1ZSBpcyBtaXNzaW5nXG4gICAqIHRoZSBnZW5lcmF0ZWQgUlNTL0FUT00gZmVlZCB3b3VsZCBub3QgY29udGFpbiByZWxlYXNlIG5vdGVzXG4gICAqL1xuICByZWFkb25seSBmZWVkQ29uZmlndXJhdGlvbj86IEZlZWRDb25maWd1cmF0aW9uO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIHBlcnRhaW5pbmcgdG8gYW4gZXhpc3RpbmcgQ29kZUFydGlmYWN0IERvbWFpbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQXJ0aWZhY3REb21haW5Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQ29kZUFydGlmYWN0IGRvbWFpbi5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW55IHVwc3RyZWFtIHJlcG9zaXRvcmllcyBpbiB0aGlzIENvZGVBcnRpZmFjdCBkb21haW4gdGhhdCBzaG91bGQgYmVcbiAgICogY29uZmlndXJlZCBvbiB0aGUgaW50ZXJuYWwgQ29kZUFydGlmYWN0IHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSB1cHN0cmVhbXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgSHViLlxuICovXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0SHViIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgaWFtLklHcmFudGFibGUge1xuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIG9wZXJhdG9ycyBjYW4gdXNlIHRvIHJlcHJvY2VzcyBhIHNwZWNpZmljIHBhY2thZ2UgdmVyc2lvblxuICAgKiB0aHJvdWdoIHRoZSBiYWNrZW5kIGRhdGEgcGlwZWxpbmUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVnZW5lcmF0ZUFsbERvY3VtZW50YXRpb25QZXJQYWNrYWdlOiBJU3RhdGVNYWNoaW5lO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5nZXN0aW9uOiBJbmdlc3Rpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgbW9uaXRvcmluZzogTW9uaXRvcmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDb25zdHJ1Y3RIdWJQcm9wcyA9IHt9XG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5pc29sYXRlU2Vuc2l0aXZlVGFza3MgIT0gbnVsbCAmJlxuICAgICAgcHJvcHMuc2Vuc2l0aXZlVGFza0lzb2xhdGlvbiAhPSBudWxsXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdTdXBwbHlpbmcgYm90aCBpc29sYXRlU2Vuc2l0aXZlVGFza3MgYW5kIHNlbnNpdGl2ZVRhc2tJc29sYXRpb24gaXMgbm90IHN1cHBvcnRlZC4gUmVtb3ZlIHVzYWdlIG9mIGlzb2xhdGVTZW5zaXRpdmVUYXNrcy4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZEZldGNoUmVsZWFzZU5vdGVzID0gcHJvcHMuZmVlZENvbmZpZ3VyYXRpb24/LmdpdGh1YlRva2VuU2VjcmV0XG4gICAgICA/IHRydWVcbiAgICAgIDogZmFsc2U7XG5cbiAgICBjb25zdCBzdG9yYWdlRmFjdG9yeSA9IFMzU3RvcmFnZUZhY3RvcnkuZ2V0T3JDcmVhdGUodGhpcywge1xuICAgICAgZmFpbG92ZXI6IHByb3BzLmZhaWxvdmVyU3RvcmFnZSxcbiAgICB9KTtcblxuICAgIHRoaXMubW9uaXRvcmluZyA9IG5ldyBNb25pdG9yaW5nKHRoaXMsICdNb25pdG9yaW5nJywge1xuICAgICAgYWxhcm1BY3Rpb25zOiBwcm9wcy5hbGFybUFjdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBvdmVydmlld0Rhc2hib2FyZCA9IG5ldyBPdmVydmlld0Rhc2hib2FyZCh0aGlzLCAnT3ZlcnZpZXdEYXNoYm9hcmQnLCB7XG4gICAgICBsYW1iZGFTZXJ2aWNlQWxhcm1UaHJlc2hvbGQ6IDcwLFxuICAgICAgZGFzaGJvYXJkTmFtZTogcHJvcHMuYmFja2VuZERhc2hib2FyZE5hbWVcbiAgICAgICAgPyBgJHtwcm9wcy5iYWNrZW5kRGFzaGJvYXJkTmFtZX0tb3ZlcnZpZXdgXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGFja2FnZURhdGEgPSBzdG9yYWdlRmFjdG9yeS5uZXdCdWNrZXQodGhpcywgJ1BhY2thZ2VEYXRhJywge1xuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgICBlbmNyeXB0aW9uOiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICBsaWZlY3ljbGVSdWxlczogW1xuICAgICAgICAvLyBBYm9ydCBtdWx0aS1wYXJ0IHVwbG9hZHMgYWZ0ZXIgMSBkYXlcbiAgICAgICAgeyBhYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWRBZnRlcjogRHVyYXRpb24uZGF5cygxKSB9LFxuICAgICAgICAvLyBUcmFuc2l0aW9uIG5vbi1jdXJyZW50IG9iamVjdCB2ZXJzaW9ucyB0byBJQSBhZnRlciAxIG1vbnRoXG4gICAgICAgIHtcbiAgICAgICAgICBub25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHN0b3JhZ2VDbGFzczogczMuU3RvcmFnZUNsYXNzLklORlJFUVVFTlRfQUNDRVNTLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uQWZ0ZXI6IER1cmF0aW9uLmRheXMoMzEpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICAvLyBQZXJtYW5lbnRseSBkZWxldGUgbm9uLWN1cnJlbnQgb2JqZWN0IHZlcnNpb25zIGFmdGVyIDMgbW9udGhzXG4gICAgICAgIHtcbiAgICAgICAgICBub25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoOTApLFxuICAgICAgICAgIGV4cGlyZWRPYmplY3REZWxldGVNYXJrZXI6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFBlcm1hbmVudGx5IGRlbGV0ZSBub24tY3VycmVudCB2ZXJzaW9ucyBvZiBjYXRhbG9nLmpzb24gZWFybGllclxuICAgICAgICB7IG5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cyg3KSwgcHJlZml4OiBDQVRBTE9HX0tFWSB9LFxuICAgICAgXSxcbiAgICAgIHZlcnNpb25lZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlzb2xhdGlvbiA9XG4gICAgICBwcm9wcy5zZW5zaXRpdmVUYXNrSXNvbGF0aW9uID8/XG4gICAgICAocHJvcHMuaXNvbGF0ZVNlbnNpdGl2ZVRhc2tzXG4gICAgICAgID8gSXNvbGF0aW9uLk5PX0lOVEVSTkVUX0FDQ0VTU1xuICAgICAgICA6IElzb2xhdGlvbi5VTkxJTUlURURfSU5URVJORVRfQUNDRVNTKTtcblxuICAgIC8vIENyZWF0ZSBhbiBpbnRlcm5hbCBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yeSBpZiB3ZSBydW4gaW4gbmV0d29yay1jb250cm9sbGVkIG1vZGUsIG9yIGlmIGEgZG9tYWluIGlzIHByb3ZpZGVkLlxuICAgIGNvbnN0IGNvZGVBcnRpZmFjdCA9XG4gICAgICBpc29sYXRpb24gPT09IElzb2xhdGlvbi5OT19JTlRFUk5FVF9BQ0NFU1MgfHxcbiAgICAgICAgcHJvcHMuY29kZUFydGlmYWN0RG9tYWluICE9IG51bGxcbiAgICAgICAgPyBuZXcgUmVwb3NpdG9yeSh0aGlzLCAnQ29kZUFydGlmYWN0Jywge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUHJveHkgdG8gbnBtanMuY29tIGZvciBDb25zdHJ1Y3RIdWInLFxuICAgICAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmNvZGVBcnRpZmFjdERvbWFpbj8ubmFtZSxcbiAgICAgICAgICBkb21haW5FeGlzdHM6IHByb3BzLmNvZGVBcnRpZmFjdERvbWFpbiAhPSBudWxsLFxuICAgICAgICAgIHVwc3RyZWFtczogcHJvcHMuY29kZUFydGlmYWN0RG9tYWluPy51cHN0cmVhbXMsXG4gICAgICAgIH0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHsgdnBjLCB2cGNFbmRwb2ludHMsIHZwY1N1Ym5ldHMsIHZwY1NlY3VyaXR5R3JvdXBzIH0gPSB0aGlzLmNyZWF0ZVZwYyhcbiAgICAgIGlzb2xhdGlvbixcbiAgICAgIGNvZGVBcnRpZmFjdFxuICAgICk7XG5cbiAgICBjb25zdCBkZW55TGlzdCA9IG5ldyBEZW55TGlzdCh0aGlzLCAnRGVueUxpc3QnLCB7XG4gICAgICBydWxlczogcHJvcHMuZGVueUxpc3QgPz8gW10sXG4gICAgICBwYWNrYWdlRGF0YUJ1Y2tldDogcGFja2FnZURhdGEsXG4gICAgICBwYWNrYWdlRGF0YUtleVByZWZpeDogU1RPUkFHRV9LRVlfUFJFRklYLFxuICAgICAgbW9uaXRvcmluZzogdGhpcy5tb25pdG9yaW5nLFxuICAgICAgb3ZlcnZpZXdEYXNoYm9hcmQ6IG92ZXJ2aWV3RGFzaGJvYXJkLFxuICAgIH0pO1xuXG4gICAgLy8gZGlzYWJsZSBmZXRjaGluZyBwYWNrYWdlIHN0YXRzIGJ5IGRlZmF1bHQgaWYgYSBkaWZmZXJlbnQgcGFja2FnZVxuICAgIC8vIHNvdXJjZSBpcyBjb25maWd1cmVkXG4gICAgY29uc3QgZmV0Y2hQYWNrYWdlU3RhdHMgPVxuICAgICAgcHJvcHMuZmV0Y2hQYWNrYWdlU3RhdHMgPz8gKHByb3BzLnBhY2thZ2VTb3VyY2VzID8gZmFsc2UgOiB0cnVlKTtcblxuICAgIGxldCBwYWNrYWdlU3RhdHM6IFBhY2thZ2VTdGF0cyB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzdGF0c0tleSA9ICdzdGF0cy5qc29uJztcbiAgICBpZiAoZmV0Y2hQYWNrYWdlU3RhdHMpIHtcbiAgICAgIHBhY2thZ2VTdGF0cyA9IG5ldyBQYWNrYWdlU3RhdHModGhpcywgJ1N0YXRzJywge1xuICAgICAgICBidWNrZXQ6IHBhY2thZ2VEYXRhLFxuICAgICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICAgIGxvZ1JldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uLFxuICAgICAgICBvYmplY3RLZXk6IHN0YXRzS2V5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyc2lvblRyYWNrZXIgPSBuZXcgVmVyc2lvblRyYWNrZXIodGhpcywgJ1ZlcnNpb25UcmFja2VyJywge1xuICAgICAgYnVja2V0OiBwYWNrYWdlRGF0YSxcbiAgICAgIG1vbml0b3Jpbmc6IHRoaXMubW9uaXRvcmluZyxcbiAgICAgIGxvZ1JldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZmVlZEJ1aWxkZXIgPSBuZXcgRmVlZEJ1aWxkZXIodGhpcywgJ0ZlZWRCdWlsZGVyJywge1xuICAgICAgYnVja2V0OiBwYWNrYWdlRGF0YSxcbiAgICAgIG92ZXJ2aWV3RGFzaGJvYXJkLFxuICAgICAgZmVlZERlc2NyaXB0aW9uOiBwcm9wcy5mZWVkQ29uZmlndXJhdGlvbj8uZmVlZERlc2NyaXB0aW9uLFxuICAgICAgZmVlZFRpdGxlOiBwcm9wcy5mZWVkQ29uZmlndXJhdGlvbj8uZmVlZFRpdGxlLFxuICAgICAgbW9uaXRvcmluZzogdGhpcy5tb25pdG9yaW5nLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3JjaGVzdHJhdGlvbiA9IG5ldyBPcmNoZXN0cmF0aW9uKHRoaXMsICdPcmNoZXN0cmF0aW9uJywge1xuICAgICAgYnVja2V0OiBwYWNrYWdlRGF0YSxcbiAgICAgIGNvZGVBcnRpZmFjdCxcbiAgICAgIGRlbnlMaXN0LFxuICAgICAgbG9nUmV0ZW50aW9uOiBwcm9wcy5sb2dSZXRlbnRpb24sXG4gICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICBvdmVydmlld0Rhc2hib2FyZDogb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgICB2cGMsXG4gICAgICB2cGNFbmRwb2ludHMsXG4gICAgICB2cGNTdWJuZXRzLFxuICAgICAgdnBjU2VjdXJpdHlHcm91cHMsXG4gICAgICBmZWVkQnVpbGRlcixcbiAgICAgIGFsYXJtU2V2ZXJpdGllczogcHJvcHMuYWxhcm1TZXZlcml0aWVzLFxuICAgIH0pO1xuICAgIHRoaXMucmVnZW5lcmF0ZUFsbERvY3VtZW50YXRpb25QZXJQYWNrYWdlID1cbiAgICAgIG9yY2hlc3RyYXRpb24ucmVnZW5lcmF0ZUFsbERvY3VtZW50YXRpb25QZXJQYWNrYWdlO1xuXG4gICAgLy8gcmVidWlsZCB0aGUgY2F0YWxvZyB3aGVuIHRoZSBkZW55IGxpc3QgY2hhbmdlcy5cbiAgICBkZW55TGlzdC5wcnVuZS5vbkNoYW5nZUludm9rZShvcmNoZXN0cmF0aW9uLmNhdGFsb2dCdWlsZGVyLmZ1bmN0aW9uKTtcblxuICAgIGNvbnN0IHBhY2thZ2VUYWdzU2VyaWFsaXplZCA9XG4gICAgICBwcm9wcy5wYWNrYWdlVGFncz8ubWFwKChjb25maWcpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgY29uZGl0aW9uOiBjb25maWcuY29uZGl0aW9uLmJpbmQoKSxcbiAgICAgICAgfTtcbiAgICAgIH0pID8/IFtdO1xuXG4gICAgbGV0IHJlbGVhc2VOb3RlcztcbiAgICBpZiAoc2hvdWxkRmV0Y2hSZWxlYXNlTm90ZXMpIHtcbiAgICAgIHJlbGVhc2VOb3RlcyA9IG5ldyBSZWxlYXNlTm90ZUZldGNoZXIodGhpcywgJ1JlbGVhc2VOb3RlcycsIHtcbiAgICAgICAgYnVja2V0OiBwYWNrYWdlRGF0YSxcbiAgICAgICAgZ2l0SHViQ3JlZGVudGlhbHNTZWNyZXQ6IHByb3BzLmZlZWRDb25maWd1cmF0aW9uPy5naXRodWJUb2tlblNlY3JldCxcbiAgICAgICAgZmVlZEJ1aWxkZXIsXG4gICAgICAgIG1vbml0b3Jpbmc6IHRoaXMubW9uaXRvcmluZyxcbiAgICAgICAgb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmluZ2VzdGlvbiA9IG5ldyBJbmdlc3Rpb24odGhpcywgJ0luZ2VzdGlvbicsIHtcbiAgICAgIGJ1Y2tldDogcGFja2FnZURhdGEsXG4gICAgICBjb2RlQXJ0aWZhY3QsXG4gICAgICBvcmNoZXN0cmF0aW9uLFxuICAgICAgbG9nUmV0ZW50aW9uOiBwcm9wcy5sb2dSZXRlbnRpb24sXG4gICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICBwYWNrYWdlTGlua3M6IHByb3BzLnBhY2thZ2VMaW5rcyxcbiAgICAgIHBhY2thZ2VUYWdzOiBwYWNrYWdlVGFnc1NlcmlhbGl6ZWQsXG4gICAgICByZXByb2Nlc3NGcmVxdWVuY3k6IHByb3BzLnJlcHJvY2Vzc0ZyZXF1ZW5jeSxcbiAgICAgIHJlcHJvY2Vzc0FnZTogcHJvcHMucmVwcm9jZXNzQWdlLFxuICAgICAgcmVsZWFzZU5vdGVzRmV0Y2hRdWV1ZTogcmVsZWFzZU5vdGVzPy5xdWV1ZSxcbiAgICAgIG92ZXJ2aWV3RGFzaGJvYXJkOiBvdmVydmlld0Rhc2hib2FyZCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGxpY2Vuc2VMaXN0ID0gbmV3IExpY2Vuc2VMaXN0KHRoaXMsICdMaWNlbnNlTGlzdCcsIHtcbiAgICAgIGxpY2Vuc2VzOiBwcm9wcy5hbGxvd2VkTGljZW5zZXMgPz8gW1xuICAgICAgICAuLi5TcGR4TGljZW5zZS5hcGFjaGUoKSxcbiAgICAgICAgLi4uU3BkeExpY2Vuc2UuYnNkKCksXG4gICAgICAgIC4uLlNwZHhMaWNlbnNlLmNkZGwoKSxcbiAgICAgICAgLi4uU3BkeExpY2Vuc2UuZXBsKCksXG4gICAgICAgIFNwZHhMaWNlbnNlLklTQyxcbiAgICAgICAgLi4uU3BkeExpY2Vuc2UubWl0KCksXG4gICAgICAgIFNwZHhMaWNlbnNlLk1QTF8yXzAsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgd2ViQXBwID0gbmV3IFdlYkFwcCh0aGlzLCAnV2ViQXBwJywge1xuICAgICAgZG9tYWluOiBwcm9wcy5kb21haW4sXG4gICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICBwYWNrYWdlRGF0YSxcbiAgICAgIHBhY2thZ2VMaW5rczogcHJvcHMucGFja2FnZUxpbmtzLFxuICAgICAgcGFja2FnZVRhZ3M6IHBhY2thZ2VUYWdzU2VyaWFsaXplZCxcbiAgICAgIHBhY2thZ2VUYWdHcm91cHM6IHByb3BzLnBhY2thZ2VUYWdHcm91cHMsXG4gICAgICBmZWF0dXJlZFBhY2thZ2VzOiBwcm9wcy5mZWF0dXJlZFBhY2thZ2VzLFxuICAgICAgcGFja2FnZVN0YXRzLFxuICAgICAgZmVhdHVyZUZsYWdzOiBwcm9wcy5mZWF0dXJlRmxhZ3MsXG4gICAgICBjYXRlZ29yaWVzOiBwcm9wcy5jYXRlZ29yaWVzLFxuICAgICAgcHJlbG9hZFNjcmlwdDogcHJvcHMucHJlbG9hZFNjcmlwdCxcbiAgICAgIG92ZXJ2aWV3RGFzaGJvYXJkOiBvdmVydmlld0Rhc2hib2FyZCxcbiAgICAgIGluY2x1ZGVGZWVkTGluazogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIFNldCB0aGUgYmFzZSBVUkwgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGhlIFJTUy9BVE9NIGZlZWRcbiAgICBmZWVkQnVpbGRlci5zZXRDb25zdHJ1Y3RIdWJVcmwod2ViQXBwLmJhc2VVcmwpO1xuXG4gICAgY29uc3Qgc291cmNlcyA9IG5ldyBDb25zdHJ1Y3QodGhpcywgJ1NvdXJjZXMnKTtcbiAgICBjb25zdCBwYWNrYWdlU291cmNlcyA9IChwcm9wcy5wYWNrYWdlU291cmNlcyA/PyBbbmV3IE5wbUpzKHsgYWxhcm1TZXZlcml0aWVzOiBwcm9wcy5hbGFybVNldmVyaXRpZXMgfSldKS5tYXAoXG4gICAgICAoc291cmNlKSA9PlxuICAgICAgICBzb3VyY2UuYmluZChzb3VyY2VzLCB7XG4gICAgICAgICAgYmFzZVVybDogd2ViQXBwLmJhc2VVcmwsXG4gICAgICAgICAgZGVueUxpc3QsXG4gICAgICAgICAgaW5nZXN0aW9uOiB0aGlzLmluZ2VzdGlvbixcbiAgICAgICAgICBsaWNlbnNlTGlzdCxcbiAgICAgICAgICBtb25pdG9yaW5nOiB0aGlzLm1vbml0b3JpbmcsXG4gICAgICAgICAgcXVldWU6IHRoaXMuaW5nZXN0aW9uLnF1ZXVlLFxuICAgICAgICAgIHJlcG9zaXRvcnk6IGNvZGVBcnRpZmFjdCxcbiAgICAgICAgICBvdmVydmlld0Rhc2hib2FyZDogb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IGludmVudG9yeSA9IG5ldyBJbnZlbnRvcnkodGhpcywgJ0ludmVudG9yeUNhbmFyeScsIHtcbiAgICAgIGJ1Y2tldDogcGFja2FnZURhdGEsXG4gICAgICBsb2dSZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbixcbiAgICAgIG1vbml0b3Jpbmc6IHRoaXMubW9uaXRvcmluZyxcbiAgICAgIG92ZXJ2aWV3RGFzaGJvYXJkOiBvdmVydmlld0Rhc2hib2FyZCxcbiAgICB9KTtcblxuICAgIG5ldyBCYWNrZW5kRGFzaGJvYXJkKHRoaXMsICdCYWNrZW5kRGFzaGJvYXJkJywge1xuICAgICAgcGFja2FnZURhdGEsXG4gICAgICBkYXNoYm9hcmROYW1lOiBwcm9wcy5iYWNrZW5kRGFzaGJvYXJkTmFtZSxcbiAgICAgIHBhY2thZ2VTb3VyY2VzLFxuICAgICAgaW5nZXN0aW9uOiB0aGlzLmluZ2VzdGlvbixcbiAgICAgIGludmVudG9yeSxcbiAgICAgIG9yY2hlc3RyYXRpb24sXG4gICAgICBkZW55TGlzdCxcbiAgICAgIHBhY2thZ2VTdGF0cyxcbiAgICAgIHZlcnNpb25UcmFja2VyLFxuICAgICAgcmVsZWFzZU5vdGVzLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIGRvbWFpbiByZWRpcmVjdHNcbiAgICBpZiAocHJvcHMuZG9tYWluKSB7XG4gICAgICBmb3IgKGNvbnN0IHJlZGlyY3RTb3VyY2Ugb2YgcHJvcHMuYWRkaXRpb25hbERvbWFpbnMgPz8gW10pIHtcbiAgICAgICAgbmV3IERvbWFpblJlZGlyZWN0KFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYFJlZGlyZWN0LSR7cmVkaXJjdFNvdXJjZS5ob3N0ZWRab25lLnpvbmVOYW1lfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc291cmNlOiByZWRpcmN0U291cmNlLFxuICAgICAgICAgICAgdGFyZ2V0RG9tYWluTmFtZTogcHJvcHMuZG9tYWluPy56b25lLnpvbmVOYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb3BzLmFkZGl0aW9uYWxEb21haW5zICYmIHByb3BzLmFkZGl0aW9uYWxEb21haW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdDYW5ub3Qgc3BlY2lmeSBcImRvbWFpblJlZGlyZWN0c1wiIGlmIGEgZG9tYWluIGlzIG5vdCBzcGVjaWZpZWQnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmFwcFJlZ2lzdHJ5QXBwbGljYXRpb24gPz8gdHJ1ZSkge1xuICAgICAgY29uc3QgYXBwbGljYXRpb24gPSBuZXcgQXBwbGljYXRpb24odGhpcywgJ0FwcGxpY2F0aW9uJywge1xuICAgICAgICBhcHBsaWNhdGlvbk5hbWU6ICdDb25zdHJ1Y3RIdWInLFxuICAgICAgfSk7XG4gICAgICBhcHBsaWNhdGlvbi5hc3NvY2lhdGVBcHBsaWNhdGlvbldpdGhTdGFjayhTdGFjay5vZih0aGlzKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBoaWdoLXNldmVyaXR5IGFsYXJtcyBmcm9tIHRoaXMgQ29uc3RydWN0SHViIGluc3RhbmNlLlxuICAgKiBUaGVzZSB3YXJyYW50IGltbWVkaWF0ZSBhdHRlbnRpb24gYXMgdGhleSBhcmUgaW5kaWNhdGl2ZSBvZiBhIHN5c3RlbSBoZWFsdGhcbiAgICogaXNzdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhpZ2hTZXZlcml0eUFsYXJtcygpOiBjdy5JQWxhcm1bXSB7XG4gICAgLy8gTm90ZTogdGhlIGFycmF5IGlzIGFscmVhZHkgcmV0dXJuZWQgYnktY29weSBieSBNb25pdG9yaW5nLCBzbyBub3QgY29weWluZyBhZ2Fpbi5cbiAgICByZXR1cm4gdGhpcy5tb25pdG9yaW5nLmhpZ2hTZXZlcml0eUFsYXJtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgbG93LXNldmVyaXR5IGFsYXJtcyBmcm9tIHRoaXMgQ29uc3RydWN0SHViIGluc3RhbmNlLlxuICAgKiBUaGVzZSBkbyBub3QgbmVjZXNzaXRhdGUgaW1tZWRpYXRlIGF0dGVudGlvbiwgYXMgdGhleSBkbyBub3QgaGF2ZSBkaXJlY3RcbiAgICogY3VzdG9tZXItdmlzaWJsZSBpbXBhY3QsIG9yIGhhbmRsaW5nIGlzIG5vdCB0aW1lLXNlbnNpdGl2ZS4gVGhleSBpbmRpY2F0ZVxuICAgKiB0aGF0IHNvbWV0aGluZyB1bnVzdWFsIChub3QgbmVjZXNzYXJpbHkgYmFkKSBpcyBoYXBwZW5pbmcuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1lZGl1bVNldmVyaXR5QWxhcm1zKCk6IGN3LklBbGFybVtdIHtcbiAgICAvLyBOb3RlOiB0aGUgYXJyYXkgaXMgYWxyZWFkeSByZXR1cm5lZCBieS1jb3B5IGJ5IE1vbml0b3JpbmcsIHNvIG5vdCBjb3B5aW5nIGFnYWluLlxuICAgIHJldHVybiB0aGlzLm1vbml0b3JpbmcubWVkaXVtU2V2ZXJpdHlBbGFybXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGxvdy1zZXZlcml0eSBhbGFybXMgZnJvbSB0aGlzIENvbnN0cnVjdEh1YiBpbnN0YW5jZS5cbiAgICogVGhlc2UgZG8gbm90IG5lY2Vzc2l0YXRlIGltbWVkaWF0ZSBhdHRlbnRpb24sIGFzIHRoZXkgZG8gbm90IGhhdmUgZGlyZWN0XG4gICAqIGN1c3RvbWVyLXZpc2libGUgaW1wYWN0LCBvciBoYW5kbGluZyBpcyBub3QgdGltZS1zZW5zaXRpdmUuIFRoZXkgaW5kaWNhdGVcbiAgICogdGhhdCBzb21ldGhpbmcgdW51c3VhbCAobm90IG5lY2Vzc2FyaWx5IGJhZCkgaXMgaGFwcGVuaW5nLlxuICAgKi9cbiAgcHVibGljIGdldCBsb3dTZXZlcml0eUFsYXJtcygpOiBjdy5JQWxhcm1bXSB7XG4gICAgLy8gTm90ZTogdGhlIGFycmF5IGlzIGFscmVhZHkgcmV0dXJuZWQgYnktY29weSBieSBNb25pdG9yaW5nLCBzbyBub3QgY29weWluZyBhZ2Fpbi5cbiAgICByZXR1cm4gdGhpcy5tb25pdG9yaW5nLmxvd1NldmVyaXR5QWxhcm1zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBhbGFybXMgY29uZmlndXJlZCBieSB0aGlzIENvbnN0cnVjdEh1YiBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWxsQWxhcm1zKCk6IGN3LklBbGFybVtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuaGlnaFNldmVyaXR5QWxhcm1zLCAuLi50aGlzLmxvd1NldmVyaXR5QWxhcm1zLCAuLi50aGlzLm1lZGl1bVNldmVyaXR5QWxhcm1zXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ3JhbnRQcmluY2lwYWwoKTogaWFtLklQcmluY2lwYWwge1xuICAgIHJldHVybiB0aGlzLmluZ2VzdGlvbi5ncmFudFByaW5jaXBhbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5nZXN0aW9uUXVldWUoKTogc3FzLklRdWV1ZSB7XG4gICAgcmV0dXJuIHRoaXMuaW5nZXN0aW9uLnF1ZXVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVWcGMoXG4gICAgaXNvbGF0aW9uOiBJc29sYXRpb24sXG4gICAgY29kZUFydGlmYWN0OiBSZXBvc2l0b3J5IHwgdW5kZWZpbmVkXG4gICkge1xuICAgIGlmIChpc29sYXRpb24gPT09IElzb2xhdGlvbi5VTkxJTUlURURfSU5URVJORVRfQUNDRVNTKSB7XG4gICAgICByZXR1cm4geyB2cGM6IHVuZGVmaW5lZCwgdnBjRW5kcG9pbnRzOiB1bmRlZmluZWQsIHZwY1N1Ym5ldHM6IHVuZGVmaW5lZCB9O1xuICAgIH1cblxuICAgIGNvbnN0IHN1Ym5ldFR5cGUgPVxuICAgICAgaXNvbGF0aW9uID09PSBJc29sYXRpb24uTk9fSU5URVJORVRfQUNDRVNTXG4gICAgICAgID8gZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9JU09MQVRFRFxuICAgICAgICA6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1M7XG4gICAgY29uc3QgdnBjU3VibmV0cyA9IHsgc3VibmV0VHlwZSB9O1xuXG4gICAgY29uc3QgdnBjID0gbmV3IGVjMi5WcGModGhpcywgJ1ZQQycsIHtcbiAgICAgIGVuYWJsZURuc0hvc3RuYW1lczogdHJ1ZSxcbiAgICAgIGVuYWJsZURuc1N1cHBvcnQ6IHRydWUsXG4gICAgICAvLyBQcm92aXNpb24gbm8gTkFUIGdhdGV3YXlzIGlmIHdlIGFyZSBydW5uaW5nIElTT0xBVEVEICh3ZSB3b3VsZG4ndCBoYXZlIGEgcHVibGljIHN1Ym5ldClcbiAgICAgIG5hdEdhdGV3YXlzOlxuICAgICAgICBzdWJuZXRUeXBlID09PSBlYzIuU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVEID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgIC8vIFByZS1hbGxvY2F0aW5nIFBVQkxJQyAvIFBSSVZBVEUgLyBJTlRFUk5BTCBzdWJuZXRzLCByZWdhcmRsZXNzIG9mIHVzZSwgc28gd2UgZG9uJ3QgY3JlYXRlXG4gICAgICAvLyBhIHdob2xlIG5ldyBWUEMgaWYgd2UgZXZlciBuZWVkIHRvIGludHJvZHVjZSBzdWJuZXRzIG9mIHRoZXNlIHR5cGVzLlxuICAgICAgc3VibmV0Q29uZmlndXJhdGlvbjogW1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIFBSSVZBVEUgc3VibmV0LCB0aGVyZSBtdXN0IGFsc28gaGF2ZSBhIFBVQkxJQyBzdWJuZXQgKGZvciBOQVQgZ2F0ZXdheXMpLlxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1B1YmxpYycsXG4gICAgICAgICAgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDLFxuICAgICAgICAgIHJlc2VydmVkOiBzdWJuZXRUeXBlID09PSBlYzIuU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVELFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1ByaXZhdGUnLFxuICAgICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MsXG4gICAgICAgICAgcmVzZXJ2ZWQ6IHN1Ym5ldFR5cGUgPT09IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfSVNPTEFURUQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnSXNvbGF0ZWQnLFxuICAgICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfSVNPTEFURUQsXG4gICAgICAgICAgcmVzZXJ2ZWQ6IHN1Ym5ldFR5cGUgIT09IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfSVNPTEFURUQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICAgIFRhZ3Mub2YodnBjLm5vZGUuZGVmYXVsdENoaWxkISkuYWRkKCdOYW1lJywgdnBjLm5vZGUucGF0aCk7XG5cbiAgICBjb25zdCBzZWN1cml0eUdyb3VwcyA9XG4gICAgICBzdWJuZXRUeXBlID09PSBlYzIuU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTXG4gICAgICAgID8gY3JlYXRlUmVzdHJpY3RlZFNlY3VyaXR5R3JvdXBzKHRoaXMsIHZwYylcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBDcmVhdGluZyB0aGUgQ29kZUFydGlmYWN0IGVuZHBvaW50cyBvbmx5IGlmIGEgcmVwb3NpdG9yeSBpcyBwcmVzZW50LlxuICAgIGNvbnN0IGNvZGVBcnRpZmFjdEVuZHBvaW50cyA9IGNvZGVBcnRpZmFjdCAmJiB7XG4gICAgICBjb2RlQXJ0aWZhY3RBcGk6IHZwYy5hZGRJbnRlcmZhY2VFbmRwb2ludCgnQ29kZUFydGlmYWN0LkFQSScsIHtcbiAgICAgICAgcHJpdmF0ZURuc0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBzZXJ2aWNlOiBuZXcgZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZSgnY29kZWFydGlmYWN0LmFwaScpLFxuICAgICAgICBzdWJuZXRzOiB2cGNTdWJuZXRzLFxuICAgICAgICBzZWN1cml0eUdyb3VwcyxcbiAgICAgIH0pLFxuICAgICAgY29kZUFydGlmYWN0OiB2cGMuYWRkSW50ZXJmYWNlRW5kcG9pbnQoJ0NvZGVBcnRpZmFjdCcsIHtcbiAgICAgICAgcHJpdmF0ZURuc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIHNlcnZpY2U6IG5ldyBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlKFxuICAgICAgICAgICdjb2RlYXJ0aWZhY3QucmVwb3NpdG9yaWVzJ1xuICAgICAgICApLFxuICAgICAgICBzdWJuZXRzOiB2cGNTdWJuZXRzLFxuICAgICAgICBzZWN1cml0eUdyb3VwcyxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICAvLyBXZSdsbCBvbmx5IHVzZSBWUEMgZW5kcG9pbnRzIGlmIHdlIGFyZSBjb25maWd1cmVkIHRvIHJ1biBpbiBhbiBJU09MQVRFRCBzdWJuZXQuXG4gICAgY29uc3QgdnBjRW5kcG9pbnRzID0ge1xuICAgICAgLi4uY29kZUFydGlmYWN0RW5kcG9pbnRzLFxuICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgc28gdGhhdCBFQ1Mgd29ya2xvYWRzIGNhbiB1c2UgdGhlIGF3c2xvZ3MgZHJpdmVyXG4gICAgICBjbG91ZFdhdGNoTG9nczogdnBjLmFkZEludGVyZmFjZUVuZHBvaW50KCdDbG91ZFdhdGNoLkxvZ3MnLCB7XG4gICAgICAgIHByaXZhdGVEbnNFbmFibGVkOiB0cnVlLFxuICAgICAgICBzZXJ2aWNlOiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLkNMT1VEV0FUQ0hfTE9HUyxcbiAgICAgICAgc3VibmV0czogdnBjU3VibmV0cyxcbiAgICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB9KSxcbiAgICAgIC8vIFRoZXNlIGFyZSBuZWVkZWQgZm9yIEVDUyB3b3JrbG9hZHMgdG8gYmUgYWJsZSB0byBwdWxsIGltYWdlc1xuICAgICAgZWNyQXBpOiB2cGMuYWRkSW50ZXJmYWNlRW5kcG9pbnQoJ0VDUi5BUEknLCB7XG4gICAgICAgIHByaXZhdGVEbnNFbmFibGVkOiB0cnVlLFxuICAgICAgICBzZXJ2aWNlOiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLkVDUixcbiAgICAgICAgc3VibmV0czogdnBjU3VibmV0cyxcbiAgICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB9KSxcbiAgICAgIGVjcjogdnBjLmFkZEludGVyZmFjZUVuZHBvaW50KCdFQ1IuRG9ja2VyJywge1xuICAgICAgICBwcml2YXRlRG5zRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgc2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5FQ1JfRE9DS0VSLFxuICAgICAgICBzdWJuZXRzOiB2cGNTdWJuZXRzLFxuICAgICAgICBzZWN1cml0eUdyb3VwcyxcbiAgICAgIH0pLFxuICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgKGFtb25nIG90aGVycykgZm9yIENvZGVBcnRpZmFjdCByZWdpc3RyeSB1c2FnZVxuICAgICAgczM6IHZwYy5hZGRHYXRld2F5RW5kcG9pbnQoJ1MzJywge1xuICAgICAgICBzZXJ2aWNlOiBlYzIuR2F0ZXdheVZwY0VuZHBvaW50QXdzU2VydmljZS5TMyxcbiAgICAgICAgc3VibmV0czogW3ZwY1N1Ym5ldHNdLFxuICAgICAgfSksXG4gICAgICAvLyBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyByZXN1bHRzIGZyb20gRUNTIHRhc2tzIHdpdGhpbiB3b3JrZmxvd3NcbiAgICAgIHN0ZXBGdW5jdGlvbnM6IHZwYy5hZGRJbnRlcmZhY2VFbmRwb2ludCgnU3RlcEZ1bmN0aW9ucycsIHtcbiAgICAgICAgcHJpdmF0ZURuc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIHNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuU1RFUF9GVU5DVElPTlMsXG4gICAgICAgIHN1Ym5ldHM6IHZwY1N1Ym5ldHMsXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIC8vIFRoZSBTMyBhY2Nlc3MgaXMgbmVjZXNzYXJ5IGZvciB0aGUgQ29kZUFydGlmYWN0IFJlcG9zaXRvcnkgYW5kIEVDUiBEb2NrZXJcbiAgICAvLyBlbmRwb2ludHMgdG8gYmUgdXNlZCAodGhleSBzZXJ2ZSBvYmplY3RzIGZyb20gUzMpLlxuICAgIHZwY0VuZHBvaW50cy5zMy5hZGRUb1BvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgLy8gVGhlIGluLXJlZ2lvbiBDb2RlQXJ0aWZhY3QgUzMgQnVja2V0XG4gICAgICAgICAgLi4uKGNvZGVBcnRpZmFjdCA/IFtgJHtjb2RlQXJ0aWZhY3QuczNCdWNrZXRBcm59LypgXSA6IFtdKSxcbiAgICAgICAgICAvLyBUaGUgaW4tcmVnaW9uIEVDUiBsYXllciBidWNrZXRcbiAgICAgICAgICBgYXJuOmF3czpzMzo6OnByb2QtJHtTdGFjay5vZih0aGlzKS5yZWdpb259LXN0YXJwb3J0LWxheWVyLWJ1Y2tldC8qYCxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gSXQgZG9lc24ndCBzZWVtIHdlIGNhbiBjb25zdHJhaW4gcHJpbmNpcGFscyBmb3IgdGhlc2UgZ3JhbnRzICh1bmNsZWFyXG4gICAgICAgIC8vIHdoaWNoIHByaW5jaXBhbCB0aG9zZSBjYWxscyBhcmUgbWFkZSBmcm9tLCBvciBpZiB0aGF0IGlzIHNvbWV0aGluZyB3ZVxuICAgICAgICAvLyBjb3VsZCBuYW1lIGhlcmUpLlxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgc2lkOiAnQWxsb3ctQ29kZUFydGlmYWN0LWFuZC1FQ1InLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHsgdnBjLCB2cGNFbmRwb2ludHMsIHZwY1N1Ym5ldHMsIHZwY1NlY3VyaXR5R3JvdXBzOiBzZWN1cml0eUdyb3VwcyB9O1xuICB9XG59XG5cbi8qKlxuICogSG93IHBvc3NpYmx5IHJpc2t5IG9wZXJhdGlvbnMgKHN1Y2ggYXMgZG9jLWdlbmVyYXRpb24sIHdoaWNoIHJlcXVpcmVzXG4gKiBpbnN0YWxsaW5nIHRoZSBpbmRleGVkIHBhY2thZ2VzIGluIG9yZGVyIHRvIHRyYW5zLWxpdGVyYXRlIHNhbXBsZSBjb2RlKSBhcmVcbiAqIGlzb2xhdGVkIHRvIG1pdGlnYXRlIHBvc3NpYmxlIGFyYml0cmFyeSBjb2RlIGV4ZWN1dGlvbiB2dWxuZXJhYmlsaXRpZXMgaW4gYW5kXG4gKiBhcm91bmQgYG5wbSBpbnN0YWxsYCBvciB0aGUgdHJhbnNsaXRlcmF0b3IncyB1c2Ugb2YgdGhlIFR5cGVTY3JpcHQgY29tcGlsZXIuXG4gKi9cbmV4cG9ydCBlbnVtIElzb2xhdGlvbiB7XG4gIC8qKlxuICAgKiBObyBpc29sYXRpb24gaXMgZG9uZSB3aGF0c29ldmVyLiBUaGUgZG9jLWdlbmVyYXRpb24gcHJvY2VzcyBzdGlsbCBpc1xuICAgKiBwcm92aXNpb25lZCB3aXRoIGxlYXN0LXByaXZpbGVnZSBwZXJtaXNzaW9ucywgYnV0IHJldGFpbnMgY29tcGxldGUgYWNjZXNzXG4gICAqIHRvIGludGVybmV0LlxuICAgKlxuICAgKiBXaGlsZSB0aGlzIG1heGltaXplcyB0aGUgY2hhbmNlcyBvZiBzdWNjZXNzZnVsbHkgaW5zdGFsbGluZyBwYWNrYWdlcyAoYW5kXG4gICAqIGhlbmNlIHN1Y2Nlc3NmdWxseSBnZW5lcmF0aW5nIGRvY3VtZW50YXRpb24gZm9yIHRob3NlKSwgaXQgaXMgYWxzbyB0aGVcbiAgICogbGVhc3Qgc2VjdXJlIG1vZGUgb2Ygb3BlcmF0aW9uLlxuICAgKlxuICAgKiBXZSBhZHZpc2UgeW91IG9ubHkgY29uc2lkZXIgdXNpbmcgdGhpcyBpc29sYXRpb24gbW9kZSBpZiB5b3UgYXJlIGhvc3RpbmcgYVxuICAgKiBDb25zdHJ1Y3RIdWIgaW5zdGFuY2UgdGhhdCBvbmx5IGluZGV4ZXMgdHJ1c3RlZCBwYWNrYWdlcyAoaW5jbHVkaW5nXG4gICAqIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzKS5cbiAgICovXG4gIFVOTElNSVRFRF9JTlRFUk5FVF9BQ0NFU1MsXG5cbiAgLyoqXG4gICAqIFRoZSBzYW1lIHByb3RlY3Rpb25zIGFzIGBVTkxJTUlURURfSU5URVJORVRfQUNDRVNTYCwgZXhjZXB0IG91dGJvdW5kXG4gICAqIGludGVybmV0IGNvbm5lY3Rpb25zIGFyZSBsaW1pdGVkIHRvIElQIGFkZHJlc3MgcmFuZ2VzIGNvcnJlc3BvbmRpbmcgdG9cbiAgICogaG9zdGluZyBlbmRwb2ludHMgZm9yIG5wbWpzLmNvbS5cbiAgICovXG4gIExJTUlURURfSU5URVJORVRfQUNDRVNTLFxuXG4gIC8qKlxuICAgKiBUaGUgc2FtZSBwcm90ZWN0aW9ucyBhcyBgTElNSVRFRF9JTlRFUk5FVF9BQ0NFU1NgLCBleGNlcHQgYWxsIHJlbWFpbmluZ1xuICAgKiBpbnRlcm5ldCBhY2Nlc3MgaXMgcmVtb3ZlZC4gQWxsIHRyYWZmaWMgdG8gQVdTIHNlcnZpY2UgZW5kcG9pbnRzIGlzIHJvdXRlZFxuICAgKiB0aHJvdWdoIFZQQyBFbmRwb2ludHMsIGFzIHRoZSBjb21wdXRlIG5vZGVzIGFyZSBqYWlsZWQgaW4gYSBjb21wbGV0ZWx5XG4gICAqIGlzb2xhdGVkIFZQQy5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgbW9zdCBzZWN1cmUgKGFuZCByZWNvbW1lbmRlZCkgbW9kZSBvZiBvcGVyYXRpb24gZm9yXG4gICAqIENvbnN0cnVjdEh1YiBpbnN0YW5jZXMuXG4gICAqL1xuICBOT19JTlRFUk5FVF9BQ0NFU1MsXG59XG4iXX0=
|
@@ -2,7 +2,7 @@ import * as cw from 'aws-cdk-lib/aws-cloudwatch';
|
|
2
2
|
import { Watchful } from 'cdk-watchful';
|
3
3
|
import { Construct } from 'constructs';
|
4
4
|
import { IMonitoring } from './api';
|
5
|
-
import { AlarmActions } from '../api';
|
5
|
+
import { AlarmActions, AlarmSeverity } from '../api';
|
6
6
|
/**
|
7
7
|
* Props for the monitoring construct.
|
8
8
|
*/
|
@@ -55,3 +55,4 @@ export declare class Monitoring extends Construct implements IMonitoring {
|
|
55
55
|
*/
|
56
56
|
addWebCanary(name: string, url: string): void;
|
57
57
|
}
|
58
|
+
export declare function addAlarm(title: string, alarm: cw.Alarm, severity: AlarmSeverity, monitoring: IMonitoring): void;
|
package/lib/monitoring/index.js
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.Monitoring = void 0;
|
4
|
+
exports.addAlarm = addAlarm;
|
4
5
|
const cw = require("aws-cdk-lib/aws-cloudwatch");
|
5
6
|
const cdk_watchful_1 = require("cdk-watchful");
|
6
7
|
const constructs_1 = require("constructs");
|
7
8
|
const web_canary_1 = require("./web-canary");
|
9
|
+
const api_1 = require("../api");
|
8
10
|
/**
|
9
11
|
* Construct hub monitoring.
|
10
12
|
*
|
@@ -107,4 +109,19 @@ class Monitoring extends constructs_1.Construct {
|
|
107
109
|
}
|
108
110
|
}
|
109
111
|
exports.Monitoring = Monitoring;
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uaXRvcmluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBaUQ7QUFDakQsK0NBQXdDO0FBQ3hDLDJDQUF1QztBQUV2Qyw2Q0FBeUM7QUFhekM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQWV2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXlCLEVBQUU7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFFdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVCQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM3QyxvRUFBb0U7WUFDcEUsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsY0FBYztnQkFDaEQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxFQUFFO1lBQ04sWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsb0JBQW9CO2dCQUNuRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDO2dCQUMxQyxDQUFDLENBQUMsRUFBRTtTQUNQLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQzNDLElBQUksRUFDSix1QkFBdUIsQ0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxvQkFBb0IsQ0FBQyxL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QUk7U0FDbEIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQWhJRCxnQ0FnSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjdyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBXYXRjaGZ1bCB9IGZyb20gJ2Nkay13YXRjaGZ1bCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElNb25pdG9yaW5nIH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgV2ViQ2FuYXJ5IH0gZnJvbSAnLi93ZWItY2FuYXJ5JztcbmltcG9ydCB7IEFsYXJtQWN0aW9ucyB9IGZyb20gJy4uL2FwaSc7XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBtb25pdG9yaW5nIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yaW5nUHJvcHMge1xuICAvKipcbiAgICogQVJOcyBvZiBhbGFybSBhY3Rpb25zIHRvIHRha2UgZm9yIHZhcmlvdXMgc2V2ZXJpdGllcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtQWN0aW9ucz86IEFsYXJtQWN0aW9ucztcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgaHViIG1vbml0b3JpbmcuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgdXNlcyBjZGstd2F0Y2hmdWwgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGRhc2hib2FyZCBhbmQgYVxuICogc2V0IG9mIHN0YW5kYXJkIGFsYXJtcyBmb3IgY29tbW9uIHJlc291cmNlcy5cbiAqXG4gKiBDb21wb25lbnRzIHNob3VsZCB1c2UgdGhlIEFQSXMgb2YgdGhpcyBtb2R1bGUgdG8gYWRkIHdhdGNoZnVsIG1vbml0b3JzLFxuICogYW5kIGFkZCBjYW5hcmllcyBhbmQgYWxhcm1zIGFzIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vbml0b3JpbmcgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJTW9uaXRvcmluZyB7XG4gIHByaXZhdGUgYWxhcm1BY3Rpb25zPzogQWxhcm1BY3Rpb25zO1xuICBwcml2YXRlIF9oaWdoU2V2ZXJpdHlBbGFybXM6IGN3LkFsYXJtQmFzZVtdO1xuICBwcml2YXRlIF9tZWRpdW1TZXZlcml0eUFsYXJtczogY3cuQWxhcm1CYXNlW107XG4gIHByaXZhdGUgX2xvd1NldmVyaXR5QWxhcm1zOiBjdy5BbGFybUJhc2VbXTtcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBhdXRvbWF0aWMgbW9uaXRvcmluZyB0byBzdGFuZGFyZCByZXNvdXJjZXMuIE5vdGUgdGhhdFxuICAgKiB3YXRjaGZ1bCBhbGFybXMgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIF9ub3JtYWxfIHNldmVyaXR5LiBZb3UgY2FuIGFkZFxuICAgKiBoaWdoLXNldmVyaXR5IGFsYXJtIHZpYSBgYWRkSGlnaFNldmVyaXR5QWxhcm0oKWAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2F0Y2hmdWw6IFdhdGNoZnVsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGlnaFNldmVyaXR5RGFzaGJvYXJkOiBjdy5EYXNoYm9hcmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1vbml0b3JpbmdQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuYWxhcm1BY3Rpb25zID0gcHJvcHMuYWxhcm1BY3Rpb25zO1xuXG4gICAgdGhpcy53YXRjaGZ1bCA9IG5ldyBXYXRjaGZ1bCh0aGlzLCAnV2F0Y2hmdWwnLCB7XG4gICAgICAvLyBhbGFybXMgdGhhdCBjb21lIGZyb20gd2F0Y2hmdWwgYXJlIGFsbCBjb25zaWRlcmVkIG5vcm1hbCBzZXZlcml0eVxuICAgICAgYWxhcm1BY3Rpb25Bcm5zOiB0aGlzLmFsYXJtQWN0aW9ucz8ubm9ybWFsU2V2ZXJpdHlcbiAgICAgICAgPyBbdGhpcy5hbGFybUFjdGlvbnMubm9ybWFsU2V2ZXJpdHldXG4gICAgICAgIDogW10sXG4gICAgICBhbGFybUFjdGlvbnM6IHRoaXMuYWxhcm1BY3Rpb25zPy5ub3JtYWxTZXZlcml0eUFjdGlvblxuICAgICAgICA/IFt0aGlzLmFsYXJtQWN0aW9ucy5ub3JtYWxTZXZlcml0eUFjdGlvbl1cbiAgICAgICAgOiBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMuX2hpZ2hTZXZlcml0eUFsYXJtcyA9IFtdO1xuICAgIHRoaXMuX2xvd1NldmVyaXR5QWxhcm1zID0gW107XG4gICAgdGhpcy5fbWVkaXVtU2V2ZXJpdHlBbGFybXMgPSBbXTtcblxuICAgIHRoaXMuaGlnaFNldmVyaXR5RGFzaGJvYXJkID0gbmV3IGN3LkRhc2hib2FyZChcbiAgICAgIHRoaXMsXG4gICAgICAnSGlnaFNldmVyaXR5RGFzaGJvYXJkJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGhpZ2gtc2V2ZXJpdHkgYWxhcm0uIElmIHRoaXMgYWxhcm0gZ29lcyBvZmYsIHRoZSBhY3Rpb24gc3BlY2lmaWVkIGluIGBoaWdoU2V2ZXJpdHlBbGFybUFjdGlvbkFybmBcbiAgICogQHBhcmFtIGFsYXJtXG4gICAqL1xuICBwdWJsaWMgYWRkSGlnaFNldmVyaXR5QWxhcm0odGl0bGU6IHN0cmluZywgYWxhcm06IGN3LkFsYXJtQmFzZSkge1xuICAgIGNvbnN0IGhpZ2hTZXZlcml0eUFjdGlvbkFybiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5oaWdoU2V2ZXJpdHk7XG4gICAgaWYgKGhpZ2hTZXZlcml0eUFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogaGlnaFNldmVyaXR5QWN0aW9uQXJuIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGhpZ2hTZXZlcml0eUFjdGlvbiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5oaWdoU2V2ZXJpdHlBY3Rpb247XG4gICAgaWYgKGhpZ2hTZXZlcml0eUFjdGlvbikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oaGlnaFNldmVyaXR5QWN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZ2hTZXZlcml0eURhc2hib2FyZC5hZGRXaWRnZXRzKFxuICAgICAgbmV3IGN3LkFsYXJtV2lkZ2V0KHtcbiAgICAgICAgYWxhcm0sXG4gICAgICAgIHRpdGxlLFxuICAgICAgICB3aWR0aDogMjQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLl9oaWdoU2V2ZXJpdHlBbGFybXMucHVzaChhbGFybSk7XG4gIH1cblxuICBwdWJsaWMgYWRkTG93U2V2ZXJpdHlBbGFybShfdGl0bGU6IHN0cmluZywgYWxhcm06IGN3LkFsYXJtQmFzZSkge1xuICAgIGNvbnN0IG5vcm1hbFNldmVyaXR5QWN0aW9uQXJuID0gdGhpcy5hbGFybUFjdGlvbnM/Lm5vcm1hbFNldmVyaXR5O1xuICAgIGlmIChub3JtYWxTZXZlcml0eUFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogbm9ybWFsU2V2ZXJpdHlBY3Rpb25Bcm4gfSksXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsU2V2ZXJpdHlBY3Rpb24gPSB0aGlzLmFsYXJtQWN0aW9ucz8ubm9ybWFsU2V2ZXJpdHlBY3Rpb247XG4gICAgaWYgKG5vcm1hbFNldmVyaXR5QWN0aW9uKSB7XG4gICAgICBhbGFybS5hZGRBbGFybUFjdGlvbihub3JtYWxTZXZlcml0eUFjdGlvbik7XG4gICAgfVxuICAgIHRoaXMuX2xvd1NldmVyaXR5QWxhcm1zLnB1c2goYWxhcm0pO1xuICB9XG5cbiAgcHVibGljIGFkZE1lZGl1bVNldmVyaXR5QWxhcm0oX3RpdGxlOiBzdHJpbmcsIGFsYXJtOiBjdy5BbGFybUJhc2UpIHtcbiAgICBjb25zdCBhY3Rpb25Bcm4gPSB0aGlzLmFsYXJtQWN0aW9ucz8ubWVkaXVtU2V2ZXJpdHk7XG4gICAgaWYgKGFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogYWN0aW9uQXJuIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5tZWRpdW1TZXZlcml0eUFjdGlvbjtcbiAgICBpZiAoYWN0aW9uKSB7XG4gICAgICBhbGFybS5hZGRBbGFybUFjdGlvbihhY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLl9tZWRpdW1TZXZlcml0eUFsYXJtcy5wdXNoKGFsYXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGlnaFNldmVyaXR5QWxhcm1zKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5faGlnaFNldmVyaXR5QWxhcm1zXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVkaXVtU2V2ZXJpdHlBbGFybXMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9tZWRpdW1TZXZlcml0eUFsYXJtc107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvd1NldmVyaXR5QWxhcm1zKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fbG93U2V2ZXJpdHlBbGFybXNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjYW5hcnkgdGhhdCBwaW5ncyBhIGNlcnRhaW4gVVJMIGFuZCByYWlzZXMgYW4gYWxhcm0gaW4gY2FzZSB0aGUgVVJMXG4gICAqIHJlc3BvbmRzIHdpdGggYW4gZXJyb3Igb3ZlciA4MCUgb2YgdGhlIHRpbWVzLlxuICAgKlxuICAgKiBDYW5hcnkgZmFpbHVyZXMgYXJlIGFsd2F5cyBjb25zaWRlcmVkIGhpZ2gtc2V2ZXJpdHkgKGF0IHRoaXMgcG9pbnQpLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY2FuYXJ5XG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCB0byBwaW5nXG4gICAqL1xuICBwdWJsaWMgYWRkV2ViQ2FuYXJ5KG5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjYW5hcnkgPSBuZXcgV2ViQ2FuYXJ5KFxuICAgICAgdGhpcyxcbiAgICAgIGBXZWJDYW5hcnkke25hbWUucmVwbGFjZSgvW15BLVowLTldL2dpLCAnJyl9YCxcbiAgICAgIHtcbiAgICAgICAgdXJsLFxuICAgICAgICBkaXNwbGF5TmFtZTogbmFtZSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5hZGRIaWdoU2V2ZXJpdHlBbGFybShgJHtuYW1lfSBDYW5hcnlgLCBjYW5hcnkuYWxhcm0pO1xuICB9XG59XG4iXX0=
|
112
|
+
function addAlarm(title, alarm, severity, monitoring) {
|
113
|
+
switch (severity) {
|
114
|
+
case api_1.AlarmSeverity.HIGH:
|
115
|
+
monitoring.addHighSeverityAlarm(title, alarm);
|
116
|
+
break;
|
117
|
+
case api_1.AlarmSeverity.LOW:
|
118
|
+
monitoring.addLowSeverityAlarm(title, alarm);
|
119
|
+
break;
|
120
|
+
case api_1.AlarmSeverity.MEDIUM:
|
121
|
+
monitoring.addMediumSeverityAlarm(title, alarm);
|
122
|
+
break;
|
123
|
+
default:
|
124
|
+
throw new Error(`Unknown alarm severity: ${severity}`);
|
125
|
+
}
|
126
|
+
}
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uaXRvcmluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0SkEsNEJBY0M7QUExS0QsaURBQWlEO0FBQ2pELCtDQUF3QztBQUN4QywyQ0FBdUM7QUFFdkMsNkNBQXlDO0FBQ3pDLGdDQUFxRDtBQVlyRDs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBZXZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBeUIsRUFBRTtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUV2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksdUJBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzdDLG9FQUFvRTtZQUNwRSxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxjQUFjO2dCQUNoRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLEVBQUU7WUFDTixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxvQkFBb0I7Z0JBQ25ELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFFaEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FDM0MsSUFBSSxFQUNKLHVCQUF1QixDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVE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QUNFLEdBQUc7WUFDSCxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBaElELGdDQWdJQztBQUVELFNBQWdCLFFBQVEsQ0FBQyxLQUFhLEVBQUUsS0FBZSxFQUFFLFFBQXVCLEVBQUUsVUFBdUI7SUFDdkcsUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNqQixLQUFLLG1CQUFhLENBQUMsSUFBSTtZQUNyQixVQUFVLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzlDLE1BQU07UUFDUixLQUFLLG1CQUFhLENBQUMsR0FBRztZQUNwQixVQUFVLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdDLE1BQU07UUFDUixLQUFLLG1CQUFhLENBQUMsTUFBTTtZQUN2QixVQUFVLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hELE1BQU07UUFDUjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjdyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBXYXRjaGZ1bCB9IGZyb20gJ2Nkay13YXRjaGZ1bCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElNb25pdG9yaW5nIH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgV2ViQ2FuYXJ5IH0gZnJvbSAnLi93ZWItY2FuYXJ5JztcbmltcG9ydCB7IEFsYXJtQWN0aW9ucywgQWxhcm1TZXZlcml0eSB9IGZyb20gJy4uL2FwaSc7XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBtb25pdG9yaW5nIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yaW5nUHJvcHMge1xuICAvKipcbiAgICogQVJOcyBvZiBhbGFybSBhY3Rpb25zIHRvIHRha2UgZm9yIHZhcmlvdXMgc2V2ZXJpdGllcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtQWN0aW9ucz86IEFsYXJtQWN0aW9ucztcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgaHViIG1vbml0b3JpbmcuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgdXNlcyBjZGstd2F0Y2hmdWwgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGRhc2hib2FyZCBhbmQgYVxuICogc2V0IG9mIHN0YW5kYXJkIGFsYXJtcyBmb3IgY29tbW9uIHJlc291cmNlcy5cbiAqXG4gKiBDb21wb25lbnRzIHNob3VsZCB1c2UgdGhlIEFQSXMgb2YgdGhpcyBtb2R1bGUgdG8gYWRkIHdhdGNoZnVsIG1vbml0b3JzLFxuICogYW5kIGFkZCBjYW5hcmllcyBhbmQgYWxhcm1zIGFzIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vbml0b3JpbmcgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJTW9uaXRvcmluZyB7XG4gIHByaXZhdGUgYWxhcm1BY3Rpb25zPzogQWxhcm1BY3Rpb25zO1xuICBwcml2YXRlIF9oaWdoU2V2ZXJpdHlBbGFybXM6IGN3LkFsYXJtQmFzZVtdO1xuICBwcml2YXRlIF9tZWRpdW1TZXZlcml0eUFsYXJtczogY3cuQWxhcm1CYXNlW107XG4gIHByaXZhdGUgX2xvd1NldmVyaXR5QWxhcm1zOiBjdy5BbGFybUJhc2VbXTtcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBhdXRvbWF0aWMgbW9uaXRvcmluZyB0byBzdGFuZGFyZCByZXNvdXJjZXMuIE5vdGUgdGhhdFxuICAgKiB3YXRjaGZ1bCBhbGFybXMgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIF9ub3JtYWxfIHNldmVyaXR5LiBZb3UgY2FuIGFkZFxuICAgKiBoaWdoLXNldmVyaXR5IGFsYXJtIHZpYSBgYWRkSGlnaFNldmVyaXR5QWxhcm0oKWAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2F0Y2hmdWw6IFdhdGNoZnVsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGlnaFNldmVyaXR5RGFzaGJvYXJkOiBjdy5EYXNoYm9hcmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1vbml0b3JpbmdQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuYWxhcm1BY3Rpb25zID0gcHJvcHMuYWxhcm1BY3Rpb25zO1xuXG4gICAgdGhpcy53YXRjaGZ1bCA9IG5ldyBXYXRjaGZ1bCh0aGlzLCAnV2F0Y2hmdWwnLCB7XG4gICAgICAvLyBhbGFybXMgdGhhdCBjb21lIGZyb20gd2F0Y2hmdWwgYXJlIGFsbCBjb25zaWRlcmVkIG5vcm1hbCBzZXZlcml0eVxuICAgICAgYWxhcm1BY3Rpb25Bcm5zOiB0aGlzLmFsYXJtQWN0aW9ucz8ubm9ybWFsU2V2ZXJpdHlcbiAgICAgICAgPyBbdGhpcy5hbGFybUFjdGlvbnMubm9ybWFsU2V2ZXJpdHldXG4gICAgICAgIDogW10sXG4gICAgICBhbGFybUFjdGlvbnM6IHRoaXMuYWxhcm1BY3Rpb25zPy5ub3JtYWxTZXZlcml0eUFjdGlvblxuICAgICAgICA/IFt0aGlzLmFsYXJtQWN0aW9ucy5ub3JtYWxTZXZlcml0eUFjdGlvbl1cbiAgICAgICAgOiBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMuX2hpZ2hTZXZlcml0eUFsYXJtcyA9IFtdO1xuICAgIHRoaXMuX2xvd1NldmVyaXR5QWxhcm1zID0gW107XG4gICAgdGhpcy5fbWVkaXVtU2V2ZXJpdHlBbGFybXMgPSBbXTtcblxuICAgIHRoaXMuaGlnaFNldmVyaXR5RGFzaGJvYXJkID0gbmV3IGN3LkRhc2hib2FyZChcbiAgICAgIHRoaXMsXG4gICAgICAnSGlnaFNldmVyaXR5RGFzaGJvYXJkJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGhpZ2gtc2V2ZXJpdHkgYWxhcm0uIElmIHRoaXMgYWxhcm0gZ29lcyBvZmYsIHRoZSBhY3Rpb24gc3BlY2lmaWVkIGluIGBoaWdoU2V2ZXJpdHlBbGFybUFjdGlvbkFybmBcbiAgICogQHBhcmFtIGFsYXJtXG4gICAqL1xuICBwdWJsaWMgYWRkSGlnaFNldmVyaXR5QWxhcm0odGl0bGU6IHN0cmluZywgYWxhcm06IGN3LkFsYXJtQmFzZSkge1xuICAgIGNvbnN0IGhpZ2hTZXZlcml0eUFjdGlvbkFybiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5oaWdoU2V2ZXJpdHk7XG4gICAgaWYgKGhpZ2hTZXZlcml0eUFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogaGlnaFNldmVyaXR5QWN0aW9uQXJuIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGhpZ2hTZXZlcml0eUFjdGlvbiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5oaWdoU2V2ZXJpdHlBY3Rpb247XG4gICAgaWYgKGhpZ2hTZXZlcml0eUFjdGlvbikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oaGlnaFNldmVyaXR5QWN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZ2hTZXZlcml0eURhc2hib2FyZC5hZGRXaWRnZXRzKFxuICAgICAgbmV3IGN3LkFsYXJtV2lkZ2V0KHtcbiAgICAgICAgYWxhcm0sXG4gICAgICAgIHRpdGxlLFxuICAgICAgICB3aWR0aDogMjQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLl9oaWdoU2V2ZXJpdHlBbGFybXMucHVzaChhbGFybSk7XG4gIH1cblxuICBwdWJsaWMgYWRkTG93U2V2ZXJpdHlBbGFybShfdGl0bGU6IHN0cmluZywgYWxhcm06IGN3LkFsYXJtQmFzZSkge1xuICAgIGNvbnN0IG5vcm1hbFNldmVyaXR5QWN0aW9uQXJuID0gdGhpcy5hbGFybUFjdGlvbnM/Lm5vcm1hbFNldmVyaXR5O1xuICAgIGlmIChub3JtYWxTZXZlcml0eUFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogbm9ybWFsU2V2ZXJpdHlBY3Rpb25Bcm4gfSksXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsU2V2ZXJpdHlBY3Rpb24gPSB0aGlzLmFsYXJtQWN0aW9ucz8ubm9ybWFsU2V2ZXJpdHlBY3Rpb247XG4gICAgaWYgKG5vcm1hbFNldmVyaXR5QWN0aW9uKSB7XG4gICAgICBhbGFybS5hZGRBbGFybUFjdGlvbihub3JtYWxTZXZlcml0eUFjdGlvbik7XG4gICAgfVxuICAgIHRoaXMuX2xvd1NldmVyaXR5QWxhcm1zLnB1c2goYWxhcm0pO1xuICB9XG5cbiAgcHVibGljIGFkZE1lZGl1bVNldmVyaXR5QWxhcm0oX3RpdGxlOiBzdHJpbmcsIGFsYXJtOiBjdy5BbGFybUJhc2UpIHtcbiAgICBjb25zdCBhY3Rpb25Bcm4gPSB0aGlzLmFsYXJtQWN0aW9ucz8ubWVkaXVtU2V2ZXJpdHk7XG4gICAgaWYgKGFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogYWN0aW9uQXJuIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5tZWRpdW1TZXZlcml0eUFjdGlvbjtcbiAgICBpZiAoYWN0aW9uKSB7XG4gICAgICBhbGFybS5hZGRBbGFybUFjdGlvbihhY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLl9tZWRpdW1TZXZlcml0eUFsYXJtcy5wdXNoKGFsYXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGlnaFNldmVyaXR5QWxhcm1zKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5faGlnaFNldmVyaXR5QWxhcm1zXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVkaXVtU2V2ZXJpdHlBbGFybXMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9tZWRpdW1TZXZlcml0eUFsYXJtc107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvd1NldmVyaXR5QWxhcm1zKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fbG93U2V2ZXJpdHlBbGFybXNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjYW5hcnkgdGhhdCBwaW5ncyBhIGNlcnRhaW4gVVJMIGFuZCByYWlzZXMgYW4gYWxhcm0gaW4gY2FzZSB0aGUgVVJMXG4gICAqIHJlc3BvbmRzIHdpdGggYW4gZXJyb3Igb3ZlciA4MCUgb2YgdGhlIHRpbWVzLlxuICAgKlxuICAgKiBDYW5hcnkgZmFpbHVyZXMgYXJlIGFsd2F5cyBjb25zaWRlcmVkIGhpZ2gtc2V2ZXJpdHkgKGF0IHRoaXMgcG9pbnQpLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY2FuYXJ5XG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCB0byBwaW5nXG4gICAqL1xuICBwdWJsaWMgYWRkV2ViQ2FuYXJ5KG5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjYW5hcnkgPSBuZXcgV2ViQ2FuYXJ5KFxuICAgICAgdGhpcyxcbiAgICAgIGBXZWJDYW5hcnkke25hbWUucmVwbGFjZSgvW15BLVowLTldL2dpLCAnJyl9YCxcbiAgICAgIHtcbiAgICAgICAgdXJsLFxuICAgICAgICBkaXNwbGF5TmFtZTogbmFtZSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5hZGRIaWdoU2V2ZXJpdHlBbGFybShgJHtuYW1lfSBDYW5hcnlgLCBjYW5hcnkuYWxhcm0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRBbGFybSh0aXRsZTogc3RyaW5nLCBhbGFybTogY3cuQWxhcm0sIHNldmVyaXR5OiBBbGFybVNldmVyaXR5LCBtb25pdG9yaW5nOiBJTW9uaXRvcmluZykge1xuICBzd2l0Y2ggKHNldmVyaXR5KSB7XG4gICAgY2FzZSBBbGFybVNldmVyaXR5LkhJR0g6XG4gICAgICBtb25pdG9yaW5nLmFkZEhpZ2hTZXZlcml0eUFsYXJtKHRpdGxlLCBhbGFybSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFsYXJtU2V2ZXJpdHkuTE9XOlxuICAgICAgbW9uaXRvcmluZy5hZGRMb3dTZXZlcml0eUFsYXJtKHRpdGxlLCBhbGFybSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFsYXJtU2V2ZXJpdHkuTUVESVVNOlxuICAgICAgbW9uaXRvcmluZy5hZGRNZWRpdW1TZXZlcml0eUFsYXJtKHRpdGxlLCBhbGFybSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFsYXJtIHNldmVyaXR5OiAke3NldmVyaXR5fWApO1xuICB9XG59Il19
|
@@ -278,5 +278,5 @@ class CodeArtifact {
|
|
278
278
|
}
|
279
279
|
exports.CodeArtifact = CodeArtifact;
|
280
280
|
_a = JSII_RTTI_SYMBOL_1;
|
281
|
-
CodeArtifact[_a] = { fqn: "construct-hub.sources.CodeArtifact", version: "0.4.
|
281
|
+
CodeArtifact[_a] = { fqn: "construct-hub.sources.CodeArtifact", version: "0.4.416" };
|
282
282
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWNrYWdlLXNvdXJjZXMvY29kZS1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE4RDtBQUM5RCwrREFRb0M7QUFFcEMsdURBQThDO0FBQzlDLHVFQUFnRTtBQUNoRSxpREFBOEQ7QUFDOUQsdURBQWlEO0FBQ2pELCtDQUFnRTtBQUNoRSxpREFBNkQ7QUFFN0QsNENBS3NCO0FBQ3RCLGtEQUE2QztBQU03QyxvRkFBK0U7QUFDL0Usb0ZBTWdEO0FBQ2hELDJDQUFpRDtBQWNqRDs7O0dBR0c7QUFDSCxNQUFhLFlBQVk7SUFDdkIsWUFBb0MsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFBRyxDQUFDO0lBRXpELElBQUksQ0FDVCxLQUFnQixFQUNoQixFQUNFLFFBQVEsRUFDUixTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxHQUNvQjtRQUUzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUxSSxNQUFNLGNBQWMsR0FBRywwQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ2pCLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsUUFBUSxnQkFBZ0IsRUFBRTtnQkFDM0QsaUJBQWlCLEVBQUUsMEJBQWlCLENB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LFVBQVUsK0RBQW1DO1lBQzdDLFNBQVMsRUFBRSwyQ0FBaUI7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF2VEgsb0NBd1RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJuRm9ybWF0LCBBd3MsIER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIENvbXBhcmlzb25PcGVyYXRvcixcbiAgR3JhcGhXaWRnZXQsXG4gIE1hdGhFeHByZXNzaW9uLFxuICBNZXRyaWMsXG4gIE1ldHJpY09wdGlvbnMsXG4gIFN0YXRpc3RpYyxcbiAgVHJlYXRNaXNzaW5nRGF0YSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ2ZuUmVwb3NpdG9yeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYXJ0aWZhY3QnO1xuaW1wb3J0IHsgUnVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFRyYWNpbmcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBJQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IFF1ZXVlLCBRdWV1ZUVuY3J5cHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3FzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgY29kZUFydGlmYWN0UmVwb3NpdG9yeVVybCxcbiAgbGFtYmRhRnVuY3Rpb25VcmwsXG4gIGxhbWJkYVNlYXJjaExvZ0dyb3VwVXJsLFxuICBzcXNRdWV1ZVVybCxcbn0gZnJvbSAnLi4vZGVlcC1saW5rJztcbmltcG9ydCB7IGZpbGxNZXRyaWMgfSBmcm9tICcuLi9tZXRyaWMtdXRpbHMnO1xuaW1wb3J0IHR5cGUge1xuICBJUGFja2FnZVNvdXJjZSxcbiAgUGFja2FnZVNvdXJjZUJpbmRPcHRpb25zLFxuICBQYWNrYWdlU291cmNlQmluZFJlc3VsdCxcbn0gZnJvbSAnLi4vcGFja2FnZS1zb3VyY2UnO1xuaW1wb3J0IHsgQ29kZUFydGlmYWN0Rm9yd2FyZGVyIH0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QvY29kZS1hcnRpZmFjdC1mb3J3YXJkZXInO1xuaW1wb3J0IHtcbiAgTUVUUklDU19OQU1FU1BBQ0UsXG4gIE1ldHJpY05hbWUsXG4gIERPTUFJTl9OQU1FX0RJTUVOU0lPTixcbiAgRE9NQUlOX09XTkVSX0RJTUVOU0lPTixcbiAgUkVQT1NJVE9SWV9OQU1FX0RJTUVOU0lPTixcbn0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QvY29uc3RhbnRzLmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgUzNTdG9yYWdlRmFjdG9yeSB9IGZyb20gJy4uL3MzL3N0b3JhZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVBcnRpZmFjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yeSB3aGVyZSBwYWNrYWdlcyBhcmUgb2J0YWluZWQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk6IENmblJlcG9zaXRvcnk7XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBidWNrZXQgd2hlcmUgcGFja2FnZXMgd2lsbCBiZSBzdGFnZWQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ/OiBJQnVja2V0O1xufVxuXG4vKipcbiAqIEEgcGFja2FnZSBzb3VyY2UgdGhhdCBvYnRhaW5zIHBhY2thZ2UgZGF0YSBmcm9tIGFuIG5wbSBDb2RlQXJ0aWZhY3RcbiAqIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlQXJ0aWZhY3QgaW1wbGVtZW50cyBJUGFja2FnZVNvdXJjZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDb2RlQXJ0aWZhY3RQcm9wcykge31cblxuICBwdWJsaWMgYmluZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIHtcbiAgICAgIGRlbnlMaXN0LFxuICAgICAgaW5nZXN0aW9uLFxuICAgICAgbGljZW5zZUxpc3QsXG4gICAgICBtb25pdG9yaW5nLFxuICAgICAgb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgICBxdWV1ZSxcbiAgICB9OiBQYWNrYWdlU291cmNlQmluZE9wdGlvbnNcbiAgKTogUGFja2FnZVNvdXJjZUJpbmRSZXN1bHQge1xuICAgIGNvbnN0IGlkUHJlZml4ID0gdGhpcy5wcm9wcy5yZXBvc2l0b3J5Lm5vZGUucGF0aDtcbiAgICBjb25zdCByZXBvc2l0b3J5SWQgPSBgJHt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyfToke3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZX0vJHt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWV9YDtcblxuICAgIGNvbnN0IHN0b3JhZ2VGYWN0b3J5ID0gUzNTdG9yYWdlRmFjdG9yeS5nZXRPckNyZWF0ZShzY29wZSk7XG4gICAgY29uc3QgYnVja2V0ID1cbiAgICAgIHRoaXMucHJvcHMuYnVja2V0IHx8XG4gICAgICBzdG9yYWdlRmFjdG9yeS5uZXdCdWNrZXQoc2NvcGUsIGAke2lkUHJlZml4fS9TdGFnaW5nQnVja2V0YCwge1xuICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgICBsaWZlY3ljbGVSdWxlczogW3sgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzMCkgfV0sXG4gICAgICB9KTtcbiAgICBidWNrZXQuZ3JhbnRSZWFkKGluZ2VzdGlvbik7XG5cbiAgICBjb25zdCBkbHEgPSBuZXcgUXVldWUoc2NvcGUsIGAke2lkUHJlZml4fS9ETFFgLCB7XG4gICAgICBlbmNyeXB0aW9uOiBRdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRUQsXG4gICAgICByZXRlbnRpb25QZXJpb2Q6IER1cmF0aW9uLmRheXMoMTQpLFxuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZm9yd2FyZGVyID0gbmV3IENvZGVBcnRpZmFjdEZvcndhcmRlcihcbiAgICAgIHNjb3BlLFxuICAgICAgYCR7aWRQcmVmaXh9L0ZvcndhcmRlcmAsXG4gICAgICB7XG4gICAgICAgIGRlYWRMZXR0ZXJRdWV1ZTogZGxxLFxuICAgICAgICBkZXNjcmlwdGlvbjogYFske3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfV0gSGFuZGxlIENvZGVBcnRpZmFjdCBFdmVudEJyaWRnZSBldmVudHNgLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIEFXU19FTUZfRU5WSVJPTk1FTlQ6ICdMb2NhbCcsXG4gICAgICAgICAgQlVDS0VUX05BTUU6IGJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICAgIFFVRVVFX1VSTDogcXVldWUucXVldWVVcmwsXG4gICAgICAgIH0sXG4gICAgICAgIG1lbW9yeVNpemU6IDEwMjQsXG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgIH1cbiAgICApO1xuICAgIGJ1Y2tldC5ncmFudFJlYWRXcml0ZShmb3J3YXJkZXIpO1xuICAgIGRlbnlMaXN0Py5ncmFudFJlYWQoZm9yd2FyZGVyKTtcbiAgICBsaWNlbnNlTGlzdC5ncmFudFJlYWQoZm9yd2FyZGVyKTtcbiAgICBxdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhmb3J3YXJkZXIpO1xuICAgIGZvcndhcmRlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnY29kZWFydGlmYWN0OkdldFBhY2thZ2VWZXJzaW9uQXNzZXQnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgICAgICBzZXJ2aWNlOiAnY29kZWFydGlmYWN0JyxcbiAgICAgICAgICAgIHJlc291cmNlOiAncGFja2FnZScsXG4gICAgICAgICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiBbXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lLFxuICAgICAgICAgICAgICAnbnBtJywgLy8gcGFja2FnZSBmb3JtYXRcbiAgICAgICAgICAgICAgJyonLCAvLyBuYW1lc3BhY2UvcGFja2FnZS1uYW1lXG4gICAgICAgICAgICBdLmpvaW4oJy8nKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZShzY29wZSwgYCR7aWRQcmVmaXh9L0V2ZW50QnJpZGdlYCwge1xuICAgICAgZGVzY3JpcHRpb246IGAke3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfS9FdmVudEJyaWRnZWAsXG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbJ2F3cy5jb2RlYXJ0aWZhY3QnXSxcbiAgICAgICAgZGV0YWlsVHlwZTogWydDb2RlQXJ0aWZhY3QgUGFja2FnZSBWZXJzaW9uIFN0YXRlIENoYW5nZSddLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBkb21haW5Pd25lcjogW3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXJdLFxuICAgICAgICAgIGRvbWFpbk5hbWU6IFt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk5hbWVdLFxuICAgICAgICAgIHJlcG9zaXRvcnlOYW1lOiBbdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lXSxcbiAgICAgICAgICBwYWNrYWdlRm9ybWF0OiBbJ25wbSddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRhcmdldHM6IFtuZXcgTGFtYmRhRnVuY3Rpb24oZm9yd2FyZGVyKV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmYWlsdXJlQWxhcm0gPSBmb3J3YXJkZXJcbiAgICAgIC5tZXRyaWNFcnJvcnMoKVxuICAgICAgLmNyZWF0ZUFsYXJtKHNjb3BlLCBgJHtpZFByZWZpeH0vRm9yd2FyZGVyL0ZhaWx1cmVzYCwge1xuICAgICAgICBhbGFybU5hbWU6IGAke3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfS9Gb3J3YXJkZXJgLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBbXG4gICAgICAgICAgYFRoZSBDb2RlQXJ0aWZhY3QgZm93YXJkZXIgZm9yICR7cmVwb3NpdG9yeUlkfSBpcyBmYWlsaW5nYCxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgTGluayB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uOiAke2xhbWJkYUZ1bmN0aW9uVXJsKGZvcndhcmRlcil9YCxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOlxuICAgICAgICAgIENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLk1JU1NJTkcsXG4gICAgICB9KTtcbiAgICBtb25pdG9yaW5nLmFkZEhpZ2hTZXZlcml0eUFsYXJtKFxuICAgICAgYENvZGVBcnRpZmFjdDoke3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZX0gRmFpbHVyZXNgLFxuICAgICAgZmFpbHVyZUFsYXJtXG4gICAgKTtcblxuICAgIGNvbnN0IGRscU5vdEVtcHR5QWxhcm0gPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgZXhwcmVzc2lvbjogJ21WaXNpYmxlICsgbUhpZGRlbicsXG4gICAgICB1c2luZ01ldHJpY3M6IHtcbiAgICAgICAgbVZpc2libGU6IGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHtcbiAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgIH0pLFxuICAgICAgICBtSGlkZGVuOiBkbHEubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzTm90VmlzaWJsZSh7XG4gICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0oc2NvcGUsIGAke2lkUHJlZml4fS9Gb3J3YXJkZXIvRExRTm90RW1wdHlgLCB7XG4gICAgICBhbGFybU5hbWU6IGAke3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfS9ETFFOb3RFbXB0eWAsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBbXG4gICAgICAgIGBUaGUgQ29kZUFydGlmYWN0IGZvd2FyZGVyIGZvciAke3JlcG9zaXRvcnlJZH0gaXMgZmFpbGluZ2AsXG4gICAgICAgICcnLFxuICAgICAgICBgTGluayB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uOiAke2xhbWJkYUZ1bmN0aW9uVXJsKGZvcndhcmRlcil9YCxcbiAgICAgICAgYExpbmsgdG8gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlOiAke3Nxc1F1ZXVlVXJsKGRscSl9YCxcbiAgICAgIF0uam9pbignL24nKSxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KTtcbiAgICBtb25pdG9yaW5nLmFkZExvd1NldmVyaXR5QWxhcm0oXG4gICAgICBgQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfSBETFEgTm90IEVtcHR5YCxcbiAgICAgIGRscU5vdEVtcHR5QWxhcm1cbiAgICApO1xuXG4gICAgcnVsZS5ub2RlLmFkZERlcGVuZGVuY3koZmFpbHVyZUFsYXJtLCBkbHFOb3RFbXB0eUFsYXJtKTtcblxuICAgIG92ZXJ2aWV3RGFzaGJvYXJkLmFkZERMUU1ldHJpY1RvRGFzaGJvYXJkKFxuICAgICAgYENvZGVBcnRpZmFjdC8ke3JlcG9zaXRvcnlJZH0gRExRYCxcbiAgICAgIGRscVxuICAgICk7XG4gICAgb3ZlcnZpZXdEYXNoYm9hcmQuYWRkQ29uY3VycmVudEV4ZWN1dGlvbk1ldHJpY1RvRGFzaGJvYXJkKFxuICAgICAgZm9yd2FyZGVyLFxuICAgICAgYCR7aWRQcmVmaXh9L0ZvcndhcmRlckxhbWJkYWBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGBDb2RlQXJ0aWZhY3Q6ICR7cmVwb3NpdG9yeUlkfWAsXG4gICAgICBsaW5rczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NvZGVBcnRpZmFjdCcsXG4gICAgICAgICAgdXJsOiBjb2RlQXJ0aWZhY3RSZXBvc2l0b3J5VXJsKHRoaXMucHJvcHMucmVwb3NpdG9yeSksXG4gICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGb3J3YXJkZXIgRnVuY3Rpb24nLFxuICAgICAgICAgIHVybDogbGFtYmRhRnVuY3Rpb25VcmwoZm9yd2FyZGVyKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZWFyY2ggTG9nIGdyb3VwJyxcbiAgICAgICAgICB1cmw6IGxhbWJkYVNlYXJjaExvZ0dyb3VwVXJsKGZvcndhcmRlciksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRExRJyxcbiAgICAgICAgICB1cmw6IHNxc1F1ZXVlVXJsKGRscSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZGFzaGJvYXJkV2lkZ2V0czogW1xuICAgICAgICBbXG4gICAgICAgICAgbmV3IEdyYXBoV2lkZ2V0KHtcbiAgICAgICAgICAgIGhlaWdodDogNixcbiAgICAgICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgICAgIHRpdGxlOiAnRnVuY3Rpb24gSGVhbHRoJyxcbiAgICAgICAgICAgIGxlZnQ6IFtcbiAgICAgICAgICAgICAgZmlsbE1ldHJpYyhmb3J3YXJkZXIubWV0cmljSW52b2NhdGlvbnMoeyBsYWJlbDogJ0ludm9jYXRpb25zJyB9KSksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoZm9yd2FyZGVyLm1ldHJpY0Vycm9ycyh7IGxhYmVsOiAnRXJyb3JzJyB9KSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbGVmdFlBeGlzOiB7IG1pbjogMCB9LFxuICAgICAgICAgICAgcmlnaHQ6IFtmb3J3YXJkZXIubWV0cmljRHVyYXRpb24oeyBsYWJlbDogJ0R1cmF0aW9uJyB9KV0sXG4gICAgICAgICAgICByaWdodFlBeGlzOiB7IG1pbjogMCB9LFxuICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBuZXcgR3JhcGhXaWRnZXQoe1xuICAgICAgICAgICAgaGVpZ2h0OiA2LFxuICAgICAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICAgICAgdGl0bGU6ICdEZWFkIExldHRlciBRdWV1ZScsXG4gICAgICAgICAgICBsZWZ0OiBbXG4gICAgICAgICAgICAgIGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1Zpc2libGUgTWVzc2FnZXMnLFxuICAgICAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNOb3RWaXNpYmxlKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0hpZGRlbiBNZXNzYWdlcycsXG4gICAgICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBsZWZ0WUF4aXM6IHsgbWluOiAwIH0sXG4gICAgICAgICAgICByaWdodDogW1xuICAgICAgICAgICAgICBkbHEubWV0cmljQXBwcm94aW1hdGVBZ2VPZk9sZGVzdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnT2xkZXN0IE1lc3NhZ2UgQWdlJyxcbiAgICAgICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJpZ2h0WUF4aXM6IHsgbWluOiAwIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICBuZXcgR3JhcGhXaWRnZXQoe1xuICAgICAgICAgICAgaGVpZ2h0OiA2LFxuICAgICAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICAgICAgdGl0bGU6ICdRdWFsaXR5IE1ldHJpY3MnLFxuICAgICAgICAgICAgbGVmdDogW1xuICAgICAgICAgICAgICBmaWxsTWV0cmljKFxuICAgICAgICAgICAgICAgIHRoaXMubWV0cmljTm90SnNpaUVuYWJsZWRDb3VudCh7IGxhYmVsOiAnTm90IGEganNpaSBwYWNrYWdlJyB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRyaWNJbmVsaWdpYmxlTGljZW5zZSh7IGxhYmVsOiAnSW5lbGlnaWJsZSBMaWNlbnNlJyB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRyaWNEZW55TGlzdGVkQ291bnQoeyBsYWJlbDogJ0RlbnkgTGlzdGVkJyB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRyaWNEZWxldGVkQ291bnQoeyBsYWJlbDogJ0RlbGV0aW9uIEV2ZW50cycgfSksXG4gICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGxlZnRZQXhpczogeyBtaW46IDAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY291bnQgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgaWdub3JlZCBkdWUgdG8gYmVpbmcgaW4gdGhlIGRlbnkgbGlzdC5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNEZW55TGlzdGVkQ291bnQob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFtET01BSU5fT1dORVJfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5Pd25lcixcbiAgICAgICAgW0RPTUFJTl9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgW1JFUE9TSVRPUllfTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWUsXG4gICAgICB9LFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5ERU5ZX0xJU1RFRF9DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWNrYWdlIHZlcnNpb25zIHRoYXQgd2VyZSBpZ25vcmVkIGR1ZSB0byB1c2luZyBhbiBpbmVsb2lnaWJsZSBsaWNlbnNlLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0luZWxpZ2libGVMaWNlbnNlKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5TVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBbRE9NQUlOX09XTkVSX0RJTUVOU0lPTl06XG4gICAgICAgICAgdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5Pd25lciA/PyBBd3MuQUNDT1VOVF9JRCxcbiAgICAgICAgW0RPTUFJTl9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgW1JFUE9TSVRPUllfTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWUsXG4gICAgICB9LFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5JTkVMSUdJQkxFX0xJQ0VOU0UsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgZGVsZXRlZCBmcm9tIENvZGVBcnRpZmFjdCAodGhvc2UgZXZlbnRzIGFyZSBub3RcbiAgICogaGFuZGxlZCBjdXJyZW50bHkpLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0RlbGV0ZWRDb3VudChvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgW0RPTUFJTl9PV05FUl9ESU1FTlNJT05dOlxuICAgICAgICAgIHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXIgPz8gQXdzLkFDQ09VTlRfSUQsXG4gICAgICAgIFtET01BSU5fTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk5hbWUsXG4gICAgICAgIFtSRVBPU0lUT1JZX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lLFxuICAgICAgfSxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuREVMRVRFRF9DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWNrYWdlIHZlcnNpb25zIHRoYXQgZG8gbm90IGhhdmUgYSBqc2lpIGFzc2VtYmx5IGluIHRoZSBwYWNrYWdlLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY05vdEpzaWlFbmFibGVkQ291bnQob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFtET01BSU5fT1dORVJfRElNRU5TSU9OXTpcbiAgICAgICAgICB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyID8/IEF3cy5BQ0NPVU5UX0lELFxuICAgICAgICBbRE9NQUlOX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lLFxuICAgICAgICBbUkVQT1NJVE9SWV9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZSxcbiAgICAgIH0sXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLk5PVF9KU0lJX0VOQUJMRURfQ09VTlQsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -63533,6 +63533,9 @@ var CanaryStateService = class {
|
|
63533
63533
|
const publishedAt = (await getJSON(
|
63534
63534
|
`https://registry.npmjs.org/${encodeURIComponent(packageName)}`
|
63535
63535
|
)).time[version2];
|
63536
|
+
if (publishedAt === void 0) {
|
63537
|
+
throw new Error(`Latest version of ${packageName} is ${version2} but publish time has not been reported.`);
|
63538
|
+
}
|
63536
63539
|
console.log(
|
63537
63540
|
`Package: ${packageName} | Version : ${version2} | Published At: ${publishedAt}`
|
63538
63541
|
);
|