@effect-aws/client-cloudwatch-logs 1.0.1 → 1.2.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.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultCloudWatchLogsServiceLayer = exports.CloudWatchLogsServiceLayer = exports.BaseCloudWatchLogsServiceLayer = exports.makeCloudWatchLogsService = exports.CloudWatchLogsService = void 0;
4
+ exports.DefaultCloudWatchLogsServiceLayer = exports.CloudWatchLogsServiceLayer = exports.BaseCloudWatchLogsServiceLayer = exports.CloudWatchLogs = exports.CloudWatchLogsService = exports.makeCloudWatchLogsService = void 0;
4
5
  /**
5
6
  * @since 1.0.0
6
7
  */
@@ -24,6 +25,8 @@ const commands = {
24
25
  DeleteDeliveryDestinationPolicyCommand: client_cloudwatch_logs_1.DeleteDeliveryDestinationPolicyCommand,
25
26
  DeleteDeliverySourceCommand: client_cloudwatch_logs_1.DeleteDeliverySourceCommand,
26
27
  DeleteDestinationCommand: client_cloudwatch_logs_1.DeleteDestinationCommand,
28
+ DeleteIndexPolicyCommand: client_cloudwatch_logs_1.DeleteIndexPolicyCommand,
29
+ DeleteIntegrationCommand: client_cloudwatch_logs_1.DeleteIntegrationCommand,
27
30
  DeleteLogAnomalyDetectorCommand: client_cloudwatch_logs_1.DeleteLogAnomalyDetectorCommand,
28
31
  DeleteLogGroupCommand: client_cloudwatch_logs_1.DeleteLogGroupCommand,
29
32
  DeleteLogStreamCommand: client_cloudwatch_logs_1.DeleteLogStreamCommand,
@@ -32,6 +35,7 @@ const commands = {
32
35
  DeleteResourcePolicyCommand: client_cloudwatch_logs_1.DeleteResourcePolicyCommand,
33
36
  DeleteRetentionPolicyCommand: client_cloudwatch_logs_1.DeleteRetentionPolicyCommand,
34
37
  DeleteSubscriptionFilterCommand: client_cloudwatch_logs_1.DeleteSubscriptionFilterCommand,
38
+ DeleteTransformerCommand: client_cloudwatch_logs_1.DeleteTransformerCommand,
35
39
  DescribeAccountPoliciesCommand: client_cloudwatch_logs_1.DescribeAccountPoliciesCommand,
36
40
  DescribeConfigurationTemplatesCommand: client_cloudwatch_logs_1.DescribeConfigurationTemplatesCommand,
37
41
  DescribeDeliveriesCommand: client_cloudwatch_logs_1.DescribeDeliveriesCommand,
@@ -39,6 +43,8 @@ const commands = {
39
43
  DescribeDeliverySourcesCommand: client_cloudwatch_logs_1.DescribeDeliverySourcesCommand,
40
44
  DescribeDestinationsCommand: client_cloudwatch_logs_1.DescribeDestinationsCommand,
41
45
  DescribeExportTasksCommand: client_cloudwatch_logs_1.DescribeExportTasksCommand,
46
+ DescribeFieldIndexesCommand: client_cloudwatch_logs_1.DescribeFieldIndexesCommand,
47
+ DescribeIndexPoliciesCommand: client_cloudwatch_logs_1.DescribeIndexPoliciesCommand,
42
48
  DescribeLogGroupsCommand: client_cloudwatch_logs_1.DescribeLogGroupsCommand,
43
49
  DescribeLogStreamsCommand: client_cloudwatch_logs_1.DescribeLogStreamsCommand,
44
50
  DescribeMetricFiltersCommand: client_cloudwatch_logs_1.DescribeMetricFiltersCommand,
@@ -53,13 +59,17 @@ const commands = {
53
59
  GetDeliveryDestinationCommand: client_cloudwatch_logs_1.GetDeliveryDestinationCommand,
54
60
  GetDeliveryDestinationPolicyCommand: client_cloudwatch_logs_1.GetDeliveryDestinationPolicyCommand,
55
61
  GetDeliverySourceCommand: client_cloudwatch_logs_1.GetDeliverySourceCommand,
62
+ GetIntegrationCommand: client_cloudwatch_logs_1.GetIntegrationCommand,
56
63
  GetLogAnomalyDetectorCommand: client_cloudwatch_logs_1.GetLogAnomalyDetectorCommand,
57
64
  GetLogEventsCommand: client_cloudwatch_logs_1.GetLogEventsCommand,
58
65
  GetLogGroupFieldsCommand: client_cloudwatch_logs_1.GetLogGroupFieldsCommand,
59
66
  GetLogRecordCommand: client_cloudwatch_logs_1.GetLogRecordCommand,
60
67
  GetQueryResultsCommand: client_cloudwatch_logs_1.GetQueryResultsCommand,
68
+ GetTransformerCommand: client_cloudwatch_logs_1.GetTransformerCommand,
61
69
  ListAnomaliesCommand: client_cloudwatch_logs_1.ListAnomaliesCommand,
70
+ ListIntegrationsCommand: client_cloudwatch_logs_1.ListIntegrationsCommand,
62
71
  ListLogAnomalyDetectorsCommand: client_cloudwatch_logs_1.ListLogAnomalyDetectorsCommand,
72
+ ListLogGroupsForQueryCommand: client_cloudwatch_logs_1.ListLogGroupsForQueryCommand,
63
73
  ListTagsForResourceCommand: client_cloudwatch_logs_1.ListTagsForResourceCommand,
64
74
  ListTagsLogGroupCommand: client_cloudwatch_logs_1.ListTagsLogGroupCommand,
65
75
  PutAccountPolicyCommand: client_cloudwatch_logs_1.PutAccountPolicyCommand,
@@ -69,31 +79,28 @@ const commands = {
69
79
  PutDeliverySourceCommand: client_cloudwatch_logs_1.PutDeliverySourceCommand,
70
80
  PutDestinationCommand: client_cloudwatch_logs_1.PutDestinationCommand,
71
81
  PutDestinationPolicyCommand: client_cloudwatch_logs_1.PutDestinationPolicyCommand,
82
+ PutIndexPolicyCommand: client_cloudwatch_logs_1.PutIndexPolicyCommand,
83
+ PutIntegrationCommand: client_cloudwatch_logs_1.PutIntegrationCommand,
72
84
  PutLogEventsCommand: client_cloudwatch_logs_1.PutLogEventsCommand,
73
85
  PutMetricFilterCommand: client_cloudwatch_logs_1.PutMetricFilterCommand,
74
86
  PutQueryDefinitionCommand: client_cloudwatch_logs_1.PutQueryDefinitionCommand,
75
87
  PutResourcePolicyCommand: client_cloudwatch_logs_1.PutResourcePolicyCommand,
76
88
  PutRetentionPolicyCommand: client_cloudwatch_logs_1.PutRetentionPolicyCommand,
77
89
  PutSubscriptionFilterCommand: client_cloudwatch_logs_1.PutSubscriptionFilterCommand,
90
+ PutTransformerCommand: client_cloudwatch_logs_1.PutTransformerCommand,
78
91
  StartLiveTailCommand: client_cloudwatch_logs_1.StartLiveTailCommand,
79
92
  StartQueryCommand: client_cloudwatch_logs_1.StartQueryCommand,
80
93
  StopQueryCommand: client_cloudwatch_logs_1.StopQueryCommand,
81
94
  TagLogGroupCommand: client_cloudwatch_logs_1.TagLogGroupCommand,
82
95
  TagResourceCommand: client_cloudwatch_logs_1.TagResourceCommand,
83
96
  TestMetricFilterCommand: client_cloudwatch_logs_1.TestMetricFilterCommand,
97
+ TestTransformerCommand: client_cloudwatch_logs_1.TestTransformerCommand,
84
98
  UntagLogGroupCommand: client_cloudwatch_logs_1.UntagLogGroupCommand,
85
99
  UntagResourceCommand: client_cloudwatch_logs_1.UntagResourceCommand,
86
100
  UpdateAnomalyCommand: client_cloudwatch_logs_1.UpdateAnomalyCommand,
87
101
  UpdateDeliveryConfigurationCommand: client_cloudwatch_logs_1.UpdateDeliveryConfigurationCommand,
88
102
  UpdateLogAnomalyDetectorCommand: client_cloudwatch_logs_1.UpdateLogAnomalyDetectorCommand,
89
103
  };
90
- /**
91
- * @since 1.0.0
92
- * @category models
93
- */
94
- class CloudWatchLogsService extends effect_1.Effect.Tag("@effect-aws/client-cloudwatch-logs/CloudWatchLogsService")() {
95
- }
96
- exports.CloudWatchLogsService = CloudWatchLogsService;
97
104
  /**
98
105
  * @since 1.0.0
99
106
  * @category constructors
@@ -132,19 +139,39 @@ exports.makeCloudWatchLogsService = effect_1.Effect.gen(function* (_) {
132
139
  return { ...acc, [methodName]: methodImpl };
133
140
  }, {});
134
141
  });
142
+ /**
143
+ * @since 1.0.0
144
+ * @category models
145
+ */
146
+ class CloudWatchLogsService extends effect_1.Effect.Tag("@effect-aws/client-cloudwatch-logs/CloudWatchLogsService")() {
147
+ }
148
+ exports.CloudWatchLogsService = CloudWatchLogsService;
149
+ _a = CloudWatchLogsService;
150
+ CloudWatchLogsService.defaultLayer = effect_1.Layer.effect(_a, exports.makeCloudWatchLogsService).pipe(effect_1.Layer.provide(CloudWatchLogsClientInstance_1.CloudWatchLogsClientInstanceLayer), effect_1.Layer.provide(CloudWatchLogsClientInstanceConfig_1.DefaultCloudWatchLogsClientConfigLayer));
151
+ CloudWatchLogsService.layer = (config) => effect_1.Layer.effect(_a, exports.makeCloudWatchLogsService).pipe(effect_1.Layer.provide(CloudWatchLogsClientInstance_1.CloudWatchLogsClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(CloudWatchLogsClientInstanceConfig_1.CloudWatchLogsClientInstanceConfig, CloudWatchLogsClientInstanceConfig_1.makeDefaultCloudWatchLogsClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
152
+ CloudWatchLogsService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeCloudWatchLogsService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(CloudWatchLogsClientInstance_1.CloudWatchLogsClientInstance, effect_1.Effect.map(CloudWatchLogsClientInstanceConfig_1.makeDefaultCloudWatchLogsClientInstanceConfig, evaluate))));
153
+ /**
154
+ * @since 1.0.0
155
+ * @category models
156
+ * @alias CloudWatchLogsService
157
+ */
158
+ exports.CloudWatchLogs = CloudWatchLogsService;
135
159
  /**
136
160
  * @since 1.0.0
137
161
  * @category layers
162
+ * @deprecated use CloudWatchLogs.baseLayer instead
138
163
  */
139
164
  exports.BaseCloudWatchLogsServiceLayer = effect_1.Layer.effect(CloudWatchLogsService, exports.makeCloudWatchLogsService);
140
165
  /**
141
166
  * @since 1.0.0
142
167
  * @category layers
168
+ * @deprecated use CloudWatchLogs.layer instead
143
169
  */
144
170
  exports.CloudWatchLogsServiceLayer = exports.BaseCloudWatchLogsServiceLayer.pipe(effect_1.Layer.provide(CloudWatchLogsClientInstance_1.CloudWatchLogsClientInstanceLayer));
145
171
  /**
146
172
  * @since 1.0.0
147
173
  * @category layers
174
+ * @deprecated use CloudWatchLogs.defaultLayer instead
148
175
  */
149
- exports.DefaultCloudWatchLogsServiceLayer = exports.CloudWatchLogsServiceLayer.pipe(effect_1.Layer.provide(CloudWatchLogsClientInstanceConfig_1.DefaultCloudWatchLogsClientConfigLayer));
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Nsb3VkV2F0Y2hMb2dzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILDRFQXNPeUM7QUFDekMsbUNBQXFEO0FBQ3JELGlGQUd3QztBQUN4Qyw2RkFBOEY7QUFDOUYscUNBcUJrQjtBQWFsQixNQUFNLFFBQVEsR0FBRztJQUNmLHNCQUFzQixFQUF0QiwrQ0FBc0I7SUFDdEIsdUJBQXVCLEVBQXZCLGdEQUF1QjtJQUN2QixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLHVCQUF1QixFQUF2QixnREFBdUI7SUFDdkIsK0JBQStCLEVBQS9CLHdEQUErQjtJQUMvQixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLHNCQUFzQixFQUF0QiwrQ0FBc0I7SUFDdEIsMEJBQTBCLEVBQTFCLG1EQUEwQjtJQUMxQixpQ0FBaUMsRUFBakMsMERBQWlDO0lBQ2pDLHFCQUFxQixFQUFyQiw4Q0FBcUI7SUFDckIsZ0NBQWdDLEVBQWhDLHlEQUFnQztJQUNoQyxzQ0FBc0MsRUFBdEMsK0RBQXNDO0lBQ3RDLDJCQUEyQixFQUEzQixvREFBMkI7SUFDM0Isd0JBQXdCLEVBQXhCLGlEQUF3QjtJQUN4QiwrQkFBK0IsRUFBL0Isd0RBQStCO0lBQy9CLHFCQUFxQixFQUFyQiw4Q0FBcUI7SUFDckIsc0JBQXNCLEVBQXRCLCtDQUFzQjtJQUN0Qix5QkFBeUIsRUFBekIsa0RBQXlCO0lBQ3pCLDRCQUE0QixFQUE1QixxREFBNEI7SUFDNUIsMkJBQTJCLEVBQTNCLG9EQUEyQjtJQUMzQiw0QkFBNEIsRUFBNUIscURBQTRCO0lBQzVCLCtCQUErQixFQUEvQix3REFBK0I7SUFDL0IsOEJBQThCLEVBQTlCLHVEQUE4QjtJQUM5QixxQ0FBcUMsRUFBckMsOERBQXFDO0lBQ3JDLHlCQUF5QixFQUF6QixrREFBeUI7SUFDekIsbUNBQW1DLEVBQW5D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QUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUEyQixDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ1UsUUFBQSw4QkFBOEIsR0FBRyxjQUFLLENBQUMsTUFBTSxDQUN4RCxxQkFBcUIsRUFDckIsaUNBQXlCLENBQzFCLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDBCQUEwQixHQUFHLHNDQUE4QixDQUFDLElBQUksQ0FDM0UsY0FBSyxDQUFDLE9BQU8sQ0FBQyxnRUFBaUMsQ0FBQyxDQUNqRCxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxpQ0FBaUMsR0FDNUMsa0NBQTBCLENBQUMsSUFBSSxDQUM3QixjQUFLLENBQUMsT0FBTyxDQUFDLDJFQUFzQyxDQUFDLENBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24sXG4gIEFzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIHR5cGUgQXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kLFxuICB0eXBlIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUXVlcmllc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUXVlcmllc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgR2V0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRPdXRwdXQsXG4gIEdldExvZ1JlY29yZENvbW1hbmQsXG4gIHR5cGUgR2V0TG9nUmVjb3JkQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ1JlY29yZENvbW1hbmRPdXRwdXQsXG4gIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQsXG4gIHR5cGUgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBbm9tYWxpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBbm9tYWxpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFub21hbGllc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFB1dEFjY291bnRQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0QWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZCxcbiAgdHlwZSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1dERlc3RpbmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dExvZ0V2ZW50c0NvbW1hbmQsXG4gIHR5cGUgUHV0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgUHV0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIHR5cGUgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0TGl2ZVRhaWxDb21tYW5kLFxuICB0eXBlIFN0YXJ0TGl2ZVRhaWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRMaXZlVGFpbENvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0UXVlcnlDb21tYW5kLFxuICB0eXBlIFN0YXJ0UXVlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFN0b3BRdWVyeUNvbW1hbmQsXG4gIHR5cGUgU3RvcFF1ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBUYWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICB0eXBlIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIFVudGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFub21hbHlDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFub21hbHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQW5vbWFseUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlLFxuICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL0Nsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERhdGFBbHJlYWR5QWNjZXB0ZWRFcnJvcixcbiAgSW52YWxpZE9wZXJhdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gIEludmFsaWRTZXF1ZW5jZVRva2VuRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgTWFsZm9ybWVkUXVlcnlFcnJvcixcbiAgT3BlcmF0aW9uQWJvcnRlZEVycm9yLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yLFxuICBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvcixcbiAgVGhyb3R0bGluZ0Vycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBVbnJlY29nbml6ZWRDbGllbnRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZCxcbiAgQ3JlYXRlRGVsaXZlcnlDb21tYW5kLFxuICBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZCxcbiAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgQ3JlYXRlTG9nR3JvdXBDb21tYW5kLFxuICBDcmVhdGVMb2dTdHJlYW1Db21tYW5kLFxuICBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBEZWxldGVEZWxpdmVyeUNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmQsXG4gIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZCxcbiAgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZCxcbiAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kLFxuICBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kLFxuICBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmQsXG4gIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmQsXG4gIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZCxcbiAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCxcbiAgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZCxcbiAgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCxcbiAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZCxcbiAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBHZXREZWxpdmVyeUNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICBHZXRMb2dFdmVudHNDb21tYW5kLFxuICBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmQsXG4gIEdldExvZ1JlY29yZENvbW1hbmQsXG4gIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQsXG4gIExpc3RBbm9tYWxpZXNDb21tYW5kLFxuICBMaXN0TG9nQW5vbWFseURldGVjdG9yc0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZCxcbiAgUHV0QWNjb3VudFBvbGljeUNvbW1hbmQsXG4gIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIFB1dERlc3RpbmF0aW9uQ29tbWFuZCxcbiAgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICBQdXRMb2dFdmVudHNDb21tYW5kLFxuICBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kLFxuICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmQsXG4gIFN0YXJ0TGl2ZVRhaWxDb21tYW5kLFxuICBTdGFydFF1ZXJ5Q29tbWFuZCxcbiAgU3RvcFF1ZXJ5Q29tbWFuZCxcbiAgVGFnTG9nR3JvdXBDb21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kLFxuICBVbnRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZUFub21hbHlDb21tYW5kLFxuICBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kLFxuICBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxufTtcblxuaW50ZXJmYWNlIENsb3VkV2F0Y2hMb2dzU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBc3NvY2lhdGVLbXNLZXlDb21tYW5kfVxuICAgKi9cbiAgYXNzb2NpYXRlS21zS2V5KFxuICAgIGFyZ3M6IEFzc29jaWF0ZUttc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxFeHBvcnRUYXNrKFxuICAgIGFyZ3M6IENhbmNlbEV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEZWxpdmVyeUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEZWxpdmVyeShcbiAgICBhcmdzOiBDcmVhdGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVFeHBvcnRUYXNrKFxuICAgIGFyZ3M6IENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTG9nQW5vbWFseURldGVjdG9yKFxuICAgIGFyZ3M6IENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVMb2dHcm91cChcbiAgICBhcmdzOiBDcmVhdGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUxvZ1N0cmVhbShcbiAgICBhcmdzOiBDcmVhdGVMb2dTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBY2NvdW50UG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeShcbiAgICBhcmdzOiBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZWxpdmVyeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeShcbiAgICBhcmdzOiBEZWxldGVEZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb24oXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeShcbiAgICBhcmdzOiBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlbGl2ZXJ5U291cmNlKFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMb2dHcm91cChcbiAgICBhcmdzOiBEZWxldGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTG9nU3RyZWFtKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU1ldHJpY0ZpbHRlcihcbiAgICBhcmdzOiBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVRdWVyeURlZmluaXRpb24oXG4gICAgYXJnczogRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXRlbnRpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgIGFyZ3M6IERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVBY2NvdW50UG9saWNpZXMoXG4gICAgYXJnczogRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlcyhcbiAgICBhcmdzOiBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlbGl2ZXJpZXMoXG4gICAgYXJnczogRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEZWxpdmVyeVNvdXJjZXMoXG4gICAgYXJnczogRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVzdGluYXRpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUV4cG9ydFRhc2tzKFxuICAgIGFyZ3M6IERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlTG9nR3JvdXBzKFxuICAgIGFyZ3M6IERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlTG9nU3RyZWFtcyhcbiAgICBhcmdzOiBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVNZXRyaWNGaWx0ZXJzKFxuICAgIGFyZ3M6IERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTWV0cmljRmlsdGVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUXVlcmllc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVF1ZXJpZXMoXG4gICAgYXJnczogRGVzY3JpYmVRdWVyaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUXVlcnlEZWZpbml0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzb3VyY2VQb2xpY2llcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVycyhcbiAgICBhcmdzOiBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kfVxuICAgKi9cbiAgZGlzYXNzb2NpYXRlS21zS2V5KFxuICAgIGFyZ3M6IERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2Fzc29jaWF0ZUttc0tleUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIGZpbHRlckxvZ0V2ZW50cyhcbiAgICBhcmdzOiBGaWx0ZXJMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXREYXRhUHJvdGVjdGlvblBvbGljeShcbiAgICBhcmdzOiBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREZWxpdmVyeUNvbW1hbmR9XG4gICAqL1xuICBnZXREZWxpdmVyeShcbiAgICBhcmdzOiBHZXREZWxpdmVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5RGVzdGluYXRpb24oXG4gICAgYXJnczogR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeShcbiAgICBhcmdzOiBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBnZXREZWxpdmVyeVNvdXJjZShcbiAgICBhcmdzOiBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nQW5vbWFseURldGVjdG9yKFxuICAgIGFyZ3M6IEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TG9nRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIGdldExvZ0V2ZW50cyhcbiAgICBhcmdzOiBHZXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dHcm91cEZpZWxkcyhcbiAgICBhcmdzOiBHZXRMb2dHcm91cEZpZWxkc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dSZWNvcmRDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nUmVjb3JkKFxuICAgIGFyZ3M6IEdldExvZ1JlY29yZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ1JlY29yZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZH1cbiAgICovXG4gIGdldFF1ZXJ5UmVzdWx0cyhcbiAgICBhcmdzOiBHZXRRdWVyeVJlc3VsdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRRdWVyeVJlc3VsdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QW5vbWFsaWVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBbm9tYWxpZXMoXG4gICAgYXJnczogTGlzdEFub21hbGllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBbm9tYWxpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzKFxuICAgIGFyZ3M6IExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NMb2dHcm91cChcbiAgICBhcmdzOiBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRBY2NvdW50UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dEFjY291bnRQb2xpY3koXG4gICAgYXJnczogUHV0QWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEFjY291bnRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dERhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXREZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBwdXREZWxpdmVyeVNvdXJjZShcbiAgICBhcmdzOiBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXREZXN0aW5hdGlvbihcbiAgICBhcmdzOiBQdXREZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dExvZ0V2ZW50c0NvbW1hbmR9XG4gICAqL1xuICBwdXRMb2dFdmVudHMoXG4gICAgYXJnczogUHV0TG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0TG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEYXRhQWxyZWFkeUFjY2VwdGVkRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFNlcXVlbmNlVG9rZW5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVW5yZWNvZ25pemVkQ2xpZW50RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0TWV0cmljRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIHB1dE1ldHJpY0ZpbHRlcihcbiAgICBhcmdzOiBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZH1cbiAgICovXG4gIHB1dFF1ZXJ5RGVmaW5pdGlvbihcbiAgICBhcmdzOiBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dFJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IFB1dFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0UmV0ZW50aW9uUG9saWN5KFxuICAgIGFyZ3M6IFB1dFJldGVudGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJldGVudGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIHB1dFN1YnNjcmlwdGlvbkZpbHRlcihcbiAgICBhcmdzOiBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRMaXZlVGFpbENvbW1hbmR9XG4gICAqL1xuICBzdGFydExpdmVUYWlsKFxuICAgIGFyZ3M6IFN0YXJ0TGl2ZVRhaWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydExpdmVUYWlsQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0UXVlcnlDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRRdWVyeShcbiAgICBhcmdzOiBTdGFydFF1ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRRdWVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFF1ZXJ5RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcFF1ZXJ5Q29tbWFuZH1cbiAgICovXG4gIHN0b3BRdWVyeShcbiAgICBhcmdzOiBTdG9wUXVlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wUXVlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICB0YWdMb2dHcm91cChcbiAgICBhcmdzOiBUYWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmR9XG4gICAqL1xuICB0ZXN0TWV0cmljRmlsdGVyKFxuICAgIGFyZ3M6IFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgdW50YWdMb2dHcm91cChcbiAgICBhcmdzOiBVbnRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQW5vbWFseUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBbm9tYWx5KFxuICAgIGFyZ3M6IFVwZGF0ZUFub21hbHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBbm9tYWx5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtY2xvdWR3YXRjaC1sb2dzL0Nsb3VkV2F0Y2hMb2dzU2VydmljZVwiLFxuKTxDbG91ZFdhdGNoTG9nc1NlcnZpY2UsIENsb3VkV2F0Y2hMb2dzU2VydmljZSQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZUNsb3VkV2F0Y2hMb2dzU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBDbG91ZFdhdGNoTG9nc1NlcnZpY2UsXG4gIG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIgPSBCYXNlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllciA9XG4gIENsb3VkV2F0Y2hMb2dzU2VydmljZUxheWVyLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRDb25maWdMYXllciksXG4gICk7XG4iXX0=
176
+ exports.DefaultCloudWatchLogsServiceLayer = CloudWatchLogsService.defaultLayer;
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Nsb3VkV2F0Y2hMb2dzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0dBRUc7QUFDSCw0RUErUXlDO0FBQ3pDLG1DQUFxRDtBQUNyRCxpRkFHd0M7QUFDeEMsNkZBSThDO0FBQzlDLHFDQXFCa0I7QUFhbEIsTUFBTSxRQUFRLEdBQUc7SUFDZixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLHVCQUF1QixFQUF2QixnREFBdUI7SUFDdkIscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQix1QkFBdUIsRUFBdkIsZ0RBQXVCO0lBQ3ZCLCtCQUErQixFQUEvQix3REFBK0I7SUFDL0IscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLDBCQUEwQixFQUExQixtREFBMEI7SUFDMUIsaUNBQWlDLEVBQWpDLDBEQUFpQztJQUNqQyxxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLGdDQUFnQyxFQUFoQyx5REFBZ0M7SUFDaEMsc0NBQXNDLEVBQXRDLCtEQUFzQztJQUN0QywyQkFBMkIsRUFBM0Isb0RBQTJCO0lBQzNCLHdCQUF3QixFQUF4QixpREFBd0I7SUFDeEIsd0JBQXdCLEVBQXhCLGlEQUF3QjtJQUN4Qix3QkFBd0IsRUFBeEIsaURBQXdCO0lBQ3hCLCtCQUErQixFQUEvQix3REFBK0I7SUFDL0IscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLHlCQUF5QixFQUF6QixrREFBeUI7SUFDekIsNEJBQTRCLEVBQTVCLHFEQUE0QjtJQUM1QiwyQkFBMkIsRUFBM0Isb0RBQTJCO0lBQzNCLDRCQUE0QixFQUE1QixxREFBNEI7SUFDNUIsK0JBQStCLEVBQS9CLHdEQUErQjtJQUMvQix3QkFBd0IsRUFBeEIsaURBQXdCO0lBQ3hCLDhCQUE4QixFQUE5Qix1REFBOEI7SUFDOUIscUNBQXFDLEVBQXJDLDhEQUFxQztJQUNyQyx5QkFBeUIsRUFBekIsa0RBQXlCO0lBQ3pCLG1DQUFtQyxFQUFuQyw0REFBbUM7SUFDbkMsOEJBQThCLEVBQTlCLHVEQUE4QjtJQUM5QiwyQkFBMkIsRUFBM0Isb0RBQTJCO0lBQzNCLDBCQUEwQixFQUExQixtREFBMEI7SUFDMUIsMkJBQTJCLEVBQTNCLG9EQUEyQjtJQUMzQiw0QkFBNEIsRUFBNUIscURBQTRCO0lBQzVCLHdCQUF3QixFQUF4QixpREFBd0I7SUFDeEIseUJBQXlCLEVBQXpCLGtEQUF5QjtJQUN6Qiw0QkFBNEIsRUFBNUIscURBQTRCO0lBQzVCLHNCQUFzQixFQUF0QiwrQ0FBc0I7SUFDdEIsK0JBQStCLEVBQS9CLHdEQUErQjtJQUMvQiwrQkFBK0IsRUFBL0Isd0RBQStCO0lBQy9CLGtDQUFrQyxFQUFsQywyREFBa0M7SUFDbEMseUJBQXlCLEVBQXpCLGtEQUF5QjtJQUN6QixzQkFBc0IsRUFBdEIsK0NBQXNCO0lBQ3RCLDhCQUE4QixFQUE5Qix1REFBOEI7SUFDOUIsa0JBQWtCLEVBQWxCLDJDQUFrQjtJQUNsQiw2QkFBNkIsRUFBN0Isc0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyw0REFBbUM7SUFDbkMsd0JBQXdCLEVBQXhCLGlEQUF3QjtJQUN4QixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLDRCQUE0QixFQUE1QixxREFBNEI7SUFDNUIsbUJBQW1CLEVBQW5CLDRDQUFtQjtJQUNuQix3QkFBd0IsRUFBeEIsaURBQXdCO0lBQ3hCLG1CQUFtQixFQUFuQiw0Q0FBbUI7SUFDbkIsc0JBQXNCLEVBQXRCLCtDQUFzQjtJQUN0QixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLG9CQUFvQixFQUFwQiw2Q0FBb0I7SUFDcEIsdUJBQXVCLEVBQXZCLGdEQUF1QjtJQUN2Qiw4QkFBOEIsRUFBOUIsdURBQThCO0lBQzlCLDRCQUE0QixFQUE1QixxREFBNEI7SUFDNUIsMEJBQTBCLEVBQTFCLG1EQUEwQjtJQUMxQix1QkFBdUIsRUFBdkIsZ0RBQXVCO0lBQ3ZCLHVCQUF1QixFQUF2QixnREFBdUI7SUFDdkIsOEJBQThCLEVBQTlCLHVEQUE4QjtJQUM5Qiw2QkFBNkIsRUFBN0Isc0RBQTZCO0lBQzdCLG1DQUFtQyxFQUFuQyw0REFBbUM7SUFDbkMsd0JBQXdCLEVBQXhCLGlEQUF3QjtJQUN4QixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLDJCQUEyQixFQUEzQixvREFBMkI7SUFDM0IscUJBQXFCLEVBQXJCLDhDQUFxQjtJQUNyQixxQkFBcUIsRUFBckIsOENBQXFCO0lBQ3JCLG1CQUFtQixFQUFuQiw0Q0FBbUI7SUFDbkIsc0JBQXNCLEVBQXRCLCtDQUFzQjtJQUN0Qix5QkFBeUIsRUFBekIsa0RBQXlCO0lBQ3pCLHdCQUF3QixFQUF4QixpREFBd0I7SUFDeEIseUJBQXlCLEVBQXpCLGtEQUF5QjtJQUN6Qiw0QkFBNEIsRUFBNUIscURBQTRCO0lBQzVCLHFCQUFxQixFQUFyQiw4Q0FBcUI7SUFDckIsb0JBQW9CLEVBQXBCLDZDQUFvQjtJQUNwQixpQkFBaUIsRUFBakIsMENBQWlCO0lBQ2pCLGdCQUFnQixFQUFoQix5Q0FBZ0I7SUFDaEIsa0JBQWtCLEVBQWxCLDJDQUFrQjtJQUNsQixrQkFBa0IsRUFBbEIsMkNBQWtCO0lBQ2xCLHVCQUF1QixFQUF2QixnREFBdUI7SUFDdkIsc0JBQXNCLEVBQXRCLCtDQUFzQjtJQUN0QixvQkFBb0IsRUFBcEIsNkNBQW9CO0lBQ3BCLG9CQUFvQixFQUFwQiw2Q0FBb0I7SUFDcEIsb0JBQW9CLEVBQXBCLDZDQUFvQjtJQUNwQixrQ0FBa0MsRUFBbEMsMkRBQWtDO0lBQ2xDLCtCQUErQixFQUEvQix3REFBK0I7Q0FDaEMsQ0FBQztBQXN5Q0Y7OztHQUdHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBRyxlQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDOUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJEQUE0QixDQUFDLENBQUM7SUFFdEQsT0FBTyxlQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDMUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBUyxFQUFFLE9BQTRCLEVBQUUsRUFBRSxDQUM3RCxlQUFNLENBQUMsVUFBVSxDQUFDO1lBQ2hCLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLEdBQUcsQ0FBQyxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxFQUFFLENBQUM7Z0JBQ2xCLFdBQVc7YUFDWixDQUFDO1lBQ0osS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFDRSxDQUFDLFlBQVksdURBQThCO29CQUMzQyx5QkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNqQyxDQUFDO29CQUNELE1BQU0sZ0JBQWdCLEdBQUcsYUFBSSxDQUFDLE1BQU0sQ0FFbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUVWLE9BQU8sZ0JBQWdCLENBQUM7d0JBQ3RCLEdBQUcsQ0FBQzt3QkFDSixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUUsQ0FBQztvQkFDdkIsT0FBTyxJQUFBLGlCQUFRLEVBQUM7d0JBQ2QsR0FBRyxDQUFDO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7U0FDRixDQUFDLENBQUM7UUFDTCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUN0RSxVQUFVLEVBQ1YsRUFBRSxDQUNILENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUEyQixDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxlQUFNLENBQUMsR0FBRyxDQUNuRCwwREFBMEQsQ0FDM0QsRUFBaUQ7O0FBRmxELHNEQW1DQzs7QUFoQ2lCLGtDQUFZLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FDekMsRUFBSSxFQUNKLGlDQUF5QixDQUMxQixDQUFDLElBQUksQ0FDSixjQUFLLENBQUMsT0FBTyxDQUFDLGdFQUFpQyxDQUFDLEVBQ2hELGNBQUssQ0FBQyxPQUFPLENBQUMsMkVBQXNDLENBQUMsQ0FDdEQsQUFOMkIsQ0FNMUI7QUFDYywyQkFBSyxHQUFHLENBQUMsTUFBa0MsRUFBRSxFQUFFLENBQzdELGNBQUssQ0FBQyxNQUFNLENBQUMsRUFBSSxFQUFFLGlDQUF5QixDQUFDLENBQUMsSUFBSSxDQUNoRCxjQUFLLENBQUMsT0FBTyxDQUFDLGdFQUFpQyxDQUFDLEVBQ2hELGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDVix1RUFBa0MsRUFDbEMsa0ZBQTZDLENBQUMsSUFBSSxDQUNoRCxlQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FDRixDQUNGLEFBWGtCLENBV2pCO0FBQ1ksK0JBQVMsR0FBRyxDQUMxQixRQUV5QixFQUN6QixFQUFFLENBQ0YsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsaUNBQXlCLENBQUMsQ0FBQyxJQUFJLENBQ2hELGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDViwyREFBNEIsRUFDNUIsZUFBTSxDQUFDLEdBQUcsQ0FBQyxrRkFBNkMsRUFBRSxRQUFRLENBQUMsQ0FDcEUsQ0FDRixDQUNGLEFBWnNCLENBWXJCO0FBR047Ozs7R0FJRztBQUNVLFFBQUEsY0FBYyxHQUFHLHFCQUFxQixDQUFDO0FBRXBEOzs7O0dBSUc7QUFDVSxRQUFBLDhCQUE4QixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3hELHFCQUFxQixFQUNyQixpQ0FBeUIsQ0FDMUIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDVSxRQUFBLDBCQUEwQixHQUFHLHNDQUE4QixDQUFDLElBQUksQ0FDM0UsY0FBSyxDQUFDLE9BQU8sQ0FBQyxnRUFBaUMsQ0FBQyxDQUNqRCxDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEsaUNBQWlDLEdBQzVDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIENsb3VkV2F0Y2hMb2dzU2VydmljZUV4Y2VwdGlvbixcbiAgdHlwZSBDbG91ZFdhdGNoTG9nc0NsaWVudCxcbiAgdHlwZSBDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZyxcbiAgQXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgdHlwZSBBc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRGVsaXZlcnlDb21tYW5kLFxuICB0eXBlIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVMb2dTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVsaXZlcnlDb21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW5kZXhQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVMb2dTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVRdWVyeURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVBY2NvdW50UG9saWNpZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEZWxpdmVyeVNvdXJjZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVGaWVsZEluZGV4ZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVF1ZXJpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZCxcbiAgdHlwZSBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZE91dHB1dCxcbiAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBGaWx0ZXJMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0RGVsaXZlcnlDb21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldERlbGl2ZXJ5Q29tbWFuZE91dHB1dCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICB0eXBlIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgR2V0SW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIEdldEludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9nRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kLFxuICB0eXBlIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZE91dHB1dCxcbiAgR2V0TG9nUmVjb3JkQ29tbWFuZCxcbiAgdHlwZSBHZXRMb2dSZWNvcmRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0TG9nUmVjb3JkQ29tbWFuZE91dHB1dCxcbiAgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZCxcbiAgdHlwZSBHZXRRdWVyeVJlc3VsdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZE91dHB1dCxcbiAgR2V0VHJhbnNmb3JtZXJDb21tYW5kLFxuICB0eXBlIEdldFRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFub21hbGllc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFub21hbGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QW5vbWFsaWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEludGVncmF0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEludGVncmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICB0eXBlIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZE91dHB1dCxcbiAgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZCxcbiAgdHlwZSBMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgUHV0QWNjb3VudFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0QWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRBY2NvdW50UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICB0eXBlIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgUHV0RGVzdGluYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dERlc3RpbmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dERlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0SW5kZXhQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dEluZGV4UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dEluZGV4UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0SW50ZWdyYXRpb25Db21tYW5kLFxuICB0eXBlIFB1dEludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dEludGVncmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0TG9nRXZlbnRzQ29tbWFuZCxcbiAgdHlwZSBQdXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0TG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgUHV0TWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0TWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZCxcbiAgdHlwZSBQdXRRdWVyeURlZmluaXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgdHlwZSBQdXRTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgUHV0VHJhbnNmb3JtZXJDb21tYW5kLFxuICB0eXBlIFB1dFRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRMaXZlVGFpbENvbW1hbmQsXG4gIHR5cGUgU3RhcnRMaXZlVGFpbENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydExpdmVUYWlsQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRRdWVyeUNvbW1hbmQsXG4gIHR5cGUgU3RhcnRRdWVyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgU3RvcFF1ZXJ5Q29tbWFuZCxcbiAgdHlwZSBTdG9wUXVlcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgVGFnTG9nR3JvdXBDb21tYW5kLFxuICB0eXBlIFRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIHR5cGUgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgVGVzdFRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgdHlwZSBUZXN0VHJhbnNmb3JtZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGVzdFRyYW5zZm9ybWVyQ29tbWFuZE91dHB1dCxcbiAgVW50YWdMb2dHcm91cENvbW1hbmQsXG4gIHR5cGUgVW50YWdMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ0xvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQW5vbWFseUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQW5vbWFseUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBbm9tYWx5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3NcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2UsXG4gIENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIG1ha2VEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERhdGFBbHJlYWR5QWNjZXB0ZWRFcnJvcixcbiAgSW52YWxpZE9wZXJhdGlvbkVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gIEludmFsaWRTZXF1ZW5jZVRva2VuRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgTWFsZm9ybWVkUXVlcnlFcnJvcixcbiAgT3BlcmF0aW9uQWJvcnRlZEVycm9yLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yLFxuICBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvcixcbiAgVGhyb3R0bGluZ0Vycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBVbnJlY29nbml6ZWRDbGllbnRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZCxcbiAgQ3JlYXRlRGVsaXZlcnlDb21tYW5kLFxuICBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZCxcbiAgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgQ3JlYXRlTG9nR3JvdXBDb21tYW5kLFxuICBDcmVhdGVMb2dTdHJlYW1Db21tYW5kLFxuICBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBEZWxldGVEZWxpdmVyeUNvbW1hbmQsXG4gIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlRGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kLFxuICBEZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kLFxuICBEZWxldGVMb2dHcm91cENvbW1hbmQsXG4gIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmQsXG4gIERlbGV0ZU1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kLFxuICBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmQsXG4gIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVsaXZlcmllc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmQsXG4gIERlc2NyaWJlRGVzdGluYXRpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmQsXG4gIERlc2NyaWJlRmllbGRJbmRleGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVJbmRleFBvbGljaWVzQ29tbWFuZCxcbiAgRGVzY3JpYmVMb2dHcm91cHNDb21tYW5kLFxuICBEZXNjcmliZUxvZ1N0cmVhbXNDb21tYW5kLFxuICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kLFxuICBEZXNjcmliZVF1ZXJpZXNDb21tYW5kLFxuICBEZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVJlc291cmNlUG9saWNpZXNDb21tYW5kLFxuICBEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNDb21tYW5kLFxuICBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kLFxuICBGaWx0ZXJMb2dFdmVudHNDb21tYW5kLFxuICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5Q29tbWFuZCxcbiAgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmQsXG4gIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kLFxuICBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmQsXG4gIEdldEludGVncmF0aW9uQ29tbWFuZCxcbiAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbiAgR2V0TG9nRXZlbnRzQ29tbWFuZCxcbiAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kLFxuICBHZXRMb2dSZWNvcmRDb21tYW5kLFxuICBHZXRRdWVyeVJlc3VsdHNDb21tYW5kLFxuICBHZXRUcmFuc2Zvcm1lckNvbW1hbmQsXG4gIExpc3RBbm9tYWxpZXNDb21tYW5kLFxuICBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZCxcbiAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kLFxuICBMaXN0TG9nR3JvdXBzRm9yUXVlcnlDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmQsXG4gIFB1dEFjY291bnRQb2xpY3lDb21tYW5kLFxuICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kLFxuICBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0RGVsaXZlcnlTb3VyY2VDb21tYW5kLFxuICBQdXREZXN0aW5hdGlvbkNvbW1hbmQsXG4gIFB1dERlc3RpbmF0aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0SW5kZXhQb2xpY3lDb21tYW5kLFxuICBQdXRJbnRlZ3JhdGlvbkNvbW1hbmQsXG4gIFB1dExvZ0V2ZW50c0NvbW1hbmQsXG4gIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmQsXG4gIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZCxcbiAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZCxcbiAgUHV0VHJhbnNmb3JtZXJDb21tYW5kLFxuICBTdGFydExpdmVUYWlsQ29tbWFuZCxcbiAgU3RhcnRRdWVyeUNvbW1hbmQsXG4gIFN0b3BRdWVyeUNvbW1hbmQsXG4gIFRhZ0xvZ0dyb3VwQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZCxcbiAgVGVzdFRyYW5zZm9ybWVyQ29tbWFuZCxcbiAgVW50YWdMb2dHcm91cENvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVcGRhdGVBbm9tYWx5Q29tbWFuZCxcbiAgVXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uQ29tbWFuZCxcbiAgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBDbG91ZFdhdGNoTG9nc1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXNzb2NpYXRlS21zS2V5Q29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZUttc0tleShcbiAgICBhcmdzOiBBc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBc3NvY2lhdGVLbXNLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbEV4cG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsRXhwb3J0VGFzayhcbiAgICBhcmdzOiBDYW5jZWxFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRGVsaXZlcnkoXG4gICAgYXJnczogQ3JlYXRlRGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUV4cG9ydFRhc2tDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRXhwb3J0VGFzayhcbiAgICBhcmdzOiBDcmVhdGVFeHBvcnRUYXNrQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRXhwb3J0VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUxvZ0Fub21hbHlEZXRlY3RvcihcbiAgICBhcmdzOiBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dBbm9tYWx5RGV0ZWN0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlTG9nR3JvdXAoXG4gICAgYXJnczogQ3JlYXRlTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUxvZ1N0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVMb2dTdHJlYW0oXG4gICAgYXJnczogQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlTG9nU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjY291bnRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWNjb3VudFBvbGljeShcbiAgICBhcmdzOiBEZWxldGVBY2NvdW50UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQWNjb3VudFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlRGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGVsaXZlcnkoXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlRGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZWxpdmVyeVNvdXJjZShcbiAgICBhcmdzOiBEZWxldGVEZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEZXN0aW5hdGlvbihcbiAgICBhcmdzOiBEZWxldGVEZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbmRleFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbmRleFBvbGljeShcbiAgICBhcmdzOiBEZWxldGVJbmRleFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUluZGV4UG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUludGVncmF0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUludGVncmF0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUludGVncmF0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW50ZWdyYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dHcm91cENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVMb2dHcm91cChcbiAgICBhcmdzOiBEZWxldGVMb2dHcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ0dyb3VwQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlTG9nU3RyZWFtKFxuICAgIGFyZ3M6IERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUxvZ1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlTWV0cmljRmlsdGVyQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU1ldHJpY0ZpbHRlcihcbiAgICBhcmdzOiBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVNZXRyaWNGaWx0ZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVRdWVyeURlZmluaXRpb24oXG4gICAgYXJnczogRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJldGVudGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXRlbnRpb25Qb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUmV0ZW50aW9uUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTdWJzY3JpcHRpb25GaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgIGFyZ3M6IERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlVHJhbnNmb3JtZXIoXG4gICAgYXJnczogRGVsZXRlVHJhbnNmb3JtZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjY291bnRQb2xpY2llcyhcbiAgICBhcmdzOiBEZXNjcmliZUFjY291bnRQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQWNjb3VudFBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVDb25maWd1cmF0aW9uVGVtcGxhdGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlQ29uZmlndXJhdGlvblRlbXBsYXRlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZWxpdmVyaWVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcmllcyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlbGl2ZXJpZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJ5RGVzdGluYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEZWxpdmVyeURlc3RpbmF0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcnlEZXN0aW5hdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURlbGl2ZXJ5U291cmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZURlbGl2ZXJ5U291cmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRGVsaXZlcnlTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEZXN0aW5hdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVEZXN0aW5hdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURlc3RpbmF0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUV4cG9ydFRhc2tzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXhwb3J0VGFza3MoXG4gICAgYXJnczogRGVzY3JpYmVFeHBvcnRUYXNrc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRXhwb3J0VGFza3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVGaWVsZEluZGV4ZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVGaWVsZEluZGV4ZXMoXG4gICAgYXJnczogRGVzY3JpYmVGaWVsZEluZGV4ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUZpZWxkSW5kZXhlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUluZGV4UG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbmRleFBvbGljaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlSW5kZXhQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUxvZ0dyb3VwcyhcbiAgICBhcmdzOiBEZXNjcmliZUxvZ0dyb3Vwc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTG9nR3JvdXBzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTG9nU3RyZWFtc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUxvZ1N0cmVhbXMoXG4gICAgYXJnczogRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVMb2dTdHJlYW1zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVNZXRyaWNGaWx0ZXJzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlTWV0cmljRmlsdGVycyhcbiAgICBhcmdzOiBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU1ldHJpY0ZpbHRlcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVF1ZXJpZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVRdWVyaWVzKFxuICAgIGFyZ3M6IERlc2NyaWJlUXVlcmllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUXVlcmllc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUXVlcnlEZWZpbml0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVF1ZXJ5RGVmaW5pdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVRdWVyeURlZmluaXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzb3VyY2VQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc291cmNlUG9saWNpZXMoXG4gICAgYXJnczogRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnMoXG4gICAgYXJnczogRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYXNzb2NpYXRlS21zS2V5Q29tbWFuZH1cbiAgICovXG4gIGRpc2Fzc29jaWF0ZUttc0tleShcbiAgICBhcmdzOiBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhc3NvY2lhdGVLbXNLZXlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEZpbHRlckxvZ0V2ZW50c0NvbW1hbmR9XG4gICAqL1xuICBmaWx0ZXJMb2dFdmVudHMoXG4gICAgYXJnczogRmlsdGVyTG9nRXZlbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRmlsdGVyTG9nRXZlbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnkoXG4gICAgYXJnczogR2V0RGVsaXZlcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXREZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IEdldERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogR2V0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGVsaXZlcnlTb3VyY2UoXG4gICAgYXJnczogR2V0RGVsaXZlcnlTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREZWxpdmVyeVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICAgIHwgVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0SW50ZWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0SW50ZWdyYXRpb24oXG4gICAgYXJnczogR2V0SW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dFdmVudHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0TG9nRXZlbnRzKFxuICAgIGFyZ3M6IEdldExvZ0V2ZW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldExvZ0V2ZW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZH1cbiAgICovXG4gIGdldExvZ0dyb3VwRmllbGRzKFxuICAgIGFyZ3M6IEdldExvZ0dyb3VwRmllbGRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nR3JvdXBGaWVsZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldExvZ1JlY29yZENvbW1hbmR9XG4gICAqL1xuICBnZXRMb2dSZWNvcmQoXG4gICAgYXJnczogR2V0TG9nUmVjb3JkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0TG9nUmVjb3JkQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRRdWVyeVJlc3VsdHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0UXVlcnlSZXN1bHRzKFxuICAgIGFyZ3M6IEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFRyYW5zZm9ybWVyQ29tbWFuZH1cbiAgICovXG4gIGdldFRyYW5zZm9ybWVyKFxuICAgIGFyZ3M6IEdldFRyYW5zZm9ybWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VHJhbnNmb3JtZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBbm9tYWxpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFub21hbGllcyhcbiAgICBhcmdzOiBMaXN0QW5vbWFsaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFub21hbGllc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEludGVncmF0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW50ZWdyYXRpb25zKFxuICAgIGFyZ3M6IExpc3RJbnRlZ3JhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW50ZWdyYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRQYXJhbWV0ZXJFcnJvciB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzKFxuICAgIGFyZ3M6IExpc3RMb2dBbm9tYWx5RGV0ZWN0b3JzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdExvZ0Fub21hbHlEZXRlY3RvcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RMb2dHcm91cHNGb3JRdWVyeUNvbW1hbmR9XG4gICAqL1xuICBsaXN0TG9nR3JvdXBzRm9yUXVlcnkoXG4gICAgYXJnczogTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdExvZ0dyb3Vwc0ZvclF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NMb2dHcm91cChcbiAgICBhcmdzOiBMaXN0VGFnc0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRBY2NvdW50UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dEFjY291bnRQb2xpY3koXG4gICAgYXJnczogUHV0QWNjb3VudFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dEFjY291bnRQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dERhdGFQcm90ZWN0aW9uUG9saWN5KFxuICAgIGFyZ3M6IFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVsaXZlcnlEZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXREZWxpdmVyeURlc3RpbmF0aW9uKFxuICAgIGFyZ3M6IFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZWxpdmVyeURlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZWxpdmVyeURlc3RpbmF0aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGVsaXZlcnlEZXN0aW5hdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlbGl2ZXJ5RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBwdXREZWxpdmVyeVNvdXJjZShcbiAgICBhcmdzOiBQdXREZWxpdmVyeVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlbGl2ZXJ5U291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXREZXN0aW5hdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXREZXN0aW5hdGlvbihcbiAgICBhcmdzOiBQdXREZXN0aW5hdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dERlc3RpbmF0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RGVzdGluYXRpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGVzdGluYXRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXREZXN0aW5hdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dEluZGV4UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dEluZGV4UG9saWN5KFxuICAgIGFyZ3M6IFB1dEluZGV4UG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0SW5kZXhQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0SW50ZWdyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgcHV0SW50ZWdyYXRpb24oXG4gICAgYXJnczogUHV0SW50ZWdyYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRJbnRlZ3JhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0TG9nRXZlbnRzQ29tbWFuZH1cbiAgICovXG4gIHB1dExvZ0V2ZW50cyhcbiAgICBhcmdzOiBQdXRMb2dFdmVudHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRMb2dFdmVudHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERhdGFBbHJlYWR5QWNjZXB0ZWRFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkU2VxdWVuY2VUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBVbnJlY29nbml6ZWRDbGllbnRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0TWV0cmljRmlsdGVyKFxuICAgIGFyZ3M6IFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFF1ZXJ5RGVmaW5pdGlvbkNvbW1hbmR9XG4gICAqL1xuICBwdXRRdWVyeURlZmluaXRpb24oXG4gICAgYXJnczogUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UXVlcnlEZWZpbml0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmV0ZW50aW9uUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dFJldGVudGlvblBvbGljeShcbiAgICBhcmdzOiBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXRlbnRpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFN1YnNjcmlwdGlvbkZpbHRlckNvbW1hbmR9XG4gICAqL1xuICBwdXRTdWJzY3JpcHRpb25GaWx0ZXIoXG4gICAgYXJnczogUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0U3Vic2NyaXB0aW9uRmlsdGVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBPcGVyYXRpb25BYm9ydGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0VHJhbnNmb3JtZXJDb21tYW5kfVxuICAgKi9cbiAgcHV0VHJhbnNmb3JtZXIoXG4gICAgYXJnczogUHV0VHJhbnNmb3JtZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgT3BlcmF0aW9uQWJvcnRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0TGl2ZVRhaWxDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRMaXZlVGFpbChcbiAgICBhcmdzOiBTdGFydExpdmVUYWlsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRMaXZlVGFpbENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydFF1ZXJ5Q29tbWFuZH1cbiAgICovXG4gIHN0YXJ0UXVlcnkoXG4gICAgYXJnczogU3RhcnRRdWVyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0UXVlcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRRdWVyeUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BRdWVyeUNvbW1hbmR9XG4gICAqL1xuICBzdG9wUXVlcnkoXG4gICAgYXJnczogU3RvcFF1ZXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgdGFnTG9nR3JvdXAoXG4gICAgYXJnczogVGFnTG9nR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gICAgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RNZXRyaWNGaWx0ZXJDb21tYW5kfVxuICAgKi9cbiAgdGVzdE1ldHJpY0ZpbHRlcihcbiAgICBhcmdzOiBUZXN0TWV0cmljRmlsdGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdE1ldHJpY0ZpbHRlckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0VHJhbnNmb3JtZXJDb21tYW5kfVxuICAgKi9cbiAgdGVzdFRyYW5zZm9ybWVyKFxuICAgIGFyZ3M6IFRlc3RUcmFuc2Zvcm1lckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFRlc3RUcmFuc2Zvcm1lckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFNlcnZpY2VVbmF2YWlsYWJsZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnTG9nR3JvdXBDb21tYW5kfVxuICAgKi9cbiAgdW50YWdMb2dHcm91cChcbiAgICBhcmdzOiBVbnRhZ0xvZ0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVW50YWdMb2dHcm91cENvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQW5vbWFseUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBbm9tYWx5KFxuICAgIGFyZ3M6IFVwZGF0ZUFub21hbHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBbm9tYWx5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEZWxpdmVyeUNvbmZpZ3VyYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRGVsaXZlcnlDb25maWd1cmF0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURlbGl2ZXJ5Q29uZmlndXJhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2VydmljZVVuYXZhaWxhYmxlRXJyb3JcbiAgICB8IFRocm90dGxpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUxvZ0Fub21hbHlEZXRlY3RvckNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVMb2dBbm9tYWx5RGV0ZWN0b3IoXG4gICAgYXJnczogVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlTG9nQW5vbWFseURldGVjdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wZXJhdGlvbkFib3J0ZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlVW5hdmFpbGFibGVFcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBDbG91ZFdhdGNoTG9nc1NlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248Q2xvdWRXYXRjaExvZ3NTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZFdhdGNoTG9nc1NlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1jbG91ZHdhdGNoLWxvZ3MvQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlXCIsXG4pPENsb3VkV2F0Y2hMb2dzU2VydmljZSwgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlJD4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gICAgdGhpcyxcbiAgICBtYWtlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLFxuICApLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdENsb3VkV2F0Y2hMb2dzQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUNsb3VkV2F0Y2hMb2dzU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBDbG91ZFdhdGNoTG9nc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoXG4gICAgICBkZWZhdWx0Q29uZmlnOiBDbG91ZFdhdGNoTG9nc0NsaWVudENvbmZpZyxcbiAgICApID0+IENsb3VkV2F0Y2hMb2dzQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VDbG91ZFdhdGNoTG9nc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgQ2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0Q2xvdWRXYXRjaExvZ3NDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIENsb3VkV2F0Y2hMb2dzU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgQ2xvdWRXYXRjaExvZ3MgPSBDbG91ZFdhdGNoTG9nc1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgQ2xvdWRXYXRjaExvZ3MuYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLFxuICBtYWtlQ2xvdWRXYXRjaExvZ3NTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBDbG91ZFdhdGNoTG9ncy5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllciA9IEJhc2VDbG91ZFdhdGNoTG9nc1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKENsb3VkV2F0Y2hMb2dzQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIENsb3VkV2F0Y2hMb2dzLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q2xvdWRXYXRjaExvZ3NTZXJ2aWNlTGF5ZXIgPVxuICBDbG91ZFdhdGNoTG9nc1NlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19