@effect-aws/client-elasticache 1.2.0 → 1.3.1
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/CHANGELOG.md +12 -0
- package/README.md +89 -1
- package/lib/ElastiCacheService.d.ts +163 -154
- package/lib/ElastiCacheService.js +6 -3
- package/lib/esm/ElastiCacheService.js +7 -4
- package/package.json +6 -6
- package/vitest.config.ts +3 -0
|
@@ -53,8 +53,8 @@ const commands = {
|
|
|
53
53
|
DescribeReplicationGroupsCommand: client_elasticache_1.DescribeReplicationGroupsCommand,
|
|
54
54
|
DescribeReservedCacheNodesCommand: client_elasticache_1.DescribeReservedCacheNodesCommand,
|
|
55
55
|
DescribeReservedCacheNodesOfferingsCommand: client_elasticache_1.DescribeReservedCacheNodesOfferingsCommand,
|
|
56
|
-
DescribeServerlessCachesCommand: client_elasticache_1.DescribeServerlessCachesCommand,
|
|
57
56
|
DescribeServerlessCacheSnapshotsCommand: client_elasticache_1.DescribeServerlessCacheSnapshotsCommand,
|
|
57
|
+
DescribeServerlessCachesCommand: client_elasticache_1.DescribeServerlessCachesCommand,
|
|
58
58
|
DescribeServiceUpdatesCommand: client_elasticache_1.DescribeServiceUpdatesCommand,
|
|
59
59
|
DescribeSnapshotsCommand: client_elasticache_1.DescribeSnapshotsCommand,
|
|
60
60
|
DescribeUpdateActionsCommand: client_elasticache_1.DescribeUpdateActionsCommand,
|
|
@@ -102,7 +102,10 @@ exports.makeElastiCacheService = effect_1.Effect.gen(function* (_) {
|
|
|
102
102
|
return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
|
|
103
103
|
const CommandCtor = commands[command];
|
|
104
104
|
const methodImpl = (args, options) => effect_1.Effect.tryPromise({
|
|
105
|
-
try: () => client.send(new CommandCtor(args),
|
|
105
|
+
try: (abortSignal) => client.send(new CommandCtor(args), {
|
|
106
|
+
...(options !== null && options !== void 0 ? options : {}),
|
|
107
|
+
abortSignal,
|
|
108
|
+
}),
|
|
106
109
|
catch: (e) => {
|
|
107
110
|
if (e instanceof client_elasticache_1.ElastiCacheServiceException &&
|
|
108
111
|
Errors_1.AllServiceErrors.includes(e.name)) {
|
|
@@ -143,4 +146,4 @@ exports.ElastiCacheServiceLayer = exports.BaseElastiCacheServiceLayer.pipe(effec
|
|
|
143
146
|
* @category layers
|
|
144
147
|
*/
|
|
145
148
|
exports.DefaultElastiCacheServiceLayer = exports.ElastiCacheServiceLayer.pipe(effect_1.Layer.provide(ElastiCacheClientInstanceConfig_1.DefaultElastiCacheClientConfigLayer));
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VsYXN0aUNhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILG9FQW1PcUM7QUFFckMsbUNBQXFEO0FBQ3JELDJFQUdxQztBQUNyQyx1RkFBd0Y7QUFDeEYscUNBZ0ZrQjtBQUVsQixNQUFNLFFBQVEsR0FBRztJQUNmLHdCQUF3QixFQUF4Qiw2Q0FBd0I7SUFDeEIseUNBQXlDLEVBQXpDLDhEQUF5QztJQUN6Qyw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLDRCQUE0QixFQUE1QixpREFBNEI7SUFDNUIsd0JBQXdCLEVBQXhCLDZDQUF3QjtJQUN4QixrQ0FBa0MsRUFBbEMsdURBQWtDO0lBQ2xDLG1CQUFtQixFQUFuQix3Q0FBbUI7SUFDbkIseUJBQXlCLEVBQXpCLDhDQUF5QjtJQUN6QixnQ0FBZ0MsRUFBaEMscURBQWdDO0lBQ2hDLCtCQUErQixFQUEvQixvREFBK0I7SUFDL0IsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3QixtQ0FBbUMsRUFBbkMsd0RBQW1DO0lBQ25DLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1QixvQ0FBb0MsRUFBcEMseURBQW9DO0lBQ3BDLHFCQUFxQixFQUFyQiwwQ0FBcUI7SUFDckIsaUJBQWlCLEVBQWpCLHNDQUFpQjtJQUNqQixzQkFBc0IsRUFBdEIsMkNBQXNCO0lBQ3RCLGlEQUFpRCxFQUFqRCxzRUFBaUQ7SUFDakQsMkJBQTJCLEVBQTNCLGdEQUEyQjtJQUMzQix5QkFBeUIsRUFBekIsOENBQXlCO0lBQ3pCLGdDQUFnQyxFQUFoQyxxREFBZ0M7SUFDaEMsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQiw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3Qiw0QkFBNEIsRUFBNUIsaURBQTRCO0lBQzVCLG9DQUFvQyxFQUFwQyx5REFBb0M7SUFDcEMscUJBQXFCLEVBQXJCLDBDQUFxQjtJQUNyQixpQkFBaUIsRUFBakIsc0NBQWlCO0lBQ2pCLHNCQUFzQixFQUF0QiwyQ0FBc0I7SUFDdEIsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1QixrQ0FBa0MsRUFBbEMsdURBQWtDO0lBQ2xDLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsOEJBQThCLEVBQTlCLG1EQUE4QjtJQUM5QixrQ0FBa0MsRUFBbEMsdURBQWtDO0lBQ2xDLGdDQUFnQyxFQUFoQyxxREFBZ0M7SUFDaEMsc0NBQXNDLEVBQXRDLDJEQUFzQztJQUN0QyxxQkFBcUIsRUFBckIsMENBQXFCO0lBQ3JCLHNDQUFzQyxFQUF0QywyREFBc0M7SUFDdEMsZ0NBQWdDLEVBQWhDLHFEQUFnQztJQUNoQyxpQ0FBaUMsRUFBakMsc0RBQWlDO0lBQ2pDLDBDQUEwQyxFQUExQywrREFBMEM7SUFDMUMsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQix1Q0FBdUMsRUFBdkMsNERBQXVDO0lBQ3ZDLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0Isd0JBQXdCLEVBQXhCLDZDQUF3QjtJQUN4Qiw0QkFBNEIsRUFBNUIsaURBQTRCO0lBQzVCLHlCQUF5QixFQUF6Qiw4Q0FBeUI7SUFDekIsb0JBQW9CLEVBQXBCLHlDQUFvQjtJQUNwQix5Q0FBeUMsRUFBekMsOERBQXlDO0lBQ3pDLG9DQUFvQyxFQUFwQyx5REFBb0M7SUFDcEMscUNBQXFDLEVBQXJDLDBEQUFxQztJQUNyQyxpREFBaUQsRUFBakQsc0VBQWlEO0lBQ2pELDJCQUEyQixFQUEzQixnREFBMkI7SUFDM0IsdUNBQXVDLEVBQXZDLDREQUF1QztJQUN2QywwQkFBMEIsRUFBMUIsK0NBQTBCO0lBQzFCLHlCQUF5QixFQUF6Qiw4Q0FBeUI7SUFDekIsZ0NBQWdDLEVBQWhDLHFEQUFnQztJQUNoQyw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3QiwrQ0FBK0MsRUFBL0Msb0VBQStDO0lBQy9DLDRCQUE0QixFQUE1QixpREFBNEI7SUFDNUIsaUJBQWlCLEVBQWpCLHNDQUFpQjtJQUNqQixzQkFBc0IsRUFBdEIsMkNBQXNCO0lBQ3RCLHlDQUF5QyxFQUF6Qyw4REFBeUM7SUFDekMsNkNBQTZDLEVBQTdDLGtFQUE2QztJQUM3Qyx5QkFBeUIsRUFBekIsOENBQXlCO0lBQ3pCLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQixzQ0FBc0MsRUFBdEMsMkRBQXNDO0lBQ3RDLHFCQUFxQixFQUFyQiwwQ0FBcUI7SUFDckIsbUJBQW1CLEVBQW5CLHdDQUFtQjtJQUNuQixvQkFBb0IsRUFBcEIseUNBQW9CO0NBQ3JCLENBQUM7QUE4dENGOzs7R0FHRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsZUFBTSxDQUFDLEdBQUcsQ0FDaEQsbURBQW1ELENBQ3BELEVBQTJDO0NBQUc7QUFGL0MsZ0RBRStDO0FBRS9DOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsZUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQzNELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxREFBeUIsQ0FBQyxDQUFDO0lBRW5ELE9BQU8sZUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1FBQzFELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQVEsQ0FBQztRQUM3QyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVMsRUFBRSxPQUFZLEVBQUUsRUFBRSxDQUM3QyxlQUFNLENBQUMsVUFBVSxDQUFDO1lBQ2hCLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztZQUM1RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUNFLENBQUMsWUFBWSxnREFBMkI7b0JBQ3hDLHlCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ2pDLENBQUM7b0JBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUVsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRVYsT0FBTyxnQkFBZ0IsQ0FBQzt3QkFDdEIsR0FBRyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUN2QixPQUFPLElBQUEsaUJBQVEsRUFBQzt3QkFDZCxHQUFHLENBQUM7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQXdCLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3JELGtCQUFrQixFQUNsQiw4QkFBc0IsQ0FDdkIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsbUNBQTJCLENBQUMsSUFBSSxDQUNyRSxjQUFLLENBQUMsT0FBTyxDQUFDLDBEQUE4QixDQUFDLENBQzlDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDhCQUE4QixHQUFHLCtCQUF1QixDQUFDLElBQUksQ0FDeEUsY0FBSyxDQUFDLE9BQU8sQ0FBQyxxRUFBbUMsQ0FBQyxDQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgRWxhc3RpQ2FjaGVTZXJ2aWNlRXhjZXB0aW9uLFxuICBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kLFxuICB0eXBlIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDb3B5U25hcHNob3RDb21tYW5kLFxuICB0eXBlIENvcHlTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5U25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIHR5cGUgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kT3V0cHV0LFxuICBEZWxldGVVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFdmVudHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVVzZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVVzZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVXNlcnNDb21tYW5kT3V0cHV0LFxuICBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kT3V0cHV0LFxuICBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICB0eXBlIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlVc2VyQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVVzZXJDb21tYW5kT3V0cHV0LFxuICBNb2RpZnlVc2VyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgdHlwZSBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydE1pZ3JhdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICBUZXN0RmFpbG92ZXJDb21tYW5kLFxuICB0eXBlIFRlc3RGYWlsb3ZlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0LFxuICBUZXN0TWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBUZXN0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWVsYXN0aWNhY2hlXCI7XG5pbXBvcnQgeyB0eXBlIEh0dHBIYW5kbGVyT3B0aW9ucyBhcyBfX0h0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZSxcbiAgRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQgeyBEZWZhdWx0RWxhc3RpQ2FjaGVDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0VsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFQSUNhbGxSYXRlRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIEF1dGhvcml6YXRpb25BbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2FjaGVDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2FjaGVQYXJhbWV0ZXJHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBDYWNoZVBhcmFtZXRlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIENhY2hlU2VjdXJpdHlHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIENhY2hlU2VjdXJpdHlHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBDYWNoZVN1Ym5ldEdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIENhY2hlU3VibmV0R3JvdXBJblVzZUVycm9yLFxuICBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBDYWNoZVN1Ym5ldEdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIENhY2hlU3VibmV0UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIENsdXN0ZXJRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEZWZhdWx0VXNlckFzc29jaWF0ZWRUb1VzZXJHcm91cEZhdWx0RXJyb3IsXG4gIERlZmF1bHRVc2VyUmVxdWlyZWRFcnJvcixcbiAgRHVwbGljYXRlVXNlck5hbWVGYXVsdEVycm9yLFxuICBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvcixcbiAgSW52YWxpZEFSTkZhdWx0RXJyb3IsXG4gIEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRDYWNoZVBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvcixcbiAgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRLTVNLZXlGYXVsdEVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsXG4gIEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkU2VydmVybGVzc0NhY2hlU25hcHNob3RTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRTbmFwc2hvdFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFN1Ym5ldEVycm9yLFxuICBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkVXNlclN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3IsXG4gIE5vT3BlcmF0aW9uRmF1bHRFcnJvcixcbiAgTm9kZUdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBOb2RlR3JvdXBzUGVyUmVwbGljYXRpb25Hcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yLFxuICBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgUmVwbGljYXRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBSZXBsaWNhdGlvbkdyb3VwQWxyZWFkeVVuZGVyTWlncmF0aW9uRmF1bHRFcnJvcixcbiAgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgUmVwbGljYXRpb25Hcm91cE5vdFVuZGVyTWlncmF0aW9uRmF1bHRFcnJvcixcbiAgUmVzZXJ2ZWRDYWNoZU5vZGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFJlc2VydmVkQ2FjaGVOb2RlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yLFxuICBTZXJ2ZXJsZXNzQ2FjaGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yLFxuICBTZXJ2ZXJsZXNzQ2FjaGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFNlcnZpY2VVcGRhdGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3IsXG4gIFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yLFxuICBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTdWJuZXRJblVzZUVycm9yLFxuICBTdWJuZXROb3RBbGxvd2VkRmF1bHRFcnJvcixcbiAgVGFnTm90Rm91bmRGYXVsdEVycm9yLFxuICBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvcixcbiAgVGVzdEZhaWxvdmVyTm90QXZhaWxhYmxlRmF1bHRFcnJvcixcbiAgVXNlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBVc2VyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBVc2VyR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgVXNlck5vdEZvdW5kRmF1bHRFcnJvcixcbiAgVXNlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZCxcbiAgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kLFxuICBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kLFxuICBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmQsXG4gIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIENvcHlTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIENyZWF0ZVNuYXBzaG90Q29tbWFuZCxcbiAgQ3JlYXRlVXNlckNvbW1hbmQsXG4gIENyZWF0ZVVzZXJHcm91cENvbW1hbmQsXG4gIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgRGVsZXRlU25hcHNob3RDb21tYW5kLFxuICBEZWxldGVVc2VyQ29tbWFuZCxcbiAgRGVsZXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kLFxuICBEZXNjcmliZUV2ZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmQsXG4gIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZCxcbiAgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVVc2Vyc0NvbW1hbmQsXG4gIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kLFxuICBNb2RpZnlVc2VyQ29tbWFuZCxcbiAgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZCxcbiAgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmQsXG4gIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmQsXG4gIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICBTdGFydE1pZ3JhdGlvbkNvbW1hbmQsXG4gIFRlc3RGYWlsb3ZlckNvbW1hbmQsXG4gIFRlc3RNaWdyYXRpb25Db21tYW5kLFxufTtcblxuaW50ZXJmYWNlIEVsYXN0aUNhY2hlU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBhZGRUYWdzVG9SZXNvdXJjZShcbiAgICBhcmdzOiBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQVJORmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgYXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzcyhcbiAgICBhcmdzOiBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgYmF0Y2hBcHBseVVwZGF0ZUFjdGlvbihcbiAgICBhcmdzOiBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZVVwZGF0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYXRjaFN0b3BVcGRhdGVBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgYmF0Y2hTdG9wVXBkYXRlQWN0aW9uKFxuICAgIGFyZ3M6IEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZVVwZGF0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjb21wbGV0ZU1pZ3JhdGlvbihcbiAgICBhcmdzOiBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29tcGxldGVNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90VW5kZXJNaWdyYXRpb25GYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3QoXG4gICAgYXJnczogQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjb3B5U25hcHNob3QoXG4gICAgYXJnczogQ29weVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDb3B5U25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlQ2x1c3RlcihcbiAgICBhcmdzOiBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2x1c3RlclF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckNsdXN0ZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXAoXG4gICAgYXJnczogQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlU3VibmV0R3JvdXAoXG4gICAgYXJnczogQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgU3VibmV0Tm90QWxsb3dlZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ2x1c3RlckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU2VydmVybGVzc0NhY2hlKFxuICAgIGFyZ3M6IENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdChcbiAgICBhcmdzOiBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU25hcHNob3QoXG4gICAgYXJnczogQ3JlYXRlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVXNlcihcbiAgICBhcmdzOiBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEdXBsaWNhdGVVc2VyTmFtZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gICAgfCBVc2VyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFVzZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVXNlckdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZWZhdWx0VXNlclJlcXVpcmVkRXJyb3JcbiAgICB8IER1cGxpY2F0ZVVzZXJOYW1lRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICAgIHwgVXNlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kfVxuICAgKi9cbiAgZGVjcmVhc2VSZXBsaWNhQ291bnQoXG4gICAgYXJnczogRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vT3BlcmF0aW9uRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNhY2hlQ2x1c3RlcihcbiAgICBhcmdzOiBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cChcbiAgICBhcmdzOiBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVDYWNoZVN1Ym5ldEdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQ2FjaGVTdWJuZXRHcm91cEluVXNlRXJyb3IgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVNlcnZlcmxlc3NDYWNoZShcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdChcbiAgICBhcmdzOiBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTbmFwc2hvdChcbiAgICBhcmdzOiBEZWxldGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVVzZXIoXG4gICAgYXJnczogRGVsZXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGVmYXVsdFVzZXJBc3NvY2lhdGVkVG9Vc2VyR3JvdXBGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFVzZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVVc2VyR3JvdXAoXG4gICAgYXJnczogRGVsZXRlVXNlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlQ2x1c3RlcnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDYWNoZVBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXZlbnRzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkQ2FjaGVOb2RlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3MoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVNlcnZlcmxlc3NDYWNoZXMoXG4gICAgYXJnczogRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTZXJ2aWNlVXBkYXRlcyhcbiAgICBhcmdzOiBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNlcnZpY2VVcGRhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTbmFwc2hvdHMoXG4gICAgYXJnczogRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlVXBkYXRlQWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVVzZXJHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVVc2VycyhcbiAgICBhcmdzOiBEZXNjcmliZVVzZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVVzZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgZXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3QoXG4gICAgYXJnczogRXhwb3J0U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgaW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kfVxuICAgKi9cbiAgaW5jcmVhc2VSZXBsaWNhQ291bnQoXG4gICAgYXJnczogSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVHcm91cHNQZXJSZXBsaWNhdGlvbkdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb09wZXJhdGlvbkZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnMoXG4gICAgYXJnczogTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRBUk5GYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBSZXNlcnZlZENhY2hlTm9kZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q2FjaGVDbHVzdGVyKFxuICAgIGFyZ3M6IE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlDYWNoZVN1Ym5ldEdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgU3VibmV0SW5Vc2VFcnJvclxuICAgIHwgU3VibmV0Tm90QWxsb3dlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeVJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRVc2VyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbihcbiAgICBhcmdzOiBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeVNlcnZlcmxlc3NDYWNoZShcbiAgICBhcmdzOiBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFVzZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVVzZXJDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5VXNlcihcbiAgICBhcmdzOiBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRVc2VyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlVc2VyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5VXNlckdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeVVzZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZWZhdWx0VXNlclJlcXVpcmVkRXJyb3JcbiAgICB8IER1cGxpY2F0ZVVzZXJOYW1lRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kfVxuICAgKi9cbiAgcHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZyhcbiAgICBhcmdzOiBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2RlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2RlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgcmVib290Q2FjaGVDbHVzdGVyKFxuICAgIGFyZ3M6IFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVUYWdzRnJvbVJlc291cmNlKFxuICAgIGFyZ3M6IFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQVJORmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZH1cbiAgICovXG4gIHJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3MoXG4gICAgYXJnczogUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRNaWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRNaWdyYXRpb24oXG4gICAgYXJnczogU3RhcnRNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0TWlncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5VW5kZXJNaWdyYXRpb25GYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RGYWlsb3ZlckNvbW1hbmR9XG4gICAqL1xuICB0ZXN0RmFpbG92ZXIoXG4gICAgYXJnczogVGVzdEZhaWxvdmVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUZXN0RmFpbG92ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFQSUNhbGxSYXRlRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRlc3RGYWlsb3Zlck5vdEF2YWlsYWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGVzdE1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB0ZXN0TWlncmF0aW9uKFxuICAgIGFyZ3M6IFRlc3RNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRlc3RNaWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cEFscmVhZHlVbmRlck1pZ3JhdGlvbkZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEVsYXN0aUNhY2hlU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWVsYXN0aWNhY2hlL0VsYXN0aUNhY2hlU2VydmljZVwiLFxuKTxFbGFzdGlDYWNoZVNlcnZpY2UsIEVsYXN0aUNhY2hlU2VydmljZSQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VFbGFzdGlDYWNoZVNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhFbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEVsYXN0aUNhY2hlU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIEVsYXN0aUNhY2hlU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VFbGFzdGlDYWNoZVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgRWxhc3RpQ2FjaGVTZXJ2aWNlLFxuICBtYWtlRWxhc3RpQ2FjaGVTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEVsYXN0aUNhY2hlU2VydmljZUxheWVyID0gQmFzZUVsYXN0aUNhY2hlU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0RWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIgPSBFbGFzdGlDYWNoZVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRFbGFzdGlDYWNoZUNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxhc3RpQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VsYXN0aUNhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILG9FQW1PcUM7QUFDckMsbUNBQXFEO0FBQ3JELDJFQUdxQztBQUNyQyx1RkFBd0Y7QUFDeEYscUNBZ0ZrQjtBQWFsQixNQUFNLFFBQVEsR0FBRztJQUNmLHdCQUF3QixFQUF4Qiw2Q0FBd0I7SUFDeEIseUNBQXlDLEVBQXpDLDhEQUF5QztJQUN6Qyw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLDRCQUE0QixFQUE1QixpREFBNEI7SUFDNUIsd0JBQXdCLEVBQXhCLDZDQUF3QjtJQUN4QixrQ0FBa0MsRUFBbEMsdURBQWtDO0lBQ2xDLG1CQUFtQixFQUFuQix3Q0FBbUI7SUFDbkIseUJBQXlCLEVBQXpCLDhDQUF5QjtJQUN6QixnQ0FBZ0MsRUFBaEMscURBQWdDO0lBQ2hDLCtCQUErQixFQUEvQixvREFBK0I7SUFDL0IsNkJBQTZCLEVBQTdCLGtEQUE2QjtJQUM3QixtQ0FBbUMsRUFBbkMsd0RBQW1DO0lBQ25DLDZCQUE2QixFQUE3QixrREFBNkI7SUFDN0IsNEJBQTRCLEVBQTVCLGlEQUE0QjtJQUM1QixvQ0FBb0MsRUFBcEMseURBQW9DO0lBQ3BDLHFCQUFxQixFQUFyQiwwQ0FBcUI7SUFDckIsaUJBQWlCLEVBQWpCLHNDQUFpQjtJQUNqQixzQkFBc0IsRUFBdEIsMkNBQXNCO0lBQ3RCLGlEQUFpRCxFQUFqRCxzRUFBaUQ7SUFDakQsMkJBQTJCLEVBQTNCLGdEQUEyQjtJQUMzQix5QkFBeUIsRUFBekIsOENBQXlCO0lBQ3pCLGdDQUFnQyxFQUFoQyxxREFBZ0M7SUFDaEMsK0JBQStCLEVBQS9CLG9EQUErQjtJQUMvQiw2QkFBNkIsRUFBN0Isa0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyx3REFBbUM7SUFDbkMsNkJBQTZCLEVBQTdCLGtEQUE2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d0IsQ0FBQztBQUNoQyxDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDckQsa0JBQWtCLEVBQ2xCLDhCQUFzQixDQUN2QixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxtQ0FBMkIsQ0FBQyxJQUFJLENBQ3JFLGNBQUssQ0FBQyxPQUFPLENBQUMsMERBQThCLENBQUMsQ0FDOUMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsOEJBQThCLEdBQUcsK0JBQXVCLENBQUMsSUFBSSxDQUN4RSxjQUFLLENBQUMsT0FBTyxDQUFDLHFFQUFtQyxDQUFDLENBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24sXG4gIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICB0eXBlIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kLFxuICB0eXBlIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENvcHlTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ29weVNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENvcHlTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVVzZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIERlY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgdHlwZSBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVXNlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU25hcHNob3RzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVXNlckdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVXNlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVXNlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVVc2Vyc0NvbW1hbmRPdXRwdXQsXG4gIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIEluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZCxcbiAgdHlwZSBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXQsXG4gIExpc3RBbGxvd2VkTm9kZVR5cGVNb2RpZmljYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kLFxuICB0eXBlIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5U2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVVzZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5VXNlckNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVVzZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVVzZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kLFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlYm9vdENhY2hlQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICB0eXBlIFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0TWlncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydE1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFRlc3RGYWlsb3ZlckNvbW1hbmQsXG4gIHR5cGUgVGVzdEZhaWxvdmVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RGYWlsb3ZlckNvbW1hbmRPdXRwdXQsXG4gIFRlc3RNaWdyYXRpb25Db21tYW5kLFxuICB0eXBlIFRlc3RNaWdyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtZWxhc3RpY2FjaGVcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2UsXG4gIEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vRWxhc3RpQ2FjaGVDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdEVsYXN0aUNhY2hlQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9FbGFzdGlDYWNoZUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBUElDYWxsUmF0ZUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yLFxuICBBdXRob3JpemF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3IsXG4gIENhY2hlQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIENhY2hlUGFyYW1ldGVyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2FjaGVQYXJhbWV0ZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBDYWNoZVNlY3VyaXR5R3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBDYWNoZVNlY3VyaXR5R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgQ2FjaGVTdWJuZXRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDYWNoZVN1Ym5ldEdyb3VwSW5Vc2VFcnJvcixcbiAgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2FjaGVTdWJuZXRHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBDYWNoZVN1Ym5ldFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgRGVmYXVsdFVzZXJBc3NvY2lhdGVkVG9Vc2VyR3JvdXBGYXVsdEVycm9yLFxuICBEZWZhdWx0VXNlclJlcXVpcmVkRXJyb3IsXG4gIER1cGxpY2F0ZVVzZXJOYW1lRmF1bHRFcnJvcixcbiAgR2xvYmFsUmVwbGljYXRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3IsXG4gIEludmFsaWRBUk5GYXVsdEVycm9yLFxuICBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkQ2FjaGVQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZENyZWRlbnRpYWxzRXJyb3IsXG4gIEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkS01TS2V5RmF1bHRFcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkU25hcHNob3RTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRTdWJuZXRFcnJvcixcbiAgSW52YWxpZFVzZXJHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFVzZXJTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yLFxuICBOb09wZXJhdGlvbkZhdWx0RXJyb3IsXG4gIE5vZGVHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgTm9kZVF1b3RhRm9yQ2x1c3RlckV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgUmVwbGljYXRpb25Hcm91cEFscmVhZHlVbmRlck1pZ3JhdGlvbkZhdWx0RXJyb3IsXG4gIFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFJlcGxpY2F0aW9uR3JvdXBOb3RVbmRlck1pZ3JhdGlvbkZhdWx0RXJyb3IsXG4gIFJlc2VydmVkQ2FjaGVOb2RlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFJlc2VydmVkQ2FjaGVOb2RlTm90Rm91bmRGYXVsdEVycm9yLFxuICBSZXNlcnZlZENhY2hlTm9kZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ05vdEZvdW5kRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yLFxuICBTZXJ2aWNlVXBkYXRlTm90Rm91bmRGYXVsdEVycm9yLFxuICBTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBTbmFwc2hvdEZlYXR1cmVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yLFxuICBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU3VibmV0SW5Vc2VFcnJvcixcbiAgU3VibmV0Tm90QWxsb3dlZEZhdWx0RXJyb3IsXG4gIFRhZ05vdEZvdW5kRmF1bHRFcnJvcixcbiAgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3IsXG4gIFRlc3RGYWlsb3Zlck5vdEF2YWlsYWJsZUZhdWx0RXJyb3IsXG4gIFVzZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgVXNlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgVXNlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFVzZXJOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFVzZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMy4xXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kLFxuICBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZCxcbiAgQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmQsXG4gIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmQsXG4gIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZCxcbiAgQ29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgQ29weVNuYXBzaG90Q29tbWFuZCxcbiAgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZCxcbiAgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIENyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kLFxuICBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIENyZWF0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgQ3JlYXRlU25hcHNob3RDb21tYW5kLFxuICBDcmVhdGVVc2VyQ29tbWFuZCxcbiAgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZCxcbiAgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kLFxuICBEZWxldGVDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmQsXG4gIERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZCxcbiAgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kLFxuICBEZWxldGVTbmFwc2hvdENvbW1hbmQsXG4gIERlbGV0ZVVzZXJDb21tYW5kLFxuICBEZWxldGVVc2VyR3JvdXBDb21tYW5kLFxuICBEZXNjcmliZUNhY2hlQ2x1c3RlcnNDb21tYW5kLFxuICBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kLFxuICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kLFxuICBEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlRXZlbnRzQ29tbWFuZCxcbiAgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZCxcbiAgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kLFxuICBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kLFxuICBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kLFxuICBEZXNjcmliZVVwZGF0ZUFjdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZVVzZXJzQ29tbWFuZCxcbiAgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmQsXG4gIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZCxcbiAgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgSW5jcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kLFxuICBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBNb2RpZnlDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmQsXG4gIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmQsXG4gIE1vZGlmeVVzZXJDb21tYW5kLFxuICBNb2RpZnlVc2VyR3JvdXBDb21tYW5kLFxuICBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZCxcbiAgUmViYWxhbmNlU2xvdHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kLFxuICBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kLFxuICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZCxcbiAgUmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIFN0YXJ0TWlncmF0aW9uQ29tbWFuZCxcbiAgVGVzdEZhaWxvdmVyQ29tbWFuZCxcbiAgVGVzdE1pZ3JhdGlvbkNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgRWxhc3RpQ2FjaGVTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGFkZFRhZ3NUb1Jlc291cmNlKFxuICAgIGFyZ3M6IEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQVJORmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgYXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzcyhcbiAgICBhcmdzOiBBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYXRjaEFwcGx5VXBkYXRlQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGJhdGNoQXBwbHlVcGRhdGVBY3Rpb24oXG4gICAgYXJnczogQmF0Y2hBcHBseVVwZGF0ZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEJhdGNoQXBwbHlVcGRhdGVBY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfCBTZXJ2aWNlVXBkYXRlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEJhdGNoU3RvcFVwZGF0ZUFjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBiYXRjaFN0b3BVcGRhdGVBY3Rpb24oXG4gICAgYXJnczogQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQmF0Y2hTdG9wVXBkYXRlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIHwgU2VydmljZVVwZGF0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjb21wbGV0ZU1pZ3JhdGlvbihcbiAgICBhcmdzOiBDb21wbGV0ZU1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENvbXBsZXRlTWlncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdFVuZGVyTWlncmF0aW9uRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5U2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgY29weVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90KFxuICAgIGFyZ3M6IENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENvcHlTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ29weVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGNvcHlTbmFwc2hvdChcbiAgICBhcmdzOiBDb3B5U25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDb3B5U25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlQ2x1c3RlcihcbiAgICBhcmdzOiBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENsdXN0ZXJRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cChcbiAgICBhcmdzOiBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUNhY2hlU3VibmV0R3JvdXAoXG4gICAgYXJnczogQ3JlYXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlU3VibmV0R3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IFN1Ym5ldE5vdEFsbG93ZWRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3Vwc1BlclJlcGxpY2F0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ2x1c3RlckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgVGFnUXVvdGFQZXJSZXNvdXJjZUV4Y2VlZGVkRXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU2VydmVybGVzc0NhY2hlKFxuICAgIGFyZ3M6IENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFVzZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gICAgfCBVc2VyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3QoXG4gICAgYXJnczogQ3JlYXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTbmFwc2hvdChcbiAgICBhcmdzOiBDcmVhdGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90RmVhdHVyZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVVzZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVXNlcihcbiAgICBhcmdzOiBDcmVhdGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRHVwbGljYXRlVXNlck5hbWVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICAgIHwgVXNlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBVc2VyUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVXNlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVVzZXJHcm91cChcbiAgICBhcmdzOiBDcmVhdGVVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlZmF1bHRVc2VyUmVxdWlyZWRFcnJvclxuICAgIHwgRHVwbGljYXRlVXNlck5hbWVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRhZ1F1b3RhUGVyUmVzb3VyY2VFeGNlZWRlZEVycm9yXG4gICAgfCBVc2VyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kfVxuICAgKi9cbiAgZGVjcmVhc2VSZXBsaWNhQ291bnQoXG4gICAgYXJnczogRGVjcmVhc2VSZXBsaWNhQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2x1c3RlclF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVHcm91cHNQZXJSZXBsaWNhdGlvbkdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb09wZXJhdGlvbkZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVDYWNoZUNsdXN0ZXIoXG4gICAgYXJnczogRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RGZWF0dXJlTm90U3VwcG9ydGVkRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ2FjaGVTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cChcbiAgICBhcmdzOiBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQ2FjaGVTdWJuZXRHcm91cChcbiAgICBhcmdzOiBEZWxldGVDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQ2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBDYWNoZVN1Ym5ldEdyb3VwSW5Vc2VFcnJvciB8IENhY2hlU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXBsaWNhdGlvbkdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdEZlYXR1cmVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZlcmxlc3NDYWNoZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTZXJ2ZXJsZXNzQ2FjaGUoXG4gICAgYXJnczogRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU2VydmVybGVzc0NhY2hlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQ3JlZGVudGlhbHNFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90KFxuICAgIGFyZ3M6IERlbGV0ZVNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU2VydmVybGVzc0NhY2hlU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTbmFwc2hvdChcbiAgICBhcmdzOiBEZWxldGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVVc2VyKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVVc2VyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEZWZhdWx0VXNlckFzc29jaWF0ZWRUb1VzZXJHcm91cEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVXNlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVVzZXJHcm91cChcbiAgICBhcmdzOiBEZWxldGVVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVDbHVzdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlQ2x1c3RlcnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDYWNoZUNsdXN0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDYWNoZVBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNhY2hlUGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV2ZW50c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUV2ZW50cyhcbiAgICBhcmdzOiBEZXNjcmliZUV2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVHbG9iYWxSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlR2xvYmFsUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXMoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBSZXNlcnZlZENhY2hlTm9kZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5ncyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmVybGVzc0NhY2hlU25hcHNob3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVNlcnZlcmxlc3NDYWNoZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTZXJ2ZXJsZXNzQ2FjaGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU2VydmVybGVzc0NhY2hlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTZXJ2aWNlVXBkYXRlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVNlcnZpY2VVcGRhdGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlU2VydmljZVVwZGF0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNlcnZpY2VVcGRhdGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNlcnZpY2VVcGRhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTbmFwc2hvdHMoXG4gICAgYXJnczogRGVzY3JpYmVTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXBkYXRlQWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVVwZGF0ZUFjdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVVcGRhdGVBY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVVc2VyR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlVXNlckdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVVzZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVXNlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVVc2VycyhcbiAgICBhcmdzOiBEZXNjcmliZVVzZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVVc2Vyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2Fzc29jaWF0ZUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBEaXNhc3NvY2lhdGVHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYXNzb2NpYXRlR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBleHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdChcbiAgICBhcmdzOiBFeHBvcnRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEV4cG9ydFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRmFpbG92ZXJHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGZhaWxvdmVyR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBGYWlsb3Zlckdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW5jcmVhc2VOb2RlR3JvdXBzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGluY3JlYXNlTm9kZUdyb3Vwc0luR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbmNyZWFzZU5vZGVHcm91cHNJbkdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmR9XG4gICAqL1xuICBpbmNyZWFzZVJlcGxpY2FDb3VudChcbiAgICBhcmdzOiBJbmNyZWFzZVJlcGxpY2FDb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEluY3JlYXNlUmVwbGljYUNvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDbHVzdGVyUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE5vZGVHcm91cHNQZXJSZXBsaWNhdGlvbkdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IE5vZGVRdW90YUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb09wZXJhdGlvbkZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnMoXG4gICAgYXJnczogTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclJlc291cmNlKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEFSTkZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU2VydmVybGVzc0NhY2hlU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2RlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2ZXJsZXNzQ2FjaGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZVNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUNhY2hlQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlDYWNoZUNsdXN0ZXIoXG4gICAgYXJnczogTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDYWNoZUNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENhY2hlU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50Q2FjaGVDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDbHVzdGVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUNhY2hlU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q2FjaGVTdWJuZXRHcm91cChcbiAgICBhcmdzOiBNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTdWJuZXRRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBTdWJuZXRJblVzZUVycm9yXG4gICAgfCBTdWJuZXROb3RBbGxvd2VkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlHbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5R2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUdsb2JhbFJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeVJlcGxpY2F0aW9uR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5UmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRDYWNoZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZUNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRLTVNLZXlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVXNlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ2x1c3RlckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgTm9kZVF1b3RhRm9yQ3VzdG9tZXJFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb24oXG4gICAgYXJnczogTW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEluc3VmZmljaWVudENhY2hlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEtNU0tleUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBOb2RlR3JvdXBzUGVyUmVwbGljYXRpb25Hcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBOb2RlUXVvdGFGb3JDdXN0b21lckV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlTZXJ2ZXJsZXNzQ2FjaGVDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5U2VydmVybGVzc0NhY2hlKFxuICAgIGFyZ3M6IE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeVNlcnZlcmxlc3NDYWNoZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZENyZWRlbnRpYWxzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFVzZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTZXJ2aWNlTGlua2VkUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeVVzZXJDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5VXNlcihcbiAgICBhcmdzOiBNb2RpZnlVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5VXNlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkVXNlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2VydmljZUxpbmtlZFJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5VXNlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeVVzZXJHcm91cChcbiAgICBhcmdzOiBNb2RpZnlVc2VyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlVc2VyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERlZmF1bHRVc2VyUmVxdWlyZWRFcnJvclxuICAgIHwgRHVwbGljYXRlVXNlck5hbWVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRVc2VyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNlcnZpY2VMaW5rZWRSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBVc2VyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVyY2hhc2VSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0NvbW1hbmR9XG4gICAqL1xuICBwdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nKFxuICAgIGFyZ3M6IFB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2RlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2RlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdRdW90YVBlclJlc291cmNlRXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cChcbiAgICBhcmdzOiBSZWJhbGFuY2VTbG90c0luR2xvYmFsUmVwbGljYXRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlYmFsYW5jZVNsb3RzSW5HbG9iYWxSZXBsaWNhdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBHbG9iYWxSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVib290Q2FjaGVDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYm9vdENhY2hlQ2x1c3RlcihcbiAgICBhcmdzOiBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWJvb3RDYWNoZUNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVRhZ3NGcm9tUmVzb3VyY2UoXG4gICAgYXJnczogUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENhY2hlQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2FjaGVTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQVJORmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTZXJ2ZXJsZXNzQ2FjaGVTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFNlcnZlcmxlc3NDYWNoZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWRDYWNoZU5vZGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNlcnZlcmxlc3NDYWNoZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU2VydmVybGVzc0NhY2hlU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUYWdOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFVzZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVXNlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVzZXRDYWNoZVBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2FjaGVQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZENhY2hlUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyQ29tYmluYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmR9XG4gICAqL1xuICByZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzKFxuICAgIGFyZ3M6IFJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDYWNoZVNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDYWNoZVNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJDb21iaW5hdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydE1pZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydE1pZ3JhdGlvbihcbiAgICBhcmdzOiBTdGFydE1pZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0TWlncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgSW52YWxpZFJlcGxpY2F0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlcGxpY2F0aW9uR3JvdXBBbHJlYWR5VW5kZXJNaWdyYXRpb25GYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RGYWlsb3ZlckNvbW1hbmR9XG4gICAqL1xuICB0ZXN0RmFpbG92ZXIoXG4gICAgYXJnczogVGVzdEZhaWxvdmVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdEZhaWxvdmVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBUElDYWxsUmF0ZUZvckN1c3RvbWVyRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ2FjaGVDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkS01TS2V5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckNvbWJpbmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBJbnZhbGlkUmVwbGljYXRpb25Hcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgTm9kZUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUZXN0RmFpbG92ZXJOb3RBdmFpbGFibGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RNaWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdGVzdE1pZ3JhdGlvbihcbiAgICBhcmdzOiBUZXN0TWlncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdE1pZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3JcbiAgICB8IEludmFsaWRSZXBsaWNhdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXBsaWNhdGlvbkdyb3VwQWxyZWFkeVVuZGVyTWlncmF0aW9uRmF1bHRFcnJvclxuICAgIHwgUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgRWxhc3RpQ2FjaGVTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtZWxhc3RpY2FjaGUvRWxhc3RpQ2FjaGVTZXJ2aWNlXCIsXG4pPEVsYXN0aUNhY2hlU2VydmljZSwgRWxhc3RpQ2FjaGVTZXJ2aWNlJD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUVsYXN0aUNhY2hlU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBFbGFzdGlDYWNoZVNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248RWxhc3RpQ2FjaGVTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBFbGFzdGlDYWNoZVNlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlRWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEVsYXN0aUNhY2hlU2VydmljZSxcbiAgbWFrZUVsYXN0aUNhY2hlU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBFbGFzdGlDYWNoZVNlcnZpY2VMYXllciA9IEJhc2VFbGFzdGlDYWNoZVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEVsYXN0aUNhY2hlQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEVsYXN0aUNhY2hlU2VydmljZUxheWVyID0gRWxhc3RpQ2FjaGVTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0RWxhc3RpQ2FjaGVDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
|