@effect-aws/client-rds 1.0.0
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 +17 -0
- package/LICENSE +19 -0
- package/README.md +85 -0
- package/docgen.json +8 -0
- package/lib/Errors.d.ts +156 -0
- package/lib/Errors.js +152 -0
- package/lib/RDSClientInstance.d.ts +31 -0
- package/lib/RDSClientInstance.js +57 -0
- package/lib/RDSClientInstanceConfig.d.ts +23 -0
- package/lib/RDSClientInstanceConfig.js +44 -0
- package/lib/RDSService.d.ts +859 -0
- package/lib/RDSService.js +236 -0
- package/lib/esm/Errors.js +149 -0
- package/lib/esm/RDSClientInstance.js +30 -0
- package/lib/esm/RDSClientInstanceConfig.js +40 -0
- package/lib/esm/RDSService.js +232 -0
- package/lib/esm/index.js +5 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +21 -0
- package/package.json +54 -0
- package/project.json +77 -0
- package/vitest.config.ts +3 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import { RDSServiceException, AddRoleToDBClusterCommand, AddRoleToDBInstanceCommand, AddSourceIdentifierToSubscriptionCommand, AddTagsToResourceCommand, ApplyPendingMaintenanceActionCommand, AuthorizeDBSecurityGroupIngressCommand, BacktrackDBClusterCommand, CancelExportTaskCommand, CopyDBClusterParameterGroupCommand, CopyDBClusterSnapshotCommand, CopyDBParameterGroupCommand, CopyDBSnapshotCommand, CopyOptionGroupCommand, CreateBlueGreenDeploymentCommand, CreateCustomDBEngineVersionCommand, CreateDBClusterCommand, CreateDBClusterEndpointCommand, CreateDBClusterParameterGroupCommand, CreateDBClusterSnapshotCommand, CreateDBInstanceCommand, CreateDBInstanceReadReplicaCommand, CreateDBParameterGroupCommand, CreateDBProxyCommand, CreateDBProxyEndpointCommand, CreateDBSecurityGroupCommand, CreateDBShardGroupCommand, CreateDBSnapshotCommand, CreateDBSubnetGroupCommand, CreateEventSubscriptionCommand, CreateGlobalClusterCommand, CreateIntegrationCommand, CreateOptionGroupCommand, CreateTenantDatabaseCommand, DeleteBlueGreenDeploymentCommand, DeleteCustomDBEngineVersionCommand, DeleteDBClusterCommand, DeleteDBClusterAutomatedBackupCommand, DeleteDBClusterEndpointCommand, DeleteDBClusterParameterGroupCommand, DeleteDBClusterSnapshotCommand, DeleteDBInstanceCommand, DeleteDBInstanceAutomatedBackupCommand, DeleteDBParameterGroupCommand, DeleteDBProxyCommand, DeleteDBProxyEndpointCommand, DeleteDBSecurityGroupCommand, DeleteDBShardGroupCommand, DeleteDBSnapshotCommand, DeleteDBSubnetGroupCommand, DeleteEventSubscriptionCommand, DeleteGlobalClusterCommand, DeleteIntegrationCommand, DeleteOptionGroupCommand, DeleteTenantDatabaseCommand, DeregisterDBProxyTargetsCommand, DescribeAccountAttributesCommand, DescribeBlueGreenDeploymentsCommand, DescribeCertificatesCommand, DescribeDBClusterAutomatedBackupsCommand, DescribeDBClusterBacktracksCommand, DescribeDBClusterEndpointsCommand, DescribeDBClusterParameterGroupsCommand, DescribeDBClusterParametersCommand, DescribeDBClusterSnapshotAttributesCommand, DescribeDBClusterSnapshotsCommand, DescribeDBClustersCommand, DescribeDBEngineVersionsCommand, DescribeDBInstanceAutomatedBackupsCommand, DescribeDBInstancesCommand, DescribeDBLogFilesCommand, DescribeDBParameterGroupsCommand, DescribeDBParametersCommand, DescribeDBProxiesCommand, DescribeDBProxyEndpointsCommand, DescribeDBProxyTargetGroupsCommand, DescribeDBProxyTargetsCommand, DescribeDBRecommendationsCommand, DescribeDBSecurityGroupsCommand, DescribeDBShardGroupsCommand, DescribeDBSnapshotAttributesCommand, DescribeDBSnapshotTenantDatabasesCommand, DescribeDBSnapshotsCommand, DescribeDBSubnetGroupsCommand, DescribeEngineDefaultClusterParametersCommand, DescribeEngineDefaultParametersCommand, DescribeEventCategoriesCommand, DescribeEventSubscriptionsCommand, DescribeEventsCommand, DescribeExportTasksCommand, DescribeGlobalClustersCommand, DescribeIntegrationsCommand, DescribeOptionGroupOptionsCommand, DescribeOptionGroupsCommand, DescribeOrderableDBInstanceOptionsCommand, DescribePendingMaintenanceActionsCommand, DescribeReservedDBInstancesCommand, DescribeReservedDBInstancesOfferingsCommand, DescribeSourceRegionsCommand, DescribeTenantDatabasesCommand, DescribeValidDBInstanceModificationsCommand, DisableHttpEndpointCommand, DownloadDBLogFilePortionCommand, EnableHttpEndpointCommand, FailoverDBClusterCommand, FailoverGlobalClusterCommand, ListTagsForResourceCommand, ModifyActivityStreamCommand, ModifyCertificatesCommand, ModifyCurrentDBClusterCapacityCommand, ModifyCustomDBEngineVersionCommand, ModifyDBClusterCommand, ModifyDBClusterEndpointCommand, ModifyDBClusterParameterGroupCommand, ModifyDBClusterSnapshotAttributeCommand, ModifyDBInstanceCommand, ModifyDBParameterGroupCommand, ModifyDBProxyCommand, ModifyDBProxyEndpointCommand, ModifyDBProxyTargetGroupCommand, ModifyDBRecommendationCommand, ModifyDBShardGroupCommand, ModifyDBSnapshotCommand, ModifyDBSnapshotAttributeCommand, ModifyDBSubnetGroupCommand, ModifyEventSubscriptionCommand, ModifyGlobalClusterCommand, ModifyIntegrationCommand, ModifyOptionGroupCommand, ModifyTenantDatabaseCommand, PromoteReadReplicaCommand, PromoteReadReplicaDBClusterCommand, PurchaseReservedDBInstancesOfferingCommand, RebootDBClusterCommand, RebootDBInstanceCommand, RebootDBShardGroupCommand, RegisterDBProxyTargetsCommand, RemoveFromGlobalClusterCommand, RemoveRoleFromDBClusterCommand, RemoveRoleFromDBInstanceCommand, RemoveSourceIdentifierFromSubscriptionCommand, RemoveTagsFromResourceCommand, ResetDBClusterParameterGroupCommand, ResetDBParameterGroupCommand, RestoreDBClusterFromS3Command, RestoreDBClusterFromSnapshotCommand, RestoreDBClusterToPointInTimeCommand, RestoreDBInstanceFromDBSnapshotCommand, RestoreDBInstanceFromS3Command, RestoreDBInstanceToPointInTimeCommand, RevokeDBSecurityGroupIngressCommand, StartActivityStreamCommand, StartDBClusterCommand, StartDBInstanceCommand, StartDBInstanceAutomatedBackupsReplicationCommand, StartExportTaskCommand, StopActivityStreamCommand, StopDBClusterCommand, StopDBInstanceCommand, StopDBInstanceAutomatedBackupsReplicationCommand, SwitchoverBlueGreenDeploymentCommand, SwitchoverGlobalClusterCommand, SwitchoverReadReplicaCommand, } from "@aws-sdk/client-rds";
|
|
5
|
+
import { Data, Effect, Layer, Record } from "effect";
|
|
6
|
+
import { AllServiceErrors, SdkError, } from "./Errors";
|
|
7
|
+
import { RDSClientInstance, RDSClientInstanceLayer } from "./RDSClientInstance";
|
|
8
|
+
import { DefaultRDSClientConfigLayer } from "./RDSClientInstanceConfig";
|
|
9
|
+
const commands = {
|
|
10
|
+
AddRoleToDBClusterCommand,
|
|
11
|
+
AddRoleToDBInstanceCommand,
|
|
12
|
+
AddSourceIdentifierToSubscriptionCommand,
|
|
13
|
+
AddTagsToResourceCommand,
|
|
14
|
+
ApplyPendingMaintenanceActionCommand,
|
|
15
|
+
AuthorizeDBSecurityGroupIngressCommand,
|
|
16
|
+
BacktrackDBClusterCommand,
|
|
17
|
+
CancelExportTaskCommand,
|
|
18
|
+
CopyDBClusterParameterGroupCommand,
|
|
19
|
+
CopyDBClusterSnapshotCommand,
|
|
20
|
+
CopyDBParameterGroupCommand,
|
|
21
|
+
CopyDBSnapshotCommand,
|
|
22
|
+
CopyOptionGroupCommand,
|
|
23
|
+
CreateBlueGreenDeploymentCommand,
|
|
24
|
+
CreateCustomDBEngineVersionCommand,
|
|
25
|
+
CreateDBClusterCommand,
|
|
26
|
+
CreateDBClusterEndpointCommand,
|
|
27
|
+
CreateDBClusterParameterGroupCommand,
|
|
28
|
+
CreateDBClusterSnapshotCommand,
|
|
29
|
+
CreateDBInstanceCommand,
|
|
30
|
+
CreateDBInstanceReadReplicaCommand,
|
|
31
|
+
CreateDBParameterGroupCommand,
|
|
32
|
+
CreateDBProxyCommand,
|
|
33
|
+
CreateDBProxyEndpointCommand,
|
|
34
|
+
CreateDBSecurityGroupCommand,
|
|
35
|
+
CreateDBShardGroupCommand,
|
|
36
|
+
CreateDBSnapshotCommand,
|
|
37
|
+
CreateDBSubnetGroupCommand,
|
|
38
|
+
CreateEventSubscriptionCommand,
|
|
39
|
+
CreateGlobalClusterCommand,
|
|
40
|
+
CreateIntegrationCommand,
|
|
41
|
+
CreateOptionGroupCommand,
|
|
42
|
+
CreateTenantDatabaseCommand,
|
|
43
|
+
DeleteBlueGreenDeploymentCommand,
|
|
44
|
+
DeleteCustomDBEngineVersionCommand,
|
|
45
|
+
DeleteDBClusterCommand,
|
|
46
|
+
DeleteDBClusterAutomatedBackupCommand,
|
|
47
|
+
DeleteDBClusterEndpointCommand,
|
|
48
|
+
DeleteDBClusterParameterGroupCommand,
|
|
49
|
+
DeleteDBClusterSnapshotCommand,
|
|
50
|
+
DeleteDBInstanceCommand,
|
|
51
|
+
DeleteDBInstanceAutomatedBackupCommand,
|
|
52
|
+
DeleteDBParameterGroupCommand,
|
|
53
|
+
DeleteDBProxyCommand,
|
|
54
|
+
DeleteDBProxyEndpointCommand,
|
|
55
|
+
DeleteDBSecurityGroupCommand,
|
|
56
|
+
DeleteDBShardGroupCommand,
|
|
57
|
+
DeleteDBSnapshotCommand,
|
|
58
|
+
DeleteDBSubnetGroupCommand,
|
|
59
|
+
DeleteEventSubscriptionCommand,
|
|
60
|
+
DeleteGlobalClusterCommand,
|
|
61
|
+
DeleteIntegrationCommand,
|
|
62
|
+
DeleteOptionGroupCommand,
|
|
63
|
+
DeleteTenantDatabaseCommand,
|
|
64
|
+
DeregisterDBProxyTargetsCommand,
|
|
65
|
+
DescribeAccountAttributesCommand,
|
|
66
|
+
DescribeBlueGreenDeploymentsCommand,
|
|
67
|
+
DescribeCertificatesCommand,
|
|
68
|
+
DescribeDBClusterAutomatedBackupsCommand,
|
|
69
|
+
DescribeDBClusterBacktracksCommand,
|
|
70
|
+
DescribeDBClusterEndpointsCommand,
|
|
71
|
+
DescribeDBClusterParameterGroupsCommand,
|
|
72
|
+
DescribeDBClusterParametersCommand,
|
|
73
|
+
DescribeDBClusterSnapshotAttributesCommand,
|
|
74
|
+
DescribeDBClusterSnapshotsCommand,
|
|
75
|
+
DescribeDBClustersCommand,
|
|
76
|
+
DescribeDBEngineVersionsCommand,
|
|
77
|
+
DescribeDBInstanceAutomatedBackupsCommand,
|
|
78
|
+
DescribeDBInstancesCommand,
|
|
79
|
+
DescribeDBLogFilesCommand,
|
|
80
|
+
DescribeDBParameterGroupsCommand,
|
|
81
|
+
DescribeDBParametersCommand,
|
|
82
|
+
DescribeDBProxiesCommand,
|
|
83
|
+
DescribeDBProxyEndpointsCommand,
|
|
84
|
+
DescribeDBProxyTargetGroupsCommand,
|
|
85
|
+
DescribeDBProxyTargetsCommand,
|
|
86
|
+
DescribeDBRecommendationsCommand,
|
|
87
|
+
DescribeDBSecurityGroupsCommand,
|
|
88
|
+
DescribeDBShardGroupsCommand,
|
|
89
|
+
DescribeDBSnapshotAttributesCommand,
|
|
90
|
+
DescribeDBSnapshotTenantDatabasesCommand,
|
|
91
|
+
DescribeDBSnapshotsCommand,
|
|
92
|
+
DescribeDBSubnetGroupsCommand,
|
|
93
|
+
DescribeEngineDefaultClusterParametersCommand,
|
|
94
|
+
DescribeEngineDefaultParametersCommand,
|
|
95
|
+
DescribeEventCategoriesCommand,
|
|
96
|
+
DescribeEventSubscriptionsCommand,
|
|
97
|
+
DescribeEventsCommand,
|
|
98
|
+
DescribeExportTasksCommand,
|
|
99
|
+
DescribeGlobalClustersCommand,
|
|
100
|
+
DescribeIntegrationsCommand,
|
|
101
|
+
DescribeOptionGroupOptionsCommand,
|
|
102
|
+
DescribeOptionGroupsCommand,
|
|
103
|
+
DescribeOrderableDBInstanceOptionsCommand,
|
|
104
|
+
DescribePendingMaintenanceActionsCommand,
|
|
105
|
+
DescribeReservedDBInstancesCommand,
|
|
106
|
+
DescribeReservedDBInstancesOfferingsCommand,
|
|
107
|
+
DescribeSourceRegionsCommand,
|
|
108
|
+
DescribeTenantDatabasesCommand,
|
|
109
|
+
DescribeValidDBInstanceModificationsCommand,
|
|
110
|
+
DisableHttpEndpointCommand,
|
|
111
|
+
DownloadDBLogFilePortionCommand,
|
|
112
|
+
EnableHttpEndpointCommand,
|
|
113
|
+
FailoverDBClusterCommand,
|
|
114
|
+
FailoverGlobalClusterCommand,
|
|
115
|
+
ListTagsForResourceCommand,
|
|
116
|
+
ModifyActivityStreamCommand,
|
|
117
|
+
ModifyCertificatesCommand,
|
|
118
|
+
ModifyCurrentDBClusterCapacityCommand,
|
|
119
|
+
ModifyCustomDBEngineVersionCommand,
|
|
120
|
+
ModifyDBClusterCommand,
|
|
121
|
+
ModifyDBClusterEndpointCommand,
|
|
122
|
+
ModifyDBClusterParameterGroupCommand,
|
|
123
|
+
ModifyDBClusterSnapshotAttributeCommand,
|
|
124
|
+
ModifyDBInstanceCommand,
|
|
125
|
+
ModifyDBParameterGroupCommand,
|
|
126
|
+
ModifyDBProxyCommand,
|
|
127
|
+
ModifyDBProxyEndpointCommand,
|
|
128
|
+
ModifyDBProxyTargetGroupCommand,
|
|
129
|
+
ModifyDBRecommendationCommand,
|
|
130
|
+
ModifyDBShardGroupCommand,
|
|
131
|
+
ModifyDBSnapshotCommand,
|
|
132
|
+
ModifyDBSnapshotAttributeCommand,
|
|
133
|
+
ModifyDBSubnetGroupCommand,
|
|
134
|
+
ModifyEventSubscriptionCommand,
|
|
135
|
+
ModifyGlobalClusterCommand,
|
|
136
|
+
ModifyIntegrationCommand,
|
|
137
|
+
ModifyOptionGroupCommand,
|
|
138
|
+
ModifyTenantDatabaseCommand,
|
|
139
|
+
PromoteReadReplicaCommand,
|
|
140
|
+
PromoteReadReplicaDBClusterCommand,
|
|
141
|
+
PurchaseReservedDBInstancesOfferingCommand,
|
|
142
|
+
RebootDBClusterCommand,
|
|
143
|
+
RebootDBInstanceCommand,
|
|
144
|
+
RebootDBShardGroupCommand,
|
|
145
|
+
RegisterDBProxyTargetsCommand,
|
|
146
|
+
RemoveFromGlobalClusterCommand,
|
|
147
|
+
RemoveRoleFromDBClusterCommand,
|
|
148
|
+
RemoveRoleFromDBInstanceCommand,
|
|
149
|
+
RemoveSourceIdentifierFromSubscriptionCommand,
|
|
150
|
+
RemoveTagsFromResourceCommand,
|
|
151
|
+
ResetDBClusterParameterGroupCommand,
|
|
152
|
+
ResetDBParameterGroupCommand,
|
|
153
|
+
RestoreDBClusterFromS3Command,
|
|
154
|
+
RestoreDBClusterFromSnapshotCommand,
|
|
155
|
+
RestoreDBClusterToPointInTimeCommand,
|
|
156
|
+
RestoreDBInstanceFromDBSnapshotCommand,
|
|
157
|
+
RestoreDBInstanceFromS3Command,
|
|
158
|
+
RestoreDBInstanceToPointInTimeCommand,
|
|
159
|
+
RevokeDBSecurityGroupIngressCommand,
|
|
160
|
+
StartActivityStreamCommand,
|
|
161
|
+
StartDBClusterCommand,
|
|
162
|
+
StartDBInstanceCommand,
|
|
163
|
+
StartDBInstanceAutomatedBackupsReplicationCommand,
|
|
164
|
+
StartExportTaskCommand,
|
|
165
|
+
StopActivityStreamCommand,
|
|
166
|
+
StopDBClusterCommand,
|
|
167
|
+
StopDBInstanceCommand,
|
|
168
|
+
StopDBInstanceAutomatedBackupsReplicationCommand,
|
|
169
|
+
SwitchoverBlueGreenDeploymentCommand,
|
|
170
|
+
SwitchoverGlobalClusterCommand,
|
|
171
|
+
SwitchoverReadReplicaCommand,
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* @since 1.0.0
|
|
175
|
+
* @category models
|
|
176
|
+
*/
|
|
177
|
+
export class RDSService extends Effect.Tag("@effect-aws/client-rds/RDSService")() {
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* @since 1.0.0
|
|
181
|
+
* @category constructors
|
|
182
|
+
*/
|
|
183
|
+
export const makeRDSService = Effect.gen(function* (_) {
|
|
184
|
+
const client = yield* _(RDSClientInstance);
|
|
185
|
+
return Record.toEntries(commands).reduce((acc, [command]) => {
|
|
186
|
+
const CommandCtor = commands[command];
|
|
187
|
+
const methodImpl = (args, options) => Effect.tryPromise({
|
|
188
|
+
try: (abortSignal) => client.send(new CommandCtor(args), {
|
|
189
|
+
...(options !== null && options !== void 0 ? options : {}),
|
|
190
|
+
abortSignal,
|
|
191
|
+
}),
|
|
192
|
+
catch: (e) => {
|
|
193
|
+
if (e instanceof RDSServiceException &&
|
|
194
|
+
AllServiceErrors.includes(e.name)) {
|
|
195
|
+
const ServiceException = Data.tagged(e.name);
|
|
196
|
+
return ServiceException({
|
|
197
|
+
...e,
|
|
198
|
+
message: e.message,
|
|
199
|
+
stack: e.stack,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
if (e instanceof Error) {
|
|
203
|
+
return SdkError({
|
|
204
|
+
...e,
|
|
205
|
+
name: "SdkError",
|
|
206
|
+
message: e.message,
|
|
207
|
+
stack: e.stack,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
throw e;
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
|
|
214
|
+
return { ...acc, [methodName]: methodImpl };
|
|
215
|
+
}, {});
|
|
216
|
+
});
|
|
217
|
+
/**
|
|
218
|
+
* @since 1.0.0
|
|
219
|
+
* @category layers
|
|
220
|
+
*/
|
|
221
|
+
export const BaseRDSServiceLayer = Layer.effect(RDSService, makeRDSService);
|
|
222
|
+
/**
|
|
223
|
+
* @since 1.0.0
|
|
224
|
+
* @category layers
|
|
225
|
+
*/
|
|
226
|
+
export const RDSServiceLayer = BaseRDSServiceLayer.pipe(Layer.provide(RDSClientInstanceLayer));
|
|
227
|
+
/**
|
|
228
|
+
* @since 1.0.0
|
|
229
|
+
* @category layers
|
|
230
|
+
*/
|
|
231
|
+
export const DefaultRDSServiceLayer = RDSServiceLayer.pipe(Layer.provide(DefaultRDSClientConfigLayer));
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUkRTU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9SRFNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLG1CQUFtQixFQUNuQix5QkFBeUIsRUFHekIsMEJBQTBCLEVBRzFCLHdDQUF3QyxFQUd4Qyx3QkFBd0IsRUFHeEIsb0NBQW9DLEVBR3BDLHNDQUFzQyxFQUd0Qyx5QkFBeUIsRUFHekIsdUJBQXVCLEVBR3ZCLGtDQUFrQyxFQUdsQyw0QkFBNEIsRUFHNUIsMkJBQTJCLEVBRzNCLHFCQUFxQixFQUdyQixzQkFBc0IsRUFHdEIsZ0NBQWdDLEVBR2hDLGtDQUFrQyxFQUdsQyxzQkFBc0IsRUFHdEIsOEJBQThCLEVBRzlCLG9DQUFvQyxFQUdwQyw4QkFBOEIsRUFHOUIsdUJBQXVCLEVBR3ZCLGtDQUFrQyxFQUdsQyw2QkFBNkIsRUFHN0Isb0JBQW9CLEVBR3BCLDRCQUE0QixFQUc1Qiw0QkFBNEIsRUFHNUIseUJBQXlCLEVBR3pCLHVCQUF1QixFQUd2QiwwQkFBMEIsRUFHMUIsOEJBQThCLEVBRzlCLDBCQUEwQixFQUcxQix3QkFBd0IsRUFHeEIsd0JBQXdCLEVBR3hCLDJCQUEyQixFQUczQixnQ0FBZ0MsRUFHaEMsa0NBQWtDLEVBR2xDLHNCQUFzQixFQUd0QixxQ0FBcUMsRUFHckMsOEJBQThCLEVBRzlCLG9DQUFvQyxFQUdwQyw4QkFBOEIsRUFHOUIsdUJBQXVCLEVBR3ZCLHNDQUFzQyxFQUd0Qyw2QkFBNkIsRUFHN0Isb0JBQW9CLEVBR3BCLDRCQUE0QixFQUc1Qiw0QkFBNEIsRUFHNUIseUJBQXlCLEVBR3pCLHVCQUF1QixFQUd2QiwwQkFBMEIsRUFHMUIsOEJBQThCLEVBRzlCLDBCQUEwQixFQUcxQix3QkFBd0IsRUFHeEIsd0JBQXdCLEVBR3hCLDJCQUEyQixFQUczQiwrQkFBK0IsRUFHL0IsZ0NBQWdDLEVBR2hDLG1DQUFtQyxFQUduQywyQkFBMkIs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LHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIFJEU1NlcnZpY2VFeGNlcHRpb24sXG4gIEFkZFJvbGVUb0RCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgQWRkUm9sZVRvREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFJvbGVUb0RCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIEFkZFJvbGVUb0RCSW5zdGFuY2VDb21tYW5kLFxuICB0eXBlIEFkZFJvbGVUb0RCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkUm9sZVRvREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gIEFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEFwcGx5UGVuZGluZ01haW50ZW5hbmNlQWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICB0eXBlIEF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIEJhY2t0cmFja0RCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgQmFja3RyYWNrREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEJhY2t0cmFja0RCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENvcHlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgQ29weURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENvcHlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIENvcHlEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ29weURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENvcHlEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENvcHlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDb3B5REJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5REJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIENvcHlEQlNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDb3B5REJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDb3B5REJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENvcHlPcHRpb25Hcm91cENvbW1hbmQsXG4gIHR5cGUgQ29weU9wdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENvcHlPcHRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kLFxuICB0eXBlIENyZWF0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCSW5zdGFuY2VDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCUHJveHlDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCUHJveHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJQcm94eUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCUHJveHlFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJQcm94eUVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCUHJveHlFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCU2hhcmRHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJTaGFyZEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURCU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZUdsb2JhbENsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlR2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUludGVncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU9wdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVPcHRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPcHRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVRlbmFudERhdGFiYXNlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVUZW5hbnREYXRhYmFzZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVUZW5hbnREYXRhYmFzZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kLFxuICB0eXBlIERlbGV0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyQXV0b21hdGVkQmFja3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCSW5zdGFuY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCUHJveHlDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCUHJveHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJQcm94eUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCUHJveHlFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJQcm94eUVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCUHJveHlFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCU2VjdXJpdHlHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCU2VjdXJpdHlHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCU2hhcmRHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJTaGFyZEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCU25hcHNob3RDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURCU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZUdsb2JhbENsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlR2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU9wdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVPcHRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPcHRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVRlbmFudERhdGFiYXNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVUZW5hbnREYXRhYmFzZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVUZW5hbnREYXRhYmFzZUNvbW1hbmRPdXRwdXQsXG4gIERlcmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmQsXG4gIHR5cGUgRGVyZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlcmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQmx1ZUdyZWVuRGVwbG95bWVudHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQmx1ZUdyZWVuRGVwbG95bWVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVCbHVlR3JlZW5EZXBsb3ltZW50c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJDbHVzdGVyQXV0b21hdGVkQmFja3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyQXV0b21hdGVkQmFja3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJDbHVzdGVyQmFja3RyYWNrc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJCYWNrdHJhY2tzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyQmFja3RyYWNrc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJDbHVzdGVyRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlckVuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlckVuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJDbHVzdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJJbnN0YW5jZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJMb2dGaWxlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkxvZ0ZpbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJMb2dGaWxlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJQcm94aWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCUHJveGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCUHJveGllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJQcm94eUVuZHBvaW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJQcm94eUVuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJQcm94eVRhcmdldEdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlByb3h5VGFyZ2V0R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJQcm94eVRhcmdldEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJQcm94eVRhcmdldHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJQcm94eVRhcmdldHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlByb3h5VGFyZ2V0c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJSZWNvbW1lbmRhdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJSZWNvbW1lbmRhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlJlY29tbWVuZGF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJTZWN1cml0eUdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJTZWN1cml0eUdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJTaGFyZEdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlNoYXJkR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJTaGFyZEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJTbmFwc2hvdFRlbmFudERhdGFiYXNlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJTbmFwc2hvdFRlbmFudERhdGFiYXNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJTbmFwc2hvdHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJTbmFwc2hvdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlREJTdWJuZXRHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJTdWJuZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXZlbnRDYXRlZ29yaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlR2xvYmFsQ2x1c3RlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlR2xvYmFsQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVHbG9iYWxDbHVzdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlSW50ZWdyYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUludGVncmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUludGVncmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlT3B0aW9uR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU291cmNlUmVnaW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTb3VyY2VSZWdpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU291cmNlUmVnaW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVGVuYW50RGF0YWJhc2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVRlbmFudERhdGFiYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVRlbmFudERhdGFiYXNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERpc2FibGVIdHRwRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIERpc2FibGVIdHRwRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYWJsZUh0dHBFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERvd25sb2FkREJMb2dGaWxlUG9ydGlvbkNvbW1hbmQsXG4gIHR5cGUgRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERvd25sb2FkREJMb2dGaWxlUG9ydGlvbkNvbW1hbmRPdXRwdXQsXG4gIEVuYWJsZUh0dHBFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRW5hYmxlSHR0cEVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZUh0dHBFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIEZhaWxvdmVyREJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIEZhaWxvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgRmFpbG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEZhaWxvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlBY3Rpdml0eVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlBY3Rpdml0eVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUNlcnRpZmljYXRlc0NvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5Q2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5Q3VycmVudERCQ2x1c3RlckNhcGFjaXR5Q29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCSW5zdGFuY2VDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCUHJveHlDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCUHJveHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJQcm94eUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCUHJveHlFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJQcm94eUVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCUHJveHlFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCUHJveHlUYXJnZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJQcm94eVRhcmdldEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCUHJveHlUYXJnZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCUmVjb21tZW5kYXRpb25Db21tYW5kLFxuICB0eXBlIE1vZGlmeURCUmVjb21tZW5kYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJSZWNvbW1lbmRhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCU2hhcmRHcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJTaGFyZEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCU25hcHNob3RDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeURCU3VibmV0R3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICB0eXBlIE1vZGlmeUdsb2JhbENsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5R2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeUludGVncmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeU9wdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlPcHRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlPcHRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gIE1vZGlmeVRlbmFudERhdGFiYXNlQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmRPdXRwdXQsXG4gIFByb21vdGVSZWFkUmVwbGljYUNvbW1hbmQsXG4gIHR5cGUgUHJvbW90ZVJlYWRSZXBsaWNhQ29tbWFuZElucHV0LFxuICB0eXBlIFByb21vdGVSZWFkUmVwbGljYUNvbW1hbmRPdXRwdXQsXG4gIFByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgUHJvbW90ZVJlYWRSZXBsaWNhREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nQ29tbWFuZCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gIFJlYm9vdERCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgUmVib290REJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlYm9vdERCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFJlYm9vdERCSW5zdGFuY2VDb21tYW5kLFxuICB0eXBlIFJlYm9vdERCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVib290REJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gIFJlYm9vdERCU2hhcmRHcm91cENvbW1hbmQsXG4gIHR5cGUgUmVib290REJTaGFyZEdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFJlYm9vdERCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kLFxuICB0eXBlIFJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZUZyb21HbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVGcm9tR2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVGcm9tR2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVJvbGVGcm9tREJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbURCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVJvbGVGcm9tREJJbnN0YW5jZUNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVJvbGVGcm9tREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlc2V0REJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgUmVzZXREQlBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0REJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlc3RvcmVEQkNsdXN0ZXJGcm9tUzNDb21tYW5kLFxuICB0eXBlIFJlc3RvcmVEQkNsdXN0ZXJGcm9tUzNDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzdG9yZURCQ2x1c3RlckZyb21TM0NvbW1hbmRPdXRwdXQsXG4gIFJlc3RvcmVEQkNsdXN0ZXJGcm9tU25hcHNob3RDb21tYW5kLFxuICB0eXBlIFJlc3RvcmVEQkNsdXN0ZXJGcm9tU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZCxcbiAgdHlwZSBSZXN0b3JlREJDbHVzdGVyVG9Qb2ludEluVGltZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXN0b3JlREJDbHVzdGVyVG9Qb2ludEluVGltZUNvbW1hbmRPdXRwdXQsXG4gIFJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RDb21tYW5kLFxuICB0eXBlIFJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gIFJlc3RvcmVEQkluc3RhbmNlRnJvbVMzQ29tbWFuZCxcbiAgdHlwZSBSZXN0b3JlREJJbnN0YW5jZUZyb21TM0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXN0b3JlREJJbnN0YW5jZUZyb21TM0NvbW1hbmRPdXRwdXQsXG4gIFJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZUNvbW1hbmQsXG4gIHR5cGUgUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZUNvbW1hbmRPdXRwdXQsXG4gIFJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICB0eXBlIFJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0QWN0aXZpdHlTdHJlYW1Db21tYW5kLFxuICB0eXBlIFN0YXJ0QWN0aXZpdHlTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRBY3Rpdml0eVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0REJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBTdGFydERCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydERCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0REJJbnN0YW5jZUNvbW1hbmQsXG4gIHR5cGUgU3RhcnREQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0REJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RXhwb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgU3RhcnRFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIFN0b3BBY3Rpdml0eVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgU3RvcEFjdGl2aXR5U3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BBY3Rpdml0eVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIFN0b3BEQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFN0b3BEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcERCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFN0b3BEQkluc3RhbmNlQ29tbWFuZCxcbiAgdHlwZSBTdG9wREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gIFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdG9wREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZCxcbiAgdHlwZSBTd2l0Y2hvdmVyQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTd2l0Y2hvdmVyQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRPdXRwdXQsXG4gIFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBTd2l0Y2hvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTd2l0Y2hvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gIFN3aXRjaG92ZXJSZWFkUmVwbGljYUNvbW1hbmQsXG4gIHR5cGUgU3dpdGNob3ZlclJlYWRSZXBsaWNhQ29tbWFuZElucHV0LFxuICB0eXBlIFN3aXRjaG92ZXJSZWFkUmVwbGljYUNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtcmRzXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBdXRob3JpemF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3IsXG4gIEF1dGhvcml6YXRpb25RdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgQmFja3VwUG9saWN5Tm90Rm91bmRGYXVsdEVycm9yLFxuICBCbHVlR3JlZW5EZXBsb3ltZW50QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEJsdWVHcmVlbkRlcGxveW1lbnROb3RGb3VuZEZhdWx0RXJyb3IsXG4gIENlcnRpZmljYXRlTm90Rm91bmRGYXVsdEVycm9yLFxuICBDcmVhdGVDdXN0b21EQkVuZ2luZVZlcnNpb25GYXVsdEVycm9yLFxuICBDdXN0b21BdmFpbGFiaWxpdHlab25lTm90Rm91bmRGYXVsdEVycm9yLFxuICBDdXN0b21EQkVuZ2luZVZlcnNpb25BbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQ3VzdG9tREJFbmdpbmVWZXJzaW9uTm90Rm91bmRGYXVsdEVycm9yLFxuICBDdXN0b21EQkVuZ2luZVZlcnNpb25RdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyQXV0b21hdGVkQmFja3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlckJhY2t0cmFja05vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyRW5kcG9pbnRBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyRW5kcG9pbnROb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlckVuZHBvaW50UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJSb2xlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlclJvbGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlclJvbGVRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkluc3RhbmNlUm9sZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQkluc3RhbmNlUm9sZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJJbnN0YW5jZVJvbGVRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJMb2dGaWxlTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlBhcmFtZXRlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCUGFyYW1ldGVyR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJQcm94eUFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQlByb3h5RW5kcG9pbnRBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJQcm94eUVuZHBvaW50Tm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlByb3h5RW5kcG9pbnRRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJQcm94eVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQlByb3h5VGFyZ2V0QWxyZWFkeVJlZ2lzdGVyZWRGYXVsdEVycm9yLFxuICBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCUHJveHlUYXJnZXROb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCU2VjdXJpdHlHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQlNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCU2VjdXJpdHlHcm91cE5vdFN1cHBvcnRlZEZhdWx0RXJyb3IsXG4gIERCU2VjdXJpdHlHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQlNoYXJkR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJTaGFyZEdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCU25hcHNob3RUZW5hbnREYXRhYmFzZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJTdWJuZXRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQlN1Ym5ldEdyb3VwRG9lc05vdENvdmVyRW5vdWdoQVpzRXJyb3IsXG4gIERCU3VibmV0R3JvdXBOb3RBbGxvd2VkRmF1bHRFcnJvcixcbiAgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJTdWJuZXRHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQlN1Ym5ldFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQlVwZ3JhZGVEZXBlbmRlbmN5RmFpbHVyZUZhdWx0RXJyb3IsXG4gIERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvcixcbiAgRWMySW1hZ2VQcm9wZXJ0aWVzTm90U3VwcG9ydGVkRmF1bHRFcnJvcixcbiAgRXZlbnRTdWJzY3JpcHRpb25RdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgRXhwb3J0VGFza0FscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBFeHBvcnRUYXNrTm90Rm91bmRGYXVsdEVycm9yLFxuICBHbG9iYWxDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEdsb2JhbENsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIEdsb2JhbENsdXN0ZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgSWFtUm9sZU1pc3NpbmdQZXJtaXNzaW9uc0ZhdWx0RXJyb3IsXG4gIElhbVJvbGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIEluc3RhbmNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIEluc3VmZmljaWVudEF2YWlsYWJsZUlQc0luU3VibmV0RmF1bHRFcnJvcixcbiAgSW5zdWZmaWNpZW50REJDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yLFxuICBJbnN1ZmZpY2llbnREQkluc3RhbmNlQ2FwYWNpdHlGYXVsdEVycm9yLFxuICBJbnN1ZmZpY2llbnRTdG9yYWdlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvcixcbiAgSW50ZWdyYXRpb25BbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgSW50ZWdyYXRpb25Db25mbGljdE9wZXJhdGlvbkZhdWx0RXJyb3IsXG4gIEludGVncmF0aW9uTm90Rm91bmRGYXVsdEVycm9yLFxuICBJbnRlZ3JhdGlvblF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBJbnZhbGlkQmx1ZUdyZWVuRGVwbG95bWVudFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZEN1c3RvbURCRW5naW5lVmVyc2lvblN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvcixcbiAgSW52YWxpZERCQ2x1c3RlckVuZHBvaW50U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJDbHVzdGVyU25hcHNob3RTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQkluc3RhbmNlQXV0b21hdGVkQmFja3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQlByb3h5RW5kcG9pbnRTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJTaGFyZEdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCU3VibmV0R3JvdXBGYXVsdEVycm9yLFxuICBJbnZhbGlkREJTdWJuZXRHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCU3VibmV0U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkRXZlbnRTdWJzY3JpcHRpb25TdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRFeHBvcnRPbmx5RmF1bHRFcnJvcixcbiAgSW52YWxpZEV4cG9ydFNvdXJjZVN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZEV4cG9ydFRhc2tTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRHbG9iYWxDbHVzdGVyU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkSW50ZWdyYXRpb25TdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRPcHRpb25Hcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZFJlc291cmNlU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkUmVzdG9yZUZhdWx0RXJyb3IsXG4gIEludmFsaWRTM0J1Y2tldEZhdWx0RXJyb3IsXG4gIEludmFsaWRTdWJuZXRFcnJvcixcbiAgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3IsXG4gIEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yLFxuICBNYXhEQlNoYXJkR3JvdXBMaW1pdFJlYWNoZWRFcnJvcixcbiAgTmV0d29ya1R5cGVOb3RTdXBwb3J0ZWRFcnJvcixcbiAgT3B0aW9uR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIE9wdGlvbkdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFBvaW50SW5UaW1lUmVzdG9yZU5vdEVuYWJsZWRGYXVsdEVycm9yLFxuICBQcm92aXNpb25lZElvcHNOb3RBdmFpbGFibGVJbkFaRmF1bHRFcnJvcixcbiAgUmVzZXJ2ZWREQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFJlc2VydmVkREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgUmVzZXJ2ZWREQkluc3RhbmNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ05vdEZvdW5kRmF1bHRFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFNOU0ludmFsaWRUb3BpY0ZhdWx0RXJyb3IsXG4gIFNOU05vQXV0aG9yaXphdGlvbkZhdWx0RXJyb3IsXG4gIFNOU1RvcGljQXJuTm90Rm91bmRGYXVsdEVycm9yLFxuICBTaGFyZWRTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTb3VyY2VDbHVzdGVyTm90U3VwcG9ydGVkRmF1bHRFcnJvcixcbiAgU291cmNlRGF0YWJhc2VOb3RTdXBwb3J0ZWRGYXVsdEVycm9yLFxuICBTb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgU3RvcmFnZVR5cGVOb3RBdmFpbGFibGVGYXVsdEVycm9yLFxuICBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3IsXG4gIFN1Ym5ldEFscmVhZHlJblVzZUVycm9yLFxuICBTdWJzY3JpcHRpb25BbHJlYWR5RXhpc3RGYXVsdEVycm9yLFxuICBTdWJzY3JpcHRpb25DYXRlZ29yeU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU3Vic2NyaXB0aW9uTm90Rm91bmRGYXVsdEVycm9yLFxuICBUZW5hbnREYXRhYmFzZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBUZW5hbnREYXRhYmFzZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgVGVuYW50RGF0YWJhc2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgVW5zdXBwb3J0ZWREQkVuZ2luZVZlcnNpb25GYXVsdEVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7IFJEU0NsaWVudEluc3RhbmNlLCBSRFNDbGllbnRJbnN0YW5jZUxheWVyIH0gZnJvbSBcIi4vUkRTQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRSRFNDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL1JEU0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbmludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRSb2xlVG9EQkNsdXN0ZXJDb21tYW5kLFxuICBBZGRSb2xlVG9EQkluc3RhbmNlQ29tbWFuZCxcbiAgQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kLFxuICBBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbkNvbW1hbmQsXG4gIEF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kLFxuICBCYWNrdHJhY2tEQkNsdXN0ZXJDb21tYW5kLFxuICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZCxcbiAgQ29weURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgQ29weURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZCxcbiAgQ29weURCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBDb3B5REJTbmFwc2hvdENvbW1hbmQsXG4gIENvcHlPcHRpb25Hcm91cENvbW1hbmQsXG4gIENyZWF0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kLFxuICBDcmVhdGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kLFxuICBDcmVhdGVEQkNsdXN0ZXJDb21tYW5kLFxuICBDcmVhdGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmQsXG4gIENyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kLFxuICBDcmVhdGVEQkluc3RhbmNlQ29tbWFuZCxcbiAgQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhQ29tbWFuZCxcbiAgQ3JlYXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIENyZWF0ZURCUHJveHlDb21tYW5kLFxuICBDcmVhdGVEQlByb3h5RW5kcG9pbnRDb21tYW5kLFxuICBDcmVhdGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kLFxuICBDcmVhdGVEQlNoYXJkR3JvdXBDb21tYW5kLFxuICBDcmVhdGVEQlNuYXBzaG90Q29tbWFuZCxcbiAgQ3JlYXRlREJTdWJuZXRHcm91cENvbW1hbmQsXG4gIENyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIENyZWF0ZUludGVncmF0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlT3B0aW9uR3JvdXBDb21tYW5kLFxuICBDcmVhdGVUZW5hbnREYXRhYmFzZUNvbW1hbmQsXG4gIERlbGV0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kLFxuICBEZWxldGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kLFxuICBEZWxldGVEQkNsdXN0ZXJDb21tYW5kLFxuICBEZWxldGVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBDb21tYW5kLFxuICBEZWxldGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmQsXG4gIERlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kLFxuICBEZWxldGVEQkluc3RhbmNlQ29tbWFuZCxcbiAgRGVsZXRlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cENvbW1hbmQsXG4gIERlbGV0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBEZWxldGVEQlByb3h5Q29tbWFuZCxcbiAgRGVsZXRlREJQcm94eUVuZHBvaW50Q29tbWFuZCxcbiAgRGVsZXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlREJTaGFyZEdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlREJTbmFwc2hvdENvbW1hbmQsXG4gIERlbGV0ZURCU3VibmV0R3JvdXBDb21tYW5kLFxuICBEZWxldGVFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZU9wdGlvbkdyb3VwQ29tbWFuZCxcbiAgRGVsZXRlVGVuYW50RGF0YWJhc2VDb21tYW5kLFxuICBEZXJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kLFxuICBEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVCbHVlR3JlZW5EZXBsb3ltZW50c0NvbW1hbmQsXG4gIERlc2NyaWJlQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJCYWNrdHJhY2tzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJFbmRwb2ludHNDb21tYW5kLFxuICBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdHNDb21tYW5kLFxuICBEZXNjcmliZURCQ2x1c3RlcnNDb21tYW5kLFxuICBEZXNjcmliZURCRW5naW5lVmVyc2lvbnNDb21tYW5kLFxuICBEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQkluc3RhbmNlc0NvbW1hbmQsXG4gIERlc2NyaWJlREJMb2dGaWxlc0NvbW1hbmQsXG4gIERlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlREJQcm94aWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlByb3h5VGFyZ2V0R3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlByb3h5VGFyZ2V0c0NvbW1hbmQsXG4gIERlc2NyaWJlREJSZWNvbW1lbmRhdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZURCU2VjdXJpdHlHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZURCU2hhcmRHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZURCU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVEQlNuYXBzaG90c0NvbW1hbmQsXG4gIERlc2NyaWJlREJTdWJuZXRHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUVuZ2luZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kLFxuICBEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc0NvbW1hbmQsXG4gIERlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVFdmVudHNDb21tYW5kLFxuICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZCxcbiAgRGVzY3JpYmVHbG9iYWxDbHVzdGVyc0NvbW1hbmQsXG4gIERlc2NyaWJlSW50ZWdyYXRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmQsXG4gIERlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NDb21tYW5kLFxuICBEZXNjcmliZVNvdXJjZVJlZ2lvbnNDb21tYW5kLFxuICBEZXNjcmliZVRlbmFudERhdGFiYXNlc0NvbW1hbmQsXG4gIERlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc0NvbW1hbmQsXG4gIERpc2FibGVIdHRwRW5kcG9pbnRDb21tYW5kLFxuICBEb3dubG9hZERCTG9nRmlsZVBvcnRpb25Db21tYW5kLFxuICBFbmFibGVIdHRwRW5kcG9pbnRDb21tYW5kLFxuICBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmQsXG4gIEZhaWxvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBNb2RpZnlBY3Rpdml0eVN0cmVhbUNvbW1hbmQsXG4gIE1vZGlmeUNlcnRpZmljYXRlc0NvbW1hbmQsXG4gIE1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eUNvbW1hbmQsXG4gIE1vZGlmeUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmQsXG4gIE1vZGlmeURCQ2x1c3RlckNvbW1hbmQsXG4gIE1vZGlmeURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZCxcbiAgTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBNb2RpZnlEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmQsXG4gIE1vZGlmeURCSW5zdGFuY2VDb21tYW5kLFxuICBNb2RpZnlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5REJQcm94eUNvbW1hbmQsXG4gIE1vZGlmeURCUHJveHlFbmRwb2ludENvbW1hbmQsXG4gIE1vZGlmeURCUHJveHlUYXJnZXRHcm91cENvbW1hbmQsXG4gIE1vZGlmeURCUmVjb21tZW5kYXRpb25Db21tYW5kLFxuICBNb2RpZnlEQlNoYXJkR3JvdXBDb21tYW5kLFxuICBNb2RpZnlEQlNuYXBzaG90Q29tbWFuZCxcbiAgTW9kaWZ5REJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmQsXG4gIE1vZGlmeURCU3VibmV0R3JvdXBDb21tYW5kLFxuICBNb2RpZnlFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmQsXG4gIE1vZGlmeUdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICBNb2RpZnlJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gIE1vZGlmeU9wdGlvbkdyb3VwQ29tbWFuZCxcbiAgTW9kaWZ5VGVuYW50RGF0YWJhc2VDb21tYW5kLFxuICBQcm9tb3RlUmVhZFJlcGxpY2FDb21tYW5kLFxuICBQcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXJDb21tYW5kLFxuICBQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0NvbW1hbmQsXG4gIFJlYm9vdERCQ2x1c3RlckNvbW1hbmQsXG4gIFJlYm9vdERCSW5zdGFuY2VDb21tYW5kLFxuICBSZWJvb3REQlNoYXJkR3JvdXBDb21tYW5kLFxuICBSZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZCxcbiAgUmVtb3ZlRnJvbUdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICBSZW1vdmVSb2xlRnJvbURCQ2x1c3RlckNvbW1hbmQsXG4gIFJlbW92ZVJvbGVGcm9tREJJbnN0YW5jZUNvbW1hbmQsXG4gIFJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmQsXG4gIFJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBSZXNldERCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICBSZXN0b3JlREJDbHVzdGVyRnJvbVMzQ29tbWFuZCxcbiAgUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdENvbW1hbmQsXG4gIFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZCxcbiAgUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdENvbW1hbmQsXG4gIFJlc3RvcmVEQkluc3RhbmNlRnJvbVMzQ29tbWFuZCxcbiAgUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lQ29tbWFuZCxcbiAgUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIFN0YXJ0QWN0aXZpdHlTdHJlYW1Db21tYW5kLFxuICBTdGFydERCQ2x1c3RlckNvbW1hbmQsXG4gIFN0YXJ0REJJbnN0YW5jZUNvbW1hbmQsXG4gIFN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmQsXG4gIFN0YXJ0RXhwb3J0VGFza0NvbW1hbmQsXG4gIFN0b3BBY3Rpdml0eVN0cmVhbUNvbW1hbmQsXG4gIFN0b3BEQkNsdXN0ZXJDb21tYW5kLFxuICBTdG9wREJJbnN0YW5jZUNvbW1hbmQsXG4gIFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZCxcbiAgU3dpdGNob3ZlckJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kLFxuICBTd2l0Y2hvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIFN3aXRjaG92ZXJSZWFkUmVwbGljYUNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgUkRTU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRSb2xlVG9EQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgYWRkUm9sZVRvREJDbHVzdGVyKFxuICAgIGFyZ3M6IEFkZFJvbGVUb0RCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFJvbGVUb0RCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJSb2xlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclJvbGVRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRSb2xlVG9EQkluc3RhbmNlQ29tbWFuZH1cbiAgICovXG4gIGFkZFJvbGVUb0RCSW5zdGFuY2UoXG4gICAgYXJnczogQWRkUm9sZVRvREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFJvbGVUb0RCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VSb2xlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VSb2xlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICBhZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb24oXG4gICAgYXJnczogQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvciB8IFN1YnNjcmlwdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBhZGRUYWdzVG9SZXNvdXJjZShcbiAgICBhcmdzOiBBZGRUYWdzVG9SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCbHVlR3JlZW5EZXBsb3ltZW50Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnRlZ3JhdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgYXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb24oXG4gICAgYXJnczogQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgYXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzcyhcbiAgICBhcmdzOiBBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBBdXRob3JpemF0aW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBCYWNrdHJhY2tEQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgYmFja3RyYWNrREJDbHVzdGVyKFxuICAgIGFyZ3M6IEJhY2t0cmFja0RCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEJhY2t0cmFja0RCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsRXhwb3J0VGFzayhcbiAgICBhcmdzOiBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBFeHBvcnRUYXNrTm90Rm91bmRGYXVsdEVycm9yIHwgSW52YWxpZEV4cG9ydFRhc2tTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ29weURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNvcHlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENvcHlEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjb3B5REJDbHVzdGVyU25hcHNob3QoXG4gICAgYXJnczogQ29weURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ29weURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5REJQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBjb3B5REJQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBDb3B5REJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENvcHlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5REJTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjb3B5REJTbmFwc2hvdChcbiAgICBhcmdzOiBDb3B5REJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENvcHlEQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDdXN0b21BdmFpbGFiaWxpdHlab25lTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDb3B5T3B0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY29weU9wdGlvbkdyb3VwKFxuICAgIGFyZ3M6IENvcHlPcHRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENvcHlPcHRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVCbHVlR3JlZW5EZXBsb3ltZW50KFxuICAgIGFyZ3M6IENyZWF0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCbHVlR3JlZW5EZXBsb3ltZW50QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN0YW5jZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgU291cmNlQ2x1c3Rlck5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFNvdXJjZURhdGFiYXNlTm90U3VwcG9ydGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uKFxuICAgIGFyZ3M6IENyZWF0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ3JlYXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uRmF1bHRFcnJvclxuICAgIHwgQ3VzdG9tREJFbmdpbmVWZXJzaW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEN1c3RvbURCRW5naW5lVmVyc2lvblF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBFYzJJbWFnZVByb3BlcnRpZXNOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlREJDbHVzdGVyKFxuICAgIGFyZ3M6IENyZWF0ZURCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwRG9lc05vdENvdmVyRW5vdWdoQVpzRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50U3RvcmFnZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTdWJuZXRHcm91cEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlN1Ym5ldEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlREJDbHVzdGVyRW5kcG9pbnQoXG4gICAgYXJnczogQ3JlYXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyRW5kcG9pbnRBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyRW5kcG9pbnRRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBDcmVhdGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdChcbiAgICBhcmdzOiBDcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQkluc3RhbmNlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURCSW5zdGFuY2UoXG4gICAgYXJnczogQ3JlYXRlREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEJhY2t1cFBvbGljeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgRG9tYWluTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN0YW5jZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnREQkluc3RhbmNlQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgTmV0d29ya1R5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkSW9wc05vdEF2YWlsYWJsZUluQVpGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VUeXBlTm90U3VwcG9ydGVkRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhKFxuICAgIGFyZ3M6IENyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEFsbG93ZWRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3RhbmNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTdWJuZXRHcm91cEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBOZXR3b3JrVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRJb3BzTm90QXZhaWxhYmxlSW5BWkZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlREJQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBDcmVhdGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlREJQcm94eUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQlByb3h5KFxuICAgIGFyZ3M6IENyZWF0ZURCUHJveHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEQlByb3h5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlByb3h5QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCUHJveHlFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQlByb3h5RW5kcG9pbnQoXG4gICAgYXJnczogQ3JlYXRlREJQcm94eUVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJQcm94eUVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlByb3h5RW5kcG9pbnRBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQcm94eUVuZHBvaW50UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURCU2VjdXJpdHlHcm91cChcbiAgICBhcmdzOiBDcmVhdGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlNlY3VyaXR5R3JvdXBOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBEQlNlY3VyaXR5R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEQlNoYXJkR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlREJTaGFyZEdyb3VwKFxuICAgIGFyZ3M6IENyZWF0ZURCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNoYXJkR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IE1heERCU2hhcmRHcm91cExpbWl0UmVhY2hlZEVycm9yXG4gICAgfCBOZXR3b3JrVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gICAgfCBVbnN1cHBvcnRlZERCRW5naW5lVmVyc2lvbkZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlREJTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEQlNuYXBzaG90KFxuICAgIGFyZ3M6IENyZWF0ZURCU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURCU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlREJTdWJuZXRHcm91cChcbiAgICBhcmdzOiBDcmVhdGVEQlN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlREJTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwRG9lc05vdENvdmVyRW5vdWdoQVpzRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV2ZW50U3Vic2NyaXB0aW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFNOU0ludmFsaWRUb3BpY0ZhdWx0RXJyb3JcbiAgICB8IFNOU05vQXV0aG9yaXphdGlvbkZhdWx0RXJyb3JcbiAgICB8IFNOU1RvcGljQXJuTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFN1YnNjcmlwdGlvbkFscmVhZHlFeGlzdEZhdWx0RXJyb3JcbiAgICB8IFN1YnNjcmlwdGlvbkNhdGVnb3J5Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUdsb2JhbENsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlR2xvYmFsQ2x1c3RlcihcbiAgICBhcmdzOiBDcmVhdGVHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlR2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBHbG9iYWxDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEdsb2JhbENsdXN0ZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVJbnRlZ3JhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVJbnRlZ3JhdGlvbihcbiAgICBhcmdzOiBDcmVhdGVJbnRlZ3JhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludGVncmF0aW9uQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEludGVncmF0aW9uQ29uZmxpY3RPcGVyYXRpb25GYXVsdEVycm9yXG4gICAgfCBJbnRlZ3JhdGlvblF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVPcHRpb25Hcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVPcHRpb25Hcm91cChcbiAgICBhcmdzOiBDcmVhdGVPcHRpb25Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU9wdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBPcHRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBPcHRpb25Hcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVRlbmFudERhdGFiYXNlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVRlbmFudERhdGFiYXNlKFxuICAgIGFyZ3M6IENyZWF0ZVRlbmFudERhdGFiYXNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlVGVuYW50RGF0YWJhc2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQmx1ZUdyZWVuRGVwbG95bWVudChcbiAgICBhcmdzOiBEZWxldGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmx1ZUdyZWVuRGVwbG95bWVudE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEJsdWVHcmVlbkRlcGxveW1lbnRTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUN1c3RvbURCRW5naW5lVmVyc2lvbihcbiAgICBhcmdzOiBEZWxldGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEN1c3RvbURCRW5naW5lVmVyc2lvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEN1c3RvbURCRW5naW5lVmVyc2lvblN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlREJDbHVzdGVyKFxuICAgIGFyZ3M6IERlbGV0ZURCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyQXV0b21hdGVkQmFja3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXAoXG4gICAgYXJnczogRGVsZXRlREJDbHVzdGVyQXV0b21hdGVkQmFja3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJDbHVzdGVyQXV0b21hdGVkQmFja3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlREJDbHVzdGVyRW5kcG9pbnQoXG4gICAgYXJnczogRGVsZXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyRW5kcG9pbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJFbmRwb2ludFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBEZWxldGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQkNsdXN0ZXJTbmFwc2hvdChcbiAgICBhcmdzOiBEZWxldGVEQkNsdXN0ZXJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCSW5zdGFuY2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlREJJbnN0YW5jZShcbiAgICBhcmdzOiBEZWxldGVEQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cChcbiAgICBhcmdzOiBEZWxldGVEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQlBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZURCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQlByb3h5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURCUHJveHkoXG4gICAgYXJnczogRGVsZXRlREJQcm94eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCUHJveHlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCUHJveHlFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQlByb3h5RW5kcG9pbnQoXG4gICAgYXJnczogRGVsZXRlREJQcm94eUVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJQcm94eUVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlByb3h5RW5kcG9pbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5RW5kcG9pbnRTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURCU2VjdXJpdHlHcm91cChcbiAgICBhcmdzOiBEZWxldGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEQlNoYXJkR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlREJTaGFyZEdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZURCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTaGFyZEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTaGFyZEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURCU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlREJTbmFwc2hvdChcbiAgICBhcmdzOiBEZWxldGVEQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlREJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yIHwgSW52YWxpZERCU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlREJTdWJuZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEQlN1Ym5ldEdyb3VwKFxuICAgIGFyZ3M6IERlbGV0ZURCU3VibmV0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEQlN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTdWJuZXRHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU3VibmV0U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRFdmVudFN1YnNjcmlwdGlvblN0YXRlRmF1bHRFcnJvclxuICAgIHwgU3Vic2NyaXB0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUdsb2JhbENsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlR2xvYmFsQ2x1c3RlcihcbiAgICBhcmdzOiBEZWxldGVHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlR2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbENsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW50ZWdyYXRpb24oXG4gICAgYXJnczogRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW50ZWdyYXRpb25Db25mbGljdE9wZXJhdGlvbkZhdWx0RXJyb3JcbiAgICB8IEludGVncmF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkSW50ZWdyYXRpb25TdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlT3B0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlT3B0aW9uR3JvdXAoXG4gICAgYXJnczogRGVsZXRlT3B0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVPcHRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkT3B0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3IgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVUZW5hbnREYXRhYmFzZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVUZW5hbnREYXRhYmFzZShcbiAgICBhcmdzOiBEZWxldGVUZW5hbnREYXRhYmFzZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVRlbmFudERhdGFiYXNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVyZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZH1cbiAgICovXG4gIGRlcmVnaXN0ZXJEQlByb3h5VGFyZ2V0cyhcbiAgICBhcmdzOiBEZXJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eVRhcmdldE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCwgU2RrRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUJsdWVHcmVlbkRlcGxveW1lbnRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQmx1ZUdyZWVuRGVwbG95bWVudHMoXG4gICAgYXJnczogRGVzY3JpYmVCbHVlR3JlZW5EZXBsb3ltZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQmx1ZUdyZWVuRGVwbG95bWVudHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmx1ZUdyZWVuRGVwbG95bWVudE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNlcnRpZmljYXRlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUNlcnRpZmljYXRlcyhcbiAgICBhcmdzOiBEZXNjcmliZUNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IENlcnRpZmljYXRlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJDbHVzdGVyQXV0b21hdGVkQmFja3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCQ2x1c3RlckJhY2t0cmFja3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQkNsdXN0ZXJCYWNrdHJhY2tzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJDbHVzdGVyQmFja3RyYWNrc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJDbHVzdGVyQmFja3RyYWNrc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyQmFja3RyYWNrTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkNsdXN0ZXJFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQkNsdXN0ZXJFbmRwb2ludHMoXG4gICAgYXJnczogRGVzY3JpYmVEQkNsdXN0ZXJFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCQ2x1c3RlckVuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXMoXG4gICAgYXJnczogRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkNsdXN0ZXJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCQ2x1c3RlclNuYXBzaG90cyhcbiAgICBhcmdzOiBEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3RlclNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJDbHVzdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCQ2x1c3RlcnMoXG4gICAgYXJnczogRGVzY3JpYmVEQkNsdXN0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQkNsdXN0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCRW5naW5lVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkluc3RhbmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCSW5zdGFuY2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCSW5zdGFuY2VzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkxvZ0ZpbGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJMb2dGaWxlcyhcbiAgICBhcmdzOiBEZXNjcmliZURCTG9nRmlsZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCTG9nRmlsZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCUGFyYW1ldGVycyhcbiAgICBhcmdzOiBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlByb3hpZXMoXG4gICAgYXJnczogRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCUHJveGllc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJQcm94eUVuZHBvaW50c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCUHJveHlFbmRwb2ludHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCUHJveHlFbmRwb2ludE5vdEZvdW5kRmF1bHRFcnJvciB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlByb3h5VGFyZ2V0R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJQcm94eVRhcmdldEdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlByb3h5VGFyZ2V0c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCUHJveHlUYXJnZXRzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJQcm94eVRhcmdldHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCUHJveHlUYXJnZXRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJSZWNvbW1lbmRhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlJlY29tbWVuZGF0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZURCUmVjb21tZW5kYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVEQlJlY29tbWVuZGF0aW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJTZWN1cml0eUdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZURCU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCU2VjdXJpdHlHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJTaGFyZEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCU2hhcmRHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlNoYXJkR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlNoYXJkR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvciB8IERCU2hhcmRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXMoXG4gICAgYXJnczogRGVzY3JpYmVEQlNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCU25hcHNob3RUZW5hbnREYXRhYmFzZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJTbmFwc2hvdFRlbmFudERhdGFiYXNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJTbmFwc2hvdFRlbmFudERhdGFiYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJTbmFwc2hvdHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlNuYXBzaG90cyhcbiAgICBhcmdzOiBEZXNjcmliZURCU25hcHNob3RzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlNuYXBzaG90c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJTdWJuZXRHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlN1Ym5ldEdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZURCU3VibmV0R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVycyhcbiAgICBhcmdzOiBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFdmVudENhdGVnb3JpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFdmVudENhdGVnb3JpZXMoXG4gICAgYXJnczogRGVzY3JpYmVFdmVudENhdGVnb3JpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTdWJzY3JpcHRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFdmVudHMoXG4gICAgYXJnczogRGVzY3JpYmVFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZUV2ZW50c0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUV4cG9ydFRhc2tzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEV4cG9ydFRhc2tOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVHbG9iYWxDbHVzdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUdsb2JhbENsdXN0ZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlR2xvYmFsQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUdsb2JhbENsdXN0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEdsb2JhbENsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbnRlZ3JhdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUludGVncmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnRlZ3JhdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zQ29tbWFuZE91dHB1dCwgU2RrRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU9wdGlvbkdyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlT3B0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzZXJ2ZWREQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3MoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ05vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVNvdXJjZVJlZ2lvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTb3VyY2VSZWdpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlU291cmNlUmVnaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlU291cmNlUmVnaW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVUZW5hbnREYXRhYmFzZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVUZW5hbnREYXRhYmFzZXMoXG4gICAgYXJnczogRGVzY3JpYmVUZW5hbnREYXRhYmFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVRlbmFudERhdGFiYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVZhbGlkREJJbnN0YW5jZU1vZGlmaWNhdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhYmxlSHR0cEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVIdHRwRW5kcG9pbnQoXG4gICAgYXJnczogRGlzYWJsZUh0dHBFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2FibGVIdHRwRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFJlc291cmNlU3RhdGVGYXVsdEVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRvd25sb2FkREJMb2dGaWxlUG9ydGlvbihcbiAgICBhcmdzOiBEb3dubG9hZERCTG9nRmlsZVBvcnRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEb3dubG9hZERCTG9nRmlsZVBvcnRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvciB8IERCTG9nRmlsZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVIdHRwRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlSHR0cEVuZHBvaW50KFxuICAgIGFyZ3M6IEVuYWJsZUh0dHBFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZUh0dHBFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUmVzb3VyY2VTdGF0ZUZhdWx0RXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBmYWlsb3ZlckRCQ2x1c3RlcihcbiAgICBhcmdzOiBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZhaWxvdmVyREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEZhaWxvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBmYWlsb3Zlckdsb2JhbENsdXN0ZXIoXG4gICAgYXJnczogRmFpbG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRmFpbG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEdsb2JhbENsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmx1ZUdyZWVuRGVwbG95bWVudE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3RUZW5hbnREYXRhYmFzZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW50ZWdyYXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUFjdGl2aXR5U3RyZWFtKFxuICAgIGFyZ3M6IE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5QWN0aXZpdHlTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDZXJ0aWZpY2F0ZXNDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q2VydGlmaWNhdGVzKFxuICAgIGFyZ3M6IE1vZGlmeUNlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDdXJyZW50REJDbHVzdGVyQ2FwYWNpdHlDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q3VycmVudERCQ2x1c3RlckNhcGFjaXR5KFxuICAgIGFyZ3M6IE1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlDdXN0b21EQkVuZ2luZVZlcnNpb24oXG4gICAgYXJnczogTW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDdXN0b21EQkVuZ2luZVZlcnNpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRDdXN0b21EQkVuZ2luZVZlcnNpb25TdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCQ2x1c3RlcihcbiAgICBhcmdzOiBNb2RpZnlEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlN1Ym5ldEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdEF2YWlsYWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJDbHVzdGVyRW5kcG9pbnQoXG4gICAgYXJnczogTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkNsdXN0ZXJFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyRW5kcG9pbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJFbmRwb2ludFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGUoXG4gICAgYXJnczogTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2hhcmVkU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQkluc3RhbmNlQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCSW5zdGFuY2UoXG4gICAgYXJnczogTW9kaWZ5REJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEJhY2t1cFBvbGljeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlVwZ3JhZGVEZXBlbmRlbmN5RmFpbHVyZUZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgTmV0d29ya1R5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkSW9wc05vdEF2YWlsYWJsZUluQVpGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VUeXBlTm90U3VwcG9ydGVkRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCUGFyYW1ldGVyR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5REJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCUHJveHlDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJQcm94eShcbiAgICBhcmdzOiBNb2RpZnlEQlByb3h5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJQcm94eUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQcm94eUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQcm94eVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlByb3h5RW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJQcm94eUVuZHBvaW50KFxuICAgIGFyZ3M6IE1vZGlmeURCUHJveHlFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCUHJveHlFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQcm94eUVuZHBvaW50QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlFbmRwb2ludE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlFbmRwb2ludFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJQcm94eVRhcmdldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCUHJveHlUYXJnZXRHcm91cChcbiAgICBhcmdzOiBNb2RpZnlEQlByb3h5VGFyZ2V0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQlByb3h5VGFyZ2V0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJSZWNvbW1lbmRhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlEQlJlY29tbWVuZGF0aW9uKFxuICAgIGFyZ3M6IE1vZGlmeURCUmVjb21tZW5kYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxNb2RpZnlEQlJlY29tbWVuZGF0aW9uQ29tbWFuZE91dHB1dCwgU2RrRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlNoYXJkR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJTaGFyZEdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeURCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTaGFyZEdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCU2hhcmRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCU25hcHNob3QoXG4gICAgYXJnczogTW9kaWZ5REJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGUoXG4gICAgYXJnczogTW9kaWZ5REJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBTaGFyZWRTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCU3VibmV0R3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJTdWJuZXRHcm91cChcbiAgICBhcmdzOiBNb2RpZnlEQlN1Ym5ldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJTdWJuZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IFN1Ym5ldEFscmVhZHlJblVzZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uKFxuICAgIGFyZ3M6IE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV2ZW50U3Vic2NyaXB0aW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFNOU0ludmFsaWRUb3BpY0ZhdWx0RXJyb3JcbiAgICB8IFNOU05vQXV0aG9yaXphdGlvbkZhdWx0RXJyb3JcbiAgICB8IFNOU1RvcGljQXJuTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBTdWJzY3JpcHRpb25DYXRlZ29yeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3Vic2NyaXB0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUdsb2JhbENsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5R2xvYmFsQ2x1c3RlcihcbiAgICBhcmdzOiBNb2RpZnlHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5R2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBHbG9iYWxDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbENsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5SW50ZWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5SW50ZWdyYXRpb24oXG4gICAgYXJnczogTW9kaWZ5SW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW50ZWdyYXRpb25Db25mbGljdE9wZXJhdGlvbkZhdWx0RXJyb3JcbiAgICB8IEludGVncmF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkSW50ZWdyYXRpb25TdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5T3B0aW9uR3JvdXAoXG4gICAgYXJnczogTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlPcHRpb25Hcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkT3B0aW9uR3JvdXBTdGF0ZUZhdWx0RXJyb3IgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlUZW5hbnREYXRhYmFzZShcbiAgICBhcmdzOiBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeVRlbmFudERhdGFiYXNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHJvbW90ZVJlYWRSZXBsaWNhQ29tbWFuZH1cbiAgICovXG4gIHByb21vdGVSZWFkUmVwbGljYShcbiAgICBhcmdzOiBQcm9tb3RlUmVhZFJlcGxpY2FDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQcm9tb3RlUmVhZFJlcGxpY2FDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBwcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXIoXG4gICAgYXJnczogUHJvbW90ZVJlYWRSZXBsaWNhREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHJvbW90ZVJlYWRSZXBsaWNhREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdDb21tYW5kfVxuICAgKi9cbiAgcHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmcoXG4gICAgYXJnczogUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzZXJ2ZWREQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFJlc2VydmVkREJJbnN0YW5jZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVib290REJDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYm9vdERCQ2x1c3RlcihcbiAgICBhcmdzOiBSZWJvb3REQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWJvb3REQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVib290REJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICByZWJvb3REQkluc3RhbmNlKFxuICAgIGFyZ3M6IFJlYm9vdERCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWJvb3REQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWJvb3REQlNoYXJkR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVib290REJTaGFyZEdyb3VwKFxuICAgIGFyZ3M6IFJlYm9vdERCU2hhcmRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlYm9vdERCU2hhcmRHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJTaGFyZEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTaGFyZEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kfVxuICAgKi9cbiAgcmVnaXN0ZXJEQlByb3h5VGFyZ2V0cyhcbiAgICBhcmdzOiBSZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0QWxyZWFkeVJlZ2lzdGVyZWRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudEF2YWlsYWJsZUlQc0luU3VibmV0RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZUZyb21HbG9iYWxDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZUZyb21HbG9iYWxDbHVzdGVyKFxuICAgIGFyZ3M6IFJlbW92ZUZyb21HbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlRnJvbUdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbENsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXIoXG4gICAgYXJnczogUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVSb2xlRnJvbURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJSb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVJvbGVGcm9tREJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVSb2xlRnJvbURCSW5zdGFuY2UoXG4gICAgYXJnczogUmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb24oXG4gICAgYXJnczogUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBTb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBTdWJzY3JpcHRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVUYWdzRnJvbVJlc291cmNlKFxuICAgIGFyZ3M6IFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCbHVlR3JlZW5EZXBsb3ltZW50Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnRlZ3JhdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICByZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IFJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXNldERCUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVzZXREQlBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IFJlc2V0REJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlc2V0REJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzdG9yZURCQ2x1c3RlckZyb21TM0NvbW1hbmR9XG4gICAqL1xuICByZXN0b3JlREJDbHVzdGVyRnJvbVMzKFxuICAgIGFyZ3M6IFJlc3RvcmVEQkNsdXN0ZXJGcm9tUzNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXN0b3JlREJDbHVzdGVyRnJvbVMzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50U3RvcmFnZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlN1Ym5ldEdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUzNCdWNrZXRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICByZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90KFxuICAgIGFyZ3M6IFJlc3RvcmVEQkNsdXN0ZXJGcm9tU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50U3RvcmFnZUNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVzdG9yZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZH1cbiAgICovXG4gIHJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lKFxuICAgIGFyZ3M6IFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzdG9yZURCQ2x1c3RlclRvUG9pbnRJblRpbWVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlckFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgRG9tYWluTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnREQkNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudFN0b3JhZ2VDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVzdG9yZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdChcbiAgICBhcmdzOiBSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQmFja3VwUG9saWN5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwRG9lc05vdENvdmVyRW5vdWdoQVpzRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRSZXN0b3JlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBQcm92aXNpb25lZElvcHNOb3RBdmFpbGFibGVJbkFaRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kfVxuICAgKi9cbiAgcmVzdG9yZURCSW5zdGFuY2VGcm9tUzMoXG4gICAgYXJnczogUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXN0b3JlREJJbnN0YW5jZUZyb21TM0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQmFja3VwUG9saWN5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBDZXJ0aWZpY2F0ZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNlY3VyaXR5R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFMzQnVja2V0RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBQcm92aXNpb25lZElvcHNOb3RBdmFpbGFibGVJbkFaRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lQ29tbWFuZH1cbiAgICovXG4gIHJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZShcbiAgICBhcmdzOiBSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEJhY2t1cFBvbGljeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwRG9lc05vdENvdmVyRW5vdWdoQVpzRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRSZXN0b3JlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBQb2ludEluVGltZVJlc3RvcmVOb3RFbmFibGVkRmF1bHRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRJb3BzTm90QXZhaWxhYmxlSW5BWkZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgcmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzcyhcbiAgICBhcmdzOiBSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0QWN0aXZpdHlTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRBY3Rpdml0eVN0cmVhbShcbiAgICBhcmdzOiBTdGFydEFjdGl2aXR5U3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRBY3Rpdml0eVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0REJDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0REJDbHVzdGVyKFxuICAgIGFyZ3M6IFN0YXJ0REJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREQkluc3RhbmNlQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0REJJbnN0YW5jZShcbiAgICBhcmdzOiBTdGFydERCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERCSW5zdGFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnREQkluc3RhbmNlQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbihcbiAgICBhcmdzOiBTdGFydERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRFeHBvcnRUYXNrQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RXhwb3J0VGFzayhcbiAgICBhcmdzOiBTdGFydEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEV4cG9ydFRhc2tDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEV4cG9ydFRhc2tBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgSWFtUm9sZU1pc3NpbmdQZXJtaXNzaW9uc0ZhdWx0RXJyb3JcbiAgICB8IElhbVJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRFeHBvcnRPbmx5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEV4cG9ydFNvdXJjZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFMzQnVja2V0RmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcEFjdGl2aXR5U3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIHN0b3BBY3Rpdml0eVN0cmVhbShcbiAgICBhcmdzOiBTdG9wQWN0aXZpdHlTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wQWN0aXZpdHlTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BEQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgc3RvcERCQ2x1c3RlcihcbiAgICBhcmdzOiBTdG9wREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcERCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wREJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICBzdG9wREJJbnN0YW5jZShcbiAgICBhcmdzOiBTdG9wREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BEQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBTbmFwc2hvdFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uKFxuICAgIGFyZ3M6IFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZH1cbiAgICovXG4gIHN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50KFxuICAgIGFyZ3M6IFN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3dpdGNob3ZlckJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJsdWVHcmVlbkRlcGxveW1lbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRCbHVlR3JlZW5EZXBsb3ltZW50U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyKFxuICAgIGFyZ3M6IFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3dpdGNob3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEdsb2JhbENsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3dpdGNob3ZlclJlYWRSZXBsaWNhQ29tbWFuZH1cbiAgICovXG4gIHN3aXRjaG92ZXJSZWFkUmVwbGljYShcbiAgICBhcmdzOiBTd2l0Y2hvdmVyUmVhZFJlcGxpY2FDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTd2l0Y2hvdmVyUmVhZFJlcGxpY2FDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvciB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBSRFNTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcIkBlZmZlY3QtYXdzL2NsaWVudC1yZHMvUkRTU2VydmljZVwiKTxcbiAgUkRTU2VydmljZSxcbiAgUkRTU2VydmljZSRcbj4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZVJEU1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhSRFNDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIFJEU1NlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248UkRTU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgUkRTU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VSRFNTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoUkRTU2VydmljZSwgbWFrZVJEU1NlcnZpY2UpO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgUkRTU2VydmljZUxheWVyID0gQmFzZVJEU1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKFJEU0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRSRFNTZXJ2aWNlTGF5ZXIgPSBSRFNTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0UkRTQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from "./Errors";
|
|
2
|
+
export * from "./RDSClientInstance";
|
|
3
|
+
export * from "./RDSClientInstanceConfig";
|
|
4
|
+
export * from "./RDSService";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vRXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9SRFNDbGllbnRJbnN0YW5jZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vUkRTQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JEU1NlcnZpY2VcIjtcbiJdfQ==
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Errors"), exports);
|
|
18
|
+
__exportStar(require("./RDSClientInstance"), exports);
|
|
19
|
+
__exportStar(require("./RDSClientInstanceConfig"), exports);
|
|
20
|
+
__exportStar(require("./RDSService"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QixzREFBb0M7QUFDcEMsNERBQTBDO0FBQzFDLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vUkRTQ2xpZW50SW5zdGFuY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JEU0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9SRFNTZXJ2aWNlXCI7XG4iXX0=
|