@effect-aws/client-rds 1.3.0 → 1.9.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.
Files changed (68) hide show
  1. package/Errors/package.json +6 -0
  2. package/RDSClientInstance/package.json +6 -0
  3. package/RDSService/package.json +6 -0
  4. package/RDSServiceConfig/package.json +6 -0
  5. package/{lib → dist/cjs}/Errors.d.ts +7 -12
  6. package/dist/cjs/Errors.d.ts.map +1 -0
  7. package/dist/cjs/Errors.js +153 -0
  8. package/dist/cjs/Errors.js.map +1 -0
  9. package/dist/cjs/RDSClientInstance.d.ts +24 -0
  10. package/dist/cjs/RDSClientInstance.d.ts.map +1 -0
  11. package/dist/cjs/RDSClientInstance.js +50 -0
  12. package/dist/cjs/RDSClientInstance.js.map +1 -0
  13. package/{lib → dist/cjs}/RDSService.d.ts +16 -38
  14. package/dist/cjs/RDSService.d.ts.map +1 -0
  15. package/dist/cjs/RDSService.js +218 -0
  16. package/dist/cjs/RDSService.js.map +1 -0
  17. package/dist/cjs/RDSServiceConfig.d.ts +25 -0
  18. package/dist/cjs/RDSServiceConfig.d.ts.map +1 -0
  19. package/dist/cjs/RDSServiceConfig.js +35 -0
  20. package/dist/cjs/RDSServiceConfig.js.map +1 -0
  21. package/dist/cjs/index.d.ts +39 -0
  22. package/dist/cjs/index.d.ts.map +1 -0
  23. package/dist/cjs/index.js +56 -0
  24. package/dist/cjs/index.js.map +1 -0
  25. package/dist/dts/Errors.d.ts +152 -0
  26. package/dist/dts/Errors.d.ts.map +1 -0
  27. package/dist/dts/RDSClientInstance.d.ts +24 -0
  28. package/dist/dts/RDSClientInstance.d.ts.map +1 -0
  29. package/dist/dts/RDSService.d.ts +853 -0
  30. package/dist/dts/RDSService.d.ts.map +1 -0
  31. package/dist/dts/RDSServiceConfig.d.ts +25 -0
  32. package/dist/dts/RDSServiceConfig.d.ts.map +1 -0
  33. package/dist/dts/index.d.ts +39 -0
  34. package/dist/dts/index.d.ts.map +1 -0
  35. package/dist/esm/Errors.js +150 -0
  36. package/dist/esm/Errors.js.map +1 -0
  37. package/dist/esm/RDSClientInstance.js +23 -0
  38. package/dist/esm/RDSClientInstance.js.map +1 -0
  39. package/dist/esm/RDSService.js +191 -0
  40. package/dist/esm/RDSService.js.map +1 -0
  41. package/dist/esm/RDSServiceConfig.js +31 -0
  42. package/dist/esm/RDSServiceConfig.js.map +1 -0
  43. package/dist/esm/index.js +27 -0
  44. package/dist/esm/index.js.map +1 -0
  45. package/dist/esm/package.json +4 -0
  46. package/package.json +60 -43
  47. package/src/Errors.ts +452 -0
  48. package/src/RDSClientInstance.ts +33 -0
  49. package/src/RDSService.ts +3127 -0
  50. package/src/RDSServiceConfig.ts +51 -0
  51. package/src/index.ts +44 -0
  52. package/CHANGELOG.md +0 -41
  53. package/docgen.json +0 -8
  54. package/lib/Errors.js +0 -153
  55. package/lib/RDSClientInstance.d.ts +0 -31
  56. package/lib/RDSClientInstance.js +0 -57
  57. package/lib/RDSClientInstanceConfig.d.ts +0 -23
  58. package/lib/RDSClientInstanceConfig.js +0 -44
  59. package/lib/RDSService.js +0 -250
  60. package/lib/esm/Errors.js +0 -150
  61. package/lib/esm/RDSClientInstance.js +0 -30
  62. package/lib/esm/RDSClientInstanceConfig.js +0 -40
  63. package/lib/esm/RDSService.js +0 -246
  64. package/lib/esm/index.js +0 -5
  65. package/lib/index.d.ts +0 -4
  66. package/lib/index.js +0 -21
  67. package/project.json +0 -77
  68. package/vitest.config.ts +0 -3
