@effect-aws/client-opensearch 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @effect-aws/client-opensearch
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#75](https://github.com/floydspace/effect-aws/pull/75) [`9dc170d`](https://github.com/floydspace/effect-aws/commit/9dc170d975c04888bbc7ca7b241b4b5265668fb5) Thanks [@godu](https://github.com/godu)! - export the HttpHandlerOptions type
8
+
3
9
  ## 1.0.0
4
10
 
5
11
  ### Major Changes
@@ -5,7 +5,10 @@ import { type AcceptInboundConnectionCommandInput, type AcceptInboundConnectionC
5
5
  import { Effect, Layer } from "effect";
6
6
  import { AccessDeniedError, BaseError, ConflictError, DependencyFailureError, DisabledOperationError, InternalError, InvalidPaginationTokenError, InvalidTypeError, LimitExceededError, ResourceAlreadyExistsError, ResourceNotFoundError, SlotNotAvailableError, ValidationError, SdkError } from "./Errors";
7
7
  import { OpenSearchClientInstance } from "./OpenSearchClientInstance";
8
- interface HttpHandlerOptions {
8
+ /**
9
+ * @since 1.0.1
10
+ */
11
+ export interface HttpHandlerOptions {
9
12
  /**
10
13
  * The maximum time in milliseconds that the connection phase of a request
11
14
  * may take before the connection attempt is abandoned.
@@ -139,4 +139,4 @@ exports.OpenSearchServiceLayer = exports.BaseOpenSearchServiceLayer.pipe(effect_
139
139
  * @category layers
140
140
  */
141
141
  exports.DefaultOpenSearchServiceLayer = exports.OpenSearchServiceLayer.pipe(effect_1.Layer.provide(OpenSearchClientInstanceConfig_1.DefaultOpenSearchClientConfigLayer));
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3BlblNlYXJjaFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxrRUE4TW9DO0FBQ3BDLG1DQUFxRDtBQUNyRCxxQ0FpQmtCO0FBQ2xCLHlFQUdvQztBQUNwQyxxRkFBc0Y7QUFVdEYsTUFBTSxRQUFRLEdBQUc7SUFDZiw4QkFBOEIsRUFBOUIsa0RBQThCO0lBQzlCLG9CQUFvQixFQUFwQix3Q0FBb0I7SUFDcEIsY0FBYyxFQUFkLGtDQUFjO0lBQ2QsdUJBQXVCLEVBQXZCLDJDQUF1QjtJQUN2QixpQ0FBaUMsRUFBakMscURBQWlDO0lBQ2pDLCtCQUErQixFQUEvQixtREFBK0I7SUFDL0Isa0NBQWtDLEVBQWxDLHNEQUFrQztJQUNsQyx3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLG1CQUFtQixFQUFuQix1Q0FBbUI7SUFDbkIsK0JBQStCLEVBQS9CLG1EQUErQjtJQUMvQixvQkFBb0IsRUFBcEIsd0NBQW9CO0lBQ3BCLHdCQUF3QixFQUF4Qiw0Q0FBd0I7SUFDeEIsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4Qix1QkFBdUIsRUFBdkIsMkNBQXVCO0lBQ3ZCLG1CQUFtQixFQUFuQix1Q0FBbUI7SUFDbkIsOEJBQThCLEVBQTlCLGtEQUE4QjtJQUM5QiwrQkFBK0IsRUFBL0IsbURBQStCO0lBQy9CLG9CQUFvQixFQUFwQix3Q0FBb0I7SUFDcEIsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4QixxQkFBcUIsRUFBckIseUNBQXFCO0lBQ3JCLDhCQUE4QixFQUE5QixrREFBOEI7SUFDOUIsbUNBQW1DLEVBQW5DLHVEQUFtQztJQUNuQywyQkFBMkIsRUFBM0IsK0NBQTJCO0lBQzNCLDJCQUEyQixFQUEzQiwrQ0FBMkI7SUFDM0IsMEJBQTBCLEVBQTFCLDhDQUEwQjtJQUMxQixzQkFBc0IsRUFBdEIsMENBQXNCO0lBQ3RCLDZCQUE2QixFQUE3QixpREFBNkI7SUFDN0IsaUNBQWlDLEVBQWpDLHFEQUFpQztJQUNqQyxpQ0FBaUMsRUFBakMscURBQWlDO0lBQ2pDLGtDQUFrQyxFQUFsQyxzREFBa0M7SUFDbEMsdUJBQXVCLEVBQXZCLDJDQUF1QjtJQUN2Qix3Q0FBd0MsRUFBeEMsNERBQXdDO0lBQ3hDLGdDQUFnQyxFQUFoQyxvREFBZ0M7SUFDaEMsMkJBQTJCLEVBQTNCLCtDQUEyQjtJQUMzQix3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLHFCQUFxQixFQUFyQix5Q0FBcUI7SUFDckIsNEJBQTRCLEVBQTVCLGdEQUE0QjtJQUM1QixvQkFBb0IsRUFBcEIsd0NBQW9CO0lBQ3BCLGlDQUFpQyxFQUFqQyxxREFBaUM7SUFDakMsK0JBQStCLEVBQS9CLG1EQUErQjtJQUMvQix3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLHVCQUF1QixFQUF2QiwyQ0FBdUI7SUFDdkIsdUJBQXVCLEVBQXZCLDJDQUF1QjtJQUN2QixzQkFBc0IsRUFBdEIsMENBQXNCO0lBQ3RCLDZCQUE2QixFQUE3QixpREFBNkI7SUFDN0Isc0JBQXNCLEVBQXRCLDBDQUFzQjtJQUN0Qiw0QkFBNEIsRUFBNUIsZ0RBQTRCO0lBQzVCLDhCQUE4QixFQUE5QixrREFBOEI7SUFDOUIsNEJBQTRCLEVBQTVCLGdEQUE0QjtJQUM1QiwyQkFBMkIsRUFBM0IsK0NBQTJCO0lBQzNCLGVBQWUsRUFBZixtQ0FBZTtJQUNmLG1CQUFtQixFQUFuQix1Q0FBbUI7SUFDbkIsNEJBQTRCLEVBQTVCLGdEQUE0QjtJQUM1Qix1QkFBdUIsRUFBdkIsMkNBQXVCO0lBQ3ZCLGdDQUFnQyxFQUFoQyxvREFBZ0M7SUFDaEMsdUNBQXVDLEVBQXZDLDJEQUF1QztJQUN2Qyw4QkFBOEIsRUFBOUIsa0RBQThCO0lBQzlCLGlCQUFpQixFQUFqQixxQ0FBaUI7SUFDakIsOEJBQThCLEVBQTlCLGtEQUE4QjtJQUM5Qiw2QkFBNkIsRUFBN0IsaURBQTZCO0lBQzdCLGlDQUFpQyxFQUFqQyxxREFBaUM7SUFDakMsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4Qix1QkFBdUIsRUFBdkIsMkNBQXVCO0lBQ3ZCLHlCQUF5QixFQUF6Qiw2Q0FBeUI7SUFDekIsb0JBQW9CLEVBQXBCLHdDQUFvQjtJQUNwQiw0QkFBNEIsRUFBNUIsZ0RBQTRCO0lBQzVCLHdCQUF3QixFQUF4Qiw0Q0FBd0I7SUFDeEIsb0JBQW9CLEVBQXBCLHdDQUFvQjtDQUNyQixDQUFDO0FBZ2lDRjs7O0dBR0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLGVBQU0sQ0FBQyxHQUFHLENBQy9DLGlEQUFpRCxDQUNsRCxFQUF5QztDQUFHO0FBRjdDLDhDQUU2QztBQUU3Qzs7O0dBR0c7QUFDVSxRQUFBLHFCQUFxQixHQUFHLGVBQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUMxRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsbURBQXdCLENBQUMsQ0FBQztJQUVsRCxPQUFPLGVBQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtRQUMxRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFRLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQUUsT0FBNEIsRUFBRSxFQUFFLENBQzdELGVBQU0sQ0FBQyxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsR0FBRyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztnQkFDbEIsV0FBVzthQUNaLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUNFLENBQUMsWUFBWSw4Q0FBMEI7b0JBQ3ZDLHlCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ2pDLENBQUM7b0JBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUVsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRVYsT0FBTyxnQkFBZ0IsQ0FBQzt3QkFDdEIsR0FBRyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUN2QixPQUFPLElBQUEsaUJBQVEsRUFBQzt3QkFDZCxHQUFHLENBQUM7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQXVCLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLDBCQUEwQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3BELGlCQUFpQixFQUNqQiw2QkFBcUIsQ0FDdEIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsa0NBQTBCLENBQUMsSUFBSSxDQUNuRSxjQUFLLENBQUMsT0FBTyxDQUFDLHdEQUE2QixDQUFDLENBQzdDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLDhCQUFzQixDQUFDLElBQUksQ0FDdEUsY0FBSyxDQUFDLE9BQU8sQ0FBQyxtRUFBa0MsQ0FBQyxDQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgT3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24sXG4gIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEFkZERhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIEFkZERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEFkZFRhZ3NDb21tYW5kLFxuICB0eXBlIEFkZFRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVGFnc0NvbW1hbmRPdXRwdXQsXG4gIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZElucHV0LFxuICB0eXBlIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRPdXRwdXQsXG4gIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIENyZWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUGFja2FnZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIEdldEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIEdldERhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIEdldERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmQsXG4gIHR5cGUgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZCxcbiAgdHlwZSBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kLFxuICB0eXBlIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REYXRhU291cmNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdERhdGFTb3VyY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REYXRhU291cmNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5OYW1lc0NvbW1hbmQsXG4gIHR5cGUgTGlzdERvbWFpbk5hbWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5OYW1lc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmQsXG4gIHR5cGUgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludHNDb21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVRhZ3NDb21tYW5kLFxuICB0eXBlIFJlbW92ZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kLFxuICB0eXBlIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZCxcbiAgdHlwZSBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIFVwZ3JhZGVEb21haW5Db21tYW5kLFxuICB0eXBlIFVwZ3JhZGVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBncmFkZURvbWFpbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3BlbnNlYXJjaFwiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEJhc2VFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgRGVwZW5kZW5jeUZhaWx1cmVFcnJvcixcbiAgRGlzYWJsZWRPcGVyYXRpb25FcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yLFxuICBJbnZhbGlkVHlwZUVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNsb3ROb3RBdmFpbGFibGVFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZSxcbiAgT3BlblNlYXJjaENsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL09wZW5TZWFyY2hDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdE9wZW5TZWFyY2hDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL09wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG5pbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBBZGREYXRhU291cmNlQ29tbWFuZCxcbiAgQWRkVGFnc0NvbW1hbmQsXG4gIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kLFxuICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmQsXG4gIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlRG9tYWluQ29tbWFuZCxcbiAgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlUGFja2FnZUNvbW1hbmQsXG4gIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBEZWxldGVEYXRhU291cmNlQ29tbWFuZCxcbiAgRGVsZXRlRG9tYWluQ29tbWFuZCxcbiAgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBEZWxldGVQYWNrYWdlQ29tbWFuZCxcbiAgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkNvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5zQ29tbWFuZCxcbiAgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmQsXG4gIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kLFxuICBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmQsXG4gIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kLFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmQsXG4gIEdldERhdGFTb3VyY2VDb21tYW5kLFxuICBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmQsXG4gIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmQsXG4gIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZCxcbiAgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmQsXG4gIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kLFxuICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kLFxuICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZCxcbiAgTGlzdERvbWFpbk5hbWVzQ29tbWFuZCxcbiAgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZCxcbiAgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kLFxuICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kLFxuICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgTGlzdFZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kLFxuICBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmQsXG4gIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgUmVtb3ZlVGFnc0NvbW1hbmQsXG4gIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmQsXG4gIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZCxcbiAgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBVcGRhdGVEYXRhU291cmNlQ29tbWFuZCxcbiAgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZCxcbiAgVXBkYXRlUGFja2FnZUNvbW1hbmQsXG4gIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgVXBncmFkZURvbWFpbkNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgT3BlblNlYXJjaFNlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgYWNjZXB0SW5ib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkRGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBhZGREYXRhU291cmNlKFxuICAgIGFyZ3M6IEFkZERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGREYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkVGFnc0NvbW1hbmR9XG4gICAqL1xuICBhZGRUYWdzKFxuICAgIGFyZ3M6IEFkZFRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRUYWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IEludGVybmFsRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBhc3NvY2lhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBhdXRob3JpemVWcGNFbmRwb2ludEFjY2VzcyhcbiAgICBhcmdzOiBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZShcbiAgICBhcmdzOiBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZShcbiAgICBhcmdzOiBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQXBwbGljYXRpb24oXG4gICAgYXJnczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEb21haW4oXG4gICAgYXJnczogQ3JlYXRlRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVBhY2thZ2UoXG4gICAgYXJnczogQ3JlYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVWcGNFbmRwb2ludChcbiAgICBhcmdzOiBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGF0YVNvdXJjZShcbiAgICBhcmdzOiBEZWxldGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRG9tYWluKFxuICAgIGFyZ3M6IERlbGV0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbmJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVBhY2thZ2UoXG4gICAgYXJnczogRGVsZXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVZwY0VuZHBvaW50KFxuICAgIGFyZ3M6IERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5BdXRvVHVuZXMoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3MoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5Db25maWcoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkhlYWx0aChcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5Ob2RlcyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5zKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEcnlSdW5Qcm9ncmVzcyhcbiAgICBhcmdzOiBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUluYm91bmRDb25uZWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBJbnZhbGlkUGFnaW5hdGlvblRva2VuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHMoXG4gICAgYXJnczogRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBJbnZhbGlkUGFnaW5hdGlvblRva2VuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVBhY2thZ2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVZwY0VuZHBvaW50cyhcbiAgICBhcmdzOiBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBkaXNzb2NpYXRlUGFja2FnZShcbiAgICBhcmdzOiBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBHZXRBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgZ2V0Q29tcGF0aWJsZVZlcnNpb25zKFxuICAgIGFyZ3M6IEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGdldERhdGFTb3VyY2UoXG4gICAgYXJnczogR2V0RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXMoXG4gICAgYXJnczogR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0UGFja2FnZVZlcnNpb25IaXN0b3J5KFxuICAgIGFyZ3M6IEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0VXBncmFkZUhpc3RvcnkoXG4gICAgYXJnczogR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGdldFVwZ3JhZGVTdGF0dXMoXG4gICAgYXJnczogR2V0VXBncmFkZVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QXBwbGljYXRpb25zKFxuICAgIGFyZ3M6IExpc3RBcHBsaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RGF0YVNvdXJjZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERhdGFTb3VyY2VzKFxuICAgIGFyZ3M6IExpc3REYXRhU291cmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REYXRhU291cmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REb21haW5NYWludGVuYW5jZXMoXG4gICAgYXJnczogTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERvbWFpbk5hbWVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REb21haW5OYW1lcyhcbiAgICBhcmdzOiBMaXN0RG9tYWluTmFtZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RG9tYWluTmFtZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0RG9tYWluc0ZvclBhY2thZ2UoXG4gICAgYXJnczogTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW5zdGFuY2VUeXBlRGV0YWlscyhcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0UGFja2FnZXNGb3JEb21haW4oXG4gICAgYXJnczogTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U2NoZWR1bGVkQWN0aW9ucyhcbiAgICBhcmdzOiBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3MoXG4gICAgYXJnczogTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFZlcnNpb25zKFxuICAgIGFyZ3M6IExpc3RWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFZwY0VuZHBvaW50QWNjZXNzKFxuICAgIGFyZ3M6IExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VnBjRW5kcG9pbnRzKFxuICAgIGFyZ3M6IExpc3RWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBJbnRlcm5hbEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kfVxuICAgKi9cbiAgbGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbihcbiAgICBhcmdzOiBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kfVxuICAgKi9cbiAgcHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmcoXG4gICAgYXJnczogUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgcmVqZWN0SW5ib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlVGFncyhcbiAgICBhcmdzOiBSZW1vdmVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlVGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIHJldm9rZVZwY0VuZHBvaW50QWNjZXNzKFxuICAgIGFyZ3M6IFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmR9XG4gICAqL1xuICBzdGFydERvbWFpbk1haW50ZW5hbmNlKFxuICAgIGFyZ3M6IFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlKFxuICAgIGFyZ3M6IFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQXBwbGljYXRpb24oXG4gICAgYXJnczogVXBkYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVEYXRhU291cmNlKFxuICAgIGFyZ3M6IFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVEb21haW5Db25maWcoXG4gICAgYXJnczogVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IFVwZGF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTY2hlZHVsZWRBY3Rpb24oXG4gICAgYXJnczogVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTbG90Tm90QXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVWcGNFbmRwb2ludChcbiAgICBhcmdzOiBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZ3JhZGVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgdXBncmFkZURvbWFpbihcbiAgICBhcmdzOiBVcGdyYWRlRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBncmFkZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIE9wZW5TZWFyY2hTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtb3BlbnNlYXJjaC9PcGVuU2VhcmNoU2VydmljZVwiLFxuKTxPcGVuU2VhcmNoU2VydmljZSwgT3BlblNlYXJjaFNlcnZpY2UkPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlT3BlblNlYXJjaFNlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBPcGVuU2VhcmNoU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxPcGVuU2VhcmNoU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgT3BlblNlYXJjaFNlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlT3BlblNlYXJjaFNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgT3BlblNlYXJjaFNlcnZpY2UsXG4gIG1ha2VPcGVuU2VhcmNoU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBPcGVuU2VhcmNoU2VydmljZUxheWVyID0gQmFzZU9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdE9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIgPSBPcGVuU2VhcmNoU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdE9wZW5TZWFyY2hDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3BlblNlYXJjaFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxrRUE4TW9DO0FBQ3BDLG1DQUFxRDtBQUNyRCxxQ0FpQmtCO0FBQ2xCLHlFQUdvQztBQUNwQyxxRkFBc0Y7QUFhdEYsTUFBTSxRQUFRLEdBQUc7SUFDZiw4QkFBOEIsRUFBOUIsa0RBQThCO0lBQzlCLG9CQUFvQixFQUFwQix3Q0FBb0I7SUFDcEIsY0FBYyxFQUFkLGtDQUFjO0lBQ2QsdUJBQXVCLEVBQXZCLDJDQUF1QjtJQUN2QixpQ0FBaUMsRUFBakMscURBQWlDO0lBQ2pDLCtCQUErQixFQUEvQixtREFBK0I7SUFDL0Isa0NBQWtDLEVBQWxDLHNEQUFrQztJQUNsQyx3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLG1CQUFtQixFQUFuQix1Q0FBbUI7SUFDbkIsK0JBQStCLEVBQS9CLG1EQUErQjtJQUMvQixvQkFBb0IsRUFBcEIsd0NBQW9CO0lBQ3BCLHdCQUF3QixFQUF4Qiw0Q0FBd0I7SUFDeEIsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4Qix1QkFBdUIsRUFBdkIsMkNBQXVCO0lBQ3ZCLG1CQUFtQixFQUFuQix1Q0FBbUI7SUFDbkIsOEJBQThCLEVBQTlCLGtEQUE4QjtJQUM5QiwrQkFBK0IsRUFBL0IsbURBQStCO0lBQy9CLG9CQUFvQixFQUFwQix3Q0FBb0I7SUFDcEIsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4QixxQkFBcUIsRUFBckIseUNBQXFCO0lBQ3JCLDhCQUE4QixFQUE5QixrREFBOEI7SUFDOUIsbUNBQW1DLEVBQW5DLHVEQUFtQztJQUNuQywyQkFBMkIsRUFBM0IsK0NBQTJCO0lBQzNCLDJCQUEyQixFQUEzQiwrQ0FBMkI7SUFDM0IsMEJBQTBCLEVBQTFCLDhDQUEwQjtJQUMxQixzQkFBc0IsRUFBdEIsMENBQXNCO0lBQ3RC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QUE2QixDQUFDLENBQzdDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLDhCQUFzQixDQUFDLElBQUksQ0FDdEUsY0FBSyxDQUFDLE9BQU8sQ0FBQyxtRUFBa0MsQ0FBQyxDQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgT3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24sXG4gIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEFkZERhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIEFkZERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEFkZFRhZ3NDb21tYW5kLFxuICB0eXBlIEFkZFRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVGFnc0NvbW1hbmRPdXRwdXQsXG4gIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZElucHV0LFxuICB0eXBlIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRPdXRwdXQsXG4gIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIENyZWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUGFja2FnZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIEdldEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIEdldERhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIEdldERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmQsXG4gIHR5cGUgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZCxcbiAgdHlwZSBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kLFxuICB0eXBlIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REYXRhU291cmNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdERhdGFTb3VyY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REYXRhU291cmNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5OYW1lc0NvbW1hbmQsXG4gIHR5cGUgTGlzdERvbWFpbk5hbWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5OYW1lc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmQsXG4gIHR5cGUgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludHNDb21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVRhZ3NDb21tYW5kLFxuICB0eXBlIFJlbW92ZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kLFxuICB0eXBlIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZCxcbiAgdHlwZSBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIFVwZ3JhZGVEb21haW5Db21tYW5kLFxuICB0eXBlIFVwZ3JhZGVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBncmFkZURvbWFpbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3BlbnNlYXJjaFwiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEJhc2VFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgRGVwZW5kZW5jeUZhaWx1cmVFcnJvcixcbiAgRGlzYWJsZWRPcGVyYXRpb25FcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yLFxuICBJbnZhbGlkVHlwZUVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNsb3ROb3RBdmFpbGFibGVFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZSxcbiAgT3BlblNlYXJjaENsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL09wZW5TZWFyY2hDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdE9wZW5TZWFyY2hDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL09wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgQWRkRGF0YVNvdXJjZUNvbW1hbmQsXG4gIEFkZFRhZ3NDb21tYW5kLFxuICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kLFxuICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIENyZWF0ZVBhY2thZ2VDb21tYW5kLFxuICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIERlbGV0ZURvbWFpbkNvbW1hbmQsXG4gIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlUGFja2FnZUNvbW1hbmQsXG4gIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Db21tYW5kLFxuICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluc0NvbW1hbmQsXG4gIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kLFxuICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZCxcbiAgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kLFxuICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgR2V0QXBwbGljYXRpb25Db21tYW5kLFxuICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kLFxuICBHZXREYXRhU291cmNlQ29tbWFuZCxcbiAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kLFxuICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kLFxuICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmQsXG4gIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kLFxuICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZCxcbiAgTGlzdERhdGFTb3VyY2VzQ29tbWFuZCxcbiAgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmQsXG4gIExpc3REb21haW5OYW1lc0NvbW1hbmQsXG4gIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZCxcbiAgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZCxcbiAgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kLFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIExpc3RWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIExpc3RWcGNFbmRwb2ludHNDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZCxcbiAgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kLFxuICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIFJlbW92ZVRhZ3NDb21tYW5kLFxuICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kLFxuICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIFVwZGF0ZVBhY2thZ2VDb21tYW5kLFxuICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kLFxuICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIFVwZ3JhZGVEb21haW5Db21tYW5kLFxufTtcblxuaW50ZXJmYWNlIE9wZW5TZWFyY2hTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGFjY2VwdEluYm91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZERhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgYWRkRGF0YVNvdXJjZShcbiAgICBhcmdzOiBBZGREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFRhZ3NDb21tYW5kfVxuICAgKi9cbiAgYWRkVGFncyhcbiAgICBhcmdzOiBBZGRUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgYXNzb2NpYXRlUGFja2FnZShcbiAgICBhcmdzOiBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgYXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxEb21haW5Db25maWdDaGFuZ2UoXG4gICAgYXJnczogQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGUoXG4gICAgYXJnczogQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRG9tYWluKFxuICAgIGFyZ3M6IENyZWF0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IENyZWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURhdGFTb3VyY2UoXG4gICAgYXJnczogRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURvbWFpbihcbiAgICBhcmdzOiBEZWxldGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5ib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVPdXRib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQYWNrYWdlKFxuICAgIGFyZ3M6IERlbGV0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVWcGNFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVWcGNFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbihcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQXV0b1R1bmVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQ29uZmlnKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5IZWFsdGgoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluTm9kZXMoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWlucyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3MoXG4gICAgYXJnczogRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzKFxuICAgIGFyZ3M6IERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUGFja2FnZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVQYWNrYWdlcyhcbiAgICBhcmdzOiBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5ncyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVWcGNFbmRwb2ludHMoXG4gICAgYXJnczogRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgZGlzc29jaWF0ZVBhY2thZ2UoXG4gICAgYXJnczogRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0QXBwbGljYXRpb24oXG4gICAgYXJnczogR2V0QXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGdldENvbXBhdGlibGVWZXJzaW9ucyhcbiAgICBhcmdzOiBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBnZXREYXRhU291cmNlKFxuICAgIGFyZ3M6IEdldERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzKFxuICAgIGFyZ3M6IEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeShcbiAgICBhcmdzOiBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldFVwZ3JhZGVIaXN0b3J5KFxuICAgIGFyZ3M6IEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBnZXRVcGdyYWRlU3RhdHVzKFxuICAgIGFyZ3M6IEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFwcGxpY2F0aW9ucyhcbiAgICBhcmdzOiBMaXN0QXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERhdGFTb3VyY2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REYXRhU291cmNlcyhcbiAgICBhcmdzOiBMaXN0RGF0YVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RG9tYWluTWFpbnRlbmFuY2VzKFxuICAgIGFyZ3M6IExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REb21haW5OYW1lc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RG9tYWluTmFtZXMoXG4gICAgYXJnczogTGlzdERvbWFpbk5hbWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERvbWFpbk5hbWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbnNGb3JQYWNrYWdlKFxuICAgIGFyZ3M6IExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEluc3RhbmNlVHlwZURldGFpbHMoXG4gICAgYXJnczogTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kfVxuICAgKi9cbiAgbGlzdFBhY2thZ2VzRm9yRG9tYWluKFxuICAgIGFyZ3M6IExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFNjaGVkdWxlZEFjdGlvbnMoXG4gICAgYXJnczogTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFnaW5hdGlvblRva2VuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzKFxuICAgIGFyZ3M6IExpc3RUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludEFjY2VzcyhcbiAgICBhcmdzOiBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWcGNFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFZwY0VuZHBvaW50cyhcbiAgICBhcmdzOiBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW50ZXJuYWxFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludHNGb3JEb21haW4oXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZH1cbiAgICovXG4gIHB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nKFxuICAgIGFyZ3M6IFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlamVjdEluYm91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVRhZ3MoXG4gICAgYXJnczogUmVtb3ZlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICByZXZva2VWcGNFbmRwb2ludEFjY2VzcyhcbiAgICBhcmdzOiBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kfVxuICAgKi9cbiAgc3RhcnREb21haW5NYWludGVuYW5jZShcbiAgICBhcmdzOiBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmR9XG4gICAqL1xuICBzdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZShcbiAgICBhcmdzOiBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRGF0YVNvdXJjZShcbiAgICBhcmdzOiBVcGRhdGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEb21haW5Db25maWdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRG9tYWluQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUGFja2FnZShcbiAgICBhcmdzOiBVcGRhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU2NoZWR1bGVkQWN0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2xvdE5vdEF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGdyYWRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIHVwZ3JhZGVEb21haW4oXG4gICAgYXJnczogVXBncmFkZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZ3JhZGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVuU2VhcmNoU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LW9wZW5zZWFyY2gvT3BlblNlYXJjaFNlcnZpY2VcIixcbik8T3BlblNlYXJjaFNlcnZpY2UsIE9wZW5TZWFyY2hTZXJ2aWNlJD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZU9wZW5TZWFyY2hTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oT3BlblNlYXJjaENsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgT3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248T3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIE9wZW5TZWFyY2hTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZU9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIE9wZW5TZWFyY2hTZXJ2aWNlLFxuICBtYWtlT3BlblNlYXJjaFNlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgT3BlblNlYXJjaFNlcnZpY2VMYXllciA9IEJhc2VPcGVuU2VhcmNoU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoT3BlblNlYXJjaENsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRPcGVuU2VhcmNoU2VydmljZUxheWVyID0gT3BlblNlYXJjaFNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRPcGVuU2VhcmNoQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==
@@ -135,4 +135,4 @@ export const OpenSearchServiceLayer = BaseOpenSearchServiceLayer.pipe(Layer.prov
135
135
  * @category layers
136
136
  */
137
137
  export const DefaultOpenSearchServiceLayer = OpenSearchServiceLayer.pipe(Layer.provide(DefaultOpenSearchClientConfigLayer));
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvT3BlblNlYXJjaFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUc5QixvQkFBb0IsRUFHcEIsY0FBYyxFQUdkLHVCQUF1QixFQUd2QixpQ0FBaUMsRUFHakMsK0JBQStCLEVBRy9CLGtDQUFrQyxFQUdsQyx3QkFBd0IsRUFHeEIsbUJBQW1CLEVBR25CLCtCQUErQixFQUcvQixvQkFBb0IsRUFHcEIsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUd4Qix1QkFBdUIsRUFHdkIsbUJBQW1CLEVBR25CLDhCQUE4QixFQUc5QiwrQkFBK0IsRUFHL0Isb0JBQW9CLEVBR3BCLHdCQUF3QixFQUd4QixxQkFBcUIsRUFHckIsOEJBQThCLEVBRzlCLG1DQUFtQyxFQUduQywyQkFBMkIsRUFHM0IsMkJBQTJCLEVBRzNCLDBCQUEwQixFQUcxQixzQkFBc0IsRUFHdEIsNkJBQTZCLEVBRzdCLGlDQUFpQyxFQUdqQyxpQ0FBaUMsRUFHakMsa0NBQWtDLEVBR2xDLHVCQUF1QixFQUd2Qix3Q0FBd0MsRUFHeEMsZ0NBQWdDLEVBR2hDLDJCQUEyQixFQUczQix3QkFBd0IsRUFHeEIscUJBQXFCLEVBR3JCLDRCQUE0QixFQUc1QixvQkFBb0IsRUFHcEIsaUNBQWlDLEVBR2pDLCtCQUErQixFQUcvQix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsNkJBQTZCLEVBRzdCLHNCQUFzQixFQUd0Qiw0QkFBNEIsRUFHNUIsOEJBQThCLEVBRzlCLDRCQUE0QixFQUc1QiwyQkFBMkIsRUFHM0IsZUFBZSxFQUdmLG1CQUFtQixFQUduQiw0QkFBNEIsRUFHNUIsdUJBQXVCLEVBR3ZCLGdDQUFnQyxFQUdoQyx1Q0FBdUMsRUFHdkMsOEJBQThCLEVBRzlC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RUFBRSxDQUF1QixDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDcEQsaUJBQWlCLEVBQ2pCLHFCQUFxQixDQUN0QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUNuRSxLQUFLLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQzdDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3RFLEtBQUssQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uLFxuICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBBZGREYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBBZGREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBZGRUYWdzQ29tbWFuZCxcbiAgdHlwZSBBZGRUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFRhZ3NDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kLFxuICB0eXBlIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICB0eXBlIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVEb21haW5Db21tYW5kLFxuICB0eXBlIENyZWF0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEb21haW5Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEb21haW5Db21tYW5kLFxuICB0eXBlIERlbGV0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEb21haW5Db21tYW5kT3V0cHV0LFxuICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0QXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBHZXREYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kLFxuICB0eXBlIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmQsXG4gIHR5cGUgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kLFxuICB0eXBlIExpc3REYXRhU291cmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluTmFtZXNDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5OYW1lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluTmFtZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kLFxuICB0eXBlIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZCxcbiAgdHlwZSBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kT3V0cHV0LFxuICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIHR5cGUgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBVcGdyYWRlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBVcGdyYWRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZ3JhZGVEb21haW5Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9wZW5zZWFyY2hcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBCYXNlRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERlcGVuZGVuY3lGYWlsdXJlRXJyb3IsXG4gIERpc2FibGVkT3BlcmF0aW9uRXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvcixcbiAgSW52YWxpZFR5cGVFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTbG90Tm90QXZhaWxhYmxlRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2UsXG4gIE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9PcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRPcGVuU2VhcmNoQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9PcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgQWRkRGF0YVNvdXJjZUNvbW1hbmQsXG4gIEFkZFRhZ3NDb21tYW5kLFxuICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kLFxuICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIENyZWF0ZVBhY2thZ2VDb21tYW5kLFxuICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIERlbGV0ZURvbWFpbkNvbW1hbmQsXG4gIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlUGFja2FnZUNvbW1hbmQsXG4gIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Db21tYW5kLFxuICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluc0NvbW1hbmQsXG4gIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kLFxuICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZCxcbiAgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kLFxuICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgR2V0QXBwbGljYXRpb25Db21tYW5kLFxuICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kLFxuICBHZXREYXRhU291cmNlQ29tbWFuZCxcbiAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kLFxuICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kLFxuICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmQsXG4gIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kLFxuICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZCxcbiAgTGlzdERhdGFTb3VyY2VzQ29tbWFuZCxcbiAgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmQsXG4gIExpc3REb21haW5OYW1lc0NvbW1hbmQsXG4gIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZCxcbiAgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZCxcbiAgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kLFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIExpc3RWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIExpc3RWcGNFbmRwb2ludHNDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZCxcbiAgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kLFxuICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIFJlbW92ZVRhZ3NDb21tYW5kLFxuICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kLFxuICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIFVwZGF0ZVBhY2thZ2VDb21tYW5kLFxuICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kLFxuICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIFVwZ3JhZGVEb21haW5Db21tYW5kLFxufTtcblxuaW50ZXJmYWNlIE9wZW5TZWFyY2hTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGFjY2VwdEluYm91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZERhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgYWRkRGF0YVNvdXJjZShcbiAgICBhcmdzOiBBZGREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFRhZ3NDb21tYW5kfVxuICAgKi9cbiAgYWRkVGFncyhcbiAgICBhcmdzOiBBZGRUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgYXNzb2NpYXRlUGFja2FnZShcbiAgICBhcmdzOiBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgYXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxEb21haW5Db25maWdDaGFuZ2UoXG4gICAgYXJnczogQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGUoXG4gICAgYXJnczogQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRG9tYWluKFxuICAgIGFyZ3M6IENyZWF0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IENyZWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURhdGFTb3VyY2UoXG4gICAgYXJnczogRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURvbWFpbihcbiAgICBhcmdzOiBEZWxldGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5ib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVPdXRib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQYWNrYWdlKFxuICAgIGFyZ3M6IERlbGV0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVWcGNFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVWcGNFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbihcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQXV0b1R1bmVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQ29uZmlnKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5IZWFsdGgoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluTm9kZXMoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWlucyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3MoXG4gICAgYXJnczogRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzKFxuICAgIGFyZ3M6IERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUGFja2FnZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVQYWNrYWdlcyhcbiAgICBhcmdzOiBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5ncyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVWcGNFbmRwb2ludHMoXG4gICAgYXJnczogRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgZGlzc29jaWF0ZVBhY2thZ2UoXG4gICAgYXJnczogRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0QXBwbGljYXRpb24oXG4gICAgYXJnczogR2V0QXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGdldENvbXBhdGlibGVWZXJzaW9ucyhcbiAgICBhcmdzOiBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBnZXREYXRhU291cmNlKFxuICAgIGFyZ3M6IEdldERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzKFxuICAgIGFyZ3M6IEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeShcbiAgICBhcmdzOiBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldFVwZ3JhZGVIaXN0b3J5KFxuICAgIGFyZ3M6IEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBnZXRVcGdyYWRlU3RhdHVzKFxuICAgIGFyZ3M6IEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFwcGxpY2F0aW9ucyhcbiAgICBhcmdzOiBMaXN0QXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERhdGFTb3VyY2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REYXRhU291cmNlcyhcbiAgICBhcmdzOiBMaXN0RGF0YVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RG9tYWluTWFpbnRlbmFuY2VzKFxuICAgIGFyZ3M6IExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REb21haW5OYW1lc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RG9tYWluTmFtZXMoXG4gICAgYXJnczogTGlzdERvbWFpbk5hbWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERvbWFpbk5hbWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbnNGb3JQYWNrYWdlKFxuICAgIGFyZ3M6IExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEluc3RhbmNlVHlwZURldGFpbHMoXG4gICAgYXJnczogTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kfVxuICAgKi9cbiAgbGlzdFBhY2thZ2VzRm9yRG9tYWluKFxuICAgIGFyZ3M6IExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFNjaGVkdWxlZEFjdGlvbnMoXG4gICAgYXJnczogTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFnaW5hdGlvblRva2VuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzKFxuICAgIGFyZ3M6IExpc3RUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludEFjY2VzcyhcbiAgICBhcmdzOiBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWcGNFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFZwY0VuZHBvaW50cyhcbiAgICBhcmdzOiBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW50ZXJuYWxFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludHNGb3JEb21haW4oXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZH1cbiAgICovXG4gIHB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nKFxuICAgIGFyZ3M6IFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlamVjdEluYm91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVRhZ3MoXG4gICAgYXJnczogUmVtb3ZlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICByZXZva2VWcGNFbmRwb2ludEFjY2VzcyhcbiAgICBhcmdzOiBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kfVxuICAgKi9cbiAgc3RhcnREb21haW5NYWludGVuYW5jZShcbiAgICBhcmdzOiBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmR9XG4gICAqL1xuICBzdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZShcbiAgICBhcmdzOiBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRGF0YVNvdXJjZShcbiAgICBhcmdzOiBVcGRhdGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEb21haW5Db25maWdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRG9tYWluQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUGFja2FnZShcbiAgICBhcmdzOiBVcGRhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU2NoZWR1bGVkQWN0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2xvdE5vdEF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGdyYWRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIHVwZ3JhZGVEb21haW4oXG4gICAgYXJnczogVXBncmFkZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZ3JhZGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVuU2VhcmNoU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LW9wZW5zZWFyY2gvT3BlblNlYXJjaFNlcnZpY2VcIixcbik8T3BlblNlYXJjaFNlcnZpY2UsIE9wZW5TZWFyY2hTZXJ2aWNlJD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZU9wZW5TZWFyY2hTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oT3BlblNlYXJjaENsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgT3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248T3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIE9wZW5TZWFyY2hTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZU9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIE9wZW5TZWFyY2hTZXJ2aWNlLFxuICBtYWtlT3BlblNlYXJjaFNlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgT3BlblNlYXJjaFNlcnZpY2VMYXllciA9IEJhc2VPcGVuU2VhcmNoU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoT3BlblNlYXJjaENsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRPcGVuU2VhcmNoU2VydmljZUxheWVyID0gT3BlblNlYXJjaFNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRPcGVuU2VhcmNoQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvT3BlblNlYXJjaFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUc5QixvQkFBb0IsRUFHcEIsY0FBYyxFQUdkLHVCQUF1QixFQUd2QixpQ0FBaUMsRUFHakMsK0JBQStCLEVBRy9CLGtDQUFrQyxFQUdsQyx3QkFBd0IsRUFHeEIsbUJBQW1CLEVBR25CLCtCQUErQixFQUcvQixvQkFBb0IsRUFHcEIsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUd4Qix1QkFBdUIsRUFHdkIsbUJBQW1CLEVBR25CLDhCQUE4QixFQUc5QiwrQkFBK0IsRUFHL0Isb0JBQW9CLEVBR3BCLHdCQUF3QixFQUd4QixxQkFBcUIsRUFHckIsOEJBQThCLEVBRzlCLG1DQUFtQyxFQUduQywyQkFBMkIsRUFHM0IsMkJBQTJCLEVBRzNCLDBCQUEwQixFQUcxQixzQkFBc0IsRUFHdEIsNkJBQTZCLEVBRzdCLGlDQUFpQyxFQUdqQyxpQ0FBaUMsRUFHakMsa0NBQWtDLEVBR2xDLHVCQUF1QixFQUd2Qix3Q0FBd0MsRUFHeEMsZ0NBQWdDLEVBR2hDLDJCQUEyQixFQUczQix3QkFBd0IsRUFHeEIscUJBQXFCLEVBR3JCLDRCQUE0QixFQUc1QixvQkFBb0IsRUFHcEIsaUNBQWlDLEVBR2pDLCtCQUErQixFQUcvQix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsNkJBQTZCLEVBRzdCLHNCQUFzQixFQUd0Qiw0QkFBNEIsRUFHNUIsOEJBQThCLEVBRzlCLDRCQUE0QixFQUc1QiwyQkFBMkIsRUFHM0IsZUFBZSxFQUdmLG1CQUFtQixFQUduQiw0QkFBNEIsRUFHNUIsdUJBQXVCLEVBR3ZCLGdDQUFnQyxFQUdoQyx1Q0FBdUMsRUFHdkMsOEJBQThCLEVBRzlC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RUFBRSxDQUF1QixDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDcEQsaUJBQWlCLEVBQ2pCLHFCQUFxQixDQUN0QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUNuRSxLQUFLLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQzdDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3RFLEtBQUssQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uLFxuICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBBZGREYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBBZGREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBZGRUYWdzQ29tbWFuZCxcbiAgdHlwZSBBZGRUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFRhZ3NDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kLFxuICB0eXBlIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICB0eXBlIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVEb21haW5Db21tYW5kLFxuICB0eXBlIENyZWF0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEb21haW5Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEb21haW5Db21tYW5kLFxuICB0eXBlIERlbGV0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEb21haW5Db21tYW5kT3V0cHV0LFxuICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0QXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBHZXREYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kLFxuICB0eXBlIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmQsXG4gIHR5cGUgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kLFxuICB0eXBlIExpc3REYXRhU291cmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluTmFtZXNDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5OYW1lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluTmFtZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kLFxuICB0eXBlIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZCxcbiAgdHlwZSBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kT3V0cHV0LFxuICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIHR5cGUgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBVcGdyYWRlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBVcGdyYWRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZ3JhZGVEb21haW5Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9wZW5zZWFyY2hcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBCYXNlRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERlcGVuZGVuY3lGYWlsdXJlRXJyb3IsXG4gIERpc2FibGVkT3BlcmF0aW9uRXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvcixcbiAgSW52YWxpZFR5cGVFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTbG90Tm90QXZhaWxhYmxlRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2UsXG4gIE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9PcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRPcGVuU2VhcmNoQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9PcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIEFkZERhdGFTb3VyY2VDb21tYW5kLFxuICBBZGRUYWdzQ29tbWFuZCxcbiAgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZCxcbiAgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZCxcbiAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBDcmVhdGVEb21haW5Db21tYW5kLFxuICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBDcmVhdGVQYWNrYWdlQ29tbWFuZCxcbiAgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kLFxuICBEZWxldGVEb21haW5Db21tYW5kLFxuICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIERlbGV0ZVBhY2thZ2VDb21tYW5kLFxuICBEZWxldGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbnNDb21tYW5kLFxuICBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZCxcbiAgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmQsXG4gIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlUGFja2FnZXNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kLFxuICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIEdldEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZCxcbiAgR2V0RGF0YVNvdXJjZUNvbW1hbmQsXG4gIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZCxcbiAgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZCxcbiAgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kLFxuICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZCxcbiAgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmQsXG4gIExpc3REYXRhU291cmNlc0NvbW1hbmQsXG4gIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kLFxuICBMaXN0RG9tYWluTmFtZXNDb21tYW5kLFxuICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmQsXG4gIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmQsXG4gIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZCxcbiAgTGlzdFRhZ3NDb21tYW5kLFxuICBMaXN0VmVyc2lvbnNDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZCxcbiAgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBSZW1vdmVUYWdzQ29tbWFuZCxcbiAgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZCxcbiAgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kLFxuICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kLFxuICBVcGRhdGVQYWNrYWdlQ29tbWFuZCxcbiAgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZCxcbiAgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICBVcGdyYWRlRG9tYWluQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBPcGVuU2VhcmNoU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBhY2NlcHRJbmJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGREYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGFkZERhdGFTb3VyY2UoXG4gICAgYXJnczogQWRkRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzQ29tbWFuZH1cbiAgICovXG4gIGFkZFRhZ3MoXG4gICAgYXJnczogQWRkVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZVBhY2thZ2UoXG4gICAgYXJnczogQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIGF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzKFxuICAgIGFyZ3M6IEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlKFxuICAgIGFyZ3M6IENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlKFxuICAgIGFyZ3M6IENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURvbWFpbihcbiAgICBhcmdzOiBDcmVhdGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVPdXRib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlUGFja2FnZShcbiAgICBhcmdzOiBDcmVhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVZwY0VuZHBvaW50KFxuICAgIGFyZ3M6IENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQXBwbGljYXRpb24oXG4gICAgYXJnczogRGVsZXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEYXRhU291cmNlKFxuICAgIGFyZ3M6IERlbGV0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEb21haW4oXG4gICAgYXJnczogRGVsZXRlRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUluYm91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUGFja2FnZShcbiAgICBhcmdzOiBEZWxldGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW4oXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkF1dG9UdW5lcyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzcyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkNvbmZpZyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluSGVhbHRoKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbk5vZGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbnMoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IEludGVybmFsRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURyeVJ1blByb2dyZXNzKFxuICAgIGFyZ3M6IERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0cyhcbiAgICBhcmdzOiBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUGFja2FnZXMoXG4gICAgYXJnczogRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3MoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXMoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlVnBjRW5kcG9pbnRzKFxuICAgIGFyZ3M6IERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGRpc3NvY2lhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldEFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IEdldEFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBnZXRDb21wYXRpYmxlVmVyc2lvbnMoXG4gICAgYXJnczogR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGF0YVNvdXJjZShcbiAgICBhcmdzOiBHZXREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBnZXREb21haW5NYWludGVuYW5jZVN0YXR1cyhcbiAgICBhcmdzOiBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmR9XG4gICAqL1xuICBnZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnkoXG4gICAgYXJnczogR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmR9XG4gICAqL1xuICBnZXRVcGdyYWRlSGlzdG9yeShcbiAgICBhcmdzOiBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0VXBncmFkZVN0YXR1cyhcbiAgICBhcmdzOiBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXBwbGljYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBcHBsaWNhdGlvbnMoXG4gICAgYXJnczogTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REYXRhU291cmNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RGF0YVNvdXJjZXMoXG4gICAgYXJnczogTGlzdERhdGFTb3VyY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERhdGFTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbk1haW50ZW5hbmNlcyhcbiAgICBhcmdzOiBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RG9tYWluTmFtZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbk5hbWVzKFxuICAgIGFyZ3M6IExpc3REb21haW5OYW1lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REb21haW5OYW1lc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGxpc3REb21haW5zRm9yUGFja2FnZShcbiAgICBhcmdzOiBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RJbnN0YW5jZVR5cGVEZXRhaWxzKFxuICAgIGFyZ3M6IExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQYWNrYWdlc0ZvckRvbWFpbihcbiAgICBhcmdzOiBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTY2hlZHVsZWRBY3Rpb25zKFxuICAgIGFyZ3M6IExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFncyhcbiAgICBhcmdzOiBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VmVyc2lvbnMoXG4gICAgYXJnczogTGlzdFZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludHMoXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IEludGVybmFsRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluKFxuICAgIGFyZ3M6IExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmR9XG4gICAqL1xuICBwdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZyhcbiAgICBhcmdzOiBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWplY3RJbmJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZW1vdmVUYWdzKFxuICAgIGFyZ3M6IFJlbW92ZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVUYWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IEludGVybmFsRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgcmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RG9tYWluTWFpbnRlbmFuY2UoXG4gICAgYXJnczogU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGUoXG4gICAgYXJnczogU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURhdGFTb3VyY2UoXG4gICAgYXJnczogVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURvbWFpbkNvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVBhY2thZ2UoXG4gICAgYXJnczogVXBkYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVNjaGVkdWxlZEFjdGlvbihcbiAgICBhcmdzOiBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNsb3ROb3RBdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVZwY0VuZHBvaW50KFxuICAgIGFyZ3M6IFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBncmFkZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICB1cGdyYWRlRG9tYWluKFxuICAgIGFyZ3M6IFVwZ3JhZGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGdyYWRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgT3BlblNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1vcGVuc2VhcmNoL09wZW5TZWFyY2hTZXJ2aWNlXCIsXG4pPE9wZW5TZWFyY2hTZXJ2aWNlLCBPcGVuU2VhcmNoU2VydmljZSQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VPcGVuU2VhcmNoU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBPcGVuU2VhcmNoU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VPcGVuU2VhcmNoU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBPcGVuU2VhcmNoU2VydmljZSxcbiAgbWFrZU9wZW5TZWFyY2hTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IE9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIgPSBCYXNlT3BlblNlYXJjaFNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0T3BlblNlYXJjaFNlcnZpY2VMYXllciA9IE9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0T3BlblNlYXJjaENsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "version": "1.0.0",
36
+ "version": "1.0.1",
37
37
  "types": "lib/index.d.ts",
38
38
  "module": "lib/esm/index.js",
39
39
  "sideEffects": [],