@effect-aws/client-s3 0.7.0 → 1.0.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/lib/S3.js DELETED
@@ -1,166 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.DefaultS3ServiceEffect = exports.S3ServiceEffect = exports.BaseS3ServiceEffect = void 0;
27
- const client_s3_1 = require("@aws-sdk/client-s3");
28
- const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
29
- const Effect = __importStar(require("effect/Effect"));
30
- const RR = __importStar(require("effect/ReadonlyRecord"));
31
- const Context_1 = require("./Context");
32
- const Errors_1 = require("./Errors");
33
- const commands = {
34
- AbortMultipartUploadCommand: client_s3_1.AbortMultipartUploadCommand,
35
- CompleteMultipartUploadCommand: client_s3_1.CompleteMultipartUploadCommand,
36
- CopyObjectCommand: client_s3_1.CopyObjectCommand,
37
- CreateBucketCommand: client_s3_1.CreateBucketCommand,
38
- CreateMultipartUploadCommand: client_s3_1.CreateMultipartUploadCommand,
39
- DeleteBucketCommand: client_s3_1.DeleteBucketCommand,
40
- DeleteBucketAnalyticsConfigurationCommand: client_s3_1.DeleteBucketAnalyticsConfigurationCommand,
41
- DeleteBucketCorsCommand: client_s3_1.DeleteBucketCorsCommand,
42
- DeleteBucketEncryptionCommand: client_s3_1.DeleteBucketEncryptionCommand,
43
- DeleteBucketIntelligentTieringConfigurationCommand: client_s3_1.DeleteBucketIntelligentTieringConfigurationCommand,
44
- DeleteBucketInventoryConfigurationCommand: client_s3_1.DeleteBucketInventoryConfigurationCommand,
45
- DeleteBucketLifecycleCommand: client_s3_1.DeleteBucketLifecycleCommand,
46
- DeleteBucketMetricsConfigurationCommand: client_s3_1.DeleteBucketMetricsConfigurationCommand,
47
- DeleteBucketOwnershipControlsCommand: client_s3_1.DeleteBucketOwnershipControlsCommand,
48
- DeleteBucketPolicyCommand: client_s3_1.DeleteBucketPolicyCommand,
49
- DeleteBucketReplicationCommand: client_s3_1.DeleteBucketReplicationCommand,
50
- DeleteBucketTaggingCommand: client_s3_1.DeleteBucketTaggingCommand,
51
- DeleteBucketWebsiteCommand: client_s3_1.DeleteBucketWebsiteCommand,
52
- DeleteObjectCommand: client_s3_1.DeleteObjectCommand,
53
- DeleteObjectsCommand: client_s3_1.DeleteObjectsCommand,
54
- DeleteObjectTaggingCommand: client_s3_1.DeleteObjectTaggingCommand,
55
- DeletePublicAccessBlockCommand: client_s3_1.DeletePublicAccessBlockCommand,
56
- GetBucketAccelerateConfigurationCommand: client_s3_1.GetBucketAccelerateConfigurationCommand,
57
- GetBucketAclCommand: client_s3_1.GetBucketAclCommand,
58
- GetBucketAnalyticsConfigurationCommand: client_s3_1.GetBucketAnalyticsConfigurationCommand,
59
- GetBucketCorsCommand: client_s3_1.GetBucketCorsCommand,
60
- GetBucketEncryptionCommand: client_s3_1.GetBucketEncryptionCommand,
61
- GetBucketIntelligentTieringConfigurationCommand: client_s3_1.GetBucketIntelligentTieringConfigurationCommand,
62
- GetBucketInventoryConfigurationCommand: client_s3_1.GetBucketInventoryConfigurationCommand,
63
- GetBucketLifecycleConfigurationCommand: client_s3_1.GetBucketLifecycleConfigurationCommand,
64
- GetBucketLocationCommand: client_s3_1.GetBucketLocationCommand,
65
- GetBucketLoggingCommand: client_s3_1.GetBucketLoggingCommand,
66
- GetBucketMetricsConfigurationCommand: client_s3_1.GetBucketMetricsConfigurationCommand,
67
- GetBucketNotificationConfigurationCommand: client_s3_1.GetBucketNotificationConfigurationCommand,
68
- GetBucketOwnershipControlsCommand: client_s3_1.GetBucketOwnershipControlsCommand,
69
- GetBucketPolicyCommand: client_s3_1.GetBucketPolicyCommand,
70
- GetBucketPolicyStatusCommand: client_s3_1.GetBucketPolicyStatusCommand,
71
- GetBucketReplicationCommand: client_s3_1.GetBucketReplicationCommand,
72
- GetBucketRequestPaymentCommand: client_s3_1.GetBucketRequestPaymentCommand,
73
- GetBucketTaggingCommand: client_s3_1.GetBucketTaggingCommand,
74
- GetBucketVersioningCommand: client_s3_1.GetBucketVersioningCommand,
75
- GetBucketWebsiteCommand: client_s3_1.GetBucketWebsiteCommand,
76
- GetObjectCommand: client_s3_1.GetObjectCommand,
77
- GetObjectAclCommand: client_s3_1.GetObjectAclCommand,
78
- GetObjectAttributesCommand: client_s3_1.GetObjectAttributesCommand,
79
- GetObjectLegalHoldCommand: client_s3_1.GetObjectLegalHoldCommand,
80
- GetObjectLockConfigurationCommand: client_s3_1.GetObjectLockConfigurationCommand,
81
- GetObjectRetentionCommand: client_s3_1.GetObjectRetentionCommand,
82
- GetObjectTaggingCommand: client_s3_1.GetObjectTaggingCommand,
83
- GetObjectTorrentCommand: client_s3_1.GetObjectTorrentCommand,
84
- GetPublicAccessBlockCommand: client_s3_1.GetPublicAccessBlockCommand,
85
- HeadBucketCommand: client_s3_1.HeadBucketCommand,
86
- HeadObjectCommand: client_s3_1.HeadObjectCommand,
87
- ListBucketAnalyticsConfigurationsCommand: client_s3_1.ListBucketAnalyticsConfigurationsCommand,
88
- ListBucketIntelligentTieringConfigurationsCommand: client_s3_1.ListBucketIntelligentTieringConfigurationsCommand,
89
- ListBucketInventoryConfigurationsCommand: client_s3_1.ListBucketInventoryConfigurationsCommand,
90
- ListBucketMetricsConfigurationsCommand: client_s3_1.ListBucketMetricsConfigurationsCommand,
91
- ListBucketsCommand: client_s3_1.ListBucketsCommand,
92
- ListMultipartUploadsCommand: client_s3_1.ListMultipartUploadsCommand,
93
- ListObjectsCommand: client_s3_1.ListObjectsCommand,
94
- ListObjectsV2Command: client_s3_1.ListObjectsV2Command,
95
- ListObjectVersionsCommand: client_s3_1.ListObjectVersionsCommand,
96
- ListPartsCommand: client_s3_1.ListPartsCommand,
97
- PutBucketAccelerateConfigurationCommand: client_s3_1.PutBucketAccelerateConfigurationCommand,
98
- PutBucketAclCommand: client_s3_1.PutBucketAclCommand,
99
- PutBucketAnalyticsConfigurationCommand: client_s3_1.PutBucketAnalyticsConfigurationCommand,
100
- PutBucketCorsCommand: client_s3_1.PutBucketCorsCommand,
101
- PutBucketEncryptionCommand: client_s3_1.PutBucketEncryptionCommand,
102
- PutBucketIntelligentTieringConfigurationCommand: client_s3_1.PutBucketIntelligentTieringConfigurationCommand,
103
- PutBucketInventoryConfigurationCommand: client_s3_1.PutBucketInventoryConfigurationCommand,
104
- PutBucketLifecycleConfigurationCommand: client_s3_1.PutBucketLifecycleConfigurationCommand,
105
- PutBucketLoggingCommand: client_s3_1.PutBucketLoggingCommand,
106
- PutBucketMetricsConfigurationCommand: client_s3_1.PutBucketMetricsConfigurationCommand,
107
- PutBucketNotificationConfigurationCommand: client_s3_1.PutBucketNotificationConfigurationCommand,
108
- PutBucketOwnershipControlsCommand: client_s3_1.PutBucketOwnershipControlsCommand,
109
- PutBucketPolicyCommand: client_s3_1.PutBucketPolicyCommand,
110
- PutBucketReplicationCommand: client_s3_1.PutBucketReplicationCommand,
111
- PutBucketRequestPaymentCommand: client_s3_1.PutBucketRequestPaymentCommand,
112
- PutBucketTaggingCommand: client_s3_1.PutBucketTaggingCommand,
113
- PutBucketVersioningCommand: client_s3_1.PutBucketVersioningCommand,
114
- PutBucketWebsiteCommand: client_s3_1.PutBucketWebsiteCommand,
115
- PutObjectCommand: client_s3_1.PutObjectCommand,
116
- PutObjectAclCommand: client_s3_1.PutObjectAclCommand,
117
- PutObjectLegalHoldCommand: client_s3_1.PutObjectLegalHoldCommand,
118
- PutObjectLockConfigurationCommand: client_s3_1.PutObjectLockConfigurationCommand,
119
- PutObjectRetentionCommand: client_s3_1.PutObjectRetentionCommand,
120
- PutObjectTaggingCommand: client_s3_1.PutObjectTaggingCommand,
121
- PutPublicAccessBlockCommand: client_s3_1.PutPublicAccessBlockCommand,
122
- RestoreObjectCommand: client_s3_1.RestoreObjectCommand,
123
- SelectObjectContentCommand: client_s3_1.SelectObjectContentCommand,
124
- UploadPartCommand: client_s3_1.UploadPartCommand,
125
- UploadPartCopyCommand: client_s3_1.UploadPartCopyCommand,
126
- WriteGetObjectResponseCommand: client_s3_1.WriteGetObjectResponseCommand,
127
- };
128
- exports.BaseS3ServiceEffect = Effect.gen(function* (_) {
129
- const client = yield* _(Context_1.S3ClientInstanceTag);
130
- const catchErrors = (e) => {
131
- if (e instanceof client_s3_1.S3ServiceException) {
132
- return (0, Errors_1.S3ServiceError)({
133
- ...e,
134
- name: "S3ServiceError",
135
- message: e.message,
136
- stack: e.stack,
137
- });
138
- }
139
- if (e instanceof Error) {
140
- return (0, Errors_1.SdkError)({
141
- ...e,
142
- name: "SdkError",
143
- message: e.message,
144
- stack: e.stack,
145
- });
146
- }
147
- throw e;
148
- };
149
- return RR.toEntries(commands).reduce((acc, [command]) => {
150
- const CommandCtor = commands[command];
151
- const methodImpl = (args, options) => (options === null || options === void 0 ? void 0 : options.presigned)
152
- ? Effect.tryPromise({
153
- try: () => (0, s3_request_presigner_1.getSignedUrl)(client, new CommandCtor(args), options),
154
- catch: catchErrors,
155
- })
156
- : Effect.tryPromise({
157
- try: () => client.send(new CommandCtor(args), options),
158
- catch: catchErrors,
159
- });
160
- const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
161
- return { ...acc, [methodName]: methodImpl };
162
- }, {});
163
- });
164
- exports.S3ServiceEffect = exports.BaseS3ServiceEffect.pipe(Effect.provide(Context_1.S3ClientInstanceLayer));
165
- exports.DefaultS3ServiceEffect = exports.BaseS3ServiceEffect.pipe(Effect.provide(Context_1.DefaultS3ClientInstanceLayer));
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUzMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREF5UjRCO0FBQzVCLHdFQUE2RDtBQUs3RCxzREFBd0M7QUFDeEMsMERBQTRDO0FBQzVDLHVDQUltQjtBQUNuQixxQ0FBb0Q7QUFFcEQsTUFBTSxRQUFRLEdBQUc7SUFDZiwyQkFBMkIsRUFBM0IsdUNBQTJCO0lBQzNCLDhCQUE4QixFQUE5QiwwQ0FBOEI7SUFDOUIsaUJBQWlCLEVBQWpCLDZCQUFpQjtJQUNqQixtQkFBbUIsRUFBbkIsK0JBQW1CO0lBQ25CLDRCQUE0QixFQUE1Qix3Q0FBNEI7SUFDNUIsbUJBQW1CLEVBQW5CLCtCQUFtQjtJQUNuQix5Q0FBeUMsRUFBekMscURBQXlDO0lBQ3pDLHVCQUF1QixFQUF2QixtQ0FBdUI7SUFDdkIsNkJBQTZCLEVBQTdCLHlDQUE2QjtJQUM3QixrREFBa0QsRUFBbEQsOERBQWtEO0lBQ2xELHlDQUF5QyxFQUF6QyxxREFBeUM7SUFDekMsNEJBQTRCLEVBQTVCLHdDQUE0QjtJQUM1Qix1Q0FBdUMsRUFBdkMsbURBQXVDO0lBQ3ZDLG9DQUFvQyxFQUFwQyxnREFBb0M7SUFDcEMseUJBQXlCLEVBQXpCLHFDQUF5QjtJQUN6Qiw4QkFBOEIsRUFBOUIsMENBQThCO0lBQzlCLDBCQUEwQixFQUExQixzQ0FBMEI7SUFDMUIsMEJBQTBCLEVBQTFCLHNDQUEwQjtJQUMxQixtQkFBbUIsRUFBbkIsK0JBQW1CO0lBQ25CLG9CQUFvQixFQUFwQixnQ0FBb0I7SUFDcEIsMEJBQTBCLEVBQTFCLHNDQUEwQjtJQUMxQiw4QkFBOEIsRUFBOUIsMENBQThCO0lBQzlCLHVDQUF1QyxFQUF2QyxtREFBdUM7SUFDdkMsbUJBQW1CLEVBQW5CLCtCQUFtQjtJQUNuQixzQ0FBc0MsRUFBdEMsa0RBQXNDO0lBQ3RDLG9CQUFvQixFQUFwQixnQ0FBb0I7SUFDcEIs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QUFFLFdBQVc7YUFDbkIsQ0FBQztZQUNKLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUNoQixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxXQUFXO2FBQ25CLENBQUMsQ0FBQztRQUNULE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQWMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQztBQUVVLFFBQUEsZUFBZSxHQUFHLDJCQUFtQixDQUFDLElBQUksQ0FDckQsTUFBTSxDQUFDLE9BQU8sQ0FBQywrQkFBcUIsQ0FBQyxDQUN0QyxDQUFDO0FBRVcsUUFBQSxzQkFBc0IsR0FBRywyQkFBbUIsQ0FBQyxJQUFJLENBQzVELE1BQU0sQ0FBQyxPQUFPLENBQUMsc0NBQTRCLENBQUMsQ0FDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCxcbiAgQWJvcnRNdWx0aXBhcnRVcGxvYWRDb21tYW5kSW5wdXQsXG4gIEFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dCxcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kLFxuICBDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRJbnB1dCxcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0LFxuICBDb3B5T2JqZWN0Q29tbWFuZCxcbiAgQ29weU9iamVjdENvbW1hbmRJbnB1dCxcbiAgQ29weU9iamVjdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUJ1Y2tldENvbW1hbmQsXG4gIENyZWF0ZUJ1Y2tldENvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlQnVja2V0Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCxcbiAgQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZElucHV0LFxuICBDcmVhdGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUJ1Y2tldENvbW1hbmQsXG4gIERlbGV0ZUJ1Y2tldENvbW1hbmRJbnB1dCxcbiAgRGVsZXRlQnVja2V0Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQnVja2V0Q29yc0NvbW1hbmQsXG4gIERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0RW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgRGVsZXRlQnVja2V0RW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICBEZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kLFxuICBEZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUJ1Y2tldExpZmVjeWNsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kLFxuICBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVCdWNrZXRQb2xpY3lDb21tYW5kLFxuICBEZWxldGVCdWNrZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUJ1Y2tldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0UmVwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIERlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQnVja2V0VGFnZ2luZ0NvbW1hbmQsXG4gIERlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUJ1Y2tldFRhZ2dpbmdDb21tYW5kT3V0cHV0LFxuICBEZWxldGVCdWNrZXRXZWJzaXRlQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmRJbnB1dCxcbiAgRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU9iamVjdENvbW1hbmQsXG4gIERlbGV0ZU9iamVjdENvbW1hbmRJbnB1dCxcbiAgRGVsZXRlT2JqZWN0Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT2JqZWN0c0NvbW1hbmQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kSW5wdXQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kT3V0cHV0LFxuICBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZCxcbiAgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRJbnB1dCxcbiAgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCxcbiAgRGVsZXRlUHVibGljQWNjZXNzQmxvY2tDb21tYW5kSW5wdXQsXG4gIERlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRBY2xDb21tYW5kLFxuICBHZXRCdWNrZXRBY2xDb21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldEFjbENvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICBHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0Q29yc0NvbW1hbmQsXG4gIEdldEJ1Y2tldENvcnNDb21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldENvcnNDb21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCxcbiAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICBHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCxcbiAgR2V0QnVja2V0TG9jYXRpb25Db21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0TG9nZ2luZ0NvbW1hbmQsXG4gIEdldEJ1Y2tldExvZ2dpbmdDb21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldExvZ2dpbmdDb21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICBHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICBHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kLFxuICBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRQb2xpY3lDb21tYW5kLFxuICBHZXRCdWNrZXRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldFBvbGljeVN0YXR1c0NvbW1hbmQsXG4gIEdldEJ1Y2tldFBvbGljeVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0UG9saWN5U3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0UmVwbGljYXRpb25Db21tYW5kLFxuICBHZXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0UmVwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQsXG4gIEdldEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZElucHV0LFxuICBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmRPdXRwdXQsXG4gIEdldEJ1Y2tldFRhZ2dpbmdDb21tYW5kLFxuICBHZXRCdWNrZXRUYWdnaW5nQ29tbWFuZElucHV0LFxuICBHZXRCdWNrZXRUYWdnaW5nQ29tbWFuZE91dHB1dCxcbiAgR2V0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQsXG4gIEdldEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kSW5wdXQsXG4gIEdldEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kT3V0cHV0LFxuICBHZXRCdWNrZXRXZWJzaXRlQ29tbWFuZCxcbiAgR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmRJbnB1dCxcbiAgR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmRPdXRwdXQsXG4gIEdldE9iamVjdEFjbENvbW1hbmQsXG4gIEdldE9iamVjdEFjbENvbW1hbmRJbnB1dCxcbiAgR2V0T2JqZWN0QWNsQ29tbWFuZE91dHB1dCxcbiAgR2V0T2JqZWN0QXR0cmlidXRlc0NvbW1hbmQsXG4gIEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICBHZXRPYmplY3RDb21tYW5kLFxuICBHZXRPYmplY3RDb21tYW5kSW5wdXQsXG4gIEdldE9iamVjdENvbW1hbmRPdXRwdXQsXG4gIEdldE9iamVjdExlZ2FsSG9sZENvbW1hbmQsXG4gIEdldE9iamVjdExlZ2FsSG9sZENvbW1hbmRJbnB1dCxcbiAgR2V0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZE91dHB1dCxcbiAgR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRPYmplY3RSZXRlbnRpb25Db21tYW5kLFxuICBHZXRPYmplY3RSZXRlbnRpb25Db21tYW5kSW5wdXQsXG4gIEdldE9iamVjdFJldGVudGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldE9iamVjdFRhZ2dpbmdDb21tYW5kLFxuICBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0LFxuICBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dCxcbiAgR2V0T2JqZWN0VG9ycmVudENvbW1hbmQsXG4gIEdldE9iamVjdFRvcnJlbnRDb21tYW5kSW5wdXQsXG4gIEdldE9iamVjdFRvcnJlbnRDb21tYW5kT3V0cHV0LFxuICBHZXRQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQsXG4gIEdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZElucHV0LFxuICBHZXRQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmRPdXRwdXQsXG4gIEhlYWRCdWNrZXRDb21tYW5kLFxuICBIZWFkQnVja2V0Q29tbWFuZElucHV0LFxuICBIZWFkQnVja2V0Q29tbWFuZE91dHB1dCxcbiAgSGVhZE9iamVjdENvbW1hbmQsXG4gIEhlYWRPYmplY3RDb21tYW5kSW5wdXQsXG4gIEhlYWRPYmplY3RDb21tYW5kT3V0cHV0LFxuICBMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNDb21tYW5kLFxuICBMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNDb21tYW5kSW5wdXQsXG4gIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc0NvbW1hbmQsXG4gIExpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgTGlzdEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zQ29tbWFuZCxcbiAgTGlzdEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25zQ29tbWFuZElucHV0LFxuICBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZCxcbiAgTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RCdWNrZXRzQ29tbWFuZCxcbiAgTGlzdEJ1Y2tldHNDb21tYW5kSW5wdXQsXG4gIExpc3RCdWNrZXRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdE11bHRpcGFydFVwbG9hZHNDb21tYW5kLFxuICBMaXN0TXVsdGlwYXJ0VXBsb2Fkc0NvbW1hbmRJbnB1dCxcbiAgTGlzdE11bHRpcGFydFVwbG9hZHNDb21tYW5kT3V0cHV0LFxuICBMaXN0T2JqZWN0c0NvbW1hbmQsXG4gIExpc3RPYmplY3RzQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RPYmplY3RzVjJDb21tYW5kLFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZE91dHB1dCxcbiAgTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZElucHV0LFxuICBMaXN0T2JqZWN0VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0UGFydHNDb21tYW5kLFxuICBMaXN0UGFydHNDb21tYW5kSW5wdXQsXG4gIExpc3RQYXJ0c0NvbW1hbmRPdXRwdXQsXG4gIFB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIFB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0QnVja2V0QWNsQ29tbWFuZCxcbiAgUHV0QnVja2V0QWNsQ29tbWFuZElucHV0LFxuICBQdXRCdWNrZXRBY2xDb21tYW5kT3V0cHV0LFxuICBQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dEJ1Y2tldENvcnNDb21tYW5kLFxuICBQdXRCdWNrZXRDb3JzQ29tbWFuZElucHV0LFxuICBQdXRCdWNrZXRDb3JzQ29tbWFuZE91dHB1dCxcbiAgUHV0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gIFB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gIFB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICBQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBQdXRCdWNrZXRMb2dnaW5nQ29tbWFuZCxcbiAgUHV0QnVja2V0TG9nZ2luZ0NvbW1hbmRJbnB1dCxcbiAgUHV0QnVja2V0TG9nZ2luZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIFB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0LFxuICBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmQsXG4gIFB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZElucHV0LFxuICBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmRPdXRwdXQsXG4gIFB1dEJ1Y2tldFBvbGljeUNvbW1hbmQsXG4gIFB1dEJ1Y2tldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgUHV0QnVja2V0UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0QnVja2V0UmVwbGljYXRpb25Db21tYW5kLFxuICBQdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgUHV0QnVja2V0UmVwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQsXG4gIFB1dEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZElucHV0LFxuICBQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmRPdXRwdXQsXG4gIFB1dEJ1Y2tldFRhZ2dpbmdDb21tYW5kLFxuICBQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZElucHV0LFxuICBQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZE91dHB1dCxcbiAgUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmQsXG4gIFB1dEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kSW5wdXQsXG4gIFB1dEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kT3V0cHV0LFxuICBQdXRCdWNrZXRXZWJzaXRlQ29tbWFuZCxcbiAgUHV0QnVja2V0V2Vic2l0ZUNvbW1hbmRJbnB1dCxcbiAgUHV0QnVja2V0V2Vic2l0ZUNvbW1hbmRPdXRwdXQsXG4gIFB1dE9iamVjdEFjbENvbW1hbmQsXG4gIFB1dE9iamVjdEFjbENvbW1hbmRJbnB1dCxcbiAgUHV0T2JqZWN0QWNsQ29tbWFuZE91dHB1dCxcbiAgUHV0T2JqZWN0Q29tbWFuZCxcbiAgUHV0T2JqZWN0Q29tbWFuZElucHV0LFxuICBQdXRPYmplY3RDb21tYW5kT3V0cHV0LFxuICBQdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kLFxuICBQdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kSW5wdXQsXG4gIFB1dE9iamVjdExlZ2FsSG9sZENvbW1hbmRPdXRwdXQsXG4gIFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZCxcbiAgUHV0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZElucHV0LFxuICBQdXRPYmplY3RSZXRlbnRpb25Db21tYW5kT3V0cHV0LFxuICBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZCxcbiAgUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmRJbnB1dCxcbiAgUHV0T2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXQsXG4gIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCxcbiAgUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kSW5wdXQsXG4gIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZE91dHB1dCxcbiAgUmVzdG9yZU9iamVjdENvbW1hbmQsXG4gIFJlc3RvcmVPYmplY3RDb21tYW5kSW5wdXQsXG4gIFJlc3RvcmVPYmplY3RDb21tYW5kT3V0cHV0LFxuICBTM1NlcnZpY2VFeGNlcHRpb24sXG4gIFNlbGVjdE9iamVjdENvbnRlbnRDb21tYW5kLFxuICBTZWxlY3RPYmplY3RDb250ZW50Q29tbWFuZElucHV0LFxuICBTZWxlY3RPYmplY3RDb250ZW50Q29tbWFuZE91dHB1dCxcbiAgVXBsb2FkUGFydENvbW1hbmQsXG4gIFVwbG9hZFBhcnRDb21tYW5kSW5wdXQsXG4gIFVwbG9hZFBhcnRDb21tYW5kT3V0cHV0LFxuICBVcGxvYWRQYXJ0Q29weUNvbW1hbmQsXG4gIFVwbG9hZFBhcnRDb3B5Q29tbWFuZElucHV0LFxuICBVcGxvYWRQYXJ0Q29weUNvbW1hbmRPdXRwdXQsXG4gIFdyaXRlR2V0T2JqZWN0UmVzcG9uc2VDb21tYW5kLFxuICBXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZElucHV0LFxuICBXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zM1wiO1xuaW1wb3J0IHsgZ2V0U2lnbmVkVXJsIH0gZnJvbSBcIkBhd3Mtc2RrL3MzLXJlcXVlc3QtcHJlc2lnbmVyXCI7XG5pbXBvcnQge1xuICBIdHRwSGFuZGxlck9wdGlvbnMgYXMgX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gIFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgUlIgZnJvbSBcImVmZmVjdC9SZWFkb25seVJlY29yZFwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdFMzQ2xpZW50SW5zdGFuY2VMYXllcixcbiAgUzNDbGllbnRJbnN0YW5jZUxheWVyLFxuICBTM0NsaWVudEluc3RhbmNlVGFnLFxufSBmcm9tIFwiLi9Db250ZXh0XCI7XG5pbXBvcnQgeyBTM1NlcnZpY2VFcnJvciwgU2RrRXJyb3IgfSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCxcbiAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kLFxuICBDb3B5T2JqZWN0Q29tbWFuZCxcbiAgQ3JlYXRlQnVja2V0Q29tbWFuZCxcbiAgQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0Q29tbWFuZCxcbiAgRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kLFxuICBEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBEZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kLFxuICBEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0UG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlQnVja2V0UmVwbGljYXRpb25Db21tYW5kLFxuICBEZWxldGVCdWNrZXRUYWdnaW5nQ29tbWFuZCxcbiAgRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmQsXG4gIERlbGV0ZU9iamVjdENvbW1hbmQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kLFxuICBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZCxcbiAgRGVsZXRlUHVibGljQWNjZXNzQmxvY2tDb21tYW5kLFxuICBHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldEFjbENvbW1hbmQsXG4gIEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRCdWNrZXRDb3JzQ29tbWFuZCxcbiAgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZCxcbiAgR2V0QnVja2V0TG9nZ2luZ0NvbW1hbmQsXG4gIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZCxcbiAgR2V0QnVja2V0UG9saWN5Q29tbWFuZCxcbiAgR2V0QnVja2V0UG9saWN5U3RhdHVzQ29tbWFuZCxcbiAgR2V0QnVja2V0UmVwbGljYXRpb25Db21tYW5kLFxuICBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmQsXG4gIEdldEJ1Y2tldFRhZ2dpbmdDb21tYW5kLFxuICBHZXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZCxcbiAgR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmQsXG4gIEdldE9iamVjdENvbW1hbmQsXG4gIEdldE9iamVjdEFjbENvbW1hbmQsXG4gIEdldE9iamVjdEF0dHJpYnV0ZXNDb21tYW5kLFxuICBHZXRPYmplY3RMZWdhbEhvbGRDb21tYW5kLFxuICBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIEdldE9iamVjdFJldGVudGlvbkNvbW1hbmQsXG4gIEdldE9iamVjdFRhZ2dpbmdDb21tYW5kLFxuICBHZXRPYmplY3RUb3JyZW50Q29tbWFuZCxcbiAgR2V0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kLFxuICBIZWFkQnVja2V0Q29tbWFuZCxcbiAgSGVhZE9iamVjdENvbW1hbmQsXG4gIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmQsXG4gIExpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc0NvbW1hbmQsXG4gIExpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc0NvbW1hbmQsXG4gIExpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNDb21tYW5kLFxuICBMaXN0QnVja2V0c0NvbW1hbmQsXG4gIExpc3RNdWx0aXBhcnRVcGxvYWRzQ29tbWFuZCxcbiAgTGlzdE9iamVjdHNDb21tYW5kLFxuICBMaXN0T2JqZWN0c1YyQ29tbWFuZCxcbiAgTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdFBhcnRzQ29tbWFuZCxcbiAgUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBQdXRCdWNrZXRBY2xDb21tYW5kLFxuICBQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgUHV0QnVja2V0Q29yc0NvbW1hbmQsXG4gIFB1dEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kLFxuICBQdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgUHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIFB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBQdXRCdWNrZXRMb2dnaW5nQ29tbWFuZCxcbiAgUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uQ29tbWFuZCxcbiAgUHV0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kLFxuICBQdXRCdWNrZXRQb2xpY3lDb21tYW5kLFxuICBQdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmQsXG4gIFB1dEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZCxcbiAgUHV0QnVja2V0VGFnZ2luZ0NvbW1hbmQsXG4gIFB1dEJ1Y2tldFZlcnNpb25pbmdDb21tYW5kLFxuICBQdXRCdWNrZXRXZWJzaXRlQ29tbWFuZCxcbiAgUHV0T2JqZWN0Q29tbWFuZCxcbiAgUHV0T2JqZWN0QWNsQ29tbWFuZCxcbiAgUHV0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZCxcbiAgUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBQdXRPYmplY3RSZXRlbnRpb25Db21tYW5kLFxuICBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZCxcbiAgUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kLFxuICBSZXN0b3JlT2JqZWN0Q29tbWFuZCxcbiAgU2VsZWN0T2JqZWN0Q29udGVudENvbW1hbmQsXG4gIFVwbG9hZFBhcnRDb21tYW5kLFxuICBVcGxvYWRQYXJ0Q29weUNvbW1hbmQsXG4gIFdyaXRlR2V0T2JqZWN0UmVzcG9uc2VDb21tYW5kLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTM1NlcnZpY2Uge1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWJvcnRNdWx0aXBhcnRVcGxvYWRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYWJvcnRNdWx0aXBhcnRVcGxvYWQ6IChcbiAgICBhcmdzOiBBYm9ydE11bHRpcGFydFVwbG9hZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEFib3J0TXVsdGlwYXJ0VXBsb2FkQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb21wbGV0ZU11bHRpcGFydFVwbG9hZENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjb21wbGV0ZU11bHRpcGFydFVwbG9hZDogKFxuICAgIGFyZ3M6IENvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlPYmplY3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY29weU9iamVjdDogKFxuICAgIGFyZ3M6IENvcHlPYmplY3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8bmV2ZXIsIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsIENvcHlPYmplY3RDb21tYW5kT3V0cHV0PjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQnVja2V0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUJ1Y2tldDogKFxuICAgIGFyZ3M6IENyZWF0ZUJ1Y2tldENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIENyZWF0ZUJ1Y2tldENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZU11bHRpcGFydFVwbG9hZDogKFxuICAgIGFyZ3M6IENyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIENyZWF0ZU11bHRpcGFydFVwbG9hZENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQnVja2V0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUJ1Y2tldDogKFxuICAgIGFyZ3M6IERlbGV0ZUJ1Y2tldENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIERlbGV0ZUJ1Y2tldENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogRGVsZXRlQnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIERlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQnVja2V0Q29yczogKFxuICAgIGFyZ3M6IERlbGV0ZUJ1Y2tldENvcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBEZWxldGVCdWNrZXRDb3JzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUJ1Y2tldEVuY3J5cHRpb246IChcbiAgICBhcmdzOiBEZWxldGVCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgRGVsZXRlQnVja2V0RW5jcnlwdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogRGVsZXRlQnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIERlbGV0ZUJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IERlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVCdWNrZXRMaWZlY3ljbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQnVja2V0TGlmZWN5Y2xlOiAoXG4gICAgYXJnczogRGVsZXRlQnVja2V0TGlmZWN5Y2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgRGVsZXRlQnVja2V0TGlmZWN5Y2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IERlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUJ1Y2tldE93bmVyc2hpcENvbnRyb2xzOiAoXG4gICAgYXJnczogRGVsZXRlQnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBEZWxldGVCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQnVja2V0UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUJ1Y2tldFBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZUJ1Y2tldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIERlbGV0ZUJ1Y2tldFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQnVja2V0UmVwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQnVja2V0UmVwbGljYXRpb246IChcbiAgICBhcmdzOiBEZWxldGVCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIERlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVCdWNrZXRUYWdnaW5nQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUJ1Y2tldFRhZ2dpbmc6IChcbiAgICBhcmdzOiBEZWxldGVCdWNrZXRUYWdnaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgRGVsZXRlQnVja2V0VGFnZ2luZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVCdWNrZXRXZWJzaXRlOiAoXG4gICAgYXJnczogRGVsZXRlQnVja2V0V2Vic2l0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIERlbGV0ZUJ1Y2tldFdlYnNpdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU9iamVjdENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVPYmplY3Q6IChcbiAgICBhcmdzOiBEZWxldGVPYmplY3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBEZWxldGVPYmplY3RDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU9iamVjdHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlT2JqZWN0czogKFxuICAgIGFyZ3M6IERlbGV0ZU9iamVjdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZU9iamVjdFRhZ2dpbmc6IChcbiAgICBhcmdzOiBEZWxldGVPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgRGVsZXRlT2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUHVibGljQWNjZXNzQmxvY2tDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUHVibGljQWNjZXNzQmxvY2s6IChcbiAgICBhcmdzOiBEZWxldGVQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIERlbGV0ZVB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IEdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEJ1Y2tldEFjbENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRCdWNrZXRBY2w6IChcbiAgICBhcmdzOiBHZXRCdWNrZXRBY2xDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBHZXRCdWNrZXRBY2xDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IEdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRCdWNrZXRDb3JzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEJ1Y2tldENvcnM6IChcbiAgICBhcmdzOiBHZXRCdWNrZXRDb3JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0QnVja2V0Q29yc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRCdWNrZXRFbmNyeXB0aW9uOiAoXG4gICAgYXJnczogR2V0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldEJ1Y2tldEVuY3J5cHRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IEdldEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBHZXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb246IChcbiAgICBhcmdzOiBHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEJ1Y2tldExvY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEJ1Y2tldExvY2F0aW9uOiAoXG4gICAgYXJnczogR2V0QnVja2V0TG9jYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBHZXRCdWNrZXRMb2NhdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QnVja2V0TG9nZ2luZ0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRCdWNrZXRMb2dnaW5nOiAoXG4gICAgYXJnczogR2V0QnVja2V0TG9nZ2luZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldEJ1Y2tldExvZ2dpbmdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogR2V0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogR2V0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzOiAoXG4gICAgYXJnczogR2V0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBHZXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QnVja2V0UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEJ1Y2tldFBvbGljeTogKFxuICAgIGFyZ3M6IEdldEJ1Y2tldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldEJ1Y2tldFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QnVja2V0UG9saWN5U3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEJ1Y2tldFBvbGljeVN0YXR1czogKFxuICAgIGFyZ3M6IEdldEJ1Y2tldFBvbGljeVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldEJ1Y2tldFBvbGljeVN0YXR1c0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QnVja2V0UmVwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QnVja2V0UmVwbGljYXRpb246IChcbiAgICBhcmdzOiBHZXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRCdWNrZXRSZXF1ZXN0UGF5bWVudDogKFxuICAgIGFyZ3M6IEdldEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEJ1Y2tldFRhZ2dpbmdDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QnVja2V0VGFnZ2luZzogKFxuICAgIGFyZ3M6IEdldEJ1Y2tldFRhZ2dpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBHZXRCdWNrZXRUYWdnaW5nQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEJ1Y2tldFZlcnNpb25pbmc6IChcbiAgICBhcmdzOiBHZXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRCdWNrZXRXZWJzaXRlOiAoXG4gICAgYXJnczogR2V0QnVja2V0V2Vic2l0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldEJ1Y2tldFdlYnNpdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE9iamVjdENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRPYmplY3Q6IHtcbiAgICAoXG4gICAgICBhcmdzOiBHZXRPYmplY3RDb21tYW5kSW5wdXQsXG4gICAgICBvcHRpb25zPzogeyByZWFkb25seSBwcmVzaWduZWQ/OiBmYWxzZSB9ICYgX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvciwgR2V0T2JqZWN0Q29tbWFuZE91dHB1dD47XG4gICAgKFxuICAgICAgYXJnczogR2V0T2JqZWN0Q29tbWFuZElucHV0LFxuICAgICAgb3B0aW9ucz86IHsgcmVhZG9ubHkgcHJlc2lnbmVkOiB0cnVlIH0gJiBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLCBzdHJpbmc+O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRPYmplY3RBY2xDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0T2JqZWN0QWNsOiAoXG4gICAgYXJnczogR2V0T2JqZWN0QWNsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0T2JqZWN0QWNsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRPYmplY3RBdHRyaWJ1dGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldE9iamVjdEF0dHJpYnV0ZXM6IChcbiAgICBhcmdzOiBHZXRPYmplY3RBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0T2JqZWN0QXR0cmlidXRlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldE9iamVjdExlZ2FsSG9sZDogKFxuICAgIGFyZ3M6IEdldE9iamVjdExlZ2FsSG9sZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldE9iamVjdExlZ2FsSG9sZENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb246IChcbiAgICBhcmdzOiBHZXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRPYmplY3RSZXRlbnRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0T2JqZWN0UmV0ZW50aW9uOiAoXG4gICAgYXJnczogR2V0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0T2JqZWN0UmV0ZW50aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldE9iamVjdFRhZ2dpbmc6IChcbiAgICBhcmdzOiBHZXRPYmplY3RUYWdnaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgR2V0T2JqZWN0VGFnZ2luZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0T2JqZWN0VG9ycmVudENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRPYmplY3RUb3JyZW50OiAoXG4gICAgYXJnczogR2V0T2JqZWN0VG9ycmVudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIEdldE9iamVjdFRvcnJlbnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFB1YmxpY0FjY2Vzc0Jsb2NrOiAoXG4gICAgYXJnczogR2V0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBHZXRQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSGVhZEJ1Y2tldENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBoZWFkQnVja2V0OiAoXG4gICAgYXJnczogSGVhZEJ1Y2tldENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxuZXZlciwgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvciwgSGVhZEJ1Y2tldENvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBIZWFkT2JqZWN0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGhlYWRPYmplY3Q6IChcbiAgICBhcmdzOiBIZWFkT2JqZWN0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLCBIZWFkT2JqZWN0Q29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnM6IChcbiAgICBhcmdzOiBMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBMaXN0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnM6IChcbiAgICBhcmdzOiBMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBMaXN0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnM6IChcbiAgICBhcmdzOiBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uczogKFxuICAgIGFyZ3M6IExpc3RCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QnVja2V0c0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QnVja2V0czogKFxuICAgIGFyZ3M6IExpc3RCdWNrZXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgTGlzdEJ1Y2tldHNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNdWx0aXBhcnRVcGxvYWRzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RNdWx0aXBhcnRVcGxvYWRzOiAoXG4gICAgYXJnczogTGlzdE11bHRpcGFydFVwbG9hZHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBMaXN0TXVsdGlwYXJ0VXBsb2Fkc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE9iamVjdHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE9iamVjdHM6IChcbiAgICBhcmdzOiBMaXN0T2JqZWN0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIExpc3RPYmplY3RzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0T2JqZWN0c1YyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RPYmplY3RzVjI6IChcbiAgICBhcmdzOiBMaXN0T2JqZWN0c1YyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgTGlzdE9iamVjdHNWMkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdE9iamVjdFZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RPYmplY3RWZXJzaW9uczogKFxuICAgIGFyZ3M6IExpc3RPYmplY3RWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIExpc3RPYmplY3RWZXJzaW9uc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBhcnRzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RQYXJ0czogKFxuICAgIGFyZ3M6IExpc3RQYXJ0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxuZXZlciwgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvciwgTGlzdFBhcnRzQ29tbWFuZE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QnVja2V0QWNsQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEJ1Y2tldEFjbDogKFxuICAgIGFyZ3M6IFB1dEJ1Y2tldEFjbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIFB1dEJ1Y2tldEFjbENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIFB1dEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEJ1Y2tldENvcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0QnVja2V0Q29yczogKFxuICAgIGFyZ3M6IFB1dEJ1Y2tldENvcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBQdXRCdWNrZXRDb3JzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEJ1Y2tldEVuY3J5cHRpb246IChcbiAgICBhcmdzOiBQdXRCdWNrZXRFbmNyeXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgUHV0QnVja2V0RW5jcnlwdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRCdWNrZXRJbnRlbGxpZ2VudFRpZXJpbmdDb25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogUHV0QnVja2V0SW50ZWxsaWdlbnRUaWVyaW5nQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIFB1dEJ1Y2tldEludGVsbGlnZW50VGllcmluZ0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IFB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb246IChcbiAgICBhcmdzOiBQdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QnVja2V0TG9nZ2luZ0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRCdWNrZXRMb2dnaW5nOiAoXG4gICAgYXJnczogUHV0QnVja2V0TG9nZ2luZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIFB1dEJ1Y2tldExvZ2dpbmdDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uOiAoXG4gICAgYXJnczogUHV0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIFB1dEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEJ1Y2tldE93bmVyc2hpcENvbnRyb2xzOiAoXG4gICAgYXJnczogUHV0QnVja2V0T3duZXJzaGlwQ29udHJvbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBQdXRCdWNrZXRPd25lcnNoaXBDb250cm9sc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QnVja2V0UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEJ1Y2tldFBvbGljeTogKFxuICAgIGFyZ3M6IFB1dEJ1Y2tldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIFB1dEJ1Y2tldFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QnVja2V0UmVwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0QnVja2V0UmVwbGljYXRpb246IChcbiAgICBhcmdzOiBQdXRCdWNrZXRSZXBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIFB1dEJ1Y2tldFJlcGxpY2F0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRCdWNrZXRSZXF1ZXN0UGF5bWVudDogKFxuICAgIGFyZ3M6IFB1dEJ1Y2tldFJlcXVlc3RQYXltZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgUHV0QnVja2V0UmVxdWVzdFBheW1lbnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEJ1Y2tldFRhZ2dpbmdDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0QnVja2V0VGFnZ2luZzogKFxuICAgIGFyZ3M6IFB1dEJ1Y2tldFRhZ2dpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBQdXRCdWNrZXRUYWdnaW5nQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dEJ1Y2tldFZlcnNpb25pbmc6IChcbiAgICBhcmdzOiBQdXRCdWNrZXRWZXJzaW9uaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgUHV0QnVja2V0VmVyc2lvbmluZ0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0QnVja2V0V2Vic2l0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRCdWNrZXRXZWJzaXRlOiAoXG4gICAgYXJnczogUHV0QnVja2V0V2Vic2l0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLFxuICAgIFB1dEJ1Y2tldFdlYnNpdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dE9iamVjdENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRPYmplY3Q6IHtcbiAgICAoXG4gICAgICBhcmdzOiBQdXRPYmplY3RDb21tYW5kSW5wdXQsXG4gICAgICBvcHRpb25zPzogeyByZWFkb25seSBwcmVzaWduZWQ/OiBmYWxzZSB9ICYgX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICAgKTogRWZmZWN0LkVmZmVjdDxuZXZlciwgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvciwgUHV0T2JqZWN0Q29tbWFuZE91dHB1dD47XG4gICAgKFxuICAgICAgYXJnczogUHV0T2JqZWN0Q29tbWFuZElucHV0LFxuICAgICAgb3B0aW9ucz86IHsgcmVhZG9ubHkgcHJlc2lnbmVkOiB0cnVlIH0gJiBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgICApOiBFZmZlY3QuRWZmZWN0PG5ldmVyLCBTZGtFcnJvciB8IFMzU2VydmljZUVycm9yLCBzdHJpbmc+O1xuICB9O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRPYmplY3RBY2xDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0T2JqZWN0QWNsOiAoXG4gICAgYXJnczogUHV0T2JqZWN0QWNsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgUHV0T2JqZWN0QWNsQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRPYmplY3RMZWdhbEhvbGRDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0T2JqZWN0TGVnYWxIb2xkOiAoXG4gICAgYXJnczogUHV0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgUHV0T2JqZWN0TGVnYWxIb2xkQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRPYmplY3RMb2NrQ29uZmlndXJhdGlvbjogKFxuICAgIGFyZ3M6IFB1dE9iamVjdExvY2tDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgUHV0T2JqZWN0TG9ja0NvbmZpZ3VyYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dE9iamVjdFJldGVudGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRPYmplY3RSZXRlbnRpb246IChcbiAgICBhcmdzOiBQdXRPYmplY3RSZXRlbnRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBQdXRPYmplY3RSZXRlbnRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dE9iamVjdFRhZ2dpbmdDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0T2JqZWN0VGFnZ2luZzogKFxuICAgIGFyZ3M6IFB1dE9iamVjdFRhZ2dpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBQdXRPYmplY3RUYWdnaW5nQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRQdWJsaWNBY2Nlc3NCbG9jazogKFxuICAgIGFyZ3M6IFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVPYmplY3RDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdG9yZU9iamVjdDogKFxuICAgIGFyZ3M6IFJlc3RvcmVPYmplY3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBSZXN0b3JlT2JqZWN0Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZWxlY3RPYmplY3RDb250ZW50Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHNlbGVjdE9iamVjdENvbnRlbnQ6IChcbiAgICBhcmdzOiBTZWxlY3RPYmplY3RDb250ZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgU2VsZWN0T2JqZWN0Q29udGVudENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBsb2FkUGFydENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGxvYWRQYXJ0OiAoXG4gICAgYXJnczogVXBsb2FkUGFydENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxuZXZlciwgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvciwgVXBsb2FkUGFydENvbW1hbmRPdXRwdXQ+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGxvYWRQYXJ0Q29weUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGxvYWRQYXJ0Q29weTogKFxuICAgIGFyZ3M6IFVwbG9hZFBhcnRDb3B5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgUzNTZXJ2aWNlRXJyb3IsXG4gICAgVXBsb2FkUGFydENvcHlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFdyaXRlR2V0T2JqZWN0UmVzcG9uc2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVHZXRPYmplY3RSZXNwb25zZTogKFxuICAgIGFyZ3M6IFdyaXRlR2V0T2JqZWN0UmVzcG9uc2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBTM1NlcnZpY2VFcnJvcixcbiAgICBXcml0ZUdldE9iamVjdFJlc3BvbnNlQ29tbWFuZE91dHB1dFxuICA+O1xufVxuXG5leHBvcnQgY29uc3QgQmFzZVMzU2VydmljZUVmZmVjdCA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKFMzQ2xpZW50SW5zdGFuY2VUYWcpO1xuXG4gIGNvbnN0IGNhdGNoRXJyb3JzID0gKGU6IHVua25vd24pID0+IHtcbiAgICBpZiAoZSBpbnN0YW5jZW9mIFMzU2VydmljZUV4Y2VwdGlvbikge1xuICAgICAgcmV0dXJuIFMzU2VydmljZUVycm9yKHtcbiAgICAgICAgLi4uZSxcbiAgICAgICAgbmFtZTogXCJTM1NlcnZpY2VFcnJvclwiLFxuICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgIC4uLmUsXG4gICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9O1xuXG4gIHJldHVybiBSUi50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKFxuICAgICAgYXJnczogYW55LFxuICAgICAgb3B0aW9ucz86XG4gICAgICAgIHwgKHsgcmVhZG9ubHkgcHJlc2lnbmVkPzogZmFsc2UgfSAmIF9fSHR0cEhhbmRsZXJPcHRpb25zKVxuICAgICAgICB8ICh7IHJlYWRvbmx5IHByZXNpZ25lZDogdHJ1ZSB9ICYgUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMpLFxuICAgICkgPT5cbiAgICAgIG9wdGlvbnM/LnByZXNpZ25lZFxuICAgICAgICA/IEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgICAgIHRyeTogKCkgPT5cbiAgICAgICAgICAgICAgZ2V0U2lnbmVkVXJsKGNsaWVudCBhcyBhbnksIG5ldyBDb21tYW5kQ3RvcihhcmdzKSwgb3B0aW9ucyksXG4gICAgICAgICAgICBjYXRjaDogY2F0Y2hFcnJvcnMsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgICAgICB0cnk6ICgpID0+IGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwgb3B0aW9ucyksXG4gICAgICAgICAgICBjYXRjaDogY2F0Y2hFcnJvcnMsXG4gICAgICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgUzNTZXJ2aWNlO1xufSk7XG5cbmV4cG9ydCBjb25zdCBTM1NlcnZpY2VFZmZlY3QgPSBCYXNlUzNTZXJ2aWNlRWZmZWN0LnBpcGUoXG4gIEVmZmVjdC5wcm92aWRlKFMzQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFMzU2VydmljZUVmZmVjdCA9IEJhc2VTM1NlcnZpY2VFZmZlY3QucGlwZShcbiAgRWZmZWN0LnByb3ZpZGUoRGVmYXVsdFMzQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuIl19
@@ -1,22 +0,0 @@
1
- import { S3Client } from "@aws-sdk/client-s3";
2
- import * as Context from "effect/Context";
3
- import * as Data from "effect/Data";
4
- import * as Effect from "effect/Effect";
5
- import * as Layer from "effect/Layer";
6
- import * as Runtime from "effect/Runtime";
7
- export class S3ClientOptions extends Data.TaggedClass("S3ClientOptions") {
8
- }
9
- export const S3ClientConfigTag = Context.Tag("@effect-aws/S3Client/Config");
10
- export const DefaultS3ClientConfigLayer = Layer.effect(S3ClientConfigTag, Effect.runtime().pipe(Effect.map((runtime) => new S3ClientOptions({
11
- logger: {
12
- info: (m) => Effect.logInfo(m).pipe(Runtime.runSync(runtime)),
13
- warn: (m) => Effect.logWarning(m).pipe(Runtime.runSync(runtime)),
14
- error: (m) => Effect.logError(m).pipe(Runtime.runSync(runtime)),
15
- debug: (m) => Effect.logDebug(m).pipe(Runtime.runSync(runtime)),
16
- trace: (m) => Effect.logTrace(m).pipe(Runtime.runSync(runtime)),
17
- },
18
- }))));
19
- export const S3ClientInstanceTag = Context.Tag("@effect-aws/S3Client/Instance");
20
- export const S3ClientInstanceLayer = Layer.effect(S3ClientInstanceTag, S3ClientConfigTag.pipe(Effect.map((config) => new S3Client(config))));
21
- export const DefaultS3ClientInstanceLayer = S3ClientInstanceLayer.pipe(Layer.provide(DefaultS3ClientConfigLayer));
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE1BQU0sT0FBTyxlQUFnQixTQUFRLElBQUksQ0FBQyxXQUFXLENBQ25ELGlCQUFpQixDQUNGO0NBQUc7QUFFcEIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FDMUMsNkJBQTZCLENBQzlCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNwRCxpQkFBaUIsRUFDakIsTUFBTSxDQUFDLE9BQU8sRUFBUyxDQUFDLElBQUksQ0FDMUIsTUFBTSxDQUFDLEdBQUcsQ0FDUixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1YsSUFBSSxlQUFlLENBQUM7SUFDbEIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNoRTtDQUNGLENBQUMsQ0FDTCxDQUNGLENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQzVDLCtCQUErQixDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDL0MsbUJBQW1CLEVBQ25CLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQ3JFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFMzQ2xpZW50LCBTM0NsaWVudENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtczNcIjtcbmltcG9ydCAqIGFzIENvbnRleHQgZnJvbSBcImVmZmVjdC9Db250ZXh0XCI7XG5pbXBvcnQgKiBhcyBEYXRhIGZyb20gXCJlZmZlY3QvRGF0YVwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQgKiBhcyBSdW50aW1lIGZyb20gXCJlZmZlY3QvUnVudGltZVwiO1xuXG5leHBvcnQgY2xhc3MgUzNDbGllbnRPcHRpb25zIGV4dGVuZHMgRGF0YS5UYWdnZWRDbGFzcyhcbiAgXCJTM0NsaWVudE9wdGlvbnNcIixcbik8UzNDbGllbnRDb25maWc+IHt9XG5cbmV4cG9ydCBjb25zdCBTM0NsaWVudENvbmZpZ1RhZyA9IENvbnRleHQuVGFnPFMzQ2xpZW50T3B0aW9ucz4oXG4gIFwiQGVmZmVjdC1hd3MvUzNDbGllbnQvQ29uZmlnXCIsXG4pO1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFMzQ2xpZW50Q29uZmlnTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIFMzQ2xpZW50Q29uZmlnVGFnLFxuICBFZmZlY3QucnVudGltZTxuZXZlcj4oKS5waXBlKFxuICAgIEVmZmVjdC5tYXAoXG4gICAgICAocnVudGltZSkgPT5cbiAgICAgICAgbmV3IFMzQ2xpZW50T3B0aW9ucyh7XG4gICAgICAgICAgbG9nZ2VyOiB7XG4gICAgICAgICAgICBpbmZvOiAobSkgPT4gRWZmZWN0LmxvZ0luZm8obSkucGlwZShSdW50aW1lLnJ1blN5bmMocnVudGltZSkpLFxuICAgICAgICAgICAgd2FybjogKG0pID0+IEVmZmVjdC5sb2dXYXJuaW5nKG0pLnBpcGUoUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpKSxcbiAgICAgICAgICAgIGVycm9yOiAobSkgPT4gRWZmZWN0LmxvZ0Vycm9yKG0pLnBpcGUoUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpKSxcbiAgICAgICAgICAgIGRlYnVnOiAobSkgPT4gRWZmZWN0LmxvZ0RlYnVnKG0pLnBpcGUoUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpKSxcbiAgICAgICAgICAgIHRyYWNlOiAobSkgPT4gRWZmZWN0LmxvZ1RyYWNlKG0pLnBpcGUoUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICApLFxuICApLFxuKTtcblxuZXhwb3J0IGNvbnN0IFMzQ2xpZW50SW5zdGFuY2VUYWcgPSBDb250ZXh0LlRhZzxTM0NsaWVudD4oXG4gIFwiQGVmZmVjdC1hd3MvUzNDbGllbnQvSW5zdGFuY2VcIixcbik7XG5cbmV4cG9ydCBjb25zdCBTM0NsaWVudEluc3RhbmNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIFMzQ2xpZW50SW5zdGFuY2VUYWcsXG4gIFMzQ2xpZW50Q29uZmlnVGFnLnBpcGUoRWZmZWN0Lm1hcCgoY29uZmlnKSA9PiBuZXcgUzNDbGllbnQoY29uZmlnKSkpLFxuKTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRTM0NsaWVudEluc3RhbmNlTGF5ZXIgPSBTM0NsaWVudEluc3RhbmNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0UzNDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19