@@ -1,246 +0,0 @@
1
- var _a;
2
- /**
3
- * @since 1.0.0
4
- */
5
- 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";
6
- import { Data, Effect, Layer, Record } from "effect";
7
- import { AllServiceErrors, SdkError, } from "./Errors";
8
- import { RDSClientInstance, RDSClientInstanceLayer } from "./RDSClientInstance";
9
- import { DefaultRDSClientConfigLayer, makeDefaultRDSClientInstanceConfig, RDSClientInstanceConfig, } from "./RDSClientInstanceConfig";
10
- const commands = {
11
- AddRoleToDBClusterCommand,
12
- AddRoleToDBInstanceCommand,
13
- AddSourceIdentifierToSubscriptionCommand,
14
- AddTagsToResourceCommand,
15
- ApplyPendingMaintenanceActionCommand,
16
- AuthorizeDBSecurityGroupIngressCommand,
17
- BacktrackDBClusterCommand,
18
- CancelExportTaskCommand,
19
- CopyDBClusterParameterGroupCommand,
20
- CopyDBClusterSnapshotCommand,
21
- CopyDBParameterGroupCommand,
22
- CopyDBSnapshotCommand,
23
- CopyOptionGroupCommand,
24
- CreateBlueGreenDeploymentCommand,
25
- CreateCustomDBEngineVersionCommand,
26
- CreateDBClusterCommand,
27
- CreateDBClusterEndpointCommand,
28
- CreateDBClusterParameterGroupCommand,
29
- CreateDBClusterSnapshotCommand,
30
- CreateDBInstanceCommand,
31
- CreateDBInstanceReadReplicaCommand,
32
- CreateDBParameterGroupCommand,
33
- CreateDBProxyCommand,
34
- CreateDBProxyEndpointCommand,
35
- CreateDBSecurityGroupCommand,
36
- CreateDBShardGroupCommand,
37
- CreateDBSnapshotCommand,
38
- CreateDBSubnetGroupCommand,
39
- CreateEventSubscriptionCommand,
40
- CreateGlobalClusterCommand,
41
- CreateIntegrationCommand,
42
- CreateOptionGroupCommand,
43
- CreateTenantDatabaseCommand,
44
- DeleteBlueGreenDeploymentCommand,
45
- DeleteCustomDBEngineVersionCommand,
46
- DeleteDBClusterCommand,
47
- DeleteDBClusterAutomatedBackupCommand,
48
- DeleteDBClusterEndpointCommand,
49
- DeleteDBClusterParameterGroupCommand,
50
- DeleteDBClusterSnapshotCommand,
51
- DeleteDBInstanceCommand,
52
- DeleteDBInstanceAutomatedBackupCommand,
53
- DeleteDBParameterGroupCommand,
54
- DeleteDBProxyCommand,
55
- DeleteDBProxyEndpointCommand,
56
- DeleteDBSecurityGroupCommand,
57
- DeleteDBShardGroupCommand,
58
- DeleteDBSnapshotCommand,
59
- DeleteDBSubnetGroupCommand,
60
- DeleteEventSubscriptionCommand,
61
- DeleteGlobalClusterCommand,
62
- DeleteIntegrationCommand,
63
- DeleteOptionGroupCommand,
64
- DeleteTenantDatabaseCommand,
65
- DeregisterDBProxyTargetsCommand,
66
- DescribeAccountAttributesCommand,
67
- DescribeBlueGreenDeploymentsCommand,
68
- DescribeCertificatesCommand,
69
- DescribeDBClusterAutomatedBackupsCommand,
70
- DescribeDBClusterBacktracksCommand,
71
- DescribeDBClusterEndpointsCommand,
72
- DescribeDBClusterParameterGroupsCommand,
73
- DescribeDBClusterParametersCommand,
74
- DescribeDBClusterSnapshotAttributesCommand,
75
- DescribeDBClusterSnapshotsCommand,
76
- DescribeDBClustersCommand,
77
- DescribeDBEngineVersionsCommand,
78
- DescribeDBInstanceAutomatedBackupsCommand,
79
- DescribeDBInstancesCommand,
80
- DescribeDBLogFilesCommand,
81
- DescribeDBParameterGroupsCommand,
82
- DescribeDBParametersCommand,
83
- DescribeDBProxiesCommand,
84
- DescribeDBProxyEndpointsCommand,
85
- DescribeDBProxyTargetGroupsCommand,
86
- DescribeDBProxyTargetsCommand,
87
- DescribeDBRecommendationsCommand,
88
- DescribeDBSecurityGroupsCommand,
89
- DescribeDBShardGroupsCommand,
90
- DescribeDBSnapshotAttributesCommand,
91
- DescribeDBSnapshotTenantDatabasesCommand,
92
- DescribeDBSnapshotsCommand,
93
- DescribeDBSubnetGroupsCommand,
94
- DescribeEngineDefaultClusterParametersCommand,
95
- DescribeEngineDefaultParametersCommand,
96
- DescribeEventCategoriesCommand,
97
- DescribeEventSubscriptionsCommand,
98
- DescribeEventsCommand,
99
- DescribeExportTasksCommand,
100
- DescribeGlobalClustersCommand,
101
- DescribeIntegrationsCommand,
102
- DescribeOptionGroupOptionsCommand,
103
- DescribeOptionGroupsCommand,
104
- DescribeOrderableDBInstanceOptionsCommand,
105
- DescribePendingMaintenanceActionsCommand,
106
- DescribeReservedDBInstancesCommand,
107
- DescribeReservedDBInstancesOfferingsCommand,
108
- DescribeSourceRegionsCommand,
109
- DescribeTenantDatabasesCommand,
110
- DescribeValidDBInstanceModificationsCommand,
111
- DisableHttpEndpointCommand,
112
- DownloadDBLogFilePortionCommand,
113
- EnableHttpEndpointCommand,
114
- FailoverDBClusterCommand,
115
- FailoverGlobalClusterCommand,
116
- ListTagsForResourceCommand,
117
- ModifyActivityStreamCommand,
118
- ModifyCertificatesCommand,
119
- ModifyCurrentDBClusterCapacityCommand,
120
- ModifyCustomDBEngineVersionCommand,
121
- ModifyDBClusterCommand,
122
- ModifyDBClusterEndpointCommand,
123
- ModifyDBClusterParameterGroupCommand,
124
- ModifyDBClusterSnapshotAttributeCommand,
125
- ModifyDBInstanceCommand,
126
- ModifyDBParameterGroupCommand,
127
- ModifyDBProxyCommand,
128
- ModifyDBProxyEndpointCommand,
129
- ModifyDBProxyTargetGroupCommand,
130
- ModifyDBRecommendationCommand,
131
- ModifyDBShardGroupCommand,
132
- ModifyDBSnapshotCommand,
133
- ModifyDBSnapshotAttributeCommand,
134
- ModifyDBSubnetGroupCommand,
135
- ModifyEventSubscriptionCommand,
136
- ModifyGlobalClusterCommand,
137
- ModifyIntegrationCommand,
138
- ModifyOptionGroupCommand,
139
- ModifyTenantDatabaseCommand,
140
- PromoteReadReplicaCommand,
141
- PromoteReadReplicaDBClusterCommand,
142
- PurchaseReservedDBInstancesOfferingCommand,
143
- RebootDBClusterCommand,
144
- RebootDBInstanceCommand,
145
- RebootDBShardGroupCommand,
146
- RegisterDBProxyTargetsCommand,
147
- RemoveFromGlobalClusterCommand,
148
- RemoveRoleFromDBClusterCommand,
149
- RemoveRoleFromDBInstanceCommand,
150
- RemoveSourceIdentifierFromSubscriptionCommand,
151
- RemoveTagsFromResourceCommand,
152
- ResetDBClusterParameterGroupCommand,
153
- ResetDBParameterGroupCommand,
154
- RestoreDBClusterFromS3Command,
155
- RestoreDBClusterFromSnapshotCommand,
156
- RestoreDBClusterToPointInTimeCommand,
157
- RestoreDBInstanceFromDBSnapshotCommand,
158
- RestoreDBInstanceFromS3Command,
159
- RestoreDBInstanceToPointInTimeCommand,
160
- RevokeDBSecurityGroupIngressCommand,
161
- StartActivityStreamCommand,
162
- StartDBClusterCommand,
163
- StartDBInstanceCommand,
164
- StartDBInstanceAutomatedBackupsReplicationCommand,
165
- StartExportTaskCommand,
166
- StopActivityStreamCommand,
167
- StopDBClusterCommand,
168
- StopDBInstanceCommand,
169
- StopDBInstanceAutomatedBackupsReplicationCommand,
170
- SwitchoverBlueGreenDeploymentCommand,
171
- SwitchoverGlobalClusterCommand,
172
- SwitchoverReadReplicaCommand,
173
- };
174
- /**
175
- * @since 1.0.0
176
- * @category constructors
177
- */
178
- export const makeRDSService = Effect.gen(function* (_) {
179
- const client = yield* _(RDSClientInstance);
180
- return Record.toEntries(commands).reduce((acc, [command]) => {
181
- const CommandCtor = commands[command];
182
- const methodImpl = (args, options) => Effect.tryPromise({
183
- try: (abortSignal) => client.send(new CommandCtor(args), {
184
- ...(options !== null && options !== void 0 ? options : {}),
185
- abortSignal,
186
- }),
187
- catch: (e) => {
188
- if (e instanceof RDSServiceException &&
189
- AllServiceErrors.includes(e.name)) {
190
- const ServiceException = Data.tagged(e.name);
191
- return ServiceException({
192
- ...e,
193
- message: e.message,
194
- stack: e.stack,
195
- });
196
- }
197
- if (e instanceof Error) {
198
- return SdkError({
199
- ...e,
200
- name: "SdkError",
201
- message: e.message,
202
- stack: e.stack,
203
- });
204
- }
205
- throw e;
206
- },
207
- });
208
- const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
209
- return { ...acc, [methodName]: methodImpl };
210
- }, {});
211
- });
212
- /**
213
- * @since 1.0.0
214
- * @category models
215
- */
216
- export class RDSService extends Effect.Tag("@effect-aws/client-rds/RDSService")() {
217
- }
218
- _a = RDSService;
219
- RDSService.defaultLayer = Layer.effect(_a, makeRDSService).pipe(Layer.provide(RDSClientInstanceLayer), Layer.provide(DefaultRDSClientConfigLayer));
220
- RDSService.layer = (config) => Layer.effect(_a, makeRDSService).pipe(Layer.provide(RDSClientInstanceLayer), Layer.provide(Layer.effect(RDSClientInstanceConfig, makeDefaultRDSClientInstanceConfig.pipe(Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
221
- RDSService.baseLayer = (evaluate) => Layer.effect(_a, makeRDSService).pipe(Layer.provide(Layer.effect(RDSClientInstance, Effect.map(makeDefaultRDSClientInstanceConfig, evaluate))));
222
- /**
223
- * @since 1.0.0
224
- * @category models
225
- * @alias RDSService
226
- */
227
- export const RDS = RDSService;
228
- /**
229
- * @since 1.0.0
230
- * @category layers
231
- * @deprecated use RDS.baseLayer instead
232
- */
233
- export const BaseRDSServiceLayer = Layer.effect(RDSService, makeRDSService);
234
- /**
235
- * @since 1.0.0
236
- * @category layers
237
- * @deprecated use RDS.layer instead
238
- */
239
- export const RDSServiceLayer = BaseRDSServiceLayer.pipe(Layer.provide(RDSClientInstanceLayer));
240
- /**
241
- * @since 1.0.0
242
- * @category layers
243
- * @deprecated use RDS.defaultLayer instead
244
- */
245
- export const DefaultRDSServiceLayer = RDSService.defaultLayer;
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUkRTU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9SRFNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRztBQUNILE9BQU8sRUFDTCxtQkFBbUIsRUFHbkIseUJBQXlCLEVBR3pCLDBCQUEwQixFQUcxQix3Q0FBd0MsRUFHeEMsd0JBQXdCLEVBR3hCLG9DQUFvQyxFQUdwQyxzQ0FBc0MsRUFHdEMseUJBQXlCLEVBR3pCLHVCQUF1QixFQUd2QixrQ0FBa0MsRUFHbEMsNEJBQTRCLEVBRzVCLDJCQUEyQixFQUczQixxQkFBcUIsRUFHckIsc0JBQXNCLEVBR3RCLGdDQUFnQyxFQUdoQyxrQ0FBa0MsRUFHbEMsc0JBQXNCLEVBR3RCLDhCQUE4QixFQUc5QixvQ0FBb0MsRUFHcEMsOEJBQThCLEVBRzlCLHVCQUF1QixFQUd2QixrQ0FBa0MsRUFHbEMsNkJBQTZCLEVBRzdCLG9CQUFvQixFQUdwQiw0QkFBNEIsRUFHNUIsNEJBQTRCLEVBRzVCLHlCQUF5QixFQUd6Qix1QkFBdUIsRUFHdkIsMEJBQTBCLEVBRzFCLDhCQUE4QixFQUc5QiwwQkFBMEIsRUFHMUIsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUd4QiwyQkFBMkIsRUFHM0IsZ0NBQWdDLEVBR2hDLGtDQUFrQyxFQUdsQyxzQkFBc0IsRUFHdEIscUNBQXFDLEVBR3JDLDhCQUE4QixFQUc5QixvQ0FBb0MsRUFHcEMsOEJBQThCLEVBRzlCLHVCQUF1QixFQUd2QixzQ0FBc0MsRUFHdEMsNkJBQTZCLEVBRzdCLG9CQUFvQixFQUdwQiw0QkFBNEIsRUFHNUIsNEJBQTRCLEVBRzVCLHlCQUF5QixFQUd6Qix1QkFBdUIsRUFHdkIsMEJBQTBCLEVBRzFCLDhCQUE4QixFQUc5QiwwQkFBMEIsRUFHMUIsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUd4QiwyQkFBMkIsRUFHM0IsK0JBQStCLEVBRy9CLGdDQUFnQyxFQUdoQyxtQ0FBbUMsRUFHbkMsMkJBQTJC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U1NlcnZpY2VFeGNlcHRpb24sXG4gIHR5cGUgUkRTQ2xpZW50LFxuICB0eXBlIFJEU0NsaWVudENvbmZpZyxcbiAgQWRkUm9sZVRvREJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBBZGRSb2xlVG9EQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkUm9sZVRvREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgQWRkUm9sZVRvREJJbnN0YW5jZUNvbW1hbmQsXG4gIHR5cGUgQWRkUm9sZVRvREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRSb2xlVG9EQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgQWRkVGFnc1RvUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFRhZ3NUb1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25Db21tYW5kLFxuICB0eXBlIEFwcGx5UGVuZGluZ01haW50ZW5hbmNlQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEFwcGx5UGVuZGluZ01haW50ZW5hbmNlQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIHR5cGUgQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgQmFja3RyYWNrREJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBCYWNrdHJhY2tEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQmFja3RyYWNrREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgQ29weURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ29weURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZCxcbiAgdHlwZSBDb3B5REJDbHVzdGVyU25hcHNob3RDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ29weURCUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIENvcHlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENvcHlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ29weURCU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENvcHlEQlNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENvcHlEQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ29weU9wdGlvbkdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDb3B5T3B0aW9uR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ29weU9wdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kLFxuICB0eXBlIENyZWF0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJJbnN0YW5jZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJQcm94eUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJQcm94eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQlByb3h5Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJQcm94eUVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQlByb3h5RW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJQcm94eUVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJTaGFyZEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEQlNoYXJkR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlREJTaGFyZEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlREJTdWJuZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlREJTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEQlN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlR2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlSW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlT3B0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZU9wdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU9wdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVGVuYW50RGF0YWJhc2VDb21tYW5kLFxuICB0eXBlIENyZWF0ZVRlbmFudERhdGFiYXNlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVRlbmFudERhdGFiYXNlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQ3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJDbHVzdGVyQXV0b21hdGVkQmFja3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJDbHVzdGVyQXV0b21hdGVkQmFja3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJDbHVzdGVyRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJDbHVzdGVyU25hcHNob3RDb21tYW5kLFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURCQ2x1c3RlclNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJJbnN0YW5jZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJQcm94eUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJQcm94eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQlByb3h5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJQcm94eUVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQlByb3h5RW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJQcm94eUVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQlNlY3VyaXR5R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJTZWN1cml0eUdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJTaGFyZEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEQlNoYXJkR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlREJTaGFyZEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlREJTdWJuZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlREJTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEQlN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlR2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlR2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT3B0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZU9wdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU9wdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVGVuYW50RGF0YWJhc2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZVRlbmFudERhdGFiYXNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVRlbmFudERhdGFiYXNlQ29tbWFuZE91dHB1dCxcbiAgRGVyZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZCxcbiAgdHlwZSBEZXJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVyZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVCbHVlR3JlZW5EZXBsb3ltZW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVCbHVlR3JlZW5EZXBsb3ltZW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUJsdWVHcmVlbkRlcGxveW1lbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQ2VydGlmaWNhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlckF1dG9tYXRlZEJhY2t1cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJCYWNrdHJhY2tzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlckJhY2t0cmFja3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJCYWNrdHJhY2tzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJFbmRwb2ludHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJDbHVzdGVyU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkNsdXN0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCQ2x1c3RlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkNsdXN0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCRW5naW5lVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkluc3RhbmNlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQkluc3RhbmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCSW5zdGFuY2VzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQkxvZ0ZpbGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCTG9nRmlsZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQkxvZ0ZpbGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlBhcmFtZXRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlREJQcm94aWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlREJQcm94aWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCUHJveHlFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlByb3h5VGFyZ2V0R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlByb3h5VGFyZ2V0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlByb3h5VGFyZ2V0c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlByb3h5VGFyZ2V0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCUHJveHlUYXJnZXRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlJlY29tbWVuZGF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlJlY29tbWVuZGF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCUmVjb21tZW5kYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCU2VjdXJpdHlHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlNoYXJkR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCU2hhcmRHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlNoYXJkR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURCU25hcHNob3RUZW5hbnREYXRhYmFzZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlNuYXBzaG90c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCU25hcHNob3RzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURCU3VibmV0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFdmVudENhdGVnb3JpZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXZlbnRDYXRlZ29yaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRXZlbnRDYXRlZ29yaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFdmVudHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVHbG9iYWxDbHVzdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVHbG9iYWxDbHVzdGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUdsb2JhbENsdXN0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlSW50ZWdyYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlSW50ZWdyYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVPcHRpb25Hcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3B0aW9uR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlT3B0aW9uR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTb3VyY2VSZWdpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVNvdXJjZVJlZ2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTb3VyY2VSZWdpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVUZW5hbnREYXRhYmFzZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVGVuYW50RGF0YWJhc2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVGVuYW50RGF0YWJhc2VzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVZhbGlkREJJbnN0YW5jZU1vZGlmaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGlzYWJsZUh0dHBFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGlzYWJsZUh0dHBFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhYmxlSHR0cEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uQ29tbWFuZCxcbiAgdHlwZSBEb3dubG9hZERCTG9nRmlsZVBvcnRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uQ29tbWFuZE91dHB1dCxcbiAgRW5hYmxlSHR0cEVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBFbmFibGVIdHRwRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRW5hYmxlSHR0cEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRmFpbG92ZXJEQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIEZhaWxvdmVyREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEZhaWxvdmVyREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgRmFpbG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBGYWlsb3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRmFpbG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5QWN0aXZpdHlTdHJlYW1Db21tYW5kLFxuICB0eXBlIE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5Q2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q2VydGlmaWNhdGVzQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5Q3VycmVudERCQ2x1c3RlckNhcGFjaXR5Q29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDdXJyZW50REJDbHVzdGVyQ2FwYWNpdHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q3VycmVudERCQ2x1c3RlckNhcGFjaXR5Q29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kLFxuICB0eXBlIE1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJJbnN0YW5jZUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJQcm94eUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJQcm94eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlByb3h5Q29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJQcm94eUVuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlByb3h5RW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJQcm94eUVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJQcm94eVRhcmdldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlByb3h5VGFyZ2V0R3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJQcm94eVRhcmdldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJSZWNvbW1lbmRhdGlvbkNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJSZWNvbW1lbmRhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlJlY29tbWVuZGF0aW9uQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJTaGFyZEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBNb2RpZnlEQlNoYXJkR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTW9kaWZ5REJTaGFyZEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5REJTdWJuZXRHcm91cENvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5REJTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlEQlN1Ym5ldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25Db21tYW5kLFxuICB0eXBlIE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5R2xvYmFsQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgTW9kaWZ5R2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBNb2RpZnlHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5SW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIE1vZGlmeUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeUludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kLFxuICB0eXBlIE1vZGlmeU9wdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeU9wdGlvbkdyb3VwQ29tbWFuZE91dHB1dCxcbiAgTW9kaWZ5VGVuYW50RGF0YWJhc2VDb21tYW5kLFxuICB0eXBlIE1vZGlmeVRlbmFudERhdGFiYXNlQ29tbWFuZElucHV0LFxuICB0eXBlIE1vZGlmeVRlbmFudERhdGFiYXNlQ29tbWFuZE91dHB1dCxcbiAgUHJvbW90ZVJlYWRSZXBsaWNhQ29tbWFuZCxcbiAgdHlwZSBQcm9tb3RlUmVhZFJlcGxpY2FDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHJvbW90ZVJlYWRSZXBsaWNhQ29tbWFuZE91dHB1dCxcbiAgUHJvbW90ZVJlYWRSZXBsaWNhREJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBQcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHJvbW90ZVJlYWRSZXBsaWNhREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdDb21tYW5kLFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nQ29tbWFuZE91dHB1dCxcbiAgUmVib290REJDbHVzdGVyQ29tbWFuZCxcbiAgdHlwZSBSZWJvb3REQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVib290REJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgUmVib290REJJbnN0YW5jZUNvbW1hbmQsXG4gIHR5cGUgUmVib290REJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWJvb3REQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgUmVib290REJTaGFyZEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBSZWJvb3REQlNoYXJkR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVib290REJTaGFyZEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgUmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmQsXG4gIHR5cGUgUmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlRnJvbUdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFJlbW92ZUZyb21HbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZUZyb21HbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFJlbW92ZVJvbGVGcm9tREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVJvbGVGcm9tREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbURCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kLFxuICB0eXBlIFJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgUmVzZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmQsXG4gIHR5cGUgUmVzZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgUmVzZXREQlBhcmFtZXRlckdyb3VwQ29tbWFuZCxcbiAgdHlwZSBSZXNldERCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzZXREQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgUmVzdG9yZURCQ2x1c3RlckZyb21TM0NvbW1hbmQsXG4gIHR5cGUgUmVzdG9yZURCQ2x1c3RlckZyb21TM0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXN0b3JlREJDbHVzdGVyRnJvbVMzQ29tbWFuZE91dHB1dCxcbiAgUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgUmVzdG9yZURCQ2x1c3RlclRvUG9pbnRJblRpbWVDb21tYW5kLFxuICB0eXBlIFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZE91dHB1dCxcbiAgUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdENvbW1hbmQsXG4gIHR5cGUgUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kLFxuICB0eXBlIFJlc3RvcmVEQkluc3RhbmNlRnJvbVMzQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc3RvcmVEQkluc3RhbmNlRnJvbVMzQ29tbWFuZE91dHB1dCxcbiAgUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lQ29tbWFuZCxcbiAgdHlwZSBSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lQ29tbWFuZE91dHB1dCxcbiAgUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmQsXG4gIHR5cGUgUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRBY3Rpdml0eVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgU3RhcnRBY3Rpdml0eVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydEFjdGl2aXR5U3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgU3RhcnREQkNsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFN0YXJ0REJDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0REJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgU3RhcnREQkluc3RhbmNlQ29tbWFuZCxcbiAgdHlwZSBTdGFydERCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRFeHBvcnRUYXNrQ29tbWFuZCxcbiAgdHlwZSBTdGFydEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgU3RvcEFjdGl2aXR5U3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBTdG9wQWN0aXZpdHlTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcEFjdGl2aXR5U3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgU3RvcERCQ2x1c3RlckNvbW1hbmQsXG4gIHR5cGUgU3RvcERCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wREJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgU3RvcERCSW5zdGFuY2VDb21tYW5kLFxuICB0eXBlIFN0b3BEQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BEQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgU3RvcERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb25Db21tYW5kLFxuICB0eXBlIFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgU3dpdGNob3ZlckJsdWVHcmVlbkRlcGxveW1lbnRDb21tYW5kLFxuICB0eXBlIFN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZElucHV0LFxuICB0eXBlIFN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZE91dHB1dCxcbiAgU3dpdGNob3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kLFxuICB0eXBlIFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgU3dpdGNob3ZlclJlYWRSZXBsaWNhQ29tbWFuZCxcbiAgdHlwZSBTd2l0Y2hvdmVyUmVhZFJlcGxpY2FDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3dpdGNob3ZlclJlYWRSZXBsaWNhQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1yZHNcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEF1dGhvcml6YXRpb25BbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQXV0aG9yaXphdGlvbk5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQXV0aG9yaXphdGlvblF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBCYWNrdXBQb2xpY3lOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIEJsdWVHcmVlbkRlcGxveW1lbnRBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgQmx1ZUdyZWVuRGVwbG95bWVudE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIENyZWF0ZUN1c3RvbURCRW5naW5lVmVyc2lvbkZhdWx0RXJyb3IsXG4gIEN1c3RvbUF2YWlsYWJpbGl0eVpvbmVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIEN1c3RvbURCRW5naW5lVmVyc2lvbkFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBDdXN0b21EQkVuZ2luZVZlcnNpb25Ob3RGb3VuZEZhdWx0RXJyb3IsXG4gIEN1c3RvbURCRW5naW5lVmVyc2lvblF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyQXV0b21hdGVkQmFja3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJBdXRvbWF0ZWRCYWNrdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyQmFja3RyYWNrTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJFbmRwb2ludEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJFbmRwb2ludE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyRW5kcG9pbnRRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCQ2x1c3RlclJvbGVBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyUm9sZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJDbHVzdGVyUm9sZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQkNsdXN0ZXJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJJbnN0YW5jZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCSW5zdGFuY2VOb3RSZWFkeUZhdWx0RXJyb3IsXG4gIERCSW5zdGFuY2VSb2xlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCSW5zdGFuY2VSb2xlTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQkluc3RhbmNlUm9sZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQkxvZ0ZpbGVOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCUGFyYW1ldGVyR3JvdXBBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJQYXJhbWV0ZXJHcm91cFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQlByb3h5QWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCUHJveHlFbmRwb2ludEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQlByb3h5RW5kcG9pbnROb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCUHJveHlFbmRwb2ludFF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlByb3h5UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCUHJveHlUYXJnZXRBbHJlYWR5UmVnaXN0ZXJlZEZhdWx0RXJyb3IsXG4gIERCUHJveHlUYXJnZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJQcm94eVRhcmdldE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJTZWN1cml0eUdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJTZWN1cml0eUdyb3VwTm90U3VwcG9ydGVkRmF1bHRFcnJvcixcbiAgREJTZWN1cml0eUdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCU2hhcmRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBEQlNoYXJkR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIERCU25hcHNob3RBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgREJTbmFwc2hvdFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlN1Ym5ldEdyb3VwQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvcixcbiAgREJTdWJuZXRHcm91cE5vdEFsbG93ZWRGYXVsdEVycm9yLFxuICBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yLFxuICBEQlN1Ym5ldEdyb3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCU3VibmV0UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIERCVXBncmFkZURlcGVuZGVuY3lGYWlsdXJlRmF1bHRFcnJvcixcbiAgRG9tYWluTm90Rm91bmRGYXVsdEVycm9yLFxuICBFYzJJbWFnZVByb3BlcnRpZXNOb3RTdXBwb3J0ZWRGYXVsdEVycm9yLFxuICBFdmVudFN1YnNjcmlwdGlvblF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBFeHBvcnRUYXNrQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIEV4cG9ydFRhc2tOb3RGb3VuZEZhdWx0RXJyb3IsXG4gIEdsb2JhbENsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgR2xvYmFsQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvcixcbiAgR2xvYmFsQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBJYW1Sb2xlTWlzc2luZ1Blcm1pc3Npb25zRmF1bHRFcnJvcixcbiAgSWFtUm9sZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgSW5zdWZmaWNpZW50QXZhaWxhYmxlSVBzSW5TdWJuZXRGYXVsdEVycm9yLFxuICBJbnN1ZmZpY2llbnREQkNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3IsXG4gIEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3IsXG4gIEluc3VmZmljaWVudFN0b3JhZ2VDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yLFxuICBJbnRlZ3JhdGlvbkFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBJbnRlZ3JhdGlvbkNvbmZsaWN0T3BlcmF0aW9uRmF1bHRFcnJvcixcbiAgSW50ZWdyYXRpb25Ob3RGb3VuZEZhdWx0RXJyb3IsXG4gIEludGVncmF0aW9uUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIEludmFsaWRCbHVlR3JlZW5EZXBsb3ltZW50U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkQ3VzdG9tREJFbmdpbmVWZXJzaW9uU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJDbHVzdGVyQXV0b21hdGVkQmFja3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yLFxuICBJbnZhbGlkREJDbHVzdGVyRW5kcG9pbnRTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQkNsdXN0ZXJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCUHJveHlFbmRwb2ludFN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQlNlY3VyaXR5R3JvdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQlNoYXJkR3JvdXBTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJTdWJuZXRHcm91cEZhdWx0RXJyb3IsXG4gIEludmFsaWREQlN1Ym5ldEdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkREJTdWJuZXRTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRFdmVudFN1YnNjcmlwdGlvblN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZEV4cG9ydE9ubHlGYXVsdEVycm9yLFxuICBJbnZhbGlkRXhwb3J0U291cmNlU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkRXhwb3J0VGFza1N0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZEdsb2JhbENsdXN0ZXJTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRJbnRlZ3JhdGlvblN0YXRlRmF1bHRFcnJvcixcbiAgSW52YWxpZE9wdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yLFxuICBJbnZhbGlkUmVzb3VyY2VTdGF0ZUZhdWx0RXJyb3IsXG4gIEludmFsaWRSZXN0b3JlRmF1bHRFcnJvcixcbiAgSW52YWxpZFMzQnVja2V0RmF1bHRFcnJvcixcbiAgSW52YWxpZFN1Ym5ldEVycm9yLFxuICBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvcixcbiAgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3IsXG4gIE1heERCU2hhcmRHcm91cExpbWl0UmVhY2hlZEVycm9yLFxuICBOZXR3b3JrVHlwZU5vdFN1cHBvcnRlZEVycm9yLFxuICBPcHRpb25Hcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yLFxuICBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvcixcbiAgT3B0aW9uR3JvdXBRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgUG9pbnRJblRpbWVSZXN0b3JlTm90RW5hYmxlZEZhdWx0RXJyb3IsXG4gIFByb3Zpc2lvbmVkSW9wc05vdEF2YWlsYWJsZUluQVpGYXVsdEVycm9yLFxuICBSZXNlcnZlZERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvcixcbiAgUmVzZXJ2ZWREQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yLFxuICBSZXNlcnZlZERCSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvcixcbiAgUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU05TSW52YWxpZFRvcGljRmF1bHRFcnJvcixcbiAgU05TTm9BdXRob3JpemF0aW9uRmF1bHRFcnJvcixcbiAgU05TVG9waWNBcm5Ob3RGb3VuZEZhdWx0RXJyb3IsXG4gIFNoYXJlZFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3IsXG4gIFNvdXJjZUNsdXN0ZXJOb3RTdXBwb3J0ZWRGYXVsdEVycm9yLFxuICBTb3VyY2VEYXRhYmFzZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3IsXG4gIFNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvcixcbiAgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBTdG9yYWdlVHlwZU5vdEF2YWlsYWJsZUZhdWx0RXJyb3IsXG4gIFN0b3JhZ2VUeXBlTm90U3VwcG9ydGVkRmF1bHRFcnJvcixcbiAgU3VibmV0QWxyZWFkeUluVXNlRXJyb3IsXG4gIFN1YnNjcmlwdGlvbkFscmVhZHlFeGlzdEZhdWx0RXJyb3IsXG4gIFN1YnNjcmlwdGlvbkNhdGVnb3J5Tm90Rm91bmRGYXVsdEVycm9yLFxuICBTdWJzY3JpcHRpb25Ob3RGb3VuZEZhdWx0RXJyb3IsXG4gIFRlbmFudERhdGFiYXNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3IsXG4gIFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yLFxuICBUZW5hbnREYXRhYmFzZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yLFxuICBVbnN1cHBvcnRlZERCRW5naW5lVmVyc2lvbkZhdWx0RXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHsgUkRTQ2xpZW50SW5zdGFuY2UsIFJEU0NsaWVudEluc3RhbmNlTGF5ZXIgfSBmcm9tIFwiLi9SRFNDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdFJEU0NsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdFJEU0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBSRFNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vUkRTQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/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+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCRW5naW5lVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlREJFbmdpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkluc3RhbmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCSW5zdGFuY2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCSW5zdGFuY2VzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQkxvZ0ZpbGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJMb2dGaWxlcyhcbiAgICBhcmdzOiBEZXNjcmliZURCTG9nRmlsZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCTG9nRmlsZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvciB8IERCSW5zdGFuY2VOb3RSZWFkeUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlBhcmFtZXRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVEQlBhcmFtZXRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCUGFyYW1ldGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJQcm94aWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJQcm94aWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJQcm94aWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlByb3hpZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCUHJveHlFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlByb3h5RW5kcG9pbnRzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJQcm94eUVuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJQcm94eUVuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQlByb3h5RW5kcG9pbnROb3RGb3VuZEZhdWx0RXJyb3IgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJQcm94eVRhcmdldEdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCUHJveHlUYXJnZXRHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlByb3h5VGFyZ2V0R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlByb3h5VGFyZ2V0R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJQcm94eVRhcmdldHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlByb3h5VGFyZ2V0cyhcbiAgICBhcmdzOiBEZXNjcmliZURCUHJveHlUYXJnZXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlByb3h5VGFyZ2V0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eVRhcmdldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQcm94eVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCUmVjb21tZW5kYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJSZWNvbW1lbmRhdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEQlJlY29tbWVuZGF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlREJSZWNvbW1lbmRhdGlvbnNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlREJTZWN1cml0eUdyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCU2VjdXJpdHlHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCU2hhcmRHcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEQlNoYXJkR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJTaGFyZEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJTaGFyZEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3IgfCBEQlNoYXJkR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlNuYXBzaG90QXR0cmlidXRlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURCU25hcHNob3RBdHRyaWJ1dGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCU25hcHNob3RBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJTbmFwc2hvdFRlbmFudERhdGFiYXNlcyhcbiAgICBhcmdzOiBEZXNjcmliZURCU25hcHNob3RUZW5hbnREYXRhYmFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURCU25hcHNob3RUZW5hbnREYXRhYmFzZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCU25hcHNob3RzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJTbmFwc2hvdHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlNuYXBzaG90c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJTbmFwc2hvdHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURCU3VibmV0R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlREJTdWJuZXRHcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlREJTdWJuZXRHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUVuZ2luZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUVuZ2luZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVycyhcbiAgICBhcmdzOiBEZXNjcmliZUVuZ2luZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXZlbnRDYXRlZ29yaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXZlbnRDYXRlZ29yaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVFdmVudENhdGVnb3JpZXNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgU3Vic2NyaXB0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXZlbnRzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVFdmVudHNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFeHBvcnRUYXNrcyhcbiAgICBhcmdzOiBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBFeHBvcnRUYXNrTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlR2xvYmFsQ2x1c3RlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVHbG9iYWxDbHVzdGVycyhcbiAgICBhcmdzOiBEZXNjcmliZUdsb2JhbENsdXN0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVHbG9iYWxDbHVzdGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBHbG9iYWxDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSW50ZWdyYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSW50ZWdyYXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlSW50ZWdyYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVJbnRlZ3JhdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW50ZWdyYXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVPcHRpb25Hcm91cHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVPcHRpb25Hcm91cHMoXG4gICAgYXJnczogRGVzY3JpYmVPcHRpb25Hcm91cHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU9wdGlvbkdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc291cmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXMoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IFJlc2VydmVkREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTb3VyY2VSZWdpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU291cmNlUmVnaW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZVNvdXJjZVJlZ2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZVNvdXJjZVJlZ2lvbnNDb21tYW5kT3V0cHV0LCBTZGtFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVGVuYW50RGF0YWJhc2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlVGVuYW50RGF0YWJhc2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlVGVuYW50RGF0YWJhc2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVUZW5hbnREYXRhYmFzZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVZhbGlkREJJbnN0YW5jZU1vZGlmaWNhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYWJsZUh0dHBFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkaXNhYmxlSHR0cEVuZHBvaW50KFxuICAgIGFyZ3M6IERpc2FibGVIdHRwRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhYmxlSHR0cEVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRSZXNvdXJjZVN0YXRlRmF1bHRFcnJvciB8IFJlc291cmNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERvd25sb2FkREJMb2dGaWxlUG9ydGlvbkNvbW1hbmR9XG4gICAqL1xuICBkb3dubG9hZERCTG9nRmlsZVBvcnRpb24oXG4gICAgYXJnczogRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90UmVhZHlGYXVsdEVycm9yXG4gICAgfCBEQkxvZ0ZpbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5hYmxlSHR0cEVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGVuYWJsZUh0dHBFbmRwb2ludChcbiAgICBhcmdzOiBFbmFibGVIdHRwRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBFbmFibGVIdHRwRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFJlc291cmNlU3RhdGVGYXVsdEVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRmFpbG92ZXJEQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgZmFpbG92ZXJEQkNsdXN0ZXIoXG4gICAgYXJnczogRmFpbG92ZXJEQkNsdXN0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBGYWlsb3ZlckRCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBGYWlsb3Zlckdsb2JhbENsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgZmFpbG92ZXJHbG9iYWxDbHVzdGVyKFxuICAgIGFyZ3M6IEZhaWxvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEZhaWxvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBHbG9iYWxDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkR2xvYmFsQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yUmVzb3VyY2UoXG4gICAgYXJnczogTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJsdWVHcmVlbkRlcGxveW1lbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eVRhcmdldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90VGVuYW50RGF0YWJhc2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludGVncmF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlBY3Rpdml0eVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlBY3Rpdml0eVN0cmVhbShcbiAgICBhcmdzOiBNb2RpZnlBY3Rpdml0eVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUFjdGl2aXR5U3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5Q2VydGlmaWNhdGVzQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUNlcnRpZmljYXRlcyhcbiAgICBhcmdzOiBNb2RpZnlDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5Q3VycmVudERCQ2x1c3RlckNhcGFjaXR5Q29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUN1cnJlbnREQkNsdXN0ZXJDYXBhY2l0eShcbiAgICBhcmdzOiBNb2RpZnlDdXJyZW50REJDbHVzdGVyQ2FwYWNpdHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlDdXJyZW50REJDbHVzdGVyQ2FwYWNpdHlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlDdXN0b21EQkVuZ2luZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5Q3VzdG9tREJFbmdpbmVWZXJzaW9uKFxuICAgIGFyZ3M6IE1vZGlmeUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUN1c3RvbURCRW5naW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ3VzdG9tREJFbmdpbmVWZXJzaW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQ3VzdG9tREJFbmdpbmVWZXJzaW9uU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlEQkNsdXN0ZXIoXG4gICAgYXJnczogTW9kaWZ5REJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTdWJuZXRHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RBdmFpbGFibGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCQ2x1c3RlckVuZHBvaW50KFxuICAgIGFyZ3M6IE1vZGlmeURCQ2x1c3RlckVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJDbHVzdGVyRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlckVuZHBvaW50Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyRW5kcG9pbnRTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCQ2x1c3RlclBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeURCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlKFxuICAgIGFyZ3M6IE1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3RlclNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFNoYXJlZFNuYXBzaG90UXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlEQkluc3RhbmNlKFxuICAgIGFyZ3M6IE1vZGlmeURCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBCYWNrdXBQb2xpY3lOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENlcnRpZmljYXRlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJVcGdyYWRlRGVwZW5kZW5jeUZhaWx1cmVGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTZWN1cml0eUdyb3VwU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IE5ldHdvcmtUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IE9wdGlvbkdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBQcm92aXNpb25lZElvcHNOb3RBdmFpbGFibGVJbkFaRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlVHlwZU5vdFN1cHBvcnRlZEZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJQYXJhbWV0ZXJHcm91cENvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlEQlBhcmFtZXRlckdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeURCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQlBhcmFtZXRlckdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQYXJhbWV0ZXJHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlByb3h5Q29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCUHJveHkoXG4gICAgYXJnczogTW9kaWZ5REJQcm94eUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCUHJveHlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUHJveHlTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJQcm94eUVuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCUHJveHlFbmRwb2ludChcbiAgICBhcmdzOiBNb2RpZnlEQlByb3h5RW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQlByb3h5RW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUHJveHlFbmRwb2ludEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5RW5kcG9pbnROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5RW5kcG9pbnRTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCUHJveHlUYXJnZXRHcm91cENvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlEQlByb3h5VGFyZ2V0R3JvdXAoXG4gICAgYXJnczogTW9kaWZ5REJQcm94eVRhcmdldEdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5REJQcm94eVRhcmdldEdyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlByb3h5U3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeURCUmVjb21tZW5kYXRpb25Db21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5REJSZWNvbW1lbmRhdGlvbihcbiAgICBhcmdzOiBNb2RpZnlEQlJlY29tbWVuZGF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8TW9kaWZ5REJSZWNvbW1lbmRhdGlvbkNvbW1hbmRPdXRwdXQsIFNka0Vycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJTaGFyZEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCU2hhcmRHcm91cChcbiAgICBhcmdzOiBNb2RpZnlEQlNoYXJkR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQlNoYXJkR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCU2hhcmRHcm91cEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBEQlNoYXJkR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJTbmFwc2hvdENvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlEQlNuYXBzaG90KFxuICAgIGFyZ3M6IE1vZGlmeURCU25hcHNob3RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQlNuYXBzaG90Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5REJTbmFwc2hvdEF0dHJpYnV0ZUNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlKFxuICAgIGFyZ3M6IE1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgU2hhcmVkU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlEQlN1Ym5ldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeURCU3VibmV0R3JvdXAoXG4gICAgYXJnczogTW9kaWZ5REJTdWJuZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeURCU3VibmV0R3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBTdWJuZXRBbHJlYWR5SW5Vc2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICBtb2RpZnlFdmVudFN1YnNjcmlwdGlvbihcbiAgICBhcmdzOiBNb2RpZnlFdmVudFN1YnNjcmlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFdmVudFN1YnNjcmlwdGlvblF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBTTlNJbnZhbGlkVG9waWNGYXVsdEVycm9yXG4gICAgfCBTTlNOb0F1dGhvcml6YXRpb25GYXVsdEVycm9yXG4gICAgfCBTTlNUb3BpY0Fybk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgU3Vic2NyaXB0aW9uQ2F0ZWdvcnlOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFN1YnNjcmlwdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNb2RpZnlHbG9iYWxDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUdsb2JhbENsdXN0ZXIoXG4gICAgYXJnczogTW9kaWZ5R2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1vZGlmeUdsb2JhbENsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEdsb2JhbENsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgR2xvYmFsQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeUludGVncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeUludGVncmF0aW9uKFxuICAgIGFyZ3M6IE1vZGlmeUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5SW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludGVncmF0aW9uQ29uZmxpY3RPcGVyYXRpb25GYXVsdEVycm9yXG4gICAgfCBJbnRlZ3JhdGlvbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZEludGVncmF0aW9uU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1vZGlmeU9wdGlvbkdyb3VwQ29tbWFuZH1cbiAgICovXG4gIG1vZGlmeU9wdGlvbkdyb3VwKFxuICAgIGFyZ3M6IE1vZGlmeU9wdGlvbkdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTW9kaWZ5T3B0aW9uR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZE9wdGlvbkdyb3VwU3RhdGVGYXVsdEVycm9yIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTW9kaWZ5VGVuYW50RGF0YWJhc2VDb21tYW5kfVxuICAgKi9cbiAgbW9kaWZ5VGVuYW50RGF0YWJhc2UoXG4gICAgYXJnczogTW9kaWZ5VGVuYW50RGF0YWJhc2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNb2RpZnlUZW5hbnREYXRhYmFzZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFByb21vdGVSZWFkUmVwbGljYUNvbW1hbmR9XG4gICAqL1xuICBwcm9tb3RlUmVhZFJlcGxpY2EoXG4gICAgYXJnczogUHJvbW90ZVJlYWRSZXBsaWNhQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHJvbW90ZVJlYWRSZXBsaWNhQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXJDb21tYW5kfVxuICAgKi9cbiAgcHJvbW90ZVJlYWRSZXBsaWNhREJDbHVzdGVyKFxuICAgIGFyZ3M6IFByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nQ29tbWFuZH1cbiAgICovXG4gIHB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nKFxuICAgIGFyZ3M6IFB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc2VydmVkREJJbnN0YW5jZUFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBSZXNlcnZlZERCSW5zdGFuY2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlYm9vdERCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICByZWJvb3REQkNsdXN0ZXIoXG4gICAgYXJnczogUmVib290REJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVib290REJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlYm9vdERCSW5zdGFuY2VDb21tYW5kfVxuICAgKi9cbiAgcmVib290REJJbnN0YW5jZShcbiAgICBhcmdzOiBSZWJvb3REQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVib290REJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVib290REJTaGFyZEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYm9vdERCU2hhcmRHcm91cChcbiAgICBhcmdzOiBSZWJvb3REQlNoYXJkR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWJvb3REQlNoYXJkR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCU2hhcmRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU2hhcmRHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWdpc3RlckRCUHJveHlUYXJnZXRzQ29tbWFuZH1cbiAgICovXG4gIHJlZ2lzdGVyREJQcm94eVRhcmdldHMoXG4gICAgYXJnczogUmVnaXN0ZXJEQlByb3h5VGFyZ2V0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlZ2lzdGVyREJQcm94eVRhcmdldHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJQcm94eVRhcmdldEFscmVhZHlSZWdpc3RlcmVkRmF1bHRFcnJvclxuICAgIHwgREJQcm94eVRhcmdldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRBdmFpbGFibGVJUHNJblN1Ym5ldEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJQcm94eVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVGcm9tR2xvYmFsQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVGcm9tR2xvYmFsQ2x1c3RlcihcbiAgICBhcmdzOiBSZW1vdmVGcm9tR2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZUZyb21HbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEdsb2JhbENsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVJvbGVGcm9tREJDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVJvbGVGcm9tREJDbHVzdGVyKFxuICAgIGFyZ3M6IFJlbW92ZVJvbGVGcm9tREJDbHVzdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUm9sZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVSb2xlRnJvbURCSW5zdGFuY2VDb21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlUm9sZUZyb21EQkluc3RhbmNlKFxuICAgIGFyZ3M6IFJlbW92ZVJvbGVGcm9tREJJbnN0YW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVJvbGVGcm9tREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZVJvbGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uKFxuICAgIGFyZ3M6IFJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgU291cmNlTm90Rm91bmRGYXVsdEVycm9yIHwgU3Vic2NyaXB0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlVGFnc0Zyb21SZXNvdXJjZShcbiAgICBhcmdzOiBSZW1vdmVUYWdzRnJvbVJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmx1ZUdyZWVuRGVwbG95bWVudE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlByb3h5VGFyZ2V0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3RUZW5hbnREYXRhYmFzZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW50ZWdyYXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFRlbmFudERhdGFiYXNlTm90Rm91bmRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgcmVzZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBSZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCUGFyYW1ldGVyR3JvdXBTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzZXREQlBhcmFtZXRlckdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlc2V0REJQYXJhbWV0ZXJHcm91cChcbiAgICBhcmdzOiBSZXNldERCUGFyYW1ldGVyR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXNldERCUGFyYW1ldGVyR3JvdXBDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlBhcmFtZXRlckdyb3VwU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVEQkNsdXN0ZXJGcm9tUzNDb21tYW5kfVxuICAgKi9cbiAgcmVzdG9yZURCQ2x1c3RlckZyb21TMyhcbiAgICBhcmdzOiBSZXN0b3JlREJDbHVzdGVyRnJvbVMzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzdG9yZURCQ2x1c3RlckZyb21TM0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudFN0b3JhZ2VDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTdWJuZXRHcm91cFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFMzQnVja2V0RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFN1Ym5ldEVycm9yXG4gICAgfCBJbnZhbGlkVlBDTmV0d29ya1N0YXRlRmF1bHRFcnJvclxuICAgIHwgS01TS2V5Tm90QWNjZXNzaWJsZUZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVEQkNsdXN0ZXJGcm9tU25hcHNob3RDb21tYW5kfVxuICAgKi9cbiAgcmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdChcbiAgICBhcmdzOiBSZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJDbHVzdGVyQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgRG9tYWluTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnREQkNsdXN0ZXJDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudFN0b3JhZ2VDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU25hcHNob3RTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlc3RvcmVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXN0b3JlREJDbHVzdGVyVG9Qb2ludEluVGltZUNvbW1hbmR9XG4gICAqL1xuICByZXN0b3JlREJDbHVzdGVyVG9Qb2ludEluVGltZShcbiAgICBhcmdzOiBSZXN0b3JlREJDbHVzdGVyVG9Qb2ludEluVGltZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyQXV0b21hdGVkQmFja3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclBhcmFtZXRlckdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgREJDbHVzdGVyU25hcHNob3ROb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERvbWFpbk5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJDbHVzdGVyQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnREQkluc3RhbmNlQ2FwYWNpdHlGYXVsdEVycm9yXG4gICAgfCBJbnN1ZmZpY2llbnRTdG9yYWdlQ2x1c3RlckNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJTbmFwc2hvdFN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZFJlc3RvcmVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkU3VibmV0RXJyb3JcbiAgICB8IEludmFsaWRWUENOZXR3b3JrU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgT3B0aW9uR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90Q29tbWFuZH1cbiAgICovXG4gIHJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3QoXG4gICAgYXJnczogUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEJhY2t1cFBvbGljeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3RhbmNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQlNuYXBzaG90U3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVzdG9yZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBOZXR3b3JrVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRJb3BzTm90QXZhaWxhYmxlSW5BWkZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gICAgfCBUZW5hbnREYXRhYmFzZVF1b3RhRXhjZWVkZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVEQkluc3RhbmNlRnJvbVMzQ29tbWFuZH1cbiAgICovXG4gIHJlc3RvcmVEQkluc3RhbmNlRnJvbVMzKFxuICAgIGFyZ3M6IFJlc3RvcmVEQkluc3RhbmNlRnJvbVMzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEJhY2t1cFBvbGljeU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgQ2VydGlmaWNhdGVOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VBbHJlYWR5RXhpc3RzRmF1bHRFcnJvclxuICAgIHwgREJQYXJhbWV0ZXJHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTZWN1cml0eUdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwRG9lc05vdENvdmVyRW5vdWdoQVpzRXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3RhbmNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTM0J1Y2tldEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBOZXR3b3JrVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRJb3BzTm90QXZhaWxhYmxlSW5BWkZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZUNvbW1hbmR9XG4gICAqL1xuICByZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWUoXG4gICAgYXJnczogUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBCYWNrdXBQb2xpY3lOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IENlcnRpZmljYXRlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkluc3RhbmNlQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCUGFyYW1ldGVyR3JvdXBOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cERvZXNOb3RDb3ZlckVub3VnaEFac0Vycm9yXG4gICAgfCBEQlN1Ym5ldEdyb3VwTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEb21haW5Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEluc3RhbmNlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IEluc3VmZmljaWVudERCSW5zdGFuY2VDYXBhY2l0eUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkUmVzdG9yZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBOZXR3b3JrVHlwZU5vdFN1cHBvcnRlZEVycm9yXG4gICAgfCBPcHRpb25Hcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgUG9pbnRJblRpbWVSZXN0b3JlTm90RW5hYmxlZEZhdWx0RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkSW9wc05vdEF2YWlsYWJsZUluQVpGYXVsdEVycm9yXG4gICAgfCBTdG9yYWdlUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IFN0b3JhZ2VUeXBlTm90U3VwcG9ydGVkRmF1bHRFcnJvclxuICAgIHwgVGVuYW50RGF0YWJhc2VRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzQ29tbWFuZH1cbiAgICovXG4gIHJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3MoXG4gICAgYXJnczogUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25Ob3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU2VjdXJpdHlHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCU2VjdXJpdHlHcm91cFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydEFjdGl2aXR5U3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0QWN0aXZpdHlTdHJlYW0oXG4gICAgYXJnczogU3RhcnRBY3Rpdml0eVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0QWN0aXZpdHlTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydERCQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBzdGFydERCQ2x1c3RlcihcbiAgICBhcmdzOiBTdGFydERCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0REJDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0REJJbnN0YW5jZUNvbW1hbmR9XG4gICAqL1xuICBzdGFydERCSW5zdGFuY2UoXG4gICAgYXJnczogU3RhcnREQkluc3RhbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREQkluc3RhbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCU3VibmV0R3JvdXBEb2VzTm90Q292ZXJFbm91Z2hBWnNFcnJvclxuICAgIHwgREJTdWJuZXRHcm91cE5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW5zdWZmaWNpZW50REJJbnN0YW5jZUNhcGFjaXR5RmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTdWJuZXRFcnJvclxuICAgIHwgSW52YWxpZFZQQ05ldHdvcmtTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0REJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydERCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzUmVwbGljYXRpb24oXG4gICAgYXJnczogU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkluc3RhbmNlQXV0b21hdGVkQmFja3VwUXVvdGFFeGNlZWRlZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBLTVNLZXlOb3RBY2Nlc3NpYmxlRmF1bHRFcnJvclxuICAgIHwgU3RvcmFnZVR5cGVOb3RTdXBwb3J0ZWRGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0RXhwb3J0VGFza0NvbW1hbmR9XG4gICAqL1xuICBzdGFydEV4cG9ydFRhc2soXG4gICAgYXJnczogU3RhcnRFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCQ2x1c3RlclNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBEQlNuYXBzaG90Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBFeHBvcnRUYXNrQWxyZWFkeUV4aXN0c0ZhdWx0RXJyb3JcbiAgICB8IElhbVJvbGVNaXNzaW5nUGVybWlzc2lvbnNGYXVsdEVycm9yXG4gICAgfCBJYW1Sb2xlTm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkRXhwb3J0T25seUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRFeHBvcnRTb3VyY2VTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRTM0J1Y2tldEZhdWx0RXJyb3JcbiAgICB8IEtNU0tleU5vdEFjY2Vzc2libGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BBY3Rpdml0eVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBzdG9wQWN0aXZpdHlTdHJlYW0oXG4gICAgYXJnczogU3RvcEFjdGl2aXR5U3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcEFjdGl2aXR5U3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkluc3RhbmNlU3RhdGVGYXVsdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wREJDbHVzdGVyQ29tbWFuZH1cbiAgICovXG4gIHN0b3BEQkNsdXN0ZXIoXG4gICAgYXJnczogU3RvcERCQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BEQkNsdXN0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERCQ2x1c3Rlck5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCQ2x1c3RlclN0YXRlRmF1bHRFcnJvclxuICAgIHwgSW52YWxpZERCSW5zdGFuY2VTdGF0ZUZhdWx0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcERCSW5zdGFuY2VDb21tYW5kfVxuICAgKi9cbiAgc3RvcERCSW5zdGFuY2UoXG4gICAgYXJnczogU3RvcERCSW5zdGFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wREJJbnN0YW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgREJJbnN0YW5jZU5vdEZvdW5kRmF1bHRFcnJvclxuICAgIHwgREJTbmFwc2hvdEFscmVhZHlFeGlzdHNGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICAgIHwgU25hcHNob3RRdW90YUV4Y2VlZGVkRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdG9wREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbihcbiAgICBhcmdzOiBTdG9wREJJbnN0YW5jZUF1dG9tYXRlZEJhY2t1cHNSZXBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc1JlcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTd2l0Y2hvdmVyQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmR9XG4gICAqL1xuICBzd2l0Y2hvdmVyQmx1ZUdyZWVuRGVwbG95bWVudChcbiAgICBhcmdzOiBTd2l0Y2hvdmVyQmx1ZUdyZWVuRGVwbG95bWVudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN3aXRjaG92ZXJCbHVlR3JlZW5EZXBsb3ltZW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCbHVlR3JlZW5EZXBsb3ltZW50Tm90Rm91bmRGYXVsdEVycm9yXG4gICAgfCBJbnZhbGlkQmx1ZUdyZWVuRGVwbG95bWVudFN0YXRlRmF1bHRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTd2l0Y2hvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmR9XG4gICAqL1xuICBzd2l0Y2hvdmVyR2xvYmFsQ2x1c3RlcihcbiAgICBhcmdzOiBTd2l0Y2hvdmVyR2xvYmFsQ2x1c3RlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN3aXRjaG92ZXJHbG9iYWxDbHVzdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEQkNsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEdsb2JhbENsdXN0ZXJOb3RGb3VuZEZhdWx0RXJyb3JcbiAgICB8IEludmFsaWREQkNsdXN0ZXJTdGF0ZUZhdWx0RXJyb3JcbiAgICB8IEludmFsaWRHbG9iYWxDbHVzdGVyU3RhdGVGYXVsdEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN3aXRjaG92ZXJSZWFkUmVwbGljYUNvbW1hbmR9XG4gICAqL1xuICBzd2l0Y2hvdmVyUmVhZFJlcGxpY2EoXG4gICAgYXJnczogU3dpdGNob3ZlclJlYWRSZXBsaWNhQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3dpdGNob3ZlclJlYWRSZXBsaWNhQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERCSW5zdGFuY2VOb3RGb3VuZEZhdWx0RXJyb3IgfCBJbnZhbGlkREJJbnN0YW5jZVN0YXRlRmF1bHRFcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZVJEU1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhSRFNDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIFJEU1NlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248UkRTU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgUkRTU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIFJEU1NlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFwiQGVmZmVjdC1hd3MvY2xpZW50LXJkcy9SRFNTZXJ2aWNlXCIpPFxuICBSRFNTZXJ2aWNlLFxuICBSRFNTZXJ2aWNlJFxuPigpIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRMYXllciA9IExheWVyLmVmZmVjdCh0aGlzLCBtYWtlUkRTU2VydmljZSkucGlwZShcbiAgICBMYXllci5wcm92aWRlKFJEU0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdFJEU0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogUkRTQ2xpZW50Q29uZmlnKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlUkRTU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoUkRTQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgUkRTQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gICAgICAgICAgbWFrZURlZmF1bHRSRFNDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoZGVmYXVsdENvbmZpZzogUkRTQ2xpZW50Q29uZmlnKSA9PiBSRFNDbGllbnQsXG4gICkgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZVJEU1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgUkRTQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdFJEU0NsaWVudEluc3RhbmNlQ29uZmlnLCBldmFsdWF0ZSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKiBAYWxpYXMgUkRTU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgUkRTID0gUkRTU2VydmljZTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBSRFMuYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VSRFNTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoUkRTU2VydmljZSwgbWFrZVJEU1NlcnZpY2UpO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIFJEUy5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBSRFNTZXJ2aWNlTGF5ZXIgPSBCYXNlUkRTU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoUkRTQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIFJEUy5kZWZhdWx0TGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFJEU1NlcnZpY2VMYXllciA9IFJEU1NlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19
package/lib/esm/index.js DELETED
@@ -1,5 +0,0 @@
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 DELETED
@@ -1,4 +0,0 @@
1
- export * from "./Errors";
2
- export * from "./RDSClientInstance";
3
- export * from "./RDSClientInstanceConfig";
4
- export * from "./RDSService";
package/lib/index.js DELETED
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __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=